geno/wp-content/plugins/cartflows/admin/assets/js/product-page.js
2024-02-01 11:54:18 +00:00

132 lines
3 KiB
JavaScript

( function ( $ ) {
const wcf_flows_search_init = function () {
const product_search = $( '.wcf-flows-search' );
if ( product_search.length > 0 ) {
$( 'select.wcf-flows-search' ).select2();
const nonce = $(
'input[name="wcf_json_search_flows_nonce"]'
).val();
$( 'select.wcf-flows-search' )
.filter( ':not(.enhanced)' )
.each( function () {
let select2_args = {
allowClear: $( this ).data( 'allow_clear' )
? true
: false,
placeholder: $( this ).data( 'placeholder' ),
minimumInputLength: $( this ).data(
'minimum_input_length'
)
? $( this ).data( 'minimum_input_length' )
: '3',
escapeMarkup( m ) {
return m;
},
ajax: {
url: ajaxurl,
dataType: 'json',
quietMillis: 250,
method: 'post',
data( params ) {
return {
term: params.term,
action:
$( this ).data( 'action' ) ||
'wcf_json_search_flows',
security: nonce,
};
},
processResults( data ) {
const terms = [];
if ( data ) {
$.each( data, function ( id, text ) {
terms.push( {
id,
text,
} );
} );
}
return { results: terms };
},
cache: true,
},
};
select2_args = $.extend(
select2_args,
getEnhancedSelectFormatString()
);
$( this ).select2( select2_args ).addClass( 'enhanced' );
} );
}
};
if ( typeof getEnhancedSelectFormatString === 'undefined' ) {
// This is the optional function. Not used every time.
/* eslint-disable */
function getEnhancedSelectFormatString() {
const formatString = {
noResults() {
return wc_enhanced_select_params.i18n_no_matches;
},
errorLoading() {
return wc_enhanced_select_params.i18n_searching;
},
inputTooShort( args ) {
const remainingChars = args.minimum - args.input.length;
if ( 1 === remainingChars ) {
return wc_enhanced_select_params.i18n_input_too_short_1;
}
return wc_enhanced_select_params.i18n_input_too_short_n.replace(
'%qty%',
remainingChars
);
},
inputTooLong( args ) {
const overChars = args.input.length - args.maximum;
if ( 1 === overChars ) {
return wc_enhanced_select_params.i18n_input_too_long_1;
}
return wc_enhanced_select_params.i18n_input_too_long_n.replace(
'%qty%',
overChars
);
},
maximumSelected( args ) {
if ( args.maximum === 1 ) {
return wc_enhanced_select_params.i18n_selection_too_long_1;
}
return wc_enhanced_select_params.i18n_selection_too_long_n.replace(
'%qty%',
args.maximum
);
},
loadingMore() {
return wc_enhanced_select_params.i18n_load_more;
},
searching() {
return wc_enhanced_select_params.i18n_searching;
},
};
const language = { language: formatString };
return language;
}
/* eslint-enable */
}
$( function () {
wcf_flows_search_init();
} );
} )( jQuery );