';
var keys = Object.keys( options );
var keys_inner;
content += '
';
var icon_set = icon.slice( 0, -5 );
var icon_code = icon.substr( -4 );
var icon_name = '';
for ( var c = 0; c < keys.length; c++ ) {
keys_inner = Object.keys( options[ keys[ c ] ] );
for ( var j = 0; j < keys_inner.length; j++ ) {
if ( icon == options[ keys[ c ] ][ keys_inner[ j ] ] ) {
icon_name = keys_inner[ j ];
}
}
}
if ( icon_code != '' ) {
icon_code = '' + icon_code;
}
if ( window.bt_bb.fe ) {
content += '
';
} else {
content += '
';
}
content += '
' + icon_name + '
';
var clear_display = icon_name != '' ? 'block' : 'none';
//if ( ! window.bt_bb.fe ) {
content += '
';
//}
content += '
';
content += '
';
content += '
';
content += '';
content += '
';
content += '
';
for ( var n = 0; n < keys.length; n++ ) {
content += '
' + keys[ n ] + '
';
keys_inner = Object.keys( options[ keys[ n ] ] );
for ( var m = 0; m < keys_inner.length; m++ ) {
var icon = options[ keys[ n ] ][ keys_inner[ m ] ];
var icon_set = icon.slice( 0, -5 );
var icon_code = icon.substr( -4 );
if ( window.bt_bb.fe ) {
content += '
';
} else {
content += '
';
}
}
}
content += '
';
content += '
';
return content;
}
window.bt_bb_iconpicker_init = function( callback ) {
const $ = jQuery;
// toggle
var toggle = function( e ) {
$( this ).next().toggle();
$( this ).next().next().toggle();
}
// select
var select = function( e ) {
var select_preview = $( this ).closest( '.bt_bb_iconpicker' ).find( '.bt_bb_iconpicker_select .bt_bb_icon_preview' );
var icon = $( this ).data( 'icon' );
select_preview.attr( 'data-icon', icon );
select_preview.attr( 'data-icon-code', $( this ).data( 'icon-code' ) );
select_preview.removeClass();
select_preview.addClass( $( this ).attr( 'class' ) );
if ( callback == 'widgets' ) {
$( this ).closest( '.bt_bb_iconpicker_widget_container' ).find( 'input' ).val( $( this ).data( 'icon' ) );
$( this ).closest( '.bt_bb_iconpicker_widget_container' ).find( 'input' ).trigger( 'change' ); // customize
} else if ( callback == 'override' ) {
var hidden_el = $( this ).closest( '.rwmb-boldthemestext-clone' ).find( 'input[type="hidden"]' );
var key_el = $( this ).closest( '.rwmb-boldthemestext-clone' ).find( 'select' );
var key = key_el.val();
if ( key != '' ) {
hidden_el.attr( 'value', key + ':' + $( this ).data( 'icon' ) );
} else {
hidden_el.attr( 'value', '' );
}
}
if ( window.bt_bb.fe ) {
select_preview.css( 'font-family', $( this ).css( 'font-family' ) );
}
$( this ).closest( '.bt_bb_iconpicker' ).find( '.bt_bb_iconpicker_select .bt_bb_iconpicker_select_text' ).html( $( this ).attr( 'title' ) );
$( this ).closest( '.bt_bb_iconpicker' ).find( '.bt_bb_iconpicker_clear' ).show();
$( this ).parent().hide();
$( this ).parent().prev().find( 'input' ).val( '' ).trigger( 'keyup' );
$( this ).parent().prev().hide();
if ( window.bt_bb.fe ) {
callback( select_preview );
}
}
// clear
var clear = function( e ) {
e.stopPropagation();
var select_preview = $( this ).closest( '.bt_bb_iconpicker' ).find( '.bt_bb_iconpicker_select .bt_bb_icon_preview' );
select_preview.attr( 'data-icon', '' );
select_preview.attr( 'data-icon-code', '' );
select_preview.parent().find( '.bt_bb_iconpicker_select_text' ).html( '' );
$( this ).closest( '.bt_bb_iconpicker' ).find( 'input' ).val( '' ); // bt_menu_admin.php (shoperific plugin)
if ( callback == 'widgets' ) {
$( this ).closest( '.bt_bb_iconpicker_widget_container' ).find( 'input' ).val( '' );
$( this ).closest( '.bt_bb_iconpicker_widget_container' ).find( 'input' ).trigger( 'change' );
} else if ( callback == 'override' ) {
var hidden_el = $( this ).closest( '.rwmb-boldthemestext-clone' ).find( 'input[type="hidden"]' );
hidden_el.attr( 'value', '' );
}
$( this ).parent().next().find( 'input' ).val( '' ).trigger( 'keyup' );
$( this ).parent().next().hide();
$( this ).parent().next().next().hide();
$( this ).hide();
if ( window.bt_bb.fe ) {
callback( select_preview );
}
}
// filter
var filter = function( e ) {
var val = $( this ).val();
var iconpicker = $( this ).closest( '.bt_bb_iconpicker' );
var title_show = [];
iconpicker.find( '.bt_bb_iconpicker_icons .bt_bb_icon_preview' ).each(function() {
var title = $( this ).attr( 'title' );
var patt = new RegExp( val, 'i' );
iconpicker.find( '.bt_bb_iconpicker_title' ).hide();
if ( ! patt.test( title ) ) {
$( this ).hide();
} else {
title_show.push( $( this ).data( 'icon-set' ) );
$( this ).show();
}
});
for ( const i in title_show ) {
iconpicker.find( '.bt_bb_iconpicker_title[data-icon-set="' + title_show[ i ] + '"]' ).show();
if ( title_show[ i ] == 'fa' ) {
iconpicker.find( '.bt_bb_iconpicker_title[data-icon-set="font awesome"]' ).show(); // backward compatiblity (one of BB default icon sets)
}
}
}
// iconpicker toggle list
if ( window.bt_bb.fe ) {
$( bt_bb_fe_dialog_content.shadowRoot.querySelectorAll( '.bt_bb_iconpicker_select' ) ).on( 'click', toggle );
} else {
if ( callback == 'widgets' ) {
$( 'body' ).on( 'click', '.bt_bb_iconpicker_widget_container .bt_bb_iconpicker_select', toggle );
} else {
$( '.bt_bb_iconpicker_select' ).on( 'click', toggle );
}
}
// iconpicker select
if ( window.bt_bb.fe ) {
$( bt_bb_fe_dialog_content.shadowRoot.querySelectorAll( '.bt_bb_iconpicker_icons .bt_bb_icon_preview' ) ).on( 'click', select );
} else {
if ( callback == 'widgets' ) {
$( 'body' ).on( 'click', '.bt_bb_iconpicker_icons .bt_bb_icon_preview', select );
} else {
$( '.bt_bb_iconpicker_icons .bt_bb_icon_preview' ).on( 'click', select );
}
}
// iconpicker clear
if ( window.bt_bb.fe ) {
$( bt_bb_fe_dialog_content.shadowRoot.querySelectorAll( '.bt_bb_iconpicker .bt_bb_iconpicker_clear' ) ).on( 'click', clear );
} else {
if ( callback == 'widgets' ) {
$( 'body' ).on( 'click', '.bt_bb_iconpicker_widget_container .bt_bb_iconpicker_clear', clear );
} else {
$( '.bt_bb_iconpicker .bt_bb_iconpicker_clear' ).on( 'click', clear );
}
}
// iconpicker filter
if ( window.bt_bb.fe ) {
$( bt_bb_fe_dialog_content.shadowRoot.querySelectorAll( '.bt_bb_iconpicker .bt_bb_filter' ) ).on( 'keyup', filter );
} else {
if ( callback == 'widgets' ) {
$( 'body' ).on( 'keyup', '.bt_bb_iconpicker_widget_container .bt_bb_filter', filter );
} else {
$( '.bt_bb_iconpicker .bt_bb_filter' ).on( 'keyup', filter );
}
}
}
window.bt_bb_image_sortable = function( container, attr_obj ) {
if ( ! container.length ) return; // attach_image (single image)
const $ = jQuery;
// https://github.com/SortableJS/Sortable
new window.bt_bb_sortable.Sortable(container[0], {
animation: 150,
onSort: function( evt ) {
var dialog_item = $( evt.item ).closest( '.bt_bb_dialog_item' );
var this_param_name = dialog_item.data( 'param_name' );
var ids = '';
dialog_item.find( '.bt_bb_sortable_item' ).each(function() {
ids += $( this ).data( 'id' ) + ',';
});
ids = ids.slice( 0, -1 );
attr_obj[ this_param_name ] = ids;
if ( window.bt_bb.fe ) {
window.bt_bb.editing_elements.data( 'bt-bb-fe-atts', attr_obj );
window.bt_bb.editing_elements_atts = attr_obj;
window.bt_bb_fe_ajax_preview( [] );
}
}
});
}
window.bt_bb_delete_images = function( that, attr_obj ) {
const $ = jQuery;
var param_name = $( that ).closest( '.bt_bb_dialog_item' ).data( 'param_name' );
var container = $( that ).closest( '.bt_bb_dialog_image_container' );
$( that ).parent().remove();
var ids = '';
container.find( '.bt_bb_sortable_item' ).each(function() {
ids += $( this ).data( 'id' ) + ',';
});
ids = ids.slice( 0, -1 );
if ( ids == '' ) {
container.parent().find( 'input[type="text"]' ).prop( 'disabled', false );
}
attr_obj[ param_name ] = ids;
}
window.bt_bb_select_images = function( that, attr_obj, callback ) {
const $ = jQuery;
var key = window.bt_bb_get_key();
var root = $( that ).closest( '.bt_bb_dialog_item' );
var container = root.find( '.bt_bb_dialog_image_container' );
var param_name = root.data( 'param_name' );
var type = root.data( 'type' );
var multiple_option = 'add';
if ( type == 'attach_image' ) {
multiple_option = false;
}
var insertImage = wp.media.controller.Library.extend({
defaults: _.defaults({
id: key,
title: window.bt_bb_text.select_images,
allowLocalEdits: false,
displaySettings: false,
displayUserSettings: false,
multiple: multiple_option,
type: 'image'
}, wp.media.controller.Library.prototype.defaults )
});
var frame = wp.media({
button: { text: window.bt_bb_text.select },
state: key,
states: [
new insertImage()
]
});
// close
frame.on( 'select', function() {
var selection = frame.state( key ).get( 'selection' );
var content = '';
var ids = '';
selection.each(function( img ) {
if ( img.attributes.sizes !== undefined ) {
var img_url = '';
if ( img.attributes.sizes.thumbnail !== undefined ) {
img_url = img.attributes.sizes.thumbnail.url;
} else {
img_url = img.attributes.sizes.full.url;
}
ids += img.id + ',';
window.bt_bb.cache[ img.id ] = {};
window.bt_bb.cache[ img.id ].url = img_url;
window.bt_bb.cache[ img.id ].title = img.attributes.title;
content += '