{"version":3,"file":"gf_image_choices.js","names":["imageChoices","$","cssClasses","selected","hover","focus","getFormMarkupVersion","form_or_id","formElementID","$form","formID","attr","window","hasOwnProperty","gf_get_form_id_by_html_id","replace","jQuery","indexOf","toString","length","find","is","isLegacyMarkup","isLegacyMode","imageChoicesVars","useNewFeatures","$fieldChoices","$field","choicesSelector","closest","SelectedFields","form_id","each","this","addClass","InitLightbox","form_id_num","parseInt","field_id","field_id_num","substring","lastIndexOf","elementorCompat","opts","gform","applyFilters","captions","hasClass","captionType","captionsData","jetslothLightbox","$lightboxBtn","escapedTitle","text","data","onChoiceKeyPress","e","$input","target","keyCode","preventDefault","stopImmediatePropagation","direction","$inputWrap","next","prev","onChoicesSelectAllClick","$toggle","$choices","n","choiceEl","$choice","onChoiceLabelClick","$label","$wrap","first","setTimeout","not","removeClass","prop","clearProductImageChoice","querySelector","classList","remove","value","trigger","selectProductImageChoice","add","group","Array","from","filter","cls","groupSelector","document","querySelectorAll","id","forEach","onProductImageChoiceClick","contains","toggle","setupProductImageChoices","addEventListener","currentTarget","SetUpFields","current_page","i","$fields","$productImages","t","on","$this","blur","wrap","append","parent","$choicesField","html","thumbUrl","imgUrl","elementorAtts","prepend","get","InitLazyLoad","jetslothMatchHeights","doAction","imageChoices_SetUpFields","ConditionalLogic","bind","event","gformGetOptionLabel","fields","isInit","element","selected_value","current_price","colorPicker_gformGetOptionLabel","index","price","gformGetPrice","current_diff","original_label","diff","gformGetPriceDifference","gformToNumber","price_label","tagName","toLowerCase","label","gform_format_option_label","imageChoices_gformGetOptionLabel","fullLabel","fieldLabel","priceLabel","selectedPrice","formId","fieldId","markup","choiceText","choicePrice","$allOptions","$thisOption","eq","loadedChoices","$option","$thisOptionLabel","thisOptionImage","thisOptionLightboxSrc","jmhId","jmhAttr","shouldLazyLoad","inArray","imageMarkup","join","observer","observe","choiceHtml","imageChoices_gform_format_option_label","gftt","option_label_reinit","colorPicker_gform_format_option_label","onImageLoaded","$el","push","loadImage","img","Image","onload","css","src","lazyLoad","elements","item","intersectionRatio","unobserve","lazyLoadInit","lazyRootMargin","lazyThreshold","lazyLoadOptions","rootMargin","threshold","IntersectionObserver","$page"],"sources":["gf_image_choices.js"],"sourcesContent":["var imageChoices = imageChoices || {};\n(function($){\n\n\timageChoices.cssClasses = {\n\t\t\"selected\": \"image-choices-choice-selected\",\n\t\t\"hover\": \"image-choices-choice-hover\",\n\t\t\"focus\": \"image-choices-choice-focus\"\n\t}\n\n\timageChoices.getFormMarkupVersion = function( form_or_id ){\n\t\tvar formElementID;\n\t\tvar formID = '';\n\t\tvar $form;\n\n\t\tif ( typeof form_or_id === 'undefined' || ( typeof form_or_id === 'string' && form_or_id === '' ) || ( typeof form_or_id === 'number' && form_or_id <= 0 ) ) {\n\t\t\tformElementID = $('form[id^=\"gform_\"]:first').attr('id');\n\t\t\tformID = ( window.hasOwnProperty('gf_get_form_id_by_html_id') ) ? window.gf_get_form_id_by_html_id( formElementID ) : formElementID.replace('gform_', '');\n\t\t\t$form = $('#' + formElementID);\n\t\t}\n\t\telse if ( form_or_id instanceof jQuery ) {\n\t\t\tformElementID = form_or_id.attr('id');\n\t\t\tformID = ( window.hasOwnProperty('gf_get_form_id_by_html_id') ) ? window.gf_get_form_id_by_html_id( formElementID ) : formElementID.replace('gform_', '');\n\t\t\t$form = form_or_id;\n\t\t}\n\t\telse if ( typeof form_or_id === 'string' && form_or_id.indexOf(\"gform_\") !== -1 ) {\n\t\t\tformID = (window.hasOwnProperty('gf_get_form_id_by_html_id')) ? window.gf_get_form_id_by_html_id( form_or_id ) : form_or_id.replace('gform_', '');\n\t\t\tformElementID = \"gform_\" + formID;\n\t\t\t$form = $('#' + formElementID);\n\t\t}\n\t\telse {\n\t\t\tformID = (window.hasOwnProperty('gf_get_form_id_by_html_id')) ? window.gf_get_form_id_by_html_id( \"gform_\" + form_or_id.toString() ) : form_or_id.toString();\n\t\t\tformElementID = \"gform_\" + formID;\n\t\t\t$form = $('#' + formElementID);\n\t\t}\n\n\t\tif ( !$form.length ) {\n\t\t\treturn $('.gform_body .gfield:first').is('li') ? 1 : 2;\n\t\t}\n\n\t\treturn $form.find('.gform_body .gfield:first').is('li') ? 1 : 2;\n\t};\n\n\timageChoices.isLegacyMarkup = function( form_or_id ) {\n\t\treturn ( imageChoices.getFormMarkupVersion( form_or_id ) === 1 );\n\t}\n\n\timageChoices.isLegacyMode = function() {\n\t\tvar useNewFeatures = ( imageChoicesVars.hasOwnProperty('useNewFeatures') && imageChoicesVars.useNewFeatures.toString() === 'true');\n\t\treturn !useNewFeatures;\n\t};\n\n\timageChoices.$fieldChoices = function( $field ) {\n\t\tif ( typeof $field === 'undefined' || $field instanceof jQuery === false) {\n\t\t\treturn [];\n\t\t}\n\n\t\tvar choicesSelector = '.ginput_container .gfield_radio div[class*=\"gchoice\"], .ginput_container .gfield_checkbox div[class*=\"gchoice\"]:not(.gchoice_select_all)';// GF 2.5+\n\t\tif ( imageChoices.isLegacyMarkup( $field.closest('[id^=\"gform_wrapper_\"]') ) ) {\n\t\t\tchoicesSelector = '.ginput_container .gfield_radio li, .ginput_container .gfield_checkbox li:not(.gchoice_select_all)';\n\t\t}\n\n\t\treturn $field.find(choicesSelector);\n\t};\n\n\timageChoices.SelectedFields = function( form_id ) {\n\t\tvar $form = ( typeof form_id !== 'undefined' && form_id !== '' ) ? $('#gform_'+form_id) : $('.gform_wrapper form');\n\t\timageChoices.$fieldChoices( $form.find('.image-choices-field') ).find('input:checked').each(function() {\n\t\t\tvar $input = $(this);\n\t\t\tvar $choice = $input.closest('[class*=\"gchoice\"]');// TODO: Update to just .gchoice ?\n\t\t\t$choice.addClass(imageChoices.cssClasses.selected);\n\t\t\t/*\n\t\t\tif ( $input.val() === \"gf_other_choice\" ) {\n\t\t\t\t$input.trigger('click')\n\t\t\t}\n\t\t\t*/\n\t\t});\n\t};\n\n\timageChoices.InitLightbox = function( form_id ){\n\t\tvar $form = ( typeof form_id !== 'undefined' && form_id !== '' ) ? $('#gform_'+form_id) : $('.gform_wrapper form');\n\t\tvar form_id_num = parseInt(form_id, 10);\n\t\t$form.find('.image-choices-field.image-choices-use-lightbox').each(function(){\n\t\t\tvar $field = $(this);\n\t\t\tvar field_id = $field.attr('id');\n\t\t\tvar field_id_num = parseInt( field_id.substring( field_id.lastIndexOf('_') + 1 ), 10);\n\t\t\tif ( !imageChoicesVars.hasOwnProperty('elementorCompat') || imageChoicesVars.elementorCompat !== 'elementor' ) {\n\t\t\t\tvar opts = gform.applyFilters('gfic_lightbox_options', {\n\t\t\t\t\tcaptions: imageChoices.isLegacyMode() || $field.hasClass('ic-lightbox-captions'),\n\t\t\t\t\tcaptionType: 'data',\n\t\t\t\t\tcaptionsData: 'caption'\n\t\t\t\t}, form_id_num, field_id_num);\n\t\t\t\topts.captions = gform.applyFilters('gfic_lightbox_captions', opts.captions, form_id_num, field_id_num);// for backward compat\n\t\t\t\topts = gform.applyFilters(`gfic_lightbox_options_${form_id_num}`, opts, form_id_num, field_id_num);\n\t\t\t\topts = gform.applyFilters(`gfic_lightbox_options_${form_id_num}_${field_id_num}`, opts, form_id_num, field_id_num);\n\t\t\t\t$field.find('.image-choices-lightbox-btn').jetslothLightbox(opts);\n\t\t\t}\n\t\t});\n\t\t$form.find('.product-image-field.product-image-use-lightbox').each(function(){\n\t\t\tvar $field = $(this);\n\t\t\tvar field_id = $field.attr('id');\n\t\t\tvar field_id_num = parseInt( field_id.substring( field_id.lastIndexOf('_') + 1 ), 10);\n\n\t\t\tvar $lightboxBtn = $field.find('.ic-product-image-lightbox-btn');\n\n\t\t\tif ( !imageChoicesVars.hasOwnProperty('elementorCompat') || imageChoicesVars.elementorCompat !== 'elementor' ) {\n\t\t\t\tvar title = '';\n\t\t\t\tif ( $field.find('.gfield_label_product').length ) {\n\t\t\t\t\ttitle = $field.find('.gfield_label_product').text();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttitle = ( $field.find('.gftt-label').length ) ? $field.find('.gftt-label').text() : $field.find('.gfield_label').text();\n\t\t\t\t}\n\t\t\t\tvar escapedTitle = (title + '').replace(/[\\\\\"']/g, '\\\\$&').replace(/\\u0000/g, '\\\\0');\n\t\t\t\t$lightboxBtn.data('caption', escapedTitle);\n\t\t\t\t$lightboxBtn.attr('data-elementor-open-lightbox', 'no');\n\t\t\t\tvar opts = gform.applyFilters('gfic_lightbox_options', {\n\t\t\t\t\tcaptions: $field.hasClass('product-image-lightbox-captions'),\n\t\t\t\t\tcaptionType: 'data',\n\t\t\t\t\tcaptionsData: 'caption'\n\t\t\t\t}, form_id_num, field_id_num);\n\t\t\t\topts.captions = gform.applyFilters('gfic_lightbox_captions', opts.captions, form_id_num, field_id_num);// for backward compat\n\t\t\t\topts = gform.applyFilters(`gfic_lightbox_options_${form_id_num}`, opts, form_id_num, field_id_num);\n\t\t\t\topts = gform.applyFilters(`gfic_lightbox_options_${form_id_num}_${field_id_num}`, opts, form_id_num, field_id_num);\n\t\t\t\t$lightboxBtn.jetslothLightbox(opts);\n\t\t\t}\n\t\t});\n\t};\n\n\timageChoices.onChoiceKeyPress = function(e) {\n\t\tvar TABKEY = 9;\n\t\tvar SPACEKEY = 32;\n\t\tvar $input = $(e.target);\n\t\tvar $field = $input.closest('.gfield');\n\n\t\tif (e.keyCode === SPACEKEY && ( $input.is(':checkbox') || $input.is(':radio') ) ) {\n\t\t\tif ($input.is(':radio') && !$input.is(':checked')) {\n\t\t\t\te.preventDefault();\n\t\t\t\t//e.stopImmediatePropagation();\n\t\t\t\t//$input.next('label').click();\n\t\t\t}\n\t\t\telse if ($input.is(':checkbox')) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t\t//$input.next('label').click();\n\t\t\t}\n\t\t}\n\t\telse if (e.keyCode === TABKEY && $field.hasClass('image-choices-field')) {\n\t\t\tvar direction = (e.shiftKey) ? 'previous' : 'next';\n\t\t\tvar $inputWrap = $input.closest('.image-choices-choice');\n\n\t\t\tif (direction === 'next') {\n\t\t\t\tif (!$inputWrap.is(':last-child')) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t//e.stopImmediatePropagation();\n\t\t\t\t\t$inputWrap.next('.image-choices-choice').find('> input').focus();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (direction === 'previous') {\n\t\t\t\tif (!$inputWrap.is(':first-child')) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t//e.stopImmediatePropagation();\n\t\t\t\t\t$inputWrap.prev('.image-choices-choice').find('> input').focus();\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t};\n\n\timageChoices.onChoicesSelectAllClick = function(e) {\n\t\tvar $toggle = $(this);\n\t\tvar $field = $toggle.closest('.gfield');\n\t\tvar toggledOn = $toggle.is('input') ? $toggle.is(':checked') : $toggle.data('checked');\n\t\tvar $choices = toggledOn ? $field.find('.image-choices-choice input:checked') : $field.find('.image-choices-choice input:not(:checked)');\n\n\t\tif ($choices.length) {\n\t\t\t$choices.each(function(n, choiceEl){\n\t\t\t\tvar $choice = $(choiceEl);\n\t\t\t\timageChoices.onChoiceLabelClick( $choice.next('label') );\n\t\t\t});\n\t\t}\n\t};\n\n\timageChoices.onChoiceLabelClick = function( $label ) {\n\t\tvar $choice = $label.closest('[class*=\"gchoice\"]');\n\t\tvar $wrap = $choice.closest('.gfield_checkbox, .gfield_radio').first();\n\n\t\tvar $input = $choice.find('input');\n\n\t\tif ($choice.hasClass('image-choices-choice-other')) {\n\t\t\tsetTimeout(function(){\n\t\t\t\t$choice.find('.gf_other_wrap').addClass('active');\n\t\t\t\t$choice.find('input:text').focus();\n\t\t\t}, 250)\n\t\t}\n\n\t\tif ($wrap.hasClass('gfield_radio')) {\n\t\t\t// radio\n\t\t\t$wrap.find('.'+imageChoices.cssClasses.selected).not($choice).removeClass(imageChoices.cssClasses.selected).find('input').prop('checked', false);\n\t\t\t$choice.addClass(imageChoices.cssClasses.selected);\n\t\t}\n\t\telse if ($wrap.hasClass('gfield_checkbox')) {\n\t\t\t// checkbox\n\t\t\tif ( $input.is( ':checked' ) ) {\n\t\t\t\t$choice.addClass(imageChoices.cssClasses.selected);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$choice.removeClass(imageChoices.cssClasses.selected);\n\t\t\t}\n\t\t}\n\t};\n\n\n\timageChoices.clearProductImageChoice = function($field) {\n\t\tlet $input = $field.querySelector('.ginput_container_singleproduct .ginput_quantity');\n\t\t$field.classList.remove('ic-product-selected');\n\t\t$input.value = '';\n\t\tjQuery($input).trigger('input');\n\t};\n\n\timageChoices.selectProductImageChoice = function($field) {\n\t\t$field.classList.add('ic-product-selected');\n\t\tlet group = Array.from($field.classList).filter(cls => ( cls.indexOf('ic-product-group-') !== -1 ));\n\t\tlet groupSelector = ( group.length ) ? '.' + group[0] : '';\n\t\tdocument.querySelectorAll(`.product-image-field.ic-product-single-choice${groupSelector}:not([id=\"${$field.id}\"])`).forEach($choice => {\n\t\t\timageChoices.clearProductImageChoice($choice);\n\t\t});\n\t};\n\n\timageChoices.onProductImageChoiceClick = function($field){\n\t\tlet $input = $field.querySelector('.ginput_container_singleproduct .ginput_quantity');\n\t\tif ( !$field.classList.contains('ic-product-single-choice') ) {\n\t\t\t$field.classList.toggle('ic-product-selected');\n\t\t\tif ( !$field.classList.contains('ic-product-selected') ) {\n\t\t\t\timageChoices.clearProductImageChoice($field);\n\t\t\t}\n\t\t}\n\t\telse if ( !$field.classList.contains('ic-product-selected') ) {\n\t\t\timageChoices.selectProductImageChoice($field);\n\t\t}\n\t};\n\n\timageChoices.setupProductImageChoices = function($form){\n\t\t$form.querySelectorAll('.product-image-field.ic-product-image-choice .ic-product-image-wrap').forEach($wrap => {\n\t\t\t$wrap.addEventListener('click', e => {\n\t\t\t\te.preventDefault();\n\t\t\t\timageChoices.onProductImageChoiceClick( e.currentTarget.closest('.gfield') );\n\t\t\t});\n\t\t});\n\t};\n\n\n\n\timageChoices.SetUpFields = function( form_id, current_page ) {\n\n\t\t// Entry detail view, doesn't get the custom class on the \"field\" wrap (it's .detail-view not .gfield)\n\t\t// If we add the classes here, the rest of the script (and styles) will work\n\t\t$('.entry-details .detail-view .image-choices-choice-image-wrap').each(function(i){\n\t\t\tvar $imgWrap = $(this);\n\t\t\tvar $field = $imgWrap.closest('.detail-view');\n\t\t\t$field.addClass('image-choices-field image-choices-show-labels');\n\t\t});\n\n\n\t\tvar $form = ( typeof form_id !== 'undefined' && form_id !== '' ) ? $('#gform_'+form_id) : $('.gform_wrapper form');\n\n\t\t// WooCommerce Gravity Forms Product Add-Ons compatibility\n\t\tif ( !$form.length && $('.gform_variation_wrapper').length ) {\n\t\t\t$form = $('.gform_variation_wrapper');\n\t\t}\n\n\t\tvar $fields = $form.find('.image-choices-field');\n\t\tif ( $fields.length ) {\n\t\t\t$fields.find('.gfield_radio, .gfield_checkbox').addClass('gform-theme__no-reset--children');\n\t\t}\n\n\t\tvar $choices = imageChoices.$fieldChoices( $fields );\n\t\tvar $productImages = $form.find('.product-image-field');\n\n\t\t$form.find('.gchoice_select_all input, button[id$=\"select_all\"]').each(function(t, toggle){\n\t\t\t$(toggle).on('click', imageChoices.onChoicesSelectAllClick);\n\t\t});\n\n\t\tif ( $choices.length > 0 || $productImages.length > 0 ) {\n\n\t\t\t$choices.each(function(){\n\t\t\t\tvar $choice = $(this);\n\n\t\t\t\tvar choiceInit = $choice.data('init');\n\t\t\t\tif (choiceInit !== true) {\n\n\t\t\t\t\t$choice.data('init', true);\n\n\t\t\t\t\t$choice.find('label').addClass('gform-field-label');// for non gf theme installs\n\n\t\t\t\t\t// add a hover state\n\t\t\t\t\t$choice.find('label').hover(function(e){\n\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\tif ( $this.find('input').is(':disabled') ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar $choice = $this.closest('[class*=\"gchoice\"]');// TODO: Update to just .gchoice ?\n\t\t\t\t\t\t\t$choice.addClass(imageChoices.cssClasses.hover);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}, function(e){\n\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\tif ( $this.find('input').is(':disabled') ){\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar $choice = $this.closest('[class*=\"gchoice\"]');// TODO: Update to just .gchoice ?\n\t\t\t\t\t\t\t$choice.removeClass(imageChoices.cssClasses.hover);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t});\n\n\t\t\t\t\t$choice.find('input').focus(function() {\n\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\tvar $choice = $this.closest('[class*=\"gchoice\"]');// TODO: Update to just .gchoice ?\n\t\t\t\t\t\t$choice.addClass(imageChoices.cssClasses.focus);\n\t\t\t\t\t}).blur( function() {\n\t\t\t\t\t\tvar $this = $(this);\n\t\t\t\t\t\tvar $choice = $this.closest('[class*=\"gchoice\"]');// TODO: Update to just .gchoice ?\n\t\t\t\t\t\t$choice.removeClass(imageChoices.cssClasses.focus);\n\t\t\t\t\t});\n\n\n\t\t\t\t\tif ($choice.find('input[value=\"gf_other_choice\"]').length) {\n\n\t\t\t\t\t\t$choice.addClass('image-choices-choice-other');\n\n\t\t\t\t\t\t$choice.find('input[type=\"text\"]').wrap('
');\n\t\t\t\t\t\t$('.gf_other_wrap').append('');\n\t\t\t\t\t\t$(document).on('click', '.gf_other_close', function(e){\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t$(this).parent().removeClass('active')\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t$choice.find( 'input:not([type=\"text\"])' ).on('click', function() {\n\t\t\t\t\t\t\tvar $this = $( this );\n\t\t\t\t\t\t\tvar $label = $this.closest('.image-choices-choice').find('label')\n\t\t\t\t\t\t\timageChoices.onChoiceLabelClick( $label );\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\n\t\t\t\t\t\t$choice.find( 'input' ).on('click', function() {\n\t\t\t\t\t\t\tvar $this = $( this );\n\t\t\t\t\t\t\tvar $label = $this.closest('.image-choices-choice').find('label')\n\t\t\t\t\t\t\timageChoices.onChoiceLabelClick( $label );\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tvar $choicesField = $choice.closest('.image-choices-field');\n\t\t\t\t\tif ($choicesField.hasClass('image-choices-use-lightbox') && !$choice.find('.image-choices-lightbox-btn').length) {\n\t\t\t\t\t\tvar id = $choicesField.attr('id');\n\t\t\t\t\t\tvar title = $choice.find('.image-choices-choice-text').html();\n\t\t\t\t\t\tvar escapedTitle = (title + '').replace(/[\\\\\"']/g, '\\\\$&').replace(/\\u0000/g, '\\\\0');\n\t\t\t\t\t\tvar thumbUrl = $choice.find('.image-choices-choice-image').attr('src');\n\t\t\t\t\t\tvar imgUrl = $choice.find('.image-choices-choice-image').data('lightbox-src');\n\t\t\t\t\t\tif (typeof imgUrl === 'undefined' || imgUrl === '') {\n\t\t\t\t\t\t\timgUrl = thumbUrl;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (imgUrl !== '') {\n\n\t\t\t\t\t\t\tvar elementorAtts = ( imageChoicesVars.hasOwnProperty('elementorCompat') && imageChoicesVars.elementorCompat !== 'elementor' ) ? 'data-elementor-open-lightbox=\"no\"' : '';\n\n\t\t\t\t\t\t\tvar $lightboxBtn = $('');\n\t\t\t\t\t\t\t$lightboxBtn.data('caption', escapedTitle);\n\t\t\t\t\t\t\t$choice.prepend($lightboxBtn);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t});\n\n\t\t\timageChoices.setupProductImageChoices( $form.get(0) );\n\n\t\t\tsetTimeout(function(){\n\t\t\t\tif ( $choices.length ) {\n\t\t\t\t\timageChoices.SelectedFields( form_id );\n\t\t\t\t}\n\t\t\t\timageChoices.InitLightbox( form_id );\n\t\t\t\timageChoices.InitLazyLoad( form_id, current_page );\n\t\t\t\tif ( typeof jetslothMatchHeights !== 'undefined' ) {\n\t\t\t\t\tjetslothMatchHeights();\n\t\t\t\t}\n\t\t\t\tgform.doAction('gfic_setup', form_id);\n\t\t\t}, 100);\n\n\t\t}\n\n\t};\n\twindow.imageChoices_SetUpFields = imageChoices.SetUpFields;// legacy support added in 1.3.0\n\n\timageChoices.ConditionalLogic = function( form_id ) {\n\t\t// TODO: specific form by id\n\t\tvar $form = ( typeof form_id !== 'undefined' && form_id !== '' ) ? $('#gform_'+form_id) : $('.gform_wrapper form');\n\t\t// WooCommerce Gravity Forms Product Add-Ons compatibility\n\t\tif ( !$form.length && $('.gform_variation_wrapper').length ) {\n\t\t\t$form = $('.gform_variation_wrapper');\n\t\t}\n\n\t\tvar $choicesField = $form.find('.image-choices-field');\n\t\tif ($choicesField.length) {\n\t\t\t$choicesField.each(function(){\n\t\t\t\tvar $field = $(this);\n\t\t\t\tif ($field.is(':hidden')) {\n\t\t\t\t\t$field.find('.image-choices-choice').removeClass(imageChoices.cssClasses.selected + ' ' + imageChoices.cssClasses.hover + ' ' + imageChoices.cssClasses.focus);\n\t\t\t\t}\n\t\t\t});\n\t\t\tsetTimeout(function(){\n\t\t\t\tif ( typeof jetslothMatchHeights !== 'undefined' ) {\n\t\t\t\t\tjetslothMatchHeights();\n\t\t\t\t}\n\t\t\t}, 10);\n\t\t}\n\t};\n\n\t$(document).bind('gform_post_render', function(event, form_id, current_page){\n\t\twindow.gformGetOptionLabel = imageChoices.gformGetOptionLabel;\n\t\timageChoices.SetUpFields( form_id, current_page );\n\t});\n\n\n\t$(document).bind('gform_post_conditional_logic', function(event, form_id, fields, isInit){\n\t\timageChoices.ConditionalLogic( form_id );\n\t\timageChoices.SelectedFields( form_id );\n\t});\n\n\t$(document).on('gfcf/conversational/navigate/start gfcf/conversational/navigate/next gfcf/conversational/navigate/prev gfcf/conversational/navigate/error', function(){\n\t\tif ( jetslothMatchHeights ) {\n\t\t\tjetslothMatchHeights();\n\t\t}\n\t});\n\n\timageChoices.gformGetOptionLabel = function(element, selected_value, current_price, form_id, field_id) {\n\t\telement = $(element);\n\n\t\t// Added for cross compat with Color Picker\n\t\tif (element.closest('.gfield').hasClass('color-picker-field') && typeof window.colorPicker_gformGetOptionLabel === 'function') {\n\t\t\treturn window.colorPicker_gformGetOptionLabel(element, selected_value, current_price, form_id, field_id);\n\t\t}\n\n\t\tvar wrap = element.closest('[class*=\"gchoice\"]');// TODO: Update to just .gchoice\n\t\tvar index = wrap.index();\n\n\t\tvar price = gformGetPrice(selected_value);\n\t\tvar current_diff = element.attr('price');\n\t\tvar original_label = element.html().replace(//i, \"\").replace(current_diff, \"\");\n\n\t\tvar diff = gformGetPriceDifference(current_price, price);\n\t\tdiff = gformToNumber(diff) == 0 ? \"\" : \" \" + diff;\n\t\telement.attr('price', diff);\n\n\t\t//don't add for drop down items (not supported)\n\t\tvar price_label = element[0].tagName.toLowerCase() == \"option\" ? \" \" + diff : \"\" + diff + \"\";\n\t\tvar label = original_label + price_label;\n\n\t\t//calling hook to allow for custom option formatting\n\t\tif(window[\"gform_format_option_label\"])\n\t\t\tlabel = gform_format_option_label(label, original_label, price_label, current_price, price, form_id, field_id, index);\n\n\t\treturn label;\n\t};\n\twindow.imageChoices_gformGetOptionLabel = imageChoices.gformGetOptionLabel;// legacy support added in 1.3.0\n\twindow.gformGetOptionLabel = imageChoices.gformGetOptionLabel;\n\n\n\n\timageChoices.gform_format_option_label = function(fullLabel, fieldLabel, priceLabel, selectedPrice, price, formId, fieldId, index) {\n\t\tvar markup = [fullLabel];\n\t\tvar choiceText = `${fieldLabel}`;\n\t\tvar choicePrice = `${priceLabel}`;\n\n\t\tvar $field = $('#gform_'+formId+' .gfield#field_'+formId+'_'+fieldId);\n\n\t\tif ($field.length && $field.hasClass('image-choices-field')) {\n\n\t\t\tvar $allOptions = $field.find('[class*=\"gchoice\"]');// TODO: Update to just .gchoice ?\n\t\t\tvar $thisOption = (typeof index !== 'undefined' && index >= 0) ? $allOptions.eq(index) : $allOptions;// when index is not passed in or not valid, get all options\n\t\t\tvar loadedChoices = ( typeof $field.data('jetsloth-lazy-loaded') !== 'undefined' ) ? $field.data('jetsloth-lazy-loaded') : [];\n\n\t\t\t$thisOption.each(function(){\n\n\t\t\t\tvar $option = $(this);\n\n\t\t\t\tvar $thisOptionLabel = $option.find('label');\n\t\t\t\tvar $thisOptionInput = $option.find('input');\n\n\t\t\t\tvar thisOptionImage = $thisOptionLabel.data('img');\n\t\t\t\tvar thisOptionLightboxSrc = $thisOptionLabel.data('lightbox-src');\n\n\t\t\t\t// Get the label content from the data attribute\n\t\t\t\t/*\n\t\t\t\tvar fallbackFieldLabel = $thisOptionLabel.attr('data-text');\n\t\t\t\tif ( (typeof fieldLabel === 'undefined' || fieldLabel === '') && fallbackFieldLabel !== '') {\n\t\t\t\t\tfieldLabel = fallbackFieldLabel;\n\t\t\t\t}\n\t\t\t\t*/\n\t\t\t\tfieldLabel = $thisOptionLabel.attr('data-text');\n\n\t\t\t\tif ( priceLabel === fieldLabel ) {\n\t\t\t\t\tpriceLabel = \"\";\n\t\t\t\t}\n\n\t\t\t\tif ( priceLabel === \"\" ) {\n\t\t\t\t\tpriceLabel = \" \";\n\t\t\t\t}\n\n\t\t\t\tvar jmhId = formId.toString() + '_' + fieldId.toString();\n\t\t\t\tvar jmhAttr = ( !imageChoices.isLegacyMode() && ( $field.hasClass('ic-theme--cover-tile') || $field.hasClass('ic-image--natural') ) ) ? ' data-jmh=\"' + jmhId + '_' + index + '\"' : '';\n\n\t\t\t\tvar hasLazyLoad = $field.hasClass('has-jetsloth-lazy');\n\t\t\t\tvar shouldLazyLoad = ( hasLazyLoad && $.inArray( index, loadedChoices ) === -1 );\n\t\t\t\tvar imageMarkup = [\n\t\t\t\t\t'',\n\t\t\t\t\t\t'\"\"',\n\t\t\t\t\t'',\n\t\t\t\t].join('');\n\t\t\t\tif ( shouldLazyLoad ) {\n\t\t\t\t\timageMarkup = [\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t'\"\"',\n\t\t\t\t\t\t'',\n\t\t\t\t\t].join('');\n\t\t\t\t}\n\n\t\t\t\tvar jmhID = formId + '_' + fieldId;\n\t\t\t\tchoiceText = gform.applyFilters( 'gfic_choice_text', fieldLabel, selectedPrice, price, formId, fieldId, index );\n\t\t\t\tchoiceText = gform.applyFilters( `gfic_choice_text_${formId}`, choiceText, selectedPrice, price, formId, fieldId, index );\n\t\t\t\tchoiceText = gform.applyFilters( `gfic_choice_text_${formId}_${fieldId}`, choiceText, selectedPrice, price, formId, fieldId, index );\n\t\t\t\tchoiceText = gform.applyFilters( `gfic_choice_text_${formId}_${fieldId}_${index}`, choiceText, selectedPrice, price, formId, fieldId, index );\n\n\t\t\t\tchoicePrice = gform.applyFilters( 'gfic_choice_price', priceLabel, selectedPrice, price, formId, fieldId, index );\n\t\t\t\tchoicePrice = gform.applyFilters( `gfic_choice_price_${formId}`, choicePrice, selectedPrice, price, formId, fieldId, index );\n\t\t\t\tchoicePrice = gform.applyFilters( `gfic_choice_price_${formId}_${fieldId}`, choicePrice, selectedPrice, price, formId, fieldId, index );\n\t\t\t\tchoicePrice = gform.applyFilters( `gfic_choice_price_${formId}_${fieldId}_${index}`, choicePrice, selectedPrice, price, formId, fieldId, index );\n\t\t\t\tmarkup = [\n\t\t\t\t\timageMarkup,\n\t\t\t\t\t'' + choiceText + '',\n\t\t\t\t\t'' + choicePrice + ''\n\t\t\t\t];\n\n\t\t\t\tif ($field.hasClass('image-choices-use-lightbox') && $option.find('.image-choices-lightbox-btn').length) {\n\t\t\t\t\tvar escapedTitle = (fieldLabel + '').replace(/[\\\\\"']/g, '\\\\$&').replace(/\\u0000/g, '\\\\0');\n\t\t\t\t\tvar thumbUrl = thisOptionImage;\n\t\t\t\t\tvar imgUrl = thisOptionLightboxSrc;\n\t\t\t\t\tif (typeof imgUrl === 'undefined' || imgUrl === '') {\n\t\t\t\t\t\timgUrl = thumbUrl;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (imgUrl !== '') {\n\t\t\t\t\t\t$option.find('.image-choices-lightbox-btn').attr('href', imgUrl).data('caption', escapedTitle).attr('rel', fieldId);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif ( typeof jetslothMatchHeights !== 'undefined' ) {\n\t\t\t\t\tsetTimeout(() => jetslothMatchHeights, 100);\n\t\t\t\t}\n\n\t\t\t\tif ( shouldLazyLoad ) {\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t$option.find('.jetsloth-lazy').each(function(){\n\t\t\t\t\t\t\timageChoices.observer.observe( this );\n\t\t\t\t\t\t});\n\t\t\t\t\t}, 100);\n\t\t\t\t}\n\t\t\t});\n\n\t\t}\n\n\t\tvar choiceHtml = gform.applyFilters( 'gfic_choice_html', markup.join(''), choiceText, choicePrice, selectedPrice, price, formId, fieldId, index );\n\t\tchoiceHtml = gform.applyFilters( `gfic_choice_html_${formId}`, choiceHtml, choiceText, choicePrice, selectedPrice, price, formId, fieldId, index );\n\t\tchoiceHtml = gform.applyFilters( `gfic_choice_html_${formId}_${fieldId}`, choiceHtml, choiceText, choicePrice, selectedPrice, price, formId, fieldId, index );\n\t\tchoiceHtml = gform.applyFilters( `gfic_choice_html_${formId}_${fieldId}_${index}`, choiceHtml, choiceText, choicePrice, selectedPrice, price, formId, fieldId, index );\n\t\treturn choiceHtml;\n\t};\n\twindow.imageChoices_gform_format_option_label = imageChoices.gform_format_option_label;// legacy support added in 1.3.0\n\n\n\twindow.gform_format_option_label = function(fullLabel, fieldLabel, priceLabel, selectedPrice, price, formId, fieldId, index) {\n\n\t\tif ( typeof gftt !== 'undefined' && typeof gftt.option_label_reinit !== 'undefined' ) {\n\t\t\tgftt.option_label_reinit( formId, fieldId );\n\t\t}\n\n\t\t// Added for cross compat with Color Picker\n\t\tvar $field = $('#field_'+formId+'_'+fieldId);\n\t\tif ($field.length && $field.hasClass('color-picker-field') && typeof window.colorPicker_gform_format_option_label === 'function') {\n\t\t\treturn window.colorPicker_gform_format_option_label(fullLabel, fieldLabel, priceLabel, selectedPrice, price, formId, fieldId, index);\n\t\t}\n\n\t\treturn imageChoices.gform_format_option_label(fullLabel, fieldLabel, priceLabel, selectedPrice, price, formId, fieldId, index);\n\t}\n\n\n\timageChoices.onImageLoaded = function( element ) {\n\n\t\tvar $el = $(element);\n\t\t$el.addClass('jetsloth-lazy-loaded');\n\n\t\tvar $field = $el.closest('.gfield');\n\t\tif ( !$field.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar index = $el.closest('li').index();\n\t\tvar loadedChoices = ( typeof $field.data('jetsloth-lazy-loaded') !== 'undefined' ) ? $field.data('jetsloth-lazy-loaded') : [];\n\n\t\tloadedChoices.push( index );\n\t\t$field.data('jetsloth-lazy-loaded', loadedChoices);\n\n\t\tif ( typeof jetslothMatchHeights !== 'undefined' ) {\n\t\t\tsetTimeout(() => jetslothMatchHeights, 100);\n\t\t}\n\t};\n\n\timageChoices.loadImage = function( element ) {\n\n\t\tvar $el = $(element);\n\n\t\tif ( typeof $el.data('lazy-bg') !== 'undefined' && $el.data('lazy-bg') !== '' ) {\n\t\t\tvar img = new Image();\n\t\t\timg.onload = function() {\n\t\t\t\t$el.css('background-image', 'url(' + $el.data('lazy-bg') + ')');\n\t\t\t\timageChoices.onImageLoaded( $el );\n\t\t\t};\n\t\t\timg.src = $el.data('lazy-bg');\n\t\t}\n\t\telse if ( typeof $el.data('lazy-src') !== 'undefined' && $el.data('lazy-src') !== '' ) {\n\t\t\t$el.on('load', function(){\n\t\t\t\timageChoices.onImageLoaded( $el );\n\t\t\t});\n\t\t\t$el.attr('src', $el.data('lazy-src'));\n\t\t}\n\n\t};\n\n\n\timageChoices.lazyLoad = function( elements ) {\n\n\t\t$.each(elements, function(i, item){\n\t\t\tif (item.intersectionRatio > 0) {\n\t\t\t\timageChoices.observer.unobserve(item.target);\n\t\t\t\timageChoices.loadImage(item.target);\n\t\t\t};\n\t\t});\n\n\t};\n\n\tvar lazyLoadInit = false;\n\timageChoices.InitLazyLoad = function( form_id, current_page ) {\n\n\t\tif ( !lazyLoadInit ) {\n\t\t\t// Set up the intersection observer to detect when to define\n\t\t\t// and load the real image source\n\t\t\tvar lazyRootMargin = gform.applyFilters( 'gfic_lazy_root_margin', \"100px\", form_id, current_page );\n\t\t\tlazyRootMargin = gform.applyFilters( `gfic_lazy_root_margin_${form_id}`, lazyRootMargin, form_id, current_page );\n\t\t\tlazyRootMargin = gform.applyFilters( `gfic_lazy_root_margin_${form_id}_${current_page}`, lazyRootMargin, form_id, current_page );\n\n\t\t\tvar lazyThreshold = gform.applyFilters( 'gfic_lazy_threshold', 1.0, form_id, current_page );\n\t\t\tlazyThreshold = gform.applyFilters( `gfic_lazy_threshold_${form_id}`, lazyThreshold, form_id, current_page );\n\t\t\tlazyThreshold = gform.applyFilters( `gfic_lazy_threshold_${form_id}_${current_page}`, lazyThreshold, form_id, current_page );\n\t\t\tvar lazyLoadOptions = {\n\t\t\t\trootMargin: lazyRootMargin,\n\t\t\t\tthreshold: lazyThreshold\n\t\t\t};\n\t\t\timageChoices.observer = new IntersectionObserver(imageChoices.lazyLoad, lazyLoadOptions);\n\t\t\tlazyLoadInit = true;\n\t\t}\n\n\t\tvar $form = $('#gform_' + form_id);\n\t\tvar $page = ( typeof current_page !== 'undefined' ) ? $form.find('#gform_page_' + form_id + '_' + current_page) : [];\n\t\tvar $elements = ( $page.length ) ? $page.find('.image-choices-field .jetsloth-lazy, .product-image-field .jetsloth-lazy') : $form.find('.image-choices-field .jetsloth-lazy, .product-image-field .jetsloth-lazy');\n\t\t$elements.each(function(){\n\t\t\timageChoices.observer.observe( this );\n\t\t});\n\n\t}\n\n})(jQuery);\n"],"mappings":"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"}