var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; }; if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } } { let window = _____WB$wombat$assign$function_____("window"); let self = _____WB$wombat$assign$function_____("self"); let document = _____WB$wombat$assign$function_____("document"); let location = _____WB$wombat$assign$function_____("location"); let top = _____WB$wombat$assign$function_____("top"); let parent = _____WB$wombat$assign$function_____("parent"); let frames = _____WB$wombat$assign$function_____("frames"); let opener = _____WB$wombat$assign$function_____("opener"); /* PAGELAYER http://pagelayer.com/ (c) Pagelayer Team */ var pagelayer_doc_width; // Things to do on document load jQuery(document).ready(function(){ // Current width pagelayer_doc_width = jQuery(document).width(); // Rows jQuery('.pagelayer-row-stretch-full').each(function(){ pagelayer_pl_row_full(jQuery(this)); }); jQuery('.pagelayer-anim_heading').each(function(){ pagelayer_anim_heading(jQuery(this)); }); // Setup any sliders jQuery('.pagelayer-image_slider').each(function(){ pagelayer_pl_image_slider(jQuery(this)); }); jQuery('.pagelayer-accordion').each(function(){ pagelayer_pl_accordion(jQuery(this)); }); jQuery('.pagelayer-collapse').each(function(){ pagelayer_pl_collapse(jQuery(this)); }); jQuery('.pagelayer-tabs').each(function(){ pagelayer_pl_tabs(jQuery(this)); }); jQuery('.pagelayer-video').each(function(){ pagelayer_pl_video(jQuery(this)); }); jQuery('.pagelayer-image').each(function(){ pagelayer_pl_image(jQuery(this)); }); jQuery('.pagelayer-grid_gallery').each(function(){ pagelayer_pl_grid_lightbox(jQuery(this)); }); jQuery('.pagelayer-row, .pagelayer-inner_row, .pagelayer-col').each(function(){ pagelayer_pl_row_video(jQuery(this)); }); jQuery('.pagelayer-parallax-window img').each(function(){ pagelayer_pl_row_parallax(jQuery(this)); }); jQuery('.pagelayer-recaptcha').each(function(){ pagelayer_recaptcha_loader(jQuery(this)); }); jQuery('.pagelayer-wp_menu').each(function(){ pagelayer_primary_menu(jQuery(this)); }); jQuery('.pagelayer-contact').each(function(){ pagelayer_contact_form(jQuery(this)); }); jQuery('.pagelayer-countdown').each(function(){ pagelayer_countdown(jQuery(this)); }); jQuery('.pagelayer-testimonial_slider').each(function(){ pagelayer_pl_testimonial_slider(jQuery(this)); }); jQuery('.pagelayer-social_grp').each(function(){ pagelayer_pl_social_profile(jQuery(this)); }); jQuery('.pagelayer-scroll-to-element').each(function () { pagelayer_button_element_scroll(jQuery(this)); }); jQuery('.pagelayer-bgimg-slider').each(function () { pagelayer_pl_row_slider(jQuery(this)); }); jQuery('.pagelayer-stars-container').each(function(){ pagelayer_stars(jQuery(this)); }); jQuery('.pagelayer-infinite-posts').each(function(){ pagelayer_infinite_posts(jQuery(this)); }); jQuery('.pagelayer-youtube-video').each(function(){ pagelayer_create_yt_player(jQuery(this)); }); // We need to call the is visible thing to show the widgets loading effect if(jQuery('.pagelayer-counter-content,.pagelayer-progress-container').length > 0){ // First Call pagelayer_counter(); pagelayer_progress(); jQuery(window).scroll(function() { pagelayer_progress(); pagelayer_counter(); }); } new WOW({boxClass:'pagelayer-wow'}).init(); // Remove pagelayer-wow temporary style after wow init added from wp_head jQuery('#pagelayer-wow-animation-style').remove(); }); // For automatic row change jQuery(window).resize(function() { // Primary Menu jQuery('.pagelayer-wp_menu').each(function(){ pagelayer_primary_menu(jQuery(this)); }); var new_vw = jQuery(document).width(); if(new_vw == pagelayer_doc_width){ return false; } pagelayer_doc_width = new_vw; // Remove style jQuery('.pagelayer-row-stretch-full').removeAttr('style'); // Set a timeout to prevent bubbling setTimeout(function(){ jQuery('.pagelayer-row-stretch-full').each(function(){ pagelayer_pl_row_full(jQuery(this)); }); }, 200); }); // Check if element is visible function pagelayer_isVisible(ele) { var offset = jQuery(window).height(); var viewTop = window.pageYOffset; var viewBottom = viewTop + offset - Math.min(ele.height(), ele.innerHeight()); var top = ele.offset().top; var bottom = top + ele.innerHeight(); if(top <= viewBottom && bottom >= viewTop){ return true; } return false; } // Get media mode function pagelayer_get_media_mode(){ if(window.matchMedia("(min-width: "+ (pagelayer_settings['tablet_breakpoint'] + 1) +"px)").matches){ return 'desktop'; } if(window.matchMedia("(max-width: "+ pagelayer_settings['tablet_breakpoint'] +"px) and (min-width: "+ (pagelayer_settings['mobile_breakpoint'] + 1) +"px)").matches){ return 'tablet'; } if(window.matchMedia("(max-width: "+ pagelayer_settings['mobile_breakpoint'] +"px)").matches){ return 'mobile'; } return 'desktop'; } // Row background video and parallax function pagelayer_pl_row_video(jEle){ var vEle = jEle.children('.pagelayer-background-video'); // Not a video in the element if(vEle.length < 1){ return true; } var setup = vEle.attr('pagelayer-setup'); if(setup && setup.length > 0){ return true; } var frame_width = vEle.width(); var frame_height = (frame_width/100)*56.25; var height = vEle.height(); if(frame_height < height){ frame_height = height; } vEle.children().css({'width':frame_width+'px','height':frame_height+'px'}); if(vEle.find('.pagelayer-youtube-video').length > 0){ pagelayer_create_yt_player(vEle.find('.pagelayer-youtube-video')); } vEle.attr('pagelayer-setup', 1); } function pagelayer_create_yt_player(jEle){ var pEle = jEle.parent(), aspectRatioSetting = '16:9', containerWidth = pEle.outerWidth(), containerHeight = pEle.outerHeight(), aspectRatioArray = aspectRatioSetting.split(':'), aspectRatio = aspectRatioArray[0] / aspectRatioArray[1], isWidthFixed = containerWidth / containerHeight > aspectRatio, width= isWidthFixed ? containerWidth : containerHeight * aspectRatio, height= isWidthFixed ? containerWidth / aspectRatio : containerHeight; var yt_api_interval = setInterval(function(){ if(!(window.YT && YT.loaded)){ return } clearInterval(yt_api_interval); var settings ={}; settings.loop = jEle.attr('data-loop'); settings.videoid = jEle.attr('data-videoid'); settings.mute = jEle.attr('data-mute'); var player; var onPlayerReady = function(event) { event.target.playVideo(); } player = new YT.Player(jEle[0], { width: width, height: height, videoId: settings.videoid, playerVars: { controls: 0, rel: 0, loop: settings.loop, mute:settings.mute, playsinline: 1, playlist: settings.videoid, }, events: { 'onReady': onPlayerReady, } }); }, 500); } // Row background parallax function pagelayer_pl_row_parallax(jEle){ //Parallax background var setup = jEle.attr('pagelayer-setup'); if(setup && setup.length > 0){ return true; } new pagelayerParallax(jEle); jEle.attr('pagelayer-setup', 1); } // Adjust rows function pagelayer_pl_row_full(jEle){ // Get current width var vw = jQuery('html').width(); // Now give the row the width jEle.css({'width': vw, 'max-width': '100vw'}); // Set the offset jEle.offset({left: 0}); // Set a timeout as well as some themes can interfere with us setTimeout(function(){ jEle.offset({left: 0}); }, 500); }; // Modal open function pagelayer_render_pl_modal(param){ jQuery(param).parent().parent().find('.pagelayer-modal-content').show(); }; // Modal close function pagelayer_pl_modal_close(param){ jQuery(param).parent().hide(); } // Setup the image slider function pagelayer_pl_image_slider(jEle){ var ul = jQuery(jEle.find('.pagelayer-image-slider-ul')); // Build the options var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-'); pagelayer_owl_init(jEle, ul, options); } function pagelayer_get_tab_ele(temp_tabCont){ if(!pagelayer_empty(temp_tabCont.children('.pagelayer-ele-wrap').length)){ return temp_tabCont.children('.pagelayer-ele-wrap').children('.pagelayer-tab'); }else{ return temp_tabCont.children('.pagelayer-tab'); } } function pagelayer_tab_show(el, pl_id) { var parent_id = jQuery(el).closest('.pagelayer-tabs').attr('pagelayer-id'); var temp_tabCont = jQuery('[pagelayer-id='+pl_id+']').closest('.pagelayer-tabcontainer'); pagelayer_get_tab_ele(temp_tabCont).hide(); jQuery('[pagelayer-id='+pl_id+']').show(); jQuery(el).parent().find('.pagelayer-tablinks').each(function(){ jQuery(this).removeClass('active'); }); jQuery(el).addClass("active"); } var pagelayer_tab_timers = {}; function pagelayer_pl_tabs(jEle) { var default_active = ''; var jEle_id = jEle.attr('pagelayer-id'); var tabCont = jEle.children('.pagelayer-tabcontainer'); var children = pagelayer_get_tab_ele(tabCont); // Loop thru children.each(function(){ var tEle = jQuery(this); var pl_id = tEle.attr('pagelayer-id'); var title = tEle.attr('pagelayer-tab-title') || 'Tab'; var func = "pagelayer_tab_show(this, '"+pl_id+"')"; var icon = ''; if(tEle.attr('pagelayer-tab-icon')){ icon = tEle.attr('pagelayer-tab-icon'); } // Set the default tab if(tEle.attr('pagelayer-default_active') && !pagelayer_empty(pl_id)){ default_active = pl_id; } jEle.children('.pagelayer-tabs-holder').append(' '+title+''); }); // Set the default tab if(default_active.length > 0){ pagelayer_tab_show(jEle.find('[tab-id='+default_active+']'), default_active); // Set the first tab as active }else{ var first_tab = jEle.find('[tab-id]').first(); pagelayer_tab_show(first_tab, first_tab.attr('tab-id')); } try{ clearInterval(pagelayer_tab_timers[jEle_id]); }catch(e){}; var rotate = parseInt(jEle.attr('pagelayer-tabs-rotate')); // Are we to rotate if(rotate > 0){ var i= 0; pagelayer_tab_timers[jEle_id] = setInterval(function () { if(i >= children.length){ i = 0; } var tabCont = jEle.children('.pagelayer-tabcontainer'); var tmp_pl_ele = pagelayer_get_tab_ele(tabCont)[i]; var tmp_btn_ele = jEle.find('.pagelayer-tablinks')[i] var tmp_pl_id = jQuery(tmp_pl_ele).attr('pagelayer-id'); jEle.find('.pagelayer-tablinks').each(function(){ jQuery(this).removeClass('active'); }); jQuery(tmp_btn_ele).addClass("active"); pagelayer_tab_show(tmp_btn_ele, tmp_pl_id); i++; }, rotate); } } // Setup the Accordion function pagelayer_pl_accordion(jEle){ var holder = jEle.find('.pagelayer-accordion-holder'); var accHolder = jEle.find('.pagelayer-accordion_item'); var scrolltop = false; if(accHolder.length < 1){ return false; } var icon = holder.attr('data-icon'); var active_icon = holder.attr('data-active_icon'); accHolder.find('.pagelayer-accordion-tabs span i').attr('class', icon); var currentActiveTab = jEle.find('.pagelayer-accordion_item.active').first(); // Any URL HASH ? var hash = location.hash.slice(1); if(!pagelayer_empty(hash)){ var scrollTab = jEle.find('#'+hash); if(!pagelayer_empty(scrollTab) && scrollTab.length > 0){ currentActiveTab = scrollTab.closest('.pagelayer-accordion_item'); } } accHolder.find('.pagelayer-accordion-tabs').unbind('click'); accHolder.find('.pagelayer-accordion-tabs').click(function(){ var currentTab = jQuery(this).closest('.pagelayer-accordion_item'); if(currentTab.hasClass('active')){ currentTab.removeClass('active').children('.pagelayer-accordion-panel').slideUp('slow'); currentTab.find('.pagelayer-accordion-tabs span i').attr('class', icon); return true; } accHolder.find('.pagelayer-accordion-tabs span i').attr('class', icon); accHolder.removeClass('active').filter(function(index){ return accHolder[index]!=currentTab[0]; }).children('.pagelayer-accordion-panel').slideUp('slow'); currentTab.addClass('active').children('.pagelayer-accordion-panel').slideDown('slow'); currentTab.find('.pagelayer-accordion-tabs span i').attr('class', active_icon); }); // If active first tab from all active tabs currentActiveTab.removeClass('active'); currentActiveTab.find('.pagelayer-accordion-tabs').click(); } // Setup the Collapse function pagelayer_pl_collapse(jEle){ var holder = jEle.find('.pagelayer-collapse-holder'); var tabs = jEle.find('.pagelayer-accordion_item'); if(tabs.length < 1){ return false; } var setup = tabs.attr('pagelayer-setup'); var icon = holder.attr('data-icon'); var active_icon = holder.attr('data-active_icon'); // Any URL HASH ? var hash = location.hash.slice(1); if(!pagelayer_empty(hash)){ var scrollTab = jEle.find('#'+hash); if(!pagelayer_empty(scrollTab) && scrollTab.length > 0){ scrollTab.closest('.pagelayer-accordion_item').addClass('active'); } } var activeTabs = jEle.find('.pagelayer-accordion_item.active'); tabs.find('.pagelayer-accordion-tabs span i').attr('class', icon); jQuery(activeTabs).addClass('active').children('.pagelayer-accordion-panel').slideDown('slow'); jQuery(activeTabs).find('.pagelayer-accordion-tabs span i').attr('class', active_icon); // Already setup ? if(setup && setup.length > 0){ tabs.find('.pagelayer-accordion-tabs').unbind('click'); } tabs.find('.pagelayer-accordion-tabs').click(function(){ var currentTab = jQuery(this).closest('.pagelayer-accordion_item'); if(currentTab.hasClass('active')){ currentTab.removeClass('active').children('.pagelayer-accordion-panel').slideUp('slow'); currentTab.find('.pagelayer-accordion-tabs span i').attr('class', icon); return true; } currentTab.addClass('active').children('.pagelayer-accordion-panel').slideDown('slow'); currentTab.find('.pagelayer-accordion-tabs span i').attr('class', active_icon); }); // Set that we have setup everything tabs.attr('pagelayer-setup', 1); } // Counter function pagelayer_counter(){ jQuery('.pagelayer-counter-content').each(function(){ var jEle = jQuery(this); if(pagelayer_isVisible(jEle)){ var setup = jEle.attr('pagelayer-setup'); // Already setup ? if(setup && setup.length > 0){ return true; } var options = {}; options['duration'] = jEle.children('.pagelayer-counter-display').attr('pagelayer-counter-animation-duration'); options['delimiter'] = jEle.children('.pagelayer-counter-display').attr('pagelayer-counter-seperator-type'); options['toValue'] = jEle.children('.pagelayer-counter-display').attr('pagelayer-counter-last-value'); jEle.children('.pagelayer-counter-display').numerator( options ); // Set that we have setup everything jEle.attr('pagelayer-setup', 1); } }); } function pagelayer_progress(){ jQuery('.pagelayer-progress-container').each(function(){ var jEle = jQuery(this); if(pagelayer_isVisible(jEle)){ var setup = jEle.attr('pagelayer-setup'); if(setup && setup.length > 0){ return true; } var progress_width = jEle.children('.pagelayer-progress-bar').attr('pagelayer-progress-width'); if(progress_width == undefined){ progress_width = "1"; } var width = 0; var interval; var progress = function(){ if (width >= progress_width) { clearInterval(interval); } else { width++; jEle.children('.pagelayer-progress-bar').css('width', width + '%'); jEle.find('.pagelayer-progress-percent').text(width * 1 + '%'); } } interval = setInterval(progress, 30); jEle.attr('pagelayer-setup', 1); } }); } // Dismiss Alert Function function pagelayer_dismiss_alert(x){ if(!pagelayer_empty(pagelayer_is_live)){ return; } jQuery(x).parent().parent().fadeOut(); } // Video light box handler function pagelayer_pl_video(jEle){ var videoIframe = jEle.find('.pagelayer-video-iframe'); // Adding loop, autoplay and mute properties on video before loading videoIframe.on('load', function() { // Checking of video source if it is youtube or vimeo because // TODO: Need to check, if this is not local file then return if(jQuery(this)[0].src.indexOf('youtube.com') != -1 || jQuery(this)[0].src.indexOf('vimeo.com') != -1){ return; } var vidElm = jQuery(this).contents().find('video'); var vidSrc = (pagelayer_empty(vidElm[0].src)) ? vidElm.children()[0].src : vidElm[0].src; if(vidSrc[vidSrc.indexOf('&loop=')+6] == 1){ vidElm.attr('loop','loop'); } if(vidSrc[vidSrc.indexOf('&autoplay=')+10] == 0){ vidElm.removeAttr('autoplay'); vidElm[0].pause(); }else if(vidSrc[vidSrc.indexOf('&autoplay=')+10] == 1){ vidElm.attr('autoplay',''); vidElm.attr('playsinline',''); } if(vidSrc[vidSrc.indexOf('&mute=')+6] == 1){ vidElm[0].muted = "muted"; vidElm.attr('muted',''); } }); // A tag will be there ONLY if the lightbox is on var overlayval = jEle.find('.pagelayer-video-overlay'); var a = jEle.find(".pagelayer-video-holder a"); // No lightbox if(a.length < 1 && pagelayer_empty(overlayval)){ return; } a.nivoLightbox({ effect: "fadeScale", }); jEle.find(".pagelayer-video-holder .pagelayer-video-overlay").on("click", function(ev) { var target = jQuery(ev.target); if (!target.parent("a").length) { videoIframe[0].src = videoIframe[0].src.replace("&autoplay=0", "rel=0&autoplay=1"); jQuery(this).hide(); } }); } // Image light box handler function pagelayer_pl_image(jEle){ // Drag and Drop function for image if (typeof pagelayer_preDAndD_image !== "undefined") { pagelayer_preDAndD_image(jEle); } // A tag will be there ONLY if the lightbox is on var a = jEle.find("[pagelayer-image-link-type=lightbox]"); // No lightbox if(a.length < 1){ return; } a.nivoLightbox({ effect: "fadeScale", }); } function pagelayer_stars(jEle){ var setup = jEle.attr('pagelayer-setup'); if(setup && setup.length > 0){ return true; } var count = jEle.attr('pagelayer-stars-count'); if (isNaN(count)) { count = '0'; } i = 0; var stars = ""; while(i < count){ stars +='
'; i++; } jEle.empty(); jEle.append(stars); var starsval = jEle.attr('pagelayer-stars-value'); if (isNaN(starsval)) { starsval = count; } starsval = starsval.split('.'); var fullstars = starsval[0]; var value = starsval[1]; var halfstar = parseInt(fullstars) + 1; var emptystars = parseInt(fullstars) + 2; jEle.children('.pagelayer-stars-icon').attr("class","pagelayer-stars-icon"); jEle.children('.pagelayer-stars-icon:nth-child(-n+'+ fullstars +')').addClass('pagelayer-stars-full'); if(value != undefined){ jEle.children('.pagelayer-stars-icon:nth-child('+ halfstar +')').addClass('pagelayer-stars-'+value); }else{ jEle.children('.pagelayer-stars-icon:nth-child('+ halfstar +')').addClass('pagelayer-stars-empty'); } jEle.children('.pagelayer-stars-icon:nth-child(n+'+ emptystars +')').addClass('pagelayer-stars-empty'); jEle.attr('pagelayer-setup', 1); } // Grid Gallery pagination Off On function function pagelayer_pl_grid_paginate(gridCont, pagination, pageValue, gridValue){ gridCont.hide(); pagination.removeClass('active'); pagination.eq(pageValue).addClass('active'); gridCont.eq(gridValue).show(); } //Grid Gallery Lightbox function pagelayer_pl_grid_lightbox(jEle){ // Grid Gallery pagination settings var gridCont = jEle.find('.pagelayer-grid-gallery-container').children(); var pagination = jEle.find('.pagelayer-grid-gallery-pagination ul').children(); gridCont.hide(); gridCont.eq(0).show(); // Adding event listners to pagination jEle.find('.pagelayer-grid-page-item').each(function(){ jQuery(this).on('click', function(event){ var text = jQuery(this).text(); switch(text){ case '«': pagelayer_pl_grid_paginate(gridCont, pagination, 1, 0); break; case '»': pagelayer_pl_grid_paginate(gridCont, pagination, (pagination.length-2), (gridCont.length-1)); break; default: pagelayer_pl_grid_paginate(gridCont, pagination, text, text-1); break; } }); }); // A tag will be there ONLY if the lightbox is on var a = jEle.find("[pagelayer-grid-gallery-type=lightbox]"); // No lightbox if(a.length < 1){ return; } a.nivoLightbox({ effect: "fadeScale", keyboardNav: true, clickImgToClose: false, clickOverlayToClose: true, }); } // Is string? function pagelayer_is_string(str){ if(typeof str == 'string'){ return true; } return false; } // PHP equivalent empty() function pagelayer_empty(mixed_var) { var undef, key, i, len; var emptyValues = [undef, null, false, 0, '', '0']; for (i = 0, len = emptyValues.length; i < len; i++) { if (mixed_var === emptyValues[i]) { return true; } } if (typeof mixed_var === 'object') { for (key in mixed_var) { // TODO: should we check for own properties only? //if (mixed_var.hasOwnProperty(key)) { return false; //} } return true; } return false; }; function pagelayer_fetch_dataAttrs(ele, prefix){ var options = {}; jQuery.each(ele.get(0).attributes, function(i, attrib){ //console.log(attrib); if(attrib.name.includes(prefix)){ var opt_name = attrib.name.substring(prefix.length); // Check for any Uppercase attribute if(opt_name.includes('-')){ opt_name = opt_name.split('-'); //console.log(opt_name); var opt_arr = []; jQuery.each(opt_name, function(key, value) { if(key != 0){ opt_arr.push(value.charAt(0).toUpperCase() + value.slice(1)); }else{ opt_arr.push(value); } }); //console.log(opt_arr); opt_name = opt_arr.join(''); } // Make the values correct var val = attrib.value; if(val == 'true') val = true; if(val == 'false') val = false; if(jQuery.isNumeric(val)) val = parseInt(val); options[opt_name] = val; } }); //console.log(options); if(options['controls']){ switch(options['controls']){ case 'arrows': options['nav'] = true; options['dots'] = false; break; case 'pager': options['dots'] = true; options['nav'] = false; break; case 'none': options['nav'] = false; options['dots'] = false; break; } }else{ options['nav'] = true; options['dots'] = true; } if(options['animateIn']){ switch(options['controls']){ case 'horizontal': options['animateIn'] = 'slideInLeft'; break; case 'vertical': options['animateIn'] = 'slideInDown'; break; case 'kenburns': options['animateIn'] = 'zoomIn'; break; default: options['animateIn'] = options['animateIn']; } } if(!options['items']){ options['items'] = 1; } options['responsive'] = { 0:{items: 1}, 500:{items: options['items']} } options['responsiveRefreshRate'] = 1000; // If we are in editor don't loop the Owl items if (window.location.href.indexOf('pagelayer-live=1') > -1) { //console.log('here'); options['loop'] = false; } return options; } function pagelayer_owl_init(jEle, ul, options){ //console.log(options); var setup = jEle.attr('pagelayer-setup'); if( options.navtext ) { var right = options.navtext.replace('left','right'); options.navText = [``, ``]; } // Already setup ? if(setup && setup.length > 0){ return true; } var owlCar = ul.pagelayerOwlCarousel(options); // Refreshing Image slider after first load of page. setTimeout(function(){ owlCar.trigger('refresh.owl.carousel'); },700); // To prevent slider drag inside the editable area jEle.on('mousedown', function(e){ var target = e.target; var isEditable = jQuery(target).closest('[contenteditable="true"]'); if(isEditable.length < 1){ return; } isEditable.on('mousedown.owl.core dragstart.owl.core selectstart.owl.core touchstart.owl.core touchcancel.owl.core', function(e){ e.stopPropagation(); }); }); // Set that we have setup everything jEle.attr('pagelayer-setup', 1); } // recaptcha handler function pagelayer_recaptcha_loader(jEle, loadScript){ loadScript = loadScript || false; // Render recaptcha var reParam = ''; if(!pagelayer_empty(pagelayer_recaptch_lang)){ reParam = '&hl='+pagelayer_recaptch_lang; } // Add recaptcha script if(pagelayer_empty(window.grecaptcha) && !pagelayer_empty(loadScript)){ jQuery('body').append(''); } // Render recaptcha var recaptcha_interval = setInterval(function(){ if(!pagelayer_empty(window.grecaptcha)){ grecaptcha.ready(function() { try{ var widgetID = grecaptcha.render(jEle.get(0), {'sitekey' : jEle.data("sitekey")}); jEle.attr('recaptcha-widget-id', widgetID); }catch(e){ console.log("There is some issue in rendering reCaptcha. Please check your recaptcha site-key !"); } }); clearInterval(recaptcha_interval); } }, 500); } // Scroll to element button effect function pagelayer_button_element_scroll(jEle) { var speed = parseInt(jEle.attr('pagelayer_scrollto_speed') * 1000); var idspacing = 0; var scrollId = jEle.attr('pagelayer_scrollto_id'); if(jEle.attr('pagelayer_scrollto_type') == 'toid'){ var scrolltoEle = jQuery('#' + scrollId); if(pagelayer_empty(scrollId) || scrolltoEle.length < 1){ return; } var idpos = parseInt(scrolltoEle.offset().top); var spacing = parseInt(jEle.attr('pagelayer_scrollto_id_viewport')); if (isNaN(spacing)) { spacing = 0; } idspacing = idpos + spacing; } jEle.on('click', function (e) { e.preventDefault(); jQuery('html, body').animate({ scrollTop: idspacing }, speed); }); } //////////// // Freemium //////////// // Contact Form handler - Premium function pagelayer_contact_form(jEle){ jEle = jQuery(jEle); var id = jEle.attr('pagelayer-id'); // Set pagelayer id to input field jEle.find('form input[name="cfa-pagelayer-id"]').val(id); } // Contact Form Submit handler - Premium function pagelayer_contact_submit(jEle, e){ e.preventDefault(); // Checking for required checkboxes. for(var checkbox_div of jQuery(jEle).find('.pagelayer-contact-checkbox')){ checkbox_div = jQuery(checkbox_div); if(checkbox_div.attr('required') == 'required'){ if(pagelayer_empty(checkbox_div.find('input:checked').length)){ alert('Kindly select the required checkbox'); return; } } } // Trigger an action jQuery(document).trigger('pagelayer_contact_submit', e, jEle); // Disabling submit button with loading animation. jQuery(jEle).find('.pagelayer-contact-submit-btn').prop('disabled', true); jQuery(jEle).find('.pagelayer-contact-submit-btn .fa-spin').show('0.6'); //var fdata = jQuery(jEle).closest('form').serialize(); var redirect = jQuery(jEle).find('input[name="cfa-redirect"]'); var formData = new FormData( jQuery(jEle)[0] ); var par = jQuery(jEle).parent(); // Append the nonce formData.append('pagelayer_nonce', pagelayer_global_nonce); // Hide any message par.find(".pagelayer-message-box").hide(); // Message pos to use ? var msg_pos = 'top'; if(par.parent().hasClass('pagelayer-message-box-bottom')){ msg_pos = 'bottom'; } par.find(".pagelayer-message-box").removeClass('pagelayer-cf-msg-err pagelayer-cf-msg-suc'); jQuery.ajax({ url: pagelayer_ajaxurl+'action=pagelayer_contact_submit', type: "POST", data: formData, processData: false, contentType: false, cache:false, success:function(result){ var json = jQuery.parseJSON(result); jQuery(jEle).find('.pagelayer-contact-submit-btn').prop('disabled', false); jQuery(jEle).find('.pagelayer-contact-submit-btn .fa-spin').hide('0.6'); if('success' in json){ par.find(".pagelayer-message-"+msg_pos).addClass('pagelayer-cf-msg-suc').html(json['success']).fadeIn(); if(redirect.length > 0 && !pagelayer_empty(redirect.val())){ window.location.href = redirect.val(); } }else{ par.find(".pagelayer-message-"+msg_pos).addClass('pagelayer-cf-msg-err').html(json['failed']).fadeIn(); } }, error:function(result){ par.find(".pagelayer-message-"+msg_pos).addClass('pagelayer-cf-msg-err').html(json['failed']).fadeIn(); } }); jEle.reset(); jQuery(jEle).find('.pagelayer-recaptcha').each(function(){ var widgetID = jQuery(this).attr('recaptcha-widget-id'); if(!pagelayer_empty(window.grecaptcha)){ grecaptcha.reset(widgetID); } }); return false; } // Primary Menu Handler - Premium function pagelayer_primary_menu(jEle){ var container = jEle.find('.pagelayer-wp-menu-container'); var menu_bar = jEle.find('.pagelayer-primary-menu-bar i'); var menu_holder = jEle.find('.pagelayer-wp-menu-holder'); var layout = menu_holder.data('layout'); var submenu_ind = menu_holder.data('submenu_ind'); var responsive = menu_holder.data('responsive'); var drop_breakpoint = menu_holder.data('drop_breakpoint'); var close = jEle.find('.pagelayer-wp_menu-close'); var media_mode = pagelayer_get_media_mode(); if( (drop_breakpoint == 'tablet' && (media_mode == 'tablet' || media_mode == 'mobile')) || (drop_breakpoint == 'mobile' && media_mode == 'mobile') ){ menu_holder.addClass('pagelayer-wp-menu-dropdown'); container.addClass('pagelayer-menu-type-dropdown'); container.removeClass('pagelayer-menu-type-'+layout); layout = 'dropdown'; }else{ menu_holder.removeClass('pagelayer-wp-menu-dropdown'); container.removeClass('pagelayer-menu-type-dropdown'); container.addClass('pagelayer-menu-type-'+layout); } // Set mega menu width // Wait for all other animations to finish setTimeout(function(){ container.find('.pagelayer-mega-menu-item, .pagelayer-mega-column-item').each(function(){ var liEle = jQuery(this), lEle = liEle.find('.pagelayer-nav_menu_item').first(), megaHolder = lEle.closest('.pagelayer-mega-menu'), setClass = 'pagelayer-set-position'; if(liEle.hasClass('pagelayer-mega-column-item')){ megaHolder = liEle.children('.sub-menu'); } if(megaHolder.length < 1){ return; } var Css = {}; // Remove all css settings jQuery(document).unbind('scroll.megaMenu'); megaHolder.css({'width' : '', 'left' : '', 'max-width' : '', 'max-height' : ''}); if(layout == 'dropdown'){ return; } // Set active to get position megaHolder.addClass(setClass); var megaLeft = megaHolder.offset().left, megaWidth = lEle.attr('pagelayer-mega-width'), wContainer = lEle.closest('.pagelayer-wp-menu-container'), megaCustomWidth = lEle.attr('pagelayer-mega-custom-width') || '', widthEle; // Is vertical menu? if(layout == 'vertical'){ var docWidth = jQuery('body').width(); var vWidth = docWidth - megaLeft; Css['max-width'] = vWidth; Css['width'] = vWidth; if(megaWidth == 'custom'){ Css['width'] = megaCustomWidth; } megaHolder.css(Css); megaHolder.removeClass(setClass); return; } var megaMenuHeight = function(e){ if(!pagelayer_empty(e) && megaHolder.is(':visible')){ return; } var windowHeight = jQuery(window).height(); var ulBottom = megaHolder.closest('.pagelayer-wp_menu-ul')[0].getBoundingClientRect().bottom; megaHolder.css('max-height', windowHeight - ulBottom); }; megaMenuHeight(); jQuery(document).on('scroll.megaMenu', megaMenuHeight); switch(megaWidth){ case 'row_container': widthEle = lEle.closest('.pagelayer-row[pagelayer-id]'); Css['width'] = widthEle.width(); break; case 'custom': widthEle = lEle.closest('li'); Css['width'] = megaCustomWidth; break; default : widthEle = wContainer; Css['width'] = widthEle.width(); } if(widthEle.length > 0){ var wLeft = widthEle.offset().left; if( wLeft < megaLeft ){ Css['left'] = (wLeft) - (megaLeft); } } megaHolder.css(Css); var mRect = megaHolder[0].getBoundingClientRect(); var wRect = wContainer[0].getBoundingClientRect(); // Set mega menu position if(megaWidth != 'custom' || mRect.right < wRect.right){ megaHolder.removeClass(setClass); return; } var left = parseInt(megaHolder.css('left')); var moveLeft = mRect.right - wRect.right; if(mRect.left < moveLeft){ moveLeft = moveLeft - (moveLeft - mRect.left); } left = left - moveLeft; megaHolder.css({'left': left}); megaHolder.removeClass(setClass); }); }, 500); // Menu toggle var toggle_class; jQuery(menu_bar).unbind('click'); jQuery(menu_bar).click(function(){ jQuery(container).toggleClass('pagelayer-togglt-on'); toggle_class = jQuery(this).data('icon'); toggle_class = ( pagelayer_empty(toggle_class) ? 'fas fa-bars' : toggle_class ); if(jQuery(container).hasClass('pagelayer-togglt-on')){ jQuery(this).removeClass(toggle_class); jQuery(this).addClass('fas fa-times'); }else{ jQuery(this).removeClass('fas fa-times'); jQuery(this).addClass(toggle_class); } }); // If has sub-menu the as icon var sub_menuEle = jQuery(container).find('.pagelayer-wp_menu-ul li.menu-item-has-children:not(.pagelayer-mega-menu-item), .pagelayer-wp_menu-ul li.pagelayer-mega-menu-item'); var aEle_sub_menu = sub_menuEle.children('a'); if(aEle_sub_menu.children('.after-icon').length < 1){ aEle_sub_menu.append(''); } // Toggle Sub nav var after_icon = jQuery(container).find('.pagelayer-wp_menu-ul li.menu-item-has-children .after-icon, .pagelayer-wp_menu-ul li.pagelayer-mega-menu-item .after-icon'); after_icon.unbind('click'); after_icon.click(function(e){ e.preventDefault(); if(window.matchMedia("(max-width: "+pagelayer_settings['tablet_breakpoint']+"px)").matches || layout != 'horizontal'){ jQuery(this).closest('li').toggleClass('pagelayer-active-sub-menu'); }else{ jQuery(this).closest('li').removeClass('pagelayer-active-sub-menu'); } }); close.unbind('click'); close.click(function(){ jQuery(container).toggleClass('pagelayer-togglt-on'); jQuery(menu_bar).removeClass('fas fa-times'); jQuery(menu_bar).addClass(toggle_class); }); // To edit the mega menu in live editor jQuery(document).trigger('pagelayer_primary_menu_setup_end', [jEle]); } var count_int ={}; // Show countdown render function pagelayer_countdown(jEle){ var expiry_date = jEle.find('.pagelayer-countdown-container').attr('pagelayer-expiry-date'); var timetype = jEle.find('.pagelayer-countdown-container').attr('pagelayer-time-type'); var jEle_id = jEle.attr('pagelayer-id'); if(pagelayer_empty(expiry_date) || expiry_date == "{{date}}"){ var expiry_date = new Date(new Date().getTime() + 24 * 60 * 60 * 1000); } var now; if(timetype == "server"){ now = new Date(pagelayer_server_time*1000).getTime(); }else{ now = new Date().getTime(); } var countDownDate = new Date(expiry_date).getTime(); var distance = countDownDate - now; clearInterval(count_int[jEle_id]); count_int[jEle_id] = setInterval(function() { // Time calculations for days, hours, minutes and seconds var days = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); jEle.find('.pagelayer-days-count').html(days); jEle.find('.pagelayer-hours-count').html(hours); jEle.find('.pagelayer-minutes-count').html(minutes); jEle.find('.pagelayer-seconds-count').html(seconds); // If the count down is over, write some text if(distance < 0) { clearInterval(count_int[jEle_id]); jEle.find('.pagelayer-countdown-expired').show(); jEle.find('.pagelayer-countdown-counter').hide(); } distance = distance - 1000; }, 1000); } function pagelayer_pl_testimonial_slider(jEle){ var ul = jQuery(jEle.find('.pagelayer-testimonials-holder')); // Build the options var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-'); pagelayer_owl_init(jEle, ul, options); } function pagelayer_anim_heading(jEle){ var animationDelay = 2500, //loading bar effect barAnimationDelay = 3800, barWaiting = barAnimationDelay - 3000, //3000 is the duration of the transition on the loading bar - set in the scss/css file //letters effect lettersDelay = 50, //type effect typeLettersDelay = 150, selectionDuration = 500, typeAnimationDelay = selectionDuration + 800, //clip effect revealDuration = 600, revealAnimationDelay = 1500; initHeadline(); function initHeadline(){ //insert element for each letter of a changing word singleLetters(jEle.find('.pagelayer-aheading-holder.letters').find('span')); //initialise headline animation animateHeadline(jEle.find('.pagelayer-aheading-holder')); } function singleLetters($words){ $words.each(function(){ var word = jQuery(this), letters = word.text().split(''), selected = word.hasClass('pagelayer-is-visible'); for (i in letters) { if(word.parents('.pagelayer-aheading-rotate2').length > 0) letters[i] = '' + letters[i] + ''; letters[i] = (selected) ? '' + letters[i] + '': '' + letters[i] + ''; } var newLetters = letters.join(''); word.html(newLetters).css('opacity', 1); }); } function animateHeadline($headlines){ var duration = animationDelay; $headlines.each(function(){ var headline = jQuery(this); if(headline.hasClass('pagelayer-aheading-loading-bar')){ duration = barAnimationDelay; setTimeout(function(){ headline.find('.pagelayer-words-wrapper').addClass('pagelayer-is-loading') }, barWaiting); }else if(headline.hasClass('pagelayer-aheading-clip')){ var spanWrapper = headline.find('.pagelayer-words-wrapper'), newWidth = spanWrapper.width() + 10; spanWrapper.css('width', newWidth); } else if (!headline.hasClass('type') ){ var words = headline.find('.pagelayer-words-wrapper span'), width = 0; words.each(function(){ var wordWidth = jQuery(this).width(); if (wordWidth > width) width = wordWidth; }); headline.find('.pagelayer-words-wrapper').css('width', width); }; //trigger animation setTimeout(function(){ hideWord( headline.find('.pagelayer-is-visible').eq(0) ) }, duration); }); } function hideWord($word){ var nextWord = takeNext($word); if($word.parents('.pagelayer-aheading-holder').hasClass('letters')){ var bool = ($word.children('strong').length >= nextWord.children('strong').length) ? true : false; hideLetter($word.find('strong').eq(0), $word, bool, lettersDelay); showLetter(nextWord.find('strong').eq(0), nextWord, bool, lettersDelay); }else if($word.parents('.pagelayer-aheading-holder').hasClass('pagelayer-aheading-clip')){ $word.parents('.pagelayer-words-wrapper').animate({ width : '2px' }, revealDuration, function(){ switchWord($word, nextWord); showWord(nextWord); }); }else if($word.parents('.pagelayer-aheading-holder').hasClass('pagelayer-aheading-loading-bar')){ $word.parents('.pagelayer-words-wrapper').removeClass('pagelayer-is-loading'); switchWord($word, nextWord); setTimeout(function(){ hideWord(nextWord) }, barAnimationDelay); setTimeout(function(){ $word.parents('.pagelayer-words-wrapper').addClass('pagelayer-is-loading') }, barWaiting); }else{ switchWord($word, nextWord); setTimeout(function(){ hideWord(nextWord) }, animationDelay); } } function showWord($word, $duration){ if($word.parents('.pagelayer-aheading-holder').hasClass('pagelayer-aheading-clip')){ $word.parents('.pagelayer-words-wrapper').animate({ 'width' : $word.width() + 10 }, revealDuration, function(){ setTimeout(function(){ hideWord($word) }, revealAnimationDelay); }); } } function hideLetter($letter, $word, $bool, $duration){ $letter.removeClass('pagelayer-aheading-in').addClass('pagelayer-aheading-out'); if(!$letter.is(':last-child')){ setTimeout(function(){ hideLetter($letter.next(), $word, $bool, $duration); }, $duration); }else if($bool){ setTimeout(function(){ hideWord(takeNext($word)) }, animationDelay); } if($letter.is(':last-child') && jQuery('html').hasClass('pagelayer-no-csstransitions')){ var nextWord = takeNext($word); switchWord($word, nextWord); } } function showLetter($letter, $word, $bool, $duration){ $letter.addClass('pagelayer-aheading-in').removeClass('pagelayer-aheading-out'); if(!$letter.is(':last-child')){ setTimeout(function(){ showLetter($letter.next(), $word, $bool, $duration); }, $duration); }else{ if(!$bool) { setTimeout(function(){ hideWord($word) }, animationDelay) } } } function takeNext($word){ return (!$word.is(':last-child')) ? $word.next() : $word.parent().children().eq(0); } function switchWord($oldWord, $newWord){ $oldWord.removeClass('pagelayer-is-visible').addClass('pagelayer-is-hidden'); if(!$newWord.hasClass('pagelayer-is-visible')){ $newWord.removeClass('pagelayer-is-hidden').addClass('pagelayer-is-visible'); } } } function pagelayer_pl_row_slider(jEle){ var index = 0; var imageEls = jEle.find('.pagelayer-bgimg-slide'); // Get the images to be cycled. var speed = jEle.data('speed'); // Get the speed of loop. imageEls.first().addClass('pagelayer-slide-show'); setInterval(function (){ // Get the next index. If at end, restart to the beginning. index = index + 1 < imageEls.length ? index + 1 : 0; // Show the next imageEls.eq(index).addClass('pagelayer-slide-show'); // Hide the previous imageEls.eq(index - 1).removeClass('pagelayer-slide-show'); }, speed); } function pagelayer_pl_social_profile(jEle){ var icon_holder = jEle.find('.pagelayer-icon-holder'); // Assigning animation classes to icon holder if(!pagelayer_empty(jEle.attr('pagelayer-animation'))){ icon_holder.addClass('pagelayer-animation-'+jEle.attr('pagelayer-animation')); } } // Post infinite scroll handler function pagelayer_infinite_posts(jEle) { var loader = jEle.find('.pagelayer-btn-load'); var autoScroll = jEle.find('.pagelayer-infinite-scroll-auto').length < 1; loader.on('click', function(){ var bEle = jQuery(this); var loaded = jEle.attr('pagelayer-post-data-loading'); // Is loading? if(!pagelayer_empty(loaded)){ return; } jEle.attr('pagelayer-post-data-loading', 1); var current = bEle.attr('data-current') || 1; var nextPage = parseInt(current) + 1; var load_btn = jEle.find('.pagelayer_load_button'); bEle.hide(); load_btn.find('.pagelayer-loader-holder').show(); if(jEle.find('.pagelayer-post-max').attr('data-max') <= 1) { load_btn.text(load_btn.data('text')); return; } // Get Data from local variable var data = window['pagelayer_local_scripts']['pagelayer_post_' + jEle.attr("pagelayer-id")]; // Add next page number to load if(!pagelayer_empty(data.atts)){ data.atts['paged'] = nextPage; } // Get the Posts jQuery.ajax({ url: pagelayer_ajaxurl + 'action=pagelayer_infinite_posts', type: 'POST', data: { pagelayer_nonce: pagelayer_global_nonce, data: data, }, success: function(result){ var json = jQuery.parseJSON(result); var content = jQuery(json['posts']).find('.pagelayer-posts-container').html(); jEle.find('.pagelayer-posts-container').append(content); load_btn.find('.pagelayer-loader-holder').hide(); if (jEle.find('.pagelayer-post-max').attr('data-max') == nextPage) { load_btn.text(load_btn.data('text')); }else if(autoScroll){ bEle.show(); } bEle.attr('data-current', nextPage); }, complete: function(){ jEle.removeAttr('pagelayer-post-data-loading'); } }); }); // If already scrolled if(pagelayer_isVisible(loader)){ loader.click(); } // Auto scroll? if(autoScroll){ return; } var win = jQuery(window); win.on('scroll.archive_posts', function(){ var current = parseInt(loader.attr('data-current')) || 1; var total = loader.attr('data-max'); if(win.scrollTop() + win.height() < jEle.height() || current >= total) { return; } loader.click(); }); } //////////////// // Freemium End //////////////// /* * Nivo Lightbox v1.3.1 * http://dev7studios.com/nivo-lightbox * * Copyright 2013, Dev7studios * Free to use and abuse under the MIT license. * http://www.opensource.org/licenses/mit-license.php */ !function(t,i,o,e){function n(i,o){this.el=i,this.$el=t(this.el),this.options=t.extend({},l,o),this._defaults=l,this._name=a,this.init()}var a="nivoLightbox",l={effect:"fade",theme:"default",keyboardNav:!0,clickImgToClose:!1,clickOverlayToClose:!0,onInit:function(){},beforeShowLightbox:function(){},afterShowLightbox:function(t){},beforeHideLightbox:function(){},afterHideLightbox:function(){},beforePrev:function(t){},onPrev:function(t){},beforeNext:function(t){},onNext:function(t){},errorMessage:"The requested content cannot be loaded. Please try again later."};n.prototype={init:function(){var i=this;t("html").hasClass("nivo-lightbox-notouch")||t("html").addClass("nivo-lightbox-notouch"),"ontouchstart"in o&&t("html").removeClass("nivo-lightbox-notouch"),this.$el.on("click",function(t){i.showLightbox(t)}),this.options.keyboardNav&&t("body").off("keyup").on("keyup",function(o){var e=o.keyCode?o.keyCode:o.which;27==e&&i.destructLightbox(),37==e&&t(".nivo-lightbox-prev").trigger("click"),39==e&&t(".nivo-lightbox-next").trigger("click")}),this.options.onInit.call(this)},showLightbox:function(i){var o=this,e=this.$el,n=this.checkContent(e);if(n){i.preventDefault(),this.options.beforeShowLightbox.call(this);var a=this.constructLightbox();if(a){var l=a.find(".nivo-lightbox-content");if(l){if(t("body").addClass("nivo-lightbox-body-effect-"+this.options.effect),this.processContent(l,e),this.$el.attr("data-lightbox-gallery")){var h=t('[data-lightbox-gallery="'+this.$el.attr("data-lightbox-gallery")+'"]');t(".nivo-lightbox-nav").show(),t(".nivo-lightbox-prev").off("click").on("click",function(i){i.preventDefault();var n=h.index(e);e=h.eq(n-1),t(e).length||(e=h.last()),t.when(o.options.beforePrev.call(this,[e])).done(function(){o.processContent(l,e),o.options.onPrev.call(this,[e])})}),t(".nivo-lightbox-next").off("click").on("click",function(i){i.preventDefault();var n=h.index(e);e=h.eq(n+1),t(e).length||(e=h.first()),t.when(o.options.beforeNext.call(this,[e])).done(function(){o.processContent(l,e),o.options.onNext.call(this,[e])})})}setTimeout(function(){a.addClass("nivo-lightbox-open"),o.options.afterShowLightbox.call(this,[a])},1)}}}},checkContent:function(t){var i=t.attr("href"),o=i.match(/(youtube|youtube-nocookie|youtu|vimeo)\.(com|be)\/(watch\?v=([\w-]+)|([\w-]+))/);return null!==i.match(/\.(jpeg|jpg|gif|png)$/i)||(!!o||("ajax"==t.attr("data-lightbox-type")||("#"==i.substring(0,1)&&"inline"==t.attr("data-lightbox-type")||"iframe"==t.attr("data-lightbox-type"))))},processContent:function(o,e){var n=this,a=e.attr("href"),l=a.match(/(youtube|youtube-nocookie|youtu|vimeo)\.(com|be)\/(watch\?v=([\w-]+)|([\w-]+))/);if(o.html("").addClass("nivo-lightbox-loading"),this.isHidpi()&&e.attr("data-lightbox-hidpi")&&(a=e.attr("data-lightbox-hidpi")),null!==a.match(/\.(jpeg|jpg|gif|png)$/i)){var h=t("",{src:a,class:"nivo-lightbox-image-display"});h.one("load",function(){var e=t('
');e.append(h),o.html(e).removeClass("nivo-lightbox-loading"),e.css({"line-height":t(".nivo-lightbox-content").height()+"px",height:t(".nivo-lightbox-content").height()+"px"}),t(i).resize(function(){e.css({"line-height":t(".nivo-lightbox-content").height()+"px",height:t(".nivo-lightbox-content").height()+"px"})})}).each(function(){this.complete&&t(this).load()}),h.error(function(){var i=t('

'+n.options.errorMessage+"

");o.html(i).removeClass("nivo-lightbox-loading")})}else if(l){var s="",r="nivo-lightbox-video";if("youtube"==l[1]&&(s="//web.archive.org/web/20221006095954/https://www.youtube.com/embed/"+l[4],r="nivo-lightbox-youtube"),"youtube-nocookie"==l[1]&&(s=a,r="nivo-lightbox-youtube"),"youtu"==l[1]&&(s="//web.archive.org/web/20221006095954/https://www.youtube.com/embed/"+l[3],r="nivo-lightbox-youtube"),"vimeo"==l[1]&&(s="//web.archive.org/web/20221006095954/https://player.vimeo.com/video/"+l[3],r="nivo-lightbox-vimeo"),s){var c=t("'),c.attr("height",h),c.attr("width",g),"youtube"===f.type?c.attr("src","//web.archive.org/web/20221006095954/https://www.youtube.com/embed/"+f.id+"?autoplay=1&rel=0&v="+f.id):"vimeo"===f.type?c.attr("src","//web.archive.org/web/20221006095954/https://player.vimeo.com/video/"+f.id+"?autoplay=1"):"vzaar"===f.type&&c.attr("src","//web.archive.org/web/20221006095954/https://view.vzaar.com/"+f.id+"/player?autoplay=true"),a(c).wrap('
').insertAfter(e.find(".pagelayer-owl-video")),this._playing=e.addClass("pagelayer-owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("pagelayer-owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1, animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated pagelayer-owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated pagelayer-owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated pagelayer-owl-animated-out pagelayer-owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._call=null,this._time=0,this._timeout=0,this._paused=!0,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._paused&&(this._time=0)},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype._next=function(d){this._call=b.setTimeout(a.proxy(this._next,this,d),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read()),this._core.is("interacting")||c.hidden||this._core.next(d||this._core.settings.autoplaySpeed)},e.prototype.read=function(){return(new Date).getTime()-this._time},e.prototype.play=function(c,d){var e;this._core.is("rotating")||this._core.enter("rotating"),c=c||this._core.settings.autoplayTimeout,e=Math.min(this._time%(this._timeout||c),c),this._paused?(this._time=this.read(),this._paused=!1):b.clearTimeout(this._call),this._time+=this.read()%c-e,this._timeout=c,this._call=b.setTimeout(a.proxy(this._next,this,d),c-e)},e.prototype.stop=function(){this._core.is("rotating")&&(this._time=0,this._paused=!0,b.clearTimeout(this._call),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&!this._paused&&(this._time=this.read(),this._paused=!0,b.clearTimeout(this._call))},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('
'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"
")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:['',''],navSpeed:!1,navElement:'button type="button" role="presentation"',navContainer:!1,navContainerClass:"pagelayer-owl-nav",navClass:["pagelayer-owl-prev","pagelayer-owl-next"],slideBy:1,dotClass:"pagelayer-owl-dot",dotsClass:"pagelayer-owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("
").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a(''+ '
'+ '
'; row.append(div); var tmp = prop.c['name']+'-urls'; var ids = new Array(); // Any IDs ? if(!pagelayer_empty(prop.c['val'])){ ids = prop.c['val'] if(pagelayer_is_string(ids)){ ids = prop.c['val'].split(','); } //console.log(ids); } // Do we have a URL set ? if(!pagelayer_empty(ids)){ if(tmp in prop.el.tmp){ var images = JSON.parse(prop.el.tmp[tmp]); //console.log(images); for(var x in ids){ row.find('.pagelayer-elp-multi_image-thumbs').append('
'); } }else{ wp.media.query({ post__in: ids }).more().then(function(){ // You attachments here normally // You can safely use any of them here // TODO: Set tmp here for(var x in ids){ var fetch_url = wp.media.attachment(ids[x]).get('url'); if(!pagelayer_empty(fetch_url)){ row.find('.pagelayer-elp-multi_image-thumbs').append('
'); } } }); } } var pagelayer_init_frame = function(state){ var button = row.find('.pagelayer-elp-multi_image-thumbs'); //console.log(ids); // Load the frame var frame = pagelayer_select_frame('multi_image', state); frame.on({ 'select': function(){ var state = frame.state(); var id = url = ''; var urls = {}; // External URL if('props' in state){ //console.log(state); var urls_str = state.props.attributes.url; var urls_arr = urls_str.split(','); //console.log(urls_arr); button.empty(); // Add to current selection for(var i = 0; i < urls_arr.length; i++){ var single_url = pagelayer_parse_theme_vars(urls_arr[i]); urls['i'+i] = single_url; // Create thumbnails button.append('
'); } urls_arr = Object.values(urls); _pagelayer_set_tmp_atts(row, 'urls', JSON.stringify(urls)); _pagelayer_set_atts(row, urls_arr.join()); } }, // Set the current selection if any 'open': function(){ // Do we have anything if(!pagelayer_empty(ids)){ var selection = ''; if(state == 'gallery-edit'){ selection = frame.state().get('library'); }else if(state == 'gallery-library'){ selection = frame.state().get('selection'); } // Add to current selection if(!pagelayer_empty(selection)){ for(var x in ids){ attachment = wp.media.attachment(ids[x]); attachment.fetch(); selection.add(attachment ? [ attachment ] : [] ); } } } }, // When images are selected 'update': function(selection){ //console.log(selection); // Remove thumbnails row.find('.pagelayer-elp-multi_image-thumb').remove(); //Fetch selected images var attachments = selection.map(function(attachment){ attachment.toJSON(); return attachment; }); //console.log(attachments); var img_ids = []; var urls = {}; var img_urls = {}; var titles = {}; var links = {}; var captions = {}; for(var i = 0; i < attachments.length; ++i){ // Add Id and urls to array var id = attachments[i].id; var _id = 'i'+id; img_ids.push(id); urls[_id] = attachments[i].attributes.url; // Create thumbnails button.append('
'); //get title titles[_id] = attachments[i].attributes.title; links[_id] = attachments[i].attributes.link; captions[_id] = attachments[i].attributes.caption; // Create a URL img_urls[_id] = {} for(var x in attachments[i].attributes.sizes){ img_urls[_id][x] = attachments[i].attributes.sizes[x].url; } } //console.log(img_urls); // Save and render _pagelayer_set_tmp_atts(row, 'urls', JSON.stringify(urls)); _pagelayer_set_tmp_atts(row, 'all-urls', JSON.stringify(img_urls)); _pagelayer_set_tmp_atts(row, 'all-titles', JSON.stringify(titles)); _pagelayer_set_tmp_atts(row, 'all-links', JSON.stringify(links)); _pagelayer_set_tmp_atts(row, 'all-captions', JSON.stringify(captions)); _pagelayer_set_atts(row, img_ids); // Update the IDs incase the user clicks on it again ids = img_ids; } }); frame.open(button); return false; }; row.find('.pagelayer-elp-multi_image-thumbs').on('click', function(){ pagelayer_init_frame('gallery-edit'); }); row.find('.pagelayer-elp-button').on('click', function(){ if(!pagelayer_empty(ids)){ if(isNaN(ids[0])){ pagelayer_init_frame('embed'); }else{ pagelayer_init_frame('gallery-library'); } }else{ pagelayer_init_frame('gallery'); } }); } // The Video Property function pagelayer_elp_video(row, prop){ var tmp = prop.c['name']+'-url'; var src = (tmp in prop.el.tmp) ? prop.el.tmp[tmp] : prop.c['val']; var div = '
'+ ''+ ''+ '
'; row.append(div); row.find('.pagelayer-elp-video-div .pli').on('click', function(){ var button = jQuery(this); // Load the frame var frame = pagelayer_select_frame('video'); // On select update the stuff frame.on({ 'select': function(){ var state = frame.state(); var id = url = ''; // External URL if('props' in state){ id = url = pagelayer_parse_theme_vars(state.props.attributes.url); // Internal from gallery }else{ var attachment = frame.state().get('selection').first().toJSON(); //console.log(attachment); id = attachment.id; url = attachment.url; } // Update URL button.prev().val(url); // Save and render _pagelayer_set_tmp_atts(row, 'url', url); _pagelayer_set_atts(row, id); } }); frame.open(button); return false; }); // Edited the video URL directly row.find('.pagelayer-elp-video').on('change', function(){ var input = jQuery(this); // Set the new URL _pagelayer_set_tmp_atts(row, 'url', input.val()); _pagelayer_set_atts(row, input.val()); }); } // The Audio Property function pagelayer_elp_audio(row, prop){ var tmp = prop.c['name']+'-url'; var src = (tmp in prop.el.tmp) ? prop.el.tmp[tmp] : prop.c['val']; var div = '
'+ ''+ ''+ '
'; row.append(div); // Choose from media row.find('.pagelayer-elp-audio-div .pli').on('click', function(){ var button = jQuery(this); // Load the frame var frame = pagelayer_select_frame('audio'); frame.on({ 'select': function(){ var state = frame.state(); var id = url = ''; // External URL if('props' in state){ id = url = pagelayer_parse_theme_vars(state.props.attributes.url); // Internal from gallery }else{ var attachment = frame.state().get('selection').first().toJSON(); //console.log(attachment); id = attachment.id; url = attachment.url; } // Update URL button.prev().val(url); // Save and render _pagelayer_set_tmp_atts(row, 'url', url); _pagelayer_set_atts(row, id); } }); frame.open(button); return false; }); // Edited the media URL directly row.find('.pagelayer-elp-audio').on('change', function(){ var input = jQuery(this); // Set the new URL _pagelayer_set_tmp_atts(row, 'url', input.val()); _pagelayer_set_atts(row, input.val()); }); } // The Media Property function pagelayer_elp_media(row, prop){ var tmp = prop.c['name']+'-url'; var src = (tmp in prop.el.tmp) ? prop.el.tmp[tmp] : prop.c['val']; var div = '
'+ ''+ ''+ '
'; row.append(div); row.find('.pagelayer-elp-media-div .pli-menu').on('click', function(){ var button = jQuery(this); // Load the frame var frame = pagelayer_select_frame('media'); frame.on({ 'select': function(){ var state = frame.state(); var id = url = ''; // External URL if('props' in state){ id = url = pagelayer_parse_theme_vars(state.props.attributes.url); // Internal from gallery }else{ var attachment = frame.state().get('selection').first().toJSON(); //console.log(attachment); id = attachment.id; url = attachment.url; } // Update URL button.prev().val(url); // Save and render _pagelayer_set_tmp_atts(row, 'url', url); _pagelayer_set_atts(row, id); } }); frame.open(button); return false; }); // Edited the media URL directly row.find('.pagelayer-elp-media').on('change', function(){ var input = jQuery(this); // Set the new URL _pagelayer_set_tmp_atts(row, 'url', input.val()); _pagelayer_set_atts(row, input.val()); }); } // The Slider Property function pagelayer_elp_slider(row, prop){ var div = '
'+ ''+ ''+ '
'+ '
'; row.append(div); // Set an value in span row.find('.pagelayer-elp-slider-div input').on('input', function(){ var value = parseFloat(this.value); var max = parseFloat(this.max); if(!pagelayer_empty(max) && value > max){ value = max; } row.find('.pagelayer-elp-slider-div input').val(value); _pagelayer_set_atts(row, value);// Save and Render }); } // The Editor proprety function pagelayer_elp_editor(row, prop){ var rows = prop.rows ? prop.rows : '8'; var div = '
'+ ''+ '
'; row.append(div); var editor = row.find('.pagelayer-elp-editor'); editor.val(prop.c['val']); // Handle on change editor.on('input', function(){ _pagelayer_set_atts(row, pagelayer_trim(jQuery(this).val()));// Save and Render }); return; // No SVG Icons for now jQuery.trumbowyg.svgPath = false; // Initiate the editor editor.trumbowyg({ autogrow: false, hideButtonTexts: true, btns:[ ['viewHTML'], ['wpmedia'], ['fontfamily'], ['formatting'], ['undo', 'redo'], // Only supported in Blink browsers ['fontsize'], ['lineheight'], ['foreColor', 'backColor',], ['strong', 'em', 'del'], ['horizontalRule'], ['superscript', 'subscript'], ['link'], ['unorderedList', 'orderedList'], ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'], ['removeformat'], ['fullscreen'] ], plugins: { fontsize: { sizeList: ['12px','13px','14px','15px','16px','17px','18px','19px','20px','21px','22px','23px','24px','25px'] } }, imageWidthModalEdit: true, // Handle the changes made in the editor }).on('tbwchange', function(){ _pagelayer_set_atts(row, editor.trumbowyg('html'));// Save and Render }); } // The Link proprety function pagelayer_elp_link(row, prop){ var values = {}; var settingOpt = false; // Show link options? if('selector' in prop){ settingOpt = true; } // Previously saved values if(typeof prop.c['val'] === 'object'){ values = prop.c['val']; }else{ values['link'] = prop.c['val']; } var tmp = prop.c['name']; var link = (tmp in prop.el.tmp) ? prop.el.tmp[tmp] : values['link']; var jEle = jQuery('[pagelayer-id='+prop.el.id+']'); var div = ''; row.append(div); var listWrap = row.find('.pagelayer-elp-link-list'); var time = null; //Add ID var addID = function(permaID){ permaID = permaID || false; var lDiv = row.closest('[pagelayer-elp-name]').find('.pagelayer-elp-label-div'); if(permaID){ lDiv = lDiv.find('.pagelayer-elp-label'); lDiv.after('ID : '+permaID+''); }else{ lDiv.find('.pagelayer-elp-link-id').remove(); } }; if(!isNaN(values['link'])){ addID(values['link']); } var getLinkVal = function(val){ if(typeof val === 'object' && pagelayer_length(val) == 1 && 'link' in val){ return val['link']; } return val; } var setTmpEmpty = function(){ if( 'link' in values && !pagelayer_empty(values['link']) ){ return; } _pagelayer_set_tmp_atts(row, '', ''); } // Set a Link row.find('.pagelayer-elp-link').on('change', function(){ var linkVal = jQuery(this).val(); values['link'] = linkVal; // Save and Render _pagelayer_set_tmp_atts(row, '', linkVal); _pagelayer_set_atts(row, getLinkVal(values)); // Remove ID Holder addID(); }); // Set a Link row.find('.pagelayer-elp-link').on('input click', function(e){ e.stopPropagation(); if(!listWrap.is(':visible')){ listWrap.show(); } var val = jQuery(this).val(); clearTimeout(time); time = setTimeout(function(){ jQuery.ajax({ url: pagelayer_ajax_url, type: 'post', data:{ 'action' : 'wp-link-ajax', '_ajax_linking_nonce' : pagelayer_internal_linking_nonce, 'search' : val, }, success: function(response) { var data = jQuery.parseJSON(response); var html = ''; //console.log('Link Data');console.log(response); if(pagelayer_empty(data)){ html = pagelayer_l('custom_url'); // Remove ID Holder addID(); }else if(typeof data === 'object'){ for(var key in data){ var vals = data[key]; html += ''; } } listWrap.html(html); }, fail: function(data) { listWrap.html('Some error occured in getting the link data'); } }); }, 200); }); listWrap.on('click', function(e){ e.stopPropagation(); var lEle = jQuery(e.target).closest('.pagelayer-elp-link-item'); // IF item not found if(lEle.length < 1){ return; } var perma = lEle.attr('data-permalink'); var ID = lEle.attr('data-id'); values['link'] = ID; // Save and Render row.find('.pagelayer-elp-link').val(perma); _pagelayer_set_tmp_atts(row, '', perma); _pagelayer_set_atts(row, getLinkVal(values)); listWrap.hide(); // Show ID addID(ID); }); pagelayer.gDocument.on('click', function(e){ listWrap.hide(); }); row.find('.pagelayer-elp-checkbox').on('change', function(event){ var cEle = jQuery(this); // Save or delete the value var saveVal = function(key){ if(cEle.is(':checked')){ values[key] = true; return; } delete values[key]; } switch(cEle.attr('name')){ case 'link_new_tab': saveVal('target'); break; case 'link_no_follow': saveVal('rel'); break; } setTmpEmpty(); _pagelayer_set_atts(row, getLinkVal(values)); }); var linkTime = ''; row.find('.pagelayer-elp-text').on('input', function(event){ var cEle = jQuery(this); clearTimeout(linkTime); linkTime = setTimeout(function(){ values['attrs'] = cEle.val(); if(pagelayer_empty(values['attrs'])){ delete values['attrs']; } setTmpEmpty(); _pagelayer_set_atts(row, getLinkVal(values)); }, 500); }); row.find('.pagelayer-elp-link-icon').on('click', function(){ row.find('.pagelayer-elp-link-addons').slideToggle('slow'); }); } // The Textarea property function pagelayer_elp_textarea(row, prop){ var rows = prop.rows ? 'rows="'+prop.rows+' "' : ''; var div = '
'+ ''+ '
'; row.append(div); row.find('.pagelayer-elp-textarea').val(prop.c['val']); // Handle on change row.find('.pagelayer-elp-textarea').on('input', function(){ _pagelayer_set_atts(row, pagelayer_trim(jQuery(this).val()));// Save and Render }); }; // Clear all editable function pagelayer_clear_editable(dontDestroy){ // Destroy all for(var x in pagelayer_editor){ if(dontDestroy == x){ console.log('Skipping '+dontDestroy); continue; } pagelayer_editor[x].pen.destroy(); } }; // Makes a field editable in the DOM function pagelayer_make_editable(jEle, e){ // The parent element var pEle = jEle.closest('.pagelayer-ele, [pagelayer-ref-id]'); // Mainly for editing table cells as pagelayer-ref-id is used by them if(!pEle.hasClass('pagelayer-ele')){ var refID = pEle.attr('pagelayer-ref-id'); pEle = jQuery('[pagelayer-id="'+refID+'"]'); } var prop = jEle.attr('pagelayer-editable'); var eId = pagelayer_id(pEle)+'|'+jEle.attr('pagelayer-editable');// Editing ID // Is it already setup ? if(jEle.hasClass('pagelayer-pen')){ //console.log('Already Penned'); //pagelayer_focus_editable(jEle, e, eId); return true; } var tag = pagelayer_tag(pEle); var all_props = pagelayer_shortcodes[tag]; var edit_opts; var fullEdit = false; for(var i in pagelayer_tabs){ var tab = pagelayer_tabs[i]; for(var section in all_props[tab]){ //console.log(tab+' '+section); var props = section in pagelayer_shortcodes[tag] ? pagelayer_shortcodes[tag][section] : pagelayer_styles[section];//console.log(props); // Any editor options? if(prop in props){ if('e' in props[prop]){ edit_opts = props[prop].e; } if(props[prop]['type'] == 'editor'){ fullEdit = true; } } } } var pen_tools = { 'inline': [ 'viewHTML', {'formating' : ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p']}, 'bold', 'italic', 'underline', 'strike', { 'color': [] }, { 'background': [] }, 'removeformat' ], 'h': ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'], 'headers': [{'formating' : ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']}], 'c': [{ 'color': [] }, { 'background': [] }], 'f': ['bold', 'italic', 'underline', 'strike'], 'a': [{ 'align': ['left', 'center', 'right', 'justify'] }], 'r': ['removeformat'], 'v': ['viewHTML'], }; // Create Toolbar Groups if(!('pen_tools' in pagelayer_editor)){ pagelayer_editor['pen_tools'] = {}; } pagelayer_editor['pen_tools'] = Object.assign(pagelayer_editor['pen_tools'], pen_tools); var toolbar_options = []; if( pagelayer_empty(edit_opts) ){ if(fullEdit){ toolbar_options = [ [ 'viewHTML' ], [ 'bold', 'italic', 'underline', 'strike' ], [ 'sub', 'super' ], //[ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'blockquote'], [ {'formating' : ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'blockquote']}], [ {'align': ['left', 'center', 'right', 'justify']} ], [ 'image', 'link'], [ 'unorderedlist', 'orderedlist'], [ {'size': []}, {'lineheight': []}, {'font': []}], [ {'color': [] }, {'background': []}], [ 'removeformat' ] ]; }else{ toolbar_options = pagelayer_editor.pen_tools['inline']; } }else{ var options = []; if(! Array.isArray(edit_opts) ){ edit_opts = [edit_opts]; } for( var tt in edit_opts){ var tool = edit_opts[tt]; if(pagelayer_is_string(tool)){ if(tool in pagelayer_editor['pen_tools']){ tool = pagelayer_editor['pen_tools'][tool] }else{ tool = [tool]; } } options.push(tool); } toolbar_options = options; } var options = { class: 'pagelayer-pen', editor: jEle, toolbar: toolbar_options } // Setup the editor pagelayer_editor[eId] = {}; pagelayer_editor[eId].pen = new PagelayerPen(jEle, options); pagelayer_editor[eId].$ = jEle; // Are we the clicked object, then set the focus if(e){ var target = jQuery(e.target); if(target.is(jEle) || jEle.find(target).length > 0){ jEle.focus(); } } // Reverse setup the event jEle.on('blur', function(){ //pagelayer_editor[eId].pen.destroy(); if(jEle.hasClass('pagelayer-pen-focused')){ return; } var cEle = pEle; // Do we have a parent ? var have_parent = function(Ele){ var pId = pagelayer_get_parent(Ele); if(pagelayer_empty(pId)){ return; } cEle = pagelayer_ele_by_id(pId); have_parent(cEle); } have_parent(cEle); var is_global = pagelayer_get_global_id(cEle); if(pagelayer_empty(is_global)){ return; } pagelayer_sc_render(pEle); }); /*// Reverse setup the event jEle.on('focus', function(){ //pagelayer_clear_editable(eId); });*/ // Reverse setup the event jEle.on('input', function(){ var val = pagelayer_trim(jEle.html()); // Set the property as well pagelayer_set_atts(pEle, prop, val); // Update the property var input = pagelayer.$$('[pagelayer-element-id='+pagelayer_id(pEle)+']').find('[pagelayer-elp-name='+prop+']').find('input,textarea,.trumbowyg-editor'); //console.log(input); if(input.length > 0){ if(input.hasClass('trumbowyg-editor')){ input.html(val); }else{ input.val(val); } } }); } // The Icon Property function pagelayer_elp_icon(row, prop){ var $ = jQuery; var sets_html = ''; pagelayer_loaded_icons.forEach(function(item){ sets_html += ''; }); var icons = {}; var cur_icon_set = pagelayer_loaded_icons[0]; var sel_icon = prop.c['val']; var sel_name = prop.c['val']; var icon_type = ''; var sorted_icons = {}; // Handle the icon name var icon_name = sel_icon.split(' fa-'); sel_name = icon_name[1]; // Is there a specific list if('list' in prop && prop.list.length > 0){ for(var i in pagelayer_icons){ icons[i] = {}; for(var j in pagelayer_icons[i]){ icons[i][j] = {}; var list_icons = []; prop.list.forEach(function(item){ if(pagelayer_icons[i][j]['icons'].includes(item)){ list_icons.push(item); } }); icons[i][j]['icons'] = list_icons; icons[i][j]['pre'] = j; } } }else{ icons = pagelayer_icons; } // Icon function var icon_html = function(name, cat){ return ''+ ' '+name+ ''; } var div = '
'+ '
'+ ''+ ''+ (pagelayer_empty(sel_name)?'Choose icon':sel_name)+ ''+ '
'+ ''+ '× '+ '
'; row.append(div); // Make all icons list var html = '
'; if(pagelayer_loaded_icons.length > 1){ html += ''; } html += ''+ '

'+pagelayer_l('Solid')+'

'+ '

'+pagelayer_l('Regular')+'

'+ '

'+pagelayer_l('Brand')+'

'+ '
'+ ''+ '
'; for(var y in icons[cur_icon_set]){ //console.log(icons[x][y]) for(var z in icons[cur_icon_set][y]['icons']){ html += icon_html(icons[cur_icon_set][y]['icons'][z], y); } } html += '
'+ '
'; row.append(html); // Open the selector row.find('.pagelayer-elp-icon-div').on('click', function(){ row.find('.pagelayer-elp-icon-selector').slideToggle(); }); /*// When the set changes row.find('.pagelayer-elp-icon-sets').on('change', function(){ var v = cur_icon_set = jQuery(this).val(); var span = ''; for(var x in icons[v]){ for(var z in icons[v][x]['icons']){ span += icon_html(icons[v][x]['icons'][z], x); } } if(cur_icon_set == 'font-awesome5'){ row.find('.pagelayer-elp-icon-type').show(); sorted_icons = icons[cur_icon_set]['fas']; row.find('.pagelayer-elp-icon-type [data-tab="fas"]').click(); }else{ row.find('.pagelayer-elp-icon-type').hide(); } row.find('.pagelayer-elp-icon-list').empty().html(span); if(row.find('.pagelayer-elp-search-icon').val() != ''){ row.find('.pagelayer-elp-search-icon').keyup(); } });*/ // Handle type of icon row.find('.pagelayer-elp-icon-type p').on('click', function(){ jQuery(this).toggleClass('active'); row.find('.pagelayer-elp-search-icon').keyup(); }); // Handle search of icon row.find('.pagelayer-elp-search-icon').on('keyup', function(){ var v = this.value; var span = ''; v = v.toLowerCase(); v = v.replace(/\s+/g, '-'); //console.log(sorted_icons); row.find('.pagelayer-elp-icon-type p.active').each(function(){ var tab = jQuery(this).data('tab'); tab = tab.toLowerCase(); var cat = icons['font-awesome5'][tab]['icons']; for(var x in cat){ if(cat[x].includes(v) || v.length < 1){ span += icon_html(cat[x], tab); } } }); row.find('.pagelayer-elp-icon-list').empty().html(span); }); // Handle click within the icon selector row.find('.pagelayer-elp-icon-list').on('click', function(e){ var jEle = jQuery(e.target); var i = jEle.children().attr('class'); var name = jEle.children().attr('icon'); if(pagelayer_empty(name)){ return false; } // Set the icon in this list row.find('.pagelayer-elp-icon-preview').html(''+name+''); row.find('.pagelayer-elp-icon-selector').slideUp(); _pagelayer_set_atts(row, i);// Save and Render row.find('.pagelayer-elp-icon-close').show(); return false; }); // Delete the icon row.find('.pagelayer-elp-icon-close').on('click', function(){ // Set the icon in this list row.find('.pagelayer-elp-icon-preview').html(''+pagelayer_l('choose_icon')+''); // Save and Render _pagelayer_set_atts(row, ''); jQuery(this).hide(); return false; }); } // The Access Property function pagelayer_elp_access(row, prop){ var div = '
'+ ''+ '
'+ '
'; row.append(div); var holder = row.find('.pagelayer-elp-access-holder'); row.find('.pagelayer-elp-access').on('click', function(){ // Setup first if(holder.children().length < 1){ var p = row.parent().find('[pagelayer-access-item='+prop.show_group+']').detach(); p.appendTo(holder); p.addClass('pagelayer-access-item-visible'); } // Show and hide if(holder.is(':visible')){ holder.hide(); row.find('.pli-caret-right').removeClass('pli-caret-open'); }else{ holder.show(); row.find('.pli-caret-right').addClass('pli-caret-open'); } }); }; // The Modal Property function pagelayer_elp_modal(row, prop){ var style = pagelayer_empty(prop.width) ? '' : 'style="width:'+prop.width+'"'; var div = '
'+ ''+ '
'+ '
'+ '
'+ prop.label +''+ '

'+ '
'+ '
'+ '
'+ '
'; row.append(div); var wrapper = row.find('.pagelayer-elp-modal-wrapper'); var holder = row.find('.pagelayer-elp-modal-holder'); row.find('.pagelayer-elp-modal').on('click', function(){ // Setup first if(holder.children().length < 1){ var p = row.parent().find('[pagelayer-access-item='+prop.show_group+']').detach(); p.appendTo(holder); p.addClass('pagelayer-access-item-visible'); } // Show and hide wrapper.show(); }); // Close Modal Property row.find('.pagelayer-elp-modal-close').on('click', function(){ wrapper.hide(); }); // On click Pagelayer setting icon wrapper.on('click', function(event){ var target = jQuery(event.target); if(target.closest('.pagelayer-elp-modal-wrap').length > 0){ return; } wrapper.hide(); }); }; // The Color Property function pagelayer_elp_color(row, prop){ var val = prop.c['val']; var is_global = pagelayer_is_global_color(val); var global_active = ''; // If global color not exist if(!pagelayer_empty(is_global)){ val = pagelayer_global_colors[is_global]['value']; global_active = 'pagelayer-active-global'; } var div = '
'+ '
'+ '
'+ '
'+ ''+ '
'+ '
'+ '
'+ 'Global Colors'+ '
'; for( cid in pagelayer_global_colors ){ var color = pagelayer_global_colors[cid]; var active_class = ''; if(cid == is_global){ active_class = 'pagelayer-global-selected'; } div += '
'+ ''+ ''+ color['title'] +''+ ''+ color['value'] +''+ '
'; } div += '
'; row.append(div); row.find('.pagelayer-elp-color-preview').css('background', val); var picker = new pagelayer_Picker({ parent : row.find('.pagelayer-elp-color-div')[0], popup : 'left', color : val, doc: window.parent.document }); var preview = row.find('.pagelayer-elp-color-preview'); // If no val, then set blank if(pagelayer_empty(val)){ preview.addClass('pagelayer-blank-preview'); } var handle_white = function(col){ if(col.charAt(1) == 'f'){ preview.addClass('pagelayer-white-border'); }else{ preview.removeClass('pagelayer-white-border'); } } handle_white(val); // Handle selected color picker.onChange = function(color) { preview.removeClass('pagelayer-blank-preview').css('background', color.rgbaString); handle_white(color.hex); _pagelayer_set_atts(row, color.hex);// Save and Render // Remove global row.find('.pagelayer-elp-color-global').removeClass('pagelayer-active-global'); row.find('.pagelayer-global-selected').removeClass('pagelayer-global-selected'); row.find('.pagelayer-global-color-list').hide(); }; picker.onOpen = picker.onChange; row.find('.pagelayer-elp-remove-color').on('click', function(event){ event.stopPropagation(); picker.setColor(prop.default, true); preview.addClass('pagelayer-blank-preview'); handle_white(''); _pagelayer_set_atts(row, ' ');// Save and Render }); // Handle for global color row.find('.pagelayer-elp-color-global').on('click', function(e){ row.find('.pagelayer-global-color-list').slideToggle(); }); row.find('.pagelayer-global-setting-color').on('click', function(e){ e.stopPropagation(); if(jQuery(e.target).closest('.pli-service').length < 1){ return; } window.open(pagelayer_customizer_url+'&autofocus%5Bsection%5D=pagelayer_global_colors_sec', '_blank'); }); // Handle for global color row.find('.pagelayer-global-color-list-item ').on('click', function(e){ e.stopPropagation(); var listItem = jQuery(this); var globalID = listItem.data('global-id'); var listHolder = row.find('.pagelayer-global-color-list'); // Remove previous selecttion listHolder.find('.pagelayer-global-selected').removeClass('pagelayer-global-selected'); listItem.addClass('pagelayer-global-selected'); row.find('.pagelayer-elp-color-global').addClass('pagelayer-active-global'); listHolder.slideUp(); var color = pagelayer_global_colors[globalID]['value']; preview.removeClass('pagelayer-blank-preview').css('background', color); handle_white(color); _pagelayer_set_atts(row, '$'+globalID);// Save and Render }); } // The Spinner property function pagelayer_elp_spinner(row, prop){ var div = '
'+ ''+ '
'; row.append(div); row.find('input').on('input', function(){ var value = parseFloat(this.value); var max = parseFloat(this.max); if(!pagelayer_empty(max) && value > max){ value = max; } _pagelayer_set_atts(row, value);// Save and Render }); } // The Group Property function pagelayer_elp_group(row, prop){ var btnHidden = ''; // Hide button, clone and delete if(!pagelayer_empty(prop['hide'])){ btnHidden = 'pagelayer-hidden'; } // Remove the pagelayer-show-tab row.removeAttr('pagelayer-show-tab'); var div = '
'+ '
'; row.append(div); // Add button var add_item = function(row){ var ele_id = row.closest('[pagelayer-element-id]').attr('pagelayer-element-id') || ''; var pEle = jQuery('[pagelayer-id="'+ele_id+'"]'); // First add the element inside the group element var id = pagelayer_element_add_child(pEle, prop['sc'], prop); //pagelayer_element_setup('[pagelayer-id='+id+']', true); show_item(id); }; // Show the properties of the existing things var show_item = function(id, sel){ // To append after an existing item sel = sel || false; // If pagelayer id empty then return if(pagelayer_empty(id)){ return false; } // Since the element is added very fast, we reselect via jQuery for it to re-access the dom jEle = jQuery('[pagelayer-id="'+id+'"]'); var label_param = prop['item_label']['param'] || ''; var title = pagelayer_get_att(jEle, label_param) || prop['item_label']['default']; // We need to get the correct value for select based params which are the label var child_props = pagelayer_shortcodes[prop.sc]; for(var section in child_props){ for(var _param in child_props[section]){ if(child_props[section][_param]['type'] == 'select'){ if(title in child_props[section][_param]['list']){ title = child_props[section][_param]['list'][title]; } } } } // Create the HTML var holder = jQuery('
'+ '
'+ ''+ ''+title+''+ ''+ ''+ '
'+ '
'+ '
'); // Append to the row if(sel){ row.find(sel).after(holder); }else{ row.find('.pagelayer-elp-group-div').first().append(holder); } // Setup the toggle holder.find('.pagelayer-elp-group-item-title').first().on('click', function(){ var rEle = holder.find('.pagelayer-elp-group-item-body').first(); var r_id = holder.attr('pagelayer-group-item-id'); // If the props are not already setup if(rEle.html().length < 1){ pagelayer_elpd_generate(jQuery('[pagelayer-id="'+r_id+'"]'), rEle); // Change the group item title var tmp_title = holder.find('[pagelayer-elp-name="'+label_param+'"] [name="'+label_param+'"]'); if(tmp_title.length > 0){ jQuery(tmp_title).on('input', function(){ holder.find('.pagelayer-elp-group-item-title').html(tmp_title.val()); }); } } rEle.toggle(); }); // Clone the item holder.find('.pagelayer-elp-group-item-head .pli-clone').on('click', function(){ // If the element have any parent var jEle = jQuery('[pagelayer-id="'+id+'"]'); var par = pagelayer_get_parent(jEle); var clone_ele = pagelayer_copy_element(jEle); //console.log(clone_ele);console.log('[pagelayer-group-item-id="'+id+'"]'); show_item(clone_ele, '[pagelayer-group-item-id="'+id+'"]'); if(par){ pagelayer_sc_render(pagelayer_ele_by_id(par)); } }); // Delete the item holder.find('.pagelayer-elp-group-item-head .pli-trashcan').on('click', function(){ // If the element have any parent var jEle = jQuery('[pagelayer-id="'+id+'"]'); var par = pagelayer_get_parent(jEle); holder.remove(); pagelayer_delete_element(jEle); if(par){ pagelayer_sc_render(pagelayer_ele_by_id(par)); } }); }; // Setup the drag pagelayer.$$(".pagelayer-elp-group-div").sortable({ axis: 'y', nested : false, vertical : true, handle : ".pagelayer-elp-group-item-drag", placeholder: "pagelayer-drag-highlight", start : function(event, ui) { var start_pos = ui.item.index(); ui.item.data('start_pos', start_pos); }, stop : function(event, ui){ var end_pos = ui.item.index(); var id = jQuery(ui.item).closest('[pagelayer-group-item-id]').attr('pagelayer-group-item-id'); var jEle = jQuery('[pagelayer-id="'+id+'"]'); pagelayer_moving_element(jEle, ui.item.data('start_pos'), end_pos); var par = pagelayer_get_parent(jEle); if(par){ pagelayer_sc_render(pagelayer_ele_by_id(par)); } } }); // Handle click of the group row.find('.pagelayer-elp-button').on('click', function(){ if('pro' in prop && pagelayer_empty(pagelayer_pro)){ pagelayer_pro_notice(); return; } add_item(row); }); // Find the existing items prop.el.$.find('[pagelayer-parent="'+prop.el['id']+'"]').each(function(){ var jEle = jQuery(this); var id = pagelayer_assign_id(jEle); show_item(id); }); }; function pagelayer_pro_notice(){ var div = pagelayer.$$('.pagelayer-pro-notice'); div.find('.pagelayer-pro-x').click(function(){ div.hide(); }); div.show(); } // Moving an element function pagelayer_moving_element(jEle, start_pos, end_pos){ if(start_pos==end_pos){ return; } var id = pagelayer_assign_id(jEle); // Is there a wrap var wrap = pagelayer_wrap_by_id(id); var par = wrap.parent(); var children = par.children("div"); // This is required for Owl Carousel if(children.length==1){ par = par.parent(); children = par.children("div"); } var element = children.eq(start_pos).detach(); if(end_pos < start_pos){ children.eq(end_pos).before(element); }else{ children.eq(end_pos).after(element); } } // The Datetime Property function pagelayer_elp_datetime(row, prop){ var div = '
'+ ''+ '
'; row.append(div); row.find('.pagelayer-elp-datetime').on('change', function(){ _pagelayer_set_atts(row, jQuery(this).val());// Save and Render }); }; // The padding property function pagelayer_elp_padding(row, prop){ var val = ['', '', '', '']; if(!pagelayer_empty(prop.c['val'])){ val = prop.c['val']; if(pagelayer_is_string(val)){ val = val.split(','); } } var div = '
'+ ''+ ''+ ''+ ''+ ''+ '
'; row.append(div); // Is the value linked ? var link = row.find('.pagelayer-elp-padding-div i'); var isLinked = 1; //isLinked = isLinked == 2 ? false : true; //console.log(isLinked); var tmp_val = val[0]; for(var p_val in val){ // Check if unlinked if(tmp_val != val[p_val] ){ isLinked = 0; } tmp_val = val[p_val]; } if(isLinked){ link.addClass('pagelayer-elp-padding-linked'); }else{ link.removeClass('pagelayer-elp-padding-linked'); } // Handle link on click link.on('click', function(){ var linked = link.hasClass('pagelayer-elp-padding-linked'); if(linked){ link.removeClass('pagelayer-elp-padding-linked'); }else{ link.addClass('pagelayer-elp-padding-linked'); } }); row.find('input').on('input', function(){ // Are the values linked var linked = row.find('.pagelayer-elp-padding-div .pli').hasClass('pagelayer-elp-padding-linked'); if(linked){ var val = jQuery(this).val(); row.find('input').each(function(){ jQuery(this).val(val); }); } var vals = []; // Get all values row.find('input').each(function(){ var val = jQuery(this).val(); vals.push(val ? val : 0); }); _pagelayer_set_atts(row, vals);// Save and Render }); }; // The shadow property function pagelayer_elp_shadow(row, prop){ var val =['','','','']; // Do we have a val ? if(!pagelayer_empty(prop.c['val'])){ val = prop.c['val']; if(pagelayer_is_string(val)){ val = val.split(','); } } //var val = {color: '', blur: '', horizontal: '', vertical: ''}; var div = ''+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ '
'+ '
'+ ''+ '
'+ '
'+ '
'; row.append(div); row.find('.pagelayer-prop-edit').on('click', function(){ row.find('.pagelayer-elp-shadow-div').toggleClass('pagelayer-prop-show'); }); var preview = row.find('.pagelayer-elp-color-preview'); preview.css('background', val[3]); var picker = new pagelayer_Picker({ parent : row.find('.pagelayer-elp-color-div')[0], popup : 'left', color : val[3], doc: window.parent.document }); // If no val, then set blank if(pagelayer_empty(val[3])){ preview.addClass('pagelayer-blank-preview'); } var handle_white = function(col){ if(col.charAt(1) == 'f'){ preview.addClass('pagelayer-white-border'); }else{ preview.removeClass('pagelayer-white-border'); } } handle_white(val[3]); // Handle selected color picker.onChange = function(color) { preview.removeClass('pagelayer-blank-preview').css('background', color.rgbaString); handle_white(color.hex); val[3] = (color.hex ? color.hex : ''); _pagelayer_set_atts(row, val); }; // Remove Color row.find('.pagelayer-elp-remove-color').on('click', function(event){ event.stopPropagation(); picker.setColor(prop.default, true); preview.addClass('pagelayer-blank-preview'); handle_white(''); val[3] = ''; _pagelayer_set_atts(row, val); }); row.find('input').on('input', function(){ var i = 0; row.find('.pagelayer-elp-shadow-input').each(function(){ var value = jQuery(this).val(); val[i] = (value ? value : ''); i++; }); _pagelayer_set_atts(row, val); }); } // The box shadow property function pagelayer_elp_box_shadow(row, prop){ var val = ['','','','','','']; // Do we have a val ? if(!pagelayer_empty(prop.c['val'])){ val = prop.c['val']; if(pagelayer_is_string(val)){ val = val.split(','); } } var val_pos = ['horizontal','vertical','blur','color','spread','inset']; var div = ''+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ '
'+ '
'+ ''+ '
'+ '
'+ '
'+ ''+ ''+ '
'+ '
'; row.append(div); row.find('.pagelayer-prop-edit').on('click', function(){ row.find('.pagelayer-elp-shadow-div').toggleClass('pagelayer-prop-show'); }); var preview = row.find('.pagelayer-elp-color-preview'); preview.css('background', val[3]); var picker = new pagelayer_Picker({ parent : row.find('.pagelayer-elp-color-div')[0], popup : 'left', color : val[3], doc: window.parent.document }); // If no val, then set blank if(pagelayer_empty(val[3])){ preview.addClass('pagelayer-blank-preview'); } var handle_white = function(col){ if(col.charAt(1) == 'f'){ preview.addClass('pagelayer-white-border'); }else{ preview.removeClass('pagelayer-white-border'); } } handle_white(val[3]); // Handle selected color picker.onChange = function(color) { row.find('.pagelayer-elp-color-preview').removeClass('pagelayer-blank-preview').css('background', color.rgbaString); handle_white(color.hex); val[3] = (color.hex ? color.hex : ''); _pagelayer_set_atts(row, val); }; // Remove Color row.find('.pagelayer-elp-remove-color').on('click', function(event){ event.stopPropagation(); picker.setColor(prop.default, true); preview.addClass('pagelayer-blank-preview'); handle_white(''); val[3] = ''; _pagelayer_set_atts(row, val); }); // Onchange set props row.find('.pagelayer-elp-shadow-input').on('input change', function(){ //var i = 0; row.find('.pagelayer-elp-shadow-input').each(function(){ var value = jQuery(this).val(); var name = jQuery(this).attr('name'); val[val_pos.indexOf(name)] = (value ? value : ''); //i++; }); _pagelayer_set_atts(row, val); }); } // The filter property function pagelayer_elp_filter(row, prop){ var val = [0,100,100,0,0,100,100]; // Do we have a val ? if(!pagelayer_empty(prop.c['val'])){ val = prop.c['val']; if(pagelayer_is_string(val)){ val = val.split(','); } } var filters = [['blur','10','0.1'],['brightness','200','1'],['contrast','200','1'],['grayscale','200','1'],['hue','360','1'],['opacity','100','1'],['saturate','200','1']]; var div = ''+ '
'; jQuery.each(val,function(key, value){ div += '
'+ ''+ ''+ ''+value+''+ '
'; }); div += '
'; row.append(div); row.find('.pagelayer-prop-edit').on('click', function(){ row.find('.pagelayer-elp-filter-div').toggleClass('pagelayer-prop-show'); }); row.find('input').on('input', function(){ var val = []; jQuery(this).parent().find('span').html(this.value); row.find('.pagelayer-elp-filter-input').each(function(){ var value = jQuery(this).val(); val.push(value ? value : 'none'); }); _pagelayer_set_atts(row, val); }); } // The gradient property function pagelayer_elp_gradient(row, prop){ var val = ['','','','','','','']; // Do we have a val ? if(!pagelayer_empty(prop.c['val'])){ val = prop.c['val']; if(pagelayer_is_string(val)){ val = val.split(','); } } var setColor = [val[1], val[3], val[5]]; //var val = {color: '', blur: '', horizontal: '', vertical: ''}; var getColorList = function(num){ var is_global = pagelayer_is_global_color(setColor[num]); var global_list = '
'+ '
'+ 'Global Colors'+ '
'; for( cid in pagelayer_global_colors ){ var color = pagelayer_global_colors[cid]; var active_class = ''; if(cid == is_global){ active_class = 'pagelayer-global-selected'; } // If global color not exist if(!pagelayer_empty(is_global)){ setColor[num] = pagelayer_global_colors[is_global]['value']; } global_list += '
'+ ''+ ''+ color['title'] +''+ ''+ color['value'] +''+ '
'; } global_list += '
'; return global_list; } var div = '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ '
'+ '
'+ '
'+ '
'+ '
'+ getColorList(0)+ '
'+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ '
'+ '
'+ '
'+ '
'+ '
'+ getColorList(1)+ '
'+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ '
'+ '
'+ '
'+ '
'+ '
'+ getColorList(2)+ '
'+ '
'+ '
'+ ''+ ''+ '
'+ '
'; row.append(div); var i = 0; row.find('.pagelayer-elp-color-preview').each(function(){ jQuery(this).css('background', setColor[i]); i++; }); // Remove global var removeGlobal = function(holder){ holder.find('.pagelayer-elp-color-global').removeClass('pagelayer-active-global'); holder.find('.pagelayer-global-selected').removeClass('pagelayer-global-selected'); holder.find('.pagelayer-global-color-list').hide(); } var picker1 = new pagelayer_Picker({ parent : row.find('.pagelayer-elp-gradient-color1')[0], popup : 'left', color : setColor[0], doc: window.parent.document }); // Handle selected color picker1.onChange = function(color) { var cPreview = row.find('.pagelayer-elp-gradient-color1') cPreview.css('background', color.rgbaString); val[1] = (color.hex ? color.hex : ''); _pagelayer_set_atts(row, val); removeGlobal(cPreview.closest('.pagelayer-elp-color-div-holder')); }; var picker2 = new pagelayer_Picker({ parent : row.find('.pagelayer-elp-gradient-color2')[0], popup : 'left', color : setColor[1], doc: window.parent.document }); // Handle selected color picker2.onChange = function(color) { var cPreview = row.find('.pagelayer-elp-gradient-color2'); cPreview.css('background', color.rgbaString); val[3] = (color.hex ? color.hex : ''); _pagelayer_set_atts(row, val); removeGlobal(cPreview.closest('.pagelayer-elp-color-div-holder')); }; var picker3 = new pagelayer_Picker({ parent : row.find('.pagelayer-elp-gradient-color3')[0], popup : 'left', color : setColor[2], doc: window.parent.document }); // Handle selected color picker3.onChange = function(color) { var cPreview = row.find('.pagelayer-elp-gradient-color3'); cPreview.css('background', color.rgbaString); val[5] = (color.hex ? color.hex : ''); _pagelayer_set_atts(row, val); removeGlobal(cPreview.closest('.pagelayer-elp-color-div-holder')); }; row.find('input').on('input', function(){ var i = 0; row.find('.pagelayer-elp-gradient-input').each(function(){ var value = jQuery(this).val(); val[i] = (value ? value : ''); i = i+2; }); _pagelayer_set_atts(row, val); }); row.find('.pagelayer-global-selected').each(function(){ jQuery(this).closest('.pagelayer-elp-color-div-holder').find('.pagelayer-elp-color-global').addClass('pagelayer-active-global'); }); // Handle for global color row.find('.pagelayer-elp-color-global').on('click', function(e){ jQuery(this).closest('.pagelayer-elp-color-div-holder').find('.pagelayer-global-color-list').slideToggle(); }); row.find('.pagelayer-global-setting-color').on('click', function(e){ e.stopPropagation(); if(jQuery(e.target).closest('.pli-service').length < 1){ return; } window.open( pagelayer_customizer_url + '&autofocus%5Bsection%5D=pagelayer_global_colors_sec', '_blank' ); }); // Handle for global color row.find('.pagelayer-global-color-list-item ').on('click', function(e){ e.stopPropagation(); var listItem = jQuery(this); var globalID = listItem.data('global-id'); var listHolder = listItem.closest('.pagelayer-global-color-list'); var colorHolder = listItem.closest('.pagelayer-elp-color-div-holder'); var colorPreview = colorHolder.find('.pagelayer-elp-color-preview'); // Remove previous selecttion listHolder.find('.pagelayer-global-selected').removeClass('pagelayer-global-selected'); listItem.addClass('pagelayer-global-selected'); colorHolder.find('.pagelayer-elp-color-global').addClass('pagelayer-active-global'); listHolder.slideUp(); var color = pagelayer_global_colors[globalID]['value']; colorPreview.removeClass('pagelayer-blank-preview').css('background', color); var i = 1; if(colorPreview.hasClass('pagelayer-elp-gradient-color2')){ i = 3; } if(colorPreview.hasClass('pagelayer-elp-gradient-color3')){ i = 5; } val[i] = '$'+globalID; _pagelayer_set_atts(row, val);// Save and Render }); } function pagelayer_elp_font_family(row, prop){ var options = ''; var option = function(val, lang, type){ var selected = (val != prop.c['val']) ? '' : 'selected="selected"'; var lang = pagelayer_empty(lang) ? 'Default' : lang; return ''; } for(y in pagelayer_fonts){ if(y != 'default'){ options += ''; } for (x in pagelayer_fonts[y]){ options += option((jQuery.isNumeric(x) ? pagelayer_fonts[y][x] : x), pagelayer_fonts[y][x], y); } } var div = '
'+ ''+ '
'; row.append(div); row.find('select').on('change', function(){ var sEle = jQuery(this); pagelayer_link_font_family(sEle); _pagelayer_set_atts(row, sEle.val());// Save and Render }); } // The typography property function pagelayer_elp_typography(row, prop){ var val = pagelayer_parse_typo(prop.c['val'], true); var is_typo = pagelayer_is_global_typo(prop.c['val']); var global_active = ''; var save_timer = {}; // Load value of tablet and mobile var val_tablet = pagelayer_get_att(prop.el.$, prop.c['name']+'_tablet'); var val_mobile = pagelayer_get_att(prop.el.$, prop.c['name']+'_mobile'); val_tablet = pagelayer_parse_typo(val_tablet); val_mobile = pagelayer_parse_typo(val_mobile); // If global color not exist if(!pagelayer_empty(is_typo)){ global_active = 'pagelayer-active-global'; } var select = { 'style' : {'' : 'Default', 'normal' : 'Normal', 'italic' : 'Italic', 'oblique' : 'Oblique'}, 'weight' : {'' : 'Default', '100' : '100', '200' : '200', '300' : '300', '400' : '400', '500' : '500', '600' : '600', '700' : '700', '800' : '800', '900' : '900', 'normal' : 'Normal', 'lighter' : 'Lighter', 'bold' : 'Bold', 'bolder' :'Bolder', 'unset' : 'Unset'}, 'variant' : {'' : 'Default', 'normal' : 'Normal', 'small-caps' : 'Small Caps'}, 'deco-line' : {'' : 'Default', 'none' : 'None', 'overline' : 'Overline', 'line-through' : 'Line Through', 'underline' : 'Underline', 'underline overline' : 'Underline Overline'}, 'deco-style' : {'' : 'Default', 'solid' : 'Solid', 'double' : 'Double', 'dotted' : 'Dotted', 'dashed' : 'Dashed', 'wavy' : 'Wavy'}, 'transform' : {'' : 'Default', 'capitalize' : 'Capitalize', 'uppercase' : 'Uppercase', 'lowercase' : 'Lowercase'}, 'fonts' : pagelayer_fonts, } var option = function(val, lang, setVal){ var selected = (val.toLowerCase() != setVal.toLowerCase()) ? '' : 'selected="selected"'; var lang = pagelayer_empty(lang) ? 'Default' : lang; return ''; } var font_options = ''; var font_option = function(val, lang, type, setVal){ var selected = (val != setVal) ? '' : 'selected="selected"'; var lang = pagelayer_empty(lang) ? 'Default' : lang; return ''; } for(y in select['fonts']){ if(y != 'default'){ font_options += ''; } for (x in select['fonts'][y]){ font_options += font_option((jQuery.isNumeric(x) ? select['fonts'][y][x] : x), select['fonts'][y][x], y, val[0]); } } var modes = {desktop: '', tablet: '_tablet', mobile: '_mobile'}; var mode = pagelayer_get_screen_mode(); var screen = '
'+ ''+ ''+ ''+ ''+ '
'; var div = ''+ ''+ ''+ '
'+ '
'+ '
'+ ''+ ''+ ''+ ''+ ''+ '
'; for( cid in pagelayer_global_fonts ){ var font = pagelayer_global_fonts[cid]; div += '
'+ ''+font['title']+''+ '
'; } div += '
'+ '
'+ '
'+ ''+ ''+ '
'; div += '
'+ ''+ ''+ ''+ ''+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ ''+ ''+ ''+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ ''+ ''+ ''+ '
'+ '
'+ ''+ ''+ '
'+ '
'+ ''+ ''+ ''+ ''+ '
'+ '
'+ ''+ ''+ ''+ ''+ '
'+ '
'+ '
'; row.append(div); if(pagelayer_empty(val[5]) || val[5]=='none'){ row.find('.pagelayer-elp-typo-deco-style').hide(); } row.find('.pagelayer-elp-typo-edit-div .pli-pencil').on('click', function(){ row.find('.pagelayer-elp-typo-div').toggleClass('pagelayer-prop-show'); }); var save_typography = function(){ var globalEle = row.find('.pagelayer-global-selected'); var atts = {}; atts[prop.c['name']] = {}; atts[prop.c['name']+'_tablet'] = {}; atts[prop.c['name']+'_mobile'] = {}; if(globalEle.length > 0){ atts[prop.c['name']]['global-font'] = globalEle.attr('data-global-id'); } row.find('.pagelayer-elp-typo-input').each(function(){ var iEle = jQuery(this); var name = iEle.attr('name'); var value = iEle.val(); var isGlobal = iEle.closest('[pagelayer-set-global]'); if((value == '' && isGlobal.length < 1 && globalEle.length < 1) || isGlobal.length > 0){ return; } if(name.indexOf('_tablet') > -1){ name = name.replace('_tablet', ''); atts[prop.c['name']+'_tablet'][name] = value; return; } if(name.indexOf('_mobile') > -1){ name = name.replace('_mobile', ''); atts[prop.c['name']+'_mobile'][name] = value; return; } atts[prop.c['name']][name] = value; }); pagelayer_set_atts(prop.el.$, atts); pagelayer_sc_render(prop.el.$); // Render } row.find('.pagelayer-elp-typo-input').on('change', function(e){ var jEle = jQuery(e.target); pagelayer_link_font_family(jEle); jEle.closest('[pagelayer-set-global]').removeAttr('pagelayer-set-global'); // Save value save_typography(); }); row.find('.pagelayer-elp-typo-deco-line select').on('change', function(){ var value = jQuery(this).val(); if(pagelayer_empty(value) || value=='none'){ row.find('.pagelayer-elp-typo-deco-style').hide(); }else{ row.find('.pagelayer-elp-typo-deco-style').show(); } }); // Handle for global font row.find('.pagelayer-elp-global-typo .pagelayer-elp-global-icon').on('click', function(e){ e.stopPropagation(); row.find('.pagelayer-global-font-list').slideToggle(); }); row.find('.pagelayer-elp-global-typo .pli-service').on('click', function(e){ e.stopPropagation(); window.open(pagelayer_customizer_url+'&autofocus%5Bsection%5D=pagelayer_global_fonts_sec', '_blank'); }); // Added restore global val row.find('.pagelayer-elp-typo > .pagelayer-elp-label').each(function(){ var label = jQuery(this); var defaultButton = ''; label.append(defaultButton); label.find('.pagelayer-typo-default').on('click', function(e, skip_save){ skip_save = skip_save || false; var globalID = row.find('.pagelayer-global-selected').data('global-id'); if(pagelayer_empty(globalID) || pagelayer_empty(pagelayer_global_fonts[globalID])){ return; } var setFonts = pagelayer_global_fonts[globalID]['value']; var holder = label.closest('.pagelayer-elp-typo'); var inputs = holder.find('.pagelayer-elp-typo-input'); var name = inputs.first().attr('name'); var val = ''; holder.attr('pagelayer-set-global', 1); if(name in setFonts){ val = setFonts[name]; } if(typeof val == 'object'){ for(var mode in modes){ var _val = ''; if(mode in val){ _val = val[mode]; } holder.find('.pagelayer-elp-typo-input[name="'+name+modes[mode]+'"]').val(_val); } }else{ if(inputs.length > 1){ inputs.val(''); } inputs.first().val(val); } if(skip_save){ return; } // save value clearTimeout(save_timer); save_timer = setTimeout(save_typography, 200); }); }); // Handle for global font row.find('.pagelayer-global-font-list-item').on('click', function(e){ e.stopPropagation(); var listItem = jQuery(this); var fontSelect = row.find('.pagelayer-elp-typo-family .pagelayer-elp-typo-input'); // Remove global typo if(listItem.hasClass('pagelayer-global-selected')){ row.find('.pagelayer-global-selected').removeClass('pagelayer-global-selected'); row.find('.pagelayer-elp-global-icon').removeClass('pagelayer-active-global'); row.find('[pagelayer-set-global]').removeAttr('pagelayer-set-global'); row.find('.pagelayer-global-on').removeClass('pagelayer-global-on'); // To save and render the typo fontSelect.trigger('change'); return; } var globalID = listItem.data('global-id'); var listHolder = row.find('.pagelayer-global-font-list'); // Remove previous selecttion listHolder.find('.pagelayer-global-selected').removeClass('pagelayer-global-selected'); listItem.addClass('pagelayer-global-selected'); row.find('.pagelayer-elp-global-icon').addClass('pagelayer-active-global'); row.find('.pagelayer-elp-typo-fonts').addClass('pagelayer-global-on'); listHolder.slideUp(); pagelayer_link_font_family(fontSelect); // Apply google fonts // Set global value to all fields and save row.find('.pagelayer-elp-label .pagelayer-typo-default').click(); }); // Active global typography if(!pagelayer_empty(is_typo)){ row.find('[data-global-id="'+is_typo+'"]').addClass('pagelayer-global-selected'); row.find('.pagelayer-elp-global-icon').addClass('pagelayer-active-global'); row.find('.pagelayer-elp-typo-fonts').addClass('pagelayer-global-on'); // Show the global values if is not customize row.find('.pagelayer-elp-typo').attr('pagelayer-set-global', 1); row.find('.pagelayer-elp-typo').find('select, input').each(function(){ var sEle = jQuery(this); var val = sEle.val(); if(pagelayer_empty(val)){ return true; } sEle.closest('.pagelayer-elp-typo').removeAttr('pagelayer-set-global'); }); row.find('[pagelayer-set-global="1"] .pagelayer-typo-default').trigger('click', [true]); } // Set screen mode on change row.find('.pagelayer-elp-screen .pli:not(.pagelayer-prop-screen)').on('click', function(){ var mode = 'desktop'; var jEle = jQuery(this); // Tablet ? if(jEle.hasClass('pli-tablet')){ mode = 'tablet'; } // Mobile ? if(jEle.hasClass('pli-mobile')){ mode = 'mobile'; } pagelayer_set_screen_mode(mode); row.find('.pagelayer-elp-screen .pli').removeClass('open'); }); row.find('.pagelayer-elp-screen').on('pagelayer-screen-changed', function(e){ var mode = pagelayer_get_screen_mode(); row.find('[pagelayer-screen-mode]').attr('pagelayer-screen-mode', mode); }); row.find('.pagelayer-elp-screen .pagelayer-prop-screen').on('click', function(e){ jQuery(this).siblings().toggleClass('open'); }); } // The dimension property function pagelayer_elp_dimension(row, prop){ var val = ['', '']; if(!pagelayer_empty(prop.c['val'])){ val = prop.c['val']; if(pagelayer_is_string(val)){ val = val.split(','); //console.log(val); } } var div = '
'+ ''+ ''+ ''+ '
'; row.append(div); // Is the value linked ? var link = row.find('.pagelayer-elp-dimension-div .pli'); var isLinked = 1; var tmp_val = val[0]; for(var p_val in val){ // Check if unlinked if(tmp_val != val[p_val] ){ isLinked = 0; } tmp_val = val[p_val]; } if(isLinked){ link.addClass('pagelayer-elp-dimension-linked'); }else{ link.removeClass('pagelayer-elp-dimension-linked'); } // Handle link on click link.on('click', function(){ var linked = link.hasClass('pagelayer-elp-dimension-linked'); if(linked){ link.removeClass('pagelayer-elp-dimension-linked'); }else{ link.addClass('pagelayer-elp-dimension-linked'); } }); row.find('input').on('input', function(){ // Are the values linked var linked = row.find('.pagelayer-elp-dimension-div .pli').hasClass('pagelayer-elp-dimension-linked'); if(linked){ var val = jQuery(this).val(); row.find('input').each(function(){ jQuery(this).val(val); }); } var vals = []; // Get all values row.find('input').each(function(){ var val = jQuery(this).val(); vals.push(val ? val : 0); }); _pagelayer_set_atts(row, vals);// Save and Render }); }; var first_time_cat = true; // Post Category property function pagelayer_elp_postCategory(row, prop){ if(pagelayer_empty(pagelayer_post_categories)){ return; } // Placing the checked categories on the top. var checked_on_top = function(with_checkbox){ var checked_list = ''; var unchecked_list = ''; for(var list of jQuery(with_checkbox).children()){ var temp = jQuery(list).find('input[checked=checked]'); if(!pagelayer_empty(temp.length)){ checked_list += list.outerHTML; }else{ unchecked_list += list.outerHTML; } } return ('
'); } // Getting checked and unchecked categories on opening of page props settings. if(first_time_cat == false){ var $div = jQuery('
').html(pagelayer_post_categories.with_checkbox); $div.find('input[type=checkbox]').attr('checked', false); if(!pagelayer_empty(prop.c['val'])){ var check_val = prop.c['val']; if(pagelayer_is_string(check_val)){ check_val = check_val.split(','); } for(var no in check_val){ $div.find('input[type=checkbox][value='+check_val[no]+']').attr('checked', true); } } pagelayer_post_categories.with_checkbox = $div.html(); } first_time_cat = false; // For making insert new categories functionality. row.append(checked_on_top(pagelayer_post_categories.with_checkbox)); var div = ''; row.append(div); // For making categories drop down options and adding an empty option. if(!pagelayer_empty(pagelayer_post_categories.without_checkbox)){ var options = pagelayer_post_categories.without_checkbox.replace('>', '>'); var options = jQuery(options); row.find('.pagelayer-parent-category').append(options); } // For initiating ajax call when user create new category row.find('form').on('submit', function(e){ e.preventDefault(); jQuery.ajax({ type: 'post', url: pagelayer_ajax_url+'&action=pagelayer_get_cat_checkboxes', dataType: 'json', data: { pagelayer_nonce: pagelayer_ajax_nonce, 'postid': pagelayer_postID, 'new_cat': row.find('form').serialize() }, success: function(obj){ if(pagelayer_empty(obj)){ return; } if('error' in obj){ alert(obj.error); } if(!pagelayer_empty(obj.new_cat_id)){ obj.with_checkbox = obj.with_checkbox.replace('value="'+obj.new_cat_id+'"', 'value="'+obj.new_cat_id+'" checked="checked"'); } var new_cat_elem = jQuery(obj.with_checkbox).find('input[value='+obj.new_cat_id+']').closest('li'); var post_cat = row.find('.pagelayer-post-category'); // Does the new element have no parents ? Then prepend the
  • to the existing list shown if(!pagelayer_empty(new_cat_elem.parent('.pagelayer-post-category').length)){ post_cat.prepend(new_cat_elem); }else{ // Siblings are already there ? if(!pagelayer_empty(new_cat_elem.siblings().length)){ post_cat.find('#'+new_cat_elem.parent().parent('li').attr('id')).children('ul').append(new_cat_elem); // No siblings, hence append }else{ new_cat_elem = new_cat_elem.parent(); post_cat.find('#'+new_cat_elem.closest('li').attr('id')).append(new_cat_elem); } post_cat.prepend(new_cat_elem.parentsUntil('.pagelayer-post-category').last()); } row.find('#pagelayer_cat_parent').replaceWith(obj.without_checkbox.replace('>', '>')); row.find('input[name="category_name"]').val(''); row.find('#pagelayer_cat_parent option[value="0"]').attr('selected', true); checked_cat(row.find('.pagelayer-post-cat-div')); event_function(); pagelayer_post_categories = obj; } }); }); // Show and hide 'Add new Category' button. row.find('.pagelayer-add-cat-btn').on('click', function(){ row.find('form').toggle('fast'); }); var checked_cat = function(elem){ var jEle = elem.find('input:checked'); var cat_array = []; for(var checked_input of jEle){ cat_array.push(jQuery(checked_input).attr('value')); } _pagelayer_set_atts(row, cat_array); }; var event_function = function(){row.find('.pagelayer-post-cat-div').on('change', function(){ checked_cat(jQuery(this)); }); }; event_function(); } var first_time_tag = true; // Post tags property function pagelayer_elp_postTags(row, prop){ if(pagelayer_empty(pagelayer_post_tags)){ return; } var div = ''; row.append(div); // Single tag html var singleTag = function(tags){ var html = ''; jQuery.each(tags, function(index, value){ if(pagelayer_empty(value['term_id'])){ return; } html += ''+value['name']+''; }); return html; } // Single list item html var singleLi= function(tags){ var html = ''; jQuery.each(tags, function(index, value){ html += '
  • '+value['name']+'
  • '; }); return html; } // For making new tags as well as removing using keyboard inputs. var keypresses = function(obj){ row.find('.pagelayer-elp-postTags-inp').on('keydown', function(e){ var val = e.target.value.trim(); var keycode = (event.keyCode ? event.keyCode : event.which); if(keycode == '13' || keycode == '188'){ for(var tag of obj.allTags){ if(tag['name']==val){ insertTags(val, tag['term_id']); return false; } } jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_get_post_tags', type: 'post', dataType: 'json', data: { pagelayer_nonce: pagelayer_ajax_nonce, 'postid': pagelayer_postID, 'new_tag': val }, success: function(resp){ if(pagelayer_empty(resp)){ return; } if('error' in resp){ alert(resp.error); } if(!pagelayer_empty(resp.tag_id)){ insertTags(val, resp.tag_id); tagSearching(resp); pagelayer_post_tags = resp; } } }); return false; }else if(keycode == '8'){ if(!pagelayer_empty(val)){ return true; } row.find('.pagelayer-post-tags').children('span').last().remove(); selected_tags(); } return true; }); } // Inserting tags in the Metabox. var insertTags = function(name, tag_id){ var newItem = []; newItem[0] = { name:name, term_id:tag_id }; row.find('.pagelayer-post-tags').children('input').before(singleTag(newItem)); row.find('.pagelayer-elp-postTags .pagelayer-elp-postTags-inp').val('').focus(); tag_remove(); selected_tags(); } // Removing tags by clicking on the x button. var tag_remove = function(){ row.find('.pagelayer-elp-tags-remove').each(function(){ jQuery(this).on('click',function(){ jQuery(this).parent().remove(); selected_tags(); }); }); } // For searching tag name in the list of the fetched tags var tagSearching = function(obj){ row.find('.pagelayer-elp-postTags-inp').off('keyup'); row.find('.pagelayer-elp-postTags-inp').on("keyup", function() { var value = jQuery(this).val().toLowerCase(); var listUl = row.find('.pagelayer-postTags-list'); listUl.empty(); if(value.length<2){ return; } var listValues = obj.allTags.filter(function(currentValue){ if(currentValue.name.indexOf(this)>-1){ var temp = false; var tags = row.find('.pagelayer-post-tags').children('span'); for(var indi of tags){ if(jQuery(indi).attr('data-val')==currentValue.term_id){ temp = true; } } if(temp==false){ return currentValue; } } }, value); if(!pagelayer_empty(listValues.length)){ listUl.append(singleLi(listValues)); listUl.children().each(function(index, value){ var ele = jQuery(this); ele.off('click'); ele.on('click', function(){ insertTags(ele.text(), ele.attr('data-val')); listUl.empty(); }); }); } }); } var tagsArray = pagelayer_post_tags.postTags; // Getting tags on opening of page props settings. if( first_time_tag == false ){ var i=0; var tags_array = []; // Create array for needed term_id with corresponding to the name. if(!pagelayer_empty(prop.c['val'])){ var tags_val = prop.c['val']; if(pagelayer_is_string(tags_val)){ tags_val = tags_val.split(','); } for(var name in tags_val){ tags_array[i] = pagelayer_post_tags.allTags.find(function(val){return val['name'] == tags_val[name]}); i++; } } tagsArray = tags_array; } row.find('.pagelayer-post-tags').prepend(singleTag(tagsArray)); first_time_tag = false; tagSearching(pagelayer_post_tags); keypresses(pagelayer_post_tags); tag_remove(); var selected_tags = function(){ var jEle = row.find('.pagelayer-elp-postTags .pagelayer-elp-tags-ele'); var tag_array = []; for(var selec_tag of jEle){ tag_array.push(jQuery(selec_tag).text()); } _pagelayer_set_atts(row, tag_array); }; } function pagelayer_elp_permalink(row, prop){ var tmp = ''; var link = ''; if(!pagelayer_empty(pagelayer_permalink_structure)){ tmp = pagelayer_post_permalink.replace(/\/$/,''); link = tmp.substring(0, tmp.lastIndexOf('/')); var new_link = link+'/'+prop.c['val']; prop.default = pagelayer_post.post_name; var div = '
    '+ ''+ ''+new_link+'

    '+ '
    '; }else{ var div = ''; } row.append(div); setTimeout(function(){ row.find(".pagelayer-post-type").html(pagelayer_post.post_type); }, 1000); var string_to_slug = function (str){ str = str.replace(/^\s+|\s+$/g, ''); // trim str = str.toLowerCase(); // remove accents, swap ñ for n, etc var char_map = { // Latin 'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE', 'Ç': 'C', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I', 'Î': 'I', 'Ï': 'I', 'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', 'Õ': 'O', 'Ö': 'O', 'Ő': 'O', 'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', 'Ü': 'U', 'Ű': 'U', 'Ý': 'Y', 'Þ': 'TH', 'ß': 'ss', 'à': 'a', 'á': 'a', 'â': 'a', 'ã': 'a', 'ä': 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c', 'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e', 'ì': 'i', 'í': 'i', 'î': 'i', 'ï': 'i', 'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', 'ö': 'o', 'ő': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', 'ű': 'u', 'ý': 'y', 'þ': 'th', 'ÿ': 'y', // Latin symbols '©': '(c)', // Greek 'Α': 'A', 'Β': 'B', 'Γ': 'G', 'Δ': 'D', 'Ε': 'E', 'Ζ': 'Z', 'Η': 'H', 'Θ': '8', 'Ι': 'I', 'Κ': 'K', 'Λ': 'L', 'Μ': 'M', 'Ν': 'N', 'Ξ': '3', 'Ο': 'O', 'Π': 'P', 'Ρ': 'R', 'Σ': 'S', 'Τ': 'T', 'Υ': 'Y', 'Φ': 'F', 'Χ': 'X', 'Ψ': 'PS', 'Ω': 'W', 'Ά': 'A', 'Έ': 'E', 'Ί': 'I', 'Ό': 'O', 'Ύ': 'Y', 'Ή': 'H', 'Ώ': 'W', 'Ϊ': 'I', 'Ϋ': 'Y', 'α': 'a', 'β': 'b', 'γ': 'g', 'δ': 'd', 'ε': 'e', 'ζ': 'z', 'η': 'h', 'θ': '8', 'ι': 'i', 'κ': 'k', 'λ': 'l', 'μ': 'm', 'ν': 'n', 'ξ': '3', 'ο': 'o', 'π': 'p', 'ρ': 'r', 'σ': 's', 'τ': 't', 'υ': 'y', 'φ': 'f', 'χ': 'x', 'ψ': 'ps', 'ω': 'w', 'ά': 'a', 'έ': 'e', 'ί': 'i', 'ό': 'o', 'ύ': 'y', 'ή': 'h', 'ώ': 'w', 'ς': 's', 'ϊ': 'i', 'ΰ': 'y', 'ϋ': 'y', 'ΐ': 'i', // Turkish 'Ş': 'S', 'İ': 'I', 'Ç': 'C', 'Ü': 'U', 'Ö': 'O', 'Ğ': 'G', 'ş': 's', 'ı': 'i', 'ç': 'c', 'ü': 'u', 'ö': 'o', 'ğ': 'g', // Russian 'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', 'Е': 'E', 'Ё': 'Yo', 'Ж': 'Zh', 'З': 'Z', 'И': 'I', 'Й': 'J', 'К': 'K', 'Л': 'L', 'М': 'M', 'Н': 'N', 'О': 'O', 'П': 'P', 'Р': 'R', 'С': 'S', 'Т': 'T', 'У': 'U', 'Ф': 'F', 'Х': 'H', 'Ц': 'C', 'Ч': 'Ch', 'Ш': 'Sh', 'Щ': 'Sh', 'Ъ': '', 'Ы': 'Y', 'Ь': '', 'Э': 'E', 'Ю': 'Yu', 'Я': 'Ya', 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'yo', 'ж': 'zh', 'з': 'z', 'и': 'i', 'й': 'j', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', 'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', 'ш': 'sh', 'щ': 'sh', 'ъ': '', 'ы': 'y', 'ь': '', 'э': 'e', 'ю': 'yu', 'я': 'ya', // Ukrainian 'Є': 'Ye', 'І': 'I', 'Ї': 'Yi', 'Ґ': 'G', 'є': 'ye', 'і': 'i', 'ї': 'yi', 'ґ': 'g', // Czech 'Č': 'C', 'Ď': 'D', 'Ě': 'E', 'Ň': 'N', 'Ř': 'R', 'Š': 'S', 'Ť': 'T', 'Ů': 'U', 'Ž': 'Z', 'č': 'c', 'ď': 'd', 'ě': 'e', 'ň': 'n', 'ř': 'r', 'š': 's', 'ť': 't', 'ů': 'u', 'ž': 'z', // Polish 'Ą': 'A', 'Ć': 'C', 'Ę': 'e', 'Ł': 'L', 'Ń': 'N', 'Ó': 'o', 'Ś': 'S', 'Ź': 'Z', 'Ż': 'Z', 'ą': 'a', 'ć': 'c', 'ę': 'e', 'ł': 'l', 'ń': 'n', 'ó': 'o', 'ś': 's', 'ź': 'z', 'ż': 'z', // Latvian 'Ā': 'A', 'Č': 'C', 'Ē': 'E', 'Ģ': 'G', 'Ī': 'i', 'Ķ': 'k', 'Ļ': 'L', 'Ņ': 'N', 'Š': 'S', 'Ū': 'u', 'Ž': 'Z', 'ā': 'a', 'č': 'c', 'ē': 'e', 'ģ': 'g', 'ī': 'i', 'ķ': 'k', 'ļ': 'l', 'ņ': 'n', 'š': 's', 'ū': 'u', 'ž': 'z' }; for(var k in char_map) { str = str.replace(new RegExp(k, 'g'), char_map[k]); } str = str.replace('.', '-')// replace a dot by a dash .replace(/[^a-z0-9 -]/g, '') // remove invalid chars .replace(/\s+/g, '-') // collapse whitespace and replace by a dash .replace(/-+/g, '-') // collapse dashes .replace( /\//g, '' ); // collapse all forward-slashes return str; } var editSlug = function(jEle, val){ // Convert to slug val = string_to_slug(val); var new_link = link+'/'+val; var a = row.find('a'); a.html(new_link); jEle.val(val); return val; } var input = row.find('input'); if(pagelayer_empty(prop.c['val'])){ editSlug(input, pagelayer_post.post_title); input.on('focusin', function(){ if(!pagelayer_empty(pagelayer_get_att(prop.el.$, prop.c['name']))){ return; } editSlug(input, pagelayer_get_att(prop.el.$, 'post_title')); }); } input.on('focusout', function(){ var val = jQuery(this).val(); val = editSlug(jQuery(this), val); if(pagelayer_empty(pagelayer_get_att(prop.el.$, prop.c['name']))){ return; } _pagelayer_set_atts(row, val);// Save and Render }); input.on('input', function(){ var new_link = link+'/'+jQuery(this).val(); var a = row.find('a'); a.html(new_link); _pagelayer_set_atts(row, jQuery(this).val());// Save and Render }); } // The Datetime Property function pagelayer_elp_postDate(row, prop){ var date_array = prop.c['val'].split(" "); var div = ''; row.append(div); row.find('.pagelayer-elp-postdate-div').on('change', function(){ var date_string = jQuery(this).children().eq(0).val() +' '+ jQuery(this).children().eq(1).val(); _pagelayer_set_atts(row, date_string);// Save and Render }); }; // The button Property function pagelayer_elp_trashButton(row, prop){ var div = '
    '+ ''+ '
    '; row.append(div); row.find('.pagelayer-elp-trash-button').on('click', function(event){ event.preventDefault(); if(!confirm(pagelayer_l('delete_post_conf'))){ return; } //console.log(pagelayer_postID); jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_trash_post', type: 'post', dataType: 'json', data: { pagelayer_nonce: pagelayer_ajax_nonce, 'postid': pagelayer_postID }, success: function(resp){ if('error' in resp){ alert(resp.error); } if('url' in resp){ window.top.location.href = resp.url; } } }); }); }; // The Menus list property function pagelayer_elp_menus(row, prop){ var jEle = prop.el.$; var options = ''; var option = function(val, lang){ var selected = (val != prop.c['val']) ? '' : 'selected="selected"'; return ''; } for(x in prop['list']){ // Single item if(typeof prop['list'][x] == 'string'){ options += option(x, prop['list'][x]); // Groups }else{ options += ''; for(var y in prop['list'][x]){ options += option(y, prop['list'][x][y]); } options += ''; } } var div = '
    '+ ''+ '
    '+ '
    '; row.append(div); // Show the properties of the existing things var show_item = function(item, child_elements, depth){ depth = depth || 0; var title = item['title'] || ''; // Create the HTML var holder = jQuery('
    '+ '
    '+ ''+ ''+title+''+ '
    '+ '
    '+ ''+ '
    '); // Append to the row row.find('.pagelayer-elp-menu-items-holder').append(holder); // Setup the toggle holder.find('.pagelayer-elp-group-item-title').first().on('click', function(){ var editArea = jEle.find('.pagelayer-mega-editor-'+item['ID']); var child = editArea.find('[pagelayer-tag="pl_nav_menu_item"]'); var cid; if(child.length < 1){ // First add the element inside the group element var _child = jQuery('
    '); editArea.append(_child); cid = pagelayer_onadd(_child, false); child = jQuery('[pagelayer-id='+cid+']'); // Set Attributes pagelayer_set_atts(child, item); }else{ cid = pagelayer_id(child); } var rEle = holder.find('.pagelayer-elp-group-item-body').first(); holder.attr('pagelayer-group-item-id', cid); // If the props are not already setup if(rEle.html().length < 1){ pagelayer_elpd_generate(jQuery('[pagelayer-id="'+cid+'"]'), rEle); // Change the group item title var tmp_title = holder.find('[pagelayer-elp-name="'+item['title']+'"] [name="'+item['title']+'"]'); if(tmp_title.length > 0){ jQuery(tmp_title).on('input', function(){ holder.find('.pagelayer-elp-group-item-title').html(tmp_title.val()); }); } } if(!rEle.is(':visible')){ jQuery('.pagelayer-active-mega-menu').removeClass('pagelayer-active-mega-menu'); jEle.find('.pagelayer-mega-menu-item.menu-item-'+item['ID']).addClass('pagelayer-active-mega-menu'); } rEle.slideToggle(); }); // Add child elements if(!pagelayer_empty(child_elements[item['ID']])){ depth++; for(var i in child_elements[item['ID']]){ show_item(child_elements[item['ID']][i], child_elements, depth); } } holder.on('change', 'select[name="menu_type"]', function(){ var mType = jQuery(this).val(); var rowGroup = holder.find('[pagelayer-elp-name="element"]'); if(mType != 'mega' || rowGroup.find('.pagelayer-elp-group-div .pagelayer-elp-group-item').length > 0){ return; } rowGroup.find('.pagelayer-elp-button').click(); }); }; var createItemsList = function(menuID){ // Remove previous items row.find('.pagelayer-elp-menu-items-holder').empty(); if(!(menuID in pagelayer_menus_items_list)){ return; } var $elements = pagelayer_menus_items_list[menuID]; var top_level_elements = []; var children_elements = []; for($e in $elements){ // Make a referrer of each menu pagelayer_menus_items_ref[$elements[$e]['ID']] = $elements[$e]; if ( pagelayer_empty( $elements[$e]['menu_item_parent'] ) ) { top_level_elements.push($elements[$e]); } else { if(pagelayer_empty(children_elements[ $elements[$e]['menu_item_parent'] ])){ children_elements[ $elements[$e]['menu_item_parent'] ] = []; } children_elements[ $elements[$e]['menu_item_parent'] ].push($elements[$e]); } } for(var i in top_level_elements){ show_item(top_level_elements[i], children_elements, 0); } } createItemsList(prop.c['val']); row.find('select.pagelayer-elp-select-menus').on('change', function(){ var ID = jQuery(this).val(); // Load Menu list createItemsList(ID); _pagelayer_set_atts(row, ID);// Save and Render }); } // Select frame to upload media function pagelayer_select_frame(tag, state){ var state = state || ''; //console.log(state); var frame; switch(tag){ // Multi image selection frame case 'multi_image': frame = wp.media({ id: 'pagelayer-wp-multi-image-library', frame: 'post', state: state, title: pagelayer_l('frame_multi_image'), multiple: true, library: wp.media.query({type: 'image'}), button: { text: pagelayer_l('insert') }, }); break; // Media selection frame case 'media': frame = wp.media({ id: 'pagelayer-wp-media-library', frame: 'post', state: 'pagelayer-media', title: pagelayer_l('frame_media'), multiple: false, states: [ new wp.media.controller.Library({ id: 'pagelayer-media', title: pagelayer_l('frame_media'), multiple: false, date: true }) ], button: { text: pagelayer_l('insert') }, }); break; //Default frame(for image, video, audio) default: frame = wp.media({ id: 'pagelayer-wp-'+tag+'-library', frame: 'post', state: 'pagelayer-'+tag, title: pagelayer_l('frame_media'), multiple: false, library: wp.media.query({type: tag}), states: [ new wp.media.controller.Library({ id: 'pagelayer-'+tag, title: pagelayer_l('frame_media'), library: wp.media.query( { type: tag } ), multiple: false, date: true }) ], button: { text: pagelayer_l('insert') }, }); break; } frame.on({ 'menu:render:default': function(view){ view.unset('insert'); view.unset('gallery'); view.unset('featured-image'); view.unset('playlist'); view.unset('video-playlist'); }, }, this); return frame; } // function to show default button function pagelayer_show_default_button(row, prop, value){ // Default button is visible or not if(row.find('.pagelayer-elp-default').attr('data_show')){ return; } // value is an object or not if(typeof value == 'object'){ // Checking value for NaN, empty and default. for(var i = 0; i < pagelayer_length(value); i++){ if(value[i]!= prop.default && value[i] == value[i] && value[i] != ''){ row.find('.pagelayer-elp-default').attr('data_show',true); break; } } }else{ if('default' in prop && value!=prop.default){ row.find('.pagelayer-elp-default').attr('data_show',true); }else if(value!=prop.default && value==value && value!=''){ row.find('.pagelayer-elp-default').attr('data_show',true); } } } // Function which checks the properties to not to show default button function pagelayer_properties_filter(property){ var propTypeDefault = ['image', 'text', 'editor', 'textarea', 'checkbox', 'access', 'modal', 'group', 'radio', 'postCategory', 'postTags', 'postDate', 'gradient']; return (jQuery.inArray(property, propTypeDefault) == -1) } // Link font family function pagelayer_link_font_family(sEle){ var value = sEle.val(); if(sEle.val() == 'Default'){ return; } value = value.replace(' ', '+'); var t = sEle.find("option:selected").attr('type'); switch(t){ case 'google': if(jQuery('#pagelayer-google-fonts').length == 0){ if(value==''){ return; } jQuery('head').append(''); }else{ var url = jQuery('#pagelayer-google-fonts').attr('href'); if(url.indexOf(value) == -1){ url = url+'|'+value+':100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i'; jQuery('#pagelayer-google-fonts').attr('href', url); } } break; case 'custom': if(!pagelayer_empty(jQuery('style[id='+value+'_plf]').length)){ break; } jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_custom_font', type: 'POST', dataType: 'json', data: { 'pagelayer_nonce': pagelayer_ajax_nonce, 'font_name': value }, success: function(data) { if('style' in data){ jQuery('body').append(data['style']); } } }); break; } } /* * [hi-base64]{@link https://github.com/emn178/hi-base64} * * @version 0.2.1 * @author Chen, Yi-Cyuan [emn178@gmail.com] * @copyright Chen, Yi-Cyuan 2014-2017 * @license MIT */ /*jslint bitwise: true */ /*Modified by Pagelayer*/ !function(){"use strict";var r="object"==typeof window?window:{};!r.HI_BASE64_NO_COMMON_JS&&"object"==typeof module&&module.exports,"function"==typeof define&&define.amd;var t,o,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),n={A:0,B:1,C:2,D:3,E:4,F:5,G:6,H:7,I:8,J:9,K:10,L:11,M:12,N:13,O:14,P:15,Q:16,R:17,S:18,T:19,U:20,V:21,W:22,X:23,Y:24,Z:25,a:26,b:27,c:28,d:29,e:30,f:31,g:32,h:33,i:34,j:35,k:36,l:37,m:38,n:39,o:40,p:41,q:42,r:43,s:44,t:45,u:46,v:47,w:48,x:49,y:50,z:51,0:52,1:53,2:54,3:55,4:56,5:57,6:58,7:59,8:60,9:61,"+":62,"/":63,"-":62,_:63},a=function(r){var t,o,e,a,h=[],f=0,i=r.length;"="===r.charAt(i-2)?i-=2:"="===r.charAt(i-1)&&(i-=1);for(var C=0,c=i>>2<<2;C>>4),h[f++]=255&(o<<4|e>>>2),h[f++]=255&(e<<6|a);var g=i-c;return 2===g?(t=n[r.charAt(C++)],o=n[r.charAt(C++)],h[f++]=255&(t<<2|o>>>4)):3===g&&(t=n[r.charAt(C++)],o=n[r.charAt(C++)],e=n[r.charAt(C++)],h[f++]=255&(t<<2|o>>>4),h[f++]=255&(o<<4|e>>>2)),h},h=r.btoa,f=r.atob;h?(t=function(r){for(var t="",o=0;o>6)+String.fromCharCode(128|63&e):e<55296||e>=57344?t+=String.fromCharCode(224|e>>12)+String.fromCharCode(128|e>>6&63)+String.fromCharCode(128|63&e):(e=65536+((1023&e)<<10|1023&r.charCodeAt(++o)),t+=String.fromCharCode(240|e>>18)+String.fromCharCode(128|e>>12&63)+String.fromCharCode(128|e>>6&63)+String.fromCharCode(128|63&e))}return h(t)},o=function(r){var t=f(r.trim("=").replace(/-/g,"+").replace(/_/g,"/"));if(!/[^\x00-\x7F]/.test(t))return t;for(var o,e,n="",a=0,h=t.length,i=0;a191&&o<=223)e=31&o,i=1;else if(o<=239)e=15&o,i=2;else{if(!(o<=247))throw"not a UTF-8 string";e=7&o,i=3}for(var C=0;C191)throw"not a UTF-8 string";e<<=6,e+=63&o}if(e>=55296&&e<=57343)throw"not a UTF-8 string";if(e>1114111)throw"not a UTF-8 string";e<=65535?n+=String.fromCharCode(e):(e-=65536,n+=String.fromCharCode(55296+(e>>10)),n+=String.fromCharCode(56320+(1023&e)))}return n}):(h=function(r){for(var t,o,n,a="",h=r.length,f=0,i=3*parseInt(h/3);f>>2]+e[63&(t<<4|o>>>4)]+e[63&(o<<2|n>>>6)]+e[63&n];var C=h-i;return 1===C?(t=r.charCodeAt(f),a+=e[t>>>2]+e[t<<4&63]+"=="):2===C&&(t=r.charCodeAt(f++),o=r.charCodeAt(f),a+=e[t>>>2]+e[63&(t<<4|o>>>4)]+e[o<<2&63]+"="),a},t=function(r){for(var t,o,n,a="",h=function(r){for(var t=[],o=0;o>6,t[t.length]=128|63&e):e<55296||e>=57344?(t[t.length]=224|e>>12,t[t.length]=128|e>>6&63,t[t.length]=128|63&e):(e=65536+((1023&e)<<10|1023&r.charCodeAt(++o)),t[t.length]=240|e>>18,t[t.length]=128|e>>12&63,t[t.length]=128|e>>6&63,t[t.length]=128|63&e)}return t}(r),f=h.length,i=0,C=3*parseInt(f/3);i>>2]+e[63&(t<<4|o>>>4)]+e[63&(o<<2|n>>>6)]+e[63&n];var c=f-C;return 1===c?(t=h[i],a+=e[t>>>2]+e[t<<4&63]+"=="):2===c&&(t=h[i++],o=h[i],a+=e[t>>>2]+e[63&(t<<4|o>>>4)]+e[o<<2&63]+"="),a},f=function(r){var t,o,e,a,h="",f=r.length;"="===r.charAt(f-2)?f-=2:"="===r.charAt(f-1)&&(f-=1);for(var i=0,C=f>>2<<2;i>>4))+String.fromCharCode(255&(o<<4|e>>>2))+String.fromCharCode(255&(e<<6|a));var c=f-C;return 2===c?(t=n[r.charAt(i++)],o=n[r.charAt(i++)],h+=String.fromCharCode(255&(t<<2|o>>>4))):3===c&&(t=n[r.charAt(i++)],o=n[r.charAt(i++)],e=n[r.charAt(i++)],h+=String.fromCharCode(255&(t<<2|o>>>4))+String.fromCharCode(255&(o<<4|e>>>2))),h},o=function(r){for(var t,o,e="",n=a(r),h=n.length,f=0,i=0;f191&&t<=223)o=31&t,i=1;else if(t<=239)o=15&t,i=2;else{if(!(t<=247))throw"not a UTF-8 string";o=7&t,i=3}for(var C=0;C191)throw"not a UTF-8 string";o<<=6,o+=63&t}if(o>=55296&&o<=57343)throw"not a UTF-8 string";if(o>1114111)throw"not a UTF-8 string";o<=65535?e+=String.fromCharCode(o):(o-=65536,e+=String.fromCharCode(55296+(o>>10)),e+=String.fromCharCode(56320+(1023&o)))}return e});var i=function(r,t){return t?f(r):o(r)},C={encode:function(o,n){var a="string"!=typeof o;return a&&o.constructor===r.ArrayBuffer&&(o=new Uint8Array(o)),a?function(r){for(var t,o,n,a="",h=r.length,f=0,i=3*parseInt(h/3);f>>2]+e[63&(t<<4|o>>>4)]+e[63&(o<<2|n>>>6)]+e[63&n];var C=h-i;return 1===C?(t=r[f],a+=e[t>>>2]+e[t<<4&63]+"=="):2===C&&(t=r[f++],o=r[f],a+=e[t>>>2]+e[63&(t<<4|o>>>4)]+e[o<<2&63]+"="),a}(o):!n&&/[^\x00-\x7F]/.test(o)?t(o):h(o)},decode:i,atob:f,btoa:h};i.bytes=a,i.string=i,r.pagelayer_Base64=C}(); /*! Copyright (c) 2011 Piotr Rochala (http://rocha.la) * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. * * Version: 1.3.8 * */ (function(e){e.fn.extend({slimScroll:function(f){var a=e.extend({width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:.2,railDraggable:!0,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"},f);this.each(function(){function v(d){if(r){d=d||window.event; var c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);e(d.target||d.srcTarget||d.srcElement).closest("."+a.wrapperClass).is(b.parent())&&n(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function n(d,g,e){k=!1;var f=b.outerHeight()-c.outerHeight();g&&(g=parseInt(c.css("top"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),g=Math.min(Math.max(g,0),f),g=0=b.outerHeight()?k=!0:(c.stop(!0, !0).fadeIn("fast"),a.railVisible&&m.stop(!0,!0).fadeIn("fast"))}function p(){a.alwaysVisible||(B=setTimeout(function(){a.disableFadeOut&&r||y||z||(c.fadeOut("slow"),m.fadeOut("slow"))},1E3))}var r,y,z,B,A,u,l,C,k=!1,b=e(this);if(b.parent().hasClass(a.wrapperClass)){var q=b.scrollTop(),c=b.siblings("."+a.barClass),m=b.siblings("."+a.railClass);x();if(e.isPlainObject(f)){if("height"in f&&"auto"==f.height){b.parent().css("height","auto");b.css("height","auto");var h=b.parent().parent().height();b.parent().css("height", h);b.css("height",h)}else"height"in f&&(h=f.height,b.parent().css("height",h),b.css("height",h));if("scrollTo"in f)q=parseInt(a.scrollTo);else if("scrollBy"in f)q+=parseInt(a.scrollBy);else if("destroy"in f){c.remove();m.remove();b.unwrap();return}n(q,!1,!0)}}else if(!(e.isPlainObject(f)&&"destroy"in f)){a.height="auto"==a.height?b.parent().height():a.height;q=e("
    ").addClass(a.wrapperClass).css({position:"relative",overflow:"hidden",width:a.width,height:a.height});b.css({overflow:"hidden", width:a.width,height:a.height});var m=e("
    ").addClass(a.railClass).css({width:a.size,height:"100%",position:"absolute",top:0,display:a.alwaysVisible&&a.railVisible?"block":"none","border-radius":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=e("
    ").addClass(a.barClass).css({background:a.color,width:a.size,position:"absolute",top:0,opacity:a.opacity,display:a.alwaysVisible?"block":"none","border-radius":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius, WebkitBorderRadius:a.borderRadius,zIndex:99}),h="right"==a.position?{right:a.distance}:{left:a.distance};m.css(h);c.css(h);b.wrap(q);b.parent().append(c);b.parent().append(m);a.railDraggable&&c.bind("mousedown",function(a){var b=c.parent();z=!0;t=parseFloat(c.css("top"));pageY=a.pageY;b.bind("mousemove.slimscroll",function(a){currTop=t+a.pageY-pageY;c.css("top",currTop);n(0,c.position().top,!1)});b.bind("mouseup.slimscroll",function(a){z=!1;p();b.unbind(".slimscroll")});return!1}).bind("selectstart.slimscroll", function(a){a.stopPropagation();a.preventDefault();return!1});m.hover(function(){w()},function(){p()});c.hover(function(){y=!0},function(){y=!1});b.hover(function(){r=!0;w();p()},function(){r=!1;p()});b.bind("touchstart",function(a,b){a.originalEvent.touches.length&&(A=a.originalEvent.touches[0].pageY)});b.bind("touchmove",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&&(n((A-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),A=b.originalEvent.touches[0].pageY)}); x();"bottom"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),n(0,!0)):"top"!==a.start&&(n(e(a.start).position().top,null,!0),a.alwaysVisible||c.hide());window.addEventListener?(this.addEventListener("DOMMouseScroll",v,!1),this.addEventListener("mousewheel",v,!1)):document.attachEvent("onmousewheel",v)}});return this}});e.fn.extend({slimscroll:e.fn.slimScroll})})(jQuery); /*! * vanilla-picker v2.7.2 (MODIFIED by Pagelayer) * https://vanilla-picker.js.org * * Copyright 2017-2019 Andreas Borgen (https://github.com/Sphinxxxx), Adam Brooks (https://github.com/dissimulate) * Released under the ISC license. */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.pagelayer_Picker=t()}(this,function(){"use strict";var n=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e=function(){function i(e,t){for(var r=0;r*{margin:.5em}.layout_default.picker_wrapper::before{content:'';display:block;width:100%;height:0;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.layout_default .picker_sl::before{content:'';display:block;padding-bottom:100%}.layout_default .picker_editor{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;width:6rem}.layout_default .picker_editor input{width:calc(100% + 2px);height:calc(100% + 2px)}.layout_default .picker_sample{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.layout_default .picker_done{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.picker_wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;background:#f2f2f2;-webkit-box-shadow:0 0 0 1px silver;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{margin:-1px}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid white;border-radius:100%;-webkit-box-shadow:0 0 3px 1px #67b9ff;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:-webkit-gradient(linear, left top, right top, from(red), color-stop(yellow), color-stop(lime), color-stop(cyan), color-stop(blue), color-stop(magenta), to(red));background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);-webkit-box-shadow:0 0 0 1px silver;box-shadow:0 0 0 1px silver}.picker_sl{position:relative;-webkit-box-shadow:0 0 0 1px silver;box-shadow:0 0 0 1px silver;background-image:-webkit-gradient(linear, left top, left bottom, from(white), color-stop(50%, rgba(255,255,255,0))),-webkit-gradient(linear, left bottom, left top, from(black), color-stop(50%, rgba(0,0,0,0))),-webkit-gradient(linear, left top, right top, from(gray), to(rgba(128,128,128,0)));background-image:linear-gradient(180deg, white, rgba(255,255,255,0) 50%),linear-gradient(0deg, black, rgba(0,0,0,0) 50%),linear-gradient(90deg, gray, rgba(128,128,128,0))}.picker_alpha,.picker_sample{position:relative;background:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2'%3E%3Cpath d='M1,0H0V1H2V2H1' fill='lightgrey'/%3E%3C/svg%3E\") left top/contain white;-webkit-box-shadow:0 0 0 1px silver;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:monospace;padding:.1em .2em}.picker_sample::before{content:'';position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_done button{-webkit-box-sizing:border-box;box-sizing:border-box;padding:.2em .5em;cursor:pointer}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;-webkit-box-shadow:0 0 10px 1px rgba(0,0,0,0.4);box-shadow:0 0 10px 1px rgba(0,0,0,0.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:\"\";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;-webkit-box-shadow:none;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}"}}(e.doc),this.setOptions(e)}return e(r,[{key:"setOptions",value:function(e){if(e){var t=this.settings;if(e instanceof HTMLElement)t.parent=e;else{t.parent&&e.parent&&t.parent!==e.parent&&(t.parent.removeEventListener("click",this._openProxy,!1),this._popupInited=!1),function(e,t,r){for(var i in e)r&&0<=r.indexOf(i)||(t[i]=e[i])}(e,t),e.onChange&&(this.onChange=e.onChange),e.onDone&&(this.onDone=e.onDone),e.onOpen&&(this.onOpen=e.onOpen),e.onClose&&(this.onClose=e.onClose);var r=e.color||e.colour;r&&this._setColor(r)}var i=t.parent;i&&t.popup&&!this._popupInited?(f(i,"click",this._openProxy),d(i,[" ","Spacebar","Enter"],this._openProxy),this._popupInited=!0):e.parent&&!t.popup&&this.show()}}},{key:"openHandler",value:function(e){if(this.show()){e&&e.preventDefault(),this.settings.parent.style.pointerEvents="none";var t=e&&e.type===l?this._domEdit:this.domElement;setTimeout(function(){return t.focus()},100),this.onOpen&&this.onOpen(this.colour)}}},{key:"closeHandler",value:function(e){var t=e&&e.type,r=!1;e?t===p||t===c?this.domElement.contains(e.target)||(r=!0):(u(e),r=!0):r=!0,r&&this.hide()&&(this.settings.parent.style.pointerEvents="",t!==p&&this.settings.parent.focus(),this.onClose&&this.onClose(this.colour))}},{key:"movePopup",value:function(e,t){this.closeHandler(),this.setOptions(e),t&&this.openHandler()}},{key:"setColor",value:function(e,t){this._setColor(e,{silent:t})}},{key:"_setColor",value:function(e,t){if("string"==typeof e&&(e=e.trim()),e){t=t||{};var r=void 0;try{r=new a(e)}catch(e){if(t.failSilently)return;throw e}if(!this.settings.alpha){var i=r.hsla;i[3]=1,r.hsla=i}this.colour=this.color=r,this._setHSLA(null,null,null,null,t)}}},{key:"setColour",value:function(e,t){this.setColor(e,t)}},{key:"show",value:function(){if(!this.settings.parent)return!1;if(this.domElement){var e=this._toggleDOM(!0);return this._setPosition(),e}var t,r,i,o=this.settings.template||'
    ',n=(t=o,r=this.settings.doc,(i=r.createElement("div")).innerHTML=t,i.firstElementChild);return this.domElement=n,this._domH=w(".picker_hue",n),this._domSL=w(".picker_sl",n),this._domA=w(".picker_alpha",n),this._domEdit=w(".picker_editor input",n),this._domSample=w(".picker_sample",n),this._domOkay=w(".picker_done button",n),n.classList.add("layout_"+this.settings.layout),this.settings.alpha||n.classList.add("no_alpha"),this.settings.editor||n.classList.add("no_editor"),this._ifPopup(function(){return n.classList.add("popup")}),this._setPosition(),this.colour?this._updateUI():this._setColor("#0cf"),this._bindEvents(),!0}},{key:"hide",value:function(){return this._toggleDOM(!1)}},{key:"_bindEvents",value:function(){var t=this,r=this,e=this.domElement;function i(o,n){function e(e,t){var r=t[0]/o.clientWidth,i=t[1]/o.clientHeight;n(r,i)}return{container:o,dragOutside:!1,callback:e,callbackDragStart:e,propagateEvents:!0}}f(e,"click",function(e){return e.preventDefault()}),s(i(this._domH,function(e,t){return r._setHSLA(e)})),s(i(this._domSL,function(e,t){return r._setHSLA(null,e,1-t)})),this.settings.alpha&&s(i(this._domA,function(e,t){return r._setHSLA(null,null,null,1-t)}));var o=this._domEdit;f(o,"input",function(e){r._setColor(this.value,{fromEditor:!0,failSilently:!0})}),f(o,"focus",function(e){this.selectionStart===this.selectionEnd&&this.select()});var n=function(e){t._ifPopup(function(){return t.closeHandler(e)})},a=function(e){t._ifPopup(function(){return t.closeHandler(e)}),t.onDone&&t.onDone(t.colour)};f(this.settings.doc,p,n),f(this.settings.doc,c,n),d(e,["Esc","Escape"],n),f(this._domOkay,"click",a),d(e,["Enter"],a)}},{key:"_setPosition",value:function(){var r=this.settings.parent,i=this.domElement;r!==i.parentNode&&r.appendChild(i),this._ifPopup(function(e){"static"===getComputedStyle(r).position&&(r.style.position="relative");var t=!0===e?"popup_right":"popup_"+e;["popup_top","popup_bottom","popup_left","popup_right"].forEach(function(e){e===t?i.classList.add(e):i.classList.remove(e)}),i.classList.add(t)})}},{key:"_setHSLA",value:function(e,t,r,i,o){o=o||{};var n=this.colour,a=n.hsla;[e,t,r,i].forEach(function(e,t){(e||0===e)&&(a[t]=e)}),n.hsla=a,this._updateUI(o),this.onChange&&!o.silent&&this.onChange(n)}},{key:"_updateUI",value:function(e){if(this.domElement){e=e||{};var t=this.colour,r=t.hsla,i="hsl("+360*r[0]+", 100%, 50%)",o=t.hslString,n=t.hslaString,a=this._domH,s=this._domSL,l=this._domA,p=w(".picker_selector",a),c=w(".picker_selector",s),f=w(".picker_selector",l);k(0,p,r[0]),this._domSL.style.backgroundColor=this._domH.style.color=i,k(0,c,r[1]),v(0,c,1-r[2]),s.style.color=o,v(0,f,1-r[3]);var u=o,d=u.replace("hsl","hsla").replace(")",", 0)"),h="linear-gradient("+[u,d]+")";if(this._domA.style.backgroundImage=h+", url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2' height='2'%3E%3Cpath d='M1,0H0V1H2V2H1' fill='lightgrey'/%3E%3C/svg%3E\")",!e.fromEditor){var g=this.settings.editorFormat,b=this.settings.alpha,m=void 0;switch(g){case"rgb":m=t.printRGB(b);break;case"hsl":m=t.printHSL(b);break;default:m=t.printHex(b)}this._domEdit.value=m}this._domSample.style.color=n}function k(e,t,r){t.style.left=100*r+"%"}function v(e,t,r){t.style.top=100*r+"%"}}},{key:"_ifPopup",value:function(e,t){this.settings.parent&&this.settings.popup?e&&e(this.settings.popup):t&&t()}},{key:"_toggleDOM",value:function(e){var t=this.domElement;if(!t)return!1;var r=e?"":"none",i=t.style.display!==r;return i&&(t.style.display=r),i}}]),r}()}); function pagelayer_tlite(getTooltipOpts) { document.addEventListener('mouseover', function (e) { var el = e.target; var opts = getTooltipOpts(el); if (!opts) { el = el.parentElement; opts = el && getTooltipOpts(el); } opts && pagelayer_tlite.show(el, opts, true); }); } pagelayer_tlite.show = function (el, opts, isAuto) { var fallbackAttrib = 'data-tlite'; opts = opts || {}; (el.tooltip || Tooltip(el, opts)).show(); function Tooltip(el, opts) { var tooltipEl; var showTimer; var text; el.addEventListener('mousedown', autoHide); el.addEventListener('mouseleave', autoHide); function show() { text = el.title || el.getAttribute(fallbackAttrib) || text; el.title = ''; el.setAttribute(fallbackAttrib, ''); text && !showTimer && (showTimer = setTimeout(fadeIn, isAuto ? 150 : 1)) } function autoHide() { pagelayer_tlite.hide(el, true); } function hide(isAutoHiding) { if (isAuto === isAutoHiding) { showTimer = clearTimeout(showTimer); var parent = tooltipEl && tooltipEl.parentNode; parent && parent.removeChild(tooltipEl); tooltipEl = undefined; } } function fadeIn() { if (!tooltipEl) { tooltipEl = createTooltip(el, text, opts); } } return el.tooltip = { show: show, hide: hide }; } function createTooltip(el, text, opts) { var tooltipEl = document.createElement('span'); var grav = opts.grav || el.getAttribute('data-tlite') || 'n'; tooltipEl.innerHTML = text; el.appendChild(tooltipEl); var vertGrav = grav[0] || ''; var horzGrav = grav[1] || ''; var windowInnerWidth = window.parent.innerWidth - 15; var windowInnerHeight = window.parent.innerHeight; function positionTooltip() { tooltipEl.className = 'pagelayer-tlite ' + 'pagelayer-tlite-' + vertGrav + horzGrav; var arrowSize = 10; var top = el.offsetTop; var left = el.offsetLeft; if (tooltipEl.offsetParent === el) { top = left = 0; } var width = el.offsetWidth; var height = el.offsetHeight; var tooltipHeight = tooltipEl.offsetHeight; var tooltipWidth = tooltipEl.offsetWidth; var centerEl = left + (width / 2); tooltipEl.style.top = ( vertGrav === 's' ? (top - tooltipHeight - arrowSize) : vertGrav === 'n' ? (top + height + arrowSize) : (top + (height / 2) - (tooltipHeight / 2)) ) + 'px'; tooltipEl.style.left = ( horzGrav === 'w' ? left : horzGrav === 'e' ? left + width - tooltipWidth : vertGrav === 'w' ? (left + width + arrowSize) : vertGrav === 'e' ? (left - tooltipWidth - arrowSize) : (centerEl - tooltipWidth / 2) ) + 'px'; } positionTooltip(); var rect = tooltipEl.getBoundingClientRect(); if (vertGrav === 's' && rect.top < 0) { vertGrav = 'n'; positionTooltip(); } else if (vertGrav === 'n' && rect.bottom > windowInnerHeight) { vertGrav = 's'; positionTooltip(); } else if (vertGrav === 'e' && rect.left < 0) { vertGrav = 'w'; positionTooltip(); } else if (vertGrav === 'w' && rect.right > windowInnerWidth) { vertGrav = 'e'; positionTooltip(); } positionTooltip(); // Additional handling if(rect.left < 0) { horzGrav = 'w'; positionTooltip(); } else if (rect.right > windowInnerWidth) { horzGrav = 'e'; positionTooltip(); } tooltipEl.className += ' pagelayer-tlite-visible'; return tooltipEl; } }; pagelayer_tlite.hide = function (el, isAuto) { el.tooltip && el.tooltip.hide(isAuto); }; if (typeof module !== 'undefined' && module.exports) { module.exports = tlite; } /* Pagelayer Pen editor */ var pagelayer_customColor = ["#000000", "#e60000", "#ff9900", "#ffff00", "#008a00", "#0066cc", "#9933ff", "#ffffff", "#facccc", "#ffebcc", "#ffffcc", "#cce8cc", "#cce0f5", "#ebd6ff", "#bbbbbb", "#f06666", "#ffc266", "#ffff66", "#66b966", "#66a3e0", "#c285ff", "#888888", "#a10000", "#b26b00", "#b2b200", "#006100", "#0047b2", "#6b24b2", "#444444", "#5c0000", "#663d00", "#666600", "#003700", "#002966", "#3d1466"]; var pagelayer_pen_sizeList = ['normal', 'x-small', 'small', 'medium', 'large', 'x-large']; var pagelayer_pen_lineHeight = ['0.9', '1', '1.5', '2.0', '2.5','3.0', '3.5', '4.0', '4.5', '5.0']; class PagelayerPen{ constructor(jEle, options) { var t = this; t.editor = jQuery(jEle); t.options = options; // Get the document of the element. It use to makes the plugin // compatible on iframes. t.doc = jEle.ownerDocument || document; t.tagToButton = {}; t.optionsCounter = 0; t.destroyEd = true; t.semantic = null; t.DEFAULT_SEMANTIC_MAP = { 'b': 'strong', 'i': 'em', 's': 'strike', //'strike': 'del', 'div': 'p' }; // Init editor t.addHandlers(); t.init(); } init(){ var t = this; // Init Editor t.editor.addClass('pagelayer-pen'); t.penHolder = t.addContainer(); t.addEvents(); } addHandlers(){ // TODO : Add for custom plugins // TODO remove all execCommands this.handlers = { bold:{ tag: 'STRONG', icon: '' }, italic:{ tag: 'EM', icon: '' }, underline:{ tag: 'U', icon: '' }, strike:{ tag: 'strike', fn: 'strikethrough', icon: '' }, h1:{ fn: 'formatBlock', icon: 'H1' }, h2:{ fn: 'formatBlock', icon: 'H2' }, h3:{ fn: 'formatBlock', icon: 'H3' }, h4:{ fn: 'formatBlock', icon: 'H4' }, h5:{ fn: 'formatBlock', icon: 'H5' }, h6:{ fn: 'formatBlock', icon: 'H6' }, p:{ fn: 'formatBlock', icon: '' }, blockquote:{ fn: 'formatBlock', icon: '' }, formating:{ fn: 'formatBlock', fixIcon: '' }, unorderedlist:{ tag: 'UL', fn: 'insertUnorderedList', icon: '
    ' }, orderedlist:{ tag: 'OL', fn: 'insertOrderedList', icon: '' }, sub:{ tag: 'sub', fn: 'subscript', icon: '' }, super:{ tag: 'sup', fn: 'superscript', icon: '' }, link:{ fn: 'setLinkHandler', tag: 'a', icon: '', }, image:{ fn: 'imageBtnHandler', icon: '' }, align:{ style: 'text-align', fn: 'formatBlock', icon: { 'left': '', 'center': '', 'right': '', 'justify': '', } }, color:{ class: 'pagelayer-pen-color-picker', style: 'color', fn: 'commandHandler', fixIcon: ' ', buildBtn : 'buildColorBtnHandler', default : pagelayer_customColor, customInpute: true }, background:{ class: 'pagelayer-pen-color-picker', style: 'background-color', fn: 'commandHandler', fixIcon: ' ', buildBtn: 'buildColorBtnHandler', default : pagelayer_customColor, customInpute: true }, size:{ class: 'pagelayer-pen-size-picker', style: 'font-size', fn: 'commandHandler', default : pagelayer_pen_sizeList, customInpute: true }, lineheight:{ style: 'line-height', fn: 'commandHandler', fixIcon: '', default : pagelayer_pen_lineHeight, customInpute: true }, font:{ style: 'font-family', fn: 'commandHandler', fixIcon: '', default : pagelayer_fonts, buildBtn : 'buildfontBtnHandler', }, viewHTML:{ fn: 'viewHTMLBtnHandler', icon: '' }, removeformat:{ icon: '' } } } addContainer(className){ className = className || false; // Add Container var container = jQuery('.pagelayer-pen-holder'); if(container.length < 1){ jQuery('body').append('
    '); container = jQuery('.pagelayer-pen-holder'); } if(!className){ return container; } if(container.find('.'+className).length < 1){ container.append('
    '); } return container.find('.'+className); } addToolbar(){ // Add Toolbar var t = this; var groups = t.options.toolbar; var toolbar = t.toolbar = t.addContainer('pagelayer-pen-toolbar'); // Make it empty toolbar.empty(); if (!Array.isArray(groups[0])) { groups = [groups]; } var addButton = function(container, format, value){ var btn = t.handlers[format]; var icon = ''; if('icon' in btn){ var _icon = btn['icon']; if(typeof _icon == 'object' && !pagelayer_empty(_icon[value])){ icon = _icon[value]; }else if(typeof icon == 'string'){ icon = _icon; } } var input = document.createElement('button'); input.setAttribute('type', 'button'); input.setAttribute('data-format', format); input.classList.add('pagelayer-pen-' + format); if('class' in btn){ input.classList.add(btn['class']); } if( pagelayer_empty(value) && 'default' in btn ){ value = btn['default']; } input.innerHTML = icon; if(value != null) { input.value = value; } container.appendChild(input); } var createoption = function(val, lang, type){ type = type || ''; var lang = pagelayer_empty(lang) ? 'Default' : lang; return ''; } var addSelect = function(container, format, values) { var input = document.createElement('select'); input.classList.add('pagelayer-pen-' + format); if('class' in t.handlers[format]){ input.classList.add(t.handlers[format]['class']); } input.setAttribute('data-format', format); if( pagelayer_empty(values) && 'default' in t.handlers[format] ){ values = t.handlers[format]['default']; } for(var kk in values){ var options = ''; var value = values[kk]; if(typeof value == 'object') { if(kk != 'default'){ options += ''; } for(y in value){ options += createoption((jQuery.isNumeric(y) ? value[y] : x), value[y], kk); } }else if(value !== false) { options += createoption(value, value); } else { options += createoption('', ''); } jQuery(input).append(options); } container.appendChild(input); } groups.forEach(function(controls){ var group = document.createElement('span'); group.classList.add('pagelayer-pen-formats'); controls.forEach(function (control){ var format = control; if(typeof control === 'object'){ format = Object.keys(control)[0]; } if( pagelayer_empty(t.handlers[format]) ){ return; } if( typeof control === 'string' ){ addButton(group, control); } else { var value = control[format]; if (Array.isArray(value)) { addSelect(group, format, value); } else { addButton(group, format, value); } } var btn = t.handlers[format]; t.tagToButton[(btn.tag || btn.style || format).toLowerCase()] = format; }); // TODO skip if format is not exist toolbar[0].appendChild(group); }); toolbar.find('button').on('click', function(){ var bEle = jQuery(this); var format = bEle.data('format'); if(! format in t.handlers){ return; } var btn = t.handlers[format]; t.currentFormat = format; t.execCmd(btn.fn || format, btn.param || format, btn.forceCss); }); toolbar.find('select').on('change', function(e){ var bEle = jQuery(this); var format = bEle.data('format'); var val = bEle.val(); if(! format in t.handlers){ return; } var btn = t.handlers[format]; t.currentFormat = format; t.execCmd(btn.fn || format, val, btn.forceCss); }); toolbar.find('select').each(function(){ var format = jQuery(this).data('format'); if('buildBtn' in t.handlers[format]){ try{ t[t.handlers[format]['buildBtn']](this); }catch(e){ try{ t.handlers[format]['buildBtn'](this); }catch(e2){ t.buildDropdown(this); } } return true; } t.buildDropdown(this); }); // Add close button toolbar.append(''); // Hide editor on click close tool handler toolbar.find('.pagelayer-pen-close').on('mousedown', function(e){ //e.preventDefault(); t.destroyEd = true; t.editor.trigger('blur'); }); } execCmd(cmd, param, forceCss, skipPen){ var t = this; skipPen = !!skipPen || ''; if(cmd !== 'dropdown'){ t.focus(); t.restoreRange(); } try{ document.execCommand('styleWithCSS', false, forceCss || false); }catch(c){} try{ t[cmd + skipPen](param); }catch(c){ try{ cmd(param); }catch(e2){ if(cmd === 'insertHorizontalRule'){ param = undefined; }else if (cmd === 'formatBlock'){ // TODO: check for && t.isIE param = '<' + param + '>'; } document.execCommand(cmd, false, param); t.semanticCode(); t.restoreRange(); } } if(cmd !== 'dropdown'){ t.updateButtonStatus(); t.editor.trigger('input'); } } commandHandler(value){ var t = this; var format = t.currentFormat; if( pagelayer_empty(format) ){ return; } var btn = t.handlers[format]; var sel = window.getSelection(); var text = t.range.commonAncestorContainer; var selectedText = t.range.cloneContents(); selectedText = jQuery('
    ').append(selectedText).html(); // Also select the tag if(text.nodeType === Node.TEXT_NODE){ text = text.parentNode; } if (text.innerHTML === selectedText && text != t.editor[0]) { var ele = jQuery(text); if('tag' in btn){ // Replace tag }else if('style' in btn){ var style = {}; style[btn.style] = value; ele.css(style); }else if('atts' in btn){ // Add attribute or toggle the element } } else { // TODO for toggle tags and add tags var html = jQuery('' + selectedText + ''); // Remove style from all childrend var style = {}; style[btn.style] = ''; html.find('[style]').css(style); // TODO: remove span element that have no atts var node = html[0]; var firstInsertedNode = node.firstChild; var lastInsertedNode = node.lastChild; t.range.deleteContents(); t.range.insertNode(node); if(firstInsertedNode) { t.range.setStartBefore(firstInsertedNode); t.range.setEndAfter(lastInsertedNode); } // Is previous element empty? var prev = jQuery(node).prev(); if( prev.length > 0 && prev.is(':empty') ){ prev.remove(); } } sel.removeAllRanges(); sel.addRange(t.range); } formatBlock(value){ var t = this, format = t.currentFormat, btn = t.handlers[format], startNode = t.range.startContainer, endNode = t.range.endContainer; if( startNode.nodeType == Node.TEXT_NODE && startNode.parentNode != t.editor[0] ){ startNode = startNode.parentNode; } if( endNode.nodeType == Node.TEXT_NODE && endNode.parentNode != t.editor[0] ){ endNode = endNode.parentNode; } // TODO: only for seleced content // Wrap text nodes in span for easier processing t.editor.contents().filter(function () { return this.nodeType === 3 && this.nodeValue.trim().length > 0; }).wrap(''); var isLineEnd = function(lEle){ return lEle == null || lEle.nodeName == 'BR' || t.isline(lEle); } var wrapLine = function(pLine){ var pLine = jQuery(pLine), lineFele, lineEele, finalP; // Get Parent Element if(pLine.parentsUntil(t.editor).length > 0){ pLine = pLine.parentsUntil(t.editor).last(); } if(t.isline(pLine)){ return pLine; } // Get line first element if(isLineEnd(pLine[0].previousSibling)){ lineFele = pLine; }else{ lineFele = pLine.prevAll().filter(function(){ return isLineEnd(this.previousSibling); }).first(); } // Get line last element if(isLineEnd(lineFele[0].nextSibling)){ lineEele = lineFele; }else{ lineEele = lineFele.nextAll().filter(function(){ return isLineEnd(this.nextSibling); }).first(); } // Wrap all with p tag if(lineFele.is(lineEele)){ finalP = lineFele.wrap('

    ').parent() }else{ finalP = lineFele.nextUntil(lineEele.next()).addBack().wrapAll('

    ').parent(); } finalP.next('br').remove(); return finalP; } // Get start block lavel elements var $sNode = jQuery(t.blockNode(startNode)); if($sNode.is(t.editor)){ $sNode = wrapLine(startNode); } var $eNode = jQuery(t.blockNode(endNode)); if($eNode.is(t.editor)){ $eNode = wrapLine(endNode); } var $oldEle = $sNode; if(! $sNode.is($eNode) ){ var findEnd = false; var addElement = function(addEle){ if(addEle[0].nodeName == 'UL' || addEle[0].nodeName == 'OL') { addEle.children().each(function(){ $oldEle = $oldEle.add(jQuery(this)); }); return; } $oldEle = $oldEle.add(addEle); } var wrapAllEle = function(nextEle){ if(nextEle.is($eNode) || nextEle.find($eNode).length > 0){ findEnd = true; return; } if(nextEle.length < 1){ return; } if(!t.isline(nextEle[0])){ nextEle = wrapLine(nextEle); } addElement(nextEle); wrapAllEle( nextEle.next() ); } wrapAllEle($sNode.next()); // Is start Element have a another parent var pars = $sNode.parentsUntil(t.editor); pars.each(function(){ var $par = jQuery(this); wrapAllEle($par.next()); }); if( pars.length > 0 ){ $sNode = pars.last(); } var nextEnd = $sNode.nextAll().filter(function(){ return jQuery(this).is($eNode) || jQuery(this).find($eNode).length > 0; }).first(); // Add elements if( nextEnd.length > 0 ){ var $nextEle = $sNode.nextUntil(nextEnd); $nextEle.each(function(){ var ulEle = jQuery(this); if($oldEle.has(ulEle)) return; addElement(ulEle); }); } // Add end element if(nextEnd.length > 0 && !nextEnd.is($eNode) && (nextEnd[0].nodeName == 'UL' || nextEnd[0].nodeName == 'OL')){ nextEnd.children().each(function(){ var li = jQuery(this); $oldEle = $oldEle.add(li); if(li.is($eNode) || li.find($eNode).length > 0) return false; }); }else{ $oldEle = $oldEle.add($eNode); } } if('style' in btn){ var style = {}; style[btn.style] = value; $oldEle.css(style); }else if('atts' in btn){ // Add attribute or toggle the element var attr = {}; attr[btn.atts] = value; $oldEle.attr(attr); }else{ // Replace tag var tag = value.toLowerCase(); // need to find all block ele and replace this $oldEle.each( function(){ var $cEle = jQuery(this); if($cEle.is(t.editor)){ return; } // Is List element if($cEle.css('display') == 'list-item'){ if( t.isline($cEle[0].firstChild)){ $cEle.children().each(function(){ var liChild = jQuery(this); if(t.isline(liChild[0])){ t.replaceTag(liChild, tag, true); return; } // TODO: Check and need to correct liChild.wrap('<' + tag + '/>'); liChild.next('br').remove(); }); return } $cEle.contents().wrapAll('<' + tag + '/>'); return; } t.replaceTag($cEle, tag, true); }); } // Get rid of pen temporary span's jQuery('[data-pts]', t.editor).contents().unwrap(); t.semanticCode(); t.restoreRange(); } blockNode( node ){ var t = this; while( !t.isline(node) && node != t.editor[0] ) { node = node.parentNode; } return node; } isline(node){ if (node.nodeType !== Node.ELEMENT_NODE) return false; if (node.childNodes.length === 0) return false; // Exclude embed blocks var style = window.getComputedStyle(node); return ['block', 'list-item'].indexOf(style.display) > -1; } replaceTag(ele, tag, copyAttr){ ele.wrap('<' + tag + '/>'); var par = ele.parent(); if(copyAttr){ jQuery.each(ele.prop('attributes'), function () { par.attr(this.name, this.value); }); } ele.contents().unwrap(); return par; } semanticCode(){ var t = this; t.semanticTag('b'); t.semanticTag('i'); t.semanticTag('s'); t.semanticTag('strike'); t.semanticTag('div', true); } semanticTag(oldTag, copyAttributes){ var t = this; var newTag; if(t.semantic != null && typeof t.semantic === 'object' && t.semantic.hasOwnProperty(oldTag)){ newTag = t.semantic[oldTag]; } else if (t.DEFAULT_SEMANTIC_MAP.hasOwnProperty(oldTag)) { newTag = t.DEFAULT_SEMANTIC_MAP[oldTag]; } else { return; } jQuery(oldTag, t.editor).each(function () { var $oldTag = jQuery(this); if($oldTag.contents().length === 0) { return false; } t.replaceTag($oldTag, newTag, copyAttributes); }); } addEvents(){ // Add Events var t = this, editor = t.editor, ctrl = false, debounceButtonStatus; var showToolBar = function(){ var jEle = t.penHolder.children(':visible'); if(jEle.length < 1){ jEle = t.toolbar; } t.showPen(jEle); }; // Save rage editor.on('focusout', function(e){ if(t.destroyEd){ t.editor.removeClass('pagelayer-pen-focused'); t.range = null; return; } t.saveRange(); }); // Prevent to hide toolbar t.penHolder.on('mousedown', function(e){ // TODO: taget only require Element t.destroyEd = false; }); // On editor blur editor.on('blur', function(){ if(!t.destroyEd){ return; } t.destroy(); }); editor.on('keydown', function(){ t.penHolder.hide(); }); editor.on('mousedown', function(){ if(t.editor.attr('contenteditable') == 'true'){ t.showPen(); } }); editor.on('mouseup keyup keydown', function(e){ if ((!e.ctrlKey && !e.metaKey) || e.altKey) { setTimeout(function () { // "hold on" to the ctrl key for 50ms ctrl = false; }, 50); } clearTimeout(debounceButtonStatus); debounceButtonStatus = setTimeout(function () { t.updateButtonStatus(); }, 50); }); // Set focus on editor editor.on('click', function(e){ if(t.editor.hasClass('pagelayer-pen-focused')){ return; } t.editor.attr('contenteditable', 'true'); t.editor.focus(); }); // Set focus on editor editor.on('focus', function(){ t.destroyEd = true; t.addToolbar(); t.showPen(); t.editor.addClass('pagelayer-pen-focused'); jQuery(window).unbind('scroll.penToobar'); jQuery(window).on('scroll.penToobar', showToolBar); jQuery(document).unbind('mousemove.penToobar'); jQuery(document).on('mousemove.penToobar', showToolBar); }); t.semanticCode(); } destroy(){ var t = this; //t.editor.attr('contenteditable', ''); t.penHolder.hide(); // Removing event listeners jQuery(document).unbind('mousemove.penToobar'); jQuery(window).unbind('scroll.penToobar'); } hasFocus(){ var t = this; return ( t.doc.activeElement === t.editor || t.contains( t.editor[0], t.doc.activeElement) ); } contains(parent, descendant) { try { // Firefox inserts inaccessible nodes around video elements descendant.parentNode; // eslint-disable-line no-unused-expressions } catch (e) { return false; } return parent.contains(descendant); } saveRange(){ var t = this, selection = t.doc.getSelection(); t.range = null; if (!selection || !selection.rangeCount) { return; } var savedRange = t.range = selection.getRangeAt(0), range = t.doc.createRange(), rangeStart; range.selectNodeContents(t.editor[0]); range.setEnd(savedRange.startContainer, savedRange.startOffset); rangeStart = (range + '').length; t.metaRange = { start: rangeStart, end: rangeStart + (savedRange + '').length }; } restoreRange(){ var t = this, metaRange = t.metaRange, savedRange = t.range, selection = t.doc.getSelection(), range; if(!savedRange){ return; } if(metaRange && metaRange.start !== metaRange.end){ // Algorithm from http://jsfiddle.net/WeWy7/3/ var charIndex = 0, nodeStack = [t.editor[0]], node, foundStart = false, stop = false; range = t.doc.createRange(); while(!stop && (node = nodeStack.pop())){ if (node.nodeType === 3){ var nextCharIndex = charIndex + node.length; if (!foundStart && metaRange.start >= charIndex && metaRange.start <= nextCharIndex) { range.setStart(node, metaRange.start - charIndex); foundStart = true; } if (foundStart && metaRange.end >= charIndex && metaRange.end <= nextCharIndex) { range.setEnd(node, metaRange.end - charIndex); stop = true; } charIndex = nextCharIndex; } else { var cn = node.childNodes, i = cn.length; while (i > 0) { i -= 1; nodeStack.push(cn[i]); } } } } selection.removeAllRanges(); selection.addRange(range || savedRange); } getRange(){ var t = this; var selection = t.doc.getSelection(); if (selection == null || selection.rangeCount <= 0) return null; var range = selection.getRangeAt(0); if(range == null) return null; return range; } getRangeText(range){ return range + ''; } focus(){ var t = this; if(t.hasFocus()) return; t.editor.click(); t.editor.focus(); t.restoreRange(); } getBounds(range){ var rect = range.getBoundingClientRect(); return { bottom: rect.top + rect.height, height: rect.height, left: rect.left, right: rect.right, top: rect.top, width: 0 }; } showPen(jEle){ var t = this; jEle = jEle || jQuery(t.toolbar); var toolBar = jQuery(t.penHolder); var tooltipHeight = parseInt(toolBar.css('height')); var range = null; if(! t.hasFocus() && t.range != null){ range = t.range; }else{ range = t.getRange(); } if(range == null){ toolBar.hide(); return; } // Set left of toolbar var editorOffset = t.editor[0].getBoundingClientRect(); var editorTop = editorOffset.top; var editorLeft = editorOffset.left; var editorbottom = editorTop + editorOffset.height - tooltipHeight; var toolBarTop = editorTop - 10; var bound = t.getBounds(range); if(bound.height == 0 && bound.top == 0 && bound.left == 0){ toolBar.hide(); return; } var boundTop = bound.top - 15; // Set top of toolbar if( boundTop - tooltipHeight < 0 && bound.bottom > -5){ toolBarTop = bound.bottom + tooltipHeight + 15; }else if( editorbottom - 30 < 0 ){ toolBarTop = editorbottom + 20; }else if( toolBarTop - tooltipHeight < 0 ){ toolBarTop = tooltipHeight + 10; } // Show Toolbar toolBar.children().hide(); toolBar.show(); jEle.show(); // Set top of toolbar toolBar.css('top', toolBarTop); // Set left of toobar var docW = jQuery(window).width() - 10; var toolW = toolBar.width(); var edW = t.editor.width(); if(toolW > edW){ editorLeft = editorLeft - (toolW - edW) / 2 } toolBar.css('left', editorLeft+'px'); var tooltipLeft = toolBar.offset().left; if(tooltipLeft < 0){ toolBar.css('left', '1px'); } var toolRight = tooltipLeft + toolW; if(docW < toolRight){ toolBar.css('left', tooltipLeft - (toolRight - docW)+'px'); } } getContent(){ var editor = this.editor; var html = editor.html(); return html; } setContent(html){ var t = this; html = html || ''; t.editor.html(html); t.editor.trigger('input'); } updateButtonStatus(){ var t = this, toolbar = jQuery(t.toolbar), tags = t.getTagsRecursive(t.doc.getSelection().focusNode), activeClasses = 'pagelayer-pen-active'; jQuery('.' + activeClasses, toolbar).removeClass(activeClasses); jQuery.each(tags, function (i, tag){ var btnName; if(pagelayer_is_string(tag)){ btnName = t.tagToButton[tag.toLowerCase()]; }else{ btnName = t.tagToButton[Object.keys(tag)[0].toLowerCase()] } var $btn = jQuery('[data-format="'+btnName+'"]', toolbar); if($btn.length < 1){ return; } if($btn.find('.pagelayer-pen-picker-label').length > 0){ $btn.find('.pagelayer-pen-picker-label').addClass(activeClasses); return; } $btn.addClass(activeClasses); }); } getTagsRecursive(element, tags) { var t = this; var jEle = jQuery(element); tags = tags || (element && element.tagName ? [element.tagName] : []); if (element && element.parentNode) { element = element.parentNode; } else { return tags; } var tag = element.tagName; // Is this editor if (tag === 'DIV') { return tags; } // TODO: for all block element if (tag === 'P' && element.style.textAlign !== '') { tags.push(element.style.textAlign); } jQuery.each(t.tagHandlers, function (i, tagHandler) { tags = tags.concat(tagHandler(element, t)); }); tags.push(tag); var styles = jEle.attr('style'); if(!pagelayer_empty(styles)){ var styles = styles.split(';'); jQuery.each(styles, function(i, style){ style = style.split(':'); var ss = String(style[0]).trim(); var vv = String(style[1]).trim(); if(pagelayer_empty(ss) || ss in tags && !pagelayer_empty(tags[ss])){ return; } var obj = {}; obj[ss] = vv; tags.push(obj); }); } return t.getTagsRecursive(element, tags).filter(function (tag) { return tag != null; }); } buildDropdown(select){ var t = this; var fixIcon = ''; select = jQuery(select); var format = select.data('format'); var selAtts = ''; var options = ''; var optId = `pagelayer-pen-picker-options-${t.optionsCounter}`; t.optionsCounter += 1; Array.from(select[0].attributes).forEach(item => { selAtts += ' '+item.name+'="'+ item.value +'"'; }); Array.from(select[0].options).forEach(option => { var attrs = ''; var val = ''; var itemInner = ''; if(option.hasAttribute('value')){ val = option.getAttribute('value'); attrs += ' data-value="'+val+'"'; } if(option.textContent){ attrs += ' data-label="'+option.textContent+'"'; } // Set icon if('icon' in t.handlers[format] && typeof t.handlers[format]['icon'] == 'object' && !pagelayer_empty(t.handlers[format]['icon'][val])){ itemInner = t.handlers[format]['icon'][val]; } options += `${itemInner}`; }); if('fixIcon' in t.handlers[format]){ fixIcon = t.handlers[format]['fixIcon']; } var customInpute = ''; if('customInpute' in t.handlers[format] && !pagelayer_empty(t.handlers[format]['customInpute'])){ customInpute = ''; } var container = jQuery(` `); container.addClass('pagelayer-pen-picker'); select.before(container); select.hide(); var close = function(cEle){ cEle.removeClass('pagelayer-pen-expanded'); cEle.find('.pagelayer-pen-picker-label').attr('aria-expanded', 'false'); cEle.find('.pagelayer-pen-picker-options').attr('aria-hidden', 'true'); } var selectItem = function(item, trigger = false){ var selected = container.find('.pagelayer-pen-selected'); var label = container.find('.pagelayer-pen-picker-label'); var val = ''; if (item === selected) return; if (selected != null) { selected.removeClass('pagelayer-pen-selected'); } if(item == null) return; item.classList.add('pagelayer-pen-selected'); select.selectedIndex = Array.from(item.parentNode.children).indexOf( item, ); if (item.hasAttribute('data-value')) { val = item.getAttribute('data-value'); label.attr('data-value', val); } else { label.attr('data-value', val); } if (item.hasAttribute('data-label')) { label.attr('data-label', item.getAttribute('data-label')); } else { label.attr('data-label', ''); } if(!fixIcon){ label.html(item.innerHTML); } if(trigger) { select.val(val); select.trigger('change'); close(container); } } var toggleAriaAttribute = function(element, attribute) { element.setAttribute( attribute, !(element.getAttribute(attribute) === 'true'), ); } var togglePicker = function() { container.toggleClass('pagelayer-pen-expanded'); // Toggle aria-expanded and aria-hidden to make the picker accessible toggleAriaAttribute(container.find('.pagelayer-pen-picker-label')[0], 'aria-expanded'); toggleAriaAttribute(container.find('.pagelayer-pen-picker-options')[0], 'aria-hidden'); } container.find('.pagelayer-pen-picker-item').on('click', function(){ selectItem(this, true); close(container); }); container.find('.pagelayer-pen-picker-label').on('click', function(){ togglePicker(); }); container.find('.pagelayer-pen-custom-input').on('focusout keydown', function(e){ if(e.type == 'keydown' && e.keyCode != 13){ return; } e.preventDefault(); var val = jQuery(this).val(); if(pagelayer_empty(val)){ return; } var opt = select.find('option.pagelayer-pen-custom-value'); if(opt.length < 1){ select.append(''); opt = select.find('option.pagelayer-pen-custom-value'); } opt.val(val); select.val(val); select.trigger('change'); close(container); }); jQuery(t.toolbar).on('mousedown', function(e){ var tEle = jQuery(this); var target = jQuery(e.target); var tPicker = target.closest('.pagelayer-pen-picker'); if(target.closest('.pagelayer-pen-picker-item').length > 0) return; tEle.find('.pagelayer-pen-picker.pagelayer-pen-expanded').each(function(){ var picker = jQuery(this); if(tPicker.length > 0 && tPicker.is(picker))return; close(picker); }); }); // TODO need to correct this function update the select container.on('update', function(){ var item = container.find('.pagelayer-pen-selected'); if(item.length < 1){ item = container.find('.pagelayer-pen-picker-item').first(); } selectItem(item[0]); }); container.trigger('update'); return container; } buildColorBtnHandler(item){ var t = this; var select = t.buildDropdown(item); var format = select.data('format'); // Set color select.find('.pagelayer-pen-picker-item').each(function(){ var opt = jQuery(this); var color = opt.data('value'); opt.css({'background': color}); // TODO remove this and add on selecttion opt.on('click', function(){ if(format == 'color'){ opt.closest('.pagelayer-pen-picker-label').css({'text-color': color}); }else{ opt.closest('.pagelayer-pen-picker-label').css({'background-color': color}); } }); }); } buildfontBtnHandler(item){ var t = this; var select = t.buildDropdown(item); jQuery(item).on('change', function(){ pagelayer_link_font_family(jQuery(this)); }); } setLinkHandler(){ var t = this, documentSelection = t.doc.getSelection(), node = documentSelection.focusNode, text = new XMLSerializer().serializeToString(documentSelection.getRangeAt(0).cloneContents()), url = '', linkBtn = 'Link', unlinkBtn = 'Cancel'; while (['A', 'DIV'].indexOf(node.nodeName) < 0) { node = node.parentNode; } if(node && node.nodeName === 'A'){ var $a = jQuery(node); url = $a.attr('href'); } if(!pagelayer_empty(url)){ linkBtn = 'Update'; unlinkBtn = 'Unlink'; } t.saveRange(); var tooltip = this.addContainer('pagelayer-pen-link-tooltip'); t.linkTooltip = tooltip; var html = ''+linkBtn+''+unlinkBtn+''; tooltip.html(html); var input = tooltip.find('input[name="url"]'); // Keep saving old range var metaRange = t.metaRange; var savedRange = t.range; var restoreRange = function(){ t.metaRange = metaRange; t.range = savedRange; t.restoreRange(); } t.linkTooltip.find('.pagelayer-pen-link-btn').on('click', function(){ var url = input.val(); restoreRange(); t.execCmd('createLink', url, true ); t.editor.trigger('input'); t.showPen(); }); t.linkTooltip.find('.pagelayer-pen-unlink-btn').on('click', function(){ restoreRange(); if(unlinkBtn == 'Unlink'){ t.execCmd('unlink', undefined, undefined, true); } t.showPen(); }); t.showPen(t.linkTooltip); } imageBtnHandler(){ var t = this; t.destroyEd = false; t.destroy(); var frame = pagelayer_select_frame('image'); // On select update the stuff frame.on({'select': function(){ var state = frame.state(); var url = '', alt = '', id = ''; // External URL if('props' in state){ url = state.props.attributes.url; alt = state.props.attributes.alt; // Internal from gallery }else{ var attachment = frame.state().get('selection').first().toJSON(); //console.log(attachment); // Set the new and URL url = attachment.url; alt = attachment.alt; id = attachment.id; } t.editor.click(); t.restoreRange(); t.execCmd('insertImage', url, false, true); var $img = jQuery('img[src="' + url + '"]:not([alt])', t.editor); $img.attr('alt', alt); $img.attr('pl-media-id', id); } }); frame.open(); } viewHTMLBtnHandler(param){ var t = this; var html = t.getContent(); t.destroyEd = false; t.destroy(); // Add Container var HTMLviewer = jQuery('.pagelayer-pen-html-viewer'); if(HTMLviewer.length < 1){ jQuery('body').append('

    '+ '
    '+ ''+ '
    '+ ''+ ''+ '
    '+ '
    '+ '
    '); HTMLviewer = jQuery('.pagelayer-pen-html-viewer'); } HTMLviewer.find('.pagelayer-pen-html-area').val(html); HTMLviewer.show(); HTMLviewer.find('.pagelayer-pen-html-btn-update').unbind('click'); HTMLviewer.find('.pagelayer-pen-html-btn-update').on('click', function(){ var html = HTMLviewer.find('.pagelayer-pen-html-area').val(); t.range = null; t.editor.click(); t.setContent(html); t.editor.trigger('focus'); HTMLviewer.hide(); }); HTMLviewer.find('.pagelayer-pen-html-btn-cancel').unbind('click'); HTMLviewer.find('.pagelayer-pen-html-btn-cancel').on('click', function(){ t.editor.click(); t.focus(); HTMLviewer.hide(); }); } } /*! * imagesLoaded PACKAGED v4.1.4 * JavaScript is all like "You images are done yet or what?" * MIT License */ !function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return n.indexOf(t)==-1&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return n!=-1&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o",{src:a,class:"nivo-lightbox-image-display"});h.one("load",function(){var e=t('
    ');e.append(h),o.html(e).removeClass("nivo-lightbox-loading"),e.css({"line-height":t(".nivo-lightbox-content").height()+"px",height:t(".nivo-lightbox-content").height()+"px"}),t(i).resize(function(){e.css({"line-height":t(".nivo-lightbox-content").height()+"px",height:t(".nivo-lightbox-content").height()+"px"})})}).each(function(){this.complete&&t(this).load()}),h.error(function(){var i=t('

    '+n.options.errorMessage+"

    ");o.html(i).removeClass("nivo-lightbox-loading")})}else if(l){var s="",r="nivo-lightbox-video";if("youtube"==l[1]&&(s="//web.archive.org/web/20221006120156/https://www.youtube.com/embed/"+l[4],r="nivo-lightbox-youtube"),"youtube-nocookie"==l[1]&&(s=a,r="nivo-lightbox-youtube"),"youtu"==l[1]&&(s="//web.archive.org/web/20221006120156/https://www.youtube.com/embed/"+l[3],r="nivo-lightbox-youtube"),"vimeo"==l[1]&&(s="//web.archive.org/web/20221006120156/https://player.vimeo.com/video/"+l[3],r="nivo-lightbox-vimeo"),s){var c=t("'),c.attr("height",h),c.attr("width",g),"youtube"===f.type?c.attr("src","//web.archive.org/web/20221006120156/https://www.youtube.com/embed/"+f.id+"?autoplay=1&rel=0&v="+f.id):"vimeo"===f.type?c.attr("src","//web.archive.org/web/20221006120156/https://player.vimeo.com/video/"+f.id+"?autoplay=1"):"vzaar"===f.type&&c.attr("src","//web.archive.org/web/20221006120156/https://view.vzaar.com/"+f.id+"/player?autoplay=true"),a(c).wrap('
    ').insertAfter(e.find(".pagelayer-owl-video")),this._playing=e.addClass("pagelayer-owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("pagelayer-owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1, animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated pagelayer-owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated pagelayer-owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated pagelayer-owl-animated-out pagelayer-owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._call=null,this._time=0,this._timeout=0,this._paused=!0,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._paused&&(this._time=0)},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype._next=function(d){this._call=b.setTimeout(a.proxy(this._next,this,d),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read()),this._core.is("interacting")||c.hidden||this._core.next(d||this._core.settings.autoplaySpeed)},e.prototype.read=function(){return(new Date).getTime()-this._time},e.prototype.play=function(c,d){var e;this._core.is("rotating")||this._core.enter("rotating"),c=c||this._core.settings.autoplayTimeout,e=Math.min(this._time%(this._timeout||c),c),this._paused?(this._time=this.read(),this._paused=!1):b.clearTimeout(this._call),this._time+=this.read()%c-e,this._timeout=c,this._call=b.setTimeout(a.proxy(this._next,this,d),c-e)},e.prototype.stop=function(){this._core.is("rotating")&&(this._time=0,this._paused=!0,b.clearTimeout(this._call),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&!this._paused&&(this._time=this.read(),this._paused=!0,b.clearTimeout(this._call))},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('
    '+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"
    ")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:['',''],navSpeed:!1,navElement:'button type="button" role="presentation"',navContainer:!1,navContainerClass:"pagelayer-owl-nav",navClass:["pagelayer-owl-prev","pagelayer-owl-next"],slideBy:1,dotClass:"pagelayer-owl-dot",dotsClass:"pagelayer-owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("
    ").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a('