File manager - Edit - /home/aresglob/public_html/wp/wp-includes/images/smilies/js.tar
Back
unminified/customizer-preview.js 0000644 00000407067 15077703135 0013142 0 ustar 00 /** * This file adds some LIVE to the Theme Customizer live preview. To leverage * this, set your custom settings to 'postMessage' and then add your handling * here. Your javascript should grab settings from customizer controls, and * then make any necessary changes to the page using jQuery. * * @package Astra */ /** * Generate font size in PX & REM */ function astra_font_size_rem( size, with_rem, device ) { var css = ''; if( size != '' ) { var device = ( typeof device !== 'undefined' ) ? device : 'desktop'; // font size with 'px'. css = 'font-size: ' + size + 'px;'; // font size with 'rem'. if ( with_rem ) { var body_font_size = wp.customize( 'astra-settings[font-size-body]' ).get(); body_font_size['desktop'] = ( body_font_size['desktop'] != '' ) ? body_font_size['desktop'] : 15; body_font_size['tablet'] = ( body_font_size['tablet'] != '' ) ? body_font_size['tablet'] : body_font_size['desktop']; body_font_size['mobile'] = ( body_font_size['mobile'] != '' ) ? body_font_size['mobile'] : body_font_size['tablet']; if ( body_font_size[ device + '-unit' ] === 'px' ) { css += 'font-size: ' + ( size / body_font_size[device] ) + 'rem;'; } } } return css; } /** * Refresh customizer iframe. */ function astra_refresh_customizer( control ) { wp.customize( control, function( value ) { value.bind( function( value ) { wp.customize.preview.send( 'refresh' ); } ); } ); } /** * Apply CSS for the element */ function astra_color_responsive_css( addon, control, css_property, selector ) { wp.customize( control, function( value ) { value.bind( function( value ) { if ( value.desktop || value.mobile || value.tablet ) { // Remove <style> first! control = control.replace( '[', '-' ); control = control.replace( ']', '' ); jQuery( 'style#' + control + '-' + addon ).remove(); var DeskVal = '', TabletFontVal = '', MobileVal = ''; if ( '' != value.desktop ) { DeskVal = css_property + ': ' + value.desktop; } if ( '' != value.tablet ) { TabletFontVal = css_property + ': ' + value.tablet; } if ( '' != value.mobile ) { MobileVal = css_property + ': ' + value.mobile; } // Concat and append new <style>. jQuery( 'head' ).append( '<style id="' + control + '-' + addon + '">' + selector + ' { ' + DeskVal + ' }' + '@media (max-width: 768px) {' + selector + ' { ' + TabletFontVal + ' } }' + '@media (max-width: 544px) {' + selector + ' { ' + MobileVal + ' } }' + '</style>' ); } else { jQuery( 'style#' + control + '-' + addon ).remove(); } } ); } ); } /** * Responsive Font Size CSS */ function astra_responsive_font_size( control, selector, dispatchCustomEvent = false, styleGuideSelector = '' ) { wp.customize( control, function( value ) { value.bind( function( value ) { if ( value.desktop || value.mobile || value.tablet ) { // Remove <style> first! control = control.replace( '[', '-' ); control = control.replace( ']', '' ); var css_property = 'font-size', fontSize = value['desktop-unit'] == 'px' ? astra_font_size_rem( value.desktop, true, 'desktop' ) : '', tabletFontSize = '', mobileFontSize = ''; jQuery( 'style#' + control + '-' + css_property ).remove(); if ( '' != value.desktop ) { fontSize = fontSize || 'font-size: ' + value.desktop + ( undefined == value['desktop-unit'] ? 'px' : value['desktop-unit'] ); } if ( '' != value.tablet ) { tabletFontSize = 'font-size: ' + value.tablet + ( undefined == value['tablet-unit'] ? 'px' : value['tablet-unit'] ); } if ( '' != value.mobile ) { mobileFontSize = 'font-size: ' + value.mobile + ( undefined == value['mobile-unit'] ? 'px' : value['mobile-unit'] ); } // Concat and append new <style>. jQuery( 'head' ).append( '<style id="' + control + '-' + css_property + '">' + selector + ' { ' + fontSize + ' }' + '@media (max-width: 768px) {' + selector + ' { ' + tabletFontSize + ' } }' + '@media (max-width: 544px) {' + selector + ' { ' + mobileFontSize + ' } }' + '</style>' ); if ( dispatchCustomEvent ) { let styleGuideUpdatedEvent = new CustomEvent( 'AstraStyleGuideElementUpdated', { 'detail': { 'value': { 'desktop': value.desktop + ( undefined == value['desktop-unit'] ? 'px' : value['desktop-unit'] ), 'tablet': value.tablet + ( undefined == value['tablet-unit'] ? 'px' : value['tablet-unit'] ), 'mobile': value.mobile + ( undefined == value['mobile-unit'] ? 'px' : value['mobile-unit'] ) }, 'selector': styleGuideSelector } }); document.dispatchEvent(styleGuideUpdatedEvent); } } else { jQuery( 'style#' + control + '-font-size' ).remove(); } } ); } ); } /** * Font extras control dynamic CSS. * * @since x.x.x */ function astra_font_extras_css( control, selector ) { wp.customize( 'astra-settings[' + control + ']', function( value ) { value.bind( function( data ) { if ( data ) { // Remove <style> first! jQuery( 'style#' + control ).remove(); let dynamicStyle = selector + ' { line-height : ' + data['line-height'] + data['line-height-unit'] + ";"; dynamicStyle += 'letter-spacing : ' + data['letter-spacing'] + data['letter-spacing-unit'] + ";" ; dynamicStyle += 'text-decoration : ' + data['text-decoration'] + ";"; dynamicStyle += 'text-transform : ' + data['text-transform'] + ';}' ; // Concat and append new <style>. jQuery( 'head' ).append( '<style id="' + control + '">' + dynamicStyle + '</style>' ); } else { jQuery( 'style#' + control ).remove(); } } ); } ); } /** * Responsive Spacing CSS */ function astra_responsive_spacing( control, selector, type, side ) { wp.customize( control, function( value ) { value.bind( function( value ) { var sidesString = ""; var spacingType = "padding"; if ( value.desktop.top || value.desktop.right || value.desktop.bottom || value.desktop.left || value.tablet.top || value.tablet.right || value.tablet.bottom || value.tablet.left || value.mobile.top || value.mobile.right || value.mobile.bottom || value.mobile.left ) { if ( typeof side !== 'undefined' ) { sidesString = side + ""; // Replace comma character with dash, necessary to separate out spacing dimensions. sidesString = sidesString.replace(/,/g , "-"); } if ( typeof type !== 'undefined' ) { spacingType = type + ""; } // Remove <style> first! control = control.replace( '[', '-' ); control = control.replace( ']', '' ); jQuery( 'style#' + control + '-' + spacingType + '-' + sidesString ).remove(); var desktopPadding = '', tabletPadding = '', mobilePadding = ''; var paddingSide = ( typeof side !== 'undefined' ) ? side : [ 'top','bottom','right','left' ]; jQuery.each(paddingSide, function( index, sideValue ){ if ( '' != value['desktop'][sideValue] ) { desktopPadding += spacingType + '-' + sideValue +': ' + value['desktop'][sideValue] + value['desktop-unit'] +';'; } }); jQuery.each(paddingSide, function( index, sideValue ){ if ( '' != value['tablet'][sideValue] ) { tabletPadding += spacingType + '-' + sideValue +': ' + value['tablet'][sideValue] + value['tablet-unit'] +';'; } }); jQuery.each(paddingSide, function( index, sideValue ){ if ( '' != value['mobile'][sideValue] ) { mobilePadding += spacingType + '-' + sideValue +': ' + value['mobile'][sideValue] + value['mobile-unit'] +';'; } }); // Concat and append new <style>. jQuery( 'head' ).append( '<style id="' + control + '-' + spacingType + '-' + sidesString + '">' + selector + ' { ' + desktopPadding +' }' + '@media (max-width: 768px) {' + selector + ' { ' + tabletPadding + ' } }' + '@media (max-width: 544px) {' + selector + ' { ' + mobilePadding + ' } }' + '</style>' ); } else { wp.customize.preview.send( 'refresh' ); jQuery( 'style#' + control + '-' + spacingType + '-' + sidesString ).remove(); } } ); } ); } /** * CSS */ function astra_css_font_size( control, selector ) { wp.customize( control, function( value ) { value.bind( function( size ) { if ( size ) { // Remove <style> first! control = control.replace( '[', '-' ); control = control.replace( ']', '' ); jQuery( 'style#' + control ).remove(); var fontSize = 'font-size: ' + size; if ( ! Number.isNaN( size ) || size.indexOf( 'px' ) >= 0 ) { size = size.replace( 'px', '' ); fontSize = astra_font_size_rem( size, true ); } // Concat and append new <style>. jQuery( 'head' ).append( '<style id="' + control + '">' + selector + ' { ' + fontSize + ' }' + '</style>' ); } else { jQuery( 'style#' + control ).remove(); } } ); } ); } /** * Return get_hexdec() */ function get_hexdec( hex ) { var hexString = hex.toString( 16 ); return parseInt( hexString, 16 ); } /** * Apply CSS for the element */ function astra_css( control, css_property, selector, unit, important = false ) { wp.customize( control, function( value ) { value.bind( function( new_value ) { // Remove <style> first! control = control.replace( '[', '-' ); control = control.replace( ']', '' ); if ( new_value || 0 === new_value ) { /** * If ( unit == 'url' ) then = url('{VALUE}') * If ( unit == 'px' ) then = {VALUE}px * If ( unit == 'em' ) then = {VALUE}em * If ( unit == 'rem' ) then = {VALUE}rem. */ if ( 'undefined' != typeof unit) { if ( 'url' === unit ) { new_value = 'url(' + new_value + ')'; } else { new_value = new_value + unit; } } const imp_css_prop = important ? ' !important' : ''; // Remove old. jQuery( 'style#' + control + '-' + css_property ).remove(); // Concat and append new <style>. jQuery( 'head' ).append( '<style id="' + control + '-' + css_property + '">' + selector + ' { ' + css_property + ': ' + new_value + imp_css_prop + ' }' + '</style>' ); if( 'unset' === new_value ){ jQuery( 'style#' + control + '-' + css_property ).remove(); } } else { // Remove old. jQuery( 'style#' + control + '-' + css_property ).remove(); } } ); } ); } /** * Dynamic Internal/Embedded Style for a Control */ function astra_add_dynamic_css( control, style ) { control = control.replace( '[', '-' ); control = control.replace( ']', '' ); jQuery( 'style#' + control ).remove(); jQuery( 'head' ).append( '<style id="' + control + '">' + style + '</style>' ); } /** * Generate background_obj CSS */ function astra_background_obj_css( wp_customize, bg_obj, ctrl_name, style ) { var gen_bg_css = ''; var bg_img = bg_obj['background-image']; var bg_color = bg_obj['background-color']; if( '' === bg_color && '' === bg_img ) { jQuery( 'style#' + ctrl_name ).remove(); }else{ if( undefined !== bg_obj['background-type'] && '' !== bg_obj['background-type'] ) { if ( ( 'color' === bg_obj['background-type'] ) ) { if ( '' !== bg_img && '' !== bg_color && undefined !== bg_color && 'unset' !== bg_color ) { gen_bg_css = 'background-image: linear-gradient(to right, ' + bg_color + ', ' + bg_color + '), url(' + bg_img + ');'; } else if ( undefined === bg_img || '' === bg_img || 'unset' === bg_img ) { gen_bg_css = 'background-color: ' + bg_color + ';'; } } else if ( 'image' === bg_obj['background-type'] ) { if ( '' !== bg_img ) { if ( 'overlay-type' in bg_obj && 'none' !== bg_obj['overlay-type'] ) { let overlay_color = 'overlay-color' in bg_obj ? bg_obj['overlay-color'] : ''; let overlay_opacity = 'overlay-opacity' in bg_obj ? bg_obj['overlay-opacity'] : ''; let overlay_gradient = 'overlay-gradient' in bg_obj ? bg_obj['overlay-gradient'] : ''; if ( 'classic' === bg_obj['overlay-type'] && '' !== overlay_color ) { if ( '' !== overlay_opacity ) { wp.customize.preview.send( 'refresh' ); return; } gen_bg_css = 'background-image: linear-gradient(to right, ' + bg_obj['overlay-color'] + ', ' + bg_obj['overlay-color'] + '), url(' + bg_img + ');'; } else if ( 'gradient' === bg_obj['overlay-type'] && '' !== overlay_gradient ) { gen_bg_css = 'background-image: ' + overlay_gradient + ', url(' + bg_img + ');'; } else { gen_bg_css = 'background-image: url(' + bg_img + ');'; } } else { gen_bg_css = 'background-image: url(' + bg_img + ');'; } } } else if ( 'gradient' === bg_obj['background-type'] ) { if ( '' !== bg_color && 'unset' !== bg_color ) { gen_bg_css = 'background-image: ' + bg_color + ';'; } } } if ( '' !== bg_img ) { gen_bg_css += 'background-repeat: ' + bg_obj['background-repeat'] + ';'; gen_bg_css += 'background-position: ' + bg_obj['background-position'] + ';'; gen_bg_css += 'background-size: ' + bg_obj['background-size'] + ';'; gen_bg_css += 'background-attachment: ' + bg_obj['background-attachment'] + ';'; } var dynamicStyle = style.replace( "{{css}}", gen_bg_css ); astra_add_dynamic_css( ctrl_name, dynamicStyle ); } } /* * Generate Font Family CSS */ function astra_generate_outside_font_family_css( control, selector, dispatchCustomEvent = false, styleGuideSelector = '') { wp.customize( control, function (value) { value.bind( function ( value, oldValue ) { var cssProperty = 'font-family'; var link = ''; var fontName = value.split(",")[0]; // Replace ' character with space, necessary to separate out font prop value. fontName = fontName.replace(/'/g, ''); // Remove <style> first! control = control.replace( '[', '-' ); control = control.replace( ']', '' ); jQuery('style#' + control + '-' + cssProperty ).remove(); if ( fontName in astraCustomizer.googleFonts ) { // Remove old. var fontName = fontName.split(' ').join('+'); jQuery('link#' + control).remove(); link = '<link id="' + control + '" href="https://fonts.googleapis.com/css?family=' + fontName + '" rel="stylesheet">'; } if ( dispatchCustomEvent ) { let styleGuideUpdatedEvent = new CustomEvent('AstraStyleGuideElementUpdated', { 'detail': { 'value': value, 'selector': styleGuideSelector } }); document.dispatchEvent(styleGuideUpdatedEvent); } // Concat and append new <style> and <link>. jQuery('head').append( '<style id="' + control + '-' + cssProperty + '">' + selector + ' { ' + cssProperty + ': ' + value + ' }' + '</style>' + link ); }); }); } /** * Apply Advanced CSS for the element * * @param string section Section ID. * @param string selector Base Selector. */ function astra_builder_advanced_css( section, selector ) { var tablet_break_point = 921, mobile_break_point = 544; // Padding. wp.customize( 'astra-settings[' + section + '-padding]', function( value ) { value.bind( function( padding ) { if( ! padding.hasOwnProperty('desktop') ) { return } if( padding.desktop.bottom != '' || padding.desktop.top != '' || padding.desktop.left != '' || padding.desktop.right != '' || padding.tablet.bottom != '' || padding.tablet.top != '' || padding.tablet.left != '' || padding.tablet.right != '' || padding.mobile.bottom != '' || padding.mobile.top != '' || padding.mobile.left != '' || padding.mobile.right != '' ) { var dynamicStyle = ''; dynamicStyle += selector + ' {'; dynamicStyle += 'padding-left: ' + padding['desktop']['left'] + padding['desktop-unit'] + ';'; dynamicStyle += 'padding-right: ' + padding['desktop']['right'] + padding['desktop-unit'] + ';'; dynamicStyle += 'padding-top: ' + padding['desktop']['top'] + padding['desktop-unit'] + ';'; dynamicStyle += 'padding-bottom: ' + padding['desktop']['bottom'] + padding['desktop-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) {'; dynamicStyle += selector + ' {'; dynamicStyle += 'padding-left: ' + padding['tablet']['left'] + padding['tablet-unit'] + ';'; dynamicStyle += 'padding-right: ' + padding['tablet']['right'] + padding['tablet-unit'] + ';'; dynamicStyle += 'padding-top: ' + padding['tablet']['top'] + padding['tablet-unit'] + ';'; dynamicStyle += 'padding-bottom: ' + padding['tablet']['bottom'] + padding['tablet-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {'; dynamicStyle += selector + ' {'; dynamicStyle += 'padding-left: ' + padding['mobile']['left'] + padding['mobile-unit'] + ';'; dynamicStyle += 'padding-right: ' + padding['mobile']['right'] + padding['mobile-unit'] + ';'; dynamicStyle += 'padding-top: ' + padding['mobile']['top'] + padding['mobile-unit'] + ';'; dynamicStyle += 'padding-bottom: ' + padding['mobile']['bottom'] + padding['mobile-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; astra_add_dynamic_css( section + '-padding-toggle-button', dynamicStyle ); } else { astra_add_dynamic_css( section + '-padding-toggle-button', '' ); } } ); } ); // Margin. wp.customize( 'astra-settings[' + section + '-margin]', function( value ) { value.bind( function( margin ) { if( ! margin.hasOwnProperty('desktop') ) { return } if( margin.desktop.bottom != '' || margin.desktop.top != '' || margin.desktop.left != '' || margin.desktop.right != '' || margin.tablet.bottom != '' || margin.tablet.top != '' || margin.tablet.left != '' || margin.tablet.right != '' || margin.mobile.bottom != '' || margin.mobile.top != '' || margin.mobile.left != '' || margin.mobile.right != '' ) { var dynamicStyle = ''; dynamicStyle += selector + ' {'; dynamicStyle += 'margin-left: ' + margin['desktop']['left'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-right: ' + margin['desktop']['right'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-top: ' + margin['desktop']['top'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-bottom: ' + margin['desktop']['bottom'] + margin['desktop-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) {'; dynamicStyle += selector + ' {'; dynamicStyle += 'margin-left: ' + margin['tablet']['left'] + margin['tablet-unit'] + ';'; dynamicStyle += 'margin-right: ' + margin['tablet']['right'] + margin['tablet-unit'] + ';'; dynamicStyle += 'margin-top: ' + margin['tablet']['top'] + margin['tablet-unit'] + ';'; dynamicStyle += 'margin-bottom: ' + margin['tablet']['bottom'] + margin['tablet-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {'; dynamicStyle += selector + ' {'; dynamicStyle += 'margin-left: ' + margin['mobile']['left'] + margin['mobile-unit'] + ';'; dynamicStyle += 'margin-right: ' + margin['mobile']['right'] + margin['mobile-unit'] + ';'; dynamicStyle += 'margin-top: ' + margin['mobile']['top'] + margin['mobile-unit'] + ';'; dynamicStyle += 'margin-bottom: ' + margin['mobile']['bottom'] + margin['mobile-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; astra_add_dynamic_css( section + '-margin-toggle-button', dynamicStyle ); } else { astra_add_dynamic_css( section + '-margin-toggle-button', '' ); } } ); } ); } /** * Apply Advanced CSS for the element * * @param string section Section ID. * @param string selector Base Selector. */ function astra_border_spacing_advanced_css( section, selector ) { wp.customize( 'astra-settings[' + section + '-border-width]', function( setting ) { setting.bind( function( border ) { var dynamicStyle = selector + ' {'; if ( border.top ) { dynamicStyle += 'border-top-style: solid;'; dynamicStyle += 'border-top-width: ' + border.top + 'px;'; } if ( border.right ) { dynamicStyle += 'border-right-style: solid;'; dynamicStyle += 'border-right-width: ' + border.right + 'px;'; } if ( border.bottom ) { dynamicStyle += 'border-bottom-style: solid;'; dynamicStyle += 'border-bottom-width: ' + border.bottom + 'px;'; } if ( border.left ) { dynamicStyle += 'border-left-style: solid;'; dynamicStyle += 'border-left-width: ' + border.left + 'px;'; } dynamicStyle += '} '; astra_add_dynamic_css( 'astra-settings[' + section + '-border-width]', dynamicStyle ); } ); } ); wp.customize( 'astra-settings[' + section + '-border-radius]', function( setting ) { setting.bind( function( border ) { if ( !border.top && !border.right && !border.bottom && !border.left ) { wp.customize.preview.send( 'refresh' ); return; } var dynamicStyle = selector + ' {'; if ( border.top !== '' ) { dynamicStyle += 'border-top-left-radius: ' + border.top + 'px;'; } if ( border.right !== '' ) { dynamicStyle += 'border-top-right-radius: ' + border.right + 'px;'; } if ( border.left !== '' ) { dynamicStyle += 'border-bottom-left-radius: ' + border.left + 'px;'; } if ( border.bottom !== '' ) { dynamicStyle += 'border-bottom-right-radius: ' + border.bottom + 'px;'; } dynamicStyle += '} '; astra_add_dynamic_css( 'astra-settings[' + section + '-border-radius]', dynamicStyle ); } ); } ); astra_css( 'astra-settings[' + section + '-border-color]', 'border-color', selector ); astra_builder_advanced_css( section, selector ); } /* * Generate Font Weight CSS */ function astra_generate_font_weight_css( font_control, control, css_property, selector ) { wp.customize( control, function( value ) { value.bind( function( new_value ) { control = control.replace( '[', '-' ); control = control.replace( ']', '' ); var link = ''; if ( new_value ) { /** * If ( unit == 'url' ) then = url('{VALUE}') * If ( unit == 'px' ) then = {VALUE}px * If ( unit == 'em' ) then = {VALUE}em * If ( unit == 'rem' ) then = {VALUE}rem. */ if ( 'undefined' != typeof unit) { if ( 'url' === unit ) { new_value = 'url(' + new_value + ')'; } else { new_value = new_value + unit; } } var fontName = wp.customize._value[font_control]._value; fontName = fontName.split(','); fontName = fontName[0].replace( /'/g, '' ); // Remove old. jQuery( 'style#' + control + '-' + css_property ).remove(); if ( fontName in astraCustomizer.googleFonts ) { // Remove old. jQuery('#' + font_control).remove(); if( new_value === "inherit" ) { link = '<link id="' + font_control + '" href="https://fonts.googleapis.com/css?family=' + fontName + '" rel="stylesheet">'; } else { link = '<link id="' + font_control + '" href="https://fonts.googleapis.com/css?family=' + fontName + '%3A' + new_value + '" rel="stylesheet">'; } } // Concat and append new <style>. jQuery( 'head' ).append( '<style id="' + control + '-' + css_property + '">' + selector + ' { ' + css_property + ': ' + new_value + ' }' + '</style>' + link ); } else { // Remove old. jQuery( 'style#' + control ).remove(); } } ); }); } /** * Apply CSS for the element */ function astra_apply_responsive_background_css( control, selector, device, singleColorSelector, addon ) { wp.customize( control, function( value ) { value.bind( function( bg_obj ) { addon = addon || ''; singleColorSelector = singleColorSelector || ''; addon = ( addon ) ? addon : 'header'; control = control.replace( '[', '-' ); control = control.replace( ']', '' ); if( '' === bg_obj[device] || undefined === bg_obj[device] ){ return; } var gen_bg_css = ''; var bg_img = bg_obj[device]['background-image']; var bg_tab_img = bg_obj['tablet']['background-image']; var bg_desk_img = bg_obj['desktop']['background-image']; var bg_color = bg_obj[device]['background-color']; var tablet_css = ( bg_obj['tablet']['background-image'] ) ? true : false; var desktop_css = ( bg_obj['desktop']['background-image'] ) ? true : false; if( undefined !== bg_obj[device]['background-type'] && '' !== bg_obj[device]['background-type'] ) { if ( ( 'color' === bg_obj[device]['background-type'] ) ) { if ( '' !== bg_img && '' !== bg_color && undefined !== bg_color && 'unset' !== bg_color ) { gen_bg_css = 'background-image: linear-gradient(to right, ' + bg_color + ', ' + bg_color + '), url(' + bg_img + ');'; } else if ( 'mobile' === device ) { if ( desktop_css ) { gen_bg_css = 'background-image: linear-gradient(to right, ' + bg_color + ', ' + bg_color + '), url(' + bg_desk_img + ');'; } else if ( tablet_css ) { gen_bg_css = 'background-image: linear-gradient(to right, ' + bg_color + ', ' + bg_color + '), url(' + bg_tab_img + ');'; } else { gen_bg_css = 'background-color: ' + bg_color + ';'; gen_bg_css += 'background-image: none;'; } } else if ( 'tablet' === device ) { if ( desktop_css ) { gen_bg_css = 'background-image: linear-gradient(to right, ' + bg_color + ', ' + bg_color + '), url(' + bg_desk_img + ');'; } else { gen_bg_css = 'background-color: ' + bg_color + ';'; gen_bg_css += 'background-image: none;'; } } else if ( undefined === bg_img || '' === bg_img ) { gen_bg_css = 'background-color: ' + bg_color + ';'; gen_bg_css += 'background-image: none;'; } } else if ( 'image' === bg_obj[device]['background-type'] ) { if ( '' !== bg_img ) { if ( undefined !== bg_obj[device]['overlay-type'] && 'none' !== bg_obj[device]['overlay-type'] ) { let overlay_color = undefined !== bg_obj[device]['overlay-color'] ? bg_obj[device]['overlay-color'] : ''; let overlay_opacity = undefined !== bg_obj[device]['overlay-opacity'] ? bg_obj[device]['overlay-opacity'] : ''; let overlay_gradient = undefined !== bg_obj[device]['overlay-gradient'] ? bg_obj[device]['overlay-gradient'] : ''; if ( 'classic' === bg_obj[device]['overlay-type'] && '' !== overlay_color ) { if ( '' !== overlay_opacity ) { wp.customize.preview.send( 'refresh' ); return; } gen_bg_css = 'background-image: linear-gradient(to right, ' + overlay_color + ', ' + overlay_color + '), url(' + bg_img + ');'; } else if ( 'gradient' === bg_obj[device]['overlay-type'] && '' !== overlay_gradient ) { gen_bg_css = 'background-image: ' + overlay_gradient + ', url(' + bg_img + ');'; } else { gen_bg_css = 'background-image: url(' + bg_img + ');'; } } else { gen_bg_css = 'background-image: url(' + bg_img + ');'; } } } else if ( 'gradient' === bg_obj[device]['background-type'] ) { if ( '' !== bg_color && 'unset' !== bg_color ) { gen_bg_css = 'background-image: ' + bg_color + ';'; } } } if ( '' !== bg_img ) { gen_bg_css += 'background-repeat: ' + bg_obj[device]['background-repeat'] + ';'; gen_bg_css += 'background-position: ' + bg_obj[device]['background-position'] + ';'; gen_bg_css += 'background-size: ' + bg_obj[device]['background-size'] + ';'; gen_bg_css += 'background-attachment: ' + bg_obj[device]['background-attachment'] + ';'; } // Remove old. jQuery( 'style#' + control + '-' + device + '-' + addon ).remove(); if ( 'desktop' == device ) { var dynamicStyle = '<style id="' + control + '-' + device + '-' + addon + '">' + selector + ' { ' + gen_bg_css + ' }' + '</style>' } if ( 'tablet' == device ) { var dynamicStyle = '<style id="' + control + '-' + device + '-' + addon + '">' + '@media (max-width: 768px) {' + selector + ' { ' + gen_bg_css + ' } }' + '</style>' } if ( 'mobile' == device ) { var dynamicStyle = '<style id="' + control + '-' + device + '-' + addon + '">' + '@media (max-width: 544px) {' + selector + ' { ' + gen_bg_css + ' } }' + '</style>' } // Concat and append new <style>. jQuery( 'head' ).append( dynamicStyle ); }); }); } function getChangedKey( value, other ) { value = isJsonString(value) ? JSON.parse(value) : value; other = isJsonString(other) ? JSON.parse(other) : other; // Compare two items var compare = function ( item1, item2 ) { // Get the object type var itemType = Object.prototype.toString.call(item1); // If an object or array, compare recursively if (['[object Array]', '[object Object]'].indexOf(itemType) >= 0) { if ('string' == typeof getChangedKey(item1, item2)) { return false; } } // Otherwise, do a simple comparison else { // If the two items are not the same type, return false if (itemType !== Object.prototype.toString.call(item2)) return false; // Else if it's a function, convert to a string and compare // Otherwise, just compare if (itemType === '[object Function]') { if (item1.toString() !== item2.toString()) return false; } else { if (item1 !== item2) return false; } } }; for ( var key in value ) { if ( other.hasOwnProperty(key) && value.hasOwnProperty(key) ) { if ( compare( value[key], other[key] ) === false ) return key; } else { return key; } } // If nothing failed, return true return true; } function isJsonString( str ) { try { JSON.parse(str); } catch (e) { return false; } return true; } function hasWordPressWidgetBlockEditor() { return astraCustomizer.has_block_editor_support || false; } ( function( $ ) { /* * Site Identity SVG Logo initial styling. */ wp.customize( 'astra-settings[logo-svg-icon]', function( setting ) { setting.bind( function() { astra_add_dynamic_css( 'ast-header-responsive-logo-svg-icon-width', '.ast-logo-title-inline .ast-site-identity { gap: 5px; } #masthead .ast-logo-svg-icon svg, .ast-sg-logo-section .ast-logo-svg-icon svg { width: 30px; }' ); } ); } ); /* * Site Identity Logo Width */ wp.customize( 'astra-settings[ast-header-responsive-logo-width]', function( setting ) { setting.bind( function( logo_width ) { let tabletBreakPoint = astraCustomizer.tablet_breakpoint || 921, mobileBreakPoint = astraCustomizer.mobile_breakpoint || 544; if ( logo_width['desktop'] != '' || logo_width['tablet'] != '' || logo_width['mobile'] != '' ) { var dynamicStyle = `#masthead .site-logo-img .custom-logo-link img, .ast-sg-logo-section .site-logo-img .custom-logo-link img { max-width: ${logo_width['desktop']}px; width: ${logo_width['desktop']}px; } @media( max-width: ${tabletBreakPoint}px ) { #masthead .site-logo-img .custom-logo-link img, .ast-sg-logo-section .site-logo-img .custom-logo-link img { max-width: ${logo_width['tablet']}px; width: ${logo_width['tablet']}px; } #masthead .site-logo-img img { max-width: ${logo_width['tablet']}px; width: ${logo_width['tablet']}px; } } @media( max-width: ${mobileBreakPoint}px ) { #masthead .site-logo-img .custom-logo-link img, .ast-sg-logo-section .site-logo-img .custom-logo-link img { max-width: ${logo_width['mobile']}px; width: ${logo_width['mobile']}px; } #masthead .site-logo-img img { max-width: ${logo_width['mobile']}px; max-height: ${logo_width['mobile']}px; } }`; astra_add_dynamic_css( 'ast-header-responsive-logo-width', dynamicStyle ); var mobileLogoStyle = '.ast-header-break-point #masthead .site-logo-img .custom-mobile-logo-link img, .ast-header-break-point .ast-sg-logo-section .site-logo-img .custom-mobile-logo-link img { max-width: ' + logo_width['tablet'] + 'px; } @media( max-width: ' + tabletBreakPoint + 'px ) { .ast-header-break-point #masthead .site-logo-img .custom-mobile-logo-link img, .ast-header-break-point .ast-sg-logo-section .site-logo-img .custom-mobile-logo-link img { max-width: ' + logo_width['tablet'] + 'px; } @media( max-width: ' + mobileBreakPoint + 'px ) { .ast-header-break-point #masthead .site-logo-img .custom-mobile-logo-link img { max-width: ' + logo_width['mobile'] + 'px; }'; astra_add_dynamic_css( 'mobile-header-logo-width', mobileLogoStyle ); /** * Logo SVG Icon Stylings. */ var logoSVGIconStyles = '#masthead .ast-logo-svg-icon svg, .ast-sg-logo-section .ast-logo-svg-icon svg { width: ' + logo_width['desktop'] + 'px; } @media( max-width: ' + tabletBreakPoint + 'px ) { #masthead .ast-logo-svg-icon svg, .ast-sg-logo-section .ast-logo-svg-icon svg { width: ' + logo_width['tablet'] + 'px; } #masthead .ast-logo-svg-icon svg, .ast-sg-logo-section .ast-logo-svg-icon svg { width: ' + logo_width['tablet'] + 'px; } } @media( max-width: ' + mobileBreakPoint + 'px ) { #masthead .ast-logo-svg-icon svg, .ast-sg-logo-section .ast-logo-svg-icon svg { width: ' + logo_width['mobile'] + 'px; }' + '#masthead .ast-logo-svg-icon svg, .ast-sg-logo-section .ast-logo-svg-icon svg { width: ' + logo_width['mobile'] + 'px; } }'; astra_add_dynamic_css( 'ast-header-responsive-logo-svg-icon-width', logoSVGIconStyles ); } else { wp.customize.preview.send( 'refresh' ); } } ); } ); /* * SVG Site Logo Gap */ wp.customize( 'astra-settings[logo-svg-site-title-gap]', function( setting ) { setting.bind( function( logoGap ) { let tabletBreakPoint = astraCustomizer.tablet_breakpoint || 921, mobileBreakPoint = astraCustomizer.mobile_breakpoint || 544; if ( logoGap['desktop'] != '' || logoGap['tablet'] != '' || logoGap['mobile'] != '' ) { var dynamicStyle = `.ast-logo-title-inline .ast-site-identity { gap: ${logoGap['desktop']}px; } @media( max-width: ${tabletBreakPoint}px ) { .ast-logo-title-inline .ast-site-identity { gap: ${logoGap['tablet']}px; } } @media( max-width: ${mobileBreakPoint}px ) { .ast-logo-title-inline .ast-site-identity { gap: ${logoGap['mobile']}px; } }`; astra_add_dynamic_css( 'logo-svg-site-title-gap', dynamicStyle ); } else { wp.customize.preview.send( 'refresh' ); } } ); } ); /* * Responsive Logo Visibility */ wp.customize( 'astra-settings[display-site-title-responsive]', function( setting ) { setting.bind( function( logo_visibility ) { var desktopTitleVisibility = ( logo_visibility['desktop'] ) ? 'block' : 'none'; var tabletTitleVisibility = ( logo_visibility['tablet'] ) ? 'block' : 'none'; var mobileTitleVisibility = ( logo_visibility['mobile'] ) ? 'block' : 'none'; var tabletBreakPoint = astraBuilderPreview.tablet_break_point || 921, mobileBreakPoint = astraBuilderPreview.mobile_break_point || 544; var dynamicStyle = '.ast-site-title-wrap .site-title { display: ' + desktopTitleVisibility + ';} @media( max-width: ' + tabletBreakPoint + 'px) { .ast-site-title-wrap .site-title { display: ' + tabletTitleVisibility + ';} } @media( max-width: ' + mobileBreakPoint + 'px) { .ast-site-title-wrap .site-title { display: ' + mobileTitleVisibility + ';} }'; astra_add_dynamic_css( 'display-site-title-responsive', dynamicStyle ); } ); } ); /* * Responsive Tagline Visibility */ wp.customize( 'astra-settings[display-site-tagline-responsive]', function( setting ) { setting.bind( function( tagline_visibility ) { var desktopTaglineVisibility = ( tagline_visibility['desktop'] ) ? 'block' : 'none'; var tabletTaglineVisibility = ( tagline_visibility['tablet'] ) ? 'block' : 'none'; var mobileTaglineVisibility = ( tagline_visibility['mobile'] ) ? 'block' : 'none'; var tabletBreakPoint = astraBuilderPreview.tablet_break_point || 768, mobileBreakPoint = astraBuilderPreview.mobile_break_point || 544; var dynamicStyle = '.ast-site-title-wrap .site-description { display: ' + desktopTaglineVisibility + ';} @media( max-width: ' + tabletBreakPoint + 'px) { .ast-site-title-wrap .site-description { display: ' + tabletTaglineVisibility + ';} } @media( max-width: ' + mobileBreakPoint + 'px) { .ast-site-title-wrap .site-description { display: ' + mobileTaglineVisibility + ';} }'; astra_add_dynamic_css( 'display-site-tagline-responsive', dynamicStyle ); } ); } ); /* * Full width layout */ wp.customize( 'astra-settings[site-content-width]', function( setting ) { setting.bind( function( width ) { var dynamicStyle = '@media (min-width: 554px) {'; dynamicStyle += '.ast-container, .fl-builder #content .entry-header { max-width: ' + ( 40 + parseInt( width ) ) + 'px } '; dynamicStyle += '}'; if ( jQuery( 'body' ).hasClass( 'ast-page-builder-template' ) ) { dynamicStyle += '@media (min-width: 554px) {'; dynamicStyle += '.ast-page-builder-template .comments-area { max-width: ' + ( 40 + parseInt( width ) ) + 'px } '; dynamicStyle += '}'; } astra_add_dynamic_css( 'site-content-width', dynamicStyle ); } ); } ); /* * Full width layout */ wp.customize( 'astra-settings[header-main-menu-label]', function( setting ) { setting.bind( function( label ) { if( $('button.main-header-menu-toggle .mobile-menu-wrap .mobile-menu').length > 0 ) { if ( label != '' ) { $('button.main-header-menu-toggle .mobile-menu-wrap .mobile-menu').text(label); } else { $('button.main-header-menu-toggle .mobile-menu-wrap').remove(); } } else { var html = $('button.main-header-menu-toggle').html(); if( '' != label ) { html += '<div class="mobile-menu-wrap"><span class="mobile-menu">'+ label +'</span> </div>'; } $('button.main-header-menu-toggle').html( html ) } } ); } ); /** * Apply content bg responsive css with specified selector. * @param {string} selector * @returns {void} */ const apply_content_bg = ( selector ) => { astra_apply_responsive_background_css( 'astra-settings[content-bg-obj-responsive]', selector, 'desktop' ); astra_apply_responsive_background_css( 'astra-settings[content-bg-obj-responsive]', selector, 'tablet' ); astra_apply_responsive_background_css( 'astra-settings[content-bg-obj-responsive]', selector, 'mobile' ); } /* * Layout Body Background */ astra_apply_responsive_background_css( 'astra-settings[site-layout-outside-bg-obj-responsive]', 'body, .ast-separate-container', 'desktop' ); astra_apply_responsive_background_css( 'astra-settings[site-layout-outside-bg-obj-responsive]', 'body, .ast-separate-container', 'tablet' ); astra_apply_responsive_background_css( 'astra-settings[site-layout-outside-bg-obj-responsive]', 'body, .ast-separate-container', 'mobile' ); if( astraCustomizer.is_content_bg_option_to_load ) { var content_layout = astraCustomizer.content_layout; var site_layout = astraCustomizer.site_layout; var blog_grid = (typeof ( wp.customize._value['astra-settings[blog-grid]'] ) != 'undefined') ? wp.customize._value['astra-settings[blog-grid]']._value : 1; var blog_layout = (typeof ( wp.customize._value['astra-settings[blog-layout]'] ) != 'undefined') ? wp.customize._value['astra-settings[blog-layout]']._value : 'blog-layout-1'; var dynamicSelector = '.ast-separate-container .ast-article-single:not(.ast-related-post), .ast-separate-container .comments-area .comment-respond,.ast-separate-container .comments-area .ast-comment-list li, .ast-separate-container .ast-woocommerce-container, .ast-separate-container .error-404, .ast-separate-container .no-results, .single.ast-separate-container .site-main .ast-author-meta, .ast-separate-container .related-posts, .ast-separate-container .comments-count-wrapper, .ast-separate-container .comments-area .comments-title, .ast-single-related-posts-container, .ast-plain-container, .site-content article .ast-article-inner'; if( 'blog-layout-1' == blog_layout && 1 != blog_grid ) { dynamicSelector += ', .ast-separate-container .ast-article-inner'; } /** * Content background color */ if( 'boxed-container' == content_layout ) { // Case: Container -> Boxed, Site-Layout -> Any. dynamicSelector += ', .ast-separate-container.ast-two-container #secondary .widget'; apply_content_bg(dynamicSelector); } else if ( 'content-boxed-container' == content_layout ) { // Case: Container -> Content-Boxed, Site-Layout -> Any. apply_content_bg(dynamicSelector); } else if ( astraCustomizer.apply_content_bg_fullwidth_layouts && ( 'ast-box-layout' === site_layout || 'ast-padded-layout' === site_layout ) && ( 'plain-container' === content_layout ) ) { // Case: Container -> FW Contained, Site-Layout -> Max, Padded. var fullWidthLayoutSelector = '.ast-box-layout.ast-plain-container .site-content, .ast-padded-layout.ast-plain-container .site-content'; apply_content_bg(fullWidthLayoutSelector); } else if ( astraCustomizer.apply_content_bg_fullwidth_layouts && ('plain-container' === content_layout ) ) { // Case: Container -> FW Contained, Site-Layout -> Full-Width, Theme default. dynamicSelector += ', .ast-plain-container .site-content'; apply_content_bg(dynamicSelector); } else if ( astraCustomizer.apply_content_bg_fullwidth_layouts && ( 'page-builder' == content_layout ) && ( 'ast-box-layout' !== site_layout && 'ast-padded-layout' !== site_layout ) ) { // Case: Container -> FW Stretched, Site-Layout -> Full-Width, Theme default. dynamicSelector += ', .ast-page-builder-template .site-content'; apply_content_bg(dynamicSelector); } } wp.customize( 'astra-settings[content-bg-obj-responsive]', function( setting ) { setting.bind( function( color ) { if ( 'narrow-container' == content_layout ) { wp.customize.preview.send( 'refresh' ); } } ); } ); /* * Blog Custom Width */ wp.customize( 'astra-settings[blog-max-width]', function( setting ) { setting.bind( function( width ) { var dynamicStyle = '@media all and ( min-width: 921px ) {'; if ( ! jQuery( 'body' ).hasClass( 'ast-woo-shop-archive' ) ) { dynamicStyle += '.blog .site-content > .ast-container,.archive .site-content > .ast-container{ max-width: ' + ( parseInt( width ) ) + 'px } '; } if ( jQuery( 'body' ).hasClass( 'ast-fluid-width-layout' ) ) { dynamicStyle += '.blog .site-content > .ast-container,.archive .site-content > .ast-container{ padding-left:20px; padding-right:20px; } '; } dynamicStyle += '}'; astra_add_dynamic_css( 'blog-max-width', dynamicStyle ); } ); } ); /* * Single Blog Custom Width */ wp.customize( 'astra-settings[blog-single-max-width]', function( setting ) { setting.bind( function( width ) { var dynamicStyle = '@media all and ( min-width: 921px ) {'; dynamicStyle += '.single-post .site-content > .ast-container{ max-width: ' + ( 40 + parseInt( width ) ) + 'px } '; if ( jQuery( 'body' ).hasClass( 'ast-fluid-width-layout' ) ) { dynamicStyle += '.single-post .site-content > .ast-container{ padding-left:20px; padding-right:20px; } '; } dynamicStyle += '}'; astra_add_dynamic_css( 'blog-single-max-width', dynamicStyle ); } ); } ); /* * Single Blog Custom Width */ wp.customize( 'astra-settings[page-single-max-width]', function( setting ) { setting.bind( function( width ) { var dynamicStyle = '@media all and ( min-width: 921px ) {'; dynamicStyle += '.page .site-content > .ast-container{ max-width: ' + ( 40 + parseInt( width ) ) + 'px } '; dynamicStyle += '}'; astra_add_dynamic_css( 'page-single-max-width', dynamicStyle ); } ); } ); /* * EDD Archive Custom Width */ wp.customize( 'astra-settings[edd-archive-max-width]', function( setting ) { setting.bind( function( width ) { var dynamicStyle = '.ast-edd-archive-page .site-content > .ast-container { max-width: ' + parseInt( width ) + 'px } '; astra_add_dynamic_css( 'edd-archive-max-width', dynamicStyle ); } ); } ); /** * Primary Width Option */ wp.customize( 'astra-settings[site-sidebar-width]', function( setting ) { setting.bind( function( width ) { if ( ! jQuery( 'body' ).hasClass( 'ast-no-sidebar' ) && width >= 15 && width <= 50 ) { var dynamicStyle = '@media (min-width: 769px) {'; dynamicStyle += '#primary { width: ' + ( 100 - parseInt( width ) ) + '% } '; dynamicStyle += '#secondary { width: ' + width + '% } '; dynamicStyle += '}'; astra_add_dynamic_css( 'site-sidebar-width', dynamicStyle ); } } ); } ); /** * Header Bottom Border */ wp.customize( 'astra-settings[header-main-sep]', function( setting ) { setting.bind( function( border ) { var dynamicStyle = 'body.ast-header-break-point .main-header-bar { border-bottom-width: ' + border + 'px }'; dynamicStyle += '.ast-desktop .main-header-bar {'; dynamicStyle += 'border-bottom-width: ' + border + 'px'; dynamicStyle += '}'; astra_add_dynamic_css( 'header-main-sep', dynamicStyle ); } ); } ); /** * Small Footer Top Border */ wp.customize( 'astra-settings[footer-sml-divider]', function( value ) { value.bind( function( border_width ) { jQuery( '.ast-small-footer' ).css( 'border-top-width', border_width + 'px' ); } ); } ); /** * Footer Widget Top Border */ wp.customize( 'astra-settings[footer-adv-border-width]', function( value ) { value.bind( function( border_width ) { jQuery( '.footer-adv .footer-adv-overlay' ).css( 'border-top-width', border_width + 'px' ); } ); } ); wp.customize( 'astra-settings[footer-adv-border-color]', function( value ) { value.bind( function( border_color ) { jQuery( '.footer-adv .footer-adv-overlay' ).css( 'border-top-color', border_color ); } ); } ); /** * Small Footer Top Border Color */ wp.customize( 'astra-settings[footer-sml-divider-color]', function( value ) { value.bind( function( border_color ) { jQuery( '.ast-small-footer' ).css( 'border-top-color', border_color ); } ); } ); // WooCommerce global button compatibility for new users only. const woo_btn_normal_sector = astraCustomizer.astra_woo_btn_global_compatibility ? ', .woocommerce a.button, .woocommerce .widget_price_filter .button, .woocommerce button.button, [CLASS*="wc-block"] button' : ''; const woo_btn_hover_sector = astraCustomizer.astra_woo_btn_global_compatibility ? ', .woocommerce a.button:hover, .woocommerce .widget_price_filter .button:hover, .woocommerce button.button:hover, [CLASS*="wc-block"] button:hover' : ''; // LifterLMS customizer compatibility selector. const lifterLMSBtnSelector = astraCustomizer.isLifterLMS ? ', .lifterlms a.llms-button-primary, .lifterlms a.llms-button-secondary, .lifterlms .llms-button-action, .lifterlms button.llms-field-button, .lifterlms a.llms-field-button' : ''; const lifterLMSBtnHSelector = astraCustomizer.isLifterLMS ? ', .lifterlms a.llms-button-primary:hover, .lifterlms a.llms-button-primary:focus, .lifterlms a.llms-button-secondary:hover, .lifterlms a.llms-button-secondary:focus, .lifterlms .llms-button-action:hover, .lifterlms .llms-button-action:focus, .lifterlms button.llms-field-button:hover, .lifterlms button.llms-field-button:focus, .lifterlms a.llms-field-button:hover, .lifterlms a.llms-field-button:focus' : ''; /** * Button Border Radius Fields */ wp.customize( 'astra-settings[button-radius-fields]', function( setting ) { setting.bind( function( border ) { let tabletBreakPoint = astraBuilderPreview.tablet_break_point || 768, mobileBreakPoint = astraBuilderPreview.mobile_break_point || 544; let search_button_selector = hasWordPressWidgetBlockEditor() ? ', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button' : '' ; let lmsButtonSelectors = ', body #ld_course_list .btn, body a.btn-blue, body a.btn-blue:visited, body a#quiz_continue_link, body .btn-join, body .learndash_checkout_buttons input.btn-join[type="button"], body #btn-join, body .learndash_checkout_buttons input.btn-join[type="submit"], body .wpProQuiz_content .wpProQuiz_button2, a.llms-button-primary, .llms-button-secondary, .llms-button-action, .llms-field-button, .llms-button-action.large'; let globalSelector = '.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .wp-block-button:not(.is-style-outline) .wp-block-button__link' + astraCustomizer.v4_2_2_core_form_btns_styling + lmsButtonSelectors + search_button_selector + woo_btn_normal_sector + lifterLMSBtnSelector; if ( document.body.classList.contains('edd-page' ) ) { globalSelector += ', .ast-edd-site-header-cart .widget_edd_cart_widget .edd_checkout a, .widget_edd_cart_widget .edd_checkout a '; } let dynamicStyle = globalSelector + '{ border-top-left-radius :' + border['desktop']['top'] + border['desktop-unit'] + '; border-bottom-right-radius :' + border['desktop']['bottom'] + border['desktop-unit'] + '; border-bottom-left-radius :' + border['desktop']['left'] + border['desktop-unit'] + '; border-top-right-radius :' + border['desktop']['right'] + border['desktop-unit'] + '; } '; dynamicStyle += '@media (max-width: ' + tabletBreakPoint + 'px) { ' + globalSelector + '{ border-top-left-radius :' + border['tablet']['top'] + border['tablet-unit'] + '; border-bottom-right-radius :' + border['tablet']['bottom'] + border['tablet-unit'] + '; border-bottom-left-radius :' + border['tablet']['left'] + border['tablet-unit'] + '; border-top-right-radius :' + border['tablet']['right'] + border['tablet-unit'] + '; } } '; dynamicStyle += '@media (max-width: ' + mobileBreakPoint + 'px) { ' + globalSelector + '{ border-top-left-radius :' + border['mobile']['top'] + border['mobile-unit'] + '; border-bottom-right-radius :' + border['mobile']['bottom'] + border['mobile-unit'] + '; border-bottom-left-radius :' + border['mobile']['left'] + border['mobile-unit'] + '; border-top-right-radius :' + border['mobile']['right'] + border['mobile-unit'] + '; } } '; astra_add_dynamic_css( 'button-radius', dynamicStyle ); } ); } ); /** * Button Border Radius Fields */ wp.customize( 'astra-settings[secondary-button-radius-fields]', function( setting ) { setting.bind( function( border ) { let tabletBreakPoint = astraBuilderPreview.tablet_break_point || 768, mobileBreakPoint = astraBuilderPreview.mobile_break_point || 544; if( "" === border ) { return; } let globalSelector = '.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button'; let dynamicStyle = globalSelector + '{ border-top-left-radius :' + border['desktop']['top'] + border['desktop-unit'] + '; border-bottom-right-radius :' + border['desktop']['bottom'] + border['desktop-unit'] + '; border-bottom-left-radius :' + border['desktop']['left'] + border['desktop-unit'] + '; border-top-right-radius :' + border['desktop']['right'] + border['desktop-unit'] + '; } '; dynamicStyle += '@media (max-width: ' + tabletBreakPoint + 'px) { ' + globalSelector + '{ border-top-left-radius :' + border['tablet']['top'] + border['tablet-unit'] + '; border-bottom-right-radius :' + border['tablet']['bottom'] + border['tablet-unit'] + '; border-bottom-left-radius :' + border['tablet']['left'] + border['tablet-unit'] + '; border-top-right-radius :' + border['tablet']['right'] + border['tablet-unit'] + '; } } '; dynamicStyle += '@media (max-width: ' + mobileBreakPoint + 'px) { ' + globalSelector + '{ border-top-left-radius :' + border['mobile']['top'] + border['mobile-unit'] + '; border-bottom-right-radius :' + border['mobile']['bottom'] + border['mobile-unit'] + '; border-bottom-left-radius :' + border['mobile']['left'] + border['mobile-unit'] + '; border-top-right-radius :' + border['mobile']['right'] + border['mobile-unit'] + '; } } '; astra_add_dynamic_css( 'secondary-button-radius', dynamicStyle ); } ); } ); /** * Header Bottom Border width */ wp.customize( 'astra-settings[header-main-sep]', function( value ) { value.bind( function( border ) { var dynamicStyle = ' body.ast-header-break-point .main-header-bar { border-bottom-width: ' + border + 'px } '; dynamicStyle += '.ast-desktop .main-header-bar {'; dynamicStyle += 'border-bottom-width: ' + border + 'px'; dynamicStyle += '}'; astra_add_dynamic_css( 'header-main-sep', dynamicStyle ); } ); } ); /** * Header Bottom Border color */ wp.customize( 'astra-settings[header-main-sep-color]', function( value ) { value.bind( function( color ) { if (color == '') { wp.customize.preview.send( 'refresh' ); } if ( color ) { var dynamicStyle = ' .ast-desktop .main-header-bar { border-bottom-color: ' + color + '; } '; dynamicStyle += ' body.ast-header-break-point .main-header-bar { border-bottom-color: ' + color + '; } '; astra_add_dynamic_css( 'header-main-sep-color', dynamicStyle ); } } ); } ); /** * Primary Toggle Button Color */ wp.customize( 'astra-settings[mobile-header-toggle-btn-style-color]', function( setting ) { setting.bind( function( toggle_button_color ) { if ( toggle_button_color != '' ) { if( jQuery( '.menu-toggle' ).hasClass( 'ast-mobile-menu-buttons-fill' ) ) { var dynamicStyle = '.ast-header-break-point .ast-mobile-menu-buttons-fill.menu-toggle { background: ' + toggle_button_color + '}'; } else if( jQuery( '.menu-toggle' ).hasClass( 'ast-mobile-menu-buttons-outline' ) ) { var dynamicStyle = '.ast-header-break-point .ast-mobile-menu-buttons-outline.menu-toggle { border: 1px solid ' + toggle_button_color + '; color: ' + toggle_button_color + '}'; } else { var dynamicStyle = '.ast-header-break-point .ast-mobile-menu-buttons-minimal.menu-toggle { color: ' + toggle_button_color + '}'; } astra_add_dynamic_css( 'primary-toggle-button-color', dynamicStyle ); } else{ wp.customize.preview.send( 'refresh' ); } }); }); astra_responsive_font_size( 'astra-settings[font-size-site-tagline]', '.ast-sg-logo-section .site-description, .site-header .site-description' ); astra_responsive_font_size( 'astra-settings[font-size-site-title]', '.site-title' ); astra_responsive_font_size( 'astra-settings[font-size-page-title]', 'body:not(.ast-single-post) .entry-title' ); astra_responsive_font_size( 'astra-settings[font-size-post-meta]', '.entry-meta, .read-more' ); astra_responsive_font_size( 'astra-settings[font-size-post-tax]', '.ast-blog-single-element.ast-taxonomy-container a' ); astra_refresh_customizer( 'astra-settings[blog-meta-category-style]' ); astra_refresh_customizer( 'astra-settings[blog-category-style]' ); astra_refresh_customizer( 'astra-settings[blog-tag-style]' ); astra_refresh_customizer( 'astra-settings[blog-post-meta-divider-type]' ); astra_refresh_customizer( 'astra-settings[blog-meta-tag-style]' ); astra_refresh_customizer( 'astra-settings[blog-post-content]' ); wp.customize( 'astra-settings[post-card-border-radius]', function( setting ) { setting.bind( function( border ) { let desktopTop = border['desktop']['top'] ? border['desktop']['top'] : 0, desktopBottom = border['desktop']['bottom'] ? border['desktop']['bottom'] : 0, desktopLeft = border['desktop']['left'] ? border['desktop']['left'] : 0, desktopRight = border['desktop']['right'] ? border['desktop']['right'] : 0, tabletTop = border['tablet']['top'] ? border['tablet']['top'] : 0, tabletBottom = border['tablet']['bottom'] ? border['tablet']['bottom'] : 0, tabletLeft = border['tablet']['left'] ? border['tablet']['left'] : 0, tabletRight = border['tablet']['right'] ? border['tablet']['right'] : 0, mobileTop = border['mobile']['top'] ? border['mobile']['top'] : 0, mobileBottom = border['mobile']['bottom'] ? border['mobile']['bottom'] : 0, mobileLeft = border['mobile']['left'] ? border['mobile']['left'] : 0, mobileRight = border['mobile']['right'] ? border['mobile']['right'] : 0; let tabletBreakPoint = astraBuilderPreview.tablet_break_point || 921, mobileBreakPoint = astraBuilderPreview.mobile_break_point || 544, blog_layout = (typeof ( wp.customize._value['astra-settings[blog-layout]'] ) != 'undefined') ? wp.customize._value['astra-settings[blog-layout]']._value : 'blog-layout-1'; let globalSelector = 'blog-layout-5' === blog_layout ? '.archive .ast-article-post, .blog .ast-article-post, .archive .ast-article-post:hover, .blog .ast-article-post:hover' : '.archive .ast-article-post .ast-article-inner, .blog .ast-article-post .ast-article-inner, .archive .ast-article-post .ast-article-inner:hover, .blog .ast-article-post .ast-article-inner:hover'; let dynamicStyle = globalSelector + '{ border-top-left-radius :' + desktopTop + border['desktop-unit'] + '; border-bottom-right-radius :' + desktopBottom + border['desktop-unit'] + '; border-bottom-left-radius :' + desktopLeft + border['desktop-unit'] + '; border-top-right-radius :' + desktopRight + border['desktop-unit'] + '; } '; dynamicStyle += '@media (max-width: ' + tabletBreakPoint + 'px) { ' + globalSelector + '{ border-top-left-radius :' + tabletTop + border['tablet-unit'] + '; border-bottom-right-radius :' + tabletBottom + border['tablet-unit'] + '; border-bottom-left-radius :' + tabletLeft + border['tablet-unit'] + '; border-top-right-radius :' + tabletRight + border['tablet-unit'] + '; } } '; dynamicStyle += '@media (max-width: ' + mobileBreakPoint + 'px) { ' + globalSelector + '{ border-top-left-radius :' + mobileTop + border['mobile-unit'] + '; border-bottom-right-radius :' + mobileBottom + border['mobile-unit'] + '; border-bottom-left-radius :' + mobileLeft + border['mobile-unit'] + '; border-top-right-radius :' + mobileRight + border['mobile-unit'] + '; } } '; astra_add_dynamic_css( 'post-card-border-radius', dynamicStyle ); } ); } ); astra_css( 'astra-settings[post-card-featured-overlay]', 'background-color', '.ast-blog-layout-6-grid .ast-article-inner .post-thumb::after' ); // Check if anchors should be loaded in the CSS for headings. if (true == astraCustomizer.includeAnchorsInHeadindsCss) { astra_responsive_font_size('astra-settings[font-size-h1]', 'h1, .entry-content h1, .entry-content h1 a', true, '.ast-sg-typo-field[data-for="h1"] .ast-sg-font-size'); astra_responsive_font_size('astra-settings[font-size-h2]', 'h2, .entry-content h2, .entry-content h2 a', true, '.ast-sg-typo-field[data-for="h2"] .ast-sg-font-size'); astra_responsive_font_size('astra-settings[font-size-h3]', 'h3, .entry-content h3, .entry-content h3 a', true, '.ast-sg-typo-field[data-for="h3"] .ast-sg-font-size'); astra_responsive_font_size('astra-settings[font-size-h4]', 'h4, .entry-content h4, .entry-content h4 a', true, '.ast-sg-typo-field[data-for="h4"] .ast-sg-font-size'); astra_responsive_font_size('astra-settings[font-size-h5]', 'h5, .entry-content h5, .entry-content h5 a', true, '.ast-sg-typo-field[data-for="h5"] .ast-sg-font-size'); astra_responsive_font_size('astra-settings[font-size-h6]', 'h6, .entry-content h6, .entry-content h6 a', true, '.ast-sg-typo-field[data-for="h6"] .ast-sg-font-size'); } else { astra_responsive_font_size('astra-settings[font-size-h1]', 'h1, .entry-content h1', true, '.ast-sg-typo-field[data-for="h1"] .ast-sg-font-size'); astra_responsive_font_size('astra-settings[font-size-h2]', 'h2, .entry-content h2', true, '.ast-sg-typo-field[data-for="h2"] .ast-sg-font-size'); astra_responsive_font_size('astra-settings[font-size-h3]', 'h3, .entry-content h3', true, '.ast-sg-typo-field[data-for="h3"] .ast-sg-font-size'); astra_responsive_font_size('astra-settings[font-size-h4]', 'h4, .entry-content h4', true, '.ast-sg-typo-field[data-for="h4"] .ast-sg-font-size'); astra_responsive_font_size('astra-settings[font-size-h5]', 'h5, .entry-content h5', true, '.ast-sg-typo-field[data-for="h5"] .ast-sg-font-size'); astra_responsive_font_size('astra-settings[font-size-h6]', 'h6, .entry-content h6', true, '.ast-sg-typo-field[data-for="h6"] .ast-sg-font-size'); } // paragraph margin bottom. wp.customize( 'astra-settings[para-margin-bottom]', function( value ) { value.bind( function( marginBottom ) { if ( marginBottom == '' ) { wp.customize.preview.send( 'refresh' ); } if ( marginBottom ) { var dynamicStyle = ' p, .entry-content p { margin-bottom: ' + marginBottom + 'em; } '; astra_add_dynamic_css( 'para-margin-bottom', dynamicStyle ); } } ); } ); // Add preview underline in customizer for content links. wp.customize( 'astra-settings[underline-content-links]', function( setting ) { setting.bind( function( value ) { var dynamicStyle = ''; if ( value ) { dynamicStyle = '.ast-single-post .entry-content a, .ast-comment-content a:not(.ast-comment-edit-reply-wrap a), .woocommerce-js .woocommerce-product-details__short-description a { text-decoration: underline; } '; astra_add_dynamic_css( 'underline-content-links', dynamicStyle ); } else { dynamicStyle = '.ast-single-post .entry-content a, .ast-comment-content a:not(.ast-comment-edit-reply-wrap a), .woocommerce-js .woocommerce-product-details__short-description a { text-decoration: unset; } '; astra_add_dynamic_css( 'underline-content-links', dynamicStyle ); } } ); } ); if ( astraCustomizer.page_builder_button_style_css ) { if (true == astraCustomizer.includeAnchorsInHeadindsCss) { if ( 'color-typo' == astraCustomizer.elementor_default_color_font_setting || 'typo' == astraCustomizer.elementor_default_color_font_setting ) { astra_css('astra-settings[headings-line-height]', 'line-height', '.elementor-widget-heading h1.elementor-heading-title, .elementor-widget-heading h2.elementor-heading-title, .elementor-widget-heading h3.elementor-heading-title, .elementor-widget-heading h4.elementor-heading-title, .elementor-widget-heading h5.elementor-heading-title, .elementor-widget-heading h6.elementor-heading-title'); } astra_css('astra-settings[headings-line-height]', 'line-height', 'h1, .entry-content h1, .entry-content h1 a, h2, .entry-content h2, .entry-content h2 a, h3, .entry-content h3, .entry-content h3 a, h4, .entry-content h4, .entry-content h4 a, h5, .entry-content h5, .entry-content h5 a, h6, .entry-content h6, .entry-content h6 a, .site-title, .site-title a'); } else { if ( 'color-typo' == astraCustomizer.elementor_default_color_font_setting || 'typo' == astraCustomizer.elementor_default_color_font_setting ) { astra_css('astra-settings[headings-line-height]', 'line-height', '.elementor-widget-heading h1.elementor-heading-title, .elementor-widget-heading h2.elementor-heading-title, .elementor-widget-heading h3.elementor-heading-title, .elementor-widget-heading h4.elementor-heading-title, .elementor-widget-heading h5.elementor-heading-title, .elementor-widget-heading h6.elementor-heading-title'); } astra_css('astra-settings[headings-line-height]', 'line-height', 'h1, .entry-content h1, h2, .entry-content h2, h3, .entry-content h3, h4, .entry-content h4, h5, .entry-content h5, h6, .entry-content h6, .site-title, .site-title a'); } } else { if (true == astraCustomizer.includeAnchorsInHeadindsCss) { astra_css('astra-settings[headings-line-height]', 'line-height', 'h1, .entry-content h1, .entry-content h1 a, h2, .entry-content h2, .entry-content h2 a, h3, .entry-content h3, .entry-content h3 a, h4, .entry-content h4, .entry-content h4 a, h5, .entry-content h5, .entry-content h5 a, h6, .entry-content h6, .entry-content h6 a, .site-title, .site-title a'); } else { astra_css('astra-settings[headings-line-height]', 'line-height', 'h1, .entry-content h1, h2, .entry-content h2, h3, .entry-content h3, h4, .entry-content h4, h5, .entry-content h5, h6, .entry-content h6, .site-title, .site-title a'); } } // Check if anchors should be loaded in the CSS for headings. if (true == astraCustomizer.includeAnchorsInHeadindsCss) { astra_generate_outside_font_family_css('astra-settings[headings-font-family]', 'h1, .entry-content h1, .entry-content h1 a, h2, .entry-content h2, .entry-content h2 a, h3, .entry-content h3, .entry-content h3 a, h4, .entry-content h4, .entry-content h4 a, h5, .entry-content h5, .entry-content h5 a, h6, .entry-content h6, .entry-content h6 a, .site-title, .site-title a'); astra_generate_font_weight_css( 'astra-settings[headings-font-family]', 'astra-settings[headings-font-weight]', 'font-weight', 'h1, .entry-content h1, .entry-content h1 a, h2, .entry-content h2, .entry-content h2 a, h3, .entry-content h3, .entry-content h3 a, h4, .entry-content h4, .entry-content h4 a, h5, .entry-content h5, .entry-content h5 a, h6, .entry-content h6, .entry-content h6 a, .site-title, .site-title a' ); astra_font_extras_css( 'headings-font-extras', '.entry-content h1, .entry-content h1 a, h2, .entry-content h2, .entry-content h2 a, h3, .entry-content h3, .entry-content h3 a, h4, .entry-content h4, .entry-content h4 a, h5, .entry-content h5, .entry-content h5 a, h6, .entry-content h6, .entry-content h6 a, .site-title, .site-title a' ); } else { astra_generate_outside_font_family_css('astra-settings[headings-font-family]', 'h1, .entry-content h1, h2, .entry-content h2, h3, .entry-content h3, h4, .entry-content h4, h5, .entry-content h5, h6, .entry-content h6, .site-title, .site-title a'); astra_generate_font_weight_css( 'astra-settings[headings-font-family]', 'astra-settings[headings-font-weight]', 'font-weight', 'h1, .entry-content h1, h2, .entry-content h2, h3, .entry-content h3, h4, .entry-content h4, h5, .entry-content h5, h6, .entry-content h6, .site-title, .site-title a' ); astra_font_extras_css( 'headings-font-extras', '.entry-content h1, h2, .entry-content h2, h3, .entry-content h3, h4, .entry-content h4, h5, .entry-content h5, h6, .entry-content h6, .site-title, .site-title a' ); } // Global link astra_css( 'astra-settings[link-color]', 'color', '.entry-meta, .entry-meta *'); astra_css( 'astra-settings[link-h-color]', 'color', '.read-more a:hover, .entry-meta a:hover, .entry-meta a:hover *'); // Footer Bar. astra_css( 'astra-settings[footer-color]', 'color', '.ast-small-footer' ); astra_css( 'astra-settings[footer-link-color]', 'color', '.ast-small-footer a' ); astra_css( 'astra-settings[footer-link-h-color]', 'color', '.ast-small-footer a:hover' ); // Footer Bar background. wp.customize( 'astra-settings[footer-bg-obj]', function( value ) { value.bind( function( bg_obj ) { var dynamicStyle = ' .ast-small-footer > .ast-footer-overlay { {{css}} }'; astra_background_obj_css( wp.customize, bg_obj, 'footer-bg-obj', dynamicStyle ); } ); } ); // Footer Widgets. astra_css( 'astra-settings[footer-adv-wgt-title-color]', 'color', '.footer-adv .widget-title, .footer-adv .widget-title a' ); astra_css( 'astra-settings[footer-adv-text-color]', 'color', '.footer-adv' ); astra_css( 'astra-settings[footer-adv-link-color]', 'color', '.footer-adv a' ); astra_css( 'astra-settings[footer-adv-link-h-color]', 'color', '.footer-adv a:hover, .footer-adv .no-widget-text a:hover, .footer-adv a:focus, .footer-adv .no-widget-text a:focus' ); // Footer Widget background. wp.customize( 'astra-settings[footer-adv-bg-obj]', function( value ) { value.bind( function( bg_obj ) { var dynamicStyle = ' .footer-adv-overlay { {{css}} }'; astra_background_obj_css( wp.customize, bg_obj, 'footer-adv-bg-obj', dynamicStyle ); } ); } ); /* * Woocommerce Shop Archive Custom Width */ wp.customize( 'astra-settings[shop-archive-max-width]', function( setting ) { setting.bind( function( width ) { var dynamicStyle = '@media all and ( min-width: 921px ) {'; if (!jQuery('body').hasClass('ast-page-builder-template')) { dynamicStyle += '.ast-woo-shop-archive .site-content > .ast-container{ max-width: ' + ( parseInt( width ) ) + 'px } '; } if ( jQuery( 'body' ).hasClass( 'ast-fluid-width-layout' ) ) { dynamicStyle += '.ast-woo-shop-archive .site-content > .ast-container{ padding-left:20px; padding-right:20px; } '; } dynamicStyle += '}'; astra_add_dynamic_css( 'shop-archive-max-width', dynamicStyle ); } ); } ); //[1] Primary Menu Toggle Button Style. wp.customize( 'astra-settings[mobile-header-toggle-btn-style]', function( setting ) { setting.bind( function( icon_style ) { var icon_color = wp.customize('astra-settings[mobile-header-toggle-btn-color]').get(); if ( '' === icon_color && 'fill' === icon_style ) { var dynamicStyle = ' [data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg { fill: #ffffff; } '; astra_add_dynamic_css( 'mobile-header-toggle-btn-style', dynamicStyle ); } else { astra_add_dynamic_css( 'mobile-header-toggle-btn-style', '' ); } var buttons = $(document).find('.ast-mobile-menu-buttons .menu-toggle'); buttons.removeClass('ast-mobile-menu-buttons-default ast-mobile-menu-buttons-fill ast-mobile-menu-buttons-outline'); buttons.removeClass('ast-mobile-menu-buttons-default ast-mobile-menu-buttons-fill ast-mobile-menu-buttons-minimal'); buttons.addClass( 'ast-mobile-menu-buttons-' + icon_style ); var themeColor = wp.customize( 'astra-settings[theme-color]' ).get(); var defaultColor = '#ffffff'; var toggleButtonColor = wp.customize( 'astra-settings[mobile-header-toggle-btn-color]' ).get(); if ( 'fill' !== icon_style ) { defaultColor = themeColor } var iconColor = defaultColor; if ( '' !== toggleButtonColor && undefined !== toggleButtonColor && null !== toggleButtonColor ) { iconColor = toggleButtonColor } var dynamicStyle = '[data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg {'; dynamicStyle += 'fill: ' + iconColor + ';'; dynamicStyle +='}'; dynamicStyle += '[data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-wrap .mobile-menu {'; dynamicStyle += 'color: ' + iconColor + ';'; dynamicStyle +='}'; dynamicStyle += '[data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-fill, [data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-minimal {'; dynamicStyle += 'color: ' + iconColor + ';'; dynamicStyle += 'border: none;'; dynamicStyle +='}'; dynamicStyle += '[data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-outline {'; dynamicStyle += 'color: ' + iconColor + ';'; dynamicStyle +='}'; ; astra_add_dynamic_css( 'mobile-header-toggle-btn-style', dynamicStyle ); } ); } ); //[1] Toggle Button Border Radius. wp.customize( 'astra-settings[mobile-header-toggle-btn-border-radius]', function( setting ) { setting.bind( function( border ) { var dynamicStyle = '.ast-header-break-point .main-header-bar .ast-button-wrap .menu-toggle { border-radius: ' + ( parseInt( border ) ) + 'px } '; astra_add_dynamic_css( 'mobile-header-toggle-btn-border-radius', dynamicStyle ); } ); } ); /** * Primary Submenu border */ wp.customize( 'astra-settings[primary-submenu-border]', function( value ) { value.bind( function( border ) { var color = wp.customize( 'astra-settings[primary-submenu-b-color]' ).get(); if( '' != border.top || '' != border.right || '' != border.bottom || '' != border.left ) { var dynamicStyle = '.ast-desktop .main-header-menu.submenu-with-border .sub-menu'; dynamicStyle += '{'; dynamicStyle += 'border-top-width:' + border.top + 'px;'; dynamicStyle += 'border-right-width:' + border.right + 'px;'; dynamicStyle += 'border-left-width:' + border.left + 'px;'; dynamicStyle += 'border-bottom-width:' + border.bottom + 'px;'; dynamicStyle += 'border-color:' + color + ';'; dynamicStyle += 'border-style: solid;'; dynamicStyle += '}'; dynamicStyle += '.ast-desktop .main-header-menu.submenu-with-border .sub-menu .sub-menu'; dynamicStyle += '{'; dynamicStyle += 'top:-' + border.top + 'px;'; dynamicStyle += '}'; // Submenu items goes outside? dynamicStyle += '@media (min-width: 769px){'; dynamicStyle += '.main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu:hover > .sub-menu, .main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu.focus > .sub-menu'; dynamicStyle += '{'; dynamicStyle += 'margin-left:-' + ( +border.left + +border.right ) + 'px;'; dynamicStyle += '}'; dynamicStyle += '}'; astra_add_dynamic_css( 'primary-submenu-border', dynamicStyle ); } else { wp.customize.preview.send( 'refresh' ); } } ); } ); /** * Primary Submenu border COlor */ wp.customize( 'astra-settings[primary-submenu-b-color]', function( value ) { value.bind( function( color ) { var border = wp.customize( 'astra-settings[primary-submenu-border]' ).get(); if ( '' != color ) { if( '' != border.top || '' != border.right || '' != border.bottom || '' != border.left ) { var dynamicStyle = '.ast-desktop .main-header-menu.submenu-with-border .sub-menu'; dynamicStyle += '{'; dynamicStyle += 'border-top-width:' + border.top + 'px;'; dynamicStyle += 'border-right-width:' + border.right + 'px;'; dynamicStyle += 'border-left-width:' + border.left + 'px;'; dynamicStyle += 'border-bottom-width:' + border.bottom + 'px;'; dynamicStyle += 'border-color:' + color + ';'; dynamicStyle += 'border-style: solid;'; dynamicStyle += '}'; dynamicStyle += '.ast-desktop .main-header-menu.submenu-with-border .sub-menu .sub-menu'; dynamicStyle += '{'; dynamicStyle += 'top:-' + border.top + 'px;'; dynamicStyle += '}'; // Submenu items goes outside? dynamicStyle += '@media (min-width: 769px){'; dynamicStyle += '.main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu:hover > .sub-menu, .main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu.focus > .sub-menu'; dynamicStyle += '{'; dynamicStyle += 'margin-left:-' + ( +border.left + +border.right ) + 'px;'; dynamicStyle += '}'; dynamicStyle += '}'; astra_add_dynamic_css( 'primary-submenu-border-color', dynamicStyle ); } } else { wp.customize.preview.send( 'refresh' ); } } ); } ); /** * Primary Submenu border COlor */ wp.customize('astra-settings[primary-submenu-item-b-color]', function (value) { value.bind(function (color) { var insideBorder = wp.customize('astra-settings[primary-submenu-item-border]').get(); if ('' != color) { if ( true == insideBorder ) { var dynamicStyle = ''; dynamicStyle += '.ast-desktop .main-header-menu.submenu-with-border .sub-menu .menu-link'; dynamicStyle += '{'; dynamicStyle += 'border-bottom-width:' + ( ( true === insideBorder ) ? '1px;' : '0px;' ); dynamicStyle += 'border-color:' + color + ';'; dynamicStyle += 'border-style: solid;'; dynamicStyle += '}'; astra_add_dynamic_css('primary-submenu-item-b-color', dynamicStyle); } } else { wp.customize.preview.send('refresh'); } }); }); /** * Primary Submenu border COlor */ wp.customize( 'astra-settings[primary-submenu-item-border]', function( value ) { value.bind( function( border ) { var color = wp.customize( 'astra-settings[primary-submenu-item-b-color]' ).get(); if( true === border ) { var dynamicStyle = '.ast-desktop .main-header-menu.submenu-with-border .sub-menu .menu-link'; dynamicStyle += '{'; dynamicStyle += 'border-bottom-width:' + ( ( true === border ) ? '1px;' : '0px;' ); dynamicStyle += 'border-color:' + color + ';'; dynamicStyle += 'border-style: solid;'; dynamicStyle += '}'; astra_add_dynamic_css( 'primary-submenu-item-border', dynamicStyle ); } else { wp.customize.preview.send( 'refresh' ); } } ); } ); astra_css( 'astra-settings[header-main-rt-section-button-text-color]', 'color', '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' ); astra_css( 'astra-settings[header-main-rt-section-button-back-color]', 'background-color', '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' ); astra_css( 'astra-settings[header-main-rt-section-button-text-h-color]', 'color', '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button:hover' ); astra_css( 'astra-settings[header-main-rt-section-button-back-h-color]', 'background-color', '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button:hover' ); astra_css( 'astra-settings[header-main-rt-section-button-border-radius]', 'border-radius', '.main-header-bar .ast-container .button-custom-menu-item .ast-custom-button-link .ast-custom-button', 'px' ); astra_css( 'astra-settings[header-main-rt-section-button-border-color]', 'border-color', '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' ); astra_css( 'astra-settings[header-main-rt-section-button-border-h-color]', 'border-color', '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button:hover' ); astra_responsive_spacing( 'astra-settings[header-main-rt-section-button-padding]','.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button', 'padding', ['top', 'right', 'bottom', 'left' ] ); // Header custom button - Typography preview stylings. astra_generate_outside_font_family_css( 'astra-settings[primary-header-button-font-family]', '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' ); astra_responsive_font_size( 'astra-settings[primary-header-button-font-size]', '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' ); astra_css( 'astra-settings[primary-header-button-font-weight]', 'font-weight', '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' ); astra_css( 'astra-settings[primary-header-button-line-height]', 'line-height', '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' ); astra_css( 'astra-settings[primary-header-button-text-transform]', 'text-transform', '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button' ); astra_css( 'astra-settings[primary-header-button-letter-spacing]', 'letter-spacing', '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button', 'px' ); /** * Custom Button border */ wp.customize( 'astra-settings[header-main-rt-section-button-border-size]', function( value ) { value.bind( function( border ) { if( '' != border.top || '' != border.right || '' != border.bottom || '' != border.left ) { var dynamicStyle = '.main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button'; dynamicStyle += '{'; dynamicStyle += 'border-top-width:' + border.top + 'px;'; dynamicStyle += 'border-right-width:' + border.right + 'px;'; dynamicStyle += 'border-left-width:' + border.left + 'px;'; dynamicStyle += 'border-bottom-width:' + border.bottom + 'px;'; dynamicStyle += 'border-style: solid;'; dynamicStyle += '}'; astra_add_dynamic_css( 'header-main-rt-section-button-border-size', dynamicStyle ); } } ); } ); var ele_border_radius_selector = ''; var ele_border_width_selector = ''; var ele_padding_selector = ''; var v4_2_2_btns_styling_hover = ''; var v4_2_2_btns_styling_focus = ''; if ( astraCustomizer.v4_2_2_core_form_btns_styling && '' != astraCustomizer.v4_2_2_core_form_btns_styling ) { v4_2_2_btns_styling_hover = ', #comment .submit:hover, .search .search-submit:hover'; v4_2_2_btns_styling_focus = ', #comment .submit:focus, .search .search-submit:focus'; } if ( astraCustomizer.page_builder_button_style_css ) { if ( 'color-typo' == astraCustomizer.elementor_default_color_font_setting || 'color' == astraCustomizer.elementor_default_color_font_setting || 'font' == astraCustomizer.elementor_default_color_font_setting ) { ele_border_radius_selector = ', .elementor-widget-button .elementor-button.elementor-size-sm, .elementor-widget-button .elementor-button.elementor-size-xs, .elementor-widget-button .elementor-button.elementor-size-md, .elementor-widget-button .elementor-button.elementor-size-lg, .elementor-widget-button .elementor-button.elementor-size-xl, .elementor-widget-button .elementor-button'; ele_border_width_selector = ', .elementor-widget-button .elementor-button, .elementor-widget-button .elementor-button:visited'; ele_padding_selector = ', .elementor-widget-button .elementor-button.elementor-size-sm, .elementor-widget-button .elementor-button.elementor-size-xs, .elementor-widget-button .elementor-button.elementor-size-md, .elementor-widget-button .elementor-button.elementor-size-lg, .elementor-widget-button .elementor-button.elementor-size-xl, .elementor-widget-button .elementor-button'; } } /** * Button border */ wp.customize( 'astra-settings[theme-button-border-group-border-size]', function( value ) { value.bind( function( border ) { var search_button_selector = hasWordPressWidgetBlockEditor() ? ', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button, .woocommerce a.button' : ''; var dynamicStyle = '.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .wp-block-button .wp-block-button__link' + astraCustomizer.v4_2_2_core_form_btns_styling + ele_border_width_selector + search_button_selector + woo_btn_normal_sector + lifterLMSBtnSelector; if( '' != border.top || '' != border.right || '' != border.bottom || '' != border.left ) { if( astraCustomizer.gb_outline_buttons_patterns_support && ! astraCustomizer.updated_gb_outline_button_patterns ) { wp.customize.preview.send( 'refresh' ); } else { dynamicStyle += '{'; dynamicStyle += 'border-top-width:' + border.top + 'px;'; dynamicStyle += 'border-right-width:' + border.right + 'px;'; dynamicStyle += 'border-left-width:' + border.left + 'px;'; dynamicStyle += 'border-bottom-width:' + border.bottom + 'px;'; dynamicStyle += 'border-style: solid;'; dynamicStyle += '}'; astra_add_dynamic_css( 'theme-button-border-group-border-size', dynamicStyle ); } } else { if( astraCustomizer.gb_outline_buttons_patterns_support && ! astraCustomizer.updated_gb_outline_button_patterns ) { wp.customize.preview.send( 'refresh' ); } else { dynamicStyle += '{'; dynamicStyle += 'border-top-width: 0;'; dynamicStyle += 'border-right-width: 0;'; dynamicStyle += 'border-left-width: 0;'; dynamicStyle += 'border-bottom-width: 0;'; dynamicStyle += '}'; astra_add_dynamic_css( 'theme-button-border-group-border-size', dynamicStyle ); } } } ); } ); wp.customize( 'astra-settings[secondary-theme-button-border-group-border-size]', function( value ) { value.bind( function( border ) { var dynamicStyle = '.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button'; if( '' != border.top || '' != border.right || '' != border.bottom || '' != border.left ) { if( astraCustomizer.gb_outline_buttons_patterns_support && ! astraCustomizer.updated_gb_outline_button_patterns ) { wp.customize.preview.send( 'refresh' ); } else { dynamicStyle += '{'; dynamicStyle += 'border-top-width:' + border.top + 'px;'; dynamicStyle += 'border-right-width:' + border.right + 'px;'; dynamicStyle += 'border-left-width:' + border.left + 'px;'; dynamicStyle += 'border-bottom-width:' + border.bottom + 'px;'; dynamicStyle += 'border-style: solid;'; dynamicStyle += '}'; astra_add_dynamic_css( 'secondary-theme-button-border-group-border-size', dynamicStyle ); } } else { if( astraCustomizer.gb_outline_buttons_patterns_support && ! astraCustomizer.updated_gb_outline_button_patterns ) { wp.customize.preview.send( 'refresh' ); } else { dynamicStyle += '{'; dynamicStyle += 'border-top-width: 0;'; dynamicStyle += 'border-right-width: 0;'; dynamicStyle += 'border-left-width: 0;'; dynamicStyle += 'border-bottom-width: 0;'; dynamicStyle += '}'; astra_add_dynamic_css( 'secondary-theme-button-border-group-border-size', dynamicStyle ); } } } ); } ); var search_button_selector = hasWordPressWidgetBlockEditor() ? ', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button' : '' ; // Primary button padding. astra_responsive_spacing( 'astra-settings[theme-button-padding]','.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .woocommerce a.button, .woocommerce button.button, .woocommerce .product a.button, .woocommerce .woocommerce-message a.button, .woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce input.button,.woocommerce input.button:disabled, .woocommerce input.button:disabled[disabled], .wp-block-button .wp-block-button__link' + astraCustomizer.v4_2_2_core_form_btns_styling + ele_padding_selector + search_button_selector + lifterLMSBtnSelector, 'padding', [ 'top', 'bottom'] ); astra_responsive_spacing( 'astra-settings[theme-button-padding]','.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .woocommerce a.button, .woocommerce button.button, .woocommerce .product a.button, .woocommerce .woocommerce-message a.button, .woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce input.button,.woocommerce input.button:disabled, .woocommerce input.button:disabled[disabled], .wp-block-button .wp-block-button__link' + astraCustomizer.v4_2_2_core_form_btns_styling + ele_padding_selector + search_button_selector + lifterLMSBtnSelector, 'padding', [ 'left', 'right' ] ); // Secondary button padding. astra_responsive_spacing( 'astra-settings[secondary-theme-button-padding]','.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button', 'padding', [ 'top', 'bottom' ] ); astra_responsive_spacing( 'astra-settings[secondary-theme-button-padding]','.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button', 'padding', [ 'left', 'right' ] ); /** * Button border */ wp.customize( 'astra-settings[transparent-header-button-border-group]', function( value ) { value.bind( function( value ) { var optionValue = JSON.parse(value); var border = optionValue['header-main-rt-trans-section-button-border-size']; if( '' != border.top || '' != border.right || '' != border.bottom || '' != border.left ) { var dynamicStyle = '.ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button'; dynamicStyle += '{'; dynamicStyle += 'border-top-width:' + border.top + 'px;'; dynamicStyle += 'border-right-width:' + border.right + 'px;'; dynamicStyle += 'border-left-width:' + border.left + 'px;'; dynamicStyle += 'border-bottom-width:' + border.bottom + 'px;'; dynamicStyle += 'border-style: solid;'; dynamicStyle += '}'; astra_add_dynamic_css( 'header-main-rt-trans-section-button-border-size', dynamicStyle ); } } ); } ); // Site Title - Font family astra_generate_outside_font_family_css( 'astra-settings[font-family-site-title]', '.site-title, .site-title a' ); // Site Title - Font Weight astra_generate_font_weight_css( 'astra-settings[font-family-site-title]', 'astra-settings[font-weight-site-title]', 'font-weight', '.site-title, .site-title a' ); // Site Title - Font Size astra_responsive_font_size( 'astra-settings[font-size-site-title]', '.site-title, .site-title a' ); astra_font_extras_css( 'font-extras-site-title', '.site-title, .site-title a' ); // Site tagline - Font family astra_generate_outside_font_family_css( 'astra-settings[font-family-site-tagline]', '.ast-sg-logo-section .site-description, .site-header .site-description' ); // Site Tagline - Font Weight astra_generate_font_weight_css( 'astra-settings[font-family-site-tagline]', 'astra-settings[font-weight-site-tagline]', 'font-weight', '.ast-sg-logo-section .site-description, .site-header .site-description' ); // Site Tagline - Font Size astra_responsive_font_size( 'astra-settings[font-size-site-tagline]', '.ast-sg-logo-section .site-description, .site-header .site-description' ); // Site Tagline - Line Height astra_css( 'astra-settings[line-height-site-tagline]', 'line-height', '.ast-sg-logo-section .site-description, .site-header .site-description' ); // Site Tagline - Text Transform astra_css( 'astra-settings[text-transform-site-tagline]', 'text-transform', '.ast-sg-logo-section .site-description, .site-header .site-description' ); search_button_selector = hasWordPressWidgetBlockEditor() ? ', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button, .woocommerce a.button' : woo_btn_normal_sector ; var search_button_hover_selector = hasWordPressWidgetBlockEditor() ? ', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:hover, form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:focus, .woocommerce a.button:hover' : woo_btn_hover_sector ; //Compatibility with wordpress 6.1.1 const global_builder_btn = '.wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color), .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color)'; const global_builder_btn_hover = ', .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus, .wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover, .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover'; if ( astraCustomizer.page_builder_button_style_css ) { var btn_color_ele = ''; var btn_bg_color_ele = ''; var btn_h_color_ele = ''; var btn_bg_h_color_ele = ''; var btn_border_color_ele = ''; var btn_border_h_color_ele = ''; if ( 'color-typo' == astraCustomizer.elementor_default_color_font_setting || 'color' == astraCustomizer.elementor_default_color_font_setting ) { // Theme Button - Text Color btn_color_ele = ',.elementor-widget-button .elementor-button, .elementor-widget-button .elementor-button:visited'; // Theme Button - Background Color btn_bg_color_ele = ',.elementor-widget-button .elementor-button, .elementor-widget-button .elementor-button:visited'; // Theme Button - Text Hover Color btn_h_color_ele = ',.elementor-widget-button .elementor-button:hover, .elementor-widget-button .elementor-button:focus'; // Theme Button - Background Hover Color btn_bg_h_color_ele = ',.elementor-widget-button .elementor-button:hover, .elementor-widget-button .elementor-button:focus'; // Theme Button - Border Color btn_border_color_ele = ', .elementor-widget-button .elementor-button, .elementor-widget-button .elementor-button:visited'; // Theme Button - Border Hover Color btn_border_h_color_ele = ',.elementor-widget-button .elementor-button:hover, .elementor-widget-button .elementor-button:focus'; } var btnSelector = '.menu-toggle, button, .ast-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .wp-block-button:not(.is-style-outline) .wp-block-button__link, .ast-custom-button' + astraCustomizer.v4_2_2_core_form_btns_styling + btn_bg_color_ele + search_button_selector + woo_btn_normal_sector + lifterLMSBtnSelector; // Secondary button selectors. var btnSecondarySelector = '.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button'; var btnSecondaryColorSelector = '.wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:not(.has-text-color), .wp-block-buttons .wp-block-button.wp-block-button__link.wp-element-button.is-style-outline:not(.has-text-color), .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button'; astraHandleButtonPresetPreview( btnSelector ); // Theme Button - Text Hover Color astra_css( 'astra-settings[button-h-color]', 'color', 'button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .button:hover, input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .wp-block-button .wp-block-button__link:hover, .wp-block-button .wp-block-button__link:focus, .ast-custom-button:hover, .ast-custom-button:focus, .wp-block-button .uagb-buttons-repeater.wp-block-button__link:hover' + v4_2_2_btns_styling_hover + btn_h_color_ele + search_button_hover_selector + global_builder_btn_hover + lifterLMSBtnHSelector, '', true ); // Theme Secondary Button - Text Hover Color astra_css( 'astra-settings[secondary-button-h-color]', 'color', '.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus, .wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover, .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover, .ast-outline:hover, .ast-outline:focus, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button:hover', '', true ); // Theme Button - Background Hover Color astra_css( 'astra-settings[button-bg-h-color]', 'background-color', 'button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .button:hover, input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .wp-block-button .wp-block-button__link:hover, .wp-block-button .wp-block-button__link:focus, .ast-custom-button:hover, .ast-custom-button:focus, .wp-block-button .uagb-buttons-repeater.wp-block-button__link:hover' + v4_2_2_btns_styling_hover + btn_bg_h_color_ele + search_button_hover_selector + global_builder_btn_hover + woo_btn_hover_sector + lifterLMSBtnHSelector ); // Theme Secondary Button - Background Hover Color astra_css( 'astra-settings[secondary-button-bg-h-color]', 'background-color', '.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus, .wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover, .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover, .ast-outline-button:hover, .ast-outline-button:focus, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button:hover' ); astra_css( 'astra-settings[theme-button-border-group-border-color]', 'border-color', '.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .wp-block-button .wp-block-button__link' + astraCustomizer.v4_2_2_core_form_btns_styling + btn_border_color_ele + search_button_selector + ', ' + global_builder_btn + woo_btn_normal_sector + lifterLMSBtnSelector ); // Theme Secondary Button - Border Color astra_css( 'astra-settings[secondary-theme-button-border-group-border-color]', 'border-color', '.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button' ); // Theme Button - Border Hover Color astra_css( 'astra-settings[theme-button-border-group-border-h-color]', 'border-color', 'button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .ast-custom-button:hover, .button:hover, input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .wp-block-button .wp-block-button__link:hover, .wp-block-button .wp-block-button__link:focus' + v4_2_2_btns_styling_hover + v4_2_2_btns_styling_focus + btn_border_h_color_ele + search_button_hover_selector + global_builder_btn_hover + woo_btn_hover_sector + lifterLMSBtnHSelector ); // Theme Secondary Button - Border Hover Color astra_css( 'astra-settings[secondary-theme-button-border-group-border-h-color]', 'border-color', '.wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus, .wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover, .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover, .ast-outline-button:hover, .ast-outline-button:focus, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button:hover' ); } else { var btnSelector = '.menu-toggle, button, .ast-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .ast-custom-button' + search_button_selector + woo_btn_normal_sector + lifterLMSBtnSelector; astraHandleButtonPresetPreview( btnSelector ); // Theme Button - Border Color astra_css( 'astra-settings[button-bg-color]', 'border-color', '.menu-toggle, button, .ast-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .ast-custom-button' + search_button_selector + lifterLMSBtnSelector ); // Theme Button - Text Hover Color astra_css( 'astra-settings[button-h-color]', 'color', 'button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .button:hover, input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .ast-custom-button:hover, .ast-custom-button:focus' + search_button_hover_selector + lifterLMSBtnHSelector ); // Theme Button - Background Hover Color astra_css( 'astra-settings[button-bg-h-color]', 'background-color', 'button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .button:hover, input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .ast-custom-button:hover, .ast-custom-button:focus' + search_button_hover_selector + lifterLMSBtnHSelector ); astra_responsive_spacing( 'astra-settings[theme-button-padding]','.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .woocommerce a.button, .woocommerce button.button, .woocommerce .product a.button, .woocommerce .woocommerce-message a.button, .woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce input.button,.woocommerce input.button:disabled, .woocommerce input.button:disabled[disabled]' + astraCustomizer.v4_2_2_core_form_btns_styling + search_button_selector + lifterLMSBtnSelector, 'padding', [ 'top', 'bottom' ] ); astra_responsive_spacing( 'astra-settings[theme-button-padding]','.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .woocommerce a.button, .woocommerce button.button, .woocommerce .product a.button, .woocommerce .woocommerce-message a.button, .woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce input.button,.woocommerce input.button:disabled, .woocommerce input.button:disabled[disabled]' + astraCustomizer.v4_2_2_core_form_btns_styling + search_button_selector + lifterLMSBtnSelector, 'padding', [ 'left', 'right' ] ); } // Global custom event which triggers when partial refresh occurs. wp.customize.bind('preview-ready', function () { wp.customize.selectiveRefresh.bind('render-partials-response', function (response) { if( response.contents.hasOwnProperty('astra-settings[footer-desktop-items]') || ( ! ( response.contents.hasOwnProperty('astra-settings[header-desktop-items]') || response.contents.hasOwnProperty('astra-settings[header-mobile-items]') ) ) ) { return false; } setTimeout( function () { document.dispatchEvent( new CustomEvent( "astLayoutWidthChanged", { "detail": { 'response' : response } }) ); }, 10 ); }); wp.customize.selectiveRefresh.bind('partial-content-rendered', function (response) { if( response.partial.id.includes("footer") ) { return false; } sessionStorage.setItem('astPartialContentRendered', true); document.dispatchEvent( new CustomEvent( "astPartialContentRendered", { "detail": { 'response' : response } }) ); }); wp.customize.selectiveRefresh.bind('partial-content-rendered', function (response) { wp.customize.preview.send( 'AstraBuilderPartialContentRendered', response ); }); wp.customize.preview.bind( 'astPreviewDeviceChanged', function( device ) { document.dispatchEvent( new CustomEvent( "astPreviewDeviceChanged", { "detail": device }) ); } ); }) /** * Related Posts Query Arguments - Customizer preview support. */ wp.customize( 'astra-settings[related-posts-based-on]', function( setting ) { setting.bind( function() { wp.customize.preview.send( 'refresh' ); } ); } ); wp.customize( 'astra-settings[related-posts-order-by]', function( setting ) { setting.bind( function() { wp.customize.preview.send( 'refresh' ); } ); } ); wp.customize( 'astra-settings[related-posts-order]', function( setting ) { setting.bind( function() { wp.customize.preview.send( 'refresh' ); } ); } ); /** * Related Posts color stylings. */ astra_css( 'astra-settings[related-posts-text-color]', 'color', '.ast-related-post-content .entry-header .ast-related-post-title a, .ast-related-post-content .ast-related-post-excerpt' ); astra_css( 'astra-settings[related-posts-meta-color]', 'color', '.ast-related-post-content .entry-meta, .ast-related-post-content .entry-meta *' ); astra_css( 'astra-settings[related-posts-title-color]', 'color', '.ast-single-related-posts-container .ast-related-posts-title-section .ast-related-posts-title' ); astra_css( 'astra-settings[related-posts-background-color]', 'background-color', '.ast-single-related-posts-container' ); astra_css( 'astra-settings[related-posts-link-color]', 'color', '.ast-related-post-content .ast-related-post-cta a' ); astra_css( 'astra-settings[related-posts-link-hover-color]', 'color', '.ast-related-post-content .ast-related-post-cta a:hover' ); astra_css( 'astra-settings[related-posts-meta-link-hover-color]', 'color', '.ast-related-post-content .entry-meta a:hover, .ast-related-post-content .entry-meta span a span:hover' ); // Related Posts - Customizer preview for Post Title. astra_generate_outside_font_family_css( 'astra-settings[related-posts-title-font-family]', '.ast-related-post-content .entry-header .ast-related-post-title, .ast-related-post-content .entry-header .ast-related-post-title a' ); astra_css( 'astra-settings[related-posts-title-font-weight]', 'font-weight', '.ast-related-post-content .entry-header .ast-related-post-title, .ast-related-post-content .entry-header .ast-related-post-title a' ); astra_responsive_font_size( 'astra-settings[related-posts-title-font-size]', '.ast-related-post-content .entry-header .ast-related-post-title, .ast-related-post-content .entry-header .ast-related-post-title a' ); astra_font_extras_css( 'related-posts-title-font-extras', '.ast-related-post-content .entry-header .ast-related-post-title, .ast-related-post-content .entry-header .ast-related-post-title a' ); // Related Posts - Customizer preview for Section Title. astra_generate_outside_font_family_css( 'astra-settings[related-posts-section-title-font-family]', '.ast-single-related-posts-container .ast-related-posts-title-section .ast-related-posts-title' ); astra_css( 'astra-settings[related-posts-section-title-font-weight]', 'font-weight', '.ast-single-related-posts-container .ast-related-posts-title-section .ast-related-posts-title' ); astra_responsive_font_size( 'astra-settings[related-posts-section-title-font-size]', '.ast-single-related-posts-container .ast-related-posts-title-section .ast-related-posts-title' ); astra_css( 'astra-settings[releted-posts-title-alignment]', 'text-align', '.ast-single-related-posts-container .ast-related-posts-title-section .ast-related-posts-title' ); astra_font_extras_css( 'related-posts-section-title-font-extras', '.ast-single-related-posts-container .ast-related-posts-title-section .ast-related-posts-title' ); // Related Posts - Customizer preview for Post Meta. astra_generate_outside_font_family_css( 'astra-settings[related-posts-meta-font-family]', '.ast-related-post-content .entry-meta, .ast-related-post-content .entry-meta *' ); astra_css( 'astra-settings[related-posts-meta-font-weight]', 'font-weight', '.ast-related-post-content .entry-meta, .ast-related-post-content .entry-meta *' ); astra_responsive_font_size( 'astra-settings[related-posts-meta-font-size]', '.ast-related-post-content .entry-meta, .ast-related-post-content .entry-meta *' ); astra_font_extras_css( 'related-posts-meta-font-extras', '.ast-related-post-content .entry-meta, .ast-related-post-content .entry-meta *' ); // Related Posts - Customizer preview for Post Content. astra_generate_outside_font_family_css( 'astra-settings[related-posts-content-font-family]', '.ast-related-post-content .ast-related-post-excerpt' ); astra_css( 'astra-settings[related-posts-content-font-weight]', 'font-weight', '.ast-related-post-content .ast-related-post-excerpt' ); astra_responsive_font_size( 'astra-settings[related-posts-content-font-size]', '.ast-related-post-content .ast-related-post-excerpt' ); astra_font_extras_css( 'related-posts-content-font-extras', '.ast-related-post-content .ast-related-post-excerpt' ); astra_border_spacing_advanced_css( 'ast-sub-section-related-posts', 'body .site .ast-single-related-posts-container' ); astra_border_spacing_advanced_css( 'ast-sub-section-comments', 'body .site .comments-area' ); // Title Color. astra_css( 'astra-settings[header-color-site-title]', 'color', '.ast-site-identity .site-title a, .ast-site-identity .site-title' ); // Title Hover Color. astra_css( 'astra-settings[header-color-h-site-title]', 'color', '.ast-site-identity .site-title a:hover, .ast-site-identity .site-title:hover' ); // Logo SVG Icon Color. astra_css( 'astra-settings[logo-svg-icon-color]', 'fill', '.site-branding .ast-logo-svg-icon svg' ); // Logo SVG Icon Hover Color. astra_css( 'astra-settings[logo-svg-icon-hover-color]', 'fill', '.site-branding .ast-logo-svg-icon:hover svg' ); // Tagline Color. astra_css( 'astra-settings[header-color-site-tagline]', 'color', '.ast-site-identity .site-description' ); wp.customize( 'astra-settings[related-posts-author-avatar-size]', function( value ) { value.bind( function( size ) { var dynamicStyle = ''; dynamicStyle += '.ast-related-post-content .ast-author-avatar img {'; dynamicStyle += 'width: ' + size + 'px;'; dynamicStyle += 'height: ' + size + 'px;'; dynamicStyle += '} '; astra_add_dynamic_css( 'related-posts-author-avatar-size', dynamicStyle ); } ); } ); astra_generate_outside_font_family_css( 'astra-settings[body-font-family]', 'body, button, input, select, textarea, .ast-button, .ast-custom-button' ); astra_generate_font_weight_css( 'astra-settings[body-font-family]', 'astra-settings[body-font-weight]', 'font-weight', 'body, button, input, select, textarea, .ast-button, .ast-custom-button' ); astra_font_extras_css( 'body-font-extras', 'body, button, input, select, textarea, .ast-button, .ast-custom-button' ); wp.customize('astra-settings[font-size-body]', function (value) { value.bind(function (value) { if ( value.desktop || value.mobile || value.tablet ) { var fontSize = '', control = 'astra-settings[font-size-body]', selector = 'body, button, input, select, textarea, .ast-button, .ast-custom-button', tabletFontSize = '', mobileFontSize = '', css_property = 'font-size', tablet_break_point = 768, mobile_break_point = 544; // Remove <style> first! control = control.replace( '[', '-' ); control = control.replace( ']', '' ); jQuery( 'style#' + control + '-' + css_property ).remove(); if ( '' != value.desktop ) { fontSize = 'font-size: ' + value.desktop + ( undefined == value['desktop-unit'] ? 'px' : value['desktop-unit'] ); } if ( '' != value.tablet ) { tabletFontSize = 'font-size: ' + value.tablet + ( undefined == value['tablet-unit'] ? 'px' : value['tablet-unit'] ); } if ( '' != value.mobile ) { mobileFontSize = 'font-size: ' + value.mobile + ( undefined == value['mobile-unit'] ? 'px' : value['mobile-unit'] ); } // Concat and append new <style>. jQuery( 'head' ).append( '<style id="' + control + '-' + css_property + '">' + selector + ' { ' + fontSize + ' }' + '@media (max-width: ' + tablet_break_point + 'px) {.ast-header-break-point ' + selector + ' { ' + tabletFontSize + ' } }' + '@media (max-width: ' + mobile_break_point + 'px) {.ast-header-break-point ' + selector + ' { ' + mobileFontSize + ' } }' + '</style>' ); } else { jQuery( 'style#' + control + '-font-size' ).remove(); } }); }); astra_refresh_customizer( 'astra-settings[related-metadata-separator]' ); astra_refresh_customizer( 'astra-settings[related-posts-image-ratio-type]' ); astra_refresh_customizer( 'astra-settings[related-posts-image-ratio-pre-scale]' ); astra_refresh_customizer( 'astra-settings[related-posts-image-custom-scale-width]' ); astra_refresh_customizer( 'astra-settings[related-posts-image-custom-scale-height]' ); astra_refresh_customizer( 'astra-settings[related-posts-image-size]' ); astra_refresh_customizer( 'astra-settings[related-posts-author-prefix-label]' ); astra_refresh_customizer( 'astra-settings[related-posts-author-avatar]' ); astra_refresh_customizer( 'astra-settings[related-posts-meta-date-type]' ); astra_refresh_customizer( 'astra-settings[related-posts-date-format]' ); astra_refresh_customizer( 'astra-settings[related-posts-category-style]' ); astra_refresh_customizer( 'astra-settings[related-posts-tag-style]' ); function astraHandleButtonPresetPreview( btnSelector ) { wp.customize( 'astra-settings[button-preset-style]', function( setting ) { setting.bind( function( value ) { var buttonBGColor = wp.customize( 'astra-settings[button-bg-color]' ).get(); var buttonTextColor = wp.customize( 'astra-settings[button-color]' ).get(); var themeColor = wp.customize( 'astra-settings[theme-color]' ).get(); if( 'button_04' === value || 'button_05' === value || 'button_06' === value ) { var buttonBorderColor = wp.customize( 'astra-settings[theme-button-border-group-border-color]' ).get(); if( '' === buttonBorderColor ) { jQuery( 'style#astra-settings-theme-button-border-group-border-color' ).remove(); // Theme Button - Background Color jQuery( 'head' ).append( '<style id="astra-settings-theme-button-border-group-border-color">' + btnSelector + ' { border-color: ' + buttonBGColor + ' }' + '</style>' ); } if( '' === buttonTextColor && '' !== buttonBGColor ) { jQuery( 'style#astra-settings-button-outline-preset-color' ).remove(); jQuery( 'head' ).append( '<style id="astra-settings-button-outline-preset-color">' + btnSelector + ' { color: ' + buttonBGColor + ' }' + '</style>' ); } if( '' === buttonTextColor && '' === buttonBGColor ) { jQuery( 'style#astra-settings-button-outline-preset-color' ).remove(); jQuery( 'head' ).append( '<style id="astra-settings-button-outline-preset-color">' + btnSelector + ' { color: ' + themeColor + ' }' + '</style>' ); } // Remove old. jQuery( 'style#astra-settings-button-preset-style-background-color' ).remove(); // Concat and append new <style>. jQuery( 'head' ).append( '<style id="astra-settings-button-preset-style-background-color">' + btnSelector + ' { background: transparent }' + '</style>' ); } else { jQuery( 'style#astra-settings-button-bg-color-background-color' ).remove(); jQuery( 'style#astra-settings-button-outline-preset-color' ).remove(); if( '' === buttonTextColor && '' === buttonBGColor ) { jQuery( 'head' ).append( '<style id="astra-settings-button-bg-color-background-color">' + btnSelector + ' { background-color: ' + themeColor + ' }' + '</style>' ); } else { // Set background color for button to theme color when value is empty. buttonBGColor = ( '' != buttonBGColor ) ? buttonBGColor : themeColor; // Theme Button - Background Color jQuery( 'head' ).append( '<style id="astra-settings-button-bg-color-background-color">' + btnSelector + ' { background-color: ' + buttonBGColor + ' }' + '</style>' ); } if( '' === buttonTextColor ) { // Set button text color to white when value is empty. jQuery( 'head' ).append( '<style id="astra-settings-button-outline-preset-color">' + btnSelector + ' { color: #FFFFFF; }' + '</style>' ); jQuery( 'style#astra-settings-button-color-color' ).remove(); } } } ); } ); wp.customize( 'astra-settings[secondary-button-preset-style]', function( setting ) { var btnBgColorSelector = '.wp-block-buttons .wp-block-button .wp-block-button__link.is-style-outline:not(.has-background), .wp-block-buttons .wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background), .ast-outline-button'; setting.bind( function( value ) { var buttonBGColor = wp.customize( 'astra-settings[secondary-button-bg-color]' ).get(); var buttonTextColor = wp.customize( 'astra-settings[secondary-button-color]' ).get(); var themeColor = wp.customize( 'astra-settings[theme-color]' ).get(); if( 'button_04' === value || 'button_05' === value || 'button_06' === value ) { var buttonBorderColor = wp.customize( 'astra-settings[secondary-theme-button-border-group-border-color]' ).get(); if( '' === buttonBorderColor ) { jQuery( 'style#astra-settings-secondary-theme-button-border-group-border-color' ).remove(); // Theme Button - Background Color jQuery( 'head' ).append( '<style id="astra-settings-secondary-theme-button-border-group-border-color">' + btnSecondarySelector + ' { border-color: ' + buttonBGColor + ' }' + '</style>' ); } if( '' === buttonTextColor && '' !== buttonBGColor ) { jQuery( 'style#astra-settings-secondary-button-outline-preset-color' ).remove(); jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-outline-preset-color">' + btnSecondaryColorSelector + ' { color: ' + buttonBGColor + ' }' + '</style>' ); } if( '' === buttonTextColor && '' === buttonBGColor ) { jQuery( 'style#astra-settings-secondary-button-outline-preset-color' ).remove(); jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-outline-preset-color">' + btnSecondaryColorSelector + ' { color: ' + themeColor + ' }' + '</style>' ); } // Remove old. jQuery( 'style#astra-settings-secondary-button-preset-style-background-color' ).remove(); // Concat and append new <style>. jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-preset-style-background-color">' + btnBgColorSelector + ' { background: transparent }' + '</style>' ); } else { jQuery( 'style#astra-settings-secondary-button-bg-color-background-color' ).remove(); jQuery( 'style#astra-settings-secondary-button-outline-preset-color' ).remove(); if( '' === buttonTextColor && '' === buttonBGColor ) { jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-bg-color-background-color">' + btnBgColorSelector + ' { background-color: ' + themeColor + ' }' + '</style>' ); } else { // Set background color for button to theme color when value is empty. buttonBGColor = ( '' != buttonBGColor ) ? buttonBGColor : themeColor; // Theme Button - Background Color jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-bg-color-background-color">' + btnBgColorSelector + ' { background-color: ' + buttonBGColor + ' }' + '</style>' ); } if( '' === buttonTextColor ) { // Set button text color to white when value is empty. jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-outline-preset-color">' + btnSecondaryColorSelector + ' { color: #FFFFFF; }' + '</style>' ); jQuery( 'style#astra-settings-secondary-button-color-color' ).remove(); } // Clear preset. if ( '' === value ) { wp.customize.preview.send( 'refresh' ); } } } ); } ); wp.customize( 'astra-settings[button-color]', function( setting ) { setting.bind( function( value ) { if( '' === value ) { var buttonPreset = wp.customize( 'astra-settings[button-preset-style]' ).get(); // If button has outline preset. if( 'button_04' === buttonPreset || 'button_05' === buttonPreset || 'button_06' === buttonPreset ) { var buttonBGColor = wp.customize( 'astra-settings[button-bg-color]' ).get(); jQuery( 'style#astra-settings-button-outline-color' ).remove(); // Theme Button - Background Color jQuery( 'head' ).append( '<style id="astra-settings-button-color-color">' + btnSelector + ' { color: ' + buttonBGColor + ' }' + '</style>' ); } else { jQuery( 'style#astra-settings-button-color-color' ).remove(); // Theme Button - Background Color jQuery( 'head' ).append( '<style id="astra-settings-button-color-color">' + btnSelector + ' { color: #FFFFFF }' + '</style>' ); } } else { jQuery( 'style#astra-settings-button-color-color' ).remove(); // Theme Button - Background Color jQuery( 'head' ).append( '<style id="astra-settings-button-color-color">' + btnSelector + ' { color: ' + value + ' }' + '</style>' ); } } ); } ); wp.customize( 'astra-settings[secondary-button-color]', function( setting ) { setting.bind( function( value ) { if( '' === value ) { var buttonPreset = wp.customize( 'astra-settings[secondary-button-preset-style]' ).get(); var themeColor = wp.customize( 'astra-settings[theme-color]' ).get(); // If button has outline preset. if( 'button_04' === buttonPreset || 'button_05' === buttonPreset || 'button_06' === buttonPreset ) { var buttonBGColor = wp.customize( 'astra-settings[secondary-button-bg-color]' ).get(); jQuery( 'style#astra-settings-secondary-button-color-color' ).remove(); // Theme Button - Background Color jQuery( 'head' ).append( '<style id="astra-settings-button-color-color">' + btnSecondaryColorSelector + ' { color: ' + buttonBGColor + ' }' + '</style>' ); } else { jQuery( 'style#astra-settings-button-color-color' ).remove(); // Theme Button - Background Color jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-color-color">' + btnSecondaryColorSelector + ' { color: ' + themeColor + ' }' + '</style>' ); } } else { jQuery( 'style#astra-settings-secondary-button-color-color' ).remove(); // Theme Button - Background Color jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-color-color">' + btnSecondaryColorSelector + ' { color: ' + value + ' }' + '</style>' ); } } ); } ); wp.customize( 'astra-settings[button-bg-color]', function( setting ) { setting.bind( function( value ) { var buttonPreset = wp.customize( 'astra-settings[button-preset-style]' ).get(); var themeColor = wp.customize( 'astra-settings[theme-color]' ).get(); var buttonTextColor = wp.customize( 'astra-settings[button-color]' ).get(); // If button has outline preset. if( 'button_04' === buttonPreset || 'button_05' === buttonPreset || 'button_06' === buttonPreset ) { var buttonTextColor = wp.customize( 'astra-settings[button-color]' ).get(); var buttonBorderColor = wp.customize( 'astra-settings[theme-button-border-group-border-color]' ).get(); if( '' === buttonBorderColor ) { // Theme Button - Background Color jQuery( 'style#astra-settings-theme-button-border-group-border-color' ).remove(); // Theme Button - Background Color jQuery( 'head' ).append( '<style id="astra-settings-theme-button-border-group-border-color">' + btnSelector + ' { border-color: ' + value + ' }' + '</style>' ); } if( '' === buttonTextColor ) { jQuery( 'style#astra-settings-button-outline-preset-color' ).remove(); jQuery( 'head' ).append( '<style id="astra-settings-button-outline-preset-color">' + btnSelector + ' { color: ' + value + ' }' + '</style>' ); } } else { jQuery( 'style#astra-settings-button-bg-color-background-color' ).remove(); jQuery( 'style#astra-settings-button-outline-preset-color' ).remove(); // Set background color for button to theme color when value is empty. value = ( '' != value ) ? value : themeColor; if( '' === buttonTextColor ) { jQuery( 'head' ).append( '<style id="astra-settings-button-outline-preset-color">' + btnSelector + ' { color: #FFFFFF; }' + '</style>' ); } // Theme Button - Background Color jQuery( 'head' ).append( '<style id="stra-settings-button-bg-color-background-color">' + btnSelector + ' { background-color: ' + value + ' }' + '</style>' ); } } ); } ); wp.customize( 'astra-settings[secondary-button-bg-color]', function( setting ) { var btnBgColorSelector = '.wp-block-buttons .wp-block-button .wp-block-button__link.is-style-outline:not(.has-background), .wp-block-buttons .wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background), .ast-outline-button'; setting.bind( function( value ) { var buttonPreset = wp.customize( 'astra-settings[secondary-button-preset-style]' ).get(); var themeColor = wp.customize( 'astra-settings[theme-color]' ).get(); var buttonTextColor = wp.customize( 'astra-settings[secondary-button-color]' ).get(); var buttonBorderColor = wp.customize( 'astra-settings[secondary-theme-button-border-group-border-color]' ).get(); // If button has outline preset. if( 'button_04' === buttonPreset || 'button_05' === buttonPreset || 'button_06' === buttonPreset ) { if( '' === buttonBorderColor ) { // Theme Button - Background Color jQuery( 'style#astra-settings-secondary-theme-button-border-group-border-color' ).remove(); // Theme Button - Background Color jQuery( 'head' ).append( '<style id="astra-settings-secondary-theme-button-border-group-border-color">' + btnSecondarySelector + ' { border-color: ' + value + ' }' + '</style>' ); } if( '' === buttonTextColor ) { jQuery( 'style#astra-settings-secondary-button-outline-preset-color' ).remove(); jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-outline-preset-color">' + btnSecondaryColorSelector + ' { color: ' + value + ' }' + '</style>' ); } jQuery( 'style#astra-settings-secondary-button-bg-color-background-color' ).remove(); jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-bg-color-background-color">' + btnSecondarySelector + ' { background-color: transparent }' + '</style>' ); } else if ( 'button_01' === buttonPreset || 'button_02' === buttonPreset || 'button_03' === buttonPreset ) { jQuery( 'style#astra-settings-secondary-button-outline-preset-color' ).remove(); jQuery( 'style#astra-settings-secondary-button-bg-color-background-color' ).remove(); jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-bg-color-background-color">' + btnSecondarySelector + ' { background-color: ' + value + ' }' + '</style>' ); // Set background color for button to theme color when value is empty. value = ( '' != value ) ? value : themeColor; if( '' === buttonTextColor ) { jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-outline-preset-color">' + btnSecondaryColorSelector + ' { color: #FFFFFF; }' + '</style>' ); } } else { if ( '' === buttonBorderColor ) { jQuery( 'head' ).append( '<style id="astra-settings-secondary-theme-button-border-group-border-color">' + btnSecondarySelector + ' { border-color: ' + value + ' }' + '</style>' ); } jQuery( 'style#astra-settings-secondary-button-bg-color-background-color' ).remove(); jQuery( 'head' ).append( '<style id="astra-settings-secondary-button-bg-color-background-color">' + btnSecondarySelector + ' { background-color: ' + value + ' }' + '</style>' ); } } ); } ); /** * Cart Count Color. */ wp.customize( 'astra-settings[woo-header-cart-product-count-color]', function( setting ) { setting.bind( function( color ) { if( color ) { var dynamicStyle = '.ast-menu-cart-outline .ast-cart-menu-wrap .count, .ast-site-header-cart .ast-addon-cart-wrap i.astra-icon:after { color: ' + color + '; } '; astra_add_dynamic_css( 'woo-header-cart-product-count-color', dynamicStyle ); } else { wp.customize.preview.send( 'refresh' ); } } ); } ); /** * Cart Count Color Hover. */ wp.customize( 'astra-settings[woo-header-cart-product-count-h-color]', function( setting ) { setting.bind( function( color ) { if( color ) { var dynamicStyle = '.ast-site-header-cart .ast-site-header-cart-li:hover .ast-cart-menu-wrap .count .ast-count-text, .ast-site-header-cart .ast-site-header-cart-li:hover .ast-addon-cart-wrap i.astra-icon:after { color: ' + color + '; } '; astra_add_dynamic_css( 'woo-header-cart-product-count-h-color', dynamicStyle ); } else { wp.customize.preview.send( 'refresh' ); } } ); } ); wp.customize('astra-settings[single-product-cart-button-width]', function (value) { value.bind(function (size) { var tablet_break_point = astraBuilderPreview.tablet_break_point || 768, mobile_break_point = astraBuilderPreview.mobile_break_point || 544; if (size.desktop != '' || size.tablet != '' || size.mobile != '') { var dynamicStyle = ''; dynamicStyle += '.woocommerce div.product form.cart .button.single_add_to_cart_button {'; dynamicStyle += 'width: ' + size.desktop + '%' + ';'; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) {'; dynamicStyle += '.woocommerce div.product form.cart .button.single_add_to_cart_button {'; dynamicStyle += 'width: ' + size.tablet + '%' + ';'; dynamicStyle += '} '; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {'; dynamicStyle += '.woocommerce div.product form.cart .button.single_add_to_cart_button {'; dynamicStyle += 'width: ' + size.mobile + '%' + ';'; dynamicStyle += '} '; dynamicStyle += '} '; astra_add_dynamic_css('header-woo-cart-icon-size', dynamicStyle); } else { wp.customize.preview.send( 'refresh' ); } }); }); // Single product Sticky add to cart. const astraStickyAddToCartBtnColor = '.woocommerce .ast-sticky-add-to-cart .button.alt'; const astraStickyAddToCartBtnHover = '.woocommerce .ast-sticky-add-to-cart .button.alt:hover'; astra_css( 'astra-settings[single-product-sticky-add-to-cart-btn-n-color]', 'color', astraStickyAddToCartBtnColor ); astra_css( 'astra-settings[single-product-sticky-add-to-cart-btn-h-color]', 'color', astraStickyAddToCartBtnHover ); astra_css( 'astra-settings[single-product-sticky-add-to-cart-btn-bg-n-color]', 'background', astraStickyAddToCartBtnColor ); astra_css( 'astra-settings[single-product-sticky-add-to-cart-btn-bg-h-color]', 'background', astraStickyAddToCartBtnHover ); astra_css( 'astra-settings[single-product-sticky-add-to-cart-btn-bg-n-color]', 'border-color',astraStickyAddToCartBtnColor ); astra_css( 'astra-settings[single-product-sticky-add-to-cart-btn-bg-h-color]', 'border-color', astraStickyAddToCartBtnHover ); astra_css( 'astra-settings[single-product-sticky-add-to-cart-text-color]', 'color', '.ast-sticky-add-to-cart .ast-container .ast-sticky-add-to-cart-content' ); astra_css( 'astra-settings[single-product-sticky-add-to-cart-bg-color]', 'background-color', '.ast-sticky-add-to-cart'); wp.customize( 'astra-settings[single-product-sticky-add-to-cart-position]', function( setting ) { setting.bind( function( position ) { var dynamicStyle = ''; if( 'top' === position ) { dynamicStyle += 'div.ast-sticky-add-to-cart{'; dynamicStyle += 'top: 0;'; dynamicStyle += 'bottom: initial;'; dynamicStyle += 'transform: translate(0, -100%);'; dynamicStyle += 'box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.1), 0px 1px 9px rgba(0, 0, 0, 0.06);'; dynamicStyle += 'opacity: 0'; dynamicStyle += '}'; } else { dynamicStyle += 'div.ast-sticky-add-to-cart{'; dynamicStyle += 'bottom: 0;'; dynamicStyle += 'top: initial;'; dynamicStyle += 'transform: translate(0, 100%);'; dynamicStyle += 'box-shadow: 0px -1px 10px rgba(0, 0, 0, 0.1), 0px -1px 9px rgba(0, 0, 0, 0.06);'; dynamicStyle += 'opacity: 0'; dynamicStyle += '}'; } astra_add_dynamic_css( 'sticky-add-to-cart-position', dynamicStyle ); } ); } ); wp.customize( 'astra-settings[single-product-payment-icon-color]', function( setting ) { setting.bind( function( value ) { wp.customize.preview.send( 'refresh' ); } ); } ); wp.customize( 'astra-settings[shop-ratings-product-archive]', function( setting ) { setting.bind( function( value ) { wp.customize.preview.send( 'refresh' ); } ); } ); wp.customize( 'astra-settings[single-product-payment-text]', function( setting ) { setting.bind( function( text ) { const paymentText = document.querySelector('.ast-single-product-payments legend'); if( paymentText ) { paymentText.textContent = text; } } ); } ); wp.customize( 'astra-settings[single-product-payment-list]', function( setting ) { setting.bind( function( value ) { wp.customize.preview.send( 'refresh' ); } ); } ); } } )( jQuery ); minified/customizer-preview.min.js 0000644 00000251573 15077703135 0013360 0 ustar 00 function astra_font_size_rem(t,e,o){var s="";return""!=t&&(o=void 0!==o?o:"desktop",s="font-size: "+t+"px;",e)&&((e=wp.customize("astra-settings[font-size-body]").get()).desktop=""!=e.desktop?e.desktop:15,e.tablet=""!=e.tablet?e.tablet:e.desktop,e.mobile=""!=e.mobile?e.mobile:e.tablet,"px"===e[o+"-unit"])&&(s+="font-size: "+t/e[o]+"rem;"),s}function astra_refresh_customizer(t){wp.customize(t,function(t){t.bind(function(t){wp.customize.preview.send("refresh")})})}function astra_color_responsive_css(a,n,r,i){wp.customize(n,function(t){t.bind(function(t){var e,o,s;t.desktop||t.mobile||t.tablet?(n=(n=n.replace("[","-")).replace("]",""),jQuery("style#"+n+"-"+a).remove(),(s=o=e="")!=t.desktop&&(e=r+": "+t.desktop),""!=t.tablet&&(o=r+": "+t.tablet),""!=t.mobile&&(s=r+": "+t.mobile),jQuery("head").append('<style id="'+n+"-"+a+'">'+i+"\t{ "+e+" }@media (max-width: 768px) {"+i+"\t{ "+o+" } }@media (max-width: 544px) {"+i+"\t{ "+s+" } }</style>")):jQuery("style#"+n+"-"+a).remove()})})}function astra_responsive_font_size(n,r,i=!1,l=""){wp.customize(n,function(t){t.bind(function(t){var e,o,s,a;t.desktop||t.mobile||t.tablet?(n=(n=n.replace("[","-")).replace("]",""),a="font-size",e="px"==t["desktop-unit"]?astra_font_size_rem(t.desktop,!0,"desktop"):"",s=o="",jQuery("style#"+n+"-"+a).remove(),""!=t.desktop&&(e=e||"font-size: "+t.desktop+(null==t["desktop-unit"]?"px":t["desktop-unit"])),""!=t.tablet&&(o="font-size: "+t.tablet+(null==t["tablet-unit"]?"px":t["tablet-unit"])),""!=t.mobile&&(s="font-size: "+t.mobile+(null==t["mobile-unit"]?"px":t["mobile-unit"])),jQuery("head").append('<style id="'+n+"-"+a+'">'+r+"\t{ "+e+" }@media (max-width: 768px) {"+r+"\t{ "+o+" } }@media (max-width: 544px) {"+r+"\t{ "+s+" } }</style>"),i&&(a=new CustomEvent("AstraStyleGuideElementUpdated",{detail:{value:{desktop:t.desktop+(null==t["desktop-unit"]?"px":t["desktop-unit"]),tablet:t.tablet+(null==t["tablet-unit"]?"px":t["tablet-unit"]),mobile:t.mobile+(null==t["mobile-unit"]?"px":t["mobile-unit"])},selector:l}}),document.dispatchEvent(a))):jQuery("style#"+n+"-font-size").remove()})})}function astra_font_extras_css(o,s){wp.customize("astra-settings["+o+"]",function(t){t.bind(function(t){var e;t?(jQuery("style#"+o).remove(),e=s+" { line-height : "+t["line-height"]+t["line-height-unit"]+";",e=(e+="letter-spacing : "+t["letter-spacing"]+t["letter-spacing-unit"]+";")+"text-decoration : "+t["text-decoration"]+";text-transform : "+t["text-transform"]+";}",jQuery("head").append('<style id="'+o+'">'+e+"</style>")):jQuery("style#"+o).remove()})})}function astra_responsive_spacing(i,l,u,c){wp.customize(i,function(t){t.bind(function(o){var s,a,n,t,e="",r="padding";o.desktop.top||o.desktop.right||o.desktop.bottom||o.desktop.left||o.tablet.top||o.tablet.right||o.tablet.bottom||o.tablet.left||o.mobile.top||o.mobile.right||o.mobile.bottom||o.mobile.left?(void 0!==c&&(e=(e=c+"").replace(/,/g,"-")),void 0!==u&&(r=u+""),i=(i=i.replace("[","-")).replace("]",""),jQuery("style#"+i+"-"+r+"-"+e).remove(),n=a=s="",t=void 0!==c?c:["top","bottom","right","left"],jQuery.each(t,function(t,e){""!=o.desktop[e]&&(s+=r+"-"+e+": "+o.desktop[e]+o["desktop-unit"]+";")}),jQuery.each(t,function(t,e){""!=o.tablet[e]&&(a+=r+"-"+e+": "+o.tablet[e]+o["tablet-unit"]+";")}),jQuery.each(t,function(t,e){""!=o.mobile[e]&&(n+=r+"-"+e+": "+o.mobile[e]+o["mobile-unit"]+";")}),jQuery("head").append('<style id="'+i+"-"+r+"-"+e+'">'+l+"\t{ "+s+" }@media (max-width: 768px) {"+l+"\t{ "+a+" } }@media (max-width: 544px) {"+l+"\t{ "+n+" } }</style>")):(wp.customize.preview.send("refresh"),jQuery("style#"+i+"-"+r+"-"+e).remove())})})}function astra_css_font_size(o,s){wp.customize(o,function(t){t.bind(function(t){var e;t?(o=(o=o.replace("[","-")).replace("]",""),jQuery("style#"+o).remove(),e="font-size: "+t,(!Number.isNaN(t)||0<=t.indexOf("px"))&&(e=astra_font_size_rem(t=t.replace("px",""),!0)),jQuery("head").append('<style id="'+o+'">'+s+"\t{ "+e+" }</style>")):jQuery("style#"+o).remove()})})}function get_hexdec(t){t=t.toString(16);return parseInt(t,16)}function astra_css(o,s,a,n,r=!1){wp.customize(o,function(t){t.bind(function(t){var e;o=(o=o.replace("[","-")).replace("]",""),(t||0===t)&&(void 0!==n&&("url"===n?t="url("+t+")":t+=n),e=r?" !important":"",jQuery("style#"+o+"-"+s).remove(),jQuery("head").append('<style id="'+o+"-"+s+'">'+a+"\t{ "+s+": "+t+e+" }</style>"),"unset"!==t)||jQuery("style#"+o+"-"+s).remove()})})}function astra_add_dynamic_css(t,e){t=(t=t.replace("[","-")).replace("]",""),jQuery("style#"+t).remove(),jQuery("head").append('<style id="'+t+'">'+e+"</style>")}function astra_background_obj_css(t,e,o,s){var a="",n=e["background-image"],r=e["background-color"];if(""===r&&""===n)jQuery("style#"+o).remove();else{if(void 0!==e["background-type"]&&""!==e["background-type"])if("color"===e["background-type"])""!==n&&""!==r&&void 0!==r&&"unset"!==r?a="background-image: linear-gradient(to right, "+r+", "+r+"), url("+n+");":void 0!==n&&""!==n&&"unset"!==n||(a="background-color: "+r+";");else if("image"===e["background-type"]){if(""!==n)if("overlay-type"in e&&"none"!==e["overlay-type"]){var i="overlay-color"in e?e["overlay-color"]:"",l="overlay-opacity"in e?e["overlay-opacity"]:"",u="overlay-gradient"in e?e["overlay-gradient"]:"";if("classic"===e["overlay-type"]&&""!==i){if(""!==l)return void wp.customize.preview.send("refresh");a="background-image: linear-gradient(to right, "+e["overlay-color"]+", "+e["overlay-color"]+"), url("+n+");"}else a="gradient"===e["overlay-type"]&&""!==u?"background-image: "+u+", url("+n+");":"background-image: url("+n+");"}else a="background-image: url("+n+");"}else"gradient"===e["background-type"]&&""!==r&&"unset"!==r&&(a="background-image: "+r+";");""!==n&&(a=(a=(a+="background-repeat: "+e["background-repeat"]+";")+"background-position: "+e["background-position"]+";")+"background-size: "+e["background-size"]+";background-attachment: "+e["background-attachment"]+";"),astra_add_dynamic_css(o,s.replace("{{css}}",a))}}function astra_generate_outside_font_family_css(n,r,i=!1,l=""){wp.customize(n,function(t){t.bind(function(t,e){var o="font-family",s="",a=t.split(",")[0];a=a.replace(/'/g,""),n=(n=n.replace("[","-")).replace("]",""),jQuery("style#"+n+"-"+o).remove(),a in astraCustomizer.googleFonts&&(a=a.split(" ").join("+"),jQuery("link#"+n).remove(),s='<link id="'+n+'" href="https://fonts.googleapis.com/css?family='+a+'" rel="stylesheet">'),i&&(a=new CustomEvent("AstraStyleGuideElementUpdated",{detail:{value:t,selector:l}}),document.dispatchEvent(a)),jQuery("head").append('<style id="'+n+"-"+o+'">'+r+"\t{ "+o+": "+t+" }</style>"+s)})})}function astra_builder_advanced_css(o,s){wp.customize("astra-settings["+o+"-padding]",function(t){t.bind(function(t){var e;t.hasOwnProperty("desktop")&&(""!=t.desktop.bottom||""!=t.desktop.top||""!=t.desktop.left||""!=t.desktop.right||""!=t.tablet.bottom||""!=t.tablet.top||""!=t.tablet.left||""!=t.tablet.right||""!=t.mobile.bottom||""!=t.mobile.top||""!=t.mobile.left||""!=t.mobile.right?(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e="")+s+" {padding-left: "+t.desktop.left+t["desktop-unit"]+";")+"padding-right: "+t.desktop.right+t["desktop-unit"]+";")+"padding-top: "+t.desktop.top+t["desktop-unit"]+";")+"padding-bottom: "+t.desktop.bottom+t["desktop-unit"]+";} @media (max-width: 921px) {")+s+" {padding-left: "+t.tablet.left+t["tablet-unit"]+";")+"padding-right: "+t.tablet.right+t["tablet-unit"]+";")+"padding-top: "+t.tablet.top+t["tablet-unit"]+";")+"padding-bottom: "+t.tablet.bottom+t["tablet-unit"]+";} } @media (max-width: 544px) {")+s+" {padding-left: "+t.mobile.left+t["mobile-unit"]+";")+"padding-right: "+t.mobile.right+t["mobile-unit"]+";")+"padding-top: "+t.mobile.top+t["mobile-unit"]+";")+"padding-bottom: "+t.mobile.bottom+t["mobile-unit"]+";",astra_add_dynamic_css(o+"-padding-toggle-button",e=e+"} "+"} ")):astra_add_dynamic_css(o+"-padding-toggle-button",""))})}),wp.customize("astra-settings["+o+"-margin]",function(t){t.bind(function(t){var e;t.hasOwnProperty("desktop")&&(""!=t.desktop.bottom||""!=t.desktop.top||""!=t.desktop.left||""!=t.desktop.right||""!=t.tablet.bottom||""!=t.tablet.top||""!=t.tablet.left||""!=t.tablet.right||""!=t.mobile.bottom||""!=t.mobile.top||""!=t.mobile.left||""!=t.mobile.right?(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e="")+s+" {margin-left: "+t.desktop.left+t["desktop-unit"]+";")+"margin-right: "+t.desktop.right+t["desktop-unit"]+";")+"margin-top: "+t.desktop.top+t["desktop-unit"]+";")+"margin-bottom: "+t.desktop.bottom+t["desktop-unit"]+";} @media (max-width: 921px) {")+s+" {margin-left: "+t.tablet.left+t["tablet-unit"]+";")+"margin-right: "+t.tablet.right+t["tablet-unit"]+";")+"margin-top: "+t.tablet.top+t["tablet-unit"]+";")+"margin-bottom: "+t.tablet.bottom+t["tablet-unit"]+";} } @media (max-width: 544px) {")+s+" {margin-left: "+t.mobile.left+t["mobile-unit"]+";")+"margin-right: "+t.mobile.right+t["mobile-unit"]+";")+"margin-top: "+t.mobile.top+t["mobile-unit"]+";")+"margin-bottom: "+t.mobile.bottom+t["mobile-unit"]+";",astra_add_dynamic_css(o+"-margin-toggle-button",e=e+"} "+"} ")):astra_add_dynamic_css(o+"-margin-toggle-button",""))})})}function astra_border_spacing_advanced_css(o,s){wp.customize("astra-settings["+o+"-border-width]",function(t){t.bind(function(t){var e=s+" {";t.top&&(e=e+"border-top-style: solid;border-top-width: "+t.top+"px;"),t.right&&(e=e+"border-right-style: solid;border-right-width: "+t.right+"px;"),t.bottom&&(e=e+"border-bottom-style: solid;border-bottom-width: "+t.bottom+"px;"),t.left&&(e=e+"border-left-style: solid;border-left-width: "+t.left+"px;"),astra_add_dynamic_css("astra-settings["+o+"-border-width]",e+="} ")})}),wp.customize("astra-settings["+o+"-border-radius]",function(t){t.bind(function(t){var e;t.top||t.right||t.bottom||t.left?(e=s+" {",""!==t.top&&(e+="border-top-left-radius: "+t.top+"px;"),""!==t.right&&(e+="border-top-right-radius: "+t.right+"px;"),""!==t.left&&(e+="border-bottom-left-radius: "+t.left+"px;"),""!==t.bottom&&(e+="border-bottom-right-radius: "+t.bottom+"px;"),astra_add_dynamic_css("astra-settings["+o+"-border-radius]",e+="} ")):wp.customize.preview.send("refresh")})}),astra_css("astra-settings["+o+"-border-color]","border-color",s),astra_builder_advanced_css(o,s)}function astra_generate_font_weight_css(s,a,n,r){wp.customize(a,function(t){t.bind(function(t){a=(a=a.replace("[","-")).replace("]","");var e,o="";t?("undefined"!=typeof unit&&("url"===unit?t="url("+t+")":t+=unit),e=(e=(e=wp.customize._value[s]._value).split(","))[0].replace(/'/g,""),jQuery("style#"+a+"-"+n).remove(),e in astraCustomizer.googleFonts&&(jQuery("#"+s).remove(),o="inherit"===t?'<link id="'+s+'" href="https://fonts.googleapis.com/css?family='+e+'" rel="stylesheet">':'<link id="'+s+'" href="https://fonts.googleapis.com/css?family='+e+"%3A"+t+'" rel="stylesheet">'),jQuery("head").append('<style id="'+a+"-"+n+'">'+r+"\t{ "+n+": "+t+" }</style>"+o)):jQuery("style#"+a).remove()})})}function astra_apply_responsive_background_css(u,c,d,t,b){wp.customize(u,function(t){t.bind(function(t){if(b=(b=b||"")||"header",u=(u=u.replace("[","-")).replace("]",""),""!==t[d]&&void 0!==t[d]){var e,o="",s=t[d]["background-image"],a=t.tablet["background-image"],n=t.desktop["background-image"],r=t[d]["background-color"],i=!!t.tablet["background-image"],l=!!t.desktop["background-image"];if(void 0!==t[d]["background-type"]&&""!==t[d]["background-type"])if("color"===t[d]["background-type"])""!==s&&""!==r&&void 0!==r&&"unset"!==r?o="background-image: linear-gradient(to right, "+r+", "+r+"), url("+s+");":"mobile"===d?l?o="background-image: linear-gradient(to right, "+r+", "+r+"), url("+n+");":i?o="background-image: linear-gradient(to right, "+r+", "+r+"), url("+a+");":(o="background-color: "+r+";",o+="background-image: none;"):"tablet"===d?l?o="background-image: linear-gradient(to right, "+r+", "+r+"), url("+n+");":(o="background-color: "+r+";",o+="background-image: none;"):void 0!==s&&""!==s||(o="background-color: "+r+";",o+="background-image: none;");else if("image"===t[d]["background-type"]){if(""!==s)if(void 0!==t[d]["overlay-type"]&&"none"!==t[d]["overlay-type"]){i=void 0!==t[d]["overlay-color"]?t[d]["overlay-color"]:"",a=void 0!==t[d]["overlay-opacity"]?t[d]["overlay-opacity"]:"",l=void 0!==t[d]["overlay-gradient"]?t[d]["overlay-gradient"]:"";if("classic"===t[d]["overlay-type"]&&""!==i){if(""!==a)return void wp.customize.preview.send("refresh");o="background-image: linear-gradient(to right, "+i+", "+i+"), url("+s+");"}else o="gradient"===t[d]["overlay-type"]&&""!==l?"background-image: "+l+", url("+s+");":"background-image: url("+s+");"}else o="background-image: url("+s+");"}else"gradient"===t[d]["background-type"]&&""!==r&&"unset"!==r&&(o="background-image: "+r+";");""!==s&&(o=(o=(o=(o+="background-repeat: "+t[d]["background-repeat"]+";")+"background-position: "+t[d]["background-position"]+";")+"background-size: "+t[d]["background-size"]+";")+"background-attachment: "+t[d]["background-attachment"]+";"),jQuery("style#"+u+"-"+d+"-"+b).remove(),"desktop"==d&&(e='<style id="'+u+"-"+d+"-"+b+'">'+c+"\t{ "+o+" }</style>"),"tablet"==d&&(e='<style id="'+u+"-"+d+"-"+b+'">@media (max-width: 768px) {'+c+"\t{ "+o+" } }</style>"),"mobile"==d&&(e='<style id="'+u+"-"+d+"-"+b+'">@media (max-width: 544px) {'+c+"\t{ "+o+" } }</style>"),jQuery("head").append(e)}})})}function getChangedKey(t,e){t=isJsonString(t)?JSON.parse(t):t,e=isJsonString(e)?JSON.parse(e):e;for(var o in t){if(!e.hasOwnProperty(o)||!t.hasOwnProperty(o))return o;if(!1===((t,e)=>{var o=Object.prototype.toString.call(t);if(0<=["[object Array]","[object Object]"].indexOf(o)){if("string"==typeof getChangedKey(t,e))return!1}else{if(o!==Object.prototype.toString.call(e))return!1;if("[object Function]"===o){if(t.toString()!==e.toString())return!1}else if(t!==e)return!1}})(t[o],e[o]))return o}return!0}function isJsonString(t){try{JSON.parse(t)}catch(t){return!1}return!0}function hasWordPressWidgetBlockEditor(){return astraCustomizer.has_block_editor_support||!1}(n=>{wp.customize("astra-settings[logo-svg-icon]",function(t){t.bind(function(){astra_add_dynamic_css("ast-header-responsive-logo-svg-icon-width",".ast-logo-title-inline .ast-site-identity { gap: 5px; } #masthead .ast-logo-svg-icon svg, .ast-sg-logo-section .ast-logo-svg-icon svg { width: 30px; }")})}),wp.customize("astra-settings[ast-header-responsive-logo-width]",function(t){t.bind(function(t){var e=astraCustomizer.tablet_breakpoint||921,o=astraCustomizer.mobile_breakpoint||544;""!=t.desktop||""!=t.tablet||""!=t.mobile?(astra_add_dynamic_css("ast-header-responsive-logo-width",`#masthead .site-logo-img .custom-logo-link img, .ast-sg-logo-section .site-logo-img .custom-logo-link img { max-width: ${t.desktop}px; width: ${t.desktop}px; } @media( max-width: ${e}px ) { #masthead .site-logo-img .custom-logo-link img, .ast-sg-logo-section .site-logo-img .custom-logo-link img { max-width: ${t.tablet}px; width: ${t.tablet}px; } #masthead .site-logo-img img { max-width: ${t.tablet}px; width: ${t.tablet}px; } } @media( max-width: ${o}px ) { #masthead .site-logo-img .custom-logo-link img, .ast-sg-logo-section .site-logo-img .custom-logo-link img { max-width: ${t.mobile}px; width: ${t.mobile}px; } #masthead .site-logo-img img { max-width: ${t.mobile}px; max-height: ${t.mobile}px; } }`),astra_add_dynamic_css("mobile-header-logo-width",".ast-header-break-point #masthead .site-logo-img .custom-mobile-logo-link img, .ast-header-break-point .ast-sg-logo-section .site-logo-img .custom-mobile-logo-link img { max-width: "+t.tablet+"px; } @media( max-width: "+e+"px ) { .ast-header-break-point #masthead .site-logo-img .custom-mobile-logo-link img, .ast-header-break-point .ast-sg-logo-section .site-logo-img .custom-mobile-logo-link img { max-width: "+t.tablet+"px; } @media( max-width: "+o+"px ) { .ast-header-break-point #masthead .site-logo-img .custom-mobile-logo-link img { max-width: "+t.mobile+"px; }"),astra_add_dynamic_css("ast-header-responsive-logo-svg-icon-width","#masthead .ast-logo-svg-icon svg, .ast-sg-logo-section .ast-logo-svg-icon svg { width: "+t.desktop+"px; } @media( max-width: "+e+"px ) { #masthead .ast-logo-svg-icon svg, .ast-sg-logo-section .ast-logo-svg-icon svg { width: "+t.tablet+"px; } #masthead .ast-logo-svg-icon svg, .ast-sg-logo-section .ast-logo-svg-icon svg { width: "+t.tablet+"px; } } @media( max-width: "+o+"px ) { #masthead .ast-logo-svg-icon svg, .ast-sg-logo-section .ast-logo-svg-icon svg { width: "+t.mobile+"px; }#masthead .ast-logo-svg-icon svg, .ast-sg-logo-section .ast-logo-svg-icon svg { width: "+t.mobile+"px; } }")):wp.customize.preview.send("refresh")})}),wp.customize("astra-settings[logo-svg-site-title-gap]",function(t){t.bind(function(t){var e=astraCustomizer.tablet_breakpoint||921;""!=t.desktop||""!=t.tablet||""!=t.mobile?astra_add_dynamic_css("logo-svg-site-title-gap",`.ast-logo-title-inline .ast-site-identity { gap: ${t.desktop}px; } @media( max-width: ${e}px ) { .ast-logo-title-inline .ast-site-identity { gap: ${t.tablet}px; } } @media( max-width: ${astraCustomizer.mobile_breakpoint||544}px ) { .ast-logo-title-inline .ast-site-identity { gap: ${t.mobile}px; } }`):wp.customize.preview.send("refresh")})}),wp.customize("astra-settings[display-site-title-responsive]",function(t){t.bind(function(t){astra_add_dynamic_css("display-site-title-responsive",".ast-site-title-wrap .site-title { display: "+(t.desktop?"block":"none")+";} @media( max-width: "+(astraBuilderPreview.tablet_break_point||921)+"px) { .ast-site-title-wrap .site-title { display: "+(t.tablet?"block":"none")+";} } @media( max-width: "+(astraBuilderPreview.mobile_break_point||544)+"px) { .ast-site-title-wrap .site-title { display: "+(t.mobile?"block":"none")+";} }")})}),wp.customize("astra-settings[display-site-tagline-responsive]",function(t){t.bind(function(t){astra_add_dynamic_css("display-site-tagline-responsive",".ast-site-title-wrap .site-description { display: "+(t.desktop?"block":"none")+";} @media( max-width: "+(astraBuilderPreview.tablet_break_point||768)+"px) { .ast-site-title-wrap .site-description { display: "+(t.tablet?"block":"none")+";} } @media( max-width: "+(astraBuilderPreview.mobile_break_point||544)+"px) { .ast-site-title-wrap .site-description { display: "+(t.mobile?"block":"none")+";} }")})}),wp.customize("astra-settings[site-content-width]",function(t){t.bind(function(t){var e=(e="@media (min-width: 554px) {")+(".ast-container, .fl-builder #content .entry-header { max-width: "+(40+parseInt(t))+"px } ")+"}";astra_add_dynamic_css("site-content-width",e=jQuery("body").hasClass("ast-page-builder-template")?(e+="@media (min-width: 554px) {")+".ast-page-builder-template .comments-area { max-width: "+(40+parseInt(t))+"px } }":e)})}),wp.customize("astra-settings[header-main-menu-label]",function(t){t.bind(function(t){var e;0<n("button.main-header-menu-toggle .mobile-menu-wrap .mobile-menu").length?""!=t?n("button.main-header-menu-toggle .mobile-menu-wrap .mobile-menu").text(t):n("button.main-header-menu-toggle .mobile-menu-wrap").remove():(e=n("button.main-header-menu-toggle").html(),""!=t&&(e+='<div class="mobile-menu-wrap"><span class="mobile-menu">'+t+"</span> </div>"),n("button.main-header-menu-toggle").html(e))})});var e,t=t=>{astra_apply_responsive_background_css("astra-settings[content-bg-obj-responsive]",t,"desktop"),astra_apply_responsive_background_css("astra-settings[content-bg-obj-responsive]",t,"tablet"),astra_apply_responsive_background_css("astra-settings[content-bg-obj-responsive]",t,"mobile")};astra_apply_responsive_background_css("astra-settings[site-layout-outside-bg-obj-responsive]","body, .ast-separate-container","desktop"),astra_apply_responsive_background_css("astra-settings[site-layout-outside-bg-obj-responsive]","body, .ast-separate-container","tablet"),astra_apply_responsive_background_css("astra-settings[site-layout-outside-bg-obj-responsive]","body, .ast-separate-container","mobile"),astraCustomizer.is_content_bg_option_to_load&&(e=astraCustomizer.content_layout,p=astraCustomizer.site_layout,o=void 0!==wp.customize._value["astra-settings[blog-grid]"]?wp.customize._value["astra-settings[blog-grid]"]._value:1,g=".ast-separate-container .ast-article-single:not(.ast-related-post), .ast-separate-container .comments-area .comment-respond,.ast-separate-container .comments-area .ast-comment-list li, .ast-separate-container .ast-woocommerce-container, .ast-separate-container .error-404, .ast-separate-container .no-results, .single.ast-separate-container .site-main .ast-author-meta, .ast-separate-container .related-posts, .ast-separate-container .comments-count-wrapper, .ast-separate-container .comments-area .comments-title, .ast-single-related-posts-container, .ast-plain-container, .site-content article .ast-article-inner","blog-layout-1"==(void 0!==wp.customize._value["astra-settings[blog-layout]"]?wp.customize._value["astra-settings[blog-layout]"]._value:"blog-layout-1")&&1!=o&&(g+=", .ast-separate-container .ast-article-inner"),"boxed-container"==e?t(g+=", .ast-separate-container.ast-two-container #secondary .widget"):"content-boxed-container"==e?t(g):!astraCustomizer.apply_content_bg_fullwidth_layouts||"ast-box-layout"!==p&&"ast-padded-layout"!==p||"plain-container"!==e?astraCustomizer.apply_content_bg_fullwidth_layouts&&"plain-container"===e?t(g+=", .ast-plain-container .site-content"):astraCustomizer.apply_content_bg_fullwidth_layouts&&"page-builder"==e&&"ast-box-layout"!==p&&"ast-padded-layout"!==p&&t(g+=", .ast-page-builder-template .site-content"):t(".ast-box-layout.ast-plain-container .site-content, .ast-padded-layout.ast-plain-container .site-content")),wp.customize("astra-settings[content-bg-obj-responsive]",function(t){t.bind(function(t){"narrow-container"==e&&wp.customize.preview.send("refresh")})}),wp.customize("astra-settings[blog-max-width]",function(t){t.bind(function(t){var e="@media all and ( min-width: 921px ) {";jQuery("body").hasClass("ast-woo-shop-archive")||(e+=".blog .site-content > .ast-container,.archive .site-content > .ast-container{ max-width: "+parseInt(t)+"px } "),jQuery("body").hasClass("ast-fluid-width-layout")&&(e+=".blog .site-content > .ast-container,.archive .site-content > .ast-container{ padding-left:20px; padding-right:20px; } "),astra_add_dynamic_css("blog-max-width",e+="}")})}),wp.customize("astra-settings[blog-single-max-width]",function(t){t.bind(function(t){var e="@media all and ( min-width: 921px ) {";e+=".single-post .site-content > .ast-container{ max-width: "+(40+parseInt(t))+"px } ",jQuery("body").hasClass("ast-fluid-width-layout")&&(e+=".single-post .site-content > .ast-container{ padding-left:20px; padding-right:20px; } "),astra_add_dynamic_css("blog-single-max-width",e+="}")})}),wp.customize("astra-settings[page-single-max-width]",function(t){t.bind(function(t){var e="@media all and ( min-width: 921px ) {";astra_add_dynamic_css("page-single-max-width",e+(".page .site-content > .ast-container{ max-width: "+(40+parseInt(t))+"px } ")+"}")})}),wp.customize("astra-settings[edd-archive-max-width]",function(t){t.bind(function(t){astra_add_dynamic_css("edd-archive-max-width",".ast-edd-archive-page .site-content > .ast-container { max-width: "+parseInt(t)+"px } ")})}),wp.customize("astra-settings[site-sidebar-width]",function(t){t.bind(function(t){var e;!jQuery("body").hasClass("ast-no-sidebar")&&15<=t&&t<=50&&(e="@media (min-width: 769px) {",astra_add_dynamic_css("site-sidebar-width",e=(e+="#primary { width: "+(100-parseInt(t))+"% } ")+("#secondary { width: "+t+"% } ")+"}"))})}),wp.customize("astra-settings[header-main-sep]",function(t){t.bind(function(t){var e="body.ast-header-break-point .main-header-bar { border-bottom-width: "+t+"px }";astra_add_dynamic_css("header-main-sep",(e+=".ast-desktop .main-header-bar {")+("border-bottom-width: "+t+"px")+"}")})}),wp.customize("astra-settings[footer-sml-divider]",function(t){t.bind(function(t){jQuery(".ast-small-footer").css("border-top-width",t+"px")})}),wp.customize("astra-settings[footer-adv-border-width]",function(t){t.bind(function(t){jQuery(".footer-adv .footer-adv-overlay").css("border-top-width",t+"px")})}),wp.customize("astra-settings[footer-adv-border-color]",function(t){t.bind(function(t){jQuery(".footer-adv .footer-adv-overlay").css("border-top-color",t)})}),wp.customize("astra-settings[footer-sml-divider-color]",function(t){t.bind(function(t){jQuery(".ast-small-footer").css("border-top-color",t)})});let r=astraCustomizer.astra_woo_btn_global_compatibility?', .woocommerce a.button, .woocommerce .widget_price_filter .button, .woocommerce button.button, [CLASS*="wc-block"] button':"";var o=astraCustomizer.astra_woo_btn_global_compatibility?', .woocommerce a.button:hover, .woocommerce .widget_price_filter .button:hover, .woocommerce button.button:hover, [CLASS*="wc-block"] button:hover':"";let i=astraCustomizer.isLifterLMS?", .lifterlms a.llms-button-primary, .lifterlms a.llms-button-secondary, .lifterlms .llms-button-action, .lifterlms button.llms-field-button, .lifterlms a.llms-field-button":"";var s,a,l,u,c,d,b,p=astraCustomizer.isLifterLMS?", .lifterlms a.llms-button-primary:hover, .lifterlms a.llms-button-primary:focus, .lifterlms a.llms-button-secondary:hover, .lifterlms a.llms-button-secondary:focus, .lifterlms .llms-button-action:hover, .lifterlms .llms-button-action:focus, .lifterlms button.llms-field-button:hover, .lifterlms button.llms-field-button:focus, .lifterlms a.llms-field-button:hover, .lifterlms a.llms-field-button:focus":"",m=(wp.customize("astra-settings[button-radius-fields]",function(t){t.bind(function(t){var e=astraBuilderPreview.tablet_break_point||768,o=astraBuilderPreview.mobile_break_point||544,s=hasWordPressWidgetBlockEditor()?', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button':"";let a='.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .wp-block-button:not(.is-style-outline) .wp-block-button__link'+astraCustomizer.v4_2_2_core_form_btns_styling+', body #ld_course_list .btn, body a.btn-blue, body a.btn-blue:visited, body a#quiz_continue_link, body .btn-join, body .learndash_checkout_buttons input.btn-join[type="button"], body #btn-join, body .learndash_checkout_buttons input.btn-join[type="submit"], body .wpProQuiz_content .wpProQuiz_button2, a.llms-button-primary, .llms-button-secondary, .llms-button-action, .llms-field-button, .llms-button-action.large'+s+r+i;document.body.classList.contains("edd-page")&&(a+=", .ast-edd-site-header-cart .widget_edd_cart_widget .edd_checkout a, .widget_edd_cart_widget .edd_checkout a ");s=a+"{ border-top-left-radius :"+t.desktop.top+t["desktop-unit"]+"; border-bottom-right-radius :"+t.desktop.bottom+t["desktop-unit"]+"; border-bottom-left-radius :"+t.desktop.left+t["desktop-unit"]+"; border-top-right-radius :"+t.desktop.right+t["desktop-unit"]+"; } ";astra_add_dynamic_css("button-radius",(s+="@media (max-width: "+e+"px) { "+a+"{ border-top-left-radius :"+t.tablet.top+t["tablet-unit"]+"; border-bottom-right-radius :"+t.tablet.bottom+t["tablet-unit"]+"; border-bottom-left-radius :"+t.tablet.left+t["tablet-unit"]+"; border-top-right-radius :"+t.tablet.right+t["tablet-unit"]+"; } } ")+("@media (max-width: "+o+"px) { "+a+"{ border-top-left-radius :"+t.mobile.top+t["mobile-unit"]+"; border-bottom-right-radius :"+t.mobile.bottom+t["mobile-unit"]+"; border-bottom-left-radius :"+t.mobile.left+t["mobile-unit"]+"; border-top-right-radius :"+t.mobile.right+t["mobile-unit"]+"; } } "))})}),wp.customize("astra-settings[secondary-button-radius-fields]",function(t){t.bind(function(t){var e,o,s=astraBuilderPreview.tablet_break_point||768;""!==t&&(o=(e=".wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button")+"{ border-top-left-radius :"+t.desktop.top+t["desktop-unit"]+"; border-bottom-right-radius :"+t.desktop.bottom+t["desktop-unit"]+"; border-bottom-left-radius :"+t.desktop.left+t["desktop-unit"]+"; border-top-right-radius :"+t.desktop.right+t["desktop-unit"]+"; } ",astra_add_dynamic_css("secondary-button-radius",o=(o+="@media (max-width: "+s+"px) { "+e+"{ border-top-left-radius :"+t.tablet.top+t["tablet-unit"]+"; border-bottom-right-radius :"+t.tablet.bottom+t["tablet-unit"]+"; border-bottom-left-radius :"+t.tablet.left+t["tablet-unit"]+"; border-top-right-radius :"+t.tablet.right+t["tablet-unit"]+"; } } ")+("@media (max-width: "+(astraBuilderPreview.mobile_break_point||544)+"px) { "+e+"{ border-top-left-radius :"+t.mobile.top+t["mobile-unit"]+"; border-bottom-right-radius :"+t.mobile.bottom+t["mobile-unit"]+"; border-bottom-left-radius :"+t.mobile.left+t["mobile-unit"]+"; border-top-right-radius :"+t.mobile.right+t["mobile-unit"]+"; } } ")))})}),wp.customize("astra-settings[header-main-sep]",function(t){t.bind(function(t){var e=" body.ast-header-break-point .main-header-bar { border-bottom-width: "+t+"px } ";astra_add_dynamic_css("header-main-sep",(e+=".ast-desktop .main-header-bar {")+("border-bottom-width: "+t+"px")+"}")})}),wp.customize("astra-settings[header-main-sep-color]",function(t){t.bind(function(t){var e;""==t&&wp.customize.preview.send("refresh"),t&&(e=" .ast-desktop .main-header-bar { border-bottom-color: "+t+"; } ",astra_add_dynamic_css("header-main-sep-color",e+=" body.ast-header-break-point .main-header-bar { border-bottom-color: "+t+"; } "))})}),wp.customize("astra-settings[mobile-header-toggle-btn-style-color]",function(t){t.bind(function(t){""!=t?astra_add_dynamic_css("primary-toggle-button-color",jQuery(".menu-toggle").hasClass("ast-mobile-menu-buttons-fill")?".ast-header-break-point .ast-mobile-menu-buttons-fill.menu-toggle { background: "+t+"}":jQuery(".menu-toggle").hasClass("ast-mobile-menu-buttons-outline")?".ast-header-break-point .ast-mobile-menu-buttons-outline.menu-toggle { border: 1px solid "+t+"; color: "+t+"}":".ast-header-break-point .ast-mobile-menu-buttons-minimal.menu-toggle { color: "+t+"}"):wp.customize.preview.send("refresh")})}),astra_responsive_font_size("astra-settings[font-size-site-tagline]",".ast-sg-logo-section .site-description, .site-header .site-description"),astra_responsive_font_size("astra-settings[font-size-site-title]",".site-title"),astra_responsive_font_size("astra-settings[font-size-page-title]","body:not(.ast-single-post) .entry-title"),astra_responsive_font_size("astra-settings[font-size-post-meta]",".entry-meta, .read-more"),astra_responsive_font_size("astra-settings[font-size-post-tax]",".ast-blog-single-element.ast-taxonomy-container a"),astra_refresh_customizer("astra-settings[blog-meta-category-style]"),astra_refresh_customizer("astra-settings[blog-category-style]"),astra_refresh_customizer("astra-settings[blog-tag-style]"),astra_refresh_customizer("astra-settings[blog-post-meta-divider-type]"),astra_refresh_customizer("astra-settings[blog-meta-tag-style]"),astra_refresh_customizer("astra-settings[blog-post-content]"),wp.customize("astra-settings[post-card-border-radius]",function(t){t.bind(function(t){var e=t.desktop.top||0,o=t.desktop.bottom||0,s=t.desktop.left||0,a=t.desktop.right||0,n=t.tablet.top||0,r=t.tablet.bottom||0,i=t.tablet.left||0,l=t.tablet.right||0,u=t.mobile.top||0,c=t.mobile.bottom||0,d=t.mobile.left||0,b=t.mobile.right||0,p=astraBuilderPreview.tablet_break_point||921,m="blog-layout-5"===(void 0!==wp.customize._value["astra-settings[blog-layout]"]?wp.customize._value["astra-settings[blog-layout]"]._value:"blog-layout-1")?".archive .ast-article-post, .blog .ast-article-post, .archive .ast-article-post:hover, .blog .ast-article-post:hover":".archive .ast-article-post .ast-article-inner, .blog .ast-article-post .ast-article-inner, .archive .ast-article-post .ast-article-inner:hover, .blog .ast-article-post .ast-article-inner:hover",e=m+"{ border-top-left-radius :"+e+t["desktop-unit"]+"; border-bottom-right-radius :"+o+t["desktop-unit"]+"; border-bottom-left-radius :"+s+t["desktop-unit"]+"; border-top-right-radius :"+a+t["desktop-unit"]+"; } ";astra_add_dynamic_css("post-card-border-radius",e+("@media (max-width: "+p+"px) { "+m+"{ border-top-left-radius :"+n+t["tablet-unit"]+"; border-bottom-right-radius :"+r+t["tablet-unit"]+"; border-bottom-left-radius :"+i+t["tablet-unit"]+"; border-top-right-radius :"+l+t["tablet-unit"]+"; } } ")+("@media (max-width: "+(astraBuilderPreview.mobile_break_point||544)+"px) { "+m+"{ border-top-left-radius :"+u+t["mobile-unit"]+"; border-bottom-right-radius :"+c+t["mobile-unit"]+"; border-bottom-left-radius :"+d+t["mobile-unit"]+"; border-top-right-radius :"+b+t["mobile-unit"]+"; } } "))})}),astra_css("astra-settings[post-card-featured-overlay]","background-color",".ast-blog-layout-6-grid .ast-article-inner .post-thumb::after"),1==astraCustomizer.includeAnchorsInHeadindsCss?(astra_responsive_font_size("astra-settings[font-size-h1]","h1, .entry-content h1, .entry-content h1 a",!0,'.ast-sg-typo-field[data-for="h1"] .ast-sg-font-size'),astra_responsive_font_size("astra-settings[font-size-h2]","h2, .entry-content h2, .entry-content h2 a",!0,'.ast-sg-typo-field[data-for="h2"] .ast-sg-font-size'),astra_responsive_font_size("astra-settings[font-size-h3]","h3, .entry-content h3, .entry-content h3 a",!0,'.ast-sg-typo-field[data-for="h3"] .ast-sg-font-size'),astra_responsive_font_size("astra-settings[font-size-h4]","h4, .entry-content h4, .entry-content h4 a",!0,'.ast-sg-typo-field[data-for="h4"] .ast-sg-font-size'),astra_responsive_font_size("astra-settings[font-size-h5]","h5, .entry-content h5, .entry-content h5 a",!0,'.ast-sg-typo-field[data-for="h5"] .ast-sg-font-size'),astra_responsive_font_size("astra-settings[font-size-h6]","h6, .entry-content h6, .entry-content h6 a",!0,'.ast-sg-typo-field[data-for="h6"] .ast-sg-font-size')):(astra_responsive_font_size("astra-settings[font-size-h1]","h1, .entry-content h1",!0,'.ast-sg-typo-field[data-for="h1"] .ast-sg-font-size'),astra_responsive_font_size("astra-settings[font-size-h2]","h2, .entry-content h2",!0,'.ast-sg-typo-field[data-for="h2"] .ast-sg-font-size'),astra_responsive_font_size("astra-settings[font-size-h3]","h3, .entry-content h3",!0,'.ast-sg-typo-field[data-for="h3"] .ast-sg-font-size'),astra_responsive_font_size("astra-settings[font-size-h4]","h4, .entry-content h4",!0,'.ast-sg-typo-field[data-for="h4"] .ast-sg-font-size'),astra_responsive_font_size("astra-settings[font-size-h5]","h5, .entry-content h5",!0,'.ast-sg-typo-field[data-for="h5"] .ast-sg-font-size'),astra_responsive_font_size("astra-settings[font-size-h6]","h6, .entry-content h6",!0,'.ast-sg-typo-field[data-for="h6"] .ast-sg-font-size')),wp.customize("astra-settings[para-margin-bottom]",function(t){t.bind(function(t){""==t&&wp.customize.preview.send("refresh"),t&&astra_add_dynamic_css("para-margin-bottom"," p, .entry-content p { margin-bottom: "+t+"em; } ")})}),wp.customize("astra-settings[underline-content-links]",function(t){t.bind(function(t){astra_add_dynamic_css("underline-content-links",t?".ast-single-post .entry-content a, .ast-comment-content a:not(.ast-comment-edit-reply-wrap a), .woocommerce-js .woocommerce-product-details__short-description a { text-decoration: underline; } ":".ast-single-post .entry-content a, .ast-comment-content a:not(.ast-comment-edit-reply-wrap a), .woocommerce-js .woocommerce-product-details__short-description a { text-decoration: unset; } ")})}),astraCustomizer.page_builder_button_style_css?1==astraCustomizer.includeAnchorsInHeadindsCss?("color-typo"!=astraCustomizer.elementor_default_color_font_setting&&"typo"!=astraCustomizer.elementor_default_color_font_setting||astra_css("astra-settings[headings-line-height]","line-height",".elementor-widget-heading h1.elementor-heading-title, .elementor-widget-heading h2.elementor-heading-title, .elementor-widget-heading h3.elementor-heading-title, .elementor-widget-heading h4.elementor-heading-title, .elementor-widget-heading h5.elementor-heading-title, .elementor-widget-heading h6.elementor-heading-title"),astra_css("astra-settings[headings-line-height]","line-height","h1, .entry-content h1, .entry-content h1 a, h2, .entry-content h2, .entry-content h2 a, h3, .entry-content h3, .entry-content h3 a, h4, .entry-content h4, .entry-content h4 a, h5, .entry-content h5, .entry-content h5 a, h6, .entry-content h6, .entry-content h6 a, .site-title, .site-title a")):("color-typo"!=astraCustomizer.elementor_default_color_font_setting&&"typo"!=astraCustomizer.elementor_default_color_font_setting||astra_css("astra-settings[headings-line-height]","line-height",".elementor-widget-heading h1.elementor-heading-title, .elementor-widget-heading h2.elementor-heading-title, .elementor-widget-heading h3.elementor-heading-title, .elementor-widget-heading h4.elementor-heading-title, .elementor-widget-heading h5.elementor-heading-title, .elementor-widget-heading h6.elementor-heading-title"),astra_css("astra-settings[headings-line-height]","line-height","h1, .entry-content h1, h2, .entry-content h2, h3, .entry-content h3, h4, .entry-content h4, h5, .entry-content h5, h6, .entry-content h6, .site-title, .site-title a")):1==astraCustomizer.includeAnchorsInHeadindsCss?astra_css("astra-settings[headings-line-height]","line-height","h1, .entry-content h1, .entry-content h1 a, h2, .entry-content h2, .entry-content h2 a, h3, .entry-content h3, .entry-content h3 a, h4, .entry-content h4, .entry-content h4 a, h5, .entry-content h5, .entry-content h5 a, h6, .entry-content h6, .entry-content h6 a, .site-title, .site-title a"):astra_css("astra-settings[headings-line-height]","line-height","h1, .entry-content h1, h2, .entry-content h2, h3, .entry-content h3, h4, .entry-content h4, h5, .entry-content h5, h6, .entry-content h6, .site-title, .site-title a"),1==astraCustomizer.includeAnchorsInHeadindsCss?(astra_generate_outside_font_family_css("astra-settings[headings-font-family]","h1, .entry-content h1, .entry-content h1 a, h2, .entry-content h2, .entry-content h2 a, h3, .entry-content h3, .entry-content h3 a, h4, .entry-content h4, .entry-content h4 a, h5, .entry-content h5, .entry-content h5 a, h6, .entry-content h6, .entry-content h6 a, .site-title, .site-title a"),astra_generate_font_weight_css("astra-settings[headings-font-family]","astra-settings[headings-font-weight]","font-weight","h1, .entry-content h1, .entry-content h1 a, h2, .entry-content h2, .entry-content h2 a, h3, .entry-content h3, .entry-content h3 a, h4, .entry-content h4, .entry-content h4 a, h5, .entry-content h5, .entry-content h5 a, h6, .entry-content h6, .entry-content h6 a, .site-title, .site-title a"),astra_font_extras_css("headings-font-extras",".entry-content h1, .entry-content h1 a, h2, .entry-content h2, .entry-content h2 a, h3, .entry-content h3, .entry-content h3 a, h4, .entry-content h4, .entry-content h4 a, h5, .entry-content h5, .entry-content h5 a, h6, .entry-content h6, .entry-content h6 a, .site-title, .site-title a")):(astra_generate_outside_font_family_css("astra-settings[headings-font-family]","h1, .entry-content h1, h2, .entry-content h2, h3, .entry-content h3, h4, .entry-content h4, h5, .entry-content h5, h6, .entry-content h6, .site-title, .site-title a"),astra_generate_font_weight_css("astra-settings[headings-font-family]","astra-settings[headings-font-weight]","font-weight","h1, .entry-content h1, h2, .entry-content h2, h3, .entry-content h3, h4, .entry-content h4, h5, .entry-content h5, h6, .entry-content h6, .site-title, .site-title a"),astra_font_extras_css("headings-font-extras",".entry-content h1, h2, .entry-content h2, h3, .entry-content h3, h4, .entry-content h4, h5, .entry-content h5, h6, .entry-content h6, .site-title, .site-title a")),astra_css("astra-settings[link-color]","color",".entry-meta, .entry-meta *"),astra_css("astra-settings[link-h-color]","color",".read-more a:hover, .entry-meta a:hover, .entry-meta a:hover *"),astra_css("astra-settings[footer-color]","color",".ast-small-footer"),astra_css("astra-settings[footer-link-color]","color",".ast-small-footer a"),astra_css("astra-settings[footer-link-h-color]","color",".ast-small-footer a:hover"),wp.customize("astra-settings[footer-bg-obj]",function(t){t.bind(function(t){astra_background_obj_css(wp.customize,t,"footer-bg-obj"," .ast-small-footer > .ast-footer-overlay { {{css}} }")})}),astra_css("astra-settings[footer-adv-wgt-title-color]","color",".footer-adv .widget-title, .footer-adv .widget-title a"),astra_css("astra-settings[footer-adv-text-color]","color",".footer-adv"),astra_css("astra-settings[footer-adv-link-color]","color",".footer-adv a"),astra_css("astra-settings[footer-adv-link-h-color]","color",".footer-adv a:hover, .footer-adv .no-widget-text a:hover, .footer-adv a:focus, .footer-adv .no-widget-text a:focus"),wp.customize("astra-settings[footer-adv-bg-obj]",function(t){t.bind(function(t){astra_background_obj_css(wp.customize,t,"footer-adv-bg-obj"," .footer-adv-overlay { {{css}} }")})}),wp.customize("astra-settings[shop-archive-max-width]",function(t){t.bind(function(t){var e="@media all and ( min-width: 921px ) {";jQuery("body").hasClass("ast-page-builder-template")||(e+=".ast-woo-shop-archive .site-content > .ast-container{ max-width: "+parseInt(t)+"px } "),jQuery("body").hasClass("ast-fluid-width-layout")&&(e+=".ast-woo-shop-archive .site-content > .ast-container{ padding-left:20px; padding-right:20px; } "),astra_add_dynamic_css("shop-archive-max-width",e+="}")})}),wp.customize("astra-settings[mobile-header-toggle-btn-style]",function(t){t.bind(function(t){astra_add_dynamic_css("mobile-header-toggle-btn-style",""===wp.customize("astra-settings[mobile-header-toggle-btn-color]").get()&&"fill"===t?a=' [data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg { fill: #ffffff; } ':"");var e=n(document).find(".ast-mobile-menu-buttons .menu-toggle"),e=(e.removeClass("ast-mobile-menu-buttons-default ast-mobile-menu-buttons-fill ast-mobile-menu-buttons-outline"),e.removeClass("ast-mobile-menu-buttons-default ast-mobile-menu-buttons-fill ast-mobile-menu-buttons-minimal"),e.addClass("ast-mobile-menu-buttons-"+t),wp.customize("astra-settings[theme-color]").get()),o="#ffffff",s=wp.customize("astra-settings[mobile-header-toggle-btn-color]").get(),t=o="fill"!==t?e:o,a='[data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg {';astra_add_dynamic_css("mobile-header-toggle-btn-style",a=(a=(a=(a=(a=(a=a+("fill: "+(t=""!==s&&null!=s?s:t)+";")+"}")+'[data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-wrap .mobile-menu {'+("color: "+t+";"))+"}"+'[data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-fill, [data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-minimal {')+("color: "+t+";")+"border: none;")+"}"+'[data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-outline {')+("color: "+t+";")+"}")})}),wp.customize("astra-settings[mobile-header-toggle-btn-border-radius]",function(t){t.bind(function(t){astra_add_dynamic_css("mobile-header-toggle-btn-border-radius",".ast-header-break-point .main-header-bar .ast-button-wrap .menu-toggle { border-radius: "+parseInt(t)+"px } ")})}),wp.customize("astra-settings[primary-submenu-border]",function(t){t.bind(function(t){var e=wp.customize("astra-settings[primary-submenu-b-color]").get();""!=t.top||""!=t.right||""!=t.bottom||""!=t.left?astra_add_dynamic_css("primary-submenu-border",".ast-desktop .main-header-menu.submenu-with-border .sub-menu"+"{"+("border-top-width:"+t.top+"px;")+("border-right-width:"+t.right+"px;")+("border-left-width:"+t.left+"px;")+("border-bottom-width:"+t.bottom+"px;")+("border-color:"+e+";")+"border-style: solid;"+"}"+".ast-desktop .main-header-menu.submenu-with-border .sub-menu .sub-menu"+"{"+("top:-"+t.top+"px;")+"}"+"@media (min-width: 769px){"+".main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu:hover > .sub-menu, .main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu.focus > .sub-menu"+"{"+("margin-left:-"+(+t.left+ +t.right)+"px;")+"}"+"}"):wp.customize.preview.send("refresh")})}),wp.customize("astra-settings[primary-submenu-b-color]",function(t){t.bind(function(t){var e=wp.customize("astra-settings[primary-submenu-border]").get();""!=t?""==e.top&&""==e.right&&""==e.bottom&&""==e.left||astra_add_dynamic_css("primary-submenu-border-color",".ast-desktop .main-header-menu.submenu-with-border .sub-menu"+"{"+("border-top-width:"+e.top+"px;")+("border-right-width:"+e.right+"px;")+("border-left-width:"+e.left+"px;")+("border-bottom-width:"+e.bottom+"px;")+("border-color:"+t+";")+"border-style: solid;"+"}"+".ast-desktop .main-header-menu.submenu-with-border .sub-menu .sub-menu"+"{"+("top:-"+e.top+"px;")+"}"+"@media (min-width: 769px){"+".main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu:hover > .sub-menu, .main-header-menu .sub-menu .menu-item.ast-left-align-sub-menu.focus > .sub-menu"+"{"+("margin-left:-"+(+e.left+ +e.right)+"px;")+"}"+"}"):wp.customize.preview.send("refresh")})}),wp.customize("astra-settings[primary-submenu-item-b-color]",function(t){t.bind(function(t){var e=wp.customize("astra-settings[primary-submenu-item-border]").get();""!=t?1==e&&astra_add_dynamic_css("primary-submenu-item-b-color",""+".ast-desktop .main-header-menu.submenu-with-border .sub-menu .menu-link"+"{"+("border-bottom-width:"+(!0===e?"1px;":"0px;"))+("border-color:"+t+";")+"border-style: solid;"+"}"):wp.customize.preview.send("refresh")})}),wp.customize("astra-settings[primary-submenu-item-border]",function(t){t.bind(function(t){var e,o=wp.customize("astra-settings[primary-submenu-item-b-color]").get();!0===t?(e=".ast-desktop .main-header-menu.submenu-with-border .sub-menu .menu-link",astra_add_dynamic_css("primary-submenu-item-border",e=(e=(e+="{")+("border-bottom-width:"+(!0===t?"1px;":"0px;"))+("border-color:"+o+";"))+"border-style: solid;"+"}")):wp.customize.preview.send("refresh")})}),astra_css("astra-settings[header-main-rt-section-button-text-color]","color",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button"),astra_css("astra-settings[header-main-rt-section-button-back-color]","background-color",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button"),astra_css("astra-settings[header-main-rt-section-button-text-h-color]","color",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button:hover"),astra_css("astra-settings[header-main-rt-section-button-back-h-color]","background-color",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button:hover"),astra_css("astra-settings[header-main-rt-section-button-border-radius]","border-radius",".main-header-bar .ast-container .button-custom-menu-item .ast-custom-button-link .ast-custom-button","px"),astra_css("astra-settings[header-main-rt-section-button-border-color]","border-color",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button"),astra_css("astra-settings[header-main-rt-section-button-border-h-color]","border-color",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button:hover"),astra_responsive_spacing("astra-settings[header-main-rt-section-button-padding]",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button","padding",["top","right","bottom","left"]),astra_generate_outside_font_family_css("astra-settings[primary-header-button-font-family]",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button"),astra_responsive_font_size("astra-settings[primary-header-button-font-size]",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button"),astra_css("astra-settings[primary-header-button-font-weight]","font-weight",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button"),astra_css("astra-settings[primary-header-button-line-height]","line-height",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button"),astra_css("astra-settings[primary-header-button-text-transform]","text-transform",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button"),astra_css("astra-settings[primary-header-button-letter-spacing]","letter-spacing",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button, .ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button","px"),wp.customize("astra-settings[header-main-rt-section-button-border-size]",function(t){t.bind(function(t){""==t.top&&""==t.right&&""==t.bottom&&""==t.left||astra_add_dynamic_css("header-main-rt-section-button-border-size",".main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button"+"{"+("border-top-width:"+t.top+"px;")+("border-right-width:"+t.right+"px;")+("border-left-width:"+t.left+"px;")+("border-bottom-width:"+t.bottom+"px;")+"border-style: solid;"+"}")})}),""),g="",t="",h="",_=(astraCustomizer.v4_2_2_core_form_btns_styling&&""!=astraCustomizer.v4_2_2_core_form_btns_styling&&(t=", #comment .submit:hover, .search .search-submit:hover",h=", #comment .submit:focus, .search .search-submit:focus"),!astraCustomizer.page_builder_button_style_css||"color-typo"!=astraCustomizer.elementor_default_color_font_setting&&"color"!=astraCustomizer.elementor_default_color_font_setting&&"font"!=astraCustomizer.elementor_default_color_font_setting||(m=", .elementor-widget-button .elementor-button, .elementor-widget-button .elementor-button:visited",g=", .elementor-widget-button .elementor-button.elementor-size-sm, .elementor-widget-button .elementor-button.elementor-size-xs, .elementor-widget-button .elementor-button.elementor-size-md, .elementor-widget-button .elementor-button.elementor-size-lg, .elementor-widget-button .elementor-button.elementor-size-xl, .elementor-widget-button .elementor-button"),wp.customize("astra-settings[theme-button-border-group-border-size]",function(t){t.bind(function(t){var e=hasWordPressWidgetBlockEditor()?', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button, .woocommerce a.button':"",e='.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .wp-block-button .wp-block-button__link'+astraCustomizer.v4_2_2_core_form_btns_styling+m+e+r+i;""!=t.top||""!=t.right||""!=t.bottom||""!=t.left?astraCustomizer.gb_outline_buttons_patterns_support&&!astraCustomizer.updated_gb_outline_button_patterns?wp.customize.preview.send("refresh"):astra_add_dynamic_css("theme-button-border-group-border-size",e=(e=(e=(e=e+"{"+("border-top-width:"+t.top+"px;"))+("border-right-width:"+t.right+"px;"))+("border-left-width:"+t.left+"px;")+("border-bottom-width:"+t.bottom+"px;"))+"border-style: solid;"+"}"):astraCustomizer.gb_outline_buttons_patterns_support&&!astraCustomizer.updated_gb_outline_button_patterns?wp.customize.preview.send("refresh"):astra_add_dynamic_css("theme-button-border-group-border-size",e=(e=(e=e+"{"+"border-top-width: 0;")+"border-right-width: 0;"+"border-left-width: 0;")+"border-bottom-width: 0;"+"}")})}),wp.customize("astra-settings[secondary-theme-button-border-group-border-size]",function(t){t.bind(function(t){var e=".wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button";""!=t.top||""!=t.right||""!=t.bottom||""!=t.left?astraCustomizer.gb_outline_buttons_patterns_support&&!astraCustomizer.updated_gb_outline_button_patterns?wp.customize.preview.send("refresh"):astra_add_dynamic_css("secondary-theme-button-border-group-border-size",e=(e=(e=(e=e+"{"+("border-top-width:"+t.top+"px;"))+("border-right-width:"+t.right+"px;"))+("border-left-width:"+t.left+"px;")+("border-bottom-width:"+t.bottom+"px;"))+"border-style: solid;"+"}"):astraCustomizer.gb_outline_buttons_patterns_support&&!astraCustomizer.updated_gb_outline_button_patterns?wp.customize.preview.send("refresh"):astra_add_dynamic_css("secondary-theme-button-border-group-border-size",e=(e=(e=e+"{"+"border-top-width: 0;")+"border-right-width: 0;"+"border-left-width: 0;")+"border-bottom-width: 0;"+"}")})}),hasWordPressWidgetBlockEditor()?', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button':""),g=(astra_responsive_spacing("astra-settings[theme-button-padding]",'.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .woocommerce a.button, .woocommerce button.button, .woocommerce .product a.button, .woocommerce .woocommerce-message a.button, .woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce input.button,.woocommerce input.button:disabled, .woocommerce input.button:disabled[disabled], .wp-block-button .wp-block-button__link'+astraCustomizer.v4_2_2_core_form_btns_styling+g+_+i,"padding",["top","bottom"]),astra_responsive_spacing("astra-settings[theme-button-padding]",'.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .woocommerce a.button, .woocommerce button.button, .woocommerce .product a.button, .woocommerce .woocommerce-message a.button, .woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce input.button,.woocommerce input.button:disabled, .woocommerce input.button:disabled[disabled], .wp-block-button .wp-block-button__link'+astraCustomizer.v4_2_2_core_form_btns_styling+g+_+i,"padding",["left","right"]),astra_responsive_spacing("astra-settings[secondary-theme-button-padding]",".wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button","padding",["top","bottom"]),astra_responsive_spacing("astra-settings[secondary-theme-button-padding]",".wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button","padding",["left","right"]),wp.customize("astra-settings[transparent-header-button-border-group]",function(t){t.bind(function(t){t=JSON.parse(t)["header-main-rt-trans-section-button-border-size"];""==t.top&&""==t.right&&""==t.bottom&&""==t.left||astra_add_dynamic_css("header-main-rt-trans-section-button-border-size",".ast-theme-transparent-header .main-header-bar .button-custom-menu-item .ast-custom-button-link .ast-custom-button"+"{"+("border-top-width:"+t.top+"px;")+("border-right-width:"+t.right+"px;")+("border-left-width:"+t.left+"px;")+("border-bottom-width:"+t.bottom+"px;")+"border-style: solid;"+"}")})}),astra_generate_outside_font_family_css("astra-settings[font-family-site-title]",".site-title, .site-title a"),astra_generate_font_weight_css("astra-settings[font-family-site-title]","astra-settings[font-weight-site-title]","font-weight",".site-title, .site-title a"),astra_responsive_font_size("astra-settings[font-size-site-title]",".site-title, .site-title a"),astra_font_extras_css("font-extras-site-title",".site-title, .site-title a"),astra_generate_outside_font_family_css("astra-settings[font-family-site-tagline]",".ast-sg-logo-section .site-description, .site-header .site-description"),astra_generate_font_weight_css("astra-settings[font-family-site-tagline]","astra-settings[font-weight-site-tagline]","font-weight",".ast-sg-logo-section .site-description, .site-header .site-description"),astra_responsive_font_size("astra-settings[font-size-site-tagline]",".ast-sg-logo-section .site-description, .site-header .site-description"),astra_css("astra-settings[line-height-site-tagline]","line-height",".ast-sg-logo-section .site-description, .site-header .site-description"),astra_css("astra-settings[text-transform-site-tagline]","text-transform",".ast-sg-logo-section .site-description, .site-header .site-description"),_=hasWordPressWidgetBlockEditor()?', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button, .woocommerce a.button':r,hasWordPressWidgetBlockEditor()?', form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:hover, form[CLASS*="wp-block-search__"].wp-block-search .wp-block-search__inside-wrapper .wp-block-search__button:focus, .woocommerce a.button:hover':o),y=", .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus, .wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover, .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover";function f(a){wp.customize("astra-settings[button-preset-style]",function(t){t.bind(function(t){var e=wp.customize("astra-settings[button-bg-color]").get(),o=wp.customize("astra-settings[button-color]").get(),s=wp.customize("astra-settings[theme-color]").get();"button_04"===t||"button_05"===t||"button_06"===t?(""===wp.customize("astra-settings[theme-button-border-group-border-color]").get()&&(jQuery("style#astra-settings-theme-button-border-group-border-color").remove(),jQuery("head").append('<style id="astra-settings-theme-button-border-group-border-color">'+a+"\t{ border-color: "+e+" }</style>")),""===o&&""!==e&&(jQuery("style#astra-settings-button-outline-preset-color").remove(),jQuery("head").append('<style id="astra-settings-button-outline-preset-color">'+a+"\t{ color: "+e+" }</style>")),""===o&&""===e&&(jQuery("style#astra-settings-button-outline-preset-color").remove(),jQuery("head").append('<style id="astra-settings-button-outline-preset-color">'+a+"\t{ color: "+s+" }</style>")),jQuery("style#astra-settings-button-preset-style-background-color").remove(),jQuery("head").append('<style id="astra-settings-button-preset-style-background-color">'+a+"\t{ background: transparent }</style>")):(jQuery("style#astra-settings-button-bg-color-background-color").remove(),jQuery("style#astra-settings-button-outline-preset-color").remove(),""===o&&""===e?jQuery("head").append('<style id="astra-settings-button-bg-color-background-color">'+a+"\t{ background-color: "+s+" }</style>"):(e=""!=e?e:s,jQuery("head").append('<style id="astra-settings-button-bg-color-background-color">'+a+"\t{ background-color: "+e+" }</style>")),""===o&&(jQuery("head").append('<style id="astra-settings-button-outline-preset-color">'+a+"\t{ color: #FFFFFF; }</style>"),jQuery("style#astra-settings-button-color-color").remove()))})}),wp.customize("astra-settings[secondary-button-preset-style]",function(t){var a=".wp-block-buttons .wp-block-button .wp-block-button__link.is-style-outline:not(.has-background), .wp-block-buttons .wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background), .ast-outline-button";t.bind(function(t){var e=wp.customize("astra-settings[secondary-button-bg-color]").get(),o=wp.customize("astra-settings[secondary-button-color]").get(),s=wp.customize("astra-settings[theme-color]").get();"button_04"===t||"button_05"===t||"button_06"===t?(""===wp.customize("astra-settings[secondary-theme-button-border-group-border-color]").get()&&(jQuery("style#astra-settings-secondary-theme-button-border-group-border-color").remove(),jQuery("head").append('<style id="astra-settings-secondary-theme-button-border-group-border-color">'+c+"\t{ border-color: "+e+" }</style>")),""===o&&""!==e&&(jQuery("style#astra-settings-secondary-button-outline-preset-color").remove(),jQuery("head").append('<style id="astra-settings-secondary-button-outline-preset-color">'+d+"\t{ color: "+e+" }</style>")),""===o&&""===e&&(jQuery("style#astra-settings-secondary-button-outline-preset-color").remove(),jQuery("head").append('<style id="astra-settings-secondary-button-outline-preset-color">'+d+"\t{ color: "+s+" }</style>")),jQuery("style#astra-settings-secondary-button-preset-style-background-color").remove(),jQuery("head").append('<style id="astra-settings-secondary-button-preset-style-background-color">'+a+"\t{ background: transparent }</style>")):(jQuery("style#astra-settings-secondary-button-bg-color-background-color").remove(),jQuery("style#astra-settings-secondary-button-outline-preset-color").remove(),""===o&&""===e?jQuery("head").append('<style id="astra-settings-secondary-button-bg-color-background-color">'+a+"\t{ background-color: "+s+" }</style>"):(e=""!=e?e:s,jQuery("head").append('<style id="astra-settings-secondary-button-bg-color-background-color">'+a+"\t{ background-color: "+e+" }</style>")),""===o&&(jQuery("head").append('<style id="astra-settings-secondary-button-outline-preset-color">'+d+"\t{ color: #FFFFFF; }</style>"),jQuery("style#astra-settings-secondary-button-color-color").remove()),""===t&&wp.customize.preview.send("refresh"))})}),wp.customize("astra-settings[button-color]",function(t){t.bind(function(t){var e;""===t?"button_04"===(e=wp.customize("astra-settings[button-preset-style]").get())||"button_05"===e||"button_06"===e?(e=wp.customize("astra-settings[button-bg-color]").get(),jQuery("style#astra-settings-button-outline-color").remove(),jQuery("head").append('<style id="astra-settings-button-color-color">'+a+"\t{ color: "+e+" }</style>")):(jQuery("style#astra-settings-button-color-color").remove(),jQuery("head").append('<style id="astra-settings-button-color-color">'+a+"\t{ color: #FFFFFF }</style>")):(jQuery("style#astra-settings-button-color-color").remove(),jQuery("head").append('<style id="astra-settings-button-color-color">'+a+"\t{ color: "+t+" }</style>"))})}),wp.customize("astra-settings[secondary-button-color]",function(t){t.bind(function(t){var e,o;""===t?(o=wp.customize("astra-settings[secondary-button-preset-style]").get(),e=wp.customize("astra-settings[theme-color]").get(),"button_04"===o||"button_05"===o||"button_06"===o?(o=wp.customize("astra-settings[secondary-button-bg-color]").get(),jQuery("style#astra-settings-secondary-button-color-color").remove(),jQuery("head").append('<style id="astra-settings-button-color-color">'+d+"\t{ color: "+o+" }</style>")):(jQuery("style#astra-settings-button-color-color").remove(),jQuery("head").append('<style id="astra-settings-secondary-button-color-color">'+d+"\t{ color: "+e+" }</style>"))):(jQuery("style#astra-settings-secondary-button-color-color").remove(),jQuery("head").append('<style id="astra-settings-secondary-button-color-color">'+d+"\t{ color: "+t+" }</style>"))})}),wp.customize("astra-settings[button-bg-color]",function(t){t.bind(function(t){var e=wp.customize("astra-settings[button-preset-style]").get(),o=wp.customize("astra-settings[theme-color]").get(),s=wp.customize("astra-settings[button-color]").get();"button_04"===e||"button_05"===e||"button_06"===e?(s=wp.customize("astra-settings[button-color]").get(),""===wp.customize("astra-settings[theme-button-border-group-border-color]").get()&&(jQuery("style#astra-settings-theme-button-border-group-border-color").remove(),jQuery("head").append('<style id="astra-settings-theme-button-border-group-border-color">'+a+"\t{ border-color: "+t+" }</style>")),""===s&&(jQuery("style#astra-settings-button-outline-preset-color").remove(),jQuery("head").append('<style id="astra-settings-button-outline-preset-color">'+a+"\t{ color: "+t+" }</style>"))):(jQuery("style#astra-settings-button-bg-color-background-color").remove(),jQuery("style#astra-settings-button-outline-preset-color").remove(),t=""!=t?t:o,""===s&&jQuery("head").append('<style id="astra-settings-button-outline-preset-color">'+a+"\t{ color: #FFFFFF; }</style>"),jQuery("head").append('<style id="stra-settings-button-bg-color-background-color">'+a+"\t{ background-color: "+t+" }</style>"))})}),wp.customize("astra-settings[secondary-button-bg-color]",function(t){t.bind(function(t){var e=wp.customize("astra-settings[secondary-button-preset-style]").get(),o=wp.customize("astra-settings[theme-color]").get(),s=wp.customize("astra-settings[secondary-button-color]").get(),a=wp.customize("astra-settings[secondary-theme-button-border-group-border-color]").get();"button_04"===e||"button_05"===e||"button_06"===e?(""===a&&(jQuery("style#astra-settings-secondary-theme-button-border-group-border-color").remove(),jQuery("head").append('<style id="astra-settings-secondary-theme-button-border-group-border-color">'+c+"\t{ border-color: "+t+" }</style>")),""===s&&(jQuery("style#astra-settings-secondary-button-outline-preset-color").remove(),jQuery("head").append('<style id="astra-settings-secondary-button-outline-preset-color">'+d+"\t{ color: "+t+" }</style>")),jQuery("style#astra-settings-secondary-button-bg-color-background-color").remove(),jQuery("head").append('<style id="astra-settings-secondary-button-bg-color-background-color">'+c+"\t{ background-color: transparent }</style>")):"button_01"===e||"button_02"===e||"button_03"===e?(jQuery("style#astra-settings-secondary-button-outline-preset-color").remove(),jQuery("style#astra-settings-secondary-button-bg-color-background-color").remove(),jQuery("head").append('<style id="astra-settings-secondary-button-bg-color-background-color">'+c+"\t{ background-color: "+t+" }</style>"),t=""!=t?t:o,""===s&&jQuery("head").append('<style id="astra-settings-secondary-button-outline-preset-color">'+d+"\t{ color: #FFFFFF; }</style>")):(""===a&&jQuery("head").append('<style id="astra-settings-secondary-theme-button-border-group-border-color">'+c+"\t{ border-color: "+t+" }</style>"),jQuery("style#astra-settings-secondary-button-bg-color-background-color").remove(),jQuery("head").append('<style id="astra-settings-secondary-button-bg-color-background-color">'+c+"\t{ background-color: "+t+" }</style>"))})}),wp.customize("astra-settings[woo-header-cart-product-count-color]",function(t){t.bind(function(t){t?astra_add_dynamic_css("woo-header-cart-product-count-color",".ast-menu-cart-outline .ast-cart-menu-wrap .count, .ast-site-header-cart .ast-addon-cart-wrap i.astra-icon:after { color: "+t+"; } "):wp.customize.preview.send("refresh")})}),wp.customize("astra-settings[woo-header-cart-product-count-h-color]",function(t){t.bind(function(t){t?astra_add_dynamic_css("woo-header-cart-product-count-h-color",".ast-site-header-cart .ast-site-header-cart-li:hover .ast-cart-menu-wrap .count .ast-count-text, .ast-site-header-cart .ast-site-header-cart-li:hover .ast-addon-cart-wrap i.astra-icon:after { color: "+t+"; } "):wp.customize.preview.send("refresh")})}),wp.customize("astra-settings[single-product-cart-button-width]",function(t){t.bind(function(t){var e,o=astraBuilderPreview.tablet_break_point||768;""!=t.desktop||""!=t.tablet||""!=t.mobile?(e="",astra_add_dynamic_css("header-woo-cart-icon-size",e=(e=(e=(e=(e=(e=(e+=".woocommerce div.product form.cart .button.single_add_to_cart_button {")+("width: "+t.desktop+"%;")+"} ")+("@media (max-width: "+o+"px) {")+".woocommerce div.product form.cart .button.single_add_to_cart_button {")+("width: "+t.tablet+"%;")+"} ")+"} "+("@media (max-width: "+(astraBuilderPreview.mobile_break_point||544)+"px) {"))+".woocommerce div.product form.cart .button.single_add_to_cart_button {"+("width: "+t.mobile+"%;"))+"} "+"} ")):wp.customize.preview.send("refresh")})});var t=".woocommerce .ast-sticky-add-to-cart .button.alt",e=".woocommerce .ast-sticky-add-to-cart .button.alt:hover";astra_css("astra-settings[single-product-sticky-add-to-cart-btn-n-color]","color",t),astra_css("astra-settings[single-product-sticky-add-to-cart-btn-h-color]","color",e),astra_css("astra-settings[single-product-sticky-add-to-cart-btn-bg-n-color]","background",t),astra_css("astra-settings[single-product-sticky-add-to-cart-btn-bg-h-color]","background",e),astra_css("astra-settings[single-product-sticky-add-to-cart-btn-bg-n-color]","border-color",t),astra_css("astra-settings[single-product-sticky-add-to-cart-btn-bg-h-color]","border-color",e),astra_css("astra-settings[single-product-sticky-add-to-cart-text-color]","color",".ast-sticky-add-to-cart .ast-container .ast-sticky-add-to-cart-content"),astra_css("astra-settings[single-product-sticky-add-to-cart-bg-color]","background-color",".ast-sticky-add-to-cart"),wp.customize("astra-settings[single-product-sticky-add-to-cart-position]",function(t){t.bind(function(t){var e="";astra_add_dynamic_css("sticky-add-to-cart-position",e+="top"===t?"div.ast-sticky-add-to-cart{top: 0;bottom: initial;transform: translate(0, -100%);box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.1), 0px 1px 9px rgba(0, 0, 0, 0.06);opacity: 0}":"div.ast-sticky-add-to-cart{bottom: 0;top: initial;transform: translate(0, 100%);box-shadow: 0px -1px 10px rgba(0, 0, 0, 0.1), 0px -1px 9px rgba(0, 0, 0, 0.06);opacity: 0}")})}),wp.customize("astra-settings[single-product-payment-icon-color]",function(t){t.bind(function(t){wp.customize.preview.send("refresh")})}),wp.customize("astra-settings[shop-ratings-product-archive]",function(t){t.bind(function(t){wp.customize.preview.send("refresh")})}),wp.customize("astra-settings[single-product-payment-text]",function(t){t.bind(function(t){var e=document.querySelector(".ast-single-product-payments legend");e&&(e.textContent=t)})}),wp.customize("astra-settings[single-product-payment-list]",function(t){t.bind(function(t){wp.customize.preview.send("refresh")})})}astraCustomizer.page_builder_button_style_css?(u=l=a=s=b="","color-typo"!=astraCustomizer.elementor_default_color_font_setting&&"color"!=astraCustomizer.elementor_default_color_font_setting||(b=",.elementor-widget-button .elementor-button, .elementor-widget-button .elementor-button:visited",l=", .elementor-widget-button .elementor-button, .elementor-widget-button .elementor-button:visited",u=a=s=",.elementor-widget-button .elementor-button:hover, .elementor-widget-button .elementor-button:focus"),b='.menu-toggle, button, .ast-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .wp-block-button:not(.is-style-outline) .wp-block-button__link, .ast-custom-button'+astraCustomizer.v4_2_2_core_form_btns_styling+b+_+r+i,c=".wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button",d=".wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:not(.has-text-color), .wp-block-buttons .wp-block-button.wp-block-button__link.wp-element-button.is-style-outline:not(.has-text-color), .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button",f(b),astra_css("astra-settings[button-h-color]","color",'button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .button:hover, input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .wp-block-button .wp-block-button__link:hover, .wp-block-button .wp-block-button__link:focus, .ast-custom-button:hover, .ast-custom-button:focus, .wp-block-button .uagb-buttons-repeater.wp-block-button__link:hover'+t+s+g+y+p,"",!0),astra_css("astra-settings[secondary-button-h-color]","color",".wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus, .wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover, .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover, .ast-outline:hover, .ast-outline:focus, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button:hover","",!0),astra_css("astra-settings[button-bg-h-color]","background-color",'button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .button:hover, input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .wp-block-button .wp-block-button__link:hover, .wp-block-button .wp-block-button__link:focus, .ast-custom-button:hover, .ast-custom-button:focus, .wp-block-button .uagb-buttons-repeater.wp-block-button__link:hover'+t+a+g+y+o+p),astra_css("astra-settings[secondary-button-bg-h-color]","background-color",".wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus, .wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover, .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover, .ast-outline-button:hover, .ast-outline-button:focus, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button:hover"),astra_css("astra-settings[theme-button-border-group-border-color]","border-color",'.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .wp-block-button .wp-block-button__link'+astraCustomizer.v4_2_2_core_form_btns_styling+l+_+", .wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color), .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color)"+r+i),astra_css("astra-settings[secondary-theme-button-border-group-border-color]","border-color",".wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link.wp-element-button, .ast-outline-button, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button"),astra_css("astra-settings[theme-button-border-group-border-h-color]","border-color",'button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .ast-custom-button:hover, .button:hover, input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .wp-block-button .wp-block-button__link:hover, .wp-block-button .wp-block-button__link:focus'+t+h+u+g+y+o+p),astra_css("astra-settings[secondary-theme-button-border-group-border-h-color]","border-color",".wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-buttons .wp-block-button.is-style-outline .wp-block-button__link:focus, .wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color):hover, .wp-block-buttons .wp-block-button.wp-block-button__link.is-style-outline:not(.has-text-color):hover, .ast-outline-button:hover, .ast-outline-button:focus, .wp-block-uagb-buttons-child .uagb-buttons-repeater.ast-outline-button:hover")):(f(b='.menu-toggle, button, .ast-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .ast-custom-button'+_+r+i),astra_css("astra-settings[button-bg-color]","border-color",'.menu-toggle, button, .ast-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .ast-custom-button'+_+i),astra_css("astra-settings[button-h-color]","color",'button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .button:hover, input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .ast-custom-button:hover, .ast-custom-button:focus'+g+p),astra_css("astra-settings[button-bg-h-color]","background-color",'button:focus, .menu-toggle:hover, button:hover, .ast-button:hover, .button:hover, input[type=reset]:hover, input[type=reset]:focus, input#submit:hover, input#submit:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .ast-custom-button:hover, .ast-custom-button:focus'+g+p),astra_responsive_spacing("astra-settings[theme-button-padding]",'.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .woocommerce a.button, .woocommerce button.button, .woocommerce .product a.button, .woocommerce .woocommerce-message a.button, .woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce input.button,.woocommerce input.button:disabled, .woocommerce input.button:disabled[disabled]'+astraCustomizer.v4_2_2_core_form_btns_styling+_+i,"padding",["top","bottom"]),astra_responsive_spacing("astra-settings[theme-button-padding]",'.menu-toggle, button, .ast-button, .ast-custom-button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"], .woocommerce a.button, .woocommerce button.button, .woocommerce .product a.button, .woocommerce .woocommerce-message a.button, .woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce input.button,.woocommerce input.button:disabled, .woocommerce input.button:disabled[disabled]'+astraCustomizer.v4_2_2_core_form_btns_styling+_+i,"padding",["left","right"])),wp.customize.bind("preview-ready",function(){wp.customize.selectiveRefresh.bind("render-partials-response",function(t){if(t.contents.hasOwnProperty("astra-settings[footer-desktop-items]")||!t.contents.hasOwnProperty("astra-settings[header-desktop-items]")&&!t.contents.hasOwnProperty("astra-settings[header-mobile-items]"))return!1;setTimeout(function(){document.dispatchEvent(new CustomEvent("astLayoutWidthChanged",{detail:{response:t}}))},10)}),wp.customize.selectiveRefresh.bind("partial-content-rendered",function(t){if(t.partial.id.includes("footer"))return!1;sessionStorage.setItem("astPartialContentRendered",!0),document.dispatchEvent(new CustomEvent("astPartialContentRendered",{detail:{response:t}}))}),wp.customize.selectiveRefresh.bind("partial-content-rendered",function(t){wp.customize.preview.send("AstraBuilderPartialContentRendered",t)}),wp.customize.preview.bind("astPreviewDeviceChanged",function(t){document.dispatchEvent(new CustomEvent("astPreviewDeviceChanged",{detail:t}))})}),wp.customize("astra-settings[related-posts-based-on]",function(t){t.bind(function(){wp.customize.preview.send("refresh")})}),wp.customize("astra-settings[related-posts-order-by]",function(t){t.bind(function(){wp.customize.preview.send("refresh")})}),wp.customize("astra-settings[related-posts-order]",function(t){t.bind(function(){wp.customize.preview.send("refresh")})}),astra_css("astra-settings[related-posts-text-color]","color",".ast-related-post-content .entry-header .ast-related-post-title a, .ast-related-post-content .ast-related-post-excerpt"),astra_css("astra-settings[related-posts-meta-color]","color",".ast-related-post-content .entry-meta, .ast-related-post-content .entry-meta *"),astra_css("astra-settings[related-posts-title-color]","color",".ast-single-related-posts-container .ast-related-posts-title-section .ast-related-posts-title"),astra_css("astra-settings[related-posts-background-color]","background-color",".ast-single-related-posts-container"),astra_css("astra-settings[related-posts-link-color]","color",".ast-related-post-content .ast-related-post-cta a"),astra_css("astra-settings[related-posts-link-hover-color]","color",".ast-related-post-content .ast-related-post-cta a:hover"),astra_css("astra-settings[related-posts-meta-link-hover-color]","color",".ast-related-post-content .entry-meta a:hover, .ast-related-post-content .entry-meta span a span:hover"),astra_generate_outside_font_family_css("astra-settings[related-posts-title-font-family]",".ast-related-post-content .entry-header .ast-related-post-title, .ast-related-post-content .entry-header .ast-related-post-title a"),astra_css("astra-settings[related-posts-title-font-weight]","font-weight",".ast-related-post-content .entry-header .ast-related-post-title, .ast-related-post-content .entry-header .ast-related-post-title a"),astra_responsive_font_size("astra-settings[related-posts-title-font-size]",".ast-related-post-content .entry-header .ast-related-post-title, .ast-related-post-content .entry-header .ast-related-post-title a"),astra_font_extras_css("related-posts-title-font-extras",".ast-related-post-content .entry-header .ast-related-post-title, .ast-related-post-content .entry-header .ast-related-post-title a"),astra_generate_outside_font_family_css("astra-settings[related-posts-section-title-font-family]",".ast-single-related-posts-container .ast-related-posts-title-section .ast-related-posts-title"),astra_css("astra-settings[related-posts-section-title-font-weight]","font-weight",".ast-single-related-posts-container .ast-related-posts-title-section .ast-related-posts-title"),astra_responsive_font_size("astra-settings[related-posts-section-title-font-size]",".ast-single-related-posts-container .ast-related-posts-title-section .ast-related-posts-title"),astra_css("astra-settings[releted-posts-title-alignment]","text-align",".ast-single-related-posts-container .ast-related-posts-title-section .ast-related-posts-title"),astra_font_extras_css("related-posts-section-title-font-extras",".ast-single-related-posts-container .ast-related-posts-title-section .ast-related-posts-title"),astra_generate_outside_font_family_css("astra-settings[related-posts-meta-font-family]",".ast-related-post-content .entry-meta, .ast-related-post-content .entry-meta *"),astra_css("astra-settings[related-posts-meta-font-weight]","font-weight",".ast-related-post-content .entry-meta, .ast-related-post-content .entry-meta *"),astra_responsive_font_size("astra-settings[related-posts-meta-font-size]",".ast-related-post-content .entry-meta, .ast-related-post-content .entry-meta *"),astra_font_extras_css("related-posts-meta-font-extras",".ast-related-post-content .entry-meta, .ast-related-post-content .entry-meta *"),astra_generate_outside_font_family_css("astra-settings[related-posts-content-font-family]",".ast-related-post-content .ast-related-post-excerpt"),astra_css("astra-settings[related-posts-content-font-weight]","font-weight",".ast-related-post-content .ast-related-post-excerpt"),astra_responsive_font_size("astra-settings[related-posts-content-font-size]",".ast-related-post-content .ast-related-post-excerpt"),astra_font_extras_css("related-posts-content-font-extras",".ast-related-post-content .ast-related-post-excerpt"),astra_border_spacing_advanced_css("ast-sub-section-related-posts","body .site .ast-single-related-posts-container"),astra_border_spacing_advanced_css("ast-sub-section-comments","body .site .comments-area"),astra_css("astra-settings[header-color-site-title]","color",".ast-site-identity .site-title a, .ast-site-identity .site-title"),astra_css("astra-settings[header-color-h-site-title]","color",".ast-site-identity .site-title a:hover, .ast-site-identity .site-title:hover"),astra_css("astra-settings[logo-svg-icon-color]","fill",".site-branding .ast-logo-svg-icon svg"),astra_css("astra-settings[logo-svg-icon-hover-color]","fill",".site-branding .ast-logo-svg-icon:hover svg"),astra_css("astra-settings[header-color-site-tagline]","color",".ast-site-identity .site-description"),wp.customize("astra-settings[related-posts-author-avatar-size]",function(t){t.bind(function(t){var e="";astra_add_dynamic_css("related-posts-author-avatar-size",e+".ast-related-post-content .ast-author-avatar img {"+("width: "+t+"px;")+("height: "+t+"px;")+"} ")})}),astra_generate_outside_font_family_css("astra-settings[body-font-family]","body, button, input, select, textarea, .ast-button, .ast-custom-button"),astra_generate_font_weight_css("astra-settings[body-font-family]","astra-settings[body-font-weight]","font-weight","body, button, input, select, textarea, .ast-button, .ast-custom-button"),astra_font_extras_css("body-font-extras","body, button, input, select, textarea, .ast-button, .ast-custom-button"),wp.customize("astra-settings[font-size-body]",function(t){t.bind(function(t){var e,o,s,a,n,r;t.desktop||t.mobile||t.tablet?(o="body, button, input, select, textarea, .ast-button, .ast-custom-button",a=s=e="",n="font-size",r=(r=(r="astra-settings[font-size-body]").replace("[","-")).replace("]",""),jQuery("style#"+r+"-"+n).remove(),""!=t.desktop&&(e="font-size: "+t.desktop+(null==t["desktop-unit"]?"px":t["desktop-unit"])),""!=t.tablet&&(s="font-size: "+t.tablet+(null==t["tablet-unit"]?"px":t["tablet-unit"])),""!=t.mobile&&(a="font-size: "+t.mobile+(null==t["mobile-unit"]?"px":t["mobile-unit"])),jQuery("head").append('<style id="'+r+"-"+n+'">'+o+"\t{ "+e+" }@media (max-width: 768px) {.ast-header-break-point "+o+" { "+s+" } }@media (max-width: 544px) {.ast-header-break-point "+o+" { "+a+" } }</style>")):jQuery("style#"+r+"-font-size").remove()})}),astra_refresh_customizer("astra-settings[related-metadata-separator]"),astra_refresh_customizer("astra-settings[related-posts-image-ratio-type]"),astra_refresh_customizer("astra-settings[related-posts-image-ratio-pre-scale]"),astra_refresh_customizer("astra-settings[related-posts-image-custom-scale-width]"),astra_refresh_customizer("astra-settings[related-posts-image-custom-scale-height]"),astra_refresh_customizer("astra-settings[related-posts-image-size]"),astra_refresh_customizer("astra-settings[related-posts-author-prefix-label]"),astra_refresh_customizer("astra-settings[related-posts-author-avatar]"),astra_refresh_customizer("astra-settings[related-posts-meta-date-type]"),astra_refresh_customizer("astra-settings[related-posts-date-format]"),astra_refresh_customizer("astra-settings[related-posts-category-style]"),astra_refresh_customizer("astra-settings[related-posts-tag-style]")})(jQuery); trumbowyg.js 0000644 00000171331 15100021164 0007135 0 ustar 00 /** * Trumbowyg v2.14.0 - A lightweight WYSIWYG editor * Trumbowyg core file * ------------------------ * @link http://alex-d.github.io/Trumbowyg * @license MIT * @author Alexandre Demode (Alex-D) * Twitter : @AlexandreDemode * Website : alex-d.fr */ jQuery.trumbowyg = { langs: { en: { viewHTML: 'View HTML', undo: 'Undo', redo: 'Redo', formatting: 'Formatting', p: 'Paragraph', blockquote: 'Quote', code: 'Code', header: 'Header', bold: 'Bold', italic: 'Italic', strikethrough: 'Stroke', underline: 'Underline', strong: 'Strong', em: 'Emphasis', del: 'Deleted', superscript: 'Superscript', subscript: 'Subscript', unorderedList: 'Unordered list', orderedList: 'Ordered list', insertImage: 'Insert Image', link: 'Link', createLink: 'Insert link', unlink: 'Remove link', justifyLeft: 'Align Left', justifyCenter: 'Align Center', justifyRight: 'Align Right', justifyFull: 'Align Justify', horizontalRule: 'Insert horizontal rule', removeformat: 'Remove format', fullscreen: 'Fullscreen', close: 'Close', submit: 'Confirm', reset: 'Cancel', required: 'Required', description: 'Description', title: 'Title', text: 'Text', target: 'Target', width: 'Width' } }, // Plugins plugins: {}, // SVG Path globally svgPath: null, hideButtonTexts: null }; // Makes default options read-only Object.defineProperty(jQuery.trumbowyg, 'defaultOptions', { value: { lang: 'en', fixedBtnPane: false, fixedFullWidth: false, autogrow: false, autogrowOnEnter: false, imageWidthModalEdit: false, prefix: 'trumbowyg-', semantic: true, resetCss: false, removeformatPasted: false, tagsToRemove: [], tagsToKeep: ['hr', 'img', 'embed', 'iframe', 'input'], btns: [ ['viewHTML'], ['undo', 'redo'], // Only supported in Blink browsers ['formatting'], ['strong', 'em', 'del'], ['superscript', 'subscript'], ['link'], ['insertImage'], ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'], ['unorderedList', 'orderedList'], ['horizontalRule'], ['removeformat'], ['fullscreen'] ], // For custom button definitions btnsDef: {}, inlineElementsSelector: 'a,abbr,acronym,b,caption,cite,code,col,dfn,dir,dt,dd,em,font,hr,i,kbd,li,q,span,strikeout,strong,sub,sup,u', pasteHandlers: [], // imgDblClickHandler: default is defined in constructor plugins: {}, urlProtocol: false, minimalLinks: false }, writable: false, enumerable: true, configurable: false }); (function (navigator, window, document, $) { 'use strict'; var CONFIRM_EVENT = 'tbwconfirm', CANCEL_EVENT = 'tbwcancel'; $.fn.trumbowyg = function (options, params) { var trumbowygDataName = 'trumbowyg'; if (options === Object(options) || !options) { return this.each(function () { if (!$(this).data(trumbowygDataName)) { $(this).data(trumbowygDataName, new Trumbowyg(this, options)); } }); } if (this.length === 1) { try { var t = $(this).data(trumbowygDataName); switch (options) { // Exec command case 'execCmd': return t.execCmd(params.cmd, params.param, params.forceCss); // Modal box case 'openModal': return t.openModal(params.title, params.content); case 'closeModal': return t.closeModal(); case 'openModalInsert': return t.openModalInsert(params.title, params.fields, params.callback); // Range case 'saveRange': return t.saveRange(); case 'getRange': return t.range; case 'getRangeText': return t.getRangeText(); case 'restoreRange': return t.restoreRange(); // Enable/disable case 'enable': return t.setDisabled(false); case 'disable': return t.setDisabled(true); // Toggle case 'toggle': return t.toggle(); // Destroy case 'destroy': return t.destroy(); // Empty case 'empty': return t.empty(); // HTML case 'html': return t.html(params); } } catch (c) { } } return false; }; // @param: editorElem is the DOM element var Trumbowyg = function (editorElem, options) { var t = this, trumbowygIconsId = 'trumbowyg-icons', $trumbowyg = $.trumbowyg; // Get the document of the element. It use to makes the plugin // compatible on iframes. t.doc = editorElem.ownerDocument || document; // jQuery object of the editor t.$ta = $(editorElem); // $ta : Textarea t.$c = $(editorElem); // $c : creator options = options || {}; // Localization management if (options.lang != null || $trumbowyg.langs[options.lang] != null) { t.lang = $.extend(true, {}, $trumbowyg.langs.en, $trumbowyg.langs[options.lang]); } else { t.lang = $trumbowyg.langs.en; } t.hideButtonTexts = $trumbowyg.hideButtonTexts != null ? $trumbowyg.hideButtonTexts : options.hideButtonTexts; // SVG path var svgPathOption = $trumbowyg.svgPath != null ? $trumbowyg.svgPath : options.svgPath; t.hasSvg = svgPathOption !== false; t.svgPath = !!t.doc.querySelector('base') ? window.location.href.split('#')[0] : ''; if ($('#' + trumbowygIconsId, t.doc).length === 0 && svgPathOption !== false) { if (svgPathOption == null) { // Hack to get svgPathOption based on trumbowyg.js path var scriptElements = document.getElementsByTagName('script'); for (var i = 0; i < scriptElements.length; i += 1) { var source = scriptElements[i].src; var matches = source.match('trumbowyg(\.min)?\.js'); if (matches != null) { svgPathOption = source.substring(0, source.indexOf(matches[0])) + 'ui/icons.svg'; } } if (svgPathOption == null) { console.warn('You must define svgPath: https://goo.gl/CfTY9U'); // jshint ignore:line } } var div = t.doc.createElement('div'); div.id = trumbowygIconsId; t.doc.body.insertBefore(div, t.doc.body.childNodes[0]); $.ajax({ async: true, type: 'GET', contentType: 'application/x-www-form-urlencoded; charset=UTF-8', dataType: 'xml', crossDomain: true, url: svgPathOption, data: null, beforeSend: null, complete: null, success: function (data) { div.innerHTML = new XMLSerializer().serializeToString(data.documentElement); } }); } /** * When the button is associated to a empty object * fn and title attributs are defined from the button key value * * For example * foo: {} * is equivalent to : * foo: { * fn: 'foo', * title: this.lang.foo * } */ var h = t.lang.header, // Header translation isBlinkFunction = function () { return (window.chrome || (window.Intl && Intl.v8BreakIterator)) && 'CSS' in window; }; t.btnsDef = { viewHTML: { fn: 'toggle', class: 'trumbowyg-not-disable', }, undo: { isSupported: isBlinkFunction, key: 'Z' }, redo: { isSupported: isBlinkFunction, key: 'Y' }, p: { fn: 'formatBlock' }, blockquote: { fn: 'formatBlock' }, h1: { fn: 'formatBlock', title: h + ' 1' }, h2: { fn: 'formatBlock', title: h + ' 2' }, h3: { fn: 'formatBlock', title: h + ' 3' }, h4: { fn: 'formatBlock', title: h + ' 4' }, subscript: { tag: 'sub' }, superscript: { tag: 'sup' }, bold: { key: 'B', tag: 'b' }, italic: { key: 'I', tag: 'i' }, underline: { tag: 'u' }, strikethrough: { tag: 'strike' }, strong: { fn: 'bold', key: 'B' }, em: { fn: 'italic', key: 'I' }, del: { fn: 'strikethrough' }, createLink: { key: 'K', tag: 'a' }, unlink: {}, insertImage: {}, justifyLeft: { tag: 'left', forceCss: true }, justifyCenter: { tag: 'center', forceCss: true }, justifyRight: { tag: 'right', forceCss: true }, justifyFull: { tag: 'justify', forceCss: true }, unorderedList: { fn: 'insertUnorderedList', tag: 'ul' }, orderedList: { fn: 'insertOrderedList', tag: 'ol' }, horizontalRule: { fn: 'insertHorizontalRule' }, removeformat: {}, fullscreen: { class: 'trumbowyg-not-disable' }, close: { fn: 'destroy', class: 'trumbowyg-not-disable' }, // Dropdowns formatting: { dropdown: ['p', 'blockquote', 'h1', 'h2', 'h3', 'h4'], ico: 'p' }, link: { dropdown: ['createLink', 'unlink'] } }; // Defaults Options t.o = $.extend(true, {}, $trumbowyg.defaultOptions, options); if (!t.o.hasOwnProperty('imgDblClickHandler')) { t.o.imgDblClickHandler = t.getDefaultImgDblClickHandler(); } t.urlPrefix = t.setupUrlPrefix(); t.disabled = t.o.disabled || (editorElem.nodeName === 'TEXTAREA' && editorElem.disabled); if (options.btns) { t.o.btns = options.btns; } else if (!t.o.semantic) { t.o.btns[3] = ['bold', 'italic', 'underline', 'strikethrough']; } $.each(t.o.btnsDef, function (btnName, btnDef) { t.addBtnDef(btnName, btnDef); }); // put this here in the event it would be merged in with options t.eventNamespace = 'trumbowyg-event'; // Keyboard shortcuts are load in this array t.keys = []; // Tag to button dynamically hydrated t.tagToButton = {}; t.tagHandlers = []; // Admit multiple paste handlers t.pasteHandlers = [].concat(t.o.pasteHandlers); // Check if browser is IE t.isIE = (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') !== -1); t.init(); }; Trumbowyg.prototype = { DEFAULT_SEMANTIC_MAP: { 'b': 'strong', 'i': 'em', 's': 'del', 'strike': 'del', 'div': 'p' }, init: function () { var t = this; t.height = t.$ta.height(); t.initPlugins(); try { // Disable image resize, try-catch for old IE t.doc.execCommand('enableObjectResizing', false, false); t.doc.execCommand('defaultParagraphSeparator', false, 'p'); } catch (e) { } t.buildEditor(); t.buildBtnPane(); t.fixedBtnPaneEvents(); t.buildOverlay(); setTimeout(function () { if (t.disabled) { t.setDisabled(true); } t.$c.trigger('tbwinit'); }); }, addBtnDef: function (btnName, btnDef) { this.btnsDef[btnName] = btnDef; }, setupUrlPrefix: function () { var protocol = this.o.urlProtocol; if (!protocol) { return; } if (typeof(protocol) !== 'string') { return 'https://'; } return /:\/\/$/.test(protocol) ? protocol : protocol + '://'; }, buildEditor: function () { var t = this, prefix = t.o.prefix, html = ''; t.$box = $('<div/>', { class: prefix + 'box ' + prefix + 'editor-visible ' + prefix + t.o.lang + ' trumbowyg' }); // $ta = Textarea // $ed = Editor t.isTextarea = t.$ta.is('textarea'); if (t.isTextarea) { html = t.$ta.val(); t.$ed = $('<div/>'); t.$box .insertAfter(t.$ta) .append(t.$ed, t.$ta); } else { t.$ed = t.$ta; html = t.$ed.html(); t.$ta = $('<textarea/>', { name: t.$ta.attr('id'), height: t.height }).val(html); t.$box .insertAfter(t.$ed) .append(t.$ta, t.$ed); t.syncCode(); } t.$ta .addClass(prefix + 'textarea') .attr('tabindex', -1) ; t.$ed .addClass(prefix + 'editor') .attr({ contenteditable: true, dir: t.lang._dir || 'ltr' }) .html(html) ; if (t.o.tabindex) { t.$ed.attr('tabindex', t.o.tabindex); } if (t.$c.is('[placeholder]')) { t.$ed.attr('placeholder', t.$c.attr('placeholder')); } if (t.$c.is('[spellcheck]')) { t.$ed.attr('spellcheck', t.$c.attr('spellcheck')); } if (t.o.resetCss) { t.$ed.addClass(prefix + 'reset-css'); } if (!t.o.autogrow) { t.$ta.add(t.$ed).css({ height: t.height }); } t.semanticCode(); if (t.o.autogrowOnEnter) { t.$ed.addClass(prefix + 'autogrow-on-enter'); } var ctrl = false, composition = false, debounceButtonPaneStatus, updateEventName = 'keyup'; t.$ed .on('dblclick', 'img', t.o.imgDblClickHandler) .on('keydown', function (e) { if ((e.ctrlKey || e.metaKey) && !e.altKey) { ctrl = true; var key = t.keys[String.fromCharCode(e.which).toUpperCase()]; try { t.execCmd(key.fn, key.param); return false; } catch (c) { } } }) .on('compositionstart compositionupdate', function () { composition = true; }) .on(updateEventName + ' compositionend', function (e) { if (e.type === 'compositionend') { composition = false; } else if (composition) { return; } var keyCode = e.which; if (keyCode >= 37 && keyCode <= 40) { return; } if ((e.ctrlKey || e.metaKey) && (keyCode === 89 || keyCode === 90)) { t.semanticCode(false, true); t.$c.trigger('tbwchange'); } else if (!ctrl && keyCode !== 17) { var compositionEndIE = t.isIE ? e.type === 'compositionend' : true; t.semanticCode(false, compositionEndIE && keyCode === 13); t.$c.trigger('tbwchange'); } else if (typeof e.which === 'undefined') { t.semanticCode(false, false, true); } setTimeout(function () { ctrl = false; }, 50); }) .on('mouseup keydown keyup', function (e) { if ((!e.ctrlKey && !e.metaKey) || e.altKey) { setTimeout(function () { // "hold on" to the ctrl key for 50ms ctrl = false; }, 50); } clearTimeout(debounceButtonPaneStatus); debounceButtonPaneStatus = setTimeout(function () { t.updateButtonPaneStatus(); }, 50); }) .on('focus blur', function (e) { t.$c.trigger('tbw' + e.type); if (e.type === 'blur') { $('.' + prefix + 'active-button', t.$btnPane).removeClass(prefix + 'active-button ' + prefix + 'active'); } if (t.o.autogrowOnEnter) { if (t.autogrowOnEnterDontClose) { return; } if (e.type === 'focus') { t.autogrowOnEnterWasFocused = true; t.autogrowEditorOnEnter(); } else if (!t.o.autogrow) { t.$ed.css({height: t.$ed.css('min-height')}); t.$c.trigger('tbwresize'); } } }) .on('cut drop', function () { setTimeout(function () { t.semanticCode(false, true); t.$c.trigger('tbwchange'); }, 0); }) .on('paste', function (e) { if (t.o.removeformatPasted) { e.preventDefault(); if (window.getSelection && window.getSelection().deleteFromDocument) { window.getSelection().deleteFromDocument(); } try { // IE var text = window.clipboardData.getData('Text'); try { // <= IE10 t.doc.selection.createRange().pasteHTML(text); } catch (c) { // IE 11 t.doc.getSelection().getRangeAt(0).insertNode(t.doc.createTextNode(text)); } t.$c.trigger('tbwchange', e); } catch (d) { // Not IE t.execCmd('insertText', (e.originalEvent || e).clipboardData.getData('text/plain')); } } // Call pasteHandlers $.each(t.pasteHandlers, function (i, pasteHandler) { pasteHandler(e); }); setTimeout(function () { t.semanticCode(false, true); t.$c.trigger('tbwpaste', e); t.$c.trigger('tbwchange'); }, 0); }); t.$ta .on('keyup', function () { t.$c.trigger('tbwchange'); }) .on('paste', function () { setTimeout(function () { t.$c.trigger('tbwchange'); }, 0); }); t.$box.on('keydown', function (e) { if (e.which === 27 && $('.' + prefix + 'modal-box', t.$box).length === 1) { t.closeModal(); return false; } }); }, //autogrow when entering logic autogrowEditorOnEnter: function () { var t = this; t.$ed.removeClass('autogrow-on-enter'); var oldHeight = t.$ed[0].clientHeight; t.$ed.height('auto'); var totalHeight = t.$ed[0].scrollHeight; t.$ed.addClass('autogrow-on-enter'); if (oldHeight !== totalHeight) { t.$ed.height(oldHeight); setTimeout(function () { t.$ed.css({height: totalHeight}); t.$c.trigger('tbwresize'); }, 0); } }, // Build button pane, use o.btns option buildBtnPane: function () { var t = this, prefix = t.o.prefix; var $btnPane = t.$btnPane = $('<div/>', { class: prefix + 'button-pane' }); $.each(t.o.btns, function (i, btnGrp) { if (!$.isArray(btnGrp)) { btnGrp = [btnGrp]; } var $btnGroup = $('<div/>', { class: prefix + 'button-group ' + ((btnGrp.indexOf('fullscreen') >= 0) ? prefix + 'right' : '') }); $.each(btnGrp, function (i, btn) { try { // Prevent buildBtn error if (t.isSupportedBtn(btn)) { // It's a supported button $btnGroup.append(t.buildBtn(btn)); } } catch (c) { } }); if ($btnGroup.html().trim().length > 0) { $btnPane.append($btnGroup); } }); t.$box.prepend($btnPane); }, // Build a button and his action buildBtn: function (btnName) { // btnName is name of the button var t = this, prefix = t.o.prefix, btn = t.btnsDef[btnName], isDropdown = btn.dropdown, hasIcon = btn.hasIcon != null ? btn.hasIcon : true, textDef = t.lang[btnName] || btnName, $btn = $('<button/>', { type: 'button', class: prefix + btnName + '-button ' + (btn.class || '') + (!hasIcon ? ' ' + prefix + 'textual-button' : ''), html: t.hasSvg && hasIcon ? '<svg><use xlink:href="' + t.svgPath + '#' + prefix + (btn.ico || btnName).replace(/([A-Z]+)/g, '-$1').toLowerCase() + '"/></svg>' : t.hideButtonTexts ? '' : (btn.text || btn.title || t.lang[btnName] || btnName), title: (btn.title || btn.text || textDef) + ((btn.key) ? ' (Ctrl + ' + btn.key + ')' : ''), tabindex: -1, mousedown: function () { if (!isDropdown || $('.' + btnName + '-' + prefix + 'dropdown', t.$box).is(':hidden')) { $('body', t.doc).trigger('mousedown'); } if ((t.$btnPane.hasClass(prefix + 'disable') || t.$box.hasClass(prefix + 'disabled')) && !$(this).hasClass(prefix + 'active') && !$(this).hasClass(prefix + 'not-disable')) { return false; } t.execCmd((isDropdown ? 'dropdown' : false) || btn.fn || btnName, btn.param || btnName, btn.forceCss); return false; } }); if (isDropdown) { $btn.addClass(prefix + 'open-dropdown'); var dropdownPrefix = prefix + 'dropdown', dropdownOptions = { // the dropdown class: dropdownPrefix + '-' + btnName + ' ' + dropdownPrefix + ' ' + prefix + 'fixed-top' }; dropdownOptions['data-' + dropdownPrefix] = btnName; var $dropdown = $('<div/>', dropdownOptions); $.each(isDropdown, function (i, def) { if (t.btnsDef[def] && t.isSupportedBtn(def)) { $dropdown.append(t.buildSubBtn(def)); } }); t.$box.append($dropdown.hide()); } else if (btn.key) { t.keys[btn.key] = { fn: btn.fn || btnName, param: btn.param || btnName }; } if (!isDropdown) { t.tagToButton[(btn.tag || btnName).toLowerCase()] = btnName; } return $btn; }, // Build a button for dropdown menu // @param n : name of the subbutton buildSubBtn: function (btnName) { var t = this, prefix = t.o.prefix, btn = t.btnsDef[btnName], hasIcon = btn.hasIcon != null ? btn.hasIcon : true; if (btn.key) { t.keys[btn.key] = { fn: btn.fn || btnName, param: btn.param || btnName }; } t.tagToButton[(btn.tag || btnName).toLowerCase()] = btnName; return $('<button/>', { type: 'button', class: prefix + btnName + '-dropdown-button' + (btn.ico ? ' ' + prefix + btn.ico + '-button' : ''), html: t.hasSvg && hasIcon ? '<svg><use xlink:href="' + t.svgPath + '#' + prefix + (btn.ico || btnName).replace(/([A-Z]+)/g, '-$1').toLowerCase() + '"/></svg>' + (btn.text || btn.title || t.lang[btnName] || btnName) : (btn.text || btn.title || t.lang[btnName] || btnName), title: ((btn.key) ? ' (Ctrl + ' + btn.key + ')' : null), style: btn.style || null, mousedown: function () { $('body', t.doc).trigger('mousedown'); t.execCmd(btn.fn || btnName, btn.param || btnName, btn.forceCss); return false; } }); }, // Check if button is supported isSupportedBtn: function (b) { try { return this.btnsDef[b].isSupported(); } catch (c) { } return true; }, // Build overlay for modal box buildOverlay: function () { var t = this; t.$overlay = $('<div/>', { class: t.o.prefix + 'overlay' }).appendTo(t.$box); return t.$overlay; }, showOverlay: function () { var t = this; $(window).trigger('scroll'); t.$overlay.fadeIn(200); t.$box.addClass(t.o.prefix + 'box-blur'); }, hideOverlay: function () { var t = this; t.$overlay.fadeOut(50); t.$box.removeClass(t.o.prefix + 'box-blur'); }, // Management of fixed button pane fixedBtnPaneEvents: function () { var t = this, fixedFullWidth = t.o.fixedFullWidth, $box = t.$box; if (!t.o.fixedBtnPane) { return; } t.isFixed = false; $(window) .on('scroll.' + t.eventNamespace + ' resize.' + t.eventNamespace, function () { if (!$box) { return; } t.syncCode(); var scrollTop = $(window).scrollTop(), offset = $box.offset().top + 1, bp = t.$btnPane, oh = bp.outerHeight() - 2; if ((scrollTop - offset > 0) && ((scrollTop - offset - t.height) < 0)) { if (!t.isFixed) { t.isFixed = true; bp.css({ position: 'fixed', top: 0, left: fixedFullWidth ? '0' : 'auto', zIndex: 7 }); $([t.$ta, t.$ed]).css({marginTop: bp.height()}); } bp.css({ width: fixedFullWidth ? '100%' : (($box.width() - 1) + 'px') }); $('.' + t.o.prefix + 'fixed-top', $box).css({ position: fixedFullWidth ? 'fixed' : 'absolute', top: fixedFullWidth ? oh : oh + (scrollTop - offset) + 'px', zIndex: 15 }); } else if (t.isFixed) { t.isFixed = false; bp.removeAttr('style'); $([t.$ta, t.$ed]).css({marginTop: 0}); $('.' + t.o.prefix + 'fixed-top', $box).css({ position: 'absolute', top: oh }); } }); }, // Disable editor setDisabled: function (disable) { var t = this, prefix = t.o.prefix; t.disabled = disable; if (disable) { t.$ta.attr('disabled', true); } else { t.$ta.removeAttr('disabled'); } t.$box.toggleClass(prefix + 'disabled', disable); t.$ed.attr('contenteditable', !disable); }, // Destroy the editor destroy: function () { var t = this, prefix = t.o.prefix; if (t.isTextarea) { t.$box.after( t.$ta .css({height: ''}) .val(t.html()) .removeClass(prefix + 'textarea') .show() ); } else { t.$box.after( t.$ed .css({height: ''}) .removeClass(prefix + 'editor') .removeAttr('contenteditable') .removeAttr('dir') .html(t.html()) .show() ); } t.$ed.off('dblclick', 'img'); t.destroyPlugins(); t.$box.remove(); t.$c.removeData('trumbowyg'); $('body').removeClass(prefix + 'body-fullscreen'); t.$c.trigger('tbwclose'); $(window).off('scroll.' + t.eventNamespace + ' resize.' + t.eventNamespace); }, // Empty the editor empty: function () { this.$ta.val(''); this.syncCode(true); }, // Function call when click on viewHTML button toggle: function () { var t = this, prefix = t.o.prefix; if (t.o.autogrowOnEnter) { t.autogrowOnEnterDontClose = !t.$box.hasClass(prefix + 'editor-hidden'); } t.semanticCode(false, true); setTimeout(function () { t.doc.activeElement.blur(); t.$box.toggleClass(prefix + 'editor-hidden ' + prefix + 'editor-visible'); t.$btnPane.toggleClass(prefix + 'disable'); $('.' + prefix + 'viewHTML-button', t.$btnPane).toggleClass(prefix + 'active'); if (t.$box.hasClass(prefix + 'editor-visible')) { t.$ta.attr('tabindex', -1); } else { t.$ta.removeAttr('tabindex'); } if (t.o.autogrowOnEnter && !t.autogrowOnEnterDontClose) { t.autogrowEditorOnEnter(); } }, 0); }, // Open dropdown when click on a button which open that dropdown: function (name) { var t = this, d = t.doc, prefix = t.o.prefix, $dropdown = $('[data-' + prefix + 'dropdown=' + name + ']', t.$box), $btn = $('.' + prefix + name + '-button', t.$btnPane), show = $dropdown.is(':hidden'); $('body', d).trigger('mousedown'); if (show) { var o = $btn.offset().left; $btn.addClass(prefix + 'active'); $dropdown.css({ position: 'absolute', top: $btn.offset().top - t.$btnPane.offset().top + $btn.outerHeight(), left: (t.o.fixedFullWidth && t.isFixed) ? o + 'px' : (o - t.$btnPane.offset().left) + 'px' }).show(); $(window).trigger('scroll'); $('body', d).on('mousedown.' + t.eventNamespace, function (e) { if (!$dropdown.is(e.target)) { $('.' + prefix + 'dropdown', t.$box).hide(); $('.' + prefix + 'active', t.$btnPane).removeClass(prefix + 'active'); $('body', d).off('mousedown.' + t.eventNamespace); } }); } }, // HTML Code management html: function (html) { var t = this; if (html != null) { t.$ta.val(html); t.syncCode(true); t.$c.trigger('tbwchange'); return t; } return t.$ta.val(); }, syncTextarea: function () { var t = this; t.$ta.val(t.$ed.text().trim().length > 0 || t.$ed.find(t.o.tagsToKeep.join(',')).length > 0 ? t.$ed.html() : ''); }, syncCode: function (force) { var t = this; if (!force && t.$ed.is(':visible')) { t.syncTextarea(); } else { // wrap the content in a div it's easier to get the innerhtml var html = $('<div>').html(t.$ta.val()); //scrub the html before loading into the doc var safe = $('<div>').append(html); $(t.o.tagsToRemove.join(','), safe).remove(); t.$ed.html(safe.contents().html()); } if (t.o.autogrow) { t.height = t.$ed.height(); if (t.height !== t.$ta.css('height')) { t.$ta.css({height: t.height}); t.$c.trigger('tbwresize'); } } if (t.o.autogrowOnEnter) { // t.autogrowEditorOnEnter(); t.$ed.height('auto'); var totalheight = t.autogrowOnEnterWasFocused ? t.$ed[0].scrollHeight : t.$ed.css('min-height'); if (totalheight !== t.$ta.css('height')) { t.$ed.css({height: totalheight}); t.$c.trigger('tbwresize'); } } }, // Analyse and update to semantic code // @param force : force to sync code from textarea // @param full : wrap text nodes in <p> // @param keepRange : leave selection range as it is semanticCode: function (force, full, keepRange) { var t = this; t.saveRange(); t.syncCode(force); if (t.o.semantic) { t.semanticTag('b'); t.semanticTag('i'); t.semanticTag('s'); t.semanticTag('strike'); if (full) { var inlineElementsSelector = t.o.inlineElementsSelector, blockElementsSelector = ':not(' + inlineElementsSelector + ')'; // Wrap text nodes in span for easier processing t.$ed.contents().filter(function () { return this.nodeType === 3 && this.nodeValue.trim().length > 0; }).wrap('<span data-tbw/>'); // Wrap groups of inline elements in paragraphs (recursive) var wrapInlinesInParagraphsFrom = function ($from) { if ($from.length !== 0) { var $finalParagraph = $from.nextUntil(blockElementsSelector).addBack().wrapAll('<p/>').parent(), $nextElement = $finalParagraph.nextAll(inlineElementsSelector).first(); $finalParagraph.next('br').remove(); wrapInlinesInParagraphsFrom($nextElement); } }; wrapInlinesInParagraphsFrom(t.$ed.children(inlineElementsSelector).first()); t.semanticTag('div', true); // Unwrap paragraphs content, containing nothing usefull t.$ed.find('p').filter(function () { // Don't remove currently being edited element if (t.range && this === t.range.startContainer) { return false; } return $(this).text().trim().length === 0 && $(this).children().not('br,span').length === 0; }).contents().unwrap(); // Get rid of temporary span's $('[data-tbw]', t.$ed).contents().unwrap(); // Remove empty <p> t.$ed.find('p:empty').remove(); } if (!keepRange) { t.restoreRange(); } t.syncTextarea(); } }, semanticTag: function (oldTag, copyAttributes) { var newTag; if (this.o.semantic != null && typeof this.o.semantic === 'object' && this.o.semantic.hasOwnProperty(oldTag)) { newTag = this.o.semantic[oldTag]; } else if (this.o.semantic === true && this.DEFAULT_SEMANTIC_MAP.hasOwnProperty(oldTag)) { newTag = this.DEFAULT_SEMANTIC_MAP[oldTag]; } else { return; } $(oldTag, this.$ed).each(function () { var $oldTag = $(this); if($oldTag.contents().length === 0) { return false; } $oldTag.wrap('<' + newTag + '/>'); if (copyAttributes) { $.each($oldTag.prop('attributes'), function () { $oldTag.parent().attr(this.name, this.value); }); } $oldTag.contents().unwrap(); }); }, // Function call when user click on "Insert Link" createLink: function () { var t = this, documentSelection = t.doc.getSelection(), node = documentSelection.focusNode, text = new XMLSerializer().serializeToString(documentSelection.getRangeAt(0).cloneContents()), url, title, target; while (['A', 'DIV'].indexOf(node.nodeName) < 0) { node = node.parentNode; } if (node && node.nodeName === 'A') { var $a = $(node); text = $a.text(); url = $a.attr('href'); if (!t.o.minimalLinks) { title = $a.attr('title'); target = $a.attr('target'); } var range = t.doc.createRange(); range.selectNode(node); documentSelection.removeAllRanges(); documentSelection.addRange(range); } t.saveRange(); var options = { url: { label: 'URL', required: true, value: url }, text: { label: t.lang.text, value: text } }; if (!t.o.minimalLinks) { Object.assign(options, { title: { label: t.lang.title, value: title }, target: { label: t.lang.target, value: target } }); } t.openModalInsert(t.lang.createLink, options, function (v) { // v is value var url = t.prependUrlPrefix(v.url); if (!url.length) { return false; } var link = $(['<a href="', url, '">', v.text || v.url, '</a>'].join('')); if (!t.o.minimalLinks) { if (v.title.length > 0) { link.attr('title', v.title); } if (v.target.length > 0) { link.attr('target', v.target); } } t.range.deleteContents(); t.range.insertNode(link[0]); t.syncCode(); t.$c.trigger('tbwchange'); return true; }); }, prependUrlPrefix: function (url) { var t = this; if (!t.urlPrefix) { return url; } var VALID_LINK_PREFIX = /^([a-z][-+.a-z0-9]*:|\/|#)/i; if (VALID_LINK_PREFIX.test(url)) { return url; } var SIMPLE_EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (SIMPLE_EMAIL_REGEX.test(url)) { return 'mailto:' + url; } return t.urlPrefix + url; }, unlink: function () { var t = this, documentSelection = t.doc.getSelection(), node = documentSelection.focusNode; if (documentSelection.isCollapsed) { while (['A', 'DIV'].indexOf(node.nodeName) < 0) { node = node.parentNode; } if (node && node.nodeName === 'A') { var range = t.doc.createRange(); range.selectNode(node); documentSelection.removeAllRanges(); documentSelection.addRange(range); } } t.execCmd('unlink', undefined, undefined, true); }, insertImage: function () { var t = this; t.saveRange(); var options = { url: { label: 'URL', required: true }, alt: { label: t.lang.description, value: t.getRangeText() } }; if (t.o.imageWidthModalEdit) { options.width = {}; } t.openModalInsert(t.lang.insertImage, options, function (v) { // v are values t.execCmd('insertImage', v.url, false, true); var $img = $('img[src="' + v.url + '"]:not([alt])', t.$box); $img.attr('alt', v.alt); if (t.o.imageWidthModalEdit) { $img.attr({ width: v.width }); } t.syncCode(); t.$c.trigger('tbwchange'); return true; }); }, fullscreen: function () { var t = this, prefix = t.o.prefix, fullscreenCssClass = prefix + 'fullscreen', isFullscreen; t.$box.toggleClass(fullscreenCssClass); isFullscreen = t.$box.hasClass(fullscreenCssClass); $('body').toggleClass(prefix + 'body-fullscreen', isFullscreen); $(window).trigger('scroll'); t.$c.trigger('tbw' + (isFullscreen ? 'open' : 'close') + 'fullscreen'); }, /* * Call method of trumbowyg if exist * else try to call anonymous function * and finaly native execCommand */ execCmd: function (cmd, param, forceCss, skipTrumbowyg) { var t = this; skipTrumbowyg = !!skipTrumbowyg || ''; if (cmd !== 'dropdown') { t.$ed.focus(); } try { t.doc.execCommand('styleWithCSS', false, forceCss || false); } catch (c) { } try { t[cmd + skipTrumbowyg](param); } catch (c) { try { cmd(param); } catch (e2) { if (cmd === 'insertHorizontalRule') { param = undefined; } else if (cmd === 'formatBlock' && t.isIE) { param = '<' + param + '>'; } t.doc.execCommand(cmd, false, param); t.syncCode(); t.semanticCode(false, true); } if (cmd !== 'dropdown') { t.updateButtonPaneStatus(); t.$c.trigger('tbwchange'); } } }, // Open a modal box openModal: function (title, content) { var t = this, prefix = t.o.prefix; // No open a modal box when exist other modal box if ($('.' + prefix + 'modal-box', t.$box).length > 0) { return false; } if (t.o.autogrowOnEnter) { t.autogrowOnEnterDontClose = true; } t.saveRange(); t.showOverlay(); // Disable all btnPane btns t.$btnPane.addClass(prefix + 'disable'); // Build out of ModalBox, it's the mask for animations var $modal = $('<div/>', { class: prefix + 'modal ' + prefix + 'fixed-top' }).css({ top: t.$box.offset().top + t.$btnPane.height(), zIndex: 99999 }).appendTo($(t.doc.body)); // Click on overlay close modal by cancelling them t.$overlay.one('click', function () { $modal.trigger(CANCEL_EVENT); return false; }); // Build the form var $form = $('<form/>', { action: '', html: content }) .on('submit', function () { $modal.trigger(CONFIRM_EVENT); return false; }) .on('reset', function () { $modal.trigger(CANCEL_EVENT); return false; }) .on('submit reset', function () { if (t.o.autogrowOnEnter) { t.autogrowOnEnterDontClose = false; } }); // Build ModalBox and animate to show them var $box = $('<div/>', { class: prefix + 'modal-box', html: $form }) .css({ top: '-' + t.$btnPane.outerHeight() + 'px', opacity: 0 }) .appendTo($modal) .animate({ top: 0, opacity: 1 }, 100); // Append title $('<span/>', { text: title, class: prefix + 'modal-title' }).prependTo($box); $modal.height($box.outerHeight() + 10); // Focus in modal box $('input:first', $box).focus(); // Append Confirm and Cancel buttons t.buildModalBtn('submit', $box); t.buildModalBtn('reset', $box); $(window).trigger('scroll'); return $modal; }, // @param n is name of modal buildModalBtn: function (n, $modal) { var t = this, prefix = t.o.prefix; return $('<button/>', { class: prefix + 'modal-button ' + prefix + 'modal-' + n, type: n, text: t.lang[n] || n }).appendTo($('form', $modal)); }, // close current modal box closeModal: function () { var t = this, prefix = t.o.prefix; t.$btnPane.removeClass(prefix + 'disable'); t.$overlay.off(); // Find the modal box var $modalBox = $('.' + prefix + 'modal-box', $(t.doc.body)); $modalBox.animate({ top: '-' + $modalBox.height() }, 100, function () { $modalBox.parent().remove(); t.hideOverlay(); }); t.restoreRange(); }, // Preformated build and management modal openModalInsert: function (title, fields, cmd) { var t = this, prefix = t.o.prefix, lg = t.lang, html = ''; $.each(fields, function (fieldName, field) { var l = field.label || fieldName, n = field.name || fieldName, a = field.attributes || {}; var attr = Object.keys(a).map(function (prop) { return prop + '="' + a[prop] + '"'; }).join(' '); html += '<label><input type="' + (field.type || 'text') + '" name="' + n + '"' + (field.type === 'checkbox' && field.value ? ' checked="checked"' : ' value="' + (field.value || '').replace(/"/g, '"')) + '"' + attr + '><span class="' + prefix + 'input-infos"><span>' + (lg[l] ? lg[l] : l) + '</span></span></label>'; }); return t.openModal(title, html) .on(CONFIRM_EVENT, function () { var $form = $('form', $(this)), valid = true, values = {}; $.each(fields, function (fieldName, field) { var n = field.name || fieldName; var $field = $('input[name="' + n + '"]', $form), inputType = $field.attr('type'); switch (inputType.toLowerCase()) { case 'checkbox': values[n] = $field.is(':checked'); break; case 'radio': values[n] = $field.filter(':checked').val(); break; default: values[n] = $.trim($field.val()); break; } // Validate value if (field.required && values[n] === '') { valid = false; t.addErrorOnModalField($field, t.lang.required); } else if (field.pattern && !field.pattern.test(values[n])) { valid = false; t.addErrorOnModalField($field, field.patternError); } }); if (valid) { t.restoreRange(); if (cmd(values, fields)) { t.syncCode(); t.$c.trigger('tbwchange'); t.closeModal(); $(this).off(CONFIRM_EVENT); } } }) .one(CANCEL_EVENT, function () { $(this).off(CONFIRM_EVENT); t.closeModal(); }); }, addErrorOnModalField: function ($field, err) { var prefix = this.o.prefix, $label = $field.parent(); $field .on('change keyup', function () { $label.removeClass(prefix + 'input-error'); }); $label .addClass(prefix + 'input-error') .find('input+span') .append( $('<span/>', { class: prefix + 'msg-error', text: err }) ); }, getDefaultImgDblClickHandler: function () { var t = this; return function () { var $img = $(this), src = $img.attr('src'), base64 = '(Base64)'; if (src.indexOf('data:image') === 0) { src = base64; } var options = { url: { label: 'URL', value: src, required: true }, alt: { label: t.lang.description, value: $img.attr('alt') } }; if (t.o.imageWidthModalEdit) { options.width = { value: $img.attr('width') ? $img.attr('width') : '' }; } t.openModalInsert(t.lang.insertImage, options, function (v) { if (v.url !== base64) { $img.attr({ src: v.url }); } $img.attr({ alt: v.alt }); if (t.o.imageWidthModalEdit) { if (parseInt(v.width) > 0) { $img.attr({ width: v.width }); } else { $img.removeAttr('width'); } } return true; }); return false; }; }, // Range management saveRange: function () { var t = this, documentSelection = t.doc.getSelection(); t.range = null; if (!documentSelection || !documentSelection.rangeCount) { return; } var savedRange = t.range = documentSelection.getRangeAt(0), range = t.doc.createRange(), rangeStart; range.selectNodeContents(t.$ed[0]); range.setEnd(savedRange.startContainer, savedRange.startOffset); rangeStart = (range + '').length; t.metaRange = { start: rangeStart, end: rangeStart + (savedRange + '').length }; }, restoreRange: function () { var t = this, metaRange = t.metaRange, savedRange = t.range, documentSelection = 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.$ed[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]); } } } } documentSelection.removeAllRanges(); documentSelection.addRange(range || savedRange); }, getRangeText: function () { return this.range + ''; }, updateButtonPaneStatus: function () { var t = this, prefix = t.o.prefix, tags = t.getTagsRecursive(t.doc.getSelection().focusNode), activeClasses = prefix + 'active-button ' + prefix + 'active'; $('.' + prefix + 'active-button', t.$btnPane).removeClass(activeClasses); $.each(tags, function (i, tag) { var btnName = t.tagToButton[tag.toLowerCase()], $btn = $('.' + prefix + btnName + '-button', t.$btnPane); if ($btn.length > 0) { $btn.addClass(activeClasses); } else { try { $btn = $('.' + prefix + 'dropdown .' + prefix + btnName + '-dropdown-button', t.$box); var dropdownBtnName = $btn.parent().data('dropdown'); $('.' + prefix + dropdownBtnName + '-button', t.$box).addClass(activeClasses); } catch (e) { } } }); }, getTagsRecursive: function (element, tags) { var t = this; tags = tags || (element && element.tagName ? [element.tagName] : []); if (element && element.parentNode) { element = element.parentNode; } else { return tags; } var tag = element.tagName; if (tag === 'DIV') { return tags; } if (tag === 'P' && element.style.textAlign !== '') { tags.push(element.style.textAlign); } $.each(t.tagHandlers, function (i, tagHandler) { tags = tags.concat(tagHandler(element, t)); }); tags.push(tag); return t.getTagsRecursive(element, tags).filter(function (tag) { return tag != null; }); }, // Plugins initPlugins: function () { var t = this; t.loadedPlugins = []; $.each($.trumbowyg.plugins, function (name, plugin) { if (!plugin.shouldInit || plugin.shouldInit(t)) { plugin.init(t); if (plugin.tagHandler) { t.tagHandlers.push(plugin.tagHandler); } t.loadedPlugins.push(plugin); } }); }, destroyPlugins: function () { $.each(this.loadedPlugins, function (i, plugin) { if (plugin.destroy) { plugin.destroy(); } }); } }; })(navigator, window, document, jQuery); vanilla-picker.js 0000644 00000116334 15100021164 0010001 0 ustar 00 /*! * 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 (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global.Picker = factory()); }(this, (function () { 'use strict'; var classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; var createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); String.prototype.startsWith = String.prototype.startsWith || function (needle) { return this.indexOf(needle) === 0; }; String.prototype.padStart = String.prototype.padStart || function (len, pad) { var str = this;while (str.length < len) { str = pad + str; }return str; }; var colorNames = { aliceblue: '#f0f8ff', antiquewhite: '#faebd7', aqua: '#00ffff', aquamarine: '#7fffd4', azure: '#f0ffff', beige: '#f5f5dc', bisque: '#ffe4c4', black: '#000000', blanchedalmond: '#ffebcd', blue: '#0000ff', blueviolet: '#8a2be2', brown: '#a52a2a', burlywood: '#deb887', cadetblue: '#5f9ea0', chartreuse: '#7fff00', chocolate: '#d2691e', coral: '#ff7f50', cornflowerblue: '#6495ed', cornsilk: '#fff8dc', crimson: '#dc143c', cyan: '#00ffff', darkblue: '#00008b', darkcyan: '#008b8b', darkgoldenrod: '#b8860b', darkgray: '#a9a9a9', darkgreen: '#006400', darkgrey: '#a9a9a9', darkkhaki: '#bdb76b', darkmagenta: '#8b008b', darkolivegreen: '#556b2f', darkorange: '#ff8c00', darkorchid: '#9932cc', darkred: '#8b0000', darksalmon: '#e9967a', darkseagreen: '#8fbc8f', darkslateblue: '#483d8b', darkslategray: '#2f4f4f', darkslategrey: '#2f4f4f', darkturquoise: '#00ced1', darkviolet: '#9400d3', deeppink: '#ff1493', deepskyblue: '#00bfff', dimgray: '#696969', dimgrey: '#696969', dodgerblue: '#1e90ff', firebrick: '#b22222', floralwhite: '#fffaf0', forestgreen: '#228b22', fuchsia: '#ff00ff', gainsboro: '#dcdcdc', ghostwhite: '#f8f8ff', gold: '#ffd700', goldenrod: '#daa520', gray: '#808080', green: '#008000', greenyellow: '#adff2f', grey: '#808080', honeydew: '#f0fff0', hotpink: '#ff69b4', indianred: '#cd5c5c', indigo: '#4b0082', ivory: '#fffff0', khaki: '#f0e68c', lavender: '#e6e6fa', lavenderblush: '#fff0f5', lawngreen: '#7cfc00', lemonchiffon: '#fffacd', lightblue: '#add8e6', lightcoral: '#f08080', lightcyan: '#e0ffff', lightgoldenrodyellow: '#fafad2', lightgray: '#d3d3d3', lightgreen: '#90ee90', lightgrey: '#d3d3d3', lightpink: '#ffb6c1', lightsalmon: '#ffa07a', lightseagreen: '#20b2aa', lightskyblue: '#87cefa', lightslategray: '#778899', lightslategrey: '#778899', lightsteelblue: '#b0c4de', lightyellow: '#ffffe0', lime: '#00ff00', limegreen: '#32cd32', linen: '#faf0e6', magenta: '#ff00ff', maroon: '#800000', mediumaquamarine: '#66cdaa', mediumblue: '#0000cd', mediumorchid: '#ba55d3', mediumpurple: '#9370db', mediumseagreen: '#3cb371', mediumslateblue: '#7b68ee', mediumspringgreen: '#00fa9a', mediumturquoise: '#48d1cc', mediumvioletred: '#c71585', midnightblue: '#191970', mintcream: '#f5fffa', mistyrose: '#ffe4e1', moccasin: '#ffe4b5', navajowhite: '#ffdead', navy: '#000080', oldlace: '#fdf5e6', olive: '#808000', olivedrab: '#6b8e23', orange: '#ffa500', orangered: '#ff4500', orchid: '#da70d6', palegoldenrod: '#eee8aa', palegreen: '#98fb98', paleturquoise: '#afeeee', palevioletred: '#db7093', papayawhip: '#ffefd5', peachpuff: '#ffdab9', peru: '#cd853f', pink: '#ffc0cb', plum: '#dda0dd', powderblue: '#b0e0e6', purple: '#800080', rebeccapurple: '#663399', red: '#ff0000', rosybrown: '#bc8f8f', royalblue: '#4169e1', saddlebrown: '#8b4513', salmon: '#fa8072', sandybrown: '#f4a460', seagreen: '#2e8b57', seashell: '#fff5ee', sienna: '#a0522d', silver: '#c0c0c0', skyblue: '#87ceeb', slateblue: '#6a5acd', slategray: '#708090', slategrey: '#708090', snow: '#fffafa', springgreen: '#00ff7f', steelblue: '#4682b4', tan: '#d2b48c', teal: '#008080', thistle: '#d8bfd8', tomato: '#ff6347', turquoise: '#40e0d0', violet: '#ee82ee', wheat: '#f5deb3', white: '#ffffff', whitesmoke: '#f5f5f5', yellow: '#ffff00', yellowgreen: '#9acd32' }; function printNum(num) { var decs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; var str = decs > 0 ? num.toFixed(decs).replace(/0+$/, '').replace(/\.$/, '') : num.toString(); return str || '0'; } var Color = function () { function Color(r, g, b, a) { classCallCheck(this, Color); var that = this; function parseString(input) { if (input.startsWith('hsl')) { var _input$match$map = input.match(/([\-\d\.e]+)/g).map(Number), _input$match$map2 = slicedToArray(_input$match$map, 4), h = _input$match$map2[0], s = _input$match$map2[1], l = _input$match$map2[2], _a = _input$match$map2[3]; if (_a === undefined) { _a = 1; } h /= 360; s /= 100; l /= 100; that.hsla = [h, s, l, _a]; } else if (input.startsWith('rgb')) { var _input$match$map3 = input.match(/([\-\d\.e]+)/g).map(Number), _input$match$map4 = slicedToArray(_input$match$map3, 4), _r = _input$match$map4[0], _g = _input$match$map4[1], _b = _input$match$map4[2], _a2 = _input$match$map4[3]; if (_a2 === undefined) { _a2 = 1; } that.rgba = [_r, _g, _b, _a2]; } else { if (input.startsWith('#')) { that.rgba = Color.hexToRgb(input); } else { that.rgba = Color.nameToRgb(input) || Color.hexToRgb(input); } } } if (r === undefined) ; else if (Array.isArray(r)) { this.rgba = r; } else if (b === undefined) { var color = r && '' + r; if (color) { parseString(color.toLowerCase()); } } else { this.rgba = [r, g, b, a === undefined ? 1 : a]; } } createClass(Color, [{ key: 'printRGB', value: function printRGB(alpha) { var rgb = alpha ? this.rgba : this.rgba.slice(0, 3), vals = rgb.map(function (x, i) { return printNum(x, i === 3 ? 3 : 0); }); return alpha ? 'rgba(' + vals + ')' : 'rgb(' + vals + ')'; } }, { key: 'printHSL', value: function printHSL(alpha) { var mults = [360, 100, 100, 1], suff = ['', '%', '%', '']; var hsl = alpha ? this.hsla : this.hsla.slice(0, 3), vals = hsl.map(function (x, i) { return printNum(x * mults[i], i === 3 ? 3 : 1) + suff[i]; }); return alpha ? 'hsla(' + vals + ')' : 'hsl(' + vals + ')'; } }, { key: 'printHex', value: function printHex(alpha) { var hex = this.hex; return alpha ? hex : hex.substring(0, 7); } }, { key: 'rgba', get: function get$$1() { if (this._rgba) { return this._rgba; } if (!this._hsla) { throw new Error('No color is set'); } return this._rgba = Color.hslToRgb(this._hsla); }, set: function set$$1(rgb) { if (rgb.length === 3) { rgb[3] = 1; } this._rgba = rgb; this._hsla = null; } }, { key: 'rgbString', get: function get$$1() { return this.printRGB(); } }, { key: 'rgbaString', get: function get$$1() { return this.printRGB(true); } }, { key: 'hsla', get: function get$$1() { if (this._hsla) { return this._hsla; } if (!this._rgba) { throw new Error('No color is set'); } return this._hsla = Color.rgbToHsl(this._rgba); }, set: function set$$1(hsl) { if (hsl.length === 3) { hsl[3] = 1; } this._hsla = hsl; this._rgba = null; } }, { key: 'hslString', get: function get$$1() { return this.printHSL(); } }, { key: 'hslaString', get: function get$$1() { return this.printHSL(true); } }, { key: 'hex', get: function get$$1() { var rgb = this.rgba, hex = rgb.map(function (x, i) { return i < 3 ? x.toString(16) : Math.round(x * 255).toString(16); }); return '#' + hex.map(function (x) { return x.padStart(2, '0'); }).join(''); }, set: function set$$1(hex) { this.rgba = Color.hexToRgb(hex); } }], [{ key: 'hexToRgb', value: function hexToRgb(input) { var hex = (input.startsWith('#') ? input.slice(1) : input).replace(/^(\w{3})$/, '$1F') .replace(/^(\w)(\w)(\w)(\w)$/, '$1$1$2$2$3$3$4$4') .replace(/^(\w{6})$/, '$1FF'); if (!hex.match(/^([0-9a-fA-F]{8})$/)) { throw new Error('Unknown hex color; ' + input); } var rgba = hex.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1) .map(function (x) { return parseInt(x, 16); }); rgba[3] = rgba[3] / 255; return rgba; } }, { key: 'nameToRgb', value: function nameToRgb(input) { var hex = colorNames[input]; if (hex) { return Color.hexToRgb(hex); } } }, { key: 'rgbToHsl', value: function rgbToHsl(_ref) { var _ref2 = slicedToArray(_ref, 4), r = _ref2[0], g = _ref2[1], b = _ref2[2], a = _ref2[3]; r /= 255; g /= 255; b /= 255; var max = Math.max(r, g, b), min = Math.min(r, g, b); var h = void 0, s = void 0, l = (max + min) / 2; if (max === min) { h = s = 0; } else { var d = max - min; s = l > 0.5 ? d / (2 - max - min) : d / (max + min); switch (max) { case r: h = (g - b) / d + (g < b ? 6 : 0);break; case g: h = (b - r) / d + 2;break; case b: h = (r - g) / d + 4;break; } h /= 6; } return [h, s, l, a]; } }, { key: 'hslToRgb', value: function hslToRgb(_ref3) { var _ref4 = slicedToArray(_ref3, 4), h = _ref4[0], s = _ref4[1], l = _ref4[2], a = _ref4[3]; var r = void 0, g = void 0, b = void 0; if (s === 0) { r = g = b = l; } else { var hue2rgb = function hue2rgb(p, q, t) { if (t < 0) t += 1; if (t > 1) t -= 1; if (t < 1 / 6) return p + (q - p) * 6 * t; if (t < 1 / 2) return q; if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; return p; }; var q = l < 0.5 ? l * (1 + s) : l + s - l * s, p = 2 * l - q; r = hue2rgb(p, q, h + 1 / 3); g = hue2rgb(p, q, h); b = hue2rgb(p, q, h - 1 / 3); } var rgba = [r * 255, g * 255, b * 255].map(Math.round); rgba[3] = a; return rgba; } }]); return Color; }(); var root = window; function dragTracker(options) { var ep = Element.prototype; if (!ep.matches) ep.matches = ep.msMatchesSelector || ep.webkitMatchesSelector; if (!ep.closest) ep.closest = function (s) { var node = this; do { if (node.matches(s)) return node; node = node.tagName === 'svg' ? node.parentNode : node.parentElement; } while (node); return null; }; options = options || {}; var container = options.container || options.doc.documentElement, selector = options.selector, callback = options.callback || console.log, callbackStart = options.callbackDragStart, callbackEnd = options.callbackDragEnd, callbackClick = options.callbackClick, propagate = options.propagateEvents, roundCoords = options.roundCoords !== false, dragOutside = options.dragOutside !== false, handleOffset = options.handleOffset || options.handleOffset !== false; var offsetToCenter = null; switch (handleOffset) { case 'center': offsetToCenter = true;break; case 'topleft': case 'top-left': offsetToCenter = false;break; } var dragState = void 0; function getMousePos(e, elm, offset, stayWithin) { var x = e.clientX, y = e.clientY; function respectBounds(value, min, max) { return Math.max(min, Math.min(value, max)); } if (elm) { var bounds = elm.getBoundingClientRect(); x -= bounds.left; y -= bounds.top; if (offset) { x -= offset[0]; y -= offset[1]; } if (stayWithin) { x = respectBounds(x, 0, bounds.width); y = respectBounds(y, 0, bounds.height); } if (elm !== container) { var center = offsetToCenter !== null ? offsetToCenter : elm.nodeName === 'circle' || elm.nodeName === 'ellipse'; if (center) { x -= bounds.width / 2; y -= bounds.height / 2; } } } return roundCoords ? [Math.round(x), Math.round(y)] : [x, y]; } function stopEvent(e) { e.preventDefault(); if (!propagate) { e.stopPropagation(); } } function onDown(e) { var target = void 0; if (selector) { target = selector instanceof Element ? selector.contains(e.target) ? selector : null : e.target.closest(selector); } else { target = {}; } if (target) { stopEvent(e); var mouseOffset = selector && handleOffset ? getMousePos(e, target) : [0, 0], startPos = getMousePos(e, container, mouseOffset); dragState = { target: target, mouseOffset: mouseOffset, startPos: startPos, actuallyDragged: false }; if (callbackStart) { callbackStart(target, startPos); } } } function onMove(e) { if (!dragState) { return; } stopEvent(e); var start = dragState.startPos, pos = getMousePos(e, container, dragState.mouseOffset, !dragOutside); dragState.actuallyDragged = dragState.actuallyDragged || start[0] !== pos[0] || start[1] !== pos[1]; callback(dragState.target, pos, start); } function onEnd(e, cancelled) { if (!dragState) { return; } if (callbackEnd || callbackClick) { var isClick = !dragState.actuallyDragged, pos = isClick ? dragState.startPos : getMousePos(e, container, dragState.mouseOffset, !dragOutside); if (callbackClick && isClick && !cancelled) { callbackClick(dragState.target, pos); } if (callbackEnd) { callbackEnd(dragState.target, pos, dragState.startPos, cancelled || isClick && callbackClick); } } dragState = null; } addEvent(container, 'mousedown', function (e) { if (isLeftButton(e)) { onDown(e); } else { onEnd(e, true); } }); addEvent(container, 'touchstart', function (e) { return relayTouch(e, onDown); }); addEvent(container, 'mousemove', function (e) { if (!dragState) { return; } if (isLeftButton(e)) { onMove(e); } else { onEnd(e); } }); addEvent(container, 'touchmove', function (e) { return relayTouch(e, onMove); }); addEvent(container, 'mouseup', function (e) { if (dragState && !isLeftButton(e)) { onEnd(e); } }); function onTouchEnd(e, cancelled) { onEnd(tweakTouch(e), cancelled); } addEvent(container, 'touchend', function (e) { return onTouchEnd(e); }); addEvent(container, 'touchcancel', function (e) { return onTouchEnd(e, true); }); function addEvent(target, type, handler) { target.addEventListener(type, handler); } function isLeftButton(e) { return e.buttons !== undefined ? e.buttons === 1 : e.which === 1; } function relayTouch(e, handler) { if (e.touches.length !== 1) { onEnd(e, true);return; } handler(tweakTouch(e)); } function tweakTouch(e) { var touch = e.targetTouches[0]; if (!touch) { touch = e.changedTouches[0]; } touch.preventDefault = e.preventDefault.bind(e); touch.stopPropagation = e.stopPropagation.bind(e); return touch; } } var BG_TRANSP = '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")'; var HUES = 360; var EVENT_KEY = 'keydown', EVENT_CLICK_OUTSIDE = 'mousedown', EVENT_TAB_MOVE = 'focusin'; function parseHTML(htmlString, doc) { var div = doc.createElement('div'); div.innerHTML = htmlString; return div.firstElementChild; } function $(selector, context) { return (context || document).querySelector(selector); } function addEvent(target, type, handler) { target.addEventListener(type, handler, false); } function stopEvent(e) { e.preventDefault(); e.stopPropagation(); } function onKey(target, keys, handler, stop) { addEvent(target, EVENT_KEY, function (e) { if (keys.indexOf(e.key) >= 0) { if (stop) { stopEvent(e); } handler(e); } }); } // Add the CSS function appendCSS(doc){ if(doc.querySelector('#vanilla-picker-style')){ return; } var style = document.createElement('style'); style.id = 'vanilla-picker-style'; doc.documentElement.firstElementChild .appendChild(style).textContent = '.picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.layout_default.picker_wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{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}'; } var Picker = function () { function Picker(options) { var _this = this; classCallCheck(this, Picker); this.settings = { popup: 'right', layout: 'default', alpha: true, editor: true, editorFormat: 'hex' }; this._openProxy = function (e) { return _this.openHandler(e); }; this.onChange = null; this.onDone = null; this.onOpen = null; this.onClose = null; appendCSS(options.doc); this.setOptions(options); } createClass(Picker, [{ key: 'setOptions', value: function setOptions(options) { if (!options) { return; } var settings = this.settings; function transfer(source, target, skipKeys) { for (var key in source) { if (skipKeys && skipKeys.indexOf(key) >= 0) { continue; } target[key] = source[key]; } } if (options instanceof HTMLElement) { settings.parent = options; } else { if (settings.parent && options.parent && settings.parent !== options.parent) { settings.parent.removeEventListener('click', this._openProxy, false); this._popupInited = false; } transfer(options, settings ); if (options.onChange) { this.onChange = options.onChange; } if (options.onDone) { this.onDone = options.onDone; } if (options.onOpen) { this.onOpen = options.onOpen; } if (options.onClose) { this.onClose = options.onClose; } var col = options.color || options.colour; if (col) { this._setColor(col); } } var parent = settings.parent; if (parent && settings.popup && !this._popupInited) { addEvent(parent, 'click', this._openProxy); onKey(parent, [' ', 'Spacebar', 'Enter'], this._openProxy ); this._popupInited = true; } else if (options.parent && !settings.popup) { this.show(); } } }, { key: 'openHandler', value: function openHandler(e) { if (this.show()) { e && e.preventDefault(); this.settings.parent.style.pointerEvents = 'none'; var toFocus = e && e.type === EVENT_KEY ? this._domEdit : this.domElement; setTimeout(function () { return toFocus.focus(); }, 100); if (this.onOpen) { this.onOpen(this.colour); } } } }, { key: 'closeHandler', value: function closeHandler(e) { var event = e && e.type; var doHide = false; if (!e) { doHide = true; } else if (event === EVENT_CLICK_OUTSIDE || event === EVENT_TAB_MOVE) { if (!this.domElement.contains(e.target)) { doHide = true; } } else { stopEvent(e); doHide = true; } if (doHide && this.hide()) { this.settings.parent.style.pointerEvents = ''; if (event !== EVENT_CLICK_OUTSIDE) { this.settings.parent.focus(); } if (this.onClose) { this.onClose(this.colour); } } } }, { key: 'movePopup', value: function movePopup(options, open) { this.closeHandler(); this.setOptions(options); if (open) { this.openHandler(); } } }, { key: 'setColor', value: function setColor(color, silent) { this._setColor(color, { silent: silent }); } }, { key: '_setColor', value: function _setColor(color, flags) { if (typeof color === 'string') { color = color.trim(); } if (!color) { return; } flags = flags || {}; var c = void 0; try { c = new Color(color); } catch (ex) { if (flags.failSilently) { return; } throw ex; } if (!this.settings.alpha) { var hsla = c.hsla; hsla[3] = 1; c.hsla = hsla; } this.colour = this.color = c; this._setHSLA(null, null, null, null, flags); } }, { key: 'setColour', value: function setColour(colour, silent) { this.setColor(colour, silent); } }, { key: 'show', value: function show() { var parent = this.settings.parent; if (!parent) { return false; } if (this.domElement) { var toggled = this._toggleDOM(true); this._setPosition(); return toggled; } var html = this.settings.template || '<div class="picker_wrapper" tabindex="-1"><div class="picker_arrow"></div><div class="picker_hue picker_slider"><div class="picker_selector"></div></div><div class="picker_sl"><div class="picker_selector"></div></div><div class="picker_alpha picker_slider"><div class="picker_selector"></div></div><div class="picker_editor"><input aria-label="Type a color name or hex value"/></div><div class="picker_sample"></div><div class="picker_done"><button>Ok</button></div></div>'; var wrapper = parseHTML(html, this.settings.doc); this.domElement = wrapper; this._domH = $('.picker_hue', wrapper); this._domSL = $('.picker_sl', wrapper); this._domA = $('.picker_alpha', wrapper); this._domEdit = $('.picker_editor input', wrapper); this._domSample = $('.picker_sample', wrapper); this._domOkay = $('.picker_done button', wrapper); wrapper.classList.add('layout_' + this.settings.layout); if (!this.settings.alpha) { wrapper.classList.add('no_alpha'); } if (!this.settings.editor) { wrapper.classList.add('no_editor'); } this._ifPopup(function () { return wrapper.classList.add('popup'); }); this._setPosition(); if (this.colour) { this._updateUI(); } else { this._setColor('#0cf'); } this._bindEvents(); return true; } }, { key: 'hide', value: function hide() { return this._toggleDOM(false); } }, { key: '_bindEvents', value: function _bindEvents() { var _this2 = this; var that = this, dom = this.domElement; addEvent(dom, 'click', function (e) { return e.preventDefault(); }); function createDragConfig(container, callbackRelative) { function relayDrag(_, pos) { var relX = pos[0] / container.clientWidth, relY = pos[1] / container.clientHeight; callbackRelative(relX, relY); } var config = { container: container, dragOutside: false, callback: relayDrag, callbackDragStart: relayDrag, propagateEvents: true }; return config; } dragTracker(createDragConfig(this._domH, function (x, y) { return that._setHSLA(x); })); dragTracker(createDragConfig(this._domSL, function (x, y) { return that._setHSLA(null, x, 1 - y); })); if (this.settings.alpha) { dragTracker(createDragConfig(this._domA, function (x, y) { return that._setHSLA(null, null, null, 1 - y); })); } var editInput = this._domEdit; { addEvent(editInput, 'input', function (e) { that._setColor(this.value, { fromEditor: true, failSilently: true }); }); addEvent(editInput, 'focus', function (e) { var input = this; if (input.selectionStart === input.selectionEnd) { input.select(); } }); } var popupCloseProxy = function popupCloseProxy(e) { _this2._ifPopup(function () { return _this2.closeHandler(e); }); }; var onDoneProxy = function onDoneProxy(e) { _this2._ifPopup(function () { return _this2.closeHandler(e); }); if (_this2.onDone) { _this2.onDone(_this2.colour); } }; addEvent(this.settings.doc, EVENT_CLICK_OUTSIDE, popupCloseProxy); addEvent(this.settings.doc, EVENT_TAB_MOVE, popupCloseProxy); onKey(dom, ['Esc', 'Escape'], popupCloseProxy); addEvent(this._domOkay, 'click', onDoneProxy); onKey(dom, ['Enter'], onDoneProxy); } }, { key: '_setPosition', value: function _setPosition() { var parent = this.settings.parent, elm = this.domElement; if (parent !== elm.parentNode) { parent.appendChild(elm); } this._ifPopup(function (popup) { if (getComputedStyle(parent).position === 'static') { parent.style.position = 'relative'; } var cssClass = popup === true ? 'popup_right' : 'popup_' + popup; ['popup_top', 'popup_bottom', 'popup_left', 'popup_right'].forEach(function (c) { if (c === cssClass) { elm.classList.add(c); } else { elm.classList.remove(c); } }); elm.classList.add(cssClass); }); } }, { key: '_setHSLA', value: function _setHSLA(h, s, l, a, flags) { flags = flags || {}; var col = this.colour, hsla = col.hsla; [h, s, l, a].forEach(function (x, i) { if (x || x === 0) { hsla[i] = x; } }); col.hsla = hsla; this._updateUI(flags); if (this.onChange && !flags.silent) { this.onChange(col); } } }, { key: '_updateUI', value: function _updateUI(flags) { if (!this.domElement) { return; } flags = flags || {}; var col = this.colour, hsl = col.hsla, cssHue = 'hsl(' + hsl[0] * HUES + ', 100%, 50%)', cssHSL = col.hslString, cssHSLA = col.hslaString; var uiH = this._domH, uiSL = this._domSL, uiA = this._domA, thumbH = $('.picker_selector', uiH), thumbSL = $('.picker_selector', uiSL), thumbA = $('.picker_selector', uiA); function posX(parent, child, relX) { child.style.left = relX * 100 + '%'; } function posY(parent, child, relY) { child.style.top = relY * 100 + '%'; } posX(uiH, thumbH, hsl[0]); this._domSL.style.backgroundColor = this._domH.style.color = cssHue; posX(uiSL, thumbSL, hsl[1]); posY(uiSL, thumbSL, 1 - hsl[2]); uiSL.style.color = cssHSL; posY(uiA, thumbA, 1 - hsl[3]); var opaque = cssHSL, transp = opaque.replace('hsl', 'hsla').replace(')', ', 0)'), bg = 'linear-gradient(' + [opaque, transp] + ')'; this._domA.style.backgroundImage = bg + ', ' + BG_TRANSP; if (!flags.fromEditor) { var format = this.settings.editorFormat, alpha = this.settings.alpha; var value = void 0; switch (format) { case 'rgb': value = col.printRGB(alpha);break; case 'hsl': value = col.printHSL(alpha);break; default: value = col.printHex(alpha); } this._domEdit.value = value; } this._domSample.style.color = cssHSLA; } }, { key: '_ifPopup', value: function _ifPopup(actionIf, actionElse) { if (this.settings.parent && this.settings.popup) { actionIf && actionIf(this.settings.popup); } else { actionElse && actionElse(); } } }, { key: '_toggleDOM', value: function _toggleDOM(toVisible) { var dom = this.domElement; if (!dom) { return false; } var displayStyle = toVisible ? '' : 'none', toggle = dom.style.display !== displayStyle; if (toggle) { dom.style.display = displayStyle; } return toggle; } }]); return Picker; }(); return Picker; }))); pagelayer-frontend.js 0000644 00000144065 15100021164 0010670 0 ustar 00 /* 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, .pagelayer-g-recaptcha-v3-token').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); }); // Get document for gutenberg function pagelayerGetDocumentElement(){ // Find the iframe element with the name "editor-canvas". const editorIframe = document.querySelectorAll( 'iframe[name="editor-canvas"]' ); if(! editorIframe?.[ 0 ]){ return document; } // Get the document of the iframe. const iframeDocument = editorIframe[ 0 ]?.contentWindow?.document || editorIframe[ 0 ]?.contentDocument; if ( ! iframeDocument ) { return document; } // Set the root element to the iframe document. return iframeDocument; }; // Get Window for gutenberg function pagelayerGetCurrentWindow(){ var doc = pagelayerGetDocumentElement(); return doc.defaultView || window; } // Modify jQuery for gutenberg tablet and mobile function pagelayer_query(sel, doc) { doc = doc || pagelayerGetDocumentElement(); return jQuery(sel, doc); } // Check if element is visible function pagelayer_isVisible(ele) { var win = pagelayerGetCurrentWindow(); var offset = win.innerHeight; var viewTop = win.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(){ var win = pagelayerGetCurrentWindow(); if(win.matchMedia("(min-width: "+ (pagelayer_settings['tablet_breakpoint'] + 1) +"px)").matches){ return 'desktop'; } if(win.matchMedia("(max-width: "+ pagelayer_settings['tablet_breakpoint'] +"px) and (min-width: "+ (pagelayer_settings['mobile_breakpoint'] + 1) +"px)").matches){ return 'tablet'; } if(win.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, html){ html = html || pagelayer_query('html'); // Get current width var vw = html[0].clientWidth; // 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(e){ jQuery(e.target).closest('.pagelayer-modal-container').find('.pagelayer-modal-content').show(); }; // Modal close function pagelayer_pl_modal_close(e){ jQuery(e.target).closest('.pagelayer-modal-content').hide(); } // Setup the image slider function pagelayer_pl_image_slider(jEle){ var ul = 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 = pagelayer_query('[pagelayer-id='+pl_id+']').closest('.pagelayer-tabcontainer'); pagelayer_get_tab_ele(temp_tabCont).hide(); pagelayer_query('[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 hashTabId = ''; 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 id = tEle.attr('id'); 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('<span tab-id="'+pl_id+'" id="'+id+'" class="pagelayer-tablinks" onclick="'+func+'"> <i class="'+icon+'"></i> <span>'+title+'</span></span>'); }); // Default Active by Hash var hash = location.hash.slice(1); if (!pagelayer_empty(hash)) { var hashTab = jEle.find('#' + hash); if (!pagelayer_empty(hashTab) && hashTab.length > 0) { var currentTab = hashTab.closest('.pagelayer-tablinks'); if (currentTab.length > 0) { var currentTabId = currentTab.attr('tab-id'); hashTabId = currentTabId; } } } if(hashTabId.length > 0){ pagelayer_tab_show(jEle.find('[tab-id=' + hashTabId + ']'), hashTabId); // Set the default tab }else 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'); } } var not_tabs = accHolder.find('.pagelayer-accordion_item .pagelayer-accordion-tabs'); var tabs = accHolder.find('.pagelayer-accordion-tabs').not(not_tabs); tabs.off('click'); tabs.on('click', function(e) { e.stopPropagation(); // Prevent bubbling up to parent accordions var currentTab = jQuery(this).closest('.pagelayer-accordion_item'); var accHolder = currentTab.closest('.pagelayer-accordion-holder'); // Only the current group if (currentTab.hasClass('active') && currentTab.children('.pagelayer-accordion-panel').is(':visible')) { currentTab.removeClass('active').children('.pagelayer-accordion-panel').slideUp('slow'); currentTab.find('.pagelayer-accordion-tabs').not(not_tabs).find('span i').attr('class', icon); return; } // Close only siblings inside the same accordion group accHolder.find('.pagelayer-accordion_item').not(accHolder.find('.pagelayer-accordion_item .pagelayer-accordion_item')).not(currentTab).not(currentTab.find('.pagelayer-accordion_item')).removeClass('active') .children('.pagelayer-accordion-panel').slideUp('slow') .end().find('.pagelayer-accordion-tabs').not(not_tabs).find('span i').attr('class', icon); // Open the clicked one currentTab.addClass('active').children('.pagelayer-accordion-panel').slideDown('slow'); currentTab.find('.pagelayer-accordion-tabs').not(not_tabs).find('span i').attr('class', active_icon); }); // To prevent default active click in gutenberg var setup = jEle.attr('pagelayer-setup'); // Already setup ? if(setup && setup.length > 0){ return; } jEle.attr('pagelayer-setup', 1); // 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); var not_tabs = tabs.find('.pagelayer-accordion_item .pagelayer-accordion-tabs'); var _tabs = tabs.find('.pagelayer-accordion-tabs').not(not_tabs); // Already setup ? if(setup && setup.length > 0){ _tabs.off('click'); } _tabs.on('click', function(e){ e.preventDefault(); 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').not(not_tabs).find('span i').attr('class', icon); return true; } currentTab.addClass('active').children('.pagelayer-accordion-panel').slideDown('slow'); currentTab.find('.pagelayer-accordion-tabs').not(not_tabs).find('span i').attr('class', active_icon); }); // Set that we have setup everything tabs.attr('pagelayer-setup', 1); } // Counter function pagelayer_counter(){ pagelayer_query('.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(){ pagelayer_query('.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 +='<div class="pagelayer-stars-icon pagelayer-stars-empty"><i class="fas fa-star" aria-hidden="true"></i></div>'; 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'); var id = jEle.closest('[pagelayer-id]').attr('[pagelayer-id]'); if( options.navtext ) { var right = options.navtext.replace('left','right'); options.navText = [`<i class="${options.navtext}"></i>`, `<i class="${right}"></i>`]; } // Already setup ? if(setup && setup.length > 0){ return true; } const wind = pagelayerGetCurrentWindow(); options['responsiveBaseElement'] = wind; var owlCar = ul.pagelayerOwlCarousel(options); // Refreshing Image slider after first load of page. var referrerOwl = function(){ setTimeout(function(){ owlCar.trigger('refresh.owl.carousel'); },700); } referrerOwl(); // 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(); }); }); // Gutenberg responsive Handler if(wind != window){ jQuery(wind).unbind('resize.pl_'+id, referrerOwl); jQuery(wind).on('resize.pl_'+id, referrerOwl); } // 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 = ''; var sitekey = jEle.data("sitekey"); if(!pagelayer_empty(pagelayer_recaptch_lang)){ reParam = '&hl='+pagelayer_recaptch_lang; } // Add recaptcha script if(pagelayer_empty(window.grecaptcha) && !pagelayer_empty(loadScript)){ var render = (pagelayer_recaptch_version == 'v3') ? sitekey : 'explicit'; pagelayer_query('body').append('<script src="https://www.google.com/recaptcha/api.js?render='+render+reParam+'" async defer></script>'); } // Render recaptcha var recaptcha_interval = setInterval(function(){ if(!pagelayer_empty(window.grecaptcha)){ grecaptcha.ready(function() { try{ // Call grecaptcha.execute() to trigger reCAPTCHA v3 and get a token if(pagelayer_recaptch_version == 'v3'){ var form = jEle.closest('form'); form.find('[type="submit"]').off('click').on('click', function(e){ e.preventDefault(); grecaptcha.execute(sitekey, { action: 'submit' }).then(function (token) { // Append the token to the form or element to be submitted form.find('input.pagelayer-g-recaptcha-v3-token').val(token); if(form[0].requestSubmit){ form[0].requestSubmit(); }else{ form.submit(); } }); }); }else{ var widgetID = grecaptcha.render(jEle.get(0), {'sitekey' : 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 = pagelayer_query('#' + 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(); pagelayer_query('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.attr('data-layout'); var submenu_ind = menu_holder.attr('data-submenu_ind'); var responsive = menu_holder.attr('data-responsive'); var drop_breakpoint = menu_holder.attr('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'); var afterIconSpan = aEle_sub_menu.children('.after-icon') if (aEle_sub_menu.children('.after-icon').length < 1) { aEle_sub_menu.append('<span class="after-icon fa fa-' + submenu_ind + '"></span>'); }else{ // For gutenberg afterIconSpan.attr('class', 'after-icon fa fa-' + submenu_ind); } // 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 = jEle.find('.pagelayer-testimonials-holder'); // Build the options var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-'); pagelayer_owl_init(jEle, ul, options); } var pagelayerAnimTimer = {}; 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; var id = jEle.attr('pagelayer-id'); if(pagelayer_empty(pagelayerAnimTimer[id])){ pagelayerAnimTimer[id] = {}; } // Clear the previous animations for( var time in pagelayerAnimTimer[id] ){ clearTimeout(pagelayerAnimTimer[id][time]); } initHeadline(); function initHeadline(){ // Re-set styles jEle.find('.pagelayer-aheading-holder').find('span').css('opacity', ''); //insert <i> 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] = '<b>' + letters[i] + '</b>'; letters[i] = (selected) ? '<strong class="pagelayer-aheading-in">' + letters[i] + '</strong>': '<strong>' + letters[i] + '</strong>'; } 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); clearTimeout(pagelayerAnimTimer[id][0]); pagelayerAnimTimer[id][0] = setTimeout(function(){ hideWord(nextWord); }, barAnimationDelay); clearTimeout(pagelayerAnimTimer[id][1]); pagelayerAnimTimer[id][1] = setTimeout(function(){ $word.parents('.pagelayer-words-wrapper').addClass('pagelayer-is-loading'); }, barWaiting); }else{ switchWord($word, nextWord); clearTimeout(pagelayerAnimTimer[id][2]); pagelayerAnimTimer[id][2] = 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(){ clearTimeout(pagelayerAnimTimer[id][3]); pagelayerAnimTimer[id][3] = 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')){ clearTimeout(pagelayerAnimTimer[id][4]); pagelayerAnimTimer[id][4] = setTimeout(function(){ hideLetter($letter.next(), $word, $bool, $duration); }, $duration); }else if($bool){ clearTimeout(pagelayerAnimTimer[id][5]); pagelayerAnimTimer[id][5] = setTimeout(function(){ hideWord(takeNext($word)); }, animationDelay); } if($letter.is(':last-child') && pagelayer_query('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(!$word.hasClass('pagelayer-is-visible')){ $word.parent().children().removeClass('pagelayer-is-visible'); $word.addClass('pagelayer-is-visible'); } if(!$letter.is(':last-child')){ clearTimeout(pagelayerAnimTimer[id][6]); pagelayerAnimTimer[id][6] = setTimeout(function(){ showLetter($letter.next(), $word, $bool, $duration); }, $duration); }else{ if(!$bool) { clearTimeout(pagelayerAnimTimer[id][7]); pagelayerAnimTimer[id][7] = 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'); } } } var pagelayerSetInterval = {}; function pagelayer_pl_row_slider(jEle){ var index = 0; var id = jEle.closest('[pagelayer-id]').attr('pagelayer-id'); var imageEls = jEle.find('.pagelayer-bgimg-slide'); // Get the images to be cycled. var speed = parseFloat(jEle.attr('data-speed')); // Get the speed of loop. imageEls.first().addClass('pagelayer-slide-show'); clearInterval(pagelayerSetInterval[id]); pagelayerSetInterval[id] = 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(pagelayerGetCurrentWindow()); 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 //////////////// pen.js 0000644 00000064323 15100021164 0005662 0 ustar 00 /*! Licensed under MIT, https://github.com/sofish/pen */ (function(root, doc) { var Pen, debugMode, selection, utils = {}; var toString = Object.prototype.toString; var slice = Array.prototype.slice; // allow command list var commandsReg = { block: /^(?:p|h[1-6]|blockquote|pre)$/, inline: /^(?:bold|italic|underline|insertorderedlist|insertunorderedlist|indent|outdent)$/, source: /^(?:createlink|unlink)$/, insert: /^(?:inserthorizontalrule|insertimage|insert)$/, wrap: /^(?:code)$/ }; var lineBreakReg = /^(?:blockquote|pre|div)$/i; var effectNodeReg = /(?:[pubia]|h[1-6]|blockquote|[uo]l|li)/i; var strReg = { whiteSpace: /(^\s+)|(\s+$)/g, mailTo: /^(?!mailto:|.+\/|.+#|.+\?)(.*@.*\..+)$/, http: /^(?!\w+?:\/\/|mailto:|\/|\.\/|\?|#)(.*)$/ }; var autoLinkReg = { url: /((https?|ftp):\/\/|www\.)[^\s<]{3,}/gi, prefix: /^(?:https?|ftp):\/\//i, notLink: /^(?:img|a|input|audio|video|source|code|pre|script|head|title|style)$/i, maxLength: 100 }; // type detect utils.is = function(obj, type) { return toString.call(obj).slice(8, -1) === type; }; utils.forEach = function(obj, iterator, arrayLike) { if (!obj) return; if (arrayLike == null) arrayLike = utils.is(obj, 'Array'); if (arrayLike) { for (var i = 0, l = obj.length; i < l; i++) iterator(obj[i], i, obj); } else { for (var key in obj) { if (obj.hasOwnProperty(key)) iterator(obj[key], key, obj); } } }; // copy props from a obj utils.copy = function(defaults, source) { utils.forEach(source, function (value, key) { defaults[key] = utils.is(value, 'Object') ? utils.copy({}, value) : utils.is(value, 'Array') ? utils.copy([], value) : value; }); return defaults; }; // log utils.log = function(message, force) { if (debugMode || force) console.log('%cPEN DEBUGGER: %c' + message, 'font-family:arial,sans-serif;color:#1abf89;line-height:2em;', 'font-family:cursor,monospace;color:#333;'); }; utils.delayExec = function (fn) { var timer = null; return function (delay) { clearTimeout(timer); timer = setTimeout(function() { fn(); }, delay || 1); }; }; // merge: make it easy to have a fallback utils.merge = function(config) { // default settings var defaults = { class: 'pen', debug: false, toolbar: null, // custom toolbar stay: config.stay || !config.debug, stayMsg: 'Are you going to leave here?', textarea: '<textarea name="content"></textarea>', list: [ 'blockquote', 'h2', 'h3', 'p', 'code', 'insertorderedlist', 'insertunorderedlist', 'inserthorizontalrule', 'indent', 'outdent', 'bold', 'italic', 'underline', 'createlink', 'insertimage' ], titles: {}, cleanAttrs: ['id', 'class', 'style', 'name'], cleanTags: ['script'], linksInNewWindow: false }; // user-friendly config if (config.nodeType === 1) { defaults.editor = config; } else if (config.match && config.match(/^#[\S]+$/)) { defaults.editor = doc.getElementById(config.slice(1)); } else { defaults = utils.copy(defaults, config); } return defaults; }; function commandOverall(ctx, cmd, val) { var message = ' to exec 「' + cmd + '」 command' + (val ? (' with value: ' + val) : ''); try { doc.execCommand(cmd, false, val); } catch(err) { // TODO: there's an error when insert a image to document, but not a bug return utils.log('fail' + message, true); } utils.log('success' + message); } function commandInsert(ctx, name, val) { var node = getNode(ctx); if (!node) return; ctx._range.selectNode(node); ctx._range.collapse(false); // hide menu when a image was inserted if(name === 'insertimage' && ctx._menu) toggleNode(ctx._menu, true); return commandOverall(ctx, name, val); } function commandBlock(ctx, name) { var list = effectNode(ctx, getNode(ctx), true); if (list.indexOf(name) !== -1) name = 'p'; return commandOverall(ctx, 'formatblock', name); } function commandWrap(ctx, tag, value) { value = '<' + tag + '>' + (value||selection.toString()) + '</' + tag + '>'; return commandOverall(ctx, 'insertHTML', value); } function commandLink(ctx, tag, value) { if (ctx.config.linksInNewWindow) { value = '< a href="' + value + '" target="_blank">' + (selection.toString()) + '</a>'; return commandOverall(ctx, 'insertHTML', value); } else { return commandOverall(ctx, tag, value); } } function initToolbar(ctx) { var icons = '', inputStr = '<input class="pen-input" placeholder="http://" />'; ctx._toolbar = ctx.config.toolbar; if (!ctx._toolbar) { var toolList = ctx.config.list; utils.forEach(toolList, function (name) { var klass = 'pen-icon icon-' + name; var title = ctx.config.titles[name] || ''; icons += '<i class="' + klass + '" data-action="' + name + '" title="' + title + '"></i>'; }, true); if (toolList.indexOf('createlink') >= 0 || toolList.indexOf('insertimage') >= 0) icons += inputStr; } else if (ctx._toolbar.querySelectorAll('[data-action=createlink]').length || ctx._toolbar.querySelectorAll('[data-action=insertimage]').length) { icons += inputStr; } if (icons) { ctx._menu = doc.createElement('div'); ctx._menu.setAttribute('class', ctx.config.class + '-menu pen-menu'); ctx._menu.innerHTML = icons; ctx._inputBar = ctx._menu.querySelector('input'); toggleNode(ctx._menu, true); doc.body.appendChild(ctx._menu); } if (ctx._toolbar && ctx._inputBar) toggleNode(ctx._inputBar); } function initEvents(ctx) { var toolbar = ctx._toolbar || ctx._menu, editor = ctx.config.editor; var toggleMenu = utils.delayExec(function() { ctx.highlight().menu(); }); var outsideClick = function() {}; function updateStatus(delay) { ctx._range = ctx.getRange(); toggleMenu(delay); } if (ctx._menu) { var setpos = function() { if (ctx._menu.style.display === 'block') ctx.menu(); }; // change menu offset when window resize / scroll addListener(ctx, root, 'resize', setpos); addListener(ctx, root, 'scroll', setpos); // toggle toolbar on mouse select var selecting = false; addListener(ctx, editor, 'mousedown', function() { selecting = true; }); addListener(ctx, editor, 'mouseleave', function() { if (selecting) updateStatus(800); selecting = false; }); addListener(ctx, editor, 'mouseup', function() { if (selecting) updateStatus(100); selecting = false; }); // Hide menu when focusing outside of editor outsideClick = function(e) { if (ctx._menu && !containsNode(editor, e.target) && !containsNode(ctx._menu, e.target)) { removeListener(ctx, doc, 'click', outsideClick); toggleMenu(100); } }; } else { addListener(ctx, editor, 'click', function() { updateStatus(0); }); } addListener(ctx, editor, 'keyup', function(e) { if (e.which === 8 && ctx.isEmpty()) return lineBreak(ctx, true); // toggle toolbar on key select if (e.which !== 13 || e.shiftKey) return updateStatus(400); var node = getNode(ctx, true); if (!node || !node.nextSibling || !lineBreakReg.test(node.nodeName)) return; if (node.nodeName !== node.nextSibling.nodeName) return; // hack for webkit, make 'enter' behavior like as firefox. if (node.lastChild.nodeName !== 'BR') node.appendChild(doc.createElement('br')); utils.forEach(node.nextSibling.childNodes, function(child) { if (child) node.appendChild(child); }, true); node.parentNode.removeChild(node.nextSibling); focusNode(ctx, node.lastChild, ctx.getRange()); }); // check line break addListener(ctx, editor, 'keydown', function(e) { editor.classList.remove('pen-placeholder'); if (e.which !== 13 || e.shiftKey) return; var node = getNode(ctx, true); if (!node || !lineBreakReg.test(node.nodeName)) return; var lastChild = node.lastChild; if (!lastChild || !lastChild.previousSibling) return; if (lastChild.previousSibling.textContent || lastChild.textContent) return; // quit block mode for 2 'enter' e.preventDefault(); var p = doc.createElement('p'); p.innerHTML = '<br>'; node.removeChild(lastChild); if (!node.nextSibling) node.parentNode.appendChild(p); else node.parentNode.insertBefore(p, node.nextSibling); focusNode(ctx, p, ctx.getRange()); }); var menuApply = function(action, value) { ctx.execCommand(action, value); ctx._range = ctx.getRange(); ctx.highlight().menu(); }; // toggle toolbar on key select addListener(ctx, toolbar, 'click', function(e) { var node = e.target, action; while (node !== toolbar && !(action = node.getAttribute('data-action'))) { node = node.parentNode; } if (!action) return; if (!/(?:createlink)|(?:insertimage)/.test(action)) return menuApply(action); if (!ctx._inputBar) return; // create link var input = ctx._inputBar; if (toolbar === ctx._menu) toggleNode(input); else { ctx._inputActive = true; ctx.menu(); } if (ctx._menu.style.display === 'none') return; setTimeout(function() { input.focus(); }, 400); var createlink = function() { var inputValue = input.value; if (!inputValue) action = 'unlink'; else { inputValue = input.value .replace(strReg.whiteSpace, '') .replace(strReg.mailTo, 'mailto:$1') .replace(strReg.http, 'http://$1'); } menuApply(action, inputValue); if (toolbar === ctx._menu) toggleNode(input, false); else toggleNode(ctx._menu, true); }; input.onkeypress = function(e) { if (e.which === 13) return createlink(); }; }); // listen for placeholder addListener(ctx, editor, 'focus', function() { if (ctx.isEmpty()) lineBreak(ctx, true); addListener(ctx, doc, 'click', outsideClick); }); addListener(ctx, editor, 'blur', function() { checkPlaceholder(ctx); ctx.checkContentChange(); }); // listen for paste and clear style addListener(ctx, editor, 'paste', function() { setTimeout(function() { ctx.cleanContent(); }); }); } function addListener(ctx, target, type, listener) { if (ctx._events.hasOwnProperty(type)) { ctx._events[type].push(listener); } else { ctx._eventTargets = ctx._eventTargets || []; ctx._eventsCache = ctx._eventsCache || []; var index = ctx._eventTargets.indexOf(target); if (index < 0) index = ctx._eventTargets.push(target) - 1; ctx._eventsCache[index] = ctx._eventsCache[index] || {}; ctx._eventsCache[index][type] = ctx._eventsCache[index][type] || []; ctx._eventsCache[index][type].push(listener); target.addEventListener(type, listener, false); } return ctx; } // trigger local events function triggerListener(ctx, type) { if (!ctx._events.hasOwnProperty(type)) return; var args = slice.call(arguments, 2); utils.forEach(ctx._events[type], function (listener) { listener.apply(ctx, args); }); } function removeListener(ctx, target, type, listener) { var events = ctx._events[type]; if (!events) { var _index = ctx._eventTargets.indexOf(target); if (_index >= 0) events = ctx._eventsCache[_index][type]; } if (!events) return ctx; var index = events.indexOf(listener); if (index >= 0) events.splice(index, 1); target.removeEventListener(type, listener, false); return ctx; } function removeAllListeners(ctx) { utils.forEach(this._events, function (events) { events.length = 0; }, false); if (!ctx._eventsCache) return ctx; utils.forEach(ctx._eventsCache, function (events, index) { var target = ctx._eventTargets[index]; utils.forEach(events, function (listeners, type) { utils.forEach(listeners, function (listener) { target.removeEventListener(type, listener, false); }, true); }, false); }, true); ctx._eventTargets = []; ctx._eventsCache = []; return ctx; } function checkPlaceholder(ctx) { ctx.config.editor.classList[ctx.isEmpty() ? 'add' : 'remove']('pen-placeholder'); } function trim(str) { return (str || '').replace(/^\s+|\s+$/g, ''); } // node.contains is not implemented in IE10/IE11 function containsNode(parent, child) { if (parent === child) return true; child = child.parentNode; while (child) { if (child === parent) return true; child = child.parentNode; } return false; } function getNode(ctx, byRoot) { var node, root = ctx.config.editor; ctx._range = ctx._range || ctx.getRange(); node = ctx._range.commonAncestorContainer; if (!node || node === root) return null; while (node && (node.nodeType !== 1) && (node.parentNode !== root)) node = node.parentNode; while (node && byRoot && (node.parentNode !== root)) node = node.parentNode; return containsNode(root, node) ? node : null; } // node effects function effectNode(ctx, el, returnAsNodeName) { var nodes = []; el = el || ctx.config.editor; while (el && el !== ctx.config.editor) { if (el.nodeName.match(effectNodeReg)) { nodes.push(returnAsNodeName ? el.nodeName.toLowerCase() : el); } el = el.parentNode; } return nodes; } // breakout from node function lineBreak(ctx, empty) { var range = ctx._range = ctx.getRange(), node = doc.createElement('p'); if (empty) ctx.config.editor.innerHTML = ''; node.innerHTML = '<br>'; range.insertNode(node); focusNode(ctx, node.childNodes[0], range); } function focusNode(ctx, node, range) { range.setStartAfter(node); range.setEndBefore(node); range.collapse(false); ctx.setRange(range); } function autoLink(node) { if (node.nodeType === 1) { if (autoLinkReg.notLink.test(node.tagName)) return; utils.forEach(node.childNodes, function (child) { autoLink(child); }, true); } else if (node.nodeType === 3) { var result = urlToLink(node.nodeValue || ''); if (!result.links) return; var frag = doc.createDocumentFragment(), div = doc.createElement('div'); div.innerHTML = result.text; while (div.childNodes.length) frag.appendChild(div.childNodes[0]); node.parentNode.replaceChild(frag, node); } } function urlToLink(str) { var count = 0; str = str.replace(autoLinkReg.url, function(url) { var realUrl = url, displayUrl = url; count++; if (url.length > autoLinkReg.maxLength) displayUrl = url.slice(0, autoLinkReg.maxLength) + '...'; // Add http prefix if necessary if (!autoLinkReg.prefix.test(realUrl)) realUrl = 'http://' + realUrl; return '<a href="' + realUrl + '">' + displayUrl + '</a>'; }); return {links: count, text: str}; } function toggleNode(node, hide) { node.style.display = hide ? 'none' : 'block'; } Pen = function(config) { if (!config) throw new Error('Can\'t find config'); debugMode = config.debug; // merge user config var defaults = utils.merge(config); var editor = defaults.editor; if (!editor || editor.nodeType !== 1) throw new Error('Can\'t find editor'); // set default class editor.classList.add(defaults.class); // set contenteditable editor.setAttribute('contenteditable', 'true'); // assign config this.config = defaults; // set placeholder if (defaults.placeholder) editor.setAttribute('data-placeholder', defaults.placeholder); checkPlaceholder(this); // save the selection obj this.selection = selection; // define local events this._events = {change: []}; // enable toolbar initToolbar(this); // init events initEvents(this); // to check content change this._prevContent = this.getContent(); // enable markdown covert if (this.markdown) this.markdown.init(this); // stay on the page if (this.config.stay) this.stay(this.config); if(this.config.input) { this.addOnSubmitListener(this.config.input); } }; Pen.prototype.on = function(type, listener) { addListener(this, this.config.editor, type, listener); return this; }; Pen.prototype.addOnSubmitListener = function(inputElement) { var form = inputElement.form; var me = this; form.addEventListener("submit", function() { inputElement.value = me.config.saveAsMarkdown ? me.toMd(me.config.editor.innerHTML) : me.config.editor.innerHTML; }); }; Pen.prototype.isEmpty = function(node) { node = node || this.config.editor; return !(node.querySelector('img')) && !(node.querySelector('blockquote')) && !(node.querySelector('li')) && !trim(node.textContent); }; Pen.prototype.getContent = function() { return this.isEmpty() ? '' : trim(this.config.editor.innerHTML); }; Pen.prototype.setContent = function(html) { this.config.editor.innerHTML = html; this.cleanContent(); return this; }; Pen.prototype.checkContentChange = function () { var prevContent = this._prevContent, currentContent = this.getContent(); if (prevContent === currentContent) return; this._prevContent = currentContent; triggerListener(this, 'change', currentContent, prevContent); }; Pen.prototype.getRange = function() { var editor = this.config.editor, range = selection.rangeCount && selection.getRangeAt(0); if (!range) range = doc.createRange(); if (!containsNode(editor, range.commonAncestorContainer)) { range.selectNodeContents(editor); range.collapse(false); } return range; }; Pen.prototype.setRange = function(range) { range = range || this._range; if (!range) { range = this.getRange(); range.collapse(false); // set to end } try { selection.removeAllRanges(); selection.addRange(range); } catch (e) {/* IE throws error sometimes*/} return this; }; Pen.prototype.focus = function(focusStart) { if (!focusStart) this.setRange(); this.config.editor.focus(); return this; }; Pen.prototype.execCommand = function(name, value) { name = name.toLowerCase(); this.setRange(); if (commandsReg.block.test(name)) { commandBlock(this, name); } else if (commandsReg.inline.test(name)) { commandOverall(this, name, value); } else if (commandsReg.source.test(name)) { commandLink(this, name, value); } else if (commandsReg.insert.test(name)) { commandInsert(this, name, value); } else if (commandsReg.wrap.test(name)) { commandWrap(this, name, value); } else { utils.log('can not find command function for name: ' + name + (value ? (', value: ' + value) : ''), true); } if (name === 'indent') this.checkContentChange(); else this.cleanContent({cleanAttrs: ['style']}); }; // remove attrs and tags // pen.cleanContent({cleanAttrs: ['style'], cleanTags: ['id']}) Pen.prototype.cleanContent = function(options) { var editor = this.config.editor; if (!options) options = this.config; utils.forEach(options.cleanAttrs, function (attr) { utils.forEach(editor.querySelectorAll('[' + attr + ']'), function(item) { item.removeAttribute(attr); }, true); }, true); utils.forEach(options.cleanTags, function (tag) { utils.forEach(editor.querySelectorAll(tag), function(item) { item.parentNode.removeChild(item); }, true); }, true); checkPlaceholder(this); this.checkContentChange(); return this; }; // auto link content, return content Pen.prototype.autoLink = function() { autoLink(this.config.editor); return this.getContent(); }; // highlight menu Pen.prototype.highlight = function() { var toolbar = this._toolbar || this._menu , node = getNode(this); // remove all highlights utils.forEach(toolbar.querySelectorAll('.active'), function(el) { el.classList.remove('active'); }, true); if (!node) return this; var effects = effectNode(this, node) , inputBar = this._inputBar , highlight; if (inputBar && toolbar === this._menu) { // display link input if createlink enabled inputBar.style.display = 'none'; // reset link input value inputBar.value = ''; } highlight = function(str) { if (!str) return; var el = toolbar.querySelector('[data-action=' + str + ']'); return el && el.classList.add('active'); }; utils.forEach(effects, function(item) { var tag = item.nodeName.toLowerCase(); switch(tag) { case 'a': if (inputBar) inputBar.value = item.getAttribute('href'); tag = 'createlink'; break; case 'img': if (inputBar) inputBar.value = item.getAttribute('src'); tag = 'insertimage'; break; case 'i': tag = 'italic'; break; case 'u': tag = 'underline'; break; case 'b': tag = 'bold'; break; case 'pre': case 'code': tag = 'code'; break; case 'ul': tag = 'insertunorderedlist'; break; case 'ol': tag = 'insertorderedlist'; break; case 'li': tag = 'indent'; break; } highlight(tag); }, true); return this; }; // show menu Pen.prototype.menu = function() { var allMenus = document.getElementsByClassName('pen-menu'); // Hide all menus for(var x in allMenus){ try{ if('style' in allMenus[x]){ allMenus[x].style.display = 'none'; } }catch(e){} } if (!this._menu) return this; if (selection.isCollapsed) { this._menu.style.display = 'none'; //hide menu this._inputActive = false; return this; } if (this._toolbar) { if (!this._inputBar || !this._inputActive) return this; } var offset = this._range.getBoundingClientRect() , menuPadding = 10 , top = offset.top - menuPadding , left = offset.left + (offset.width / 2) , menu = this._menu , menuOffset = {x: 0, y: 0} , stylesheet = this._stylesheet; // fixes some browser double click visual discontinuity // if the offset has no width or height it should not be used if (offset.width === 0 && offset.height === 0) return this; // store the stylesheet used for positioning the menu horizontally if (this._stylesheet === undefined) { var style = document.createElement("style"); document.head.appendChild(style); this._stylesheet = stylesheet = style.sheet; } // display block to caculate its width & height menu.style.display = 'block'; menuOffset.x = left - (menu.clientWidth / 2); menuOffset.y = top - menu.clientHeight; // check to see if menu has over-extended its bounding box. if it has, // 1) apply a new class if overflowed on top; // 2) apply a new rule if overflowed on the left if (stylesheet.cssRules.length > 0) { stylesheet.deleteRule(0); } if (menuOffset.x < 0) { menuOffset.x = 0; stylesheet.insertRule('.pen-menu:after {left: ' + left + 'px;}', 0); } else { stylesheet.insertRule('.pen-menu:after {left: 50%; }', 0); } if (menuOffset.y < 0) { menu.classList.add('pen-menu-below'); menuOffset.y = offset.top + offset.height + menuPadding; } else { menu.classList.remove('pen-menu-below'); } menu.style.top = menuOffset.y + 'px'; menu.style.left = menuOffset.x + 'px'; return this; }; Pen.prototype.stay = function(config) { var ctx = this; if (!window.onbeforeunload) { window.onbeforeunload = function() { if (!ctx._isDestroyed) return config.stayMsg; }; } }; Pen.prototype.destroy = function(isAJoke) { var destroy = isAJoke ? false : true , attr = isAJoke ? 'setAttribute' : 'removeAttribute'; if (!isAJoke) { removeAllListeners(this); try { selection.removeAllRanges(); if (this._menu) this._menu.parentNode.removeChild(this._menu); } catch (e) {/* IE throws error sometimes*/} } else { initToolbar(this); initEvents(this); } this._isDestroyed = destroy; this.config.editor[attr]('contenteditable', ''); return this; }; Pen.prototype.rebuild = function() { return this.destroy('it\'s a joke'); }; // a fallback for old browers root.Pen = function(config) { if (!config) return utils.log('can\'t find config', true); var defaults = utils.merge(config) , klass = defaults.editor.getAttribute('class'); klass = klass ? klass.replace(/\bpen\b/g, '') + ' pen-textarea ' + defaults.class : 'pen pen-textarea'; defaults.editor.setAttribute('class', klass); defaults.editor.innerHTML = defaults.textarea; return defaults.editor; }; // export content as markdown var regs = { a: [/<a\b[^>]*href=["']([^"]+|[^']+)\b[^>]*>(.*?)<\/a>/ig, '[$2]($1)'], img: [/<img\b[^>]*src=["']([^\"+|[^']+)[^>]*>/ig, ''], b: [/<b\b[^>]*>(.*?)<\/b>/ig, '**$1**'], i: [/<i\b[^>]*>(.*?)<\/i>/ig, '***$1***'], h: [/<h([1-6])\b[^>]*>(.*?)<\/h\1>/ig, function(a, b, c) { return '\n' + ('######'.slice(0, b)) + ' ' + c + '\n'; }], li: [/<(li)\b[^>]*>(.*?)<\/\1>/ig, '* $2\n'], blockquote: [/<(blockquote)\b[^>]*>(.*?)<\/\1>/ig, '\n> $2\n'], pre: [/<pre\b[^>]*>(.*?)<\/pre>/ig, '\n```\n$1\n```\n'], code: [/<code\b[^>]*>(.*?)<\/code>/ig, '\n`\n$1\n`\n'], p: [/<p\b[^>]*>(.*?)<\/p>/ig, '\n$1\n'], hr: [/<hr\b[^>]*>/ig, '\n---\n'] }; Pen.prototype.toMd = function() { var html = this.getContent() .replace(/\n+/g, '') // remove line break .replace(/<([uo])l\b[^>]*>(.*?)<\/\1l>/ig, '$2'); // remove ul/ol for(var p in regs) { if (regs.hasOwnProperty(p)) html = html.replace.apply(html, regs[p]); } return html.replace(/\*{5}/g, '**'); }; // make it accessible if (doc.getSelection) { selection = doc.getSelection(); root.Pen = Pen; } }(window, document)); base-64.min.js 0000644 00000011756 15100021164 0007025 0 ustar 00 /* * [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<c;)t=n[r.charAt(C++)],o=n[r.charAt(C++)],e=n[r.charAt(C++)],a=n[r.charAt(C++)],h[f++]=255&(t<<2|o>>>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<r.length;o++){var e=r.charCodeAt(o);e<128?t+=String.fromCharCode(e):e<2048?t+=String.fromCharCode(192|e>>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;a<h;)if((o=t.charCodeAt(a++))<=127)n+=String.fromCharCode(o);else{if(o>191&&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;C<i;++C){if((o=t.charCodeAt(a++))<128||o>191)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<i;)t=r.charCodeAt(f++),o=r.charCodeAt(f++),n=r.charCodeAt(f++),a+=e[t>>>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<r.length;o++){var e=r.charCodeAt(o);e<128?t[t.length]=e:e<2048?(t[t.length]=192|e>>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<C;)t=h[i++],o=h[i++],n=h[i++],a+=e[t>>>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<C;)t=n[r.charAt(i++)],o=n[r.charAt(i++)],e=n[r.charAt(i++)],a=n[r.charAt(i++)],h+=String.fromCharCode(255&(t<<2|o>>>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;f<h;)if((t=n[f++])<=127)e+=String.fromCharCode(t);else{if(t>191&&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;C<i;++C){if((t=n[f++])<128||t>191)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<i;)t=r[f++],o=r[f++],n=r[f++],a+=e[t>>>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}(); vanilla-picker.min.js 0000644 00000051711 15100021164 0010560 0 ustar 00 /*! * 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<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),e}}(),g=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],i=!0,o=!1,n=void 0;try{for(var a,s=e[Symbol.iterator]();!(i=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);i=!0);}catch(e){o=!0,n=e}finally{try{!i&&s.return&&s.return()}finally{if(o)throw n}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};String.prototype.startsWith=String.prototype.startsWith||function(e){return 0===this.indexOf(e)},String.prototype.padStart=String.prototype.padStart||function(e,t){for(var r=this;r.length<e;)r=t+r;return r};var r={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function o(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:1;return(0<t?e.toFixed(t).replace(/0+$/,"").replace(/\.$/,""):e.toString())||"0"}var a=function(){function h(e,t,r,i){n(this,h);var d=this;if(void 0===e);else if(Array.isArray(e))this.rgba=e;else if(void 0===r){var o=e&&""+e;o&&function(e){if(e.startsWith("hsl")){var t=e.match(/([\-\d\.e]+)/g).map(Number),r=g(t,4),i=r[0],o=r[1],n=r[2],a=r[3];void 0===a&&(a=1),i/=360,o/=100,n/=100,d.hsla=[i,o,n,a]}else if(e.startsWith("rgb")){var s=e.match(/([\-\d\.e]+)/g).map(Number),l=g(s,4),p=l[0],c=l[1],f=l[2],u=l[3];void 0===u&&(u=1),d.rgba=[p,c,f,u]}else e.startsWith("#")?d.rgba=h.hexToRgb(e):d.rgba=h.nameToRgb(e)||h.hexToRgb(e)}(o.toLowerCase())}else this.rgba=[e,t,r,void 0===i?1:i]}return e(h,[{key:"printRGB",value:function(e){var t=(e?this.rgba:this.rgba.slice(0,3)).map(function(e,t){return o(e,3===t?3:0)});return e?"rgba("+t+")":"rgb("+t+")"}},{key:"printHSL",value:function(e){var r=[360,100,100,1],i=["","%","%",""],t=(e?this.hsla:this.hsla.slice(0,3)).map(function(e,t){return o(e*r[t],3===t?3:1)+i[t]});return e?"hsla("+t+")":"hsl("+t+")"}},{key:"printHex",value:function(e){var t=this.hex;return e?t:t.substring(0,7)}},{key:"rgba",get:function(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error("No color is set");return this._rgba=h.hslToRgb(this._hsla)},set:function(e){3===e.length&&(e[3]=1),this._rgba=e,this._hsla=null}},{key:"rgbString",get:function(){return this.printRGB()}},{key:"rgbaString",get:function(){return this.printRGB(!0)}},{key:"hsla",get:function(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error("No color is set");return this._hsla=h.rgbToHsl(this._rgba)},set:function(e){3===e.length&&(e[3]=1),this._hsla=e,this._rgba=null}},{key:"hslString",get:function(){return this.printHSL()}},{key:"hslaString",get:function(){return this.printHSL(!0)}},{key:"hex",get:function(){return"#"+this.rgba.map(function(e,t){return t<3?e.toString(16):Math.round(255*e).toString(16)}).map(function(e){return e.padStart(2,"0")}).join("")},set:function(e){this.rgba=h.hexToRgb(e)}}],[{key:"hexToRgb",value:function(e){var t=(e.startsWith("#")?e.slice(1):e).replace(/^(\w{3})$/,"$1F").replace(/^(\w)(\w)(\w)(\w)$/,"$1$1$2$2$3$3$4$4").replace(/^(\w{6})$/,"$1FF");if(!t.match(/^([0-9a-fA-F]{8})$/))throw new Error("Unknown hex color; "+e);var r=t.match(/^(\w\w)(\w\w)(\w\w)(\w\w)$/).slice(1).map(function(e){return parseInt(e,16)});return r[3]=r[3]/255,r}},{key:"nameToRgb",value:function(e){var t=r[e];if(t)return h.hexToRgb(t)}},{key:"rgbToHsl",value:function(e){var t=g(e,4),r=t[0],i=t[1],o=t[2],n=t[3];r/=255,i/=255,o/=255;var a=Math.max(r,i,o),s=Math.min(r,i,o),l=void 0,p=void 0,c=(a+s)/2;if(a===s)l=p=0;else{var f=a-s;switch(p=.5<c?f/(2-a-s):f/(a+s),a){case r:l=(i-o)/f+(i<o?6:0);break;case i:l=(o-r)/f+2;break;case o:l=(r-i)/f+4}l/=6}return[l,p,c,n]}},{key:"hslToRgb",value:function(e){var t=g(e,4),r=t[0],i=t[1],o=t[2],n=t[3],a=void 0,s=void 0,l=void 0;if(0===i)a=s=l=o;else{var p=function(e,t,r){return r<0&&(r+=1),1<r&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+(t-e)*(2/3-r)*6:e},c=o<.5?o*(1+i):o+i-o*i,f=2*o-c;a=p(f,c,r+1/3),s=p(f,c,r),l=p(f,c,r-1/3)}var u=[255*a,255*s,255*l].map(Math.round);return u[3]=n,u}}]),h}();window;function s(e){var t=Element.prototype;t.matches||(t.matches=t.msMatchesSelector||t.webkitMatchesSelector),t.closest||(t.closest=function(e){var t=this;do{if(t.matches(e))return t;t="svg"===t.tagName?t.parentNode:t.parentElement}while(t);return null});var l=(e=e||{}).container||e.doc.documentElement,o=e.selector,i=e.callback||console.log,n=e.callbackDragStart,a=e.callbackDragEnd,s=e.callbackClick,r=e.propagateEvents,p=!1!==e.roundCoords,c=!1!==e.dragOutside,f=e.handleOffset||!1!==e.handleOffset,u=null;switch(f){case"center":u=!0;break;case"topleft":case"top-left":u=!1}var d=void 0;function h(e,t,r,i){var o=e.clientX,n=e.clientY;function a(e,t,r){return Math.max(t,Math.min(e,r))}if(t){var s=t.getBoundingClientRect();if(o-=s.left,n-=s.top,r&&(o-=r[0],n-=r[1]),i&&(o=a(o,0,s.width),n=a(n,0,s.height)),t!==l)(null!==u?u:"circle"===t.nodeName||"ellipse"===t.nodeName)&&(o-=s.width/2,n-=s.height/2)}return p?[Math.round(o),Math.round(n)]:[o,n]}function g(e){e.preventDefault(),r||e.stopPropagation()}function b(e){var t=void 0;if(t=o?o instanceof Element?o.contains(e.target)?o:null:e.target.closest(o):{}){g(e);var r=o&&f?h(e,t):[0,0],i=h(e,l,r);d={target:t,mouseOffset:r,startPos:i,actuallyDragged:!1},n&&n(t,i)}}function m(e){if(d){g(e);var t=d.startPos,r=h(e,l,d.mouseOffset,!c);d.actuallyDragged=d.actuallyDragged||t[0]!==r[0]||t[1]!==r[1],i(d.target,r,t)}}function k(e,t){if(d){if(a||s){var r=!d.actuallyDragged,i=r?d.startPos:h(e,l,d.mouseOffset,!c);s&&r&&!t&&s(d.target,i),a&&a(d.target,i,d.startPos,t||r&&s)}d=null}}function v(e,t){k(x(e),t)}function w(e,t,r){e.addEventListener(t,r)}function _(e){return void 0!==e.buttons?1===e.buttons:1===e.which}function y(e,t){1===e.touches.length?t(x(e)):k(e,!0)}function x(e){var t=e.targetTouches[0];return t||(t=e.changedTouches[0]),t.preventDefault=e.preventDefault.bind(e),t.stopPropagation=e.stopPropagation.bind(e),t}w(l,"mousedown",function(e){_(e)?b(e):k(e,!0)}),w(l,"touchstart",function(e){return y(e,b)}),w(l,"mousemove",function(e){d&&(_(e)?m(e):k(e))}),w(l,"touchmove",function(e){return y(e,m)}),w(l,"mouseup",function(e){d&&!_(e)&&k(e)}),w(l,"touchend",function(e){return v(e)}),w(l,"touchcancel",function(e){return v(e,!0)})}var l="keydown",p="mousedown",c="focusin";function w(e,t){return(t||document).querySelector(e)}function f(e,t,r){e.addEventListener(t,r,!1)}function u(e){e.preventDefault(),e.stopPropagation()}function d(e,t,r,i){f(e,l,function(e){0<=t.indexOf(e.key)&&(i&&u(e),r(e))})}return function(){function r(e){var t=this;n(this,r),this.settings={popup:"right",layout:"default",alpha:!0,editor:!0,editorFormat:"hex"},this._openProxy=function(e){return t.openHandler(e)},this.onChange=null,this.onDone=null,this.onOpen=null,this.onClose=null,function(e){if(!e.querySelector("#vanilla-picker-style")){var t=document.createElement("style");t.id="vanilla-picker-style",e.documentElement.firstElementChild.appendChild(t).textContent=".picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.layout_default.picker_wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{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||'<div class="picker_wrapper" tabindex="-1"><div class="picker_arrow"></div><div class="picker_hue picker_slider"><div class="picker_selector"></div></div><div class="picker_sl"><div class="picker_selector"></div></div><div class="picker_alpha picker_slider"><div class="picker_selector"></div></div><div class="picker_editor"><input aria-label="Type a color name or hex value"/></div><div class="picker_sample"></div><div class="picker_done"><button>Ok</button></div></div>',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}()}); nivo-lightbox.min.js 0000644 00000017322 15100021164 0010450 0 ustar 00 /* * 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)\/(video\/(.)+|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)\/(video\/(.)+|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("<img>",{src:a,class:"nivo-lightbox-image-display"});h.one("load",function(){var e=t('<div class="nivo-lightbox-image" />');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('<div class="nivo-lightbox-error"><p>'+n.options.errorMessage+"</p></div>");o.html(i).removeClass("nivo-lightbox-loading")})}else if(l){var s="",r="nivo-lightbox-video";if("youtube"==l[1]&&(s="//www.youtube.com/embed/"+l[5],r="nivo-lightbox-youtube"),"youtube-nocookie"==l[1]&&(s=a,r="nivo-lightbox-youtube"),"youtu"==l[1]&&(s="//www.youtube.com/embed/"+l[3],r="nivo-lightbox-youtube"),"vimeo"==l[1]&&(s="//player.vimeo.com/video/"+(l[3].replace('video/','')),r="nivo-lightbox-vimeo"),s){var c=t("<iframe>",{src:s,class:r,frameborder:0,vspace:0,hspace:0,scrolling:"auto"});o.html(c),c.load(function(){o.removeClass("nivo-lightbox-loading")})}}else if("ajax"==e.attr("data-lightbox-type"))t.ajax({url:a,cache:!1,success:function(e){var n=t('<div class="nivo-lightbox-ajax" />');n.append(e),o.html(n).removeClass("nivo-lightbox-loading"),n.outerHeight()<o.height()&&n.css({position:"relative",top:"50%","margin-top":-(n.outerHeight()/2)+"px"}),t(i).resize(function(){n.outerHeight()<o.height()&&n.css({position:"relative",top:"50%","margin-top":-(n.outerHeight()/2)+"px"})})},error:function(){var i=t('<div class="nivo-lightbox-error"><p>'+n.options.errorMessage+"</p></div>");o.html(i).removeClass("nivo-lightbox-loading")}});else if("#"==a.substring(0,1)&&"inline"==e.attr("data-lightbox-type"))if(t(a).length){var g=t('<div class="nivo-lightbox-inline" />');g.append(t(a).clone().show()),o.html(g).removeClass("nivo-lightbox-loading"),g.outerHeight()<o.height()&&g.css({position:"relative",top:"50%","margin-top":-(g.outerHeight()/2)+"px"}),t(i).resize(function(){g.outerHeight()<o.height()&&g.css({position:"relative",top:"50%","margin-top":-(g.outerHeight()/2)+"px"})})}else{var v=t('<div class="nivo-lightbox-error"><p>'+n.options.errorMessage+"</p></div>");o.html(v).removeClass("nivo-lightbox-loading")}else{if("iframe"!=e.attr("data-lightbox-type"))return!1;var b=t("<iframe>",{src:a,class:"nivo-lightbox-item",frameborder:0,vspace:0,hspace:0,scrolling:"auto"});o.html(b),b.load(function(){o.removeClass("nivo-lightbox-loading")})}if(e.attr("title")){var x=t("<span>",{class:"nivo-lightbox-title"});x.text(e.attr("title")),t(".nivo-lightbox-title-wrap").html(x)}else t(".nivo-lightbox-title-wrap").html("")},constructLightbox:function(){if(t(".nivo-lightbox-overlay").length)return t(".nivo-lightbox-overlay");var i=t("<div>",{class:"nivo-lightbox-overlay nivo-lightbox-theme-"+this.options.theme+" nivo-lightbox-effect-"+this.options.effect}),o=t("<div>",{class:"nivo-lightbox-wrap"}),e=t("<div>",{class:"nivo-lightbox-content"}),n=t('<a href="#" class="nivo-lightbox-nav nivo-lightbox-prev">Previous</a><a href="#" class="nivo-lightbox-nav nivo-lightbox-next">Next</a>'),a=t('<a href="#" class="nivo-lightbox-close" title="Close">Close</a>'),l=t("<div>",{class:"nivo-lightbox-title-wrap"}),h=/*@cc_on!@*/0;h&&i.addClass("nivo-lightbox-ie"),o.append(e),o.append(l),i.append(o),i.append(n),i.append(a),t("body").append(i);var s=this;return s.options.clickOverlayToClose&&i.on("click",function(i){(i.target===this||t(i.target).hasClass("nivo-lightbox-content")||t(i.target).hasClass("nivo-lightbox-image"))&&s.destructLightbox()}),s.options.clickImgToClose&&i.on("click",function(i){(i.target===this||t(i.target).hasClass("nivo-lightbox-image-display"))&&s.destructLightbox()}),a.on("click",function(t){t.preventDefault(),s.destructLightbox()}),i},destructLightbox:function(){var i=this;this.options.beforeHideLightbox.call(this),t(".nivo-lightbox-overlay").removeClass("nivo-lightbox-open"),t(".nivo-lightbox-nav").hide(),t("body").removeClass("nivo-lightbox-body-effect-"+i.options.effect);var o=/*@cc_on!@*/0;o&&(t(".nivo-lightbox-overlay iframe").attr("src"," "),t(".nivo-lightbox-overlay iframe").remove()),t(".nivo-lightbox-prev").off("click"),t(".nivo-lightbox-next").off("click"),t(".nivo-lightbox-content").empty(),this.options.afterHideLightbox.call(this)},isHidpi:function(){var t="(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)";return i.devicePixelRatio>1||!(!i.matchMedia||!i.matchMedia(t).matches)}},t.fn[a]=function(i){return this.each(function(){t.data(this,a)||t.data(this,a,new n(this,i))})}}(jQuery,window,document); jquery-numerator.js 0000644 00000010027 15100021164 0010421 0 ustar 00 /* * jQuery Numerator Plugin 0.2.1 * https://github.com/garethdn/jquery-numerator * * Copyright 2015, Gareth Nolan * http://ie.linkedin.com/in/garethnolan/ * Based on jQuery Boilerplate by Zeno Rocha with the help of Addy Osmani * http://jqueryboilerplate.com * * Licensed under the MIT license: * http://www.opensource.org/licenses/MIT */ ;(function (factory) { 'use strict'; if (typeof define === 'function' && define.amd) { // AMD is used - Register as an anonymous module. define(['jquery'], factory); } else if (typeof exports === 'object') { factory(require('jquery')); } else { // Neither AMD nor CommonJS used. Use global variables. if (typeof jQuery === 'undefined') { throw 'jquery-numerator requires jQuery to be loaded first'; } factory(jQuery); } }(function ($) { var pluginName = "numerator", defaults = { easing: 'swing', duration: 500, delimiter: undefined, rounding: 0, toValue: undefined, fromValue: undefined, queue: false, onStart: function(){}, onStep: function(){}, onProgress: function(){}, onComplete: function(){} }; function Plugin ( element, options ) { this.element = element; this.settings = $.extend( {}, defaults, options ); this._defaults = defaults; this._name = pluginName; this.init(); } Plugin.prototype = { init: function () { this.parseElement(); this.setValue(); }, parseElement: function () { var elText = $.trim($(this.element).text()); this.settings.fromValue = this.settings.fromValue || this.format(elText); }, setValue: function() { var self = this; $({value: self.settings.fromValue}).animate({value: self.settings.toValue}, { duration: parseInt(self.settings.duration, 10), easing: self.settings.easing, start: self.settings.onStart, step: function(now, fx) { $(self.element).text(self.format(now)); // accepts two params - (now, fx) self.settings.onStep(now, fx); }, // accepts three params - (animation object, progress ratio, time remaining(ms)) progress: self.settings.onProgress, complete: self.settings.onComplete }); }, format: function(value){ var self = this; if ( parseInt(this.settings.rounding ) < 1) { value = parseInt(value, 10); } else { value = parseFloat(value).toFixed( parseInt(this.settings.rounding) ); } if (self.settings.delimiter) { return this.delimit(value) } else { return value; } }, // TODO: Add comments to this function delimit: function(value){ var self = this; value = value.toString(); if (self.settings.rounding && parseInt(self.settings.rounding, 10) > 0) { var decimals = value.substring( (value.length - (self.settings.rounding + 1)), value.length ), wholeValue = value.substring( 0, (value.length - (self.settings.rounding + 1))); return self.addDelimiter(wholeValue) + decimals; } else { return self.addDelimiter(value); } }, addDelimiter: function(value){ return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.settings.delimiter); } }; $.fn[ pluginName ] = function ( options ) { return this.each(function() { if ( $.data( this, "plugin_" + pluginName ) ) { $.data(this, 'plugin_' + pluginName, null); } $.data( this, "plugin_" + pluginName, new Plugin( this, options ) ); }); }; })); tlite.min.js 0000644 00000007607 15100021164 0007005 0 ustar 00 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; } blocks/index.js 0000644 00000456067 15100021164 0007476 0 ustar 00 (()=>{var e={825:()=>{window.pagelayerBlockNameByTag=e=>"pagelayer/"+e.replaceAll("_","-"),window.pagelayerLength=e=>{var a,t,l,r=0,n=[void 0,null,!1];for(t=0,l=n.length;t<l;t++)if(e===n[t])return r;if("object"==typeof e){if(e.hasOwnProperty("length"))return e.length;for(a in e)r++;return r}return String(e).length},window.pagelayer_video_url=(e,a)=>{a=a||!1;var t=/vimeo\.com/,l="",r="",n={};switch(/youtube\.com|youtu\.be/.exec(e)?l="youtube":t.exec(e)&&(l="vimeo"),l){case"youtube":var s=/watch/;/youtube\.com/.exec(e)?s.exec(e)?r=e.split("?v="):s.exec(e)&&(r=e.split("embed/")):/youtu\.be/.exec(e)&&(r=e.split(".be/")),n={type:"youtube",src:"https://www.youtube.com/embed/"+r[1],id:r[1]},pagelayer_yt_api_register();break;case"vimeo":/player\.vimeo\.com/.exec(e)&&/video/.exec(e)?r=e.split("video/"):t.exec(e)&&(r=e.split(".com/")),n={type:"vimeo",src:"https://player.vimeo.com/video/"+r[1],id:r[1]};break;default:n={type:"local",src:e}}return a?n:n.src},window.pagelayer_yt_api_register=()=>{jQuery("#pagelayer-youtube-script-js").length>0||jQuery("body").append('<script src="https://www.youtube.com/iframe_api" id="pagelayer-youtube-script-js"><\/script>')},window.pagelayer_owl_destroy=(e,a)=>{if(!(e.length<1)){var t=e.find(a),l=e.attr("pagelayer-setup");l&&l.length>0&&t.children(".pagelayer-owl-stage-outer").length>0&&(t.pagelayerOwlCarousel("destroy"),t.find('[class^="pagelayer-owl-"]').remove(),e.removeAttr("pagelayer-setup"))}},window.pagelayerParseTypo=(e,a,t,l)=>{if(a=a||!1,l=l||"desktop",t=t||"",pagelayer_empty(e)&&(e={}),pagelayer_is_string(e)&&"$"!=e.substr(0,1))return e.split(",");var r=["","","","","","","","","","",""],n=["font-family","font-size","font-style","font-weight","font-variant","text-decoration-line","text-decoration-style","line-height","text-transform","letter-spacing","word-spacing"],s=pagelayerIsGlobalTypo(e),i=!1;for(var o in pagelayer_empty(s)&&(s=t,i=!0),n){var p=n[o];if("object"!=typeof e||pagelayer_empty(e[o])||(r[o]=e[o]),pagelayer_empty(e[p])||(r[o]=e[p]),!pagelayer_empty(s)&&pagelayer_empty(r[o])&&!a){var c=pagelayer_global_fonts[s].value;!(p in c)||pagelayer_empty(c[p])||"object"==typeof c[p]&&pagelayer_empty(c[p][l])||"object"!=typeof c[p]&&!pagelayer_empty(i)&&"desktop"!=l||(r[o]="var(--pagelayer-font-"+s+"-"+p+")")}}return r},window.pagelayerIsGlobalTypo=e=>{var a="";return pagelayer_is_string(e)&&"$"==e.substr(0,1)&&(a=e.substr(1)),"object"==typeof e&&"global-font"in e&&(a=e["global-font"]),pagelayer_empty(a)||a in pagelayer_global_fonts||(a="primary"),a},window.pagelayerUcwords=e=>(e+"").replace(/^([a-z])|\s+([a-z])/g,(function(e){return e.toUpperCase()})),window.pagelayer_htmlEntities=e=>String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),window.pagelayer_isElementInView=(e,a,t)=>{t=t||!0;var l=jQuery(a),r=l.height(),n=(l.scrollTop(),jQuery(e).offset().top-l.offset().top),s=n+jQuery(e).height(),i=n>=0&&s<=r,o=(n<0&&s>0||n>0&&n<=l.height())&&t;return i||o},window.pagelayerIsGlobalColor=e=>{var a="$"==e.substr(0,1)?e.substr(1):"";return!pagelayer_empty(a)&&(a in pagelayer_global_colors||(a="primary"),a)},window.pagelayerParseColor=(e,a=!0)=>{var t=pagelayerIsGlobalColor(e);return pagelayer_empty(t)?e:pagelayer_empty(a)?pagelayer_global_colors[t].value:"var(--pagelayer-color-"+t+")"},window.pagelayerTrim=(e,a)=>{if("string"!=typeof e)return e;var t=[" ","\n","\r","\t","\f","\v"," "," "," "," "," "," "," "," "," "," "," "," ","","\u2028","\u2029"," "].join(""),l=0,r=0;for(e+="",a&&(t=(a+"").replace(/([[\]().?/*{}+$^:])/g,"$1")),l=e.length,r=0;r<l;r++)if(-1===t.indexOf(e.charAt(r))){e=e.substring(r);break}for(r=(l=e.length)-1;r>=0;r--)if(-1===t.indexOf(e.charAt(r))){e=e.substring(0,r+1);break}return-1===t.indexOf(e.charAt(0))?e:""},window.pagelayer_compare_object=(e,a)=>{var t=!0;for(var l in e)if(e[l]!==a[l]){t=!1;break}for(var l in a)if(e[l]!==a[l]){t=!1;break}return t},window.pagelayerRandstr=(e,a)=>{var t="",l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";(a=a||0)&&(l+="&#$%@");for(var r=0;r<e;r++)t+=l.charAt(Math.floor(Math.random()*l.length));return t}}},a={};function t(l){var r=a[l];if(void 0!==r)return r.exports;var n=a[l]={exports:{}};return e[l](n,n.exports,t),n.exports}t.d=(e,a)=>{for(var l in a)t.o(a,l)&&!t.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,get:a[l]})},t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{"use strict";var e={};t.r(e),t.d(e,{pagelayer_bg_video:()=>R,pagelayer_get_img_src:()=>X,pagelayer_render_end_pl_accordion:()=>L,pagelayer_render_end_pl_anim_heading:()=>Z,pagelayer_render_end_pl_audio:()=>Ce,pagelayer_render_end_pl_before_after:()=>Se,pagelayer_render_end_pl_chart:()=>Le,pagelayer_render_end_pl_col:()=>M,pagelayer_render_end_pl_collapse:()=>D,pagelayer_render_end_pl_contact:()=>pe,pagelayer_render_end_pl_counter:()=>J,pagelayer_render_end_pl_fb_comments:()=>Ge,pagelayer_render_end_pl_grid_gallery:()=>Ae,pagelayer_render_end_pl_image:()=>K,pagelayer_render_end_pl_image_hotspot:()=>Ie,pagelayer_render_end_pl_image_map:()=>We,pagelayer_render_end_pl_img_portfolio:()=>Be,pagelayer_render_end_pl_post_comment:()=>ge,pagelayer_render_end_pl_review:()=>Me,pagelayer_render_end_pl_row:()=>I,pagelayer_render_end_pl_search:()=>Pe,pagelayer_render_end_pl_share:()=>se,pagelayer_render_end_pl_single_img:()=>He,pagelayer_render_end_pl_social:()=>ae,pagelayer_render_end_pl_social_grp:()=>te,pagelayer_render_end_pl_splash:()=>qe,pagelayer_render_end_pl_stars:()=>G,pagelayer_render_html_pl_post_excerpt:()=>ue,pagelayer_render_pl_anim_heading:()=>W,pagelayer_render_pl_archive_posts:()=>me,pagelayer_render_pl_audio:()=>xe,pagelayer_render_pl_author_box:()=>Qe,pagelayer_render_pl_before_after:()=>je,pagelayer_render_pl_call:()=>Ve,pagelayer_render_pl_chart:()=>Re,pagelayer_render_pl_chart_datasets:()=>De,pagelayer_render_pl_col:()=>H,pagelayer_render_pl_contact:()=>oe,pagelayer_render_pl_contact_item:()=>ce,pagelayer_render_pl_countdown:()=>re,pagelayer_render_pl_fb_comments:()=>Ue,pagelayer_render_pl_fb_embed:()=>we,pagelayer_render_pl_fb_page:()=>Ne,pagelayer_render_pl_featured_img:()=>fe,pagelayer_render_pl_flipbox:()=>he,pagelayer_render_pl_google_maps:()=>V,pagelayer_render_pl_grid_gallery:()=>Te,pagelayer_render_pl_image:()=>Y,pagelayer_render_pl_image_hotspot:()=>ze,pagelayer_render_pl_image_map:()=>Je,pagelayer_render_pl_inner_row:()=>F,pagelayer_render_pl_post_content:()=>de,pagelayer_render_pl_post_excerpt:()=>_e,pagelayer_render_pl_post_info_list:()=>ke,pagelayer_render_pl_post_nav:()=>be,pagelayer_render_pl_post_title:()=>ye,pagelayer_render_pl_progress:()=>U,pagelayer_render_pl_row:()=>z,pagelayer_render_pl_search:()=>Oe,pagelayer_render_pl_service:()=>ie,pagelayer_render_pl_share:()=>ne,pagelayer_render_pl_single_img:()=>Fe,pagelayer_render_pl_testimonial:()=>le,pagelayer_render_pl_wp_title:()=>ve,pagelayer_social:()=>ee}),t(825);const a=window.wp.element,l=window.wp.data,r=e=>{const{deviceType:t}=e,[r,n]=(0,a.useState)(t||"desktop"),[s,i]=(0,a.useState)(!1),o={desktop:"Desktop",tablet:"Tablet",mobile:"Mobile"};return(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:"pagelayer-elp-screen"},Object.keys(o).map((e=>(0,a.createElement)("i",{key:e,className:`pli pli-${e} ${s?"open":""}`,onClick:()=>(e=>{if(null!==(0,l.dispatch)("core/edit-post")){const{__experimentalSetPreviewDeviceType:a}=(0,l.dispatch)("core/edit-post");a(o[e])}n(e),i(!s)})(e)}))),(0,a.createElement)("i",{className:`pagelayer-prop-screen pli pli-${r}`,onClick:()=>i(!s)})))},n=e=>{const{label:t,prop:l}=e;var n=l?.screen,s=l?.units,i=0,o=l.c.val;if(s&&!pagelayer_empty(o))for(var p in l.units)(pagelayer_is_string(o)&&-1!=o.search(l.units[p])||"object"==typeof o&&-1!=o[0].search(l.units[p]))&&(i=p);const[c,m]=(0,a.useState)(i);return(0,a.createElement)("div",{className:"pagelayer-elp-label-div"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},t),n&&(0,a.createElement)(r,{...e}),s&&(0,a.createElement)("div",{className:"pagelayer-elp-units"},l.units.map(((e,t)=>(0,a.createElement)("span",{key:t,onClick:()=>(e=>{m(e)})(t),className:t==c?"selected":""},e)))))},s=window.wp.i18n,i=window.wp.components,o=e=>{const{name:t,value:l,onChange:r,setAttributes:n,type:o,handleClick:p,showRemoveIcon:c=!0}=e,[m,g]=(0,a.useState)(!1),y=(0,a.useRef)(null),d=(0,a.useRef)(null),u=(0,a.useRef)(null),_=(0,a.useRef)(null);let f=l;var v=pagelayerIsGlobalColor(f),h="";pagelayer_empty(v)||(f=pagelayer_global_colors[v].value,h="pagelayer-active-global"),(0,a.useEffect)((()=>{const e=e=>{d.current&&u.current&&!d.current.contains(e.target)&&!u.current.contains(e.target)&&g(!1),_.current&&!_.current.contains(e.target)&&jQuery(y.current).find(".pagelayer-global-color-list").slideUp()};return document.addEventListener("click",e),()=>{document.removeEventListener("click",e)}}),[]),(0,a.useEffect)((()=>{let e=jQuery(y.current).find(".pagelayer-global-color-list");jQuery(y.current).find(".pagelayer-elp-color-global").on("click",(function(a){a.stopPropagation(),e.slideToggle(),g(!1)})),jQuery(y.current).find(".pagelayer-global-color-list-item").on("click",(function(a){e.slideUp()}))}),[]);var b="pagelayer-blank-preview",E={};return pagelayer_empty(l)||(b="",E={backgroundColor:v?f:l}),(0,a.createElement)("div",{className:"pagelayer-elp-color-div-holder",ref:y},(0,a.createElement)("div",{className:`pagelayer-elp-color-global ${h}`}),(0,a.createElement)("div",{className:"pagelayer-elp-color-div",ref:d},(0,a.createElement)("div",{className:`pagelayer-elp-color-preview ${b}`,onClick:()=>g(!m),style:E}),c&&(0,a.createElement)("span",{className:"pagelayer-elp-remove-color",onClick:()=>{n({[t]:""}),g(!1)}},(0,a.createElement)("i",{className:"pli pli-cross"})),m&&(0,a.createElement)(i.Popover,{ref:u},(0,a.createElement)(i.ColorPicker,{color:l||"",onChangeComplete:e=>{e.rgb&&r(1!=e.rgb.a?"rgba("+e.rgb.r+","+e.rgb.g+","+e.rgb.b+","+e.rgb.a+")":e.hex)},disableAlpha:!1}))),(0,a.createElement)("div",{className:"pagelayer-global-color-list",ref:_},(0,a.createElement)("div",{className:"pagelayer-global-setting-color"},(0,a.createElement)("b",null,(0,s.__)("Global Colors")),(0,a.createElement)("span",{className:"pli pli-service",onClick:e=>{e.stopPropagation(),window.open(pagelayer_customizer_url+"&autofocus%5Bsection%5D=pagelayer_global_colors_sec","_blank")}})),Object.keys(pagelayer_global_colors).map((e=>{const t=pagelayer_global_colors[e],l=e===v?"pagelayer-global-selected":"";return(0,a.createElement)("div",{key:e,className:`pagelayer-global-color-list-item ${l}`,"data-global-id":e,onClick:()=>p(e)},(0,a.createElement)("span",{className:"pagelayer-global-color-pre",style:{background:t.value}}),(0,a.createElement)("span",{className:"pagelayer-global-color-title"},t.title),(0,a.createElement)("span",{className:"pagelayer-global-color-code"},t.value))}))))},{pagelayer_fonts:p}=pagelayer_config,c=e=>{var a=e.val();if(a&&"Default"!=a)switch(a=a.replace(" ","+"),e.find("option:selected").attr("type")){case"google":if(0==pagelayer_query("#pagelayer-google-fonts").length){if(""==a)return;pagelayer_query("head").append('<link id="pagelayer-google-fonts" href="https://fonts.googleapis.com/css?family='+a+':100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">')}else{var t=pagelayer_query("#pagelayer-google-fonts").attr("href");-1==t.indexOf(a)&&(t=t+"|"+a+":100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i",pagelayer_query("#pagelayer-google-fonts").attr("href",t))}break;case"custom":if(!pagelayer_empty(pagelayer_query("style[id="+a+"_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:a},success:function(e){"style"in e&&pagelayer_query("body").append(e.style)}})}},m=e=>{const{prop:t,label:l,value:r,setAttributes:s,attributes:i}=e,{name:o}=t.c;return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control pagelayer-flex"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-select-div pagelayer-elp-pos-rel"},(0,a.createElement)("select",{className:"pagelayer-elp-select pagelayer-select",name:o,onChange:e=>{var a=e.target.value;if(s({[o]:a}),"animation"==o){var t=jQuery(`.p-${i["pagelayer-id"]}`),l=jQuery(e.target);g(t,l,a)}}},Object.keys(t.list).map(((e,l)=>"string"==typeof t.list[e]?(0,a.createElement)("option",{key:l,value:e,selected:e==r?"selected":""},t.list[e]):(0,a.createElement)("optgroup",{key:l,label:e},Object.keys(t.list[e]).map(((l,n)=>(0,a.createElement)("option",{key:n,value:l,selected:l==r?"selected":""},t.list[e][l])))))))))},g=(e,a,t)=>{var l=e.attr("class");l=l.split(/\s+/),jQuery(a).find("option").each((function(){-1!=jQuery.inArray(jQuery(this).val(),l)&&e.removeClass(jQuery(this).val())})),e.css("animation-name",""),e.removeClass("pagelayer-wow").addClass(t+" animated").one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",(function(){jQuery(this).removeClass(t+" animated")}))},y=window.wp.blockEditor,d=pagelayer_url+"/images/default-image.png",u=window.wp.primitives,_=(0,a.createElement)(u.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(u.Path,{d:"m9.99609 14v-.2251l.00391.0001v6.225h1.5v-14.5h2.5v14.5h1.5v-14.5h3v-1.5h-8.50391c-2.76142 0-5 2.23858-5 5 0 2.7614 2.23858 5 5 5z"})),f=(0,a.createElement)(u.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(u.Path,{d:"M17.6 7c-.6.9-1.5 1.7-2.6 2v1h2v7h2V7h-1.4zM11 11H7V7H5v10h2v-4h4v4h2V7h-2v4z"})),v=(0,a.createElement)(u.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(u.Path,{d:"M9 11.1H5v-4H3v10h2v-4h4v4h2v-10H9v4zm8 4c.5-.4.6-.6 1.1-1.1.4-.4.8-.8 1.2-1.3.3-.4.6-.8.9-1.3.2-.4.3-.8.3-1.3 0-.4-.1-.9-.3-1.3-.2-.4-.4-.7-.8-1-.3-.3-.7-.5-1.2-.6-.5-.2-1-.2-1.5-.2-.4 0-.7 0-1.1.1-.3.1-.7.2-1 .3-.3.1-.6.3-.9.5-.3.2-.6.4-.8.7l1.2 1.2c.3-.3.6-.5 1-.7.4-.2.7-.3 1.2-.3s.9.1 1.3.4c.3.3.5.7.5 1.1 0 .4-.1.8-.4 1.1-.3.5-.6.9-1 1.2-.4.4-1 .9-1.6 1.4-.6.5-1.4 1.1-2.2 1.6v1.5h8v-2H17z"})),h=(0,a.createElement)(u.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(u.Path,{d:"M9 11H5V7H3v10h2v-4h4v4h2V7H9v4zm11.3 1.7c-.4-.4-1-.7-1.6-.8v-.1c.6-.2 1.1-.5 1.5-.9.3-.4.5-.8.5-1.3 0-.4-.1-.8-.3-1.1-.2-.3-.5-.6-.8-.8-.4-.2-.8-.4-1.2-.5-.6-.1-1.1-.2-1.6-.2-.6 0-1.3.1-1.8.3s-1.1.5-1.6.9l1.2 1.4c.4-.2.7-.4 1.1-.6.3-.2.7-.3 1.1-.3.4 0 .8.1 1.1.3.3.2.4.5.4.8 0 .4-.2.7-.6.9-.7.3-1.5.5-2.2.4v1.6c.5 0 1 0 1.5.1.3.1.7.2 1 .3.2.1.4.2.5.4s.1.4.1.6c0 .3-.2.7-.5.8-.4.2-.9.3-1.4.3s-1-.1-1.4-.3c-.4-.2-.8-.4-1.2-.7L13 15.6c.5.4 1 .8 1.6 1 .7.3 1.5.4 2.3.4.6 0 1.1-.1 1.6-.2.4-.1.9-.2 1.3-.5.4-.2.7-.5.9-.9.2-.4.3-.8.3-1.2 0-.6-.3-1.1-.7-1.5z"})),b=(0,a.createElement)(u.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(u.Path,{d:"M20 13V7h-3l-4 6v2h5v2h2v-2h1v-2h-1zm-2 0h-2.8L18 9v4zm-9-2H5V7H3v10h2v-4h4v4h2V7H9v4z"})),E=(0,a.createElement)(u.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(u.Path,{d:"M9 11H5V7H3v10h2v-4h4v4h2V7H9v4zm11.7 1.2c-.2-.3-.5-.7-.8-.9-.3-.3-.7-.5-1.1-.6-.5-.1-.9-.2-1.4-.2-.2 0-.5.1-.7.1-.2.1-.5.1-.7.2l.1-1.9h4.3V7H14l-.3 5 1 .6.5-.2.4-.1c.1-.1.3-.1.4-.1h.5c.5 0 1 .1 1.4.4.4.2.6.7.6 1.1 0 .4-.2.8-.6 1.1-.4.3-.9.4-1.4.4-.4 0-.9-.1-1.3-.3-.4-.2-.7-.4-1.1-.7 0 0-1.1 1.4-1 1.5.5.4 1 .8 1.6 1 .7.3 1.5.4 2.3.4.5 0 1-.1 1.5-.3s.9-.4 1.3-.7c.4-.3.7-.7.9-1.1s.3-.9.3-1.4-.1-1-.3-1.4z"})),k=(0,a.createElement)(u.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(u.Path,{d:"M20.7 12.4c-.2-.3-.4-.6-.7-.9s-.6-.5-1-.6c-.4-.2-.8-.2-1.2-.2-.5 0-.9.1-1.3.3s-.8.5-1.2.8c0-.5 0-.9.2-1.4l.6-.9c.2-.2.5-.4.8-.5.6-.2 1.3-.2 1.9 0 .3.1.6.3.8.5 0 0 1.3-1.3 1.3-1.4-.4-.3-.9-.6-1.4-.8-.6-.2-1.3-.3-2-.3-.6 0-1.1.1-1.7.4-.5.2-1 .5-1.4.9-.4.4-.8 1-1 1.6-.3.7-.4 1.5-.4 2.3s.1 1.5.3 2.1c.2.6.6 1.1 1 1.5.4.4.9.7 1.4.9 1 .3 2 .3 3 0 .4-.1.8-.3 1.2-.6.3-.3.6-.6.8-1 .2-.5.3-.9.3-1.4s-.1-.9-.3-1.3zm-2 2.1c-.1.2-.3.4-.4.5-.1.1-.3.2-.5.2-.2.1-.4.1-.6.1-.2.1-.5 0-.7-.1-.2 0-.3-.2-.5-.3-.1-.2-.3-.4-.4-.6-.2-.3-.3-.7-.3-1 .3-.3.6-.5 1-.7.3-.1.7-.2 1-.2.4 0 .8.1 1.1.3.3.3.4.7.4 1.1 0 .2 0 .5-.1.7zM9 11H5V7H3v10h2v-4h4v4h2V7H9v4z"})),w=[1,2,3,4,5,6];function N({options:e=w,value:t,onChange:l}){return(0,a.createElement)(i.DropdownMenu,{icon:(0,a.createElement)(C,{level:t}),controls:e.map((e=>((e,t,l)=>{const r=e===t;return{icon:(0,a.createElement)(C,{level:e,isPressed:r}), // translators: %s: heading level e.g: "1", "2", "3" isActive:r,onClick:()=>l(e)}})(e,t,l))),label:(0,s.__)("Change level")})}const x={0:_,1:f,2:v,3:h,4:b,5:E,6:k};function C({level:e}){return x[e]?(0,a.createElement)(i.Icon,{icon:x[e]}):null}var j={};function S(e,a){const t="pagelayer_"+e;let l={},r=!1;try{l=JSON.parse(localStorage.getItem(t)),l.version!==a&&(r=!0)}catch(e){r=!0}return r&&jQuery.ajax({url:e,type:"GET",dataType:"text",success:function(e){l={version:a,val:e},localStorage.setItem(t,JSON.stringify(l))}}),l.val}wp.domReady((function(){pagelayer_loaded_icons.forEach((e=>{jQuery.when(S(pagelayer_url+"/fonts/"+e+".json",pagelayer_ver)).then((()=>{j[e]=JSON.parse(S(pagelayer_url+"/fonts/"+e+".json",pagelayer_ver))}))}))}));const{internal_linking_nonce:$}=pagelayer_config,T=e=>{const{attributes:t,prop:l,value:r,setAttributes:s}=e,{name:i}=l.c,o=t?.tmpAtts?t.tmpAtts:{},p=pagelayer_empty(o[i+"-url"])?r:o[i+"-url"];var c="Media",m=[],g=l?.type;"video"==g?(m=["video"],c="Video"):"audio"==g&&(m=["audio"],c="Audio");return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)(y.MediaUpload,{title:`Select or Upload ${c}`,onSelect:e=>{const{id:a,url:t}=e,l={...o,[i+"-url"]:t};s({[i]:a,tmpAtts:l})},allowedTypes:m,value:r,render:({open:e})=>(e=>(0,a.createElement)("div",{className:"pagelayer-elp-media-div pagelayer-elp-input-icon"},(0,a.createElement)("input",{className:"pagelayer-elp-media",name:i,type:"text",value:p,placeholder:`Insert ${c} URL`,onChange:e=>(e=>{const a=e.target.value,t={...o,[i+"-url"]:a};s({[i]:a,tmpAtts:t})})(e)}),(0,a.createElement)("span",{className:"pagelayer-elp-add-media",onClick:()=>{e()},title:"Open Media Library"},(0,a.createElement)("i",{className:"pli pli-menu"}))))(e)}))},{pagelayer_fonts:A}=pagelayer_config,Q=e=>{const{pl_props:t,attributes:l}=e;if(e.innerBlocks&&e.innerBlocks.length>0)return(0,a.createElement)(y.InnerBlocks.Content,null);if(t&&t.innerHTML){var r=t.innerHTML;if(!pagelayer_empty(l[r]))return(0,a.createElement)(y.RichText.Content,{value:l[r]})}return null},q={},O={};var P=".interface-interface-skeleton__content";function z(e){var a=pagelayer_empty(e.tmp["bg_slider-urls"])?[]:"object"==typeof e.tmp["bg_slider-urls"]?e.tmp["bg_slider-urls"]:JSON.parse(e.tmp["bg_slider-urls"]);if(e.atts.slider="",!pagelayer_empty(a))for(var t in a)e.atts.slider+='<div class="pagelayer-bgimg-slide" style="background-image:url('+a[t]+')"></div>';pagelayer_empty(e.atts.parallax_img)||(e.atts.parallax_img_src=e.tmp["parallax_img-"+e.atts.parallax_id_size+"-url"]||e.tmp["parallax_img-url"],e.atts.parallax_img_src=e.atts.parallax_img_src||e.atts.parallax_img),R(e)}function I(e){var a=e.$.parent();e.$.hasClass("pagelayer-row-stretch-full")?(pagelayer_pl_row_full(e.$,jQuery(P)),function(e){var a=jQuery(P).width();e.css({width:a,"max-width":"100vw"}),e.offset({left:0}),e.children(".pagelayer-row").css({left:0})}(a),e.$.addClass("pagelayer-row-stretch-had-full")):e.$.hasClass("pagelayer-row-stretch-had-full")&&(e.$.removeAttr("style"),a.removeAttr("style"),e.$.removeClass("pagelayer-row-stretch-had-full")),e.$.children(".pagelayer-background-video").removeAttr("pagelayer-setup"),pagelayer_pl_row_video(e.$),e.$.find(".pagelayer-parallax-window img").each((function(){pagelayer_pl_row_parallax(jQuery(this))})),e.$.find(".pagelayer-bgimg-slider").each((function(){pagelayer_pl_row_slider(jQuery(this))})),"row_shape_type_top"in e.atts&&B(e,"top"),"row_shape_type_bottom"in e.atts&&B(e,"bottom")}function B(e,a){var t=e.atts["row_shape_type_"+a]+"-"+a+".svg";if(t in O)e.$.find(".pagelayer-svg-"+a).html(O[t]);else{var l=pagelayer_url+"/images/shapes/"+t;jQuery.get(l,(function(l){e.$.find(".pagelayer-svg-"+a).html(l),O[t]=l}),"html")}}function F(e){z(e)}function H(e){var a=pagelayer_empty(e.tmp["bg_slider-urls"])?[]:"object"==typeof e.tmp["bg_slider-urls"]?e.tmp["bg_slider-urls"]:JSON.parse(e.tmp["bg_slider-urls"]);if(e.atts.slider="",!pagelayer_empty(a))for(var t in a)e.atts.slider+='<div class="pagelayer-bgimg-slide" style="background-image:url('+a[t]+')"></div>';pagelayer_empty(e.atts.parallax_img)||(e.atts.parallax_img_src=e.tmp["parallax_img-"+e.atts.parallax_id_size+"-url"]||e.tmp["parallax_img-url"],e.atts.parallax_img_src=e.atts.parallax_img_src||e.atts.parallax_img),R(e)}function M(e){var a=e.$.parent();if(a.hasClass("pagelayer-col")||a.addClass("pagelayer-col"),!pagelayer_empty(e.atts.col)){for(var t=1;t<=12;t++)if(a.hasClass("pagelayer-col-"+t)){a.removeClass("pagelayer-col-"+t);break}a.addClass("pagelayer-col-"+e.atts.col),a.css("width","")}e.atts.col_width&&a.css("width",""),e.$.children(".pagelayer-background-video").removeAttr("pagelayer-setup"),pagelayer_pl_row_video(e.$),e.$.find(".pagelayer-parallax-window img").each((function(){pagelayer_pl_row_parallax(jQuery(this))})),e.$.find(".pagelayer-bgimg-slider").each((function(){pagelayer_pl_row_slider(jQuery(this))}))}function R(e){e.tmp["bg_video_src-url"]=e.tmp["bg_video_src-url"]||e.atts.bg_video_src;var a=e.tmp["bg_video_src-url"];if(!pagelayer_empty(a)){var t=pagelayer_video_url(a,!0);if(t.src+=-1==t.src.indexOf("?")?"?":"","true"==e.atts.mute?(t.src+="&mute=1",e.atts.mute=" muted "):(t.src+="&mute=0",e.atts.mute=""),"true"!=e.atts.stop_loop?(t.src+="&loop=1",e.atts.stop_loop=" loop "):(t.src+="&loop=0",e.atts.stop_loop=""),"youtube"==t.type){var l='data-loop="'+(pagelayer_empty(e.atts.stop_loop)?0:1)+'" data-mute="'+(pagelayer_empty(e.atts.mute)?0:1)+'" data-videoid="'+t.id.split("&")[0]+'"';e.atts.vid_src='<div class = "pagelayer-youtube-video" '+l+"></div>"}else"vimeo"==t.type?e.atts.vid_src='<iframe src="'+t.src+'&background=1&autoplay=1&byline=0&title=0" allowfullscreen="1" webkitallowfullscreen="1" mozallowfullscreen="1" frameborder="0"></iframe>':e.atts.vid_src="<video autoplay playsinline "+e.atts.mute+e.atts.stop_loop+'><source src="'+t.src+'" type="video/mp4"></video>'}}function L(e){pagelayer_pl_accordion(e.$)}function D(e){pagelayer_pl_collapse(e.$)}function V(e){if(e.atts.show_v2=!0,pagelayer_empty(e.atts.api_version))return void(e.atts.src_code="");const{pagelayer_gmaps_key:a}=pagelayer_config;e.atts.show_v2=!1;var t=pagelayer_empty(a)?"":a,l=pagelayer_empty(e.atts.api_key)?t:e.atts.api_key;"view"==e.atts.map_modes&&(e.atts.center=pagelayer_empty(e.atts.center)?"-33.8569,151.2152":e.atts.center);var r=(pagelayer_empty(e.atts.center)?"":"¢er="+e.atts.center)+("streetview"==e.atts.map_modes?"":"&maptype="+e.atts.map_type+"&zoom="+e.atts.zoom);switch(e.atts.map_modes){case"place":r+=encodeURI("&q="+(pagelayer_empty(e.atts.address)?"New York, New York, USA":e.atts.address));break;case"directions":r+=encodeURI("&origin="+(pagelayer_empty(e.atts.direction_origin)?"Oslow Norway":e.atts.direction_origin)),r+=encodeURI("&destination="+(pagelayer_empty(e.atts.direction_destination)?"Telemark Norway":e.atts.direction_destination)),r+=pagelayer_empty(e.atts.direction_waypoints)?"":"&waypoints="+e.atts.direction_waypoints.trim().split(" ").join("|"),r+=pagelayer_empty(e.atts.direction_modes)?"":"&mode="+e.atts.direction_modes,r+=pagelayer_empty(e.atts.direction_avoid)?"":"&avoid="+e.atts.direction_avoid.split(",").join("|"),r+=pagelayer_empty(e.atts.direction_units)?"":"&units="+e.atts.direction_units;break;case"streetview":r+="&pano="+(pagelayer_empty(e.atts.streetview_pano)?"eTnPNGoy4bxR9LpjjfFuOw":e.atts.streetview_pano),r+="&location="+(pagelayer_empty(e.atts.streetview_location)?"46.414382,10.013988":e.atts.streetview_location),r+=pagelayer_empty(e.atts.streetview_heading)?"":"&heading="+e.atts.streetview_heading,r+=pagelayer_empty(e.atts.streetview_pitch)?"":"&pitch="+e.atts.streetview_pitch,r+=pagelayer_empty(e.atts.streetview_fov)?"":"&fov="+e.atts.streetview_fov;break;case"search":r+=encodeURI("&q="+(pagelayer_empty(e.atts.search_term)?"Record stores in Seattle":e.atts.search_term))}var n="https://www.google.com/maps/embed/v1/"+e.atts.map_modes+"?key="+l+r;e.atts.src_code='<iframe width="600" height="450" style="border:0" loading="lazy" allowfullscreen src="'+n+'"></iframe>'}function U(e){const{attributes:t}=e.props;(0,a.useEffect)((()=>{clearTimeout(q[e.id]),q[e.id]=setTimeout((()=>{e.$.find(".pagelayer-progress-container").removeAttr("pagelayer-setup"),pagelayer_progress()}),500)}),[t]);var l=pagelayerGetCurrentWindow();jQuery(l).unbind("scroll.progressbar",pagelayer_progress),jQuery(l).on("scroll.progressbar",pagelayer_progress)}function G(e){var a=e.$.find(".pagelayer-stars-container");a.removeAttr("pagelayer-setup"),pagelayer_stars(a)}function J(e){e.$.find(".pagelayer-counter-content").removeAttr("pagelayer-setup"),pagelayer_counter();var a=pagelayerGetCurrentWindow();jQuery(a).unbind("scroll.plcounter",pagelayer_counter),jQuery(a).on("scroll.plcounter",pagelayer_counter)}function W(e){var a;(e.atts.rotate_html="",pagelayer_empty(e.atts.rotate_text))||(a=e.atts.rotate_text.split(","),e.atts.rotate_html+='<div class="pagelayer-animated-heading pagelayer-rotating-text pagelayer-words-wrapper">',jQuery.each(a,(function(t){e.atts.rotate_html+="<span",0==t&&(e.atts.rotate_html+=' class="pagelayer-is-visible"'),e.atts.rotate_html+=">"+a[t]+"</span>"})),e.atts.rotate_html+="</div>");e.atts.rotate_req="",-1!=jQuery.inArray(e.atts.animations,["pagelayer-aheading-rotate2","pagelayer-aheading-rotate3","type","pagelayer-aheading-scale"])&&(e.atts.rotate_req="letters "),"pagelayer-aheading-clip"==e.atts.animations&&(e.atts.rotate_req="is-full-width ")}function Z(e){pagelayer_anim_heading(e.$)}function X(e,a){if(!pagelayer_empty(e.tmp[a.name+"-retina-url"])&&0==e.tmp[a.name+"-retina-url"].includes("default-image")){var t=e.tmp[a.name+"-retina-"+e.atts[a.size]+"-url"];t=pagelayer_empty(t)?e.tmp[a.name+"-retina-url"]:t,e.atts["pagelayer-srcset"]+=t+" 2x, "}if(!pagelayer_empty(e.tmp[a.name+"-retina-mobile-url"])&&0==e.tmp[a.name+"-retina-mobile-url"].includes("default-image")){var l=e.tmp[a.name+"-retina-mobile-"+e.atts[a.size]+"-url"];l=pagelayer_empty(l)?e.tmp[a.name+"-retina-mobile-url"]:l,e.atts["pagelayer-srcset"]+=l+" 3x"}}function Y(e){e.atts.func_id=e.tmp["id-"+e.atts["id-size"]+"-url"]||e.tmp["id-url"],e.atts.func_id=e.atts.func_id||e.atts.id,e.atts["pagelayer-srcset"]=e.atts.func_id+", "+e.atts.func_id+" 1x, ",X(e,{name:"id",size:"id-size"}),"link_type"in e.atts&&("custom_url"==e.atts.link_type&&(e.atts.func_link=e.tmp.link||""),"media_file"==e.atts.link_type&&(e.atts.func_link=e.tmp["id-url"]||e.atts.id),"lightbox"==e.atts.link_type&&(e.atts.func_link=e.tmp["id-url"]||e.atts.id))}function K(e){pagelayer_pl_image(e.$)}function ee(e,a){var t=e.find(a),l=t.attr("data-icon");if(!pagelayer_empty(l)){var r=l.split(" fa-");t.attr("class",a.substr(1)),t.addClass("pagelayer-"+r[1])}}function ae(e){ee(e.$,".pagelayer-icon-holder")}function te(e){e.$.find(".pagelayer-icon-holder").removeClass((function(e,a){return(a.match(/(^|\s)pagelayer-animation-\S+/g)||[]).join(" ")})),pagelayer_pl_social_profile(e.$)}function le(e){e.atts.func_image=e.tmp["avatar-"+e.atts.custom_size+"-url"]||e.tmp["avatar-url"],e.atts.func_image=e.atts.func_image||e.atts.avatar}function re(e){pagelayer_empty(e.atts.custom_label_text)&&(e.atts.days_label_text="Days",e.atts.hours_label_text="Hours",e.atts.minutes_label_text="Minutes",e.atts.seconds_label_text="Seconds");const{attributes:t}=e.props;(0,a.useEffect)((()=>{var a=pagelayer_query(e.CSS.cssSel),t=e.atts.display_expired_text;t?a.attr("display_expired_text",t):a.removeAttr("display_expired_text",t),a.find(".pagelayer-countdown-expired").hide(),a.find(".pagelayer-countdown-counter").css("display","flex"),pagelayer_countdown(a),pagelayer_empty(e.atts.days)&&pagelayer_empty(e.atts.hours)&&pagelayer_empty(e.atts.minutes)&&pagelayer_empty(e.atts.seconds)&&a.find(".pagelayer-countdown-counter").html("<h2>Countdown Timer Holder</h2>")}),[t])}function ne(e){if(!("text"in e.atts)||pagelayer_empty(e.atts.text)){var a="";if(!pagelayer_empty(e.atts.icon)){var t=e.atts.icon.split(" fa-");a=t[1]}jQuery.each({Facebook:["facebook","facebook-official","facebook-f","facebook-messenger","facebook-square"],Twitter:["twitter","twitter-square"],X:["x-twitter","x-twitter-square"],"Google+":["google-plus","google-plus-square","google-plus-g"],Instagram:["instagram"],Linkedin:["linkedin","linkedin-square","linkedin-in"],Pinterest:["pinterest","pinterest-p","pinterest-square"],Reddit:["reddit-alien","reddit-square","reddit"],Skype:["skype"],Stumbleupon:["stumbleupon","stumbleupon-circle"],Telegram:["telegram","telegram-plane"],Tumblr:["tumblr","tumblr-square"],VK:["vk"],Weibo:["weibo"],WhatsApp:["whatsapp","whatsapp-square"],WordPress:["wordpress","wordpress-simple"],Xing:["xing","xing-square"],Delicious:["delicious"],Dribbble:["dribbble","dribbble-square"],Snapchat:["snapchat-ghost"],Pocket:["get-pocket"],Email:["envelope","envelope-open","envelope-o"]},(function(t,l){-1!=jQuery.inArray(a,l)&&(e.atts.icon_label=t)}))}else e.atts.icon_label=e.atts.text}function se(e){ee(e.$,".pagelayer-share-content")}function ie(e){e.atts.func_image=e.tmp["service_image-"+e.atts.service_image_size+"-url"]||e.tmp["service_image-url"],e.atts.func_image=e.atts.func_image||e.atts.service_image,e.atts["pagelayer-srcset"]=e.atts.func_image+", "+e.atts.func_image+" 1x, ",X(e,{name:"service_image",size:"service_image_size"})}function oe(e){const{attributes:t}=e.props;(0,a.useEffect)((()=>{const e=setTimeout((()=>{if(pagelayer_empty(t.contact_custom_templ))return;const e=function(){var e=jQuery('[data-type="pagelayer/pl-contact"]'),a={};if(e.length>0){const t=[];e.each((function(){t.push(jQuery(this).data("block"))}));const{select:l}=wp.data;l("core/block-editor").getBlocksByClientId(t).map((e=>{const{attributes:t}=e,l=t["pagelayer-id"];var r=["to_email","from_email","cont_subject","cont_header","cont_body","cont_use_html"];if(pagelayer_empty(t.contact_custom_templ))return!0;for(var n in a[l]={},r){var s=r[n];pagelayer_empty(t[s])||(a[l][s]=t[s])}}))}return a}();pagelayer_empty(e)||wp.data.dispatch("core/editor").editPost({meta:{pagelayer_contact_templates:e}})}),500);return()=>{clearTimeout(e)}}),[t["pagelayer-id"],t.to_email,t.from_email,t.cont_subject,t.cont_header,t.cont_body,t.cont_use_html]),e.atts.con_post_id=pagelayer_postID,e.atts.grecaptcha=pagelayer_recaptch_site_key,"v3"==pagelayer_recaptch_version?e.atts.grecaptcha_v3=!0:e.atts.grecaptcha_v2=!0}function pe(e){const{attributes:a,setAttributes:t}=e.props;jQuery(e.$).find(".pagelayer-recaptcha").each((function(){var e=jQuery(this),a=e.attr("recaptcha-widget-id");pagelayer_empty(window.grecaptcha)||pagelayer_empty(a)&&0!=a?pagelayer_recaptcha_loader(e,!0):grecaptcha.reset(a)}));var l=e.$.find(".pagelayer-message-box");e.atts.show_msg_box?2==l.length&&(l.eq(0).text("Demo success box"),l.eq(0).addClass("pagelayer-cf-msg-suc"),l.eq(1).text("Demo failed box"),l.eq(1).addClass("pagelayer-cf-msg-err")):(l.removeClass("pagelayer-cf-msg-suc pagelayer-cf-msg-err"),l.text("")),"con_post_id"in a&&pagelayer_postID==a.con_post_id||t({con_post_id:pagelayer_postID})}function ce(e){var a="",t="",l="",r="";pagelayer_empty(e.atts.required)||(r="required"),!pagelayer_empty(e.atts.label_name)&&pagelayer_empty(e.atts.label_as_holder)&&(a='<label for="'+e.atts.field_name+'"><span class="pagelayer-form-label">'+e.atts.label_name+"</span>",pagelayer_empty(r)||(a+=" *"),a+="</label>"),pagelayer_empty(e.atts.label_as_holder)?pagelayer_empty(e.atts.placeholder)||(l=e.atts.placeholder):l=e.atts.label_name;var n=".jpg,.jpeg,.png,.gif,.pdf,.doc,.docx,.ppt,.pptx,.odt,.avi,.ogg,.m4a,.mov,.mp3,.mp4,.mpg,.wav,.wmv";if(pagelayer_empty(e.atts.accept_file)||(n=e.atts.accept_file),"select"==e.atts.field_type){if(a+='<select name="'+e.atts.field_name+'" '+r+">",pagelayer_empty(e.atts.label_name)||pagelayer_empty(e.atts.label_as_holder)?a+='<option value="" disabled selected>---</option>':a+='<option value="" disabled selected>'+e.atts.label_name+"</option>",!pagelayer_empty(e.atts.values))for(var s in t=e.atts.values.split("\n"))a+='<option value="'+t[s].trim()+'">'+t[s].trim()+"</option>";a+="</select>"}else if("checkbox"==e.atts.field_type){if(!pagelayer_empty(e.atts.values)){for(var s in a+='<div class="pagelayer-radcheck-holder pagelayer-contact-checkbox" '+r+">",t=e.atts.values.split("\n"))a+='<div><input type="checkbox" id="'+e.id+t[s].trim()+'" name="'+e.atts.field_name+'[]" value="'+t[s].trim()+'" /><label for="'+e.id+t[s].trim()+'" class="pagelayer-form-label">'+t[s].trim()+"</label></div>";a+="</div>"}}else if("radio"==e.atts.field_type){if(!pagelayer_empty(e.atts.values)){for(var s in a+='<div class="pagelayer-radcheck-holder">',t=e.atts.values.split("\n"))a+='<div><input type="radio" name="'+e.atts.field_name+'" value="'+t[s].trim()+'" '+r+"/><span>"+t[s].trim()+"</span></div>";a+="</div>"}}else"textarea"==e.atts.field_type?a+='<textarea name="'+e.atts.field_name+'" rows="'+e.atts.textarea_rows+'" placeholder="'+l+'" '+r+"></textarea>":"file"==e.atts.field_type?a+='<input type="'+e.atts.field_type+'" name="'+e.atts.field_name+'" placeholder="'+l+'" accept="'+n+'" '+r+" />":"label"==e.atts.field_type?a+="":a+='<input type="'+e.atts.field_type+'" name="'+e.atts.field_name+'" placeholder="'+l+'" '+r+"/>";e.atts.fieldhtml=a}function me(e){e.atts.pagelayer_pagination_top="",e.atts.pagelayer_pagination_bottom=""}function ge(e){var a=pagelayer_postID;"custom"==e.atts.post_type&&e.atts.post_id&&(a=e.atts.post_id),jQuery.ajax({url:pagelayer_ajax_url+"&action=pagelayer_post_comment&postID="+a,type:"post",data:{pagelayer_nonce:pagelayer_ajax_nonce},success:function(a){e.$.find(".pagelayer-post-comment-container").html(a)}})}function ye(e){e.atts.open_html_tag=pagelayer_empty(e.atts.html_tag)?"":"<"+e.atts.html_tag+">",e.atts.close_html_tag=pagelayer_empty(e.atts.html_tag)?"":"</"+e.atts.html_tag+">"}function de(e){e.atts.post_content="Post Content Holder",e.CSS.css.push({sel:"{{element}} .entry-content",val:"min-height:20px;background-color:#e3e3e3;"})}function ue(e){e.$.find(".pagelayer-post-excerpt").addClass("pagelayer-empty-widget")}function _e(e){e.tmp.post_excerpt='<div class="pagelayer-post-excerpt pagelayer-empty-widget"></div>'}function fe(e){var a={};a.pagelayer_nonce=pagelayer_ajax_nonce,a.post_id=pagelayer_postID,"size"in e.atts&&(a.size=e.atts.size),jQuery.ajax({url:pagelayer_ajax_url+"action=pagelayer_fetch_featured_img",type:"post",data:a,dataType:"json",success:function(a){var t="",l="",r="";pagelayer_empty(a)?t=(t=e.tmp["img-"+e.atts.size+"-url"]||e.tmp["img-url"])||e.atts.img:(t=a.url,r=a.alt,l=a.title,e.atts.size+"-url"in a&&(t=a[e.atts.size+"-url"]));var n='<img class="pagelayer-img" src="'+pagelayer_url+'/images/default-image.png" />';t&&(n='<img class="pagelayer-img" src="'+t+'" title="'+l+'" alt="'+r+'"/>'),e.$.find(".pagelayer-featured-img").html(n),"link_type"in e.atts&&("custom_url"==e.atts.link_type&&e.$.find("a").attr("href",e.tmp.link),"media_file"!=e.atts.link_type&&"lightbox"!=e.atts.link_type||e.$.find("a").attr("href",t)),pagelayer_pl_image(e.$)}})}function ve(e){pagelayer_empty(e.atts.logo_img_type)?pagelayer_empty(pagelayer_site_logo)||(e.atts.func_image=pagelayer_site_logo[e.atts.logo_img_size+"-url"]||pagelayer_site_logo.url,e.atts["logo_img-title"]=pagelayer_empty(pagelayer_site_logo.title)?"":pagelayer_site_logo.title,e.atts["logo_img-alt"]=pagelayer_empty(pagelayer_site_logo.alt)?"":pagelayer_site_logo.alt):(e.atts.func_image=e.tmp["logo_img-"+e.atts.logo_img_size+"-url"]||e.tmp["logo_img-url"],e.atts.func_image=pagelayer_empty(e.atts.func_image)?e.atts.logo_img:e.atts.func_image)}function he(e){clearTimeout(a);var a=setTimeout((()=>{var a=e.$;const{attributes:t}=e.props;e.atts.func_image=e.tmp["heading_image-"+e.atts.heading_image_size+"-url"]||e.tmp["heading_image-url"],e.atts.func_image=e.atts.func_image||e.atts.heading_image;var l=t?.back_section;l?a.attr("back_section",l):a.removeAttr("back_section",l)}),500)}function be(e){const{attributes:t}=e.props;(0,a.useEffect)((()=>(q[e.id]=setTimeout((()=>{jQuery.ajax({url:pagelayer_ajax_url+"&action=pagelayer_post_nav&postID="+pagelayer_postID,type:"post",data:{pagelayer_nonce:pagelayer_ajax_nonce,data:e.atts},async:!1,success:function(a){var t=jQuery.parseJSON(a),l=pagelayer_query(e.CSS.cssSel);l.find(".pagelayer-prev-post").html(t.atts.prev_link),l.find(".pagelayer-next-post").html(t.atts.next_link)}})}),500),()=>{clearTimeout(q[e.id])})),[t])}var Ee={};function ke(e){e.atts.post_info_content=1;const{attributes:t}=e.props;(0,a.useEffect)((()=>{clearTimeout(Ee[e.id]),Ee[e.id]=setTimeout((function(){jQuery.ajax({url:pagelayer_ajax_url+"&action=pagelayer_post_info&postID="+pagelayer_postID,type:"post",data:{pagelayer_nonce:pagelayer_ajax_nonce,el:e.atts},success:function(a){var t=jQuery.parseJSON(a);pagelayer_empty(t.post_info_content)?e.$.find(".pagelayer-post-info-list-container").hide():(e.$.find(".pagelayer-post-info-list-container").show(),e.$.find(".pagelayer-post-info-label").html(t.post_info_content),e.$.find(".pagelayer-post-info-icon img").attr("src",t.avatar_url),e.$.find(".pagelayer-post-info-list-container > a").attr("href",t.link))}})}),500)}),[t])}function we(e){const{attributes:t}=e.props;(0,a.useEffect)((()=>{pagelayer_fb_apps(pagelayer_query(e.CSS.cssSel))}),[t])}function Ne(e){const{attributes:t}=e.props;(0,a.useEffect)((()=>{pagelayer_fb_apps(pagelayer_query(e.CSS.cssSel))}),[t])}function xe(e){const{clientId:t}=e.props;e.tmp["src-url"]=e.tmp["src-url"]||e.atts.src,(0,a.useEffect)((()=>{var a=pagelayer_query("#block-"+t);a.length<1||a.find(".pagelayer-audio-container").html(`<audio controls>\n\t\t\t<source src="${e.tmp["src-url"]}"></source>\n\t\t</audio>`)}))}function Ce(e){pagelayer_audio(e.$)}function je(e){e.tmp["before_image-url"]=e.tmp["before_image-url"]||e.atts.before_image,e.tmp["after_image-url"]=e.tmp["after_image-url"]||e.atts.after_image}function Se(e){pagelayer_before_after_slider(e.$)}function Te(e){var a=pagelayer_empty(e.tmp["ids-urls"])?[]:"object"==typeof e.tmp["ids-urls"]?e.tmp["ids-urls"]:JSON.parse(e.tmp["ids-urls"]),t=pagelayer_empty(e.tmp["ids-all-urls"])?[]:"object"==typeof e.tmp["ids-all-urls"]?e.tmp["ids-all-urls"]:JSON.parse(e.tmp["ids-all-urls"]),l=pagelayer_empty(e.tmp["ids-all-titles"])?[]:"object"==typeof e.tmp["ids-all-titles"]?e.tmp["ids-all-titles"]:JSON.parse(e.tmp["ids-all-titles"]),r=pagelayer_empty(e.tmp["ids-all-links"])?[]:"object"==typeof e.tmp["ids-all-links"]?e.tmp["ids-all-links"]:JSON.parse(e.tmp["ids-all-links"]),n=pagelayer_empty(e.tmp["ids-all-captions"])?[]:"object"==typeof e.tmp["ids-all-captions"]?e.tmp["ids-all-captions"]:JSON.parse(e.tmp["ids-all-captions"]),s="",i='<li class="pagelayer-grid-page-item active">1</li>',o="link_to"in e.atts&&!pagelayer_empty(e.atts.link_to),p=0,c=1;if(pagelayer_empty(e.tmp))return s='<h4 style="text-align:center;">Please Select Images!</h4>',e.atts.ul=s,void(e.atts.pagin="");s+='<ul class="pagelayer-grid-gallery-ul">';var m="gallery-id-"+Math.floor(100*Math.random()+1),g=e.atts.images_no;for(var y in a){0!=g&&p%g==0&&0!=p&&(s+='</ul><ul class="pagelayer-grid-gallery-ul">',i+='<li class="pagelayer-grid-page-item">'+ ++c+"</li>");var d=a[y];"custom"!=e.atts.size&&y in t&&e.atts.size in t[y]&&(d=t[y][e.atts.size]),s+='<li class="pagelayer-gallery-item" >',o||(s+="<div>"),o&&"media_file"==e.atts.link_to&&(s+='<a href="'+("media_file"==e.atts.link_to?d:e.atts.link||"")+'" class="pagelayer-ele-link">'),o&&"attachment"==e.atts.link_to&&(s+='<a href="'+r[y]+'" class="pagelayer-ele-link">'),o&&"lightbox"==e.atts.link_to&&(s+='<a href="'+a[y]+'" class="pagelayer-ele-link" data-lightbox-gallery="'+m+'" alt="'+l[y]+'" pagelayer-grid-gallery-type="'+e.atts.link_to+'">'),s+='<img class="pagelayer-img" src="'+d+'" title="'+l[y]+'" alt="'+l[y]+'">',"true"==e.atts.caption&&(s+='<span class="pagelayer-grid-gallery-caption">'+n[y]+"</span>"),o&&(s+="</a>"),o||(s+="</div>"),s+="</li>",p++}s+="</ul>",e.atts.pagin=c>1?'<div class="pagelayer-grid-gallery-pagination"><ul class="pagelayer-grid-page-ul"><li class="pagelayer-grid-page-item">«</li>'+i+'<li class="pagelayer-grid-page-item">»</li></ul></div>':"",e.tmp["gallery-random-id"]=m,e.atts.ul=s}function Ae(e){pagelayer_pl_grid_lightbox(e.$)}function Qe(e){"current"==e.atts.box_source?(e.tmp["avatar-url"]=pagelayer_author.avatar,e.atts.display_name=pagelayer_author.display_name,e.atts.description=pagelayer_author.description,e.atts.user_url=pagelayer_author.user_url):e.tmp["avatar-url"]=e.tmp["avatar-url"]||e.atts.avatar,e.atts.display_html="<"+e.atts.name_style+">"+e.atts.display_name+"</"+e.atts.name_style+">",e.atts.avatar_html='<img class="pagelayer-img pagelayer-author-image" src="'+e.tmp["avatar-url"]+'" title="{{{avatar-title}}}" alt="{{{avatar-alt}}}">',void 0===e.atts.tmpAtts["avatar-url"]&&jQuery(".pagelayer-author-profile-pic").css("display","none")}function qe(e){var a=e.$,t=a.find(".pagelayer-splash-container");a.unbind("click"),a.on("click",".pagelayer-splash-close, .pagelayer-splash-bg-close",(function(e){e.stopPropagation(),t.fadeOut()})),a.on("click",(function(e){t.fadeIn()})),"custom"==e.atts.style?t.css({background:e.atts.shadow_color,color:e.atts.content_color}):t.css({background:"",color:""}),t.removeClass().addClass("pagelayer-splash-container pagelayer-splash-"+e.atts.style)}function Oe(e){"placeholder"in e.atts&&(e.tmp.placeholder=pagelayer_htmlEntities(e.atts.placeholder))}function Pe(e){e.$.find("input").on("click input",(function(e){e.stopPropagation()})),pagelayer_search_form(e.$)}function ze(e){e.tmp["img-url"]=e.tmp["img-url"]||e.atts.img}function Ie(e){e.$.find(".pagelayer-hotspots-icon-holder").removeClass((function(e,a){return(a.match(/(^|\s)pagelayer-animation-\S+/g)||[]).join(" ")})),pagelayer_image_hotspot(e.$)}function Be(e){pagelayer_pl_img_portfolio(e.$)}function Fe(e){e.atts.func_img=e.tmp["img-"+e.atts["img-size"]+"-url"]||e.tmp["img-url"],e.atts.func_img=e.atts.func_img||e.atts.img,"link_type"in e.atts&&("custom_url"==e.atts.link_type&&(e.atts.func_link=pagelayer_empty(e.tmp.link)?"":e.tmp.link),"media_file"==e.atts.link_type&&(e.atts.func_link=e.tmp["img-url"]||e.atts.img),"lightbox"==e.atts.link_type&&(e.atts.func_link=e.tmp["img-url"]||e.atts.img))}function He(e){jQuery(e.$).parent().attr("data-groups",'["'+e.atts.cat_name+'"]'),pagelayer_pl_image(e.$)}function Me(e){var a=e.$.find(".pagelayer-stars-container");a.removeAttr("pagelayer-setup"),pagelayer_stars(a)}function Re(e){e.atts.xcolor=pagelayer_empty(e.atts.xcolor)?"":pagelayerParseColor(e.atts.xcolor,!1),e.atts.ycolor=pagelayer_empty(e.atts.ycolor)?"":pagelayerParseColor(e.atts.ycolor,!1)}function Le(e){var a=e.$;pagelayer_chart(a)}function De(e){e.atts.chart_border_color=pagelayer_empty(e.atts.chart_border_color)?"":pagelayerParseColor(e.atts.chart_border_color,!1),e.atts.bg_color=pagelayer_empty(e.atts.bg_color)?"":pagelayerParseColor(e.atts.bg_color,!1)}function Ve(e){e.tmp["cta_image-url"]=e.tmp["cta_image-url"]||e.atts.cta_image}function Ue(e){"current"==e.atts.link_type&&(e.atts["custom-url"]=pagelayer_post_permalink)}function Ge(e){pagelayer_fb_apps(e.$)}function Je(e){const[t,l]=(0,a.useState)("");e.atts.map_img_id=e.tmp["img_map-id-"+e.atts["img_map-size"]+"-url"]||e.tmp["map_img-id-url"],e.atts.map_img_id=e.atts.map_img_id||e.atts["map_img-id"],e.atts["pagelayer-srcset"]=e.atts.map_img_id+", "+e.atts.map_img_id+" 1x, ",(0,a.useEffect)((()=>{if(e.atts&&e.atts.pagelayer_image_map){let a="";e.atts.pagelayer_map_path="";for(const t in e.atts.pagelayer_image_map)a+=`<path class='pagelayer-imgmap-item' d='' stroke-width='2' data-cord='${e.atts.pagelayer_image_map[t]?.path||""}' data-id='${t}' fill-opacity='0.3' fill-rule='evenodd' data-link='${e.atts.pagelayer_image_map[t]?.link||""}'></path>`;l(a)}}),[]),e.atts.pagelayer_map_path=t,X(e,{name:"map_img-id",size:"img_map-size"})}function We(e){pagelayer_pl_image_map(e.$),function(e,a){const{attributes:t,setAttributes:l}=a.props;var r=t.pagelayer_image_map||{},n=e.find("svg"),s=e.find(".pagelayer-imgmap-coordinates-wraper"),i=e.find(".pagelayer-imgmap-toolbar"),o=e.find(".pagelayer-imgmap-wrapper"),p=function(e){var a=e.find(".pagelayer-imgmap-coord"),t=!1;const l=()=>{t=!1,a.removeClass("pagelayer-mapele-dragging").off("mouseup click"),jQuery(document).off("mouseup.imgmap")};a.off("mousedown").on("mousedown",(function(a){a.stopPropagation(),a.preventDefault(),jQuery(a.target).hasClass("pagelayer-imgmap-remove-cord")||(t=!0,jQuery(this).addClass("pagelayer-mapele-dragging").mouseup(l).click(l),jQuery(document).on("mouseup.imgmap",l),n.off("mouseup mousemove"),n.mouseup((function(e){t=!1})),n.mousemove((function(a){if(!t)return;const l=e.find(".pagelayer-imgmap-coord.pagelayer-mapele-dragging");if(!l.length)return;const r=(a.offsetX/o.width()*100).toFixed(2),n=(a.offsetY/o.height()*100).toFixed(2);l.css({left:`${r}%`,top:`${n}%`}),c(r,n,l.data("id"))})))}))},c=function(a,t,l){const r=e.find(".pagelayer-imgmap-item.pagelayer-map-item-active"),n=r.attr("data-cord").split(",");n.splice(2*l,2,a,t),r.attr("data-cord",n.join(",")),pagelayer_resize_imgmap(e)},m=function(a){a.stopPropagation();const t=jQuery(this).parent(),l=t.attr("data-id"),r=n.find(".pagelayer-map-item-active"),s=r.attr("data-id"),i=r.attr("data-cord").split(",");i.splice(2*l,2),r.attr("data-cord",i.join(",")),t.remove(),e.find(`.pl-cord-${s}`).each(((e,a)=>{jQuery(a).attr("data-id",e)})),pagelayer_resize_imgmap(e)},g=function(){if(!(n.find(".pagelayer-map-item-active").length>0)){n.find(".pagelayer-map-item-active_is_editable").removeClass("pagelayer-map-item-active_is_editable");var a=jQuery(this).addClass("pagelayer-map-item-active_is_editable");h(!0,"selected"),i.find(".pagelayer-map_edit").off("click").on("click",(function(e){e.preventDefault(),d(a)})),e.on("click.handleOutsideClick",(function(t){t.preventDefault(),n.find(".pagelayer-map-item-active").length>0||jQuery(t.target).hasClass("pagelayer-imgmap-item")||(a.removeClass("pagelayer-map-item-active_is_editable"),h(!1,"selected"),h(!1),e.off("click.handleOutsideClick"))}))}},y=function(a){a in r&&delete r[a],l({pagelayer_image_map:{...r}}),E(a,"delete"),s.find(".pl-cord-"+a).remove(),e.find('.pagelayer-imgmap-item[data-id="'+a+'"]').remove()},d=function(a){setTimeout((()=>{h(!0),a.removeClass("pagelayer-map-item-active_is_editable").addClass("pagelayer-map-item-active"),n.css("cursor","crosshair");var t=a.attr("data-id"),l=r[t]&&r[t].link&&r[t].link.length>0?r[t].link:"";l.length>0&&i.find(".pagelayer-map_href").css("color","blue"),s.find(`.pl-cord-${t}`).show(),i.find(".pagelayer-imgmap-toolbar-link input[type=text]").val(l),E(t,"set_active"),p(e),s.find(".pagelayer-imgmap-remove-cord").off("click").on("click",m)}),100)};if(i.length<1){i=o.append('<div class="pagelayer-imgmap-toolbar">\n\t\t\t<span class="pagelayer-imgmap-toolbar-mover" title="Drag Toolbar"></span>\n\t\t\t<button class="pagelayer-imgmap-toolbar-item pagelayer-map_append" title="Add"><i class="fas fa-plus"></i></button>\n\t\t\t<button class="pagelayer-imgmap-toolbar-item pagelayer-map_save" title="Save"><i class="fas fa-check"></i></button>\n\t\t\t<button class="pagelayer-imgmap-toolbar-item pagelayer-map_edit" title="Edit"><i class="fas fa-edit"></i></button>\n\t\t\t<button class="pagelayer-imgmap-toolbar-item pagelayer-map_href" title="Insert Link"><i class="fas fa-link"></i></button>\n\t\t\t<button class="pagelayer-imgmap-toolbar-item pagelayer-map_remove" title="Delete"><i class="fas fa-trash"></i></button>\n\t\t\t<div class="pagelayer-imgmap-toolbar-link">\n\t\t\t\t<input type="text" name="url" placeholder="https://example.com" autocomplete="off">\n\t\t\t\t<span class="pagelayer-imgmap-save-link pagelayer-btn-success">Save</span>\n\t\t\t</div>\n\t\t\t<button class="pagelayer-map-list-trigger" title="Navigator"><i class="fas fa-sitemap"></i></button>\n\t\t\t<div class="pagelayer-imgmap-navigator">\n\t\t\t\t<div class="pagelayer-imgmap-navigator-header">\n\t\t\t\t\t<i class="fas fa-sitemap"></i><span>Navigator</span>\n\t\t\t\t\t<span class="fa fa-remove pagelayer-imgmap-navigator-close"></span>\n\t\t\t\t</div>\n\t\t\t\t<div class="pagelayer-imgmap-navigator-wrap"></div>\n\t\t\t</div>\n\t\t</div>').find(".pagelayer-imgmap-toolbar")}var u=i.find(".pagelayer-imgmap-toolbar-link"),_=u.find('input[type="text"]'),f=i.find(".pagelayer-imgmap-navigator"),v=f.find(".pagelayer-imgmap-navigator-wrap"),h=function(e=!0,a="edit"){var t=a,l="edit"==a?"selected":"edit";if(e)return i.addClass("pagelayer-imgmap-"+t),void i.removeClass("pagelayer-imgmap-"+l);i.removeClass("pagelayer-imgmap-"+t)},b=jQuery(pagelayerGetDocumentElement());i.find(".pagelayer-imgmap-toolbar-mover").off("mousedown").on("mousedown",(e=>{e.preventDefault(),i.addClass("pagelayer-imgmap-toolbar-dragging"),n.on("mousemove",(e=>{i.hasClass("pagelayer-imgmap-toolbar-dragging")&&i.css({left:e.offsetX-5+"px",top:e.offsetY-35+"px"})})),jQuery(b).off("mousedown.pl_svg_ele").on("mouseup.pl_svg_ele",(()=>{i.removeClass("pagelayer-imgmap-toolbar-dragging"),n.off("mousemove")}))})),i.find(".pagelayer-imgmap-toolbar-item").off("click").on("click",(function(e){e.stopPropagation();var a=jQuery(this),t=n.find(".pagelayer-map-item-active"),o=t.attr("data-id"),p=!1;if(_.length<1&&i.find(".pagelayer-map_href").css("color","inherit"),n.css("cursor","initial"),a.hasClass("pagelayer-map_append")){var c=pagelayerRandstr(6),m=pagelayer_create_imgmap_svg(["pagelayer-imgmap-item","pagelayer-map-item-active"],[["d",""],["data-id",c],["stroke-linejoin","round"],["fill-rule","evenodd"],["fill-opacity","0.3"],["stroke-width","2"],["data-cord","{{data}}"],["data-link","{{link_href}}"]]);E(c,"append",!0),n.find("g")[0].appendChild(m),n.find(".pagelayer-imgmap-item").off("click").on("click",g),p=!0}if(a.hasClass("pagelayer-map_remove")){let e=n.find(".pagelayer-map-item-active, .pagelayer-map-item-active_is_editable").attr("data-id");y(e)}if(a.hasClass("pagelayer-map_href")&&(i.find(".pagelayer-imgmap-toolbar-link").fadeToggle(),p=!0),a.hasClass("pagelayer-map_save")){if(s.find(".pl-cord-"+o).length<3)return alert("Please draw at least 3 coordinates!");var d=t.attr("data-cord")||"",f=v.find(`.pagelayer-imgmap-navigator-item[data-id="${o}"]`).find(".pagelayer-imgmap-navigator-title").text();r[o]=r[o]||{},r[o].path=d||"",r[o].title=f||"",l({pagelayer_image_map:{...r}}),jQuery(".pagelayer-map_href").css("color","block"==u.css("display")&&_.val()?"blue":"inherit"),E(o,"reset_active"),s.find(".pl-cord-"+o).hide(),s.find(".pagelayer-imgmap-coord").removeClass("pagelayer-mapele-dragging"),n.find(".pagelayer-imgmap-item").removeClass("pagelayer-map-item-active")}h(p)})),e.find(".pagelayer-imgmap-save-link").click((function(){let e=jQuery(this).parent(),a=n.find(".pagelayer-map-item-active").data("id");((r=r||{})[a]=r[a]||{}).link=e.find("input").val()||"",e.fadeOut()})),n.off("click").on("click",(function(a){var t=n.find(".pagelayer-map-item-active");if(t.length<1)return void i.css({left:a.offsetX-15,top:a.offsetY-40});_.val(""),n.css("cursor","crosshair");var[l,r]=[o.width(),o.height()],[c,g]=[(a.offsetX/l*100).toFixed(2),(a.offsetY/r*100).toFixed(2)],y=t.attr("data-cord")||"";(y="{{data}}"==y||""==y?[]:y.split(",")).push(c,g),t.attr("data-cord",y);const d=s.find(`.pl-cord-${t.attr("data-id")}`).length,u=`<div class="pagelayer-imgmap-coord pl-cord-${t.attr("data-id")}" \n\t\t\ttitle="Drag to reposition" data-id="${d}" \n\t\t\tstyle="left:${a.offsetX}px; top:${a.offsetY}px;">\n\t\t\t\t<span class="pagelayer-imgmap-remove-cord fa fa-trash"></span>\n\t\t\t</div>`;s.append(u),setTimeout((()=>pagelayer_resize_imgmap(e)),100),p(e),s.find(".pagelayer-imgmap-remove-cord").off("click mousedown").on("click",m)})),n.find(".pagelayer-imgmap-item").off("click").on("click",g),i.find(".pagelayer-map-list-trigger").off("click").on("click",(function(){f.toggle()})),f.find(".pagelayer-imgmap-navigator-close").on("click",(function(){f.hide()}));var E=function(a,t="append",s=!1){if(!a)return;const o=v.find(`.pagelayer-imgmap-navigator-item[data-id="${a}"]`);switch(t){case"append":if(o.length>0)return;const t=v.children(".pagelayer-imgmap-navigator-item").length+1,p=s?"pagelayer-navigator-item-active":"",c=r[a]?.title||`Map Item ${t}`,m=`\n\t\t\t\t<div class="pagelayer-imgmap-navigator-item ${p}" data-id="${a}">\n\t\t\t\t\t<div data-id="${a}" class="pagelayer-imgmap-navigator-item-drag"><i class="fas fa-th-list"></i></div>\n\t\t\t\t\t<div class="pagelayer-imgmap-navigator-title">${c}</div>\n\t\t\t\t\t<div class="pagelayer-imgmap-navigator-actions">\n\t\t\t\t\t\t${["Move Up","Edit","Delete","Move Down"].map(((e,t)=>`\n\t\t\t\t\t\t\t<button value="${a}" class="pagelayer-map-navigator-trigger ${["navigator_move_up","navigator_pagelayer-map_edit","navigator_pagelayer-map_remove","navigator_move_down"][t]}" title="${e}">\n\t\t\t\t\t\t\t\t<i class="${["fa fa-arrow-up","fa fa-pencil","fas fa-trash","fa fa-arrow-down"][t]}"></i>\n\t\t\t\t\t\t\t</button>`)).join("")}\n\t\t\t\t\t</div>\n\t\t\t\t</div>`;v.append(m),v.find(".pagelayer-map-navigator-trigger").off("click").on("click",(function(a){a.stopPropagation();var t=jQuery(this).val();if(jQuery(this).hasClass("navigator_pagelayer-map_edit")){const a=n.find(".pagelayer-map-item-active");if(a.length>0){if(t===a.attr("data-id"))return;i.find(".pagelayer-imgmap-toolbar-item.pagelayer-map_save").click()}let l=e.find(`.pagelayer-imgmap-item[data-id="${t}"]`);l.on("click",d(l))}else if(jQuery(this).hasClass("navigator_move_down")||jQuery(this).hasClass("navigator_move_up")){const a=jQuery(this).closest(".pagelayer-imgmap-navigator-item"),n=jQuery(this).hasClass("navigator_move_up"),s=n?a.prev():a.next();s.length>0&&(function(a,t=!1){const n=Object.keys(r),s=n.indexOf(a);if(-1===s||0===s&&!t||s===n.length-1&&t)return!1;const i=t?s+1:s-1;[n[s],n[i]]=[n[i],n[s]],r=n.reduce(((e,a)=>({...e,[a]:r[a]})),{}),l({pagelayer_image_map:r});const o=e.find(`path[data-id="${a}"]`);t?o.next().after(o):o.prev().before(o)}(t,!n),n?s.before(a):s.after(a))}else jQuery(this).hasClass("navigator_pagelayer-map_remove")&&(y(t),i.removeClass("pagelayer-imgmap-edit"))})),v.find(`.pagelayer-imgmap-navigator-item[data-id="${a}"] .pagelayer-imgmap-navigator-title`).off("blur").on("click",(function(){const e=jQuery(this).attr("contenteditable","true").focus(),t=e.text().trim();e.on("blur",(function(n){const s=e.text().trim();s?(r[a].title=s,l({pagelayer_image_map:{...r}})):(alert("Error changing title"),e.text(t)),e.attr("contenteditable","false").off("blur")}))}));break;case"delete":o.remove();break;case"reset_active":v.find(".pagelayer-imgmap-navigator-item").removeClass("pagelayer-navigator-item-active");break;case"set_active":o.hasClass("pagelayer-navigator-item-active")||(o.addClass("pagelayer-navigator-item-active"),jQuery(".pagelayer-imgmap-navigator-wrap").animate({scrollTop:0}))}};if(Object.keys(r).length>0)for(var k in r)E(k);pagelayer_resize_imgmap(e),jQuery(window).on("resize",(function(){pagelayer_resize_imgmap(e)}))}(e.$,e)}const Ze=["accept","acceptCharset","accessKey","action","allowFullScreen","allowTransparency","alt","async","autoComplete","autoFocus","autoPlay","capture","cellPadding","cellSpacing","challenge","charSet","checked","cite","classID","className","colSpan","cols","content","contentEditable","contextMenu","controls","coords","crossOrigin","data","dateTime","default","defer","dir","disabled","download","draggable","encType","form","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","icon","id","inputMode","integrity","is","keyParams","keyType","kind","label","lang","list","loop","low","manifest","marginHeight","marginWidth","max","maxLength","media","mediaGroup","method","min","minLength","multiple","muted","name","noValidate","nonce","open","optimum","pattern","placeholder","poster","preload","profile","radioGroup","readOnly","rel","required","reversed","role","rowSpan","rows","sandbox","scope","scoped","scrolling","seamless","selected","shape","size","sizes","span","spellCheck","src","srcDoc","srcLang","srcSet","start","step","style","summary","tabIndex","target","title","type","useMap","value","width","wmode","wrap","onClick"].concat(["autoCapitalize","autoCorrect","color","itemProp","itemScope","itemType","itemRef","itemID","security","unselectable","results","autoSave"]).concat(["accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baseProfile","baselineShift","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in","in2","intercept","k","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","scale","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","viewBox","viewTarget","visibility","widths","wordSpacing","writingMode","x","x1","x2","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlns","xmlnsXlink","xmlBase","xmlLang","xmlSpace","y","y1","y2","yChannelSelector","z","zoomAndPan"]).reduce((function(e,a){const t=a.toLowerCase();return t!==a&&(e[t]=a),e}),{}),Xe=["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","menuitem","textarea"];function Ye(e,a){var t=[];const l=e=>{if(3===(e=jQuery(e)[0]).nodeType)return e.data;if(8===e.nodeType)return"";var t=e.localName;if(t=t.replace(/[^\w-]/g,""),Xe.indexOf(t)>-1)return Ke(e,a);var r="",n=[];if(jQuery(e).children().length>0)for(var s=e.childNodes,i=0;s.length>i;)n.push(l(s[i])),i+=1;else r=e.innerText;return Ke(e,a,r,n)};return jQuery(e).each((function(){t.push(l(this))})),t}function Ke(e,t,l,r){let n={},s=!1,i=!1;var o=e.localName;if(o=o.replace(/[^\w-]/g,""),r=r||[],e.attributes&&(n=Object.entries(e.attributes).reduce(((e,[a,t])=>{var l=t.nodeName,r=t.nodeValue;return"style"===(l=Ze[l.replace(/[-:]/,"")]||l)?r=function(e){const a=(e=e||"").split(/;(?!base64)/);var t={};for(let e=0;e<a.length;++e){let l,r,n;l=a[e].split(":"),l.length>2&&(l[1]=l.slice(1).join(":")),r=l[0],n=l[1],"string"==typeof n&&(n=n.trim()),null!=r&&null!=n&&r.length>0&&n.length>0&&(0!==r.indexOf("--")&&(r=r.trim().split("-").map(((e,a)=>0===a?e:e.charAt(0).toUpperCase()+e.slice(1))).join("")),t[r]=n)}return t}(r):"class"===l?l="className":"for"===l?l="htmlFor":l.startsWith("on")?r=Function(r):"pagelayer-editable"===l?s=r:"pagelayer-group-holder"===l&&(i=r),ea.includes(l)&&""===(r||"")&&(r=l),e[l]=r,e}),n)),s){var p={tagName:o,_props:t,propsName:s,value:e.innerHTML};return n={...n,...p},(0,a.createElement)(wp.PagelayerComponents.rich_text,n)}if(i){p={TagName:o,plTag:i,_props:t},n={...n,...p};var c=wp.PagelayerBlocks.addGroupBlock;return(0,a.createElement)(c,n)}const m=null!=l?[l].concat(r):r;return a.createElement.apply(null,[o,n].concat(m))}const ea=["allowFullScreen","allowpaymentrequest","async","autoFocus","autoPlay","checked","controls","default","disabled","formNoValidate","hidden","ismap","itemScope","loop","multiple","muted","nomodule","noValidate","open","playsinline","readOnly","required","reversed","selected","truespeed"],aa=window.wp.blocks,ta=pagelayer_url+"/images/pagelayer-logo-19.png",la=pagelayer_url+"/images/Spinner-3.gif",ra=()=>{const[e,t]=(0,a.useState)({}),[r,n]=(0,a.useState)("header"),[i,o]=(0,a.useState)(""),[p,c]=(0,a.useState)({}),[m,g]=(0,a.useState)(!1),[y,d]=(0,a.useState)([]),[u,_]=(0,a.useState)(3),[f,v]=(0,a.useState)([]),[h,b]=(0,a.useState)([]),[E,k]=(0,a.useState)({}),w={section:(0,s.__)("sections"),header:(0,s.__)("Header"),footer:(0,s.__)("Footer"),page:(0,s.__)("Page")};return(0,a.useEffect)((()=>{const e=window.innerWidth;e>=1500?_(4):e>=992?_(3):e>=768?_(2):e>=360&&_(1)}),[]),(0,a.useEffect)((()=>(jQuery(".pagelayer-section-holder").on("click",(function(e){var a=jQuery(e.target).closest(".pagelayer-section-item");if(!(a.length<1||a.find(".pagelayer-section-pro-req").length>0)){e.preventDefault();var t=a.attr("pagelayer-add-section-id");g(!0),jQuery.ajax({url:pagelayer_ajax_url+"&action=pagelayer_get_section_blocks",type:"POST",data:{pagelayer_nonce:pagelayer_ajax_nonce,pagelayer_section_id:t},success:function(e){try{if(e=JSON.parse(e),!pagelayer_empty(e.error))return console.log("Error getting the section"),jQuery(".pagelayer-library-modal-container").hide(),void g(!1);var a=(0,aa.parse)(e.code);(0,l.dispatch)("core/block-editor").insertBlocks(a)}catch(e){return console.log("Error getting the section"),jQuery(".pagelayer-library-modal-container").hide(),void g(!1)}},complete:function(){jQuery(".pagelayer-library-modal-container").hide(),g(!1)}})}})),()=>{jQuery(".pagelayer-section-holder").unbind("click")}))),(0,a.useEffect)((()=>{!(r in e)||pagelayer_empty(e[r])?(g(!0),fetch(`https://api.pagelayer.com/library.php?give=${r}`).then((e=>{if(!e.ok)throw new Error("Network response was not ok");return e.json()})).then((a=>{t({...e,[r]:a}),b({...a.list}),c(a.tags),g(!1)})).catch((e=>{console.error("Error fetching data:",e),g(!1)}))):b({...e[r].list})}),[r]),(0,a.useEffect)((()=>{var a=!1;const t=()=>{var t=jQuery(".pagelayer-library-modal-container"),l=t.find(".pagelayer-section-is-visible");if(!(r in e)||!pagelayer_isElementInView(l,t))return;if(0===Object.keys(h).length||a)return;a=!0;const n=[...f],s={...h};let i=0;for(const e in h){if(i>=5*u)break;const a=i%u;a in n||(n[a]=[]),n[a].push(e),delete s[e],i++}b(s),v(n),a=!1};return t(),jQuery(".pagelayer-section-modal-body").on("scroll",t),()=>{jQuery(".pagelayer-section-modal-body").unbind("scroll")}}),[h]),(0,a.useEffect)((()=>{Object.keys(p).forEach((e=>{E[e]=p[e].length})),k(E)}),[p]),(0,a.useEffect)((()=>{Object.keys(p).length>0&&0==y.length&&r in e&&!pagelayer_empty(e[r])&&b({...e[r].list})}),[y]),(0,a.createElement)(a.Fragment,null,(0,a.createElement)(na,null),(0,a.createElement)("div",{className:"pagelayer-library-modal-container",style:{display:"none"}},(0,a.createElement)("nav",{className:"pagelayer-library-modal-nav"},(0,a.createElement)("button",null,(0,a.createElement)("img",{src:ta,alt:"Pagelayer Logo"}),(0,s.__)("Pagelayer Library")),(0,a.createElement)("div",{className:"pagelayer-library-modal-ul-container"},(0,a.createElement)("ul",{className:"pagelayer-library-modal-ul"},Object.keys(w).map(((t,l)=>(0,a.createElement)("li",null,(0,a.createElement)("button",{className:r===t?"pagelayer-active-modal-btn":"",onClick:()=>{return a=t,d([]),void(r!==a&&(v([]),n(a),a in e&&c(e[a].tags)));var a}},w[t])))))),(0,a.createElement)("span",{className:"pagelayer-library-modal-close"},"×")),(0,a.createElement)("div",{className:"pagelayer-library-modal-content",id:"modal"},(0,a.createElement)("div",{className:"pagelayer-library-modal-tags"},(0,a.createElement)("div",{className:"pagelayer-library-modal-tag-div"},(0,a.createElement)("input",{type:"text",value:i,style:{border:"none",backgroundColor:"#724c8717",padding:"7px",width:"212px",borderRadius:"0px"},onChange:e=>o(e.target.value),placeholder:"Search"})),(0,a.createElement)("div",{className:"pagelayer-library-modal-tag-list"},Object.keys(p).map(((e,t)=>{const l=!i||e.includes(i),r=y.includes(e)?"pagelayer-tag-style-active":"";return l&&(0,a.createElement)("p",{key:t,onClick:()=>(e=>{const a=y.includes(e)?y.filter((a=>a!==e)):[...y,e],t={};a.forEach((e=>{e in p&&p[e].forEach((e=>{t[e]=e}))})),v([]),d(a),b(t)})(e),style:{cursor:"pointer"},className:r},`${e} (${E[e]})`)})))),(0,a.createElement)("div",{className:"pagelayer-section-modal-body",style:m?{overflow:"hidden"}:{overflow:"auto"}},f.map((t=>{if(r in e)return(0,a.createElement)("div",{className:"pagelayer-section-holder","pagelayer-section-type":r},t.map((t=>(0,a.createElement)("div",{key:t,className:"pagelayer-section-item","pagelayer-add-section-id":t},(0,a.createElement)("img",{src:`${e[r].image_url}${t}/screenshot.jpg`,alt:"Pagelayer code screenshot",loading:"lazy"}),!pagelayer_empty(e[r].list[t])&&pagelayer_empty(pagelayer_pro)&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:"pagelayer-section-pro-req"},(0,s.__)("Pro")),(0,a.createElement)("div",{className:"pagelayer-section-pro-txt"},(0,s.__)("This feature is a part of"),(0,a.createElement)("a",{href:pagelayer_pro_url,target:"_blank"},pagelayer_pro_txt),(0,s.__)("You will need purchase"),(0,a.createElement)("a",{href:pagelayer_pro_url,target:"_blank"},pagelayer_pro_txt),(0,s.__)("to use this feature.")))))))})),(0,a.createElement)("div",{className:"pagelayer-section-is-visible"})),m&&(0,a.createElement)("div",{className:"pagelayer-library-loader"},(0,a.createElement)("img",{src:la,alt:"Loading..."})),m&&(0,a.createElement)("div",{className:"pagelayer-add-section-modal-overlay"},(0,a.createElement)("div",{className:"pagelayer-section-wait"},(0,a.createElement)("div",{className:"pagelayer-loader"},(0,a.createElement)("div",{className:"pagelayer-percent-parent"})),(0,a.createElement)("br",null),(0,a.createElement)("span",null,(0,s.__)("Please wait a moment")))))))},na=()=>((0,a.useEffect)((()=>{var e=jQuery("#pagelayer-editor-button-modal"),a=jQuery(".edit-post-header-toolbar");if(!(a.length<1))return e.detach(),a.parent().append(e),e.show(),jQuery("#pagelayer-library-modal-btn").on("click",(function(e){e.preventDefault(),jQuery(".pagelayer-library-modal-container").show()})),jQuery(".pagelayer-library-modal-close").click((function(){jQuery(".pagelayer-library-modal-container").hide()})),()=>{jQuery("#pagelayer-library-modal-btn").unbind("click"),jQuery(".pagelayer-library-modal-close").unbind("click")}})),(0,a.createElement)("div",{id:"pagelayer-editor-button-modal",style:{marginLeft:"15px"}},(0,a.createElement)("a",{id:"pagelayer-library-modal-btn",className:"button button-primary button-large",style:{height:"auto",padding:"4px 8px",fontSize:"13px",display:"flex",alignItems:"center",width:"max-content"}},(0,a.createElement)("img",{src:`${pagelayer_url}/images/pagelayer-logo-40.png`,align:"top",width:"22",style:{marginRight:"4px"}}),(0,a.createElement)("span",null,(0,s.__)("Library"))))),{pagelayer_shortcodes:sa,pagelayer_styles:ia}=pagelayer_config,oa=["settings","options"];var pa=sa,ca=ia;for(const e in pa){let t=pagelayerBlockNameByTag(e),l=pa[e],r="pagelayer-shortcode ";"icon"in pa[e]?r+=pa[e].icon:r+="pagelayer-"+e;let n=(0,a.createElement)("i",{class:r});pagelayerCacheBlockTags[t]=e;var ma={};if("parent"in l){ma.parent=[];for(let e in l.parent)ma.parent[e]=pagelayerBlockNameByTag(l.parent[e])}else ma.category="pagelayer";var ga={};for(var ya in oa){var da=oa[ya];for(var ua in l[da]){var _a=ua in l?l[ua]:ca[ua];for(var fa in _a){if(ga[fa]=new Object,ga[fa]={type:_a[fa].type},"default"in _a[fa]&&!pagelayer_empty(_a[fa].default)){var va=_a[fa].default;if("units"in _a[fa])if(jQuery.isNumeric(va))va+=_a[fa].units[0];else{var ha="sep"in _a[fa]?_a[fa].sep:",",ba=va.split(ha);for(var Ea in ba)jQuery.isNumeric(ba[Ea])&&(ba[Ea]=ba[Ea]+_a[fa].units[0]);va=ba.join(ha)}ga[fa].default=va}var ka=["tablet","mobile"];if("screen"in _a[fa]||"typography"==_a[fa].type)for(var wa in ka){let e=fa+"_"+ka[wa];ga[e]=new Object,ga[e]={type:_a[fa].type}}}}}"pl_contact"==e&&(ga.con_post_id={type:"string"}),l.innerHTML&&l.innerHTML in ga&&(ga[l.innerHTML].source="html"),ga["pagelayer-id"]={type:"string"},ga.tmpAtts={type:"object",default:{}},ma.supports={html:!1};var Na={title:l.name,apiVersion:3,icon:n,attributes:ga,edit:function(a){return ja(e,a,l)},save:function(e){return(0,a.createElement)(Q,{...e,pl_props:l})}},xa={...ma,...Na};wp.blocks.registerBlockType(t,xa)}var Ca={};function ja(t,r,n){var s=t.replace("pl_","");const{InspectorControls:i}=wp.blockEditor,{TextControl:o}=wp.components,{setAttributes:p,className:c,attributes:m,isSelected:g,clientId:d}=r,u=(()=>{const{deviceType:e}=(0,l.useSelect)((e=>({deviceType:e("core/edit-post")?.__experimentalGetPreviewDeviceType()||"Desktop"})),[]);return e||""})().toLowerCase(),_=(0,a.useRef)(null),f=function(e,a){var t=new Object;const{attributes:l,name:r}=e;if(t.id=qa(l),t.tag=pagelayerCacheBlockTags[r],t.atts={...l},t.tmp={},t.atts.tmpAtts&&(t.tmp=t.atts.tmpAtts),a=a||!1){var n=t.tag,s=function(e){delete t.atts[e],delete t.atts[e+"_tablet"],delete t.atts[e+"_mobile"]},i=pa[n];for(var o in oa){var p=oa[o];for(var c in i[p])if(e=c in i?i[c]:ca[c],!pagelayer_empty(e))for(var m in e){var g=e[m];if(!pagelayer_empty(i.skip_props)&&jQuery.inArray(m,i.skip_props)>-1)s(m);else if("req"in g){var y=g.req,d=!0;for(var u in y){var _=y[u],f="!"==u.substr(0,1);u=f?u.substr(1):u;var v=t.atts[u]||"";if(f){if("string"==typeof _&&_==v){d=!1;break}if("string"!=typeof _&&_.indexOf(v)>-1){d=!1;break}}else{if("string"==typeof _&&_!=v){d=!1;break}if("string"!=typeof _&&-1===_.indexOf(v)){d=!1;break}}}d||s(m)}}}}return t}(r,!0);(0,a.useLayoutEffect)((()=>{"pagelayer-id"in f.atts&&f.atts["pagelayer-id"]===f.id||(f.atts["pagelayer-id"]=f.id,p({"pagelayer-id":f.id}))})),f.props=r;var v={classes:[],remove_classes:[],attr:[],remove_attr:[],css:[],edit:[],cssSel:".p-"+f.id,sel:'[pagelayer-id="'+f.id+'"]',wrap:'[pagelayer-wrap-id="'+f.id+'"]'};f.className=c+" p-"+f.id+" pagelayer-"+s,f.CSS=v;var h=[],b=[];for(var E in oa){var k=oa[E];if("settings"!=k||"post_props"!=s)for(var w in n[k]){var N=w in n?n[w]:ca[w],x=[],C={},j={};for(var S in N){var $=N[S];if(S in f.atts&&pagelayerLength(f.atts[S])<1&&delete f.atts[S],"group"!=$.type){if("link"==$.type&&"selector"in $&&"object"==typeof f.atts[S]){var T={};pagelayerLength(f.atts[S].link)<1?delete f.atts[S]:("target"in f.atts[S]&&!pagelayer_empty(f.atts[S].target)&&(T={sel:$.selector,val:'target="_blank"'},v.attr.push(T)),"rel"in f.atts[S]&&!pagelayer_empty(f.atts[S].rel)&&(T={sel:$.selector,val:'rel="nofollow"'},v.attr.push(T)),"attrs"in f.atts[S]&&!pagelayer_empty(f.atts[S].attrs)&&pagelayerTrim(f.atts[S].attrs.split(";")).forEach((function(e,a){var t=e.split(/=(.*)/),l=pagelayerTrim(t[0]),r="";l.length<1||pagelayer_empty(l.match(/^[a-z_]+[\w:.-]*$/i))||(r=t.length<2?l+'=""':l+'="'+t[1]+'"',T={sel:$.selector,val:r},v.attr.push(T))})),f.atts[S]=pagelayer_empty(f.atts[S].url)?f.atts[S].link:f.atts[S].url)}var A,Q;if("addClass"in $)for(var q in A="string"==typeof $.addClass?[$.addClass]:$.addClass){var O=jQuery.isNumeric(q)?"":q;if(A[q].match(/\{\{val\}\}/)&&"list"in $){var P=e=>{var a={sel:O,val:A[q].replace("{{val}}",e)};f.atts[S]==e?v.classes.push(a):v.remove_classes.push(a)};for(var z in $.list)if("object"==typeof $.list[z])for(var I in $.list[z])P(I);else P(z)}else T={sel:O,val:A[q].replace("{{val}}",f.atts[S])},S in f.atts?v.classes.push(T):v.remove_classes.push(T)}if("addAttr"in $&&"ele_id"!=S)for(var q in Q="string"==typeof $.addAttr?[$.addAttr]:$.addAttr)T={sel:O=jQuery.isNumeric(q)?"":q,val:Q[q]},S in f.atts?v.attr.push(T):v.remove_attr.push(T);if("css"in $){var B;B="string"==typeof $.css?[$.css]:$.css;var F={desktop:"",tablet:"_tablet",mobile:"_mobile"},H="typography"==$.type?pagelayerIsGlobalTypo(f.atts[S]):"";for(var M in F){var R=S+F[M];if(R in f.atts){var L=f.atts[R];if("color"==$.type&&(L=pagelayerParseColor(f.atts[R])),"typography"==$.type&&(L=pagelayerParseTypo(L,!1,H,M)),"gradient"==$.type){pagelayer_is_string(L)&&(L=L.split(","));for(let e in L)L[e]=pagelayerParseColor(L[e])}for(var q in B)T={sel:O=jQuery.isNumeric(q)?"{{element}}":q,val:Qa(B[q],L,$.sep||",")},"tablet"==M&&(T.sel="@media (max-width: "+pagelayer_settings.tablet_breakpoint+"px) and (min-width: "+(pagelayer_settings.mobile_breakpoint+1)+"px){"+T.sel,T.val=T.val+"}"),"mobile"==M&&(T.sel="@media (max-width: "+pagelayer_settings.mobile_breakpoint+"px){"+T.sel,T.val=T.val+"}"),v.css.push(T)}}}if("edit"in $){var D={prop:S,sel:$.edit};if(pagelayer_empty($.keep_prop)||(D.keep_prop=!0),v.edit.push(D),pagelayer_empty($.keep_prop))continue}var V=!0;if("req"in $||"show"in $){var U={};if("req"in $&&"show"in $)for(var G in U=JSON.parse(JSON.stringify($.req)),$.show)U[G]=$.show[G];else U="req"in $?$.req:$.show;for(var J in U){var W=U[J],Z="!"==J.substr(0,1);J=Z?J.substr(1):J;var X=f.atts[J]||"";if(Z){if("string"==typeof W&&W==X){V=!1;break}if("string"!=typeof W&&W.indexOf(X)>-1){V=!1;break}}else{if("string"==typeof W&&W!=X){V=!1;break}if("string"!=typeof W&&-1===W.indexOf(X)){V=!1;break}}}}if(V&&g){var Y=S;"screen"in $&&(Y=S+{desktop:"",tablet:"_tablet",mobile:"_mobile"}[u]),$.c={},$.c.name=Y,$.c.val=f.atts[Y],pagelayerLength($.c.val)<1&&($.c.val="");var K=o,ee={prop:$,label:$.label,value:$.c.val,deviceType:u,...r};if($.type in wp.PagelayerComponents)K=wp.PagelayerComponents[$.type];else{ee.type=$.type;const _x=S;ee.onChange=function(e){p({[_x]:e})}}if("show_group"in $){var ae=x.push("Show Group"),te=$.show_group;j[ae-1]=[K,ee,te]}else K=(0,a.createElement)(K,ee),"group"in $?($.group in C||(C[$.group]=[]),C[$.group].push(K)):x.push(K)}}}if(!pagelayer_empty(j))for(var le in j){var re=j[le];te=re[2],x[le]=(0,a.createElement)(re[0],re[1],C[te])}if(!pagelayer_empty(x)){var ne=(0,a.createElement)(wp.components.PanelBody,{title:n[k][w],className:"pagelayer-panel__body",initialOpen:!1},x);"settings"!=k?b.push(ne):h.push(ne)}}}var se=(0,a.createElement)(i,{key:"inspector1"},(0,a.createElement)(wp.PagelayerComponents.setting_tabs,{}),(0,a.createElement)("div",{className:"pagelayer-components-tabs pl-settings"},h),(0,a.createElement)("div",{className:"pagelayer-components-tabs pl-options"},b)),ie=e["pagelayer_render_"+t];"function"==typeof ie&&ie(f);var oe="",pe={"pagelayer-id":f.id},ce=!1;if(s in wp.PagelayerBlocks){var me=wp.PagelayerBlocks[s];ce=!0,oe=(0,a.createElement)(me,{_props:r,pl_props:n,tag:s,deviceType:u,jEleRef:_,data:f})}else{if("html"in n){var ge=n.html.replace(/src=/g,"plmodifysrc="),ye=jQuery("<div>"+ge+"</div>");if(v.edit.length>0)for(var q in v.edit)$=v.edit[q].prop,v.edit[q].keep_prop||ye.find('[if="{{'+$+'}}"]').removeAttr("if");if(ye.find("[if-ext]").each((function(){var e=jQuery(this),a=$a(e.attr("if-ext"));e.removeAttr("if-ext"),a in f.atts&&!pagelayer_empty(f.atts[a])||(e[0].outerHTML=e.html())})),ye.find("[if]").each((function(){var e=jQuery(this),a=$a(e.attr("if"));e.removeAttr("if"),a in f.atts&&!pagelayer_empty(f.atts[a])||e.remove()})),"has_group"in n&&"holder"in n&&(ye.find(n.holder).attr("pagelayer-group-holder",t),ce=!0),v.edit.length>0)for(var q in v.edit)$=v.edit[q].prop,((O=v.edit[q].sel).length<1?ye:ye.find(O)).attr({"pagelayer-editable":$});oe=Aa(ye[0].innerHTML.replace(/plmodifysrc=/g,"src="),f)}oe=Ye(oe,r)}var de="";if(v.css.length>0){var ue=[];for(var q in v.css){O=Ta(v.css[q].sel,f);var _e=v.css[q].val;O.length>0?ue.push(O+"{"+_e+"}"):ue.push(Ta(_e,f))}if(!pagelayer_empty(n.overide_css_selector))for(var fe in ue){var ve=Ta(n.overide_css_selector,f);ue[fe]=ue[fe].split(f.CSS.cssSel).join(ve),ue[fe]=ue[fe].split(f.CSS.wrap).join(ve)}de=Aa(ue.join("\n"),f)}pagelayer_empty(de)||(de=`<style>${de}</style>`);const he={className:f.className,ref:_,...pe},be=(0,y.useBlockProps)({"pagelayer-wrap-id":f.id});var Ee={plTag:t,_props:r,ref:_,className:f.className,...pe};const ke=wp.PagelayerBlocks.addGroupBlock;var we=(0,a.createElement)(a.Fragment,null,g&&se,n?.has_group&&!ce?(0,a.createElement)("div",{...be},Ye(de,r),(0,a.createElement)(ke,{...Ee})):(0,a.createElement)("div",{...be},(0,a.createElement)("div",{...he},Ye(de,r),oe)));return(0,a.useEffect)((()=>{const a=pagelayer_query(`.p-${f.id}`);if(v.classes.length>0)for(const e of v.classes){const t=e.sel.replace("{{element}}",""),l=t.length<1?a:a.find(t);l.hasClass(e.val)||l.addClass(e.val)}if(v.remove_classes.length>0)for(const e of v.remove_classes){const t=e.sel.replace("{{element}}",""),l=t.length<1?a:a.find(t);l.hasClass(e.val)&&l.removeClass(e.val)}if(v.attr.length>0)for(const e of v.attr){const t=e.sel.replace("{{element}}",""),l=t.length<1?a:a.find(t),r=e.val.split(/=(.*)/);r[1]=Aa(r[1],f),r[1]=pagelayerTrim(r[1],'"'),!l.attr(r[0])!==r[1]&&l.attr(r[0],r[1])}if(v.remove_attr.length>0)for(const e of v.remove_attr){const t=e.sel.replace("{{element}}",""),l=t.length<1?a:a.find(t),r=e.val.split("=");l.is("["+r[0]+"]")&&l.removeAttr(r[0])}f.$=pagelayer_query(`.p-${f.id}`);var l=e["pagelayer_render_end_"+t];if("function"==typeof l&&l(f),f.atts.ele_attributes&&function(e){e.id in Sa&&Sa[e.id].forEach((function(a,t){e.$.removeAttr(a)})),Sa[e.id]=[],pagelayerTrim(e.atts.ele_attributes.split(";")).forEach((function(a,t){var l=a.split(/=(.*)/),r=pagelayerTrim(l[0]);Sa[e.id].push(r),r.length<1||pagelayer_empty(r.match(/^[a-z_]+[\w:.-]*$/i))||(l.length<2?e.$.attr(r,""):e.$.attr(r,l[1]))}))}(f),"pagelayer_scrolling_effects"in window){var r=jQuery(".interface-interface-skeleton__content");if(f.atts.ele_scrolling_effects){var n=jQuery('iframe[name="editor-canvas"]'),s=r;if(n.length>0){var i=n[0]?.contentWindow?.document||n[0]?.contentDocument;s=jQuery(i)}pagelayer_scrolling_effects(f.$,s)}if(f.atts.ele_mouse_effects&&pagelayer_mouse_effects(f.$),pagelayer_empty(f.atts.ele_sticky_pos))return;pagelayer_ele_sticky_handler(f.$,r)}}),[v,f.atts]),(0,a.useEffect)((()=>{setTimeout((()=>{const e=document.querySelectorAll('iframe[name="editor-canvas"]');if(!e?.length)return;const a=e=>{const a=document.getElementById(e);return!!a&&a.cloneNode(!0)},t=e=>{const a=document.getElementById(e);return!!a&&a.textContent};for(const l of e){const e=l?.contentWindow.document||l?.contentDocument;if(!e?.head)continue;const r=t=>{if(e.getElementById(t))return;const l=a(t);l&&e.head.appendChild(l)},n=a=>{const l=t(a);if(!l)return;const r=e.getElementById(a);if(r)r.textContent=l;else{const t=document.createElement("style");t.setAttribute("id",a),t.textContent=l,e.head.appendChild(t)}};r("dashicons-css"),r("pagelayer-block-icon-css"),r("pagelayer-block-editor-css"),r("pagelayer-frontend-css"),r("mediaelement-css"),n("pagelayer-block-global-style"),n("pagelayer-global-styles"),jQuery(e).off("click.pliframeclick").on("click.pliframeclick","[pagelayer-id]",(function(e){e.preventDefault()}))}}))}),[]),(0,a.useLayoutEffect)((()=>()=>{const e=pagelayer_query(`#block-${d}`).parent(".pagelayer-owl-item").closest(".pagelayer-owl-carousel");e.length<1||pagelayer_owl_destroy(e.closest("[pagelayer-id][pagelayer-setup]"),".pagelayer-owl-carousel")}),[]),we}wp.domReady((function(){var e=document.createElement("div");wp.element.render((0,a.createElement)(ra,null),e),document.querySelector("body").appendChild(e),Ca=setInterval((function(){var e=document.querySelector(".interface-interface-skeleton__content");e&&(clearInterval(Ca),new WOW({boxClass:"pagelayer-wow",scrollContainer:".interface-interface-skeleton__content"}).init(),jQuery(e).on("scroll",(function(){window.dispatchEvent(new Event("scroll"))})),jQuery(e).on("resize",(function(){window.dispatchEvent(new Event("resize"))})))}),100),jQuery(document).on("click","[pagelayer-id]",(function(e){e.preventDefault()})),jQuery(document).on("mousedown",".block-editor-block-mover-button",(function(e){const a=wp.data.select("core/block-editor").getSelectedBlockClientId();var t=(pagelayer_empty(a)?pagelayer_query(".wp-block.is-multi-selected"):pagelayer_query("#block-"+a)).parent(".pagelayer-owl-item").closest(".pagelayer-owl-carousel");t.length<1||(jQuery(this)[0].dispatchEvent(new Event("click",{bubbles:!0})),t.trigger("refresh.pagelayer.owl"),pagelayer_owl_destroy(t.closest("[pagelayer-id][pagelayer-setup]"),".pagelayer-owl-carousel"))}))}));var Sa={};function $a(e){return e.substring(2,e.length-2)}function Ta(e,a){return(e=(e=e.split("{{element}}").join(a.CSS.cssSel)).split("{{wrap}}").join(a.CSS.wrap)).split("{{ele_id}}").join(a.id)}function Aa(e,a){for(var t in a.tmp)e=e.split("{{{"+t+"}}}").join(a.tmp[t]);for(var t in a.atts)e=e.split("{{"+t+"}}").join(a.atts[t]);return e}function Qa(e,a,t){t=t||",";var l=function(e,a,t){return a=function(e){if((e=String(e)).match(/^#([a-f0-9]{6})ff$/))return e.substr(0,7);if(e.match(/^#([a-f0-9]{8})$/)){var a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);e="rgba("+parseInt(a[1],16)+", "+parseInt(a[2],16)+", "+parseInt(a[3],16)+", "+(parseInt(a[4],16)/255).toFixed(2)+")"}return e}(a),a.match(/var\(/)&&(t=t.replace(/[-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),t=new RegExp(t+"?[^\\s|;]+","ig")),e.split(t).join(a)};if((e=l(e,a,"{{val}}")).match(/val\[\d/))for(var r in"object"==typeof a&&null!==a||(a=String(a).split(t)),a)e=l(e,a[r],"{{val["+r+"]}}");return e}function qa(e,a){a=a||!1;var t=e["pagelayer-id"];return(a||!t||t.length<1)&&(t=(t=pagelayerRandstr(3)+Math.floor(Math.random()*Math.floor(9999)).toString()).toLowerCase()),jQuery(`.p-${t}`,pagelayerGetDocumentElement()).length>1&&(t=qa(e,!0)),t}const Oa=()=>{const e="pagelayer/pl-col";return[{name:"one-column",icon:(0,a.createElement)("svg",{width:"100",height:"50",xmlns:"https://www.w3.org/2000/svg",viewBox:"0 0 100 54.54"},(0,a.createElement)("path",{d:"M385,133.37v54.54H285V133.37Z",transform:"translate(-285 -133.37)"})),label:(0,s.__)("One Column"),innerBlocks:[[e,{col:12}]],scope:["block"]},{name:"two-column-equal",icon:(0,a.createElement)("svg",{width:"100",height:"50",xmlns:"https://www.w3.org/2000/svg",viewBox:"0 0 100 54.54"},(0,a.createElement)("path",{d:"M461,133.37v54.54H412V133.37Zm51,0v54.54H463V133.37Z",transform:"translate(-412 -133.37)"})),label:(0,s.__)("Two columns equal split"),isDefault:!0,innerBlocks:[[e,{col:6}],[e,{col:6}]],scope:["block"]},{name:"75_25-column-split",icon:(0,a.createElement)("svg",{width:"100",height:"50",viewBox:"0 0 114 60",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,a.createElement)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.00001 0C0.895439 0 7.62939e-06 0.895447 7.62939e-06 2V58C7.62939e-06 59.1046 0.895439 60 2.00001 60H73C74.1046 60 75 59.1046 75 58V2C75 0.895447 74.1046 0 73 0H2.00001ZM79 0C77.8954 0 77 0.895447 77 2V58C77 59.1046 77.8954 60 79 60H112C113.105 60 114 59.1046 114 58V2C114 0.895447 113.105 0 112 0H79Z",fill:"inherit"})),label:(0,s.__)("Seventy five tweenty five columns split"),innerBlocks:[[e,{col:9}],[e,{col:3}]],scope:["block"]},{name:"25_75-column-split",icon:(0,a.createElement)("svg",{width:"100",height:"50",viewBox:"0 0 114 60",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,a.createElement)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M35 60C36.1046 60 37 59.1046 37 58L37 2C37 0.895447 36.1046 0 35 0H2.00002C0.895447 0 1.52588e-05 0.895447 1.52588e-05 2L7.62939e-06 58C7.62939e-06 59.1046 0.895439 60 2.00001 60H35ZM112 60C113.105 60 114 59.1046 114 58V2C114 0.895447 113.105 0 112 0H41C39.8954 0 39 0.895447 39 2L39 58C39 59.1046 39.8954 60 41 60H112Z",fill:"inherit"})),label:(0,s.__)("Tweenty five seventy five columns split"),innerBlocks:[[e,{col:3}],[e,{col:9}]],scope:["block"]},{name:"three-column-equal",icon:(0,a.createElement)("svg",{width:"100",height:"50",viewBox:"0 0 114 60",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,a.createElement)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 2C0 0.895447 0.895432 0 2 0H35C36.1046 0 37 0.895447 37 2V58C37 59.1046 36.1046 60 35 60H2C0.895432 60 0 59.1046 0 58V2ZM39 2C39 0.895447 39.8954 0 41 0H73C74.1046 0 75 0.895447 75 2V58C75 59.1046 74.1046 60 73 60H41C39.8954 60 39 59.1046 39 58V2ZM79 0C77.8954 0 77 0.895447 77 2V58C77 59.1046 77.8954 60 79 60H112C113.105 60 114 59.1046 114 58V2C114 0.895447 113.105 0 112 0H79Z",fill:"inherit"})),label:(0,s.__)("Three columns equal split"),innerBlocks:[[e,{col:4}],[e,{col:4}],[e,{col:4}]],scope:["block"]},{name:"four-column-equal",icon:(0,a.createElement)("svg",{width:"100",height:"50",viewBox:"0 0 114 60",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,a.createElement)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2 0C0.895416 0 0 0.895447 0 2V58C0 59.1046 0.895416 60 2 60H25C26.1046 60 27 59.1046 27 58V2C27 0.895447 26.1046 0 25 0H2ZM31 0C29.8954 0 29 0.895447 29 2V58C29 59.1046 29.8954 60 31 60H54C55.1046 60 56 59.1046 56 58V2C56 0.895447 55.1046 0 54 0H31ZM89 0C87.8954 0 87 0.895447 87 2V58C87 59.1046 87.8954 60 89 60H112C113.105 60 114 59.1046 114 58V2C114 0.895447 113.105 0 112 0H89ZM58 2C58 0.895447 58.8954 0 60 0H83C84.1046 0 85 0.895447 85 2V58C85 59.1046 84.1046 60 83 60H60C58.8954 60 58 59.1046 58 58V2Z",fill:"inherit"})),label:(0,s.__)("Four columns equal split"),innerBlocks:[[e,{col:3}],[e,{col:3}],[e,{col:3}],[e,{col:3}]],scope:["block"]}]},Pa=(0,a.memo)((e=>{const{_props:t,data:r}=e,{clientId:n,isSelected:i,setAttributes:o}=t,{atts:p,tmp:c,id:m,tag:g}=r,d="pagelayer/pl-col",u=[d],{getBlocks:_}=(0,l.select)("core/block-editor"),f=_(n),v=f.length,[h,b]=(0,a.useState)(v);(0,a.useEffect)((()=>{if(v!=h){b(v);var e={col:Math.floor(12/v)};f.map((a=>{var t,r;t=a.clientId,r={...e,col_width:""},(0,l.dispatch)("core/block-editor").updateBlockAttributes(t,r)}))}}),[v]);var E={template:(0,a.useMemo)((()=>[[d]]),[d]),templateLock:!1,renderAppender:!1,allowedBlocks:u,orientation:"horizontal"},k={className:`pagelayer-row-holder pagelayer-row pagelayer-auto pagelayer-width-${p.width_content}`};const w=(0,y.useInnerBlocksProps)(k,E);return(0,a.createElement)(a.Fragment,null,0==v?(0,a.createElement)("div",{className:"pagelayer-variation-div"},(0,a.createElement)(y.__experimentalBlockVariationPicker,{icon:(0,a.createElement)("svg",{version:"1.0",xmlns:"http://www.w3.org/2000/svg",width:"25.000000pt",height:"23.000000pt",viewBox:"0 0 25.000000 23.000000",preserveAspectRatio:"xMidYMid meet"},(0,a.createElement)("g",null,(0,a.createElement)("path",{d:"M4 6H20M4 12H20M4 18H20",stroke:"#000000","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}))),label:(0,s.__)("Row"),variations:Oa(),instructions:(0,s.__)("Please select a column layout."),onSelect:e=>(e=>{e.innerBlocks&&(b(e.innerBlocks.length),(0,l.dispatch)("core/block-editor").replaceInnerBlocks(n,(0,aa.createBlocksFromInnerBlocksTemplate)(e.innerBlocks)))})(e)})):(0,a.createElement)(a.Fragment,null,p?.bg_video_src&&(0,a.createElement)("div",{className:"pagelayer-background-video",dangerouslySetInnerHTML:{__html:p.vid_src}}),p?.bg_slider&&(0,a.createElement)("div",{className:"pagelayer-bgimg-slider",dangerouslySetInnerHTML:{__html:p.slider}}),p?.parallax_img&&(0,a.createElement)("div",{className:"pagelayer-parallax-window"},(0,a.createElement)("img",{className:"pagelayer-img",src:p.parallax_img_src,title:c["parallax_img-title"],alt:c["parallax_img-alt"]})),p?.row_shape_position&&(0,a.createElement)("div",{className:"pagelayer-row-shape"},(0,a.createElement)("div",{className:"pagelayer-row-svg"},p?.row_shape_type_top&&(0,a.createElement)("svg",{className:"pagelayer-svg-top"},p.svg_top),p?.row_shape_type_bottom&&(0,a.createElement)("svg",{className:"pagelayer-svg-bottom"},p.svg_bottom))),p?.overlay_type&&(0,a.createElement)("div",{className:"pagelayer-background-overlay"}),(0,a.createElement)("div",{...w}),i&&(0,a.createElement)("div",{className:"pagelayer-block-appender"},(0,a.createElement)(y.InnerBlocks.ButtonBlockAppender,null))))})),{pagelayer_shortcodes:za}=pagelayer_config,Ia=za,Ba=(0,a.memo)((e=>{const{_props:t,plTag:l,TagName:r="div"}=e,{setAttributes:n,isSelected:s}=t,i=Ia[l],o=(e,a)=>{var t=[];if("inner_content"in a[e]){const n=a[e].inner_content;for(var l in n)for(var r in n[l]){let e=o(r,n[l]);t.push(e)}}var n=pagelayerBlockNameByTag(e);let s={};return e in a&&"atts"in a[e]&&(s={...s,...a[e].atts}),[n,s,t]},p=(e,a)=>{const t=[];var l=[];e="pagelayer/pl-inner-row"==e?"pagelayer/pl-row":e;const r=Ia[a.sc];if(r&&"has_group"in r){var n=r.has_group,s=r[n.section][n.prop],i=pagelayerBlockNameByTag(s.sc),c=p(i,s);l=[...l,...c]}if("pl_inner_row"==a.sc){if(a&&"inner_content"in a&&!pagelayer_empty(a.inner_content))for(var m in a.inner_content)for(var g in a.inner_content[m])t.push(o(g,a.inner_content[m]));return t}for(var y=0;y<a.count;y++)t.push([e,{},l]);return t};var c=i.has_group,m=i[c.section][c.prop],g="pl_inner_row"===m.sc?"pl_row":m.sc,d={},u=[g=pagelayerBlockNameByTag(g)];"pl_inner_row"===m.sc&&(u=[]);const _=(0,a.useMemo)((()=>p(g,m)),[g,m]);if(_.length>0){var f={template:_,templateLock:!1,renderAppender:!1};d={...d,...f}}if(!pagelayer_empty(u)){var v={allowedBlocks:u};d={...d,...v}}var h={...e};delete h._props,delete h.plTag,delete h.TagName;const b=(0,y.useInnerBlocksProps)(h,d);return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(r,{...b}),s&&(0,a.createElement)("div",{className:"pagelayer-block-appender"},(0,a.createElement)(y.InnerBlocks.ButtonBlockAppender,null)))})),Fa=window.React;var Ha={},Ma={};function Ra(e,a,t,l){if(pagelayer_empty(Ma[a]))return e;var r=jQuery("<div>").html(e),n=Ma[a];for($e in n){var s;if(!pagelayer_empty(n[$e].pagelayer_content)){var i=n[$e].ID;s=n[$e].pagelayer_content,r.find(".pagelayer-mega-editor-"+i).html(s[0].outerHTML)}}return r.html()}var La={},Da={};wp.PagelayerComponents={setting_tabs:e=>{const[t,l]=(0,a.useState)("settings"),r=e=>{l(e)};return(0,a.useEffect)((()=>{r(t);var e=document.querySelector(".components-panel");return e.setAttribute("pagelayer-component-tab",t),()=>{e.removeAttribute("pagelayer-component-tab")}}),[t]),(0,a.useEffect)((()=>(document.querySelectorAll(".pagelayer-components-tabs").forEach((e=>{var a=e.querySelectorAll(".pagelayer-panel__body.is-opened"),t=e.querySelector(".pagelayer-panel__body");a.length<1&&t&&t.querySelector(".components-button").click()})),jQuery(document).on("mouseup.components_toggle_panel",".components-panel__body",(function(){var e=jQuery(this),a=e.closest(".pl-settings").length>0?".pl-settings":":not(.pl-settings)";jQuery(a).find(".components-panel__body.is-opened").not(e).find(".components-button").click()})),()=>{jQuery(document).unbind("mouseup.components_toggle_panel")})),[]),(0,a.createElement)("div",{className:"pagelayer-setting-tabs"},(0,a.createElement)("button",{className:"pagelayer-setting-tab "+("settings"==t?"is-active":""),onClick:()=>r("settings")},(0,a.createElement)("i",{className:"fas fa-paint-brush"}),"Settings"),(0,a.createElement)("button",{className:"pagelayer-setting-tab "+("options"==t?"is-active":""),onClick:()=>r("options")},(0,a.createElement)("i",{className:"pli pli-service"}),"Options"))},radio:e=>{const{prop:t,label:l,value:r,setAttributes:s}=e,{name:i}=t.c;return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-radio-div"},Object.keys(t.list).map((e=>(0,a.createElement)("a",{className:"pagelayer-elp-radio "+(r===e?"pagelayer-elp-radio-active":""),onClick:()=>{return a=e,void s({[i]:a});var a}},t.list[e])))))},color:e=>{const{prop:t,value:l,setAttributes:r}=e,{name:s}=t.c;return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)(o,{name:s,value:l,onChange:(e="")=>{r({[s]:e})},setAttributes:r,type:t.type,handleClick:e=>{r({[s]:"$"+e})}}))},padding:e=>{const{prop:t,label:l,value:r,setAttributes:s}=e,{name:i}=t.c;var o=pagelayer_empty(r)?["","","",""]:r;pagelayer_is_string(o)&&(o=o.split(","));const[p,c]=(0,a.useState)(!0),m=(0,a.useRef)(null),g=(e,a)=>{const l=parseFloat(a.target.value);let r=[...o];p?r=r.map((()=>l)):r[e]=l,t?.units&&(r=y(r)),s({[i]:r})},y=e=>{var a=m.current.querySelectorAll(".pagelayer-elp-units .selected")[0].innerHTML;if(Array.isArray(e))for(var t in e)e[t].length<1||(e[t]=parseFloat(e[t])+a);else e=parseFloat(e)+a;return e};return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control",ref:m},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-padding-div"},(0,a.createElement)("input",{type:"number",className:"pagelayer-elp-padding",value:parseFloat(o[0]),onChange:e=>g(0,e)}),(0,a.createElement)("input",{type:"number",className:"pagelayer-elp-padding",value:parseFloat(o[1]),onChange:e=>g(1,e)}),(0,a.createElement)("input",{type:"number",className:"pagelayer-elp-padding",value:parseFloat(o[2]),onChange:e=>g(2,e)}),(0,a.createElement)("input",{type:"number",className:"pagelayer-elp-padding",value:parseFloat(o[3]),onChange:e=>g(3,e)}),(0,a.createElement)("i",{className:"pli pli-link"+(p?" pagelayer-elp-padding-linked":""),onClick:()=>c(!p)})))},typography:e=>{const{attributes:t,prop:l,label:i,value:o,setAttributes:m,deviceType:g}=e,{name:y}=l.c,d=(0,a.useRef)(null),u=(0,a.useRef)(null),_=(0,a.useRef)(null),[f,v]=(0,a.useState)(!1),[h,b]=(0,a.useState)(!1),[E,k]=(0,a.useState)(pagelayerIsGlobalTypo(o)),w={desktop:"",tablet:"_tablet",mobile:"_mobile"};var N=pagelayerParseTypo(o,!1),x=pagelayerParseTypo(t[y+"_tablet"]),C=pagelayerParseTypo(t[y+"_mobile"]);const j=e=>{var a=jQuery(e.target);"font-family"==jQuery(e.target).attr("name")&&c(jQuery(e.target)),a.closest("[pagelayer-set-global]").removeAttr("pagelayer-set-global"),S()},S=()=>{if(!f)return;const e={};e[y]={},e[y+"_tablet"]={},e[y+"_mobile"]={},pagelayer_empty(E)||(e[y]["global-font"]=E),d.current.querySelectorAll(".pagelayer-elp-typo-input").forEach((a=>{const t=a.getAttribute("name"),l=a.value,r=jQuery(a).closest("[pagelayer-set-global]");if(!(""==l&&r.length<1&&pagelayer_empty(E)||r.length>0||pagelayer_empty(l)))if(t.indexOf("_tablet")>-1){const a=t.replace("_tablet","");e[y+"_tablet"][a]=l}else if(t.indexOf("_mobile")>-1){const a=t.replace("_mobile","");e[y+"_mobile"][a]=l}else e[y][t]=l})),m(e)},$=(e,a)=>{e.stopPropagation();var t=jQuery(d.current);if(b(!1),E==a)return t.find("[pagelayer-set-global]").removeAttr("pagelayer-set-global"),void k("");k(a);var l=t.find('.pagelayer-elp-typo-input[name="font-family"]');t.find(".pagelayer-elp-label .pagelayer-typo-default").each((function(){A(jQuery(this),!0,a)})),c(l)};var T;(0,a.useEffect)((()=>{S()}),[E]),(0,a.useEffect)((()=>{var e=jQuery(d.current);return e.on("click",".pagelayer-typo-default",(function(e,a){A(jQuery(e.target),a)})),pagelayer_empty(E)||(e.find(".pagelayer-elp-typo").attr("pagelayer-set-global",1),e.find(".pagelayer-elp-typo").find("select, input").each((function(){var e=jQuery(this),a=e.val();if(pagelayer_empty(a))return!0;e.closest(".pagelayer-elp-typo").removeAttr("pagelayer-set-global")})),e.find('[pagelayer-set-global="1"] .pagelayer-typo-default').trigger("click",[!0])),()=>{e.unbind("click",".pagelayer-typo-default")}}),[f]),(0,a.useEffect)((()=>{const e=e=>{d.current&&!d.current.contains(e.target)&&v(!1),u.current&&!u.current.contains(e.target)&&_.current&&!_.current.contains(e.target)&&b(!1)};return document.addEventListener("click",e),()=>{document.removeEventListener("click",e)}}),[]);const A=(e,a,t=null)=>{if(a=a||!1,t=t||E,pagelayer_empty(t)||!pagelayer_global_fonts[t])return;const l=pagelayer_global_fonts[t].value,r=e.closest(".pagelayer-elp-typo"),n=r.find(".pagelayer-elp-typo-input"),s=n.first().attr("name");let i="";if(r.attr("pagelayer-set-global",1),s in l&&(i=l[s]),"object"==typeof i)for(const e in w){let a="";e in i&&(a=i[e]),r.find('.pagelayer-elp-typo-input[name="'+s+w[e]+'"]').val(a)}else n.length>1&&n.val(""),n.first().val(i);a||(clearTimeout(T),T=setTimeout(S,200))},Q=e=>(0,a.createElement)("label",{...e},e.children,(0,a.createElement)("span",{className:"pagelayer-typo-default",title:(0,s.__)("Restore Global")},(0,a.createElement)("i",{className:"fas fa-undo"}))),q={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:p},O=(e,t,l,r)=>(r=r||{},(0,a.createElement)("select",{name:e,className:"pagelayer-elp-typo-input pagelayer-elp-select",onChange:j,...r},Object.keys(t).map((e=>((e="",t,l="")=>{const r=e.toLowerCase()===l.toLowerCase(),n=t||"Default";return(0,a.createElement)("option",{value:e,selected:r},n)})(e,t[e],l))))),P=[],z=(e,t,l,r)=>{const n=e!==r?"":'selected="selected"',s=t||"Default";return(0,a.createElement)("option",{className:"pagelayer-elp-typo-sele-op",value:e,type:l,selected:n},s)};for(const e in q.fonts){"default"!==e&&P.push((0,a.createElement)("optgroup",{label:pagelayerUcwords(e)}));for(const a in q.fonts[e])P.push(z(jQuery.isNumeric(a)?q.fonts[e][a]:a,q.fonts[e][a],e,N[0]))}return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-prop-holder "+(E?"pagelayer-global-on":""),ref:d},(0,a.createElement)("span",{className:"pagelayer-prop-edit",onClick:()=>v(!f)},(0,a.createElement)("i",{className:"pli pli-pencil"})),f&&(0,a.createElement)("div",{className:"pagelayer-elp-typo-div","pagelayer-screen-mode":g},(0,a.createElement)("div",{className:"pagelayer-elp-global-typo"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Global Fonts")),(0,a.createElement)("span",{className:"pagelayer-elp-typo-icons"},(0,a.createElement)("span",{className:"pagelayer-elp-global-icon "+(E?"pagelayer-active-global":""),onClick:()=>b(!h),ref:_}),(0,a.createElement)("span",{className:"pli pli-service",onClick:e=>{e.stopPropagation(),window.open(pagelayer_customizer_url+"&autofocus%5Bsection%5D=pagelayer_global_fonts_sec","_blank")}})),h&&(0,a.createElement)("div",{className:"pagelayer-global-font-list",ref:u},Object.keys(pagelayer_global_fonts).map((e=>(0,a.createElement)("div",{className:"pagelayer-global-font-list-item "+(e==E?"pagelayer-global-selected":""),"data-global-id":e,onClick:a=>$(a,e)},(0,a.createElement)("span",{className:"pagelayer-global-font-title"},pagelayer_global_fonts[e].title)))))),(0,a.createElement)("div",{className:"pagelayer-elp-typo"},(0,a.createElement)(Q,{className:"pagelayer-elp-label"},(0,s.__)("Font Family")),(0,a.createElement)("select",{className:"pagelayer-elp-typo-input pagelayer-elp-select",name:"font-family",onChange:j},P)),(0,a.createElement)("div",{className:"pagelayer-elp-typo"},(0,a.createElement)(Q,{className:"pagelayer-elp-label"},(0,s.__)("Font Size"),(0,a.createElement)(r,{...e})),(0,a.createElement)("input",{className:"pagelayer-elp-typo-input",type:"number",max:"200",min:"0",step:"1",name:"font-size","pagelayer-show-device":"desktop",value:N[1],onChange:j}),(0,a.createElement)("input",{className:"pagelayer-elp-typo-input",type:"number",max:"200",min:"0",step:"1",name:"font-size_tablet","pagelayer-show-device":"tablet",value:x[1],onChange:j}),(0,a.createElement)("input",{className:"pagelayer-elp-typo-input",type:"number",max:"200",min:"0",step:"1",name:"font-size_mobile","pagelayer-show-device":"mobile",value:C[1],onChange:j})),(0,a.createElement)("div",{className:"pagelayer-elp-typo"},(0,a.createElement)(Q,{className:"pagelayer-elp-label"},(0,s.__)("Font Style")),O("font-style",q.style,N[2])),(0,a.createElement)("div",{className:"pagelayer-elp-typo"},(0,a.createElement)(Q,{className:"pagelayer-elp-label"},(0,s.__)("Font Weight"),(0,a.createElement)(r,{...e})),O("font-weight",q.weight,N[3],{"pagelayer-show-device":"desktop"}),O("font-weight_tablet",q.weight,x[3],{"pagelayer-show-device":"tablet"}),O("font-weight_mobile",q.weight,C[3],{"pagelayer-show-device":"mobile"})),(0,a.createElement)("div",{className:"pagelayer-elp-typo"},(0,a.createElement)(Q,{className:"pagelayer-elp-label"},(0,s.__)("Font Variant")),O("font-variant",q.variant,N[4])),(0,a.createElement)("div",{className:"pagelayer-elp-typo"},(0,a.createElement)(Q,{className:"pagelayer-elp-label"},(0,s.__)("Decoration Line")),O("text-decoration-line",q["deco-line"],N[5])),(0,a.createElement)("div",{className:"pagelayer-elp-typo"},(0,a.createElement)(Q,{className:"pagelayer-elp-label"},(0,s.__)("Decoration Style")),O("text-decoration-style",q["deco-style"],N[6])),(0,a.createElement)("div",{className:"pagelayer-elp-typo"},(0,a.createElement)(Q,{className:"pagelayer-elp-label"},(0,s.__)("Line Height"),(0,a.createElement)(r,{...e})),(0,a.createElement)("input",{className:"pagelayer-elp-typo-input",type:"number",min:"0",max:"100",step:"0.1",name:"line-height","pagelayer-show-device":"desktop",value:N[7],onChange:j}),(0,a.createElement)("input",{className:"pagelayer-elp-typo-input",type:"number",min:"0",max:"100",step:"0.1",name:"line-height_tablet","pagelayer-show-device":"tablet",value:x[7],onChange:j}),(0,a.createElement)("input",{className:"pagelayer-elp-typo-input",type:"number",min:"0",max:"100",step:"0.1",name:"line-height_mobile","pagelayer-show-device":"mobile",value:C[7],onChange:j})),(0,a.createElement)("div",{className:"pagelayer-elp-typo"},(0,a.createElement)(Q,{className:"pagelayer-elp-label"},(0,s.__)("Text Transform")),O("text-transform",q.transform,N[8])),(0,a.createElement)("div",{className:"pagelayer-elp-typo"},(0,a.createElement)(Q,{className:"pagelayer-elp-label"},(0,s.__)("Letter Spacing"),(0,a.createElement)(r,{...e})),(0,a.createElement)("input",{className:"pagelayer-elp-typo-input",type:"number",min:"0",max:"100",step:"0.1",name:"letter-spacing","pagelayer-show-device":"desktop",value:N[9],onChange:j}),(0,a.createElement)("input",{className:"pagelayer-elp-typo-input",type:"number",min:"0",max:"100",step:"0.1",name:"letter-spacing_tablet","pagelayer-show-device":"tablet",value:x[9],onChange:j}),(0,a.createElement)("input",{className:"pagelayer-elp-typo-input",type:"number",min:"0",max:"100",step:"0.1",name:"letter-spacing_mobile","pagelayer-show-device":"mobile",value:C[9],onChange:j})),(0,a.createElement)("div",{className:"pagelayer-elp-typo"},(0,a.createElement)(Q,{className:"pagelayer-elp-label"},(0,s.__)("Word Spacing"),(0,a.createElement)(r,{...e})),(0,a.createElement)("input",{className:"pagelayer-elp-typo-input",type:"number",min:"0",max:"50",step:"0.1",name:"word-spacing","pagelayer-show-device":"desktop",value:N[10],onChange:j}),(0,a.createElement)("input",{className:"pagelayer-elp-typo-input",type:"number",min:"0",max:"50",step:"0.1",name:"word-spacing_tablet","pagelayer-show-device":"tablet",value:x[10],onChange:j}),(0,a.createElement)("input",{className:"pagelayer-elp-typo-input",type:"number",min:"0",max:"50",step:"0.1",name:"word-spacing_mobile","pagelayer-show-device":"mobile",value:C[10],onChange:j})))))},spinner:e=>{const{prop:t,label:l,value:r,setAttributes:s}=e,{name:i}=t.c,{min:o,max:p,step:c}=t;return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-spinner-div"},(0,a.createElement)("input",{type:"number",className:"pagelayer-elp-spinner",name:i,min:o,max:p,step:c,value:r,onChange:e=>{let a=parseFloat(e.target.value);!isNaN(p)&&a>p&&(a=p),s({[i]:a})}})))},slider:e=>{const{prop:t,label:l,value:r,setAttributes:s}=e,{name:i}=t.c,{min:o,max:p,step:c}=t,m=(0,a.useRef)(null),g=e=>{let a=parseFloat(e.target.value);!isNaN(p)&&a>p&&(a=p),t?.units&&(a=y(a)),s({[i]:a})},y=e=>{var a=m.current.querySelectorAll(".pagelayer-elp-units .selected")[0].innerHTML;if(Array.isArray(e))for(var t in e)e[t].length<1||(e[t]=parseFloat(e[t])+a);else e=parseFloat(e)+a;return e};return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control",ref:m},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-slider-div"},(0,a.createElement)("input",{type:"range",className:"pagelayer-elp-slider",value:parseFloat(r),min:o,max:p,step:c,onChange:g}),(0,a.createElement)("input",{type:"number",className:"pagelayer-elp-slider-value",value:parseFloat(r),min:o,max:p,step:c,onChange:g})))},checkbox:e=>{const{prop:t,label:l,value:r,setAttributes:s}=e,{name:i}=t.c;return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-checkbox-div"},(0,a.createElement)("input",{type:"checkbox",className:"pagelayer-elp-checkbox",checked:"true"===r,onChange:e=>{const a=e.target.checked;s({[i]:a?"true":""})}})))},select:m,box_shadow:e=>{const{prop:t,value:l,setAttributes:r}=e,{name:o}=t.c;var p=pagelayer_empty(l)?["","","","","",""]:l;pagelayer_is_string(p)&&(p=p.split(","));const[c,m]=(0,a.useState)(!1),[g,y]=(0,a.useState)(!1),d=(0,a.useRef)(null),u=(0,a.useRef)(null),_=(0,a.useRef)(null),f=(e,a)=>{const t=[...p];t[e]=a,r({[o]:t})};return(0,a.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d.current&&!d.current.contains(e.target)&&m(!1),_.current&&!_.current.contains(e.target)&&y(!1)};return document.addEventListener("click",e),()=>{document.removeEventListener("click",e)}}),[]),(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-prop-holder",ref:_},(0,a.createElement)("span",{className:"pagelayer-prop-edit",onClick:()=>y(!g)},(0,a.createElement)("i",{className:"pli pli-pencil"})),g&&(0,a.createElement)("div",{className:"pagelayer-elp-shadow-div"},(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-shadow-horizontal"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Horizontal")),(0,a.createElement)("input",{className:"pagelayer-elp-shadow-input",type:"number",max:"100",min:"-100",step:"1",name:"horizontal",value:p[0],onChange:e=>f(0,parseFloat(e.target.value))})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-shadow-vertical"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Vertical")),(0,a.createElement)("input",{className:"pagelayer-elp-shadow-input",type:"number",max:"100",min:"-100",step:"1",name:"vertical",value:p[1],onChange:e=>f(1,parseFloat(e.target.value))})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-shadow-blur"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Blur")),(0,a.createElement)("input",{className:"pagelayer-elp-shadow-input",type:"number",max:"100",min:"-100",step:"1",name:"blur",value:p[2],onChange:e=>f(2,parseFloat(e.target.value))})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-shadow-spread"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Spread")),(0,a.createElement)("input",{className:"pagelayer-elp-shadow-input",type:"number",max:"100",min:"-100",step:"1",name:"spread",value:p[4],onChange:e=>f(4,parseFloat(e.target.value))})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-shadow-color"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Color")),(0,a.createElement)("div",{className:"pagelayer-elp-color-div",ref:d},(0,a.createElement)("div",{className:"pagelayer-elp-color-preview "+(""===p[3]?"pagelayer-blank-preview":""),onClick:()=>m(!c),style:{backgroundColor:p[3]}}),(0,a.createElement)("span",{className:"pagelayer-elp-remove-color",onClick:e=>{f(3,""),m(!1)}},(0,a.createElement)("i",{className:"pli pli-cross"})))),c&&(0,a.createElement)("div",{ref:u},(0,a.createElement)(i.ColorPicker,{color:p[3],onChangeComplete:e=>{e.rgb&&((e="")=>{f(3,e)})(1!=e.rgb.a?"rgba("+e.rgb.r+","+e.rgb.g+","+e.rgb.b+","+e.rgb.a+")":e.hex)},disableAlpha:!1})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-shadow-inset"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Shadow")),(0,a.createElement)("select",{className:"pagelayer-elp-shadow-input pagelayer-elp-select",name:"inset",onChange:e=>f(5,e.target.value)},(0,a.createElement)("option",{value:""},(0,s.__)("Outset")),(0,a.createElement)("option",{value:"inset",selected:"inset"==p[5]?"selected":""},(0,s.__)("Inset")))))))},image:e=>{const{attributes:t,prop:l,value:r,setAttributes:s,allow:i=["image"]}=e,{name:o}=l.c,p=t?.tmpAtts?{...t.tmpAtts}:{};var c=pagelayer_empty(p[o+"-url"])?"":p[o+"-url"];const m=e=>{e.stopPropagation();const a={...p};Object.keys(a).forEach((e=>{e.startsWith(o+"-")&&delete a[e]})),a[o+"-no-image-set"]=1,a[o+"-url"]=d,s({[o]:d,tmpAtts:a})};return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)(y.MediaUpload,{title:"Select Image",onSelect:e=>{const{id:a,url:t,title:l,alt:r,sizes:n}=e;var i={};for(var c in n)i[o+"-"+c+"-url"]=n[c].url;const m={...p,[o+"-url"]:t,[o+"-title"]:l,[o+"-alt"]:r,[o+"-no-image-set"]:"",...i};s({[o]:a,tmpAtts:m}),s({"pagelayer-srcset":t+", "+t+" 1x"})},allowedTypes:i,value:r,render:({open:e})=>(e=>{const t=pagelayer_empty(c)?"":"pagelayer-has-image";return(0,a.createElement)("div",{className:`pagelayer-elp-image-div ${t}`,style:{backgroundImage:`url("${c}")`},onClick:()=>{e()}},(0,a.createElement)("span",{className:"pagelayer-elp-remove-image",onClick:m},(0,a.createElement)("i",{className:"pli pli-cross"})),(0,a.createElement)("span",{className:"pagelayer-elp-add-image"},(0,a.createElement)("i",{className:"dashicons dashicons-plus-alt2"})))})(e)}))},dimension:e=>{const{prop:t,label:l,value:r,setAttributes:s}=e,{name:i}=t.c;var o=pagelayer_empty(r)?["",""]:r;pagelayer_is_string(o)&&(o=o.split(","));const[p,c]=(0,a.useState)(!0),m=(0,a.useRef)(null),g=(e,a)=>{const l=parseFloat(a.target.value);let r=[...o];p?r=r.map((()=>l)):r[e]=l,t?.units&&(r=y(r)),s({[i]:r})},y=e=>{var a=m.current.querySelectorAll(".pagelayer-elp-units .selected")[0].innerHTML;if(Array.isArray(e))for(var t in e)e[t].length<1||(e[t]=parseFloat(e[t])+a);else e=parseFloat(e)+a;return e};return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control",ref:m},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-dimension-div"},(0,a.createElement)("input",{type:"number",className:"pagelayer-elp-dimension",value:parseFloat(o[0]),onChange:e=>g(0,e)}),(0,a.createElement)("input",{type:"number",className:"pagelayer-elp-dimension",value:parseFloat(o[1]),onChange:e=>g(1,e)}),(0,a.createElement)("i",{className:"pli pli-link"+(p?" pagelayer-elp-padding-linked":""),onClick:()=>c(!p)})))},gradient:e=>{const{prop:t,value:l,setAttributes:r}=e,{name:i}=t.c,p=(0,a.useRef)(null),c=(0,a.useRef)(null),m=(0,a.useRef)(null);var g=pagelayer_empty(l)?["","","","","","",""]:l;pagelayer_is_string(g)&&(g=g.split(","));const y=(e,a)=>{const t=[...g];t[e]=a,r({[i]:t.toString()})};return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-gradient-div"},(0,a.createElement)("div",{className:"pagelayer-elp-gradient-div"},(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-gradient-angle"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Angle")),(0,a.createElement)("input",{className:"pagelayer-elp-gradient-input pagelayer-elp-gradient-angle",type:"number",max:"360",min:"0",step:"1",onChange:e=>y(0,parseFloat(e.target.value)),value:g[0]})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-gradient-color",ref:p},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Color")," 1"),(0,a.createElement)(o,{onChange:e=>y(1,e),value:g[1],type:t.type,setAttributes:r,handleClick:e=>y(1,"$"+e),showRemoveIcon:!1})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-gradient-per1"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Percentage")," 1"),(0,a.createElement)("input",{className:"pagelayer-elp-gradient-input",type:"number",max:"100",min:"-100",step:"1",onChange:e=>y(2,parseFloat(e.target.value)),value:g[2]})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-gradient-color",ref:c},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Color")," 2"),(0,a.createElement)(o,{onChange:e=>y(3,e),value:g[3],type:t.type,setAttributes:r,handleClick:e=>y(3,"$"+e),showRemoveIcon:!1})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-gradient-per2"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Percentage")," 2"),(0,a.createElement)("input",{className:"pagelayer-elp-gradient-input pagelayer-elp-gradient-per2",type:"number",max:"100",min:"0",step:"1",onChange:e=>y(4,parseFloat(e.target.value)),value:g[4]})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-gradient-color",ref:m},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Color")," 3"),(0,a.createElement)(o,{onChange:e=>y(5,e),value:g[5],type:t.type,setAttributes:r,handleClick:e=>y(5,"$"+e),showRemoveIcon:!1})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-gradient-per3"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Percentage")," 3"),(0,a.createElement)("input",{className:"pagelayer-elp-gradient-input pagelayer-elp-gradient-per3",type:"number",max:"100",min:"0",step:"1",onChange:e=>y(6,parseFloat(e.target.value)),value:g[6]})))))},rich_text:e=>{const{_props:t,propsName:l,value:r,tagName:n}=e,{setAttributes:s,attributes:i}=t,[o,p]=(0,a.useState)(null),c=(0,a.useRef)(null);var m={...e},g=pagelayerTrim(r);g==`{{${l}}}`&&(g=""),delete m._props,delete m.propsName,delete m.value,delete m["pagelayer-editable"];const d=["p","h1","h2","h3","h4","h5","h6"];var u=jQuery(`<div>${r}</div>`)[0].childNodes,_=null;return 1==u.length&&3!=u[0].nodeType&&-1!=d.indexOf(u[0].localName)&&(_=u[0].localName,delete m.tagName),(0,a.useEffect)((()=>{c.current&&c.current.dispatchEvent(new Event("input",{bubbles:!0}))}),[o]),(0,a.useEffect)((()=>{u.length<1||p(d.indexOf(u[0].localName))}),[]),(0,a.createElement)(a.Fragment,null,_?(0,a.createElement)(a.Fragment,null,(0,a.createElement)(y.BlockControls,{group:"block"},(0,a.createElement)(N,{options:[1,2,3,4,5,6,0],value:o,onChange:e=>p(e)})),(0,a.createElement)(n,{...m},(0,a.createElement)(y.RichText,{ref:c,key:"editable",tagName:_,keepPlaceholderOnFocus:!0,placeholder:"Add Content...",onChange:e=>(e=>{if(null!=o){var a=d[o],t=`<${a}>${e}</${a}>`;u[0].attributes.length>0&&(t=`<${a} ${u[0].attributes}>${e}</${a}>`),s({[l]:t})}})(e),value:u[0].innerHTML,...u[0].attributes}))):(0,a.createElement)(y.RichText,{key:"editable",keepPlaceholderOnFocus:!0,placeholder:"Add Content...",onChange:e=>s({[l]:e}),value:pagelayer_empty(i[l])?g:i[l],...m}))},icon:e=>{const{prop:t,value:l,setAttributes:r}=e,{name:s}=t.c,[i,o]=(0,a.useState)(pagelayer_loaded_icons[0]),[p,c]=(0,a.useState)(!1),[m,g]=(0,a.useState)(""),[y,d]=(0,a.useState)({fas:!0,far:!1,fab:!1});var u=l;if(u){var _=u.split(" fa-");u=_[1]}const f=e=>{d((a=>({...a,[e]:!a[e]})))},v=e=>{r({[s]:e.currentTarget.children[0].getAttribute("class")})};var h={};if("list"in t&&t.list.length>0)for(var b in j)for(var E in h[b]={},j[b]){h[b][E]={};var k=[];t.list.forEach((function(e){j[b][E].icons.includes(e)&&k.push(e)})),h[b][E].icons=k,h[b][E].pre=E}else h=j;return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-icon-div",onClick:()=>{c(!p)}},(0,a.createElement)("div",{className:"pagelayer-elp-icon-preview"},(0,a.createElement)("i",{className:l}),(0,a.createElement)("span",{className:"pagelayer-elp-icon-name"},l?u:"Choose icon")),(0,a.createElement)("span",{className:"pagelayer-elp-icon-open",onClick:()=>c(!p)},"▼"),(0,a.createElement)("span",{className:"pagelayer-elp-icon-close",style:{display:l?"block":"none"},onClick:()=>{r({[s]:""})}},(0,a.createElement)("b",null,"× "))),p&&(0,a.createElement)("div",{className:"pagelayer-elp-icon-selector"},pagelayer_loaded_icons.length>1&&(0,a.createElement)("select",{className:"pagelayer-elp-icon-sets",onChange:e=>{o(e.target.value)},value:i},pagelayer_loaded_icons.map((e=>(0,a.createElement)("option",{key:e,value:e},e)))),(0,a.createElement)("span",{className:"pagelayer-elp-icon-type"},(0,a.createElement)("p",{onClick:()=>f("fas"),className:y.fas?"active":""},"Solid"),(0,a.createElement)("p",{onClick:()=>f("far"),className:y.far?"active":""},"Regular"),(0,a.createElement)("p",{onClick:()=>f("fab"),className:y.fab?"active":""},"Brand")),(0,a.createElement)("input",{type:"text",className:"pagelayer-elp-search-icon",name:"search-icon",placeholder:"search",value:m,onChange:e=>{g(e.target.value)}}),(0,a.createElement)("div",{className:"pagelayer-elp-icon-list"},Object.keys(h[i]).map((e=>{if(e in y&&!pagelayer_empty(y[e]))return h[i][e].icons.filter((e=>e.includes(m.toLowerCase())||m.length<1)).map((t=>((e,t)=>(0,a.createElement)("span",{className:"pagelayer-elp-icon-span",onClick:v},(0,a.createElement)("i",{className:`${t} fa-${e}`,icon:e})," ",e))(t,e)))})))))},link:e=>{const{attributes:t,prop:l,value:r,setAttributes:i}=e,{name:o}=l.c,p=t?.tmpAtts?t.tmpAtts:{},[c,m]=(0,a.useState)({}),[g,y]=(0,a.useState)(!1),[d,u]=(0,a.useState)(!1),[_,f]=(0,a.useState)(""),v=(0,a.useRef)(null),h=e=>{var a={...c};for(var t in e)pagelayer_empty(e[t])?delete a[t]:a[t]=e[t];var l,r="object"==typeof(l=a)&&1==pagelayerLength(l)&&"link"in l?l.link:l;r=pagelayer_empty(r)?"":r,m(a),i({[o]:r})};(0,a.useEffect)((()=>{"selector"in l&&y(!0);var e=t[o];"object"!=typeof e&&(e={link:e});const a=o in p?p[o]:e?.link;pagelayer_empty(a)||f(a),h(e)}),[l]),(0,a.useEffect)((()=>{var e=jQuery(v.current).find(".pagelayer-elp-link-list");e.on("click",(function(a){a.stopPropagation();var t=jQuery(a.target).closest(".pagelayer-elp-link-item");if(t.length<1)return;var l=t.attr("data-permalink"),r=t.attr("data-id");jQuery(v.current).find(".pagelayer-elp-link").val(l),h({link:r});const n={...p,[o]:l};i({tmpAtts:n}),f(l),e.hide()})),jQuery(document).on("click",(function(a){e.hide()}))}),[]);const b=e=>{const{checked:a}=e.target,t=e.target.name;var l=!!a;h({[t]:l})};var E={};return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control",ref:v},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-link-div pagelayer-elp-input-icon "+(g?"":"pagelayer-elp-link-no-addons")},(0,a.createElement)("input",{className:"pagelayer-elp-link",type:"text",value:_,onChange:e=>{var a=e.target.value;f(a),h({link:a});const t={...p,[o]:a};i({tmpAtts:t})},onInput:e=>{e.stopPropagation();const a=e.target.value;var t=jQuery(v.current).find(".pagelayer-elp-link-list");t.is(":visible")||t.show(),clearTimeout(E),E=setTimeout((function(){jQuery.ajax({url:pagelayer_ajax_url,type:"post",data:{action:"wp-link-ajax",_ajax_linking_nonce:$,search:a},success:function(e){var a=jQuery.parseJSON(e),l="";if(pagelayer_empty(a))l=(0,s.__)("Custom Url");else if("object"==typeof a)for(var r in a){var n=a[r];l+='<div class="pagelayer-elp-link-item" data-id="'+n.ID+'" data-permalink="'+n.permalink+'"><div class="pagelayer-elp-link-title"><span class="pagelayer-elp-link-item-title" title="'+n.title+'">'+n.title+'</span><span class="pagelayer-elp-link-item-perma" title="'+n.permalink+'">'+n.permalink+'</span></div><div class="pagelayer-elp-link-info"><span title="'+n.info+'">'+n.info+"</span></div></div>"}t.html(l)},fail:function(e){t.html("Some error occured in getting the link data")}})}),200)}}),(0,a.createElement)("i",{className:"pli pli-service pagelayer-elp-link-icon",title:"link_options",onClick:()=>u(!d)}),(0,a.createElement)("div",{className:"pagelayer-elp-link-list"}),g&&d&&(0,a.createElement)("div",{className:"pagelayer-elp-link-addons"},(0,a.createElement)("div",{className:"pagelayer-elp-link-cb-div"},(0,a.createElement)("div",{className:"pagelayer-elp-link-label-div"},(0,a.createElement)("label",{className:"pagelayer-elp-link-label"},(0,s.__)("Open link in new window (tab)"))),(0,a.createElement)("div",null,(0,a.createElement)("input",{type:"checkbox",name:"target",className:"pagelayer-elp-checkbox",checked:!pagelayer_empty(c.target),onChange:b}))),(0,a.createElement)("div",{className:"pagelayer-elp-link-cb-div"},(0,a.createElement)("div",{className:"pagelayer-elp-link-label-div"},(0,a.createElement)("label",{className:"pagelayer-elp-link-label"},(0,s.__)("Add Nofollow"))),(0,a.createElement)("div",null,(0,a.createElement)("input",{type:"checkbox",name:"rel",className:"pagelayer-elp-checkbox",checked:!pagelayer_empty(c.rel),onChange:b}))),(0,a.createElement)("div",{className:"pagelayer-elp-link-ca"},(0,a.createElement)("div",{className:"pagelayer-elp-link-label-div"},(0,a.createElement)("label",{className:"pagelayer-elp-link-label"},(0,s.__)("Custom Attributes"))),(0,a.createElement)("input",{type:"text",className:"pagelayer-elp-text",placeholder:"key = value",value:c?.attrs,onChange:e=>h({attrs:e.target.value})}),(0,a.createElement)("p",{className:"pagelayer-elp-link-desc"},(0,s.__)("Setting custom attribute for link. "),(0,a.createElement)("strong",null,(0,s.__)("attribute = value")),(0,s.__)("In this way the attribute and its value can be added. Separate key-value pairs using"),(0,a.createElement)("strong",null," ",(0,s.__)("semicolon ;")),".")))))},video:T,audio:T,media:T,multi_image:e=>{const{prop:t,label:l,value:r,setAttributes:i,attributes:o,allow:p=["image"]}=e,{name:c}=t.c,m=o?.tmpAtts?o.tmpAtts:{},[g,d]=(0,a.useState)([]),[u,_]=(0,a.useState)({});return(0,a.useEffect)((()=>{var e=[];pagelayer_empty(t.c.val)||(e=t.c.val,pagelayer_is_string(e)&&(e=t.c.val.split(",")),d(e)),wp.media.query({post__in:e}).more().then((()=>{var a={};for(var t in e){var l=wp.media.attachment(e[t]).get("url");a["i"+t]=l}_(a)}))}),[]),(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)(y.MediaUpload,{title:"Select Image",onSelect:e=>{var a=[],t={},l={},r={},n={},s={};for(var o in e){const{id:i,url:c,title:m,link:y,caption:d,sizes:u}=e[o];var p="i"+i;for(var g in a.push(i),t[p]=c,r[p]=m,n[p]=y,s[p]=d,l[p]={},u)l[p][g]=u[g].url}_(t),d(a);const y={...m,[c+"-urls"]:t,[c+"-all-urls"]:l,[c+"-all-titles"]:r,[c+"-all-links"]:n,[c+"-all-captions"]:s};i({[c]:a,tmpAtts:y})},allowedTypes:p,value:g,multiple:!0,gallery:!0,addToGallery:!0,autoOpen:!0,render:({open:e})=>(e=>(0,a.createElement)("div",{className:"pagelayer-elp-multi_image-div"},(0,a.createElement)("center",null,(0,a.createElement)("button",{className:"pagelayer-elp-button",onClick:()=>e()},(0,s.__)("Add Images"))),(0,a.createElement)("div",{className:"pagelayer-elp-multi_image-thumbs",onClick:()=>e()},u&&Object.keys(u).map((e=>(0,a.createElement)("div",{className:"pagelayer-elp-multi_image-thumb",style:{backgroundImage:`url(${u[e]})`}}))))))(e)}))},shadow:e=>{const{prop:t,label:l,value:r,setAttributes:o}=e,{name:p}=t.c;var c=pagelayer_empty(r)?["","","",""]:r;pagelayer_is_string(r)&&(c=r.split(","));const[m,g]=(0,a.useState)(!1),[y,d]=(0,a.useState)(!1),u=(0,a.useRef)(null),_=(0,a.useRef)(null),f=(0,a.useRef)(null),v=(e,a)=>{const t=[...c];t[e]=a,o({[p]:t})};return(0,a.useEffect)((()=>{const e=e=>{_.current&&!_.current.contains(e.target)&&u.current&&!u.current.contains(e.target)&&g(!1),f.current&&!f.current.contains(e.target)&&d(!1)};return document.addEventListener("click",e),()=>{document.removeEventListener("click",e)}}),[]),(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-prop-holder",ref:f},(0,a.createElement)("span",{className:"pagelayer-prop-edit",onClick:()=>d(!y)},(0,a.createElement)("i",{className:"pli pli-pencil"})),y&&(0,a.createElement)("div",{className:"pagelayer-elp-shadow-div"},(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-shadow-horizontal"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Horizontal")),(0,a.createElement)("input",{className:"pagelayer-elp-shadow-input",type:"number",max:"100",min:"-100",step:"1",name:"horizontal",value:c[0],onChange:e=>v(0,parseFloat(e.target.value))})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-shadow-vertical"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Vertical")),(0,a.createElement)("input",{className:"pagelayer-elp-shadow-input",type:"number",max:"100",min:"-100",step:"1",name:"vertical",value:c[1],onChange:e=>v(1,parseFloat(e.target.value))})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-shadow-blur"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Blur")),(0,a.createElement)("input",{className:"pagelayer-elp-shadow-input",type:"number",max:"100",min:"-100",step:"1",name:"blur",value:c[2],onChange:e=>v(2,parseFloat(e.target.value))})),(0,a.createElement)("div",{className:"pagelayer-elp-prop-grp pagelayer-elp-shadow-color"},(0,a.createElement)("label",{className:"pagelayer-elp-label"},(0,s.__)("Color")),(0,a.createElement)("div",{className:"pagelayer-elp-color-div",ref:_},(0,a.createElement)("div",{className:"pagelayer-elp-color-preview "+(""===c[3]?"pagelayer-blank-preview":""),onClick:()=>g(!m),style:{backgroundColor:c[3]}}),(0,a.createElement)("span",{className:"pagelayer-elp-remove-color",onClick:()=>{v(3,""),g(!1)}},(0,a.createElement)("i",{className:"pli pli-cross"})))),m&&(0,a.createElement)("div",{ref:_,className:"test"},(0,a.createElement)(i.ColorPicker,{color:c[3],onChangeComplete:e=>{e.rgb&&((e="")=>{v(3,e)})(1!=e.rgb.a?"rgba("+e.rgb.r+","+e.rgb.g+","+e.rgb.b+","+e.rgb.a+")":e.hex)},disableAlpha:!1})))))},datetime:e=>{const{prop:t,value:l,setAttributes:r}=e,{name:s}=t.c;return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)("div",{className:"pagelayer-form-item","pagelayer-elp-name":s},(0,a.createElement)("div",{className:"pagelayer-elp-label-div",type:e.prop.type},(0,a.createElement)(n,{...e})),(0,a.createElement)("div",{className:"pagelayer-elp-datetime-div"},(0,a.createElement)("input",{className:"pagelayer-elp-shadow-input",type:"date",name:s,value:l,style:{width:"100%"},onChange:e=>r({[s]:e.target.value})}))))},multiselect:e=>{const{prop:t,label:l,value:r,setAttributes:s}=e,{name:i}=t.c;var o=pagelayer_empty(r)?[]:r;pagelayer_is_string(o)&&(o=o.split(","));const[p,c]=(0,a.useState)(!1);return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-multiselect-div pagelayer-elp-pos-rel"},(0,a.createElement)("div",{className:"pagelayer-elp-multiselect",onClick:()=>c(!p)},o.map((e=>(0,a.createElement)("span",{className:"pagelayer-elp-multiselect-selected","data-val":e},t.list[e]," ",(0,a.createElement)("span",{className:"pagelayer-elp-multiselect-remove",onClick:()=>(e=>{const a=o.filter((a=>a!==e));s({[i]:a.join(",")})})(e)},"x"))))),p&&(0,a.createElement)("ul",{className:"pagelayer-elp-multiselect-ul "+(p?"open":""),name:i},Object.keys(t.list).map((e=>((e,t)=>{const l=o.includes(e)?"selected":"";return(0,a.createElement)("li",{className:"pagelayer-elp-multiselect-option","data-val":e,"data-selected":l,onClick:()=>(e=>{if(o.includes(e)){const a=o.filter((a=>a!==e));s({[i]:a.join(",")})}else{const a=[...o,e];s({[i]:a.join(",")})}})(e)},t)})(e,t.list[e]))))))},font_family:e=>{const{prop:t,value:l,setAttributes:r}=e,{name:s}=t.c;var i=pagelayerParseTypo(l,!1);const o=[],p=(e,t,l,r)=>{const n=e!==r?"":'selected="selected"',s=t||"Default";return(0,a.createElement)("option",{className:"pagelayer-elp-select-option",value:e,type:l,selected:n},s)};for(const e in A){"default"!=e&&o.push((0,a.createElement)("optgroup",{label:pagelayerUcwords(e)}));for(const a in A[e])o.push(p(jQuery.isNumeric(a)?A[e][a]:a,A[e][a],e,i[0]))}return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{class:"pagelayer-elp-select-div pagelayer-elp-pos-rel"},(0,a.createElement)("select",{className:"pagelayer-elp-select pagelayer-select",onChange:e=>{c(jQuery(e.target)),r({[s]:e.target.value})},name:t.c.name},o)))},textarea:e=>{const{prop:t,value:l,setAttributes:r}=e,{name:s}=t.c,i=t.rows?t.rows:"";return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-textarea-div"},(0,a.createElement)("textarea",{rows:i,className:"pagelayer-elp-textarea",onChange:e=>{r({[s]:e.target.value})}},l)))},filter:e=>{const{prop:t,value:l,setAttributes:r}=e,{name:s}=t.c,[i,o]=(0,a.useState)(!1);var p=pagelayer_empty(l)?[0,100,100,0,0,100,100]:l;pagelayer_is_string(p)&&(p=p.split(","));const c=(0,a.useRef)(null),m=[["blur","10","0.1"],["brightness","200","1"],["contrast","200","1"],["grayscale","200","1"],["hue","360","1"],["opacity","100","1"],["saturate","200","1"]];return(0,a.useEffect)((()=>{const e=e=>{c.current&&!c.current.contains(e.target)&&o(!1)};return document.addEventListener("click",e),()=>{document.removeEventListener("click",e)}}),[]),(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-prop-holder",ref:c},(0,a.createElement)("span",{className:"pagelayer-prop-edit",onClick:()=>o(!i)},(0,a.createElement)("i",{className:"pli pli-pencil"})),i&&(0,a.createElement)("div",{className:"pagelayer-elp-filter-div"},m.map(((e,t)=>(0,a.createElement)("div",{className:`pagelayer-elp-prop-grp pagelayer-elp-filter-${m[t][0]}`},(0,a.createElement)("label",{className:"pagelayer-elp-label"},m[t][0]),(0,a.createElement)("input",{className:`pagelayer-elp-slider pagelayer-elp-filter-input pagelayer-elp-filter-${m[t][0]}`,type:"range",max:m[t][1],min:"0",step:m[t][2],value:p[t],onChange:e=>((e,a)=>{const t=parseFloat(a.target.value);let l=[...p];l[e]=t,r({[s]:l})})(t,e)}),(0,a.createElement)("span",{className:"pagelayer-elp-filter-val"})))))))},access:e=>{const{children:t}=e,[l,r]=(0,a.useState)(!1),s=(0,a.useRef)(null);(0,a.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&r(!1)};return document.addEventListener("click",e),()=>{document.removeEventListener("click",e)}}),[]);const i=l?"pli-caret-open":"";return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-access-div",ref:s},(0,a.createElement)("span",{className:"pagelayer-elp-access",onClick:()=>r(!l)},(0,a.createElement)("i",{className:`pli pli-caret-right ${i}`})),l&&(0,a.createElement)("div",{className:"pagelayer-elp-access-holder"},t)))},modal:e=>{const{prop:t,children:l,label:r}=e,{width:s}=t,[o,p]=(0,a.useState)(!1),c=(0,a.useRef)(null),m=(0,a.useRef)(null);(0,a.useEffect)((()=>{const e=e=>{c.current&&!c.current.contains(e.target)&&m.current&&!m.current.contains(e.target)&&p(!1)};return document.addEventListener("click",e),()=>{document.removeEventListener("click",e)}}),[]);var g=pagelayer_empty(s)?{}:{width:s};return(0,a.createElement)("div",{className:"components-base-control pagelayer-base-control"},(0,a.createElement)(n,{...e}),(0,a.createElement)("div",{className:"pagelayer-elp-modal-div"},(0,a.createElement)("span",{className:"pagelayer-elp-modal",onClick:()=>p(!0),ref:m},(0,a.createElement)("i",{className:"pli pli-window"})),o&&(0,a.createElement)(i.Popover,{className:"pagelayer-elp-modal-wrapper",position:"top-start"},(0,a.createElement)("div",{className:"pagelayer-elp-modal-wrap",style:g,ref:c},(0,a.createElement)("div",{className:"pagelayer-elp-modal-header"},r,(0,a.createElement)("i",{className:"pagelayer-elp-modal-close pli pli-cross","aria-hidden":"true",onClick:()=>p(!1)})),(0,a.createElement)("hr",null),(0,a.createElement)("div",{className:"pagelayer-elp-modal-holder"},l)))))},menus:m},wp.PagelayerBlocks={row:Pa,col:e=>{const{_props:t,data:r}=e,{clientId:n}=t,{atts:s,tmp:i,id:o}=r,{getBlockOrder:p}=(0,l.select)("core/block-editor"),c=p(n).length>0,m=c?"pagelayer-has-child":"",g=wp.blocks.getBlockTypes().map((e=>e.name)).filter((e=>"pagelayer/pl-col"!==e)),d={templateLock:!1,renderAppender:c?void 0:y.InnerBlocks.ButtonBlockAppender,allowedBlocks:g},u={className:`pagelayer-col-holder ${m}`},_=(0,y.useInnerBlocksProps)(u,d);return(0,a.createElement)(a.Fragment,null,s?.bg_video_src&&(0,a.createElement)("div",{className:"pagelayer-background-video",dangerouslySetInnerHTML:{__html:s.vid_src}}),s?.bg_slider&&(0,a.createElement)("div",{className:"pagelayer-bgimg-slider",dangerouslySetInnerHTML:{__html:s.slider}}),s?.parallax_img&&(0,a.createElement)("div",{className:"pagelayer-parallax-window"},(0,a.createElement)("img",{className:"pagelayer-img",src:s.parallax_img_src,title:i["parallax_img-title"],alt:i["parallax_img-alt"]})),s?.overlay_type&&(0,a.createElement)("div",{className:"pagelayer-background-overlay"}),(0,a.createElement)("div",{..._}))},quote:e=>{const{_props:t,pl_props:l,tag:r,data:n}=e,{setAttributes:s}=t,{atts:i}=n;return(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:`pagelayer-quote-holder pagelayer-quote-${i?.quote_style}`},i?.quotation_pos&&(0,a.createElement)("i",{className:`fa fa-quote-left pagelayer-quotation-${i.quotation_pos}`}),(0,a.createElement)("div",{className:"pagelayer-quote-content"},i?.double_indent&&(0,a.createElement)("i",{className:"fa fa-quote-left"}),(0,a.createElement)(y.RichText,{key:"editable",tagName:"span",keepPlaceholderOnFocus:!0,placeholder:"Add Quote description...",onChange:e=>s({quote_content:e}),value:i.quote_content}),i?.double_indent&&(0,a.createElement)("i",{className:"fa fa-quote-right"})),(0,a.createElement)("div",{className:"pagelayer-quote-cite"},i?.cite_url?(0,a.createElement)("a",{href:i.cite_url,className:"pagelayer-link-sel",onClick:e=>e.preventDefault()},(0,a.createElement)(y.RichText,{key:"editable",tagName:"span",className:"pagelayer-cite-holder",keepPlaceholderOnFocus:!0,placeholder:"Add Cite...",onChange:e=>s({cite:e}),value:i.cite})):(0,a.createElement)(y.RichText,{key:"editable",tagName:"span",className:"pagelayer-cite-holder",keepPlaceholderOnFocus:!0,placeholder:"Add Cite...",onChange:e=>s({cite:e}),value:i.cite}))))},tabs:e=>{const{_props:t,pl_props:r,tag:n,data:s}=e,{setAttributes:i,clientId:o}=t,{id:p,atts:c}=s,m=(0,a.useRef)(null),{getBlocks:g}=(0,l.select)("core/block-editor"),d=g(o),u=e=>{var a=jQuery(e.target).closest(".pagelayer-tablinks"),t=a.attr("client_id");a.parent().find(".pagelayer-tablinks").removeClass("active"),a.addClass("active");var l=pagelayer_query("#block-"+t);l.parent().children().each((function(){jQuery(this).children(".pagelayer-tab").hide()})),l.children(".pagelayer-tab").show()};(0,a.useEffect)((()=>{var e=jQuery(m.current),a=e.find('[default_active="true"]');setTimeout((()=>{a.length>0?a.last()[0].click():e.find(".pagelayer-tablinks").length>0&&e.find(".pagelayer-tablinks")[0].click()}),100)}),[]);var _=null;(0,a.useEffect)((()=>{var e=jQuery(m.current).children();if(c.rotate>0){var a=0;_=setInterval((function(){a>=e.length&&(a=0),jQuery(e[a])[0].click(),a++}),c.rotate)}else clearInterval(_);return()=>{clearInterval(_)}}),[c?.rotate]);var f={plTag:"pl_"+n,_props:t};return(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:"pagelayer-tabs-holder",ref:m},d.map((e=>(0,a.createElement)("span",{"tab-id":e.attributes["pagelayer-id"],className:"pagelayer-tablinks",client_id:e.clientId,onClick:u,default_active:e.attributes?.default_active},(0,a.createElement)("i",{className:e.attributes?.tab_icon}),(0,a.createElement)(y.RichText,{key:"editable",tagName:"span",keepPlaceholderOnFocus:!0,placeholder:"Add Tab Title...",onChange:a=>{return t=e.clientId,r=a,void(0,l.dispatch)("core/block-editor").updateBlockAttributes(t,{title:r});var t,r},onClick:u,value:e.attributes?.title}))))),(0,a.createElement)("div",{className:"pagelayer-tabcontainer"},(0,a.createElement)(Ba,{...f})))},video:e=>{const{_props:t,tag:l,data:r}=e,{setAttributes:n,isSelected:s}=t,{id:i,atts:o,tmp:p}=r;(0,a.useEffect)((()=>{pagelayer_pl_video(pagelayer_query(`.p-${i}`))})),(0,a.useEffect)((()=>{var e=pagelayer_query(`.p-${i}`).find(".pagelayer-video-overlay");e.length>0&&e.show()}),[o]);var c=pagelayer_empty(p["src-url"])?o.src:p["src-url"],m=pagelayer_video_url(c,!0);if("src"in m&&!pagelayer_empty(m.src)){if(m.src+=-1==m.src.indexOf("?")?"?":"",m.src+="autoplay"in o?"&autoplay=1":"&autoplay=0","mute"in o){var g="true"===o.mute?1:0;m.src+="&"+("vimeo"==m.type?"muted":"mute")+"="+g}"loop"in o&&(m.src+="&loop=1"),o.vid_src=m.src+("youtube"==m.type?"&playlist="+m.id:"")}return(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:`pagelayer-video-holder pagelayer-video-${o?.video_ratio}`},o?.vid_src&&(0,a.createElement)("iframe",{id:"embed_video",className:"pagelayer-video-iframe",width:"100%",height:"auto",src:o?.vid_src,frameborder:0}),o?.lightbox?(0,a.createElement)("a",{href:c},o?.overlay&&(0,a.createElement)("div",{className:"pagelayer-video-overlay",style:{backgroundImage:`url(${p["video_overlay_image-url"]})`}},(0,a.createElement)("i",{className:o.play_icon,"aria-hidden":"true"}))):(0,a.createElement)(a.Fragment,null,o?.overlay&&(0,a.createElement)("div",{className:"pagelayer-video-overlay",style:{backgroundImage:`url(${p["video_overlay_image-url"]})`}},(0,a.createElement)("i",{className:o.play_icon,"aria-hidden":"true"}))),!s&&(0,a.createElement)("div",{className:"pagelayer-video-edit"},(0,a.createElement)("span",{className:"fa fa-pencil"}))))},image_slider:e=>{const{_props:t,tag:l,data:r}=e,{setAttributes:n}=t,{atts:i,id:o}=r,[p,c]=(0,a.useState)({});(0,a.useEffect)((()=>{var e=i?.ids?i?.ids:[];wp.media.query({post__in:e}).more().then((function(){var a={},t={},l={};for(var r in e){var n=wp.media.attachment(e[r]),s="i"+e[r];for(var r in a[s]=n.get("url"),t[s]=n.get("title"),l[s]={},n.get("sizes"))l[s][r]=n.attributes.sizes[r].url}c({urls:a,allUrls:l,allTitles:t})}))}),[i]),(0,a.useEffect)((()=>{var e=pagelayer_query(`.p-${o}`);pagelayer_empty(p)||pagelayer_pl_image_slider(e)}),[i,p]);var m={};return"controls"in i&&("arrows"!=i.controls&&"none"!=i.controls||(m["data-pager"]="false"),"pager"!=i.controls&&"none"!=i.controls||(m["data-controls"]="false")),(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:"pagelayer-image-slider-div"},(0,a.createElement)("ul",{className:"pagelayer-image-slider-ul pagelayer-owl-holder pagelayer-owl-carousel pagelayer-owl-theme",...m},(()=>{if(pagelayer_empty(p)||pagelayer_empty(p.urls))return(0,a.createElement)("h4",{style:{textAlign:"center"}},(0,s.__)("Please select Images from left side Widget properties."));var e=pagelayer_query(`.p-${o}`);pagelayer_owl_destroy(e,".pagelayer-image-slider-ul");const t=p.urls,l=p.allUrls,r=p.allTitles,n=[],c="link_type"in i&&!pagelayer_empty(i.link_type);for(const e in t){let s=t[e];"custom"!==i.size&&e in l&&i.size in l[e]&&(s=l[e][i.size]);const o=(0,a.createElement)("li",{className:"pagelayer-slider-item",key:e},c?(0,a.createElement)("a",{href:"media_file"===i.link_type?pagelayer_empty(t[e])?s:t[e]:i.link||"",className:"pagelayer-link-sel"},(0,a.createElement)("img",{className:"pagelayer-img",src:s,title:r[e],alt:r[e]})):(0,a.createElement)("img",{className:"pagelayer-img",src:s,title:r[e],alt:r[e]}));n.push(o)}return(0,a.createElement)(a.Fragment,null,n)})())))},testimonial_slider:e=>{const{_props:t,data:r}=e,{attributes:n,clientId:s}=t,{id:i,tag:o}=r,[p,c]=(0,a.useState)(0),[m,g]=(0,a.useState)(!1),y=(0,l.select)("core/block-editor").getBlocks(s).length,d=()=>{let e=pagelayer_query(`.p-${i}`);pagelayer_owl_destroy(e,".pagelayer-testimonials-holder"),pagelayer_pl_testimonial_slider(e)};if(p!=y){let e=pagelayer_query(`.p-${i}`);pagelayer_owl_destroy(e,".pagelayer-testimonials-holder"),c(y)}(0,a.useEffect)((()=>{setTimeout(d,200)}),[n]),(0,a.useEffect)(d,[y,m]),(0,a.useEffect)((()=>{var e=pagelayer_query(`.p-${i}`);return e.find(".pagelayer-owl-carousel").on("refresh.pagelayer.owl",(function(){g(!m)})),e.find(".pagelayer-testimonials-holder > .pagelayer-owl-stage-outer").length<1&&d(),()=>{e.find(".pagelayer-owl-carousel").unbind("refresh.pagelayer.owl")}}));var u={plTag:o,_props:t};return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(Ba,{className:"pagelayer-testimonials-holder pagelayer-owl-holder pagelayer-owl-carousel pagelayer-owl-theme",...u}))},review_slider:e=>{const{_props:t,data:r}=e,{attributes:n,clientId:s}=t,{id:i,tag:o}=r,[p,c]=(0,a.useState)(0),[m,g]=(0,a.useState)(!1),y=(0,l.select)("core/block-editor").getBlocks(s).length,d=()=>{let e=pagelayer_query(`.p-${i}`);pagelayer_owl_destroy(e,".pagelayer-reviews-holder"),pagelayer_reviews_slider(e)};if(p!=y){let e=pagelayer_query(`.p-${i}`);pagelayer_owl_destroy(e,".pagelayer-reviews-holder"),c(y)}(0,a.useEffect)((()=>{setTimeout(d,200)}),[n]),(0,a.useEffect)(d,[y,m]),(0,a.useEffect)((()=>{var e=pagelayer_query(`.p-${i}`);return e.find(".pagelayer-owl-carousel").on("refresh.pagelayer.owl",(function(){g(!m)})),e.find(".pagelayer-reviews-holder > .pagelayer-owl-stage-outer").length<1&&d(),()=>{e.find(".pagelayer-owl-carousel").unbind("refresh.pagelayer.owl")}}));var u={plTag:o,_props:t};return(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:"pagelayer-review-slides-container"},(0,a.createElement)(Ba,{className:"pagelayer-reviews-holder pagelayer-owl-holder pagelayer-owl-carousel pagelayer-owl-theme",...u})))},video_slider:e=>{const{_props:t,data:r}=e,{attributes:n,clientId:s}=t,{id:i,tag:o}=r,[p,c]=(0,a.useState)(0),[m,g]=(0,a.useState)(!1),y=(0,l.select)("core/block-editor").getBlocks(s).length,d=()=>{let e=pagelayer_query(`.p-${i}`);pagelayer_owl_destroy(e,".pagelayer-video-slider-holder"),pagelayer_pl_video_slider(e)};if(p!=y){let e=pagelayer_query(`.p-${i}`);pagelayer_owl_destroy(e,".pagelayer-video-slider-holder"),c(y)}(0,a.useEffect)((()=>{setTimeout(d,200)}),[n]),(0,a.useEffect)(d,[y,m]),(0,a.useEffect)((()=>{var e=pagelayer_query(`.p-${i}`);return e.find(".pagelayer-owl-carousel").on("refresh.pagelayer.owl",(function(){g(!m)})),e.find(".pagelayer-video-slider-holder > .pagelayer-owl-stage-outer").length<1&&d(),()=>{e.find(".pagelayer-owl-carousel").unbind("refresh.pagelayer.owl")}}));var u={plTag:o,_props:t};return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(Ba,{className:"pagelayer-video-slider-holder pagelayer-owl-holder pagelayer-owl-carousel pagelayer-owl-theme",...u}))},slides:e=>{const{_props:t,data:r}=e,{attributes:n,clientId:s}=t,{id:i,tag:o}=r,[p,c]=(0,a.useState)(0),[m,g]=(0,a.useState)(!1),y=(0,l.select)("core/block-editor").getBlocks(s).length,d=()=>{let e=pagelayer_query(`.p-${i}`);pagelayer_owl_destroy(e,".pagelayer-slides-holder"),pagelayer_pl_slides(e)};if(p!=y){let e=pagelayer_query(`.p-${i}`);pagelayer_owl_destroy(e,".pagelayer-slides-holder"),c(y)}(0,a.useEffect)((()=>{setTimeout(d,400)}),[n]),(0,a.useEffect)(d,[y,m]),(0,a.useEffect)((()=>{var e=pagelayer_query(`.p-${i}`);return e.find(".pagelayer-owl-carousel").on("refresh.pagelayer.owl",(function(){g(!m)})),e.find(".pagelayer-slides-holder > .pagelayer-owl-stage-outer").length<1&&d(),()=>{e.find(".pagelayer-owl-carousel").unbind("refresh.pagelayer.owl")}}));var u={plTag:o,_props:t};return(0,a.createElement)(a.Fragment,null,(0,a.createElement)(Ba,{className:"pagelayer-slides-holder pagelayer-owl-holder pagelayer-owl-carousel pagelayer-owl-theme",...u}))},fb_btn:e=>{const{_props:t,pl_props:l,tag:r,data:n}=e,{attributes:s}=t,{id:i,atts:o}=n,p=(0,a.useRef)(null),[c,m]=(0,a.useState)(null);return(0,a.useEffect)((()=>{"current"==o.link_type&&(o["custom-url"]=pagelayer_post_permalink,m(o["custom-url"]));const e=setTimeout((()=>{pagelayer_fb_apps(jQuery(p.current))}),300);return()=>{clearTimeout(e)}}),[s]),(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:"pagelayer-fb-btn-container","pagelayer-facebook-load":"1",ref:p},(0,a.createElement)("span",{className:"pagelayer-app-details","pagelayer-app-id":o["fb-app-id"]?o["fb-app-id"]:""}),(0,a.createElement)("div",{id:"fb-root"}),(0,a.createElement)("div",{className:"fb-like pagelayer-fb-btn-details",id:"fb-like-btn","data-href":o["custom-url"]?o["custom-url"]:c,"data-layout":o?.layout,"data-action":o?.btn_action,"data-show-faces":o?.peoples_faces,"data-size":o?.btn_size,"data-share":o?.share_btn})))},posts:e=>{const{_props:t,pl_props:l,tag:r,data:n}=e,{id:s,atts:i}=n,{attributes:o}=t,[p,c]=(0,a.useState)([]),[m,g]=(0,a.useState)("");(0,a.useEffect)((()=>{const e={};e.pagelayer_nonce=pagelayer_ajax_nonce,i.count&&(e.posts_per_page=i.count),i.show_thumb&&(e.show_thumb=i.show_thumb),i.thumb_size&&(e.thumb_size=i.thumb_size),i.show_content&&(e.show_content=i.show_content),i.show_title&&(e.show_title=i.show_title),i.more&&(e.more=i.more),i.btn_type&&(e.btn_type=i.btn_type),i.size&&(e.size=i.size),i.icon_position&&(e.icon_position=i.icon_position),i.icon&&(e.icon=i.icon),i.show_more&&(e.show_more=i.show_more),i.meta_sep&&(e.meta_sep=i.meta_sep),i.exc_length&&(e.exc_length=i.exc_length),i.post_type&&(e.post_type=i.post_type),i.posts_order&&(e.order=i.posts_order),i.inc_term&&(e.term=i.inc_term),i.inc_author&&(e.author_name=i.inc_author),i.exc_term&&(e.exc_term=i.exc_term),i.exc_author&&(e.exc_author=i.exc_author),i.offset&&(e.offset=i.offset),i.ignore_sticky&&(e.ignore_sticky=i.ignore_sticky),i.orderby&&(e.orderby=i.orderby),i.by_period&&(e.by_period=i.by_period),i.before_date&&(e.before_date=i.before_date),i.after_date&&(e.after_date=i.after_date),i.thumb_img_type&&(e.thumb_img_type=i.thumb_img_type);var a=n.tmp["def_thumb_img-"+i.thumb_size+"-url"];if(i.def_thumb_img&&(e.def_thumb_img=pagelayer_empty(a)?n.tmp["def_thumb_img-url"]:a),!pagelayer_empty(i.meta)){var t=i.meta.split(",");jQuery.each(t,(function(a,t){e[t]=t}))}const l=JSON.stringify(e),r=p.find((e=>JSON.stringify(e.post)===l));r?g(r.data):jQuery.ajax({url:pagelayer_ajax_url+"action=pagelayer_posts_data",type:"post",data:e,success:function(a){g(a),c((t=>[...t,{post:e,data:a}]))}})}),[o]);const y=e=>{pagelayer_owl_destroy(e,".pagelayer-posts-container"),e.find(".pagelayer-posts-container").removeClass((function(e,a){const t=a.match(/pagelayer-owl-\S+/g);return t?t.join(" "):""}))};return(0,a.useEffect)((()=>{var e=pagelayer_query(`.p-${s}`);i.enable_slider?setTimeout((()=>{y(e),pagelayer_pl_posts(e)}),50):y(e)}),[o,m]),(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:"pagelayer-posts-container",dangerouslySetInnerHTML:{__html:m}}),i?.infinite_types&&(0,a.createElement)("div",{className:"pagelayer_load_button","data-text":i.infinite_final},(0,a.createElement)("a",{"data-max":i?.max_pages,className:`pagelayer-btn-holder pagelayer-btn-load pagelayer-ele-link ${i.infinite_btn_type} ${i.infinite_btn_size} ${i.infinite_btn_size} ${i?.load_btn_icon_position}`},i?.load_btn_icon&&(0,a.createElement)("i",{className:`${i.load_btn_icon} pagelayer-btn-load-icon`}),i?.infinite_text&&(0,a.createElement)("span",{className:"pagelayer-btn-load-text"},i.infinite_text),i?.load_btn_icon&&(0,a.createElement)("i",{className:`${i.load_btn_icon} pagelayer-btn-load-icon`})),(0,a.createElement)("div",{className:"pagelayer-loader-holder"},(0,a.createElement)("i",{className:"fa fa-spinner fa-spin fa-3x fa-fw","aria-hidden":"true"}))))},post_folio:e=>{const{_props:t,tag:l,data:r}=e,{className:n,attributes:s}=t,{id:i,atts:o}=r,[p,c]=(0,Fa.useState)([]),[m,g]=(0,Fa.useState)([]);return(0,Fa.useEffect)((()=>{const e={};e.pagelayer_nonce=pagelayer_ajax_nonce,o.type&&(e.post_type=o.type),o.filter_by&&(e.filter_by=o.filter_by),o.count&&(e.posts_per_page=o.count);const a=JSON.stringify(e),t=p.find((e=>JSON.stringify(e.post)===a));t?g(t.data):jQuery.ajax({url:pagelayer_ajax_url+"action=pagelayer_fetch_posts",type:"post",data:e,success:function(a){g(a),c((t=>[...t,{post:e,data:a}]))}})}),[s.type,s.filter_by,s.count]),(0,Fa.useEffect)((()=>{pagelayer_post_folio(pagelayer_query(`.p-${i}`))}),[s.type,s.filter_by,s.count,m]),(0,a.createElement)("div",{className:"pagelayer-postfolio-section",dangerouslySetInnerHTML:{__html:m}})},sitemap_item:e=>{const{_props:t,pl_props:l,data:r}=e,{attributes:n}=t,{atts:i}=r,[o,p]=(0,a.useState)({}),[c,m]=(0,a.useState)({});return(0,a.useEffect)((()=>{const e=`${pagelayer_ajax_url}&action=${"post_type"==i.sitemap_type?"pagelayer_get_pages_list":"pagelayer_get_taxonomy_list"}`,a=JSON.stringify({...n,title:""});if(c[a])p(c[a]);else{var t="",l="",r="",s="",o="",g="";"post_type"==i.sitemap_type?(t=i.source_post,l=i.order_post,r=i.order,s=i.hierarchical,o=i.depth):(t=i.source_taxonomy,l=i.order_taxonomy,r=i.order,s=i.hierarchical,o=i.depth,g=i.hide_empty),jQuery.ajax({type:"POST",url:e,data:{type:t,post_order:l,order:r,hier:s,depth:o,empty:g,pagelayer_nonce:pagelayer_ajax_nonce},success:function(e){p(e);var t={...c};t[a]=e,m(t)},error:function(e){console.error("Error fetching data:--\x3e",e)}}),jQuery(".pagelayer-sitemap-div-holder[data-nofollow] .pagelayer-sitemap-list-item a").attr("rel","nofollow")}}),[n]),(0,a.createElement)("div",{className:"pagelayer-sitemap-section"},o.length>0&&(0,a.createElement)(a.Fragment,null,(0,a.createElement)("span",null,n.title?n.title:"post_type"===n.sitemap_type?(0,s.__)("Pages"):(0,s.__)("Categories")),(0,a.createElement)("div",{dangerouslySetInnerHTML:{__html:o}})))},wp_menu:e=>{const{_props:t,pl_props:l,data:r}=e,{id:n,atts:s}=r,{attributes:i,clientId:o,setAttributes:p}=t,c=(0,a.useRef)(null),[m,g]=(0,a.useState)(null),y=(e,a)=>{g(Ye(e,t))};return(0,a.useEffect)((()=>{const e=jQuery(c.current).closest("#block-"+o);var a=pagelayerGetCurrentWindow();return pagelayer_primary_menu(e),jQuery(a).on("resize.pl_menu"+o,(function(){pagelayer_primary_menu(e)})),()=>{jQuery(a).unbind("resize.pl_menu"+o)}}),[m]),(0,a.useEffect)((()=>{var e=jQuery(c.current).closest("#block-"+o),a=s.nav_list,t="",l="";if(e.parent().closest(".pagelayer-wp_menu").length>0&&(0==a?t=!0:(pagelayer_empty(a)||pagelayer_empty(0))&&(l="Primary Menu Holder. Please select the correct menu or parent menu.",t=!0)),p({inside_mega:t}),!pagelayer_empty(t))return pagelayer_empty(l)&&(l="Primary Menu Holder. Please select the correct menu."),void g(l);if(pagelayer_empty(s.menu_toggle_icon)&&(s.menu_toggle_icon="fas fa-bars"),pagelayer_empty(Ha[a])){var r=e.find(".pagelayer-wp_menu-ul").parent();r.length>0&&y(r[0].outerHTML),jQuery.ajax({url:pagelayer_ajax_url+"&action=pagelayer_fetch_primary_menu&postID="+pagelayer_postID,type:"post",data:{pagelayer_nonce:pagelayer_ajax_nonce,nav_list:a,pagelayer_nav_items:{},"pagelayer-live":1},success:function(e){e=Ra(e,a),Ha[a]=e,y(e)}})}else{var n=Ra(Ha[a],a);y(n)}}),[i]),(0,a.createElement)(a.Fragment,null,(0,a.createElement)("div",{className:"pagelayer-wp-menu-holder","data-layout":s?.layout,"data-submenu_ind":s?.submenu_ind,"data-drop_breakpoint":s?.drop_breakpoint,ref:c},(0,a.createElement)("div",{className:"pagelayer-primary-menu-bar"},(0,a.createElement)("i",{className:s?.menu_toggle_icon})),(0,a.createElement)("div",{className:`pagelayer-wp-menu-container pagelayer-menu-type-${s.layout} pagelayer-menu-hover-${s.pointer} ${s.m_animation} ${s.slide_style}`,"data-align":s?.align},(0,a.createElement)("div",{className:"pagelayer-wp_menu-close"},(0,a.createElement)("i",{className:"fas fa-times"})),m)))},archive_posts:e=>{const{_props:t,pl_props:l,tag:r,data:n}=e,{id:s,atts:i}=n,{attributes:o}=t,[p,c]=(0,a.useState)("");return(0,a.useEffect)((()=>{var e={};e.atts=JSON.parse(JSON.stringify(i)),e.atts["pagelayer-id"]=s,e.pagelayer_nonce=pagelayer_ajax_nonce,pagelayer_empty(La)||!pagelayer_compare_object(La,e)||pagelayer_empty(Da[s])?(La=e,jQuery.ajax({url:pagelayer_ajax_url+"action=pagelayer_archive_posts_data",type:"post",data:e,success:function(e){var a=jQuery(e);a.children("style").remove();var t=a.html();c(t),Da[s]=t}})):c(Da[s])}),[o]),(0,a.createElement)("div",{dangerouslySetInnerHTML:{__html:p}})},addGroupBlock:Ba}})()})(); blocks/index.asset.php 0000644 00000000301 15100021164 0010737 0 ustar 00 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-primitives'), 'version' => 'c3363c1545030cdd75c9'); wow.min.js 0000644 00000017733 15100021164 0006501 0 ustar 00 /*! WOW wow.js - v1.3.0 - 2016-10-04 * https://wowjs.uk * Copyright (c) 2016 Thomas Grainger; Licensed MIT */!function(a,b){if("function"==typeof define&&define.amd)define(["module","exports"],b);else if("undefined"!=typeof exports)b(module,exports);else{var c={exports:{}};b(c,c.exports),a.WOW=c.exports}}(this,function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function d(a,b){return b.indexOf(a)>=0}function e(a,b){for(var c in b)if(null==a[c]){var d=b[c];a[c]=d}return a}function f(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)}function g(a){var b=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],c=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],d=arguments.length<=3||void 0===arguments[3]?null:arguments[3],e=void 0;return null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e}function h(a,b){null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)&&a["on"+b]()}function i(a,b,c){null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c}function j(a,b,c){null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]}function k(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight}Object.defineProperty(b,"__esModule",{value:!0});var l,m,n=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),o=window.WeakMap||window.MozWeakMap||function(){function a(){c(this,a),this.keys=[],this.values=[]}return n(a,[{key:"get",value:function(a){for(var b=0;b<this.keys.length;b++){var c=this.keys[b];if(c===a)return this.values[b]}}},{key:"set",value:function(a,b){for(var c=0;c<this.keys.length;c++){var d=this.keys[c];if(d===a)return this.values[c]=b,this}return this.keys.push(a),this.values.push(b),this}}]),a}(),p=window.MutationObserver||window.WebkitMutationObserver||window.MozMutationObserver||(m=l=function(){function a(){c(this,a),"undefined"!=typeof console&&null!==console&&(console.warn("MutationObserver is not supported by your browser."),console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content."))}return n(a,[{key:"observe",value:function(){}}]),a}(),l.notSupported=!0,m),q=window.getComputedStyle||function(a){var b=/(\-([a-z]){1})/g;return{getPropertyValue:function(c){"float"===c&&(c="styleFloat"),b.test(c)&&c.replace(b,function(a,b){return b.toUpperCase()});var d=a.currentStyle;return(null!=d?d[c]:void 0)||null}}},r=function(){function a(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];c(this,a),this.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null,resetAnimation:!0},this.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),this.vendors=["moz","webkit"],this.start=this.start.bind(this),this.resetAnimation=this.resetAnimation.bind(this),this.scrollHandler=this.scrollHandler.bind(this),this.scrollCallback=this.scrollCallback.bind(this),this.scrolled=!0,this.config=e(b,this.defaults),null!=b.scrollContainer&&(this.config.scrollContainer=document.querySelector(b.scrollContainer)),this.animationNameCache=new o,this.wowEvent=g(this.config.boxClass)}return n(a,[{key:"init",value:function(){this.element=window.document.documentElement,d(document.readyState,["interactive","complete"])?this.start():i(document,"DOMContentLoaded",this.start),this.finished=[]}},{key:"start",value:function(){var a=this;if(this.stopped=!1,this.boxes=[].slice.call(this.element.querySelectorAll("."+this.config.boxClass)),this.all=this.boxes.slice(0),this.boxes.length)if(this.disabled())this.resetStyle();else for(var b=0;b<this.boxes.length;b++){var c=this.boxes[b];this.applyStyle(c,!0)}if(this.disabled()||(i(this.config.scrollContainer||window,"scroll",this.scrollHandler),i(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live){var d=new p(function(b){for(var c=0;c<b.length;c++)for(var d=b[c],e=0;e<d.addedNodes.length;e++){var f=d.addedNodes[e];a.doSync(f)}});d.observe(document.body,{childList:!0,subtree:!0})}}},{key:"stop",value:function(){this.stopped=!0,j(this.config.scrollContainer||window,"scroll",this.scrollHandler),j(window,"resize",this.scrollHandler),null!=this.interval&&clearInterval(this.interval)}},{key:"sync",value:function(){p.notSupported&&this.doSync(this.element)}},{key:"doSync",value:function(a){if("undefined"!=typeof a&&null!==a||(a=this.element),1===a.nodeType){a=a.parentNode||a;for(var b=a.querySelectorAll("."+this.config.boxClass),c=0;c<b.length;c++){var e=b[c];d(e,this.all)||(this.boxes.push(e),this.all.push(e),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(e,!0),this.scrolled=!0)}}}},{key:"show",value:function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),h(a,this.wowEvent),this.config.resetAnimation&&(i(a,"animationend",this.resetAnimation),i(a,"oanimationend",this.resetAnimation),i(a,"webkitAnimationEnd",this.resetAnimation),i(a,"MSAnimationEnd",this.resetAnimation)),a}},{key:"applyStyle",value:function(a,b){var c=this,d=a.getAttribute("data-wow-duration"),e=a.getAttribute("data-wow-delay"),f=a.getAttribute("data-wow-iteration");return this.animate(function(){return c.customStyle(a,b,d,e,f)})}},{key:"resetStyle",value:function(){for(var a=0;a<this.boxes.length;a++){var b=this.boxes[a];b.style.visibility="visible"}}},{key:"resetAnimation",value:function(a){if(a.type.toLowerCase().indexOf("animationend")>=0){var b=a.target||a.srcElement;b.className=b.className.replace(this.config.animateClass,"").trim()}}},{key:"customStyle",value:function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a}},{key:"vendorSet",value:function(a,b){for(var c in b)if(b.hasOwnProperty(c)){var d=b[c];a[""+c]=d;for(var e=0;e<this.vendors.length;e++){var f=this.vendors[e];a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=d}}}},{key:"vendorCSS",value:function(a,b){for(var c=q(a),d=c.getPropertyCSSValue(b),e=0;e<this.vendors.length;e++){var f=this.vendors[e];d=d||c.getPropertyCSSValue("-"+f+"-"+b)}return d}},{key:"animationName",value:function(a){var b=void 0;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=q(a).getPropertyValue("animation-name")}return"none"===b?"":b}},{key:"cacheAnimationName",value:function(a){return this.animationNameCache.set(a,this.animationName(a))}},{key:"cachedAnimationName",value:function(a){return this.animationNameCache.get(a)}},{key:"scrollHandler",value:function(){this.scrolled=!0}},{key:"scrollCallback",value:function(){if(this.scrolled){this.scrolled=!1;for(var a=[],b=0;b<this.boxes.length;b++){var c=this.boxes[b];if(c){if(this.isVisible(c)){this.show(c);continue}a.push(c)}}this.boxes=a,this.boxes.length||this.config.live||this.stop()}}},{key:"offsetTop",value:function(a){for(;void 0===a.offsetTop;)a=a.parentNode;for(var b=a.offsetTop;a.offsetParent;)a=a.offsetParent,b+=a.offsetTop;return b}},{key:"isVisible",value:function(a){var b=a.getAttribute("data-wow-offset")||this.config.offset,c=this.config.scrollContainer&&this.config.scrollContainer.scrollTop||window.pageYOffset,d=c+Math.min(this.element.clientHeight,k())-b,e=this.offsetTop(a),f=e+a.clientHeight;return d>=e&&f>=c}},{key:"disabled",value:function(){return!this.config.mobile&&f(navigator.userAgent)}}]),a}();b["default"]=r,a.exports=b["default"]}); owl.carousel.min.js 0000644 00000127402 15100021164 0010275 0 ustar 00 /** * Owl Carousel v2.3.4 * Copyright 2013-2018 David Deutsch * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE */ !function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,checkVisibility:!0,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",slideTransition:"",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"pagelayer-owl-refresh",loadedClass:"pagelayer-owl-loaded",loadingClass:"pagelayer-owl-loading",rtlClass:"pagelayer-owl-rtl",responsiveClass:"pagelayer-owl-responsive",dragClass:"pagelayer-owl-drag",itemClass:"pagelayer-owl-item",stageClass:"pagelayer-owl-stage",stageOuterClass:"pagelayer-owl-stage-outer",grabClass:"pagelayer-owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g>0;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i,g-=1;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c<b;)d=f[c-1]||0,e=this._widths[this.relative(c)]+this.settings.margin,f.push(d+e*a);this._coordinates=f}},{filter:["width","items","settings"],run:function(){var a=this.settings.stagePadding,b=this._coordinates,c={width:Math.ceil(Math.abs(b[b.length-1]))+2*a,"padding-left":a||"","padding-right":a||""};this.$stage.css(c)}},{filter:["width","items","settings"],run:function(a){var b=this._coordinates.length,c=!this.settings.autoWidth,d=this.$stage.children();if(c&&a.items.merge)for(;b--;)a.css.width=this._widths[this.relative(b)],d.eq(b).css(a.css);else c&&(a.css.width=a.items.width,d.css(a.css))}},{filter:["items"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(a){a.current=a.current?this.$stage.children().index(a.current):0,a.current=Math.max(this.minimum(),Math.min(this.maximum(),a.current)),this.reset(a.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;c<d;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.$stage.children(".center").removeClass("center"),this.settings.center&&this.$stage.children().eq(this.current()).addClass("center")}}],e.prototype.initializeStage=function(){this.$stage=this.$element.find("."+this.settings.stageClass),this.$stage.length||(this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+">",{class:this.settings.stageClass}).wrap(a("<div/>",{class:this.settings.stageOuterClass})),this.$element.append(this.$stage.parent()))},e.prototype.initializeItems=function(){var b=this.$element.find(".pagelayer-owl-item");if(b.length)return this._items=b.get().map(function(b){return a(b)}),this._mergers=this._items.map(function(){return 1}),void this.refresh();this.replace(this.$element.children().not(this.$stage.parent())),this.isVisible()?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)},e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var a,b,c;a=this.$element.find("img"),b=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,c=this.$element.children(b).width(),a.length&&c<=0&&this.preloadAutoWidthImages(a)}this.initializeStage(),this.initializeItems(),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.isVisible=function(){return!this.settings.checkVisibility||this.$element.is(":visible")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b<c;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.isVisible()&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)<Math.abs(d.y)&&this.is("valid")||(b.preventDefault(),this.enter("dragging"),this.trigger("drag"))},this)))},e.prototype.onDragMove=function(a){var b=null,c=null,d=null,e=this.difference(this._drag.pointer,this.pointer(a)),f=this.difference(this._drag.stage.start,e);this.is("dragging")&&(a.preventDefault(),this.settings.loop?(b=this.coordinates(this.minimum()),c=this.coordinates(this.maximum()+1)-b,f.x=((f.x-b)%c+c)%c+b):(b=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),c=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),d=this.settings.pullDrag?-1*e.x/5:0,f.x=Math.max(Math.min(f.x,b+d),c+d)),this._drag.stage.current=f,this.animate(f.x))},e.prototype.onDragEnd=function(b){var d=this.difference(this._drag.pointer,this.pointer(b)),e=this._drag.stage.current,f=d.x>0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var e=-1,f=30,g=this.width(),h=this.coordinates();return this.settings.freeDrag||a.each(h,a.proxy(function(a,i){return"left"===c&&b>i-f&&b<i+f?e=a:"right"===c&&b>i-g-f&&b<i-g+f?e=a+1:this.op(b,"<",i)&&this.op(b,">",h[a+1]!==d?h[a+1]:i-g)&&(e="left"===c?a+1:a),-1===e},this)),this.settings.loop||(this.op(b,">",h[this.minimum()])?e=b=this.minimum():this.op(b,"<",h[this.maximum()])&&(e=b=this.maximum())),e},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"+(this.settings.slideTransition?" "+this.settings.slideTransition:"")}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){(a=this.normalize(a))!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){if(b=this._items.length)for(c=this._items[--b].width(),d=this.$element.width();b--&&!((c+=this._items[b].width()+this.settings.margin)>d););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2==0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=-1*f*g),a=c+e,(d=((a-h)%g+g)%g+h)!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.isVisible()&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){(a=this.normalize(a,!0))!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),!1!==this.settings.responsive&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.remove(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a<c;case">":return d?a<c:a>c;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&-1!==a.namespace.indexOf("owl")?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.pagelayerOwlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.pagelayerOwlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.isVisible(),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.isVisible()!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("pagelayer-owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type)){var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&-1*e||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);for(c.lazyLoadEager>0&&(e+=c.lazyLoadEager,c.loop&&(g-=c.lazyLoadEager,e++));f++<e;)this.load(h/2+this._core.relative(g)),h&&a.each(this._core.clones(this._core.relative(g)),i),g++}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={lazyLoad:!1,lazyLoadEager:0},e.prototype.load=function(c){var d=this._core.$stage.children().eq(c),e=d&&d.find(".pagelayer-owl-lazy");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src")||f.attr("data-srcset");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):f.is("source")?f.one("load.owl.lazy",a.proxy(function(){this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("srcset",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},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.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(c){this._core=c,this._previousHeight=null,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"===a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._intervalId=null;var d=this;a(b).on("load",function(){d._core.settings.autoHeight&&d.update()}),a(b).resize(function(){d._core.settings.autoHeight&&(null!=d._intervalId&&clearTimeout(d._intervalId),d._intervalId=setTimeout(function(){d.update()},250))})};e.Defaults={autoHeight:!1,autoHeightClass:"pagelayer-owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.settings.lazyLoad,e=this._core.$stage.children().toArray().slice(b,c),f=[],g=0;a.each(e,function(b,c){f.push(a(c).height())}),g=Math.max.apply(null,f),g<=1&&d&&this._previousHeight&&(g=this._previousHeight),this._previousHeight=g,this._core.$stage.parent().height(g).addClass(this._core.settings.autoHeightClass)},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.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .pagelayer-owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".pagelayer-owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".pagelayer-owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?"width:"+c.width+"px;height:"+c.height+"px;":"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(c){e='<div class="pagelayer-owl-video-play-icon"></div>',d=k.lazyLoad?a("<div/>",{class:"pagelayer-owl-video-tn "+j,srcType:c}):a("<div/>",{class:"pagelayer-owl-video-tn",style:"opacity:1;background-image:url("+c+")"}),b.after(d),b.after(e)};if(b.wrap(a("<div/>",{class:"pagelayer-owl-video-wrapper",style:g})),this._core.settings.lazyLoad&&(i="data-src",j="pagelayer-owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".pagelayer-owl-video-frame").remove(),this._playing.removeClass("pagelayer-owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),c=a('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>'),c.attr("height",h),c.attr("width",g),"youtube"===f.type?c.attr("src","//www.youtube.com/embed/"+f.id+"?autoplay=1&rel=0&v="+f.id):"vimeo"===f.type?c.attr("src","//player.vimeo.com/video/"+f.id+"?autoplay=1"):"vzaar"===f.type&&c.attr("src","//view.vzaar.com/"+f.id+"/player?autoplay=true"),a(c).wrap('<div class="pagelayer-owl-video-frame" />').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('<div class="'+this._core.settings.dotClass+'">'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")},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:['<span aria-label="Previous">‹</span>','<span aria-label="Next">›</span>'],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("<div>").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('<button role="button">').addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","button",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d,e;e=this._core.settings;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)"$relative"===b&&e.navContainer?this._controls[b].html(""):this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if("page"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||"page"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a<e;a++){if(b>=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass("disabled",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass("disabled",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join("")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass("active"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Navigation=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(c){c.namespace&&"URLHash"===this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!c)return;this._hashes[c]=b.content}},this),"changed.owl.carousel":a.proxy(function(c){if(c.namespace&&"position"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+" "+h.join(f+" ")+f).split(" "),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a("<support>").get(0).style,h="Webkit Moz O ms".split(" "),i={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},j={csstransforms:function(){return!!e("transform")},csstransforms3d:function(){return!!e("perspective")},csstransitions:function(){return!!e("transition")},cssanimations:function(){return!!e("animation")}};j.csstransitions()&&(a.support.transition=new String(f("transition")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f("animation")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f("transform")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document); base-64.js 0000644 00000031022 15100021164 0006227 0 ustar 00 /* * [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 root = typeof window === 'object' ? window : {}; var NODE_JS = false; if (NODE_JS) { root = global; } var COMMON_JS = !root.HI_BASE64_NO_COMMON_JS && typeof module === 'object' && module.exports; var AMD = typeof define === 'function' && define.amd; var BASE64_ENCODE_CHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); var BASE64_DECODE_CHAR = { '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 }; var utf8ToBytes = function (str) { var bytes = []; for (var i = 0; i < str.length; i++) { var c = str.charCodeAt(i); if (c < 0x80) { bytes[bytes.length] = c; } else if (c < 0x800) { bytes[bytes.length] = 0xc0 | (c >> 6); bytes[bytes.length] = 0x80 | (c & 0x3f); } else if (c < 0xd800 || c >= 0xe000) { bytes[bytes.length] = 0xe0 | (c >> 12); bytes[bytes.length] = 0x80 | ((c >> 6) & 0x3f); bytes[bytes.length] = 0x80 | (c & 0x3f); } else { c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff)); bytes[bytes.length] = 0xf0 | (c >> 18); bytes[bytes.length] = 0x80 | ((c >> 12) & 0x3f); bytes[bytes.length] = 0x80 | ((c >> 6) & 0x3f); bytes[bytes.length] = 0x80 | (c & 0x3f); } } return bytes; }; var decodeAsBytes = function (base64Str) { var v1, v2, v3, v4, bytes = [], index = 0, length = base64Str.length; if (base64Str.charAt(length - 2) === '=') { length -= 2; } else if (base64Str.charAt(length - 1) === '=') { length -= 1; } // 4 char to 3 bytes for (var i = 0, count = length >> 2 << 2; i < count;) { v1 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; v2 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; v3 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; v4 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; bytes[index++] = (v1 << 2 | v2 >>> 4) & 255; bytes[index++] = (v2 << 4 | v3 >>> 2) & 255; bytes[index++] = (v3 << 6 | v4) & 255; } // remain bytes var remain = length - count; if (remain === 2) { v1 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; v2 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; bytes[index++] = (v1 << 2 | v2 >>> 4) & 255; } else if (remain === 3) { v1 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; v2 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; v3 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; bytes[index++] = (v1 << 2 | v2 >>> 4) & 255; bytes[index++] = (v2 << 4 | v3 >>> 2) & 255; } return bytes; }; var encodeFromBytes = function (bytes) { var v1, v2, v3, base64Str = '', length = bytes.length; for (var i = 0, count = parseInt(length / 3) * 3; i < count;) { v1 = bytes[i++]; v2 = bytes[i++]; v3 = bytes[i++]; base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] + BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] + BASE64_ENCODE_CHAR[v3 & 63]; } // remain char var remain = length - count; if (remain === 1) { v1 = bytes[i]; base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4) & 63] + '=='; } else if (remain === 2) { v1 = bytes[i++]; v2 = bytes[i]; base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] + BASE64_ENCODE_CHAR[(v2 << 2) & 63] + '='; } return base64Str; }; var btoa = root.btoa, atob = root.atob, utf8Base64Encode, utf8Base64Decode; if (NODE_JS) { } else if (!btoa) { btoa = function (str) { var v1, v2, v3, base64Str = '', length = str.length; for (var i = 0, count = parseInt(length / 3) * 3; i < count;) { v1 = str.charCodeAt(i++); v2 = str.charCodeAt(i++); v3 = str.charCodeAt(i++); base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] + BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] + BASE64_ENCODE_CHAR[v3 & 63]; } // remain char var remain = length - count; if (remain === 1) { v1 = str.charCodeAt(i); base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4) & 63] + '=='; } else if (remain === 2) { v1 = str.charCodeAt(i++); v2 = str.charCodeAt(i); base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] + BASE64_ENCODE_CHAR[(v2 << 2) & 63] + '='; } return base64Str; }; utf8Base64Encode = function (str) { var v1, v2, v3, base64Str = '', bytes = utf8ToBytes(str), length = bytes.length; for (var i = 0, count = parseInt(length / 3) * 3; i < count;) { v1 = bytes[i++]; v2 = bytes[i++]; v3 = bytes[i++]; base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] + BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] + BASE64_ENCODE_CHAR[v3 & 63]; } // remain char var remain = length - count; if (remain === 1) { v1 = bytes[i]; base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4) & 63] + '=='; } else if (remain === 2) { v1 = bytes[i++]; v2 = bytes[i]; base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] + BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] + BASE64_ENCODE_CHAR[(v2 << 2) & 63] + '='; } return base64Str; }; atob = function (base64Str) { var v1, v2, v3, v4, str = '', length = base64Str.length; if (base64Str.charAt(length - 2) === '=') { length -= 2; } else if (base64Str.charAt(length - 1) === '=') { length -= 1; } // 4 char to 3 bytes for (var i = 0, count = length >> 2 << 2; i < count;) { v1 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; v2 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; v3 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; v4 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; str += String.fromCharCode((v1 << 2 | v2 >>> 4) & 255) + String.fromCharCode((v2 << 4 | v3 >>> 2) & 255) + String.fromCharCode((v3 << 6 | v4) & 255); } // remain bytes var remain = length - count; if (remain === 2) { v1 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; v2 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; str += String.fromCharCode((v1 << 2 | v2 >>> 4) & 255); } else if (remain === 3) { v1 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; v2 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; v3 = BASE64_DECODE_CHAR[base64Str.charAt(i++)]; str += String.fromCharCode((v1 << 2 | v2 >>> 4) & 255) + String.fromCharCode((v2 << 4 | v3 >>> 2) & 255); } return str; }; utf8Base64Decode = function (base64Str) { var str = '', bytes = decodeAsBytes(base64Str), length = bytes.length; var i = 0, followingChars = 0, b, c; while (i < length) { b = bytes[i++]; if (b <= 0x7F) { str += String.fromCharCode(b); continue; } else if (b > 0xBF && b <= 0xDF) { c = b & 0x1F; followingChars = 1; } else if (b <= 0xEF) { c = b & 0x0F; followingChars = 2; } else if (b <= 0xF7) { c = b & 0x07; followingChars = 3; } else { throw 'not a UTF-8 string'; } for (var j = 0; j < followingChars; ++j) { b = bytes[i++]; if (b < 0x80 || b > 0xBF) { throw 'not a UTF-8 string'; } c <<= 6; c += b & 0x3F; } if (c >= 0xD800 && c <= 0xDFFF) { throw 'not a UTF-8 string'; } if (c > 0x10FFFF) { throw 'not a UTF-8 string'; } if (c <= 0xFFFF) { str += String.fromCharCode(c); } else { c -= 0x10000; str += String.fromCharCode((c >> 10) + 0xD800); str += String.fromCharCode((c & 0x3FF) + 0xDC00); } } return str; }; } else { utf8Base64Encode = function (str) { var result = ''; for (var i = 0; i < str.length; i++) { var charcode = str.charCodeAt(i); if (charcode < 0x80) { result += String.fromCharCode(charcode); } else if (charcode < 0x800) { result += String.fromCharCode(0xc0 | (charcode >> 6)) + String.fromCharCode(0x80 | (charcode & 0x3f)); } else if (charcode < 0xd800 || charcode >= 0xe000) { result += String.fromCharCode(0xe0 | (charcode >> 12)) + String.fromCharCode(0x80 | ((charcode >> 6) & 0x3f)) + String.fromCharCode(0x80 | (charcode & 0x3f)); } else { charcode = 0x10000 + (((charcode & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff)); result += String.fromCharCode(0xf0 | (charcode >> 18)) + String.fromCharCode(0x80 | ((charcode >> 12) & 0x3f)) + String.fromCharCode(0x80 | ((charcode >> 6) & 0x3f)) + String.fromCharCode(0x80 | (charcode & 0x3f)); } } return btoa(result); }; utf8Base64Decode = function (base64Str) { var tmpStr = atob(base64Str.trim('=').replace(/-/g, '+').replace(/_/g, '/')); if (!/[^\x00-\x7F]/.test(tmpStr)) { return tmpStr; } var str = '', i = 0, length = tmpStr.length, followingChars = 0, b, c; while (i < length) { b = tmpStr.charCodeAt(i++); if (b <= 0x7F) { str += String.fromCharCode(b); continue; } else if (b > 0xBF && b <= 0xDF) { c = b & 0x1F; followingChars = 1; } else if (b <= 0xEF) { c = b & 0x0F; followingChars = 2; } else if (b <= 0xF7) { c = b & 0x07; followingChars = 3; } else { throw 'not a UTF-8 string'; } for (var j = 0; j < followingChars; ++j) { b = tmpStr.charCodeAt(i++); if (b < 0x80 || b > 0xBF) { throw 'not a UTF-8 string'; } c <<= 6; c += b & 0x3F; } if (c >= 0xD800 && c <= 0xDFFF) { throw 'not a UTF-8 string'; } if (c > 0x10FFFF) { throw 'not a UTF-8 string'; } if (c <= 0xFFFF) { str += String.fromCharCode(c); } else { c -= 0x10000; str += String.fromCharCode((c >> 10) + 0xD800); str += String.fromCharCode((c & 0x3FF) + 0xDC00); } } return str; }; } var encode = function (str, asciiOnly) { var notString = typeof(str) != 'string'; if (notString && str.constructor === root.ArrayBuffer) { str = new Uint8Array(str); } if (notString) { return encodeFromBytes(str); } else { if (!asciiOnly && /[^\x00-\x7F]/.test(str)) { return utf8Base64Encode(str); } else { return btoa(str); } } }; var decode = function (base64Str, asciiOnly) { return asciiOnly ? atob(base64Str) : utf8Base64Decode(base64Str); }; var exports = { encode: encode, decode: decode, atob: atob, btoa: btoa }; decode.bytes = decodeAsBytes; decode.string = decode; root.pagelayer_Base64 = exports; })(); pagelayer-editor.js 0000644 00000627000 15100021164 0010332 0 ustar 00 /* PAGELAYER http://pagelayer.com/ (c) Pagelayer Team */ pagelayer = { $: jQuery, $$ : function(select){ return jQuery(select, window.parent.document); }, gDocument : jQuery(window.parent.document).add(document), p : this, copy_selected: '', mouse: {x: -1, y: -1}, history_action : true, global_render : true, history_lastTime : new Date(), props_ref : {}, pro_txt : '', loaded : 0, post_status : '', el: {},// All elements data } var pagelayer_history_obj = {}, pagelayer_revision_obj = {}; var pagelayer_add_section_data = {}; // Console error manager window.onerror = function (msg, url, lineNo, columnNo, error) { if (typeof pagelayer_doc_width === 'undefined') { var test_giver = -1; jQuery.ajax({ url: pagelayer_url+'/js/givejs.php?test=1', type: "GET", dataType: "text", success: function(data){ if(data != 1){ return; } test_giver = 1; }, complete: function(data){ jQuery.ajax({ type: "POST", url: pagelayer_ajax_url+"&action=pagelayer_set_jscss_giver", data: { pagelayer_nonce: pagelayer_ajax_nonce, set : test_giver }, error: function(errorThrown){ console.log("Error saving giver data"); console.log(errorThrown); } }); } }); } var string = msg.toLowerCase(); var substring = "script error"; if(pagelayer.loaded > 0){ return; } if (string.indexOf(substring) > -1){ return; } if(url.indexOf('pagelayer')=== -1){ return; } var message = [ "Message: " + msg, "\r\n<br>URL: " + url, "\r\n<br>Line: " + lineNo, "\r\n<br>Column: "+ columnNo, "\r\n<br>Error object: " + error ].join('\n'); //alert("Script Error: See browser console for details"); pagelayer.$$('.pagelayer-errorBox-content').html(message); pagelayer.$$('.pagelayer-errorBox-close').on('click', function(){ pagelayer.$$('.pagelayer-errorBox').fadeOut(); }); pagelayer.$$('.pagelayer-errorBox').fadeIn(); return false; }; // Lets start jQuery(document).ready(pagelayer_start); // Function to load the codes function pagelayer_start(){ pagelayer.loading = 1; console.log('['+pagelayer_brand+'] Starting Pagelayer'); // Prevent the click Insite editor pagelayer_prevent_click(); // Set the title of the parent window try{ pagelayer.$$('head').append(pagelayer.$('title')[0].outerHTML); }catch(e){}; pagelayer.blank_img = pagelayer_url+'/images/default-image.png'; pagelayer_shortcodes['pl_inner_row'] = JSON.parse(JSON.stringify(pagelayer_shortcodes['pl_row'])); pagelayer_shortcodes['pl_inner_row']['name'] = 'Inner Row'; pagelayer_groups['grid'].push('pl_inner_row'); // Removing post props options pagelayer_setting_post_props(); // Make the Topbar pagelayer_bottombar(); // Make the Leftbar pagelayer_leftbar(); // Make widget list toolbar pagelayer_create_widget_tooltip(); // Add widget section pagelayer_add_widget(); // Setup the ELPD pagelayer_elpd_setup(); // Dump the data we have pagelayer_element_dump_data(); // Setup the properties of the elements pagelayer_element_setup(); // An image to show for drag jQuery('body').append('<img src="'+pagelayer_url+'/images/drag-ghost.png" class="pagelayer-drag-show" />'); // Setup the grid drag pagelayer_setup_drag(); // Set left bar draggable pagelayer_make_leftbar_movable(); // Set to desktop pagelayer_set_screen_mode('desktop'); // Create list of fonts pagelayer_fonts = pagelayer_l('pl_fonts_list'); // Set up right click pagelayer_left_click(); pagelayer_right_click(); // Setup pagelayer history handle pagelayer_history_obj['action_data'] = []; pagelayer_history_setup(true); // Make a quick access of the props pagelayer_make_props_ref(); // Post props exported defaults need to be updated pagelayer_set_exported_defaults(); // Do any actions here pagelayer_trigger_action('pagelayer_setup_history'); // Editor Tooltips pagelayer_tooltip_setup(); // Load Fonts for(var x in pagelayer_loaded_icons){ var item = pagelayer_loaded_icons[x]; jQuery.when( pagelayer_get_stored_data(pagelayer_url+'/fonts/'+item+'.json', pagelayer_ver) ).then(function(){ pagelayer_icons[item] = JSON.parse(pagelayer_get_stored_data(pagelayer_url+'/fonts/'+item+'.json', pagelayer_ver)); }); }; // Set row-option top zero(0) of the first row pagelayer_set_row_option_position(); // Just the txt pagelayer.pro_txt = pagelayer_pro_txt; // Open post props on document load pagelayer.$$('.pagelayer-settings').click(); // Open post props and Make elements editable to edit post props data pagelayer_setup_props_editable(); // Make elements editable jQuery(pagelayer_editable+' [pagelayer-editable]').attr('contenteditable', 'true'); // Use text widget for search widget pagelayer_search_widgets(); // Hide the loader pagelayer_loader_hide(); } // Post props attribute function pagelayer_post_props_atts(prop, val, temp){ val = val || null; temp = temp || false; var proEle = jQuery(pagelayer_editable+' .pagelayer-post_props.pagelayer-ele').first(); if(!pagelayer_empty(temp)){ if(val === null){ return pagelayer_get_tmp_att(proEle, prop); } // Set the temp property as well pagelayer_set_tmp_atts(proEle, prop, val); return true; } if(val === null){ return pagelayer_get_att(proEle, prop); } // Set the property as well pagelayer_set_atts(proEle, prop, val); return true; } // Open post props and Make elements editable to edit post props data function pagelayer_setup_props_editable(){ jQuery('[pagelayer-props-editable]').each(function(){ var jEle = jQuery(this); // Skip element under the editable area if (jEle.closest(pagelayer_editable).length > 0) { return; } var prop = jEle.attr('pagelayer-props-editable'); // Make editable jEle.attr('contenteditable', 'true'); // Reverse setup the event jEle.on('focus', function(){ // Set the property as well var data = pagelayer_post_props_atts(prop); jEle.html(data); }); // Reverse setup the event jEle.on('input', function(){ var val = pagelayer_trim(jEle.html()); // Set the property as well pagelayer_post_props_atts(prop, val); // Update the property var input = pagelayer.$$('[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); } } }); }); } // Prevent the click Insite editor function pagelayer_prevent_click(){ jQuery(document).on('submit', function(event){ var target = jQuery(event.target); if (target.closest(pagelayer_editable).length < 1) { event.preventDefault(); } }); jQuery(document).on('click', function(event){ var target = jQuery(event.target); if (target.closest('a').length > 0 && target.closest(pagelayer_editable).length < 1) { event.preventDefault() } }); } // Removing post props options from the editor function pagelayer_setting_post_props(){ if(pagelayer_empty(pagelayer_post_categories)){ delete pagelayer_shortcodes.pl_post_props.postCategory; } if(pagelayer_empty(pagelayer_post_tags)){ delete pagelayer_shortcodes.pl_post_props.postTags; } if(pagelayer_empty(pagelayer_shortcodes.pl_post_props.pageParent.post_parent.list)){ delete pagelayer_shortcodes.pl_post_props.pageParent; } if(pagelayer_post.post_type != 'post'){ delete pagelayer_shortcodes.pl_post_props.params.post_sticky; } if(pagelayer_empty(pagelayer_post_type_features['comments'])){ delete pagelayer_shortcodes.pl_post_props.postDiscussion.comment_status; } if(pagelayer_empty(pagelayer_post_type_features['trackbacks'])){ delete pagelayer_shortcodes.pl_post_props.postDiscussion.ping_status; } if(pagelayer_empty(pagelayer_shortcodes.pl_post_props.postDiscussion)){ delete pagelayer_shortcodes.pl_post_props.postDiscussion; } if(pagelayer_empty(pagelayer_post_type_features['excerpt'])){ delete pagelayer_shortcodes.pl_post_props.postExcerpt; } if(pagelayer_empty(pagelayer_post_type_features['thumbnail'])){ delete pagelayer_shortcodes.pl_post_props.postFeaturedImage; } if(pagelayer_empty(pagelayer_post_type_features['author'])){ delete pagelayer_shortcodes.pl_post_props.params.post_author; } } // Set the default values of all default exported codes function pagelayer_set_exported_defaults(){ // Set defaults for the exported variety if(pagelayer_empty(pagelayer_default_params)){ return; } for(var tag in pagelayer_default_params){ for(var x in pagelayer_default_params[tag]){ if(x in pagelayer.props_ref[tag]){ pagelayer.props_ref[tag][x]['default'] = pagelayer_default_params[tag][x]; } } } } // Do pagelayer Dirty function pagelayer_do_dirty(jEle){ pagelayer_isDirty = true; if (!window.onbeforeunload) { window.onbeforeunload = function(){ return true; }; } pagelayer_trigger_action('pagelayer_do_dirty', [jEle]); } function pagelayer_do_undirty(){ pagelayer_isDirty = false; if (window.onbeforeunload) { window.onbeforeunload = null; } } // Executes when pagelayer is fully loaded function pagelayer_loader_hide(){ var inner = pagelayer.$$('.pagelayer-percent'); inner.attr('loaded', 1); var w = parseInt(inner.text()); var t = setInterval(function() { w = w + 1; inner.html(w +'<sup>%</sup>'); if (w >= 100){ clearInterval(t); w = 0; var loaderWrapper = pagelayer.$$('#pagelayer-loader-wrapper'); loaderWrapper.addClass('pagelayer-loaded'); loaderWrapper.animate({opacity:0}, function(){ loaderWrapper.remove(); }); } }, 1); pagelayer.loaded = 1; } // Set row-option top zero(0) of the first row function pagelayer_set_row_option_position(){ try{ if(jQuery(pagelayer_editable).offset().top < 20){ jQuery(pagelayer_editable).addClass('pagelayer-row-option-zero'); } }catch(e){ console.log(pagelayer_editable+" not found and hence Pagelayer wont work on this page !"); } } // The jQuery Object of the ELPD var pagelayer_elpd; // Store data values function pagelayer_get_stored_data(url, version){ var name = 'pagelayer_'+url; var data = {}; var force = false; // Try to parse the data try{ data = JSON.parse(localStorage.getItem(name)); if(data['version'] !== version){ force = true; } }catch(e){ force = true; } // Force download if(force){ return jQuery.ajax({ url: url, type: 'GET', dataType: 'text', success:function(newData){ var data = {}; data['version'] = version; data['val'] = newData; localStorage.setItem(name, JSON.stringify(data)); } }); } return data['val']; } function pagelayer_closest_corner(jEle){ var corners = []; var w = jEle.outerWidth(); var h = jEle.outerHeight(); var topleft = jEle.offset(); // 0 - Top Left corners.push(topleft); // 1 - Top Right corners.push({top: topleft.top, left: topleft.left+w}); // 2 - Bottom Right corners.push({top: topleft.top+h, left: topleft.left+w}); // 3 - Bottom Left corners.push({top: topleft.top+h, left: topleft.left}); //console.log(corners); // Calculate the closest to the mouse var distances = {}; for(var c in corners){ var dist = Math.hypot(pagelayer.mouse.x - corners[c].left, pagelayer.mouse.y - corners[c].top); distances[c] = dist; } //console.log(distances); var corner = Object.keys(distances).sort(function(a,b){return distances[a]-distances[b]})[0]; //console.log(corner); return corner; }; // Make left bar draggable function pagelayer_make_leftbar_movable(){ var pl_iframe = pagelayer.$$('.pagelayer-iframe'), pl_leftbar = pagelayer.$$('.pagelayer-leftbar-table'); // On mouse down in pagelayer-topbar-holder pagelayer.$$('.pagelayer-topbar-mover').on('mousedown', function(e){ e = e || window.event; e.preventDefault(); // Get leftbar position var orig_eleX = pl_leftbar.offset().left; var orig_eleY = pl_leftbar.offset().top; // Get the mouse cursor position at startup: var posX = e.clientX; var posY = e.clientY; // The variable needs to be empty. var newMethod = '', change = true; var leftbar_mousemove = function(e){ e = e || window.event; if(change){ // Add class to leftbar pl_leftbar.addClass('pagelayer-leftbar-moving'); // Add left-right overlay pl_iframe.before('<div class="pagelayer-leftbar-move pagelayer-moveto-left"></div>'); pl_iframe.after('<div class="pagelayer-leftbar-move pagelayer-moveto-right"></div>'); pagelayer.$$('body').addClass('pagelayer-overflow-hidden'); change = false; } // calculate the new cursor position and set the element left-top position var top = orig_eleY + (e.clientY - posY); var left = orig_eleX + (e.clientX - posX); // set the element's new position: pl_leftbar.css({'top': top +'px','left': left +'px'}); pagelayer.$$('.pagelayer-leftbar-toggle').hide(); // Make a copy of new method var _newMethod = newMethod; newMethod = ''; // Get near by corner var offleft = pl_iframe.offset().left; if(offleft + 100 > e.clientX){ newMethod = 'before'; }else if(offleft+pl_iframe.outerWidth()- 100 < e.clientX){ newMethod = 'after'; } if(_newMethod != newMethod){ pagelayer.$$('.pagelayer-leftbar-move').css({'width' :'', 'opacity': '0.33'}); if(newMethod == 'after'){ pagelayer.$$('.pagelayer-moveto-right').animate({'width' :'60px', 'opacity': '0.66'}, 200); pl_leftbar.addClass('pagelayer-rightbar'); }else if(newMethod == 'before'){ pagelayer.$$('.pagelayer-moveto-left').animate({'width' : '60px', 'opacity': '0.66'}, 200); pl_leftbar.removeClass('pagelayer-rightbar'); } } }; var leftbar_mouseup = function(e){ // Remove events pagelayer.gDocument.off('mousemove', leftbar_mousemove); pagelayer.gDocument.off('mouseup', leftbar_mouseup); // Remove class to leftbar pagelayer.$$('.pagelayer-leftbar-move').remove(); var windowHeight = jQuery(window).height(); if(pl_leftbar.offset().top < 0){ pl_leftbar.css({'top': '10px'}); }else if( (windowHeight - e.clientY) < 10){ pl_leftbar.css({'top': ''+windowHeight - 40+'px'}); } if( !pagelayer_empty(newMethod)){ pl_leftbar.removeClass('pagelayer-leftbar-moving'); pl_leftbar.removeAttr('style'); pagelayer.$$('.pagelayer-leftbar-toggle').show(); pagelayer.$$('body').removeClass('pagelayer-overflow-hidden'); pl_iframe[newMethod](pl_leftbar); } // make change true change = true; }; pagelayer.gDocument.on('mouseup', leftbar_mouseup); pagelayer.gDocument.on('mousemove', leftbar_mousemove); }); } // Make rows and cols draggable function pagelayer_setup_drag(){ // The object to show as drag var shower = jQuery('.pagelayer-drag-show'); // Delete any prospect var clear_prospect = function(){ jQuery('.pagelayer-drag-prospect').remove(); // Shows the wrap as active jQuery('.pagelayer-drag-ele-hover').removeClass('pagelayer-drag-ele-hover'); } // Reset the complete drag stuff var reset_dragging = function(){ pagelayer.dragging = false; pagelayer.drag_is_new = false; pagelayer.drag_mouse = {x: 0, y: 0}; reset_on_drag(); } // Reset the element on you were last var reset_on_drag = function(){ pagelayer.drag_closest = false; pagelayer.drag_closest_corner = null; } // Scroll by var scrollPx = 7; var scrollDist = 30; // If we are too close too the window edge, then scroll var handle_scroll = function(e){ var windowHeight = jQuery(window).height(); var windowWidth = jQuery(window).width(); // Are we to close to the top or bottom if(e.clientY < scrollDist){ window.scrollBy(0, -scrollPx); }else if((windowHeight - e.clientY) < scrollDist){ window.scrollBy(0, scrollPx); } // Are we to close to the top or bottom if(e.clientX < scrollDist){ window.scrollBy(-scrollPx, 0); }else if((windowWidth - e.clientX) < scrollDist){ window.scrollBy(scrollPx, 0); } } // SET the values reset_dragging(); var ondragover = function(e) { //console.log(e); pagelayer.mouse.x = parseInt(e.pageX); pagelayer.mouse.y = parseInt(e.pageY); //console.log(pagelayer.mouse); // Are we dragging ? if(pagelayer.dragging){ //console.log(e); e.preventDefault(); //e.stopPropagation(); // The wrap of the element being dragged var wrap = pagelayer.dragging; // New addition var is_new = pagelayer.drag_is_new; var ele; var tag = pagelayer_tag(wrap); var id = pagelayer_id(wrap); // If existing element then add we are dragging if(!is_new){ // Start Dragging if(!wrap.hasClass('pagelayer-is-dragging')){ wrap.addClass('pagelayer-is-dragging'); } //shower.hide(); ele = document.elementFromPoint(e.clientX, e.clientY); //console.log(ele); // Drag the show object //shower.show(); //var offset = {top: (e.pageY-10)+'px', left: (e.pageX-10)+'px'} //shower.css(offset); }else{ ele = document.elementFromPoint(e.clientX, e.clientY); } //console.log(e); // Have we moved more than 5px; var dist = Math.hypot(pagelayer.mouse.x - pagelayer.drag_mouse.x, pagelayer.mouse.y - pagelayer.drag_mouse.y); //console.log(dist); /*if(dist && dist < 5){ return false; }*/ // Handle the scroll handle_scroll(e); // Find the closest wrap var onWrap; // If we are a column, we can be over another column or row if(tag == 'pl_col'){ // Prevent column in inner-row and it's columns, if the draged column have inner-rows if(wrap.find('.pagelayer-wrap-inner-row').length > 0){ onWrap = jQuery(ele).closest('.pagelayer-wrap-col,.pagelayer-wrap-row'); var innerRow = onWrap.closest(pagelayer_editable +' .pagelayer-wrap-inner-row'); if( onWrap.length < 1 || innerRow.length > 0){ onWrap = jQuery(innerRow).closest('.pagelayer-wrap-col,.pagelayer-wrap-row'); } }else{ onWrap = jQuery(ele).closest('.pagelayer-wrap-col,.pagelayer-wrap-row,.pagelayer-wrap-inner-row'); } //console.log(pagelayer_id(onWrap)); // If we are a row, we can be over another row or a column }else if(tag == 'pl_row'){ onWrap = jQuery(ele).closest('.pagelayer-wrap-row'); //console.log(pagelayer_id(onWrap)); // For inner row we restrict to 1 level only }else if(tag == 'pl_inner_row'){ var ele_wrap = jQuery(ele).parents('.pagelayer-wrap-col'); if( (ele_wrap.length == 1 && !jQuery(ele).hasClass('pagelayer-wrap-col')) || (ele_wrap.length == 0 && jQuery(ele).hasClass('pagelayer-wrap-col')) ){ onWrap = jQuery(ele).closest('.pagelayer-wrap-ele,.pagelayer-wrap-col,.pagelayer-wrap-inner-row'); }else{ onWrap = jQuery(ele).closest('.pagelayer-wrap-inner-row'); } // For every other element, we can be over a col or ele }else{ onWrap = jQuery(ele).closest('.pagelayer-wrap-ele,.pagelayer-wrap-col,.pagelayer-wrap-inner-row'); // If we are inside the same widget tag // We are allowing for now, hence the following is commented /*var sameTag = onWrap.closest(pagelayer_editable +' [pagelayer-tag="'+tag+'"]'); if(sameTag.length > 0){ onWrap = sameTag.closest('.pagelayer-wrap-ele'); }*/ // Is prevent to go inside any widget? if('prevent_inside' in pagelayer_shortcodes[tag] && !pagelayer_empty(pagelayer_shortcodes[tag]['prevent_inside'])){ var preTags = pagelayer_shortcodes[tag]['prevent_inside']; var prevent_inside = false; var preEle = onWrap; if(typeof preTags === 'string'){ preTags = [preTags]; } for(var toFind in preTags){ preEle = onWrap.closest(pagelayer_editable +' [pagelayer-tag="'+preTags[toFind]+'"]'); if (preEle.length > 0) { prevent_inside = true; break; } } // If we find if(prevent_inside){ onWrap = preEle.closest('.pagelayer-wrap-ele'); } } var widGroup = onWrap.closest('.pagelayer-ele-widget-group'); // If we are inside the group widget if(widGroup.length > 0 && widGroup.closest(pagelayer_editable).length > 0){ var wGroupTag = pagelayer_tag(widGroup); var use_inside = false; // If defined use inside only if('use_inside' in pagelayer_shortcodes[tag] && !pagelayer_empty(pagelayer_shortcodes[tag]['use_inside'])){ var inTags = pagelayer_shortcodes[tag]['use_inside']; if(typeof inTags === 'string'){ inTags = [inTags]; } for(var toFind in inTags){ if (wGroupTag == inTags[toFind]) { use_inside = true; } } } // If we find nothing if(!use_inside){ onWrap = widGroup.parent('.pagelayer-wrap-ele'); } } } //console.log(onWrap); // If we find nothing if(pagelayer_empty(onWrap) || onWrap.length < 1){ clear_prospect();// Clear existing prospects reset_on_drag();// Also reset the last on item return false; } /*// If the columns more than 12 inside the row then return - As of now not enabled the below code if(tag == 'pl_col'){ var _onTag = pagelayer_tag(onWrap); var colEles; // Is on col if(_onTag == 'pl_col'){ colEles = onWrap.closest('.pagelayer-row-holder').children('.pagelayer-ele-wrap'); }else{ colEles = onWrap.find('.pagelayer-row-holder').first().children('.pagelayer-ele-wrap'); } // If the columns more than 12 if(colEles.length >= 12){ return false; } }*/ // Get the ID var onId = pagelayer_id(onWrap); var onEle = pagelayer_ele_by_id(onId); // Do we have a parent ? var have_parent = function(Ele){ var pOnId = pagelayer_get_parent(Ele); if(pagelayer_empty(pOnId) || tag == 'pl_col'){ return; } onId = pOnId; onEle = pagelayer_ele_by_id(pOnId); onWrap = pagelayer_wrap_by_id(pOnId); have_parent(onEle); } // Do we have a parent ? have_parent(onEle); var changed = false; // Was it the same ID like the one we were on before if(pagelayer.drag_closest != onId){ pagelayer.drag_closest = onId; changed = true; } //console.log(onId+' '+pagelayer.drag_closest) var req_corners = {0: 'top', 1: 'top', 2: 'bottom', 3: 'bottom'}; // For columns we redefine the top and bottom if(tag == 'pl_col'){ req_corners[1] = 'bottom'; req_corners[3] = 'top'; } // Determine the previous and next var next = wrap.next('.pagelayer-ele-wrap'); var prev = wrap.prev('.pagelayer-ele-wrap'); if(next.length == 1 && pagelayer_id(next) == onId){ req_corners = {0: 'bottom', 1: 'bottom', 2: 'bottom', 3: 'bottom'}; } if(prev.length == 1 && pagelayer_id(prev) == onId){ req_corners = {0: 'top', 1: 'top', 2: 'top', 3: 'top'}; } // Which corner are we closest to ? var corner_num = pagelayer_closest_corner(onWrap); var corner = req_corners[corner_num]; //console.log(corner+' != '+pagelayer.drag_closest_corner) if(corner != pagelayer.drag_closest_corner){ pagelayer.drag_closest_corner = corner; changed = true; } //console.log(changed); // If we are on our self then clear return false and we are on hide active widget if(onId == id || onWrap.hasClass('pagelayer-hide-active')){ clear_prospect();// Clear existing prospects reset_on_drag();// Also reset the last on item return false; } // Then lets start showing if(changed){ // Record the mouse points pagelayer.drag_mouse.x = parseInt(e.pageX); pagelayer.drag_mouse.y = parseInt(e.pageY); // Clear any existing prospect clear_prospect(); // Add new prospect var prospect = '<div class="pagelayer-drag-prospect" pagelayer-corner="'+corner+'"></div>'; if(corner == 'bottom'){ onWrap.append(prospect); }else if(corner == 'top'){ onWrap.prepend(prospect); } prospect = jQuery('.pagelayer-drag-prospect') var animate_props = {height: '5px'}; // For column add a special class if(tag == 'pl_col'){ prospect.addClass('pagelayer-drag-prospect-col'); animate_props['width'] = '5px'; // Adjust the left and right var css = {}; css[(corner == 'bottom' ? 'right' : 'left')] = '0px'; prospect.css(css); } // Animate the prospect prospect.animate(animate_props, 200); // Highlight the wrap via overlay onWrap.children('.pagelayer-ele-overlay').addClass('pagelayer-drag-ele-hover'); } } } // When mouse is pressed down var ondragstart = function(e){ //console.log(e); // Target var tEle = jQuery(e.target); var wrap = tEle.closest('.pagelayer-ele-wrap'); //console.log(jEle[0]); // Is it an existing element ? if(wrap.length < 1){ return false; } // Do we have a parent ? var id = pagelayer_id(wrap); var jEle = pagelayer_ele_by_id(id); var pId = pagelayer_get_parent(jEle); if(pId){ wrap = pagelayer_wrap_by_id(pId); } //e.preventDefault(); var tag = pagelayer_tag(wrap); e.originalEvent.dataTransfer.setData('Text', 1); var img = document.createElement('img'); img.src = shower.attr('src'); e.originalEvent.dataTransfer.setDragImage(img, 32, 32); pagelayer.dragging = wrap; } // When mouse is pressed down var ondrop = function(e){ //console.log(e); // Stop dragging ? if(pagelayer.dragging){ e.preventDefault(); var wrap = pagelayer.dragging; var tag = pagelayer_tag(wrap); var gId = wrap.attr('pagelayer-global-id'); var fromEl = wrap.parent(); var id; // Global ID is there for sure ? if(pagelayer_empty(gId) || pagelayer_empty(pagelayer_global_widgets[gId])){ gId = 0; } wrap.removeClass('pagelayer-is-dragging'); // Find any prospect var prospect = jQuery('.pagelayer-drag-prospect'); //console.log(prospect[0]); // It should be exactly 1 if(prospect.length == 1){ var onWrap = prospect.parent(); var onId = pagelayer_id(onWrap); var onTag = pagelayer_tag(onWrap); var dropped; var corner = prospect.attr('pagelayer-corner'); var method = (corner == 'top') ? 'before' : 'after'; var before_loc; // Location before the drop // Create the element if it needs to be created if(pagelayer.drag_is_new){ dropped = jQuery('<div pagelayer-tag="'+tag+'"></div>'); // Is there a global ID if(!pagelayer_empty(gId)){ dropped.attr('pagelayer-global-id', gId); } // Move the object }else{ // Get near by element before move before_loc = pagelayer_near_by_ele(pagelayer_id(wrap), tag); dropped = wrap; dropped.detach(); } // If I am a column or row, then I go only before or after my same type ! if((onTag == 'pl_col' || onTag == 'pl_row') && onTag == tag){ // If I am a column and I am on a row // OR I am a normal element and I am on column }else if((tag == 'pl_col' && (onTag == 'pl_row' || onTag == 'pl_inner_row')) || onTag == 'pl_col'){ // We need to find the holder and add the prospect there var holder = pagelayer_shortcodes[onTag]['holder']; onWrap = onWrap.children('.pagelayer-ele').children(holder); method = (corner == 'top') ? 'prepend' : 'append'; } // Attach or shift the element onWrap[method](dropped); //console.log(dropped); // Trigger the onadd if(pagelayer.drag_is_new){ id = pagelayer_onadd(dropped); // Create Column if((tag == 'pl_row' || tag == 'pl_inner_row') && pagelayer_empty( dropped.attr('pagelayer-global-id') )){ var col = jQuery('<div pagelayer-tag="pl_col"></div>'); jQuery('[pagelayer-id="'+id+'"]').find('.pagelayer-row-holder').append(col); var col_id = pagelayer_onadd(col, false); } // Existing elements }else{ id = pagelayer_id(wrap); // Save in action history pagelayer_history_action_push({ 'title' : pagelayer_shortcodes[tag]['name'], 'action' : 'Moved', 'pl_id' : id, 'before_loc' : before_loc, 'after_loc' : {'method' : method, 'cEle' : onWrap} }); pagelayer_do_dirty(pagelayer_ele_by_id(id)); } // Defining the variables as needed var jEle = pagelayer_ele_by_id(id); wrap = pagelayer_wrap_by_id(id); var toEl = wrap.parent(); // Column number handle if(tag == 'pl_col'){ var row_holder = jEle.parent().closest('.pagelayer-row-holder'); // Renumber the col where you are going pagelayer_renumber_col(row_holder); // Renumber the old columns as well if(!pagelayer.drag_is_new){ var from_row = fromEl.closest('.pagelayer-row-holder'); pagelayer_renumber_col(from_row); } } // Handle the empty col if(tag != 'pl_col'){ pagelayer_empty_col(toEl.closest('.pagelayer-col-holder')); if(!pagelayer.drag_is_new){ pagelayer_empty_col(fromEl.closest('.pagelayer-col-holder')); } } } // Clear prospect clear_prospect(); } reset_dragging(); } // Add the events for inner content - as we are using the drag API jQuery(document).on('dragstart', ondragstart); jQuery(document).on('dragover', ondragover); jQuery(document).on('drop', ondrop); // For addition of new elements pagelayer.$$('.pagelayer-leftbar').on('dragstart', function(e){ //console.log(e); var tEle = jQuery(e.target); var jEle = tEle.closest('.pagelayer-shortcode-drag'); var global_id = jEle.attr('pagelayer-global-id'); // Is it an existing element ? if(jEle.length < 1){ return false; } e.originalEvent.dataTransfer.setData('tag', pagelayer_tag(jEle)); if(!pagelayer_empty(global_id)){ e.originalEvent.dataTransfer.setData( 'global_id', global_id ); } pagelayer.dragging = jEle; pagelayer.drag_is_new = true; }); // Handle editable content by removing drag var onmousedown = function(e){ var tEle = jQuery(e.originalEvent.explicitOriginalTarget); if(tEle.closest('[pagelayer-editable]').length > 0){ //console.log('Is Editable MouseDown'); tEle.parents('[draggable]').attr('draggable', 'false'); } } // Handle editable content by adding drag that was removed var onmouseup = function(e){ jQuery(document).find('[draggable=false]').attr('draggable', 'true'); } // Handle editable contents by temprarily removing drag jQuery(document).on('mousedown', onmousedown); jQuery(document).on('mouseup', onmouseup); }; // Handle empty col // selector should be col holder function pagelayer_empty_col(selector){ // Loop through jQuery(selector).each(function(){ var jEle = jQuery(this);// jEle is the COL HOLDER // Are we a col ? if(!jEle.hasClass('pagelayer-col-holder')){ return; } // Column is becoming blank, so show add ele if(jEle.children().length < 1){ //from.addClass('pagelayer-empty-col'); jEle.append('<div class="pagelayer-add-ele pagelayer-ele-wrap"><i class="fas fa-plus"></i><br /><span>Empty column please Drag Widgets</span></div>'); //var h = jEle.parent().parent().children('.pagelayer-ele-overlay').height(); //jEle.children('.pagelayer-add-ele').height(h); // Any add ele sign with non-empty columns here ? }else if(jEle.children('.pagelayer-add-ele').length > 0 && jEle.children().length > 1){ jEle.children('.pagelayer-add-ele').remove(); } jEle.find('>.pagelayer-add-ele .fas').unbind('click'); jEle.find('>.pagelayer-add-ele .fas').on('click', function(event){ event.stopPropagation(); pagelayer.$$('.pagelayer-elpd-close').click(); pagelayer_show_widget_list(jQuery(this)); }); }); }; // Reset the column widths // The selector should be a ROW HOLDER function pagelayer_renumber_col(selector){ var pEle = jQuery(selector); var children = pEle.children('.pagelayer-ele-wrap'); var cols = Math.floor(12 / (children.length)); var obj = {col: cols}; // Find out the number of cols of other cols children.each(function(){ // This is the wrapper var jEle = jQuery(this); // The real element var Ele = jEle.find('>.pagelayer-ele'); for(var x=1; x<=12; x++){ if(jEle.hasClass('pagelayer-col-'+x)){ jEle.removeClass('pagelayer-col-'+x); Ele.removeClass('pagelayer-col-'+x); break; } } jEle.addClass('pagelayer-col-'+cols); jEle.css({'width': ''}); // Set the att pagelayer_set_atts(Ele, obj); pagelayer_set_atts(Ele, 'col_width',''); pagelayer_sc_render(Ele) }); } // Make column resizable handler function pagelayer_col_make_resizable(wrap){ // Resize handler element var rHandler = jQuery('<div class="pagelayer-resize-handler"><div class="pagelayer-resize-icon"></div></div>'); var pResize = wrap.children('.pagelayer-ele-overlay').find('.pagelayer-resize-handler'); if(pResize.length > 0){ return; } // Append it wrap.children('.pagelayer-ele-overlay').append(rHandler); // Resize start rHandler.on('mousedown', function(e) { e.preventDefault(); var next_ele = wrap.next(); var rHolder_width = wrap.closest('.pagelayer-row-holder').width(); var new_width, nEle_new_width; // Original width var original_width = parseFloat(window.getComputedStyle(wrap[0]).getPropertyValue('width')); var next_ele_width = parseFloat(window.getComputedStyle(next_ele[0]).getPropertyValue('width')); var original_mouse_x = e.pageX; var both_width = parseInt(original_width + next_ele_width); // Add the element width and next element width both_width = ((both_width / rHolder_width) *100); if(both_width > 100){ return false; } jQuery('body').css({'cursor': 'ew-resize'}); rHandler.css({'display': 'block'}); var mousemoved = false; var r_mousemove = function(e){ mousemoved = true; var width = original_width + (e.pageX - original_mouse_x); // Covert width in percentage new_width = (width / rHolder_width *100).toFixed(2); if(both_width > new_width && new_width > 0){ nEle_new_width = (both_width - new_width).toFixed(2); wrap.css({'width': new_width+'%'}); next_ele.css({'width': nEle_new_width+'%'}); rHandler.attr({'pre-width': new_width+'%', 'next-width': nEle_new_width+'%'}); } }; var r_mouseup = function(e){ jQuery(document).off('mousemove', r_mousemove); jQuery(document).off('mouseup', r_mouseup); jQuery('body').css({'cursor': ''}); rHandler.removeAttr('style pre-width next-width'); // IF mouseMoved if(!mousemoved) return; // find real element and next real element var jEle = wrap.find('>.pagelayer-ele'); var nEle = next_ele.find('>.pagelayer-ele'); var mode = pagelayer_get_screen_mode(); var col_width = 'col_width'; // Do we have screen ? if(mode != 'desktop'){ col_width = col_width +'_'+mode; } // Set the element attrs pagelayer_set_atts(jEle, col_width, new_width); pagelayer_set_atts(jEle, 'col', ''); pagelayer_set_atts(nEle, col_width, nEle_new_width); pagelayer_set_atts(nEle, 'col', ''); }; // Resize start jQuery(document).on('mousemove', r_mousemove); jQuery(document).on('mouseup', r_mouseup); }); } // Handle addition of elements from the left // NOTE : At this point the addition is FINALIZED // The add element cannot be prevented ! function pagelayer_onadd(jEle, toClick){ toClick = arguments.length == 2 ? toClick : true; //console.log(jEle); var id = pagelayer_element_added(jEle); var jEle = jQuery("[pagelayer-id="+id+"]"); if(toClick){ //console.log('here'); jEle.click(); } return id; }; // Add an element into the POST function pagelayer_element_added(jEle){ var sc = jEle.attr('pagelayer-tag'); var id, par_id; var gId = jEle.attr('pagelayer-global-id'); gId = gId && !pagelayer_empty(pagelayer_global_widgets[gId]) ? gId : 0; // Set Pagelayer History FALSE to prevent saving attributes in action history pagelayer.history_action = false; pagelayer.global_render = false; // Is this a global widget ? if(!pagelayer_empty(gId)){ html = pagelayer_element_unsetup(pagelayer_global_widgets[gId].$); // Generate the HTML }else{ html = pagelayer_create_sc(sc); } id = pagelayer_assign_id(html); par_id = id; // Insert the HTML jEle[0].outerHTML = html[0].outerHTML; // Setup the properties of the elements pagelayer_element_setup("[pagelayer-id="+par_id+"], [pagelayer-id="+par_id+"] .pagelayer-ele", true); // Is this a global widget ? Then set this as global element if(!pagelayer_empty(gId)){ html = pagelayer_set_ele_global(jQuery('[pagelayer-id="'+par_id+'"]'), gId); } // Any children to add ? if(!('widget' in pagelayer_shortcodes[sc])){ // The element props var props = pagelayer_shortcodes[sc]; // Do we have to create children ? if('has_group' in props){ // Is this not a global widget ? if(pagelayer_empty(gId)){ var has_group = props['has_group']; var gProp = props[has_group['section']][has_group['prop']]; for(var i=0; i < gProp['count']; i++){ var cid = pagelayer_element_add_child(jQuery("[pagelayer-id="+id+"]"), gProp['sc'], gProp); //pagelayer_element_setup('[pagelayer-id='+cid+']', true); var cEle = pagelayer_ele_by_id(cid); // Set default if( 'item_atts' in gProp && i in gProp['item_atts'] && !pagelayer_empty(gProp['item_atts'][i]) ){ pagelayer_set_atts(cEle, gProp['item_atts'][i]); pagelayer_sc_render(cEle); } } }else{ pagelayer_sc_render(jQuery('[pagelayer-id="'+par_id+'"]')); } } } // Save in action history var cEle = pagelayer_near_by_ele(id, sc); pagelayer_history_action_push({ 'title' : pagelayer_shortcodes[sc]['name'], 'action' : 'Added', 'pl_id' : id, 'html' : jQuery("[pagelayer-id="+id+"]")[0].outerHTML, 'cEle' : cEle }); // Set pagelayer history TRUE pagelayer.history_action = true; pagelayer.global_render = true; // To update nav item list pagelayer_do_dirty(pagelayer_ele_by_id(id)); return id; }; // Add an element function pagelayer_element_add_child(pEle, sc, gProp){ gProp = gProp || {}; var child = pagelayer_create_sc(sc); var cid = pagelayer_assign_id(child); pagelayer_set_parent(child, pagelayer_assign_id(pEle)); // Does the parent have a holder ? var tag = pagelayer_tag(pEle); // There is a holder if('holder' in pagelayer_shortcodes[tag]){ pEle.find(pagelayer_shortcodes[tag]['holder']).append(child); // No holder, just append }else{ pEle.append(child); } pagelayer_element_setup('[pagelayer-id='+cid+']', true); // Certain element have editable areas which are inner rows. For UX we need to add columns for the users if(sc == 'pl_inner_row'){ var rHolder = pagelayer_ele_by_id(cid).find('.pagelayer-row-holder'); if( !pagelayer_empty(gProp) && 'inner_content' in gProp){ var inner_content = gProp['inner_content']; // Add default element if(!pagelayer_empty(inner_content)){ var add_sc = function(hEle, _tag, content){ var dEle = jQuery('<div pagelayer-tag="'+_tag+'"></div>'); if(_tag == 'pl_col'){ hEle = hEle.closest('.pagelayer-row-holder'); }else{ hEle = hEle.find('.pagelayer-col-holder'); } hEle.append(dEle); var curID = pagelayer_onadd(dEle, false); var curEle = pagelayer_ele_by_id(curID); // Set default if('atts' in content[_tag]){ pagelayer_set_atts(curEle, content[_tag]['atts']); pagelayer_sc_render(curEle); } // Set inner content if('inner_content' in content[_tag]){ for( var key in content[_tag]['inner_content'] ){ for( var _key in content[_tag]['inner_content'][key] ){ add_sc(curEle, _key, content[_tag]['inner_content'][key]); } } } if(_tag == 'pl_col'){ // TODO: unable to set col width pagelayer_renumber_col(hEle); }else{ pagelayer_empty_col(hEle); } }; for( var key in inner_content ){ for( var tag in inner_content[key] ){ add_sc(rHolder, tag, inner_content[key]); } } } pagelayer_empty_col(jQuery('[pagelayer-id="'+cid+'"]').find('.pagelayer-col-holder')); }else{ var col = jQuery('<div pagelayer-tag="pl_col"></div>'); rHolder.append(col); pagelayer_onadd(col, false); } } // Do we have to create children ? if('has_group' in pagelayer_shortcodes[sc]){ var has_group = pagelayer_shortcodes[sc]['has_group']; var gProp = pagelayer_shortcodes[sc][has_group['section']][has_group['prop']]; for(var i=0; i < gProp['count']; i++){ var in_cid = pagelayer_element_add_child(jQuery("[pagelayer-id="+cid+"]"), gProp['sc'], gProp); } } return cid; }; // Return an element by ID function pagelayer_ele_by_id(id){ return jQuery('[pagelayer-id='+id+']'); }; // Return the wrap by ID function pagelayer_wrap_by_id(id){ return jQuery('[pagelayer-wrap-id='+id+']'); }; // Give the Pagelayer ID function pagelayer_id(jEle){ var id = jEle.attr('pagelayer-wrap-id'); if(id){ return id; } id = jEle.attr('pagelayer-id'); return id; } // Remove Pagelayer ID class function pagelayer_remove_id_class(jEle){ var id = jEle.attr('pagelayer-id'); jEle.removeClass('p-'+id); } // Assign the jQuery object an ID function pagelayer_assign_id(jEle){ // Do you have the pagelayer id var id = jEle.attr("pagelayer-id"); if(!id || id.length < 1){ id = pagelayer_randstr(3)+pagelayer_randInt(9999).toString(); id = id.toLowerCase(); jEle.attr("pagelayer-id", id); } return id; } // Show the edit options function pagelayer_element_clicked(selector, e){ var jEle = jQuery(selector); e = e || false; //console.log(e); // You must be a element atleast if(!jEle.hasClass('pagelayer-ele')){ return false; } // Get the parent var pId = pagelayer_get_parent(jEle); // If we found a parent if(pId){ jEle = pagelayer_ele_by_id(pId); } // Make the editable fields active //pagelayer_clear_editable();// First clear jEle.find('[pagelayer-editable]').each(function (){ pagelayer_make_editable(jQuery(this), e); }); // Show left bar if(pagelayer_empty(e)){ pagelayer.$$('.pagelayer-leftbar-table').removeClass('pagelayer-leftbar-hidden pagelayer-leftbar-minimize'); } // Lets not rebuild everything to make it faster if(pagelayer_is_active(jEle)){ return false; } pagelayer_trigger_action('pagelayer_element_clicked', [jEle]); // Set this as the active element pagelayer_set_active(jEle); // Show the properties pagelayer_elpd_open(jEle); } // Use text widget for search widget function pagelayer_search_widgets(hEle){ hEle = hEle || jQuery(pagelayer_editable +' [pagelayer-tag="pl_text"], '+pagelayer_editable +' [pagelayer-tag="pl_heading"]'); hEle.each(function(){ var jEle = jQuery(this); var tEle = jEle.find('[pagelayer-editable="text"]'); var addPlaceholder = function(ele){ var tVal = ele.text(); if(pagelayer_empty(tVal)){ ele.attr('data-placeholder-text', 'Type / to open widget list'); }else if(ele.attr('data-placeholder-text')){ ele.removeAttr('data-placeholder-text'); } } // Add placeholder text addPlaceholder(tEle); tEle.off('input.search_widgets'); tEle.on('input.search_widgets', function(){ var val = tEle.text(); // Add placeholder text addPlaceholder(tEle); if(val.charAt(0) == "/"){ val = val.replace('/', ''); pagelayer_show_widget_list(tEle, val); }else if(pagelayer.$$('.pagelayer-widget-tooltip').is(':visible')){ // Hide Widget list pagelayer.gDocument.trigger('mousedown.pagelayer_wdlist'); } }); }); } // The edit option function pagelayer_edit_element(selector){ pagelayer_element_clicked(selector); } // Dump the data from the el to the elements function pagelayer_element_dump_data(){ for(var x in pagelayer.el){ var jEle = pagelayer_ele_by_id(x); if(jEle.length > 0){ pagelayer_el_dump_data(jEle); } } } // Setup the properties on a single click function pagelayer_element_setup(selector, render){ var selector = selector || ".pagelayer-ele"; render = render || false; // Loop through jQuery(pagelayer_editable+' '+selector).each(function(){ var jEle = jQuery(this); // Assign an ID if not there var id = pagelayer_assign_id(jEle); var pId = pagelayer_get_parent(jEle) || '';// Options to show on hover var selector = '[pagelayer-id='+id+']'; // Get data part pagelayer.el[id] = pagelayer_el_get_data(jEle); //console.log(jEle[0].outerHTML); //console.log(pagelayer.el[id]); if(render){ pagelayer_sc_render(jEle); } // Get the tag var tag = pagelayer_tag(jEle); var props = pagelayer_get_props(jEle); // Lets check if we are the child of a parent i.e. element of a group if(pagelayer_empty(pId)){ // Get the parent var pEle = jEle.parent().closest('.pagelayer-ele'); // If we found a parent if(pEle.length > 0){ var pTag = pagelayer_tag(pEle); // Is the parent a group of this child ? if(!pagelayer_empty(pagelayer_shortcodes[pTag]) && pagelayer_is_group(pTag)){ var has_group = pagelayer_shortcodes[pTag]['has_group']; var child_type = pagelayer_shortcodes[pTag][has_group['section']][has_group['prop']]['sc']; // If the type is the same as jEle if(child_type == pagelayer_tag(jEle)){ pId = pagelayer_assign_id(pEle); pagelayer_set_parent(jEle, pId); } } } } // If is group of widget? if('widget_group' in props && !pagelayer_empty(props['widget_group'])){ pagelayer_set_widget_group(jEle); } // Make the wraps jEle.wrap('<div class="pagelayer-ele-wrap" pagelayer-wrap-id="'+id+'"></div>'); var wrap = jEle.parent(); // For column we have to do some kidas ! if(tag == 'pl_col'){ var col; for(var x=1; x<=12; x++){ if(jEle.hasClass('pagelayer-col-'+x)){ col = 'pagelayer-col-'+x; break; } } wrap.addClass('pagelayer-col '+col); //jEle.removeClass('pagelayer-col '+col); wrap.addClass('pagelayer-wrap-col'); }else if(tag == 'pl_row'){ wrap.addClass('pagelayer-wrap-row'); }else if(tag == 'pl_inner_row'){ wrap.addClass('pagelayer-wrap-inner-row'); }else{ wrap.addClass('pagelayer-wrap-ele'); } // Create the overlay wrap.prepend('<div class="pagelayer-ele-overlay"></div>'); var overlay = wrap.children('.pagelayer-ele-overlay'); var html; if(tag == 'pl_row' || tag == 'pl_inner_row'){ overlay.addClass('pagelayer-row-hover'); if(jEle.hasClass('pagelayer-row-stretch-full')){ pagelayer_sc_render(jEle); } html = '<div class="pagelayer-row-option" pagelayer-option-edit pagelayer-option-id="'+id+'">'+ '<i class="fas fa-caret-up pagelayer-eoi pagelayer-move-up" onclick="pagelayer_move_element_up(\''+selector+'\')" ></i>'+ '<i class="far fa-clone pagelayer-eoi" onclick="pagelayer_copy_element(\''+selector+'\')" ></i>'+ '<i class="fas fa-trash pagelayer-eoi" onclick="pagelayer_delete_element(\''+selector+'\')" ></i>'+ '<i class="fas fa-pencil-alt pagelayer-eoi" onclick="pagelayer_edit_element(\''+selector+'\', event)" ></i>'+ '<i class="fas fa-caret-down pagelayer-eoi pagelayer-move-down" onclick="pagelayer_move_element_down(\''+selector+'\')" ></i>'+ '</div>'; }else if(tag == 'pl_col'){ overlay.addClass('pagelayer-col-hover'); html = '<div class="pagelayer-col-option" pagelayer-option-edit pagelayer-option-id="'+id+'">'+ '<i class="fas fa-columns pagelayer-eoi" onclick="pagelayer_edit_element(\''+selector+'\', event)" ></i>'+ '</div>'; // Is it an empty col ? pagelayer_empty_col(jEle.children('.pagelayer-col-holder')); // Make col resizable pagelayer_col_make_resizable(wrap); }else{ html = '<div class="pagelayer-ele-option" pagelayer-option-edit pagelayer-option-id="'+id+'">'+ '<i class="fas fa-caret-up pagelayer-eoi pagelayer-move-up" onclick="pagelayer_move_element_up(\''+selector+'\')" ></i>'+ '<i class="far fa-clone pagelayer-eoi" onclick="pagelayer_copy_element(\''+selector+'\')" ></i>'+ '<i class="fas fa-trash pagelayer-eoi" onclick="pagelayer_delete_element(\''+selector+'\')" ></i>'+ '<i class="fas fa-pencil-alt pagelayer-eoi" onclick="pagelayer_edit_element(\''+selector+'\', event)" ></i>'+ '<i class="fas fa-caret-down pagelayer-eoi pagelayer-move-down" onclick="pagelayer_move_element_down(\''+selector+'\')" ></i>'+ '</div>'; } // Append to the child overlay.append(html); // Add shortcode icon if(tag != 'pl_row' && tag != 'pl_col'){ overlay.append('<span class="pagelayer-shortcode-plus" onclick="event.stopPropagation();pagelayer_show_widget_list(this);"><i class="fas fa-plus"></i></span>'); } jQuery('[pagelayer-option-id='+id+']').hide(); // Hide active when not supported by tag if(!pagelayer_empty(props['hide_active'])){ wrap.addClass('pagelayer-hide-active'); } pagelayer_trigger_action('pagelayer_element_setup', [jEle]); // Setup the HOVER events ABD create WRAPS IF we dont have a parent if(pId.length > 0){ return; } // Make the wrap draggable, but only of independent or parent elements wrap.attr('draggable', 'true'); wrap.hover(function(){ // Is there an element option shower ? var opts = jQuery('[pagelayer-option-id='+id+']'); // Give the overlay the hover class opts.parent().addClass('pagelayer-ele-hover'); // Show them opts.show(); }, function(){ // Is there an element option shower ? var opts = jQuery('[pagelayer-option-id='+id+']'); // Remove hover class opts.parent().removeClass('pagelayer-ele-hover'); // Hide opts opts.hide(); }); }); } // Unsetup element for restup function pagelayer_element_unsetup(selector, id){ id = id || false; var src = jQuery(selector); var html = src[0].outerHTML; var jEle = jQuery(html); pagelayer_remove_id_class(jEle); jEle.removeAttr('pagelayer-id'); jEle.removeAttr('pagelayer-active'); jEle.find('[pagelayer-id]').each(function(){ pagelayer_remove_id_class(jQuery(this)); jQuery(this).removeAttr('pagelayer-id'); }); jEle.find('[pagelayer-parent]').removeAttr('pagelayer-parent');// Remove the parent attribute as it will be reset during pagelayer_element_setup jEle.find('style').remove(); jEle.find('.pagelayer-ele-overlay').remove(); // Unwrap the wraps jEle.find('.pagelayer-ele').each(function (){ var ele = jQuery(this); if(ele.parent().is('.pagelayer-ele-wrap')){ ele.unwrap(); } }); // Assign id if(!pagelayer_empty(id)){ jEle.attr('pagelayer-id', id); } return jEle; } // Left Click function pagelayer_left_click(){ jQuery(pagelayer_editable).on('click', function(e){ e.preventDefault();// Added by Jivan in Actions / Revisions version // Hide the context menu jQuery('.pagelayer-right-click-options').hide(); // Target var tEle = jQuery(e.target); // If its an edit option click if(tEle.hasClass('pagelayer-eoi')){ return false; } pagelayer_element_clicked(tEle.closest('.pagelayer-ele'), e); return false; }); }; // Right Click Menu function pagelayer_right_click(){ var html = '<div class="pagelayer-right-click-options" style="display:none;">'+ '<ul>'+ '<li><a class="pagelayer-right-edit">Edit</a></li>'+ '<li><a class="pagelayer-right-duplicate"><i class="far fa-clone" ></i> '+pagelayer_l('Duplicate')+'</a></li>'+ '<li><a class="pagelayer-right-copy"><i class="far fa-copy" ></i> '+pagelayer_l('Copy')+' <span style="float:right">Ctrl+c</span></a></li>'+ '<li><a class="pagelayer-right-paste pagelayer-context-disable" title="If the paste is not done correctly then use Ctrl+V"><i class="far fa-clipboard" ></i> '+pagelayer_l('Paste')+' <span style="float:right">Ctrl+v</span></a></li>'+ '<li><a class="pagelayer-right-delete"><i class="far fa-trash-alt" ></i> '+pagelayer_l('Delete')+'</a></li>'+ '<li><a class="pagelayer-right-save-global-widget" pro="1"><i class="far fa-save" ></i> '+pagelayer_l('save_global')+'</a></li>'+ '<li><a class="pagelayer-right-save-section" pro="1"><i class="far fa-heart" ></i> '+pagelayer_l('save_as_section')+'</a></li>'+ '<li><a class="pagelayer-right-save-global-section" pro="1"><i class="fas fa-globe" ></i> '+pagelayer_l('save_as_global_section')+'</a></li>'+ '</ul>'+ '</div>'; jQuery('body').append(html); var $contextMenu = jQuery('.pagelayer-right-click-options'); jQuery(pagelayer_editable).on('contextmenu', function(e){ var tEle = jQuery(e.target); var jEle = tEle.closest('.pagelayer-ele-wrap').children('.pagelayer-ele'); // If copy_selected is empty then copy data from localStorage if(pagelayer_empty(pagelayer.copy_selected)){ pagelayer_copy_from_clipboard(); } // Get the parent var pId = pagelayer_get_parent(jEle); // If we found a parent if(pId){ jEle = pagelayer_ele_by_id(pId); } // The basics var id = pagelayer_assign_id(jEle); var tag = pagelayer_tag(jEle); $contextMenu.find('.pagelayer-right-edit').attr('onclick', 'pagelayer_edit_element("[pagelayer-id='+id+']")').html('<i class="far fa-edit" ></i> Edit '+pagelayer_shortcodes[tag]['name']); $contextMenu.find('.pagelayer-right-duplicate').attr('onclick', 'pagelayer_copy_element("[pagelayer-id='+id+']")'); $contextMenu.find('.pagelayer-right-copy').attr('onclick', 'pagelayer_copy_select("[pagelayer-id='+id+']")'); $contextMenu.find('.pagelayer-right-delete').attr('onclick', 'pagelayer_delete_element("[pagelayer-id='+id+']")'); // If is pagelayer pro if(!pagelayer_empty(pagelayer_pro)){ $contextMenu.find('.pagelayer-right-save-global-widget').attr('onclick', 'pagelayer_save_sections("[pagelayer-id='+id+']", "global_widget")'); $contextMenu.find('.pagelayer-right-save-section').attr('onclick', 'pagelayer_save_sections("[pagelayer-id='+id+']", "section")'); $contextMenu.find('.pagelayer-right-save-global-section').attr('onclick', 'pagelayer_save_sections("[pagelayer-id='+id+']", "global_section")'); }else{ var pro = $contextMenu.find('[pro="1"]'); if(pro.find('.pagelayer-pro-req').length < 1){ pro.append('<span class="pagelayer-pro-req">Pro</span>'); } pro.css({'color': '#a7a7a7'}); // To stopPropagation pro.parent().on('click', function(e){ e.stopPropagation(); }); } var showPaste = function(){ if(!pagelayer_empty(pagelayer.copy_selected) && pagelayer_can_copy_to(jEle)){ $contextMenu.find('.pagelayer-right-paste').removeClass('pagelayer-context-disable'); $contextMenu.find('.pagelayer-right-paste').attr('onclick', 'pagelayer_paste_element("[pagelayer-id='+id+']")'); } } // Are we to hide the paste ? if(pagelayerClipboardLoading){ var clipboardLoading = {}; clipboardLoading = setInterval(function(){ if(pagelayerClipboardLoading){ return; } clearInterval(clipboardLoading); showPaste(); }, 100); }else{ showPaste(); } var gId = pagelayer_get_global_id(jEle); // Are we to hide the global widget ? if(!pagelayer_empty(gId) || tag == 'pl_row' || tag == 'pl_inner_row'|| tag == 'pl_col'){ $contextMenu.find('.pagelayer-right-save-global-widget').parent().hide(); }else{ $contextMenu.find('.pagelayer-right-save-global-widget').parent().show(); } var sId = pagelayer_get_att(jEle, 'global-section-id'); // Are we to hide the save as global section ? if( tag == 'pl_row' && pagelayer_empty(sId)){ $contextMenu.find('.pagelayer-right-save-global-section').parent().show(); }else{ $contextMenu.find('.pagelayer-right-save-global-section').parent().hide(); } // Are we to hide the save as section ? if( tag == 'pl_row' ){ $contextMenu.find('.pagelayer-right-save-section').parent().show(); }else{ $contextMenu.find('.pagelayer-right-save-section').parent().hide(); } var hPosition = (e.pageX+$contextMenu.width()>jQuery(window).width()) ? (e.pageX-$contextMenu.width()) : e.pageX; var vPosition = (e.pageY+$contextMenu.height()>jQuery(document).scrollTop()+jQuery(window).height()) ? (e.pageY-$contextMenu.height()) : e.pageY; $contextMenu.css({ display: "block", left: hPosition, top: vPosition }); return false; }); jQuery('html').on('click', function(e){ $contextMenu.hide(); }); } // Set the parent for the group function pagelayer_set_parent(jEle, id){ jEle.attr('pagelayer-parent', id); }; // Set the widget group function pagelayer_set_widget_group(jEle){ jEle.addClass('pagelayer-ele-widget-group'); }; // Get the parent for the group function pagelayer_get_parent(jEle){ return jEle.attr('pagelayer-parent'); }; // Sets the screen mode function pagelayer_set_screen_mode(mode){ var modes = ['desktop', 'tablet', 'mobile']; var body = pagelayer.$$('.pagelayer-iframe-holder iframe'); var current = ''; for(var x in modes){ if(body.hasClass('pagelayer-screen-'+modes[x]) && modes[x] != mode){ current = modes[x]; body.removeClass('pagelayer-screen-'+modes[x]); } } // Add the class body.addClass('pagelayer-screen-'+mode); // Add the class to the button pagelayer.$$('.pagelayer-mode-button').removeClass('pli-'+current).addClass('pli-'+mode); // Add the class to the button pagelayer.$$('.pagelayer-prop-screen').removeClass('pli-'+current).addClass('pli-'+mode); // Trigger screen change if any pagelayer.$$('.pagelayer-elp-screen').trigger('pagelayer-screen-changed'); }; // Get the current screen mode function pagelayer_get_screen_mode(){ var modes = ['desktop', 'tablet', 'mobile']; var body = pagelayer.$$('.pagelayer-iframe-holder iframe'); for(var x in modes){ if(body.hasClass('pagelayer-screen-'+modes[x])){ return modes[x]; } } } var pagelayer_keydown_data = {}; pagelayer_add_action('pagelayer_do_dirty', function(){ pagelayer_keydown_data = {}; }); var pagelayer_active_ele_timmer = {}; // Handle widget selecttion and move cursor in editable areas on key press events jQuery(document).keydown(function(e){ //alert(String.fromCharCode(e.which)); var tEle = jQuery(e.target); var editable = tEle.closest('[contenteditable="true"]'); var tooltip = pagelayer.$$('.pagelayer-widget-tooltip'); // If ArrowDown and ArrowUp key not pressed if(!(e.key == 'ArrowDown' || e.key == 'ArrowUp') || tooltip.is(':visible')){ pagelayer_keydown_data = {}; return; } var findEles = jQuery(pagelayer_editable+' .pagelayer-ele,'+pagelayer_editable+' [contenteditable="true"]'); var activeEle = findEles.first(); if(editable.length > 0){ activeEle = editable; }else if( '$' in pagelayer_keydown_data ){ activeEle = pagelayer_keydown_data.$; }else if( pagelayer_active.el && 'id' in pagelayer_active.el ){ activeEle = pagelayer_active.el.$; } if(pagelayer_empty(activeEle) || activeEle.length < 1){ return; } // Make element active var makeEleActive = function(index, next){ next = next || false; var cursorPos = 0, focusEle; // We are editable area if(editable.length > 0){ var lines = pagelayer_content_line(editable.get(0)); var cursorPos = pagelayer_getCaretCharacterOffsetWithin(editable.get(0)); if((next && lines[lines.length - 1].start > cursorPos) || (!next && lines[0].end < cursorPos)){ return; } e.preventDefault(); var lastLineStart = lines[lines.length - 1]['start']; // We are on the last line if(next && lastLineStart <= cursorPos){ cursorPos = cursorPos - lastLineStart; } } // Search for next/previous element var searchEle = function(indexEle){ indexEle = next ? ++indexEle : --indexEle; var sIndex = findEles.eq(indexEle); if(sIndex.length < 1){ return sIndex; } var sEle = sIndex.closest('.pagelayer-ele'); var tag = pagelayer_tag(sEle); if(tag == 'pl_row' || tag == 'pl_inner_row' || tag == 'pl_col' || sEle.parent().hasClass('pagelayer-hide-active') || !pagelayer_empty(sIndex.attr('pagelayer-parent'))){ sIndex = searchEle(indexEle); } return sIndex; } var ele = searchEle(index); // If ArrowUp and we are come from editable area and previous element is not editable if(ele.length > 0 && !next && ele.attr('contenteditable') != 'true'){ ele = searchEle(findEles.index( ele )); } if(ele.length < 1){ return; } // Save in global variable pagelayer_keydown_data.$ = ele; jQuery(':focus').blur(); var jEle = ele.closest('.pagelayer-ele'); var tag = pagelayer_tag(jEle); if(ele.attr('contenteditable') == 'true'){ focusEle = ele; }else if(tag != 'pl_row' && tag != 'pl_inner_row' && tag != 'pl_col'){ var focusAble = ele.find('[contenteditable="true"]'); var isfocusAble = focusAble.closest('.pagelayer-ele').is(jEle); if(isfocusAble && next){ focusEle = focusAble.first(); }else if(isfocusAble){ focusEle = focusAble.last(); } } if(!pagelayer_empty(focusEle) && focusEle.length > 0){ focusEle.focus(); var focusLine = pagelayer_content_line(focusEle.get(0)); var fLine = next ? focusLine[0] : focusLine[focusLine.length -1]; cursorPos = (fLine['start'] + cursorPos > fLine['end'] ? fLine['end'] : fLine['start'] + cursorPos); pagelayer_setCaret(focusEle.get(0), cursorPos); } pagelayer_set_active(jEle); ele[0].scrollIntoView({behavior: "smooth", block: "nearest"}); clearTimeout(pagelayer_active_ele_timmer); pagelayer_active_ele_timmer = setTimeout(function(){ pagelayer_keydown_data = {}; ele.closest('.pagelayer-ele').click(); }, 1000); } // If cursor on first line & up arrow key var currentIndex = findEles.index( activeEle ); pagelayer_keydown_data.$ = activeEle; // Move active element and cursor arround editor if(e.key == 'ArrowDown'){ makeEleActive(currentIndex, true); } if(e.key == 'ArrowUp'){ makeEleActive(currentIndex, false); } }); // Handle key press events pagelayer.gDocument.keydown(function(event){ //alert(String.fromCharCode(event.which)); var tEle = jQuery(event.target); var editable = tEle.closest('[contenteditable="true"]'); var tooltip = pagelayer.$$('.pagelayer-widget-tooltip'); // Enter handle if(event.keyCode == 13){ var jEle = tEle.closest('.pagelayer-ele'); var tag = pagelayer_tag(jEle); // Add selected widget from widget list if(tooltip.is(':visible')){ tooltip.find('.pagelayer-list-widget-active:visible').click(); return; } if( pagelayer_empty(pagelayer_active.el) || !('id' in pagelayer_active.el) ){ return; } var active_el_par = pagelayer_active.el.$.parent(); // Create and add text widget var addTitle = function(insertAfter){ var ele = jQuery('<div pagelayer-tag="pl_text"></div>'); insertAfter.after(ele); return pagelayer_ele_by_id( pagelayer_onadd(ele) ); } // If we have an active element then add text widget if(!(tEle.is('input, textarea') || editable.length > 0)){ event.preventDefault(); var activeTag = pagelayer_active.el.tag; // If is row or column ? if(activeTag == 'pl_row' || activeTag == 'pl_col'){ return; } var hEle = addTitle(active_el_par); hEle.click(); hEle.find('[pagelayer-editable]').focus(); // Ensure the column is not empty pagelayer_empty_col(hEle.closest('.pagelayer-col-holder')); return; } if( (tag != 'pl_text' && tag != 'pl_heading') || editable.length < 1 || event.shiftKey){ return; } var selection = window.getSelection(); var range = selection.getRangeAt(0); // We are within the list tag if(jQuery(range.startContainer).closest('[pagelayer-editable] li').length > 0){ return; } event.preventDefault(); var lastChild = editable[0].lastChild; var startContainer = range.startContainer; if(startContainer.nodeType == Node.TEXT_NODE && startContainer.parentNode != editable[0]){ startContainer = startContainer.parentNode; } range.setEndAfter(lastChild); var val = range.cloneContents(); var selfEle = jQuery('<div>').append(val); var selContent = selfEle.html(); var selfFC = selfEle[0].firstChild; var emptyContent = false; if(selfFC == null || pagelayer_empty(selContent)){ selContent = '<p><br></p>'; emptyContent = true; }else if(selfFC.nodeType == Node.TEXT_NODE){ selContent = '<p>'+selContent+'</p>'; }else if(selfEle.text() == '' && selfEle.find('br').length < 1){ selContent = '<p><br></p>'; emptyContent = true; }else if(selfEle.text().trim() == ''){ selContent = selContent.replace(/\s+/, "\u00A0"); emptyContent = true; } range.deleteContents(); if( jQuery(startContainer).is(':first-child') && jQuery(startContainer).is(':empty') ){ jQuery(startContainer).html('<br>'); }else if( jQuery(startContainer).is(':empty') ){ jQuery(startContainer).remove(); } // If editor is empty if( editable.is(':empty') ){ editable.html('<p><br></p>'); } editable.trigger('input'); editable.blur(); // Create and add text widget var ele; if(emptyContent){ ele = addTitle(jEle.parent()); }else{ var id = pagelayer_copy_element(jEle); ele = pagelayer_ele_by_id(id); } ele.click(); var editorArea = ele.find('[pagelayer-editable]'); editorArea.html(selContent); editorArea.find('p:empty').remove(); editorArea.focus().trigger('input'); } // ctrl+s handle if(event.keyCode == 83 && event.ctrlKey){ event.preventDefault(); pagelayer.$$('.pagelayer-bottombar-holder').find('.pagelayer-update-button').click(); } // ctrl+d handle if(event.keyCode == 68 && event.ctrlKey){ // If we have an active element if( pagelayer_active.el && pagelayer_active.el.id ){ event.preventDefault(); pagelayer_copy_element('[pagelayer-id='+pagelayer_active.el.id+']'); } } // Delete handler for text widget if(event.keyCode == 46 && editable.length > 0){ var jEle = tEle.closest('.pagelayer-ele-wrap'); var tag = pagelayer_tag(jEle); var next = jEle.next(); var pTag = pagelayer_tag(next); var selection = window.getSelection(); var orgRange = selection.getRangeAt(0); var cloneRange = orgRange.cloneRange(); if((tag != 'pl_text' && tag != 'pl_heading') || next.length < 1 || pTag != tag || !cloneRange.collapsed ){ return; } var currentOffset = pagelayer_getCaretCharacterOffsetWithin(editable[0]); cloneRange.selectNodeContents(editable[0]); var caretOffset = cloneRange.toString().length; if(currentOffset != caretOffset){ return; } var nextHtml = next.find('[pagelayer-editable="text"]').html(); editable.append(nextHtml); pagelayer_delete_element(next.children('.pagelayer-ele')); } // Backspace handler if(event.keyCode == 8 && editable.length > 0){ var jEle = tEle.closest('.pagelayer-ele-wrap'); var tag = pagelayer_tag(jEle); var prev = jEle.prev(); if((tag != 'pl_text' && tag != 'pl_heading') || prev.length < 1){ return; } var pTag = pagelayer_tag(prev); var selection = window.getSelection(); if (selection == null || selection.rangeCount <= 0) return null; var range1 = selection.getRangeAt(0); if(pTag != tag || range1.startOffset != 0){ return; } var prevArea = prev.find('[pagelayer-editable="text"]'); if( pagelayer_getCaretCharacterOffsetWithin(editable[0]) != 0 || prevArea.length < 1){ return; } //event.preventDefault(); var html = editable.html(); editable.blur(); prev.children('.pagelayer-ele').click(); prevArea.click(); var newSel = window.getSelection(); var newRange = newSel.getRangeAt(0); var lastChild = jQuery(prevArea[0].lastChild); prevArea.append(html); prevArea.trigger('input'); if(lastChild.length > 0){ if(lastChild[0].nextSibling != null){ newRange.setStart(lastChild[0].nextSibling, 0); }else{ newRange.setStartAfter(lastChild[0]); } } newRange.collapse(true); newSel.removeAllRanges(); newSel.addRange(newRange); pagelayer_delete_element(jEle.children('.pagelayer-ele')); } if(tooltip.is(':visible')){ // Select previous widget in widget tooltip if(event.key == 'ArrowUp' || event.key == 'ArrowLeft' || (event.key == 'Tab' && event.shiftKey)){ event.preventDefault(); var current = tooltip.find('.pagelayer-list-widget-active:visible'), prev = current.prevAll('.pagelayer-shortcode-holder:visible'); if(event.key == 'ArrowUp'){ var _prev = prev, cOffset = current.offset(); findNext = false; var searchNext = function(nEle){ var nOffset = nEle.offset(); var nBottom = nOffset.top + nEle.height(); if(nBottom > cOffset.top){ return true; } prev = nEle; findNext = true; // Current element left set +20 to manager previous scale (css) element on hover if(cOffset.left + 20 >= nOffset.left){ return false; } return true; } _prev.each(function(){ return searchNext(jQuery(this)); }); if(!findNext){ var gNext = current.parent().prevAll('.pagelayer-widget-group:visible').first(); _prev = gNext.children('.pagelayer-shortcode-holder:visible'); jQuery(_prev.get().reverse()).each(function(){ return searchNext(jQuery(this)); }); } } if(prev.length < 1){ prev = current.parent().prevAll('.pagelayer-widget-group:visible').first().find('.pagelayer-shortcode-holder:visible').last(); } if(prev.length < 1){ return; } prev.first().trigger('widget_active'); } // Select next widget in widget tooltip if(event.key == 'ArrowDown' || event.key == 'ArrowRight' || (event.key == 'Tab' && !event.shiftKey)){ event.preventDefault(); var current = tooltip.find('.pagelayer-list-widget-active:visible'); next = current.nextAll('.pagelayer-shortcode-holder:visible'); if(event.key == 'ArrowDown'){ var _next = next, cOffset = current.offset(), findNext = false; var searchNext = function(nEle){ var nOffset = nEle.offset(); var cBottom = cOffset.top + current.height(); if(cBottom > nOffset.top){ return true; } next = nEle; findNext = true; // Current element left set -20 to manager next scale (css) element on hover if(cOffset.left - 20 <= nOffset.left){ return false; } return true; } _next.each(function(){ return searchNext(jQuery(this)); }); if(!findNext){ var gNext = current.parent().nextAll('.pagelayer-widget-group:visible').first(); _next = gNext.children('.pagelayer-shortcode-holder:visible'); _next.each(function(){ return searchNext(jQuery(this)); }); } } if(next.length < 1){ next = current.parent().nextAll('.pagelayer-widget-group:visible').first().find('.pagelayer-shortcode-holder:visible'); } if(next.length < 1){ return; } next.first().trigger('widget_active'); } } // Is this in the editable area ? if (tEle.is('input, textarea') || editable.length > 0) { return; } // Delete if(event.keyCode == 46){ pagelayer_delete_element('[pagelayer-active]'); } // ctrl+z handle if(event.keyCode == 90 && event.ctrlKey){ pagelayer_do_history('undo'); } // ctrl+y handle if(event.keyCode == 89 && event.ctrlKey){ pagelayer_do_history('redo'); } }); // Handle Copy of content jQuery(document).on('copy', function(copyEvent){ // Is Selected string? var selectedText = ""; if (window.getSelection){ // all modern browsers and IE9+ selectedText = window.getSelection().toString(); } if(selectedText.length > 0){ return; } if(pagelayer_active.el && pagelayer_active.el.id){ copyEvent.preventDefault(); // Save the active element id pagelayer_copy_select("[pagelayer-id='"+pagelayer_active.el.id+"']", copyEvent); } }); // This is for preload clipboard data // Content can be copied from outside var pagelayerIsParentBlured = true; jQuery(window).on('focus', function(e){ if(pagelayerIsParentBlured){ pagelayer_copy_from_clipboard(); } pagelayerIsParentBlured = true; }); jQuery(window.parent).on('focus', function(){ pagelayerIsParentBlured = false; }); // Handle Paste in the editor jQuery(document).on('paste', function(pasteEvent){ var pEle_target = jQuery((pasteEvent.originalEvent || pasteEvent).target); var tag = pagelayer_tag(pEle_target.closest('[pagelayer-id]')); var clipboardData = (pasteEvent.originalEvent || pasteEvent).clipboardData; var items = clipboardData.items; var pagelayer_ajax_func = {}; var contenteditable = false; var pasteWidget = false; if( pEle_target.closest('[contenteditable="true"]').length > 0 || pEle_target.is('input, textarea') ){ pEle_target = pEle_target.closest('[contenteditable="true"], input, textarea'); contenteditable = true; } if( items.length < 1 || (items.length == 1 && pagelayer_empty(clipboardData.getData(items[0].type))) ){ pasteWidget = true; } // This function for ajax before send call back pagelayer_ajax_func['beforeSend'] = function(xhr){ // If target is not content editable if( pagelayer_empty(contenteditable) ){ // If we dont have an active element then return false and stop ajax if( !(pagelayer_active.el && pagelayer_active.el.id) ){ pagelayer_show_msg(pagelayer_l('active_ele_paste_msg')); return false; } pagelayer.copy_selected = jQuery('<div pagelayer-tag="pl_image"></div>'); // Is it to be pastable if(!pagelayer_can_copy_to('[pagelayer-id="'+pagelayer_active.el.id+'"]')){ pagelayer.copy_selected = ''; return false; } } pEle_target.css({'opacity': '0.33' , 'transition' : '0.1s'}); } // This function for ajax success call back pagelayer_ajax_func['success'] = function(obj){ // Successfully Uploaded if(obj['success']){ // For content editable e.g. Rich Text if( !pagelayer_empty(contenteditable) ){ document.execCommand('insertImage', false, obj['data']['url']); // For our widgets }else{ if(pagelayer_empty(pagelayer_active.el) || pagelayer_empty(pagelayer_active.el.id)){ pagelayer_show_msg('active_ele_paste_msg'); return; } var fTo = pagelayer_can_copy_to('[pagelayer-id="'+pagelayer_active.el.id+'"]'); // We need to empty pagelayer.copy_selected pagelayer.copy_selected = ''; var pasteAfter = function(){ // Prevent to add action history pagelayer.history_action = false; // Create image html var html = pagelayer_create_sc('pl_image'); pagelayer_set_atts(html, 'id', obj['data']['id']); pagelayer_set_tmp_atts(html, 'id-url', obj['data']['url']); // Allow to add action history pagelayer.history_action = true; // Copy the element var id = pagelayer_copy_element(html, fTo); jQuery('[pagelayer-id="'+id+'"]').click(); }; var replaceURL = function(){ // Finding widget image setting using id of jEle. Finding image editor setting from all of the other settings. var row = pagelayer.$$('[pagelayer-element-id='+pagelayer_active.el.id+']').find('.pagelayer-elp-image').eq(0).parent().parent(); row.find('.pagelayer-elp-image').css('background-image', 'url(\''+obj['data']['url']+'\')'); // To remove past temp attr so that they are not involve in future temp values var cname = row.attr('pagelayer-elp-name'); var old = _pagelayer_img_tmp_atts(row); delete old[cname+'-url']; for(var x in obj['data']['sizes']){ _pagelayer_set_tmp_atts(row, x+'-url', obj['data']['sizes'][x]['url']); delete old[cname+'-'+x+'-url']; } for(var x in old){ _pagelayer_set_tmp_atts(row, x+'-url', ''); } // Save and render _pagelayer_set_tmp_atts(row, 'url', obj['data']['url']); _pagelayer_set_atts(row, obj['data']['id']); }; // Image paste confirmation. if(!pagelayer_empty(pagelayer_active.el.tag) && pagelayer_active.el.tag == 'pl_image'){ pagelayer_confirmation_box(pagelayer_l('img_paste_conf'), replaceURL, pasteAfter, pagelayer_l('replace_img'), pagelayer_l('paste_after')); }else{ pasteAfter(); } } // Some error occured }else{ pagelayer_show_msg(obj['data']['message'], 'error', 10000); } } // This function for ajax complete call back pagelayer_ajax_func['complete'] = function(xhr){ //console.log(xhr); pEle_target.css({'opacity': '1' , 'transition' : '0.1s'}); } var findImg = pagelayer_editable_paste_handler(pasteEvent, pagelayer_ajax_func); if(pagelayer_empty(findImg) || pasteWidget){ // Check the active element if(pagelayer_active.el && pagelayer_active.el.id && pagelayer_active.el.tag != 'pl_post_props'){ const text = clipboardData.getData('text'); var pEle = jQuery(text); var getData = true; if(pEle.length > 0 && !pagelayer_empty(pagelayer_tag(pEle)) ){ // Cache pEle to make contextmenu paste faster pagelayer.copy_selected = pEle; getData = false; // Is it to be pastable if(pagelayer_can_copy_to('[pagelayer-id="'+pagelayer_active.el.id+'"]')){ pasteEvent.preventDefault(); var jEle = jQuery("[pagelayer-id='"+pagelayer_active.el.id+"']"); // Check if the any element is copied pagelayer_paste_element(jEle, false); } } }else{ pagelayer_show_msg(pagelayer_l('no_active_ele_paste')); } } }); // Delete an element as per the selector function pagelayer_delete_element(selector){ var jEle = jQuery(selector); var nearBy = jEle; // Anything found ? if(jEle.length > 0){ var id = pagelayer_assign_id(jEle); var sc = pagelayer_tag(jEle); // Is there a wrap var wrap = jQuery('[pagelayer-wrap-id="'+id+'"]'); var par = wrap.parent(); // Save this element in history action if(pagelayer.history_action){ var cEle = pagelayer_near_by_ele(id, sc); nearBy = jQuery(cEle.cEle); // To save in history, we need to save only element not the wraps as we call setup if we redo or undo jEle.find('style').remove(); jEle.find('.pagelayer-ele-overlay').remove(); // Unwrap the wraps jEle.find('.pagelayer-ele').each(function (){ var ele = jQuery(this); if(ele.parent().is('.pagelayer-ele-wrap')){ ele.unwrap(); } }); pagelayer_history_action_push({ 'title' : pagelayer_shortcodes[sc]['name'], 'action' : 'Deleted', 'pl_id' : id, 'html' : jEle[0].outerHTML, 'cEle' : cEle }); } wrap.remove(); pagelayer_empty_col(par); if( (pagelayer_active.el && pagelayer_active.el.id == id) || (pagelayer_active.el && pagelayer_active.el.id && jQuery('[pagelayer-id="'+pagelayer_active.el.id+'"]').length < 1)){ pagelayer.$$('.pagelayer-elpd-close').click(); } } // Do Pagelayer dirty pagelayer_do_dirty(nearBy); }; // Select an element function pagelayer_copy_select(selector, copyEvent = false){ var sEle = jQuery(selector); if(sEle.length < 1){ pagelayer_show_msg( pagelayer_l('invalid_copy_ele_msg')); return; } var tag = pagelayer_tag(sEle); if( pagelayer_empty(tag) || pagelayer_empty(pagelayer_shortcodes[tag]) || !pagelayer_empty(pagelayer_shortcodes[tag]['not_visible']) ){ pagelayer_show_msg( pagelayer_l('invalid_copy_ele_msg')); return; } var eHtml = sEle[0].outerHTML; pagelayer.copy_selected = eHtml; // To hide Cliboard warning while pasting pagelayerClipboardReadable = true; if(copyEvent){ // set clipbord data (copyEvent.originalEvent || copyEvent).clipboardData.setData('text/plain', eHtml); pagelayer_show_msg(pagelayer_l('copied_msg')); return; } // Copy element to clipboard pagelayer_copy_ele_to_clipboard(eHtml); } // Select an element function pagelayer_copy_ele_to_clipboard(eHtml){ var fallbackCopy = function(text){ const textarea = document.createElement("textarea"); textarea.value = text; textarea.style.position = "fixed"; // avoid scrolling textarea.style.opacity = 0; document.body.appendChild(textarea); textarea.focus(); textarea.select(); try { document.execCommand('copy'); pagelayer_show_msg( pagelayer_l('copied_msg')); }catch(err){ //console.error("Copy failed", err); pagelayer_show_msg( pagelayer_l('Copy failed')); } document.body.removeChild(textarea); } // Modern clipboard API if(navigator.clipboard && window.isSecureContext) { navigator.clipboard.writeText(eHtml).then(() => { pagelayer_show_msg( pagelayer_l('copied_msg')); }).catch(() => { fallbackCopy(eHtml); }); }else{ fallbackCopy(eHtml); } } function pagelayer_can_copy_to(to){ var jEle = jQuery(pagelayer.copy_selected); var tEle = jQuery(to); var eTag = pagelayer_tag(jEle); var tTag = pagelayer_tag(tEle); //console.log(eTag+' - '+tTag); // Invalid HTML copied if(pagelayer_empty(eTag)){ return false; } // Final to var fTo; // Selected element is a Row, can go only after a row if(eTag == 'pl_row'){ fTo = tEle.closest('.pagelayer-ele.pagelayer-row'); if(fTo.length != 1) return false; return fTo; } // Selected element is a Column, can go only after a col if(eTag == 'pl_col'){ fTo = tEle.closest('.pagelayer-ele.pagelayer-col'); if(fTo.length != 1) return false; return fTo; } // Is the TARGET a row or column when the selected item is a element if(tTag == 'pl_row' || tTag == 'pl_col'){ return false; } return tEle; } // Select an element function pagelayer_paste_element(to, syncClipboard = true){ // Wait for clipboard sync // This is for context paste if(syncClipboard){ if(pagelayerClipboardLoading){ setTimeout(function(){ pagelayer_paste_element(to); }, 200); return false; } // There may be some problems reading the clipboard if(pagelayerClipboardReadable !== true){ pagelayer_show_msg('If the paste is not done correctly then use Ctrl+V', 'warning'); } } var fTo = pagelayer_can_copy_to(to); // Is it a valid to if(!fTo){ return false; } if(!pagelayer_empty(pagelayer.copy_selected)){ pagelayer_copy_element(pagelayer.copy_selected, fTo); return true; } pagelayer_show_msg(pagelayer_l('no_copied')); return false; } var pagelayerClipboardLoading = false; var pagelayerClipboardReadable = true; // If copy_selected is empty then copy data from localStorage async function pagelayer_copy_from_clipboard(){ if(pagelayerClipboardLoading){ return; } if (navigator.clipboard && window.isSecureContext) { try { pagelayerClipboardLoading = true; const text = await navigator.clipboard.readText(); var pEle = jQuery(text); if(pEle.length > 0 && !pagelayer_empty(pagelayer_tag(pEle)) ){ pagelayer.copy_selected = pEle; } pagelayerClipboardLoading = false; pagelayerClipboardReadable = true; } catch (err) { pagelayerClipboardLoading = false; pagelayerClipboardReadable = 'Clipboard readText failed'; //console.warn("Clipboard readText failed", err); } } else { pagelayerClipboardReadable = 'Clipboard API not available or insecure context.'; // console.warn("Clipboard API not available or insecure context."); } } // Copy an element // Note : insertAfter should always be an pagelayer-ele function pagelayer_copy_element(selector, insertAfter){ var src = jQuery(selector); var tag = pagelayer_tag(src); insertAfter = insertAfter || src; insertAfter = insertAfter.parent(); var jEle = pagelayer_element_unsetup(src); // Give it an ID var id = pagelayer_assign_id(jEle); jQuery(insertAfter).after(jEle); pagelayer_element_setup('[pagelayer-id='+id+'], [pagelayer-id='+id+'] .pagelayer-ele', true); if(pagelayer_is_group(tag)){ pagelayer_sc_render(jEle); } // Save this element in history action if(pagelayer.history_action){ var cEle = pagelayer_near_by_ele(id, tag); pagelayer_history_action_push({ 'title' : pagelayer_shortcodes[tag]['name'], 'action' : 'Copied', 'pl_id' : id, 'html' : jEle[0].outerHTML, 'cEle' : cEle }); } //If column then renumber columns if(tag == 'pl_col'){ var row = src.parent().closest('.pagelayer-row'); pagelayer_renumber_col(row); } pagelayer_do_dirty(jEle); return id; }; // Traversing up one step an element function pagelayer_move_element_up(selector){ var src = jQuery(selector); var srcParent = src.parent(); var srcParentPrev = srcParent.prev('.pagelayer-wrap-row, .pagelayer-wrap-inner-row, .pagelayer-wrap-ele'); if(srcParentPrev.length<=0){ return; } var srcTopValue = srcParent.offset().top; if(srcParentPrev.hasClass('pagelayer-wrap-ele')){ var animUpCalc = srcTopValue-srcParentPrev.offset().top; srcParent.animate({top:-animUpCalc}, 200, function(){ srcParent.css('top', ''); srcParentPrev.css('top', ''); srcParentPrev.before(srcParent.detach()); }); srcParentPrev.animate({top:(srcParent.height()+srcParentPrev.height())-animUpCalc}, 200, function(){ srcParentPrev.css('top', ''); }); // Traverse window scroll with the element jQuery('html, body').animate({scrollTop:('-='+(srcTopValue-(srcParentPrev.offset().top)))},200); }else{ srcParentPrev.before(srcParent.detach()); // Traverse window scroll with the element jQuery('html, body').animate({scrollTop:('-='+(srcTopValue-(src.parent().offset().top)))},200); } pagelayer_do_dirty(src); } // Traversing down one step an element function pagelayer_move_element_down(selector){ var src = jQuery(selector); var srcParent = src.parent(); var srcParentNext = srcParent.next('.pagelayer-wrap-row, .pagelayer-wrap-inner-row, .pagelayer-wrap-ele'); if(srcParentNext.length<=0){ return; } var srcTopValue = srcParent.offset().top; if(srcParentNext.hasClass('pagelayer-wrap-ele')){ var animDownCalc = srcParentNext.offset().top-srcTopValue; srcParent.animate({top:(animDownCalc-(srcParent.height()-srcParentNext.height()))}, 200, function(){ srcParent.css('top', ''); srcParentNext.css('top', ''); srcParentNext.after(srcParent.detach()); }); srcParentNext.animate({top:-animDownCalc}, 200, function(){ srcParentNext.css('top', ''); }); // Traverse window scroll with the element jQuery('html, body').animate({scrollTop:('+='+(animDownCalc-(srcParent.height()-srcParentNext.height())))},200); }else{ srcParentNext.after(srcParent.detach()); // Traverse window scroll with the element jQuery('html, body').animate({scrollTop:('+='+((src.parent().offset().top)-srcTopValue))},200); } pagelayer_do_dirty(src); } // Save sections as template function pagelayer_ajax_save_template(data, ajax_call_back = ''){ if(pagelayer_empty(data)){ return; } //save global sections and widgets jQuery.ajax({ type: "POST", url: pagelayer_ajax_url+'&action=pagelayer_save_templ_content&postID='+pagelayer_postID, data: { pagelayer_nonce: pagelayer_ajax_nonce, global_widgets : data }, success: function(response, status, xhr){ //alert(data); var obj = jQuery.parseJSON(response); if(!pagelayer_empty(ajax_call_back) || typeof ajax_call_back == 'function'){ ajax_call_back(obj); } }, error: function(errorThrown){ console.log(errorThrown); } }); } // Get global id of the element function pagelayer_get_global_id(jEle){ return pagelayer_get_att(jEle, 'global_id'); } // Set element as a global widget function pagelayer_set_ele_global(jEle, post_id){ // Add attribute for global ID jEle.attr('pagelayer-global-id', post_id); pagelayer.history_action = false; pagelayer_set_atts(jEle, 'global_id', post_id); pagelayer.history_action = true; return jEle; } // Save widgets as a global widget function pagelayer_save_sections(sel, section = 'section'){ var jEle = jQuery(sel); var pagelayer_ajax_func = {}; var label = 'Please enter the title'; var content = pagelayer_generate_sc(jEle, true); var data = {};// create array for template data data[0] = {}; switch(section){ case 'global_widget' : var title = prompt(label, 'Global Widget'); if (title == null) return; // Save the widget data in global widget array if(pagelayer_empty(pagelayer_global_widgets)){ pagelayer_global_widgets = {}; } break; case'global_section' : var title = prompt(label, 'Global Section'); if (title == null) return; break; case 'section': var title = prompt(label, 'Section'); if (title == null) return; break; } // Add Data data[0]['title'] = title; data[0]['post_type'] = 'pagelayer-template'; data[0]['type'] = section; data[0]['content'] = content.replace(/pagelayer-id="(.*?)"/g, ""); // Need to remove pagelayer id, data[0]['content'] = pagelayer_Base64.encode(data[0]['content']); // This function for ajax success call back of global widget pagelayer_ajax_func['global_widget'] = function(obj){ if(pagelayer_empty(obj['success'])){ return; } for(var post_id in obj['success']){ pagelayer_set_ele_global(jEle, post_id); // Add global jData = {}; jData['post_id'] = post_id; jData['title'] = title; // TODO : create modal to input title jData['$'] = jEle; jData['is_dirty'] = true; // Add the array in global widgets array pagelayer_global_widgets[post_id] = jData; pagelayer.$$('.pagelayer-elpd-close').click(); pagelayer.$$('.pagelayer-widget-tab').click(); break; } } // This function for ajax success call back of global sections pagelayer_ajax_func['global_section'] = function(obj){ // TODO: For global Sections //console.log(obj); } // This function for ajax success call back of section s pagelayer_ajax_func['section'] = function(obj){ //console.log(obj); } pagelayer_ajax_save_template(data, pagelayer_ajax_func[section]); } // Genrate sc for global widgets function pagelayer_generate_sc_global_widget(){ var global_widgets = {}; // Create shortcode for all the global widgets for(var y in pagelayer_global_widgets){ var cWidget = pagelayer_global_widgets[y]; // If is_dirty empty then continue the loop if(pagelayer_empty(cWidget['is_dirty'])){ continue; } global_widgets[y] = {}; global_widgets[y]['title'] = cWidget['title']; global_widgets[y]['post_id'] = pagelayer_empty(cWidget['post_id']) ? 0 : cWidget['post_id']; global_widgets[y]['post_type'] = 'pagelayer-template'; global_widgets[y]['type'] = 'global_widget'; var content = pagelayer_generate_sc(jQuery(cWidget.$), true); var tag = pagelayer_tag(jQuery(cWidget.$)); // IF is group then need to remove pagelayer id, if(!pagelayer_empty(tag) && pagelayer_is_group(tag)){ content = content.replace(/pagelayer-id="(.*?)"/g, ""); } global_widgets[y]['content'] = pagelayer_Base64.encode(content); pagelayer_global_widgets[y]['is_dirty'] = false; } return global_widgets; } var pagelayer_set_global_timmer = {}; // If you edit one Global widget it should be copied to other instances of the same global widget function pagelayer_setup_global_widgets(id, jEle){ if(pagelayer_empty(id) || pagelayer_empty(pagelayer_global_widgets[id])){ return; } var elData = pagelayer_global_widgets[id]; clearTimeout(pagelayer_set_global_timmer); pagelayer_set_global_timmer = setTimeout(function(){ // Set attrs for all the global widgets jQuery(pagelayer_editable+' [pagelayer-global-id='+ id +']').each(function(){ var cEle = jQuery(this); var cEleID = pagelayer_id(cEle); if( jEle.length > 0 && jEle.is(cEle)){ return true; } pagelayer.history_action = false; pagelayer.global_render = false; // Get HTML form global array var html = pagelayer_element_unsetup(elData.$, cEleID); if(cEle.parent().is('.pagelayer-ele-wrap')){ cEle.parent().children('.pagelayer-ele-overlay').remove(); cEle.unwrap(); } cEle[0].outerHTML = html[0].outerHTML; pagelayer_element_setup('[pagelayer-id='+cEleID+'], [pagelayer-id='+cEleID+'] .pagelayer-ele'); pagelayer_sc_render(jQuery('[pagelayer-id="'+cEleID+'"]')); pagelayer.history_action = true; pagelayer.global_render = true; }); }, 3000); } // Language key function pagelayer_l(k){ if(k in pagelayer_lang){ return pagelayer_lang[k]; } return k; } // Get props based on the tag function pagelayer_get_props(jEle){ var props = pagelayer_shortcodes[pagelayer_tag(jEle)]; return props; } // Get all props based on the tag but in a single structure function pagelayer_make_props_ref(){ // Loop through pagelayer_shortcodes for(var tag in pagelayer_shortcodes){ var all_props = pagelayer_shortcodes[tag]; pagelayer.props_ref[tag] = {}; // Loop through all props for(var i in pagelayer_tabs){ var tab = pagelayer_tabs[i]; for(var section in all_props[tab]){ var props = section in pagelayer_shortcodes[tag] ? pagelayer_shortcodes[tag][section] : pagelayer_styles[section]; // In case of widgets its possible ! if(pagelayer_empty(props)){ continue; } for(var x in props){ // Create an easy REFERENCE for access pagelayer.props_ref[tag][x] = props[x]; // Screen option REFERENCE is also needed for lookup if('screen' in props[x]){ pagelayer.props_ref[tag][x+'_tablet'] = props[x]; pagelayer.props_ref[tag][x+'_mobile'] = props[x]; } } } } } } // Set the given jELE as active function pagelayer_set_active(jEle){ // Make all other element as inactive jQuery('[pagelayer-active]').each(function(){ var $j = jQuery(this); $j.removeAttr('pagelayer-active'); }); jEle.attr('pagelayer-active', 1); // Add and remove the class jQuery('.pagelayer-active').removeClass('pagelayer-active'); jEle.parent().children('.pagelayer-ele-overlay').addClass('pagelayer-active'); } function pagelayer_sc(sc){ return sc.replace('pl_', ''); }; // Create a HTML dom element of the Short code // Return the jEle function pagelayer_create_sc(sc){ var html; var _sc = pagelayer_sc(sc); var func = window['pagelayer_create_sc_'+sc]; // Generate the HTML if(typeof func == 'function'){ html = window['pagelayer_create_sc_'+sc](); }else{ html = '<div '+pagelayer_sc_atts('pagelayer-'+_sc)+'></div>'; } html = jQuery(html); // Add the tag html.attr('pagelayer-tag', sc); // Give it an ID id = pagelayer_assign_id(html); // Try to set the default values over 5 loops pagelayer_set_default_atts(html, 5); return html; }; // Returns a list of default attributes to set as per the current selection function pagelayer_set_default_atts(jEle, set){ set = set || 0; var hasSet = false; for(var i = 1; i <= set;i++){ //console.log('[pagelayer_set_default_atts] Loop :'+i); //console.log(jEle); // Get existing data var el = pagelayer_data(jEle, true); // If it is the last loop and we are greater than 1 if(i > 1 && i == set){ console.log('[pagelayer_default_atts] Still vars to set. Please check your shortcode params !'); } // We are supposed to set ! if('set' in el && !pagelayer_empty(el.set)){ pagelayer_set_atts(jEle, el.set); hasSet = true; }else{ break; } } return hasSet; } // Returns the tag function pagelayer_tag(jEle){ // It could be the wrap if(jEle.hasClass('pagelayer-ele-wrap')){ return jEle.children('.pagelayer-ele').attr('pagelayer-tag'); } // It could be the row or col holder if(jEle.hasClass('pagelayer-row-holder') || jEle.hasClass('pagelayer-col-holder')){ return jEle.parent().attr('pagelayer-tag'); } return jEle.attr('pagelayer-tag'); } function pagelayer_el_data_ref(jEle){ var id = pagelayer_id(jEle); if(!(id in pagelayer.el)){ pagelayer.el[id] = {}; } if(typeof pagelayer.el[id] !== 'object'){ pagelayer.el[id] = {}; } if(!('attr' in pagelayer.el[id])){ pagelayer.el[id]['attr'] = {}; } if(Array.isArray(pagelayer.el[id]['attr'])){ pagelayer.el[id]['attr'] = {}; } if(!('tmp' in pagelayer.el[id])){ pagelayer.el[id]['tmp'] = {}; } if(Array.isArray(pagelayer.el[id]['tmp'])){ pagelayer.el[id]['tmp'] = {}; } return pagelayer.el[id]; }; // Gets the data node which can be position 0 or 1 function pagelayer_el_get_data_node(jEle){ var node = jEle[0].childNodes[0]; if(node && node.nodeType === 8){ return node; } node = jEle[0].childNodes[1]; if(node && node.nodeType === 8){ return node; } return false; } // Get the data function pagelayer_el_get_data(jEle){ var node = pagelayer_el_get_data_node(jEle); if(node){ return JSON.parse(node.nodeValue); } return false; }; // Add the data back again function pagelayer_el_dump_data(jEle){ var node = pagelayer_el_get_data_node(jEle); var d = pagelayer_serializeAttributes(pagelayer_el_data_ref(jEle)); if(node){ node.nodeValue = d; }else{ jEle.prepend('<!-- '+d+' -->'); } }; // Gets a single attribute value function pagelayer_get_att(jEle, att){ var ref_data = pagelayer_el_data_ref(jEle); if(att in ref_data['attr']){ return ref_data['attr'][att]; } return; }; // Gets a single attribute value function pagelayer_get_tmp_att(jEle, att){ var ref_data = pagelayer_el_data_ref(jEle); if(att in ref_data['tmp']){ return ref_data['tmp'][att]; } return; }; // This function will just set atts and not do anything else // Atts can be string or object. If its string, then val is needed function pagelayer_set_atts(jEle, atts, val){ if(typeof atts == 'string'){ var tmp = {}; tmp[atts] = val; atts = tmp; } if(typeof atts != 'object'){ return false; } var tag = pagelayer_tag(jEle); var trigger_onchange = 0; if(pagelayer_empty(tag)){ console.log('Set atts found no tag'); console.log(jEle); return; } // All props var all_props = pagelayer_shortcodes[tag];//console.log(tag);console.log(jEle); var trigger_props = {}; var no_val = {}; var defaults = {}; var _props = {}; // Loop through all props for(var i in pagelayer_tabs){ var tab = pagelayer_tabs[i]; for(var section in all_props[tab]){ var props = section in pagelayer_shortcodes[tag] ? pagelayer_shortcodes[tag][section] : pagelayer_styles[section]; for(var x in props){ if('default' in props[x]){ defaults[x] = 1; } // Create an easy REFERENCE for access _props[x] = props[x]; // Screen option REFERENCE is also needed for lookup if('screen' in _props[x]){ _props[x+'_tablet'] = props[x]; _props[x+'_mobile'] = props[x]; } // Dont set any val, but we set temp value if('no_val' in props[x]){ no_val[x] = 1; } if('req' in props[x] || 'show' in props[x]){ var show = 'req' in props[x] ? props[x]['req'] : props[x]['show']; // We have both req and show, so lets just combine the values and then show // NOTE : We need to make an array and not just merge the 2 as they are references if('req' in props[x] && 'show' in props[x]){ // Add the req values show = JSON.parse(JSON.stringify(props[x]['req'])); // Now the show values need to be looped for(var t in props[x]['show']){ show[t] = props[x]['show'][t]; } } for(var showParam in show){ var val = show[showParam]; var except = showParam.substr(0, 1) == '!' ? true : false; showParam = except ? showParam.substr(1) : showParam; trigger_props[showParam] = 1; } } } } } var ref_data = pagelayer_el_data_ref(jEle); for(var x in atts){ // Are we to trigger change if(x in trigger_props){ trigger_onchange = 1; } //console.log(x+'-'+atts[x]); // Is this a pro feature and we are not pro ? Then we dont do anything and continue ! if(!pagelayer_empty(_props[x]) && 'pro' in _props[x] && pagelayer_empty(pagelayer_pro)){ continue; } if(x in no_val){ pagelayer_set_tmp_atts(jEle, x, atts[x]); continue; } // Record History if(pagelayer.history_action){ var old_val = pagelayer_get_att(jEle, x) || ''; var label = x; if(x in _props && 'label' in _props[x]){ label = _props[x]['label']; } pagelayer_history_action_push({ 'title' : all_props['name'], 'subTitle' : label, 'action' : 'Edited', 'attrType' : 'a_attr', 'pl_id' : pagelayer_id(jEle), 'atts' : x, 'oldVal' : old_val, 'newVal' : atts[x] }); } // Remove the attribute if its BLANK and there is no default for it // If there is a default, we set it to blank to keep record of the current val if(pagelayer_length(atts[x]) < 1){ // Remove values which are not defaults if(!(x in defaults)){ delete ref_data['attr'][x]; // Otherwise keep value set for avoiding resetting }else{ ref_data['attr'][x] = atts[x]; } // Remove the tmp atts anyway pagelayer_clear_tmp_atts(jEle, x); // Set the value }else{ ref_data['attr'][x] = pagelayer_trim(atts[x]); } // Are you the active element if(pagelayer_is_active(jEle)){ // TODO : Record Undo and Redo } } pagelayer_el_dump_data(jEle); // Trigger the change of the parameter and show the required properties if(trigger_onchange){ pagelayer_elpd_show_rows(); } pagelayer_do_dirty(jEle); }; // This function will just set atts and not do anything else // Atts can be string or object. If its string, then val is needed function pagelayer_set_tmp_atts(jEle, atts, val){ if(typeof atts == 'string'){ var tmp = {}; tmp[atts] = val; atts = tmp; } if(typeof atts != 'object'){ return false; } var ref_data = pagelayer_el_data_ref(jEle); for(var x in atts){ // Record history if(pagelayer.history_action){ var old_val = pagelayer_get_tmp_att(jEle, x) || ''; pagelayer_history_action_push({ 'title' : pagelayer_shortcodes[pagelayer_tag(jEle)]['name'], 'subTitle' : x, 'action' : 'Edited', 'attrType' : 'tmp_attr', 'pl_id' : pagelayer_id(jEle), 'atts' : x, 'oldVal' : old_val, 'newVal' : atts[x] }); } ref_data['tmp'][x] = atts[x]; } pagelayer_el_dump_data(jEle); }; // This function removes the temporary attributes of an ele function pagelayer_clear_tmp_atts(jEle, attr){ var to_del = new Array(); var regexp = new RegExp('^'+attr+'\-', 'gi'); var ref_data = pagelayer_el_data_ref(jEle); //console.log(to_del); for(var n in ref_data['tmp']){ if(n.match(regexp)){ delete ref_data['tmp'][n]; } } } // This function removes the temporary attributes of an ele function pagelayer_img_tmp_atts(jEle, attr){ var found = {}; var regexp = new RegExp('^'+attr+'\-', 'gi'); var ref_data = pagelayer_el_data_ref(jEle); for(var n in ref_data['tmp']){ if(n.match(regexp)){ found[n] = 1; } } return found; } // Set the att and classes of an HTML which is not yet created function pagelayer_sc_atts(classes){ var r = new Array(); return 'class="'+classes+' pagelayer-ele" '+r.join(' '); } // Is the jEle the active element ? function pagelayer_is_active(jEle){ // Is this the active Element ? if(pagelayer_empty(pagelayer_active.el) || jEle.attr('pagelayer-id') != pagelayer_active.el.id){ return false; } return true; }; // Removes {{}} from the variable name function pagelayer_var(val){ return val.substring(2, (val.length - 2)); } // Take care of the CSS function pagelayer_css_render(css, val, seperator){ //console.log('CSS '+css+' | '+val); // Seperator seperator = seperator || ','; var replaceCss = function(rule, value, toreplace){ value = pagelayer_hex8_to_rgba(value); // If value has css var then we remove units if(value.match(/var\(/)){ var toreplace = toreplace.replace(/[-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); toreplace = new RegExp( toreplace+'?[^\\s|;]+', 'ig'); } return rule.split(toreplace).join(value); } // Replace the val css = replaceCss(css, val, '{{val}}'); // If there is an array if(css.match(/val\[\d/)){ if(typeof val != 'object' || val === null){ val = String(val).split(seperator); } for(var i in val){ css = replaceCss(css, val[i], '{{val['+i+']}}'); } } //console.log('Final CSS '+css); return css; }; // Handle hexa to rgba and also remove alpha which is ff function pagelayer_hex8_to_rgba(val){ val = String(val); // If opacity is ff then discard ff if(val.match(/^#([a-f0-9]{6})ff$/)){ return val.substr(0,7); } // Lets handle the RGB+opacity if(val.match(/^#([a-f0-9]{8})$/)){ var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(val); val = 'rgba('+parseInt(result[1], 16)+', '+parseInt(result[2], 16)+', '+parseInt(result[3], 16)+', '+(parseInt(result[4], 16)/255).toFixed(2)+')'; } return val; }; // Replace the variables function pagelayer_parse_el_vars(str, el){ str = str.split('{{element}}').join(el.CSS.cssSel); str = str.split('{{wrap}}').join(el.CSS.wrap); str = str.split('{{ele_id}}').join(el.id); return str; } // Replace the variables function pagelayer_parse_vars(str, el){ for(var x in el.tmp){ str = str.split('{{{'+x+'}}}').join(el.tmp[x]); } for(var x in el.atts){ str = str.split('{{'+x+'}}').join(el.atts[x]); } return str; }; // Render the Element function pagelayer_sc_render(jEle){ // We render only the active element if(!pagelayer_is_active(jEle)){ //return false; } //console.log('Rendering'); // Handle the CSS part // Get the id, tag, atts, data, etc var el = pagelayer_data(jEle, true); var all_props = pagelayer_shortcodes[el.tag]; var elCSS = { classes: [], remove_classes: [], attr: [], remove_attr: [], css: [], edit: [], cssSel: '.p-'+el.id, sel: '[pagelayer-id="'+el.id+'"]', wrap: '[pagelayer-wrap-id="'+el.id+'"]' }; // Create a reference el.CSS = elCSS; // Make sure if we have the class selector el.$.addClass('p-'+el.id); //console.log(el.atts); 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[el.tag] ? pagelayer_shortcodes[el.tag][section] : pagelayer_styles[section];//console.log(props); // Loop the props for(var x in props){ // pagelayer_data will return attributes even if they are BLANK e.g. attr="" // Render doesnt consider BLANK values as values, and we are unsetting them now // If in any situation you need to consider blank values, please handle in the JS / PHP function of the Shortcode if(x in el.atts && pagelayer_length(el.atts[x]) < 1){ delete el.atts[x]; } // Any editor ? if('edit' in props[x]){ elCSS.edit.push({prop: x, sel: props[x]['edit']}); } // Load permalink values if(props[x]['type'] == 'link'){ if('selector' in props[x] && typeof el.atts[x] == 'object'){ var tmp = {}; // Link is required for check IF and IF-EXT in html if(pagelayer_length(el.atts[x]['link']) < 1){ delete el.atts[x]; continue; } if( 'target' in el.atts[x] && !pagelayer_empty(el.atts[x]['target']) ){ tmp = {'sel': props[x]['selector'], 'val': 'target="_blank"'}; elCSS['attr'].push(tmp); } if( 'rel' in el.atts[x] && !pagelayer_empty(el.atts[x]['rel']) ){ tmp = {'sel': props[x]['selector'], 'val': 'rel="nofollow"'}; elCSS['attr'].push(tmp); } if( 'attrs' in el.atts[x] && !pagelayer_empty(el.atts[x]['attrs']) ){ var attrsVal = pagelayer_trim(el.atts[x]['attrs'].split(';')); attrsVal.forEach(function(item, index){ var splitValue = item.split(/=(.*)/); var attKey = pagelayer_trim(splitValue[0]); var setAtt = ''; // Validate the attrs name if(attKey.length < 1 || pagelayer_empty(attKey.match(/^[a-z_]+[\w:.-]*$/i))){ return; } if(splitValue.length < 2){ setAtt = attKey+'=""'; }else{ setAtt = attKey+'="'+splitValue[1]+'"'; } tmp = {'sel': props[x]['selector'], 'val': setAtt}; elCSS['attr'].push(tmp); }); } } } // Do we have a addClass ? // We are checking before the element has a value so that we can add or remove the class if('addClass' in props[x]){ var addClasses; // Convert the string to an array if(typeof props[x]['addClass'] === 'string'){ addClasses = [props[x]['addClass']]; }else{ addClasses = props[x]['addClass']; } for(var c in addClasses){ // The selector var tSel = jQuery.isNumeric(c) ? '' : c; // If there is a VAL // NOTE : Only val is allowed when there is a list if(addClasses[c].match(/\{\{val\}\}/) && 'list' in props[x]){ for(var l in props[x]['list']){ var tmp = {'sel': tSel, 'val': addClasses[c].replace('{{val}}', l)}; if(el.atts[x] == l){ elCSS['classes'].push(tmp); }else{ elCSS['remove_classes'].push(tmp); } } }else{ var tmp = {'sel': tSel, 'val': addClasses[c].replace('{{val}}', el.atts[x])}; // If the value is there if(x in el.atts){ elCSS['classes'].push(tmp); }else{ elCSS['remove_classes'].push(tmp); } } } } // Do we have a addAttr ? // We are checking before the element has a value so that we can add or remove the attr if('addAttr' in props[x]){ var addAttr; // Convert the string to an array if(typeof props[x]['addAttr'] === 'string'){ addAttr = [props[x]['addAttr']]; }else{ addAttr = props[x]['addAttr']; } for(var c in addAttr){ // The selector var tSel = jQuery.isNumeric(c) ? '' : c; var tmp = {'sel': tSel, 'val': addAttr[c]}; // If the value is there if(x in el.atts){ elCSS['attr'].push(tmp); }else{ elCSS['remove_attr'].push(tmp); } } } // Do we have a CSS ? if('css' in props[x]){ var css; // Convert the string to an array if(typeof props[x]['css'] === 'string'){ css = [props[x]['css']]; }else{ css = props[x]['css']; } // Screen modes var modes = {desktop: '', tablet: '_tablet', mobile: '_mobile'}; var desk_global = (props[x]['type'] == 'typography') ? pagelayer_is_global_typo(el.atts[x]) : ''; for(var m in modes){ var xm = x+modes[m]; // If the value is there if(!(xm in el.atts) && pagelayer_empty(desk_global)){ continue; } var xm_val = el.atts[xm]; // If is global color if(props[x]['type'] == 'color'){ xm_val = pagelayer_parse_color(el.atts[xm]); } // If is global font if(props[x]['type'] == 'typography'){ xm_val = pagelayer_parse_typo(xm_val, false, desk_global, m); } // If there is global gradient color if(props[x]['type'] == 'gradient'){ if(pagelayer_is_string(xm_val)){ xm_val = xm_val.split(','); } for(key in xm_val){ xm_val[key] = pagelayer_parse_color(xm_val[key]); } } for(var c in css){ // The selector var tSel = jQuery.isNumeric(c) ? '{{element}}' : c; var tmp = { sel: tSel, val: pagelayer_css_render(css[c], xm_val, (props[x].sep || ',')), }; // Is this a tablet if(m == 'tablet'){ tmp.sel = '@media (max-width: '+ pagelayer_settings['tablet_breakpoint'] +'px) and (min-width: '+ (pagelayer_settings['mobile_breakpoint'] +1) +'px){'+tmp.sel; tmp.val = tmp.val+'}'; } // Is this a mobile mode ? if(m == 'mobile'){ tmp.sel = '@media (max-width: '+ pagelayer_settings['mobile_breakpoint'] +'px){'+tmp.sel; tmp.val = tmp.val+'}'; } // Push to store elCSS.css.push(tmp); } } } } } } // If there is an HTML, then process it if('html' in pagelayer_shortcodes[el.tag]){ // Is there a function to render ? var fn = window['pagelayer_render_'+jEle.attr('pagelayer-tag')]; if(typeof fn == 'function'){ fn(el); } el.iHTML = jQuery('<div>'+pagelayer_shortcodes[el.tag]['html']+'</div>'); // Lets process the 'if-ext' el.iHTML.find('[if-ext]').each(function (){ var $j = jQuery(this); var reqvar = pagelayer_var($j.attr('if-ext')); $j.removeAttr('if-ext'); // Is the element there ? if(!(reqvar in el.atts && !pagelayer_empty(el.atts[reqvar]))){ //console.log('HERE'); $j[0].outerHTML = $j.html(); } }); // Lets process the 'if' el.iHTML.find('[if]').each(function (){ var $j = jQuery(this); var reqvar = pagelayer_var($j.attr('if')); $j.removeAttr('if'); // Is the element there ? if(!(reqvar in el.atts && !pagelayer_empty(el.atts[reqvar]))){ //console.log('HERE'); $j.remove(); } }); //console.log(el.atts); // Parse the variables var new_html = pagelayer_parse_vars(el.iHTML.html(), el); el.iHTML.html(new_html); // Do we have to wrap the innerHTML ? if('holder' in pagelayer_shortcodes[el.tag]){ var hSel = pagelayer_shortcodes[el.tag]['holder']; var holder = jEle.find(hSel).first(); // Detach the holder holder.detach(); // Add the new HTML el.$.html(el.iHTML.html()); // reAttach the children only el.$.find(hSel).html(holder.children()); // No holder }else{ //console.log(el.iHTML.html()); el.$.html(el.iHTML.html()); } // Rows, Cols and Groups }else{ // Is there a function to render ? var fn = window['pagelayer_sc_render_'+jEle.attr('pagelayer-tag')]; if(typeof fn == 'function'){ fn(el); } } // Is there a function to render after HTML insertion but before CSS and attr ? var post = window['pagelayer_render_html_'+jEle.attr('pagelayer-tag')]; if(typeof post == 'function'){ post(el); } //////////////////////////// // Are there any edit fields ? //////////////////////////// if(elCSS.edit.length > 0){ for(var c in elCSS.edit){ var prop = elCSS.edit[c]['prop']; var tSel = elCSS.edit[c]['sel']; var node = tSel.length < 1 ? jEle : jEle.find(tSel); node.attr({'pagelayer-editable': prop, 'contenteditable' : 'true'}); } } //////////////////////////// // Are there any addClass ? //////////////////////////// // If we have any classes to add if(elCSS.classes.length > 0){ //console.log(elCSS.classes); for(var c in elCSS.classes){ var tSel = elCSS.classes[c]['sel'].replace('{{element}}', ''); var node = tSel.length < 1 ? jEle : jEle.find(tSel); if(!node.hasClass(elCSS.classes[c]['val'])){ node.addClass(elCSS.classes[c]['val']); } } } // If we have any classes to remove if(elCSS.remove_classes.length > 0){ //console.log(elCSS.remove_classes); for(var c in elCSS.remove_classes){ var tSel = elCSS.remove_classes[c]['sel'].replace('{{element}}', ''); var node = tSel.length < 1 ? jEle : jEle.find(tSel); if(node.hasClass(elCSS.remove_classes[c]['val'])){ node.removeClass(elCSS.remove_classes[c]['val']); } } } //////////////////////////// // Are there any addAttr ? //////////////////////////// // If we have any attributes to add if(elCSS.attr.length > 0){ //console.log(elCSS.attr); for(var c in elCSS.attr){ var tSel = elCSS.attr[c]['sel'].replace('{{element}}', ''); var node = tSel.length < 1 ? jEle : jEle.find(tSel); var att = elCSS.attr[c]['val'].split(/=(.*)/); att[1] = pagelayer_parse_vars(att[1], el); att[1] = pagelayer_trim(att[1], '"'); // Is it the same val ? if(!node.attr(att[0]) !== att[1]){ node.attr(att[0], att[1]); } } } // If we have any attributes to add if(elCSS.remove_attr.length > 0){ //console.log(elCSS.remove_attr); for(var c in elCSS.remove_attr){ var tSel = elCSS.remove_attr[c]['sel'].replace('{{element}}', ''); var node = tSel.length < 1 ? jEle : jEle.find(tSel); var att = elCSS.remove_attr[c]['val'].split('='); if(node.is('['+att[0]+']')){ node.removeAttr(att[0]); } } } // The style element var style = pagelayer.$('[pagelayer-style-id='+el.id+']'); // If we have any RULES CSS, then handle it if(elCSS.css.length > 0){ // Did we find it ? if(style.length < 1){ jEle.prepend('<style pagelayer-style-id="'+el.id+'"></style>'); } // Get it again style = pagelayer.$('[pagelayer-style-id='+el.id+']'); // Make the rules var rules = []; // Loop for(var c in elCSS.css){ var tSel = pagelayer_parse_el_vars(elCSS.css[c]['sel'], el); var rule = elCSS.css[c]['val']; if(tSel.length > 0){ rules.push(tSel+'{'+rule+'}'); }else{ rules.push(pagelayer_parse_el_vars(rule, el)); } } // CSS Selector overide if(!pagelayer_empty(all_props['overide_css_selector'])){ for(var r in rules){ var overide_css_selector = pagelayer_parse_el_vars(all_props['overide_css_selector'], el); rules[r] = rules[r].split(el.CSS.cssSel).join(overide_css_selector); rules[r] = rules[r].split(el.CSS.wrap).join(overide_css_selector); } } // Set the style style.html(pagelayer_parse_vars(rules.join("\n"), el)); //console.log(style); }else{ style.remove(); } // Is there a function to render at the end ? var end = window['pagelayer_render_end_'+jEle.attr('pagelayer-tag')]; if(typeof end == 'function'){ end(el); } // If the element have any parent var par = pagelayer_get_parent(jEle); var eleId = el.id; if(par){ eleId = par; pagelayer_sc_render(pagelayer_ele_by_id(par)); } // Render End trigger pagelayer_trigger_action('pagelayer_sc_render_end', [el]); var gEle = pagelayer_ele_by_id(eleId); var gId = pagelayer_get_global_id(gEle); pagelayer_el_dump_data(jEle); // If global id exist then update the global array and restup the all global element if(!pagelayer_empty(gId) && !pagelayer_empty(pagelayer.global_render)){ if(!pagelayer_empty(pagelayer_global_widgets[gId])){ pagelayer_global_widgets[gId].$ = gEle[0].outerHTML; pagelayer_global_widgets[gId]['is_dirty'] = true; pagelayer_setup_global_widgets(gId, pagelayer_ele_by_id(eleId), true); }else{ pagelayer_set_atts(gEle, 'global_id', ''); } }; }; // Is the given global color function pagelayer_is_global_color(color){ var color_key = color.substr(0, 1) == '$' ? color.substr(1) : ''; // If global color not exist if(!pagelayer_empty(color_key)){ if(!(color_key in pagelayer_global_colors)){ color_key = 'primary'; } return color_key; } return false; } // Is the given global color function pagelayer_is_global_typo(value){ var typo_key = ''; // Backward compatibility if(pagelayer_is_string(value) && value.substr(0, 1) == '$'){ typo_key = value.substr(1); } if(typeof value == 'object' && 'global-font' in value){ typo_key = value['global-font']; } // If global color not exist if(!pagelayer_empty(typo_key) && !(typo_key in pagelayer_global_fonts)){ typo_key = 'primary'; } return typo_key; } // Parse typography and handle Backward compatibility function pagelayer_parse_typo(value, noglobal, desk_global, mode){ noglobal = noglobal || false; mode = mode || 'desktop'; desk_global = desk_global || ''; if(pagelayer_empty(value)){ value = {}; } // Backward compatibility for comma seperated val if(pagelayer_is_string(value) && value.substr(0, 1) != '$'){ return value.split(','); } var val = ['','','','','','','','','','','']; var typos = ['font-family', 'font-size', 'font-style', 'font-weight', 'font-variant', 'text-decoration-line', 'text-decoration-style', 'line-height', 'text-transform', 'letter-spacing', 'word-spacing']; var global_typo = pagelayer_is_global_typo(value); var _desk_global = false; if(pagelayer_empty(global_typo)){ global_typo = desk_global; _desk_global = true; } // Apply global typo for(var typo in typos){ var typoKey = typos[typo]; // Backspace compatibility for normal array if(typeof value == 'object' && !pagelayer_empty(value[typo])){ val[typo] = value[typo]; } if(!pagelayer_empty(value[typoKey])){ val[typo] = value[typoKey]; } if(pagelayer_empty(global_typo) || !pagelayer_empty(val[typo]) || noglobal){ continue; } var globalVal = pagelayer_global_fonts[global_typo]['value']; if( !(typoKey in globalVal) || pagelayer_empty(globalVal[typoKey]) || (typeof globalVal[typoKey] == 'object' && pagelayer_empty(globalVal[typoKey][mode])) || (typeof globalVal[typoKey] != 'object' && !pagelayer_empty(_desk_global) && mode != 'desktop') ){ continue; } val[typo] = 'var(--pagelayer-font-'+global_typo+'-'+typoKey+')'; } return val; } // Parse color for global color function pagelayer_parse_color(value, glob_var = true){ var is_global = pagelayer_is_global_color(value); if(pagelayer_empty(is_global)){ return value; } if(pagelayer_empty(glob_var)){ return pagelayer_global_colors[is_global]['value']; } return 'var(--pagelayer-color-'+is_global+')'; } // Is the given tag a group function pagelayer_is_group(tag){ if('has_group' in pagelayer_shortcodes[tag] && !pagelayer_empty(pagelayer_shortcodes[tag]['has_group'])){ return true; } return false; } // Do action / event function pagelayer_trigger_action(act, param = []){ jQuery(document).trigger(act, param); } // Perform a function on an action / event function pagelayer_add_action(act, func){ jQuery(document).on(act, func); } // Create array of the contact from template params function pagelayer_get_contact_templates(){ var contacts = jQuery(pagelayer_editable+' [pagelayer-tag=pl_contact]'); var contacts_props = {}; if(contacts.length > 0){ contacts.each(function(){ var tmp = pagelayer_data(jQuery(this)); var con_allowed = ['to_email', 'from_email', 'cont_subject', 'cont_header', 'cont_body', 'cont_use_html']; if(pagelayer_empty(tmp.atts['contact_custom_templ'])) return true; // Define blank array contacts_props[tmp.id] = {}; for(var x in con_allowed){ var key = con_allowed[x]; if(!pagelayer_empty(tmp.atts[key])){ contacts_props[tmp.id][key] = tmp.atts[key]; } } }); } return contacts_props; } // Save data or meta of the post function pagelayer_update_post_data(){ var tag = 'pl_post_props'; var jEle = jQuery(pagelayer_editable+' [pagelayer-tag="'+tag+'"]'); if(jEle.length < 1){ return; } var tmp = pagelayer_data(jEle, true); var all_props = pagelayer_shortcodes[tag]; // Loop through all props for(var i in pagelayer_tabs){ var tab = pagelayer_tabs[i]; for(var section in all_props[tab]){ var props = section in pagelayer_shortcodes[tag] ? pagelayer_shortcodes[tag][section] : pagelayer_styles[section]; for(var x in props){ //Set pagelayer POST data to send with save ajax if(x in tmp['atts']){ pagelayer_ajax_post_data[x] = tmp['atts'][x]; }else if(x in pagelayer_ajax_post_data){ delete pagelayer_ajax_post_data[x]; } } } } } // Get the nav menu updated data function pagelayer_get_nav_items(jEle, _content){ _content = _content || false; var pagelayer_nav_items = {}; jEle.find('[pagelayer-tag="pl_nav_menu_item"]').each(function(){ var cEle = jQuery(this), postID = pagelayer_get_att(cEle, 'ID'); if(!(postID in pagelayer_menus_items_ref)){ return; } var ref_data = pagelayer_menus_items_ref[postID]; if(!('pagelayer_content' in ref_data) && pagelayer_empty(ref_data['pagelayer_content'])){ ref_data['pagelayer_content'] = cEle; } if(!('is_dirty' in ref_data) || pagelayer_empty(ref_data['is_dirty'])){ return; } var content = '', tmp = {}; tmp = Object.assign(tmp, ref_data); pagelayer_nav_items[postID] = {}; // Update Mega menu content if(!pagelayer_empty(_content)){ var navItem = jQuery(ref_data['pagelayer_content'])[0].outerHTML; var _navItem = jQuery(navItem); // If is not mega menu if('menu_type' in tmp && tmp['menu_type'] != 'mega'){ _navItem.find('.pagelayer-menu-item-holder').empty(); } content = pagelayer_generate_sc(_navItem, true); content = pagelayer_Base64.encode(content); // Send data to save var allowed_post = ['title']; for(var key in allowed_post){ var post_prop = allowed_post[key]; if(!(post_prop in tmp)){ continue; } pagelayer_nav_items[postID][post_prop] = tmp[post_prop] } }else{ pagelayer_nav_items[postID] = tmp; } // Delete the html content delete tmp['pagelayer_content']; pagelayer_nav_items[postID]['_pagelayer_content'] = content; }); return pagelayer_nav_items; } // Save data or meta of the nav post function pagelayer_update_nav_menu_data(){ var tag = 'pl_wp_menu'; pagelayer_ajax_post_data['pagelayer_nav_items'] = {}; jQuery(pagelayer_editable+' [pagelayer-tag="'+tag+'"]').each(function(){ var jEle = jQuery(this); var menu_ID = pagelayer_get_att(jEle, 'nav_list'); if(!pagelayer_empty(pagelayer_ajax_post_data['pagelayer_nav_items'][menu_ID])){ return; } // Get the Current menu items var items = pagelayer_get_nav_items(jEle, true); if(pagelayer_empty(items)){ return; } pagelayer_ajax_post_data['pagelayer_nav_items'][menu_ID] = items; }); } // Save the customizer settings function pagelayer_update_customizer_settings(){ var tag = 'pl_customizer'; var jEle = jQuery(pagelayer_editable+' [pagelayer-tag="'+tag+'"]'); if(jEle.length < 1){ return; } var tmp = pagelayer_data(jEle, true); pagelayer_ajax_post_data['pagelayer_customizer_options'] = JSON.stringify(tmp['atts']); } // Save the post function pagelayer_save(){ // hiding and showing loading animation pagelayer.$$('.pagelayer-update-text').hide(); pagelayer.$$('.pagelayer-update-loader').show(); pagelayer_trigger_action('pagelayer_save'); var pagelayerajaxurl = pagelayer_ajax_url+'&action=pagelayer_save_content&postID='+pagelayer_postID; var post = pagelayer_generate_sc(pagelayer_editable);//alert(post);return; // Update data or meta of the post pagelayer_update_post_data(); // Update Customizer Settings pagelayer_update_customizer_settings(); // Update nav menu pagelayer_update_nav_menu_data(); if(pagelayer_empty(pagelayer.post_status) && !pagelayer_empty(pagelayer_ajax_post_data['post_status'])){ pagelayer.post_status = pagelayer_ajax_post_data['post_status']; } // Do we have contact templates ? var contacts_props = pagelayer_get_contact_templates(); // Do we have any global widget to save ? var global_data = {}; if(!pagelayer_empty(pagelayer_global_widgets)){ global_data = pagelayer_generate_sc_global_widget(); } var cancel = function(){ pagelayer.$$('.pagelayer-update-text').show(); pagelayer.$$('.pagelayer-update-loader').hide(); } var save = function(){ var post_data = { pagelayer_update_content : pagelayer_Base64.encode(post), pagelayer_nonce: pagelayer_ajax_nonce, global_widgets: global_data, contacts: contacts_props, post_status: pagelayer.post_status, copyright: pagelayer_copyright } post_data = Object.assign(pagelayer_ajax_post_data, post_data); jQuery.ajax({ type: "POST", url: pagelayerajaxurl, data: post_data, success: function(response, status, xhr){ //alert(data); var obj = jQuery.parseJSON(response); //alert(obj); if(obj['error']){ pagelayer_show_msg(obj['error'], 'error', 10000); }else{ pagelayer_show_msg(obj['success'], 'success', 10000); pagelayer_get_revision(); // Update the post status in the post_props, but first find if its actually there ! var jEle = jQuery(pagelayer_editable).find("[pagelayer-tag=pl_post_props]"); if(jEle.length > 0){ var id = pagelayer_id(jEle); pagelayer_set_atts(jEle, 'post_status', obj['post_status']); pagelayer_trigger_action('pagelayer_save_success', obj['post_status']); } pagelayer_do_undirty(); } }, error: function(jqXHR, textStatus, errorThrown){ console.log(errorThrown); pagelayer_show_msg('An error occured while saving ! Status : '+textStatus+' and Error : '+errorThrown, 'error', 10000); }, complete: function(xhr,status){ pagelayer.$$('.pagelayer-update-text').show(); pagelayer.$$('.pagelayer-update-loader').hide(); if(!pagelayer_empty(pagelayer.post_status)){ pagelayer.$$('.pagelayer-props-modal .pagelayer-meta-iframe').attr('src', pagelayer_post_props ); pagelayer.post_status = ''; } } }); } // If the content is empty if(pagelayer_empty(post)){ pagelayer_confirmation_box(pagelayer_l('empty_post_content'), save, cancel); return; } save(); }; //Close the Editor function pagelayer_close(){ if(pagelayer_isDirty == true){ var r = confirm('Your Data has not been Saved yet! \n Press OK to stay on the Page.'+ '\n Press Cancel to Close Editor. '); if(r == false){ window.top.location.href = pagelayer_returnURL; } }else{ window.top.location.href = pagelayer_returnURL; } }; function pagelayer_htmlEntities(str) { return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"'); } function pagelayer_serializeAttributes(attributes) { return JSON.stringify(attributes) // Don't break HTML comments. .replace(/--/g, "\\u002d\\u002d") // Don't break non-standard-compliant tools. .replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/&/g, "\\u0026") // Bypass server stripslashes behavior which would unescape stringify's // escaping of quotation mark. // See: https://developer.wordpress.org/reference/functions/wp_kses_stripslashes/ .replace(/\\"/g, "\\u0022"); } // Generate blocks Post to save function pagelayer_generate_sc(selector, selfEle){ selfEle = selfEle || false; var txt = ''; var generate_sc_single = function(jEle){ // The ID var id = jEle.attr('pagelayer-id'); // If there is an Add element wrapper if(pagelayer_empty(id)){ return; } // Find the type of tag var tag = jEle.attr('pagelayer-tag'); var final_tag = tag; var closestEle = jEle.closest('.pagelayer-col-holder'); // Skip to create shortcode to prevent save, allowed by tag if('skip_save' in pagelayer_shortcodes[tag] && !pagelayer_empty(pagelayer_shortcodes[tag]['skip_save'])){ return; } // Define inner row | Note : Commented as we now have a new widget of type inner_row /*if(tag == 'pl_row' && closestEle.length > 0 && closestEle.closest(pagelayer_editable).length > 0){ final_tag = 'pl_inner_row'; }*/ if(pagelayer_empty(tag)){ var err = 'Found an error in the content as the TAG was missing. The console will have more details.'; pagelayer_show_msg(err, 'error'); console.log(err); console.log(jEle); } // Define inner column if(tag == 'pl_col' && closestEle.length > 0 && closestEle.closest(pagelayer_editable).length > 0){ final_tag = 'pl_inner_col'; } //console.log(tag); // Is there an innerHTML ele var inner = ''; if('innerHTML' in pagelayer_shortcodes[tag]){ inner = pagelayer_shortcodes[tag]['innerHTML']; } // Data reference var ref_data = pagelayer_el_data_ref(jEle); // Create the tag var data = JSON.parse(JSON.stringify(ref_data['attr'])); data['pagelayer-id'] = id; data = pagelayer_serializeAttributes(data); var content = ''; // Any internal function to handle the save ? var func = window['pagelayer_tag_'+tag]; if(typeof func == 'function'){ content = func(jEle); // If its a Row or Column or Group then it will have children }else if(jEle.hasClass('pagelayer-row') || jEle.hasClass('pagelayer-col') || jEle.hasClass('pagelayer-inner_row') || pagelayer_is_group(tag)){ var sel = jEle; // Any holder which holds children ? if('holder' in pagelayer_shortcodes[tag]){ sel = jEle.find(pagelayer_shortcodes[tag]['holder']); } // Select the top-most element sel = jQuery(sel).first(); // Any child selector - Majorly for owl carousel // NOTE : Child selector should be very specific with immediate child selection at all levels var child_selector = false; if('child_selector' in pagelayer_shortcodes[tag]){ childSel = sel.find(pagelayer_shortcodes[tag]['child_selector']); if(childSel.length > 0){ sel = childSel; } } if(jQuery(sel).children(".pagelayer-ele-wrap").length < 1){ content = jQuery(sel).html(); // Backward Compatibility }else{ content = pagelayer_generate_sc(sel); content = "\n"+content; } // Its a normal element so we might need to handle the content }else{ if(inner.length > 0){ content = pagelayer_get_att(jEle, inner); if(!content){ content = ''; } }else{ content = '';//jEle.html(); } } // Leaving HTML and non-pagelayer supported content intact if(final_tag == 'pl_missing'){ txt += content; return; } if (pagelayer_empty(content)) { txt += "<!-- ".concat(pagelayer_block_prefix, ":pagelayer/").concat(final_tag, " ").concat(data, " /-->\n"); }else{ txt += "<!-- ".concat(pagelayer_block_prefix, ":pagelayer/").concat(final_tag, " ").concat(data, " -->").concat(content, "<!-- /").concat(pagelayer_block_prefix, ":pagelayer/").concat(final_tag, " -->\n"); } }; // Are you an element for which to generate the codes ? if(jQuery(selector).hasClass('pagelayer-ele') && selfEle){ generate_sc_single(jQuery(selector)); // The selector is the holder, so loop thru }else{ jQuery(selector).children(".pagelayer-ele-wrap").each(function(){ var jEle = jQuery(this).children('.pagelayer-ele'); generate_sc_single(jEle); }); } return txt; }; // Show the required leftbar tab function pagelayer_leftbar_tab(tab){ pagelayer.$$('.pagelayer-leftbar-tab').hide(); pagelayer.$$('#'+tab).show(); } // Sets up the leftbar function pagelayer_leftbar(){ // Toggle the holder pagelayer.$$('.pagelayer-leftbar-toggle').on('click', function(){ pagelayer.$$('.pagelayer-leftbar-table').toggleClass('pagelayer-leftbar-hidden'); pagelayer_trigger_action('pagelayer-leftbar-toggle'); }); // Close leftbar pagelayer.$$('.pagelayer-leftbar-close').on('click', function(){ pagelayer.$$('.pagelayer-leftbar-toggle').click(); }); // Minimize leftbar pagelayer.$$('.pagelayer-leftbar-minimize').on('click', function(){ pagelayer.$$('.pagelayer-leftbar-table').toggleClass('pagelayer-leftbar-minimize'); }); var html = '<div class="pagelayer-leftbar">'+ '<div class="pagelayer-leftbar-scroll">'+ '<div id="pagelayer-shortcodes" class="pagelayer-leftbar-tab pagelayer-shortcodes">'+ '<div class="pagelayer-widget-tabs">'+ '<div class="pagelayer-widget-tab pagelayer-settings" pagelayer-widget-tab="settings">Settings</div>'+ '<div class="pagelayer-widget-tab" pagelayer-widget-tab="widgets" pagelayer-elpd-active-tab=1>Widgets</div>'+ '<div class="pagelayer-widget-tab" pagelayer-widget-tab="global">Global</div>'+ '</div>'+ '<div class="pagelayer-shortcodes-widget">'+ '<div class="pagelayer-leftbar-search">'+ '<i class="pli pli-search" ></i><input class="pagelayer-search-field" /><span class="pagelayer-sf-empty pli">×</span>'+ '</div>'; for(var x in pagelayer_groups){ // Title html += '<div class="pagelayer-leftbar-group pagelayer-group-name-'+x+'"><h5>'+x+'</h5>'; // Indivdual icon for(var y in pagelayer_groups[x]){ var sc = pagelayer_groups[x][y]; if(!(sc in pagelayer_shortcodes) || 'not_visible' in pagelayer_shortcodes[sc]){ continue; } html += '<div class="pagelayer-shortcode-drag" draggable="true" pagelayer-tag="'+sc+'">'+ '<div class="pagelayer-sc">'+ '<center class="pagelayer-shortcode-inner">'; if('icon' in pagelayer_shortcodes[sc]){ html += '<i class="pagelayer-shortcode '+pagelayer_shortcodes[sc]['icon']+'"></i>'; }else{ html += '<i class="pagelayer-shortcode pli pagelayer-'+sc+'"></i>'; } html += '</center>'+ '<span class="pagelayer-shortcode-text">'+pagelayer_shortcodes[sc]['name']+'</span>'+ '</div>'+ '</div>'; } html += '</div>'; } html += '</div>'+ '<div id="pagelayer-global-widget" class="pagelayer-hidden pagelayer-global-widget"></div>'+ '</div>'+ '<div id="pagelayer-elpd" class="pagelayer-leftbar-tab pagelayer-elpd"></div>'+ '<div id="pagelayer-options" class="pagelayer-leftbar-tab pagelayer-options"></div>'+ '<div id="pagelayer-history" class="pagelayer-leftbar-tab pagelayer-history"></div>'+ '<div id="pagelayer-post-settings" class="pagelayer-leftbar-tab pagelayer-post-settings"></div>'+ '<div id="pagelayer-navigator" class="pagelayer-leftbar-tab pagelayer-navigator"></div>'+ '<div id="pagelayer-general-options" class="pagelayer-leftbar-tab pagelayer-general-options"></div>'+ '</div>'+ '</div>'; pagelayer.$$('.pagelayer-leftbar-holder').prepend(html); pagelayer_leftbar_tab('pagelayer-shortcodes'); pagelayer.$$('.pagelayer-leftbar-scroll').slimScroll({ height: '100%', railVisible: false, alwaysVisible: true, color: '#000', size: '5px', }); // Hide the ones which are not supposed to be shown pagelayer.$$('.pagelayer-search-field').on('input', function(){ var val = jQuery(this).val(); var re = new RegExp(val, 'i'); // Show only the required tags pagelayer.$$('.pagelayer-leftbar-group').each(function(){ var group = jQuery(this); var res = group.find('[pagelayer-tag]'); var hidden = 0; res.each(function(){ var tEle = jQuery(this); if(tEle.find('.pagelayer-shortcode-text').html().match(re)){ tEle.show(); }else{ hidden += 1; tEle.hide(); } }); // Hide the whole group if(hidden == res.length){ group.hide(); }else{ group.show(); } }); }); // On click Pagelayer setting icon pagelayer.$$('.pagelayer-settings-icon, .pagelayer-settings').click(function(event){ pagelayer_active = {}; var pl_tag = jQuery(this).attr('pagelayer-tag') || 'pl_post_props'; var nModal = jQuery(this).attr('pagelayer-modal-none'); pagelayer_post_settings(pl_tag); }); // Pagelayer post advance setting modal handler var propsModal = pagelayer.$$('.pagelayer-props-modal'); propsModal.find('.pagelayer-props-modal-close').on('click', function(event){ propsModal.hide(); }); propsModal.on('click', function(event){ var target = jQuery(event.target); if(target.closest('.pagelayer-props-modal-wrap').length > 0){ return; } propsModal.hide(); }); // On click Pagelayer setting icon var global_widget_list = function(){ var gHtml = ''; if(pagelayer_empty(pagelayer_pro)){ gHtml += '<div class="pagelayer-global-widget-pro">'+pagelayer.pro_txt+ '<p>Using this feature, you can save the widgets globally and use them on the entire site. The global widget will be editable from one place.</p>'+ '</div>'; pagelayer.$$('#pagelayer-global-widget').html(gHtml); return; } gHtml += '<div class="pagelayer-global-widget-shortcodes">'+ '<div class="pagelayer-leftbar-search">'+ '<i class="pli pli-search" ></i><input class="pagelayer-search-field" /><i class="pagelayer-sf-empty pli">×</i>'+ '</div>'+ '<div class="pagelayer-leftbar-group"><h5>'+pagelayer_l('global_widgets')+'</h5></div>'+ '</div>'; if(pagelayer_empty(pagelayer_global_widgets)){ pagelayer_global_widgets = []; gHtml += '<div class="pagelayer-leftbar-group"><h5>No global widgets found</h5></div>'; } // Indivdual icon for(var y in pagelayer_global_widgets){ var wEle = jQuery(pagelayer_global_widgets[y]['$']); var sc = pagelayer_tag( wEle ); if(!(sc in pagelayer_shortcodes) || 'not_visible' in pagelayer_shortcodes[sc]){ continue; } gHtml += '<div class="pagelayer-shortcode-drag" draggable="true" pagelayer-tag="'+sc+'" pagelayer-global-id="'+y+'">'+ '<div class="pagelayer-sc">'+ '<center class="pagelayer-shortcode-inner">'; if('icon' in pagelayer_shortcodes[sc]){ gHtml += '<i class="pagelayer-shortcode '+pagelayer_shortcodes[sc]['icon']+'"></i>'; }else{ gHtml += '<i class="pagelayer-shortcode pli pagelayer-'+sc+'"></i>'; } gHtml += '</center>'+ '<span class="pagelayer-shortcode-text">'+pagelayer_global_widgets[y]['title']+'</span>'+ '</div>'+ '</div>'; } pagelayer.$$('#pagelayer-global-widget').html(gHtml); }; // The widget tabs pagelayer.$$('.pagelayer-widget-tab').on('click', function(){ var attr = 'pagelayer-elpd-active-tab'; pagelayer.$$('.pagelayer-widget-tab').each(function(){ jQuery(this).removeAttr(attr); }); var cEle = jQuery(this); cEle.attr(attr, 1); if(cEle.attr('pagelayer-widget-tab') == 'global'){ cEle.closest('#pagelayer-shortcodes').find('.pagelayer-shortcodes-widget').addClass('pagelayer-hidden'); cEle.closest('#pagelayer-shortcodes').find('.pagelayer-global-widget').removeClass('pagelayer-hidden'); // Trigger create global widgets global_widget_list(); }else{ cEle.closest('#pagelayer-shortcodes').find('.pagelayer-shortcodes-widget').removeClass('pagelayer-hidden'); cEle.closest('#pagelayer-shortcodes').find('.pagelayer-global-widget').addClass('pagelayer-hidden'); } }); // On click search empty pagelayer.$$('.pagelayer-leftbar-search>.pagelayer-sf-empty').click(function(){ pagelayer.$$('.pagelayer-search-field').val('').trigger('input'); }); // Pagelayer General options pagelayer.$$('.pagelayer-options-icon ').click(function(){ pagelayer.$$('.pagelayer-elpd-header').show().find('.pagelayer-elpd-title').text(pagelayer_l('general_options')); pagelayer.$$('.pagelayer-logo').hide(); // Setup General options pagelayer_setup_general_options(); pagelayer_leftbar_tab('pagelayer-general-options'); pagelayer_active = {}; }); // Hide color and typography global list pagelayer.$$('.pagelayer-leftbar-table').on('click', function(e){ var closest = jQuery(e.target).closest('.pagelayer-elp-color-global, .pagelayer-elp-global-icon, .pagelayer-global-color-list, .pagelayer-global-font-list'); var list = pagelayer.$$('.pagelayer-global-color-list, .pagelayer-global-font-list'); if(closest.length > 0 ){ var lEle = closest.closest('.pagelayer-elp-color-div-holder').find('.pagelayer-global-color-list'); var lFont = closest.closest('.pagelayer-form-item').find('.pagelayer-global-font-list'); list = list.not(lFont); list = list.not(lEle); } list.not(closest).slideUp(); }); }; // Post setting holder function pagelayer_post_settings(pl_tag, to_click){ to_click = to_click == -1 ? false : true; // Is there a post settings ? var jEle = jQuery(pagelayer_editable+' [pagelayer-tag="'+ pl_tag +'"]'); // Could not find if(jEle.length < 1){ jEle = pagelayer_create_sc(pl_tag); var id = pagelayer_id(jEle); jQuery(pagelayer_editable).prepend(jEle); pagelayer_element_setup('[pagelayer-id='+id+']', true); // Dont mark as dirty as post_props is not editing anything pagelayer_do_undirty(); } if(to_click){ jEle.click(); } return jEle; } // Get the closest element and method function pagelayer_near_by_ele(id, sc){ // Get the previous element of the id element var prevEle_id = jQuery('[pagelayer-wrap-id="'+id+'"]').prev().attr('pagelayer-wrap-id') || ''; var method, cEle, args = {}; if(prevEle_id.length > 0){ // If have previous element of the id element // Set the method and previous element selector args = {'method' : 'after', 'cEle' : '[pagelayer-wrap-id="'+prevEle_id+'"]'}; }else{ // If don't have previous element of the id element then get parent element if(sc == "pl_row"){ args = {'method' : 'prepend', 'cEle' : pagelayer_editable}; }else{ // Get the parent element var pEle_id = pagelayer_id(jQuery('[pagelayer-wrap-id="'+id+'"]').closest('.pagelayer-ele')); // Get the parent element tag var pEle_tag = pagelayer_tag(jQuery('[pagelayer-id="'+pEle_id+'"]')); var holder = '>'+ pagelayer_shortcodes[pEle_tag]['holder'] || ''; args = {'method' : 'prepend', 'cEle' : '[pagelayer-id="'+pEle_id+'"] '+ holder+' '}; } } return args; }; // Push the action data in the pagelayer_history_obj object function pagelayer_history_action_push(args){ var currentTime = new Date(); var history_obj_len = pagelayer_history_obj['action_data'].length; // If the history_obj_len is less then 1 then set the data in array 0 position if(history_obj_len < 1){ pagelayer_history_obj['action_data'][0] = {'title' : 'Start Editing', 'action' : 'Start' }; pagelayer_history_obj['current_active_item_id'] = 0; } // Remove the second array element if the history_obj_len greater then 100 if(history_obj_len > 100){ pagelayer_history_obj['action_data'].splice(1, 1); pagelayer_history_obj['current_active_item_id'] = pagelayer_history_obj['action_data'].length - 1; } // Get current active history action id var action_id = parseInt(pagelayer_history_obj['current_active_item_id']) || 0; // Remove the all array element after the active array element var del_ele = history_obj_len - action_id - 1; pagelayer_history_obj['action_data'].splice(action_id + 1, del_ele); // Check if the same attr set as current active history if(args.action == "Edited" && history_obj_len > 1 && currentTime - pagelayer.history_lastTime < 1000){ var atts = pagelayer_history_obj['action_data'][action_id] || ''; if(atts['atts'] == args['atts'] && atts['pl_id'] == args['pl_id'] && pagelayer_empty(atts['sub_actions_group']) ){ args['oldVal'] = atts['oldVal']; pagelayer_history_obj['action_data'][action_id] = args; pagelayer_history_setup(); // Set the last history time pagelayer.history_lastTime = currentTime; return true; } } // If the action time within 200 millisecond then it count as sub-actions if(currentTime - pagelayer.history_lastTime < 200 && history_obj_len > 1){ var cur_action_data = pagelayer_history_obj['action_data'][action_id]; var sub_actions_len = cur_action_data['sub_actions_group'] || ''; if( !('attrType' in cur_action_data && cur_action_data['attrType'] == 'tmp_attr' && 'attrType' in args && args['attrType'] == 'a_attr') ) { // If the sub_actions_len is less then 1 then set the data in array 0 position if(sub_actions_len.length < 1){ pagelayer_history_obj['action_data'][action_id]['sub_actions_group'] = [args]; }else{ pagelayer_history_obj['action_data'][action_id]['sub_actions_group'].push(args); } return true; } } pagelayer_history_obj['action_data'].push(args); pagelayer_history_obj['current_active_item_id'] = pagelayer_history_obj['action_data'].length - 1; pagelayer_history_setup(); // Set the last history time pagelayer.history_lastTime = currentTime; } // Setup pagelayer history function pagelayer_history_setup(force){ var force = force || false; // If the history tab is visible, only then setup if(!pagelayer.$$('#pagelayer-history').is(':visible') && !force){ return; } // The current active action id var current_id = pagelayer_history_obj['current_active_item_id']; // pagelayer-HISTORY - Element Properties Dialog var pagelayer_history_html = '<div class="pagelayer-history-tabs">'+ '<div class="pagelayer-history-tab" pagelayer-history-tab="actions" pagelayer-history-active-tab="1">Actions</div>'+ '<div class="pagelayer-history-tab" pagelayer-history-tab="revisions">Revisions</div>'+ '</div>'+ '<div class="pagelayer-history-body">'+ '<div class="pagelayer-history-section active" pagelayer-show-tab="actions">'; // Any actions if(pagelayer_history_obj['action_data'].length > 0){ for(var x in pagelayer_history_obj['action_data']){ if(pagelayer_empty(pagelayer_history_obj['action_data'][x])){continue;} var title = pagelayer_history_obj['action_data'][x]['title'] || ''; var subTitle = pagelayer_history_obj['action_data'][x]['subTitle'] || ''; var action = pagelayer_history_obj['action_data'][x]['action'] || ''; var tmp_attr = pagelayer_history_obj['action_data'][x]['attrType'] || ''; var eAttr = ''; if(!pagelayer_empty(tmp_attr) && tmp_attr == "tmp_attr"){ eAttr = "pagelayer-history-hidden"; } pagelayer_history_html += '<div class="pagelayer-history-holder '+((current_id == x) ? 'current_active_item' : '' )+' '+eAttr+'" history-action-id="'+x+'" >'+ '<div class="pagelayer-history-detail-holder">'+ '<span class="pagelayer-history-title"><b> '+title+' </b></span>'+ '<span class="pagelayer-history-subtitle"> '+subTitle+' </span>'+ '<span class="pagelayer-history-action"><i> '+action+' </i></span>'+ '</div>'+ '<div class="pagelayer-history-icon">'+ '<span class="pagelayer-history-check pli pli-checkmark" aria-hidden="true"></span>'+ '</div>'+ '</div>'; } }else{ pagelayer_history_html += 'No Actions history available yet'; } pagelayer_history_html += '</div>'+ '<div class="pagelayer-history-section" pagelayer-show-tab="revisions">'; // Any revisions ? if(pagelayer_revision_obj){ for(var x in pagelayer_revision_obj){ pagelayer_history_html += '<div class="pagelayer-revision-holder" revision-id="'+pagelayer_revision_obj[x]['ID']+'">'+ '<div class="pagelayer-revision-img-holder">'+ '<img src="'+pagelayer_revision_obj[x]['post_author_url']+'" />'+ '</div>'+ '<div class="pagelayer-revision-detail-holder">'+ '<div class="pagelayer-revision-date">'+ pagelayer_revision_obj[x]['post_date_ago']+ '('+pagelayer_revision_obj[x]['post_date']+')'+ '</div>'+ '<div class="pagelayer-revision-author">'+ pagelayer_revision_obj[x]['post_type'] +' by '+ pagelayer_revision_obj[x]['post_author_name']+ '</div>'+ '</div>'+ '<div class="pagelayer-revision-icon-holder">'+ '<i class="pagelayer-revision-delete pli pli-cross"></i>'+ '</div>'+ '</div>'; } }else{ pagelayer_history_html += 'No Revisions history available'; } pagelayer_history_html += '</div>'+ '</div>'; // Create the dialog box pagelayer.$$('#pagelayer-history').html(pagelayer_history_html); var holder = pagelayer.$$('#pagelayer-history'); // Set active history holder holder.find('.pagelayer-history-holder').on('click', function(){ var hEle = jQuery(this); var prev_item_id = pagelayer_history_obj['current_active_item_id']; hEle.parent().children().removeClass('current_active_item'); hEle.addClass('current_active_item'); var do_item_id = parseInt(hEle.attr('history-action-id')); pagelayer_history_action_setup(do_item_id, prev_item_id); }); // Apply revision holder.find('.pagelayer-revision-holder').on('click', function(){ var revision_id = jQuery(this).attr('revision-id'); jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_apply_revision&revisionID='+revision_id, type: 'post', data: { pagelayer_nonce: pagelayer_ajax_nonce, 'pagelayer-live' : 1, }, success: function(response, status, xhr){ var obj = jQuery.parseJSON(response); if(obj['error']){ pagelayer_show_msg(obj['error'] , 'error'); }else{ // Get the current post_name and post_status var props = jQuery(pagelayer_editable).find('.pagelayer-post_props'); var post_name = '', post_status = ''; if(props.length > 0){ post_name = pagelayer_get_att(props, 'post_name'); post_status = pagelayer_get_att(props, 'post_status'); } // Set content jQuery(pagelayer_editable).html(obj['content']); // Add previous post_name and post_status var props_new = jQuery(pagelayer_editable).find('.pagelayer-post_props'); if(props_new.length > 0){ if(pagelayer_empty(post_name)){ post_name = pagelayer_default_params.pl_post_props.post_name; } if(pagelayer_empty(post_status)){ post_status = pagelayer_default_params.pl_post_props.post_status; } var tmp = {}; tmp['post_name'] = post_name; tmp['post_status'] = post_status; pagelayer_set_atts(props_new, tmp); } // Need to pass true to render table pagelayer_element_setup('.pagelayer-ele', true); pagelayer_add_widget(); pagelayer_show_msg(obj['success'], 'success'); } } }); }); // Delete the revision holder.find('.pagelayer-revision-delete').click(function(e){ e.stopPropagation(); var rEle = jQuery(this).closest('.pagelayer-revision-holder'); var revision_id = rEle.attr('revision-id'); if(confirm("Are you sure you want to delete the revision ?")){ jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_delete_revision&revisionID='+revision_id, type: 'post', data: {pagelayer_nonce: pagelayer_ajax_nonce}, success: function(response, status, xhr){ var obj = jQuery.parseJSON(response); if(obj['error']){ pagelayer_show_msg(obj['error'], 'error'); }else{ pagelayer_show_msg(obj['success'], 'success'); rEle.hide(); } } }); } }); // The tabs holder.find('.pagelayer-history-tab').on('click', function(){ var attr = 'pagelayer-history-active-tab'; holder.find('.pagelayer-history-tab').each(function(){ jQuery(this).removeAttr(attr); }); jQuery(this).attr(attr, 1); // Get the active tab var active_tab = holder.find('[pagelayer-history-active-tab]').attr('pagelayer-history-tab'); // Trigger the showing of rows holder.find('[pagelayer-show-tab]').each(function(){ var sec = jQuery(this); // Is it the active tab ? if(sec.attr('pagelayer-show-tab') != active_tab){ sec.hide(); }else{ sec.show(); } }); }); } // Get revisions Handler function pagelayer_get_revision(){ jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_get_revision&postID='+pagelayer_postID, type: 'post', data: { pagelayer_nonce: pagelayer_ajax_nonce, }, //async:false, success: function(response, status, xhr){ var obj = jQuery.parseJSON(response); if(!pagelayer_empty(obj['error'])){ pagelayer_show_msg(obj['error'], 'error'); }else{ pagelayer_revision_obj = obj; pagelayer_history_setup(true); } } }); }; // Do the history action - use for ctrl-z and ctrl-y function pagelayer_do_history(action){ var cur_id = pagelayer_history_obj['current_active_item_id']; var new_id = cur_id; var action_data_len = pagelayer_history_obj['action_data'].length; if(action == 'undo'){ // You cannot undo from the first movement if(cur_id == 0){ return true; } for(var i = (cur_id - 1); i => 0; i--){ var action = pagelayer_history_obj['action_data'][i]; if('attrType' in action && action['attrType'] == 'tmp_attr'){ continue; } new_id = i; break; } }else if(action == 'redo'){ for(var i = cur_id + 1; i < action_data_len; i++){ var action = pagelayer_history_obj['action_data'][i]; if('attrType' in action && action['attrType'] == 'tmp_attr'){ continue; } new_id = i; break; } } // Do the action pagelayer_history_action_setup(new_id, cur_id); pagelayer_history_setup(); }; // Action setup handle on ctrl-z and ctrl-y function pagelayer_history_action_setup(current_item_id, prev_item_id){ // Set this as the current active pagelayer_history_obj['current_active_item_id'] = current_item_id; // Delete the element var delete_ele = function(id){ // Set Pagelayer History FALSE to prevent saving delete action in action history pagelayer.history_action = false; pagelayer_delete_element('[pagelayer-id='+id+']'); // Set Pagelayer History TRUE pagelayer.history_action = true; }; // Re-setup the element var resetup_ele = function(history_array){ jQuery(history_array.cEle.cEle)[history_array.cEle.method](history_array.html); pagelayer_element_setup('[pagelayer-id='+history_array.pl_id+'], [pagelayer-id='+history_array.pl_id+'] .pagelayer-ele', true); var rEle = jQuery('[pagelayer-id="'+history_array.pl_id+'"]'); pagelayer_empty_col(rEle.closest('.pagelayer-col-holder')); pagelayer_do_dirty(rEle); }; // Re-setup the element attr var reset_ele_attr = function(hEle, atts, val, attrType){ // Set Pagelayer History FALSE to prevent saving attributes in action history pagelayer.history_action = false; if(attrType == "tmp_attr"){ pagelayer_set_tmp_atts(hEle, atts, val); }else{ pagelayer_set_atts(hEle, atts, val); } // The property holder var holder = pagelayer.$$('.pagelayer-elpd-body'); holder.html(' '); pagelayer_sc_render(hEle); pagelayer_elpd_generate(hEle, holder); pagelayer.history_action = true; }; // Move element var pagelayer_move_ele = function(id, move_loc){ var eWrap = pagelayer_wrap_by_id(id); var pCol = eWrap.closest('.pagelayer-col-holder') || ''; jQuery(move_loc.cEle)[move_loc.method](eWrap); // Ensure the column is not empty if(!pagelayer_empty(pCol)){ pagelayer_empty_col(pCol); pagelayer_empty_col(pagelayer_wrap_by_id(id).closest('.pagelayer-col-holder')); } pagelayer_do_dirty(eWrap); }; // Undo actions var pagelayer_undo_action = function(history_array){ var action = history_array.action; var id = history_array.pl_id; if(action == "Edited"){ hEle = jQuery('[pagelayer-id="'+id+'"]'); reset_ele_attr(hEle, history_array.atts, history_array.oldVal, history_array.attrType); }else if(action == "Added"){ delete_ele(id); }else if(action == "Deleted"){ resetup_ele(history_array); }else if(action == "Copied"){ delete_ele(id); }else if(action == "Moved"){ pagelayer_move_ele(id, history_array.before_loc); } }; // Redo actions var pagelayer_redo_action = function(history_array){ var action = history_array.action; var id = history_array.pl_id; if(action == "Edited"){ hEle = jQuery('[pagelayer-id="'+id+'"]'); reset_ele_attr(hEle, history_array.atts, history_array.newVal, history_array.attrType); }else if(action == "Added"){ resetup_ele(history_array); if(history_array.tag != "pl_row" && history_array.tag != "pl_col" ){ // Ensure the column is not empty pagelayer_empty_col(history_array.cEle.cEle); } }else if(action == "Deleted"){ delete_ele(id); }else if(action == "Copied"){ resetup_ele(history_array); }else if(action == "Moved"){ pagelayer_move_ele(id, history_array.after_loc); } }; if(prev_item_id > current_item_id){ // All Actions for undo here var i = parseInt(prev_item_id); for(i; i > current_item_id; i--){ var history_array = pagelayer_history_obj['action_data'][i]; var sub_actions_group = history_array['sub_actions_group'] || ''; // If it has sub-actions if(!pagelayer_empty(sub_actions_group)){ var j = sub_actions_group.length; for(j--; j >= 0; j--){ pagelayer_undo_action(sub_actions_group[j]); } } // Main action pagelayer_undo_action(history_array); // Activate the current element and scroll it into viewport var jEle = jQuery('[pagelayer-id="'+history_array.pl_id+'"]'); if(jEle.length > 0){ pagelayer_set_active(jEle); pagelayer_scroll_to_viewport(jEle, 0); } } }else{ // All Actions for redo here var i = parseInt(prev_item_id)+1; for(i; i <= current_item_id; i++){ var history_array = pagelayer_history_obj['action_data'][i]; var sub_actions_group = history_array['sub_actions_group'] || ''; // Main action pagelayer_redo_action(history_array); // If it has sub-actions if(!pagelayer_empty(sub_actions_group)){ for(var x in sub_actions_group){ pagelayer_redo_action(sub_actions_group[x]); } } // Activate the current element and scroll it into viewport var jEle = jQuery('[pagelayer-id="'+history_array.pl_id+'"]'); if(jEle.length > 0){ pagelayer_set_active(jEle); pagelayer_scroll_to_viewport(jEle, 0); } } } }; // Report an error function pagelayer_error(error, func){ var prefix = func || ''; alert(prefix+error); }; function pagelayer_bottombar(){ var holder = pagelayer.$$('.pagelayer-bottombar-holder'); var html = '<div class="pagelayer-bottombar">'+ '<div class="pagelayer-bottombar-rightbuttons">'+ '<button data-tlite="Save Changes" class="pagelayer-update-button pagelayer-success-btn">'+ '<span class="pagelayer-update-loader">'+ '<span></span>'+ '<span></span>'+ '<span></span>'+ '</span>'+ '<span class="pagelayer-update-text">Update</span>'+ '</button>'+ '<button data-tlite="Close and Return to Admin Panel" class="pagelayer-close-button">Close</button>'+ '<div class="pagelayer-mode-wrapper">'+ '<div class="pagelayer-mode-buttons-wrapper">'+ '<i class="screen-mode pli pli-desktop" pagelayer-mode-data="desktop"></i>'+ '<i class="screen-mode pli pli-tablet" pagelayer-mode-data="tablet"></i>'+ '<i class="screen-mode pli pli-mobile" pagelayer-mode-data="mobile"></i>'+ '</div>'+ '</div>'+ '<i class="pagelayer-mode-button pli pli-desktop"></i>'+ '<span data-tlite="'+pagelayer_l('preview_changes')+'"><i class="pagelayer-preview pli pli-eye"></i></span>'+ '<span data-tlite="'+pagelayer_l('historyand_revisions')+'"><i class="pagelayer-history-icon pli pli-history"></i></span>'+ '<span data-tlite="'+pagelayer_l('navigator')+'"><i class="pagelayer-navigator-icon pli pli-tree"></i></span>'+ //'<span data-tlite="Close and Return to Admin Panel"><i class="pagelayer-close-button fa fa-close"></i></span>'+ '</div>'+ '</div>'; holder.html(html); holder.find('.pagelayer-update-button').on('click', function(){ pagelayer_save(); pagelayer_history_setup();// Setup history tab after update }); holder.find('.pagelayer-close-button').on('click', function(){ pagelayer_close(); }); holder.find('.screen-mode').on('click', function(){ var screen_mode = jQuery(this).attr('pagelayer-mode-data'); pagelayer_set_screen_mode(screen_mode); holder.find('.pagelayer-mode-buttons-wrapper').toggle(); }); holder.find('.pagelayer-mode-button').on('click', function(){ holder.find('.pagelayer-mode-buttons-wrapper').toggle(); }); holder.find('.pagelayer-history-icon').click(function(){ pagelayer.$$('.pagelayer-elpd-header').show().find('.pagelayer-elpd-title').text(pagelayer_l('pagelayer_history')); pagelayer.$$('.pagelayer-logo').hide(); pagelayer_leftbar_tab('pagelayer-history'); pagelayer_active = {}; pagelayer_history_setup(); }); holder.find('.pagelayer-navigator-icon').click(function(){ pagelayer.$$('.pagelayer-elpd-header').show().find('.pagelayer-elpd-title').text(pagelayer_l('pagelayer_navigator')); pagelayer.$$('.pagelayer-logo').hide(); // If the navigator tab visible, then don't setup if(!pagelayer.$$('#pagelayer-navigator').is(':visible')){ pagelayer_navigator_setup(); } pagelayer_leftbar_tab('pagelayer-navigator'); pagelayer_active = {}; }); holder.find('.pagelayer-preview').click(function(){ // If the page is not dirty if(!pagelayer_isDirty){ // Open in new tab the existing page itself window.open(pagelayer_post_permalink, '_blank'); return; } // Get post content var post = pagelayer_generate_sc(pagelayer_editable);//alert(post);return; pagelayer.$$('.pagelayer-body').css({'opacity' : '0.33'}); jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_create_post_autosave&postID='+pagelayer_postID, type: 'POST', data: { 'pagelayer_nonce': pagelayer_ajax_nonce, 'pagelayer_post_content': pagelayer_Base64.encode(post) }, success: function(data) { var data = JSON.parse(data); // If there is some error if(!pagelayer_empty(data['error']) || pagelayer_empty(data['id'])){ pagelayer_show_msg('Unable to set preview for some reason', 'error'); return; } var url = data['url']+'&preview_id='+pagelayer_postID+'&preview_nonce='+ pagelayer_preview_nonce; // Open in new tab window.open(url, '_blank'); }, complete: function(){ pagelayer.$$('.pagelayer-body').css({'opacity' : '1'}); } }); }); }; /////////////////////////////// // Miscellaneuos Functions /////////////////////////////// // Setup General options function pagelayer_setup_general_options(){ var holder = pagelayer.$$('.pagelayer-general-options'); if(holder.children().length > 0){ return; } // TODO: To create this HTML get Array form php var html = '<div class="pagelayer-options-sections">'+ '<h5>'+ pagelayer_l('general_options') +'</h5>'+ '<div class="pagelayer-option-holder pagelayer-open-customizer">'+ '<i class="fas fa-paint-brush"></i>'+ '<span>'+ pagelayer_l('customize') +'</span>'+ '</div>'+ '</div>'+ '<div class="pagelayer-options-sections">'+ '<h5>'+ pagelayer_l('navigator_options') +'</h5>'+ '<div class="pagelayer-option-holder pagelayer-options-history-icon">'+ '<i class="pli pli-history"></i>'+ '<span>'+ pagelayer_l('historyand_revisions') +'</span>'+ '</div>'+ '<div class="pagelayer-option-holder pagelayer-options-navigator-icon">'+ '<i class="pli pli-tree"></i>'+ '<span>'+ pagelayer_l('navigator') +'</span>'+ '</div>'+ '<div class="pagelayer-option-holder pagelayer-options-preview">'+ '<i class="pli pli-eye"></i>'+ '<span>'+ pagelayer_l('preview_changes') +'</span>'+ '</div>'+ '</div>'+ '<div class="pagelayer-options-sections">'+ '<h5>'+ pagelayer_l('tools') +'</h5>'+ '<div class="pagelayer-option-holder pagelayer-open-help">'+ '<i class="fas fa-question"></i>'+ '<span>'+ pagelayer_l('help') +'</span>'+ '</div>'+ '<div class="pagelayer-option-holder pagelayer-open-keyboard-shortcuts">'+ '<i class="far fa-keyboard"></i>'+ '<span>'+ pagelayer_l('keyboard_shortcuts') +'</span>'+ '</div>'+ '</div>'; holder.html(html); // Open customizer settings holder.find('.pagelayer-open-customizer').click(function(){ window.open(pagelayer_customizer_url+'&autofocus%5Bpanel%5D=pagelayer_settings', '_blank'); }); // Open help / support link holder.find('.pagelayer-open-help').click(function(){ window.open(pagelayer_support_url, '_blank'); }); // Show Pagelayer History holder.find('.pagelayer-options-history-icon').click(function(){ pagelayer.$$('.pagelayer-bottombar-holder .pagelayer-history-icon').click(); }); // Show Pagelayer Navigator holder.find('.pagelayer-options-navigator-icon').click(function(){ pagelayer.$$('.pagelayer-bottombar-holder .pagelayer-navigator-icon').click(); }); // Show Pagelayer Preview holder.find('.pagelayer-options-preview').click(function(){ pagelayer.$$('.pagelayer-bottombar-holder .pagelayer-preview').click(); }); // Show keyboard shortcut modal holder.find('.pagelayer-open-keyboard-shortcuts').click(function() { var modal = pagelayer.$$('.pagelayer-shortcuts-modal'); modal.css('display','flex'); modal.find('.pagelayer-editor-modal-close-icon').unbind('click'); modal.find('.pagelayer-editor-modal-close-icon').click(function(){ modal.hide(); }); modal.unbind('click'); modal.on('click', function(e){ if(e.target != this) { return; } modal.hide(); }); }); } // Setup navigator function pagelayer_navigator_setup(){ var navigator_ele = pagelayer.$$('#pagelayer-navigator'), navigator_padding = 10, navigator_html = ''; // Get the child elements list var pagelayer_create_navi_list = function(selector){ var navigator_list = ''; selector.children('.pagelayer-ele-wrap, .pagelayer-ele').each(function(){ var cEle = jQuery(this), tag = pagelayer_tag(cEle), id = pagelayer_id(cEle), child_ele = false, ele_class = ''; // If tag is not found then return if(pagelayer_empty(tag)){ return; } // if is row or col or inner-row if(tag == 'pl_row' || tag == 'pl_col' || tag == 'pl_inner_row'){ ele_class = 'pagelayer-navigator-toggle'; child_ele = true; } navigator_list += '<div class="pagelayer-navigetor-ele" pagelayer-id="'+id+'">'+ '<div class="pagelayer-ele-name '+ ele_class +'" pagelayer-tag="'+tag+'" style="padding-left:'+navigator_padding+'px">'+ '<i class="fa pagalayer-arrow"></i><i class="fa pagelayer-'+tag+'"></i>'+ pagelayer_shortcodes[tag]['name']+ '<span class="pagelayer-navigator-options"><i class="pli pli-pencil" data-action="edit"></i><i class="pli pli-trashcan" data-action="delete"></i></span>'+ '</div>'; // Create the list of child element if(child_ele){ navigator_padding += 15; // Increment padding left for widget navigator_list += pagelayer_create_navi_list( cEle.find(pagelayer_shortcodes[tag]['holder']).first() ); navigator_padding -= 15; // Decrement padding left for widget } navigator_list += '</div>'; }); return navigator_list; } // Create list of all rows and their child widgets jQuery(pagelayer_editable).children('.pagelayer-wrap-row').each(function(){ navigator_html += pagelayer_create_navi_list(jQuery(this)); }); // Put the navigator list navigator_ele.html('<div class="pagelayer-leftbar-prop-body">'+navigator_html+'</div>'); // edit and delete element click handler navigator_ele.find('.pagelayer-navigator-options .pli').on('click', function(event){ var sEle = jQuery(this).closest('.pagelayer-navigetor-ele'); var sId = sEle.attr('pagelayer-id'); var action = jQuery(this).data('action'); if( action == 'edit'){ pagelayer_edit_element('[pagelayer-id = '+sId+']', event); }else if(action == 'delete'){ sEle.find('.pagelayer-ele-name').css({'background':'rgb(255, 114, 114)','opacity':'0.5'}); pagelayer_delete_element('[pagelayer-id = '+sId+']'); } }); // On click toggle the element navigator_ele.find('.pagelayer-ele-name').on('click', function(){ var tEle = jQuery(this); var pl_id = tEle.parent().attr('pagelayer-id'); // Get Pagelayer id var jEle = pagelayer_ele_by_id(pl_id); // If the class "pagelayer-navigator-toggle" exist then toggle if(tEle.hasClass('pagelayer-navigator-toggle')){ tEle.parent().toggleClass('pagelayer-navigator-open'); } // Also open all parents tEle.parent().parents('.pagelayer-navigetor-ele').addClass('pagelayer-navigator-open'); // Set the click element active navigator_ele.find('.pagelayer-ele-name').removeClass('pagelayer-navi-active'); tEle.addClass('pagelayer-navi-active') // Set the element active if(jEle.length > 0){ //pagelayer_active.el = pagelayer_data(jEle); pagelayer_set_active(jEle); pagelayer_scroll_to_viewport(jEle); } }); // Do active ele tab open if( pagelayer_active.el && pagelayer_active.el.id ){ navigator_ele.find('[pagelayer-id="'+pagelayer_active.el.id+'"]').children('.pagelayer-ele-name').click(); } /* var posY = 0, orig_eleY= 0; // On mouse down in pagelayer-ele-name navigator_ele.find('.pagelayer-ele-name').on('mousedown', function(e){ e = e || window.event; e.preventDefault(); // Get ele position orig_eleY = jQuery(this).offset().top; // Get the mouse cursor at startup: posY = e.clientY; // The variable needs to be empty. newMethod = ''; // Mouse up handler var ele_mousemove = function(){ } // Mouse move handler var ele_mouseup = function(){ pagelayer.$$(document).off('mouseup', ele_mouseup); pagelayer.$$(document).off('mousemove', ele_mousemove); } pagelayer.$$(document).on('mouseup', ele_mouseup); pagelayer.$$(document).on('mousemove', ele_mousemove); }); */ } // Scroll page to element view port function pagelayer_scroll_to_viewport(jEle, timeout, parentEle){ var scrolled = parentEle || jQuery('html, body'); timeout = timeout || 500; parentEle = parentEle || jQuery(window); setTimeout(function(){ var parentHeight = parentEle.height(), parentScrollTop = parentEle.scrollTop(), elementTop = jEle.offset().top, topToCheck = elementTop - parentScrollTop; if (topToCheck > 0 && topToCheck < parentHeight) { return; } var scrolling = elementTop - parentHeight / 2; scrolled.stop(true).animate({ scrollTop: scrolling }, 1000); }, timeout); } // Generates a random string of "n" characters function pagelayer_randstr(n, special){ var text = ''; var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; special = special || 0; if(special){ possible = possible + '&#$%@'; } for(var i=0; i < n; i++){ text += possible.charAt(Math.floor(Math.random() * possible.length)); } return text; }; function pagelayer_randInt(max) { return Math.floor(Math.random() * Math.floor(max)); } // Convert the regular URL of a Video to a Embed URL function pagelayer_video_url(src, no_url){ no_url = no_url || false; var youtubeRegExp = /youtube\.com|youtu\.be/; var vimeoRegExp = /vimeo\.com/; var match = ''; var videoId = ''; var vid_params = {}; if (youtubeRegExp.exec(src)) { match = 'youtube'; } else if (vimeoRegExp.exec(src)) { match = 'vimeo'; } switch(match){ case 'youtube': var youtubeRegExp1 = /youtube\.com/; var youtubewatch = /watch/; var youtubeembed = /embed/; var youtube = /youtu\.be/; if (youtubeRegExp1.exec(src)) { if (youtubewatch.exec(src)) { videoId = src.split('?v='); } else if (youtubewatch.exec(src)) { videoId = src.split('embed/'); } } else if (youtube.exec(src)) { videoId = src.split('.be/'); } vid_params = { type : 'youtube', src : '//www.youtube.com/embed/'+videoId[1], id : videoId[1] }; pagelayer_yt_api_register(); break; case 'vimeo': var vimeoplayer = /player\.vimeo\.com/; var vimeovideo = /video/; if (vimeoplayer.exec(src) && vimeovideo.exec(src)) { videoId = src.split('video/'); } else if (vimeoRegExp.exec(src)) { videoId = src.split('.com/'); } vid_params = { type : 'vimeo', src : '//player.vimeo.com/video/'+videoId[1], id : videoId[1] }; break; default: vid_params = { type : 'local', src : src }; } if(!no_url){ return vid_params.src; } return vid_params; }; // Youtube API Register function pagelayer_yt_api_register(){ if(jQuery('#pagelayer-youtube-script-js').length > 0){ return; } jQuery('body').append('<script src="https://www.youtube.com/iframe_api" id="pagelayer-youtube-script-js"></script>'); } // Add widget section function pagelayer_add_widget(){ html='<div class="pagelayer-add-widget-area">'+ '<button class="pagelayer-add-button pagelayer-add-section"><i class="pagelayer-add-row fas fa-file-alt"></i> Add New Section</button>'+ '<button class="pagelayer-add-button pagelayer-add-row"><i class="pagelayer-add-row fas fa-plus-circle"></i> Add New Row</button>'+ '<p>Click here to add new row OR drag widgets</p>'+ '</div>'; jQuery(pagelayer_editable).append(html); var add_area = jQuery('.pagelayer-add-widget-area'); // Add a code before this var add_sc = function(tag, global_id = ''){ var attr = ''; if(!pagelayer_empty(global_id)){ attr = ' pagelayer-global-id="'+global_id+'" '; } // Create Row var row = jQuery('<div pagelayer-tag="pl_row" '+((tag == 'pl_row') ? attr : '') +'></div>'); add_area.before(row); var row_id = pagelayer_onadd(row, false); var rEle = pagelayer_ele_by_id(row_id); if(tag == 'pl_row' && !pagelayer_empty(global_id)){ rEle.click(); return row_id; } // Create Column var col = jQuery('<div pagelayer-tag="pl_col" '+((tag == 'pl_col') ? attr : '') +'></div>'); rEle.find('.pagelayer-row-holder').append(col); var col_id = pagelayer_onadd(col, false); var cEle = pagelayer_ele_by_id(col_id); if(tag == 'pl_row'){ rEle.click(); return row_id; } if(tag == 'pl_col'){ cEle.click(); return col_id; } // Create element var ele = jQuery('<div pagelayer-tag="'+tag+'" '+attr+'></div>'); cEle.find('.pagelayer-col-holder').append(ele); //console.log(ele); var id = pagelayer_onadd(ele); //console.log(id); //console.log(col_id); var eEle = pagelayer_ele_by_id(col_id); //console.log(eEle); // Ensure the column is not empty pagelayer_empty_col(cEle.find('.pagelayer-col-holder')); if(tag == 'pl_inner_row' && pagelayer_empty(global_id)){ // Create Column var in_col = jQuery('<div pagelayer-tag="pl_col"></div>'); eEle.find('.pagelayer-row-holder').append(in_col); var in_col_id = pagelayer_onadd(in_col, false); } return id; } // Handle Click add_area.on('click', function(e){ e.stopPropagation(); add_sc('pl_col'); }); // Handle Click add_area.find('.pagelayer-add-section').on('click', function(e){ e.stopPropagation(); pagelayer_add_section_area();// Setup and show sections modal }); // Handle Drag over add_area.on('dragover', function(e){ //console.log(e) add_area.addClass('pagelayer-add-widget-drag'); }); // Handle Drag Leave add_area.on('dragleave', function(e){ //console.log(e) add_area.removeClass('pagelayer-add-widget-drag'); }); // Handle On Drop add_area.on('drop', function(e){ //console.log(e); //console.log(e.originalEvent.dataTransfer.getData('tag')); add_area.removeClass('pagelayer-add-widget-drag'); jQuery('.pagelayer-is-dragging').removeClass('pagelayer-is-dragging'); var tag = e.originalEvent.dataTransfer.getData('tag'); var global_id = e.originalEvent.dataTransfer.getData('global_id'); // Is it an existing element ? if(tag.length < 1){ return false; } e.preventDefault(); //console.log(tag); add_sc(tag, global_id); }); }; // Is the element in view while scrolling function pagelayer_isElementInView(elem, holder, partial) { partial = partial || true; var container = jQuery(holder); var contHeight = container.height(); var contTop = container.scrollTop(); var contBottom = contTop + contHeight ; var elemTop = jQuery(elem).offset().top - container.offset().top; var elemBottom = elemTop + jQuery(elem).height(); var isTotal = (elemTop >= 0 && elemBottom <=contHeight); var isPart = ((elemTop < 0 && elemBottom > 0 ) || (elemTop > 0 && elemTop <= container.height())) && partial; return isTotal || isPart ; } // Append section modal into body function pagelayer_add_section_area(){ var body = pagelayer.$$('body'); var mEle = body.find('.pagelayer-add-section-modal-container'); if(mEle.length > 0){ mEle.show(); return; } var section_modal = '<div class="pagelayer-add-section-modal-container">'+ '<div class="pagelayer-add-section-modal-holder">'+ '<div class="pagelayer-add-section-modal">'+ '<div class="pagelayer-add-section-modal-header">'+ '<div>Add Sections</div>'+ '<div class="pagelayer-section-type-div">Type : '+ '<select name="type" id="pagelayer-section-type">'+ '<option value="section">Sections</option>'+ '<option value="header">Headers</option>'+ '<option value="footer">Footers</option>'+ '<option value="page">Pages</option>'+ '</select>'+ '</div>'+ '<div class="pagelayer-add-section-modal-close">×</div>'+ '</div>'+ '<div class="pagelayer-add-section-modal-row">'+ '<div class="pagelayer-add-section-modal-left">'+ '<div class="pagelayer-section-search-div">'+ '<i class="pli pli-search" ></i><input class="pagelayer-section-search" /><span class="pagelayer-sf-empty pli">×</span>'+ '</div>'+ '<div class="pagelayer-section-tags-holder"></div>'+ '</div>'+ '<div class="pagelayer-section-modal-body-holder">'+ '<div class="pagelayer-add-section-modal-body"></div>'+ '</div>'+ '</div>'+ '<div class="pagelayer-add-section-modal-overlay" style="display:none;">'+ '<div class="pagelayer-section-wait">'+ '<div class="pagelayer-loader">'+ '<div class="pagelayer-percent-parent"></div>'+ '</div><br/>'+ '<span>Please wait a moment</span>'+ '</div>'+ '</div>'+ '</div>'+ '</div>'+ '</div>'; mEle = jQuery(section_modal); // Append the element in the body body.append(mEle); // On click close modal mEle.find('.pagelayer-add-section-modal-close').on('click', function(){ mEle.hide(); }); // Search Empty mEle.find('.pagelayer-sf-empty').on('click', function(){ mEle.find('.pagelayer-section-search').val(''); }); // On select section type mEle.find('#pagelayer-section-type').on('change', function(){ var val = jQuery(this).val(); pagelayer_add_sections_list_setup(val); }); // Append the list items into modal body pagelayer_add_sections_list_setup(); mEle.show();// Show the modal }; // Append section list into modal body function pagelayer_add_sections_list_setup(type){ var mEle = pagelayer.$$('.pagelayer-add-section-modal-container'); var body = mEle.find('.pagelayer-add-section-modal-body'); var add_area = jQuery('.pagelayer-add-widget-area'); type = type || 'section'; // Find the number of cols var body_width = jQuery(window.parent).width(); var num_cols = 3; if(body_width >= 1500){ num_cols = 4; }else if(body_width >= 992){ num_cols = 3; }else if(body_width >= 768){ num_cols = 2; }else if(body_width >= 360){ num_cols = 1; } //console.log(num_cols+' - '+body_width); var viewer = '<div class="pagelayer-section-is-visible"></div>'; var selected_tags = {}; var result_set = {}; // Setup the scroll mEle.find('.pagelayer-section-tags-holder').slimScroll({ height: 'calc(100vh - 150px)', railVisible: false, alwaysVisible: true, color: '#000', size: '5px', }); // Create list of items var pagelayer_section_list = function(){ // List the tags if(!pagelayer_empty(pagelayer_add_section_data[type]['tags'])){ var tags_html = ''; var tags = pagelayer_add_section_data[type]['tags']; for(var k in tags){ tags_html += '<span class="pagelayer-section-tags" tag="'+k+'">'+k+' ('+tags[k].length+')</span>'; } mEle.find('.pagelayer-section-tags-holder').html(tags_html); // Handle tag click mEle.find('.pagelayer-section-tags').unbind('click'); mEle.find('.pagelayer-section-tags').on('click', function(e){ var search = mEle.find('.pagelayer-section-search'); // Blank the search if(search.val().length > 0){ search.val(''); selected_tags = {}; } // Fill the selected_tags tEle = jQuery(this); var tag = tEle.attr('tag') if(tEle.attr('on') == '1'){ delete selected_tags[tag]; tEle.removeAttr('on'); }else{ tEle.attr('on', 1); selected_tags[tag] = 1; } // Filter pagelayer_section_filter(false, 1); }); } // Fill in the result result_set = { ...pagelayer_add_section_data[type]['list']}; show_result(); }; // How the result and setup scroll var show_result = function(){ var html = ''; for(var i = 0; i < num_cols; i++){ html += '<div class="pagelayer-section-holder" pagelayer-section-type="'+type+'" num="'+i+'"></div>'; } // Blank the body body.html(html+viewer); mEle.find('.pagelayer-section-modal-body-holder').unbind('scroll'); mEle.find('.pagelayer-section-modal-body-holder').on('scroll', pagelayer_section_body_scroll); pagelayer_section_body_scroll(); } var scroll_accessed = false; // Section body ON scroll var pagelayer_section_body_scroll = function(){ // Check if there is anything to display in the first place, as we do delete pagelayer_add_section_data if(pagelayer_empty(result_set)){ return; } var tester = mEle.find('.pagelayer-section-is-visible'); var modal = mEle.find('.pagelayer-section-modal-body-holder'); // If we have scroll if(!pagelayer_isElementInView(tester, modal) || scroll_accessed){ return; } scroll_accessed = true; var html = ''; var i = 0; // Loop result_set for(var id in result_set){ if(i >= (num_cols * 5)){ break; } var col = i % num_cols; //console.log(col); i++; var pro = 0; // Is it pro ? if(!pagelayer_empty(result_set[id]) && pagelayer_empty(pagelayer_pro)){ pro = 1; } html = '<div class="pagelayer-section-item" pagelayer-section-type="'+type+'" pagelayer-add-section-id="'+id+'">'+ '<img src="'+ pagelayer_add_section_data[type]['image_url'] + id +'/screenshot.jpg" alt="Pagelayer code screenshot" />'+ (pro ? '<div class="pagelayer-section-pro-req">Pro</div><div class="pagelayer-section-pro-txt">'+pagelayer.pro_txt+'</div>' : '')+ '</div>'; body.find('.pagelayer-section-holder[num='+col+']').append(html); delete result_set[id]; } //console.log(result_set); mEle.find('.pagelayer-section-item').unbind('click'); mEle.find('.pagelayer-section-item').on('click', function(e){ pagelayer_section_item_clickable(jQuery(this)); }); scroll_accessed = false; } // If we have searched something / or clicked tags var pagelayer_section_filter = function(event, not_input){ var txt = mEle.find('.pagelayer-section-search').val(); var tags = pagelayer_add_section_data[type]['tags']; // Searched anything if(!pagelayer_empty(txt) || pagelayer_empty(not_input)){ // Blank the tags selected_tags = {}; mEle.find('.pagelayer-section-tags').removeAttr('on'); for(var k in tags){ if(k.search(txt) >= 0){ selected_tags[k] = 1; mEle.find('.pagelayer-section-tags[tag="'+k+'"]').attr('on', 1); } } } var new_result = {}; var new_length = 0; // Filter the content for(var t in selected_tags){ for(var i in tags[t]){ new_length++; new_result[tags[t][i]] = tags[t][i]; } } // Copy the result result_set = {...new_result}; //console.log(type);console.log(selected_tags);console.log(result_set); show_result(); } // On search change mEle.find('.pagelayer-section-search').unbind('input'); mEle.find('.pagelayer-section-search').on('input', pagelayer_section_filter); // On click items var pagelayer_section_item_clickable = function(jEle){ var section_id = jEle.attr('pagelayer-add-section-id'); // IF section id not found if(pagelayer_empty(section_id)){ return false; } if(jEle.find('.pagelayer-section-pro-req').length > 0){ return false; } // Show the overlay mEle.find('.pagelayer-add-section-modal-overlay').show(); // Do shortcode the content jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_get_section_shortcodes&postID='+pagelayer_postID, type: 'POST', data: { 'pagelayer_nonce': pagelayer_ajax_nonce, 'pagelayer_section_id': section_id, 'pagelayer-live': 1 }, success: function(data) { try{ var data = JSON.parse(data); if(!pagelayer_empty(data['error'])){ pagelayer_show_msg('Error getting the section', 'error'); mEle.find('.pagelayer-add-section-modal-overlay').hide(); mEle.hide(); return; } var cEle = jQuery(data['code']); // Add section before add widget area add_area.before(cEle); // We need to it setup cEle.each(function(){ var pl_id = pagelayer_id(jQuery(this)); if(!pagelayer_empty(pl_id)){ pagelayer_element_setup('[pagelayer-id="'+pl_id+'"], [pagelayer-id='+pl_id+'] .pagelayer-ele', true); } }); }catch(e){ pagelayer_show_msg('Error getting the section', 'error'); mEle.find('.pagelayer-add-section-modal-overlay').hide(); mEle.hide(); return; } }, complete: function(){ mEle.find('.pagelayer-add-section-modal-overlay').hide(); mEle.hide(); } }); } // Load the data if not there if(!(type in pagelayer_add_section_data)){ // Show the loading mEle.find('.pagelayer-add-section-modal-overlay').show(); // Get the sections list data and append it jQuery.ajax({ url: pagelayer_api_url+'/library.php?give='+type, type: 'post', success: function(response){ var tmp = JSON.parse(response); // Is the list there ? if( !('list' in tmp && !pagelayer_empty(tmp['list'])) ){ return; } pagelayer_add_section_data[type] = tmp; // Create the Type pagelayer_section_list(type); // Hide the loading mEle.find('.pagelayer-add-section-modal-overlay').hide(); }, complete: function(){ mEle.find('.pagelayer-add-section-modal-overlay').hide(); } }); // We have the data, so show it }else{ pagelayer_section_list(type); } } // Upload an image function pagelayer_upload_image(fileName, blob, pagelayer_ajax_func){ var formData = new FormData(); formData.append('action', 'upload-attachment'); formData.append('_ajax_nonce', pagelayer_media_ajax_nonce); formData.append('async-upload', blob, fileName); jQuery.ajax({ url:pagelayer_ajax_url, data: formData,// the formData function is available in almost all new browsers. type:"post", contentType:false, processData:false, cache:false, beforeSend: function( xhr ) { if(typeof pagelayer_ajax_func.beforeSend == 'function'){ pagelayer_ajax_func.beforeSend(xhr); } }, xhr: function() { var xhr = new window.XMLHttpRequest(); if(typeof pagelayer_ajax_func.uploadProgress == 'function'){ xhr = pagelayer_ajax_func.uploadProgress(xhr); } return xhr; }, error:function(err){ //console.error(err); pagelayer_show_msg('Unable to upload image for some reason.', 'error'); }, success:function(response){ var obj = jQuery.parseJSON(response); if(typeof pagelayer_ajax_func.success == 'function'){ pagelayer_ajax_func.success(obj); } }, complete:function(xhr){ if(typeof pagelayer_ajax_func.complete == 'function'){ pagelayer_ajax_func.complete(xhr); } } }); }; // On editable area image paste handler function pagelayer_editable_paste_handler(pasteEvent, pagelayer_ajax_func){ var items, is_Paste = (pasteEvent.type == 'paste' ? true : false), mustPreventDefault = false, reader; try { if(is_Paste){ items = (pasteEvent.originalEvent || pasteEvent).clipboardData.items; }else{ items = [pasteEvent]; } for (var i = items.length - 1; i >= 0; i -= 1) { if (items[i].type.match(/^image\//)) { reader = new FileReader(); /* jshint -W083 */ reader.onloadend = function(event) { var src = event.target.result; if(src.indexOf('data:image') === 0 ) { var block = src.split(";"); var contentType = block[0].split(":")[1]; var realData = block[1].split(",")[1]; if(is_Paste){ var fileName = "image."+contentType.split("/")[1]; }else{ var fileName = items[0]['name']; } // Convert it to a blob to upload var blob = pagelayer_b64toBlob(realData, contentType); pagelayer_upload_image(fileName, blob, pagelayer_ajax_func); } }; /* jshint +W083 */ if(is_Paste){ reader.readAsDataURL(items[i].getAsFile()); }else{ reader.readAsDataURL(items[i]); } mustPreventDefault = true; } } if(mustPreventDefault && is_Paste){ pasteEvent.stopPropagation(); pasteEvent.preventDefault(); } }catch(err){ console.log(err); } return mustPreventDefault; } // Convert base64 to Blob function pagelayer_b64toBlob(b64Data, contentType, sliceSize) { contentType = contentType || ''; sliceSize = sliceSize || 512; var byteCharacters = atob(b64Data); var byteArrays = []; for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) { var slice = byteCharacters.slice(offset, offset + sliceSize); var byteNumbers = new Array(slice.length); for (var i = 0; i < slice.length; i++) { byteNumbers[i] = slice.charCodeAt(i); } var byteArray = new Uint8Array(byteNumbers); byteArrays.push(byteArray); } var blob = new Blob(byteArrays, {type: contentType}); return blob; } // Function to check if the URL is external function pagelayer_parse_theme_vars(img_url){ for(x in pagelayer_theme_vars){ img_url = img_url.replace(x, pagelayer_theme_vars[x]); } return img_url; }; // Tooltip Setup for Editor function pagelayer_tooltip_setup(){ //pagelayer.$$('[data-tlite]').each(function(){pagelayer_tlite.show(jQuery(this).get(0));});return; pagelayer.$$('[data-tlite]').hover(function(){ pagelayer_tlite.show(jQuery(this).get(0)); }, function(){ pagelayer_tlite.hide(jQuery(this).get(0)); }); }; // Pagelayer Messages function pagelayer_show_msg(msg, state, time){ time = time || 5000; state = !pagelayer_empty(state) ? 'pagelayer-editor-msg-state-'+state : ''; var nholder = pagelayer.$$('.pagelayer-editor-notice'); var mEle = jQuery('<div class="pagelayer-editor-msg '+state+'">'+msg+' <span class="pli pli-cross pagelayer-notice-x"></span></div>'); nholder.append(mEle); mEle.find('.pagelayer-notice-x').on('click', function(){ mEle.css({opacity: 0}); setTimeout(function(){ mEle.css({transition: 'none'}); mEle.slideUp(function(){ mEle.remove(); }); }, 900); }); setTimeout(function(){ mEle.find('.pagelayer-notice-x').click(); }, time); } // Pagelayer confirmation box function pagelayer_confirmation_box(message, yesCallback, noCallback, yesText, noText) { yesText = yesText || pagelayer_l('Yes'); noText = noText || pagelayer_l('No'); var dialog = jQuery('<div class="pagelayer-confirm-box-holder">'+ '<div class="pagelayer-confirm-box" style="border-radius:5px">'+ '<div class="pagelayer-confirmation-msg">'+ message +'</div>'+ '<center>'+ '<span class="pagelayer-btnyes button button-pagelayer">'+ yesText +'</span> '+ '<span class="pagelayer-btnno button button-pagelayer">'+ noText +'</span>'+ '</center>'+ '</div>'+ '</div>'); pagelayer.$$('body').append(dialog); dialog.find('.pagelayer-btnyes').on('click', function() { dialog.remove(); if(typeof yesCallback == 'function'){ yesCallback(); } }); dialog.find('.pagelayer-btnno').on('click', function() { dialog.remove(); if(typeof noCallback == 'function'){ noCallback(); } }); dialog.show(); } function pagelayer_trim(str, charlist){ // discuss at: http://locutus.io/php/trim/ if(typeof str != 'string'){ return str; } var whitespace = [' ', '\n', '\r', '\t', '\f', '\x0b', '\xa0', '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', '\u2007', '\u2008', '\u2009', '\u200a', '\u200b', '\u2028', '\u2029', '\u3000' ].join(''); var l = 0; var i = 0; str += ''; if (charlist) { whitespace = (charlist + '').replace(/([[\]().?/*{}+$^:])/g, '$1'); } l = str.length; for (i = 0; i < l; i++) { if (whitespace.indexOf(str.charAt(i)) === -1) { str = str.substring(i); break; } } l = str.length; for (i = l - 1; i >= 0; i--) { if (whitespace.indexOf(str.charAt(i)) === -1) { str = str.substring(0, i + 1); break; } } return whitespace.indexOf(str.charAt(0)) === -1 ? str : ''; }; function pagelayer_ucwords(str) { return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) { return $1.toUpperCase(); }); } // Check length for string and object function pagelayer_length(mixed_var) { var length = 0; var undef, key, i, len; var emptyValues = [undef, null, false]; for(i = 0, len = emptyValues.length; i < len; i++) { if (mixed_var === emptyValues[i]) { return length; } } // Is array, object or jQuery object? if(typeof mixed_var === 'object'){ // If is jQuery object if( mixed_var.hasOwnProperty('length')){ return mixed_var.length; } for (key in mixed_var) { // TODO: should we check for own properties only? //if ( .hasOwnProperty(key)) { length++; //} } return length; } length = String(mixed_var).length; return length; }; // Create Widget list dropdown function pagelayer_create_widget_tooltip(){ var html = '<div class="pagelayer-widget-tooltip">'+ '<div class="pagelayer-widget-search-holder">'+ '<div class="pagelayer-widget-search">'+ '<i class="pli pli-search" ></i><input class="pagelayer-search-field" /><span class="pagelayer-sf-empty pli">×</span>'+ '</div>'+ '</div>'; for(var x in pagelayer_groups){ // Title html += '<div class="pagelayer-widget-group pagelayer-group-name-'+x+'"><h5>'+x+'</h5>'; // Indivdual icon for(var y in pagelayer_groups[x]){ var sc = pagelayer_groups[x][y]; if(!(sc in pagelayer_shortcodes) || 'not_visible' in pagelayer_shortcodes[sc]){ continue; } html += '<div class="pagelayer-shortcode-holder" pagelayer-tag="'+sc+'">'+ '<div class="pagelayer-pointer pagelayer-sc">'+ '<center class="pagelayer-shortcode-inner">'; if('icon' in pagelayer_shortcodes[sc]){ html += '<i class="pagelayer-shortcode '+pagelayer_shortcodes[sc]['icon']+'"></i>'; }else{ html += '<i class="pagelayer-shortcode pli pagelayer-'+sc+'"></i>'; } html += '</center>'+ '<span class="pagelayer-pointer pagelayer-shortcode-text">'+pagelayer_shortcodes[sc]['name']+'</span>'+ '</div>'+ '</div>'; } html += '</div>'; } html += '</div>'; pagelayer.$$('body').append(html); var wdHolder = pagelayer.$$('.pagelayer-widget-tooltip'); // Hide the ones which are not supposed to be shown wdHolder.find('.pagelayer-search-field').on('input', function(){ var val = jQuery(this).val(); var re = new RegExp(val, 'i'); // Show only the required tags wdHolder.find('.pagelayer-widget-group').each(function(){ var group = jQuery(this); var res = group.find('[pagelayer-tag]'); var hidden = 0; res.each(function(){ var tEle = jQuery(this); if(tEle.find('.pagelayer-shortcode-text').html().match(re)){ tEle.show(); }else{ hidden += 1; tEle.hide(); } }); // Hide the whole group if(hidden == res.length){ group.hide(); }else{ group.show(); } }); wdHolder.find('.pagelayer-shortcode-holder:visible').first().trigger('widget_active'); }); // On click search empty wdHolder.find('.pagelayer-widget-search>.pagelayer-sf-empty').click(function(){ wdHolder.find('.pagelayer-search-field').val('').trigger('input'); }); // Register widget active event wdHolder.find('.pagelayer-shortcode-holder').on('widget_active', function(){ var activeEle = jQuery(this); wdHolder.find('.pagelayer-list-widget-active').removeClass('pagelayer-list-widget-active'); if(!activeEle.hasClass('pagelayer-list-widget-active')){ activeEle.addClass('pagelayer-list-widget-active'); } activeEle[0].scrollIntoView({behavior: "smooth", block: "end"}); }); pagelayer.gDocument.on('mousedown.pagelayer_wdlist', function(e){ var target = jQuery(e.target); if(target.closest('.pagelayer-widget-tooltip').is(wdHolder)){ return; } wdHolder.find('.pagelayer-shortcode-holder:visible').first().trigger('widget_active'); wdHolder.hide(); jQuery('.pagelayer-show-wiget-list').removeClass('pagelayer-show-wiget-list'); jQuery(window).off('scroll.pagelayer_wdlist resize.pagelayer_wdlist'); }); } // Show Widget list dropdown function pagelayer_show_widget_list(jEle, val){ val = val || ''; jEle = jQuery(jEle); var wEle = pagelayer.$$('.pagelayer-widget-tooltip'), winH = jQuery(window).height(), iframe = pagelayer.$$('#pagelayer-iframe'), iframeTop = iframe.offset().top, iframeLeft = iframe.offset().left, style = {}, wTop = 'auto', wBottom = 'auto', wLeft = ''; wHeight = ''; searchField = wEle.find('.pagelayer-search-field'); searchField.val(val); searchField.trigger('input'); // Add widget show class if(jEle.hasClass('pagelayer-shortcode-plus')){ jEle.parent('.pagelayer-ele-overlay').addClass('pagelayer-show-wiget-list'); } var bounds = jEle[0].getBoundingClientRect(); wEle.removeClass('pagelayer-widget-list-tooltip'); wLeft = (bounds.left + iframeLeft) - wEle.width() / 2; // In list view? if(jEle.closest('[pagelayer-editable]').length > 0){ wEle.addClass('pagelayer-widget-list-tooltip'); var selection = window.getSelection(); var range = selection.getRangeAt(0); wLeft = (range.getBoundingClientRect().left + iframeLeft) - wEle.width() / 2; } wEle.closest('.pagelayer-widget-tooltip').show(); wEle.find('.pagelayer-shortcode-holder:visible').first().trigger('widget_active'); // Hide Widget list if(jEle.closest('[pagelayer-editable]').length > 0 && wEle.find('.pagelayer-widget-group:visible').length < 1){ pagelayer.gDocument.trigger('mousedown.pagelayer_wdlist'); return; }else{ searchField.focus().select(); } var docW = iframeLeft + iframe.width() - 30; // Prevent to hide on left or right if(docW < wLeft + wEle.width()){ wLeft = docW - wEle.width(); }else if(iframeLeft > wLeft){ wLeft = iframeLeft; } if(winH / 2 < bounds.top + 10){ wBottom = winH - bounds.top + 10; wHeight = bounds.top - 10; }else{ wTop = bounds.bottom + iframeTop + 10; wHeight = winH - bounds.bottom - 10; } style['left'] = wLeft; style['top'] = wTop; style['bottom'] = wBottom; style['max-height'] = ''; if(wHeight < 350){ style['max-height'] = wHeight; } wEle.css(style); jQuery(window).off('scroll.pagelayer_wdlist resize.pagelayer_wdlist'); jQuery(window).on('scroll.pagelayer_wdlist resize.pagelayer_wdlist', function(){ var _val = wEle.find('.pagelayer-search-field').val(); pagelayer_show_widget_list(jEle, _val); }); wEle.find('.pagelayer-shortcode-holder').off('click'); wEle.find('.pagelayer-shortcode-holder').on('click', function(e){ var tag = jQuery(this).attr('pagelayer-tag'); var mWrap = jEle.closest('.pagelayer-ele-wrap[pagelayer-wrap-id]'); var mTag = pagelayer_tag(mWrap); var ele = jQuery('<div pagelayer-tag="'+tag+'"></div>'); // Is col? if(mTag == 'pl_col'){ var colHolder = mWrap.find('>.pagelayer-col > .pagelayer-col-holder'); colHolder.append(ele); pagelayer_empty_col(colHolder); }else{ mWrap.after(ele); } // Replace widget if(jEle.closest('[pagelayer-editable]').length > 0){ pagelayer_delete_element(mWrap.find('>.pagelayer-ele')); } var eleId = pagelayer_onadd(ele, false); var eEle = pagelayer_ele_by_id(eleId); // Create Column if( tag == 'pl_inner_row' ){ var in_col = jQuery('<div pagelayer-tag="pl_col"></div>'); eEle.find('>.pagelayer-row-holder').append(in_col); var in_col_id = pagelayer_onadd(in_col, false); } eEle.click(); // Hide Widget list pagelayer.gDocument.trigger('mousedown.pagelayer_wdlist'); }); } // Set Selection By Character Offsets function pagelayer_setCaret(containerEl, start, end){ end = end || start; // Refered from http://jsfiddle.net/zQUhV/47/ if(window.getSelection && document.createRange){ var charIndex = 0, range = document.createRange(); range.setStart(containerEl, 0); range.collapse(true); var nodeStack = [containerEl], node, foundStart = false, stop = false; while (!stop && (node = nodeStack.pop())) { if (node.nodeType == 3) { var nextCharIndex = charIndex + node.length; if (!foundStart && start >= charIndex && start <= nextCharIndex) { range.setStart(node, start - charIndex); foundStart = true; } if (foundStart && end >= charIndex && end <= nextCharIndex) { range.setEnd(node, end - charIndex); stop = true; } charIndex = nextCharIndex; } else { var i = node.childNodes.length; while (i--) { nodeStack.push(node.childNodes[i]); } } } var sel = window.getSelection(); sel.removeAllRanges(); sel.addRange(range); } else if (document.selection) { var textRange = document.body.createTextRange(); textRange.moveToElementText(containerEl); textRange.collapse(true); textRange.moveEnd("character", end); textRange.moveStart("character", start); textRange.select(); } } // Set Selection By Character Offsets function pagelayer_content_line(containerEl){ var lines = [], charIndex = 0, range = document.createRange(); range.setStart(containerEl, 0); range.collapse(true); var bounding = range.getBoundingClientRect(); var nodeStack = [containerEl], node, prevX = bounding.x, nextStart = 0; while(node = nodeStack.pop()){ if (node.nodeType == 3) { for(var i = 1; i <= node.length; i++){ range.setStart(node, i); range.setEnd(node, i); bounding = range.getBoundingClientRect(); charIndex ++; if(prevX > bounding.x){ lines.push({start:nextStart, end:charIndex - 1}); nextStart = charIndex; } prevX = bounding.x; } } else { var i = node.childNodes.length; while(i--){ nodeStack.push(node.childNodes[i]); } } } // Push last line if(nextStart != charIndex || nextStart == 0){ lines.push({start:nextStart, end:charIndex}); } return lines; } //http://jsfiddle.net/TjXEG/900/ function pagelayer_getCaretCharacterOffsetWithin(element){ var caretOffset = 0; var doc = element.ownerDocument || element.document; var win = doc.defaultView || doc.parentWindow; var sel; if( typeof win.getSelection != "undefined" ){ sel = win.getSelection(); if (sel.rangeCount > 0) { var range = win.getSelection().getRangeAt(0); var preCaretRange = range.cloneRange(); preCaretRange.selectNodeContents(element); preCaretRange.setEnd(range.endContainer, range.endOffset); caretOffset = preCaretRange.toString().length; } }else if( (sel = doc.selection) && sel.type != "Control" ){ var textRange = sel.createRange(); var preCaretTextRange = doc.body.createTextRange(); preCaretTextRange.moveToElementText(element); preCaretTextRange.setEndPoint("EndToEnd", textRange); caretOffset = preCaretTextRange.text.length; } return caretOffset; } combined.js 0000644 00001244733 15100021164 0006666 0 ustar 00 /* 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, .pagelayer-g-recaptcha-v3-token').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); }); // Get document for gutenberg function pagelayerGetDocumentElement(){ // Find the iframe element with the name "editor-canvas". const editorIframe = document.querySelectorAll( 'iframe[name="editor-canvas"]' ); if(! editorIframe?.[ 0 ]){ return document; } // Get the document of the iframe. const iframeDocument = editorIframe[ 0 ]?.contentWindow?.document || editorIframe[ 0 ]?.contentDocument; if ( ! iframeDocument ) { return document; } // Set the root element to the iframe document. return iframeDocument; }; // Get Window for gutenberg function pagelayerGetCurrentWindow(){ var doc = pagelayerGetDocumentElement(); return doc.defaultView || window; } // Modify jQuery for gutenberg tablet and mobile function pagelayer_query(sel, doc) { doc = doc || pagelayerGetDocumentElement(); return jQuery(sel, doc); } // Check if element is visible function pagelayer_isVisible(ele) { var win = pagelayerGetCurrentWindow(); var offset = win.innerHeight; var viewTop = win.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(){ var win = pagelayerGetCurrentWindow(); if(win.matchMedia("(min-width: "+ (pagelayer_settings['tablet_breakpoint'] + 1) +"px)").matches){ return 'desktop'; } if(win.matchMedia("(max-width: "+ pagelayer_settings['tablet_breakpoint'] +"px) and (min-width: "+ (pagelayer_settings['mobile_breakpoint'] + 1) +"px)").matches){ return 'tablet'; } if(win.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, html){ html = html || pagelayer_query('html'); // Get current width var vw = html[0].clientWidth; // 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(e){ jQuery(e.target).closest('.pagelayer-modal-container').find('.pagelayer-modal-content').show(); }; // Modal close function pagelayer_pl_modal_close(e){ jQuery(e.target).closest('.pagelayer-modal-content').hide(); } // Setup the image slider function pagelayer_pl_image_slider(jEle){ var ul = 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 = pagelayer_query('[pagelayer-id='+pl_id+']').closest('.pagelayer-tabcontainer'); pagelayer_get_tab_ele(temp_tabCont).hide(); pagelayer_query('[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 hashTabId = ''; 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 id = tEle.attr('id'); 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('<span tab-id="'+pl_id+'" id="'+id+'" class="pagelayer-tablinks" onclick="'+func+'"> <i class="'+icon+'"></i> <span>'+title+'</span></span>'); }); // Default Active by Hash var hash = location.hash.slice(1); if (!pagelayer_empty(hash)) { var hashTab = jEle.find('#' + hash); if (!pagelayer_empty(hashTab) && hashTab.length > 0) { var currentTab = hashTab.closest('.pagelayer-tablinks'); if (currentTab.length > 0) { var currentTabId = currentTab.attr('tab-id'); hashTabId = currentTabId; } } } if(hashTabId.length > 0){ pagelayer_tab_show(jEle.find('[tab-id=' + hashTabId + ']'), hashTabId); // Set the default tab }else 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'); } } var not_tabs = accHolder.find('.pagelayer-accordion_item .pagelayer-accordion-tabs'); var tabs = accHolder.find('.pagelayer-accordion-tabs').not(not_tabs); tabs.off('click'); tabs.on('click', function(e) { e.stopPropagation(); // Prevent bubbling up to parent accordions var currentTab = jQuery(this).closest('.pagelayer-accordion_item'); var accHolder = currentTab.closest('.pagelayer-accordion-holder'); // Only the current group if (currentTab.hasClass('active') && currentTab.children('.pagelayer-accordion-panel').is(':visible')) { currentTab.removeClass('active').children('.pagelayer-accordion-panel').slideUp('slow'); currentTab.find('.pagelayer-accordion-tabs').not(not_tabs).find('span i').attr('class', icon); return; } // Close only siblings inside the same accordion group accHolder.find('.pagelayer-accordion_item').not(accHolder.find('.pagelayer-accordion_item .pagelayer-accordion_item')).not(currentTab).not(currentTab.find('.pagelayer-accordion_item')).removeClass('active') .children('.pagelayer-accordion-panel').slideUp('slow') .end().find('.pagelayer-accordion-tabs').not(not_tabs).find('span i').attr('class', icon); // Open the clicked one currentTab.addClass('active').children('.pagelayer-accordion-panel').slideDown('slow'); currentTab.find('.pagelayer-accordion-tabs').not(not_tabs).find('span i').attr('class', active_icon); }); // To prevent default active click in gutenberg var setup = jEle.attr('pagelayer-setup'); // Already setup ? if(setup && setup.length > 0){ return; } jEle.attr('pagelayer-setup', 1); // 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); var not_tabs = tabs.find('.pagelayer-accordion_item .pagelayer-accordion-tabs'); var _tabs = tabs.find('.pagelayer-accordion-tabs').not(not_tabs); // Already setup ? if(setup && setup.length > 0){ _tabs.off('click'); } _tabs.on('click', function(e){ e.preventDefault(); 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').not(not_tabs).find('span i').attr('class', icon); return true; } currentTab.addClass('active').children('.pagelayer-accordion-panel').slideDown('slow'); currentTab.find('.pagelayer-accordion-tabs').not(not_tabs).find('span i').attr('class', active_icon); }); // Set that we have setup everything tabs.attr('pagelayer-setup', 1); } // Counter function pagelayer_counter(){ pagelayer_query('.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(){ pagelayer_query('.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 +='<div class="pagelayer-stars-icon pagelayer-stars-empty"><i class="fas fa-star" aria-hidden="true"></i></div>'; 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'); var id = jEle.closest('[pagelayer-id]').attr('[pagelayer-id]'); if( options.navtext ) { var right = options.navtext.replace('left','right'); options.navText = [`<i class="${options.navtext}"></i>`, `<i class="${right}"></i>`]; } // Already setup ? if(setup && setup.length > 0){ return true; } const wind = pagelayerGetCurrentWindow(); options['responsiveBaseElement'] = wind; var owlCar = ul.pagelayerOwlCarousel(options); // Refreshing Image slider after first load of page. var referrerOwl = function(){ setTimeout(function(){ owlCar.trigger('refresh.owl.carousel'); },700); } referrerOwl(); // 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(); }); }); // Gutenberg responsive Handler if(wind != window){ jQuery(wind).unbind('resize.pl_'+id, referrerOwl); jQuery(wind).on('resize.pl_'+id, referrerOwl); } // 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 = ''; var sitekey = jEle.data("sitekey"); if(!pagelayer_empty(pagelayer_recaptch_lang)){ reParam = '&hl='+pagelayer_recaptch_lang; } // Add recaptcha script if(pagelayer_empty(window.grecaptcha) && !pagelayer_empty(loadScript)){ var render = (pagelayer_recaptch_version == 'v3') ? sitekey : 'explicit'; pagelayer_query('body').append('<script src="https://www.google.com/recaptcha/api.js?render='+render+reParam+'" async defer></script>'); } // Render recaptcha var recaptcha_interval = setInterval(function(){ if(!pagelayer_empty(window.grecaptcha)){ grecaptcha.ready(function() { try{ // Call grecaptcha.execute() to trigger reCAPTCHA v3 and get a token if(pagelayer_recaptch_version == 'v3'){ var form = jEle.closest('form'); form.find('[type="submit"]').off('click').on('click', function(e){ e.preventDefault(); grecaptcha.execute(sitekey, { action: 'submit' }).then(function (token) { // Append the token to the form or element to be submitted form.find('input.pagelayer-g-recaptcha-v3-token').val(token); if(form[0].requestSubmit){ form[0].requestSubmit(); }else{ form.submit(); } }); }); }else{ var widgetID = grecaptcha.render(jEle.get(0), {'sitekey' : 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 = pagelayer_query('#' + 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(); pagelayer_query('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.attr('data-layout'); var submenu_ind = menu_holder.attr('data-submenu_ind'); var responsive = menu_holder.attr('data-responsive'); var drop_breakpoint = menu_holder.attr('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'); var afterIconSpan = aEle_sub_menu.children('.after-icon') if (aEle_sub_menu.children('.after-icon').length < 1) { aEle_sub_menu.append('<span class="after-icon fa fa-' + submenu_ind + '"></span>'); }else{ // For gutenberg afterIconSpan.attr('class', 'after-icon fa fa-' + submenu_ind); } // 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 = jEle.find('.pagelayer-testimonials-holder'); // Build the options var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-'); pagelayer_owl_init(jEle, ul, options); } var pagelayerAnimTimer = {}; 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; var id = jEle.attr('pagelayer-id'); if(pagelayer_empty(pagelayerAnimTimer[id])){ pagelayerAnimTimer[id] = {}; } // Clear the previous animations for( var time in pagelayerAnimTimer[id] ){ clearTimeout(pagelayerAnimTimer[id][time]); } initHeadline(); function initHeadline(){ // Re-set styles jEle.find('.pagelayer-aheading-holder').find('span').css('opacity', ''); //insert <i> 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] = '<b>' + letters[i] + '</b>'; letters[i] = (selected) ? '<strong class="pagelayer-aheading-in">' + letters[i] + '</strong>': '<strong>' + letters[i] + '</strong>'; } 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); clearTimeout(pagelayerAnimTimer[id][0]); pagelayerAnimTimer[id][0] = setTimeout(function(){ hideWord(nextWord); }, barAnimationDelay); clearTimeout(pagelayerAnimTimer[id][1]); pagelayerAnimTimer[id][1] = setTimeout(function(){ $word.parents('.pagelayer-words-wrapper').addClass('pagelayer-is-loading'); }, barWaiting); }else{ switchWord($word, nextWord); clearTimeout(pagelayerAnimTimer[id][2]); pagelayerAnimTimer[id][2] = 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(){ clearTimeout(pagelayerAnimTimer[id][3]); pagelayerAnimTimer[id][3] = 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')){ clearTimeout(pagelayerAnimTimer[id][4]); pagelayerAnimTimer[id][4] = setTimeout(function(){ hideLetter($letter.next(), $word, $bool, $duration); }, $duration); }else if($bool){ clearTimeout(pagelayerAnimTimer[id][5]); pagelayerAnimTimer[id][5] = setTimeout(function(){ hideWord(takeNext($word)); }, animationDelay); } if($letter.is(':last-child') && pagelayer_query('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(!$word.hasClass('pagelayer-is-visible')){ $word.parent().children().removeClass('pagelayer-is-visible'); $word.addClass('pagelayer-is-visible'); } if(!$letter.is(':last-child')){ clearTimeout(pagelayerAnimTimer[id][6]); pagelayerAnimTimer[id][6] = setTimeout(function(){ showLetter($letter.next(), $word, $bool, $duration); }, $duration); }else{ if(!$bool) { clearTimeout(pagelayerAnimTimer[id][7]); pagelayerAnimTimer[id][7] = 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'); } } } var pagelayerSetInterval = {}; function pagelayer_pl_row_slider(jEle){ var index = 0; var id = jEle.closest('[pagelayer-id]').attr('pagelayer-id'); var imageEls = jEle.find('.pagelayer-bgimg-slide'); // Get the images to be cycled. var speed = parseFloat(jEle.attr('data-speed')); // Get the speed of loop. imageEls.first().addClass('pagelayer-slide-show'); clearInterval(pagelayerSetInterval[id]); pagelayerSetInterval[id] = 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(pagelayerGetCurrentWindow()); 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)\/(video\/(.)+|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)\/(video\/(.)+|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("<img>",{src:a,class:"nivo-lightbox-image-display"});h.one("load",function(){var e=t('<div class="nivo-lightbox-image" />');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('<div class="nivo-lightbox-error"><p>'+n.options.errorMessage+"</p></div>");o.html(i).removeClass("nivo-lightbox-loading")})}else if(l){var s="",r="nivo-lightbox-video";if("youtube"==l[1]&&(s="//www.youtube.com/embed/"+l[5],r="nivo-lightbox-youtube"),"youtube-nocookie"==l[1]&&(s=a,r="nivo-lightbox-youtube"),"youtu"==l[1]&&(s="//www.youtube.com/embed/"+l[3],r="nivo-lightbox-youtube"),"vimeo"==l[1]&&(s="//player.vimeo.com/video/"+(l[3].replace('video/','')),r="nivo-lightbox-vimeo"),s){var c=t("<iframe>",{src:s,class:r,frameborder:0,vspace:0,hspace:0,scrolling:"auto"});o.html(c),c.load(function(){o.removeClass("nivo-lightbox-loading")})}}else if("ajax"==e.attr("data-lightbox-type"))t.ajax({url:a,cache:!1,success:function(e){var n=t('<div class="nivo-lightbox-ajax" />');n.append(e),o.html(n).removeClass("nivo-lightbox-loading"),n.outerHeight()<o.height()&&n.css({position:"relative",top:"50%","margin-top":-(n.outerHeight()/2)+"px"}),t(i).resize(function(){n.outerHeight()<o.height()&&n.css({position:"relative",top:"50%","margin-top":-(n.outerHeight()/2)+"px"})})},error:function(){var i=t('<div class="nivo-lightbox-error"><p>'+n.options.errorMessage+"</p></div>");o.html(i).removeClass("nivo-lightbox-loading")}});else if("#"==a.substring(0,1)&&"inline"==e.attr("data-lightbox-type"))if(t(a).length){var g=t('<div class="nivo-lightbox-inline" />');g.append(t(a).clone().show()),o.html(g).removeClass("nivo-lightbox-loading"),g.outerHeight()<o.height()&&g.css({position:"relative",top:"50%","margin-top":-(g.outerHeight()/2)+"px"}),t(i).resize(function(){g.outerHeight()<o.height()&&g.css({position:"relative",top:"50%","margin-top":-(g.outerHeight()/2)+"px"})})}else{var v=t('<div class="nivo-lightbox-error"><p>'+n.options.errorMessage+"</p></div>");o.html(v).removeClass("nivo-lightbox-loading")}else{if("iframe"!=e.attr("data-lightbox-type"))return!1;var b=t("<iframe>",{src:a,class:"nivo-lightbox-item",frameborder:0,vspace:0,hspace:0,scrolling:"auto"});o.html(b),b.load(function(){o.removeClass("nivo-lightbox-loading")})}if(e.attr("title")){var x=t("<span>",{class:"nivo-lightbox-title"});x.text(e.attr("title")),t(".nivo-lightbox-title-wrap").html(x)}else t(".nivo-lightbox-title-wrap").html("")},constructLightbox:function(){if(t(".nivo-lightbox-overlay").length)return t(".nivo-lightbox-overlay");var i=t("<div>",{class:"nivo-lightbox-overlay nivo-lightbox-theme-"+this.options.theme+" nivo-lightbox-effect-"+this.options.effect}),o=t("<div>",{class:"nivo-lightbox-wrap"}),e=t("<div>",{class:"nivo-lightbox-content"}),n=t('<a href="#" class="nivo-lightbox-nav nivo-lightbox-prev">Previous</a><a href="#" class="nivo-lightbox-nav nivo-lightbox-next">Next</a>'),a=t('<a href="#" class="nivo-lightbox-close" title="Close">Close</a>'),l=t("<div>",{class:"nivo-lightbox-title-wrap"}),h=/*@cc_on!@*/0;h&&i.addClass("nivo-lightbox-ie"),o.append(e),o.append(l),i.append(o),i.append(n),i.append(a),t("body").append(i);var s=this;return s.options.clickOverlayToClose&&i.on("click",function(i){(i.target===this||t(i.target).hasClass("nivo-lightbox-content")||t(i.target).hasClass("nivo-lightbox-image"))&&s.destructLightbox()}),s.options.clickImgToClose&&i.on("click",function(i){(i.target===this||t(i.target).hasClass("nivo-lightbox-image-display"))&&s.destructLightbox()}),a.on("click",function(t){t.preventDefault(),s.destructLightbox()}),i},destructLightbox:function(){var i=this;this.options.beforeHideLightbox.call(this),t(".nivo-lightbox-overlay").removeClass("nivo-lightbox-open"),t(".nivo-lightbox-nav").hide(),t("body").removeClass("nivo-lightbox-body-effect-"+i.options.effect);var o=/*@cc_on!@*/0;o&&(t(".nivo-lightbox-overlay iframe").attr("src"," "),t(".nivo-lightbox-overlay iframe").remove()),t(".nivo-lightbox-prev").off("click"),t(".nivo-lightbox-next").off("click"),t(".nivo-lightbox-content").empty(),this.options.afterHideLightbox.call(this)},isHidpi:function(){var t="(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)";return i.devicePixelRatio>1||!(!i.matchMedia||!i.matchMedia(t).matches)}},t.fn[a]=function(i){return this.each(function(){t.data(this,a)||t.data(this,a,new n(this,i))})}}(jQuery,window,document); /*! WOW wow.js - v1.3.0 - 2016-10-04 * https://wowjs.uk * Copyright (c) 2016 Thomas Grainger; Licensed MIT */!function(a,b){if("function"==typeof define&&define.amd)define(["module","exports"],b);else if("undefined"!=typeof exports)b(module,exports);else{var c={exports:{}};b(c,c.exports),a.WOW=c.exports}}(this,function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function d(a,b){return b.indexOf(a)>=0}function e(a,b){for(var c in b)if(null==a[c]){var d=b[c];a[c]=d}return a}function f(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)}function g(a){var b=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],c=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],d=arguments.length<=3||void 0===arguments[3]?null:arguments[3],e=void 0;return null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e}function h(a,b){null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)&&a["on"+b]()}function i(a,b,c){null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c}function j(a,b,c){null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]}function k(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight}Object.defineProperty(b,"__esModule",{value:!0});var l,m,n=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),o=window.WeakMap||window.MozWeakMap||function(){function a(){c(this,a),this.keys=[],this.values=[]}return n(a,[{key:"get",value:function(a){for(var b=0;b<this.keys.length;b++){var c=this.keys[b];if(c===a)return this.values[b]}}},{key:"set",value:function(a,b){for(var c=0;c<this.keys.length;c++){var d=this.keys[c];if(d===a)return this.values[c]=b,this}return this.keys.push(a),this.values.push(b),this}}]),a}(),p=window.MutationObserver||window.WebkitMutationObserver||window.MozMutationObserver||(m=l=function(){function a(){c(this,a),"undefined"!=typeof console&&null!==console&&(console.warn("MutationObserver is not supported by your browser."),console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content."))}return n(a,[{key:"observe",value:function(){}}]),a}(),l.notSupported=!0,m),q=window.getComputedStyle||function(a){var b=/(\-([a-z]){1})/g;return{getPropertyValue:function(c){"float"===c&&(c="styleFloat"),b.test(c)&&c.replace(b,function(a,b){return b.toUpperCase()});var d=a.currentStyle;return(null!=d?d[c]:void 0)||null}}},r=function(){function a(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];c(this,a),this.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null,resetAnimation:!0},this.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),this.vendors=["moz","webkit"],this.start=this.start.bind(this),this.resetAnimation=this.resetAnimation.bind(this),this.scrollHandler=this.scrollHandler.bind(this),this.scrollCallback=this.scrollCallback.bind(this),this.scrolled=!0,this.config=e(b,this.defaults),null!=b.scrollContainer&&(this.config.scrollContainer=document.querySelector(b.scrollContainer)),this.animationNameCache=new o,this.wowEvent=g(this.config.boxClass)}return n(a,[{key:"init",value:function(){this.element=window.document.documentElement,d(document.readyState,["interactive","complete"])?this.start():i(document,"DOMContentLoaded",this.start),this.finished=[]}},{key:"start",value:function(){var a=this;if(this.stopped=!1,this.boxes=[].slice.call(this.element.querySelectorAll("."+this.config.boxClass)),this.all=this.boxes.slice(0),this.boxes.length)if(this.disabled())this.resetStyle();else for(var b=0;b<this.boxes.length;b++){var c=this.boxes[b];this.applyStyle(c,!0)}if(this.disabled()||(i(this.config.scrollContainer||window,"scroll",this.scrollHandler),i(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live){var d=new p(function(b){for(var c=0;c<b.length;c++)for(var d=b[c],e=0;e<d.addedNodes.length;e++){var f=d.addedNodes[e];a.doSync(f)}});d.observe(document.body,{childList:!0,subtree:!0})}}},{key:"stop",value:function(){this.stopped=!0,j(this.config.scrollContainer||window,"scroll",this.scrollHandler),j(window,"resize",this.scrollHandler),null!=this.interval&&clearInterval(this.interval)}},{key:"sync",value:function(){p.notSupported&&this.doSync(this.element)}},{key:"doSync",value:function(a){if("undefined"!=typeof a&&null!==a||(a=this.element),1===a.nodeType){a=a.parentNode||a;for(var b=a.querySelectorAll("."+this.config.boxClass),c=0;c<b.length;c++){var e=b[c];d(e,this.all)||(this.boxes.push(e),this.all.push(e),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(e,!0),this.scrolled=!0)}}}},{key:"show",value:function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),h(a,this.wowEvent),this.config.resetAnimation&&(i(a,"animationend",this.resetAnimation),i(a,"oanimationend",this.resetAnimation),i(a,"webkitAnimationEnd",this.resetAnimation),i(a,"MSAnimationEnd",this.resetAnimation)),a}},{key:"applyStyle",value:function(a,b){var c=this,d=a.getAttribute("data-wow-duration"),e=a.getAttribute("data-wow-delay"),f=a.getAttribute("data-wow-iteration");return this.animate(function(){return c.customStyle(a,b,d,e,f)})}},{key:"resetStyle",value:function(){for(var a=0;a<this.boxes.length;a++){var b=this.boxes[a];b.style.visibility="visible"}}},{key:"resetAnimation",value:function(a){if(a.type.toLowerCase().indexOf("animationend")>=0){var b=a.target||a.srcElement;b.className=b.className.replace(this.config.animateClass,"").trim()}}},{key:"customStyle",value:function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a}},{key:"vendorSet",value:function(a,b){for(var c in b)if(b.hasOwnProperty(c)){var d=b[c];a[""+c]=d;for(var e=0;e<this.vendors.length;e++){var f=this.vendors[e];a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=d}}}},{key:"vendorCSS",value:function(a,b){for(var c=q(a),d=c.getPropertyCSSValue(b),e=0;e<this.vendors.length;e++){var f=this.vendors[e];d=d||c.getPropertyCSSValue("-"+f+"-"+b)}return d}},{key:"animationName",value:function(a){var b=void 0;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=q(a).getPropertyValue("animation-name")}return"none"===b?"":b}},{key:"cacheAnimationName",value:function(a){return this.animationNameCache.set(a,this.animationName(a))}},{key:"cachedAnimationName",value:function(a){return this.animationNameCache.get(a)}},{key:"scrollHandler",value:function(){this.scrolled=!0}},{key:"scrollCallback",value:function(){if(this.scrolled){this.scrolled=!1;for(var a=[],b=0;b<this.boxes.length;b++){var c=this.boxes[b];if(c){if(this.isVisible(c)){this.show(c);continue}a.push(c)}}this.boxes=a,this.boxes.length||this.config.live||this.stop()}}},{key:"offsetTop",value:function(a){for(;void 0===a.offsetTop;)a=a.parentNode;for(var b=a.offsetTop;a.offsetParent;)a=a.offsetParent,b+=a.offsetTop;return b}},{key:"isVisible",value:function(a){var b=a.getAttribute("data-wow-offset")||this.config.offset,c=this.config.scrollContainer&&this.config.scrollContainer.scrollTop||window.pageYOffset,d=c+Math.min(this.element.clientHeight,k())-b,e=this.offsetTop(a),f=e+a.clientHeight;return d>=e&&f>=c}},{key:"disabled",value:function(){return!this.config.mobile&&f(navigator.userAgent)}}]),a}();b["default"]=r,a.exports=b["default"]}); /* * jQuery Numerator Plugin 0.2.1 * https://github.com/garethdn/jquery-numerator * * Copyright 2015, Gareth Nolan * http://ie.linkedin.com/in/garethnolan/ * Based on jQuery Boilerplate by Zeno Rocha with the help of Addy Osmani * http://jqueryboilerplate.com * * Licensed under the MIT license: * http://www.opensource.org/licenses/MIT */ ;(function (factory) { 'use strict'; if (typeof define === 'function' && define.amd) { // AMD is used - Register as an anonymous module. define(['jquery'], factory); } else if (typeof exports === 'object') { factory(require('jquery')); } else { // Neither AMD nor CommonJS used. Use global variables. if (typeof jQuery === 'undefined') { throw 'jquery-numerator requires jQuery to be loaded first'; } factory(jQuery); } }(function ($) { var pluginName = "numerator", defaults = { easing: 'swing', duration: 500, delimiter: undefined, rounding: 0, toValue: undefined, fromValue: undefined, queue: false, onStart: function(){}, onStep: function(){}, onProgress: function(){}, onComplete: function(){} }; function Plugin ( element, options ) { this.element = element; this.settings = $.extend( {}, defaults, options ); this._defaults = defaults; this._name = pluginName; this.init(); } Plugin.prototype = { init: function () { this.parseElement(); this.setValue(); }, parseElement: function () { var elText = $.trim($(this.element).text()); this.settings.fromValue = this.settings.fromValue || this.format(elText); }, setValue: function() { var self = this; $({value: self.settings.fromValue}).animate({value: self.settings.toValue}, { duration: parseInt(self.settings.duration, 10), easing: self.settings.easing, start: self.settings.onStart, step: function(now, fx) { $(self.element).text(self.format(now)); // accepts two params - (now, fx) self.settings.onStep(now, fx); }, // accepts three params - (animation object, progress ratio, time remaining(ms)) progress: self.settings.onProgress, complete: self.settings.onComplete }); }, format: function(value){ var self = this; if ( parseInt(this.settings.rounding ) < 1) { value = parseInt(value, 10); } else { value = parseFloat(value).toFixed( parseInt(this.settings.rounding) ); } if (self.settings.delimiter) { return this.delimit(value) } else { return value; } }, // TODO: Add comments to this function delimit: function(value){ var self = this; value = value.toString(); if (self.settings.rounding && parseInt(self.settings.rounding, 10) > 0) { var decimals = value.substring( (value.length - (self.settings.rounding + 1)), value.length ), wholeValue = value.substring( 0, (value.length - (self.settings.rounding + 1))); return self.addDelimiter(wholeValue) + decimals; } else { return self.addDelimiter(value); } }, addDelimiter: function(value){ return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.settings.delimiter); } }; $.fn[ pluginName ] = function ( options ) { return this.each(function() { if ( $.data( this, "plugin_" + pluginName ) ) { $.data(this, 'plugin_' + pluginName, null); } $.data( this, "plugin_" + pluginName, new Plugin( this, options ) ); }); }; })); /** * simple-parallax-js - simpleParallax is a simple and lightweight JS plugin that gives your website parallax animations on the images * @version v4.2.1 * @date: 09-03-2019 17:4:39 * @link https://simpleparallax.com/ */ "use strict";var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},_createClass=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}!function(e,t){"function"==typeof define&&define.amd?define([],function(){return t(e)}):"object"===("undefined"==typeof exports?"undefined":_typeof(exports))?module.exports=t(e):e.pagelayerParallax=t(e)}("undefined"!=typeof global?global:"undefined"!=typeof window?window:void 0,function(o){var i=function(){for(var e,t="transform webkitTransform mozTransform oTransform msTransform".split(" "),n=0;void 0===e;)e=null!=document.createElement("div").style[t[n]]?t[n]:void 0,n++;return e}();!function(){for(var a=0,e=["ms","moz","webkit","o"],t=0;t<e.length&&!o.requestAnimationFrame;++t)o.requestAnimationFrame=o[e[t]+"RequestAnimationFrame"],o.cancelAnimationFrame=o[e[t]+"CancelAnimationFrame"]||o[e[t]+"CancelRequestAnimationFrame"];o.requestAnimationFrame||(o.requestAnimationFrame=function(e,t){var n=(new Date).getTime(),i=Math.max(0,16-(n-a)),s=o.setTimeout(function(){e(n+i)},i);return a=n+i,s}),o.cancelAnimationFrame||(o.cancelAnimationFrame=function(e){clearTimeout(e)})}(),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(e){var t=this;if(!document.documentElement.contains(t))return null;do{if(t.matches(e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null});var s=[],t=-1,a=void 0,r=void 0,l=void 0,h=void 0,m=!1,u=function(){function n(e,t){_classCallCheck(this,n),this.element=e,this.elementContainer=e,this.defaults={delay:.6,orientation:"up",scale:1.3,overflow:!1,transition:"cubic-bezier(0,0,0,1)",breakpoint:!1},this.settings=_extends(this.defaults,t),this.settings.breakpoint&&document.documentElement.clientWidth<=this.settings.breakpoint||(this.init=this.init.bind(this),this.animationFrame=this.animationFrame.bind(this),this.handleResize=this.handleResize.bind(this),this.isImageLoaded(this.element)?this.init():this.element.addEventListener("load",this.init),s.push(this),m||(m=!0,this.getViewportOffsetHeight(),this.animationFrame()))}return _createClass(n,[{key:"init",value:function(){this.isInit||(!1===this.settings.overflow&&this.wrapElement(),this.setStyle(),this.getElementOffset(),this.getTranslateValue(),this.animate(),o.addEventListener("resize",this.handleResize),this.isInit=!0)}},{key:"isImageLoaded",value:function(){return!!this.element.complete&&(void 0===this.element.naturalWidth||0!==this.element.naturalWidth)}},{key:"isVisible",value:function(){return this.elementBottomX>a&&this.elementTopX<r}},{key:"wrapElement",value:function(){var e=this.element.closest("picture")||this.element,t=document.createElement("div");t.classList.add("pagelayerParallax"),t.style.overflow="hidden",e.parentNode.insertBefore(t,e),t.appendChild(e),this.elementContainer=t}},{key:"unWrapElement",value:function(){var e=this.elementContainer.parentNode;if(e){for(;this.elementContainer.firstChild;)e.insertBefore(this.elementContainer.firstChild,this.elementContainer);e.removeChild(this.elementContainer)}}},{key:"setStyle",value:function(){!1===this.settings.overflow&&(this.element.style[i]="scale("+this.settings.scale+")"),0<this.settings.delay&&(this.element.style.transition="transform "+this.settings.delay+"s "+this.settings.transition),this.element.style.willChange="transform"}},{key:"unSetStyle",value:function(){this.element.style.willChange="",this.element.style[i]="",this.element.style.transition=""}},{key:"getElementOffset",value:function(){var e=this.elementContainer.getBoundingClientRect();this.elementHeight=e.height,this.elementTopX=e.top+o.pageYOffset,this.elementBottomX=this.elementHeight+this.elementTopX}},{key:"getViewportOffsetTop",value:function(){a=o.pageYOffset}},{key:"getViewportOffsetHeight",value:function(){l=document.documentElement.clientHeight}},{key:"getViewportOffsetBottom",value:function(){r=a+l}},{key:"handleResize",value:function(){this.getViewportOffsetHeight(),this.getElementOffset(),this.getRangeMax()}},{key:"getRangeMax",value:function(){var e=this.element.clientHeight;this.rangeMax=e*this.settings.scale-e,"down"!==this.settings.orientation&&"right"!==this.settings.orientation||(this.rangeMax*=-1)}},{key:"getTranslateValue",value:function(){var e=((r-this.elementTopX)/((l+this.elementHeight)/100)).toFixed(1);return e=Math.min(100,Math.max(0,e)),this.oldPercentage!==e&&(this.rangeMax||this.getRangeMax(),this.translateValue=(e/100*this.rangeMax-this.rangeMax/2).toFixed(0),this.oldTranslateValue!==this.translateValue&&(this.oldPercentage=e,this.oldTranslateValue=this.translateValue,!0))}},{key:"animate",value:function(){var e=0,t=0,n=void 0;"left"===this.settings.orientation||"right"===this.settings.orientation?t=this.translateValue+"px":e=this.translateValue+"px",n=!1===this.settings.overflow?"translate3d("+t+", "+e+", 0) scale("+this.settings.scale+")":"translate3d("+t+", "+e+", 0)",this.element.style[i]=n}},{key:"proceedElement",value:function(e){e.isVisible()&&e.getTranslateValue()&&e.animate()}},{key:"animationFrame",value:function(){if(this.getViewportOffsetTop(),t!==a){this.getViewportOffsetBottom();for(var e=0;e<s.length;e++)this.proceedElement(s[e]);h=o.requestAnimationFrame(this.animationFrame),t=a}else h=o.requestAnimationFrame(this.animationFrame)}},{key:"destroy",value:function(){this.isDestroyed||(this.unSetStyle(),!1===this.settings.overflow&&this.unWrapElement(),s.splice(s.indexOf(this),1),s.length||(m=!1,o.cancelAnimationFrame(h)),o.removeEventListener("resize",this.handleResize))}},{key:"isDestroyed",get:function(){return-1===s.indexOf(this)}}]),n}();return function(e,t){var n=[];if(e.length)for(var i=0;i<e.length;i++)n.push(new u(e[i],t));else n.push(new u(e,t));return n}}); /** * Owl Carousel v2.3.4 * Copyright 2013-2018 David Deutsch * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE */ !function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,checkVisibility:!0,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",slideTransition:"",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"pagelayer-owl-refresh",loadedClass:"pagelayer-owl-loaded",loadingClass:"pagelayer-owl-loading",rtlClass:"pagelayer-owl-rtl",responsiveClass:"pagelayer-owl-responsive",dragClass:"pagelayer-owl-drag",itemClass:"pagelayer-owl-item",stageClass:"pagelayer-owl-stage",stageOuterClass:"pagelayer-owl-stage-outer",grabClass:"pagelayer-owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g>0;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i,g-=1;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c<b;)d=f[c-1]||0,e=this._widths[this.relative(c)]+this.settings.margin,f.push(d+e*a);this._coordinates=f}},{filter:["width","items","settings"],run:function(){var a=this.settings.stagePadding,b=this._coordinates,c={width:Math.ceil(Math.abs(b[b.length-1]))+2*a,"padding-left":a||"","padding-right":a||""};this.$stage.css(c)}},{filter:["width","items","settings"],run:function(a){var b=this._coordinates.length,c=!this.settings.autoWidth,d=this.$stage.children();if(c&&a.items.merge)for(;b--;)a.css.width=this._widths[this.relative(b)],d.eq(b).css(a.css);else c&&(a.css.width=a.items.width,d.css(a.css))}},{filter:["items"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(a){a.current=a.current?this.$stage.children().index(a.current):0,a.current=Math.max(this.minimum(),Math.min(this.maximum(),a.current)),this.reset(a.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;c<d;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.$stage.children(".center").removeClass("center"),this.settings.center&&this.$stage.children().eq(this.current()).addClass("center")}}],e.prototype.initializeStage=function(){this.$stage=this.$element.find("."+this.settings.stageClass),this.$stage.length||(this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+">",{class:this.settings.stageClass}).wrap(a("<div/>",{class:this.settings.stageOuterClass})),this.$element.append(this.$stage.parent()))},e.prototype.initializeItems=function(){var b=this.$element.find(".pagelayer-owl-item");if(b.length)return this._items=b.get().map(function(b){return a(b)}),this._mergers=this._items.map(function(){return 1}),void this.refresh();this.replace(this.$element.children().not(this.$stage.parent())),this.isVisible()?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)},e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var a,b,c;a=this.$element.find("img"),b=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,c=this.$element.children(b).width(),a.length&&c<=0&&this.preloadAutoWidthImages(a)}this.initializeStage(),this.initializeItems(),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.isVisible=function(){return!this.settings.checkVisibility||this.$element.is(":visible")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b<c;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.isVisible()&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)<Math.abs(d.y)&&this.is("valid")||(b.preventDefault(),this.enter("dragging"),this.trigger("drag"))},this)))},e.prototype.onDragMove=function(a){var b=null,c=null,d=null,e=this.difference(this._drag.pointer,this.pointer(a)),f=this.difference(this._drag.stage.start,e);this.is("dragging")&&(a.preventDefault(),this.settings.loop?(b=this.coordinates(this.minimum()),c=this.coordinates(this.maximum()+1)-b,f.x=((f.x-b)%c+c)%c+b):(b=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),c=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),d=this.settings.pullDrag?-1*e.x/5:0,f.x=Math.max(Math.min(f.x,b+d),c+d)),this._drag.stage.current=f,this.animate(f.x))},e.prototype.onDragEnd=function(b){var d=this.difference(this._drag.pointer,this.pointer(b)),e=this._drag.stage.current,f=d.x>0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var e=-1,f=30,g=this.width(),h=this.coordinates();return this.settings.freeDrag||a.each(h,a.proxy(function(a,i){return"left"===c&&b>i-f&&b<i+f?e=a:"right"===c&&b>i-g-f&&b<i-g+f?e=a+1:this.op(b,"<",i)&&this.op(b,">",h[a+1]!==d?h[a+1]:i-g)&&(e="left"===c?a+1:a),-1===e},this)),this.settings.loop||(this.op(b,">",h[this.minimum()])?e=b=this.minimum():this.op(b,"<",h[this.maximum()])&&(e=b=this.maximum())),e},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"+(this.settings.slideTransition?" "+this.settings.slideTransition:"")}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){(a=this.normalize(a))!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){if(b=this._items.length)for(c=this._items[--b].width(),d=this.$element.width();b--&&!((c+=this._items[b].width()+this.settings.margin)>d););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2==0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=-1*f*g),a=c+e,(d=((a-h)%g+g)%g+h)!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.isVisible()&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){(a=this.normalize(a,!0))!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),!1!==this.settings.responsive&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.remove(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a<c;case">":return d?a<c:a>c;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&-1!==a.namespace.indexOf("owl")?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.pagelayerOwlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.pagelayerOwlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.isVisible(),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.isVisible()!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("pagelayer-owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type)){var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&-1*e||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);for(c.lazyLoadEager>0&&(e+=c.lazyLoadEager,c.loop&&(g-=c.lazyLoadEager,e++));f++<e;)this.load(h/2+this._core.relative(g)),h&&a.each(this._core.clones(this._core.relative(g)),i),g++}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={lazyLoad:!1,lazyLoadEager:0},e.prototype.load=function(c){var d=this._core.$stage.children().eq(c),e=d&&d.find(".pagelayer-owl-lazy");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src")||f.attr("data-srcset");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):f.is("source")?f.one("load.owl.lazy",a.proxy(function(){this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("srcset",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},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.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(c){this._core=c,this._previousHeight=null,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"===a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._intervalId=null;var d=this;a(b).on("load",function(){d._core.settings.autoHeight&&d.update()}),a(b).resize(function(){d._core.settings.autoHeight&&(null!=d._intervalId&&clearTimeout(d._intervalId),d._intervalId=setTimeout(function(){d.update()},250))})};e.Defaults={autoHeight:!1,autoHeightClass:"pagelayer-owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.settings.lazyLoad,e=this._core.$stage.children().toArray().slice(b,c),f=[],g=0;a.each(e,function(b,c){f.push(a(c).height())}),g=Math.max.apply(null,f),g<=1&&d&&this._previousHeight&&(g=this._previousHeight),this._previousHeight=g,this._core.$stage.parent().height(g).addClass(this._core.settings.autoHeightClass)},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.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .pagelayer-owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".pagelayer-owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".pagelayer-owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?"width:"+c.width+"px;height:"+c.height+"px;":"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(c){e='<div class="pagelayer-owl-video-play-icon"></div>',d=k.lazyLoad?a("<div/>",{class:"pagelayer-owl-video-tn "+j,srcType:c}):a("<div/>",{class:"pagelayer-owl-video-tn",style:"opacity:1;background-image:url("+c+")"}),b.after(d),b.after(e)};if(b.wrap(a("<div/>",{class:"pagelayer-owl-video-wrapper",style:g})),this._core.settings.lazyLoad&&(i="data-src",j="pagelayer-owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".pagelayer-owl-video-frame").remove(),this._playing.removeClass("pagelayer-owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),c=a('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>'),c.attr("height",h),c.attr("width",g),"youtube"===f.type?c.attr("src","//www.youtube.com/embed/"+f.id+"?autoplay=1&rel=0&v="+f.id):"vimeo"===f.type?c.attr("src","//player.vimeo.com/video/"+f.id+"?autoplay=1"):"vzaar"===f.type&&c.attr("src","//view.vzaar.com/"+f.id+"/player?autoplay=true"),a(c).wrap('<div class="pagelayer-owl-video-frame" />').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('<div class="'+this._core.settings.dotClass+'">'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")},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:['<span aria-label="Previous">‹</span>','<span aria-label="Next">›</span>'],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("<div>").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('<button role="button">').addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","button",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d,e;e=this._core.settings;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)"$relative"===b&&e.navContainer?this._controls[b].html(""):this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if("page"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||"page"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a<e;a++){if(b>=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass("disabled",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass("disabled",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join("")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass("active"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Navigation=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(c){c.namespace&&"URLHash"===this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!c)return;this._hashes[c]=b.content}},this),"changed.owl.carousel":a.proxy(function(c){if(c.namespace&&"position"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.pagelayerOwlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+" "+h.join(f+" ")+f).split(" "),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a("<support>").get(0).style,h="Webkit Moz O ms".split(" "),i={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},j={csstransforms:function(){return!!e("transform")},csstransforms3d:function(){return!!e("perspective")},csstransitions:function(){return!!e("transition")},cssanimations:function(){return!!e("animation")}};j.csstransitions()&&(a.support.transition=new String(f("transition")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f("animation")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f("transform")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document); /*! * Chart.js v2.8.0 * https://www.chartjs.org * (c) 2019 Chart.js Contributors * Released under the MIT License */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(function(){try{return require("moment")}catch(t){}}()):"function"==typeof define&&define.amd?define(["require"],function(t){return e(function(){try{return t("moment")}catch(t){}}())}):t.Chart=e(t.moment)}(this,function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e={rgb2hsl:i,rgb2hsv:n,rgb2hwb:a,rgb2cmyk:o,rgb2keyword:s,rgb2xyz:l,rgb2lab:d,rgb2lch:function(t){return x(d(t))},hsl2rgb:u,hsl2hsv:function(t){var e=t[0],i=t[1]/100,n=t[2]/100;if(0===n)return[0,0,0];return[e,100*(2*(i*=(n*=2)<=1?n:2-n)/(n+i)),100*((n+i)/2)]},hsl2hwb:function(t){return a(u(t))},hsl2cmyk:function(t){return o(u(t))},hsl2keyword:function(t){return s(u(t))},hsv2rgb:h,hsv2hsl:function(t){var e,i,n=t[0],a=t[1]/100,o=t[2]/100;return e=a*o,[n,100*(e=(e/=(i=(2-a)*o)<=1?i:2-i)||0),100*(i/=2)]},hsv2hwb:function(t){return a(h(t))},hsv2cmyk:function(t){return o(h(t))},hsv2keyword:function(t){return s(h(t))},hwb2rgb:c,hwb2hsl:function(t){return i(c(t))},hwb2hsv:function(t){return n(c(t))},hwb2cmyk:function(t){return o(c(t))},hwb2keyword:function(t){return s(c(t))},cmyk2rgb:f,cmyk2hsl:function(t){return i(f(t))},cmyk2hsv:function(t){return n(f(t))},cmyk2hwb:function(t){return a(f(t))},cmyk2keyword:function(t){return s(f(t))},keyword2rgb:w,keyword2hsl:function(t){return i(w(t))},keyword2hsv:function(t){return n(w(t))},keyword2hwb:function(t){return a(w(t))},keyword2cmyk:function(t){return o(w(t))},keyword2lab:function(t){return d(w(t))},keyword2xyz:function(t){return l(w(t))},xyz2rgb:p,xyz2lab:m,xyz2lch:function(t){return x(m(t))},lab2xyz:v,lab2rgb:y,lab2lch:x,lch2lab:k,lch2xyz:function(t){return v(k(t))},lch2rgb:function(t){return y(k(t))}};function i(t){var e,i,n=t[0]/255,a=t[1]/255,o=t[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),i=(r+s)/2,[e,100*(s==r?0:i<=.5?l/(s+r):l/(2-s-r)),100*i]}function n(t){var e,i,n=t[0],a=t[1],o=t[2],r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return i=0==s?0:l/s*1e3/10,s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),[e,i,s/255*1e3/10]}function a(t){var e=t[0],n=t[1],a=t[2];return[i(t)[0],100*(1/255*Math.min(e,Math.min(n,a))),100*(a=1-1/255*Math.max(e,Math.max(n,a)))]}function o(t){var e,i=t[0]/255,n=t[1]/255,a=t[2]/255;return[100*((1-i-(e=Math.min(1-i,1-n,1-a)))/(1-e)||0),100*((1-n-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]}function s(t){return _[JSON.stringify(t)]}function l(t){var e=t[0]/255,i=t[1]/255,n=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)+.1805*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)),100*(.2126*e+.7152*i+.0722*n),100*(.0193*e+.1192*i+.9505*n)]}function d(t){var e=l(t),i=e[0],n=e[1],a=e[2];return n/=100,a/=108.883,i=(i/=95.047)>.008856?Math.pow(i,1/3):7.787*i+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(i-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function u(t){var e,i,n,a,o,r=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[o=255*l,o,o];e=2*l-(i=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var d=0;d<3;d++)(n=r+1/3*-(d-1))<0&&n++,n>1&&n--,o=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e,a[d]=255*o;return a}function h(t){var e=t[0]/60,i=t[1]/100,n=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*n*(1-i),s=255*n*(1-i*o),l=255*n*(1-i*(1-o));n*=255;switch(a){case 0:return[n,l,r];case 1:return[s,n,r];case 2:return[r,n,l];case 3:return[r,s,n];case 4:return[l,r,n];case 5:return[n,r,s]}}function c(t){var e,i,n,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,d=s+l;switch(d>1&&(s/=d,l/=d),n=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(n=1-n),a=s+n*((i=1-l)-s),e){default:case 6:case 0:r=i,g=a,b=s;break;case 1:r=a,g=i,b=s;break;case 2:r=s,g=i,b=a;break;case 3:r=s,g=a,b=i;break;case 4:r=a,g=s,b=i;break;case 5:r=i,g=s,b=a}return[255*r,255*g,255*b]}function f(t){var e=t[0]/100,i=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function p(t){var e,i,n,a=t[0]/100,o=t[1]/100,r=t[2]/100;return i=-.9689*a+1.8758*o+.0415*r,n=.0557*a+-.204*o+1.057*r,e=(e=3.2406*a+-1.5372*o+-.4986*r)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1))]}function m(t){var e=t[0],i=t[1],n=t[2];return i/=100,n/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(e-i),200*(i-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]}function v(t){var e,i,n,a,o=t[0],r=t[1],s=t[2];return o<=8?a=(i=100*o/903.3)/100*7.787+16/116:(i=100*Math.pow((o+16)/116,3),a=Math.pow(i/100,1/3)),[e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i,n=n/108.883<=.008859?n=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3)]}function x(t){var e,i=t[0],n=t[1],a=t[2];return(e=360*Math.atan2(a,n)/2/Math.PI)<0&&(e+=360),[i,Math.sqrt(n*n+a*a),e]}function y(t){return p(v(t))}function k(t){var e,i=t[0],n=t[1];return e=t[2]/360*2*Math.PI,[i,n*Math.cos(e),n*Math.sin(e)]}function w(t){return M[t]}var M={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},_={};for(var C in M)_[JSON.stringify(M[C])]=C;var S=function(){return new T};for(var P in e){S[P+"Raw"]=function(t){return function(i){return"number"==typeof i&&(i=Array.prototype.slice.call(arguments)),e[t](i)}}(P);var I=/(\w+)2(\w+)/.exec(P),A=I[1],D=I[2];(S[A]=S[A]||{})[D]=S[P]=function(t){return function(i){"number"==typeof i&&(i=Array.prototype.slice.call(arguments));var n=e[t](i);if("string"==typeof n||void 0===n)return n;for(var a=0;a<n.length;a++)n[a]=Math.round(n[a]);return n}}(P)}var T=function(){this.convs={}};T.prototype.routeSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i))},T.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},T.prototype.getValues=function(t){var e=this.convs[t];if(!e){var i=this.space,n=this.convs[i];e=S[i][t](n),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){T.prototype[t]=function(e){return this.routeSpace(t,arguments)}});var F=S,L={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},R={getRgba:O,getHsla:z,getRgb:function(t){var e=O(t);return e&&e.slice(0,3)},getHsl:function(t){var e=z(t);return e&&e.slice(0,3)},getHwb:B,getAlpha:function(t){var e=O(t);if(e)return e[3];if(e=z(t))return e[3];if(e=B(t))return e[3]},hexString:function(t,e){var e=void 0!==e&&3===t.length?e:t[3];return"#"+H(t[0])+H(t[1])+H(t[2])+(e>=0&&e<1?H(Math.round(255*e)):"")},rgbString:function(t,e){if(e<1||t[3]&&t[3]<1)return N(t,e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:N,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return W(t,e);var i=Math.round(t[0]/255*100),n=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+i+"%, "+n+"%, "+a+"%)"},percentaString:W,hslString:function(t,e){if(e<1||t[3]&&t[3]<1)return V(t,e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:V,hwbString:function(t,e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return j[t.slice(0,3)]}};function O(t){if(t){var e=[0,0,0],i=1,n=t.match(/^#([a-fA-F0-9]{3,4})$/i),a="";if(n){a=(n=n[1])[3];for(var o=0;o<e.length;o++)e[o]=parseInt(n[o]+n[o],16);a&&(i=Math.round(parseInt(a+a,16)/255*100)/100)}else if(n=t.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)){a=n[2],n=n[1];for(o=0;o<e.length;o++)e[o]=parseInt(n.slice(2*o,2*o+2),16);a&&(i=Math.round(parseInt(a,16)/255*100)/100)}else if(n=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=parseInt(n[o+1]);i=parseFloat(n[4])}else if(n=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=Math.round(2.55*parseFloat(n[o+1]));i=parseFloat(n[4])}else if(n=t.match(/(\w+)/)){if("transparent"==n[1])return[0,0,0,0];if(!(e=L[n[1]]))return}for(o=0;o<e.length;o++)e[o]=E(e[o],0,255);return i=i||0==i?E(i,0,1):1,e[3]=i,e}}function z(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[E(parseInt(e[1]),0,360),E(parseFloat(e[2]),0,100),E(parseFloat(e[3]),0,100),E(isNaN(i)?1:i,0,1)]}}}function B(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[E(parseInt(e[1]),0,360),E(parseFloat(e[2]),0,100),E(parseFloat(e[3]),0,100),E(isNaN(i)?1:i,0,1)]}}}function N(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function W(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function V(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function E(t,e,i){return Math.min(Math.max(e,t),i)}function H(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var j={};for(var q in L)j[L[q]]=q;var Y=function(t){return t instanceof Y?t:this instanceof Y?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof t?(e=R.getRgba(t))?this.setValues("rgb",e):(e=R.getHsla(t))?this.setValues("hsl",e):(e=R.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new Y(t);var e};Y.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return R.hexString(this.values.rgb)},rgbString:function(){return R.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return R.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return R.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return R.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return R.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return R.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return R.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],i=0;i<t.length;i++){var n=t[i]/255;e[i]=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),i=t.luminosity();return e>i?(e+.05)/(i+.05):(i+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,i=(e[0]+t)%360;return e[0]=i<0?360+i:i,this.setValues("hsl",e),this},mix:function(t,e){var i=t,n=void 0===e?.5:e,a=2*n-1,o=this.alpha()-i.alpha(),r=((a*o==-1?a:(a+o)/(1+a*o))+1)/2,s=1-r;return this.rgb(r*this.red()+s*i.red(),r*this.green()+s*i.green(),r*this.blue()+s*i.blue()).alpha(this.alpha()*n+i.alpha()*(1-n))},toJSON:function(){return this.rgb()},clone:function(){var t,e,i=new Y,n=this.values,a=i.values;for(var o in n)n.hasOwnProperty(o)&&(t=n[o],"[object Array]"===(e={}.toString.call(t))?a[o]=t.slice(0):"[object Number]"===e?a[o]=t:console.error("unexpected color value:",t));return i}},Y.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},Y.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},Y.prototype.getValues=function(t){for(var e=this.values,i={},n=0;n<t.length;n++)i[t.charAt(n)]=e[t][n];return 1!==e.alpha&&(i.a=e.alpha),i},Y.prototype.setValues=function(t,e){var i,n,a=this.values,o=this.spaces,r=this.maxes,s=1;if(this.valid=!0,"alpha"===t)s=e;else if(e.length)a[t]=e.slice(0,t.length),s=e[t.length];else if(void 0!==e[t.charAt(0)]){for(i=0;i<t.length;i++)a[t][i]=e[t.charAt(i)];s=e.a}else if(void 0!==e[o[t][0]]){var l=o[t];for(i=0;i<t.length;i++)a[t][i]=e[l[i]];s=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void 0===s?a.alpha:s)),"alpha"===t)return!1;for(i=0;i<t.length;i++)n=Math.max(0,Math.min(r[t][i],a[t][i])),a[t][i]=Math.round(n);for(var d in o)d!==t&&(a[d]=F[t][d](a[t]));return!0},Y.prototype.setSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i),this)},Y.prototype.setChannel=function(t,e,i){var n=this.values[t];return void 0===i?n[e]:i===n[e]?this:(n[e]=i,this.setValues(t,n),this)},"undefined"!=typeof window&&(window.Color=Y);var U,X=Y,K={noop:function(){},uid:(U=0,function(){return U++}),isNullOrUndef:function(t){return null==t},isArray:function(t){if(Array.isArray&&Array.isArray(t))return!0;var e=Object.prototype.toString.call(t);return"[object"===e.substr(0,7)&&"Array]"===e.substr(-6)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},isFinite:function(t){return("number"==typeof t||t instanceof Number)&&isFinite(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,i){return K.valueOrDefault(K.isArray(t)?t[e]:t,i)},callback:function(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)},each:function(t,e,i,n){var a,o,r;if(K.isArray(t))if(o=t.length,n)for(a=o-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a<o;a++)e.call(i,t[a],a);else if(K.isObject(t))for(o=(r=Object.keys(t)).length,a=0;a<o;a++)e.call(i,t[r[a]],r[a])},arrayEquals:function(t,e){var i,n,a,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,n=t.length;i<n;++i)if(a=t[i],o=e[i],a instanceof Array&&o instanceof Array){if(!K.arrayEquals(a,o))return!1}else if(a!==o)return!1;return!0},clone:function(t){if(K.isArray(t))return t.map(K.clone);if(K.isObject(t)){for(var e={},i=Object.keys(t),n=i.length,a=0;a<n;++a)e[i[a]]=K.clone(t[i[a]]);return e}return t},_merger:function(t,e,i,n){var a=e[t],o=i[t];K.isObject(a)&&K.isObject(o)?K.merge(a,o,n):e[t]=K.clone(o)},_mergerIf:function(t,e,i){var n=e[t],a=i[t];K.isObject(n)&&K.isObject(a)?K.mergeIf(n,a):e.hasOwnProperty(t)||(e[t]=K.clone(a))},merge:function(t,e,i){var n,a,o,r,s,l=K.isArray(e)?e:[e],d=l.length;if(!K.isObject(t))return t;for(n=(i=i||{}).merger||K._merger,a=0;a<d;++a)if(e=l[a],K.isObject(e))for(s=0,r=(o=Object.keys(e)).length;s<r;++s)n(o[s],t,e,i);return t},mergeIf:function(t,e){return K.merge(t,e,{merger:K._mergerIf})},extend:function(t){for(var e=function(e,i){t[i]=e},i=1,n=arguments.length;i<n;++i)K.each(arguments[i],e);return t},inherits:function(t){var e=this,i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},n=function(){this.constructor=i};return n.prototype=e.prototype,i.prototype=new n,i.extend=K.inherits,t&&K.extend(i.prototype,t),i.__super__=e.prototype,i}},G=K;K.callCallback=K.callback,K.indexOf=function(t,e,i){return Array.prototype.indexOf.call(t,e,i)},K.getValueOrDefault=K.valueOrDefault,K.getValueAtIndexOrDefault=K.valueAtIndexOrDefault;var Z={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i))},easeOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)},easeInOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:2==(t/=.5)?1:(i||(i=.45),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),t<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-Z.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*Z.easeInBounce(2*t):.5*Z.easeOutBounce(2*t-1)+.5}},$={effects:Z};G.easingEffects=Z;var J=Math.PI,Q=J/180,tt=2*J,et=J/2,it=J/4,nt=2*J/3,at={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,i,n,a,o){if(o){var r=Math.min(o,a/2,n/2),s=e+r,l=i+r,d=e+n-r,u=i+a-r;t.moveTo(e,l),s<d&&l<u?(t.arc(s,l,r,-J,-et),t.arc(d,l,r,-et,0),t.arc(d,u,r,0,et),t.arc(s,u,r,et,J)):s<d?(t.moveTo(s,i),t.arc(d,l,r,-et,et),t.arc(s,l,r,et,J+et)):l<u?(t.arc(s,l,r,-J,0),t.arc(s,u,r,0,J)):t.arc(s,l,r,-J,J),t.closePath(),t.moveTo(e,i)}else t.rect(e,i,n,a)},drawPoint:function(t,e,i,n,a,o){var r,s,l,d,u,h=(o||0)*Q;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(r=e.toString())&&"[object HTMLCanvasElement]"!==r){if(!(isNaN(i)||i<=0)){switch(t.beginPath(),e){default:t.arc(n,a,i,0,tt),t.closePath();break;case"triangle":t.moveTo(n+Math.sin(h)*i,a-Math.cos(h)*i),h+=nt,t.lineTo(n+Math.sin(h)*i,a-Math.cos(h)*i),h+=nt,t.lineTo(n+Math.sin(h)*i,a-Math.cos(h)*i),t.closePath();break;case"rectRounded":d=i-(u=.516*i),s=Math.cos(h+it)*d,l=Math.sin(h+it)*d,t.arc(n-s,a-l,u,h-J,h-et),t.arc(n+l,a-s,u,h-et,h),t.arc(n+s,a+l,u,h,h+et),t.arc(n-l,a+s,u,h+et,h+J),t.closePath();break;case"rect":if(!o){d=Math.SQRT1_2*i,t.rect(n-d,a-d,2*d,2*d);break}h+=it;case"rectRot":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+l,a-s),t.lineTo(n+s,a+l),t.lineTo(n-l,a+s),t.closePath();break;case"crossRot":h+=it;case"cross":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s);break;case"star":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s),h+=it,s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s);break;case"line":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l);break;case"dash":t.moveTo(n,a),t.lineTo(n+Math.cos(h)*i,a+Math.sin(h)*i)}t.fill(),t.stroke()}}else t.drawImage(e,n-e.width/2,a-e.height/2,e.width,e.height)},_isPointInArea:function(t,e){return t.x>e.left-1e-6&&t.x<e.right+1e-6&&t.y>e.top-1e-6&&t.y<e.bottom+1e-6},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,i,n){var a=i.steppedLine;if(a){if("middle"===a){var o=(e.x+i.x)/2;t.lineTo(o,n?i.y:e.y),t.lineTo(o,n?e.y:i.y)}else"after"===a&&!n||"after"!==a&&n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}else i.tension?t.bezierCurveTo(n?e.controlPointPreviousX:e.controlPointNextX,n?e.controlPointPreviousY:e.controlPointNextY,n?i.controlPointNextX:i.controlPointPreviousX,n?i.controlPointNextY:i.controlPointPreviousY,i.x,i.y):t.lineTo(i.x,i.y)}},ot=at;G.clear=at.clear,G.drawRoundedRectangle=function(t){t.beginPath(),at.roundedRect.apply(at,arguments)};var rt={_set:function(t,e){return G.merge(this[t]||(this[t]={}),e)}};rt._set("global",{defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",defaultLineHeight:1.2,showLines:!0});var st=rt,lt=G.valueOrDefault;var dt={toLineHeight:function(t,e){var i=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,i,n,a;return G.isObject(t)?(e=+t.top||0,i=+t.right||0,n=+t.bottom||0,a=+t.left||0):e=i=n=a=+t||0,{top:e,right:i,bottom:n,left:a,height:e+n,width:a+i}},_parseFont:function(t){var e=st.global,i=lt(t.fontSize,e.defaultFontSize),n={family:lt(t.fontFamily,e.defaultFontFamily),lineHeight:G.options.toLineHeight(lt(t.lineHeight,e.defaultLineHeight),i),size:i,style:lt(t.fontStyle,e.defaultFontStyle),weight:null,string:""};return n.string=function(t){return!t||G.isNullOrUndef(t.size)||G.isNullOrUndef(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(n),n},resolve:function(t,e,i){var n,a,o;for(n=0,a=t.length;n<a;++n)if(void 0!==(o=t[n])&&(void 0!==e&&"function"==typeof o&&(o=o(e)),void 0!==i&&G.isArray(o)&&(o=o[i]),void 0!==o))return o}},ut=G,ht=$,ct=ot,ft=dt;ut.easing=ht,ut.canvas=ct,ut.options=ft;var gt=function(t){ut.extend(this,t),this.initialize.apply(this,arguments)};ut.extend(gt.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=ut.clone(t._model)),t._start={},t},transition:function(t){var e=this,i=e._model,n=e._start,a=e._view;return i&&1!==t?(a||(a=e._view={}),n||(n=e._start={}),function(t,e,i,n){var a,o,r,s,l,d,u,h,c,f=Object.keys(i);for(a=0,o=f.length;a<o;++a)if(d=i[r=f[a]],e.hasOwnProperty(r)||(e[r]=d),(s=e[r])!==d&&"_"!==r[0]){if(t.hasOwnProperty(r)||(t[r]=s),(u=typeof d)==typeof(l=t[r]))if("string"===u){if((h=X(l)).valid&&(c=X(d)).valid){e[r]=c.mix(h,n).rgbString();continue}}else if(ut.isFinite(l)&&ut.isFinite(d)){e[r]=l+(d-l)*n;continue}e[r]=d}}(n,a,i,t),e):(e._view=i,e._start=null,e)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return ut.isNumber(this._model.x)&&ut.isNumber(this._model.y)}}),gt.extend=ut.inherits;var pt=gt,mt=pt.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),vt=mt;Object.defineProperty(mt.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(mt.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}}),st._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:ut.noop,onComplete:ut.noop}});var bt={animations:[],request:null,addAnimation:function(t,e,i,n){var a,o,r=this.animations;for(e.chart=t,e.startTime=Date.now(),e.duration=i,n||(t.animating=!0),a=0,o=r.length;a<o;++a)if(r[a].chart===t)return void(r[a]=e);r.push(e),1===r.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var e=ut.findIndex(this.animations,function(e){return e.chart===t});-1!==e&&(this.animations.splice(e,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=ut.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){this.advance(),this.animations.length>0&&this.requestAnimationFrame()},advance:function(){for(var t,e,i,n,a=this.animations,o=0;o<a.length;)e=(t=a[o]).chart,i=t.numSteps,n=Math.floor((Date.now()-t.startTime)/t.duration*i)+1,t.currentStep=Math.min(n,i),ut.callback(t.render,[e,t],e),ut.callback(t.onAnimationProgress,[t],e),t.currentStep>=i?(ut.callback(t.onAnimationComplete,[t],e),e.animating=!1,a.splice(o,1)):++o}},xt=ut.options.resolve,yt=["push","pop","shift","splice","unshift"];function kt(t,e){var i=t._chartjs;if(i){var n=i.listeners,a=n.indexOf(e);-1!==a&&n.splice(a,1),n.length>0||(yt.forEach(function(e){delete t[e]}),delete t._chartjs)}}var wt=function(t,e){this.initialize(t,e)};ut.extend(wt.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),i=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=i.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=i.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this.update(!0)},destroy:function(){this._data&&kt(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,i=this.getMeta(),n=this.getDataset().data||[],a=i.data;for(t=0,e=n.length;t<e;++t)a[t]=a[t]||this.createMetaData(t);i.dataset=i.dataset||this.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t,e,i=this,n=i.getDataset(),a=n.data||(n.data=[]);i._data!==a&&(i._data&&kt(i._data,i),a&&Object.isExtensible(a)&&(e=i,(t=a)._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),yt.forEach(function(e){var i="onData"+e.charAt(0).toUpperCase()+e.slice(1),n=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),a=n.apply(this,e);return ut.each(t._chartjs.listeners,function(t){"function"==typeof t[i]&&t[i].apply(t,e)}),a}})}))),i._data=a),i.resyncElements()},update:ut.noop,transition:function(t){for(var e=this.getMeta(),i=e.data||[],n=i.length,a=0;a<n;++a)i[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],i=e.length,n=0;for(t.dataset&&t.dataset.draw();n<i;++n)e[n].draw()},removeHoverStyle:function(t){ut.merge(t._model,t.$previousStyle||{}),delete t.$previousStyle},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},a=t._model,o=ut.getHoverColor;t.$previousStyle={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderWidth:a.borderWidth},a.backgroundColor=xt([n.hoverBackgroundColor,e.hoverBackgroundColor,o(a.backgroundColor)],void 0,i),a.borderColor=xt([n.hoverBorderColor,e.hoverBorderColor,o(a.borderColor)],void 0,i),a.borderWidth=xt([n.hoverBorderWidth,e.hoverBorderWidth,a.borderWidth],void 0,i)},resyncElements:function(){var t=this.getMeta(),e=this.getDataset().data,i=t.data.length,n=e.length;n<i?t.data.splice(n,i-n):n>i&&this.insertElements(i,n-i)},insertElements:function(t,e){for(var i=0;i<e;++i)this.addElementAndReset(t+i)},onDataPush:function(){var t=arguments.length;this.insertElements(this.getDataset().data.length-t,t)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),wt.extend=ut.inherits;var Mt=wt;st._set("global",{elements:{arc:{backgroundColor:st.global.defaultColor,borderColor:"#fff",borderWidth:2,borderAlign:"center"}}});var _t=pt.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var i=this._view;if(i){for(var n=ut.getAngleFromPoint(i,{x:t,y:e}),a=n.angle,o=n.distance,r=i.startAngle,s=i.endAngle;s<r;)s+=2*Math.PI;for(;a>s;)a-=2*Math.PI;for(;a<r;)a+=2*Math.PI;var l=a>=r&&a<=s,d=o>=i.innerRadius&&o<=i.outerRadius;return l&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,i=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,i=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},draw:function(){var t,e=this._chart.ctx,i=this._view,n=i.startAngle,a=i.endAngle,o="inner"===i.borderAlign?.33:0;e.save(),e.beginPath(),e.arc(i.x,i.y,Math.max(i.outerRadius-o,0),n,a),e.arc(i.x,i.y,i.innerRadius,a,n,!0),e.closePath(),e.fillStyle=i.backgroundColor,e.fill(),i.borderWidth&&("inner"===i.borderAlign?(e.beginPath(),t=o/i.outerRadius,e.arc(i.x,i.y,i.outerRadius,n-t,a+t),i.innerRadius>o?(t=o/i.innerRadius,e.arc(i.x,i.y,i.innerRadius-o,a+t,n-t,!0)):e.arc(i.x,i.y,o,a+Math.PI/2,n-Math.PI/2),e.closePath(),e.clip(),e.beginPath(),e.arc(i.x,i.y,i.outerRadius,n,a),e.arc(i.x,i.y,i.innerRadius,a,n,!0),e.closePath(),e.lineWidth=2*i.borderWidth,e.lineJoin="round"):(e.lineWidth=i.borderWidth,e.lineJoin="bevel"),e.strokeStyle=i.borderColor,e.stroke()),e.restore()}}),Ct=ut.valueOrDefault,St=st.global.defaultColor;st._set("global",{elements:{line:{tension:.4,backgroundColor:St,borderWidth:3,borderColor:St,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var Pt=pt.extend({draw:function(){var t,e,i,n,a=this._view,o=this._chart.ctx,r=a.spanGaps,s=this._children.slice(),l=st.global,d=l.elements.line,u=-1;for(this._loop&&s.length&&s.push(s[0]),o.save(),o.lineCap=a.borderCapStyle||d.borderCapStyle,o.setLineDash&&o.setLineDash(a.borderDash||d.borderDash),o.lineDashOffset=Ct(a.borderDashOffset,d.borderDashOffset),o.lineJoin=a.borderJoinStyle||d.borderJoinStyle,o.lineWidth=Ct(a.borderWidth,d.borderWidth),o.strokeStyle=a.borderColor||l.defaultColor,o.beginPath(),u=-1,t=0;t<s.length;++t)e=s[t],i=ut.previousItem(s,t),n=e._view,0===t?n.skip||(o.moveTo(n.x,n.y),u=t):(i=-1===u?i:s[u],n.skip||(u!==t-1&&!r||-1===u?o.moveTo(n.x,n.y):ut.canvas.lineTo(o,i._view,e._view),u=t));o.stroke(),o.restore()}}),It=ut.valueOrDefault,At=st.global.defaultColor;function Dt(t){var e=this._view;return!!e&&Math.abs(t-e.x)<e.radius+e.hitRadius}st._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:At,borderColor:At,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}});var Tt=pt.extend({inRange:function(t,e){var i=this._view;return!!i&&Math.pow(t-i.x,2)+Math.pow(e-i.y,2)<Math.pow(i.hitRadius+i.radius,2)},inLabelRange:Dt,inXRange:Dt,inYRange:function(t){var e=this._view;return!!e&&Math.abs(t-e.y)<e.radius+e.hitRadius},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,i=this._chart.ctx,n=e.pointStyle,a=e.rotation,o=e.radius,r=e.x,s=e.y,l=st.global,d=l.defaultColor;e.skip||(void 0===t||ut.canvas._isPointInArea(e,t))&&(i.strokeStyle=e.borderColor||d,i.lineWidth=It(e.borderWidth,l.elements.point.borderWidth),i.fillStyle=e.backgroundColor||d,ut.canvas.drawPoint(i,n,o,r,s,a))}}),Ft=st.global.defaultColor;function Lt(t){return t&&void 0!==t.width}function Rt(t){var e,i,n,a,o;return Lt(t)?(o=t.width/2,e=t.x-o,i=t.x+o,n=Math.min(t.y,t.base),a=Math.max(t.y,t.base)):(o=t.height/2,e=Math.min(t.x,t.base),i=Math.max(t.x,t.base),n=t.y-o,a=t.y+o),{left:e,top:n,right:i,bottom:a}}function Ot(t,e,i){return t===e?i:t===i?e:t}function zt(t,e,i){var n,a,o,r,s=t.borderWidth,l=function(t){var e=t.borderSkipped,i={};return e?(t.horizontal?t.base>t.x&&(e=Ot(e,"left","right")):t.base<t.y&&(e=Ot(e,"bottom","top")),i[e]=!0,i):i}(t);return ut.isObject(s)?(n=+s.top||0,a=+s.right||0,o=+s.bottom||0,r=+s.left||0):n=a=o=r=+s||0,{t:l.top||n<0?0:n>i?i:n,r:l.right||a<0?0:a>e?e:a,b:l.bottom||o<0?0:o>i?i:o,l:l.left||r<0?0:r>e?e:r}}function Bt(t,e,i){var n=null===e,a=null===i,o=!(!t||n&&a)&&Rt(t);return o&&(n||e>=o.left&&e<=o.right)&&(a||i>=o.top&&i<=o.bottom)}st._set("global",{elements:{rectangle:{backgroundColor:Ft,borderColor:Ft,borderSkipped:"bottom",borderWidth:0}}});var Nt=pt.extend({draw:function(){var t=this._chart.ctx,e=this._view,i=function(t){var e=Rt(t),i=e.right-e.left,n=e.bottom-e.top,a=zt(t,i/2,n/2);return{outer:{x:e.left,y:e.top,w:i,h:n},inner:{x:e.left+a.l,y:e.top+a.t,w:i-a.l-a.r,h:n-a.t-a.b}}}(e),n=i.outer,a=i.inner;t.fillStyle=e.backgroundColor,t.fillRect(n.x,n.y,n.w,n.h),n.w===a.w&&n.h===a.h||(t.save(),t.beginPath(),t.rect(n.x,n.y,n.w,n.h),t.clip(),t.fillStyle=e.borderColor,t.rect(a.x,a.y,a.w,a.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return Bt(this._view,t,e)},inLabelRange:function(t,e){var i=this._view;return Lt(i)?Bt(i,t,null):Bt(i,null,e)},inXRange:function(t){return Bt(this._view,t,null)},inYRange:function(t){return Bt(this._view,null,t)},getCenterPoint:function(){var t,e,i=this._view;return Lt(i)?(t=i.x,e=(i.y+i.base)/2):(t=(i.x+i.base)/2,e=i.y),{x:t,y:e}},getArea:function(){var t=this._view;return Lt(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),Wt={},Vt=_t,Et=Pt,Ht=Tt,jt=Nt;Wt.Arc=Vt,Wt.Line=Et,Wt.Point=Ht,Wt.Rectangle=jt;var qt=ut.options.resolve;st._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}});var Yt=Mt.extend({dataElementType:Wt.Rectangle,initialize:function(){var t;Mt.prototype.initialize.apply(this,arguments),(t=this.getMeta()).stack=this.getDataset().stack,t.bar=!0},update:function(t){var e,i,n=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,i=n.length;e<i;++e)this.updateElement(n[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.getMeta(),o=n.getDataset(),r=n._resolveElementOptions(t,e);t._xScale=n.getScaleForId(a.xAxisID),t._yScale=n.getScaleForId(a.yAxisID),t._datasetIndex=n.index,t._index=e,t._model={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderSkipped:r.borderSkipped,borderWidth:r.borderWidth,datasetLabel:o.label,label:n.chart.data.labels[e]},n._updateElementGeometry(t,e,i),t.pivot()},_updateElementGeometry:function(t,e,i){var n=this,a=t._model,o=n._getValueScale(),r=o.getBasePixel(),s=o.isHorizontal(),l=n._ruler||n.getRuler(),d=n.calculateBarValuePixels(n.index,e),u=n.calculateBarIndexPixels(n.index,e,l);a.horizontal=s,a.base=i?r:d.base,a.x=s?i?r:d.head:u.center,a.y=s?u.center:i?r:d.head,a.height=s?u.size:void 0,a.width=s?void 0:u.size},_getStacks:function(t){var e,i,n=this.chart,a=this._getIndexScale().options.stacked,o=void 0===t?n.data.datasets.length:t+1,r=[];for(e=0;e<o;++e)(i=n.getDatasetMeta(e)).bar&&n.isDatasetVisible(e)&&(!1===a||!0===a&&-1===r.indexOf(i.stack)||void 0===a&&(void 0===i.stack||-1===r.indexOf(i.stack)))&&r.push(i.stack);return r},getStackCount:function(){return this._getStacks().length},getStackIndex:function(t,e){var i=this._getStacks(t),n=void 0!==e?i.indexOf(e):-1;return-1===n?i.length-1:n},getRuler:function(){var t,e,i=this._getIndexScale(),n=this.getStackCount(),a=this.index,o=i.isHorizontal(),r=o?i.left:i.top,s=r+(o?i.width:i.height),l=[];for(t=0,e=this.getMeta().data.length;t<e;++t)l.push(i.getPixelForValue(null,t,a));return{min:ut.isNullOrUndef(i.options.barThickness)?function(t,e){var i,n,a,o,r=t.isHorizontal()?t.width:t.height,s=t.getTicks();for(a=1,o=e.length;a<o;++a)r=Math.min(r,Math.abs(e[a]-e[a-1]));for(a=0,o=s.length;a<o;++a)n=t.getPixelForTick(a),r=a>0?Math.min(r,n-i):r,i=n;return r}(i,l):-1,pixels:l,start:r,end:s,stackCount:n,scale:i}},calculateBarValuePixels:function(t,e){var i,n,a,o,r,s,l=this.chart,d=this.getMeta(),u=this._getValueScale(),h=u.isHorizontal(),c=l.data.datasets,f=+u.getRightValue(c[t].data[e]),g=u.options.minBarLength,p=u.options.stacked,m=d.stack,v=0;if(p||void 0===p&&void 0!==m)for(i=0;i<t;++i)(n=l.getDatasetMeta(i)).bar&&n.stack===m&&n.controller._getValueScaleId()===u.id&&l.isDatasetVisible(i)&&(a=+u.getRightValue(c[i].data[e]),(f<0&&a<0||f>=0&&a>0)&&(v+=a));return o=u.getPixelForValue(v),s=(r=u.getPixelForValue(v+f))-o,void 0!==g&&Math.abs(s)<g&&(s=g,r=f>=0&&!h||f<0&&h?o-g:o+g),{size:s,base:o,head:r,center:r+s/2}},calculateBarIndexPixels:function(t,e,i){var n=i.scale.options,a="flex"===n.barThickness?function(t,e,i){var n,a=e.pixels,o=a[t],r=t>0?a[t-1]:null,s=t<a.length-1?a[t+1]:null,l=i.categoryPercentage;return null===r&&(r=o-(null===s?e.end-e.start:s-o)),null===s&&(s=o+o-r),n=o-(o-Math.min(r,s))/2*l,{chunk:Math.abs(s-r)/2*l/e.stackCount,ratio:i.barPercentage,start:n}}(e,i,n):function(t,e,i){var n,a,o=i.barThickness,r=e.stackCount,s=e.pixels[t];return ut.isNullOrUndef(o)?(n=e.min*i.categoryPercentage,a=i.barPercentage):(n=o*r,a=1),{chunk:n/r,ratio:a,start:s-n/2}}(e,i,n),o=this.getStackIndex(t,this.getMeta().stack),r=a.start+a.chunk*o+a.chunk/2,s=Math.min(ut.valueOrDefault(n.maxBarThickness,1/0),a.chunk*a.ratio);return{base:r-s/2,head:r+s/2,center:r,size:s}},draw:function(){var t=this.chart,e=this._getValueScale(),i=this.getMeta().data,n=this.getDataset(),a=i.length,o=0;for(ut.canvas.clipArea(t.ctx,t.chartArea);o<a;++o)isNaN(e.getRightValue(n.data[o]))||i[o].draw();ut.canvas.unclipArea(t.ctx)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.rectangle,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderSkipped","borderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=qt([s[a],r[a],l[a]],u,e);return d}}),Ut=ut.valueOrDefault,Xt=ut.options.resolve;st._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.datasets[t.datasetIndex].label||"",n=e.datasets[t.datasetIndex].data[t.index];return i+": ("+t.xLabel+", "+t.yLabel+", "+n.r+")"}}}});var Kt=Mt.extend({dataElementType:Wt.Point,update:function(t){var e=this,i=e.getMeta().data;ut.each(i,function(i,n){e.updateElement(i,n,t)})},updateElement:function(t,e,i){var n=this,a=n.getMeta(),o=t.custom||{},r=n.getScaleForId(a.xAxisID),s=n.getScaleForId(a.yAxisID),l=n._resolveElementOptions(t,e),d=n.getDataset().data[e],u=n.index,h=i?r.getPixelForDecimal(.5):r.getPixelForValue("object"==typeof d?d:NaN,e,u),c=i?s.getBasePixel():s.getPixelForValue(d,e,u);t._xScale=r,t._yScale=s,t._options=l,t._datasetIndex=u,t._index=e,t._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,rotation:l.rotation,radius:i?0:l.radius,skip:o.skip||isNaN(h)||isNaN(c),x:h,y:c},t.pivot()},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Ut(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Ut(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Ut(i.hoverBorderWidth,i.borderWidth),e.radius=i.radius+i.hoverRadius},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d=r.data[e],u={},h={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},c=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"];for(i=0,n=c.length;i<n;++i)u[a=c[i]]=Xt([s[a],r[a],l[a]],h,e);return u.radius=Xt([s.radius,d?d.r:void 0,r.radius,l.radius],h,e),u}}),Gt=ut.options.resolve,Zt=ut.valueOrDefault;st._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),o=e.datasets[0],r=a.data[n],s=r&&r.custom||{},l=t.options.elements.arc;return{text:i,fillStyle:Gt([s.backgroundColor,o.backgroundColor,l.backgroundColor],void 0,n),strokeStyle:Gt([s.borderColor,o.borderColor,l.borderColor],void 0,n),lineWidth:Gt([s.borderWidth,o.borderWidth,l.borderWidth],void 0,n),hidden:isNaN(o.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o]&&(a.data[o].hidden=!a.data[o].hidden);r.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.labels[t.index],n=": "+e.datasets[t.datasetIndex].data[t.index];return ut.isArray(i)?(i=i.slice())[0]+=n:i+=n,i}}}});var $t=Mt.extend({dataElementType:Wt.Arc,linkScales:ut.noop,getRingIndex:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&++e;return e},update:function(t){var e,i,n=this,a=n.chart,o=a.chartArea,r=a.options,s=o.right-o.left,l=o.bottom-o.top,d=Math.min(s,l),u={x:0,y:0},h=n.getMeta(),c=h.data,f=r.cutoutPercentage,g=r.circumference,p=n._getRingWeight(n.index);if(g<2*Math.PI){var m=r.rotation%(2*Math.PI),v=(m+=2*Math.PI*(m>=Math.PI?-1:m<-Math.PI?1:0))+g,b={x:Math.cos(m),y:Math.sin(m)},x={x:Math.cos(v),y:Math.sin(v)},y=m<=0&&v>=0||m<=2*Math.PI&&2*Math.PI<=v,k=m<=.5*Math.PI&&.5*Math.PI<=v||m<=2.5*Math.PI&&2.5*Math.PI<=v,w=m<=-Math.PI&&-Math.PI<=v||m<=Math.PI&&Math.PI<=v,M=m<=.5*-Math.PI&&.5*-Math.PI<=v||m<=1.5*Math.PI&&1.5*Math.PI<=v,_=f/100,C={x:w?-1:Math.min(b.x*(b.x<0?1:_),x.x*(x.x<0?1:_)),y:M?-1:Math.min(b.y*(b.y<0?1:_),x.y*(x.y<0?1:_))},S={x:y?1:Math.max(b.x*(b.x>0?1:_),x.x*(x.x>0?1:_)),y:k?1:Math.max(b.y*(b.y>0?1:_),x.y*(x.y>0?1:_))},P={width:.5*(S.x-C.x),height:.5*(S.y-C.y)};d=Math.min(s/P.width,l/P.height),u={x:-.5*(S.x+C.x),y:-.5*(S.y+C.y)}}for(e=0,i=c.length;e<i;++e)c[e]._options=n._resolveElementOptions(c[e],e);for(a.borderWidth=n.getMaxBorderWidth(),a.outerRadius=Math.max((d-a.borderWidth)/2,0),a.innerRadius=Math.max(f?a.outerRadius/100*f:0,0),a.radiusLength=(a.outerRadius-a.innerRadius)/(n._getVisibleDatasetWeightTotal()||1),a.offsetX=u.x*a.outerRadius,a.offsetY=u.y*a.outerRadius,h.total=n.calculateTotal(),n.outerRadius=a.outerRadius-a.radiusLength*n._getRingWeightOffset(n.index),n.innerRadius=Math.max(n.outerRadius-a.radiusLength*p,0),e=0,i=c.length;e<i;++e)n.updateElement(c[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.chart,o=a.chartArea,r=a.options,s=r.animation,l=(o.left+o.right)/2,d=(o.top+o.bottom)/2,u=r.rotation,h=r.rotation,c=n.getDataset(),f=i&&s.animateRotate?0:t.hidden?0:n.calculateCircumference(c.data[e])*(r.circumference/(2*Math.PI)),g=i&&s.animateScale?0:n.innerRadius,p=i&&s.animateScale?0:n.outerRadius,m=t._options||{};ut.extend(t,{_datasetIndex:n.index,_index:e,_model:{backgroundColor:m.backgroundColor,borderColor:m.borderColor,borderWidth:m.borderWidth,borderAlign:m.borderAlign,x:l+a.offsetX,y:d+a.offsetY,startAngle:u,endAngle:h,circumference:f,outerRadius:p,innerRadius:g,label:ut.valueAtIndexOrDefault(c.label,e,a.data.labels[e])}});var v=t._model;i&&s.animateRotate||(v.startAngle=0===e?r.rotation:n.getMeta().data[e-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),t.pivot()},calculateTotal:function(){var t,e=this.getDataset(),i=this.getMeta(),n=0;return ut.each(i.data,function(i,a){t=e.data[a],isNaN(t)||i.hidden||(n+=Math.abs(t))}),n},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,i,n,a,o,r,s,l,d=0,u=this.chart;if(!t)for(e=0,i=u.data.datasets.length;e<i;++e)if(u.isDatasetVisible(e)){t=(n=u.getDatasetMeta(e)).data,e!==this.index&&(o=n.controller);break}if(!t)return 0;for(e=0,i=t.length;e<i;++e)a=t[e],"inner"!==(r=o?o._resolveElementOptions(a,e):a._options).borderAlign&&(s=r.borderWidth,d=(l=r.hoverBorderWidth)>(d=s>d?s:d)?l:d);return d},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=Zt(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Zt(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Zt(i.hoverBorderWidth,i.borderWidth)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=this.getDataset(),s=t.custom||{},l=o.options.elements.arc,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=Gt([s[a],r[a],l[a]],u,e);return d},_getRingWeightOffset:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&(e+=this._getRingWeight(i));return e},_getRingWeight:function(t){return Math.max(Zt(this.chart.data.datasets[t].weight,1),0)},_getVisibleDatasetWeightTotal:function(){return this._getRingWeightOffset(this.chart.data.datasets.length)}});st._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{type:"category",position:"left",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{mode:"index",axis:"y"}});var Jt=Yt.extend({_getValueScaleId:function(){return this.getMeta().xAxisID},_getIndexScaleId:function(){return this.getMeta().yAxisID}}),Qt=ut.valueOrDefault,te=ut.options.resolve,ee=ut.canvas._isPointInArea;function ie(t,e){return Qt(t.showLine,e.showLines)}st._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});var ne=Mt.extend({datasetElementType:Wt.Line,dataElementType:Wt.Point,update:function(t){var e,i,n=this,a=n.getMeta(),o=a.dataset,r=a.data||[],s=n.getScaleForId(a.yAxisID),l=n.getDataset(),d=ie(l,n.chart.options);for(d&&(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=n.index,o._children=r,o._model=n._resolveLineOptions(o),o.pivot()),e=0,i=r.length;e<i;++e)n.updateElement(r[e],e,t);for(d&&0!==o._model.tension&&n.updateBezierControlPoints(),e=0,i=r.length;e<i;++e)r[e].pivot()},updateElement:function(t,e,i){var n,a,o=this,r=o.getMeta(),s=t.custom||{},l=o.getDataset(),d=o.index,u=l.data[e],h=o.getScaleForId(r.yAxisID),c=o.getScaleForId(r.xAxisID),f=r.dataset._model,g=o._resolvePointOptions(t,e);n=c.getPixelForValue("object"==typeof u?u:NaN,e,d),a=i?h.getBasePixel():o.calculatePointY(u,e,d),t._xScale=c,t._yScale=h,t._options=g,t._datasetIndex=d,t._index=e,t._model={x:n,y:a,skip:s.skip||isNaN(n)||isNaN(a),radius:g.radius,pointStyle:g.pointStyle,rotation:g.rotation,backgroundColor:g.backgroundColor,borderColor:g.borderColor,borderWidth:g.borderWidth,tension:Qt(s.tension,f?f.tension:0),steppedLine:!!f&&f.steppedLine,hitRadius:g.hitRadius}},_resolvePointOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},c=Object.keys(h);for(i=0,n=c.length;i<n;++i)d[a=c[i]]=te([s[a],r[h[a]],r[a],l[a]],u,e);return d},_resolveLineOptions:function(t){var e,i,n,a=this.chart,o=a.data.datasets[this.index],r=t.custom||{},s=a.options,l=s.elements.line,d={},u=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill","cubicInterpolationMode"];for(e=0,i=u.length;e<i;++e)d[n=u[e]]=te([r[n],o[n],l[n]]);return d.spanGaps=Qt(o.spanGaps,s.spanGaps),d.tension=Qt(o.lineTension,l.tension),d.steppedLine=te([r.steppedLine,o.steppedLine,l.stepped]),d},calculatePointY:function(t,e,i){var n,a,o,r=this.chart,s=this.getMeta(),l=this.getScaleForId(s.yAxisID),d=0,u=0;if(l.options.stacked){for(n=0;n<i;n++)if(a=r.data.datasets[n],"line"===(o=r.getDatasetMeta(n)).type&&o.yAxisID===l.id&&r.isDatasetVisible(n)){var h=Number(l.getRightValue(a.data[e]));h<0?u+=h||0:d+=h||0}var c=Number(l.getRightValue(t));return c<0?l.getPixelForValue(u+c):l.getPixelForValue(d+c)}return l.getPixelForValue(t)},updateBezierControlPoints:function(){var t,e,i,n,a=this.chart,o=this.getMeta(),r=o.dataset._model,s=a.chartArea,l=o.data||[];function d(t,e,i){return Math.max(Math.min(t,i),e)}if(r.spanGaps&&(l=l.filter(function(t){return!t._model.skip})),"monotone"===r.cubicInterpolationMode)ut.splineCurveMonotone(l);else for(t=0,e=l.length;t<e;++t)i=l[t]._model,n=ut.splineCurve(ut.previousItem(l,t)._model,i,ut.nextItem(l,t)._model,r.tension),i.controlPointPreviousX=n.previous.x,i.controlPointPreviousY=n.previous.y,i.controlPointNextX=n.next.x,i.controlPointNextY=n.next.y;if(a.options.elements.line.capBezierPoints)for(t=0,e=l.length;t<e;++t)i=l[t]._model,ee(i,s)&&(t>0&&ee(l[t-1]._model,s)&&(i.controlPointPreviousX=d(i.controlPointPreviousX,s.left,s.right),i.controlPointPreviousY=d(i.controlPointPreviousY,s.top,s.bottom)),t<l.length-1&&ee(l[t+1]._model,s)&&(i.controlPointNextX=d(i.controlPointNextX,s.left,s.right),i.controlPointNextY=d(i.controlPointNextY,s.top,s.bottom)))},draw:function(){var t,e=this.chart,i=this.getMeta(),n=i.data||[],a=e.chartArea,o=n.length,r=0;for(ie(this.getDataset(),e.options)&&(t=(i.dataset._model.borderWidth||0)/2,ut.canvas.clipArea(e.ctx,{left:a.left,right:a.right,top:a.top-t,bottom:a.bottom+t}),i.dataset.draw(),ut.canvas.unclipArea(e.ctx));r<o;++r)n[r].draw(a)},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Qt(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Qt(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Qt(i.hoverBorderWidth,i.borderWidth),e.radius=Qt(i.hoverRadius,i.radius)}}),ae=ut.options.resolve;st._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),o=e.datasets[0],r=a.data[n].custom||{},s=t.options.elements.arc;return{text:i,fillStyle:ae([r.backgroundColor,o.backgroundColor,s.backgroundColor],void 0,n),strokeStyle:ae([r.borderColor,o.borderColor,s.borderColor],void 0,n),lineWidth:ae([r.borderWidth,o.borderWidth,s.borderWidth],void 0,n),hidden:isNaN(o.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o].hidden=!a.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}});var oe=Mt.extend({dataElementType:Wt.Arc,linkScales:ut.noop,update:function(t){var e,i,n,a=this,o=a.getDataset(),r=a.getMeta(),s=a.chart.options.startAngle||0,l=a._starts=[],d=a._angles=[],u=r.data;for(a._updateRadius(),r.count=a.countVisibleElements(),e=0,i=o.data.length;e<i;e++)l[e]=s,n=a._computeAngle(e),d[e]=n,s+=n;for(e=0,i=u.length;e<i;++e)u[e]._options=a._resolveElementOptions(u[e],e),a.updateElement(u[e],e,t)},_updateRadius:function(){var t=this,e=t.chart,i=e.chartArea,n=e.options,a=Math.min(i.right-i.left,i.bottom-i.top);e.outerRadius=Math.max(a/2,0),e.innerRadius=Math.max(n.cutoutPercentage?e.outerRadius/100*n.cutoutPercentage:1,0),e.radiusLength=(e.outerRadius-e.innerRadius)/e.getVisibleDatasetCount(),t.outerRadius=e.outerRadius-e.radiusLength*t.index,t.innerRadius=t.outerRadius-e.radiusLength},updateElement:function(t,e,i){var n=this,a=n.chart,o=n.getDataset(),r=a.options,s=r.animation,l=a.scale,d=a.data.labels,u=l.xCenter,h=l.yCenter,c=r.startAngle,f=t.hidden?0:l.getDistanceFromCenterForValue(o.data[e]),g=n._starts[e],p=g+(t.hidden?0:n._angles[e]),m=s.animateScale?0:l.getDistanceFromCenterForValue(o.data[e]),v=t._options||{};ut.extend(t,{_datasetIndex:n.index,_index:e,_scale:l,_model:{backgroundColor:v.backgroundColor,borderColor:v.borderColor,borderWidth:v.borderWidth,borderAlign:v.borderAlign,x:u,y:h,innerRadius:0,outerRadius:i?m:f,startAngle:i&&s.animateRotate?c:g,endAngle:i&&s.animateRotate?c:p,label:ut.valueAtIndexOrDefault(d,e,d[e])}}),t.pivot()},countVisibleElements:function(){var t=this.getDataset(),e=this.getMeta(),i=0;return ut.each(e.data,function(e,n){isNaN(t.data[n])||e.hidden||i++}),i},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor,a=ut.valueOrDefault;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=a(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=a(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=a(i.hoverBorderWidth,i.borderWidth)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=this.getDataset(),s=t.custom||{},l=o.options.elements.arc,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=ae([s[a],r[a],l[a]],u,e);return d},_computeAngle:function(t){var e=this,i=this.getMeta().count,n=e.getDataset(),a=e.getMeta();if(isNaN(n.data[t])||a.data[t].hidden)return 0;var o={chart:e.chart,dataIndex:t,dataset:n,datasetIndex:e.index};return ae([e.chart.options.elements.arc.angle,2*Math.PI/i],o,t)}});st._set("pie",ut.clone(st.doughnut)),st._set("pie",{cutoutPercentage:0});var re=$t,se=ut.valueOrDefault,le=ut.options.resolve;st._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}});var de=Mt.extend({datasetElementType:Wt.Line,dataElementType:Wt.Point,linkScales:ut.noop,update:function(t){var e,i,n=this,a=n.getMeta(),o=a.dataset,r=a.data||[],s=n.chart.scale,l=n.getDataset();for(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=n.index,o._children=r,o._loop=!0,o._model=n._resolveLineOptions(o),o.pivot(),e=0,i=r.length;e<i;++e)n.updateElement(r[e],e,t);for(n.updateBezierControlPoints(),e=0,i=r.length;e<i;++e)r[e].pivot()},updateElement:function(t,e,i){var n=this,a=t.custom||{},o=n.getDataset(),r=n.chart.scale,s=r.getPointPositionForValue(e,o.data[e]),l=n._resolvePointOptions(t,e),d=n.getMeta().dataset._model,u=i?r.xCenter:s.x,h=i?r.yCenter:s.y;t._scale=r,t._options=l,t._datasetIndex=n.index,t._index=e,t._model={x:u,y:h,skip:a.skip||isNaN(u)||isNaN(h),radius:l.radius,pointStyle:l.pointStyle,rotation:l.rotation,backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,tension:se(a.tension,d?d.tension:0),hitRadius:l.hitRadius}},_resolvePointOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},c=Object.keys(h);for(i=0,n=c.length;i<n;++i)d[a=c[i]]=le([s[a],r[h[a]],r[a],l[a]],u,e);return d},_resolveLineOptions:function(t){var e,i,n,a=this.chart,o=a.data.datasets[this.index],r=t.custom||{},s=a.options.elements.line,l={},d=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill"];for(e=0,i=d.length;e<i;++e)l[n=d[e]]=le([r[n],o[n],s[n]]);return l.tension=se(o.lineTension,s.tension),l},updateBezierControlPoints:function(){var t,e,i,n,a=this.getMeta(),o=this.chart.chartArea,r=a.data||[];function s(t,e,i){return Math.max(Math.min(t,i),e)}for(t=0,e=r.length;t<e;++t)i=r[t]._model,n=ut.splineCurve(ut.previousItem(r,t,!0)._model,i,ut.nextItem(r,t,!0)._model,i.tension),i.controlPointPreviousX=s(n.previous.x,o.left,o.right),i.controlPointPreviousY=s(n.previous.y,o.top,o.bottom),i.controlPointNextX=s(n.next.x,o.left,o.right),i.controlPointNextY=s(n.next.y,o.top,o.bottom)},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=se(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=se(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=se(i.hoverBorderWidth,i.borderWidth),e.radius=se(i.hoverRadius,i.radius)}});st._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}});var ue={bar:Yt,bubble:Kt,doughnut:$t,horizontalBar:Jt,line:ne,polarArea:oe,pie:re,radar:de,scatter:ne};function he(t,e){return t.native?{x:t.x,y:t.y}:ut.getRelativePosition(t,e)}function ce(t,e){var i,n,a,o,r;for(n=0,o=t.data.datasets.length;n<o;++n)if(t.isDatasetVisible(n))for(a=0,r=(i=t.getDatasetMeta(n)).data.length;a<r;++a){var s=i.data[a];s._view.skip||e(s)}}function fe(t,e){var i=[];return ce(t,function(t){t.inRange(e.x,e.y)&&i.push(t)}),i}function ge(t,e,i,n){var a=Number.POSITIVE_INFINITY,o=[];return ce(t,function(t){if(!i||t.inRange(e.x,e.y)){var r=t.getCenterPoint(),s=n(e,r);s<a?(o=[t],a=s):s===a&&o.push(t)}}),o}function pe(t){var e=-1!==t.indexOf("x"),i=-1!==t.indexOf("y");return function(t,n){var a=e?Math.abs(t.x-n.x):0,o=i?Math.abs(t.y-n.y):0;return Math.sqrt(Math.pow(a,2)+Math.pow(o,2))}}function me(t,e,i){var n=he(e,t);i.axis=i.axis||"x";var a=pe(i.axis),o=i.intersect?fe(t,n):ge(t,n,!1,a),r=[];return o.length?(t.data.datasets.forEach(function(e,i){if(t.isDatasetVisible(i)){var n=t.getDatasetMeta(i).data[o[0]._index];n&&!n._view.skip&&r.push(n)}}),r):[]}var ve={modes:{single:function(t,e){var i=he(e,t),n=[];return ce(t,function(t){if(t.inRange(i.x,i.y))return n.push(t),n}),n.slice(0,1)},label:me,index:me,dataset:function(t,e,i){var n=he(e,t);i.axis=i.axis||"xy";var a=pe(i.axis),o=i.intersect?fe(t,n):ge(t,n,!1,a);return o.length>0&&(o=t.getDatasetMeta(o[0]._datasetIndex).data),o},"x-axis":function(t,e){return me(t,e,{intersect:!1})},point:function(t,e){return fe(t,he(e,t))},nearest:function(t,e,i){var n=he(e,t);i.axis=i.axis||"xy";var a=pe(i.axis);return ge(t,n,i.intersect,a)},x:function(t,e,i){var n=he(e,t),a=[],o=!1;return ce(t,function(t){t.inXRange(n.x)&&a.push(t),t.inRange(n.x,n.y)&&(o=!0)}),i.intersect&&!o&&(a=[]),a},y:function(t,e,i){var n=he(e,t),a=[],o=!1;return ce(t,function(t){t.inYRange(n.y)&&a.push(t),t.inRange(n.x,n.y)&&(o=!0)}),i.intersect&&!o&&(a=[]),a}}};function be(t,e){return ut.where(t,function(t){return t.position===e})}function xe(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,i){var n=e?i:t,a=e?t:i;return n.weight===a.weight?n._tmpIndex_-a._tmpIndex_:n.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}function ye(t,e){ut.each(t,function(t){e[t.position]+=t.isHorizontal()?t.height:t.width})}st._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var ke={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure:function(t,e,i){for(var n,a=["fullWidth","position","weight"],o=a.length,r=0;r<o;++r)n=a[r],i.hasOwnProperty(n)&&(e[n]=i[n])},update:function(t,e,i){if(t){var n=t.options.layout||{},a=ut.options.toPadding(n.padding),o=a.left,r=a.right,s=a.top,l=a.bottom,d=be(t.boxes,"left"),u=be(t.boxes,"right"),h=be(t.boxes,"top"),c=be(t.boxes,"bottom"),f=be(t.boxes,"chartArea");xe(d,!0),xe(u,!1),xe(h,!0),xe(c,!1);var g,p=d.concat(u),m=h.concat(c),v=p.concat(m),b=e-o-r,x=i-s-l,y=(e-b/2)/p.length,k=b,w=x,M={top:s,left:o,bottom:l,right:r},_=[];ut.each(v,function(t){var e,i=t.isHorizontal();i?(e=t.update(t.fullWidth?b:k,x/2),w-=e.height):(e=t.update(y,w),k-=e.width),_.push({horizontal:i,width:e.width,box:t})}),g=function(t){var e=0,i=0,n=0,a=0;return ut.each(t,function(t){if(t.getPadding){var o=t.getPadding();e=Math.max(e,o.top),i=Math.max(i,o.left),n=Math.max(n,o.bottom),a=Math.max(a,o.right)}}),{top:e,left:i,bottom:n,right:a}}(v),ut.each(p,T),ye(p,M),ut.each(m,T),ye(m,M),ut.each(p,function(t){var e=ut.findNextWhere(_,function(e){return e.box===t}),i={left:0,right:0,top:M.top,bottom:M.bottom};e&&t.update(e.width,w,i)}),ye(v,M={top:s,left:o,bottom:l,right:r});var C=Math.max(g.left-M.left,0);M.left+=C,M.right+=Math.max(g.right-M.right,0);var S=Math.max(g.top-M.top,0);M.top+=S,M.bottom+=Math.max(g.bottom-M.bottom,0);var P=i-M.top-M.bottom,I=e-M.left-M.right;I===k&&P===w||(ut.each(p,function(t){t.height=P}),ut.each(m,function(t){t.fullWidth||(t.width=I)}),w=P,k=I);var A=o+C,D=s+S;ut.each(d.concat(h),F),A+=k,D+=w,ut.each(u,F),ut.each(c,F),t.chartArea={left:M.left,top:M.top,right:M.left+k,bottom:M.top+w},ut.each(f,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(k,w)})}function T(t){var e=ut.findNextWhere(_,function(e){return e.box===t});if(e)if(e.horizontal){var i={left:Math.max(M.left,g.left),right:Math.max(M.right,g.right),top:0,bottom:0};t.update(t.fullWidth?b:k,x/2,i)}else t.update(e.width,w)}function F(t){t.isHorizontal()?(t.left=t.fullWidth?o:M.left,t.right=t.fullWidth?e-r:M.left+k,t.top=D,t.bottom=D+t.height,D=t.bottom):(t.left=A,t.right=A+t.width,t.top=M.top,t.bottom=M.top+w,A=t.right)}}};var we,Me=(we=Object.freeze({default:"@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&we.default||we,_e="$chartjs",Ce="chartjs-size-monitor",Se="chartjs-render-monitor",Pe="chartjs-render-animation",Ie=["animationstart","webkitAnimationStart"],Ae={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function De(t,e){var i=ut.getStyle(t,e),n=i&&i.match(/^(\d+)(\.\d+)?px$/);return n?Number(n[1]):void 0}var Te=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function Fe(t,e,i){t.addEventListener(e,i,Te)}function Le(t,e,i){t.removeEventListener(e,i,Te)}function Re(t,e,i,n,a){return{type:t,chart:e,native:a||null,x:void 0!==i?i:null,y:void 0!==n?n:null}}function Oe(t){var e=document.createElement("div");return e.className=t||"",e}function ze(t,e,i){var n,a,o,r,s=t[_e]||(t[_e]={}),l=s.resizer=function(t){var e=Oe(Ce),i=Oe(Ce+"-expand"),n=Oe(Ce+"-shrink");i.appendChild(Oe()),n.appendChild(Oe()),e.appendChild(i),e.appendChild(n),e._reset=function(){i.scrollLeft=1e6,i.scrollTop=1e6,n.scrollLeft=1e6,n.scrollTop=1e6};var a=function(){e._reset(),t()};return Fe(i,"scroll",a.bind(i,"expand")),Fe(n,"scroll",a.bind(n,"shrink")),e}((n=function(){if(s.resizer){var n=i.options.maintainAspectRatio&&t.parentNode,a=n?n.clientWidth:0;e(Re("resize",i)),n&&n.clientWidth<a&&i.canvas&&e(Re("resize",i))}},o=!1,r=[],function(){r=Array.prototype.slice.call(arguments),a=a||this,o||(o=!0,ut.requestAnimFrame.call(window,function(){o=!1,n.apply(a,r)}))}));!function(t,e){var i=t[_e]||(t[_e]={}),n=i.renderProxy=function(t){t.animationName===Pe&&e()};ut.each(Ie,function(e){Fe(t,e,n)}),i.reflow=!!t.offsetParent,t.classList.add(Se)}(t,function(){if(s.resizer){var e=t.parentNode;e&&e!==l.parentNode&&e.insertBefore(l,e.firstChild),l._reset()}})}function Be(t){var e=t[_e]||{},i=e.resizer;delete e.resizer,function(t){var e=t[_e]||{},i=e.renderProxy;i&&(ut.each(Ie,function(e){Le(t,e,i)}),delete e.renderProxy),t.classList.remove(Se)}(t),i&&i.parentNode&&i.parentNode.removeChild(i)}var Ne={disableCSSInjection:!1,_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,_ensureLoaded:function(){var t,e,i;this._loaded||(this._loaded=!0,this.disableCSSInjection||(e=Me,i=(t=this)._style||document.createElement("style"),t._style||(t._style=i,e="/* Chart.js */\n"+e,i.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(i)),i.appendChild(document.createTextNode(e))))},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext("2d");return this._ensureLoaded(),i&&i.canvas===t?(function(t,e){var i=t.style,n=t.getAttribute("height"),a=t.getAttribute("width");if(t[_e]={initial:{height:n,width:a,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",null===a||""===a){var o=De(t,"width");void 0!==o&&(t.width=o)}if(null===n||""===n)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var r=De(t,"height");void 0!==o&&(t.height=r)}}(t,e),i):null},releaseContext:function(t){var e=t.canvas;if(e[_e]){var i=e[_e].initial;["height","width"].forEach(function(t){var n=i[t];ut.isNullOrUndef(n)?e.removeAttribute(t):e.setAttribute(t,n)}),ut.each(i.style||{},function(t,i){e.style[i]=t}),e.width=e.width,delete e[_e]}},addEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=i[_e]||(i[_e]={});Fe(n,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){i(function(t,e){var i=Ae[t.type]||t.type,n=ut.getRelativePosition(t,e);return Re(i,e,n.x,n.y,t)}(e,t))})}else ze(n,i,t)},removeEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=((i[_e]||{}).proxies||{})[t.id+"_"+e];a&&Le(n,e,a)}else Be(n)}};ut.addEvent=Fe,ut.removeEvent=Le;var We=Ne._enabled?Ne:{acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}},Ve=ut.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},We);st._set("global",{plugins:{}});var Ee={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var i=e.indexOf(t);-1!==i&&e.splice(i,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,i){var n,a,o,r,s,l=this.descriptors(t),d=l.length;for(n=0;n<d;++n)if("function"==typeof(s=(o=(a=l[n]).plugin)[e])&&((r=[t].concat(i||[])).push(a.options),!1===s.apply(o,r)))return!1;return!0},descriptors:function(t){var e=t.$plugins||(t.$plugins={});if(e.id===this._cacheId)return e.descriptors;var i=[],n=[],a=t&&t.config||{},o=a.options&&a.options.plugins||{};return this._plugins.concat(a.plugins||[]).forEach(function(t){if(-1===i.indexOf(t)){var e=t.id,a=o[e];!1!==a&&(!0===a&&(a=ut.clone(st.global.plugins[e])),i.push(t),n.push({plugin:t,options:a||{}}))}}),e.descriptors=n,e.id=this._cacheId,n},_invalidate:function(t){delete t.$plugins}},He={constructors:{},defaults:{},registerScaleType:function(t,e,i){this.constructors[t]=e,this.defaults[t]=ut.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?ut.merge({},[st.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=ut.extend(this.defaults[t],e))},addScalesToLayout:function(t){ut.each(t.scales,function(e){e.fullWidth=e.options.fullWidth,e.position=e.options.position,e.weight=e.options.weight,ke.addBox(t,e)})}},je=ut.valueOrDefault;st._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:ut.noop,title:function(t,e){var i="",n=e.labels,a=n?n.length:0;if(t.length>0){var o=t[0];o.label?i=o.label:o.xLabel?i=o.xLabel:a>0&&o.index<a&&(i=n[o.index])}return i},afterTitle:ut.noop,beforeBody:ut.noop,beforeLabel:ut.noop,label:function(t,e){var i=e.datasets[t.datasetIndex].label||"";return i&&(i+=": "),ut.isNullOrUndef(t.value)?i+=t.yLabel:i+=t.value,i},labelColor:function(t,e){var i=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:i.borderColor,backgroundColor:i.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:ut.noop,afterBody:ut.noop,beforeFooter:ut.noop,footer:ut.noop,afterFooter:ut.noop}}});var qe={average:function(t){if(!t.length)return!1;var e,i,n=0,a=0,o=0;for(e=0,i=t.length;e<i;++e){var r=t[e];if(r&&r.hasValue()){var s=r.tooltipPosition();n+=s.x,a+=s.y,++o}}return{x:n/o,y:a/o}},nearest:function(t,e){var i,n,a,o=e.x,r=e.y,s=Number.POSITIVE_INFINITY;for(i=0,n=t.length;i<n;++i){var l=t[i];if(l&&l.hasValue()){var d=l.getCenterPoint(),u=ut.distanceBetweenPoints(e,d);u<s&&(s=u,a=l)}}if(a){var h=a.tooltipPosition();o=h.x,r=h.y}return{x:o,y:r}}};function Ye(t,e){return e&&(ut.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Ue(t){return("string"==typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function Xe(t){var e=st.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:je(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:je(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:je(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:je(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:je(t.titleFontStyle,e.defaultFontStyle),titleFontSize:je(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:je(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:je(t.footerFontStyle,e.defaultFontStyle),footerFontSize:je(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function Ke(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function Ge(t){return Ye([],Ue(t))}var Ze=pt.extend({initialize:function(){this._model=Xe(this._options),this._lastActive=[]},getTitle:function(){var t=this._options.callbacks,e=t.beforeTitle.apply(this,arguments),i=t.title.apply(this,arguments),n=t.afterTitle.apply(this,arguments),a=[];return a=Ye(a,Ue(e)),a=Ye(a,Ue(i)),a=Ye(a,Ue(n))},getBeforeBody:function(){return Ge(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var i=this,n=i._options.callbacks,a=[];return ut.each(t,function(t){var o={before:[],lines:[],after:[]};Ye(o.before,Ue(n.beforeLabel.call(i,t,e))),Ye(o.lines,n.label.call(i,t,e)),Ye(o.after,Ue(n.afterLabel.call(i,t,e))),a.push(o)}),a},getAfterBody:function(){return Ge(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this._options.callbacks,e=t.beforeFooter.apply(this,arguments),i=t.footer.apply(this,arguments),n=t.afterFooter.apply(this,arguments),a=[];return a=Ye(a,Ue(e)),a=Ye(a,Ue(i)),a=Ye(a,Ue(n))},update:function(t){var e,i,n,a,o,r,s,l,d,u,h=this,c=h._options,f=h._model,g=h._model=Xe(c),p=h._active,m=h._data,v={xAlign:f.xAlign,yAlign:f.yAlign},b={x:f.x,y:f.y},x={width:f.width,height:f.height},y={x:f.caretX,y:f.caretY};if(p.length){g.opacity=1;var k=[],w=[];y=qe[c.position].call(h,p,h._eventPosition);var M=[];for(e=0,i=p.length;e<i;++e)M.push((n=p[e],a=void 0,o=void 0,r=void 0,s=void 0,l=void 0,d=void 0,u=void 0,a=n._xScale,o=n._yScale||n._scale,r=n._index,s=n._datasetIndex,l=n._chart.getDatasetMeta(s).controller,d=l._getIndexScale(),u=l._getValueScale(),{xLabel:a?a.getLabelForIndex(r,s):"",yLabel:o?o.getLabelForIndex(r,s):"",label:d?""+d.getLabelForIndex(r,s):"",value:u?""+u.getLabelForIndex(r,s):"",index:r,datasetIndex:s,x:n._model.x,y:n._model.y}));c.filter&&(M=M.filter(function(t){return c.filter(t,m)})),c.itemSort&&(M=M.sort(function(t,e){return c.itemSort(t,e,m)})),ut.each(M,function(t){k.push(c.callbacks.labelColor.call(h,t,h._chart)),w.push(c.callbacks.labelTextColor.call(h,t,h._chart))}),g.title=h.getTitle(M,m),g.beforeBody=h.getBeforeBody(M,m),g.body=h.getBody(M,m),g.afterBody=h.getAfterBody(M,m),g.footer=h.getFooter(M,m),g.x=y.x,g.y=y.y,g.caretPadding=c.caretPadding,g.labelColors=k,g.labelTextColors=w,g.dataPoints=M,x=function(t,e){var i=t._chart.ctx,n=2*e.yPadding,a=0,o=e.body,r=o.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);r+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,l=e.footer.length,d=e.titleFontSize,u=e.bodyFontSize,h=e.footerFontSize;n+=s*d,n+=s?(s-1)*e.titleSpacing:0,n+=s?e.titleMarginBottom:0,n+=r*u,n+=r?(r-1)*e.bodySpacing:0,n+=l?e.footerMarginTop:0,n+=l*h,n+=l?(l-1)*e.footerSpacing:0;var c=0,f=function(t){a=Math.max(a,i.measureText(t).width+c)};return i.font=ut.fontString(d,e._titleFontStyle,e._titleFontFamily),ut.each(e.title,f),i.font=ut.fontString(u,e._bodyFontStyle,e._bodyFontFamily),ut.each(e.beforeBody.concat(e.afterBody),f),c=e.displayColors?u+2:0,ut.each(o,function(t){ut.each(t.before,f),ut.each(t.lines,f),ut.each(t.after,f)}),c=0,i.font=ut.fontString(h,e._footerFontStyle,e._footerFontFamily),ut.each(e.footer,f),{width:a+=2*e.xPadding,height:n}}(this,g),b=function(t,e,i,n){var a=t.x,o=t.y,r=t.caretSize,s=t.caretPadding,l=t.cornerRadius,d=i.xAlign,u=i.yAlign,h=r+s,c=l+s;return"right"===d?a-=e.width:"center"===d&&((a-=e.width/2)+e.width>n.width&&(a=n.width-e.width),a<0&&(a=0)),"top"===u?o+=h:o-="bottom"===u?e.height+h:e.height/2,"center"===u?"left"===d?a+=h:"right"===d&&(a-=h):"left"===d?a-=c:"right"===d&&(a+=c),{x:a,y:o}}(g,x,v=function(t,e){var i,n,a,o,r,s=t._model,l=t._chart,d=t._chart.chartArea,u="center",h="center";s.y<e.height?h="top":s.y>l.height-e.height&&(h="bottom");var c=(d.left+d.right)/2,f=(d.top+d.bottom)/2;"center"===h?(i=function(t){return t<=c},n=function(t){return t>c}):(i=function(t){return t<=e.width/2},n=function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},o=function(t){return t-e.width-s.caretSize-s.caretPadding<0},r=function(t){return t<=f?"top":"bottom"},i(s.x)?(u="left",a(s.x)&&(u="center",h=r(s.y))):n(s.x)&&(u="right",o(s.x)&&(u="center",h=r(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:u,yAlign:g.yAlign?g.yAlign:h}}(this,x),h._chart)}else g.opacity=0;return g.xAlign=v.xAlign,g.yAlign=v.yAlign,g.x=b.x,g.y=b.y,g.width=x.width,g.height=x.height,g.caretX=y.x,g.caretY=y.y,h._model=g,t&&c.custom&&c.custom.call(h,g),h},drawCaret:function(t,e){var i=this._chart.ctx,n=this._view,a=this.getCaretPosition(t,e,n);i.lineTo(a.x1,a.y1),i.lineTo(a.x2,a.y2),i.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,i){var n,a,o,r,s,l,d=i.caretSize,u=i.cornerRadius,h=i.xAlign,c=i.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if("center"===c)s=g+m/2,"left"===h?(a=(n=f)-d,o=n,r=s+d,l=s-d):(a=(n=f+p)+d,o=n,r=s-d,l=s+d);else if("left"===h?(n=(a=f+u+d)-d,o=a+d):"right"===h?(n=(a=f+p-u-d)-d,o=a+d):(n=(a=i.caretX)-d,o=a+d),"top"===c)s=(r=g)-d,l=r;else{s=(r=g+m)+d,l=r;var v=o;o=n,n=v}return{x1:n,x2:a,x3:o,y1:r,y2:s,y3:l}},drawTitle:function(t,e,i){var n=e.title;if(n.length){t.x=Ke(e,e._titleAlign),i.textAlign=e._titleAlign,i.textBaseline="top";var a,o,r=e.titleFontSize,s=e.titleSpacing;for(i.fillStyle=e.titleFontColor,i.font=ut.fontString(r,e._titleFontStyle,e._titleFontFamily),a=0,o=n.length;a<o;++a)i.fillText(n[a],t.x,t.y),t.y+=r+s,a+1===n.length&&(t.y+=e.titleMarginBottom-s)}},drawBody:function(t,e,i){var n,a=e.bodyFontSize,o=e.bodySpacing,r=e._bodyAlign,s=e.body,l=e.displayColors,d=e.labelColors,u=0,h=l?Ke(e,"left"):0;i.textAlign=r,i.textBaseline="top",i.font=ut.fontString(a,e._bodyFontStyle,e._bodyFontFamily),t.x=Ke(e,r);var c=function(e){i.fillText(e,t.x+u,t.y),t.y+=a+o};i.fillStyle=e.bodyFontColor,ut.each(e.beforeBody,c),u=l&&"right"!==r?"center"===r?a/2+1:a+2:0,ut.each(s,function(o,r){n=e.labelTextColors[r],i.fillStyle=n,ut.each(o.before,c),ut.each(o.lines,function(o){l&&(i.fillStyle=e.legendColorBackground,i.fillRect(h,t.y,a,a),i.lineWidth=1,i.strokeStyle=d[r].borderColor,i.strokeRect(h,t.y,a,a),i.fillStyle=d[r].backgroundColor,i.fillRect(h+1,t.y+1,a-2,a-2),i.fillStyle=n),c(o)}),ut.each(o.after,c)}),u=0,ut.each(e.afterBody,c),t.y-=o},drawFooter:function(t,e,i){var n=e.footer;n.length&&(t.x=Ke(e,e._footerAlign),t.y+=e.footerMarginTop,i.textAlign=e._footerAlign,i.textBaseline="top",i.fillStyle=e.footerFontColor,i.font=ut.fontString(e.footerFontSize,e._footerFontStyle,e._footerFontFamily),ut.each(n,function(n){i.fillText(n,t.x,t.y),t.y+=e.footerFontSize+e.footerSpacing}))},drawBackground:function(t,e,i,n){i.fillStyle=e.backgroundColor,i.strokeStyle=e.borderColor,i.lineWidth=e.borderWidth;var a=e.xAlign,o=e.yAlign,r=t.x,s=t.y,l=n.width,d=n.height,u=e.cornerRadius;i.beginPath(),i.moveTo(r+u,s),"top"===o&&this.drawCaret(t,n),i.lineTo(r+l-u,s),i.quadraticCurveTo(r+l,s,r+l,s+u),"center"===o&&"right"===a&&this.drawCaret(t,n),i.lineTo(r+l,s+d-u),i.quadraticCurveTo(r+l,s+d,r+l-u,s+d),"bottom"===o&&this.drawCaret(t,n),i.lineTo(r+u,s+d),i.quadraticCurveTo(r,s+d,r,s+d-u),"center"===o&&"left"===a&&this.drawCaret(t,n),i.lineTo(r,s+u),i.quadraticCurveTo(r,s,r+u,s),i.closePath(),i.fill(),e.borderWidth>0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var i={width:e.width,height:e.height},n={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(t.save(),t.globalAlpha=a,this.drawBackground(n,e,t,i),n.y+=e.yPadding,this.drawTitle(n,e,t),this.drawBody(n,e,t),this.drawFooter(n,e,t),t.restore())}},handleEvent:function(t){var e,i=this,n=i._options;return i._lastActive=i._lastActive||[],"mouseout"===t.type?i._active=[]:i._active=i._chart.getElementsAtEventForMode(t,n.mode,n),(e=!ut.arrayEquals(i._active,i._lastActive))&&(i._lastActive=i._active,(n.enabled||n.custom)&&(i._eventPosition={x:t.x,y:t.y},i.update(!0),i.pivot())),e}}),$e=qe,Je=Ze;Je.positioners=$e;var Qe=ut.valueOrDefault;function ti(){return ut.merge({},[].slice.call(arguments),{merger:function(t,e,i,n){if("xAxes"===t||"yAxes"===t){var a,o,r,s=i[t].length;for(e[t]||(e[t]=[]),a=0;a<s;++a)r=i[t][a],o=Qe(r.type,"xAxes"===t?"category":"linear"),a>=e[t].length&&e[t].push({}),!e[t][a].type||r.type&&r.type!==e[t][a].type?ut.merge(e[t][a],[He.getScaleDefaults(o),r]):ut.merge(e[t][a],r)}else ut._merger(t,e,i,n)}})}function ei(){return ut.merge({},[].slice.call(arguments),{merger:function(t,e,i,n){var a=e[t]||{},o=i[t];"scales"===t?e[t]=ti(a,o):"scale"===t?e[t]=ut.merge(a,[He.getScaleDefaults(o.type),o]):ut._merger(t,e,i,n)}})}function ii(t){return"top"===t||"bottom"===t}st._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var ni=function(t,e){return this.construct(t,e),this};ut.extend(ni.prototype,{construct:function(t,e){var i=this;e=function(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=ei(st.global,st[t.type],t.options||{}),t}(e);var n=Ve.acquireContext(t,e),a=n&&n.canvas,o=a&&a.height,r=a&&a.width;i.id=ut.uid(),i.ctx=n,i.canvas=a,i.config=e,i.width=r,i.height=o,i.aspectRatio=o?r/o:null,i.options=e.options,i._bufferedRender=!1,i.chart=i,i.controller=i,ni.instances[i.id]=i,Object.defineProperty(i,"data",{get:function(){return i.config.data},set:function(t){i.config.data=t}}),n&&a?(i.initialize(),i.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return Ee.notify(t,"beforeInit"),ut.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),Ee.notify(t,"afterInit"),t},clear:function(){return ut.canvas.clear(this),this},stop:function(){return bt.cancelAnimation(this),this},resize:function(t){var e=this,i=e.options,n=e.canvas,a=i.maintainAspectRatio&&e.aspectRatio||null,o=Math.max(0,Math.floor(ut.getMaximumWidth(n))),r=Math.max(0,Math.floor(a?o/a:ut.getMaximumHeight(n)));if((e.width!==o||e.height!==r)&&(n.width=e.width=o,n.height=e.height=r,n.style.width=o+"px",n.style.height=r+"px",ut.retinaScale(e,i.devicePixelRatio),!t)){var s={width:o,height:r};Ee.notify(e,"resize",[s]),i.onResize&&i.onResize(e,s),e.stop(),e.update({duration:i.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},i=t.scale;ut.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),ut.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,i=t.scales||{},n=[],a=Object.keys(i).reduce(function(t,e){return t[e]=!1,t},{});e.scales&&(n=n.concat((e.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(e.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),e.scale&&n.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),ut.each(n,function(e){var n=e.options,o=n.id,r=Qe(n.type,e.dtype);ii(n.position)!==ii(e.dposition)&&(n.position=e.dposition),a[o]=!0;var s=null;if(o in i&&i[o].type===r)(s=i[o]).options=n,s.ctx=t.ctx,s.chart=t;else{var l=He.getScaleConstructor(r);if(!l)return;s=new l({id:o,type:r,options:n,ctx:t.ctx,chart:t}),i[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)}),ut.each(a,function(t,e){t||delete i[e]}),t.scales=i,He.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t=this,e=[];return ut.each(t.data.datasets,function(i,n){var a=t.getDatasetMeta(n),o=i.type||t.config.type;if(a.type&&a.type!==o&&(t.destroyDatasetMeta(n),a=t.getDatasetMeta(n)),a.type=o,a.controller)a.controller.updateIndex(n),a.controller.linkScales();else{var r=ue[a.type];if(void 0===r)throw new Error('"'+a.type+'" is not a chart type.');a.controller=new r(t,n),e.push(a.controller)}},t),e},resetElements:function(){var t=this;ut.each(t.data.datasets,function(e,i){t.getDatasetMeta(i).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e,i,n=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),i=(e=n).options,ut.each(e.scales,function(t){ke.removeBox(e,t)}),i=ei(st.global,st[e.config.type],i),e.options=e.config.options=i,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=i.tooltips,e.tooltip.initialize(),Ee._invalidate(n),!1!==Ee.notify(n,"beforeUpdate")){n.tooltip._data=n.data;var a=n.buildOrUpdateControllers();ut.each(n.data.datasets,function(t,e){n.getDatasetMeta(e).controller.buildOrUpdateElements()},n),n.updateLayout(),n.options.animation&&n.options.animation.duration&&ut.each(a,function(t){t.reset()}),n.updateDatasets(),n.tooltip.initialize(),n.lastActive=[],Ee.notify(n,"afterUpdate"),n._bufferedRender?n._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:n.render(t)}},updateLayout:function(){!1!==Ee.notify(this,"beforeLayout")&&(ke.update(this,this.width,this.height),Ee.notify(this,"afterScaleUpdate"),Ee.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==Ee.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t<e;++t)this.updateDataset(t);Ee.notify(this,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this.getDatasetMeta(t),i={meta:e,index:t};!1!==Ee.notify(this,"beforeDatasetUpdate",[i])&&(e.controller.update(),Ee.notify(this,"afterDatasetUpdate",[i]))},render:function(t){var e=this;t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]});var i=e.options.animation,n=Qe(t.duration,i&&i.duration),a=t.lazy;if(!1!==Ee.notify(e,"beforeRender")){var o=function(t){Ee.notify(e,"afterRender"),ut.callback(i&&i.onComplete,[t],e)};if(i&&n){var r=new vt({numSteps:n/16.66,easing:t.easing||i.easing,render:function(t,e){var i=ut.easing.effects[e.easing],n=e.currentStep,a=n/e.numSteps;t.draw(i(a),a,n)},onAnimationProgress:i.onProgress,onAnimationComplete:o});bt.addAnimation(e,r,n,a)}else e.draw(),o(new vt({numSteps:0,chart:e}));return e}},draw:function(t){var e=this;e.clear(),ut.isNullOrUndef(t)&&(t=1),e.transition(t),e.width<=0||e.height<=0||!1!==Ee.notify(e,"beforeDraw",[t])&&(ut.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.drawDatasets(t),e._drawTooltip(t),Ee.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=0,i=(this.data.datasets||[]).length;e<i;++e)this.isDatasetVisible(e)&&this.getDatasetMeta(e).controller.transition(t);this.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==Ee.notify(e,"beforeDatasetsDraw",[t])){for(var i=(e.data.datasets||[]).length-1;i>=0;--i)e.isDatasetVisible(i)&&e.drawDataset(i,t);Ee.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var i=this.getDatasetMeta(t),n={meta:i,index:t,easingValue:e};!1!==Ee.notify(this,"beforeDatasetDraw",[n])&&(i.controller.draw(e),Ee.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(t){var e=this.tooltip,i={tooltip:e,easingValue:t};!1!==Ee.notify(this,"beforeTooltipDraw",[i])&&(e.draw(),Ee.notify(this,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return ve.modes.single(this,t)},getElementsAtEvent:function(t){return ve.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return ve.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,i){var n=ve.modes[e];return"function"==typeof n?n(this,t,i):[]},getDatasetAtEvent:function(t){return ve.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var i=e._meta[this.id];return i||(i=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,i=this.data.datasets.length;e<i;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,i=this.data.datasets[t],n=i._meta&&i._meta[e];n&&(n.controller.destroy(),delete i._meta[e])},destroy:function(){var t,e,i=this,n=i.canvas;for(i.stop(),t=0,e=i.data.datasets.length;t<e;++t)i.destroyDatasetMeta(t);n&&(i.unbindEvents(),ut.canvas.clear(i),Ve.releaseContext(i.ctx),i.canvas=null,i.ctx=null),Ee.notify(i,"destroy"),delete ni.instances[i.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var t=this;t.tooltip=new Je({_chart:t,_chartInstance:t,_data:t.data,_options:t.options.tooltips},t)},bindEvents:function(){var t=this,e=t._listeners={},i=function(){t.eventHandler.apply(t,arguments)};ut.each(t.options.events,function(n){Ve.addEventListener(t,n,i),e[n]=i}),t.options.responsive&&(i=function(){t.resize()},Ve.addEventListener(t,"resize",i),e.resize=i)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,ut.each(e,function(e,i){Ve.removeEventListener(t,i,e)}))},updateHoverStyle:function(t,e,i){var n,a,o,r=i?"setHoverStyle":"removeHoverStyle";for(a=0,o=t.length;a<o;++a)(n=t[a])&&this.getDatasetMeta(n._datasetIndex).controller[r](n)},eventHandler:function(t){var e=this,i=e.tooltip;if(!1!==Ee.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var n=e.handleEvent(t);i&&(n=i._start?i.handleEvent(t):n|i.handleEvent(t)),Ee.notify(e,"afterEvent",[t]);var a=e._bufferedRequest;return a?e.render(a):n&&!e.animating&&(e.stop(),e.render({duration:e.options.hover.animationDuration,lazy:!0})),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e,i=this,n=i.options||{},a=n.hover;return i.lastActive=i.lastActive||[],"mouseout"===t.type?i.active=[]:i.active=i.getElementsAtEventForMode(t,a.mode,a),ut.callback(n.onHover||n.hover.onHover,[t.native,i.active],i),"mouseup"!==t.type&&"click"!==t.type||n.onClick&&n.onClick.call(i,t.native,i.active),i.lastActive.length&&i.updateHoverStyle(i.lastActive,a.mode,!1),i.active.length&&a.mode&&i.updateHoverStyle(i.active,a.mode,!0),e=!ut.arrayEquals(i.active,i.lastActive),i.lastActive=i.active,e}}),ni.instances={};var ai=ni;ni.Controller=ni,ni.types={},ut.configMerge=ei,ut.scaleMerge=ti;function oi(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function ri(t){this.options=t||{}}ut.extend(ri.prototype,{formats:oi,parse:oi,format:oi,add:oi,diff:oi,startOf:oi,endOf:oi,_create:function(t){return t}}),ri.override=function(t){ut.extend(ri.prototype,t)};var si={_date:ri},li={formatters:{values:function(t){return ut.isArray(t)?t:""+t},linear:function(t,e,i){var n=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(n)>1&&t!==Math.floor(t)&&(n=t-Math.floor(t));var a=ut.log10(Math.abs(n)),o="";if(0!==t)if(Math.max(Math.abs(i[0]),Math.abs(i[i.length-1]))<1e-4){var r=ut.log10(Math.abs(t));o=t.toExponential(Math.floor(r)-Math.floor(a))}else{var s=-1*Math.floor(a);s=Math.max(Math.min(s,20),0),o=t.toFixed(s)}else o="0";return o},logarithmic:function(t,e,i){var n=t/Math.pow(10,Math.floor(ut.log10(t)));return 0===t?"0":1===n||2===n||5===n||0===e||e===i.length-1?t.toExponential():""}}},di=ut.valueOrDefault,ui=ut.valueAtIndexOrDefault;function hi(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(t[e].label);return n}function ci(t,e,i){return ut.isArray(e)?ut.longestText(t,i,e):t.measureText(e).width}st._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:li.formatters.values,minor:{},major:{}}});var fi=pt.extend({getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;for(var e in!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1}),t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){ut.callback(this.options.beforeUpdate,[this])},update:function(t,e,i){var n,a,o,r,s,l,d=this;for(d.beforeUpdate(),d.maxWidth=t,d.maxHeight=e,d.margins=ut.extend({left:0,right:0,top:0,bottom:0},i),d._maxLabelLines=0,d.longestLabelWidth=0,d.longestTextCache=d.longestTextCache||{},d.beforeSetDimensions(),d.setDimensions(),d.afterSetDimensions(),d.beforeDataLimits(),d.determineDataLimits(),d.afterDataLimits(),d.beforeBuildTicks(),s=d.buildTicks()||[],s=d.afterBuildTicks(s)||s,d.beforeTickToLabelConversion(),o=d.convertTicksToLabels(s)||d.ticks,d.afterTickToLabelConversion(),d.ticks=o,n=0,a=o.length;n<a;++n)r=o[n],(l=s[n])?l.label=r:s.push(l={label:r,major:!1});return d._ticks=s,d.beforeCalculateTickRotation(),d.calculateTickRotation(),d.afterCalculateTickRotation(),d.beforeFit(),d.fit(),d.afterFit(),d.afterUpdate(),d.minSize},afterUpdate:function(){ut.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){ut.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){ut.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){ut.callback(this.options.beforeDataLimits,[this])},determineDataLimits:ut.noop,afterDataLimits:function(){ut.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){ut.callback(this.options.beforeBuildTicks,[this])},buildTicks:ut.noop,afterBuildTicks:function(t){var e=this;return ut.isArray(t)&&t.length?ut.callback(e.options.afterBuildTicks,[e,t]):(e.ticks=ut.callback(e.options.afterBuildTicks,[e,e.ticks])||e.ticks,t)},beforeTickToLabelConversion:function(){ut.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this.options.ticks;this.ticks=this.ticks.map(t.userCallback||t.callback,this)},afterTickToLabelConversion:function(){ut.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){ut.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,i=t.options.ticks,n=hi(t._ticks),a=ut.options._parseFont(i);e.font=a.string;var o=i.minRotation||0;if(n.length&&t.options.display&&t.isHorizontal())for(var r,s=ut.longestText(e,a.string,n,t.longestTextCache),l=s,d=t.getPixelForTick(1)-t.getPixelForTick(0)-6;l>d&&o<i.maxRotation;){var u=ut.toRadians(o);if(r=Math.cos(u),Math.sin(u)*s>t.maxHeight){o--;break}o++,l=r*s}t.labelRotation=o},afterCalculateTickRotation:function(){ut.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){ut.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},i=hi(t._ticks),n=t.options,a=n.ticks,o=n.scaleLabel,r=n.gridLines,s=t._isVisible(),l=n.position,d=t.isHorizontal(),u=ut.options._parseFont,h=u(a),c=n.gridLines.tickMarkLength;if(e.width=d?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:s&&r.drawTicks?c:0,e.height=d?s&&r.drawTicks?c:0:t.maxHeight,o.display&&s){var f=u(o),g=ut.options.toPadding(o.padding),p=f.lineHeight+g.height;d?e.height+=p:e.width+=p}if(a.display&&s){var m=ut.longestText(t.ctx,h.string,i,t.longestTextCache),v=ut.numberOfLabelLines(i),b=.5*h.size,x=t.options.ticks.padding;if(t._maxLabelLines=v,t.longestLabelWidth=m,d){var y=ut.toRadians(t.labelRotation),k=Math.cos(y),w=Math.sin(y)*m+h.lineHeight*v+b;e.height=Math.min(t.maxHeight,e.height+w+x),t.ctx.font=h.string;var M,_,C=ci(t.ctx,i[0],h.string),S=ci(t.ctx,i[i.length-1],h.string),P=t.getPixelForTick(0)-t.left,I=t.right-t.getPixelForTick(i.length-1);0!==t.labelRotation?(M="bottom"===l?k*C:k*b,_="bottom"===l?k*b:k*S):(M=C/2,_=S/2),t.paddingLeft=Math.max(M-P,0)+3,t.paddingRight=Math.max(_-I,0)+3}else a.mirror?m=0:m+=x+b,e.width=Math.min(t.maxWidth,e.width+m),t.paddingTop=h.size/2,t.paddingBottom=h.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){ut.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(ut.isNullOrUndef(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:ut.noop,getPixelForValue:ut.noop,getValueForPixel:ut.noop,getPixelForTick:function(t){var e=this,i=e.options.offset;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(i?0:1),1),a=n*t+e.paddingLeft;i&&(a+=n/2);var o=e.left+a;return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,n=e.left+i;return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,i,n=this,a=n.isHorizontal(),o=n.options.ticks.minor,r=t.length,s=!1,l=o.maxTicksLimit,d=n._tickSize()*(r-1),u=a?n.width-(n.paddingLeft+n.paddingRight):n.height-(n.paddingTop+n.PaddingBottom),h=[];for(d>u&&(s=1+Math.floor(d/u)),r>l&&(s=Math.max(s,1+Math.floor(r/l))),e=0;e<r;e++)i=t[e],s>1&&e%s>0&&delete i.label,h.push(i);return h},_tickSize:function(){var t=this,e=t.isHorizontal(),i=t.options.ticks.minor,n=ut.toRadians(t.labelRotation),a=Math.abs(Math.cos(n)),o=Math.abs(Math.sin(n)),r=i.autoSkipPadding||0,s=t.longestLabelWidth+r||0,l=ut.options._parseFont(i),d=t._maxLabelLines*l.lineHeight+r||0;return e?d*a>s*o?s/a:d/o:d*o<s*a?d/a:s/o},_isVisible:function(){var t,e,i,n=this.chart,a=this.options.display;if("auto"!==a)return!!a;for(t=0,e=n.data.datasets.length;t<e;++t)if(n.isDatasetVisible(t)&&((i=n.getDatasetMeta(t)).xAxisID===this.id||i.yAxisID===this.id))return!0;return!1},draw:function(t){var e=this,i=e.options;if(e._isVisible()){var n,a,o,r=e.chart,s=e.ctx,l=st.global.defaultFontColor,d=i.ticks.minor,u=i.ticks.major||d,h=i.gridLines,c=i.scaleLabel,f=i.position,g=0!==e.labelRotation,p=d.mirror,m=e.isHorizontal(),v=ut.options._parseFont,b=d.display&&d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),x=di(d.fontColor,l),y=v(d),k=y.lineHeight,w=di(u.fontColor,l),M=v(u),_=d.padding,C=d.labelOffset,S=h.drawTicks?h.tickMarkLength:0,P=di(c.fontColor,l),I=v(c),A=ut.options.toPadding(c.padding),D=ut.toRadians(e.labelRotation),T=[],F=h.drawBorder?ui(h.lineWidth,0,0):0,L=ut._alignPixel;"top"===f?(n=L(r,e.bottom,F),a=e.bottom-S,o=n-F/2):"bottom"===f?(n=L(r,e.top,F),a=n+F/2,o=e.top+S):"left"===f?(n=L(r,e.right,F),a=e.right-S,o=n-F/2):(n=L(r,e.left,F),a=n+F/2,o=e.left+S);if(ut.each(b,function(n,s){if(!ut.isNullOrUndef(n.label)){var l,d,u,c,v,b,x,y,w,M,P,I,A,R,O,z,B=n.label;s===e.zeroLineIndex&&i.offset===h.offsetGridLines?(l=h.zeroLineWidth,d=h.zeroLineColor,u=h.zeroLineBorderDash||[],c=h.zeroLineBorderDashOffset||0):(l=ui(h.lineWidth,s),d=ui(h.color,s),u=h.borderDash||[],c=h.borderDashOffset||0);var N=ut.isArray(B)?B.length:1,W=function(t,e,i){var n=t.getPixelForTick(e);return i&&(1===t.getTicks().length?n-=t.isHorizontal()?Math.max(n-t.left,t.right-n):Math.max(n-t.top,t.bottom-n):n-=0===e?(t.getPixelForTick(1)-n)/2:(n-t.getPixelForTick(e-1))/2),n}(e,s,h.offsetGridLines);if(m){var V=S+_;W<e.left-1e-7&&(d="rgba(0,0,0,0)"),v=x=w=P=L(r,W,l),b=a,y=o,A=e.getPixelForTick(s)+C,"top"===f?(M=L(r,t.top,F)+F/2,I=t.bottom,O=((g?1:.5)-N)*k,z=g?"left":"center",R=e.bottom-V):(M=t.top,I=L(r,t.bottom,F)-F/2,O=(g?0:.5)*k,z=g?"right":"center",R=e.top+V)}else{var E=(p?0:S)+_;W<e.top-1e-7&&(d="rgba(0,0,0,0)"),v=a,x=o,b=y=M=I=L(r,W,l),R=e.getPixelForTick(s)+C,O=(1-N)*k/2,"left"===f?(w=L(r,t.left,F)+F/2,P=t.right,z=p?"left":"right",A=e.right-E):(w=t.left,P=L(r,t.right,F)-F/2,z=p?"right":"left",A=e.left+E)}T.push({tx1:v,ty1:b,tx2:x,ty2:y,x1:w,y1:M,x2:P,y2:I,labelX:A,labelY:R,glWidth:l,glColor:d,glBorderDash:u,glBorderDashOffset:c,rotation:-1*D,label:B,major:n.major,textOffset:O,textAlign:z})}}),ut.each(T,function(t){var e=t.glWidth,i=t.glColor;if(h.display&&e&&i&&(s.save(),s.lineWidth=e,s.strokeStyle=i,s.setLineDash&&(s.setLineDash(t.glBorderDash),s.lineDashOffset=t.glBorderDashOffset),s.beginPath(),h.drawTicks&&(s.moveTo(t.tx1,t.ty1),s.lineTo(t.tx2,t.ty2)),h.drawOnChartArea&&(s.moveTo(t.x1,t.y1),s.lineTo(t.x2,t.y2)),s.stroke(),s.restore()),d.display){s.save(),s.translate(t.labelX,t.labelY),s.rotate(t.rotation),s.font=t.major?M.string:y.string,s.fillStyle=t.major?w:x,s.textBaseline="middle",s.textAlign=t.textAlign;var n=t.label,a=t.textOffset;if(ut.isArray(n))for(var o=0;o<n.length;++o)s.fillText(""+n[o],0,a),a+=k;else s.fillText(n,0,a);s.restore()}}),c.display){var R,O,z=0,B=I.lineHeight/2;if(m)R=e.left+(e.right-e.left)/2,O="bottom"===f?e.bottom-B-A.bottom:e.top+B+A.top;else{var N="left"===f;R=N?e.left+B+A.top:e.right-B-A.top,O=e.top+(e.bottom-e.top)/2,z=N?-.5*Math.PI:.5*Math.PI}s.save(),s.translate(R,O),s.rotate(z),s.textAlign="center",s.textBaseline="middle",s.fillStyle=P,s.font=I.string,s.fillText(c.labelString,0,0),s.restore()}if(F){var W,V,E,H,j=F,q=ui(h.lineWidth,b.length-1,0);m?(W=L(r,e.left,j)-j/2,V=L(r,e.right,q)+q/2,E=H=n):(E=L(r,e.top,j)-j/2,H=L(r,e.bottom,q)+q/2,W=V=n),s.lineWidth=F,s.strokeStyle=ui(h.color,0),s.beginPath(),s.moveTo(W,E),s.lineTo(V,H),s.stroke()}}}}),gi=fi.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,i=e.getLabels();e.minIndex=0,e.maxIndex=i.length-1,void 0!==e.options.ticks.min&&(t=i.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=i.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=i[e.minIndex],e.max=i[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var i=this,n=i.chart;return n.getDatasetMeta(e).controller._getValueScaleId()===i.id?i.getRightValue(n.data.datasets[e].data[t]):i.ticks[t-i.minIndex]},getPixelForValue:function(t,e){var i,n=this,a=n.options.offset,o=Math.max(n.maxIndex+1-n.minIndex-(a?0:1),1);if(null!=t&&(i=n.isHorizontal()?t.x:t.y),void 0!==i||void 0!==t&&isNaN(e)){t=i||t;var r=n.getLabels().indexOf(t);e=-1!==r?r:e}if(n.isHorizontal()){var s=n.width/o,l=s*(e-n.minIndex);return a&&(l+=s/2),n.left+l}var d=n.height/o,u=d*(e-n.minIndex);return a&&(u+=d/2),n.top+u},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,i=e.options.offset,n=Math.max(e._ticks.length-(i?0:1),1),a=e.isHorizontal(),o=(a?e.width:e.height)/n;return t-=a?e.left:e.top,i&&(t-=o/2),(t<=0?0:Math.round(t/o))+e.minIndex},getBasePixel:function(){return this.bottom}}),pi={position:"bottom"};gi._defaults=pi;var mi=ut.noop,vi=ut.isNullOrUndef;var bi=fi.extend({getRightValue:function(t){return"string"==typeof t?+t:fi.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var i=ut.sign(t.min),n=ut.sign(t.max);i<0&&n<0?t.max=0:i>0&&n>0&&(t.min=0)}var a=void 0!==e.min||void 0!==e.suggestedMin,o=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),a!==o&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this.options.ticks,i=e.stepSize,n=e.maxTicksLimit;return i?t=Math.ceil(this.max/i)-Math.floor(this.min/i)+1:(t=this._computeTickLimit(),n=n||11),n&&(t=Math.min(n,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:mi,buildTicks:function(){var t=this,e=t.options.ticks,i=t.getTickLimit(),n={maxTicks:i=Math.max(2,i),min:e.min,max:e.max,precision:e.precision,stepSize:ut.valueOrDefault(e.fixedStepSize,e.stepSize)},a=t.ticks=function(t,e){var i,n,a,o,r=[],s=t.stepSize,l=s||1,d=t.maxTicks-1,u=t.min,h=t.max,c=t.precision,f=e.min,g=e.max,p=ut.niceNum((g-f)/d/l)*l;if(p<1e-14&&vi(u)&&vi(h))return[f,g];(o=Math.ceil(g/p)-Math.floor(f/p))>d&&(p=ut.niceNum(o*p/d/l)*l),s||vi(c)?i=Math.pow(10,ut._decimalPlaces(p)):(i=Math.pow(10,c),p=Math.ceil(p*i)/i),n=Math.floor(f/p)*p,a=Math.ceil(g/p)*p,s&&(!vi(u)&&ut.almostWhole(u/p,p/1e3)&&(n=u),!vi(h)&&ut.almostWhole(h/p,p/1e3)&&(a=h)),o=(a-n)/p,o=ut.almostEquals(o,Math.round(o),p/1e3)?Math.round(o):Math.ceil(o),n=Math.round(n*i)/i,a=Math.round(a*i)/i,r.push(vi(u)?n:u);for(var m=1;m<o;++m)r.push(Math.round((n+m*p)*i)/i);return r.push(vi(h)?a:h),r}(n,t);t.handleDirectionalChanges(),t.max=ut.max(a),t.min=ut.min(a),e.reverse?(a.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var t=this;t.ticksAsNumbers=t.ticks.slice(),t.zeroLineIndex=t.ticks.indexOf(0),fi.prototype.convertTicksToLabels.call(t)}}),xi={position:"left",ticks:{callback:li.formatters.linear}},yi=bi.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,a=t.isHorizontal();function o(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null;var r=e.stacked;if(void 0===r&&ut.each(n,function(t,e){if(!r){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&o(n)&&void 0!==n.stack&&(r=!0)}}),e.stacked||r){var s={};ut.each(n,function(n,a){var r=i.getDatasetMeta(a),l=[r.type,void 0===e.stacked&&void 0===r.stack?a:"",r.stack].join(".");void 0===s[l]&&(s[l]={positiveValues:[],negativeValues:[]});var d=s[l].positiveValues,u=s[l].negativeValues;i.isDatasetVisible(a)&&o(r)&&ut.each(n.data,function(i,n){var a=+t.getRightValue(i);isNaN(a)||r.data[n].hidden||(d[n]=d[n]||0,u[n]=u[n]||0,e.relativePoints?d[n]=100:a<0?u[n]+=a:d[n]+=a)})}),ut.each(s,function(e){var i=e.positiveValues.concat(e.negativeValues),n=ut.min(i),a=ut.max(i);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?a:Math.max(t.max,a)})}else ut.each(n,function(e,n){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&o(a)&&ut.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||a.data[i].hidden||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},_computeTickLimit:function(){var t;return this.isHorizontal()?Math.ceil(this.width/40):(t=ut.options._parseFont(this.options.ticks),Math.ceil(this.height/t.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,i=e.start,n=+e.getRightValue(t),a=e.end-i;return e.isHorizontal()?e.left+e.width/a*(n-i):e.bottom-e.height/a*(n-i)},getValueForPixel:function(t){var e=this,i=e.isHorizontal(),n=i?e.width:e.height,a=(i?t-e.left:e.bottom-t)/n;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}}),ki=xi;yi._defaults=ki;var wi=ut.valueOrDefault;var Mi={position:"left",ticks:{callback:li.formatters.logarithmic}};function _i(t,e){return ut.isFinite(t)&&t>=0?t:e}var Ci=fi.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,a=t.isHorizontal();function o(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var r=e.stacked;if(void 0===r&&ut.each(n,function(t,e){if(!r){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&o(n)&&void 0!==n.stack&&(r=!0)}}),e.stacked||r){var s={};ut.each(n,function(n,a){var r=i.getDatasetMeta(a),l=[r.type,void 0===e.stacked&&void 0===r.stack?a:"",r.stack].join(".");i.isDatasetVisible(a)&&o(r)&&(void 0===s[l]&&(s[l]=[]),ut.each(n.data,function(e,i){var n=s[l],a=+t.getRightValue(e);isNaN(a)||r.data[i].hidden||a<0||(n[i]=n[i]||0,n[i]+=a)}))}),ut.each(s,function(e){if(e.length>0){var i=ut.min(e),n=ut.max(e);t.min=null===t.min?i:Math.min(t.min,i),t.max=null===t.max?n:Math.max(t.max,n)}})}else ut.each(n,function(e,n){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&o(a)&&ut.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||a.data[i].hidden||n<0||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n),0!==n&&(null===t.minNotZero||n<t.minNotZero)&&(t.minNotZero=n))})});this.handleTickRangeOptions()},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;t.min=_i(e.min,t.min),t.max=_i(e.max,t.max),t.min===t.max&&(0!==t.min&&null!==t.min?(t.min=Math.pow(10,Math.floor(ut.log10(t.min))-1),t.max=Math.pow(10,Math.floor(ut.log10(t.max))+1)):(t.min=1,t.max=10)),null===t.min&&(t.min=Math.pow(10,Math.floor(ut.log10(t.max))-1)),null===t.max&&(t.max=0!==t.min?Math.pow(10,Math.floor(ut.log10(t.min))+1):10),null===t.minNotZero&&(t.min>0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(ut.log10(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,i=!t.isHorizontal(),n={min:_i(e.min),max:_i(e.max)},a=t.ticks=function(t,e){var i,n,a=[],o=wi(t.min,Math.pow(10,Math.floor(ut.log10(e.min)))),r=Math.floor(ut.log10(e.max)),s=Math.ceil(e.max/Math.pow(10,r));0===o?(i=Math.floor(ut.log10(e.minNotZero)),n=Math.floor(e.minNotZero/Math.pow(10,i)),a.push(o),o=n*Math.pow(10,i)):(i=Math.floor(ut.log10(o)),n=Math.floor(o/Math.pow(10,i)));var l=i<0?Math.pow(10,Math.abs(i)):1;do{a.push(o),10==++n&&(n=1,l=++i>=0?1:l),o=Math.round(n*Math.pow(10,i)*l)/l}while(i<r||i===r&&n<s);var d=wi(t.max,o);return a.push(d),a}(n,t);t.max=ut.max(a),t.min=ut.min(a),e.reverse?(i=!i,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),i&&a.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),fi.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},_getFirstTickValue:function(t){var e=Math.floor(ut.log10(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},getPixelForValue:function(t){var e,i,n,a,o,r=this,s=r.options.ticks,l=s.reverse,d=ut.log10,u=r._getFirstTickValue(r.minNotZero),h=0;return t=+r.getRightValue(t),l?(n=r.end,a=r.start,o=-1):(n=r.start,a=r.end,o=1),r.isHorizontal()?(e=r.width,i=l?r.right:r.left):(e=r.height,o*=-1,i=l?r.top:r.bottom),t!==n&&(0===n&&(e-=h=wi(s.fontSize,st.global.defaultFontSize),n=u),0!==t&&(h+=e/(d(a)-d(n))*(d(t)-d(n))),i+=o*h),i},getValueForPixel:function(t){var e,i,n,a,o=this,r=o.options.ticks,s=r.reverse,l=ut.log10,d=o._getFirstTickValue(o.minNotZero);if(s?(i=o.end,n=o.start):(i=o.start,n=o.end),o.isHorizontal()?(e=o.width,a=s?o.right-t:t-o.left):(e=o.height,a=s?t-o.top:o.bottom-t),a!==i){if(0===i){var u=wi(r.fontSize,st.global.defaultFontSize);a-=u,e-=u,i=d}a*=l(n)-l(i),a/=e,a=Math.pow(10,l(i)+a)}return a}}),Si=Mi;Ci._defaults=Si;var Pi=ut.valueOrDefault,Ii=ut.valueAtIndexOrDefault,Ai=ut.options.resolve,Di={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:li.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function Ti(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function Fi(t){var e=t.ticks;return e.display&&t.display?Pi(e.fontSize,st.global.defaultFontSize)+2*e.backdropPaddingY:0}function Li(t,e,i,n,a){return t===n||t===a?{start:e-i/2,end:e+i/2}:t<n||t>a?{start:e-i,end:e}:{start:e,end:e+i}}function Ri(t){return 0===t||180===t?"center":t<180?"left":"right"}function Oi(t,e,i,n){var a,o,r=i.y+n/2;if(ut.isArray(e))for(a=0,o=e.length;a<o;++a)t.fillText(e[a],i.x,r),r+=n;else t.fillText(e,i.x,r)}function zi(t,e,i){90===t||270===t?i.y-=e.h/2:(t>270||t<90)&&(i.y-=e.h)}function Bi(t){return ut.isNumber(t)?t:0}var Ni=bi.extend({setDimensions:function(){var t=this;t.width=t.maxWidth,t.height=t.maxHeight,t.paddingTop=Fi(t.options)/2,t.xCenter=Math.floor(t.width/2),t.yCenter=Math.floor((t.height-t.paddingTop)/2),t.drawingArea=Math.min(t.height-t.paddingTop,t.width)/2},determineDataLimits:function(){var t=this,e=t.chart,i=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY;ut.each(e.data.datasets,function(a,o){if(e.isDatasetVisible(o)){var r=e.getDatasetMeta(o);ut.each(a.data,function(e,a){var o=+t.getRightValue(e);isNaN(o)||r.data[a].hidden||(i=Math.min(o,i),n=Math.max(o,n))})}}),t.min=i===Number.POSITIVE_INFINITY?0:i,t.max=n===Number.NEGATIVE_INFINITY?0:n,t.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/Fi(this.options))},convertTicksToLabels:function(){var t=this;bi.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map(t.options.pointLabels.callback,t)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t=this.options;t.display&&t.pointLabels.display?function(t){var e,i,n,a=ut.options._parseFont(t.options.pointLabels),o={l:0,r:t.width,t:0,b:t.height-t.paddingTop},r={};t.ctx.font=a.string,t._pointLabelSizes=[];var s,l,d,u=Ti(t);for(e=0;e<u;e++){n=t.getPointPosition(e,t.drawingArea+5),s=t.ctx,l=a.lineHeight,d=t.pointLabels[e]||"",i=ut.isArray(d)?{w:ut.longestText(s,s.font,d),h:d.length*l}:{w:s.measureText(d).width,h:l},t._pointLabelSizes[e]=i;var h=t.getIndexAngle(e),c=ut.toDegrees(h)%360,f=Li(c,n.x,i.w,0,180),g=Li(c,n.y,i.h,90,270);f.start<o.l&&(o.l=f.start,r.l=h),f.end>o.r&&(o.r=f.end,r.r=h),g.start<o.t&&(o.t=g.start,r.t=h),g.end>o.b&&(o.b=g.end,r.b=h)}t.setReductions(t.drawingArea,o,r)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(t,e,i){var n=this,a=e.l/Math.sin(i.l),o=Math.max(e.r-n.width,0)/Math.sin(i.r),r=-e.t/Math.cos(i.t),s=-Math.max(e.b-(n.height-n.paddingTop),0)/Math.cos(i.b);a=Bi(a),o=Bi(o),r=Bi(r),s=Bi(s),n.drawingArea=Math.min(Math.floor(t-(a+o)/2),Math.floor(t-(r+s)/2)),n.setCenterPoint(a,o,r,s)},setCenterPoint:function(t,e,i,n){var a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,s=i+a.drawingArea,l=a.height-a.paddingTop-n-a.drawingArea;a.xCenter=Math.floor((r+o)/2+a.left),a.yCenter=Math.floor((s+l)/2+a.top+a.paddingTop)},getIndexAngle:function(t){return t*(2*Math.PI/Ti(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var i=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*i:(t-e.min)*i},getPointPosition:function(t,e){var i=this.getIndexAngle(t)-Math.PI/2;return{x:Math.cos(i)*e+this.xCenter,y:Math.sin(i)*e+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,e=t.options,i=e.gridLines,n=e.ticks;if(e.display){var a=t.ctx,o=this.getIndexAngle(0),r=ut.options._parseFont(n);(e.angleLines.display||e.pointLabels.display)&&function(t){var e=t.ctx,i=t.options,n=i.angleLines,a=i.gridLines,o=i.pointLabels,r=Pi(n.lineWidth,a.lineWidth),s=Pi(n.color,a.color),l=Fi(i);e.save(),e.lineWidth=r,e.strokeStyle=s,e.setLineDash&&(e.setLineDash(Ai([n.borderDash,a.borderDash,[]])),e.lineDashOffset=Ai([n.borderDashOffset,a.borderDashOffset,0]));var d=t.getDistanceFromCenterForValue(i.ticks.reverse?t.min:t.max),u=ut.options._parseFont(o);e.font=u.string,e.textBaseline="middle";for(var h=Ti(t)-1;h>=0;h--){if(n.display&&r&&s){var c=t.getPointPosition(h,d);e.beginPath(),e.moveTo(t.xCenter,t.yCenter),e.lineTo(c.x,c.y),e.stroke()}if(o.display){var f=0===h?l/2:0,g=t.getPointPosition(h,d+f+5),p=Ii(o.fontColor,h,st.global.defaultFontColor);e.fillStyle=p;var m=t.getIndexAngle(h),v=ut.toDegrees(m);e.textAlign=Ri(v),zi(v,t._pointLabelSizes[h],g),Oi(e,t.pointLabels[h]||"",g,u.lineHeight)}}e.restore()}(t),ut.each(t.ticks,function(e,s){if(s>0||n.reverse){var l=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(i.display&&0!==s&&function(t,e,i,n){var a,o=t.ctx,r=e.circular,s=Ti(t),l=Ii(e.color,n-1),d=Ii(e.lineWidth,n-1);if((r||s)&&l&&d){if(o.save(),o.strokeStyle=l,o.lineWidth=d,o.setLineDash&&(o.setLineDash(e.borderDash||[]),o.lineDashOffset=e.borderDashOffset||0),o.beginPath(),r)o.arc(t.xCenter,t.yCenter,i,0,2*Math.PI);else{a=t.getPointPosition(0,i),o.moveTo(a.x,a.y);for(var u=1;u<s;u++)a=t.getPointPosition(u,i),o.lineTo(a.x,a.y)}o.closePath(),o.stroke(),o.restore()}}(t,i,l,s),n.display){var d=Pi(n.fontColor,st.global.defaultFontColor);if(a.font=r.string,a.save(),a.translate(t.xCenter,t.yCenter),a.rotate(o),n.showLabelBackdrop){var u=a.measureText(e).width;a.fillStyle=n.backdropColor,a.fillRect(-u/2-n.backdropPaddingX,-l-r.size/2-n.backdropPaddingY,u+2*n.backdropPaddingX,r.size+2*n.backdropPaddingY)}a.textAlign="center",a.textBaseline="middle",a.fillStyle=d,a.fillText(e,0,-l),a.restore()}}})}}}),Wi=Di;Ni._defaults=Wi;var Vi=ut.valueOrDefault,Ei=Number.MIN_SAFE_INTEGER||-9007199254740991,Hi=Number.MAX_SAFE_INTEGER||9007199254740991,ji={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},qi=Object.keys(ji);function Yi(t,e){return t-e}function Ui(t){var e,i,n,a={},o=[];for(e=0,i=t.length;e<i;++e)a[n=t[e]]||(a[n]=!0,o.push(n));return o}function Xi(t,e,i,n){var a=function(t,e,i){for(var n,a,o,r=0,s=t.length-1;r>=0&&r<=s;){if(a=t[(n=r+s>>1)-1]||null,o=t[n],!a)return{lo:null,hi:o};if(o[e]<i)r=n+1;else{if(!(a[e]>i))return{lo:a,hi:o};s=n-1}}return{lo:o,hi:null}}(t,e,i),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],r=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=r[e]-o[e],l=s?(i-o[e])/s:0,d=(r[n]-o[n])*l;return o[n]+d}function Ki(t,e){var i=t._adapter,n=t.options.time,a=n.parser,o=a||n.format,r=e;return"function"==typeof a&&(r=a(r)),ut.isFinite(r)||(r="string"==typeof o?i.parse(r,o):i.parse(r)),null!==r?+r:(a||"function"!=typeof o||(r=o(e),ut.isFinite(r)||(r=i.parse(r))),r)}function Gi(t,e){if(ut.isNullOrUndef(e))return null;var i=t.options.time,n=Ki(t,t.getRightValue(e));return null===n?n:(i.round&&(n=+t._adapter.startOf(n,i.round)),n)}function Zi(t){for(var e=qi.indexOf(t)+1,i=qi.length;e<i;++e)if(ji[qi[e]].common)return qi[e]}function $i(t,e,i,n){var a,o=t._adapter,r=t.options,s=r.time,l=s.unit||function(t,e,i,n){var a,o,r,s=qi.length;for(a=qi.indexOf(t);a<s-1;++a)if(r=(o=ji[qi[a]]).steps?o.steps[o.steps.length-1]:Hi,o.common&&Math.ceil((i-e)/(r*o.size))<=n)return qi[a];return qi[s-1]}(s.minUnit,e,i,n),d=Zi(l),u=Vi(s.stepSize,s.unitStepSize),h="week"===l&&s.isoWeekday,c=r.ticks.major.enabled,f=ji[l],g=e,p=i,m=[];for(u||(u=function(t,e,i,n){var a,o,r,s=e-t,l=ji[i],d=l.size,u=l.steps;if(!u)return Math.ceil(s/(n*d));for(a=0,o=u.length;a<o&&(r=u[a],!(Math.ceil(s/(d*r))<=n));++a);return r}(e,i,l,n)),h&&(g=+o.startOf(g,"isoWeek",h),p=+o.startOf(p,"isoWeek",h)),g=+o.startOf(g,h?"day":l),(p=+o.startOf(p,h?"day":l))<i&&(p=+o.add(p,1,l)),a=g,c&&d&&!h&&!s.round&&(a=+o.startOf(a,d),a=+o.add(a,~~((g-a)/(f.size*u))*u,l));a<p;a=+o.add(a,u,l))m.push(+a);return m.push(+a),m}var Ji=fi.extend({initialize:function(){this.mergeTicksOptions(),fi.prototype.initialize.call(this)},update:function(){var t=this.options,e=t.time||(t.time={}),i=this._adapter=new si._date(t.adapters.date);return e.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),ut.mergeIf(e.displayFormats,i.formats()),fi.prototype.update.apply(this,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),fi.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,i,n,a,o,r=this,s=r.chart,l=r._adapter,d=r.options.time,u=d.unit||"day",h=Hi,c=Ei,f=[],g=[],p=[],m=s.data.labels||[];for(t=0,i=m.length;t<i;++t)p.push(Gi(r,m[t]));for(t=0,i=(s.data.datasets||[]).length;t<i;++t)if(s.isDatasetVisible(t))if(a=s.data.datasets[t].data,ut.isObject(a[0]))for(g[t]=[],e=0,n=a.length;e<n;++e)o=Gi(r,a[e]),f.push(o),g[t][e]=o;else{for(e=0,n=p.length;e<n;++e)f.push(p[e]);g[t]=p.slice(0)}else g[t]=[];p.length&&(p=Ui(p).sort(Yi),h=Math.min(h,p[0]),c=Math.max(c,p[p.length-1])),f.length&&(f=Ui(f).sort(Yi),h=Math.min(h,f[0]),c=Math.max(c,f[f.length-1])),h=Gi(r,d.min)||h,c=Gi(r,d.max)||c,h=h===Hi?+l.startOf(Date.now(),u):h,c=c===Ei?+l.endOf(Date.now(),u)+1:c,r.min=Math.min(h,c),r.max=Math.max(h+1,c),r._horizontal=r.isHorizontal(),r._table=[],r._timestamps={data:f,datasets:g,labels:p}},buildTicks:function(){var t,e,i,n=this,a=n.min,o=n.max,r=n.options,s=r.time,l=[],d=[];switch(r.ticks.source){case"data":l=n._timestamps.data;break;case"labels":l=n._timestamps.labels;break;case"auto":default:l=$i(n,a,o,n.getLabelCapacity(a))}for("ticks"===r.bounds&&l.length&&(a=l[0],o=l[l.length-1]),a=Gi(n,s.min)||a,o=Gi(n,s.max)||o,t=0,e=l.length;t<e;++t)(i=l[t])>=a&&i<=o&&d.push(i);return n.min=a,n.max=o,n._unit=s.unit||function(t,e,i,n,a){var o,r;for(o=qi.length-1;o>=qi.indexOf(i);o--)if(r=qi[o],ji[r].common&&t._adapter.diff(a,n,r)>=e.length)return r;return qi[i?qi.indexOf(i):0]}(n,d,s.minUnit,n.min,n.max),n._majorUnit=Zi(n._unit),n._table=function(t,e,i,n){if("linear"===n||!t.length)return[{time:e,pos:0},{time:i,pos:1}];var a,o,r,s,l,d=[],u=[e];for(a=0,o=t.length;a<o;++a)(s=t[a])>e&&s<i&&u.push(s);for(u.push(i),a=0,o=u.length;a<o;++a)l=u[a+1],r=u[a-1],s=u[a],void 0!==r&&void 0!==l&&Math.round((l+r)/2)===s||d.push({time:s,pos:a/(o-1)});return d}(n._timestamps.data,a,o,r.distribution),n._offsets=function(t,e,i,n,a){var o,r,s=0,l=0;return a.offset&&e.length&&(a.time.min||(o=Xi(t,"time",e[0],"pos"),s=1===e.length?1-o:(Xi(t,"time",e[1],"pos")-o)/2),a.time.max||(r=Xi(t,"time",e[e.length-1],"pos"),l=1===e.length?r:(r-Xi(t,"time",e[e.length-2],"pos"))/2)),{start:s,end:l}}(n._table,d,0,0,r),r.ticks.reverse&&d.reverse(),function(t,e,i){var n,a,o,r,s=[];for(n=0,a=e.length;n<a;++n)o=e[n],r=!!i&&o===+t._adapter.startOf(o,i),s.push({value:o,major:r});return s}(n,d,n._majorUnit)},getLabelForIndex:function(t,e){var i=this,n=i._adapter,a=i.chart.data,o=i.options.time,r=a.labels&&t<a.labels.length?a.labels[t]:"",s=a.datasets[e].data[t];return ut.isObject(s)&&(r=i.getRightValue(s)),o.tooltipFormat?n.format(Ki(i,r),o.tooltipFormat):"string"==typeof r?r:n.format(Ki(i,r),o.displayFormats.datetime)},tickFormatFunction:function(t,e,i,n){var a=this._adapter,o=this.options,r=o.time.displayFormats,s=r[this._unit],l=this._majorUnit,d=r[l],u=+a.startOf(t,l),h=o.ticks.major,c=h.enabled&&l&&d&&t===u,f=a.format(t,n||(c?d:s)),g=c?h:o.ticks.minor,p=Vi(g.callback,g.userCallback);return p?p(f,e,i):f},convertTicksToLabels:function(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(this.tickFormatFunction(t[e].value,e,t));return n},getPixelForOffset:function(t){var e=this,i=e.options.ticks.reverse,n=e._horizontal?e.width:e.height,a=e._horizontal?i?e.right:e.left:i?e.bottom:e.top,o=Xi(e._table,"time",t,"pos"),r=n*(e._offsets.start+o)/(e._offsets.start+1+e._offsets.end);return i?a-r:a+r},getPixelForValue:function(t,e,i){var n=null;if(void 0!==e&&void 0!==i&&(n=this._timestamps.datasets[i][e]),null===n&&(n=Gi(this,t)),null!==n)return this.getPixelForOffset(n)},getPixelForTick:function(t){var e=this.getTicks();return t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,i=e._horizontal?e.width:e.height,n=e._horizontal?e.left:e.top,a=(i?(t-n)/i:0)*(e._offsets.start+1+e._offsets.start)-e._offsets.end,o=Xi(e._table,"pos",a,"time");return e._adapter._create(o)},getLabelWidth:function(t){var e=this.options.ticks,i=this.ctx.measureText(t).width,n=ut.toRadians(e.maxRotation),a=Math.cos(n),o=Math.sin(n);return i*a+Vi(e.fontSize,st.global.defaultFontSize)*o},getLabelCapacity:function(t){var e=this,i=e.options.time.displayFormats.millisecond,n=e.tickFormatFunction(t,0,[],i),a=e.getLabelWidth(n),o=e.isHorizontal()?e.width:e.height,r=Math.floor(o/a);return r>0?r:1}}),Qi={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};Ji._defaults=Qi;var tn={category:gi,linear:yi,logarithmic:Ci,radialLinear:Ni,time:Ji},en={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};si._date.override("function"==typeof t?{_id:"moment",formats:function(){return en},parse:function(e,i){return"string"==typeof e&&"string"==typeof i?e=t(e,i):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,i){return t(e).format(i)},add:function(e,i,n){return t(e).add(i,n).valueOf()},diff:function(e,i,n){return t.duration(t(e).diff(t(i))).as(n)},startOf:function(e,i,n){return e=t(e),"isoWeek"===i?e.isoWeekday(n).valueOf():e.startOf(i).valueOf()},endOf:function(e,i){return t(e).endOf(i).valueOf()},_create:function(e){return t(e)}}:{}),st._set("global",{plugins:{filler:{propagate:!0}}});var nn={dataset:function(t){var e=t.fill,i=t.chart,n=i.getDatasetMeta(e),a=n&&i.isDatasetVisible(e)&&n.dataset._children||[],o=a.length||0;return o?function(t,e){return e<o&&a[e]._view||null}:null},boundary:function(t){var e=t.boundary,i=e?e.x:null,n=e?e.y:null;return function(t){return{x:null===i?t.x:i,y:null===n?t.y:n}}}};function an(t,e,i){var n,a=t._model||{},o=a.fill;if(void 0===o&&(o=!!a.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(n=parseFloat(o,10),isFinite(n)&&Math.floor(n)===n)return"-"!==o[0]&&"+"!==o[0]||(n=e+n),!(n===e||n<0||n>=i)&&n;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function on(t){var e,i=t.el._model||{},n=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if("start"===a?o=void 0===i.scaleBottom?n.bottom:i.scaleBottom:"end"===a?o=void 0===i.scaleTop?n.top:i.scaleTop:void 0!==i.scaleZero?o=i.scaleZero:n.getBasePosition?o=n.getBasePosition():n.getBasePixel&&(o=n.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if(ut.isFinite(o))return{x:(e=n.isHorizontal())?o:null,y:e?null:o}}return null}function rn(t,e,i){var n,a=t[e].fill,o=[e];if(!i)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(n=t[a]))return!1;if(n.visible)return a;o.push(a),a=n.fill}return!1}function sn(t){var e=t.fill,i="dataset";return!1===e?null:(isFinite(e)||(i="boundary"),nn[i](t))}function ln(t){return t&&!t.skip}function dn(t,e,i,n,a){var o;if(n&&a){for(t.moveTo(e[0].x,e[0].y),o=1;o<n;++o)ut.canvas.lineTo(t,e[o-1],e[o]);for(t.lineTo(i[a-1].x,i[a-1].y),o=a-1;o>0;--o)ut.canvas.lineTo(t,i[o],i[o-1],!0)}}var un={id:"filler",afterDatasetsUpdate:function(t,e){var i,n,a,o,r=(t.data.datasets||[]).length,s=e.propagate,l=[];for(n=0;n<r;++n)o=null,(a=(i=t.getDatasetMeta(n)).dataset)&&a._model&&a instanceof Wt.Line&&(o={visible:t.isDatasetVisible(n),fill:an(a,n,r),chart:t,el:a}),i.$filler=o,l.push(o);for(n=0;n<r;++n)(o=l[n])&&(o.fill=rn(l,n,s),o.boundary=on(o),o.mapper=sn(o))},beforeDatasetDraw:function(t,e){var i=e.meta.$filler;if(i){var n=t.ctx,a=i.el,o=a._view,r=a._children||[],s=i.mapper,l=o.backgroundColor||st.global.defaultColor;s&&l&&r.length&&(ut.canvas.clipArea(n,t.chartArea),function(t,e,i,n,a,o){var r,s,l,d,u,h,c,f=e.length,g=n.spanGaps,p=[],m=[],v=0,b=0;for(t.beginPath(),r=0,s=f+!!o;r<s;++r)u=i(d=e[l=r%f]._view,l,n),h=ln(d),c=ln(u),h&&c?(v=p.push(d),b=m.push(u)):v&&b&&(g?(h&&p.push(d),c&&m.push(u)):(dn(t,p,m,v,b),v=b=0,p=[],m=[]));dn(t,p,m,v,b),t.closePath(),t.fillStyle=a,t.fill()}(n,r,s,o,l,a._loop),ut.canvas.unclipArea(n))}}},hn=ut.noop,cn=ut.valueOrDefault;function fn(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}st._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var i=e.datasetIndex,n=this.chart,a=n.getDatasetMeta(i);a.hidden=null===a.hidden?!n.data.datasets[i].hidden:null,n.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return ut.isArray(e.datasets)?e.datasets.map(function(e,i){return{text:e.label,fillStyle:ut.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(i),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:i}},this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var i=0;i<t.data.datasets.length;i++)e.push('<li><span style="background-color:'+t.data.datasets[i].backgroundColor+'"></span>'),t.data.datasets[i].label&&e.push(t.data.datasets[i].label),e.push("</li>");return e.push("</ul>"),e.join("")}});var gn=pt.extend({initialize:function(t){ut.extend(this,t),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:hn,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:hn,beforeSetDimensions:hn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:hn,beforeBuildLabels:hn,buildLabels:function(){var t=this,e=t.options.labels||{},i=ut.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(i=i.filter(function(i){return e.filter(i,t.chart.data)})),t.options.reverse&&i.reverse(),t.legendItems=i},afterBuildLabels:hn,beforeFit:hn,fit:function(){var t=this,e=t.options,i=e.labels,n=e.display,a=t.ctx,o=ut.options._parseFont(i),r=o.size,s=t.legendHitBoxes=[],l=t.minSize,d=t.isHorizontal();if(d?(l.width=t.maxWidth,l.height=n?10:0):(l.width=n?10:0,l.height=t.maxHeight),n)if(a.font=o.string,d){var u=t.lineWidths=[0],h=0;a.textAlign="left",a.textBaseline="top",ut.each(t.legendItems,function(t,e){var n=fn(i,r)+r/2+a.measureText(t.text).width;(0===e||u[u.length-1]+n+i.padding>l.width)&&(h+=r+i.padding,u[u.length-(e>0?0:1)]=i.padding),s[e]={left:0,top:0,width:n,height:r},u[u.length-1]+=n+i.padding}),l.height+=h}else{var c=i.padding,f=t.columnWidths=[],g=i.padding,p=0,m=0,v=r+c;ut.each(t.legendItems,function(t,e){var n=fn(i,r)+r/2+a.measureText(t.text).width;e>0&&m+v>l.height-c&&(g+=p+i.padding,f.push(p),p=0,m=0),p=Math.max(p,n),m+=v,s[e]={left:0,top:0,width:n,height:r}}),g+=p,f.push(p),l.width+=g}t.width=l.width,t.height=l.height},afterFit:hn,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,i=e.labels,n=st.global,a=n.defaultColor,o=n.elements.line,r=t.width,s=t.lineWidths;if(e.display){var l,d=t.ctx,u=cn(i.fontColor,n.defaultFontColor),h=ut.options._parseFont(i),c=h.size;d.textAlign="left",d.textBaseline="middle",d.lineWidth=.5,d.strokeStyle=u,d.fillStyle=u,d.font=h.string;var f=fn(i,c),g=t.legendHitBoxes,p=t.isHorizontal();l=p?{x:t.left+(r-s[0])/2+i.padding,y:t.top+i.padding,line:0}:{x:t.left+i.padding,y:t.top+i.padding,line:0};var m=c+i.padding;ut.each(t.legendItems,function(n,u){var h=d.measureText(n.text).width,v=f+c/2+h,b=l.x,x=l.y;p?u>0&&b+v+i.padding>t.left+t.minSize.width&&(x=l.y+=m,l.line++,b=l.x=t.left+(r-s[l.line])/2+i.padding):u>0&&x+m>t.top+t.minSize.height&&(b=l.x=b+t.columnWidths[l.line]+i.padding,x=l.y=t.top+i.padding,l.line++),function(t,i,n){if(!(isNaN(f)||f<=0)){d.save();var r=cn(n.lineWidth,o.borderWidth);if(d.fillStyle=cn(n.fillStyle,a),d.lineCap=cn(n.lineCap,o.borderCapStyle),d.lineDashOffset=cn(n.lineDashOffset,o.borderDashOffset),d.lineJoin=cn(n.lineJoin,o.borderJoinStyle),d.lineWidth=r,d.strokeStyle=cn(n.strokeStyle,a),d.setLineDash&&d.setLineDash(cn(n.lineDash,o.borderDash)),e.labels&&e.labels.usePointStyle){var s=f*Math.SQRT2/2,l=t+f/2,u=i+c/2;ut.canvas.drawPoint(d,n.pointStyle,s,l,u)}else 0!==r&&d.strokeRect(t,i,f,c),d.fillRect(t,i,f,c);d.restore()}}(b,x,n),g[u].left=b,g[u].top=x,function(t,e,i,n){var a=c/2,o=f+a+t,r=e+a;d.fillText(i.text,o,r),i.hidden&&(d.beginPath(),d.lineWidth=2,d.moveTo(o,r),d.lineTo(o+n,r),d.stroke())}(b,x,n,h),p?l.x+=v+i.padding:l.y+=m})}},_getLegendItemAt:function(t,e){var i,n,a,o=this;if(t>=o.left&&t<=o.right&&e>=o.top&&e<=o.bottom)for(a=o.legendHitBoxes,i=0;i<a.length;++i)if(t>=(n=a[i]).left&&t<=n.left+n.width&&e>=n.top&&e<=n.top+n.height)return o.legendItems[i];return null},handleEvent:function(t){var e,i=this,n=i.options,a="mouseup"===t.type?"click":t.type;if("mousemove"===a){if(!n.onHover&&!n.onLeave)return}else{if("click"!==a)return;if(!n.onClick)return}e=i._getLegendItemAt(t.x,t.y),"click"===a?e&&n.onClick&&n.onClick.call(i,t.native,e):(n.onLeave&&e!==i._hoveredItem&&(i._hoveredItem&&n.onLeave.call(i,t.native,i._hoveredItem),i._hoveredItem=e),n.onHover&&e&&n.onHover.call(i,t.native,e))}});function pn(t,e){var i=new gn({ctx:t.ctx,options:e,chart:t});ke.configure(t,i,e),ke.addBox(t,i),t.legend=i}var mn={id:"legend",_element:gn,beforeInit:function(t){var e=t.options.legend;e&&pn(t,e)},beforeUpdate:function(t){var e=t.options.legend,i=t.legend;e?(ut.mergeIf(e,st.global.legend),i?(ke.configure(t,i,e),i.options=e):pn(t,e)):i&&(ke.removeBox(t,i),delete t.legend)},afterEvent:function(t,e){var i=t.legend;i&&i.handleEvent(e)}},vn=ut.noop;st._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var bn=pt.extend({initialize:function(t){ut.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:vn,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:vn,beforeSetDimensions:vn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:vn,beforeBuildLabels:vn,buildLabels:vn,afterBuildLabels:vn,beforeFit:vn,fit:function(){var t=this,e=t.options,i=e.display,n=t.minSize,a=ut.isArray(e.text)?e.text.length:1,o=ut.options._parseFont(e),r=i?a*o.lineHeight+2*e.padding:0;t.isHorizontal()?(n.width=t.maxWidth,n.height=r):(n.width=r,n.height=t.maxHeight),t.width=n.width,t.height=n.height},afterFit:vn,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,i=t.options;if(i.display){var n,a,o,r=ut.options._parseFont(i),s=r.lineHeight,l=s/2+i.padding,d=0,u=t.top,h=t.left,c=t.bottom,f=t.right;e.fillStyle=ut.valueOrDefault(i.fontColor,st.global.defaultFontColor),e.font=r.string,t.isHorizontal()?(a=h+(f-h)/2,o=u+l,n=f-h):(a="left"===i.position?h+l:f-l,o=u+(c-u)/2,n=c-u,d=Math.PI*("left"===i.position?-.5:.5)),e.save(),e.translate(a,o),e.rotate(d),e.textAlign="center",e.textBaseline="middle";var g=i.text;if(ut.isArray(g))for(var p=0,m=0;m<g.length;++m)e.fillText(g[m],0,p,n),p+=s;else e.fillText(g,0,0,n);e.restore()}}});function xn(t,e){var i=new bn({ctx:t.ctx,options:e,chart:t});ke.configure(t,i,e),ke.addBox(t,i),t.titleBlock=i}var yn={},kn=un,wn=mn,Mn={id:"title",_element:bn,beforeInit:function(t){var e=t.options.title;e&&xn(t,e)},beforeUpdate:function(t){var e=t.options.title,i=t.titleBlock;e?(ut.mergeIf(e,st.global.title),i?(ke.configure(t,i,e),i.options=e):xn(t,e)):i&&(ke.removeBox(t,i),delete t.titleBlock)}};for(var _n in yn.filler=kn,yn.legend=wn,yn.title=Mn,ai.helpers=ut,function(){function t(t,e,i){var n;return"string"==typeof t?(n=parseInt(t,10),-1!==t.indexOf("%")&&(n=n/100*e.parentNode[i])):n=t,n}function e(t){return null!=t&&"none"!==t}function i(i,n,a){var o=document.defaultView,r=ut._getParentNode(i),s=o.getComputedStyle(i)[n],l=o.getComputedStyle(r)[n],d=e(s),u=e(l),h=Number.POSITIVE_INFINITY;return d||u?Math.min(d?t(s,i,a):h,u?t(l,r,a):h):"none"}ut.where=function(t,e){if(ut.isArray(t)&&Array.prototype.filter)return t.filter(e);var i=[];return ut.each(t,function(t){e(t)&&i.push(t)}),i},ut.findIndex=Array.prototype.findIndex?function(t,e,i){return t.findIndex(e,i)}:function(t,e,i){i=void 0===i?t:i;for(var n=0,a=t.length;n<a;++n)if(e.call(i,t[n],n,t))return n;return-1},ut.findNextWhere=function(t,e,i){ut.isNullOrUndef(i)&&(i=-1);for(var n=i+1;n<t.length;n++){var a=t[n];if(e(a))return a}},ut.findPreviousWhere=function(t,e,i){ut.isNullOrUndef(i)&&(i=t.length);for(var n=i-1;n>=0;n--){var a=t[n];if(e(a))return a}},ut.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},ut.almostEquals=function(t,e,i){return Math.abs(t-e)<i},ut.almostWhole=function(t,e){var i=Math.round(t);return i-e<t&&i+e>t},ut.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},ut.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},ut.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},ut.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,i=Math.round(e);return t===Math.pow(10,i)?i:e},ut.toRadians=function(t){return t*(Math.PI/180)},ut.toDegrees=function(t){return t*(180/Math.PI)},ut._decimalPlaces=function(t){if(ut.isFinite(t)){for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}},ut.getAngleFromPoint=function(t,e){var i=e.x-t.x,n=e.y-t.y,a=Math.sqrt(i*i+n*n),o=Math.atan2(n,i);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},ut.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},ut.aliasPixel=function(t){return t%2==0?0:.5},ut._alignPixel=function(t,e,i){var n=t.currentDevicePixelRatio,a=i/2;return Math.round((e-a)*n)/n+a},ut.splineCurve=function(t,e,i,n){var a=t.skip?e:t,o=e,r=i.skip?e:i,s=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),l=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),d=s/(s+l),u=l/(s+l),h=n*(d=isNaN(d)?0:d),c=n*(u=isNaN(u)?0:u);return{previous:{x:o.x-h*(r.x-a.x),y:o.y-h*(r.y-a.y)},next:{x:o.x+c*(r.x-a.x),y:o.y+c*(r.y-a.y)}}},ut.EPSILON=Number.EPSILON||1e-14,ut.splineCurveMonotone=function(t){var e,i,n,a,o,r,s,l,d,u=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),h=u.length;for(e=0;e<h;++e)if(!(n=u[e]).model.skip){if(i=e>0?u[e-1]:null,(a=e<h-1?u[e+1]:null)&&!a.model.skip){var c=a.model.x-n.model.x;n.deltaK=0!==c?(a.model.y-n.model.y)/c:0}!i||i.model.skip?n.mK=n.deltaK:!a||a.model.skip?n.mK=i.deltaK:this.sign(i.deltaK)!==this.sign(n.deltaK)?n.mK=0:n.mK=(i.deltaK+n.deltaK)/2}for(e=0;e<h-1;++e)n=u[e],a=u[e+1],n.model.skip||a.model.skip||(ut.almostEquals(n.deltaK,0,this.EPSILON)?n.mK=a.mK=0:(o=n.mK/n.deltaK,r=a.mK/n.deltaK,(l=Math.pow(o,2)+Math.pow(r,2))<=9||(s=3/Math.sqrt(l),n.mK=o*s*n.deltaK,a.mK=r*s*n.deltaK)));for(e=0;e<h;++e)(n=u[e]).model.skip||(i=e>0?u[e-1]:null,a=e<h-1?u[e+1]:null,i&&!i.model.skip&&(d=(n.model.x-i.model.x)/3,n.model.controlPointPreviousX=n.model.x-d,n.model.controlPointPreviousY=n.model.y-d*n.mK),a&&!a.model.skip&&(d=(a.model.x-n.model.x)/3,n.model.controlPointNextX=n.model.x+d,n.model.controlPointNextY=n.model.y+d*n.mK))},ut.nextItem=function(t,e,i){return i?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},ut.previousItem=function(t,e,i){return i?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},ut.niceNum=function(t,e){var i=Math.floor(ut.log10(t)),n=t/Math.pow(10,i);return(e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*Math.pow(10,i)},ut.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},ut.getRelativePosition=function(t,e){var i,n,a=t.originalEvent||t,o=t.target||t.srcElement,r=o.getBoundingClientRect(),s=a.touches;s&&s.length>0?(i=s[0].clientX,n=s[0].clientY):(i=a.clientX,n=a.clientY);var l=parseFloat(ut.getStyle(o,"padding-left")),d=parseFloat(ut.getStyle(o,"padding-top")),u=parseFloat(ut.getStyle(o,"padding-right")),h=parseFloat(ut.getStyle(o,"padding-bottom")),c=r.right-r.left-l-u,f=r.bottom-r.top-d-h;return{x:i=Math.round((i-r.left-l)/c*o.width/e.currentDevicePixelRatio),y:n=Math.round((n-r.top-d)/f*o.height/e.currentDevicePixelRatio)}},ut.getConstraintWidth=function(t){return i(t,"max-width","clientWidth")},ut.getConstraintHeight=function(t){return i(t,"max-height","clientHeight")},ut._calculatePadding=function(t,e,i){return(e=ut.getStyle(t,e)).indexOf("%")>-1?i*parseInt(e,10)/100:parseInt(e,10)},ut._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},ut.getMaximumWidth=function(t){var e=ut._getParentNode(t);if(!e)return t.clientWidth;var i=e.clientWidth,n=i-ut._calculatePadding(e,"padding-left",i)-ut._calculatePadding(e,"padding-right",i),a=ut.getConstraintWidth(t);return isNaN(a)?n:Math.min(n,a)},ut.getMaximumHeight=function(t){var e=ut._getParentNode(t);if(!e)return t.clientHeight;var i=e.clientHeight,n=i-ut._calculatePadding(e,"padding-top",i)-ut._calculatePadding(e,"padding-bottom",i),a=ut.getConstraintHeight(t);return isNaN(a)?n:Math.min(n,a)},ut.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},ut.retinaScale=function(t,e){var i=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==i){var n=t.canvas,a=t.height,o=t.width;n.height=a*i,n.width=o*i,t.ctx.scale(i,i),n.style.height||n.style.width||(n.style.height=a+"px",n.style.width=o+"px")}},ut.fontString=function(t,e,i){return e+" "+t+"px "+i},ut.longestText=function(t,e,i,n){var a=(n=n||{}).data=n.data||{},o=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(a=n.data={},o=n.garbageCollect=[],n.font=e),t.font=e;var r=0;ut.each(i,function(e){null!=e&&!0!==ut.isArray(e)?r=ut.measureText(t,a,o,r,e):ut.isArray(e)&&ut.each(e,function(e){null==e||ut.isArray(e)||(r=ut.measureText(t,a,o,r,e))})});var s=o.length/2;if(s>i.length){for(var l=0;l<s;l++)delete a[o[l]];o.splice(0,s)}return r},ut.measureText=function(t,e,i,n,a){var o=e[a];return o||(o=e[a]=t.measureText(a).width,i.push(a)),o>n&&(n=o),n},ut.numberOfLabelLines=function(t){var e=1;return ut.each(t,function(t){ut.isArray(t)&&t.length>e&&(e=t.length)}),e},ut.color=X?function(t){return t instanceof CanvasGradient&&(t=st.global.defaultColor),X(t)}:function(t){return console.error("Color.js not found!"),t},ut.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:ut.color(t).saturate(.5).darken(.1).rgbString()}}(),ai._adapters=si,ai.Animation=vt,ai.animationService=bt,ai.controllers=ue,ai.DatasetController=Mt,ai.defaults=st,ai.Element=pt,ai.elements=Wt,ai.Interaction=ve,ai.layouts=ke,ai.platform=Ve,ai.plugins=Ee,ai.Scale=fi,ai.scaleService=He,ai.Ticks=li,ai.Tooltip=Je,ai.helpers.each(tn,function(t,e){ai.scaleService.registerScaleType(e,t,t._defaults)}),yn)yn.hasOwnProperty(_n)&&ai.plugins.register(yn[_n]);ai.platform.initialize();var Cn=ai;return"undefined"!=typeof window&&(window.Chart=ai),ai.Chart=ai,ai.Legend=yn.legend._element,ai.Title=yn.title._element,ai.pluginService=ai.plugins,ai.PluginBase=ai.Element.extend({}),ai.canvasHelpers=ai.helpers.canvas,ai.layoutService=ai.layouts,ai.LinearScaleBase=bi,ai.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],function(t){ai[t]=function(e,i){return new ai(e,ai.helpers.merge(i||{},{type:t.charAt(0).toLowerCase()+t.slice(1)}))}}),Cn}); /* PAGELAYER http://pagelayer.com/ (c) Pagelayer Team */ // Things to do on document load jQuery(document).ready(function(){ jQuery('.pagelayer-slides').each(function(){ pagelayer_pl_slides(jQuery(this)); }); jQuery('.pagelayer-featured_img').each(function(){ pagelayer_pl_image(jQuery(this)); }); jQuery('.pagelayer-wp_posts_slider').each(function(){ pagelayer_wp_posts_slider(jQuery(this)); }); jQuery('.pagelayer-review_slider').each(function(){ pagelayer_reviews_slider(jQuery(this)); }); // Facebook Apps if(jQuery('[pagelayer-facebook-load]')){ pagelayer_fb_apps(jQuery(this)); } // For Pagelayer Pro jQuery('.pagelayer-image_hotspot').each(function(){ pagelayer_image_hotspot(jQuery(this)); }); jQuery('.pagelayer-chart').each(function(){ pagelayer_chart(jQuery(this)); }); jQuery('.pagelayer-table').each(function(){ pagelayer_table(jQuery(this)); }); jQuery('.pagelayer-audio').each(function(){ pagelayer_audio(jQuery(this)); }); jQuery('.pagelayer-post_folio').each(function(){ pagelayer_post_folio(jQuery(this)); }); jQuery('.pagelayer-search').each(function(){ pagelayer_search_form(jQuery(this)); }); jQuery('.pagelayer-sitemap').each(function(){ pagelayer_sitemap_add_attributes(jQuery(this)); }); jQuery('.pagelayer-posts').each(function(){ var is_slider = jQuery(this).find('.pagelayer-posts-container').data('enable_slider'); if(is_slider){ pagelayer_pl_posts(jQuery(this)); } }); jQuery('.pagelayer-video_slider').each(function(){ pagelayer_pl_video_slider(jQuery(this)); }); jQuery('.pagelayer-woo_menu_cart').each(function(){ pagelayer_woo_menu_cart(jQuery(this)); }); jQuery('.pagelayer-popup-modal').each(function(){ pagelayer_popup_setup(jQuery(this)); }); jQuery('.pagelayer-sticky-ele').each(function(){ pagelayer_ele_sticky_handler(jQuery(this)); }); jQuery('.pagelayer-scrolling-effects').each(function(){ pagelayer_scrolling_effects(jQuery(this)); }); jQuery('.pagelayer-mouse-effects').each(function(){ pagelayer_mouse_effects(jQuery(this)); }); jQuery('.pagelayer-img_portfolio').each(function(){ pagelayer_pl_img_portfolio(jQuery(this)); }); jQuery('.pagelayer-single_img').each(function(){ pagelayer_pl_image(jQuery(this)); }); jQuery('.pagelayer-splash-container').each(function(){ pagelayer_pl_splash_screen(jQuery(this)); }); jQuery('.pagelayer-fb-page-container, .pagelayer-fb-embed-container').each(function(){ pagelayer_fb_width(jQuery(this)); }); jQuery('.pagelayer-before_after').each(function(){ pagelayer_before_after_slider(jQuery(this)); }); jQuery('.pagelayer-image_map').each(function(){ pagelayer_pl_image_map(jQuery(this)); // Make image map editable if(!pagelayer_empty(pagelayer_is_live)){ pagelayer_imgmap_handler(jQuery(this)); } }); }); jQuery(window).resize(function(){ jQuery('.pagelayer-scrolling-effects').each(function(){ pagelayer_scrolling_effects(jQuery(this)); }); }); // Add all shuffle instance in this object var shuffleInstance = {}; // Portfolio Gallery function pagelayer_pl_img_portfolio(jEle){ var id = jEle.attr('pagelayer-id'); var arr = []; // Fetch all categories in array jEle.find('[port-cat]').each(function(){ var cat = jQuery(this).attr('port-cat'); if(cat){ //var sel = jQuery(this).parent('.pagelayer-ele-wrap') ? jQuery(this).parent('.pagelayer-ele-wrap') : jQuery(this); jQuery(this).attr('data-groups','["'+cat+'"]'); if(!arr.includes(cat)){ arr.push(cat); } } }) // Create category button html var html = '<button class="pagelayer-pfbtn" data-pgl_pfbtn="all">All</button>'; arr.forEach(function(val){ if(val && val != 'all'){ html += '<button class="pagelayer-pfbtn" data-pgl_pfbtn="'+val+'">'+val+'</button>'; } }); // Append category buttons to holder jEle.find('.pagelayer-category-holder').empty().append(html); var setup = jEle.attr('pagelayer-setup'); // Already setup ? then distroy shuffle if(setup && setup.length > 0 && !pagelayer_empty(shuffleInstance[id])){ shuffleInstance[id].destroy(); } // Create an shuffle instance var Shuffle = window.Shuffle; var element = jEle.find('.pagelayer-img_portfolio-holder'); var sizer = jEle.find('.pagelayer-img_portfolio-holder'); shuffleInstance[id] = new Shuffle(element,{ itemSelector: '.pagelayer-img_portfolio-holder>div', //sizer: sizer // could also be a selector: '.my-sizer-element' }); // set click events on category buttons if(!window.location.href.includes('pagelayer-live=1')){ jEle.find('button').on("click", function(){ shuffleInstance[id].filter(jQuery(this).attr('data-pgl_pfbtn')); }); } // Set that we have setup everything jEle.attr('pagelayer-setup', 1); } // Reset Scrolling effects function pagelayer_reset_scrolling(jEle, parentEle){ if(jEle.length < 1){ return; } var style = jEle.get(0).style; style.setProperty("--transY", 0 +"px"); style.setProperty("--transX", 0 +"px"); style.setProperty("--rot", 0 +"deg"); jEle.css({"transform":"" , "opacity":"1" , "filter":"none"}); parentEle.off('scroll.'+jEle.attr('pagelayer-id')); } // Handle the scrolling effects function pagelayer_scrolling_effects(jEle, parentEle){ parentEle = parentEle || jQuery(pagelayerGetDocumentElement()); var win = pagelayerGetCurrentWindow(); pagelayer_reset_scrolling(jEle, parentEle); // Is this element to be scrolled on this Screen Size ? var screens = jEle.attr('ele_motion_effect_on'); if(pagelayer_empty(screens) || screens.search(pagelayer_get_media_mode()) == -1){ return; } var style = jEle.get(0).style; var totalProperty = ''; var documentHeight = parentEle.height(); var screenMiddle = documentHeight/2; var eMid = documentHeight/2;// By default motion_area-entire_page if(jEle.attr('motion_area') == 'viewport'){ jEle.css('top', '0px'); // For viewPort in Gutenberg if (parentEle.hasClass('interface-interface-skeleton__content')) { var scrollTopOfDiv = parentEle.scrollTop(); var offsetFromTopOfDiv = jEle.parent().offset().top - parentEle.offset().top + scrollTopOfDiv; eMid = offsetFromTopOfDiv + jEle.parent().height() / 2; }else{ eMid = jEle.parent().offset().top + jEle.parent().height() / 2; } screenMiddle = jQuery(win).height() / 2; } var screenHeightPercent = screenMiddle/100; // Vertical Scroll if(jEle.attr('ele_vertical_scroll')){ if(jEle.attr('motion_area')=='entire_page'){ jEle.offset({top:(documentHeight/2)}); } totalProperty += "translateY(var(--transY))"; var vertical_top = Math.ceil(jEle.attr('ele_v_sc_top_viewport')*(screenHeightPercent)); var vertical_bottom = -Math.ceil(jEle.attr('ele_v_sc_bottom_viewport')*(screenHeightPercent)); } // Horizontal scroll if(jEle.attr('ele_horizontal_scroll')){ totalProperty += "translateX(var(--transX))"; var screenWidthPercent = jQuery(win).width()/200; var horizontal_right = (Math.ceil(jEle.attr('ele_h_sc_right_viewport')*(screenWidthPercent))); var horizontal_left = -(Math.ceil(jEle.attr('ele_h_sc_left_viewport')*(screenWidthPercent))); } // Transparency if(jEle.attr('ele_transparency')){ var fadingLevel = 1-jEle.attr('ele_transp_level')/10; var transparency_top = Math.ceil(jEle.attr('ele_transp_top_viewport')*(screenHeightPercent)); var transparency_bottom = Math.ceil(jEle.attr('ele_transp_bottom_viewport')*(screenHeightPercent)); } // Blur if(jEle.attr('ele_blur')){ var blurringLevel = jEle.attr('ele_blur_level'); var blur_top = Math.ceil(jEle.attr('ele_blur_top_viewport')*(screenHeightPercent)); var blur_bottom = Math.ceil(jEle.attr('ele_blur_bottom_viewport')*(screenHeightPercent)); } // Rotate if(jEle.attr('ele_rotate')){ totalProperty += "rotate(var(--rot))"; var rotate_top = Math.ceil(jEle.attr('ele_rot_top_viewport')*(screenHeightPercent)); var rotate_bottom = -Math.ceil(jEle.attr('ele_rot_bottom_viewport')*(screenHeightPercent)); } // Scale if(jEle.attr('ele_scale')){ var childScale = jEle.children("div"); var scalingLevel = jEle.attr('ele_scl_level'); var scale_top = Math.ceil(jEle.attr('ele_scl_top_viewport')*(screenHeightPercent)); var scale_bottom = Math.ceil(jEle.attr('ele_scl_bottom_viewport')*(screenHeightPercent)); } if(totalProperty != ''){ jEle.css('transform', totalProperty); } // On Scroll calc and set parentEle.on('scroll.'+jEle.attr('pagelayer-id'), function(){ var vpMid = parentEle.scrollTop() + jQuery(win).height()/2; if(jEle.attr('ele_vertical_scroll')){ var preCalc = ((eMid-vpMid)/10)*(jEle.attr('ele_v_sc_speed')); if(jEle.attr('ele_v_sc_direction') == 'opposite'){ if(-preCalc<=vertical_top && -preCalc>vertical_bottom){ style.setProperty("--transY", preCalc +"px"); } }else if(jEle.attr('ele_v_sc_direction') == 'similar'){ if(preCalc<=vertical_top && preCalc>vertical_bottom){ style.setProperty("--transY", -preCalc +"px"); } } } if(jEle.attr('ele_horizontal_scroll')){ var preCalc = (eMid-vpMid)*(jEle.attr('ele_h_sc_speed')/2); if(jEle.attr('ele_h_sc_direction')=='toleft'){ if(preCalc<=horizontal_right && preCalc>horizontal_left) style.setProperty("--transX", preCalc +"px"); }else if(jEle.attr('ele_h_sc_direction')=='toright'){ if(-preCalc<=horizontal_right && -preCalc>horizontal_left) style.setProperty("--transX", -preCalc +"px"); } } if(jEle.attr('ele_transparency')){ var preCalc = (vpMid)-eMid; if(preCalc>(-transparency_bottom) && preCalc<=transparency_top){ var eMidB = eMid-transparency_bottom; var eMidT = eMid+transparency_top; var eMidTB = eMidT-eMidB; if(jEle.attr('ele_transp_type')=='fadein'){ var fadeIn = ((vpMid-eMidB)/eMidTB)+fadingLevel; jEle.css("opacity",fadeIn); }else if(jEle.attr('ele_transp_type')=='fadeout'){ var fadeOut = ((eMidT-vpMid)/eMidTB)+fadingLevel; jEle.css("opacity",fadeOut); }else if(jEle.attr('ele_transp_type')=='fadeinout'){ var fadeInOut1 = ((vpMid-eMidB)/(eMidTB/2))+fadingLevel; var fadeInOut2 = ((eMidT-vpMid)/(eMidTB/2))+fadingLevel; if(fadeInOut1<1+fadingLevel && fadeInOut1>0+fadingLevel){ jEle.css("opacity",fadeInOut1); }else if(fadeInOut2<1+fadingLevel && fadeInOut2>0+fadingLevel){ jEle.css("opacity",fadeInOut2); } }else if(jEle.attr('ele_transp_type')=='fadeoutin'){ var fadeOutIn1 = (((vpMid-eMidB)/(eMidTB/2)-1))+fadingLevel; var fadeOutIn2 = (((eMidT-vpMid)/(eMidTB/2)-1))+fadingLevel; if(fadeOutIn2<1+fadingLevel && fadeOutIn2>0+fadingLevel){ jEle.css("opacity",fadeOutIn2); }else if(fadeOutIn1<1+fadingLevel && fadeOutIn1>0+fadingLevel){ jEle.css("opacity",fadeOutIn1); } } } } if(jEle.attr('ele_blur')){ var preCalc = vpMid-eMid; if(preCalc>-(blur_bottom) && preCalc<=blur_top){ var eMidB = eMid-blur_bottom; var eMidT = eMid+blur_top; var eMidTB = eMidT-eMidB; if(jEle.attr('ele_blur_type')=='blurin'){ var blurIn = ((eMidT-vpMid)/eMidTB)*blurringLevel; jEle.css("filter","blur("+blurIn+"px)"); }else if(jEle.attr('ele_blur_type')=='blurout'){ var blurOut = ((vpMid-eMidB)/eMidTB)*blurringLevel; jEle.css("filter","blur("+blurOut+"px)"); }else if(jEle.attr('ele_blur_type')=='blurinout'){ var blurInOut1 = (vpMid-eMidB)/(eMidTB/2)*blurringLevel; var blurInOut2 = (eMidT-vpMid)/(eMidTB/2)*blurringLevel; if(blurInOut1<1*blurringLevel && blurInOut1>0.01*blurringLevel){ jEle.css("filter","blur("+blurInOut1+"px)"); }else if(blurInOut2<1*blurringLevel && blurInOut2>0.01*blurringLevel){ jEle.css("filter","blur("+blurInOut2+"px)"); } }else if(jEle.attr('ele_blur_type')=='bluroutin'){ var blurOutIn1 = ((vpMid-eMidB)/(eMidTB/2)-1)*blurringLevel; var blurOutIn2 = ((eMidT-vpMid)/(eMidTB/2)-1)*blurringLevel; if(blurOutIn2<1*blurringLevel && blurOutIn2>0.01*blurringLevel){ jEle.css("filter","blur("+blurOutIn2+"px)"); }else if(blurOutIn1<1*blurringLevel && blurOutIn1>0.01*blurringLevel){ jEle.css("filter","blur("+blurOutIn1+"px)"); } } } } if(jEle.attr('ele_rotate')){ var preCalc = ((vpMid-eMid)/2); var rotSpeed = jEle.attr('ele_rot_speed')/2; if(jEle.attr('ele_rot_direction')=='clockwise'){ if(preCalc<=rotate_top && preCalc>rotate_bottom){ style.setProperty("--rot", preCalc*rotSpeed +"deg"); } }else if(jEle.attr('ele_rot_direction')=='anticlockwise'){ if(preCalc<=rotate_top && preCalc>rotate_bottom){ style.setProperty("--rot", -preCalc*rotSpeed +"deg"); } } } if(jEle.attr('ele_scale')){ var preCalc = vpMid-eMid; if(preCalc>-(scale_bottom) && preCalc<=scale_top){ var eMidB = eMid-scale_bottom; var eMidT = eMid+scale_top; var eMidTB = eMidT-eMidB; if(jEle.attr('ele_scl_direction')=='scaleup'){ var scaleUp = ((vpMid-eMidB)/eMidTB)*scalingLevel+1; childScale.css("transform","scale("+ scaleUp +")"); }else if(jEle.attr('ele_scl_direction')=='scaledown'){ var scaleDown = ((eMidT-vpMid)/eMidTB)*scalingLevel+1; childScale.css("transform","scale("+ scaleDown +")"); }else if(jEle.attr('ele_scl_direction')=='scaleupdown'){ var scaleUpDown2 = (vpMid-eMidB)/(eMidTB/2)*scalingLevel+1; var scaleUpDown1 = (eMidT-vpMid)/(eMidTB/2)*scalingLevel+1; if(scaleUpDown1<1*scalingLevel && scaleUpDown1>0.1*scalingLevel){ childScale.css("transform","scale("+ scaleUpDown1 +")"); }else if(scaleUpDown2<1*scalingLevel && scaleUpDown2>0.1*scalingLevel){ childScale.css("transform","scale("+ scaleUpDown2 +")"); } }else if(jEle.attr('ele_scl_direction')=='scaledownup'){ var scaleDownUp1 = ((vpMid-eMidB)/(eMidTB/2)-1)*scalingLevel+1; var scaleDownUp2 = ((eMidT-vpMid)/(eMidTB/2)-1)*scalingLevel+1; if(scaleDownUp1<1*scalingLevel && scaleDownUp1>0.1*scalingLevel){ childScale.css("transform","scale("+ scaleDownUp1 +")"); }else if(scaleDownUp2<1*scalingLevel && scaleDownUp2>0.1*scalingLevel){ childScale.css("transform","scale("+ scaleDownUp2 +")"); } } } } }); }; function pagelayer_mouse_reset(jEle){ var win = pagelayerGetCurrentWindow(); jEle.css("transform", ""); var style = jEle.get(0).style; style.setProperty("--transY", 0 +"px"); style.setProperty("--transX", 0 +"px"); style.setProperty("--rotX", 0 +"deg"); style.setProperty("--rotY", 0 +"deg"); jQuery(win).off('mousemove.'+jEle.attr('pagelayer-id')); } // Mouse Effects setup function pagelayer_mouse_effects(jEle){ pagelayer_mouse_reset(jEle); var style = jEle.get(0).style; var mouseproperty = ''; var halfWidth = jEle.parent().offset().left+jEle.parent().width()/2; var halfHeight = jEle.parent().offset().top+jEle.parent().height()/2; if(jEle.attr('ele_m_track')){ mouseproperty += 'translateX(var(--transX)) translateY(var(--transY))'; var mouseLevel = jEle.attr('ele_m_tr_level'); } if(jEle.attr('ele_3d_tilt')){ mouseproperty += ' rotateX(var(--rotX)) rotateY(var(--rotY))'; jEle.parent().css("perspective", "1200px"); var tiltLevel = jEle.attr('ele_3d_tilt_level'); } if(mouseproperty != ''){ jEle.css("transform", mouseproperty); } var win = pagelayerGetCurrentWindow(); jQuery(win).bind('mousemove.'+jEle.attr('pagelayer-id'), function(event){ if(jEle.attr('ele_m_track')){ if(jEle.attr('ele_m_tr_direction') == 'opposite'){ var x =((event.pageX - halfWidth)*mouseLevel)/10; var y =((event.pageY - halfHeight)*mouseLevel)/10; style.setProperty("--transX",-x +"px"); style.setProperty("--transY",-y +"px"); //console.log(halfWidth +" "+ mouseLevel); }else if(jEle.attr('ele_m_tr_direction') == 'same'){ var x =((event.pageX - halfWidth)*mouseLevel)/10; var y = ((event.pageY-halfHeight)*mouseLevel)/10; style.setProperty("--transX",x +"px"); style.setProperty("--transY",y +"px"); } } if(jEle.attr('ele_3d_tilt')){ if(jEle.attr('ele_3d_tilt_direction')=='opposite'){ var x=((event.pageX - halfWidth)*tiltLevel)/100; var y=((event.pageY - halfHeight)*tiltLevel)/100; style.setProperty("--rotX", y +"deg"); style.setProperty("--rotY",-x + "deg"); }else if(jEle.attr('ele_3d_tilt_direction')=='same'){ var x=((event.pageX - halfWidth)*tiltLevel)/100; var y=((event.pageY - halfHeight)*tiltLevel)/100; style.setProperty("--rotX",-y + "deg"); style.setProperty("--rotY",x +"deg"); } } }); } // Element sticky handler function pagelayer_ele_sticky_handler(jEle, parentEle){ // Set element stickied if(jEle.attr('pagelayer-stickied-ele') == 1){ return; } parentEle = parentEle || jQuery(window); jEle.attr('pagelayer-stickied-ele', 1); var jEleTop = jEle.offset().top; var jEleW = jEle[0].clientWidth +'px'; var oldstyle = jEle.attr('style') || ''; var pagelayer_sticky = function(){ var position = jEle.attr('data-sticky-position') || ''; var offset = jEle.attr('data-sticky-offset') || 0; var sticky_in_col = jEle.attr('data-sticky_in_col') || ''; var sticky_on = jEle.attr('data-sticky-on') || ''; sticky_on = sticky_on.split(','); // If match the media var do_sticky = false; for(var x in sticky_on){ if(pagelayer_get_media_mode() == sticky_on[x]){ do_sticky = true; } } // If there is a wrapper var wrapper = jEle.parent('.pagelayer-ele-wrap'); if(wrapper.length > 0 ){ // Reset jEle jEle.next('.pagelayer-sticky-space-holder').remove(); jEle.attr('style', oldstyle); // Get wrapper old syle oldstyle = wrapper.attr('oldstyle') || ''; if(pagelayer_empty(oldstyle)){ oldstyle = wrapper.attr('style') || '1'; wrapper.attr('oldstyle', oldstyle); }else if(oldstyle == '1'){ oldstyle = ''; } }else{ wrapper = jEle; } var parentHeight = parentEle.height(); var parentScrollTop = parentEle.scrollTop(); var topToCheck = jEleTop - parentScrollTop; // Do fixed the element var pagelayer_fixed = function(){ var opp_position = (position == 'top') ? 'bottom' : 'top'; var fixed_css = {'position': 'fixed', 'width': jEleW, 'max-width': jEleW, [position] : offset +'px', [opp_position]: 'auto','z-index' : '99'} // For the sticky in columns if(!pagelayer_empty(sticky_in_col)){ //fixed_css['position'] = 'sticky'; var container = wrapper.parent(); var containerTop = container.offset().top; if((containerTop + container.height()) - parentScrollTop <= wrapper.outerHeight(true) + offset || containerTop - parentScrollTop >= parentHeight - wrapper.outerHeight(true) - offset){ fixed_css['position'] = 'absolute'; fixed_css[opp_position] = '0px'; fixed_css[position] = 'auto'; } } // Add position holder element if(wrapper.next('.pagelayer-sticky-space-holder').length < 1 ){ var clone = wrapper.clone(true); clone.addClass('pagelayer-sticky-space-holder'); clone.css({'visibility' : 'hidden', 'transition': 'none 0s ease 0s', 'animation': '0s ease 0s 1 normal none running none'}); // Remove pagelayer-parent attributes to avoid group children list double if(!pagelayer_empty(pagelayer_is_live)){ clone.removeClass('pagelayer-ele-wrap'); clone.removeClass('pagelayer-ele'); clone.find('.pagelayer-ele').removeClass('pagelayer-ele'); clone.find('[pagelayer-id]').removeAttr('pagelayer-id'); } // Add wrapper.after(clone); //wrapper.after('<div class="pagelayer-sticky-space-holder" style="width:'+wrapper.outerWidth(true)+'px;height:'+wrapper.outerHeight(true)+'px;visibility:hidden;margin:0px;"></div>'); } // Css for fixed the element wrapper.css(fixed_css); } // TODO: manage margin var mTopEle = parseFloat(wrapper.css('margin-top')); var mBottomEle = parseFloat(wrapper.css('margin-bottom')); // Fixed on top if( position == 'top' && (topToCheck <= offset+mTopEle && do_sticky) ){ pagelayer_fixed(); // Fixed on bottom }else if( position == 'bottom' && topToCheck + wrapper.outerHeight()+mBottomEle >= parentHeight - offset && do_sticky) { pagelayer_fixed(); // Set old style }else{ wrapper.attr('style', oldstyle); wrapper.next('.pagelayer-sticky-space-holder').remove(); jEleW = wrapper[0].clientWidth +'px'; jEleTop = wrapper.offset().top; } return true; }; // Run for the first time pagelayer_sticky(); // On window scroll parentEle.scroll(pagelayer_sticky); parentEle.resize(pagelayer_sticky); } function pagelayer_pl_posts(jEle){ var ul = jEle.find('.pagelayer-posts-container'); ul.addClass('pagelayer-owl-carousel pagelayer-owl-theme'); // Build the options var options = pagelayer_fetch_dataAttrs(ul, 'data-owl-'); // Already setup ? var setup = jEle.attr('pagelayer-setup'); // If already setup then Destroy Owl if(setup && setup.length > 0){ ul.pagelayerOwlCarousel('destroy'); ul.find('[class^="pagelayer-owl-"]').remove(); } //console.log(options); ul.pagelayerOwlCarousel(options); // Set that we have setup everything jEle.attr('pagelayer-setup', 1); } function pagelayer_pl_slides(jEle){ var ul = jEle.find('.pagelayer-slides-holder'); // Build the options var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-'); var blurNav = false; if(pagelayer_is_live){ if(!options.nav && !options.dots) { options.nav = true; options.dots = true; blurNav = true; } options.mouseDrag = false; } pagelayer_owl_init(jEle, ul, options); if(blurNav){ ul.find('.pagelayer-owl-nav button').css({'filter': 'blur(2px)'}); ul.find('.pagelayer-owl-dot').css({'filter': 'blur(2px)'}); } // Shows element animations after slide change ul.on('refresh.owl.carousel translate.owl.carousel', function(e) { var slide = jQuery(this); if(!pagelayer_is_live) { slide.find('.pagelayer-wow').addClass('animated'); return; } slide.find('.pagelayer-ele').each(function() { var ele = jQuery(this); if(ele.css('animation-name') == 'none') { return; } ele.addClass('pagelayer-wow animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ ele.removeClass('pagelayer-wow animated'); }); }); }); } // For Pagelayer Pro // Show tooltip in image hotspot function pagelayer_image_hotspot(jEle){ // Drag and Drop function for image if (typeof pagelayer_preDAndD_image !== "undefined") { pagelayer_preDAndD_image(jEle); } var tooltip_click = jEle.find('.pagelayer-icon-holder'); var icon_holder = jEle.find('.pagelayer-hotspots-icon-holder'); icon_holder.off('click'); icon_holder.find('.pagelayer-tooltip-text').removeClass('pagelayer-tooltip-on-click'); if(tooltip_click.hasClass('pagelayer-hotspots-click')){ icon_holder.each(function(){ jQuery(this).click(function(){ jQuery(this).find( '.pagelayer-tooltip-text' ).toggleClass('pagelayer-tooltip-on-click'); }) }); } // Assigning animation classes to icon holder if(!pagelayer_empty(tooltip_click.attr('pagelayer-animation'))){ icon_holder.addClass('pagelayer-animation-'+tooltip_click.attr('pagelayer-animation')); } } var pagelayer_chart_objects = {}; // Show Chart render function pagelayer_chart(jEle){ var holder = jEle.find('.pagelayer-chart-holder'); var id = jEle.attr('pagelayer-id'); var type = holder.attr('chart-type'); var labels = holder.attr('chart-labels') || ''; var legend = holder.attr('chart-legend'); var chart_datasets = []; labels = labels.split(','); //console.log(labels); jEle.find('.pagelayer-chart-child-holder').find('.pagelayer-chart-datasets').each(function(){ var tmp_dataset = {}; //console.log(jQuery(this).attr('chart-datasets')); var chartDatasets = jQuery(this).attr('chart-datasets') || ''; tmp_dataset['data'] = chartDatasets.split(','); //tmp_dataset['data'] = [734,784,2478,5267,433]; tmp_dataset['label'] = jQuery(this).attr('datasets-label'); tmp_dataset['backgroundColor'] = ( holder.attr('chart-colors') ? holder.attr('chart-colors').split(',') : jQuery(this).attr('dataset-bg') ); tmp_dataset['borderColor'] = jQuery(this).attr('border-color'); tmp_dataset['borderWidth'] = 1; tmp_dataset['fill'] = ( jQuery(this).attr('dataset-fill') ? true : false ); chart_datasets.push(tmp_dataset); }); //console.log(chart_datasets); //chart_datasets = chart_datasets.join(','); if(id in pagelayer_chart_objects && typeof pagelayer_chart_objects[id].destroy == 'function'){ pagelayer_chart_objects[id].destroy(); } pagelayer_chart_objects[id] = new Chart(jEle.find('.pagelayer-chart-holder'), { type: type, data: { labels: labels, datasets: chart_datasets }, options: { //rotation: holder.attr('data-pierotate') * Math.PI, //circumference: holder.attr('data-circumference') * Math.PI, maintainAspectRatio: ( holder.attr('chart-height') ? false : true ), legend: { display: ( legend ? true : false ), position: legend, }, scales: { xAxes: [ { barPercentage: 1, categoryPercentage: 0.9, ticks:{ beginAtZero: holder.attr('data-xbegin'), fontColor: holder.attr('data-xcolor'), fontSize: holder.attr('data-xsize'), autoSkip: false, maxRotation: holder.attr('data-xrotate'), minRotation: holder.attr('data-xrotate') }, //stacked: true } ], yAxes:[ { ticks:{ beginAtZero: holder.attr('data-ybegin'), fontColor: holder.attr('data-ycolor'), fontSize: holder.attr('data-ysize'), autoSkip: false, maxRotation: holder.attr('data-yrotate'), minRotation: holder.attr('data-yrotate') }, //stacked: true } ] } } }); } // Show table render function pagelayer_table(jEle){ var tHolder = jEle.find('.pagelayer-table-holder'); var dHolder = jEle.find('.pagelayer-data-holder'); var trEle = dHolder.find(".pagelayer-table_row"); var tdlength = 0; tHolder.empty(); /*trEle.each(function(){ var tdEle = jQuery(this).find(".pagelayer-table_col").length; if(tdlength < tdEle){tdlength = tdEle} });*/ // Add rows trEle.each(function(){ var this_trEle = jQuery(this); var this_trId = this_trEle.attr('pagelayer-id'); var tdEle = this_trEle.find(".pagelayer-table_col"); var html = ''; // Add columns tdEle.each(function(){ var td_data_Holder = jQuery(this).find('.pagelayer-col-data'); var td_id = jQuery(this).attr('pagelayer-id'); var tdata = td_data_Holder.attr('data-td') || ''; var t_tag = td_data_Holder.attr('data-tag') || ''; var attrs = {}; var col_attr = ''; attrs['colspan']= td_data_Holder.attr('data-colspan') || ''; attrs['rowspan'] = td_data_Holder.attr('data-rowspan') || ''; if(!pagelayer_empty(pagelayer_is_live)){ attrs['pagelayer-ref-id'] = td_id; attrs['pagelayer-editable'] = 'data'; attrs['contenteditable'] = 'true'; } for(var key in attrs){ if(!pagelayer_empty(attrs[key])){ col_attr += key+'="'+attrs[key]+'"'; } } html = html+'<'+t_tag +' '+col_attr+' pagelayer-table-id="'+td_id+'">'+tdata+'</'+t_tag+'>'; }); /* if(tdlength > tdEle.length){ var extra_td = tdlength - tdEle.length; for(var i=0; extra_td >i; i++){ html = html+'<td></td>'; } } */ tHolder.append('<tr pagelayer-table-id="'+this_trId+'">'+html+'</tr>'); }); if(!pagelayer_empty(pagelayer_is_live)){ tHolder.on('input', '[contenteditable]', function(){ var jEle = jQuery(this); var val = pagelayer_trim(jEle.html()); var id = jEle.closest('[pagelayer-ref-id]').attr('pagelayer-ref-id'); if(pagelayer_empty(id)){ return; } jQuery('[pagelayer-id='+id+']').find('.pagelayer-col-data').attr('data-td', val); }); } } function pagelayer_audio(jEle){ var audio = jQuery(jEle.find('audio')); var container = jEle.find('.pagelayer-audio-container'); var features = ['playpause','tracks','fullscreen']; (container.attr('show_duration') ? features.push('duration') : '' ); (container.attr('show_progress') ? features.push('progress') : '' ); (container.attr('show_current') ? features.push('current') : '' ); (container.attr('show_volume') ? features.push('volume') : '' ); audio.mediaelementplayer({ //features: ['playpause','duration','progress','current','volume','tracks','fullscreen'] features: features }); } // Post Portfolio Handler - Premium function pagelayer_post_folio(jEle){ var btn = jEle.find('.pagelayer-postfolio-btn'); var thumb = jEle.find('.pagelayer-postfolio-thumb'); btn.unbind('click'); btn.on('click', function(){ var btn_cat = jQuery(this).data("filter"); if(btn_cat == 'all'){ jQuery(thumb).fadeIn(1200); }else{ thumb.each(function(){ var thumb_cat = jQuery(this).data("category"); if(!pagelayer_empty(thumb_cat)){ thumb_cat = thumb_cat.split(' '); if(jQuery.inArray( btn_cat, thumb_cat ) == -1){ jQuery(this).hide(); }else{ jQuery(this).fadeIn(600); } }else{ jQuery(this).hide(); } }); } }); } // Search Form handler - Premium function pagelayer_search_form(jEle){ // In full screen mode set auto complete offscreenBuffering jEle.find('.pagelayer-search-full-screen form').attr('autocomplete', 'off'); jEle.find('.pagelayer-search-toggle').click(function(){ jEle.find('.pagelayer-search-fields').toggleClass('show'); }); jEle.find('.pagelayer-search-fields').click(function(e){ e = window.event || e; if(this === e.target) { jQuery(this).removeClass('show'); } }); } // Login Form handler - Premium function pagelayer_login_submit(jEle, e){ e.preventDefault(); var fdata = new FormData( jQuery(jEle).closest('form')[0] ); // Append the nonce fdata.append('pagelayer_nonce', pagelayer_global_nonce); jQuery.ajax({ url: pagelayer_ajaxurl+'action=pagelayer_login_submit', type: "POST", data: fdata, processData: false, contentType: false, cache:false, success:function(result){ var json = jQuery.parseJSON(result); // console.log(json); if(!pagelayer_empty(json['error'])){ jQuery(".pagelayer-login-error-box").html(json['error']).fadeIn().delay(10000).fadeOut(); }else{ if(!pagelayer_empty(json['redirect'])){ window.location.href = json['redirect']; }else{ location.reload(true); } } } }); } //Review slider handler - Premium function pagelayer_reviews_slider(jEle){ var ul = jEle.find('.pagelayer-reviews-holder'); // Build the options var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-'); pagelayer_owl_init(jEle, ul, options); } // Facebook App ID handler - Premium function pagelayer_fb_apps(jEle){ var app_id = jEle.find('.pagelayer-app-details').attr('pagelayer-app-id'); if(pagelayer_empty(app_id) || app_id == "{{fb-app-id}}"){ app_id = pagelayer_facebook_id; } // If still empty if(pagelayer_empty(app_id)){ return; } var win = pagelayerGetCurrentWindow(); var doc = pagelayerGetDocumentElement(); win.fbAsyncInit = function() { win.FB.init({ appId : app_id, autoLogAppEvents : true, xfbml : true, version : 'v3.3' }); }; win.FB = null; (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0"; fjs.parentNode.insertBefore(js, fjs); }(doc, 'script', 'facebook-jssdk')); } // SiteMap Attribute Handler- Premium function pagelayer_sitemap_add_attributes(jEle){ var nofollow = jEle.find('.pagelayer-sitemap-div-holder').data('nofollow'); if(!pagelayer_empty(nofollow)){ jEle.find('.pagelayer-sitemap-section .pagelayer-sitemap-list-item a').attr('rel','nofollow'); } } // Initialize video slider function pagelayer_pl_video_slider(jEle){ var ul = jEle.find('.pagelayer-video-slider-holder'); // Build the options var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-'); pagelayer_owl_init(jEle, ul, options); } // Splash widget function pagelayer_pl_splash_screen(jEle){ if(!pagelayer_empty(pagelayer_is_live)){ return; } if( jEle.attr('display_type') == "once"){ if (!sessionStorage.isVisited) { sessionStorage.isVisited = "true"; jEle.delay(jEle.attr('delay')).fadeIn(); } }else{ jEle.delay(jEle.attr('delay')).fadeIn(); } jEle.find('.pagelayer-splash-close, .pagelayer-splash-bg-close').on('click', function(){ jEle.fadeOut(); }); } // Facebook width adjustment function function pagelayer_fb_width(jEle){ var facebook = (jEle.find('.fb-page').length ? jEle.find('.fb-page') : jEle.find('.fb-embed')); var fb_resize = function(){ facebook.attr('data-width', jEle.width()); FB.XFBML.parse(); }; setTimeout(fb_resize, 1000); var win = pagelayerGetCurrentWindow(); jQuery(win).on('resize', function(){ setTimeout(fb_resize, 1000); }); } // WooCommenrce cart function pagelayer_woo_menu_cart(jEle){ // On click menu cart jEle.find('.pagelayer-menu-cart-toggle').click(function(e){ e.preventDefault(); jEle.find('.pagelayer-menu-cart-container').toggle(); }); // On click menu cart close jEle.find('.pagelayer-menu-cart-close').click(function(){ jEle.find('.pagelayer-menu-cart-container').hide(); }); } // Setup the pop-ups function pagelayer_popup_setup(popEle){ var jEle = popEle.find('.pagelayer-popup').first(); var id = jEle.attr('pagelayer-id'); var popup_content = popEle.find('.pagelayer-popup-modal-content'); var data = new Object(); // Set the Pou-up id popEle.attr('pagelayer-popup-id', id); if(jEle.length < 1) return; jQuery.each(jEle[0].attributes, function(index, att){ if(att.name.match(/data\-/i)){ data[att.name.substr(5)] = att.value; } }); // Show pop-up var popup_show = function(force){ // Is there a cookie? if( !pagelayer_empty(data['popup_cookie_session']) && !pagelayer_empty(data['popup_cookie_name']) && pagelayer_empty(force)){ var name = data['popup_cookie_name']+ "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i = 0; i <ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return; } } } // Avoid multi time open if(!pagelayer_empty(popEle.attr('pagelayer-popup-Shown')) && pagelayer_empty(data['popup_multi_time'])){ return; } popEle.css({'display' : 'flex'}); popEle.attr('pagelayer-popup-Shown', 1); // Animate the Pop-up content if(!pagelayer_empty(data['popup_animation'])){ popup_content.addClass(data['popup_animation'] + ' animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ jQuery(this).removeClass(data['popup_animation']+ ' animated'); }); } // Auto close if(!pagelayer_empty(data['popup_auto_close'])){ var cSecond = parseFloat(data['popup_auto_close']); setTimeout(function(){ popEle.find('.pagelayer-popup-close').click(); }, cSecond * 1000); } } // Append the close element // remove close element popEle.find('.pagelayer-popup-close').remove(); // Put close button inside or outside if(data['popup_cbtn_position'] == 'outside'){ popEle.append('<div class="pagelayer-popup-close"><i class="fas fa-times" ></i></div>'); }else{ popEle.find('.pagelayer-popup-modal-content').append('<div class="pagelayer-popup-close"><i class="fas fa-times" ></i></div>'); } var closer = popEle.find('.pagelayer-popup-close'); // On click close closer.click(function(e){ jQuery(document).trigger('pagelayer_popup_close', e, popEle); e.preventDefault(); e.stopPropagation(); popEle.hide(); }); // Hide pop-up on click modal container if ( !pagelayer_empty(data['overlay_close']) ){ popEle.click(function(e){ if(jQuery(e.target).closest('.pagelayer-popup-modal-content').length > 0) return; closer.click(); }); } // Hide pop-up click on selector if ( !pagelayer_empty(data['selector_close']) ){ jQuery(data['selector_close']).click(function(e){ closer.click(); }); } // Is there a cookie to be set to be remembered ? if( !pagelayer_empty(data['popup_cookie_session']) && !pagelayer_empty(data['popup_cookie_name']) ){ // Set cookie on close as well ? if(!pagelayer_empty(data['popup_cookie_close'])){ data['popup_cookie_selector'] = '.pagelayer-popup-close'+(pagelayer_empty(data['popup_cookie_selector']) ? '' : ','+data['popup_cookie_selector']); } if(!pagelayer_empty(data['popup_cookie_selector'])){ pagelayer_popup_set_cookie(data, closer); } } // Pop-up triggers // If we are in editor if ( !pagelayer_empty(popEle.attr('pagelayer-popup-editor')) ) { closer.unbind('click'); popEle.unbind('click'); popEle.removeAttr('pagelayer-popup-Shown'); popup_show(true); } // Click popup show if(!pagelayer_empty(data['trig_click'])){ jQuery(data['trig_click_ele']).click(popup_show); } // Popup show on load if(!pagelayer_empty(data['trig_load'])){ var second = parseFloat(data['trig_load_sec'] || 0); setTimeout(popup_show, second * 1000); } // Popup show on scroll if(!pagelayer_empty(data['trig_scroll'])){ // Initial state var scrollPos = 0; // adding scroll event jQuery(window).on('scroll', function(){ // detects new state and compares it with the new one if ( scrollY > scrollPos){ if(data['trig_scroll_dir'] == 'down'){ let scroll_per = scrollY*100/(jQuery(document).height() - innerHeight); let scr_per =parseInt(data['trig_scroll_per']) || 0; if( scr_per <= scroll_per){ popup_show(); } } }else if(data['trig_scroll_dir'] == 'up'){ popup_show(); } // saves the new position for iteration. scrollPos = scrollY; }); } // Popup show on scroll to element if(!pagelayer_empty(data['trig_scroll_to_ele'])){ // adding scroll event jEle.find(data['trig_scroll_to_ele_sel']).on('scroll', function(){ popup_show(); }); } // On scroll popup show if(!pagelayer_empty(data['trig_page_exit_intent'])){ jQuery(document).on('mouseleave', popup_show); } // When page load popup hide if(!pagelayer_empty(data['trig_before_load'])){ closer.click(); } } // Sets the cookie function pagelayer_popup_set_cookie(data, closer){ jQuery(data['popup_cookie_selector']).click(function(e){ var exdays = data['popup_cookie_exp'] || 0; var d = new Date(); d.setTime(d.getTime() + ( parseFloat(exdays) *24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = data['popup_cookie_name'] + "=1;" + expires + ";path=/"; if(closer && !jQuery(e.target).is(closer)){ closer.click(); } }); } // Before After Slider Handler function pagelayer_before_after_slider(jEle){ let event = jEle.find('.pagelayer-before-after-container').attr('data-resize-event'), slider = jEle.find('.pagelayer-before-after-slider'), after = jEle.find('.pagelayer-after-image'), resizer = jEle.find('.pagelayer-resizer'), buttons = jEle.find('.pagelayer-before-btn, .pagelayer-after-btn'), plID = jEle.attr('pagelayer-id'); resizer.removeAttr('style'); after.removeAttr('style'); // z - Custom value for both var slideIt = function(e, z){ z = z || false; let x, y; if(z != false){ x = y = z; }else{ let pos = slider.offset(), eleWidth = slider.width(), eleHeight = slider.height(); x = Math.min( (e.pageX - pos.left), eleWidth ) * 100 / eleWidth; y = Math.min( (e.pageY - pos.top), eleHeight) * 100 / eleHeight; } if(x < 0 || x > 99.7 || y < 0 || y > 99.7){ return false; } if(slider.hasClass('pagelayer-before-after-slider-vertical')){ resizer.css({'top': y+'%'}); after.css({'clip-path': 'polygon(0px '+y+'%, 100% '+y+'%, 100% 100%, 0% 100%)'}); return; } resizer.css({'left': x+'%'}); after.css({'clip-path': 'polygon('+x+'% 0%, 100% 0%, 100% 100%, '+x+'% 100%)'}); } var resizeOn = function(){ slider.addClass('resize'); } var resizeOff = function(){ slider.removeClass('resize'); } // Before After Button click handler jEle.on('click', '.pagelayer-after-btn, .pagelayer-before-btn', function(e){ e.stopPropagation(); e.preventDefault(); var slide = (jQuery(this).hasClass('pagelayer-before-btn')) ? 90 : 10; // Start resizing resizeOn(); slideIt(e, slide); // Stop resizing resizeOff(); }); var win = pagelayerGetCurrentWindow(); var doc = pagelayerGetDocumentElement(); // Unbind All events jQuery(win).unbind('mousemove.bf_slider'+plID); slider.unbind('click mouseover mouseout'); resizer.unbind('mousedown'); jQuery(doc).unbind('mouseup.bf_slider'+plID); // If there is no events if(event == 'none' || pagelayer_empty(event)){ return; } if(event == 'hover'){ // No need of buttons while hover effect buttons.fadeOut(); slider.on('mouseover', resizeOn); slider.on('mouseout', resizeOff); }else{ resizer.on('mousedown', function(e){ // To prevent widgets from being dragged. e.stopPropagation(); e.preventDefault(); resizeOn(); buttons.fadeOut(); }); jQuery(doc).on('mouseup.bf_slider'+plID, function(e){ resizeOff(); buttons.fadeIn(); }); } jQuery(win).on('mousemove.bf_slider'+plID, function(e){ if(!slider.hasClass('resize')){ return; } // Stop divs being selected. e.stopPropagation(); e.preventDefault(); slideIt(e); }); slider.on('click', slideIt); } // Image Map Widget function pagelayer_pl_image_map(jEle){ var svgEle = jEle.find('.pagelayer-imgmap-svg'); var data = []; svgEle.find('.pagelayer-imgmap-item').each(function(){ var data_link = jQuery(this).attr('data-link'); var data_id = jQuery(this).attr('data-id'); data[data_id] = data_link; }); pagelayer_resize_imgmap(jEle); jQuery(pagelayerGetCurrentWindow()).off('resize.plimgmap').on('resize.plimgmap',function(){ pagelayer_resize_imgmap(jEle); }); if(!pagelayer_is_live){ for (const key in data) { if(data == undefined || data[key].length === 0){ continue; } var elem = jEle.find('[data-id='+key+']'); elem.css({'cursor':'pointer'}); elem.off('click').on('click',function(){ window.open(data[key], "_blank"); }); } svgEle.addClass('pagelayer-imgmap-hover-active'); } } function pagelayer_resize_imgmap(jEle){ var svgEle = jEle.find('svg'); var pathEles = svgEle.find('path'); if(pathEles.length > 0){ for (var i = 0; i < pathEles.length; i++) { pagelayer_resize_imgmap_item(jQuery(pathEles[i]), jEle); } } } function pagelayer_resize_imgmap_item(path_ele, jEle = ''){ var wrap = jEle.find('.pagelayer-imgmap-wrapper'); var img_ele = jEle.find('img'); // Delay while resizing map setTimeout(() => { // Auto resize wrapper wrap.css('cssText','width:'+img_ele.width()+'px;height:'+img_ele.height()+'px;left:'+img_ele.position().left+'px;top:'+img_ele.position().top+'px;'); var mapWidth = wrap.width(); var mapHeight = wrap.height(); var cords = path_ele.attr('data-cord'); var isActive = path_ele.hasClass('pagelayer-map-item-active') ? true : false; cords = cords.split(','); var tmpArr = []; var tmpCord = ''; var count = 0; cords.forEach((ele,index) => { var prefix = index == 1 ? 'M' : 'L'; var perc = ele; if(tmpCord.length == 0){ tmpCord = (mapWidth / 100) * perc; }else{ var cord = (mapHeight / 100) * perc; if(pagelayer_is_live){ var cordWrap = jEle.find('.pagelayer-imgmap-coordinates-wraper'); var mapId = path_ele.attr('data-id'); var cord_ele = jEle.find('.pl-cord-'+mapId).eq(count); if(cord_ele.length == 0){ var cordHTML = `<div class="pagelayer-imgmap-coord pl-cord-`+mapId+`" title="Drag to reposition" data-id="`+count+`" style="left:`+(tmpCord)+`px;top:`+(cord)+`px" style="display:block;"> <span class="pagelayer-imgmap-remove-cord fa fa-trash"></span> </div>`; cordWrap.append(cordHTML); }else{ var visibility = isActive ? 'display:block' : ''; cord_ele.css('cssText','left:'+tmpCord+'px;top:'+cord+'px;'+visibility); } } tmpArr.push(prefix + tmpCord+' '+cord); tmpCord = ''; count++; } }); // Close path denoted by z var endOpr = pagelayer_is_live ? '' : 'z'; var value = tmpArr.join('').toString() + endOpr; cords = cords.toString(); path_ele.attr('data-cord',cords); path_ele.attr('d',value); }, 10); } function pagelayer_create_imgmap_svg(classes = [], attrs = []){ // Create svg path element and append in the svg var elem = document.createElementNS('http://www.w3.org/2000/svg', 'path'); if(classes.length > 0){ classes.forEach(cls => { elem.classList.add(cls); }); } if(attrs.length > 0){ attrs.forEach(attr => { elem.setAttribute(attr[0],attr[1]); }); } return elem; } !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Shuffle=e()}(this,function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function i(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}function n(t){return(n=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function o(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function r(){}r.prototype={on:function(t,e,i){var n=this.e||(this.e={});return(n[t]||(n[t]=[])).push({fn:e,ctx:i}),this},once:function(t,e,i){var n=this;function s(){n.off(t,s),e.apply(i,arguments)}return s._=e,this.on(t,s,i)},emit:function(t){for(var e=[].slice.call(arguments,1),i=((this.e||(this.e={}))[t]||[]).slice(),n=0,s=i.length;n<s;n++)i[n].fn.apply(i[n].ctx,e);return this},off:function(t,e){var i=this.e||(this.e={}),n=i[t],s=[];if(n&&e)for(var o=0,r=n.length;o<r;o++)n[o].fn!==e&&n[o].fn._!==e&&s.push(n[o]);return s.length?i[t]=s:delete i[t],this}};var l=r,a=r;l.TinyEmitter=a;var u="undefined"!=typeof Element?Element.prototype:{},h=u.matches||u.matchesSelector||u.webkitMatchesSelector||u.mozMatchesSelector||u.msMatchesSelector||u.oMatchesSelector,f=function(t,e){if(!t||1!==t.nodeType)return!1;if(h)return h.call(t,e);for(var i=t.parentNode.querySelectorAll(e),n=0;n<i.length;n++)if(i[n]==t)return!0;return!1};var c=function(t,e){var i,n,s,o,r=0;return function(){i=this,n=arguments;var t=new Date-r;return o||(t>=e?l():o=setTimeout(l,e-t)),s};function l(){o=0,r=+new Date,s=t.apply(i,n),i=null,n=null}};function d(){}function m(t){return parseFloat(t)||0}var p=function(){function e(i,n){t(this,e),this.x=m(i),this.y=m(n)}return i(e,null,[{key:"equals",value:function(t,e){return t.x===e.x&&t.y===e.y}}]),e}(),v=function(){function e(i,n,s,o,r){t(this,e),this.id=r,this.left=i,this.top=n,this.width=s,this.height=o}return i(e,null,[{key:"intersects",value:function(t,e){return t.left<e.left+e.width&&e.left<t.left+t.width&&t.top<e.top+e.height&&e.top<t.top+t.height}}]),e}(),y={BASE:"shuffle",SHUFFLE_ITEM:"shuffle-item",VISIBLE:"shuffle-item--visible",HIDDEN:"shuffle-item--hidden"},g=0,_=function(){function e(i){t(this,e),g+=1,this.id=g,this.element=i,this.isVisible=!0,this.isHidden=!1}return i(e,[{key:"show",value:function(){this.isVisible=!0,this.element.classList.remove(y.HIDDEN),this.element.classList.add(y.VISIBLE),this.element.removeAttribute("aria-hidden")}},{key:"hide",value:function(){this.isVisible=!1,this.element.classList.remove(y.VISIBLE),this.element.classList.add(y.HIDDEN),this.element.setAttribute("aria-hidden",!0)}},{key:"init",value:function(){this.addClasses([y.SHUFFLE_ITEM,y.VISIBLE]),this.applyCss(e.Css.INITIAL),this.scale=e.Scale.VISIBLE,this.point=new p}},{key:"addClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.add(t)})}},{key:"removeClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.remove(t)})}},{key:"applyCss",value:function(t){var e=this;Object.keys(t).forEach(function(i){e.element.style[i]=t[i]})}},{key:"dispose",value:function(){this.removeClasses([y.HIDDEN,y.VISIBLE,y.SHUFFLE_ITEM]),this.element.removeAttribute("style"),this.element=null}}]),e}();_.Css={INITIAL:{position:"absolute",top:0,left:0,visibility:"visible",willChange:"transform"},VISIBLE:{before:{opacity:1,visibility:"visible"},after:{transitionDelay:""}},HIDDEN:{before:{opacity:0},after:{visibility:"hidden",transitionDelay:""}}},_.Scale={VISIBLE:1,HIDDEN:.001};var E=null,I=function(){if(null!==E)return E;var t=document.body||document.documentElement,e=document.createElement("div");return e.style.cssText="width:10px;padding:2px;box-sizing:border-box;",t.appendChild(e),E="10px"===window.getComputedStyle(e,null).width,t.removeChild(e),E};function b(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.getComputedStyle(t,null),n=m(i[e]);return I()||"width"!==e?I()||"height"!==e||(n+=m(i.paddingTop)+m(i.paddingBottom)+m(i.borderTopWidth)+m(i.borderBottomWidth)):n+=m(i.paddingLeft)+m(i.paddingRight)+m(i.borderLeftWidth)+m(i.borderRightWidth),n}var S={reverse:!1,by:null,compare:null,randomize:!1,key:"element"};function T(t,e){var i=Object.assign({},S,e),n=Array.from(t),s=!1;return t.length?i.randomize?function(t){for(var e=t.length;e;){e-=1;var i=Math.floor(Math.random()*(e+1)),n=t[i];t[i]=t[e],t[e]=n}return t}(t):("function"==typeof i.by?t.sort(function(t,e){if(s)return 0;var n=i.by(t[i.key]),o=i.by(e[i.key]);return void 0===n&&void 0===o?(s=!0,0):n<o||"sortFirst"===n||"sortLast"===o?-1:n>o||"sortLast"===n||"sortFirst"===o?1:0}):"function"==typeof i.compare&&t.sort(i.compare),s?n:(i.reverse&&t.reverse(),t)):[]}var k={},w="transitionend",C=0;function L(t){return!!k[t]&&(k[t].element.removeEventListener(w,k[t].listener),k[t]=null,!0)}function D(t,e){var i=w+(C+=1),n=function(t){t.currentTarget===t.target&&(L(i),e(t))};return t.addEventListener(w,n),k[i]={element:t,listener:n},i}function z(t){return Math.max.apply(Math,t)}function M(t,e,i,n){var s=t/e;return Math.abs(Math.round(s)-s)<n&&(s=Math.round(s)),Math.min(Math.ceil(s),i)}function A(t,e,i){if(1===e)return t;for(var n=[],s=0;s<=i-e;s++)n.push(z(t.slice(s,s+e)));return n}function F(t,e){for(var i,n=(i=t,Math.min.apply(Math,i)),s=0,o=t.length;s<o;s++)if(t[s]>=n-e&&t[s]<=n+e)return s;return 0}function x(t,e){var i={};t.forEach(function(t){i[t.top]?i[t.top].push(t):i[t.top]=[t]});var n=[],s=[],o=[];return Object.keys(i).forEach(function(t){var r=i[t];s.push(r);var l,a=r[r.length-1],u=a.left+a.width,h=Math.round((e-u)/2),f=r,c=!1;if(h>0){var d=[];(c=r.every(function(t){var e=new v(t.left+h,t.top,t.width,t.height,t.id),i=!n.some(function(t){return v.intersects(e,t)});return d.push(e),i}))&&(f=d)}if(!c&&r.some(function(t){return n.some(function(e){var i=v.intersects(t,e);return i&&(l=e),i})})){var m=o.findIndex(function(t){return t.includes(l)});o.splice(m,1,s[m])}n=n.concat(f),o.push(f)}),[].concat.apply([],o).sort(function(t,e){return t.id-e.id}).map(function(t){return new p(t.left,t.top)})}function O(t){return Array.from(new Set(t))}var N=0,H=function(e){function r(e){var i,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,r),(i=o(this,n(r).call(this))).options=Object.assign({},r.options,s),i.options.delimeter&&(i.options.delimiter=i.options.delimeter),i.lastSort={},i.group=r.ALL_ITEMS,i.lastFilter=r.ALL_ITEMS,i.isEnabled=!0,i.isDestroyed=!1,i.isInitialized=!1,i._transitions=[],i.isTransitioning=!1,i._queue=[];var l=i._getElementOption(e);if(!l)throw new TypeError("Shuffle needs to be initialized with an element.");return i.element=l,i.id="shuffle_"+N,N+=1,i._init(),i.isInitialized=!0,i}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(r,l),i(r,[{key:"_init",value:function(){if(this.items=this._getItems(),this.options.sizer=this._getElementOption(this.options.sizer),this.element.classList.add(r.Classes.BASE),this._initItems(this.items),this._onResize=this._getResizeFunction(),window.addEventListener("resize",this._onResize),"complete"!==document.readyState){var t=this.layout.bind(this);window.addEventListener("load",function e(){window.removeEventListener("load",e),t()})}var e=window.getComputedStyle(this.element,null),i=r.getSize(this.element).width;this._validateStyles(e),this._setColumns(i),this.filter(this.options.group,this.options.initialSort),this.element.offsetWidth,this.setItemTransitions(this.items),this.element.style.transition="height ".concat(this.options.speed,"ms ").concat(this.options.easing)}},{key:"_getResizeFunction",value:function(){var t=this._handleResize.bind(this);return this.options.throttle?this.options.throttle(t,this.options.throttleTime):t}},{key:"_getElementOption",value:function(t){return"string"==typeof t?this.element.querySelector(t):t&&t.nodeType&&1===t.nodeType?t:t&&t.jquery?t[0]:null}},{key:"_validateStyles",value:function(t){"static"===t.position&&(this.element.style.position="relative"),"hidden"!==t.overflow&&(this.element.style.overflow="hidden")}},{key:"_filter",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastFilter,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.items,i=this._getFilteredSets(t,e);return this._toggleFilterClasses(i),this.lastFilter=t,"string"==typeof t&&(this.group=t),i}},{key:"_getFilteredSets",value:function(t,e){var i=this,n=[],s=[];return t===r.ALL_ITEMS?n=e:e.forEach(function(e){i._doesPassFilter(t,e.element)?n.push(e):s.push(e)}),{visible:n,hidden:s}}},{key:"_doesPassFilter",value:function(t,e){if("function"==typeof t)return t.call(e,e,this);var i=e.getAttribute("data-"+r.FILTER_ATTRIBUTE_KEY),n=this.options.delimiter?i.split(this.options.delimiter):JSON.parse(i);function s(t){return n.includes(t)}return Array.isArray(t)?this.options.filterMode===r.FilterMode.ANY?t.some(s):t.every(s):n.includes(t)}},{key:"_toggleFilterClasses",value:function(t){var e=t.visible,i=t.hidden;e.forEach(function(t){t.show()}),i.forEach(function(t){t.hide()})}},{key:"_initItems",value:function(t){t.forEach(function(t){t.init()})}},{key:"_disposeItems",value:function(t){t.forEach(function(t){t.dispose()})}},{key:"_updateItemCount",value:function(){this.visibleItems=this._getFilteredItems().length}},{key:"setItemTransitions",value:function(t){var e=this.options,i=e.speed,n=e.easing,s=this.options.useTransforms?["transform"]:["top","left"],o=Object.keys(_.Css.HIDDEN.before).map(function(t){return t.replace(/([A-Z])/g,function(t,e){return"-".concat(e.toLowerCase())})}),r=s.concat(o).join();t.forEach(function(t){t.element.style.transitionDuration=i+"ms",t.element.style.transitionTimingFunction=n,t.element.style.transitionProperty=r})}},{key:"_getItems",value:function(){var t=this;return Array.from(this.element.children).filter(function(e){return f(e,t.options.itemSelector)}).map(function(t){return new _(t)})}},{key:"_mergeNewItems",value:function(t){var e=Array.from(this.element.children);return T(this.items.concat(t),{by:function(t){return e.indexOf(t)}})}},{key:"_getFilteredItems",value:function(){return this.items.filter(function(t){return t.isVisible})}},{key:"_getConcealedItems",value:function(){return this.items.filter(function(t){return!t.isVisible})}},{key:"_getColumnSize",value:function(t,e){var i;return 0===(i="function"==typeof this.options.columnWidth?this.options.columnWidth(t):this.options.sizer?r.getSize(this.options.sizer).width:this.options.columnWidth?this.options.columnWidth:this.items.length>0?r.getSize(this.items[0].element,!0).width:t)&&(i=t),i+e}},{key:"_getGutterSize",value:function(t){return"function"==typeof this.options.gutterWidth?this.options.gutterWidth(t):this.options.sizer?b(this.options.sizer,"marginLeft"):this.options.gutterWidth}},{key:"_setColumns",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r.getSize(this.element).width,e=this._getGutterSize(t),i=this._getColumnSize(t,e),n=(t+e)/i;Math.abs(Math.round(n)-n)<this.options.columnThreshold&&(n=Math.round(n)),this.cols=Math.max(Math.floor(n||0),1),this.containerWidth=t,this.colWidth=i}},{key:"_setContainerSize",value:function(){this.element.style.height=this._getContainerSize()+"px"}},{key:"_getContainerSize",value:function(){return z(this.positions)}},{key:"_getStaggerAmount",value:function(t){return Math.min(t*this.options.staggerAmount,this.options.staggerAmountMax)}},{key:"_dispatch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.isDestroyed||(e.shuffle=this,this.emit(t,e))}},{key:"_resetCols",value:function(){var t=this.cols;for(this.positions=[];t;)t-=1,this.positions.push(0)}},{key:"_layout",value:function(t){var e=this,i=this._getNextPositions(t),n=0;t.forEach(function(t,s){function o(){t.applyCss(_.Css.VISIBLE.after)}if(p.equals(t.point,i[s])&&!t.isHidden)return t.applyCss(_.Css.VISIBLE.before),void o();t.point=i[s],t.scale=_.Scale.VISIBLE,t.isHidden=!1;var r=e.getStylesForTransition(t,_.Css.VISIBLE.before);r.transitionDelay=e._getStaggerAmount(n)+"ms",e._queue.push({item:t,styles:r,callback:o}),n+=1})}},{key:"_getNextPositions",value:function(t){var e=this;if(this.options.isCentered){var i=t.map(function(t,i){var n=r.getSize(t.element,!0),s=e._getItemPosition(n);return new v(s.x,s.y,n.width,n.height,i)});return this.getTransformedPositions(i,this.containerWidth)}return t.map(function(t){return e._getItemPosition(r.getSize(t.element,!0))})}},{key:"_getItemPosition",value:function(t){return function(t){for(var e=t.itemSize,i=t.positions,n=t.gridSize,s=t.total,o=t.threshold,r=t.buffer,l=M(e.width,n,s,o),a=A(i,l,s),u=F(a,r),h=new p(n*u,a[u]),f=a[u]+e.height,c=0;c<l;c++)i[u+c]=f;return h}({itemSize:t,positions:this.positions,gridSize:this.colWidth,total:this.cols,threshold:this.options.columnThreshold,buffer:this.options.buffer})}},{key:"getTransformedPositions",value:function(t,e){return x(t,e)}},{key:"_shrink",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._getConcealedItems(),i=0;e.forEach(function(e){function n(){e.applyCss(_.Css.HIDDEN.after)}if(e.isHidden)return e.applyCss(_.Css.HIDDEN.before),void n();e.scale=_.Scale.HIDDEN,e.isHidden=!0;var s=t.getStylesForTransition(e,_.Css.HIDDEN.before);s.transitionDelay=t._getStaggerAmount(i)+"ms",t._queue.push({item:e,styles:s,callback:n}),i+=1})}},{key:"_handleResize",value:function(){this.isEnabled&&!this.isDestroyed&&this.update()}},{key:"getStylesForTransition",value:function(t,e){var i=Object.assign({},e);if(this.options.useTransforms){var n=this.options.roundTransforms?Math.round(t.point.x):t.point.x,s=this.options.roundTransforms?Math.round(t.point.y):t.point.y;i.transform="translate(".concat(n,"px, ").concat(s,"px) scale(").concat(t.scale,")")}else i.left=t.point.x+"px",i.top=t.point.y+"px";return i}},{key:"_whenTransitionDone",value:function(t,e,i){var n=D(t,function(t){e(),i(null,t)});this._transitions.push(n)}},{key:"_getTransitionFunction",value:function(t){var e=this;return function(i){t.item.applyCss(t.styles),e._whenTransitionDone(t.item.element,t.callback,i)}}},{key:"_processQueue",value:function(){this.isTransitioning&&this._cancelMovement();var t=this.options.speed>0,e=this._queue.length>0;e&&t&&this.isInitialized?this._startTransitions(this._queue):e?(this._styleImmediately(this._queue),this._dispatch(r.EventType.LAYOUT)):this._dispatch(r.EventType.LAYOUT),this._queue.length=0}},{key:"_startTransitions",value:function(t){var e=this;this.isTransitioning=!0,function(t,e,i){i||("function"==typeof e?(i=e,e=null):i=d);var n=t&&t.length;if(!n)return i(null,[]);var s=!1,o=new Array(n);function r(t){return function(e,r){if(!s){if(e)return i(e,o),void(s=!0);o[t]=r,--n||i(null,o)}}}t.forEach(e?function(t,i){t.call(e,r(i))}:function(t,e){t(r(e))})}(t.map(function(t){return e._getTransitionFunction(t)}),this._movementFinished.bind(this))}},{key:"_cancelMovement",value:function(){this._transitions.forEach(L),this._transitions.length=0,this.isTransitioning=!1}},{key:"_styleImmediately",value:function(t){if(t.length){var e=t.map(function(t){return t.item.element});r._skipTransitions(e,function(){t.forEach(function(t){t.item.applyCss(t.styles),t.callback()})})}}},{key:"_movementFinished",value:function(){this._transitions.length=0,this.isTransitioning=!1,this._dispatch(r.EventType.LAYOUT)}},{key:"filter",value:function(t,e){this.isEnabled&&((!t||t&&0===t.length)&&(t=r.ALL_ITEMS),this._filter(t),this._shrink(),this._updateItemCount(),this.sort(e))}},{key:"sort",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastSort;if(this.isEnabled){this._resetCols();var e=T(this._getFilteredItems(),t);this._layout(e),this._processQueue(),this._setContainerSize(),this.lastSort=t}}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isEnabled&&(t||this._setColumns(),this.sort())}},{key:"layout",value:function(){this.update(!0)}},{key:"add",value:function(t){var e=this,i=O(t).map(function(t){return new _(t)});this._initItems(i),this._resetCols();var n=T(this._mergeNewItems(i),this.lastSort),s=this._filter(this.lastFilter,n),o=function(t){return i.includes(t)},r=function(t){t.scale=_.Scale.HIDDEN,t.isHidden=!0,t.applyCss(_.Css.HIDDEN.before),t.applyCss(_.Css.HIDDEN.after)},l=this._getNextPositions(s.visible);s.visible.forEach(function(t,i){o(t)&&(t.point=l[i],r(t),t.applyCss(e.getStylesForTransition(t,{})))}),s.hidden.forEach(function(t){o(t)&&r(t)}),this.element.offsetWidth,this.setItemTransitions(i),this.items=this._mergeNewItems(i),this.filter(this.lastFilter)}},{key:"disable",value:function(){this.isEnabled=!1}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.isEnabled=!0,t&&this.update()}},{key:"remove",value:function(t){var e=this;if(t.length){var i=O(t),n=i.map(function(t){return e.getItemByElement(t)}).filter(function(t){return!!t});this._toggleFilterClasses({visible:[],hidden:n}),this._shrink(n),this.sort(),this.items=this.items.filter(function(t){return!n.includes(t)}),this._updateItemCount(),this.once(r.EventType.LAYOUT,function(){e._disposeItems(n),i.forEach(function(t){t.parentNode.removeChild(t)}),e._dispatch(r.EventType.REMOVED,{collection:i})})}}},{key:"getItemByElement",value:function(t){return this.items.find(function(e){return e.element===t})}},{key:"resetItems",value:function(){var t=this;this._disposeItems(this.items),this.isInitialized=!1,this.items=this._getItems(),this._initItems(this.items),this.once(r.EventType.LAYOUT,function(){t.setItemTransitions(t.items),t.isInitialized=!0}),this.filter(this.lastFilter)}},{key:"destroy",value:function(){this._cancelMovement(),window.removeEventListener("resize",this._onResize),this.element.classList.remove("shuffle"),this.element.removeAttribute("style"),this._disposeItems(this.items),this.items.length=0,this._transitions.length=0,this.options.sizer=null,this.element=null,this.isDestroyed=!0,this.isEnabled=!1}}],[{key:"getSize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=window.getComputedStyle(t,null),n=b(t,"width",i),s=b(t,"height",i);if(e){var o=b(t,"marginLeft",i),r=b(t,"marginRight",i),l=b(t,"marginTop",i),a=b(t,"marginBottom",i);n+=o+r,s+=l+a}return{width:n,height:s}}},{key:"_skipTransitions",value:function(t,e){var i=t.map(function(t){var e=t.style,i=e.transitionDuration,n=e.transitionDelay;return e.transitionDuration="0ms",e.transitionDelay="0ms",{duration:i,delay:n}});e(),t[0].offsetWidth,t.forEach(function(t,e){t.style.transitionDuration=i[e].duration,t.style.transitionDelay=i[e].delay})}}]),r}();return H.ShuffleItem=_,H.ALL_ITEMS="all",H.FILTER_ATTRIBUTE_KEY="groups",H.EventType={LAYOUT:"shuffle:layout",REMOVED:"shuffle:removed"},H.Classes=y,H.FilterMode={ANY:"any",ALL:"all"},H.options={group:H.ALL_ITEMS,speed:250,easing:"cubic-bezier(0.4, 0.0, 0.2, 1)",itemSelector:"*",sizer:null,gutterWidth:0,columnWidth:0,delimiter:null,buffer:0,columnThreshold:.01,initialSort:null,throttle:c,throttleTime:300,staggerAmount:15,staggerAmountMax:150,useTransforms:!0,filterMode:H.FilterMode.ANY,isCentered:!1,roundTransforms:!0},H.Point=p,H.Rect=v,H.__sorter=T,H.__getColumnSpan=M,H.__getAvailablePositions=A,H.__getShortColumn=F,H.__getCenteredPositions=x,H}); //# sourceMappingURL=shuffle.min.js.map simpleParallax.min.js 0000644 00000015021 15100021164 0010627 0 ustar 00 /** * simple-parallax-js - simpleParallax is a simple and lightweight JS plugin that gives your website parallax animations on the images * @version v4.2.1 * @date: 09-03-2019 17:4:39 * @link https://simpleparallax.com/ */ "use strict";var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},_createClass=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}!function(e,t){"function"==typeof define&&define.amd?define([],function(){return t(e)}):"object"===("undefined"==typeof exports?"undefined":_typeof(exports))?module.exports=t(e):e.pagelayerParallax=t(e)}("undefined"!=typeof global?global:"undefined"!=typeof window?window:void 0,function(o){var i=function(){for(var e,t="transform webkitTransform mozTransform oTransform msTransform".split(" "),n=0;void 0===e;)e=null!=document.createElement("div").style[t[n]]?t[n]:void 0,n++;return e}();!function(){for(var a=0,e=["ms","moz","webkit","o"],t=0;t<e.length&&!o.requestAnimationFrame;++t)o.requestAnimationFrame=o[e[t]+"RequestAnimationFrame"],o.cancelAnimationFrame=o[e[t]+"CancelAnimationFrame"]||o[e[t]+"CancelRequestAnimationFrame"];o.requestAnimationFrame||(o.requestAnimationFrame=function(e,t){var n=(new Date).getTime(),i=Math.max(0,16-(n-a)),s=o.setTimeout(function(){e(n+i)},i);return a=n+i,s}),o.cancelAnimationFrame||(o.cancelAnimationFrame=function(e){clearTimeout(e)})}(),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(e){var t=this;if(!document.documentElement.contains(t))return null;do{if(t.matches(e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null});var s=[],t=-1,a=void 0,r=void 0,l=void 0,h=void 0,m=!1,u=function(){function n(e,t){_classCallCheck(this,n),this.element=e,this.elementContainer=e,this.defaults={delay:.6,orientation:"up",scale:1.3,overflow:!1,transition:"cubic-bezier(0,0,0,1)",breakpoint:!1},this.settings=_extends(this.defaults,t),this.settings.breakpoint&&document.documentElement.clientWidth<=this.settings.breakpoint||(this.init=this.init.bind(this),this.animationFrame=this.animationFrame.bind(this),this.handleResize=this.handleResize.bind(this),this.isImageLoaded(this.element)?this.init():this.element.addEventListener("load",this.init),s.push(this),m||(m=!0,this.getViewportOffsetHeight(),this.animationFrame()))}return _createClass(n,[{key:"init",value:function(){this.isInit||(!1===this.settings.overflow&&this.wrapElement(),this.setStyle(),this.getElementOffset(),this.getTranslateValue(),this.animate(),o.addEventListener("resize",this.handleResize),this.isInit=!0)}},{key:"isImageLoaded",value:function(){return!!this.element.complete&&(void 0===this.element.naturalWidth||0!==this.element.naturalWidth)}},{key:"isVisible",value:function(){return this.elementBottomX>a&&this.elementTopX<r}},{key:"wrapElement",value:function(){var e=this.element.closest("picture")||this.element,t=document.createElement("div");t.classList.add("pagelayerParallax"),t.style.overflow="hidden",e.parentNode.insertBefore(t,e),t.appendChild(e),this.elementContainer=t}},{key:"unWrapElement",value:function(){var e=this.elementContainer.parentNode;if(e){for(;this.elementContainer.firstChild;)e.insertBefore(this.elementContainer.firstChild,this.elementContainer);e.removeChild(this.elementContainer)}}},{key:"setStyle",value:function(){!1===this.settings.overflow&&(this.element.style[i]="scale("+this.settings.scale+")"),0<this.settings.delay&&(this.element.style.transition="transform "+this.settings.delay+"s "+this.settings.transition),this.element.style.willChange="transform"}},{key:"unSetStyle",value:function(){this.element.style.willChange="",this.element.style[i]="",this.element.style.transition=""}},{key:"getElementOffset",value:function(){var e=this.elementContainer.getBoundingClientRect();this.elementHeight=e.height,this.elementTopX=e.top+o.pageYOffset,this.elementBottomX=this.elementHeight+this.elementTopX}},{key:"getViewportOffsetTop",value:function(){a=o.pageYOffset}},{key:"getViewportOffsetHeight",value:function(){l=document.documentElement.clientHeight}},{key:"getViewportOffsetBottom",value:function(){r=a+l}},{key:"handleResize",value:function(){this.getViewportOffsetHeight(),this.getElementOffset(),this.getRangeMax()}},{key:"getRangeMax",value:function(){var e=this.element.clientHeight;this.rangeMax=e*this.settings.scale-e,"down"!==this.settings.orientation&&"right"!==this.settings.orientation||(this.rangeMax*=-1)}},{key:"getTranslateValue",value:function(){var e=((r-this.elementTopX)/((l+this.elementHeight)/100)).toFixed(1);return e=Math.min(100,Math.max(0,e)),this.oldPercentage!==e&&(this.rangeMax||this.getRangeMax(),this.translateValue=(e/100*this.rangeMax-this.rangeMax/2).toFixed(0),this.oldTranslateValue!==this.translateValue&&(this.oldPercentage=e,this.oldTranslateValue=this.translateValue,!0))}},{key:"animate",value:function(){var e=0,t=0,n=void 0;"left"===this.settings.orientation||"right"===this.settings.orientation?t=this.translateValue+"px":e=this.translateValue+"px",n=!1===this.settings.overflow?"translate3d("+t+", "+e+", 0) scale("+this.settings.scale+")":"translate3d("+t+", "+e+", 0)",this.element.style[i]=n}},{key:"proceedElement",value:function(e){e.isVisible()&&e.getTranslateValue()&&e.animate()}},{key:"animationFrame",value:function(){if(this.getViewportOffsetTop(),t!==a){this.getViewportOffsetBottom();for(var e=0;e<s.length;e++)this.proceedElement(s[e]);h=o.requestAnimationFrame(this.animationFrame),t=a}else h=o.requestAnimationFrame(this.animationFrame)}},{key:"destroy",value:function(){this.isDestroyed||(this.unSetStyle(),!1===this.settings.overflow&&this.unWrapElement(),s.splice(s.indexOf(this),1),s.length||(m=!1,o.cancelAnimationFrame(h)),o.removeEventListener("resize",this.handleResize))}},{key:"isDestroyed",get:function(){return-1===s.indexOf(this)}}]),n}();return function(e,t){var n=[];if(e.length)for(var i=0;i<e.length;i++)n.push(new u(e[i],t));else n.push(new u(e,t));return n}}); customizer.js 0000644 00000107275 15100021164 0007310 0 ustar 00 var pagelayer_fontHtmlArray = {}; (function($) { var api = wp.customize; api.bind( 'ready', function() { var controls = api.settings.controls; for(var control in controls){ if( !('show_filter' in controls[control]) ){ continue; } var filter = controls[control]['show_filter']; for(var showParam in filter){ var except = showParam.substr(0, 1) == '!' ? true : false; showParam = except ? showParam.substr(1) : showParam; // Show and Hide Controls api( showParam, function( setting ){ api.control( control, function( _control ) { var visibility = function() { var _filter = _control.params['show_filter']; for(var _showParam in _filter){ var reqval = _filter[_showParam]; var val = setting.get(); var toShow = false; if(typeof reqval == 'string' && reqval == val){ toShow = true; } // Its an array and a value is found, then dont show if(typeof reqval != 'string' && reqval.indexOf(val) > -1){ toShow = true; } if(except && !toShow || !except && toShow ){ _control.container.show(); return } _control.container.hide(); } }; visibility(); setting.bind( visibility ); }); }); } } // Expand pagelayer setting handler api.section('pagelayer_global_fonts_sec', function( section ){ section.expanded.bind(function( isExpanding ){ // Set default value section.container.find('select[data-font-key]').each(function(){ var ref = jQuery(this), name = ref.attr('data-font-key'), value = ref.attr('data-default-value'); ref.html(pagelayer_fontHtmlArray[name]).val(value); ref.removeAttr('data-font-key'); }); }); }); }); })(jQuery); /** * Initialization trigger. */ jQuery(document).ready( function(){ // Create color setting pagelayer_alpha_color_control_init(); var option = function(val, lang){ var lang = lang || 'Default'; return '<option value="'+val+'">'+lang+'</option>'; } // Create font setting list for(var sk in pagelayer_global_font_settings){ var sval = pagelayer_global_font_settings[sk]; if('choices' in sval){ var fontHtml = ''; for( var value in sval['choices'] ) { if(typeof sval['choices'][value] !== 'object'){ fontHtml += option(value, sval['choices'][value]); continue; } if(value != 'default'){ fontHtml += '<optgroup label="'+value+'">'; } for (x in sval['choices'][value]){ fontHtml += option((jQuery.isNumeric(x) ? sval['choices'][value][x] : x), sval['choices'][value][x]); } // Close the optgroup if it was opened if(value !== 'default'){ fontHtml += '</optgroup>'; } } pagelayer_fontHtmlArray[sk] = fontHtml; } } // Show hide typography jQuery(document).on('click.pagelayer-typo-icon', function (e){ var target = jQuery(e.target); var isTypo = target.closest('.pagelayer-control-typo'); var isIcon = target.closest('.pagelayer-control-typo-icon'); var typoHolder = isIcon.closest('.pagelayer-control-typo-holder'); if(isTypo.length > 0){ return; } if(isIcon.length > 0){ // Set default value typoHolder.find('select[data-font-key]').each(function(){ var ref = jQuery(this), name = ref.attr('data-font-key'), value = ref.attr('data-default-value'); ref.html(pagelayer_fontHtmlArray[name]).val(value); ref.removeAttr('data-font-key'); }); var globalInput = typoHolder.find('.pagelayer-global-font-input'); if(!pagelayer_empty(globalInput)){ // Show the global values if is not customize typoHolder.find('.pagelayer-control-typo-fields').attr('pagelayer-set-global', 1); typoHolder.find('select, input').each(function(){ var sEle = jQuery(this); var val = sEle.val(); if(pagelayer_empty(val)){ return true; } sEle.closest('.pagelayer-control-typo-fields').removeAttr('pagelayer-set-global'); }); typoHolder.find('[pagelayer-set-global="1"] .pagelayer-typo-global-default').trigger('click'); } typoHolder.find('.pagelayer-control-typo').slideToggle(100); return; } jQuery('.pagelayer-control-typo').slideUp(100); }); // Show hide global color option jQuery(document).on('click.pagelayer-global-color-icon', function (e){ var target = jQuery(e.target); var isGcolor = target.closest('.pagelayer-global-color-list'); var isGIcon = target.closest('.pagelayer-control-global-color-icon'); if(isGcolor.length > 0){ return; } if(isGIcon.length > 0){ var listEle = isGIcon.closest('li').find('.pagelayer-global-color-list'); jQuery('.pagelayer-global-color-list').not(listEle).slideUp(100); listEle.slideToggle(100); return; } jQuery('.pagelayer-global-color-list').slideUp(100); }); // Hide global color option jQuery(document).on('focus', '.wp-color-result', function(e){ jQuery('.pagelayer-global-color-list').slideUp(100); }); // Show hide global fonts option jQuery('#customize-theme-controls').on('click.pagelayer-global-typo-icon', function (e){ var target = jQuery(e.target); var isGcolor = target.closest('.pagelayer-global-font-list'); var isGIcon = target.closest('.pagelayer-control-global-typo-icon'); var typoHolder = isGIcon.closest('.pagelayer-control-typo-holder'); if(isGcolor.length > 0){ return; } if(isGIcon.length > 0){ typoHolder.find('.pagelayer-global-font-list').slideToggle(100); return; } jQuery('.pagelayer-global-font-list').slideUp(100); }); // Device handler jQuery('#customize-theme-controls').on('click', '.pagelayer-devices button', function(e){ e.stopPropagation(); var device = jQuery(this).data('device'); var devices = {'desktop' : 'tablet', 'tablet' : 'mobile', 'mobile' : 'desktop'}; jQuery('.devices-wrapper .devices [data-device="'+devices[device]+'"]').click(); }); // Add attr to detect device jQuery('#customize-theme-controls').attr('data-device-detector', 'desktop'); // Device handler jQuery('.devices-wrapper .devices button[data-device]').on('click', function(e){ e.stopPropagation(); var device = jQuery(this).data('device'); jQuery('.pagelayer-devices .active-device').removeClass('active-device'); jQuery('.pagelayer-devices [data-device="'+device+'"]').addClass('active-device'); jQuery('[data-device-detector]').attr('data-device-detector', device); }); // Units handler jQuery('.pagelayer-units').each(function(){ var units = jQuery(this); var uList = units.find('[data-unit]'); var input = units.find('.pagelayer-unit-input'); var uActive = units.find('[data-unit="'+input.val()+'"]'); units.find('[data-unit]').on('click', function(){ var uEle = jQuery(this); uList.removeClass('active'); uEle.addClass('active'); input.val(uEle.data('unit')).trigger('input'); }); if(uActive.length > 0){ uActive.click(); return; } //uList.first().click(); }); // Accordion Tab handlers jQuery('.pagelayer-accordion-tab').on('click', function(){ var toggle = jQuery(this); var allToggle = toggle.closest('ul').find('.pagelayer-accordion-tab').not(toggle); allToggle.nextUntil('.pagelayer-accordion-tab').slideUp(); allToggle.removeClass('pagelayer-active-accordion-tab') toggle.nextUntil('.pagelayer-accordion-tab').slideToggle(); toggle.toggleClass('pagelayer-active-accordion-tab'); var dash = toggle.find('.pagelayer-customize-heading .dashicons'); var allDash = toggle.closest('ul').find('.pagelayer-accordion-tab .pagelayer-customize-heading .dashicons'); allDash.addClass('dashicons-arrow-right-alt2'); allDash.removeClass('dashicons-arrow-down-alt2'); if(toggle.hasClass('pagelayer-active-accordion-tab')){ dash.addClass('dashicons-arrow-down-alt2'); dash.removeClass('dashicons-arrow-right-alt2'); } }); // Close all accordion tabs jQuery('.pagelayer-accordion-tab').nextUntil('.pagelayer-accordion-tab').hide(); // Link padding control field handler jQuery('.pagelayer-control-padding').each(function(){ pagelayer_control_padding_handler(jQuery(this)); }); // Link Global Color Palette jQuery('.pagelayer-global-setting-color .dashicons').click(function(){ jQuery('#accordion-section-pagelayer_global_colors_sec .accordion-section-title').click(); }); // Link Global Font Palette jQuery('.pagelayer-global-setting-font .dashicons-admin-generic').click(function(){ jQuery('#accordion-section-pagelayer_global_fonts_sec .accordion-section-title').click(); }); // Color Palette Custom Control pagelayer_color_palette_control_handler(); // Color Palette Custom Control pagelayer_font_palette_control_handler(); // Global color list handler pagelayer_global_color_list_handler(); // Global font list handler pagelayer_global_font_list_handler(); // Slider handler pagelayer_control_slider_handler(); }); // Global font list handler function pagelayer_global_font_list_handler(){ var font_list = ''; // Create global font list for(var font in pagelayer_global_fonts){ font_list += '<div class="pagelayer-global-font-list-item" data-global-id="'+font+'">'+ '<span class="pagelayer-global-font-title">'+ pagelayer_global_fonts[font]['title'] +'</span>'+ '</div>'; } jQuery('.customize-control-pagelayer-typo-control .pagelayer-control-typo-holder').each(function(){ var fHolder = jQuery(this); var fList = fHolder.find('.pagelayer-global-font-list'); if(fList.length < 1){ return; } // Add list of font list fList.append(font_list); var globalInput = fHolder.find('.pagelayer-global-font-input'); var selectfont = globalInput.data('key'); // Restore global value fHolder.find('.pagelayer-typo-global-default').on('click', function(e){ e.preventDefault(); e.stopPropagation(); var sEle = jQuery(this); var fieldHolder = sEle.closest('.pagelayer-control-typo-fields'); var globalID = globalInput.val(); if(pagelayer_empty(globalID) || pagelayer_empty(pagelayer_global_fonts[globalID])){ return; } var allInput = fieldHolder.find('select, input'); var name = allInput.first().attr('name'); var setFonts = pagelayer_global_fonts[globalID]['value']; // Set default var modes = {desktop: '', tablet: '_tablet', mobile: '_mobile'}; var val = ''; fieldHolder.attr('pagelayer-set-global', 1); allInput.val(val).trigger('change'); 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]; } fieldHolder.find('[name="'+name+modes[mode]+'"]').val(_val); } return; } allInput.val(val); }); if(fList.find('[data-global-id="'+selectfont+'"]').length > 0){ fList.find('[data-global-id="'+selectfont+'"]').addClass('pagelayer-global-selected'); // Set active fHolder.find('.pagelayer-control-global-typo-icon').addClass('pagelayer-active-global'); } // On change any field we need to handle for the global fHolder.find('select, input').on('input', function(){ var sEle = jQuery(this); var fieldHolder = sEle.closest('.pagelayer-control-typo-fields'); if(fieldHolder.attr('pagelayer-set-global') == '1'){ fieldHolder.removeAttr('pagelayer-set-global'); fieldHolder.find('select, input').trigger('change'); } }); }); jQuery('#customize-theme-controls').on('click', '.pagelayer-global-font-list-item', function(){ var listItem = jQuery(this); var globalID = listItem.data('global-id'); var listHolder = listItem.closest('.pagelayer-global-font-list'); var holder = listItem.closest('.pagelayer-control-typo-holder'); var allInputs = holder.find('select, input'); // Remove global font if(listItem.hasClass('pagelayer-global-selected')){ listItem.removeClass('pagelayer-global-selected'); holder.find('.pagelayer-control-global-typo-icon').removeClass('pagelayer-active-global'); holder.find('.pagelayer-global-font-input').val(''); holder.removeClass('pagelayer-global-on'); allInputs.trigger('input'); allInputs.closest('.pagelayer-control-typo-fields').removeAttr('pagelayer-set-global'); listHolder.hide(); return; } // Remove previous selecttion listHolder.find('.pagelayer-global-selected').removeClass('pagelayer-global-selected') listHolder.hide(); listItem.addClass('pagelayer-global-selected'); var key = holder.find( '.pagelayer-global-font-input' ).attr( 'data-customize-setting-link' ); // Empty all the typo allInputs.val('').trigger('input'); allInputs.closest('.pagelayer-control-typo-fields').attr('pagelayer-set-global', 1); holder.addClass('pagelayer-global-on'); // Set the actual option value to empty string. wp.customize( key, function( obj ) { obj.set(globalID); }); // Apply all global values holder.find('.pagelayer-typo-global-default').click(); holder.find('.pagelayer-control-global-typo-icon').addClass('pagelayer-active-global'); }); } // Global color list handler function pagelayer_global_color_list_handler(){ jQuery(document).on('click', '.pagelayer-global-color-list-item', function(e, skip_update){ skip_update = skip_update || false; var listItem = jQuery(this); var globalID = listItem.data('global-id'); var listHolder = listItem.closest('.pagelayer-global-color-list'); // Remove previous selecttion listHolder.find('.pagelayer-global-selected').removeClass('pagelayer-global-selected'); listItem.addClass('pagelayer-global-selected'); listHolder.hide(); var input = listItem.closest('li').find( '.pagelayer-alpha-color-control' ) var code = '$'+globalID; var color = pagelayer_global_colors[globalID]['value']; input.unbind('change.pagelayer_global input.pagelayer_global color_change.pagelayer_global'); if(!skip_update){ var key = input.attr( 'data-customize-setting-link' ); // Set the actual option value to empty string. wp.customize( key, function( obj ) { obj.set(code); }); } // Set the actual option value to empty string. input.val( color ); input.closest('.wp-picker-container').find('.wp-color-result').css({'background-color': color}); input.on('change.pagelayer_global input.pagelayer_global color_change.pagelayer_global', function(){ var colorCode = jQuery(this).val(); if(jQuery.trim(colorCode) == color){ return; } listItem.closest('li').find('.pagelayer-control-global-color-icon').removeClass('pagelayer-active-global'); listHolder.find('.pagelayer-global-selected').removeClass('pagelayer-global-selected'); }); listItem.closest('li').find('.pagelayer-control-global-color-icon').addClass('pagelayer-active-global'); }); jQuery('.pagelayer-global-color-list-item.pagelayer-global-selected').trigger('click', [true]); } var pagelayer_global_colors_timmer = {}; // Color palette Custom Control function pagelayer_color_palette_control_handler(){ var global_palette = jQuery('#customize-control-pagelayer_global_colors'); // Get the values from the repeater input fields and add to our hidden field var pagelayerGetAllInputs = function() { var pagelayer_colors_palette = {}; global_palette.find('.pagelayer-alpha-color-control').each(function(){ var cEle = jQuery(this); var id = cEle.data('id'); pagelayer_colors_palette[id] = { 'title' : cEle.closest('.pagelayer-color-holder').find('.pagelayer-color-title').text(), 'value' : cEle.val(), } }); var inputValues = JSON.stringify(pagelayer_colors_palette); // Add all the values from our repeater fields to the hidden field (which is the one that actually gets saved) global_palette.find('.pagelayer-color-palette-data').val(inputValues).trigger('change'); } // Append a new row to our list of elements var pagelayer_add_row = function(ele, val = ''){ var id = pagelayer_generate_randstr(6); var name = ele.find('.pagelayer-color-holder').length - 3; var newRow = jQuery('<div class="pagelayer-color-holder"><span class="pagelayer-color-title" contenteditable="true">Color #'+name+'</span><span class="pagelayer-color-controls">'+val+'</span><span class="customize-control-color-repeater-delete"><span class="dashicons dashicons-no-alt"></span></span><input class="pagelayer-alpha-color-control" type="text" data-show-opacity="true" data-palette="true" data-default-color="'+val+'" data-id="'+id+'" data-title="New Color"/></div>'); ele.find('.pagelayer-color-holder:last').after(newRow); pagelayer_alpha_color_control_init(); // Update global variable ele.find('.pagelayer-alpha-color-control').trigger('color_change'); } jQuery(document).on('color_change change', '#customize-control-pagelayer_global_colors .pagelayer-alpha-color-control, #customize-control-pagelayer_global_colors .pagelayer-color-title', function(){ var cEle = jQuery(this); clearTimeout(pagelayer_global_colors_timmer); pagelayer_global_colors_timmer = setTimeout(function(){ cEle.closest('.pagelayer-color-holder').find('.pagelayer-color-controls').html(cEle.val()); pagelayerGetAllInputs(); }, 300); }); jQuery(document).on('input', '#customize-control-pagelayer_global_colors .pagelayer-color-title', function(){ clearTimeout(pagelayer_global_colors_timmer); pagelayer_global_colors_timmer = setTimeout(function(){ pagelayerGetAllInputs(); }, 500); }); // Add new item jQuery('.customize-control-color-repeater-add').click(function(event) { event.preventDefault(); pagelayer_add_row(jQuery(this).parent()); }); // Remove item starting from it's parent element jQuery(document).on('click', '.pagelayer-color-holder .customize-control-color-repeater-delete .dashicons', function(event) { event.preventDefault(); var numItems = jQuery(this).closest('.pagelayer-color-holder').remove(); pagelayerGetAllInputs(); }); } // Font palette Custom Control function pagelayer_font_palette_control_handler(){ var global_palette = jQuery('#customize-control-pagelayer_global_fonts'); // Get the values from the repeater input fields and add to our hidden field var pagelayerGetAllInputs = function() { var pagelayer_colors_palette = {}; global_palette.find('.pagelayer-font-holder').each(function(){ var cEle = jQuery(this); var id = cEle.data('id'); var data = {}; var array = cEle.find('input, textarea, select').serializeArray(); jQuery.each(array, function () { if(this.value == ''){ return; } var name = this.name; var value = this.value; // Is multi array if(name.indexOf("[") > -1){ var nameArray = name.replaceAll(']', '').split('\['), base = nameArray.shift(), last = nameArray.pop(); if(typeof data[base] != 'object'){ data[base] = {}; } // Set base object as refrence var _val = data[base]; for(key in nameArray){ if(typeof _val[nameArray[key]] != 'object'){ _val[nameArray[key]] = {}; } // Change the refrence of object _val = _val[nameArray[key]]; } _val[last] = value; return; } data[name] = value; }); pagelayer_colors_palette[id] = { 'title' : cEle.children('.pagelayer-font-title').text(), 'value' : data, } }); var inputValues = JSON.stringify(pagelayer_colors_palette); // Add all the values from our repeater fields to the hidden field (which is the one that actually gets saved) global_palette.find('.pagelayer-font-palette-data').val(inputValues).trigger('change'); } // Append a new row to our list of elements var pagelayer_add_row = function(ele, val = ''){ var id = pagelayer_generate_randstr(6); var name = ele.find('.pagelayer-font-holder').length - 3; var fontHtml = ''; var option = function(val, lang){ var selected = '';//(val != prop.c['val']) ? '' : 'selected="selected"'; var lang = lang || 'Default'; return '<option value="'+val+'" '+selected+'>'+lang+'</option>'; } fontHtml += '<div class="pagelayer-font-holder" data-id="'+id+'"><span class="pagelayer-font-title" contenteditable="true">New Font #'+ name +'</span><span class="customize-control-font-repeater-delete"><span class="dashicons dashicons-no-alt"></span></span><div class="pagelayer-control-typo-holder"><span class="pagelayer-control-typo-icon dashicons dashicons-edit"></span><div class="pagelayer-control-typo">'; for(var sk in pagelayer_global_font_settings){ var sval = pagelayer_global_font_settings[sk]; fontHtml += '<div class="pagelayer-control-typo-fields">'+ '<label class="pagelayer-control-typo-fields-label">'+sval['label']; if('responsive' in sval){ fontHtml += '<span class="pagelayer-devices">'+ '<button type="button" class="active-device" aria-pressed="true" data-device="desktop">'+ '<i class="dashicons dashicons-desktop"></i>'+ '</button>'+ '<button type="button"aria-pressed="false" data-device="tablet">'+ '<i class="dashicons dashicons-tablet"></i>'+ '</button>'+ '<button type="button" aria-pressed="false" data-device="mobile">'+ '<i class="dashicons dashicons-smartphone"></i>'+ '</button>'+ '</span>'; } fontHtml += '</label>'; if('choices' in sval){ fontHtml += '<select name="'+ sk +'">'; for( var value in sval['choices'] ) { if(typeof sval['choices'][value] !== 'object'){ fontHtml += option(value, sval['choices'][value]); continue; } if(value != 'default'){ fontHtml += '<optgroup label="'+value+'">'; } for (x in sval['choices'][value]){ fontHtml += option((jQuery.isNumeric(x) ? sval['choices'][value][x] : x), sval['choices'][value][x]); } } fontHtml += '</select>'; }else{ fontHtml += '<input type="number" name="'+ sk +'">'; } fontHtml += '</div>'; } fontHtml += '</div></div></div>'; ele.find('.customize-control-font-repeater-add').before(fontHtml); } jQuery(document).on('input', '#customize-control-pagelayer_global_fonts input, #customize-control-pagelayer_global_fonts textarea, #customize-control-pagelayer_global_fonts select', function(){ clearTimeout(pagelayer_global_colors_timmer); pagelayer_global_colors_timmer = setTimeout(function(){ pagelayerGetAllInputs(); }, 300); }); jQuery(document).on('input', '#customize-control-pagelayer_global_fonts .pagelayer-font-title', function(){ clearTimeout(pagelayer_global_colors_timmer); pagelayer_global_colors_timmer = setTimeout(function(){ pagelayerGetAllInputs(); }, 500); }); // Add new item jQuery('.customize-control-font-repeater-add').click(function(event) { event.preventDefault(); pagelayer_add_row(jQuery(this).parent()); pagelayerGetAllInputs(); }); // Remove item starting from it's parent element jQuery('#customize-theme-controls').on('click', '.pagelayer-font-holder .customize-control-font-repeater-delete .dashicons', function(event) { event.preventDefault(); var numItems = jQuery(this).closest('.pagelayer-font-holder').remove(); pagelayerGetAllInputs(); }); } // Padding handler function pagelayer_control_padding_handler(jEle){ var linked = jEle.find('.dashicons-admin-links'); var inputs = jEle.find('.pagelayer-padding-input'); var is_same = true; var first_val = jEle.find('.pagelayer-padding-input').first().val(); jEle.find('.pagelayer-padding-input').each(function(){ if(jQuery(this).val() == first_val){ return; } is_same = false; return false; }); if(is_same){ linked.addClass('pagelayer-padding-linked'); } linked.on('click', function (e){ jQuery(this).toggleClass('pagelayer-padding-linked'); }); inputs.on('change', function(){ // Are the values linked if(! linked.hasClass('pagelayer-padding-linked')){ return; } var val = jQuery(this).val(); inputs.each(function(){ jQuery(this).val(val); jQuery(this).trigger('input'); }); }); } /** * Alpha Color Picker JS * * This file includes several helper functions and the core control JS. */ function pagelayer_alpha_color_control_init(){ var timeOut = 0; // Loop over each control and transform it into our color picker. jQuery( '.pagelayer-alpha-color-control' ).each( function() { // Scope the vars. var $control, startingColor, paletteInput, showOpacity, defaultColor, palette, colorPickerOptions, $container, $alphaSlider, alphaVal, sliderOptions; // Store the control instance. $control = jQuery( this ); if($control.closest('.wp-picker-holder').length > 0){ return; } setTimeout(function(){ // Get a clean starting value for the option. startingColor = $control.val().replace( /\s+/g, '' ); // Get some data off the control. paletteInput = $control.attr( 'data-palette' ); showOpacity = $control.attr( 'data-show-opacity' ); defaultColor = $control.attr( 'data-default-color' ); // Process the palette. if ( paletteInput.indexOf( '|' ) !== -1 ) { palette = paletteInput.split( '|' ); } else if ( 'false' == paletteInput ) { palette = false; } else { palette = true; } // Set up the options that we'll pass to wpColorPicker(). colorPickerOptions = { change: function( event, ui ) { var key, value, alpha, $transparency; key = $control.attr( 'data-customize-setting-link' ); value = $control.wpColorPicker( 'color' ); // Set the opacity value on the slider handle when the default color button is clicked. if ( defaultColor == value ) { alpha = pagelayer_get_alpha_value_from_color( value ); $alphaSlider.find( '.ui-slider-handle' ).text( alpha ); } // Send ajax request to wp.customize to trigger the Save action. wp.customize( key, function( obj ) { obj.set( value ); }); $transparency = $container.find( '.transparency' ); // Always show the background color of the opacity slider at 100% opacity. $transparency.css( 'background-color', ui.color.toString( 'no-alpha' ) ); $control.trigger('color_change'); }, palettes: palette // Use the passed in palette. }; // Create the colorpicker. $control.wpColorPicker( colorPickerOptions ); $container = $control.parents( '.wp-picker-container:first' ); // Insert our opacity slider. jQuery( '<div class="alpha-color-picker-container">' + '<div class="min-click-zone click-zone"></div>' + '<div class="max-click-zone click-zone"></div>' + '<div class="alpha-slider"></div>' + '<div class="transparency"></div>' + '</div>' ).appendTo( $container.find( '.wp-picker-holder' ) ); $alphaSlider = $container.find( '.alpha-slider' ); // If starting value is in format RGBa, grab the alpha channel. alphaVal = pagelayer_get_alpha_value_from_color( startingColor ); // Set up jQuery UI slider() options. sliderOptions = { create: function( event, ui ) { var value = jQuery( this ).slider( 'value' ); // Set up initial values. jQuery( this ).find( '.ui-slider-handle' ).text( value ); jQuery( this ).siblings( '.transparency ').css( 'background-color', startingColor ); }, value: alphaVal, range: 'max', step: 1, min: 0, max: 100, animate: 300 }; // Initialize jQuery UI slider with our options. $alphaSlider.slider( sliderOptions ); // Maybe show the opacity on the handle. if( 'true' == showOpacity ){ $alphaSlider.find( '.ui-slider-handle' ).addClass( 'show-opacity' ); } // Move input box inside the picker holder $control.closest('.wp-picker-input-wrap').each(function () { jQuery(this).next('.wp-picker-holder').prepend(jQuery(this)); }); // Bind event handlers for the click zones. $container.find( '.min-click-zone' ).on( 'click', function() { pagelayer_update_alpha_value_on_color_control( 0, $control, $alphaSlider, true ); }); $container.find( '.max-click-zone' ).on( 'click', function() { pagelayer_update_alpha_value_on_color_control( 100, $control, $alphaSlider, true ); }); // Bind event handler for clicking on a palette color. $container.find( '.iris-palette' ).on( 'click', function() { var color, alpha; color = jQuery( this ).css( 'background-color' ); alpha = pagelayer_get_alpha_value_from_color( color ); pagelayer_update_alpha_value_on_alpha_slider( alpha, $alphaSlider ); // Sometimes Iris doesn't set a perfect background-color on the palette, // for example rgba(20, 80, 100, 0.3) becomes rgba(20, 80, 100, 0.298039). // To compensante for this we round the opacity value on RGBa colors here // and save it a second time to the color picker object. if ( alpha != 100 ) { color = color.replace( /[^,]+(?=\))/, ( alpha / 100 ).toFixed( 2 ) ); } $control.wpColorPicker( 'color', color ); }); // Bind event handler for clicking on the 'Clear' button. $container.find( '.button.wp-picker-clear' ).on( 'click', function() { var key = $control.attr( 'data-customize-setting-link' ); // The #fff color is delibrate here. This sets the color picker to white instead of the // defult black, which puts the color picker in a better place to visually represent empty. $control.wpColorPicker( 'color', '' ); // Set the actual option value to empty string. wp.customize( key, function( obj ) { obj.set( '' ); }); pagelayer_update_alpha_value_on_alpha_slider( 100, $alphaSlider ); }); // Bind event handler for clicking on the 'Default' button. $container.find( '.button.wp-picker-default' ).on( 'click', function() { var alpha = pagelayer_get_alpha_value_from_color( defaultColor ); pagelayer_update_alpha_value_on_alpha_slider( alpha, $alphaSlider ); }); // Bind event handler for typing or pasting into the input. $control.on( 'input', function() { var value = jQuery( this ).val(); var alpha = pagelayer_get_alpha_value_from_color( value ); pagelayer_update_alpha_value_on_alpha_slider( alpha, $alphaSlider ); }); // Update all the things when the slider is interacted with. $alphaSlider.slider().on( 'slide', function( event, ui ) { var alpha = parseFloat( ui.value ) / 100.0; pagelayer_update_alpha_value_on_color_control( alpha, $control, $alphaSlider, false ); // Change value shown on slider handle. jQuery( this ).find( '.ui-slider-handle' ).text( ui.value ); }); }, timeOut); timeOut += 20; }); } /** * Override the stock color.js toString() method to add support for * outputting RGBa or Hex. */ Color.prototype.toString = function( flag ) { // If our no-alpha flag has been passed in, output RGBa value with 100% opacity. // This is used to set the background color on the opacity slider during color changes. if ( 'no-alpha' == flag ) { return this.toCSS( 'rgba', '1' ).replace( /\s+/g, '' ); } // If we have a proper opacity value, output RGBa. if ( 1 > this._alpha ) { return this.toCSS( 'rgba', this._alpha ).replace( /\s+/g, '' ); } // Proceed with stock color.js hex output. var hex = parseInt( this._color, 10 ).toString( 16 ); if ( this.error ) { return ''; } if ( hex.length < 6 ) { for ( var i = 6 - hex.length - 1; i >= 0; i-- ) { hex = '0' + hex; } } return '#' + hex; }; /** * Given an RGBa, RGB, or hex color value, return the alpha channel value. */ function pagelayer_get_alpha_value_from_color( value ) { var alphaVal; // Remove all spaces from the passed in value to help our RGBa regex. value = value.replace( / /g, '' ); if ( value.match( /rgba\(\d+\,\d+\,\d+\,([^\)]+)\)/ ) ) { alphaVal = parseFloat( value.match( /rgba\(\d+\,\d+\,\d+\,([^\)]+)\)/ )[1] ).toFixed(2) * 100; alphaVal = parseInt( alphaVal ); } else { alphaVal = 100; } return alphaVal; } /** * Force update the alpha value of the color picker object and maybe the alpha slider. */ function pagelayer_update_alpha_value_on_color_control( alpha, $control, $alphaSlider, update_slider ) { var iris, colorPicker, color; iris = $control.data( 'a8cIris' ); colorPicker = $control.data( 'wpWpColorPicker' ); // Set the alpha value on the Iris object. iris._color._alpha = alpha; // Store the new color value. color = iris._color.toString(); // Set the value of the input. $control.val( color ).trigger('color_change'); // Update the background color of the color picker. colorPicker.toggler.css({ 'background-color': color }); // Maybe update the alpha slider itself. if ( update_slider ) { pagelayer_update_alpha_value_on_alpha_slider( alpha, $alphaSlider ); } // Update the color value of the color picker object. $control.wpColorPicker( 'color', color ); } /** * Update the slider handle position and label. */ function pagelayer_update_alpha_value_on_alpha_slider( alpha, $alphaSlider ){ $alphaSlider.slider( 'value', alpha ); $alphaSlider.find( '.ui-slider-handle' ).text( alpha.toString() ); } /** * Generates random string. */ // Generates a random string of "n" characters function pagelayer_generate_randstr(n, special){ var text = ''; var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; special = special || 0; if(special){ possible = possible + '&#$%@'; } for(var i=0; i < n; i++){ text += possible.charAt(Math.floor(Math.random() * possible.length)); } return text; }; // 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; }; // Slider handler function pagelayer_control_slider_handler(){ // Change the value of the input field as the slider is moved jQuery('.pagelayer-slider').on('input', function(event, ui) { var sliderValue = jQuery(this).val(); jQuery(this).parent().find('.customize-control-slider-value').val(sliderValue).trigger('input'); }); // Update slider if the input field loses focus as it's most likely changed jQuery('.customize-control-slider-value').on('change', function() { var resetValue = jQuery(this).val(); var slider = jQuery(this).parent().find('.pagelayer-slider'); var sliderMinValue = parseInt(slider.attr('min')); var sliderMaxValue = parseInt(slider.attr('max')); // Make sure our manual input value doesn't exceed the minimum & maxmium values if(resetValue < sliderMinValue) { resetValue = sliderMinValue; jQuery(this).val(resetValue).trigger('input'); } if(resetValue > sliderMaxValue) { resetValue = sliderMaxValue; jQuery(this).val(resetValue).trigger('input'); } slider.val(resetValue); }); } trumbowyg.min.js 0000644 00000057742 15100021164 0007730 0 ustar 00 /** Trumbowyg v2.14.0 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */ jQuery.trumbowyg={langs:{en:{viewHTML:"View HTML",undo:"Undo",redo:"Redo",formatting:"Formatting",p:"Paragraph",blockquote:"Quote",code:"Code",header:"Header",bold:"Bold",italic:"Italic",strikethrough:"Stroke",underline:"Underline",strong:"Strong",em:"Emphasis",del:"Deleted",superscript:"Superscript",subscript:"Subscript",unorderedList:"Unordered list",orderedList:"Ordered list",insertImage:"Insert Image",link:"Link",createLink:"Insert link",unlink:"Remove link",justifyLeft:"Align Left",justifyCenter:"Align Center",justifyRight:"Align Right",justifyFull:"Align Justify",horizontalRule:"Insert horizontal rule",removeformat:"Remove format",fullscreen:"Fullscreen",close:"Close",submit:"Confirm",reset:"Cancel",required:"Required",description:"Description",title:"Title",text:"Text",target:"Target",width:"Width"}},plugins:{},svgPath:null,hideButtonTexts:null},Object.defineProperty(jQuery.trumbowyg,"defaultOptions",{value:{lang:"en",fixedBtnPane:!1,fixedFullWidth:!1,autogrow:!1,autogrowOnEnter:!1,imageWidthModalEdit:!1,prefix:"trumbowyg-",semantic:!0,resetCss:!1,removeformatPasted:!1,tagsToRemove:[],tagsToKeep:["hr","img","embed","iframe","input"],btns:[["viewHTML"],["undo","redo"],["formatting"],["strong","em","del"],["superscript","subscript"],["link"],["insertImage"],["justifyLeft","justifyCenter","justifyRight","justifyFull"],["unorderedList","orderedList"],["horizontalRule"],["removeformat"],["fullscreen"]],btnsDef:{},inlineElementsSelector:"a,abbr,acronym,b,caption,cite,code,col,dfn,dir,dt,dd,em,font,hr,i,kbd,li,q,span,strikeout,strong,sub,sup,u",pasteHandlers:[],plugins:{},urlProtocol:!1,minimalLinks:!1},writable:!1,enumerable:!0,configurable:!1}),function(e,t,n,a){"use strict";var o="tbwconfirm",r="tbwcancel";a.fn.trumbowyg=function(e,t){var n="trumbowyg";if(e===Object(e)||!e)return this.each(function(){a(this).data(n)||a(this).data(n,new i(this,e))});if(1===this.length)try{var o=a(this).data(n);switch(e){case"execCmd":return o.execCmd(t.cmd,t.param,t.forceCss);case"openModal":return o.openModal(t.title,t.content);case"closeModal":return o.closeModal();case"openModalInsert":return o.openModalInsert(t.title,t.fields,t.callback);case"saveRange":return o.saveRange();case"getRange":return o.range;case"getRangeText":return o.getRangeText();case"restoreRange":return o.restoreRange();case"enable":return o.setDisabled(!1);case"disable":return o.setDisabled(!0);case"toggle":return o.toggle();case"destroy":return o.destroy();case"empty":return o.empty();case"html":return o.html(t)}}catch(r){}return!1};var i=function(o,r){var i=this,s="trumbowyg-icons",l=a.trumbowyg;i.doc=o.ownerDocument||n,i.$ta=a(o),i.$c=a(o),r=r||{},null!=r.lang||null!=l.langs[r.lang]?i.lang=a.extend(!0,{},l.langs.en,l.langs[r.lang]):i.lang=l.langs.en,i.hideButtonTexts=null!=l.hideButtonTexts?l.hideButtonTexts:r.hideButtonTexts;var d=null!=l.svgPath?l.svgPath:r.svgPath;if(i.hasSvg=d!==!1,i.svgPath=i.doc.querySelector("base")?t.location.href.split("#")[0]:"",0===a("#"+s,i.doc).length&&d!==!1){if(null==d){for(var c=n.getElementsByTagName("script"),u=0;u<c.length;u+=1){var g=c[u].src,f=g.match("trumbowyg(.min)?.js");null!=f&&(d=g.substring(0,g.indexOf(f[0]))+"ui/icons.svg")}null==d&&console.warn("You must define svgPath: https://goo.gl/CfTY9U")}var h=i.doc.createElement("div");h.id=s,i.doc.body.insertBefore(h,i.doc.body.childNodes[0]),a.ajax({async:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",dataType:"xml",crossDomain:!0,url:d,data:null,beforeSend:null,complete:null,success:function(e){h.innerHTML=(new XMLSerializer).serializeToString(e.documentElement)}})}var p=i.lang.header,m=function(){return(t.chrome||t.Intl&&Intl.v8BreakIterator)&&"CSS"in t};i.btnsDef={viewHTML:{fn:"toggle","class":"trumbowyg-not-disable"},undo:{isSupported:m,key:"Z"},redo:{isSupported:m,key:"Y"},p:{fn:"formatBlock"},blockquote:{fn:"formatBlock"},h1:{fn:"formatBlock",title:p+" 1"},h2:{fn:"formatBlock",title:p+" 2"},h3:{fn:"formatBlock",title:p+" 3"},h4:{fn:"formatBlock",title:p+" 4"},subscript:{tag:"sub"},superscript:{tag:"sup"},bold:{key:"B",tag:"b"},italic:{key:"I",tag:"i"},underline:{tag:"u"},strikethrough:{tag:"strike"},strong:{fn:"bold",key:"B"},em:{fn:"italic",key:"I"},del:{fn:"strikethrough"},createLink:{key:"K",tag:"a"},unlink:{},insertImage:{},justifyLeft:{tag:"left",forceCss:!0},justifyCenter:{tag:"center",forceCss:!0},justifyRight:{tag:"right",forceCss:!0},justifyFull:{tag:"justify",forceCss:!0},unorderedList:{fn:"insertUnorderedList",tag:"ul"},orderedList:{fn:"insertOrderedList",tag:"ol"},horizontalRule:{fn:"insertHorizontalRule"},removeformat:{},fullscreen:{"class":"trumbowyg-not-disable"},close:{fn:"destroy","class":"trumbowyg-not-disable"},formatting:{dropdown:["p","blockquote","h1","h2","h3","h4"],ico:"p"},link:{dropdown:["createLink","unlink"]}},i.o=a.extend(!0,{},l.defaultOptions,r),i.o.hasOwnProperty("imgDblClickHandler")||(i.o.imgDblClickHandler=i.getDefaultImgDblClickHandler()),i.urlPrefix=i.setupUrlPrefix(),i.disabled=i.o.disabled||"TEXTAREA"===o.nodeName&&o.disabled,r.btns?i.o.btns=r.btns:i.o.semantic||(i.o.btns[3]=["bold","italic","underline","strikethrough"]),a.each(i.o.btnsDef,function(e,t){i.addBtnDef(e,t)}),i.eventNamespace="trumbowyg-event",i.keys=[],i.tagToButton={},i.tagHandlers=[],i.pasteHandlers=[].concat(i.o.pasteHandlers),i.isIE=e.userAgent.indexOf("MSIE")!==-1||e.appVersion.indexOf("Trident/")!==-1,i.init()};i.prototype={DEFAULT_SEMANTIC_MAP:{b:"strong",i:"em",s:"del",strike:"del",div:"p"},init:function(){var e=this;e.height=e.$ta.height(),e.initPlugins();try{e.doc.execCommand("enableObjectResizing",!1,!1),e.doc.execCommand("defaultParagraphSeparator",!1,"p")}catch(t){}e.buildEditor(),e.buildBtnPane(),e.fixedBtnPaneEvents(),e.buildOverlay(),setTimeout(function(){e.disabled&&e.setDisabled(!0),e.$c.trigger("tbwinit")})},addBtnDef:function(e,t){this.btnsDef[e]=t},setupUrlPrefix:function(){var e=this.o.urlProtocol;if(e)return"string"!=typeof e?"https://":/:\/\/$/.test(e)?e:e+"://"},buildEditor:function(){var e=this,n=e.o.prefix,o="";e.$box=a("<div/>",{"class":n+"box "+n+"editor-visible "+n+e.o.lang+" trumbowyg"}),e.isTextarea=e.$ta.is("textarea"),e.isTextarea?(o=e.$ta.val(),e.$ed=a("<div/>"),e.$box.insertAfter(e.$ta).append(e.$ed,e.$ta)):(e.$ed=e.$ta,o=e.$ed.html(),e.$ta=a("<textarea/>",{name:e.$ta.attr("id"),height:e.height}).val(o),e.$box.insertAfter(e.$ed).append(e.$ta,e.$ed),e.syncCode()),e.$ta.addClass(n+"textarea").attr("tabindex",-1),e.$ed.addClass(n+"editor").attr({contenteditable:!0,dir:e.lang._dir||"ltr"}).html(o),e.o.tabindex&&e.$ed.attr("tabindex",e.o.tabindex),e.$c.is("[placeholder]")&&e.$ed.attr("placeholder",e.$c.attr("placeholder")),e.$c.is("[spellcheck]")&&e.$ed.attr("spellcheck",e.$c.attr("spellcheck")),e.o.resetCss&&e.$ed.addClass(n+"reset-css"),e.o.autogrow||e.$ta.add(e.$ed).css({height:e.height}),e.semanticCode(),e.o.autogrowOnEnter&&e.$ed.addClass(n+"autogrow-on-enter");var r,i=!1,s=!1,l="keyup";e.$ed.on("dblclick","img",e.o.imgDblClickHandler).on("keydown",function(t){if((t.ctrlKey||t.metaKey)&&!t.altKey){i=!0;var n=e.keys[String.fromCharCode(t.which).toUpperCase()];try{return e.execCmd(n.fn,n.param),!1}catch(a){}}}).on("compositionstart compositionupdate",function(){s=!0}).on(l+" compositionend",function(t){if("compositionend"===t.type)s=!1;else if(s)return;var n=t.which;if(!(n>=37&&n<=40)){if(!t.ctrlKey&&!t.metaKey||89!==n&&90!==n)if(i||17===n)"undefined"==typeof t.which&&e.semanticCode(!1,!1,!0);else{var a=!e.isIE||"compositionend"===t.type;e.semanticCode(!1,a&&13===n),e.$c.trigger("tbwchange")}else e.semanticCode(!1,!0),e.$c.trigger("tbwchange");setTimeout(function(){i=!1},50)}}).on("mouseup keydown keyup",function(t){(!t.ctrlKey&&!t.metaKey||t.altKey)&&setTimeout(function(){i=!1},50),clearTimeout(r),r=setTimeout(function(){e.updateButtonPaneStatus()},50)}).on("focus blur",function(t){if(e.$c.trigger("tbw"+t.type),"blur"===t.type&&a("."+n+"active-button",e.$btnPane).removeClass(n+"active-button "+n+"active"),e.o.autogrowOnEnter){if(e.autogrowOnEnterDontClose)return;"focus"===t.type?(e.autogrowOnEnterWasFocused=!0,e.autogrowEditorOnEnter()):e.o.autogrow||(e.$ed.css({height:e.$ed.css("min-height")}),e.$c.trigger("tbwresize"))}}).on("cut drop",function(){setTimeout(function(){e.semanticCode(!1,!0),e.$c.trigger("tbwchange")},0)}).on("paste",function(n){if(e.o.removeformatPasted){n.preventDefault(),t.getSelection&&t.getSelection().deleteFromDocument&&t.getSelection().deleteFromDocument();try{var o=t.clipboardData.getData("Text");try{e.doc.selection.createRange().pasteHTML(o)}catch(r){e.doc.getSelection().getRangeAt(0).insertNode(e.doc.createTextNode(o))}e.$c.trigger("tbwchange",n)}catch(i){e.execCmd("insertText",(n.originalEvent||n).clipboardData.getData("text/plain"))}}a.each(e.pasteHandlers,function(e,t){t(n)}),setTimeout(function(){e.semanticCode(!1,!0),e.$c.trigger("tbwpaste",n),e.$c.trigger("tbwchange")},0)}),e.$ta.on("keyup",function(){e.$c.trigger("tbwchange")}).on("paste",function(){setTimeout(function(){e.$c.trigger("tbwchange")},0)}),e.$box.on("keydown",function(t){if(27===t.which&&1===a("."+n+"modal-box",e.$box).length)return e.closeModal(),!1})},autogrowEditorOnEnter:function(){var e=this;e.$ed.removeClass("autogrow-on-enter");var t=e.$ed[0].clientHeight;e.$ed.height("auto");var n=e.$ed[0].scrollHeight;e.$ed.addClass("autogrow-on-enter"),t!==n&&(e.$ed.height(t),setTimeout(function(){e.$ed.css({height:n}),e.$c.trigger("tbwresize")},0))},buildBtnPane:function(){var e=this,t=e.o.prefix,n=e.$btnPane=a("<div/>",{"class":t+"button-pane"});a.each(e.o.btns,function(o,r){a.isArray(r)||(r=[r]);var i=a("<div/>",{"class":t+"button-group "+(r.indexOf("fullscreen")>=0?t+"right":"")});a.each(r,function(t,n){try{e.isSupportedBtn(n)&&i.append(e.buildBtn(n))}catch(a){}}),i.html().trim().length>0&&n.append(i)}),e.$box.prepend(n)},buildBtn:function(e){var t=this,n=t.o.prefix,o=t.btnsDef[e],r=o.dropdown,i=null==o.hasIcon||o.hasIcon,s=t.lang[e]||e,l=a("<button/>",{type:"button","class":n+e+"-button "+(o["class"]||"")+(i?"":" "+n+"textual-button"),html:t.hasSvg&&i?'<svg><use xlink:href="'+t.svgPath+"#"+n+(o.ico||e).replace(/([A-Z]+)/g,"-$1").toLowerCase()+'"/></svg>':t.hideButtonTexts?"":o.text||o.title||t.lang[e]||e,title:(o.title||o.text||s)+(o.key?" (Ctrl + "+o.key+")":""),tabindex:-1,mousedown:function(){return r&&!a("."+e+"-"+n+"dropdown",t.$box).is(":hidden")||a("body",t.doc).trigger("mousedown"),!((t.$btnPane.hasClass(n+"disable")||t.$box.hasClass(n+"disabled"))&&!a(this).hasClass(n+"active")&&!a(this).hasClass(n+"not-disable"))&&(t.execCmd(!!r&&"dropdown"||o.fn||e,o.param||e,o.forceCss),!1)}});if(r){l.addClass(n+"open-dropdown");var d=n+"dropdown",c={"class":d+"-"+e+" "+d+" "+n+"fixed-top"};c["data-"+d]=e;var u=a("<div/>",c);a.each(r,function(e,n){t.btnsDef[n]&&t.isSupportedBtn(n)&&u.append(t.buildSubBtn(n))}),t.$box.append(u.hide())}else o.key&&(t.keys[o.key]={fn:o.fn||e,param:o.param||e});return r||(t.tagToButton[(o.tag||e).toLowerCase()]=e),l},buildSubBtn:function(e){var t=this,n=t.o.prefix,o=t.btnsDef[e],r=null==o.hasIcon||o.hasIcon;return o.key&&(t.keys[o.key]={fn:o.fn||e,param:o.param||e}),t.tagToButton[(o.tag||e).toLowerCase()]=e,a("<button/>",{type:"button","class":n+e+"-dropdown-button"+(o.ico?" "+n+o.ico+"-button":""),html:t.hasSvg&&r?'<svg><use xlink:href="'+t.svgPath+"#"+n+(o.ico||e).replace(/([A-Z]+)/g,"-$1").toLowerCase()+'"/></svg>'+(o.text||o.title||t.lang[e]||e):o.text||o.title||t.lang[e]||e,title:o.key?" (Ctrl + "+o.key+")":null,style:o.style||null,mousedown:function(){return a("body",t.doc).trigger("mousedown"),t.execCmd(o.fn||e,o.param||e,o.forceCss),!1}})},isSupportedBtn:function(e){try{return this.btnsDef[e].isSupported()}catch(t){}return!0},buildOverlay:function(){var e=this;return e.$overlay=a("<div/>",{"class":e.o.prefix+"overlay"}).appendTo(e.$box),e.$overlay},showOverlay:function(){var e=this;a(t).trigger("scroll"),e.$overlay.fadeIn(200),e.$box.addClass(e.o.prefix+"box-blur")},hideOverlay:function(){var e=this;e.$overlay.fadeOut(50),e.$box.removeClass(e.o.prefix+"box-blur")},fixedBtnPaneEvents:function(){var e=this,n=e.o.fixedFullWidth,o=e.$box;e.o.fixedBtnPane&&(e.isFixed=!1,a(t).on("scroll."+e.eventNamespace+" resize."+e.eventNamespace,function(){if(o){e.syncCode();var r=a(t).scrollTop(),i=o.offset().top+1,s=e.$btnPane,l=s.outerHeight()-2;r-i>0&&r-i-e.height<0?(e.isFixed||(e.isFixed=!0,s.css({position:"fixed",top:0,left:n?"0":"auto",zIndex:7}),a([e.$ta,e.$ed]).css({marginTop:s.height()})),s.css({width:n?"100%":o.width()-1+"px"}),a("."+e.o.prefix+"fixed-top",o).css({position:n?"fixed":"absolute",top:n?l:l+(r-i)+"px",zIndex:15})):e.isFixed&&(e.isFixed=!1,s.removeAttr("style"),a([e.$ta,e.$ed]).css({marginTop:0}),a("."+e.o.prefix+"fixed-top",o).css({position:"absolute",top:l}))}}))},setDisabled:function(e){var t=this,n=t.o.prefix;t.disabled=e,e?t.$ta.attr("disabled",!0):t.$ta.removeAttr("disabled"),t.$box.toggleClass(n+"disabled",e),t.$ed.attr("contenteditable",!e)},destroy:function(){var e=this,n=e.o.prefix;e.isTextarea?e.$box.after(e.$ta.css({height:""}).val(e.html()).removeClass(n+"textarea").show()):e.$box.after(e.$ed.css({height:""}).removeClass(n+"editor").removeAttr("contenteditable").removeAttr("dir").html(e.html()).show()),e.$ed.off("dblclick","img"),e.destroyPlugins(),e.$box.remove(),e.$c.removeData("trumbowyg"),a("body").removeClass(n+"body-fullscreen"),e.$c.trigger("tbwclose"),a(t).off("scroll."+e.eventNamespace+" resize."+e.eventNamespace)},empty:function(){this.$ta.val(""),this.syncCode(!0)},toggle:function(){var e=this,t=e.o.prefix;e.o.autogrowOnEnter&&(e.autogrowOnEnterDontClose=!e.$box.hasClass(t+"editor-hidden")),e.semanticCode(!1,!0),setTimeout(function(){e.doc.activeElement.blur(),e.$box.toggleClass(t+"editor-hidden "+t+"editor-visible"),e.$btnPane.toggleClass(t+"disable"),a("."+t+"viewHTML-button",e.$btnPane).toggleClass(t+"active"),e.$box.hasClass(t+"editor-visible")?e.$ta.attr("tabindex",-1):e.$ta.removeAttr("tabindex"),e.o.autogrowOnEnter&&!e.autogrowOnEnterDontClose&&e.autogrowEditorOnEnter()},0)},dropdown:function(e){var n=this,o=n.doc,r=n.o.prefix,i=a("[data-"+r+"dropdown="+e+"]",n.$box),s=a("."+r+e+"-button",n.$btnPane),l=i.is(":hidden");if(a("body",o).trigger("mousedown"),l){var d=s.offset().left;s.addClass(r+"active"),i.css({position:"absolute",top:s.offset().top-n.$btnPane.offset().top+s.outerHeight(),left:n.o.fixedFullWidth&&n.isFixed?d+"px":d-n.$btnPane.offset().left+"px"}).show(),a(t).trigger("scroll"),a("body",o).on("mousedown."+n.eventNamespace,function(e){i.is(e.target)||(a("."+r+"dropdown",n.$box).hide(),a("."+r+"active",n.$btnPane).removeClass(r+"active"),a("body",o).off("mousedown."+n.eventNamespace))})}},html:function(e){var t=this;return null!=e?(t.$ta.val(e),t.syncCode(!0),t.$c.trigger("tbwchange"),t):t.$ta.val()},syncTextarea:function(){var e=this;e.$ta.val(e.$ed.text().trim().length>0||e.$ed.find(e.o.tagsToKeep.join(",")).length>0?e.$ed.html():"")},syncCode:function(e){var t=this;if(!e&&t.$ed.is(":visible"))t.syncTextarea();else{var n=a("<div>").html(t.$ta.val()),o=a("<div>").append(n);a(t.o.tagsToRemove.join(","),o).remove(),t.$ed.html(o.contents().html())}if(t.o.autogrow&&(t.height=t.$ed.height(),t.height!==t.$ta.css("height")&&(t.$ta.css({height:t.height}),t.$c.trigger("tbwresize"))),t.o.autogrowOnEnter){t.$ed.height("auto");var r=t.autogrowOnEnterWasFocused?t.$ed[0].scrollHeight:t.$ed.css("min-height");r!==t.$ta.css("height")&&(t.$ed.css({height:r}),t.$c.trigger("tbwresize"))}},semanticCode:function(e,t,n){var o=this;if(o.saveRange(),o.syncCode(e),o.o.semantic){if(o.semanticTag("b"),o.semanticTag("i"),o.semanticTag("s"),o.semanticTag("strike"),t){var r=o.o.inlineElementsSelector,i=":not("+r+")";o.$ed.contents().filter(function(){return 3===this.nodeType&&this.nodeValue.trim().length>0}).wrap("<span data-tbw/>");var s=function(e){if(0!==e.length){var t=e.nextUntil(i).addBack().wrapAll("<p/>").parent(),n=t.nextAll(r).first();t.next("br").remove(),s(n)}};s(o.$ed.children(r).first()),o.semanticTag("div",!0),o.$ed.find("p").filter(function(){return(!o.range||this!==o.range.startContainer)&&(0===a(this).text().trim().length&&0===a(this).children().not("br,span").length)}).contents().unwrap(),a("[data-tbw]",o.$ed).contents().unwrap(),o.$ed.find("p:empty").remove()}n||o.restoreRange(),o.syncTextarea()}},semanticTag:function(e,t){var n;if(null!=this.o.semantic&&"object"==typeof this.o.semantic&&this.o.semantic.hasOwnProperty(e))n=this.o.semantic[e];else{if(this.o.semantic!==!0||!this.DEFAULT_SEMANTIC_MAP.hasOwnProperty(e))return;n=this.DEFAULT_SEMANTIC_MAP[e]}a(e,this.$ed).each(function(){var e=a(this);return 0!==e.contents().length&&(e.wrap("<"+n+"/>"),t&&a.each(e.prop("attributes"),function(){e.parent().attr(this.name,this.value)}),void e.contents().unwrap())})},createLink:function(){for(var e,t,n,o=this,r=o.doc.getSelection(),i=r.focusNode,s=(new XMLSerializer).serializeToString(r.getRangeAt(0).cloneContents());["A","DIV"].indexOf(i.nodeName)<0;)i=i.parentNode;if(i&&"A"===i.nodeName){var l=a(i);s=l.text(),e=l.attr("href"),o.o.minimalLinks||(t=l.attr("title"),n=l.attr("target"));var d=o.doc.createRange();d.selectNode(i),r.removeAllRanges(),r.addRange(d)}o.saveRange();var c={url:{label:"URL",required:!0,value:e},text:{label:o.lang.text,value:s}};o.o.minimalLinks||Object.assign(c,{title:{label:o.lang.title,value:t},target:{label:o.lang.target,value:n}}),o.openModalInsert(o.lang.createLink,c,function(e){var t=o.prependUrlPrefix(e.url);if(!t.length)return!1;var n=a(['<a href="',t,'">',e.text||e.url,"</a>"].join(""));return o.o.minimalLinks||(e.title.length>0&&n.attr("title",e.title),e.target.length>0&&n.attr("target",e.target)),o.range.deleteContents(),o.range.insertNode(n[0]),o.syncCode(),o.$c.trigger("tbwchange"),!0})},prependUrlPrefix:function(e){var t=this;if(!t.urlPrefix)return e;var n=/^([a-z][-+.a-z0-9]*:|\/|#)/i;if(n.test(e))return e;var a=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return a.test(e)?"mailto:"+e:t.urlPrefix+e},unlink:function(){var e=this,t=e.doc.getSelection(),n=t.focusNode;if(t.isCollapsed){for(;["A","DIV"].indexOf(n.nodeName)<0;)n=n.parentNode;if(n&&"A"===n.nodeName){var a=e.doc.createRange();a.selectNode(n),t.removeAllRanges(),t.addRange(a)}}e.execCmd("unlink",void 0,void 0,!0)},insertImage:function(){var e=this;e.saveRange();var t={url:{label:"URL",required:!0},alt:{label:e.lang.description,value:e.getRangeText()}};e.o.imageWidthModalEdit&&(t.width={}),e.openModalInsert(e.lang.insertImage,t,function(t){e.execCmd("insertImage",t.url,!1,!0);var n=a('img[src="'+t.url+'"]:not([alt])',e.$box);return n.attr("alt",t.alt),e.o.imageWidthModalEdit&&n.attr({width:t.width}),e.syncCode(),e.$c.trigger("tbwchange"),!0})},fullscreen:function(){var e,n=this,o=n.o.prefix,r=o+"fullscreen";n.$box.toggleClass(r),e=n.$box.hasClass(r),a("body").toggleClass(o+"body-fullscreen",e),a(t).trigger("scroll"),n.$c.trigger("tbw"+(e?"open":"close")+"fullscreen")},execCmd:function(e,t,n,a){var o=this;a=!!a||"","dropdown"!==e&&o.$ed.focus();try{o.doc.execCommand("styleWithCSS",!1,n||!1)}catch(r){}try{o[e+a](t)}catch(r){try{e(t)}catch(i){"insertHorizontalRule"===e?t=void 0:"formatBlock"===e&&o.isIE&&(t="<"+t+">"),o.doc.execCommand(e,!1,t),o.syncCode(),o.semanticCode(!1,!0)}"dropdown"!==e&&(o.updateButtonPaneStatus(),o.$c.trigger("tbwchange"))}},openModal:function(e,n){var i=this,s=i.o.prefix;if(a("."+s+"modal-box",i.$box).length>0)return!1;i.o.autogrowOnEnter&&(i.autogrowOnEnterDontClose=!0),i.saveRange(),i.showOverlay(),i.$btnPane.addClass(s+"disable");var l=a("<div/>",{"class":s+"modal "+s+"fixed-top"}).css({top:i.$box.offset().top+i.$btnPane.height(),zIndex:99999}).appendTo(a(i.doc.body));i.$overlay.one("click",function(){return l.trigger(r),!1});var d=a("<form/>",{action:"",html:n}).on("submit",function(){return l.trigger(o),!1}).on("reset",function(){return l.trigger(r),!1}).on("submit reset",function(){i.o.autogrowOnEnter&&(i.autogrowOnEnterDontClose=!1)}),c=a("<div/>",{"class":s+"modal-box",html:d}).css({top:"-"+i.$btnPane.outerHeight()+"px",opacity:0}).appendTo(l).animate({top:0,opacity:1},100);return a("<span/>",{text:e,"class":s+"modal-title"}).prependTo(c),l.height(c.outerHeight()+10),a("input:first",c).focus(),i.buildModalBtn("submit",c),i.buildModalBtn("reset",c),a(t).trigger("scroll"),l},buildModalBtn:function(e,t){var n=this,o=n.o.prefix;return a("<button/>",{"class":o+"modal-button "+o+"modal-"+e,type:e,text:n.lang[e]||e}).appendTo(a("form",t))},closeModal:function(){var e=this,t=e.o.prefix;e.$btnPane.removeClass(t+"disable"),e.$overlay.off();var o=a("."+t+"modal-box",a(n.body));o.animate({top:"-"+o.height()},100,function(){o.parent().remove(),e.hideOverlay()}),e.restoreRange()},openModalInsert:function(e,t,n){var i=this,s=i.o.prefix,l=i.lang,d="";return a.each(t,function(e,t){var n=t.label||e,a=t.name||e,o=t.attributes||{},r=Object.keys(o).map(function(e){return e+'="'+o[e]+'"'}).join(" ");d+='<label><input type="'+(t.type||"text")+'" name="'+a+'"'+("checkbox"===t.type&&t.value?' checked="checked"':' value="'+(t.value||"").replace(/"/g,"""))+'"'+r+'><span class="'+s+'input-infos"><span>'+(l[n]?l[n]:n)+"</span></span></label>"}),i.openModal(e,d).on(o,function(){var e=a("form",a(this)),r=!0,s={};a.each(t,function(t,n){var o=n.name||t,l=a('input[name="'+o+'"]',e),d=l.attr("type");switch(d.toLowerCase()){case"checkbox":s[o]=l.is(":checked");break;case"radio":s[o]=l.filter(":checked").val();break;default:s[o]=a.trim(l.val())}n.required&&""===s[o]?(r=!1,i.addErrorOnModalField(l,i.lang.required)):n.pattern&&!n.pattern.test(s[o])&&(r=!1,i.addErrorOnModalField(l,n.patternError))}),r&&(i.restoreRange(),n(s,t)&&(i.syncCode(),i.$c.trigger("tbwchange"),i.closeModal(),a(this).off(o)))}).one(r,function(){a(this).off(o),i.closeModal()})},addErrorOnModalField:function(e,t){var n=this.o.prefix,o=e.parent();e.on("change keyup",function(){o.removeClass(n+"input-error")}),o.addClass(n+"input-error").find("input+span").append(a("<span/>",{"class":n+"msg-error",text:t}))},getDefaultImgDblClickHandler:function(){var e=this;return function(){var t=a(this),n=t.attr("src"),o="(Base64)";0===n.indexOf("data:image")&&(n=o);var r={url:{label:"URL",value:n,required:!0},alt:{label:e.lang.description,value:t.attr("alt")}};return e.o.imageWidthModalEdit&&(r.width={value:t.attr("width")?t.attr("width"):""}),e.openModalInsert(e.lang.insertImage,r,function(n){return n.url!==o&&t.attr({src:n.url}),t.attr({alt:n.alt}),e.o.imageWidthModalEdit&&(parseInt(n.width)>0?t.attr({width:n.width}):t.removeAttr("width")),!0}),!1}},saveRange:function(){var e=this,t=e.doc.getSelection();if(e.range=null,t&&t.rangeCount){var n,a=e.range=t.getRangeAt(0),o=e.doc.createRange();o.selectNodeContents(e.$ed[0]),o.setEnd(a.startContainer,a.startOffset),n=(o+"").length,e.metaRange={start:n,end:n+(a+"").length}}},restoreRange:function(){var e,t=this,n=t.metaRange,a=t.range,o=t.doc.getSelection();if(a){if(n&&n.start!==n.end){var r,i=0,s=[t.$ed[0]],l=!1,d=!1;for(e=t.doc.createRange();!d&&(r=s.pop());)if(3===r.nodeType){var c=i+r.length;!l&&n.start>=i&&n.start<=c&&(e.setStart(r,n.start-i),l=!0),l&&n.end>=i&&n.end<=c&&(e.setEnd(r,n.end-i),d=!0),i=c}else for(var u=r.childNodes,g=u.length;g>0;)g-=1,s.push(u[g])}o.removeAllRanges(),o.addRange(e||a)}},getRangeText:function(){return this.range+""},updateButtonPaneStatus:function(){var e=this,t=e.o.prefix,n=e.getTagsRecursive(e.doc.getSelection().focusNode),o=t+"active-button "+t+"active";a("."+t+"active-button",e.$btnPane).removeClass(o),a.each(n,function(n,r){var i=e.tagToButton[r.toLowerCase()],s=a("."+t+i+"-button",e.$btnPane);if(s.length>0)s.addClass(o);else try{s=a("."+t+"dropdown ."+t+i+"-dropdown-button",e.$box);var l=s.parent().data("dropdown");a("."+t+l+"-button",e.$box).addClass(o)}catch(d){}})},getTagsRecursive:function(e,t){var n=this;if(t=t||(e&&e.tagName?[e.tagName]:[]),!e||!e.parentNode)return t;e=e.parentNode;var o=e.tagName;return"DIV"===o?t:("P"===o&&""!==e.style.textAlign&&t.push(e.style.textAlign),a.each(n.tagHandlers,function(a,o){t=t.concat(o(e,n))}),t.push(o),n.getTagsRecursive(e,t).filter(function(e){return null!=e}))},initPlugins:function(){var e=this;e.loadedPlugins=[],a.each(a.trumbowyg.plugins,function(t,n){n.shouldInit&&!n.shouldInit(e)||(n.init(e),n.tagHandler&&e.tagHandlers.push(n.tagHandler),e.loadedPlugins.push(n))})},destroyPlugins:function(){a.each(this.loadedPlugins,function(e,t){t.destroy&&t.destroy()})}}}(navigator,window,document,jQuery); trumbowyg.fontfamily.js 0000644 00000005665 15100021164 0011312 0 ustar 00 (function ($) { 'use strict'; $.extend(true, $.trumbowyg, { langs: { // jshint camelcase:false en: { fontFamily: 'Font' }, da: { fontFamily: 'Skrifttype' }, fr: { fontFamily: 'Police' }, de: { fontFamily: 'Schriftart' }, nl: { fontFamily: 'Lettertype' }, tr: { fontFamily: 'Yazı Tipi' }, zh_tw: { fontFamily: '字體', }, pt_br: { fontFamily: 'Fonte', } } }); // jshint camelcase:true var defaultOptions = { fontList: [ {name: 'Arial', family: 'Arial, Helvetica, sans-serif'}, {name: 'Arial Black', family: '\'Arial Black\', Gadget, sans-serif'}, {name: 'Comic Sans', family: '\'Comic Sans MS\', Textile, cursive, sans-serif'}, {name: 'Courier New', family: '\'Courier New\', Courier, monospace'}, {name: 'Georgia', family: 'Georgia, serif'}, {name: 'Impact', family: 'Impact, Charcoal, sans-serif'}, {name: 'Lucida Console', family: '\'Lucida Console\', Monaco, monospace'}, {name: 'Lucida Sans', family: '\'Lucida Sans Uncide\', \'Lucida Grande\', sans-serif'}, {name: 'Palatino', family: '\'Palatino Linotype\', \'Book Antiqua\', Palatino, serif'}, {name: 'Tahoma', family: 'Tahoma, Geneva, sans-serif'}, {name: 'Times New Roman', family: '\'Times New Roman\', Times, serif'}, {name: 'Trebuchet', family: '\'Trebuchet MS\', Helvetica, sans-serif'}, {name: 'Verdana', family: 'Verdana, Geneva, sans-serif'} ] }; // Add dropdown with web safe fonts $.extend(true, $.trumbowyg, { plugins: { fontfamily: { init: function (trumbowyg) { trumbowyg.o.plugins.fontfamily = trumbowyg.o.plugins.fontfamily || defaultOptions; trumbowyg.addBtnDef('fontfamily', { dropdown: buildDropdown(trumbowyg), hasIcon: false, text: trumbowyg.lang.fontFamily }); } } } }); function buildDropdown(trumbowyg) { var dropdown = []; $.each(trumbowyg.o.plugins.fontfamily.fontList, function (index, font) { trumbowyg.addBtnDef('fontfamily_' + index, { title: '<span style="font-family: ' + font.family + ';">' + font.name + '</span>', hasIcon: false, fn: function () { trumbowyg.execCmd('fontName', font.family, true); } }); dropdown.push('fontfamily_' + index); }); return dropdown; } })(jQuery); pagelayer-admin.js 0000644 00000003720 15100021164 0010131 0 ustar 00 // Lets start jQuery(document).ready(function(){ var pl_admin_tabs = function(sel){ jQuery('.nav-tab-wrapper a').click(function(){ var tEle = jQuery(this); var sel = tEle.attr('tab-class') || 'pagelayer-tab-panel'; // Limit effect to the container element. var context = tEle.closest('.nav-tab-wrapper').parent().parent(); context.find('.nav-tab-wrapper a').removeClass('nav-tab-active'); tEle.addClass('nav-tab-active'); context.find('.'+sel).hide(); context.find(tEle.attr('href')).show(); location.hash = tEle.attr('href')+'_tab'; return false; }); // Make setting nav-tab-active optional. jQuery('.nav-tab-wrapper.pagelayer-wrapper').each(function(){ var jEle = jQuery(this); var hash = location.hash.slice(1, -4); if(hash){ var active_tab_ele = jEle.find('[href="#'+hash+'"]'); if (active_tab_ele.length > 0){ active_tab_ele.click(); return; } } var first = jEle.find('a').first(); first.click(); }); } var pl_admin_accordion = function(){ jQuery('.pagelayer-acc-wrapper .pagelayer-acc-tab').click(function(){ var tEle = jQuery(this); if(tEle.hasClass('nav-tab-active')){ tEle.toggleClass('nav-tab-active').next('.pagelayer-acc-panel').toggle(); }else{ // Limit effect to the container element. var context = tEle.closest('.pagelayer-acc-wrapper '); context.find('.pagelayer-acc-tab').removeClass('nav-tab-active'); context.find('.pagelayer-acc-panel').hide(); tEle.addClass('nav-tab-active'); tEle.next('.pagelayer-acc-panel').show(); } }); // Make setting nav-tab-active optional. jQuery('.pagelayer-acc-wrapper').each(function(){ var jEle = jQuery(this); var active_acc_ele = jEle.find('nav-tab-active'); if (active_acc_ele.length > 0){ active_acc_ele.click(); }else{ jEle.find('.pagelayer-acc-tab').first().click(); } }); } pl_admin_tabs(); pl_admin_accordion(); }); properties.js 0000644 00000461334 15100021164 0007277 0 ustar 00 // The active pagelayer element var pagelayer_active = {}; // List of pagelayer icons var pagelayer_icons = {}; // The inline editor var pagelayer_editor = {}; // The active pagelayer element var pagelayer_active_tab = {}; // The menu items refrence var pagelayer_menus_items_ref = {}; // Loads the Data function pagelayer_data(jEle, clean){ var ret = new Object(); // Get the data ret.tag = pagelayer_tag(jEle); ret.id = pagelayer_id(jEle); ret.$ = jEle; var ref_data = pagelayer_el_data_ref(jEle); // Parse the attributes ret.atts = JSON.parse(JSON.stringify(ref_data['attr'])); ret.tmp = JSON.parse(JSON.stringify(ref_data['tmp'])); //console.log(ret.atts); //console.log(ret.tmp); clean = clean || false; // Remove values which have 'req'. NOTE : 'show' ones will be allowed if(clean){ var tag = ret.tag; // Anything to set ? ret.set = {}; // Function to clear any att data var pagelayer_delete_atts = function(x){ delete ret.atts[x]; delete ret.atts[x+'_tablet'];// Any tablet and mobile values as well delete ret.atts[x+'_mobile']; delete ret.set[x]; } // All props var all_props = pagelayer_shortcodes[tag]; // Loop through all props for(var i in pagelayer_tabs){ var tab = pagelayer_tabs[i]; section_loop1: for(var section in all_props[tab]){ // Any section to skip by post type ? if(!pagelayer_empty(all_props['post_type_cats'])){ for(var post_type in all_props['post_type_cats']){ if(pagelayer_post.post_type != post_type && jQuery.inArray(section, all_props['post_type_cats'][post_type]) > -1){ continue section_loop1; } } } var props = section in pagelayer_shortcodes[tag] ? pagelayer_shortcodes[tag][section] : pagelayer_styles[section]; // In case of widgets its possible ! if(pagelayer_empty(props)){ continue; } for(var x in props){ var prop = props[x]; // Any prop to skip ? if(!pagelayer_empty(all_props['skip_props']) && jQuery.inArray(x, all_props['skip_props']) > -1){ pagelayer_delete_atts(x); continue; } // Are we to set this value ? if(!(x in ret.atts) && 'default' in prop && !pagelayer_empty(prop['default'])){ // We need to make sure its not a PRO value if(!('pro' in prop && pagelayer_empty(pagelayer_pro))){ var tmp_val = prop['default']; // If there is a unit and there is no unit suffix in atts value if('units' in prop){ if(jQuery.isNumeric(tmp_val)){ tmp_val = tmp_val+prop['units'][0]; }else{ var sep = 'sep' in prop ? prop['sep'] : ','; var tmp2 = tmp_val.split(sep); for(var k in tmp2){ if(jQuery.isNumeric(tmp2[k])){ tmp2[k] = tmp2[k]+prop['units'][0]; } } tmp_val = tmp2.join(sep); } } //console.log(x+' - '+tmp_val); ret.set[x] = tmp_val; } } if(!('req' in prop)){ continue; } //console.log('[pagelayer_data] Cleaning :'+x); // List of considerations var show = prop['req']; // We will hide by default var toShow = true; for(var showParam in show){ var reqval = show[showParam]; var except = showParam.substr(0, 1) == '!' ? true : false; showParam = except ? showParam.substr(1) : showParam; var val = ret.atts[showParam] || ''; //console.log('Show '+x+' '+showParam+' '+reqval+' '+val); // Is the value not the same, then we can show if(except){ if(typeof reqval == 'string' && reqval == val){ toShow = false; break; } // Its an array and a value is found, then dont show if(typeof reqval != 'string' && reqval.indexOf(val) > -1){ toShow = false; break; } // The value must be equal }else{ if(typeof reqval == 'string' && reqval != val){ toShow = false; break; } // Its an array and no value is found, then dont show if(typeof reqval != 'string' && reqval.indexOf(val) === -1){ toShow = false; break; } } } // Are we to show ? if(!toShow){ //console.log('Delete : '+x); pagelayer_delete_atts(x); } } } } } return ret; }; // Setup the properties function pagelayer_elpd_setup(){ // The Dialag box of the element properties // pagelayer-ELPD - Element Properties Dialog pagelayer_elpd_html = '<div class="pagelayer-elpd-tabs">'+ '<div class="pagelayer-elpd-tab" pagelayer-elpd-tab="settings" pagelayer-elpd-active-tab=1>Settings</div>'+ //'<div class="pagelayer-elpd-tab" pagelayer-elpd-tab="styles">Style</div>'+ '<div class="pagelayer-elpd-tab" pagelayer-elpd-tab="options">Options</div>'+ '<div class="pagelayer-advanced-props pagelayer-elpd-tab pagelayer-hidden" pagelayer-elpd-tab="advanced">Advanced</div>'+ '<div class="pagelayer-elpd-options">'+ '<i class="pli pli-clone" ></i>'+ '<i class="pli pli-trashcan" ></i>'+ '</div>'+ '</div>'+ '<div class="pagelayer-elpd-body"></div>'+ '<div class="pagelayer-elpd-holder"></div>'; // Create the dialog box pagelayer.$$('#pagelayer-elpd').append(pagelayer_elpd_html); pagelayer_elpd = pagelayer.$$('#pagelayer-elpd'); pagelayer.$$('.pagelayer-elpd-close').on('click', function(){ pagelayer_leftbar_tab('pagelayer-shortcodes'); pagelayer.$$('[pagelayer-widget-tab="widgets"]').click(); pagelayer.$$('.pagelayer-elpd-header').hide(); pagelayer.$$('.pagelayer-logo').show(); pagelayer.$$('.pagelayer-elpd-body').removeAttr('pagelayer-element-id').empty(); pagelayer_active = {}; }); // Copy pagelayer.$$('.pagelayer-elpd-options>.pli-clone').on('click', function(){ pagelayer_copy_element(pagelayer_active.el.$); }); // Delete pagelayer.$$('.pagelayer-elpd-options>.pli-trashcan').on('click', function(){ pagelayer_delete_element(pagelayer_active.el.$); //pagelayer.$$('.pagelayer-elpd-close').click(); }); // The advanced props pagelayer_elpd.find('.pagelayer-advanced-props').on('click', function(e){ e.preventDefault(); e.stopPropagation(); var propsModal = pagelayer.$$('.pagelayer-props-modal'); if(propsModal.find('.pagelayer-meta-iframe').length < 1){ propsModal.find('.pagelayer-props-wrap').append('<iframe class="pagelayer-meta-iframe" src="'+ pagelayer_post_props +'" style="display:none"></iframe>'); propsModal.find('.pagelayer-meta-iframe').load(function(){ propsModal.find('.pagelayer-props-loading-screen').hide(); propsModal.find('.pagelayer-props-modal-close').css('visibility','visible'); jQuery(this).show(); }); } propsModal.show(); pagelayer.$$('.pagelayer-meta-iframe').contents().find('.pagelayer-tab-items[data-tab="post_props"]').click(); }); // The tabs pagelayer_elpd.find('.pagelayer-elpd-tab').on('click', function(){ var jEle = jQuery(this); var attr = 'pagelayer-elpd-active-tab'; var tab = jEle.attr('pagelayer-elpd-tab'); if(tab == 'advanced'){ return; } pagelayer_elpd.find('.pagelayer-elpd-tab').each(function(){ jQuery(this).removeAttr(attr); }); jEle.attr(attr, 1); // Trigger the showing of rows pagelayer_elpd_show_rows(); }); }; // Open the properties function pagelayer_elpd_open(jEle){ // Set pagelayer history FALSE pagelayer.history_action = false; // Set the position of the element and show //pagelayer_elpd.css('left', pagelayer_elpd_pos[0]); //pagelayer_elpd.css('top', pagelayer_elpd_pos[1]); pagelayer_leftbar_tab('pagelayer-elpd'); pagelayer.$$('[pagelayer-elpd-tab=settings]').show(); pagelayer.$$('.pagelayer-elpd-header').show(); pagelayer.$$('.pagelayer-logo').hide(); // The property holder var holder = pagelayer.$$('.pagelayer-elpd-body'); holder.html(' '); var el = pagelayer_elpd_generate(jEle, holder); // Set the active element pagelayer_active.el = el; // Set the header pagelayer.$$('.pagelayer-elpd-title').html('Edit '+pagelayer_shortcodes[el.tag]['name']); // Set pagelayer history TRUE pagelayer.history_action = true; // Render tooltips for the ELPD pagelayer_tooltip_setup(); }; // Show the properties window function pagelayer_elpd_generate(jEle, holder){ // Get the id, tag, atts, data, etc var el = pagelayer_data(jEle); //console.log(el); // Is it a valid type ? if(pagelayer_empty(pagelayer_shortcodes[el.tag])){ pagelayer_error('Could not find this shortcode : '+el.tag); return; } // Set the holder holder.attr('pagelayer-element-id', el.id); //console.log(el.id); var all_props = pagelayer_shortcodes[el.tag]; var sec_open_class = 'pagelayer-elpd-section-open'; for(var i in pagelayer_tabs){ var tab = pagelayer_tabs[i]; var section_close = false;// First section always open section_loop2: for(var section in all_props[tab]){ //console.log(tab+' '+section); // Any section to skip by post type ? if(!pagelayer_empty(all_props['post_type_cats'])){ for(var post_type in all_props['post_type_cats']){ if(pagelayer_post.post_type != post_type && jQuery.inArray(section, all_props['post_type_cats'][post_type]) > -1){ continue section_loop2; } } } var props = section in pagelayer_shortcodes[el.tag] ? pagelayer_shortcodes[el.tag][section] : pagelayer_styles[section]; //console.log(props); var sec = jQuery('<div class="pagelayer-elpd-section" section="'+section+'" pagelayer-show-tab="'+tab+'">'+ '<div class="pagelayer-elpd-section-name '+sec_open_class+'"><i class="pli"></i>'+all_props[tab][section]+'</div>'+ '<div class="pagelayer-elpd-section-rows"></div>'+ '</div>'); holder.append(sec); // The row holder sec = sec.find('.pagelayer-elpd-section-rows'); // Close all except the first section if(section_close){ sec.hide().prev().removeClass(sec_open_class); } section_close = true; if('widget' in all_props && section == 'params'){ pagelayer_elpd_widget_settings(el, sec, true); continue; } var mode = pagelayer_get_screen_mode(); // Reset / Create the cache for(var x in props){ props[x]['c'] = new Object(); props[x]['c']['val'] = '';// Blank Val props[x]['c']['name'] = x;// Add the Name of the row i.e. attribute of the element var prop_name = x; // Do we have screen ? if('screen' in props[x] && mode != 'desktop'){ prop_name = x +'_'+mode; } // Set default to value of attribute if any if(prop_name in el.atts){ props[x]['c']['val'] = el.atts[prop_name]; } // Set element props[x]['el'] = el; // Any prop to skip ? if(!pagelayer_empty(all_props['skip_props']) && jQuery.inArray(x, all_props['skip_props']) > -1){ continue; } // Add the row pagelayer_elpd_row(sec, tab, section, props, x); } // Hide empty sections if(sec.html().length < 1){ //console.log(section+' - '+sec.html().length); sec.parent().remove(); } } } /*// Set the default values in the PROPERTIES var fn_load = window['pagelayer_load_elp_'+el.tag]; if(typeof fn_load == 'function'){ fn_load(el, props); }*/ // Hide clone and delete options if(!pagelayer_empty(all_props['hide_active']) && (pagelayer_empty(pagelayer_active.el) || pagelayer_active.el.id == el.id)){ pagelayer.$$('.pagelayer-elpd-options').addClass('pagelayer-hidden'); }else{ pagelayer.$$('.pagelayer-elpd-options').removeClass('pagelayer-hidden'); } // Add Advanced settings options for the props if(el.tag == 'pl_post_props'){ pagelayer.$$('.pagelayer-elpd-tab[pagelayer-elpd-tab="advanced"]').removeClass('pagelayer-hidden'); }else{ pagelayer.$$('.pagelayer-elpd-tab[pagelayer-elpd-tab="advanced"]').addClass('pagelayer-hidden'); } // Section open close holder.find('>.pagelayer-elpd-section>.pagelayer-elpd-section-name').on('click', function(){ var _sec = jQuery(this); var par = _sec.parent(); pagelayer_active_tab.id = el.id; pagelayer_active_tab.section = par.attr('section'); // Get the active tab var active_tab = pagelayer_elpd.find('[pagelayer-elpd-active-tab]').attr('pagelayer-elpd-tab'); // Close all but dont touch yourself holder.children().each(function (){ var curSec = jQuery(this); if(par.is(curSec)) return;// Skip the current option if(curSec.attr('pagelayer-show-tab') != active_tab) return;// Skip the non active tabs as is curSec.find('.pagelayer-elpd-section-rows').hide().prev().removeClass(sec_open_class); }); // Now toggle your self par.find('.pagelayer-elpd-section-rows').toggle(); if(_sec.next().is(':visible')){ _sec.addClass(sec_open_class); }else{ _sec.removeClass(sec_open_class); } }); if(!pagelayer_empty(pagelayer_active_tab) && pagelayer_active_tab.id == el.id){ holder.find('>[section='+pagelayer_active_tab.section+']>.pagelayer-elpd-section-name').click(); } // Handle the showing of rows pagelayer_elpd_show_rows(); return el; }; // Show a row function pagelayer_elpd_row(holder, tab, section, props, name){ // The Prop var prop = props[name]; //console.log(tab+' '+name+' '+prop.el.tag); var fn = window['pagelayer_elp_'+prop['type']]; if(typeof fn == 'function'){ var row = jQuery('<div class="pagelayer-form-item" pagelayer-elp-name="'+name+'" />'); // Append the row holder.append(row); return pagelayer_elpd_render_row(row, prop); } }; // Render a row function pagelayer_elpd_render_row(row, prop){ var fn = window['pagelayer_elp_'+prop['type']]; if('group' in prop){ row.attr('pagelayer-access-item', prop.group); } var fn_ui = window['pagelayer_elp_'+prop['type']+'_ui']; // Is there a UI Handler ? if(typeof fn_ui == 'function'){ fn_ui(row, prop); // Use the default mechanism }else{ // The label pagelayer_elp_label(row, prop); // The main property fn(row, prop); // Showing default button or not if(pagelayer_properties_filter(prop['type']) && pagelayer_empty(row.find('.pagelayer-pro-req').length)){ pagelayer_show_default_button(row, prop, prop.c['val']); } // Is there a description ? if(!pagelayer_empty(prop['desc'])){ pagelayer_elp_desc(row, prop['desc']); } } if('script' in prop){ row.append('<script>'+prop.script+'</script>'); } return row; } // Show the rows as per the active tab and also handle the rows that are supposed to be shown or not function pagelayer_elpd_show_rows(){ //console.log('Called'); // Get the active tab var active_tab = pagelayer_elpd.find('[pagelayer-elpd-active-tab]').attr('pagelayer-elpd-tab'); pagelayer_elpd.find('[pagelayer-show-tab]').each(function(){ var sec = jQuery(this); // Is it the active tab ? if(sec.attr('pagelayer-show-tab') != active_tab){ sec.hide(); }else{ sec.show(); } }); // Find all Elements in the Property dialog and loop pagelayer_elpd.find('[pagelayer-element-id]').each(function(){ var holder = jQuery(this); var id = holder.attr('pagelayer-element-id'); var jEle = pagelayer_ele_by_id(id); var tag = pagelayer_tag(jEle); //console.log('Main : '+id+' - '+tag); //console.log(pagelayer_active); // All props var all_props = pagelayer_shortcodes[tag]; // Loop through all props for(var i in pagelayer_tabs){ var tab = pagelayer_tabs[i]; for(var section in all_props[tab]){ var props = section in pagelayer_shortcodes[tag] ? pagelayer_shortcodes[tag][section] : pagelayer_styles[section]; for(var x in props){ var prop = props[x]; // If the prop is a group, we continue if(prop['type'] == 'group'){ continue; } // Find the row var row = false; holder.find('[pagelayer-elp-name="'+x+'"]').each(function(){ var j = jQuery(this); var _id = j.closest('[pagelayer-element-id]').attr('pagelayer-element-id'); //console.log(_id+' = '+id); // Is the parent the same ? if(_id == id){ row = j; } }); // Do you have a show or hide ? if(!row){ //console.log('Not Found : '+x+' - '+id); continue; } // Is the row visible ? if(row.closest('[pagelayer-show-tab]').attr('pagelayer-show-tab') != active_tab){ row.hide(); continue; } // Now lets show or hide the element if(!('req' in prop || 'show' in prop)){ row.show(); continue; } // List of considerations var show = {}; // We have both req and show, so lets just combine the values and then show // NOTE : We need to make an array and not just merge the 2 as they are references if('req' in prop && 'show' in prop){ // Add the req values show = JSON.parse(JSON.stringify(prop['req'])); // Now the show values need to be looped for(var t in prop['show']){ show[t] = prop['show'][t]; } }else{ show = 'req' in prop ? prop['req'] : prop['show']; } // We will hide by default var toShow = true; for(var showParam in show){ var reqval = show[showParam]; var except = showParam.substr(0, 1) == '!' ? true : false; showParam = except ? showParam.substr(1) : showParam; var val = pagelayer_get_att(jEle, showParam) || ''; //console.log('Show '+x+' '+showParam+' '+reqval+' '+val); // Is the value not the same, then we can show if(except){ if(typeof reqval == 'string' && reqval == val){ toShow = false; break; } // Its an array and a value is found, then dont show if(typeof reqval != 'string' && reqval.indexOf(val) > -1){ toShow = false; break; } // The value must be equal }else{ if(typeof reqval == 'string' && reqval != val){ toShow = false; break; } // Its an array and no value is found, then dont show if(typeof reqval != 'string' && reqval.indexOf(val) === -1){ toShow = false; break; } } } // Are we to show ? if(toShow){ row.show(); }else{ row.hide(); } } } } }); }; var pagelayer_widget_timer; var pagelayer_widget_cache = {}; // Load the widget settings function pagelayer_elpd_widget_settings(el, sec, onfocus){ var show_form = function(html){ sec.html('<form class="pagelayer-widgets-form">'+html+'</form>'); // Handle on form data change sec.find('form :input').on('change', function(){ //console.log('Changed !'); // Clear any previous timeout clearTimeout(pagelayer_widget_timer); // Set a timer for constant change pagelayer_widget_timer = setTimeout(function(){ pagelayer_elpd_widget_settings(el, sec); //console.log('Calling'); }, 500); }); } // Is it onfocus ? onfocus = onfocus || false; // Its an onfocus if(onfocus && el.id in pagelayer_widget_cache){ show_form(pagelayer_widget_cache[el.id]); return true; } var post = {}; post['action'] = 'pagelayer_wp_widget'; post['pagelayer_nonce'] = pagelayer_ajax_nonce; post['tag'] = el.tag; post['pagelayer-id'] = el.id; // Any atts ? if('widget_data' in el.atts){ post['widget_data'] = el.atts['widget_data']; } // Post any existing data var form = sec.find('form'); // Archive widget checkbox fix var inputCheckbox = form.find('input[type=checkbox]'); for(var i=0; i<inputCheckbox.length; i++){ if(inputCheckbox[i].value == 'on'){ form.find('input[type=checkbox]')[i].value = 1; } } if(form.length > 0){ //console.log(form.serialize()); post['values'] = form.serialize(); } jQuery.ajax({ url: pagelayer_ajax_url, type: 'post', data: post, success: function(data) { //console.log('Widget Data');console.log(data); // Show the form if('form' in data){ show_form(data['form']); // Store in cache pagelayer_widget_cache[el.id] = data['form']; } // Show the content if('html' in data){ el.$.html(data['html']); pagelayer_sc_render(el.$);// Re-Render the CSS } // Any set attributes ? if('widget_data' in data){ pagelayer_set_atts(el.$, 'widget_data', JSON.stringify(data['widget_data'])); } }, fail: function(data) { pagelayer_show_msg('Some error occured in getting the widget data', 'error'); } }); } // Will set the attribute and also render function _pagelayer_set_atts(row, val, no_default){ var id = row.closest('[pagelayer-element-id]').attr('pagelayer-element-id'); var jEle = jQuery('[pagelayer-id='+id+']'); var tag = pagelayer_tag(jEle); var prop_name = row.attr('pagelayer-elp-name'); var prop = pagelayer.props_ref[tag][prop_name]; // Is there a unit ? var uEle = row.find('.pagelayer-elp-units'); if(uEle.length > 0 && !pagelayer_empty(val)){ var unit = uEle.find('[selected]').html(); if(Array.isArray(val)){ for(var i in val){ if(val[i].length < 1){ continue; } val[i] = val[i]+unit; } }else{ val = val+unit; } } // Are we in another mode ? var mode = ('screen' in prop && pagelayer_get_screen_mode() != 'desktop') ? '_'+pagelayer_get_screen_mode() : ''; pagelayer_set_atts(jEle, prop_name+mode, val); // Are we to skip setting defaults ? no_default = no_default || false; if(!no_default){ // We need to set defaults for dependents var hasSet = pagelayer_set_default_atts(jEle, 5); // We need to reopen the left panel // Note : If two simultaneous calls are made, then this will cause problems // Also after this is called, ROW is destroyed and no other row related stuff will work i.e. set_atts in the same calls will fail if(hasSet){ pagelayer_elpd_open(jEle); } } //console.trace();console.log('Setting Attr'); // Render pagelayer_sc_render(jEle); // Show default button or not if(pagelayer_properties_filter(prop) && pagelayer_empty(row.find('.pagelayer-pro-req').length)){ pagelayer_show_default_button(row, prop, val); } if('onchange' in prop){ var fn = window[prop['onchange']]; if(typeof fn === 'function'){ fn(jEle, row, val); } } }; // Will set the attribute but not render function _pagelayer_set_tmp_atts(row, suffix, val){ var id = row.closest('[pagelayer-element-id]').attr('pagelayer-element-id'); var jEle = jQuery('[pagelayer-id='+id+']'); pagelayer_set_tmp_atts(jEle, row.attr('pagelayer-elp-name')+(suffix.length > 0 ? '-'+suffix : ''), val); }; // Will clear the attribute but not render function _pagelayer_clear_tmp_atts(row){ var id = row.closest('[pagelayer-element-id]').attr('pagelayer-element-id'); var jEle = jQuery('[pagelayer-id='+id+']'); pagelayer_clear_tmp_atts(jEle, row.attr('pagelayer-elp-name')); }; // Get the attribute of images only function _pagelayer_img_tmp_atts(row){ var id = row.closest('[pagelayer-element-id]').attr('pagelayer-element-id'); var jEle = jQuery('[pagelayer-id='+id+']'); return pagelayer_img_tmp_atts(jEle, row.attr('pagelayer-elp-name')); }; // Get the tmp att function _pagelayer_get_tmp_att(row, suffix){ var id = row.closest('[pagelayer-element-id]').attr('pagelayer-element-id'); var jEle = jQuery('[pagelayer-id='+id+']'); return pagelayer_get_tmp_att(jEle, row.attr('pagelayer-elp-name')+'-'+suffix); }; // Create the Label function pagelayer_elp_label(row, prop){ row.append('<div class="pagelayer-elp-label-div" type="'+prop['type']+'"><label class="pagelayer-elp-label">'+prop['label']+'</label></div>'); var label = row.children('.pagelayer-elp-label-div'); // Do we have screen ? if('screen' in prop){ var mode = pagelayer_get_screen_mode(); var screen = '<div class="pagelayer-elp-screen">'+ '<i class="pli pli-desktop" ></i>'+ '<i class="pli pli-tablet" ></i>'+ '<i class="pli pli-mobile" ></i>'+ '<i class="pagelayer-prop-screen pli pli-'+mode+'" ></i>'+ '</div>'; label.append(screen); // Set screen mode on change label.find('.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); label.find('.pagelayer-elp-screen .pli').removeClass('open'); }); // On change of screen handle the values label.find('.pagelayer-elp-screen').on('pagelayer-screen-changed', function(e){ label.find('.pagelayer-elp-screen .pli').removeClass('open'); var mode = pagelayer_get_screen_mode(); var modes = {desktop: '', tablet: '_tablet', mobile: '_mobile'}; // Get the current current new val prop.c['val'] = pagelayer_get_att(prop.el.$, prop.c['name']+modes[mode]); // Handle the amount if(pagelayer_empty(prop.c['val'])){ prop.c['val'] = ''; } // Remove the siblings label.siblings().each(function(){ var j = jQuery(this); if(j.hasClass('pagelayer-elp-desc')){ return; } j.remove(); }); // Create the vals again var fn = window['pagelayer_elp_'+prop['type']]; // The main property fn(row, prop); }); label.find('.pagelayer-elp-screen .pagelayer-prop-screen').on('click', function(e){ jQuery(this).siblings().toggleClass('open'); }) } // Do we have pro version requirement ? if('pro' in prop && pagelayer_empty(pagelayer_pro)){ var txt = prop['pro'].length > 1 ? prop['pro'] : pagelayer.pro_txt; var pro = jQuery('<div class="pagelayer-pro-req">Pro</div>'); pro.attr('data-tlite', txt); label.append(pro); } // Do we have units ? if('units' in prop){ var units = ''; var tmp_val = prop.c['val']; var default_unit = 0; // Get unit from value if(!(pagelayer_empty(tmp_val))){ for(var i in prop['units']){ if(pagelayer_is_string(tmp_val) && tmp_val.search(prop['units'][i]) != -1){ default_unit = i; }else if(tmp_val[0].search(prop['units'][i]) != -1 ){ default_unit = i; } } } for(var i in prop['units']){ units += '<span '+(i == default_unit ? 'selected' : '')+'>'+prop['units'][i]+'</span>'; } label.append('<div class="pagelayer-elp-units">'+units+'</div>'); // Set unit on change label.find('.pagelayer-elp-units span').on('click', function(){ label.find('.pagelayer-elp-units span').each(function(){ jQuery(this).removeAttr('selected'); }); jQuery(this).attr('selected', 1); }); } // Include default button if(pagelayer_properties_filter(prop['type']) && pagelayer_empty(row.find('.pagelayer-pro-req').length)){ var defaultButton = '<span class="pagelayer-elp-default" title="'+pagelayer_l('back_to_default')+'" ><i class="fas fa-undo"></i></span>'; label.append(defaultButton); label.find('.pagelayer-elp-default').on('click', function(){ prop.c['val'] = ('default' in prop) ? prop.default : ''; _pagelayer_set_atts(row, prop.c['val']); jQuery(this).attr('data_show',false); // Empty the row row.html(''); // Re-render the row pagelayer_elpd_render_row(row, prop); }); } }; // Create the Description function pagelayer_elp_desc(row, label){ row.append('<div class="pagelayer-elp-desc">'+label+'</div>'); }; // The Text property function pagelayer_elp_text(row, prop){ var div = '<div class="pagelayer-elp-text-div">'+ '<input type="text" class="pagelayer-elp-text" name="'+prop.c['name']+'" value="'+pagelayer_htmlEntities(prop.c['val'])+'"></input>'+ '</div>'; row.append(div); row.find('input').on('input', function(){ _pagelayer_set_atts(row, jQuery(this).val());// Save and Render }); }; // The Select property function pagelayer_elp_select(row, prop){ var options = ''; var option = function(val, lang){ var selected = (val != prop.c['val']) ? '' : 'selected="selected"'; return '<option class="pagelayer-elp-select-option" value="'+val+'" '+selected+'>'+lang+'</option>'; } for (x in prop['list']){ // Single item if(typeof prop['list'][x] == 'string'){ options += option(x, prop['list'][x]); // Groups }else{ options += '<optgroup label="'+x+'">'; for(var y in prop['list'][x]){ options += option(y, prop['list'][x][y]); } options += '</optgroup>'; } } var div = '<div class="pagelayer-elp-select-div pagelayer-elp-pos-rel">'+ '<select class="pagelayer-elp-select pagelayer-select" name="'+prop.c['name']+'">'+options+'</select>'+ '</div>'; row.append(div); row.find('select').on('change', function(){ var sEle = jQuery(this); if(sEle.attr('name') == "animation"){ _pagelayer_trigger_anim(row, sEle.val()); } _pagelayer_set_atts(row, sEle.val());// Save and Render }); } // The MultiSelect property function pagelayer_elp_multiselect(row, prop){ var selection = []; if(!pagelayer_empty(prop.c['val'])){ //selection = JSON.parse(prop.c['val']); selection = prop.c['val'].split(','); } var options = ''; var option = function(val, lang){ var selected = (jQuery.inArray(val,selection) == -1 ? '' : 'selected="selected"'); return '<li class="pagelayer-elp-multiselect-option" data-val="'+val+'" '+selected+'>'+lang+'</li>'; } var show_sel = function(val){ var sel_html = ''; jQuery.each(val, function(index, value){ sel_html += '<span class="pagelayer-elp-multiselect-selected" data-val="'+value+'">'+prop['list'][value]+' <span class="pagelayer-elp-multiselect-remove">x</span></span>'; }); return sel_html; } var setup_remove = function(){ row.find('.pagelayer-elp-multiselect-remove').on('click', function(){ var sVal = jQuery(this).parent().attr('data-val'); row.find('.pagelayer-elp-multiselect-option[data-val='+sVal+']').click(); }); } for (x in prop['list']){ options += option(x, prop['list'][x]); } var div = '<div class="pagelayer-elp-multiselect-div pagelayer-elp-pos-rel">'+ '<div class="pagelayer-elp-multiselect">'+show_sel(selection)+'</div>'+ '<ul class="pagelayer-elp-multiselect-ul" name="'+prop.c['name']+'">'+options+'</ul>'+ '</div>'; row.append(div); setup_remove(); row.find('.pagelayer-elp-multiselect-option').on('click', function(){ var sVal = jQuery(this).attr('data-val'); if(jQuery.inArray(sVal,selection) == -1){ selection.push(sVal); row.find('[data-val="'+sVal+'"]').attr('selected','selected'); }else{ selection.splice(jQuery.inArray(sVal,selection),1); row.find('[data-val="'+sVal+'"]').removeAttr('selected'); } //_pagelayer_set_atts(row,JSON.stringify(selection));// Save and Render _pagelayer_set_atts(row, selection.join(','));// Save and Render row.find('.pagelayer-elp-multiselect').html(show_sel(selection)); setup_remove(); }); // Open the selector row.find('.pagelayer-elp-multiselect').on('click', function(){ row.find('.pagelayer-elp-multiselect-ul').slideToggle(100); }); } function _pagelayer_trigger_anim(row, anim){ var id = row.closest('[pagelayer-element-id]').attr('pagelayer-element-id'); var classList = jQuery('[pagelayer-id='+id+']').attr('class'); classList = classList.split(/\s+/); //console.log(classList); var options = []; row.find('option').each(function(){ var found = jQuery.inArray( jQuery(this).val(), classList ); if( found != -1){ //var found = jQuery(this).val(); jQuery('[pagelayer-id='+id+']').removeClass(jQuery(this).val()); //break; } //options.push(jQuery(this).val()); }); jQuery('[pagelayer-id='+id+']').removeClass('pagelayer-wow').addClass(anim + ' animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ jQuery(this).removeClass(anim+ ' animated'); }); } // The Checkbox property function pagelayer_elp_checkbox(row, prop){ var div = '<div class="pagelayer-elp-checkbox-div">'+ '<input type="checkbox" name="'+prop.c['name']+'" class="pagelayer-elp-checkbox" />'+ '</div>'; row.append(div); if(prop.c['val'].length > 0){ row.find('input').attr('checked', 'checked'); }else{ row.find('input').removeAttr('checked'); } // When the change is called row.find('input').on('change', function(){ // We set to string true or false var val = jQuery(this).is(':checked') ? 'true' : ''; _pagelayer_set_atts(row, val);// Save and Render }); } // The Radio property function pagelayer_elp_radio(row, prop){ var active = 'pagelayer-elp-radio-active'; var div = '<div class="pagelayer-elp-radio-div">'; for(var x in prop.list){ var addclass = (prop.c['val'] == x) ? active : ''; div += '<a class="pagelayer-elp-radio '+addclass+'" val="'+x+'">'+prop.list[x]+'</a>'; } div += '</div>'; row.append(div); row.find('.pagelayer-elp-radio').each(function(){ jQuery(this).on('click', function (){ // Remove existing active class jQuery(this).parent().find('.'+active).removeClass(active); // Set active jQuery(this).addClass(active); _pagelayer_set_atts(row, jQuery(this).attr('val'));// Save and Render }); }); } // The Image Property function pagelayer_elp_image(row, prop){ var imgObj = {}; var isRetina = false; // Is retina images options? if('retina' in prop && !pagelayer_empty(prop['retina'])){ isRetina = true; } // Previously saved values if(typeof prop.c['val'] === 'object'){ imgObj = prop.c['val']; }else{ imgObj['img'] = prop.c['val']; } var tmp = prop.c['name']+'-url'; var def = pagelayer.blank_img; // Background image URls var src = (tmp in prop.el.tmp) ? prop.el.tmp[tmp] : ((!pagelayer_empty(imgObj['img']) && String(imgObj['img']).search(/http(|s):\/\//i) == 0) ? imgObj['img'] : def ); // Do we have a URL set ? var style = 'style="background-image:url(\''+src+'\')"'; var div = '<div class="pagelayer-elp-image-div">'+ '<div class="pagelayer-elp-drop-zone">'+ '<div>'+ '<i class="fas fa-upload"></i>'+ '<h4>'+pagelayer_l('drop_file')+'</h4>'+ '<div class="pagelayer-elp-img-up-progress">'+ '<div class="pagelayer-elp-img-up-bar"></div>'+ '</div>'+ '</div>'+ '</div>'+ '<div class="pagelayer-elp-image" '+style+'></div>'+ '<div class="pagelayer-elp-image-delete"><i class="pli pli-trashcan" ></i></div>'; // Retina image icon if(isRetina){ div += '<div class="pagelayer-elp-image-retina"><i class="pli pli-eye" ></i></div>'; } div +='</div>'; // Add retina images option if(isRetina){ var tmp_retina = prop.c['name']+'-retina-url'; var tmp_retina_mobile = prop.c['name']+'-retina-mobile-url'; var srcRetina = (tmp_retina in prop.el.tmp) ? prop.el.tmp[tmp_retina] : (('retina' in imgObj && !pagelayer_empty(imgObj['retina']) && String(imgObj['retina']).search(/http(|s):\/\//i) == 0) ? imgObj['retina'] : def ); var srcRetinaMobile = (tmp_retina_mobile in prop.el.tmp) ? prop.el.tmp[tmp_retina_mobile] : (('retina_mobile' in imgObj && !pagelayer_empty(imgObj['retina_mobile']) && String(imgObj['retina_mobile']).search(/http(|s):\/\//i) == 0) ? imgObj['retina_mobile'] : def ); var style_retina = 'style="background-image:url(\''+srcRetina+'\')"'; var style_retina_mobile = 'style="background-image:url(\''+srcRetinaMobile+'\')"'; div +='<div class="pagelayer-elp-label-div pagelayer-retina-label" type="image" style="display:none;">'+ '<label class="pagelayer-elp-label">Select Retina Image</label>'+ '</div>'+ '<div class="pagelayer-elp-retina-image-div" style="display:none;">'+ '<div class="pagelayer-elp-drop-zone">'+ '<div>'+ '<i class="fas fa-upload"></i>'+ '<h4>'+pagelayer_l('drop_file')+'</h4>'+ '<div class="pagelayer-elp-img-up-progress">'+ '<div class="pagelayer-elp-img-up-bar"></div>'+ '</div>'+ '</div>'+ '</div>'+ '<div class="pagelayer-elp-image pagelayer-retina" '+style_retina+'></div>'+ '<div class="pagelayer-elp-retina-delete"><i class="pli pli-trashcan" ></i></div>'+ '</div>'+ '<div class="pagelayer-form-item">'+ '<div class="pagelayer-elp-label-div pagelayer-retina-label" type="image" style="display:none;">'+ '<label class="pagelayer-elp-label">Select Retina Image For Mobile</label>'+ '</div>'+ '<div class="pagelayer-elp-checkbox-div pagelayer-retina-label" style="display:none;">'+ '<input type="checkbox" name="overlay" class="pagelayer-elp-checkbox pagelayer-retina-checkbox">'+ '</div>'+ '</div>'+ '<div class="pagelayer-elp-retina-mobile-image-div" style="display:none;">'+ '<div class="pagelayer-elp-drop-zone">'+ '<div>'+ '<i class="fas fa-upload"></i>'+ '<h4>'+pagelayer_l('drop_file')+'</h4>'+ '<div class="pagelayer-elp-img-up-progress">'+ '<div class="pagelayer-elp-img-up-bar"></div>'+ '</div>'+ '</div>'+ '</div>'+ '<div class="pagelayer-elp-image pagelayer-retina-mobile" '+style_retina_mobile+'></div>'+ '<div class="pagelayer-elp-retina-mobile-delete"><i class="pli pli-trashcan" ></i></div>'+ '</div>'; } row.append(div); if(def == src && jQuery.isNumeric(imgObj['img'])){ wp.media.attachment(imgObj['img']).fetch().then(function (data){ var fetch_url = wp.media.attachment(imgObj['img']).get('url') row.find('.pagelayer-elp-image-div .pagelayer-elp-image').css('background-image', 'url(\''+fetch_url+'\')'); _pagelayer_set_tmp_atts(row, 'url', fetch_url); }).fail(function(){ row.find('.pagelayer-elp-image-div .pagelayer-elp-image').css('background-image', 'url(\''+src+'\')') }); } if(isRetina){ if(def == srcRetina && 'retina' in imgObj && jQuery.isNumeric(imgObj['retina'])){ wp.media.attachment(imgObj['retina']).fetch().then(function (data){ var fetch_url = wp.media.attachment(imgObj['retina']).get('url') row.find('.pagelayer-retina').css('background-image', 'url(\''+fetch_url+'\')'); _pagelayer_set_tmp_atts(row, 'retina-url', fetch_url); }).fail(function(){ row.find('.pagelayer-retina').css('background-image', 'url(\''+srcRetina+'\')') }); } if(def == srcRetinaMobile && 'retina_mobile' in imgObj && jQuery.isNumeric(imgObj['retina_mobile'])){ wp.media.attachment(imgObj['retina_mobile']).fetch().then(function (data){ var fetch_url = wp.media.attachment(imgObj['retina_mobile']).get('url') row.find('.pagelayer-retina-mobile').css('background-image', 'url(\''+fetch_url+'\')'); _pagelayer_set_tmp_atts(row, 'retina-mobile-url', fetch_url); }).fail(function(){ row.find('.pagelayer-retina-mobile').css('background-image', 'url(\''+srcRetinaMobile+'\')') }); } } var getImgVal = function(val){ if(typeof val === 'object' && pagelayer_length(val) == 1 && 'img' in val){ return val['img']; } return val; } // Set an Image row.find('.pagelayer-elp-image').on('click', function(){ var button = jQuery(this); var inRetina = button.hasClass('pagelayer-retina'); var inRetinaM = button.hasClass('pagelayer-retina-mobile'); // Load the frame var frame = pagelayer_select_frame('image'); // 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(); // Set the new ID and URL id = attachment.id; url = attachment.url; var old = _pagelayer_img_tmp_atts(row); //console.log(attachment); if(inRetina){ // To remove past temp attr so that they are not involve in future temp values delete old[prop.c['name']+'-retina-url']; // Keep a list of all sizes for(var x in attachment.sizes){ _pagelayer_set_tmp_atts(row, 'retina-'+x+'-url', attachment.sizes[x].url); delete old[prop.c['name']+'-retina-'+x+'-url']; } for(var x in old){ // Skip for retina and with url atts if(! x.endsWith('-url') || !x.startsWith(prop.c['name']+'-retina') || x.startsWith(prop.c['name']+'-retina-mobile')){ continue; } _pagelayer_set_tmp_atts(row, x, ''); } }else if(inRetinaM){ // To remove past temp attr so that they are not involve in future temp values delete old[prop.c['name']+'-retina-mobile-url']; // Keep a list of all sizes for(var x in attachment.sizes){ _pagelayer_set_tmp_atts(row, 'retina-mobile-'+x+'-url', attachment.sizes[x].url); delete old[prop.c['name']+'-retina-mobile-'+x+'-url']; } for(var x in old){ // Skip for retina and with url atts if(! x.endsWith('-url') || ! x.startsWith(prop.c['name']+'-retina-mobile')){ continue; } _pagelayer_set_tmp_atts(row, x, ''); } }else{ // To remove past temp attr so that they are not involve in future temp values delete old[prop.c['name']+'-url']; // Keep a list of all sizes for(var x in attachment.sizes){ _pagelayer_set_tmp_atts(row, x+'-url', attachment.sizes[x].url); delete old[prop.c['name']+'-'+x+'-url']; } for(var x in old){ // Skip for retina and with url atts if(! x.endsWith('-url') || x.startsWith(prop.c['name']+'-retina')){ continue; } _pagelayer_set_tmp_atts(row, x, ''); } } } // Update thumbnail button.css('background-image', 'url(\''+url+'\')'); // Save and render _pagelayer_set_tmp_atts(row, 'no-image-set', ''); if(inRetina){ _pagelayer_set_tmp_atts(row, 'retina-url', url); imgObj['retina'] = id; }else if(inRetinaM){ _pagelayer_set_tmp_atts(row, 'retina-mobile-url', url); imgObj['retina_mobile'] = id; }else{ _pagelayer_set_tmp_atts(row, 'url', url); imgObj['img'] = id; } _pagelayer_set_atts(row, getImgVal(imgObj)); }, // On open select the appropriate images in the media manager 'open': function() { var selection = frame.state().get('selection'); var wp_id = pagelayer_get_att(prop.el.$, prop.c['name']); if(typeof wp_id === 'object'){ if(inRetina){ wp_id = ('retina' in wp_id && !pagelayer_empty(wp_id['retina']) ? wp_id['retina'] : 0 ); }else if(inRetinaM){ wp_id = ('retina_mobile' in wp_id && !pagelayer_empty(wp_id['retina_mobile']) ? wp_id['retina_mobile'] : 0 ); }else{ wp_id = (!pagelayer_empty(wp_id['img']) ? wp_id['img'] : 0 ); } } selection.reset( wp_id ? [ wp.media.attachment( wp_id ) ] : [] ); } }); frame.open(button); return false; }); // Finding and assigning values in the variables var dropzoneParent = row.find('.pagelayer-elp-image-div'); var dropZone = row.find('.pagelayer-elp-drop-zone'); // Inserting values in image drag and drop function pagelayer_img_dragAndDrop(dropzoneParent, dropZone, '', row); row.find('.pagelayer-elp-image-retina').click(function(){ row.find('.pagelayer-retina-label').toggle(); row.find('.pagelayer-elp-retina-image-div').toggle(); var checkval = row.find('.pagelayer-retina-checkbox').is(":checked"); if(checkval == true){ row.find('.pagelayer-retina-checkbox').trigger("click"); } }); row.find('.pagelayer-retina-checkbox').click(function(){ row.find('.pagelayer-elp-retina-mobile-image-div').toggle(); }); // Delete this row.find('.pagelayer-elp-image-delete').on('click', function(){ // Update thumbnail jQuery(this).parent().find('.pagelayer-elp-image').css('background-image', 'url(\''+def+'\')'); // Set to blank and render _pagelayer_set_atts(row, '', true); imgObj['img'] = def; _pagelayer_set_tmp_atts(row, 'no-image-set', 1); _pagelayer_set_tmp_atts(row, 'url', def); _pagelayer_set_atts(row, getImgVal(imgObj)); }); row.find('.pagelayer-elp-retina-delete').on('click', function(){ // Update thumbnail jQuery(this).parent().find('.pagelayer-elp-image').css('background-image', 'url(\''+def+'\')'); delete imgObj['retina']; _pagelayer_set_tmp_atts(row, 'retina-url', def); _pagelayer_set_atts(row, getImgVal(imgObj)); }); row.find('.pagelayer-elp-retina-mobile-delete').on('click', function(){ // Update thumbnail jQuery(this).parent().find('.pagelayer-elp-image').css('background-image', 'url(\''+def+'\')'); delete imgObj['retina_mobile']; // Set to blank and render _pagelayer_set_tmp_atts(row, 'retina-mobile-url', def); _pagelayer_set_atts(row, getImgVal(imgObj)); }); } // Main image drag and drop function function pagelayer_img_dragAndDrop(dropzoneParent, dropZone, jEle, row){ var reset_dragging = false; dropzoneParent.on('dragover', function(e){ e.preventDefault(); // Checking that the dragged element is a file or not var dt = e.originalEvent.dataTransfer; if(dt.types && (dt.types.indexOf ? dt.types.indexOf('Files') != -1 : dt.types.contains('Files'))){ if(e.originalEvent.dataTransfer.items[0].type.search('image/')!=-1){ dropZone.show(); reset_dragging = true; } } }); dropzoneParent.on('dragleave', function(e){ var rect = this.getBoundingClientRect(); // Checking that the cursor is in the drag area or not if (e.clientX >= (rect.left + rect.width) || e.clientX <= rect.left || e.clientY >= (rect.top + rect.height) || e.clientY <= rect.top) { dropZone.hide(); reset_dragging = false; } }); dropzoneParent.on('drop', function(e){ // Is not dropable? if(!reset_dragging){ return; } e.preventDefault(); var pagelayer_ajax_func = {}; // This function for ajax success call back pagelayer_ajax_func['success'] = function(obj){ if(obj['success']){ // Set the new ID and URL id = obj['data']['id']; url = obj['data']['url']; if(row == ''){ // Getting Id of jEle var widgetid = jEle.closest('[pagelayer-id]').attr('pagelayer-id'); // Finding widget image setting using id of jEle. Finding image editor setting from all of the other settings. row = pagelayer.$$('[pagelayer-element-id='+widgetid+']').find('.pagelayer-elp-image').eq(0).parent().parent(); } row.find('.pagelayer-elp-image').css('background-image', 'url(\''+url+'\')'); // To remove past temp attr so that they are not involve in future temp values var cname = row.attr('pagelayer-elp-name'); var old = _pagelayer_img_tmp_atts(row); delete old[cname+'-url']; for(var x in obj['data']['sizes']){ _pagelayer_set_tmp_atts(row, x+'-url', obj['data']['sizes'][x]['url']); delete old[cname+'-'+x+'-url']; } for(var x in old){ _pagelayer_set_tmp_atts(row, x+'-url', ''); } dropZone.find('.pagelayer-elp-img-up-bar').css('width', '3%'); dropZone.hide(); // Save and render _pagelayer_set_tmp_atts(row, 'url', url); _pagelayer_set_atts(row, id); }else{ alert(obj['data']['message']); } } // This function for ajax before send call back pagelayer_ajax_func['beforeSend'] = function(xhr){ // It activate the image widget if(row == ''){ jEle.click(); } } // This function for how much file is uploaded or for progress bar pagelayer_ajax_func['uploadProgress'] = function(xhr){ xhr.upload.addEventListener("progress", function(evt) { if (evt.lengthComputable) { var percentComplete = evt.loaded / evt.total; percentComplete = parseInt(percentComplete * 100); if(row == ''){ dropZone.find('.pagelayer-img-up-bar').css('width', percentComplete+'%'); }else{ dropZone.find('.pagelayer-elp-img-up-bar').css('width', percentComplete+'%'); } } }, false); return xhr; } // Uploading image to the media library pagelayer_editable_paste_handler(e.originalEvent.dataTransfer.files[0], pagelayer_ajax_func); reset_dragging = false; }); } // The Multi Image Property function pagelayer_elp_multi_image(row, prop){ var div = '<div class="pagelayer-elp-multi_image-div">'+ '<center><button class="pagelayer-elp-button">'+pagelayer_l('Add Images')+'</button></center>'+ '<div class="pagelayer-elp-multi_image-thumbs"></div>'+ '</div>'; 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('<div class="pagelayer-elp-multi_image-thumb" style="background-image: url(\''+images['i'+ids[x]]+'\');"></div>'); } }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('<div class="pagelayer-elp-multi_image-thumb" style="background-image: url(\''+fetch_url+'\');"></div>'); } } }); } } 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('<div class="pagelayer-elp-multi_image-thumb" style="background-image: url(\''+single_url+'\');"></div>'); } 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('<div class="pagelayer-elp-multi_image-thumb" style="background-image: url(\''+attachments[i].attributes.url+'\');"></div>'); //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 = '<div class="pagelayer-elp-video-div pagelayer-elp-input-icon">'+ '<input class="pagelayer-elp-video" name="'+prop.c['name']+'" type="text" value="'+src+'">'+ '<i class="pli pli-folder-open" ></i>'+ '</input></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 = '<div class="pagelayer-elp-audio-div pagelayer-elp-input-icon">'+ '<input class="pagelayer-elp-audio" name="'+prop.c['name']+'" type="text" value="'+src+'" />'+ '<i class="pli pli-menu" ></i>'+ '</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 = '<div class="pagelayer-elp-media-div pagelayer-elp-input-icon">'+ '<input class="pagelayer-elp-media" value="'+src+'" type="text" />'+ '<i class="pli pli-menu" ></i>'+ '</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 = '<div class="pagelayer-elp-slider-div">'+ '<input type="range" class="pagelayer-elp-slider" value="'+parseFloat(prop.c['val'])+'" min="'+prop['min']+'" max="'+prop['max']+'" step="'+prop['step']+'"/>'+ '<input type="number" class="pagelayer-elp-slider-value" value="'+parseFloat(prop.c['val'])+'" min="'+prop['min']+'" max="'+prop['max']+'" step="'+prop['step']+'"/>'+ '</div>'+ '</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 = '<div class="pagelayer-elp-editor-div">'+ '<textarea rows="'+rows+'" class="pagelayer-elp-editor" ></textarea>'+ '</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 = '<div class="pagelayer-elp-link-div pagelayer-elp-input-icon '+(settingOpt ? '' : 'pagelayer-elp-link-no-addons')+'">'+ '<input class="pagelayer-elp-link" type="text" value="'+link+'" />'+ '<i class="pli pli-service pagelayer-elp-link-icon" title="'+pagelayer_l('link_options')+'" ></i>'+ '<div class="pagelayer-elp-link-list">'+ '</div>'; if(settingOpt){ div += '<div class="pagelayer-elp-link-addons">'+ '<div class="pagelayer-elp-link-cb-div">'+ '<div class="pagelayer-elp-link-label-div" type="'+prop['type']+'">'+ '<label class="pagelayer-elp-link-label">'+pagelayer_l('open_link_in_new_window')+'</label>'+ '</div>'+ '<div>'+ '<input type="checkbox" name="link_new_tab" class="pagelayer-elp-checkbox" '+(!pagelayer_empty(values['target']) ? 'checked="checked"' : '')+' />'+ '</div>'+ '</div>'+ '<div class="pagelayer-elp-link-cb-div" >'+ '<div class="pagelayer-elp-link-label-div" type="'+prop['type']+'">'+ '<label class="pagelayer-elp-link-label">'+pagelayer_l('add_nofollow')+'</label>'+ '</div>'+ '<div>'+ '<input type="checkbox" name="link_no_follow" class="pagelayer-elp-checkbox" '+(!pagelayer_empty(values['rel']) ? 'checked="checked"' : '')+'/>'+ '</div>'+ '</div>'+ '<div class="pagelayer-elp-link-ca" >'+ '<div class="pagelayer-elp-link-label-div" type="'+prop['type']+'">'+ '<label class="pagelayer-elp-link-label">'+pagelayer_l('custom_attributes')+'</label>'+ '</div>'+ '<div>'+ '<input type="text" class="pagelayer-elp-text" placeholder="key = value" name="'+prop.c['name']+'" value="'+(pagelayer_empty(values['attrs']) ? '' : values['attrs'])+'"/>'+ '<p class="pagelayer-elp-link-desc">'+pagelayer_l('link_custom_attr_desc')+'</p>'+ '</div>'+ '</div>'+ '</div>'; } div += '</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('<span class="pagelayer-elp-link-id">ID : '+permaID+'</span>'); }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 += '<div class="pagelayer-elp-link-item" data-id="'+vals['ID']+'" data-permalink="'+vals['permalink']+'">'+ '<div class="pagelayer-elp-link-title">'+ '<span class="pagelayer-elp-link-item-title" title="'+vals['title']+'">'+vals['title']+'</span>'+ '<span class="pagelayer-elp-link-item-perma" title="'+vals['permalink']+'">'+vals['permalink']+'</span>'+ '</div>'+ '<div class="pagelayer-elp-link-info">'+ '<span title="'+vals['info']+'">'+vals['info']+'</span>'+ '</div>'+ '</div>'; } } 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 = '<div class="pagelayer-elp-textarea-div">'+ '<textarea '+rows+'class="pagelayer-elp-textarea"></textarea>'+ '</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 += '<option name="'+item+'" value="'+item+'">'+item+'</option>'; }); 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 '<span class="pagelayer-elp-icon-span">'+ '<i class="'+cat+' fa-'+name+'" icon="'+name+'" ></i> '+name+ '</span>'; } var div = '<div class="pagelayer-elp-icon-div">'+ '<div class="pagelayer-elp-icon-preview">'+ '<i class="'+sel_icon+'"></i>'+ '<span class="pagelayer-elp-icon-name">'+ (pagelayer_empty(sel_name)?'Choose icon':sel_name)+ '</span>'+ '</div>'+ '<span class="pagelayer-elp-icon-open">▼</span>'+ '<span class="pagelayer-elp-icon-close" '+(pagelayer_empty(sel_name)? 'style="display:none"': '')+'><b>× </b></span>'+ '</div>'; row.append(div); // Make all icons list var html = '<div class="pagelayer-elp-icon-selector">'; if(pagelayer_loaded_icons.length > 1){ html += '<select class="pagelayer-elp-icon-sets">'+sets_html+'</select>'; } html += '<span class="pagelayer-elp-icon-type">'+ '<p data-tab="fas" class="active">'+pagelayer_l('Solid')+'</p>'+ '<p data-tab="far">'+pagelayer_l('Regular')+'</p>'+ '<p data-tab="fab">'+pagelayer_l('Brand')+'</p>'+ '</span>'+ '<input type="text" class="pagelayer-elp-search-icon" name="search-icon" placeholder="'+pagelayer_l('search')+'">'+ '<div class="pagelayer-elp-icon-list">'; 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 += '</div>'+ '</div>'; 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('<i class="'+i+'"></i><span class="pagelayer-elp-icon-name">'+name+'</span>'); 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('<i class=""></i><span class="pagelayer-elp-icon-name">'+pagelayer_l('choose_icon')+'</span>'); // Save and Render _pagelayer_set_atts(row, ''); jQuery(this).hide(); return false; }); } // The Access Property function pagelayer_elp_access(row, prop){ var div = '<div class="pagelayer-elp-access-div">'+ '<span class="pagelayer-elp-access"><i class="pli pli-caret-right" ></i></span>'+ '<div class="pagelayer-elp-access-holder"></div>'+ '</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 = '<div class="pagelayer-elp-modal-div">'+ '<span class="pagelayer-elp-modal"><i class="pli pli-window" ></i></span>'+ '<div class="pagelayer-elp-modal-wrapper">'+ '<div class="pagelayer-elp-modal-wrap" '+style+'>'+ '<div class="pagelayer-elp-modal-header">'+ prop.label +'<i class="pagelayer-elp-modal-close pli pli-cross" aria-hidden="true"></i>'+ '</div><hr>'+ '<div class="pagelayer-elp-modal-holder"></div>'+ '</div>'+ '</div>'+ '</div>'; 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 = '<div class="pagelayer-elp-color-div-holder">'+ '<div class="pagelayer-elp-color-global '+global_active+'"></div>'+ '<div class="pagelayer-elp-color-div">'+ '<div class="pagelayer-elp-color-preview"></div>'+ '<span class="pagelayer-elp-remove-color"><i class="pli pli-cross" ></i></span>'+ '</div>'+ '<div class="pagelayer-global-color-list">'+ '<div class="pagelayer-global-setting-color">'+ '<b>Global Colors</b><span class="pli pli-service"></span>'+ '</div>'; 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 += '<div class="pagelayer-global-color-list-item '+ active_class +'" data-global-id="'+ cid +'">'+ '<span class="pagelayer-global-color-pre" style="background:'+ color['value'] +'"></span>'+ '<span class="pagelayer-global-color-title">'+ color['title'] +'</span>'+ '<span class="pagelayer-global-color-code">'+ color['value'] +'</span>'+ '</div>'; } div += '</div></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 = '<div class="pagelayer-elp-spinner-div">'+ '<input type="number" class="pagelayer-elp-spinner" name="'+prop.c['name']+'"'+ ' min="'+prop['min']+'" max="'+prop['max']+'" step="'+prop['step']+'" value="'+parseFloat(prop.c['val'])+'"/>'+ '</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 = '<div class="pagelayer-elp-group-div"></div>'+ '<center><button class="pagelayer-elp-button '+btnHidden+'">'+prop['text']+'</button></center>'; 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('<div class="pagelayer-elp-group-item" pagelayer-group-item-id="'+id+'">'+ '<div class="pagelayer-elp-group-item-head">'+ '<span class="pagelayer-elp-group-item-drag"><i class="pli pli-menu" ></i></span>'+ '<span class="pagelayer-elp-group-item-title">'+title+'</span>'+ '<span class="pagelayer-elp-group-item-clone '+btnHidden+'"><i class="pli pli-clone" ></i></span>'+ '<span class="pagelayer-elp-group-item-del '+btnHidden+'"><i class="pli pli-trashcan" ></i></span>'+ '</div>'+ '<div class="pagelayer-elp-group-item-body"></div>'+ '</div>'); // 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 = '<div class="pagelayer-elp-datetime-div">'+ '<input type="date" class="pagelayer-elp-datetime" name="'+prop.c['name']+'" value="'+prop.c['val']+'" />'+ '</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 = '<div class="pagelayer-elp-padding-div">'+ '<input type="number" class="pagelayer-elp-padding" value="'+parseFloat(val[0])+'"></input>'+ '<input type="number" class="pagelayer-elp-padding" value="'+parseFloat(val[1])+'"></input>'+ '<input type="number" class="pagelayer-elp-padding" value="'+parseFloat(val[2])+'"></input>'+ '<input type="number" class="pagelayer-elp-padding" value="'+parseFloat(val[3])+'"></input>'+ '<i class="pli pli-link" ></i>'+ '</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 = '<span class="pagelayer-prop-edit"><i class="pli pli-pencil"></i></span>'+ '<div class="pagelayer-elp-shadow-div">'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-shadow-horizontal">'+ '<label class="pagelayer-elp-label">Horizontal</label>'+ '<input class="pagelayer-elp-shadow-input" type="number" max="100" min="-100" step="1" class="pagelayer-elp-shadow-blur" value="'+val[0]+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-shadow-vertical">'+ '<label class="pagelayer-elp-label">Vertical</label>'+ '<input class="pagelayer-elp-shadow-input" type="number" max="100" min="-100" step="1" class="pagelayer-elp-shadow-blur" value="'+val[1]+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-shadow-blur">'+ '<label class="pagelayer-elp-label">Blur</label>'+ '<input class="pagelayer-elp-shadow-input" type="number" max="100" min="0" step="1" class="pagelayer-elp-shadow-blur" value="'+val[2]+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-shadow-color">'+ '<label class="pagelayer-elp-label">Color</label>'+ '<div class="pagelayer-elp-color-div">'+ '<div class="pagelayer-elp-color-preview"></div>'+ '<span class="pagelayer-elp-remove-color"><i class="pli pli-cross" ></i></span>'+ '</div>'+ '</div>'+ '</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 = '<span class="pagelayer-prop-edit"><i class="pli pli-pencil"></i></span>'+ '<div class="pagelayer-elp-shadow-div">'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-shadow-horizontal">'+ '<label class="pagelayer-elp-label">Horizontal</label>'+ '<input class="pagelayer-elp-shadow-input" type="number" max="100" min="-100" step="1" class="pagelayer-elp-shadow-blur" name="horizontal" value="'+val[0]+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-shadow-vertical">'+ '<label class="pagelayer-elp-label">Vertical</label>'+ '<input class="pagelayer-elp-shadow-input" type="number" max="100" min="-100" step="1" class="pagelayer-elp-shadow-blur" name="vertical" value="'+val[1]+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-shadow-blur">'+ '<label class="pagelayer-elp-label">Blur</label>'+ '<input class="pagelayer-elp-shadow-input" type="number" max="100" min="0" step="1" class="pagelayer-elp-shadow-blur" name="blur" value="'+val[2]+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-shadow-spread">'+ '<label class="pagelayer-elp-label">Spread</label>'+ '<input class="pagelayer-elp-shadow-input" type="number" max="100" min="0" step="1" class="pagelayer-elp-shadow-spread" name="spread" value="'+(val[4] ? val[4] : 0 )+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-shadow-color">'+ '<label class="pagelayer-elp-label">Color</label>'+ '<div class="pagelayer-elp-color-div">'+ '<div class="pagelayer-elp-color-preview"></div>'+ '<span class="pagelayer-elp-remove-color"><i class="pli pli-cross" ></i></span>'+ '</div>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-shadow-inset">'+ '<label class="pagelayer-elp-label">Shadow</label>'+ '<select class="pagelayer-elp-shadow-input pagelayer-elp-select" name="inset" type="checkbox" class="pagelayer-elp-shadow-inset">'+ '<option value="">Outset</option>'+ '<option value="inset"'+(pagelayer_empty(val[5]) ? '' : ' selected' )+'>Inset</option>'+ '</select>'+ '</div>'+ '</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 = '<span class="pagelayer-prop-edit"><i class="pli pli-pencil"></i></span>'+ '<div class="pagelayer-elp-filter-div">'; jQuery.each(val,function(key, value){ div += '<div class="pagelayer-elp-prop-grp pagelayer-elp-filter-'+filters[key][0]+'">'+ '<label class="pagelayer-elp-label">'+filters[key][0]+'</label>'+ '<input class="pagelayer-elp-slider pagelayer-elp-filter-input" type="range" max="'+filters[key][1]+'" min="0" step="'+filters[key][2]+'" class="pagelayer-elp-filter-'+filters[key][0]+'" value="'+value+'"></input>'+ '<span class="pagelayer-elp-filter-val">'+value+'</span>'+ '</div>'; }); div += '</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 = '<div class="pagelayer-global-color-list">'+ '<div class="pagelayer-global-setting-color">'+ '<b>Global Colors</b><span class="pli pli-service"></span>'+ '</div>'; 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 += '<div class="pagelayer-global-color-list-item '+ active_class +'" data-global-id="'+ cid +'">'+ '<span class="pagelayer-global-color-pre" style="background:'+ color['value'] +'"></span>'+ '<span class="pagelayer-global-color-title">'+ color['title'] +'</span>'+ '<span class="pagelayer-global-color-code">'+ color['value'] +'</span>'+ '</div>'; } global_list += '</div>'; return global_list; } var div = '<div class="pagelayer-elp-gradient-div">'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-gradient-angle">'+ '<label class="pagelayer-elp-label">Angle</label>'+ '<input class="pagelayer-elp-gradient-input" type="number" max="360" min="0" step="1" class="pagelayer-elp-gradient-angle" value="'+val[0]+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-gradient-color">'+ '<label class="pagelayer-elp-label">Color 1</label>'+ '<div class="pagelayer-elp-color-div-holder">'+ '<div class="pagelayer-elp-color-global"></div>'+ '<div class="pagelayer-elp-color-div">'+ '<div class="pagelayer-elp-gradient-color1 pagelayer-elp-color-preview"></div>'+ '</div>'+ getColorList(0)+ '</div>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-gradient-per1">'+ '<label class="pagelayer-elp-label">Percentage 1</label>'+ '<input class="pagelayer-elp-gradient-input" type="number" max="100" min="-100" step="1" class="pagelayer-elp-gradient-per1" value="'+val[2]+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-gradient-color">'+ '<label class="pagelayer-elp-label">Color 2</label>'+ '<div class="pagelayer-elp-color-div-holder">'+ '<div class="pagelayer-elp-color-global"></div>'+ '<div class="pagelayer-elp-color-div">'+ '<div class="pagelayer-elp-gradient-color2 pagelayer-elp-color-preview"></div>'+ '</div>'+ getColorList(1)+ '</div>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-gradient-per2">'+ '<label class="pagelayer-elp-label">Percentage 2</label>'+ '<input class="pagelayer-elp-gradient-input" type="number" max="100" min="0" step="1" class="pagelayer-elp-gradient-per2" value="'+val[4]+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-gradient-color">'+ '<label class="pagelayer-elp-label">Color 3</label>'+ '<div class="pagelayer-elp-color-div-holder">'+ '<div class="pagelayer-elp-color-global"></div>'+ '<div class="pagelayer-elp-color-div">'+ '<div class="pagelayer-elp-gradient-color3 pagelayer-elp-color-preview"></div>'+ '</div>'+ getColorList(2)+ '</div>'+ '</div>'+ '<div class="pagelayer-elp-prop-grp pagelayer-elp-gradient-per3">'+ '<label class="pagelayer-elp-label">Percentage 3</label>'+ '<input class="pagelayer-elp-gradient-input" type="number" max="100" min="0" step="1" class="pagelayer-elp-gradient-per3" value="'+val[6]+'"></input>'+ '</div>'+ '</div>'; 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 '<option class="pagelayer-elp-select-option" value="'+val+'" type="'+type+'" '+selected+'>'+lang+'</option>'; } for(y in pagelayer_fonts){ if(y != 'default'){ options += '<optgroup label="'+pagelayer_ucwords(y)+'">'; } for (x in pagelayer_fonts[y]){ options += option((jQuery.isNumeric(x) ? pagelayer_fonts[y][x] : x), pagelayer_fonts[y][x], y); } } var div = '<div class="pagelayer-elp-select-div pagelayer-elp-pos-rel">'+ '<select class="pagelayer-elp-select pagelayer-select" name="'+prop.c['name']+'">'+options+'</select>'+ '</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 '<option value="'+val+'" '+selected+'>'+ lang +'</option>'; } 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 '<option class="pagelayer-elp-typo-sele-op" value="'+val+'" type="'+type+'" '+selected+'>'+lang+'</option>'; } for(y in select['fonts']){ if(y != 'default'){ font_options += '<optgroup label="'+pagelayer_ucwords(y)+'">'; } 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 = '<div class="pagelayer-elp-screen">'+ '<i class="pli pli-desktop" ></i>'+ '<i class="pli pli-tablet" ></i>'+ '<i class="pli pli-mobile" ></i>'+ '<i class="pagelayer-prop-screen pli pli-'+mode+'" ></i>'+ '</div>'; var div = '<span class="pagelayer-elp-typo-edit-div">'+ '<i class="pli pli-pencil"></i>'+ '</span>'+ '<div class="pagelayer-elp-typo-div" pagelayer-screen-mode="'+mode+'">'+ '<div class="pagelayer-elp-typo-fonts">'+ '<div class="pagelayer-elp-global-typo">'+ '<label class="pagelayer-elp-label">'+pagelayer_l('global_fonts')+'</label>'+ '<span class="pagelayer-elp-typo-icons">'+ '<span class="pagelayer-elp-global-icon '+global_active+'"></span>'+ '<span class="pli pli-service"></span>'+ '</span>'+ '<div class="pagelayer-global-font-list">'; for( cid in pagelayer_global_fonts ){ var font = pagelayer_global_fonts[cid]; div += '<div class="pagelayer-global-font-list-item" data-global-id="'+ cid +'">'+ '<span class="pagelayer-global-font-title">'+font['title']+'</span>'+ '</div>'; } div += '</div>'+ '</div>'+ '<div class="pagelayer-elp-typo pagelayer-elp-typo-family">'+ '<label class="pagelayer-elp-label">'+pagelayer_l('font_family')+'</label>'+ '<select class="pagelayer-elp-typo-input pagelayer-elp-select" name="font-family">'+font_options+'</select>'+ '</div>'; div += '<div class="pagelayer-elp-typo pagelayer-elp-typo-size">'+ '<label class="pagelayer-elp-label">'+pagelayer_l('font_size')+' '+screen+'</label>'+ '<input name="font-size" pagelayer-show-device="desktop" class="pagelayer-elp-typo-input" type="number" max="200" min="0" step="1" value="'+val[1]+'"></input>'+ '<input name="font-size_tablet" pagelayer-show-device="tablet" class="pagelayer-elp-typo-input" type="number" max="200" min="0" step="1" value="'+val_tablet[1]+'"></input>'+ '<input name="font-size_mobile" pagelayer-show-device="mobile" class="pagelayer-elp-typo-input" type="number" max="200" min="0" step="1" value="'+val_mobile[1]+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-typo pagelayer-elp-typo-style">'+ '<label class="pagelayer-elp-label">'+pagelayer_l('font_style')+'</label>'+ '<select name="font-style" class="pagelayer-elp-typo-input pagelayer-elp-select">'; jQuery.each(select['style'],function(key, value){ div += option(key, value, val[2]); }); div +='</select>'+ '</div>'+ '<div class="pagelayer-elp-typo pagelayer-elp-typo-weight">'+ '<label class="pagelayer-elp-label">'+pagelayer_l('font_weight')+' '+screen+'</label>'+ '<select name="font-weight" pagelayer-show-device="desktop" class="pagelayer-elp-typo-input pagelayer-elp-select">'; jQuery.each(select['weight'],function(key, value){ div += option(key, value, val[3]); }); div += '</select>'+ '<select name="font-weight_tablet" pagelayer-show-device="tablet" class="pagelayer-elp-typo-input pagelayer-elp-select">'; jQuery.each(select['weight'],function(key, value){ div += option(key, value, val_tablet[3]); }); div += '</select>'+ '<select name="font-weight_mobile" pagelayer-show-device="mobile" class="pagelayer-elp-typo-input pagelayer-elp-select">'; jQuery.each(select['weight'],function(key, value){ div += option(key, value, val_mobile[3]); }); div += '</select>'+ '</div>'+ '<div class="pagelayer-elp-typo pagelayer-elp-typo-variant">'+ '<label class="pagelayer-elp-label">'+pagelayer_l('font_variant')+'</label>'+ '<select name="font-variant" class="pagelayer-elp-typo-input pagelayer-elp-select">'; jQuery.each(select['variant'],function(key, value){ div += option(key, value, val[4]); }); div += '</select>'+ '</div>'+ '<div class="pagelayer-elp-typo pagelayer-elp-typo-deco-line">'+ '<label class="pagelayer-elp-label">'+pagelayer_l('decoration_line')+'</label>'+ '<select name="text-decoration-line" class="pagelayer-elp-typo-input pagelayer-elp-select">'; jQuery.each(select['deco-line'],function(key, value){ div += option(key, value, val[5]); }); div += '</select>'+ '</div>'+ '<div class="pagelayer-elp-typo pagelayer-elp-typo-deco-style">'+ '<label class="pagelayer-elp-label">'+pagelayer_l('decoration_style')+'</label>'+ '<select name="text-decoration-style" class="pagelayer-elp-typo-input pagelayer-elp-select">'; jQuery.each(select['deco-style'],function(key, value){ div += option(key, value, val[6]); }); div += '</select>'+ '</div>'+ '<div class="pagelayer-elp-typo pagelayer-elp-typo-height">'+ '<label class="pagelayer-elp-label">'+pagelayer_l('line_height')+' '+screen+'</label>'+ '<input name="line-height" class="pagelayer-elp-typo-input" pagelayer-show-device="desktop" type="number" max="15" min="0" step="0.1" value="'+val[7]+'"></input>'+ '<input name="line-height_tablet" pagelayer-show-device="tablet" class="pagelayer-elp-typo-input" type="number" max="15" min="0" step="0.1" value="'+val_tablet[7]+'"</input>'+ '<input name="line-height_mobile" class="pagelayer-elp-typo-input" pagelayer-show-device="mobile" type="number" max="15" min="0" step="0.1" value="'+val_mobile[7]+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-typo pagelayer-elp-typo-transform">'+ '<label class="pagelayer-elp-label">'+pagelayer_l('text_transform')+'</label>'+ '<select name="text-transform" class="pagelayer-elp-typo-input pagelayer-elp-select">'; jQuery.each(select['transform'],function(key, value){ div += option(key, value, val[8]); }); div += '</select>'+ '</div>'+ '<div class="pagelayer-elp-typo pagelayer-elp-typo-lspacing">'+ '<label class="pagelayer-elp-label">'+pagelayer_l('text_spacing')+' '+screen+'</label>'+ '<input name="letter-spacing" pagelayer-show-device="desktop" class="pagelayer-elp-typo-input" type="number" max="10" min="-10" step="0.1" value="'+val[9]+'"></input>'+ '<input name="letter-spacing_tablet" pagelayer-show-device="tablet" class="pagelayer-elp-typo-input" type="number" max="10" min="-10" step="0.1" value="'+val_tablet[9]+'"></input>'+ '<input name="letter-spacing_mobile" pagelayer-show-device="mobile" class="pagelayer-elp-typo-input" type="number" max="10" min="-10" step="0.1" value="'+val_mobile[9]+'"></input>'+ '</div>'+ '<div class="pagelayer-elp-typo pagelayer-elp-typo-wspacing">'+ '<label class="pagelayer-elp-label">'+pagelayer_l('word_spacing')+' '+screen+'</label>'+ '<input name="word-spacing" pagelayer-show-device="desktop" class="pagelayer-elp-typo-input" type="number" max="50" min="0" step="1" value="'+val[10]+'"></input>'+ '<input name="word-spacing_tablet" pagelayer-show-device="tablet" class="pagelayer-elp-typo-input" type="number" max="50" min="0" step="1" value="'+val_tablet[10]+'"></input>'+ '<input name="word-spacing_mobile" pagelayer-show-device="mobile" class="pagelayer-elp-typo-input" type="number" max="50" min="0" step="1" value="'+val_mobile[10]+'"></input>'+ '</div>'+ '</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 = '<span class="pagelayer-typo-default" title="'+pagelayer_l('restore_global')+'" ><i class="fas fa-undo"></i></span>'; 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 = '<div class="pagelayer-elp-dimension-div">'+ '<input type="number" class="pagelayer-elp-dimension" value="'+parseFloat(val[0])+'"></input>'+ '<input type="number" class="pagelayer-elp-dimension" value="'+parseFloat(val[1])+'"></input>'+ '<i class="pli pli-link" ></i>'+ '</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 = ''; jQuery(with_checkbox).children().each(function(){ var list = this; var temp = jQuery(list).find('input[checked=checked]'); if(!pagelayer_empty(temp.length)){ checked_list += list.outerHTML; }else{ unchecked_list += list.outerHTML; } }); return ('<div class="pagelayer-post-cat-div" ><ul class="pagelayer-post-category" >'+checked_list+unchecked_list+'</ul></div>'); } // Getting checked and unchecked categories on opening of page props settings. if(first_time_cat == false){ var $div = jQuery('<div>').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 = '<div class="pagelayer-elp-postCategory">'+ '<span class="pagelayer-add-cat-btn">Add New Category</span>'+ '<form style="display:none;">'+ '<div>'+ '<label>New Category Name</label>'+ '<input type="text" name="category_name" required>'+ '</div>'+ '<div>'+ '<label>Parent Category</label>'+ '<div class="pagelayer-parent-category"></div>'+ '</div>'+ '<button type="submit" class="pagelayer-cat-submit" >Add New Category</button>'+ '</form>'+ '</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('>', '><option class="level-0" value="0">--No Parent--</option>'); 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 <LI> 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('>', '><option class="level-0" value="0">--No Parent--</option>')); 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 = '<div class="pagelayer-elp-postTags" >'+ '<div class="pagelayer-post-tags" >'+ '<input type="text" autocomplete="off" class="pagelayer-elp-postTags-inp" autofocus="autofocus"/>'+ '<ul class="pagelayer-postTags-list" >'+ '</ul>'+ '</div>'+ '</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 += '<span class="pagelayer-elp-tags-ele" data-val="'+value['term_id']+'"><span class="pagelayer-tags-label" >'+value['name']+'</span><span class="pagelayer-elp-tags-remove"><i class="fas fa-times"></i></span></span>'; }); return html; } // Single list item html var singleLi= function(tags){ var html = ''; jQuery.each(tags, function(index, value){ html += '<li data-val="'+value['term_id']+'">'+value['name']+'</li>'; }); 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 = '<div class="pagelayer-elp-text-div">'+ '<input type="text" class="pagelayer-elp-text" name="'+prop.c['name']+'" value="'+pagelayer_htmlEntities(prop.c['val'])+'"></input>'+ '<a href="'+pagelayer_post_permalink+'" class="pagelayer-elp-permalink-a" target="_blank" >'+new_link+'</a></p>'+ '</div>'; }else{ var div = '<div class="pagelayer-elp-text-div">'+ '<a href="'+pagelayer_post.guid+'" class="pagelayer-elp-permalink-a" target="_blank" >'+pagelayer_post.guid+'</a></p>'+ '</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 = '<div class="pagelayer-elp-postdate-div">'+ '<input type="date" class="pagelayer-elp-postdate" name="'+prop.c['name']+'" value="'+date_array[0]+'" />'+ '<input type="time" class="pagelayer-elp-postdate" name="'+prop.c['name']+'" value="'+date_array[1]+'" />'+ '</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 = '<div class="pagelayer-elp-trash-button-div">'+ '<button class="pagelayer-elp-trash-button">Move to trash</button>'+ '</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 '<option class="pagelayer-elp-select-option" value="'+val+'" '+selected+'>'+lang+'</option>'; } for(x in prop['list']){ // Single item if(typeof prop['list'][x] == 'string'){ options += option(x, prop['list'][x]); // Groups }else{ options += '<optgroup label="'+x+'">'; for(var y in prop['list'][x]){ options += option(y, prop['list'][x][y]); } options += '</optgroup>'; } } var div = '<div class="pagelayer-elp-select-div pagelayer-elp-pos-rel">'+ '<select class="pagelayer-elp-select pagelayer-elp-select-menus" name="'+prop.c['name']+'">'+options+'</select>'+ '</div>'+ '<div class="pagelayer-elp-menu-items-holder pagelayer-elp-pos-rel"></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('<div class="pagelayer-elp-group-item pagelayer-menu-depth-'+depth+'" pagelayer-menu-item="'+item['ID']+'">'+ '<div class="pagelayer-elp-group-item-head">'+ '<span class="pagelayer-elp-group-item-drag"><i class="pli pli-menu" ></i></span>'+ '<span class="pagelayer-elp-group-item-title">'+title+'</span>'+ '</div>'+ '<div class="pagelayer-elp-group-item-body"></div>'+ '<div class="menu-item-transport"></div>'+ '</div>'); // 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('<div pagelayer-tag="pl_nav_menu_item"></div>'); 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('<link id="pagelayer-google-fonts" href="https://fonts.googleapis.com/css?family='+value+':100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">'); }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; } } trumbowyg-pagelayer.js 0000644 00000026523 15100021164 0011106 0 ustar 00 (function ($) { 'use strict'; // jshint camelcase:true function hex(x) { return ('0' + parseInt(x).toString(16)).slice(-2); } function colorToHex(rgb) { if (rgb.search('rgb') === -1) { return rgb.replace('#', ''); } else if (rgb === 'rgba(0, 0, 0, 0)') { return 'transparent'; } else { rgb = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/); return hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]); } } function colorTagHandler(element, trumbowyg) { var tags = []; if (!element.style) { return tags; } // background color if (element.style.backgroundColor !== '') { var backColor = colorToHex(element.style.backgroundColor); if (trumbowyg.o.plugins.colors.colorList.indexOf(backColor) >= 0) { tags.push('backColor' + backColor); } else { tags.push('backColorFree'); } } // text color var foreColor; if (element.style.color !== '') { foreColor = colorToHex(element.style.color); } else if (element.hasAttribute('color')) { foreColor = colorToHex(element.getAttribute('color')); } if (foreColor) { if (trumbowyg.o.plugins.colors.colorList.indexOf(foreColor) >= 0) { tags.push('foreColor' + foreColor); } else { tags.push('foreColorFree'); } } return tags; } var defaultOptions = { colorList: ['ffffff', '000000', 'eeece1', '1f497d', '4f81bd', 'c0504d', '9bbb59', '8064a2', '4bacc6', 'f79646', 'ffff00', 'f2f2f2', '7f7f7f', 'ddd9c3', 'c6d9f0', 'dbe5f1', 'f2dcdb', 'ebf1dd', 'e5e0ec', 'dbeef3', 'fdeada', 'fff2ca', 'd8d8d8', '595959', 'c4bd97', '8db3e2', 'b8cce4', 'e5b9b7', 'd7e3bc', 'ccc1d9', 'b7dde8', 'fbd5b5', 'ffe694', 'bfbfbf', '3f3f3f', '938953', '548dd4', '95b3d7', 'd99694', 'c3d69b', 'b2a2c7', 'b7dde8', 'fac08f', 'f2c314', 'a5a5a5', '262626', '494429', '17365d', '366092', '953734', '76923c', '5f497a', '92cddc', 'e36c09', 'c09100', '7f7f7f', '0c0c0c', '1d1b10', '0f243e', '244061', '632423', '4f6128', '3f3151', '31859b', '974806', '7f6000'] }; // Default Options for font-size var fontSizedefaultOptions = { sizeList: ['x-small', 'small', 'medium', 'large', 'x-large'], allowCustomSize: true }; // Default Options for line height var lineHeightOptions = { sizeList: ['0.9', '1', '1.5', '2.0', '2.5','3.0', '3.5', '4.0', '4.5', '5.0'], allowCustomSize: true }; // If WP media is a button function openwpmediaDef(trumbowyg) { return { fn: function() { // WP media button logic var func_media = window['pagelayer_select_frame']; if(typeof func_media == 'function'){ // Load the frame 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; } trumbowyg.execCmd('insertImage', url, false, true); var $img = $('img[src="' + url + '"]:not([alt])', trumbowyg.$box); $img.attr('alt', alt); $img.attr('pl-media-id', id); trumbowyg.syncCode; trumbowyg.$c.trigger('tbwchange'); return true; } }); frame.open(); } }, ico: 'insert-image' } } $.extend(true, $.trumbowyg, { // Add some translations langs: { en: { wpmedia: 'Insert Image', foreColor: 'Text color', backColor: 'Background color', fontsize: 'Font size', fontsizes: { 'x-small': 'Extra small', 'small': 'Small', 'medium': 'Regular', 'large': 'Large', 'x-large': 'Extra large', 'custom': 'Custom' }, fontCustomSize: { title: 'Custom Font Size', label: 'Font Size', value: '48px' }, lineheight: 'Line Height', lineCustomHeight: { title: 'Custom Line Height', label: 'Line Height', value: '7.0' }, lineheights: { 'normal': 'Normal', 'custom': 'Custom', } }, }, // Add our plugin to Trumbowyg registred plugins plugins: { wpmedia: { init: function(trumbowyg) { var t = $(this); // Fill current Trumbowyg instance with WP media default options trumbowyg.o.plugins.wpmedia = $.extend(true, {}, defaultOptions, trumbowyg.o.plugins.wpmedia || {} ); // If WP media is a trumbowyg.addBtnDef('wpmedia', openwpmediaDef(trumbowyg)); }, }, color: { init: function (trumbowyg) { trumbowyg.o.plugins.colors = trumbowyg.o.plugins.colors || defaultOptions; var foreColorBtnDef = { dropdown: buildDropdown('foreColor', trumbowyg) }, backColorBtnDef = { dropdown: buildDropdown('backColor', trumbowyg) }; trumbowyg.addBtnDef('foreColor', foreColorBtnDef); trumbowyg.addBtnDef('backColor', backColorBtnDef); }, tagHandler: colorTagHandler }, pasteImage: { init: function (trumbowyg) { trumbowyg.pasteHandlers.push(function (pasteEvent) { var pagelayer_ajax_func = {}; // This function for ajax success call back pagelayer_ajax_func['success'] = function(obj){ //alert(obj); if(obj['success']){ trumbowyg.execCmd('insertImage', obj['data']['url'], false, true); }else{ alert(obj['data']['message']); } } // This function for ajax before send call back pagelayer_ajax_func['beforeSend'] = function(xhr){ trumbowyg.showOverlay(); } // This function for ajax complete call back pagelayer_ajax_func['complete'] = function(xhr){ trumbowyg.hideOverlay(); } pagelayer_editable_paste_handler(pasteEvent, pagelayer_ajax_func); }); } }, fontsize: { init: function (trumbowyg) { trumbowyg.o.plugins.fontsize = $.extend({}, fontSizedefaultOptions, trumbowyg.o.plugins.fontsize || {} ); trumbowyg.addBtnDef('fontsize', { dropdown: fontSizeBuildDropdown(trumbowyg) }); } }, lineheight: { init: function (trumbowyg) { trumbowyg.o.plugins.lineheight = $.extend({}, lineHeightOptions, trumbowyg.o.plugins.lineheight || {} ); trumbowyg.addBtnDef('lineheight', { dropdown: lineHeightDropdown(trumbowyg) }); } } } }); function buildDropdown(fn, trumbowyg) { var dropdown = []; $.each(trumbowyg.o.plugins.colors.colorList, function (i, color) { var btn = fn + color, btnDef = { fn: fn, forceCss: true, param: '#' + color, style: 'background-color: #' + color + ';' }; trumbowyg.addBtnDef(btn, btnDef); dropdown.push(btn); }); var removeColorButtonName = fn + 'Remove', removeColorBtnDef = { fn: 'removeFormat', param: fn, style: 'background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);' }; trumbowyg.addBtnDef(removeColorButtonName, removeColorBtnDef); dropdown.push(removeColorButtonName); // add free color btn var freeColorButtonName = fn + 'Free', freeColorBtnDef = { fn: function () { trumbowyg.openModalInsert(trumbowyg.lang[fn], { color: { label: fn, forceCss: true, type: 'color', value: '#FFFFFF' } }, // callback function (values) { trumbowyg.execCmd(fn, values.color); return true; } ); }, text: '#', // style adjust for displaying the text style: 'text-indent: 0;line-height: 20px;padding: 0 5px;' }; trumbowyg.addBtnDef(freeColorButtonName, freeColorBtnDef); dropdown.push(freeColorButtonName); return dropdown; } // Functions for font-size widget function setFontSize(trumbowyg, size) { trumbowyg.$ed.focus(); trumbowyg.saveRange(); var text = trumbowyg.range.startContainer.parentElement; var selectedText = trumbowyg.getRangeText(); if ($(text).html() === selectedText) { $(text).css('font-size', size); } else { trumbowyg.range.deleteContents(); var html = '<span style="font-size: ' + size + ';">' + selectedText + '</span>'; var node = $(html)[0]; trumbowyg.range.insertNode(node); } } function fontSizeBuildDropdown(trumbowyg) { var dropdown = []; $.each(trumbowyg.o.plugins.fontsize.sizeList, function (index, size) { trumbowyg.addBtnDef('fontsize_' + size, { text: '<span style="font-size: ' + size + ';">' + (trumbowyg.lang.fontsizes[size] || size) + '</span>', hasIcon: false, fn: function () { setFontSize(trumbowyg, size); trumbowyg.syncCode(); trumbowyg.$c.trigger('tbwchange'); } }); dropdown.push('fontsize_' + size); }); if (trumbowyg.o.plugins.fontsize.allowCustomSize) { var customSizeButtonName = 'fontsize_custom'; var customSizeBtnDef = { fn: function () { trumbowyg.openModalInsert(trumbowyg.lang.fontCustomSize.title, { size: { label: trumbowyg.lang.fontCustomSize.label, value: trumbowyg.lang.fontCustomSize.value } }, function (form) { setFontSize(trumbowyg, form.size); return true; } ); }, text: '<span style="font-size: medium;">' + trumbowyg.lang.fontsizes.custom + '</span>', hasIcon: false }; trumbowyg.addBtnDef(customSizeButtonName, customSizeBtnDef); dropdown.push(customSizeButtonName); } return dropdown; } // Build the dropdown for line-height function lineHeightDropdown(trumbowyg) { var dropdown = []; $.each(trumbowyg.o.plugins.lineheight.sizeList, function(index, size) { trumbowyg.addBtnDef('lineheight_' + size, { text: trumbowyg.lang.lineheights[size] || size, hasIcon: false, fn: function(){ setLineHight(trumbowyg, size); } }); dropdown.push('lineheight_' + size); }); if (trumbowyg.o.plugins.lineheight.allowCustomSize) { var customSizeButtonName = 'lineheight_custom'; var customSizeBtnDef = { fn: function () { trumbowyg.openModalInsert(trumbowyg.lang.lineCustomHeight.title, { size: { label: trumbowyg.lang.lineCustomHeight.label, value: trumbowyg.lang.lineCustomHeight.value } }, function (form) { setLineHight(trumbowyg, form.size); return true; } ); }, text: '<span style="font-size: medium;">' + trumbowyg.lang.lineheights.custom + '</span>', hasIcon: false }; trumbowyg.addBtnDef(customSizeButtonName, customSizeBtnDef); dropdown.push(customSizeButtonName); } return dropdown; } // Set line-height function setLineHight(trumbowyg, size) { trumbowyg.$ed.focus(); trumbowyg.saveRange(); var parent = trumbowyg.range.startContainer.parentElement; var text = trumbowyg.getRangeText(); if ($(parent).html() === text) { $(parent).css('line-height', size); } else { trumbowyg.range.deleteContents(); var html = '<span style="line-height: ' + size + ';">' + text + '</span>'; var node = $(html)[0]; trumbowyg.range.insertNode(node); } trumbowyg.syncCode(); trumbowyg.$c.trigger('tbwchange'); } })(jQuery); widgets.js 0000644 00000144560 15100021164 0006550 0 ustar 00 pagelayer_svg_cache = {}; var pagelayer_document_width; // For automatic row parent change jQuery(window).resize(function(){ var new_vw = jQuery(document).width(); if(new_vw == pagelayer_document_width){ return false; } pagelayer_document_width = new_vw; // Set a timeout to prevent bubbling setTimeout(function(){ jQuery(pagelayer_editable+' .pagelayer-row-stretch-full').each(function(){ var par = jQuery(this).parent(); pagelayer_pl_row_parent_full(par); }); }, 200); }); // Render for row function pagelayer_render_pl_row(el){ var img_urls = !pagelayer_empty(el.tmp['bg_slider-urls']) ? JSON.parse(el.tmp['bg_slider-urls']) : []; el.atts['slider'] = ''; if(!pagelayer_empty(img_urls)){ for(var x in img_urls){ el.atts['slider'] += '<div class="pagelayer-bgimg-slide" style="background-image:url('+img_urls[x]+')"></div>'; } } // Row background parallax image. if(!pagelayer_empty(el.atts['parallax_img'])){ el.atts['parallax_img_src'] = el.tmp['parallax_img-'+el.atts['parallax_id_size']+'-url'] || el.tmp['parallax_img-url']; el.atts['parallax_img_src'] = el.atts['parallax_img_src'] || el.atts['parallax_img']; } pagelayer_bg_video(el); } // Render for inner row function pagelayer_render_pl_inner_row(el){ pagelayer_render_pl_row(el); } // Render for col function pagelayer_render_pl_col(el){ var img_urls = !pagelayer_empty(el.tmp['bg_slider-urls']) ? JSON.parse(el.tmp['bg_slider-urls']) : []; el.atts['slider'] = ''; if(!pagelayer_empty(img_urls)){ for(var x in img_urls){ el.atts['slider'] += '<div class="pagelayer-bgimg-slide" style="background-image:url('+img_urls[x]+')"></div>'; } } // We need the parent of type pagelayer-wrap-col var par = el.$.parent('.pagelayer-wrap-col'); // Apply to wrapper if(!pagelayer_empty(el.atts['col'])){ for(var x=1; x<=12; x++){ if(par.hasClass('pagelayer-col-'+x)){ par.removeClass('pagelayer-col-'+x); break; } } par.addClass('pagelayer-col-'+el.atts['col']); par.css('width', ''); } if(el.atts['col_width']){ par.css('width', ''); } // Col background parallax image. if(!pagelayer_empty(el.atts['parallax_img'])){ el.atts['parallax_img_src'] = el.tmp['parallax_img-'+el.atts['parallax_id_size']+'-url'] || el.tmp['parallax_img-url']; el.atts['parallax_img_src'] = el.atts['parallax_img_src'] || el.atts['parallax_img']; } pagelayer_bg_video(el); } function pagelayer_bg_video(el){ el.tmp['bg_video_src-url'] = el.tmp['bg_video_src-url'] || el.atts['bg_video_src']; var src = el.tmp['bg_video_src-url']; if(pagelayer_empty(src)){ return; } var iframe_atts = pagelayer_video_url(src, true); // console.log(iframe_atts); iframe_atts['src'] += (iframe_atts['src'].indexOf('?') == -1 ? '?' : ''); // Adding mute and loop option in row or col if(el.atts['mute'] == "true"){ iframe_atts['src'] +="&mute=1"; el.atts['mute'] = " muted "; }else{ iframe_atts['src'] +="&mute=0"; el.atts['mute'] = ""; } if(el.atts['stop_loop'] != "true"){ iframe_atts['src'] +="&loop=1"; el.atts['stop_loop'] = " loop "; }else{ iframe_atts['src'] +="&loop=0"; el.atts['stop_loop'] =""; } if (iframe_atts['type'] == 'youtube') { var settings = 'data-loop="'+(!pagelayer_empty(el['atts']['stop_loop']) ? 1 : 0)+'" data-mute="'+ (!pagelayer_empty(el['atts']['mute']) ? 1 : 0)+'" data-videoid="'+(iframe_atts['id'].split('&')[0])+'"'; el.atts['vid_src'] = '<div class = "pagelayer-youtube-video" '+ settings +'></div>'; } else if (iframe_atts['type'] == 'vimeo') { el.atts['vid_src'] = '<iframe src="'+iframe_atts['src']+'&background=1&autoplay=1&byline=0&title=0" allowfullscreen="1" webkitallowfullscreen="1" mozallowfullscreen="1" frameborder="0"></iframe>'; }else{ el.atts['vid_src'] = '<video autoplay playsinline '+el.atts['mute']+el.atts['stop_loop']+'>'+ '<source src="'+iframe_atts['src']+'" type="video/mp4">'+ '</video>'; } } // Load the full width row function pagelayer_render_end_pl_row(el){ // The parent var par = el.$.parent(); // Any class with full width if(el.$.hasClass('pagelayer-row-stretch-full')){ // Give it the full width pagelayer_pl_row_full(el.$); // Give full width to the parent pagelayer_pl_row_parent_full(par); // Also add that we had a full width el.$.addClass('pagelayer-row-stretch-had-full'); // Did this row have full width ? }else if(el.$.hasClass('pagelayer-row-stretch-had-full')){ // Remove style el.$.removeAttr('style'); par.removeAttr('style'); par.children('.pagelayer-ele-overlay').removeAttr('style'); // Remove HAD class el.$.removeClass('pagelayer-row-stretch-had-full'); } pagelayer_pl_row_video(el.$); el.$.find('.pagelayer-parallax-window img').each(function(){ pagelayer_pl_row_parallax(jQuery(this)); }); el.$.find('.pagelayer-bgimg-slider').each(function(){ pagelayer_pl_row_slider(jQuery(this)); }); // Row shape if('row_shape_type_top' in el.atts){ pagelayer_render_row_shape(el, 'top') } if('row_shape_type_bottom' in el.atts){ pagelayer_render_row_shape(el, 'bottom') } } // Render for inner row function pagelayer_render_end_pl_inner_row(el){ pagelayer_render_end_pl_row(el); } // Set Row parent width function pagelayer_pl_row_parent_full(par){ var vw = jQuery('html').width(); par.css({'width': vw,'max-width': '100vw'}); par.offset({left: 0}); par.children('.pagelayer-row').css({left: 0}); } // Row shape render function pagelayer_render_row_shape(el, shape_pos){ var name = el.atts['row_shape_type_'+shape_pos]+'-'+shape_pos+'.svg'; // DO we have in cache if(!(name in pagelayer_svg_cache)){ // Make url and fetch var url = pagelayer_url+'/images/shapes/'+name; jQuery.get(url, function(data){ el.$.find('.pagelayer-svg-'+shape_pos).html(data); pagelayer_svg_cache[name] = data; }, 'html'); // Fill with cache }else{ el.$.find('.pagelayer-svg-'+shape_pos).html(pagelayer_svg_cache[name]); } } // Load the col function pagelayer_render_end_pl_col(el){ pagelayer_pl_row_video(el.$); el.$.find('.pagelayer-parallax-window img').each(function(){ pagelayer_pl_row_parallax(jQuery(this)); }); el.$.find('.pagelayer-bgimg-slider').each(function(){ pagelayer_pl_row_slider(jQuery(this)); }); } // Render the image object function pagelayer_render_pl_image(el){ // Decide the image URL el.atts['func_id'] = el.tmp['id-'+el.atts['id-size']+'-url'] || el.tmp['id-url']; el.atts['func_id'] = el.atts['func_id'] || el.atts['id']; el.atts['pagelayer-srcset'] = el.atts['func_id']+', '+el.atts['func_id']+' 1x, '; var image_atts = { name : 'id', size : 'id-size' }; pagelayer_get_img_src(el, image_atts); // What is the link ? if('link_type' in el.atts){ // Custom url if(el.atts['link_type'] == 'custom_url'){ el.atts['func_link'] = el.tmp['link'] || ''; } // Link to the media file itself if(el.atts['link_type'] == 'media_file'){ el.atts['func_link'] = el.tmp['id-url'] || el.atts['id']; } // Lightbox if(el.atts['link_type'] == 'lightbox'){ el.atts['func_link'] = el.tmp['id-url'] || el.atts['id']; } } } // Incase if there is a lightbox function pagelayer_render_end_pl_image(el){ pagelayer_pl_image(el.$); } // Pre DragAndDrop function function pagelayer_preDAndD_image(jEle){ dropzoneParent = jEle.find('.pagelayer-img').parent(); // Check if drop zone is already there then return if(dropzoneParent.find('.pagelayer-image-drop-zone').length > 0){ return; } var dropDiv = '<div class="pagelayer-image-drop-zone">'+ '<div>'+ '<i class="fas fa-upload"></i>'+ '<h4>'+pagelayer_l('drop_file')+'</h4>'+ '<div class="pagelayer-img-up-progress">'+ '<div class="pagelayer-img-up-bar"></div>'+ '</div>'+ '</div>'+ '</div>'; dropzoneParent.prepend(dropDiv); dropZone = dropzoneParent.find('.pagelayer-image-drop-zone'); // Inserting values in image drag and drop function pagelayer_img_dragAndDrop(dropzoneParent, dropZone, jEle, ''); } // Render for video function pagelayer_render_pl_video(el){ el.atts['video_overlay_image-url'] = el.tmp['video_overlay_image-'+el.atts['custom_size']+'-url'] || el.tmp['video_overlay_image-url']; el.atts['video_overlay_image-url'] = el.atts['video_overlay_image-url'] || el.atts['video_overlay_image']; el.tmp['src-url'] = el.tmp['src-url'] || el.atts['src']; el.tmp['ele_id'] = el['id']; var vid_atts = pagelayer_video_url(el.tmp['src-url'], true); vid_atts['src'] += (vid_atts['src'].indexOf('?') == -1 ? '?' : ''); vid_atts['src'] += el.atts['autoplay'] == 'true' ? '&autoplay=1' : '&autoplay=0' ; var mute = el.atts['mute'] == 'true' ? 1 : 0; vid_atts['src'] +='&'+(vid_atts['type'] == 'vimeo' ? 'muted' : 'mute')+'='+mute; vid_atts['src'] += el.atts['loop'] == 'true' ? '&loop=1' : '&loop=0' ; el.atts['vid_src'] = vid_atts['src']+(vid_atts['type'] == 'youtube' ? '&playlist='+vid_atts['id'] : ''); } // Incase if there is a lightbox function pagelayer_render_end_pl_video(el){ pagelayer_pl_video(el.$); } // Render the testimonial function pagelayer_render_pl_testimonial(el){ if(!pagelayer_empty(el.tmp['avatar-no-image-set'])){ el.atts['avatar'] = ''; return; } //console.log(el); // Decide the image URL el.atts['func_image'] = el.tmp['avatar-'+el.atts['custom_size']+'-url'] || el.tmp['avatar-url']; el.atts['func_image'] = el.atts['func_image'] || el.atts['avatar']; } // Render the stars function pagelayer_render_end_pl_stars(el){ var jEle = el.$.find('.pagelayer-stars-container'); pagelayer_stars(jEle); }; // Render the service box function pagelayer_render_pl_service(el){ // Decide the image URL el.atts['func_image'] = el.tmp['service_image-'+el.atts['service_image_size']+'-url'] || el.tmp['service_image-url']; el.atts['func_image'] = el.atts['func_image'] || el.atts['service_image']; el.atts['pagelayer-srcset'] = el.atts['func_image']+', '+el.atts['func_image']+' 1x, '; var image_atts = { name : 'service_image', size : 'service_image_size' }; pagelayer_get_img_src(el, image_atts); } function pagelayer_render_end_pl_service(el){ // Drag and Drop function for image if (typeof pagelayer_preDAndD_image !== "undefined") { pagelayer_preDAndD_image(el.$); } } function pagelayer_social(jEle,sel){ var holder = jEle.find(sel); var icon = holder.data('icon'); if(pagelayer_empty(icon)){ return; } //alert(icon); var icon_splited = icon.split(' fa-'); //console.log(icon_splited); holder.addClass('pagelayer-'+icon_splited[1]); } function pagelayer_social_icon_onchange(jEle, row, val){ var url = ''; // Lets get the value of the nearest social icon for(var k in pagelayer_social_urls){ var patt = new RegExp(k, 'i'); if(patt.test(val)){ url = pagelayer_social_urls[k]; } } if(url.length > 0){ var social_url_row = row.parent().find('[pagelayer-elp-name="social_url"]'); //console.log(social_url_row); social_url_row.find('.pagelayer-elp-link').val(url).trigger('change'); } } // Render the social icon function pagelayer_render_end_pl_social(el){ pagelayer_social(el.$, '.pagelayer-icon-holder'); } // Render the social profile group function pagelayer_render_end_pl_social_grp(el){ // Removing extra animation classes el.$.find('.pagelayer-icon-holder').removeClass (function (index, className) { return (className.match (/(^|\s)pagelayer-animation-\S+/g) || []).join(' '); }); pagelayer_pl_social_profile(el.$); } // Render the counter function pagelayer_render_end_pl_counter(el){ pagelayer_counter(); }; // Render the progress function pagelayer_render_end_pl_progress(el){ pagelayer_progress(); }; // Render the image slider function pagelayer_render_pl_image_slider(el){ // The URLs var img_urls = !pagelayer_empty(el.tmp['ids-urls']) ? JSON.parse(el.tmp['ids-urls']) : []; var all_urls = !pagelayer_empty(el.tmp['ids-all-urls']) ? JSON.parse(el.tmp['ids-all-urls']) : []; var img_title = !pagelayer_empty(el.tmp['ids-all-titles']) ? JSON.parse(el.tmp['ids-all-titles']) : []; //console.log(img_urls); var ul = ''; var is_link = 'link_type' in el.atts && !pagelayer_empty(el.atts['link_type']) ? true : false; // Create figure HTML for (var x in img_urls){ // Use the default URL first var url = img_urls[x]; // But if we have a custom size, use that if(el.atts['size'] != 'custom' && x in all_urls && el.atts['size'] in all_urls[x]){ url = all_urls[x][el.atts['size']]; } ul += '<li class="pagelayer-slider-item">'; if(is_link){ var link = (el.atts['link_type'] == 'media_file' ? (!pagelayer_empty(img_urls[x]) ? img_urls[x] : url) : (el.tmp['link'] || '')) ul += '<a href="'+link+'" class="pagelayer-link-sel">'; } ul += '<img class="pagelayer-img" src="'+url+'" title="'+img_title[x]+'" alt="'+img_title[x]+'">'; if(is_link){ ul += '</a>'; } ul += '</li>'; } if(pagelayer_empty(ul)){ ul = '<h4 style="text-align:center;">'+ pagelayer_l('Please select Images from left side Widget properties.')+'</h4>'; } el.atts['ul'] = ul; // Which arrows to show if('controls' in el.atts && (el.atts['controls'] == 'arrows' || el.atts['controls'] == 'none')){ el.CSS.attr.push({'sel': '.pagelayer-image-slider-ul', 'val': 'data-pager="false"'}); } if('controls' in el.atts && (el.atts['controls'] == 'pager' || el.atts['controls'] == 'none')){ el.CSS.attr.push({'sel': '.pagelayer-image-slider-ul', 'val': 'data-controls="false"'}); } }; // Render the image slider function pagelayer_render_end_pl_image_slider(el){ pagelayer_owl_destroy(el.$, '.pagelayer-image-slider-ul'); pagelayer_pl_image_slider(el.$); } // Render the grid gallery function pagelayer_render_pl_grid_gallery(el){ // The URLs var img_urls = !pagelayer_empty(el.tmp['ids-urls']) ? JSON.parse(el.tmp['ids-urls']) : []; var all_urls = !pagelayer_empty(el.tmp['ids-all-urls']) ? JSON.parse(el.tmp['ids-all-urls']) : []; var img_title = !pagelayer_empty(el.tmp['ids-all-titles']) ? JSON.parse(el.tmp['ids-all-titles']) : []; var img_links = !pagelayer_empty(el.tmp['ids-all-links']) ? JSON.parse(el.tmp['ids-all-links']) : []; var img_captions = !pagelayer_empty(el.tmp['ids-all-captions']) ? JSON.parse(el.tmp['ids-all-captions']) : []; //console.log(img_urls); var ul = ''; var pagin = '<li class="pagelayer-grid-page-item active">1</li>'; var is_link = 'link_to' in el.atts && !pagelayer_empty(el.atts['link_to']) ? true : false; var i = 0; var j = 1; if(pagelayer_empty(el.tmp)){ ul = '<h4 style="text-align:center;">'+ pagelayer_l('select_images')+'</h4>'; el.atts['ul'] = ul; el.atts['pagin'] = ''; return; } ul += '<ul class="pagelayer-grid-gallery-ul">'; var gallery_rand = 'gallery-id-'+Math.floor((Math.random() * 100) + 1); var imgInPage = el.atts['images_no']; // Create figure HTML for (var x in img_urls){ if(imgInPage != 0 && (i % imgInPage) == 0 && i != 0){ ul += '</ul><ul class="pagelayer-grid-gallery-ul">'; j++; pagin += '<li class="pagelayer-grid-page-item">'+j+'</li>'; } // Use the default URL first var url = img_urls[x]; // But if we have a custom size, use that if(el.atts['size'] != 'custom' && x in all_urls && el.atts['size'] in all_urls[x]){ url = all_urls[x][el.atts['size']]; } ul += '<li class="pagelayer-gallery-item" >'; if(!is_link){ ul += '<div>'; } if(is_link && el.atts['link_to'] == 'media_file'){ var link = (el.atts['link_to'] == 'media_file' ? url : (el.atts['link'] || '')); ul += '<a href="'+link+'" class="pagelayer-ele-link">'; } if(is_link && el.atts['link_to'] == 'attachment'){ var link = img_links[x]; ul += '<a href="'+link+'" class="pagelayer-ele-link">'; } if(is_link && el.atts['link_to'] == 'lightbox'){ ul += '<a href="'+img_urls[x]+'" class="pagelayer-ele-link" data-lightbox-gallery="'+gallery_rand+'" alt="'+img_title[x]+'" pagelayer-grid-gallery-type="'+el.atts['link_to']+'">'; } ul += '<img class="pagelayer-img" src="'+url+'" title="'+img_title[x]+'" alt="'+img_title[x]+'">'; if(el.atts['caption'] == 'true'){ ul += '<span class="pagelayer-grid-gallery-caption">'+img_captions[x]+'</span>'; } if(is_link){ ul += '</a>'; } if(!is_link){ ul += '</div>'; } ul += '</li>'; i++; } ul += '</ul>'; el.atts['pagin'] = (j > 1) ? '<div class="pagelayer-grid-gallery-pagination"><ul class="pagelayer-grid-page-ul">'+'<li class="pagelayer-grid-page-item">«</li>'+ pagin+ '<li class="pagelayer-grid-page-item">»</li>'+'</ul></div>' : ''; el.tmp['gallery-random-id'] = gallery_rand; el.atts['ul'] = ul; } function pagelayer_render_end_pl_grid_gallery(el){ pagelayer_pl_grid_lightbox(el.$); } // Render for tabs function pagelayer_render_html_pl_tabs(el){ el.CSS.attr.push({'sel': '{{element}}', 'val': 'pagelayer-tabs-rotate="'+el.atts["rotate"]+'"'}); }; // Render the tab item function pagelayer_render_end_pl_tabs(el){ pagelayer_pl_tabs(el.$); } // Render the accordion item function pagelayer_render_end_pl_accordion(el){ pagelayer_pl_accordion(el.$); }; // Render the collapse item function pagelayer_render_end_pl_collapse(el){ pagelayer_pl_collapse(el.$); }; // Render the accordion item handler pagelayer_add_action('pagelayer_element_setup', function(e, jEle){ var tag = pagelayer_tag(jEle); if( tag != 'pl_accordion_item'){ return; } var panel = jEle.find('.pagelayer-accordion-panel'); pagelayer_add_inner_row_notice(panel); }); // Render the accordion item handler pagelayer_add_action('pagelayer_do_dirty', function(e, jEle){ var panel = jEle.closest('.pagelayer-accordion-panel'); pagelayer_add_inner_row_notice(panel); }); // Add inner row notice function pagelayer_add_inner_row_notice(panel){ if(panel.length < 1 || panel.children('.pagelayer-ele-wrap, .pagelayer-ele').not('.pagelayer-row-not-found').length > 0){ if(panel.children('.pagelayer-row-not-found').length > 0){ panel.children('.pagelayer-row-not-found').remove(); } return; } var div = `<div class="pagelayer-row-not-found pagelayer-ele-wrap"> There is no editable area found. Please <span class="pagelayer-click-add-row">click here</span> to Add a Row and continue editing!<div>`; panel.html(div); panel.find('.pagelayer-click-add-row').on('click', function(){ panel.find('.pagelayer-row-not-found').remove(); // Create Row var row = jQuery('<div pagelayer-tag="pl_inner_row"></div>'); panel.append(row); var row_id = pagelayer_onadd(row, false); var rEle = pagelayer_ele_by_id(row_id); // Create Column var col = jQuery('<div pagelayer-tag="pl_col"></div>'); rEle.find('.pagelayer-row-holder').append(col); var col_id = pagelayer_onadd(col, false); var cEle = pagelayer_ele_by_id(col_id); cEle.click(); }); } // Shortcode Handler var pagelayer_shortcodes_timer; function pagelayer_render_pl_shortcodes(el){ // Clear any previous timeout clearTimeout(pagelayer_shortcodes_timer); // Set a timer for constant change pagelayer_shortcodes_timer = setTimeout(function(){ // Make the call jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_do_shortcodes', type: 'POST', data: { pagelayer_nonce: pagelayer_ajax_nonce, shortcode_data: el.atts['data'] }, success:function(data) { el.$.find('.pagelayer-shortcodes-container').html(data); } }); }, 500); }; // Render the widget area i.e. Sidebars function pagelayer_render_pl_wp_widgets(el){ // Clear any previous timeout clearTimeout(pagelayer_shortcodes_timer); // Set a timer for constant change pagelayer_shortcodes_timer = setTimeout(function(){ // Make the call jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_fetch_sidebar', type: 'POST', data: { pagelayer_nonce: pagelayer_ajax_nonce, sidebar: el.atts['sidebar'] }, success:function(data) { el.$.find('.pagelayer-wp-sidebar-holder').html(data); } }); }, 500); }; function pagelayer_owl_destroy(jEle, slides_class){ var ul = jEle.find(slides_class); var setup = jEle.attr('pagelayer-setup'); // Already setup ? if(setup && setup.length > 0){ if(ul.children('.pagelayer-ele-wrap')){ ul.pagelayerOwlCarousel('destroy'); ul.find('[class^="pagelayer-owl-"]').remove(); jEle.removeAttr('pagelayer-setup'); } } } // Render the google maps v3 function pagelayer_render_pl_google_maps(el){ el.atts['show_v2'] = true; if(pagelayer_empty(el.atts['api_version'])){ el.atts['src_code'] = ''; return; } el.atts['show_v2'] = false; var gmaps_key = (pagelayer_empty(pagelayer_gmaps_key) ? '' : pagelayer_gmaps_key); var api_key = (pagelayer_empty(el.atts['api_key']) ? gmaps_key : el.atts['api_key']); if(el.atts['map_modes'] == 'view'){ el.atts['center'] = pagelayer_empty(el.atts['center']) ? '-33.8569,151.2152' : el.atts['center']; } var src_code = (pagelayer_empty(el.atts['center']) ? '' : '¢er='+el.atts['center'])+(el.atts['map_modes'] == 'streetview' ? '' : '&maptype='+el.atts['map_type']+'&zoom='+el.atts['zoom']); switch(el.atts['map_modes']){ case 'place': src_code += encodeURI('&q='+(pagelayer_empty(el.atts['address']) ? 'New York, New York, USA' : el.atts['address'] )); break; case 'directions': src_code += encodeURI('&origin='+(pagelayer_empty(el.atts['direction_origin']) ? 'Oslow Norway' : el.atts['direction_origin'] )); src_code += encodeURI('&destination='+(pagelayer_empty(el.atts['direction_destination']) ? 'Telemark Norway' : el.atts['direction_destination'] )); src_code += (pagelayer_empty(el.atts['direction_waypoints']) ? '' : '&waypoints='+(el.atts['direction_waypoints'].trim()).split(' ').join('|') ); src_code += (pagelayer_empty(el.atts['direction_modes']) ? '' : '&mode='+el.atts['direction_modes'] ); src_code += (pagelayer_empty(el.atts['direction_avoid']) ? '' : '&avoid='+el.atts['direction_avoid'].split(',').join('|') ); src_code += (pagelayer_empty(el.atts['direction_units']) ? '' : '&units='+el.atts['direction_units'] ); break; case 'streetview': src_code += '&pano='+(pagelayer_empty(el.atts['streetview_pano']) ? 'eTnPNGoy4bxR9LpjjfFuOw' : el.atts['streetview_pano'] ); src_code += '&location='+(pagelayer_empty(el.atts['streetview_location']) ? '46.414382,10.013988' : el.atts['streetview_location'] ); src_code += (pagelayer_empty(el.atts['streetview_heading']) ? '' : '&heading='+el.atts['streetview_heading'] ); src_code += (pagelayer_empty(el.atts['streetview_pitch']) ? '' : '&pitch='+el.atts['streetview_pitch'] ); src_code += (pagelayer_empty(el.atts['streetview_fov']) ? '' : '&fov='+el.atts['streetview_fov'] ); break; case 'search': src_code += encodeURI('&q='+(pagelayer_empty(el.atts['search_term']) ? 'Record stores in Seattle' : el.atts['search_term'] )); break; } var src_code_url = 'https://www.google.com/maps/embed/v1/'+el.atts['map_modes']+'?key='+api_key+src_code; el.atts['src_code'] = '<iframe width="600" height="450" style="border:0" loading="lazy" allowfullscreen src="'+src_code_url+'"></iframe>'; } //////////// // Freemium //////////// // Render the excerpt function pagelayer_render_html_pl_post_excerpt(el){ el.$.find('.pagelayer-post-excerpt').addClass('pagelayer-empty-widget'); } // Render the featured image function pagelayer_render_html_pl_featured_img(el){ var param = {}; param['pagelayer_nonce'] = pagelayer_ajax_nonce; // Post Id param['post_id'] = pagelayer_postID; // Image size if('size' in el.atts){ param['size'] = el.atts['size']; } jQuery.ajax({ url: pagelayer_ajax_url+'action=pagelayer_fetch_featured_img', type: 'post', data: param, dataType: 'json', success: function(data){ var src = ''; var title = ''; var alt = ''; if(pagelayer_empty(data)){ src = el.tmp['img-'+el.atts['size']+'-url'] || el.tmp['img-url']; src = src || el.atts['img']; }else{ src = data['url']; alt = data['alt']; title = data['title']; if(el.atts['size']+'-url' in data){ src = data[el.atts['size']+'-url']; } } var img_html = '<img class="pagelayer-img" src="'+pagelayer.blank_img+'" />'; if(src){ img_html = '<img class="pagelayer-img" src="' + src + '" title="' + title + '" alt="' + alt + '"/>'; } el.$.find('.pagelayer-featured-img').html(img_html); if('link_type' in el.atts){ // Custom url if(el.atts['link_type'] == 'custom_url'){ el.$.find('a').attr('href', el.tmp['link']); } // Link to the media file itself if(el.atts['link_type'] == 'media_file' || el.atts['link_type'] == 'lightbox'){ el.$.find('a').attr('href', src); } } pagelayer_pl_image(el.$); } }); } // Retina image setting attribute. function pagelayer_get_img_src(el, image_atts){ // Check if retina images is set if(!pagelayer_empty(el.tmp[image_atts.name+'-retina-url']) && el.tmp[image_atts.name+'-retina-url'].includes('default-image') == false){ var retina_image = el.tmp[image_atts.name+'-retina-'+el.atts[image_atts.size]+'-url']; retina_image = pagelayer_empty(retina_image) ? el.tmp[image_atts.name+'-retina-url'] : retina_image; el.atts['pagelayer-srcset'] += retina_image +' 2x, '; } // Check if retina mobile images is set if(!pagelayer_empty(el.tmp[image_atts.name+'-retina-mobile-url']) && el.tmp[image_atts.name+'-retina-mobile-url'].includes('default-image') == false){ var retina_image_mobile = el.tmp[image_atts.name+'-retina-mobile-'+el.atts[image_atts.size]+'-url']; retina_image_mobile = pagelayer_empty(retina_image_mobile) ? el.tmp[image_atts.name+'-retina-mobile-url'] : retina_image_mobile; el.atts['pagelayer-srcset'] += retina_image_mobile +' 3x'; } } ///////////////// // Freemium ///////////////// // If you want to store ajax data then you can use this variable var pagelayer_ajax_data = {}; var pagelayer_posts_data = {}; // Compare two objects function pagelayer_compare_object(obj1, obj2){ var objectsAreSame = true; for(var propertyName in obj1){ if(obj1[propertyName] !== obj2[propertyName]){ objectsAreSame = false; break; } } for(var propertyName in obj2){ if(obj1[propertyName] !== obj2[propertyName]){ objectsAreSame = false; break; } } return objectsAreSame; } // Incase if there is a lightbox function pagelayer_render_end_pl_featured_img(el){ pagelayer_pl_image(el.$); } // Render the archive Posts function pagelayer_render_pl_archive_posts(el){ // Need to do empty el.atts['pagelayer_pagination_top'] = ''; el.atts['pagelayer_pagination_bottom'] = ''; } // Render the archive Posts function pagelayer_render_end_pl_archive_posts(el){ var post = {}; // All atts post['atts'] = JSON.parse(JSON.stringify(el.atts)); post['atts']['pagelayer-id'] = el['id']; // The nonce post['pagelayer_nonce'] = pagelayer_ajax_nonce; var data_handle = function(data){ //console.log(data); var d = jQuery(data); el.$.children(':not(style)').remove(); var child = el.$.append(d.children(':not(style)')); pagelayer_ajax_data[el['id']] = data; } if(pagelayer_empty(pagelayer_posts_data) || !pagelayer_compare_object(pagelayer_posts_data, post) || pagelayer_empty(pagelayer_ajax_data[el['id']])){ pagelayer_posts_data = post; jQuery.ajax({ url: pagelayer_ajax_url+'action=pagelayer_archive_posts_data', type: 'post', data: post, success: data_handle }); }else{ data_handle(pagelayer_ajax_data[el['id']]); } } function pagelayer_apply_megamenu_items(html, menuID, menuEle, eleActive){ if(pagelayer_empty(pagelayer_menus_items_list[menuID])){ return html; } var menu_data = jQuery('<div>').html(html); var $elements = pagelayer_menus_items_list[menuID]; var unset_ele = function(navItem){ var src = jQuery(navItem); var nhtml = src[0].outerHTML; var nEle = jQuery(nhtml); nEle.removeAttr('pagelayer-parent'); nEle.find('[pagelayer-parent]').removeAttr('pagelayer-parent'); nEle.find('style').remove(); nEle.find('.pagelayer-ele-overlay').remove(); // Unwrap the wraps nEle.find('.pagelayer-ele').each(function (){ var ele = jQuery(this); if(ele.parent().is('.pagelayer-ele-wrap')){ ele.unwrap(); } }); return nEle; } for($e in $elements){ var savedHTML = ''; if(pagelayer_empty($elements[$e]['pagelayer_content'])){ continue; } var mID = $elements[$e]['ID']; var navItem = menuEle.find('.pagelayer-mega-editor-'+mID).find('.pagelayer-nav_menu_item').first(); var id = pagelayer_id(menuEle); if(navItem.length > 0 && eleActive){ savedHTML = unset_ele(navItem); }else{ savedHTML = pagelayer_element_unsetup($elements[$e]['pagelayer_content']); } menu_data.find('.pagelayer-mega-editor-'+mID).html(savedHTML[0].outerHTML); } return menu_data.html(); } var pagelayer_nav = {}; var pagelayer_wp_menu_timer; var pagelayer_nav_force_refresh = {}; // Render the Primary menu function pagelayer_render_pl_wp_menu(el){ var jEle = el.$; var menuID = el.atts['nav_list']; var parMenu = jEle.parent().closest('.pagelayer-wp_menu'); var inside_mega = ''; var menu_error = ''; // If we are inside primary menu and have a same menu ID if(parMenu.length > 0){ var parMenuID = pagelayer_get_att(parMenu, 'nav_list'); if(menuID == parMenuID){ pagelayer_show_msg('Not allowed same Menu inside the Primary menu widget!', 'warning'); inside_mega = true; // If parent menu menuID is empty then we prevent menu inside menu }else if(pagelayer_empty(menuID) || pagelayer_empty(parMenuID) ){ menu_error = 'Primary Menu Holder. Please select the correct menu or parent menu.'; inside_mega = true; } } // Set atts for easy rendering in PHP pagelayer_set_atts(jEle, 'inside_mega', inside_mega); if(!pagelayer_empty(inside_mega)){ if(pagelayer_empty(menu_error)){ menu_error = 'Primary Menu Holder. Please select the correct menu.'; } el.atts['nav_menu'] = menu_error; return; } // Setting default toggle icon. If the icon is empty. if(pagelayer_empty(el.atts['menu_toggle_icon'])){ el.atts['menu_toggle_icon'] = 'fas fa-bars'; } // To avoid remove pagelayer id of mega menu item var eleActive = !pagelayer_empty(pagelayer_active.el) && (el.id == pagelayer_active.el.id || jEle.find(pagelayer_active.el.$).length > 0); if(pagelayer_empty(pagelayer_nav[menuID]) || !pagelayer_empty(pagelayer_nav_force_refresh[el.id])){ var pagelayer_nav_items_list = pagelayer_get_nav_items(jEle); var findPar = jEle.find('.pagelayer-wp_menu-ul').parent(); el.atts['nav_menu'] = ''; // Get menu container for the hold place of the menu if(findPar.length > 0){ el.atts['nav_menu'] = findPar[0].outerHTML; } // Clear any previous timeout clearTimeout(pagelayer_wp_menu_timer); // Set a timer for constant change pagelayer_wp_menu_timer = setTimeout(function(){ jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_fetch_primary_menu&postID='+pagelayer_postID, // Send post id to on live mode type: 'post', data: { pagelayer_nonce: pagelayer_ajax_nonce, nav_list: menuID, pagelayer_nav_items: pagelayer_nav_items_list, 'pagelayer-live': 1 }, success: function(data) { //console.log(data); data = pagelayer_apply_megamenu_items(data, menuID, jEle, eleActive); pagelayer_nav[menuID] = data; }, complete: function() { //console.log(data); // Is element html rendered ? var findCont = setInterval( function(){ var container = jEle.find('.pagelayer-wp-menu-container'); if(container.length < 1){ return; } clearInterval(findCont); // Replace the menu HTML container.find('.pagelayer-wp_menu-ul').parent().remove(); container.append(pagelayer_nav[menuID]); var render_ref = pagelayer_render_menu_par; pagelayer_render_menu_par = false; container.find('.pagelayer-ele').each(function(){ var iEle = jQuery(this); if(iEle.parent('.pagelayer-ele-wrap').length > 0){ return; } var id = pagelayer_assign_id(iEle); pagelayer_element_setup('[pagelayer-id="'+id+'"]', true); }); pagelayer_render_menu_par = render_ref; pagelayer_primary_menu(jEle); }, 100); } }); }, 500); }else{ el.atts['nav_menu'] = pagelayer_apply_megamenu_items(pagelayer_nav[menuID], menuID, jEle, eleActive); } pagelayer_nav_force_refresh[el.id] = false; } // Render end the Primary menu function pagelayer_render_end_pl_wp_menu(el){ var jEle = el.$; var render_ref = pagelayer_render_menu_par; pagelayer_render_menu_par = false; // Re-setup the element jEle.find('.pagelayer-ele').each(function(){ var ele = jQuery(this); if(ele.parent('.pagelayer-ele-wrap').length > 0){ return; } var id = pagelayer_assign_id(ele); pagelayer_element_setup('[pagelayer-id="'+id+'"]', true); }); pagelayer_render_menu_par = render_ref; pagelayer_primary_menu(el.$); } // The Primary menu handler on live pagelayer_add_action('pagelayer_primary_menu_setup_end', function(e, jEle){ jEle.find('li.pagelayer-mega-menu-item a > .after-icon').unbind('click'); jEle.unbind('click.mega_menu'); jEle.on('click.mega_menu', 'li.pagelayer-mega-menu-item', function(e){ var target = jQuery(e.target); var mEle = jQuery(this); if(target.closest('.pagelayer-mega-menu').length > 0 || target.closest(mEle).length < 1){ return; } jQuery('.pagelayer-active-mega-menu').each(function(){ var oEle = jQuery(this); if(mEle.is(oEle)){ return; } oEle.removeClass('pagelayer-active-mega-menu'); }); mEle.toggleClass('pagelayer-active-mega-menu'); }); }); var pagelayer_render_menu = {}; var pagelayer_render_menu_par = true; // Render end the Primary menu function pagelayer_render_end_pl_nav_menu_item(el){ if(pagelayer_empty(pagelayer_menus_items_ref[el.atts['ID']])){ return; } var jEle = el.$; if(pagelayer_render_menu_par){ // Render parent clearTimeout(pagelayer_render_menu); pagelayer_render_menu = setTimeout(function(){ var par = jEle.closest('.pagelayer-wp_menu'); var plID = pagelayer_id(par); if(par.length < 1) return; pagelayer_nav_force_refresh[plID] = true; pagelayer_render_menu_par = false; pagelayer_sc_render(par); pagelayer_render_menu_par = true; }, 500); } } var pagelayer_nav_menu_timmer = {} // On nav dirty handler pagelayer_add_action('pagelayer_do_dirty', function(e, jEle){ var navEle = jEle.closest('[pagelayer-tag="pl_nav_menu_item"]'); if(navEle.length < 1){ return; } var itemData = pagelayer_data(navEle); var atts = itemData.atts; var itemID = atts['ID']; if( !(itemID in pagelayer_menus_items_ref) ){ pagelayer_menus_items_ref[itemID] = {}; } var props = pagelayer_get_props(navEle); var menuEle = jEle.closest('.pagelayer-wp_menu'); var plID = pagelayer_id(menuEle); for(var prop in props['settings']){ for(var section in props[prop]){ if(section in atts){ pagelayer_menus_items_ref[itemID][section] = atts[section]; continue; } pagelayer_menus_items_ref[itemID][section] = ''; } } pagelayer_menus_items_ref[itemID]['pagelayer_content'] = navEle; pagelayer_menus_items_ref[itemID]['is_dirty'] = true; var currentID = pagelayer_get_att(menuEle, 'nav_list'); // Prevent unnecessary render jQuery(pagelayer_editable).find('.pagelayer-wp_menu').each(function(){ var mEle = jQuery(this); var mID = pagelayer_get_att(mEle, 'nav_list'); if(currentID != mID){ return; } mEle.attr('pagelayer-click-render', 1); }); menuEle.removeAttr('pagelayer-click-render'); }); // We need to render the original content before we can start editing pagelayer_add_action('pagelayer_element_clicked', function(e, jEle){ var menus = jQuery(pagelayer_editable).find('.pagelayer-wp_menu'); // Prevent unnecessary render if(!jEle.hasClass('pagelayer-wp_menu') || menus.length < 2 || pagelayer_empty(jEle.attr('pagelayer-click-render'))){ return; } jEle.find('[pagelayer-tag="pl_nav_menu_item"]').each(function(){ var cEle = jQuery(this), postID = pagelayer_get_att(cEle, 'ID'); if(!(postID in pagelayer_menus_items_ref)){ return; } var ref_data = pagelayer_menus_items_ref[postID]; if(!('is_dirty' in ref_data) || pagelayer_empty(ref_data['is_dirty'])){ return; } pagelayer_sc_render(jEle); return false; // Break the loop }); }); // Render the post navigation function pagelayer_render_end_pl_post_nav(el){ jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_post_nav&postID='+pagelayer_postID, type: 'post', data: { pagelayer_nonce: pagelayer_ajax_nonce, data: el['atts'], }, async:false, success: function(response){ //console.log(response); var obj = jQuery.parseJSON(response); el.$.find('.pagelayer-prev-post').html(obj['atts']['prev_link']); el.$.find('.pagelayer-next-post').html(obj['atts']['next_link']); } }); } // Render the site title function pagelayer_render_pl_wp_title(el){ //console.log(el.tmp); // Use default logo if(pagelayer_empty(el.atts['logo_img_type'])){ // But is there a default logo if(!pagelayer_empty(pagelayer_site_logo)){ el.atts['func_image'] = pagelayer_site_logo[el.atts['logo_img_size']+'-url'] || pagelayer_site_logo['url']; el.atts['logo_img-title'] = pagelayer_empty(pagelayer_site_logo.title) ? '' : pagelayer_site_logo.title; el.atts['logo_img-alt'] = pagelayer_empty(pagelayer_site_logo.alt) ? '' : pagelayer_site_logo.alt; } // Custom logo }else{ el.atts['func_image'] = el.tmp['logo_img-'+el.atts['logo_img_size']+'-url'] || el.tmp['logo_img-url']; el.atts['func_image'] = pagelayer_empty(el.atts['func_image']) ? el.atts['logo_img'] : el.atts['func_image']; } } // Render the Post comment function pagelayer_render_end_pl_post_comment(el){ var postID = pagelayer_postID; if(el['atts']['post_type'] == 'custom' && el['atts']['post_id']){ postID = el['atts']['post_id']; } jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_post_comment&postID='+postID, type: 'post', data: { pagelayer_nonce: pagelayer_ajax_nonce, }, success: function(response){ el.$.find('.pagelayer-post-comment-container').html(response); } }); } var pagelayer_post_info_timer = {}; // Render the Post info list function pagelayer_render_pl_post_info_list(el){ el.atts['post_info_content'] = 1; // Clear any previous timeout clearTimeout(pagelayer_post_info_timer[el.id]); // Set a timer for constant change pagelayer_post_info_timer[el.id] = setTimeout(function(){ // Make the call jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_post_info&postID='+pagelayer_postID, type: 'post', data: { pagelayer_nonce: pagelayer_ajax_nonce, el: el.atts, }, success: function(response){ var obj = jQuery.parseJSON(response); //console.log(obj);el['atts'] = obj; if( pagelayer_empty(obj['post_info_content']) ){ el.$.find('.pagelayer-post-info-list-container').remove(); return; } el.$.find('.pagelayer-post-info-list-container').show(); el.$.find('.pagelayer-post-info-label').html(obj['post_info_content']); el.$.find('.pagelayer-post-info-icon img').attr('src', obj['avatar_url']); el.$.find('.pagelayer-post-info-list-container > a').attr('href', obj['link']); } }); }, 500); } // Render the Post info list function pagelayer_render_html_pl_post_info_list(el){ el.$.find('.pagelayer-post-info-list-container').hide(); } // Render the contact form function pagelayer_render_pl_contact(el){ // Set post id in atts el.atts['con_post_id'] = pagelayer_postID; el.atts['grecaptcha'] = pagelayer_recaptch_site_key; if(pagelayer_recaptch_version == 'v3') { el.atts['grecaptcha_v3'] = true; }else{ el.atts['grecaptcha_v2'] = true; } } // Render the contact form function pagelayer_render_end_pl_contact(el){ jQuery(el.$).find('.pagelayer-recaptcha').each(function(){ var recaptcha = jQuery(this); var widgetID = recaptcha.attr('recaptcha-widget-id'); if( !pagelayer_empty(window.grecaptcha) && (!pagelayer_empty(widgetID) || widgetID == 0) && pagelayer_recaptch_version != 'v3'){ grecaptcha.reset(widgetID); }else{ pagelayer_recaptcha_loader(recaptcha, true); } }); // Showing contact form message in the editor only. if(el.atts['show_msg_box']){ var msgBox = el.$.find('.pagelayer-message-box'); if(el.$.find('.pagelayer-message-box').length==2){ msgBox.eq(0).text('Demo success box'); msgBox.eq(0).addClass('pagelayer-cf-msg-suc'); msgBox.eq(1).text('Demo failed box'); msgBox.eq(1).addClass('pagelayer-cf-msg-err'); } } pagelayer_set_atts(el.$, 'con_post_id', pagelayer_postID); } function pagelayer_render_end_pl_heading(el) { pagelayer_search_widgets(el.$); } function pagelayer_render_end_pl_text(el) { pagelayer_search_widgets(el.$); } // Render the contact form function pagelayer_render_pl_contact_item(el){ var html = ''; var options = ''; var placeholder = ''; var required = ''; if(!pagelayer_empty(el.atts['required'])){ required = 'required'; } if(!pagelayer_empty(el.atts['label_name']) && pagelayer_empty(el.atts['label_as_holder'])){ html = '<label for="'+el.atts['field_name']+'">'+ '<span class="pagelayer-form-label">'+el.atts['label_name']+'</span>'; if(!pagelayer_empty(required)){ html += ' *'; } html += '</label>'; } if(!pagelayer_empty(el.atts['label_as_holder'])){ placeholder = el.atts['label_name']; }else{ if(!pagelayer_empty(el.atts['placeholder'])) placeholder = el.atts['placeholder']; } // File accept var file_accept = '.jpg,.jpeg,.png,.gif,.pdf,.doc,.docx,.ppt,.pptx,.odt,.avi,.ogg,.m4a,.mov,.mp3,.mp4,.mpg,.wav,.wmv'; if(!pagelayer_empty(el.atts['accept_file'])){ file_accept = el.atts['accept_file']; } if(el.atts['field_type'] == 'select'){ html += '<select name="'+el.atts['field_name']+'" '+required+'>' if(!pagelayer_empty(el.atts['label_name']) && !pagelayer_empty(el.atts['label_as_holder'])){ html += '<option value="" disabled selected>'+el.atts['label_name']+'</option>'; }else{ html += '<option value="" disabled selected>---</option>'; } if(!pagelayer_empty(el.atts['values'])){ options = el.atts['values'].split("\n"); for(var x in options){ html += '<option value="'+options[x].trim()+'">'+options[x].trim()+'</option>'; } } html += '</select>'; }else if(el.atts['field_type'] == 'checkbox'){ if(!pagelayer_empty(el.atts['values'])){ options = el.atts['values'].split("\n"); html += '<div class="pagelayer-radcheck-holder pagelayer-contact-checkbox" '+required+'>'; for(var x in options){ html += '<div><input type="checkbox" id="'+el.id+options[x].trim()+'" name="'+el.atts['field_name']+'[]" '+ 'value="'+options[x].trim()+'" /><label for="'+el.id+options[x].trim()+'" class="pagelayer-form-label">'+options[x].trim()+'</label></div>'; } html += '</div>'; } }else if(el.atts['field_type'] == 'radio'){ if(!pagelayer_empty(el.atts['values'])){ options = el.atts['values'].split("\n"); html += '<div class="pagelayer-radcheck-holder">'; for(var x in options){ html += '<div><input type="radio" name="'+el.atts['field_name']+'" '+ 'value="'+options[x].trim()+'" '+required+'/><span>'+options[x].trim()+'</span></div>'; } html += '</div>'; } }else if(el.atts['field_type'] == 'textarea'){ html += '<textarea name="'+el.atts['field_name']+'" rows="'+el.atts['textarea_rows']+'" placeholder="'+placeholder+'" '+ ''+required+'></textarea>'; }else if(el.atts['field_type'] == 'file'){ html += '<input type="'+el.atts['field_type']+'" '+ 'name="'+el.atts['field_name']+'" placeholder="'+placeholder+'" accept="'+file_accept+'" '+required+' />'; }else if(el.atts['field_type'] == 'label'){ html += ''; }else{ html += '<input type="'+el.atts['field_type']+'" '+ 'name="'+el.atts['field_name']+'" placeholder="'+placeholder+'" '+required+'/>'; } el.atts['fieldhtml'] = html; } // Render the post content function pagelayer_render_pl_post_content(el){ el.atts['post_content'] = 'Post Content Holder'; el.CSS.css.push({'sel': '{{element}} .entry-content', 'val': 'min-height:20px;background-color:#e3e3e3;'}); } // Render the post excertp function pagelayer_render_pl_post_excerpt(el){ el.tmp['post_excerpt'] = '<div class="pagelayer-post-excerpt pagelayer-empty-widget"></div>'; } // Render the flipbox function pagelayer_render_pl_flipbox(el){ var jEle = el.$; el.atts['func_image'] = el.tmp['heading_image-'+el.atts['heading_image_size']+'-url'] || el.tmp['heading_image-url']; el.atts['func_image'] = el.atts['func_image'] || el.atts['heading_image']; var back = pagelayer_get_att(jEle, 'back_section'); if(back){ jEle.attr('back_section', back); }else{ jEle.removeAttr('back_section', back); } } // Render the Testimonial Slider function pagelayer_render_end_pl_testimonial_slider(el){ pagelayer_owl_destroy(el.$, '.pagelayer-testimonials-holder'); pagelayer_pl_testimonial_slider(el.$); } // Render the countdown function pagelayer_render_pl_countdown(el){ if(pagelayer_empty(el.atts['custom_label_text'])){ el.atts['days_label_text'] = 'Days'; el.atts['hours_label_text'] = 'Hours'; el.atts['minutes_label_text'] = 'Minutes'; el.atts['seconds_label_text'] = 'Seconds'; } } // Render the countdown function pagelayer_render_end_pl_countdown(el){ var jEle = el.$; var exp = pagelayer_get_att(jEle, 'display_expired_text'); if(exp){ jEle.attr('display_expired_text', exp); }else{ jEle.removeAttr('display_expired_text', exp); } pagelayer_countdown(jEle); if(pagelayer_empty(el['atts']['days']) && pagelayer_empty(el['atts']['hours']) && pagelayer_empty(el['atts']['minutes']) && pagelayer_empty(el['atts']['seconds']) ){ jEle.find('.pagelayer-countdown-counter').html('<h2>Countdown Timer Holder</h2>'); } } // Render the share function pagelayer_render_pl_share(el){ if('text' in el.atts){ el.atts['icon_label'] = el.atts['text']; return; } var icon = ''; if(!pagelayer_empty(el.atts['icon'])){ var icon_splited = el.atts['icon'].split(' fa-'); icon = icon_splited[1]; } var labelList = { 'Facebook' : ['facebook', 'facebook-official', 'facebook-f', 'facebook-messenger', 'facebook-square'], 'Twitter' : ['twitter', 'twitter-square'], 'X' : [ 'x-twitter', 'x-twitter-square'], 'Google+' : ['google-plus', 'google-plus-square', 'google-plus-g'], 'Instagram' : ['instagram'], 'Linkedin' : ['linkedin', 'linkedin-square', 'linkedin-in'], 'Pinterest' : ['pinterest', 'pinterest-p', 'pinterest-square'], 'Reddit' : ['reddit-alien', 'reddit-square', 'reddit'], 'Skype' : ['skype'], 'Stumbleupon' : ['stumbleupon', 'stumbleupon-circle'], 'Telegram' : ['telegram', 'telegram-plane'], 'Tumblr' : ['tumblr', 'tumblr-square'], 'VK' : ['vk'], 'Weibo' : ['weibo'], 'WhatsApp' : ['whatsapp', 'whatsapp-square'], 'WordPress' : ['wordpress', 'wordpress-simple'], 'Xing' : ['xing', 'xing-square'], 'Delicious' : ['delicious'], 'Dribbble' : ['dribbble', 'dribbble-square'], 'Snapchat' : ['snapchat-ghost'], 'Pocket' : ['get-pocket'], 'Email' : ['envelope', 'envelope-open', 'envelope-o'] } jQuery.each(labelList, function(key, value){ if(jQuery.inArray(icon, value) != -1){ el.atts['icon_label'] = key; } }); } // Render the share icon function pagelayer_render_end_pl_share(el){ pagelayer_social(el.$, '.pagelayer-share-content'); } // copyright rendering function var pagelayer_copyright; function pagelayer_render_pl_copyright(el){ if(pagelayer_empty(el.atts['copyright_text'])){ return; } pagelayer_copyright = el.atts['copyright_text']; } // Render the animated heading function pagelayer_render_pl_anim_heading(el){ el.atts['rotate_html'] = ''; // Creates html for rotating text if(!pagelayer_empty(el.atts['rotate_text'])){ var rotate_text = ''; rotate_text = el.atts['rotate_text'].split(','); el.atts['rotate_html'] += '<div class="pagelayer-animated-heading pagelayer-rotating-text pagelayer-words-wrapper">'; jQuery.each(rotate_text, function(i){ el.atts['rotate_html'] += '<span'; if(i == 0){ el.atts['rotate_html'] += ' class="pagelayer-is-visible"'; } el.atts['rotate_html'] += '>' + rotate_text[i] + '</span>'; }); el.atts['rotate_html'] += '</div>'; } // Required classes for particular rotate el.atts['rotate_req'] = ''; var letters = ['pagelayer-aheading-rotate2', 'pagelayer-aheading-rotate3', 'type', 'pagelayer-aheading-scale']; if(jQuery.inArray(el.atts['animations'], letters) != -1){ el.atts['rotate_req'] = 'letters '; } if(el.atts['animations'] == 'pagelayer-aheading-clip'){ el.atts['rotate_req'] = 'is-full-width '; } } // Render animated heading function pagelayer_render_end_pl_anim_heading(el){ var jEle = el.$; pagelayer_anim_heading(jEle); } function pagelayer_render_pl_post_title(el){ el['atts']['open_html_tag'] = !pagelayer_empty(el['atts']['html_tag']) ? '<'+el['atts']['html_tag']+'>' : ''; el['atts']['close_html_tag'] = !pagelayer_empty(el['atts']['html_tag']) ? '</'+el['atts']['html_tag']+'>' : ''; } //////////////// // Freemium End //////////////// givejs.php 0000644 00000010304 15100021164 0006530 0 ustar 00 <?php ////////////////////////////////////////////////////////////// //=========================================================== // givejs.php //=========================================================== // PAGELAYER // Inspired by the DESIRE to be the BEST OF ALL // ---------------------------------------------------------- // Started by: Pulkit Gupta // Date: 23rd Jan 2017 // Time: 23:00 hrs // Site: http://pagelayer.com/wordpress (PAGELAYER) // ---------------------------------------------------------- // Please Read the Terms of use at http://pagelayer.com/tos // ---------------------------------------------------------- //=========================================================== // (c)Pagelayer Team //=========================================================== ////////////////////////////////////////////////////////////// if(!empty($_REQUEST['test'])){ echo 1; die(); } // Read the file $data = ''; $data_premium = ''; $self_path = dirname(__FILE__); $plugins_path = dirname(dirname($self_path)); $files = array( // Admin JS 'pagelayer-editor.js', 'widgets.js', 'premium.js', 'properties.js', 'base-64.min.js', 'slimscroll.js', 'vanilla-picker.min.js', 'tlite.min.js', 'pagelayer-pen.js', // Enduser JS 'imagesloaded.min.js', 'nivo-lightbox.min.js', 'owl.carousel.min.js', 'pagelayer-frontend.js', 'premium-frontend.js', 'wow.min.js', 'jquery-numerator.js', 'simpleParallax.min.js', 'chart.min.js', 'shuffle.min.js' ); // What files to give $give = @$_REQUEST['give']; // Premium $premium = !empty($_REQUEST['premium']) ? $_REQUEST['premium'] : ''; $premium_path = $plugins_path.'/pagelayer-pro/js'; if(!empty($give)){ $give = explode(',', $give); // Check all files are in the supported list foreach($give as $file){ if(in_array($file, $files)){ $final[md5($file)] = $file; } } } if(!empty($premium)){ $premium = explode(',', trim($premium, ',')); // Check all files are in the supported list foreach($premium as $file){ if(in_array($file, $files)){ $final_premium[md5($file)] = $file; } } } // Give all if(empty($final)){ $final = $files; } foreach($final as $k => $v){ //echo $k.'<br>'; $data .= file_get_contents($self_path.'/'.$v)."\n\n"; } if(!empty($final_premium)){ foreach($final_premium as $k => $v){ //echo $k.'<br>'; $data_premium .= file_get_contents($premium_path.'/'.$v)."\n\n"; } } // We are zipping if possible if(function_exists('ob_gzhandler') && !ini_get('zlib.output_compression')){ ob_start('ob_gzhandler'); } // Type javascript header("Content-type: text/javascript; charset: UTF-8"); // Set a zero Mtime $filetime = filemtime($self_path.'/pagelayer-editor.js'); // Are we to also serve Shortcodes ? if(!empty($pagelayer->shortcodes)){ $data .= 'pagelayer_shortcodes = '.json_encode($pagelayer->shortcodes).';'."\n\n"; $data .= 'pagelayer_styles = '.json_encode($pagelayer->styles).';'."\n\n"; $data .= 'pagelayer_groups = '.json_encode($pagelayer->groups).';'."\n\n"; } // Add the langs as well preg_match_all('/pagelayer_l\([\'"](\w*)[\'"]\)/is', $data, $matches); if(!empty($matches[1]) && function_exists('__pl')){ foreach($matches[1] as $lk => $lv){ $export_langs[$lv] = __pl($lv); } } // Also add the fonts if(!empty($pagelayer->fonts)){ $export_langs['pl_fonts_list'] = $pagelayer->fonts; } // And lang string ? if(!empty($export_langs)){ $data .= 'pagelayer_lang = '.json_encode($export_langs).';'."\n\n"; } // Cache Control header("Cache-Control: must-revalidate"); // Checking if the client is validating his cache and if it is current. if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $filetime)) { // Client's cache IS current, so we just respond '304 Not Modified'. header('Last-Modified: '.gmdate('D, d M Y H:i:s', $filetime).' GMT', true, 304); return; }else{ // Image not cached or cache outdated, we respond '200 OK' and output the image. header('Last-Modified: '.gmdate('D, d M Y H:i:s', $filetime).' GMT', true, 200); } echo $data; echo $data_premium; // Write if we are front-end only then $dev = dirname(dirname(__FILE__)).'/dev.php'; if(!empty($_REQUEST['write']) && file_exists($dev)){ include_once($dev); write_js(); } slimscroll.js 0000644 00000011204 15100021164 0007251 0 ustar 00 /*! 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<d?Math.ceil(g):Math.floor(g),c.css({top:g+"px"}));l=parseInt(c.css("top"))/(b.outerHeight()-c.outerHeight());g= l*(b[0].scrollHeight-b.outerHeight());e&&(g=d,d=g/b[0].scrollHeight*b.outerHeight(),d=Math.min(Math.max(d,0),f),c.css({top:d+"px"}));b.scrollTop(g);b.trigger("slimscrolling",~~g);w();p()}function x(){u=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),30);c.css({height:u+"px"});var a=u==b.outerHeight()?"none":"block";c.css({display:a})}function w(){x();clearTimeout(B);l==~~l?(k=a.allowPageScroll,C!=l&&b.trigger("slimscroll",0==~~l?"top":"bottom")):k=!1;C=l;u>=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("<div></div>").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("<div></div>").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("<div></div>").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); imagesloaded.min.js 0000644 00000012732 15100021164 0010275 0 ustar 00 /*! * 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<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(e,r),delete n[r]),r.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){if(Array.isArray(e))return e;var t="object"==typeof e&&"number"==typeof e.length;return t?d.call(e):[e]}function o(e,t,r){if(!(this instanceof o))return new o(e,t,r);var s=e;return"string"==typeof e&&(s=document.querySelectorAll(e)),s?(this.elements=n(s),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(this.check.bind(this))):void a.error("Bad element for imagesLoaded "+(s||e))}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console,d=Array.prototype.slice;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&u[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var u={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o}); pagelayer-pen.js 0000644 00000120074 15100021164 0007625 0 ustar 00 /* 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: '<strong><i class="fas fa-bold"></i></strong>' }, italic:{ tag: 'EM', icon: '<strong><i class="fas fa-italic"></i></strong>' }, underline:{ tag: 'U', icon: '<strong><i class="fas fa-underline"></i></strong>' }, strike:{ tag: 'strike', fn: 'strikethrough', icon: '<strong><i class="fas fa-strikethrough"></i></strong>' }, h1:{ fn: 'formatBlock', icon: '<strong>H<sub>1</sub></strong>' }, h2:{ fn: 'formatBlock', icon: '<strong>H<sub>2</sub></strong>' }, h3:{ fn: 'formatBlock', icon: '<strong>H<sub>3</sub></strong>' }, h4:{ fn: 'formatBlock', icon: '<strong>H<sub>4</sub></strong>' }, h5:{ fn: 'formatBlock', icon: '<strong>H<sub>5</sub></strong>' }, h6:{ fn: 'formatBlock', icon: '<strong>H<sub>6</sub></strong>' }, p:{ fn: 'formatBlock', icon: '<strong><i class="fas fa-paragraph"></i></strong>' }, blockquote:{ fn: 'formatBlock', icon: '<strong><i class="fas fa-quote-right"></i></strong>' }, formating:{ fn: 'formatBlock', fixIcon: '<strong><i class="fas fa-paragraph"></i></strong>' }, unorderedlist:{ tag: 'UL', fn: 'insertUnorderedList', icon: '<strong><i class="fas fa-list-ul"></i></i></strong>' }, orderedlist:{ tag: 'OL', fn: 'insertOrderedList', icon: '<strong><i class="fas fa-list-ol"></i></i></strong>' }, sub:{ tag: 'sub', fn: 'subscript', icon: '<strong><i class="fas fa-subscript"></i></strong>' }, super:{ tag: 'sup', fn: 'superscript', icon: '<strong><i class="fas fa-superscript"></i></strong>' }, link:{ fn: 'setLinkHandler', tag: 'a', icon: '<strong><i class="fas fa-link"></i></strong>', }, image:{ fn: 'imageBtnHandler', icon: '<i class="far fa-image"></i>' }, align:{ style: 'text-align', fn: 'formatBlock', icon: { 'left': '<i class="fas fa-align-left"></i>', 'center': '<i class="fas fa-align-center"></i>', 'right': '<i class="fas fa-align-right"></i>', 'justify': '<i class="fas fa-align-justify"></i>', } }, color:{ class: 'pagelayer-pen-color-picker', style: 'color', fn: 'commandHandler', fixIcon: '<svg viewbox=\"0 0 18 18\"> <line class=\"pagelayer-pen-color-label pagelayer-pen-stroke pagelayer-pen-transparent\" x1=3 x2=15 y1=15 y2=15></line> <polyline class=pagelayer-pen-stroke points=\"5.5 11 9 3 12.5 11\"></polyline> <line class=pagelayer-pen-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>', buildBtn : 'buildColorBtnHandler', default : pagelayer_customColor, customInpute: true }, background:{ class: 'pagelayer-pen-color-picker', style: 'background-color', fn: 'commandHandler', fixIcon: '<svg viewbox=\"0 0 18 18\"> <g class=\"pagelayer-pen-fill pagelayer-pen-color-label\"> <polygon points=\"6 6.868 6 6 5 6 5 7 5.942 7 6 6.868\"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points=\"6.817 5 6 5 6 6 6.38 6 6.817 5\"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points=\"4 11.439 4 11 3 11 3 12 3.755 12 4 11.439\"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points=\"4.63 10 4 10 4 11 4.192 11 4.63 10\"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points=\"13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174\"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points=\"12 6.868 12 6 11.62 6 12 6.868\"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points=\"12.933 9 13 9 13 8 12.495 8 12.933 9\"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=pagelayer-pen-stroke points=\"5.5 13 9 5 12.5 13\"></polyline> <line class=pagelayer-pen-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>', 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: '<svg viewBox="0 0 22 18" version="1.1"><g><path class="pagelayer-pen-fill" d="M 21.527344 7.875 L 9.269531 7.875 C 9.011719 7.875 8.800781 8.125 8.800781 8.4375 L 8.800781 9.5625 C 8.800781 9.875 9.011719 10.125 9.269531 10.125 L 21.527344 10.125 C 21.789062 10.125 22 9.875 22 9.5625 L 22 8.4375 C 22 8.125 21.789062 7.875 21.527344 7.875 Z M 21.527344 13.5 L 9.269531 13.5 C 9.011719 13.5 8.800781 13.75 8.800781 14.0625 L 8.800781 15.1875 C 8.800781 15.5 9.011719 15.75 9.269531 15.75 L 21.527344 15.75 C 21.789062 15.75 22 15.5 22 15.1875 L 22 14.0625 C 22 13.75 21.789062 13.5 21.527344 13.5 Z M 21.527344 2.25 L 9.269531 2.25 C 9.011719 2.25 8.800781 2.5 8.800781 2.8125 L 8.800781 3.9375 C 8.800781 4.25 9.011719 4.5 9.269531 4.5 L 21.527344 4.5 C 21.789062 4.5 22 4.25 22 3.9375 L 22 2.8125 C 22 2.5 21.789062 2.25 21.527344 2.25 Z M 6.050781 5.0625 C 6.542969 5.0625 6.785156 4.453125 6.4375 4.101562 L 3.6875 1.289062 C 3.472656 1.070312 3.125 1.070312 2.910156 1.289062 L 0.160156 4.101562 C -0.160156 4.429688 0.0117188 5.0625 0.550781 5.0625 L 2.199219 5.0625 L 2.199219 12.9375 L 0.550781 12.9375 C 0.0585938 12.9375 -0.183594 13.546875 0.160156 13.898438 L 2.910156 16.710938 C 3.125 16.929688 3.476562 16.929688 3.691406 16.710938 L 6.441406 13.898438 C 6.757812 13.570312 6.585938 12.9375 6.050781 12.9375 L 4.398438 12.9375 L 4.398438 5.0625 Z M 6.050781 5.0625 "/></g></svg>', default : pagelayer_pen_lineHeight, customInpute: true }, font:{ style: 'font-family', fn: 'commandHandler', fixIcon: '<i class="fas fa-font"></i>', default : pagelayer_fonts, buildBtn : 'buildfontBtnHandler', }, viewHTML:{ fn: 'viewHTMLBtnHandler', icon: '<i class="fas fa-code"></i>' }, removeformat:{ icon: '<i class="fas fa-remove-format"></i>' } } } addContainer(className){ className = className || false; // Add Container var container = jQuery('.pagelayer-pen-holder'); if(container.length < 1){ jQuery('body').append('<div class="pagelayer-pen-holder"></div>'); container = jQuery('.pagelayer-pen-holder'); } if(!className){ return container; } if(container.find('.'+className).length < 1){ container.append('<div class="'+className+'"></div>'); } 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 '<option value="'+val+'" type="'+type+'">'+lang+'</option>'; } 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 += '<optgroup label="'+pagelayer_ucwords(kk)+'">'; } 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('<span class="pagelayer-pen-formats"><button class="pagelayer-pen-close"><i class="fas fa-times"></i></button></span>'); // 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('<div>').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('<span style="'+btn.style+':' + value + ';">' + selectedText + '</span>'); // 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('<span data-pts/>'); 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('<p/>').parent() }else{ finalP = lineFele.nextUntil(lineEele.next()).addBack().wrapAll('<p/>').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 += `<span class="pagelayer-pen-picker-item" tabindex="0" role="button" ${attrs}>${itemInner}</span>`; }); 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 = '<input type="text" class="pagelayer-pen-custom-input" placeholder="Custom value">'; } var container = jQuery(`<span ${selAtts}> <span class="pagelayer-pen-picker-label" tabindex="0" role="button" aria-expanded="false">${fixIcon}</span> <span class="pagelayer-pen-picker-options" aria-hidden="true" tabindex="-1" id="${optId}" aria-controls="${optId}"> ${options} ${customInpute} </span> </span>`); 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('<option class="pagelayer-pen-custom-value"></option>'); 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 = '<input type="text" name="url" placeholder="https://example.com" value="'+url+'" autocomplete="off"><span class="pagelayer-pen-link-btn pagelayer-btn-success">'+linkBtn+'</span><span class="pagelayer-pen-unlink-btn pagelayer-btn-primary">'+unlinkBtn+'</span>'; 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('<div class="pagelayer-pen-html-viewer">'+ '<div class="pagelayer-pen-html-holder">'+ '<textarea class="pagelayer-pen-html-area"></textarea>'+ '<div class="pagelayer-pen-html-btn">'+ '<button class="pagelayer-pen-html-btn-update pagelayer-btn-success">Update</button>'+ '<button class="pagelayer-pen-html-btn-cancel pagelayer-btn-secondary">Cancel</button>'+ '</div>'+ '</div>'+ '</div>'); 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(); }); } } file_manager_free_shortcode_admin.js 0000644 00000010621 15100214130 0013721 0 ustar 00 jQuery(document).ready(function () { var security_key = fmfparams.nonce; var fmlang = fmfparams.lang; var ajaxurl = fmfparams.ajaxurl; var href = fm_get_network_url(); jQuery("#wp_file_manager") .elfinder({ url: ajaxurl, customData: { action: "mk_file_folder_manager", _wpnonce: security_key, networkhref:href, }, uploadMaxChunkSize: 1048576000000, defaultView: "list", height: 500, lang: fmlang, soundPath: fmfparams.plugin_url+'sounds/', baseUrl: fmfparams.plugin_url, /* Start */ handlers: { /* Upload */ upload: function (event, instance) { if (fmfparams.fm_enable_media_upload == "1") { var filepaths = []; var uploadedFiles = event.data.added; for (i in uploadedFiles) { var file = uploadedFiles[i]; filepaths.push(file.url); } if (filepaths != "") { var data = { action: "mk_file_folder_manager_media_upload", uploadefiles: filepaths, _wpnonce: security_key, networkhref:href, }; jQuery.post(ajaxurl, data, function (response) {}); } } }, }, commandsOptions: { edit: { mimes: [], editors: [ { mimes: [ "text/plain", "text/html", "text/javascript", "text/css", "text/x-php", "application/x-php", ], load: function (textarea) { var mimeType = this.file.mime; var filename = this.file.name; // CodeMirror configure editor = CodeMirror.fromTextArea(textarea, { //mode: 'css', indentUnit: 4, lineNumbers: true, theme: "3024-day", viewportMargin: Infinity, lineWrapping: true, //gutters: ["CodeMirror-lint-markers"], lint: true, }); return editor; }, close: function (textarea, instance) { this.myCodeMirror = null; }, save: function (textarea, editor) { jQuery(textarea).val(editor.getValue()); }, }, ], }, quicklook: { sharecadMimes: [ "image/vnd.dwg", "image/vnd.dxf", "model/vnd.dwf", "application/vnd.hp-hpgl", "application/plt", "application/step", "model/iges", "application/vnd.ms-pki.stl", "application/sat", "image/cgm", "application/x-msmetafile", ], googleDocsMimes: [ "application/pdf", "image/tiff", "application/vnd.ms-office", "application/msword", "application/vnd.ms-word", "application/vnd.ms-excel", "application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.openxmlformats-officedocument.presentationml.presentation", "application/postscript", "application/rtf", ], officeOnlineMimes: [ "application/vnd.ms-office", "application/msword", "application/vnd.ms-word", "application/vnd.ms-excel", "application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.openxmlformats-officedocument.presentationml.presentation", "application/vnd.oasis.opendocument.text", "application/vnd.oasis.opendocument.spreadsheet", "application/vnd.oasis.opendocument.presentation", ], }, }, uiOptions : { toolbarExtra : { autoHideUA: [], displayTextLabel: false, preferenceInContextmenu: false } } /* END */ }) .elfinder("instance"); }); fm_script.js 0000644 00000005467 15100214130 0007067 0 ustar 00 jQuery(window).on('load',function (e) { jQuery('.wfmrs').delay(10000).slideDown('slow'); jQuery('.lokhal_verify_email_popup').slideDown(); jQuery('.lokhal_verify_email_popup_overlay').show(); }); jQuery(document).ready(function () { jQuery('.close_fm_help').on('click', function (e) { var what_to_do = jQuery(this).data('ct'); jQuery.ajax({ type: "post", url: ajaxurl, data: { action: "mk_fm_close_fm_help", what_to_do: what_to_do }, success: function (response) { jQuery('.wfmrs').slideUp('slow'); } }); }); jQuery('#fm_lang').change(function (e) { var fm_lang = jQuery(this).val(); window.location.href = 'admin.php?page=wp_file_manager&nonce=' + fmscript.nonce + '&lang=' + fm_lang; }); jQuery('#fm_theme').change(function (e) { var fm_theme = jQuery(this).val(); window.location.href = 'admin.php?page=wp_file_manager&theme=' + fm_theme; }); jQuery('.lokhal_cancel').click(function (e) { e.preventDefault(); var email = jQuery('#verify_lokhal_email').val(); var fname = jQuery('#verify_lokhal_fname').val(); var lname = jQuery('#verify_lokhal_lname').val(); jQuery('.lokhal_verify_email_popup').slideUp(); jQuery('.lokhal_verify_email_popup_overlay').hide(); send_ajax('cancel', email, fname, lname); }); jQuery('.verify_local_email').click(function (e) { e.preventDefault(); var email = jQuery('#verify_lokhal_email').val(); var fname = jQuery('#verify_lokhal_fname').val(); var lname = jQuery('#verify_lokhal_lname').val(); var send_mail = true; jQuery('.error_msg').hide(); if (fname == '') { jQuery('#fname_error').show(); send_mail = false; } if (lname == '') { jQuery('#lname_error').show(); send_mail = false; } if (email == '') { jQuery('#email_error').show(); send_mail = false; } if (send_mail) { jQuery('.lokhal_verify_email_popup').slideUp(); jQuery('.lokhal_verify_email_popup_overlay').hide(); send_ajax('verify', email, fname, lname); } }); // mac if (navigator.userAgent.indexOf('Mac OS X') != -1) { jQuery("body").addClass("mac"); } else { jQuery("body").addClass("windows"); } jQuery('.fm_close_msg').click(function (e) { jQuery('.fm_msg_popup').fadeOut(); }); }); function send_ajax(todo, email, fname, lname) { jQuery.ajax({ type: "post", url: ajaxurl, data: { action: "mk_filemanager_verify_email", 'todo': todo, 'vle_nonce': vle_nonce, 'lokhal_email': email, 'lokhal_fname': fname, 'lokhal_lname': lname }, success: function (response) { if (response == '1') { alert('A confirmation link has been sent to your email address. Please click on the link to verify your email address.'); } else if (response == '2') { alert('Error - Email Not Sent.'); } } }); } top.js 0000644 00000000610 15100214130 0005664 0 ustar 00 var $ = jQuery; function fm_get_network_url(){ var urlhash = window.location.hash; var href = ''; if(urlhash){ var arr = urlhash.split('_'); var lastItem = arr.pop(); var txt = decodeURIComponent(escape(window.atob(lastItem))); if(fmfparams.is_multisite == '1') { if(txt == '/') { href = fmfparams.network_url; } } } return href; } fm-backup.js 0000644 00000026567 15100214130 0006752 0 ustar 00 jQuery(document).ready(function(){ var ajax_url = fmbackupparams.ajaxurl; var wpfmbackup = fmbackupparams.wpfmbackup; jQuery(document).on("click", "#wpfm-backupnow-button", function(){ jQuery(".fmbkp_console h3").removeAttr('style'); var fm_bkp_database = jQuery('#fm_bkp_database').prop('checked'); var fm_bkp_files = jQuery('#fm_bkp_files').prop('checked'); var fm_bkp_plugins = jQuery('#fm_bkp_plugins').prop('checked'); var fm_bkp_themes = jQuery('#fm_bkp_themes').prop('checked'); var fm_bkp_uploads = jQuery('#fm_bkp_uploads').prop('checked'); var fm_bkp_other = jQuery('#fm_bkp_other').prop('checked'); var fm_bkp_id = ''; // empty var flag = 1; if(fm_bkp_files === true && fm_bkp_plugins === false && fm_bkp_themes === false && fm_bkp_uploads === false && fm_bkp_other === false ){ alert(fmbackupparams.backup_empty_error); flag = 0; } if(flag == 1){ jQuery(".fmbkp_console_popup .close_fm_console").hide(); jQuery('.fmbkp_console_popup').show(); jQuery('#fmbkp_console').show().html('<p class="backup_wait">'+fmbackupparams.backup_running+'</p><ul></ul>'); wp_fm_backup(ajax_url, fm_bkp_database,fm_bkp_files,fm_bkp_plugins,fm_bkp_themes,fm_bkp_uploads,fm_bkp_other,fm_bkp_id); } }); function wp_fm_backup(ajax_url, fm_bkp_database,fm_bkp_files,fm_bkp_plugins,fm_bkp_themes,fm_bkp_uploads,fm_bkp_other,fm_bkp_id){ jQuery.ajax({ url : ajax_url, type : 'post', data : { action : 'mk_file_manager_backup', database : fm_bkp_database, files: fm_bkp_files, plugins: fm_bkp_plugins, themes: fm_bkp_themes, uploads: fm_bkp_uploads, others: fm_bkp_other, bkpid: fm_bkp_id, nonce: wpfmbackup, }, success : function( response ) { var res = JSON.parse(response); var next_step = res.step; jQuery('.fmbkp_console_popup').show(); if(next_step == '0') { jQuery('.fmbkp_console_loader').hide(); jQuery('#fmbkp_console').show().find("ul").append(res.msg); setTimeout(function(){ location.reload(); }, 600); } else { jQuery('#fmbkp_console').show().find("ul").append(res.msg); wp_fm_backup(ajax_url,res.database,res.files,res.plugins,res.themes,res.uploads,res.others,res.bkpid); } } }); } jQuery(".backupids").click(function(){ if(jQuery(".backupids:checked").length == jQuery(".backupids").length){ jQuery(".bkpchkCheckAll").prop("checked",true); jQuery('.bkpCheckAll').addClass('disabled_btn'); jQuery('.bkpUnCheckAll').removeClass('disabled_btn'); jQuery('.bkpDelete').removeClass('disabled_btn'); } else{ jQuery(".bkpchkCheckAll").prop("checked",false); jQuery('.bkpUnCheckAll').addClass('disabled_btn'); jQuery('.bkpCheckAll').removeClass('disabled_btn'); jQuery('.bkpDelete').removeClass('disabled_btn'); if(jQuery(".backupids:checked").length == 0){ jQuery('.bkpDelete').addClass('disabled_btn'); } if(jQuery(".backupids:checked").length > 0){ jQuery('.bkpUnCheckAll').removeClass('disabled_btn'); } } }); // select all -> backups jQuery(".bkpchkCheckAll").click(function () { jQuery(".backupids").prop('checked', jQuery(this).prop('checked')); if(jQuery(this).prop('checked')) { jQuery('.bkpDelete,.bkpUnCheckAll').removeClass('disabled_btn'); jQuery('.bkpCheckAll').addClass('disabled_btn'); } else { jQuery('.bkpDelete,.bkpUnCheckAll').addClass('disabled_btn'); jQuery('.bkpCheckAll').removeClass('disabled_btn'); } }); jQuery(".bkpCheckAll").click(function () { jQuery(".backupids,.bkpchkCheckAll").prop('checked', true); jQuery('.bkpDelete,.bkpUnCheckAll').removeClass('disabled_btn'); jQuery(this).addClass('disabled_btn'); }); jQuery(".bkpUnCheckAll").click(function () { jQuery(".backupids,.bkpchkCheckAll").prop('checked', false); jQuery('.bkpDelete,.bkpUnCheckAll').addClass('disabled_btn'); jQuery('.bkpCheckAll').removeClass('disabled_btn'); }); // for toggle backup options jQuery("#fm_open_files_option").click(function () { jQuery("#fm_open_files_options").slideToggle(); }); //close console popup jQuery(".close_fm_console").click(function () { jQuery(".fmbkp_console_popup").hide(); }); // on delete - ajax jQuery(".bkpDelete").click(function () { var delarr = new Array(); jQuery(".backupids").each(function () { if(jQuery(this).is(':checked')) { delarr.push(jQuery(this).val()); } }); //each if(delarr == '') { alert(fmbackupparams.delete_backup); } else { var r = confirm(fmbackupparams.confirm_del) if (r == true) { jQuery.ajax({ type: "POST", url: ajax_url, data: { action : 'mk_file_manager_backup_remove', delarr: delarr, nonce: fmbackupparams.wpfmbackupremove, }, cache: false, success: function(response) { alert(response); location.reload(); } });//ajax } } }); //click //open DELETE popup jQuery('.bkpDeleteID').on("click",function(){ jQuery(".dlt_backup_popup").show(); var bkpId = jQuery(this).attr('id'); jQuery('.dlt_confirmed').attr("id", bkpId); }); //close DELETE popup jQuery(".close_dlt_backup, .dlt_cancel").click(function () { jQuery(".dlt_backup_popup").hide(); }); // on delete - ajax jQuery(".dlt_confirmed").click(function () { var bkpId = jQuery(this).attr('id') jQuery.ajax({ type: "POST", url: ajax_url, data: { action : 'mk_file_manager_single_backup_remove', id: bkpId, nonce: fmbackupparams.wpfmbackupremove, }, cache: false, success: function(response) { if(response == "1"){ jQuery(".fmbkp_console h3").css('text-transform','uppercase !important'); jQuery(".dlt_backup_popup").hide(); jQuery(".dlt_success_popup").show(); } } });//ajax }); //click jQuery(".close_dlt_success, .dlt_confirmed_success").click(function () { jQuery(".dlt_success_popup").hide(); location.reload(); }); // backup - ajax jQuery(".bkpViewLog").click(function () { jQuery('.fmbkp_console_popup').show(); jQuery('#fmbkp_console').html(''); var bkpId = jQuery(this).attr('id') jQuery.ajax({ type: "POST", url: ajax_url, data: { action : 'mk_file_manager_single_backup_logs', id: bkpId, nonce: fmbackupparams.wpfmbackuplogs }, cache: false, success: function(response) { jQuery('.fmbkp_console_loader').hide(); jQuery('#fmbkp_console').show().html(response); } });//ajax }); //click //open restore popup jQuery('.bkpRestoreID').on("click",function(){ var check_db = jQuery(this).parent().prev('.bck_action').text(); var packet = fmbackupparams.default_packet_value if( check_db.indexOf('Database') >= 0 && parseInt(packet) < 9999360){ alert(fmbackupparams.packet_error_msg); }else{ jQuery(".restore_backup_popup").show(); var bkpId = jQuery(this).attr('id'); jQuery('.restore_confirmed').attr("id", bkpId); } }); //close restore popup jQuery(".close_restore_backup, .restore_cancel").click(function () { jQuery(".restore_backup_popup").hide(); }); // on delete - ajax jQuery(".restore_confirmed").click(function () { jQuery(this).addClass('disabled_btn'); var bkpId = jQuery(this).attr('id'); jQuery(this).attr('disabled', true); var fm_res_database = true; var fm_res_plugins = true; var fm_res_themes = true; var fm_res_uploads = true; var fm_res_other =true; jQuery(".fmbkp_console_popup .close_fm_console").hide(); jQuery('.restore_backup_popup').hide(); jQuery('.fmbkp_console_popup').show(); jQuery('#fmbkp_console').show().html('<p class="backup_wait">'+fmbackupparams.restore_running+'</p><ul></ul>'); wp_fm_restore(ajax_url, bkpId, fm_res_database,fm_res_plugins,fm_res_themes,fm_res_uploads,fm_res_other); }); function wp_fm_restore(ajax_url, bkpId,fm_res_database,fm_res_plugins,fm_res_themes,fm_res_uploads,fm_res_other){ jQuery.ajax({ url : ajax_url, type : 'post', data : { action : 'mk_file_manager_single_backup_restore', id: bkpId, nonce: fmbackupparams.wpfmbackuprestore, database : fm_res_database, plugins: fm_res_plugins, themes: fm_res_themes, uploads: fm_res_uploads, others: fm_res_other, }, cache: false, success : function( response ) { var res = JSON.parse(response); var next_step = res.step; jQuery('.fmbkp_console_popup').show(); if(next_step == '0') { jQuery('.fmbkp_console_loader').hide(); jQuery('#fmbkp_console').show().find("ul").append(res.msg+' '+res.msgg); location.reload(); } else { if(res.msg != ''){ jQuery('#fmbkp_console').show().find("ul").append(res.msg); } wp_fm_restore(ajax_url, bkpId, res.database,res.plugins,res.themes,res.uploads,res.others); } } }); } }); jQuery(document).on('click','#fm_bkp_files', function(){ var status = this.checked; jQuery(".chk-files").each( function() { jQuery(this).prop("checked",status); }); }); jQuery(document).on("click",".bck-icon", function(){ var key = jQuery(this).attr('data-token'); window.open(fmbackupparams.backup_baseurl+key); }); jQuery(document).on("click",".fm-download-all", function(){ var selector = jQuery(this).parents('.bck_action').find('a'); var key = jQuery(selector).attr('data-token'); key = key+'/yes'; window.open(fmbackupparams.backupall_baseurl+key); }); admin.js 0000644 00000006765 15103633646 0006217 0 ustar 00 (function($, nonce, admin_url, ajax_url){ $(document).ready(function(){ $(document).on("click", ".my-soft-pro-dismiss-notice .notice-dismiss", function(){ var data = { action: "softaculous_pro_wp_ajax", softaculous_pro_security: nonce }; $.post(ajax_url, data, function(response){}); }); //View connection key script var soft_pro_conn_key_dialog = $("#soft_pro_connection_key_dialog"); $("#soft_pro_connection_key").click(function(e) { e.preventDefault(); soft_pro_conn_key_dialog.dialog({ draggable: false, resizable: false, modal: true, width: "1070px", height: "auto", title: "Softaculous Connection Key", close: function() { $(this).dialog("destroy"); } }); }); $("#soft_pro_promo .soft_pro_promo-close").click(function(){ var data = { softaculous_pro_security: nonce }; // Hide it $("#soft_pro_promo").hide(); // Save this preference $.post(admin_url + '?softaculous_pro_promo=0', data, function(response) { //alert(response); }); }); function dotweet(ele){ window.open($("#"+ele.id).attr("action")+"?"+$("#"+ele.id).serialize(), "_blank", "scrollbars=no, menubar=no, height=400, width=500, resizable=yes, toolbar=no, status=no"); return false; } $('.spro-plugin-install-btn').click(function(){ $(this).replaceWith('<i class="fa fa-spin fa-2x fa-circle-notch sp-2 smr-3"></i>'); var data = { action: "softaculous_pro_wp_ajax", softaculous_pro_install_plugin: 1, plugin: $(this).attr("name"), softaculous_pro_security: soft_pro_obj.nonce }; $.post(soft_pro_obj.ajax_url, data, function(response){ if(!response.data || !response.data.form){ return; } // Handling FTP Form $('body').append(response.data.form); var ftp_modal = $('#request-filesystem-credentials-dialog'); ftp_modal.show(); // Handling the close btn of the FTP form. ftp_modal.find('.cancel-button').on('click', function(event){ event.preventDefault(); ftp_modal.hide(); window.location.reload(); }); ftp_modal.on('submit', 'form', function(event){ event.preventDefault(); data['hostname'] = ftp_modal.find('#hostname').val(); data['username'] = ftp_modal.find('#username').val(); data['password'] = ftp_modal.find('#password').val(); data['connection_type'] = ftp_modal.find('input[name="connection_type"]:checked').val(); data['public_key'] = ftp_modal.find('#public_key').val(); data['private_key'] = ftp_modal.find('#private_key').val(); data['_fs_nonce'] = ftp_modal.find('#_fs_nonce').val(); ftp_modal.hide() spro_install_plugin_with_ftp(data); }); }) .done(function(res){ if(!res.data || !res.data.form){ window.location.reload(); } }); }); }); })(jQuery, soft_pro_obj.nonce, soft_pro_obj.admin_url, soft_pro_obj.ajax_url); // Plugin install request with FTP credentials function spro_install_plugin_with_ftp(data){ jQuery.post(soft_pro_obj.ajax_url, data, function(response){}) .done(function(res){ window.location.reload(); }); } //Cookie setter function spro_setcookie(name, value, duration){ value = escape(value); if(duration){ var date = new Date(); date.setTime(date.getTime() + (duration * 86400000)); value += "; expires=" + date.toGMTString(); } document.cookie = name + "=" + value; }; //Gets the cookie value function spro_getcookie(name){ value = document.cookie.match('(?:^|;)\\s*'+name+'=([^;]*)'); return value ? unescape(value[1]) : false; }; //Removes the cookies function spro_removecookie(name){ spro_setcookie(name, '', -1); }; consent.js 0000644 00000001560 15103634356 0006563 0 ustar 00 function cookieadmin_pro_set_consent(prefrenc, days){ const xhttp = new XMLHttpRequest(); var data = 'action=cookieadmin_pro_ajax_handler&cookieadmin_act=save_consent&cookieadmin_pro_security=' + cookieadmin_pro_vars.nonce + '&cookieadmin_preference=' + encodeURIComponent(JSON.stringify(Object.keys(prefrenc))); if(cookieadmin_is_obj(cookieadmin_is_consent) && !!cookieadmin_is_consent.consent){ data += '&cookieadmin_consent_id=' + cookieadmin_is_consent.consent; } var consent_id = ""; xhttp.open("POST", cookieadmin_pro_vars.ajax_url, false); xhttp.onload = function() { parsed = JSON.parse(this.responseText); if(parsed.success){ consent_id = parsed.data.response; } } xhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); xhttp.send(data); if(consent_id){ return consent_id; } return false; } footer.js 0000644 00000000353 15103634356 0006407 0 ustar 00 function cookieadmin_dotweet(ele){ window.open(jQuery("#"+ele.id).attr("action")+"?"+jQuery("#"+ele.id).serialize(), "_blank", "scrollbars=no, menubar=no, height=400, width=500, resizable=yes, toolbar=no, status=no"); return false; } cookie.js 0000644 00000010351 15103634356 0006361 0 ustar 00 jQuery(document).ready(function($){ var law = ''; $(".cookieadmin-consent-logs-export").on("click", function(){ $(this).prop("disabled", true); $.ajax({ url: cookieadmin_pro_policy.admin_url, method: "POST", data : { action : 'cookieadmin_pro_ajax_handler', cookieadmin_act : 'export_logs', cookieadmin_export_type : 'consent_logs', cookieadmin_pro_security : cookieadmin_pro_policy.cookieadmin_nonce, }, success: function(response){ // Was the ajax call successful ? if(response.substring(0,2) == "-1"){ var err_message = response.substring(2); if(err_message){ alert(err_message); }else{ alert("Failed to export data"); } return false; } /* * Make CSV downloadable */ var downloadLink = document.createElement("a"); var fileData = ['\ufeff'+response]; var blobObject = new Blob(fileData,{ type: "text/csv;charset=utf-8;" }); var url = URL.createObjectURL(blobObject); downloadLink.href = url; downloadLink.download = "cookieadmin-consent-logs.csv"; /* * Actually download CSV */ document.body.appendChild(downloadLink); downloadLink.click(); document.body.removeChild(downloadLink); }, error: function(xhr, status, error) { } }); $(this).prop("disabled", false); }); // For .cookieadmin-logs-paginate click $(".cookieadmin-logs-paginate").on("click", function () { cookieadmin_pro_paginate(this); }); // For input change $("#current-page-selector").on("change", function () { cookieadmin_pro_paginate(this); }); function cookieadmin_pro_paginate(el) { var $this = $(el); let pageType = $this.attr("id"); let currentPageInput = $("#current-page-selector"); let currentPage = parseInt(currentPageInput.val()); let totalPages = parseInt($(".total-pages").text()); // Determine action based on ID if (pageType === "cookieadmin-first-consent-logs") { currentPage = 1; } else if (pageType === "cookieadmin-previous-consent-logs") { if (currentPage > 1) currentPage--; } else if (pageType === "cookieadmin-next-consent-logs") { if (currentPage < totalPages) currentPage++; } else if (pageType === "cookieadmin-last-consent-logs") { currentPage = totalPages; } $.ajax({ url: cookieadmin_pro_policy.admin_url, method: "POST", data: { action: 'cookieadmin_pro_ajax_handler', cookieadmin_act: 'get_consent_logs', current_page: currentPage, cookieadmin_pro_security: cookieadmin_pro_policy.cookieadmin_nonce, }, success: function(response) { if (response.success) { let data = response.data; // Get response data // Update the current page input field $("#current-page-selector").val(data.current_page); // Update the counts $(".displaying-num").text(data.min_items+" - "+data.max_items); $(".max-num").text(data.total_logs); $(".total-pages").text(data.total_pages); // Select the table body (excluding headers) let logsContainer = $(".cookieadmin-consent-logs-result tbody"); // Clear all the rows in tbody logsContainer.find("tr").remove(); // Append new rows with updated logs if (data.logs.length > 0) { // Fix: Check `data.logs`, not `data` $.each(data.logs, function(index, log) { // Fix: `data.logs` var status_badge = "warning"; if(log.consent_status_raw.toLowerCase() == 'accept'){ status_badge = "success"; }else if(log.consent_status_raw.toLowerCase() == 'reject'){ status_badge = "danger"; } logsContainer.append(` <tr> <td>${log.consent_id}</td> <td><span class="cookieadmin-badge cookieadmin-${status_badge}">${log.consent_status}</td> <td>${log.country || '—'}</td> <td>${log.user_ip}</td> <td>${log.consent_time}</td> </tr> `); }); } else { logsContainer.append(`<tr><td colspan="4">No consent logs recorded yet!</td></tr>`); } } else { alert('Error: ' + response.data.message); } }, error: function(xhr, status, error) { console.log(xhr.responseText); // Check the error message console.log('AJAX Error:', status, error); } }); } }); index-highlight.js 0000644 00000004553 15103634703 0010167 0 ustar 00 /*** The MIT License (MIT) Copyright (c) luyilin <luyilin12@gmail.com> (https://github.com/luyilin) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: ***/ const defaultColors = { keyColor: '#9CCC65', numberColor: 'lightskyblue', stringColor: 'lightcoral', trueColor: 'lightseagreen', falseColor: '#f66578', nullColor: 'cornflowerblue' } const entityMap = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''', '`': '`', '=': '=' }; function escapeHtml (html){ return String(html).replace(/[&<>"'`=]/g, function (s) { return entityMap[s]; }); } function highlightJson (json, colorOptions = {}) { const valueType = typeof json if (valueType !== 'string') { json = JSON.stringify(json, null, 2) || valueType } let colors = Object.assign({}, defaultColors, colorOptions) json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>') return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+]?\d+)?)/g, (match) => { let color = colors.numberColor let style = '' if (/^"/.test(match)) { if (/:$/.test(match)) { color = colors.keyColor } else { color = colors.stringColor; match = '"' + escapeHtml(match.substr(1, match.length - 2)) + '"'; style = 'word-wrap:break-word;white-space:pre-wrap;'; } } else { color = /true/.test(match) ? colors.trueColor : /false/.test(match) ? colors.falseColor : /null/.test(match) ? colors.nullColor : color } return `<span style="${style}color:${color}">${match}</span>` }) } document.addEventListener("DOMContentLoaded", () => { let jsonElement = document.getElementById("siteseo_highlighter"); if(jsonElement && jsonElement.textContent){ try{ jsonElement.innerHTML = highlightJson(JSON.parse(jsonElement.textContent)); } catch(e){ console.log("Error parsing JSON for highlighting:", e); } } }); breadcrumbs/src/block.json 0000644 00000001114 15103634703 0011610 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "siteseo/breadcrumbs", "version": "1.0.0", "title": "Breadcrumbs", "category": "widgets", "description": "Breadcrumbs help you track you location on the website.", "supports": { "html": false, "align": true, "spacing": { "padding": true, "margin": true }, "multiple": false, "typography": { "fontSize": true, "lineHeight": true }, "color": { "link": true } }, "textdomain": "siteseo", "editorScript": "file:./index.js", "editorStyle": "file:./style-index.css" } breadcrumbs/src/style.css 0000644 00000000242 15103634703 0011476 0 ustar 00 .siteseo-breadcrumbs{ display:flex; list-style-type:none; margin:0; padding:0 } .siteseo-breadcrumbs-seperator{ margin:0 5px; padding:0 } breadcrumbs/src/index.js 0000644 00000001523 15103634703 0011274 0 ustar 00 import { registerBlockType } from '@wordpress/blocks'; import './style.css'; import Edit from './edit'; import metadata from './block.json'; function siteseo_breadcrumb_icon(){ return (<svg xmlns="http://www.w3.org/2000/svg" width="664.82" height="495.38" viewBox="0 0 43.214 32.2"><path d="M1 32.1c-.6 0-1-.4-1-1V1c0-.6.4-1 1-1h8.1c.4 0 .9.2 1.2.5l11.6 14.6c.4.5.4 1.3 0 1.9L10.2 31.6c-.3.4-.8.6-1.3.6zM42.914 15.071l-11.7-14.5c-.5-.6-1.4-.8-2.1-.2l-2.3 1.9c-.7.5-.8 1.5-.2 2.1l9.5 11.7-9.5 11.8c-.5.6-.4 1.6.2 2.1l2.3 1.9c.7.5 1.5.4 2.1-.2l11.7-14.6c.4-.8.4-1.5 0-2z"/><path d="m32.407 15.071-11.7-14.5c-.5-.6-1.4-.8-2.1-.2l-2.3 1.9c-.7.5-.8 1.5-.2 2.1l9.5 11.7-9.5 11.8c-.5.6-.4 1.6.2 2.1l2.3 1.9c.7.5 1.5.4 2.1-.2l11.7-14.6c.4-.8.4-1.5 0-2z"/></svg> ); } registerBlockType( metadata.name, { edit: Edit, icon : siteseo_breadcrumb_icon } ); breadcrumbs/src/edit.js 0000644 00000002446 15103634703 0011117 0 ustar 00 import { __ } from '@wordpress/i18n'; import { useBlockProps } from '@wordpress/block-editor'; import { useSelect } from '@wordpress/data'; import { Notice } from '@wordpress/components'; export default function Edit({attributes}) { let [title] = useSelect((select) => { return [ select('core/editor').getEditedPostAttribute("title") || __('Example title', 'siteseo'), ] }, []); let crumbs = []; if(attributes.prefix){ crumbs.push({ 'title' : attributes.prefix, 'url' : false }); } if(!attributes.hideHome){ crumbs.push({ 'title' : attributes.homeLabel ? attributes.homeLabel : __('Home'), 'url' : true }); } crumbs.push({ 'title' : title, 'url' : false }); return ( <> <Notice status="warning" isDismissible={false} politeness="polite"> <p>{__('This is just a preview, to see the final result, please view this page as a normal user', 'siteseo')}</p> </Notice> <div { ...useBlockProps() }> <ul className="siteseo-breadcrumbs"> {crumbs.map((crub, i) => { return (<><li key={crub.url}>{crub.url ? (<a href="#" title={crub.title}>{crub.title}</a>) : (crub.title)}</li> <div className="siteseo-breadcrumbs-seperator"><span>{(crumbs.length-1) != i ? attributes.seperator : ''}</span></div> </> ); })} </ul> </div> </> ); } breadcrumbs/package-lock.json 0000644 00002320402 15103634703 0012256 0 ustar 00 { "name": "breadcrumbs", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "breadcrumbs", "version": "0.1.0", "license": "GPL-2.0", "devDependencies": { "@wordpress/scripts": "^27.7.0" } }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { "version": "7.24.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dev": true, "dependencies": { "@babel/highlight": "^7.24.2", "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.2", "@babel/generator": "^7.24.4", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", "@babel/helpers": "^7.24.4", "@babel/parser": "^7.24.4", "@babel/template": "^7.24.0", "@babel/traverse": "^7.24.1", "@babel/types": "^7.24.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/babel" } }, "node_modules/@babel/eslint-parser": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.1.tgz", "integrity": "sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ==", "dev": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", "semver": "^6.3.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || >=14.0.0" }, "peerDependencies": { "@babel/core": "^7.11.0", "eslint": "^7.5.0 || ^8.0.0" } }, "node_modules/@babel/generator": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", "dev": true, "dependencies": { "@babel/types": "^7.24.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, "dependencies": { "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-validator-option": "^7.23.5", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz", "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.23.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.23.0", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, "dependencies": { "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { "version": "7.24.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dev": true, "dependencies": { "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", "@babel/helper-simple-access": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { "version": "7.24.0", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-wrap-function": "^7.22.20" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-replace-supers": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.22.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.22.5", "@babel/template": "^7.22.15", "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", "dev": true, "dependencies": { "@babel/template": "^7.24.0", "@babel/traverse": "^7.24.1", "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { "version": "7.24.2", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { "color-convert": "^1.9.0" }, "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" }, "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/@babel/parser": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz", "integrity": "sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/plugin-transform-optional-chaining": "^7.24.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.13.0" } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-async-generator-functions": { "version": "7.24.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-remap-async-to-generator": "^7.22.20", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.24.1", "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-remap-async-to-generator": "^7.22.20" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz", "integrity": "sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-class-properties": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.24.1", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-class-static-block": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.24.4", "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.12.0" } }, "node_modules/@babel/plugin-transform-classes": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-replace-supers": "^7.24.1", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/template": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-destructuring": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-dynamic-import": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", "dev": true, "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-export-namespace-from": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-function-name": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-function-name": "^7.23.0", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-json-strings": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-literals": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-systemjs": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-transform-new-target": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-numeric-separator": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-object-rest-spread": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.24.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-object-super": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-replace-supers": "^7.24.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-optional-chaining": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-parameters": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-private-methods": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.24.1", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-private-property-in-object": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.24.1", "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-property-literals": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-react-constant-elements": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.1.tgz", "integrity": "sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-react-display-name": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz", "integrity": "sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-react-jsx": { "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-jsx": "^7.23.3", "@babel/types": "^7.23.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-react-jsx-development": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", "dev": true, "dependencies": { "@babel/plugin-transform-react-jsx": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz", "integrity": "sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-runtime": { "version": "7.24.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.24.3", "@babel/helper-plugin-utils": "^7.24.0", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.1", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-spread": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-template-literals": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-typescript": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.4.tgz", "integrity": "sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.24.4", "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-typescript": "^7.24.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/preset-env": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.4.tgz", "integrity": "sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==", "dev": true, "dependencies": { "@babel/compat-data": "^7.24.4", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-option": "^7.23.5", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.4", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-import-assertions": "^7.24.1", "@babel/plugin-syntax-import-attributes": "^7.24.1", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.24.1", "@babel/plugin-transform-async-generator-functions": "^7.24.3", "@babel/plugin-transform-async-to-generator": "^7.24.1", "@babel/plugin-transform-block-scoped-functions": "^7.24.1", "@babel/plugin-transform-block-scoping": "^7.24.4", "@babel/plugin-transform-class-properties": "^7.24.1", "@babel/plugin-transform-class-static-block": "^7.24.4", "@babel/plugin-transform-classes": "^7.24.1", "@babel/plugin-transform-computed-properties": "^7.24.1", "@babel/plugin-transform-destructuring": "^7.24.1", "@babel/plugin-transform-dotall-regex": "^7.24.1", "@babel/plugin-transform-duplicate-keys": "^7.24.1", "@babel/plugin-transform-dynamic-import": "^7.24.1", "@babel/plugin-transform-exponentiation-operator": "^7.24.1", "@babel/plugin-transform-export-namespace-from": "^7.24.1", "@babel/plugin-transform-for-of": "^7.24.1", "@babel/plugin-transform-function-name": "^7.24.1", "@babel/plugin-transform-json-strings": "^7.24.1", "@babel/plugin-transform-literals": "^7.24.1", "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", "@babel/plugin-transform-member-expression-literals": "^7.24.1", "@babel/plugin-transform-modules-amd": "^7.24.1", "@babel/plugin-transform-modules-commonjs": "^7.24.1", "@babel/plugin-transform-modules-systemjs": "^7.24.1", "@babel/plugin-transform-modules-umd": "^7.24.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", "@babel/plugin-transform-new-target": "^7.24.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", "@babel/plugin-transform-numeric-separator": "^7.24.1", "@babel/plugin-transform-object-rest-spread": "^7.24.1", "@babel/plugin-transform-object-super": "^7.24.1", "@babel/plugin-transform-optional-catch-binding": "^7.24.1", "@babel/plugin-transform-optional-chaining": "^7.24.1", "@babel/plugin-transform-parameters": "^7.24.1", "@babel/plugin-transform-private-methods": "^7.24.1", "@babel/plugin-transform-private-property-in-object": "^7.24.1", "@babel/plugin-transform-property-literals": "^7.24.1", "@babel/plugin-transform-regenerator": "^7.24.1", "@babel/plugin-transform-reserved-words": "^7.24.1", "@babel/plugin-transform-shorthand-properties": "^7.24.1", "@babel/plugin-transform-spread": "^7.24.1", "@babel/plugin-transform-sticky-regex": "^7.24.1", "@babel/plugin-transform-template-literals": "^7.24.1", "@babel/plugin-transform-typeof-symbol": "^7.24.1", "@babel/plugin-transform-unicode-escapes": "^7.24.1", "@babel/plugin-transform-unicode-property-regex": "^7.24.1", "@babel/plugin-transform-unicode-regex": "^7.24.1", "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", "babel-plugin-polyfill-regenerator": "^0.6.1", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/preset-react": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.1.tgz", "integrity": "sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-option": "^7.23.5", "@babel/plugin-transform-react-display-name": "^7.24.1", "@babel/plugin-transform-react-jsx": "^7.23.4", "@babel/plugin-transform-react-jsx-development": "^7.22.5", "@babel/plugin-transform-react-pure-annotations": "^7.24.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/preset-typescript": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz", "integrity": "sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-option": "^7.23.5", "@babel/plugin-syntax-jsx": "^7.24.1", "@babel/plugin-transform-modules-commonjs": "^7.24.1", "@babel/plugin-transform-typescript": "^7.24.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/regjsgen": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", "dev": true }, "node_modules/@babel/runtime": { "version": "7.24.4", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { "version": "7.24.0", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/parser": "^7.24.0", "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.24.1", "@babel/generator": "^7.24.1", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "@babel/parser": "^7.24.1", "@babel/types": "^7.24.0", "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { "version": "7.24.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, "node_modules/@csstools/selector-specificity": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", "dev": true, "engines": { "node": "^14 || ^16 || >=18" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/csstools" }, "peerDependencies": { "postcss-selector-parser": "^6.0.10" } }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, "engines": { "node": ">=10.0.0" } }, "node_modules/@es-joy/jsdoccomment": { "version": "0.41.0", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==", "dev": true, "dependencies": { "comment-parser": "1.4.1", "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" }, "engines": { "node": ">=16" } }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint-community/regexpp": { "version": "4.10.0", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/eslintrc/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/js": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", "dev": true }, "node_modules/@hapi/topo": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "dev": true, "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "engines": { "node": ">=12.22" }, "funding": { "type": "github", "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/@jest/console": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/core": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-changed-files": "^29.7.0", "jest-config": "^29.7.0", "jest-haste-map": "^29.7.0", "jest-message-util": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", "jest-resolve-dependencies": "^29.7.0", "jest-runner": "^29.7.0", "jest-runtime": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { "node-notifier": { "optional": true } } }, "node_modules/@jest/environment": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "dependencies": { "jest-get-type": "^29.6.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/fake-timers": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", "jest-message-util": "^29.7.0", "jest-mock": "^29.7.0", "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", "@jest/types": "^29.6.3", "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", "v8-to-istanbul": "^9.0.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { "node-notifier": { "optional": true } } }, "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", "dev": true, "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", "semver": "^7.5.4" }, "engines": { "node": ">=10" } }, "node_modules/@jest/reporters/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/@jest/reporters/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/@jest/reporters/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "dependencies": { "@sinclair/typebox": "^0.27.8" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/source-map": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/test-result": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/test-sequencer": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/transform": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/types": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^17.0.8", "chalk": "^4.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", "dev": true }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", "dev": true, "dependencies": { "eslint-scope": "5.1.1" } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" }, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" }, "engines": { "node": ">= 8" } }, "node_modules/@pkgr/core": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/unts" } }, "node_modules/@playwright/test": { "version": "1.43.1", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.43.1.tgz", "integrity": "sha512-HgtQzFgNEEo4TE22K/X7sYTYNqEMMTZmFS8kTq6m8hXj+m1D8TgwgIbumHddJa9h4yl4GkKb8/bgAl2+g7eDgA==", "dev": true, "peer": true, "dependencies": { "playwright": "1.43.1" }, "bin": { "playwright": "cli.js" }, "engines": { "node": ">=16" } }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { "version": "0.5.13", "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.13.tgz", "integrity": "sha512-odZVYXly+JwzYri9rKqqUAk0cY6zLpv4dxoKinhoJNShV36Gpxf+CyDIILJ4tYsJ1ZxIWs233Y39iVnynvDA/g==", "dev": true, "dependencies": { "ansi-html-community": "^0.0.8", "core-js-pure": "^3.23.3", "error-stack-parser": "^2.0.6", "html-entities": "^2.1.0", "loader-utils": "^2.0.4", "schema-utils": "^3.0.0", "source-map": "^0.7.3" }, "engines": { "node": ">= 10.13" }, "peerDependencies": { "@types/webpack": "4.x || 5.x", "react-refresh": ">=0.10.0 <1.0.0", "sockjs-client": "^1.4.0", "type-fest": ">=0.17.0 <5.0.0", "webpack": ">=4.43.0 <6.0.0", "webpack-dev-server": "3.x || 4.x || 5.x", "webpack-hot-middleware": "2.x", "webpack-plugin-serve": "0.x || 1.x" }, "peerDependenciesMeta": { "@types/webpack": { "optional": true }, "sockjs-client": { "optional": true }, "type-fest": { "optional": true }, "webpack-dev-server": { "optional": true }, "webpack-hot-middleware": { "optional": true }, "webpack-plugin-serve": { "optional": true } } }, "node_modules/@polka/url": { "version": "1.0.0-next.25", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", "dev": true }, "node_modules/@puppeteer/browsers": { "version": "1.4.6", "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.6.tgz", "integrity": "sha512-x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==", "dev": true, "dependencies": { "debug": "4.3.4", "extract-zip": "2.0.1", "progress": "2.0.3", "proxy-agent": "6.3.0", "tar-fs": "3.0.4", "unbzip2-stream": "1.4.3", "yargs": "17.7.1" }, "bin": { "browsers": "lib/cjs/main-cli.js" }, "engines": { "node": ">=16.3.0" }, "peerDependencies": { "typescript": ">= 4.7.4" }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, "node_modules/@puppeteer/browsers/node_modules/tar-fs": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", "dev": true, "dependencies": { "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^3.1.5" } }, "node_modules/@puppeteer/browsers/node_modules/tar-stream": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "node_modules/@puppeteer/browsers/node_modules/yargs": { "version": "17.7.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", "dev": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" } }, "node_modules/@sentry/core": { "version": "6.19.7", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz", "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==", "dev": true, "dependencies": { "@sentry/hub": "6.19.7", "@sentry/minimal": "6.19.7", "@sentry/types": "6.19.7", "@sentry/utils": "6.19.7", "tslib": "^1.9.3" }, "engines": { "node": ">=6" } }, "node_modules/@sentry/core/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@sentry/hub": { "version": "6.19.7", "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz", "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==", "dev": true, "dependencies": { "@sentry/types": "6.19.7", "@sentry/utils": "6.19.7", "tslib": "^1.9.3" }, "engines": { "node": ">=6" } }, "node_modules/@sentry/hub/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@sentry/minimal": { "version": "6.19.7", "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz", "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==", "dev": true, "dependencies": { "@sentry/hub": "6.19.7", "@sentry/types": "6.19.7", "tslib": "^1.9.3" }, "engines": { "node": ">=6" } }, "node_modules/@sentry/minimal/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@sentry/node": { "version": "6.19.7", "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz", "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==", "dev": true, "dependencies": { "@sentry/core": "6.19.7", "@sentry/hub": "6.19.7", "@sentry/types": "6.19.7", "@sentry/utils": "6.19.7", "cookie": "^0.4.1", "https-proxy-agent": "^5.0.0", "lru_map": "^0.3.3", "tslib": "^1.9.3" }, "engines": { "node": ">=6" } }, "node_modules/@sentry/node/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@sentry/types": { "version": "6.19.7", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz", "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/@sentry/utils": { "version": "6.19.7", "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz", "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==", "dev": true, "dependencies": { "@sentry/types": "6.19.7", "tslib": "^1.9.3" }, "engines": { "node": ">=6" } }, "node_modules/@sentry/utils/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", "dev": true, "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", "dev": true }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", "dev": true }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, "node_modules/@sinonjs/commons": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", "dev": true, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", "dev": true, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", "dev": true, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", "dev": true, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-svg-dynamic-title": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", "dev": true, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-svg-em-dimensions": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", "dev": true, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-transform-react-native-svg": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", "dev": true, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-plugin-transform-svg-component": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", "dev": true, "engines": { "node": ">=12" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/babel-preset": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", "dev": true, "dependencies": { "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", "@svgr/babel-plugin-transform-svg-component": "8.0.0" }, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@svgr/core": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dev": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", "camelcase": "^6.2.0", "cosmiconfig": "^8.1.3", "snake-case": "^3.0.4" }, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" } }, "node_modules/@svgr/hast-util-to-babel-ast": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", "dev": true, "dependencies": { "@babel/types": "^7.21.3", "entities": "^4.4.0" }, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" } }, "node_modules/@svgr/plugin-jsx": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", "dev": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", "@svgr/hast-util-to-babel-ast": "8.0.0", "svg-parser": "^2.0.4" }, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { "@svgr/core": "*" } }, "node_modules/@svgr/plugin-svgo": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", "dev": true, "dependencies": { "cosmiconfig": "^8.1.3", "deepmerge": "^4.3.1", "svgo": "^3.0.2" }, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { "@svgr/core": "*" } }, "node_modules/@svgr/webpack": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", "dev": true, "dependencies": { "@babel/core": "^7.21.3", "@babel/plugin-transform-react-constant-elements": "^7.21.3", "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.21.0", "@svgr/core": "8.1.0", "@svgr/plugin-jsx": "8.1.0", "@svgr/plugin-svgo": "8.1.0" }, "engines": { "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" } }, "node_modules/@tannin/compile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@tannin/compile/-/compile-1.1.0.tgz", "integrity": "sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg==", "dev": true, "dependencies": { "@tannin/evaluate": "^1.2.0", "@tannin/postfix": "^1.1.0" } }, "node_modules/@tannin/evaluate": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@tannin/evaluate/-/evaluate-1.2.0.tgz", "integrity": "sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg==", "dev": true }, "node_modules/@tannin/plural-forms": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@tannin/plural-forms/-/plural-forms-1.1.0.tgz", "integrity": "sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw==", "dev": true, "dependencies": { "@tannin/compile": "^1.1.0" } }, "node_modules/@tannin/postfix": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@tannin/postfix/-/postfix-1.1.0.tgz", "integrity": "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw==", "dev": true }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true, "engines": { "node": ">= 10" } }, "node_modules/@tootallnate/quickjs-emscripten": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", "dev": true }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true, "engines": { "node": ">=10.13.0" } }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "node_modules/@types/babel__generator": { "version": "7.6.8", "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__traverse": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "node_modules/@types/bonjour": { "version": "3.5.13", "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect": { "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect-history-api-fallback": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dev": true, "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" } }, "node_modules/@types/eslint": { "version": "8.56.10", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", "dev": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "node_modules/@types/eslint-scope": { "version": "3.7.7", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, "node_modules/@types/express": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "node_modules/@types/express-serve-static-core": { "version": "4.19.0", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", "dev": true, "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*", "@types/send": "*" } }, "node_modules/@types/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, "dependencies": { "@types/minimatch": "*", "@types/node": "*" } }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-errors": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", "dev": true }, "node_modules/@types/http-proxy": { "version": "1.17.14", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jsdom": { "version": "20.0.1", "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", "dev": true, "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", "parse5": "^7.0.0" } }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, "node_modules/@types/minimatch": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true }, "node_modules/@types/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", "dev": true }, "node_modules/@types/node": { "version": "20.12.7", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/node-forge": { "version": "1.3.11", "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true }, "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, "node_modules/@types/qs": { "version": "6.9.15", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", "dev": true }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, "node_modules/@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@types/send": { "version": "0.17.4", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "node_modules/@types/serve-index": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dev": true, "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { "version": "1.15.7", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, "dependencies": { "@types/http-errors": "*", "@types/node": "*", "@types/send": "*" } }, "node_modules/@types/sockjs": { "version": "0.3.36", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/source-list-map": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz", "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", "dev": true }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true }, "node_modules/@types/tapable": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz", "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==", "dev": true }, "node_modules/@types/tough-cookie": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", "dev": true }, "node_modules/@types/uglify-js": { "version": "3.17.5", "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz", "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==", "dev": true, "dependencies": { "source-map": "^0.6.1" } }, "node_modules/@types/uglify-js/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/@types/webpack": { "version": "4.41.38", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.38.tgz", "integrity": "sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==", "dev": true, "dependencies": { "@types/node": "*", "@types/tapable": "^1", "@types/uglify-js": "*", "@types/webpack-sources": "*", "anymatch": "^3.0.0", "source-map": "^0.6.0" } }, "node_modules/@types/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==", "dev": true, "dependencies": { "@types/node": "*", "@types/source-list-map": "*", "source-map": "^0.7.3" } }, "node_modules/@types/webpack/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/@types/ws": { "version": "8.5.10", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/yargs": { "version": "17.0.32", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", "dev": true, "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, "node_modules/@types/yauzl": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, "optional": true, "dependencies": { "@types/node": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", "@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/type-utils": "6.21.0", "@typescript-eslint/utils": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", "natural-compare": "^1.4.0", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, "engines": { "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/@typescript-eslint/parser": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, "dependencies": { "@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/types": "6.21.0", "@typescript-eslint/typescript-estree": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4" }, "engines": { "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, "node_modules/@typescript-eslint/scope-manager": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@typescript-eslint/type-utils": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "dev": true, "dependencies": { "@typescript-eslint/typescript-estree": "6.21.0", "@typescript-eslint/utils": "6.21.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, "engines": { "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, "node_modules/@typescript-eslint/types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@typescript-eslint/typescript-estree": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, "dependencies": { "@typescript-eslint/types": "6.21.0", "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", "minimatch": "9.0.3", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, "engines": { "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/@typescript-eslint/utils": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", "@typescript-eslint/scope-manager": "6.21.0", "@typescript-eslint/types": "6.21.0", "@typescript-eslint/typescript-estree": "6.21.0", "semver": "^7.5.4" }, "engines": { "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0" } }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/@typescript-eslint/utils/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, "dependencies": { "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "dev": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/wasm-gen": "1.12.1" } }, "node_modules/@webassemblyjs/ieee754": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/helper-wasm-section": "1.12.1", "@webassemblyjs/wasm-gen": "1.12.1", "@webassemblyjs/wasm-opt": "1.12.1", "@webassemblyjs/wasm-parser": "1.12.1", "@webassemblyjs/wast-printer": "1.12.1" } }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/wasm-gen": "1.12.1", "@webassemblyjs/wasm-parser": "1.12.1" } }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" } }, "node_modules/@webpack-cli/configtest": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", "dev": true, "engines": { "node": ">=14.15.0" }, "peerDependencies": { "webpack": "5.x.x", "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/info": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", "dev": true, "engines": { "node": ">=14.15.0" }, "peerDependencies": { "webpack": "5.x.x", "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/serve": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", "dev": true, "engines": { "node": ">=14.15.0" }, "peerDependencies": { "webpack": "5.x.x", "webpack-cli": "5.x.x" }, "peerDependenciesMeta": { "webpack-dev-server": { "optional": true } } }, "node_modules/@wordpress/api-fetch": { "version": "6.53.0", "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.53.0.tgz", "integrity": "sha512-jHYueGfGfe89akyw1A28WGl17qIKTukMTwol4rHkZY43ygUmSJiTF/FSsExzMwk/j7OmGGr+GTa1TPO/tc71Lw==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/i18n": "^4.56.0", "@wordpress/url": "^3.57.0" }, "engines": { "node": ">=12" } }, "node_modules/@wordpress/babel-plugin-import-jsx-pragma": { "version": "4.39.0", "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.39.0.tgz", "integrity": "sha512-yQySutPQq+Joa3ePzc9X8f5hZacmcn5e9KMiJYrXBUqj5VKl4RR8N3e+UOl1lWoB2NI/7bA9tW9TXJlDpHJX1w==", "dev": true, "engines": { "node": ">=14" }, "peerDependencies": { "@babel/core": "^7.12.9" } }, "node_modules/@wordpress/babel-preset-default": { "version": "7.40.0", "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.40.0.tgz", "integrity": "sha512-/guM3C4NMoLK0pNO5Epbm/50L/MqXB0k3+fLtPbw3BC3v8Aus7ktE2l85gilowNyE3kYAyjFR/BsG5tassnaVQ==", "dev": true, "dependencies": { "@babel/core": "^7.16.0", "@babel/plugin-transform-react-jsx": "^7.16.0", "@babel/plugin-transform-runtime": "^7.16.0", "@babel/preset-env": "^7.16.0", "@babel/preset-typescript": "^7.16.0", "@babel/runtime": "^7.16.0", "@wordpress/babel-plugin-import-jsx-pragma": "^4.39.0", "@wordpress/browserslist-config": "^5.39.0", "@wordpress/warning": "^2.56.0", "browserslist": "^4.21.10", "core-js": "^3.31.0", "react": "^18.2.0" }, "engines": { "node": ">=14" } }, "node_modules/@wordpress/base-styles": { "version": "4.47.0", "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.47.0.tgz", "integrity": "sha512-1myPBFLuMnuxUE8M2VGZ+wbGhgasLNqFdxQnWfYDMRhaSESsZgaLaMoasNZ4+e/N7Nssl97ad/XGwZ721HXqvQ==", "dev": true }, "node_modules/@wordpress/browserslist-config": { "version": "5.39.0", "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.39.0.tgz", "integrity": "sha512-oy5CRWS3WsaFN/KAgOUIE6mmyuFu5qmKZZhQ+voCN+ifXTsj1J6ypR3RyY03Cbojy6kidyVYl3qRyMxbbUwWSQ==", "dev": true, "engines": { "node": ">=14" } }, "node_modules/@wordpress/dependency-extraction-webpack-plugin": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-5.7.0.tgz", "integrity": "sha512-s/xUnAEKwXmSUZLqrvX4n3tBWegxaiQfXJwd264MRJUmz4JibWJnvevkxM6tooEetu36xGiVHAIPvfvEEEtntQ==", "dev": true, "dependencies": { "json2php": "^0.0.7" }, "engines": { "node": ">=18" }, "peerDependencies": { "webpack": "^5.0.0" } }, "node_modules/@wordpress/e2e-test-utils-playwright": { "version": "0.24.0", "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-0.24.0.tgz", "integrity": "sha512-r/lTk9y3rmoKASZ1Bn+vYtv5Xw0e3RxT8nXJIpM0eaHmRxTg7u7aHvIVEfi6ZDAKWuuywoCDP/KAdy9FR3lhDQ==", "dev": true, "dependencies": { "@wordpress/api-fetch": "^6.53.0", "@wordpress/keycodes": "^3.56.0", "@wordpress/url": "^3.57.0", "change-case": "^4.1.2", "form-data": "^4.0.0", "get-port": "^5.1.1", "lighthouse": "^10.4.0", "mime": "^3.0.0", "web-vitals": "^3.5.0" }, "engines": { "node": ">=12" }, "peerDependencies": { "@playwright/test": ">=1" } }, "node_modules/@wordpress/eslint-plugin": { "version": "17.13.0", "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-17.13.0.tgz", "integrity": "sha512-QnG5HmOd+XsweKOvrqbOugm9rINUjcsh1jo2SN4cbbTWZJ6nPmcfLS0YJdrKkgOQUnKDPQgBPVEyI8tp19OtBw==", "dev": true, "dependencies": { "@babel/eslint-parser": "^7.16.0", "@typescript-eslint/eslint-plugin": "^6.4.1", "@typescript-eslint/parser": "^6.4.1", "@wordpress/babel-preset-default": "^7.40.0", "@wordpress/prettier-config": "^3.13.0", "cosmiconfig": "^7.0.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.2", "eslint-plugin-jest": "^27.2.3", "eslint-plugin-jsdoc": "^46.4.6", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-playwright": "^0.15.3", "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-react": "^7.27.0", "eslint-plugin-react-hooks": "^4.3.0", "globals": "^13.12.0", "requireindex": "^1.2.0" }, "engines": { "node": ">=14", "npm": ">=6.14.4" }, "peerDependencies": { "@babel/core": ">=7", "eslint": ">=8", "prettier": ">=3", "typescript": ">=4" }, "peerDependenciesMeta": { "prettier": { "optional": true }, "typescript": { "optional": true } } }, "node_modules/@wordpress/eslint-plugin/node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" }, "engines": { "node": ">=10" } }, "node_modules/@wordpress/eslint-plugin/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@wordpress/eslint-plugin/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@wordpress/hooks": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.56.0.tgz", "integrity": "sha512-sxoNbXdqfhlRNduDqR5y5Cq7Rwm5ATZGIr5U9nrM5RHWd+8v7g8wpB/rpTSqi+HeCW3suiFuN6qJJZ4eFwRB2w==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" }, "engines": { "node": ">=12" } }, "node_modules/@wordpress/i18n": { "version": "4.56.0", "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.56.0.tgz", "integrity": "sha512-W+WL8vxwqUeicgXvIHZ3Htq6pYrJe2Dn/9SBsQ7gFPUrGWe2ww5IzPocLv4rAha3lca2ZVIX2q47rGaSs9t8Kw==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/hooks": "^3.56.0", "gettext-parser": "^1.3.1", "memize": "^2.1.0", "sprintf-js": "^1.1.1", "tannin": "^1.2.0" }, "bin": { "pot-to-php": "tools/pot-to-php.js" }, "engines": { "node": ">=12" } }, "node_modules/@wordpress/jest-console": { "version": "7.27.0", "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.27.0.tgz", "integrity": "sha512-mzKShc0zUHyWsHt/fK2L3cJDWWAp9AttzENDTo7RuynqJWTDOGsqsnDr6zITyVcaL0my8ApVTiWu5OxzBXXvfg==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", "jest-matcher-utils": "^29.6.2" }, "engines": { "node": ">=14" }, "peerDependencies": { "jest": ">=29" } }, "node_modules/@wordpress/jest-preset-default": { "version": "11.27.0", "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-11.27.0.tgz", "integrity": "sha512-5fyyKthW+BNpv+Ndtgl2+1uHsmEWqTtf3PN+FL3qRfYCTPbvasxZBkGx2bpnt0D9ajcrpGmbllwOoM0dhY8Q6w==", "dev": true, "dependencies": { "@wordpress/jest-console": "^7.27.0", "babel-jest": "^29.6.2" }, "engines": { "node": ">=14" }, "peerDependencies": { "@babel/core": ">=7", "jest": ">=29" } }, "node_modules/@wordpress/keycodes": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.56.0.tgz", "integrity": "sha512-YIvqB0AEsu3fjkuQHNT7XladaTDE1Thntv+oqzkRejdNodH5tbPb3CAePAK3F7iQurZ0GCaqlmJTy9qcHwDU0Q==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/i18n": "^4.56.0" }, "engines": { "node": ">=12" } }, "node_modules/@wordpress/npm-package-json-lint-config": { "version": "4.41.0", "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.41.0.tgz", "integrity": "sha512-HStjqoxdB4zTU9i3BCzvbI0OyVZ3L6phSeoRwk2uU1cT41O883ouoBGE9DcEIzufKeuFCeqCBJf8NRk8S2h/sg==", "dev": true, "engines": { "node": ">=14" }, "peerDependencies": { "npm-package-json-lint": ">=6.0.0" } }, "node_modules/@wordpress/postcss-plugins-preset": { "version": "4.40.0", "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.40.0.tgz", "integrity": "sha512-xnd+XZI5s9hyGtt314WgH3prxQVBMLEjmTTz0g1+9x1avrYxIwhv1ZxMNittrAq2IP1qBzT5IwsPzJ+wCgcEyw==", "dev": true, "dependencies": { "@wordpress/base-styles": "^4.47.0", "autoprefixer": "^10.2.5" }, "engines": { "node": ">=14" }, "peerDependencies": { "postcss": "^8.0.0" } }, "node_modules/@wordpress/prettier-config": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-3.13.0.tgz", "integrity": "sha512-oNayHsdAhP3ER4T7KjNrmdtEIZjYJAdIDdScjNOKmK3Qvp02VP9TPfDGhLSjiYmOiQcyrIz/uuf9MJ9JCcdGng==", "dev": true, "engines": { "node": ">=14" }, "peerDependencies": { "prettier": ">=3" } }, "node_modules/@wordpress/scripts": { "version": "27.7.0", "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-27.7.0.tgz", "integrity": "sha512-dFkye4tO3xbFbqi1RMgiicykT074C2VuenT9Kc1L9oUwFmHa4BVDskcNIMKWl3CzDb2gtNEjsZx77CMQTzgLAQ==", "dev": true, "dependencies": { "@babel/core": "^7.16.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", "@svgr/webpack": "^8.0.1", "@wordpress/babel-preset-default": "^7.40.0", "@wordpress/browserslist-config": "^5.39.0", "@wordpress/dependency-extraction-webpack-plugin": "^5.7.0", "@wordpress/e2e-test-utils-playwright": "^0.24.0", "@wordpress/eslint-plugin": "^17.13.0", "@wordpress/jest-preset-default": "^11.27.0", "@wordpress/npm-package-json-lint-config": "^4.41.0", "@wordpress/postcss-plugins-preset": "^4.40.0", "@wordpress/prettier-config": "^3.13.0", "@wordpress/stylelint-config": "^21.39.0", "adm-zip": "^0.5.9", "babel-jest": "^29.6.2", "babel-loader": "^8.2.3", "browserslist": "^4.21.10", "chalk": "^4.0.0", "check-node-version": "^4.1.0", "clean-webpack-plugin": "^3.0.0", "copy-webpack-plugin": "^10.2.0", "cross-spawn": "^5.1.0", "css-loader": "^6.2.0", "cssnano": "^6.0.1", "cwd": "^0.10.0", "dir-glob": "^3.0.1", "eslint": "^8.3.0", "expect-puppeteer": "^4.4.0", "fast-glob": "^3.2.7", "filenamify": "^4.2.0", "jest": "^29.6.2", "jest-dev-server": "^9.0.1", "jest-environment-jsdom": "^29.6.2", "jest-environment-node": "^29.6.2", "markdownlint-cli": "^0.31.1", "merge-deep": "^3.0.3", "mini-css-extract-plugin": "^2.5.1", "minimist": "^1.2.0", "npm-package-json-lint": "^6.4.0", "npm-packlist": "^3.0.0", "postcss": "^8.4.5", "postcss-loader": "^6.2.1", "prettier": "npm:wp-prettier@3.0.3", "puppeteer-core": "^13.2.0", "react-refresh": "^0.14.0", "read-pkg-up": "^7.0.1", "resolve-bin": "^0.4.0", "sass": "^1.35.2", "sass-loader": "^12.1.0", "source-map-loader": "^3.0.0", "stylelint": "^14.2.0", "terser-webpack-plugin": "^5.3.9", "url-loader": "^4.1.1", "webpack": "^5.88.2", "webpack-bundle-analyzer": "^4.9.1", "webpack-cli": "^5.1.4", "webpack-dev-server": "^4.15.1" }, "bin": { "wp-scripts": "bin/wp-scripts.js" }, "engines": { "node": ">=18", "npm": ">=6.14.4" }, "peerDependencies": { "@playwright/test": "^1.43.0", "react": "^18.0.0", "react-dom": "^18.0.0" } }, "node_modules/@wordpress/stylelint-config": { "version": "21.39.0", "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.39.0.tgz", "integrity": "sha512-MNFsOpriCtNXs1TfPQwPkU7/4Jo0e0IfGJdvRYHp8mSv0VqY1vn9CW8QJ8xqrWYqxCOG6Z+Zn9IPToEM5mqz5A==", "dev": true, "dependencies": { "stylelint-config-recommended": "^6.0.0", "stylelint-config-recommended-scss": "^5.0.2" }, "engines": { "node": ">=14" }, "peerDependencies": { "stylelint": "^14.2" } }, "node_modules/@wordpress/url": { "version": "3.57.0", "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.57.0.tgz", "integrity": "sha512-W3F0KVEaMoRENya7GGUPXrZGYnhAg3fuLSLpNcf1skSrM5rUVMNdeRlZj+jln1O/+qjboJnC+y+IzOlQRwlS6A==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", "remove-accents": "^0.5.0" }, "engines": { "node": ">=12" } }, "node_modules/@wordpress/warning": { "version": "2.56.0", "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.56.0.tgz", "integrity": "sha512-Bd1Zy5eWQPKoQsfQwD9T1KZWPpq+ZFyozirx+Z5MnX59J0i80p8KiEMcmXhPH+Os9An2PtlVV9j0gY9z5z0oAw==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "deprecated": "Use your platform's native atob() and btoa() methods instead", "dev": true }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" }, "engines": { "node": ">= 0.6" } }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/acorn-globals": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", "dev": true, "dependencies": { "acorn": "^8.1.0", "acorn-walk": "^8.0.2" } }, "node_modules/acorn-import-assertions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, "peerDependencies": { "acorn": "^8" } }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/adm-zip": { "version": "0.5.12", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz", "integrity": "sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==", "dev": true, "engines": { "node": ">=6.0" } }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "dependencies": { "debug": "4" }, "engines": { "node": ">= 6.0.0" } }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ajv-errors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", "dev": true, "peerDependencies": { "ajv": ">=5.0.0" } }, "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "dependencies": { "ajv": "^8.0.0" }, "peerDependencies": { "ajv": "^8.0.0" }, "peerDependenciesMeta": { "ajv": { "optional": true } } }, "node_modules/ajv-formats/node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { "ajv": "^6.9.1" } }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "dependencies": { "type-fest": "^0.21.3" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true, "engines": [ "node >= 0.8.0" ], "bin": { "ansi-html": "bin/ansi-html" } }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" }, "engines": { "node": ">= 8" } }, "node_modules/are-docs-informative": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", "dev": true, "engines": { "node": ">=14" } }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/argparse/node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "node_modules/aria-query": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, "dependencies": { "dequal": "^2.0.3" } }, "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { "call-bind": "^1.0.5", "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, "node_modules/array-includes": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.findlastindex": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.flat": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.flatmap": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.toreversed": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" } }, "node_modules/array.prototype.tosorted": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", "dev": true, "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", "es-abstract": "^1.22.3", "es-errors": "^1.1.0", "es-shim-unscopables": "^1.0.2" } }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.5", "define-properties": "^1.2.1", "es-abstract": "^1.22.3", "es-errors": "^1.2.1", "get-intrinsic": "^1.2.3", "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/ast-types": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", "dev": true, "dependencies": { "tslib": "^2.0.1" }, "engines": { "node": ">=4" } }, "node_modules/ast-types-flow": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", "dev": true }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, "node_modules/autoprefixer": { "version": "10.4.19", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "dependencies": { "browserslist": "^4.23.0", "caniuse-lite": "^1.0.30001599", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" }, "bin": { "autoprefixer": "bin/autoprefixer" }, "engines": { "node": "^10 || ^12 || >=14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, "dependencies": { "possible-typed-array-names": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/axe-core": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axios": { "version": "1.6.8", "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dev": true, "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, "node_modules/axobject-query": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", "dev": true, "dependencies": { "dequal": "^2.0.3" } }, "node_modules/b4a": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", "dev": true }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "@babel/core": "^7.8.0" } }, "node_modules/babel-loader": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", "dev": true, "dependencies": { "find-cache-dir": "^3.3.1", "loader-utils": "^2.0.0", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, "engines": { "node": ">= 8.9" }, "peerDependencies": { "@babel/core": "^7.0.0", "webpack": ">=2" } }, "node_modules/babel-loader/node_modules/schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", "ajv-keywords": "^3.5.2" }, "engines": { "node": ">= 8.9.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-instrument": "^5.0.4", "test-exclude": "^6.0.0" }, "engines": { "node": ">=8" } }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", "@types/babel__core": "^7.1.14", "@types/babel__traverse": "^7.0.6" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.11", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", "dev": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.1", "core-js-compat": "^3.36.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-preset-current-node-syntax": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", "dev": true, "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-class-properties": "^7.8.3", "@babel/plugin-syntax-import-meta": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.8.3", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-top-level-await": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/babel-preset-jest": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "node_modules/bare-events": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", "dev": true, "optional": true }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/basic-ftp": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", "dev": true, "engines": { "node": ">=10.0.0" } }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "node_modules/body-parser": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/body-parser/node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/body-parser/node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, "engines": { "node": ">=0.10.0" } }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/bonjour-service": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" } }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, "node_modules/browserslist": { "version": "4.23.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/browserslist" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "dependencies": { "caniuse-lite": "^1.0.30001587", "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, "node_modules/bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "dependencies": { "node-int64": "^0.4.0" } }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ], "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/builtins": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", "dev": true, "dependencies": { "semver": "^7.0.0" } }, "node_modules/builtins/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/builtins/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/builtins/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/camel-case": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "dev": true, "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" } }, "node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/camelcase-keys": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "dependencies": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", "quick-lru": "^4.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/camelcase-keys/node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, "node_modules/caniuse-lite": { "version": "1.0.30001614", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001614.tgz", "integrity": "sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/browserslist" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ] }, "node_modules/capital-case": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", "upper-case-first": "^2.0.2" } }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/change-case": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", "dev": true, "dependencies": { "camel-case": "^4.1.2", "capital-case": "^1.0.4", "constant-case": "^3.0.4", "dot-case": "^3.0.4", "header-case": "^2.0.4", "no-case": "^3.0.4", "param-case": "^3.0.4", "pascal-case": "^3.1.2", "path-case": "^3.0.4", "sentence-case": "^3.0.4", "snake-case": "^3.0.4", "tslib": "^2.0.3" } }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/check-node-version": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-4.2.1.tgz", "integrity": "sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw==", "dev": true, "dependencies": { "chalk": "^3.0.0", "map-values": "^1.0.1", "minimist": "^1.2.0", "object-filter": "^1.0.2", "run-parallel": "^1.1.4", "semver": "^6.3.0" }, "bin": { "check-node-version": "bin.js" }, "engines": { "node": ">=8.3.0" } }, "node_modules/check-node-version/node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=8" } }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "funding": { "url": "https://paulmillr.com/funding/" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { "is-glob": "^4.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, "node_modules/chrome-launcher": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", "dev": true, "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", "is-wsl": "^2.2.0", "lighthouse-logger": "^1.0.0" }, "bin": { "print-chrome-path": "bin/print-chrome-path.js" }, "engines": { "node": ">=12.13.0" } }, "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, "engines": { "node": ">=6.0" } }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/sibiraj-s" } ], "engines": { "node": ">=8" } }, "node_modules/cjs-module-lexer": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", "dev": true }, "node_modules/clean-webpack-plugin": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz", "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==", "dev": true, "dependencies": { "@types/webpack": "^4.4.31", "del": "^4.1.1" }, "engines": { "node": ">=8.9.0" }, "peerDependencies": { "webpack": "*" } }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" }, "engines": { "node": ">=12" } }, "node_modules/clone-deep": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", "integrity": "sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==", "dev": true, "dependencies": { "for-own": "^0.1.3", "is-plain-object": "^2.0.1", "kind-of": "^3.0.2", "lazy-cache": "^1.0.3", "shallow-clone": "^0.1.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" } }, "node_modules/collect-v8-coverage": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "dependencies": { "delayed-stream": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, "node_modules/commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/comment-parser": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, "engines": { "node": ">= 12.0.0" } }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "dependencies": { "mime-db": ">= 1.43.0 < 2" }, "engines": { "node": ">= 0.6" } }, "node_modules/compression": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", "compressible": "~2.0.16", "debug": "2.6.9", "on-headers": "~1.0.2", "safe-buffer": "5.1.2", "vary": "~1.1.2" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/compression/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, "dependencies": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", "make-dir": "^3.0.0", "unique-string": "^2.0.0", "write-file-atomic": "^3.0.0", "xdg-basedir": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/configstore/node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", "typedarray-to-buffer": "^3.1.5" } }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true, "engines": { "node": ">=0.8" } }, "node_modules/constant-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", "upper-case": "^2.0.2" } }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, "dependencies": { "safe-buffer": "5.2.1" }, "engines": { "node": ">= 0.6" } }, "node_modules/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, "node_modules/cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, "node_modules/copy-webpack-plugin": { "version": "10.2.4", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", "dev": true, "dependencies": { "fast-glob": "^3.2.7", "glob-parent": "^6.0.1", "globby": "^12.0.2", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, "engines": { "node": ">= 12.20.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.1.0" } }, "node_modules/copy-webpack-plugin/node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "node_modules/copy-webpack-plugin/node_modules/array-union": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/copy-webpack-plugin/node_modules/globby": { "version": "12.2.0", "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", "dev": true, "dependencies": { "array-union": "^3.0.1", "dir-glob": "^3.0.1", "fast-glob": "^3.2.7", "ignore": "^5.1.9", "merge2": "^1.4.1", "slash": "^4.0.0" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/copy-webpack-plugin/node_modules/schema-utils": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/copy-webpack-plugin/node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/core-js": { "version": "3.37.0", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.0.tgz", "integrity": "sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug==", "dev": true, "hasInstallScript": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/core-js-compat": { "version": "3.37.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz", "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==", "dev": true, "dependencies": { "browserslist": "^4.23.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/core-js-pure": { "version": "3.37.0", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.37.0.tgz", "integrity": "sha512-d3BrpyFr5eD4KcbRvQ3FTUx/KWmaDesr7+a3+1+P46IUnNoEt+oiLijPINZMEon7w9oGkIINWxrBAU9DEciwFQ==", "dev": true, "hasInstallScript": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0", "path-type": "^4.0.0" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/d-fischer" }, "peerDependencies": { "typescript": ">=4.9.5" }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, "node_modules/cosmiconfig/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "node_modules/cosmiconfig/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-config": "^29.7.0", "jest-util": "^29.7.0", "prompts": "^2.0.1" }, "bin": { "create-jest": "bin/create-jest.js" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "dev": true, "dependencies": { "node-fetch": "2.6.7" } }, "node_modules/cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", "dev": true, "dependencies": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, "node_modules/cross-spawn/node_modules/lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "dependencies": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" } }, "node_modules/cross-spawn/node_modules/yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", "dev": true }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/csp_evaluator": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz", "integrity": "sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==", "dev": true }, "node_modules/css-declaration-sorter": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", "dev": true, "engines": { "node": "^14 || ^16 || >=18" }, "peerDependencies": { "postcss": "^8.0.9" } }, "node_modules/css-functions-list": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", "dev": true, "engines": { "node": ">=12 || >=16" } }, "node_modules/css-loader": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", "postcss-modules-extract-imports": "^3.1.0", "postcss-modules-local-by-default": "^4.0.5", "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", "semver": "^7.5.4" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "@rspack/core": "0.x || 1.x", "webpack": "^5.0.0" }, "peerDependenciesMeta": { "@rspack/core": { "optional": true }, "webpack": { "optional": true } } }, "node_modules/css-loader/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/css-loader/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/css-loader/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" }, "funding": { "url": "https://github.com/sponsors/fb55" } }, "node_modules/css-tree": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" }, "engines": { "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, "engines": { "node": ">= 6" }, "funding": { "url": "https://github.com/sponsors/fb55" } }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, "bin": { "cssesc": "bin/cssesc" }, "engines": { "node": ">=4" } }, "node_modules/cssnano": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", "dev": true, "dependencies": { "cssnano-preset-default": "^6.1.2", "lilconfig": "^3.1.1" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/cssnano" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/cssnano-preset-default": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "css-declaration-sorter": "^7.2.0", "cssnano-utils": "^4.0.2", "postcss-calc": "^9.0.1", "postcss-colormin": "^6.1.0", "postcss-convert-values": "^6.1.0", "postcss-discard-comments": "^6.0.2", "postcss-discard-duplicates": "^6.0.3", "postcss-discard-empty": "^6.0.3", "postcss-discard-overridden": "^6.0.2", "postcss-merge-longhand": "^6.0.5", "postcss-merge-rules": "^6.1.1", "postcss-minify-font-values": "^6.1.0", "postcss-minify-gradients": "^6.0.3", "postcss-minify-params": "^6.1.0", "postcss-minify-selectors": "^6.0.4", "postcss-normalize-charset": "^6.0.2", "postcss-normalize-display-values": "^6.0.2", "postcss-normalize-positions": "^6.0.2", "postcss-normalize-repeat-style": "^6.0.2", "postcss-normalize-string": "^6.0.2", "postcss-normalize-timing-functions": "^6.0.2", "postcss-normalize-unicode": "^6.1.0", "postcss-normalize-url": "^6.0.2", "postcss-normalize-whitespace": "^6.0.2", "postcss-ordered-values": "^6.0.2", "postcss-reduce-initial": "^6.1.0", "postcss-reduce-transforms": "^6.0.2", "postcss-svgo": "^6.0.3", "postcss-unique-selectors": "^6.0.4" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/cssnano-utils": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/csso": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dev": true, "dependencies": { "css-tree": "~2.2.0" }, "engines": { "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", "npm": ">=7.0.0" } }, "node_modules/csso/node_modules/css-tree": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", "dev": true, "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" }, "engines": { "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", "npm": ">=7.0.0" } }, "node_modules/csso/node_modules/mdn-data": { "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", "dev": true }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", "dev": true }, "node_modules/cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "dependencies": { "cssom": "~0.3.6" }, "engines": { "node": ">=8" } }, "node_modules/cssstyle/node_modules/cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true }, "node_modules/cwd": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz", "integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==", "dev": true, "dependencies": { "find-pkg": "^0.1.2", "fs-exists-sync": "^0.1.0" }, "engines": { "node": ">=0.8" } }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, "node_modules/data-uri-to-buffer": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", "dev": true, "engines": { "node": ">= 14" } }, "node_modules/data-urls": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", "dev": true, "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", "whatwg-url": "^11.0.0" }, "engines": { "node": ">=12" } }, "node_modules/data-view-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/data-view-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/data-view-byte-offset": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", "dev": true }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/decamelize-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" }, "engines": { "node": ">=0.10.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/decimal.js": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "dev": true }, "node_modules/dedent": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, "peerDependenciesMeta": { "babel-plugin-macros": { "optional": true } } }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "engines": { "node": ">=4.0.0" } }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, "dependencies": { "execa": "^5.0.0" }, "engines": { "node": ">= 10" } }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/define-properties": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/degenerator": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dev": true, "dependencies": { "ast-types": "^0.13.4", "escodegen": "^2.1.0", "esprima": "^4.0.1" }, "engines": { "node": ">= 14" } }, "node_modules/del": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "dev": true, "dependencies": { "@types/glob": "^7.1.1", "globby": "^6.1.0", "is-path-cwd": "^2.0.0", "is-path-in-cwd": "^2.0.0", "p-map": "^2.0.0", "pify": "^4.0.1", "rimraf": "^2.6.3" }, "engines": { "node": ">=6" } }, "node_modules/del/node_modules/array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "dev": true, "dependencies": { "array-uniq": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/del/node_modules/globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", "dev": true, "dependencies": { "array-union": "^1.0.1", "glob": "^7.0.3", "object-assign": "^4.0.1", "pify": "^2.0.0", "pinkie-promise": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/del/node_modules/globby/node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, "node_modules/devtools-protocol": { "version": "0.0.1155343", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1155343.tgz", "integrity": "sha512-oD9vGBV2wTc7fAzAM6KC0chSgs234V8+qDEeK+mcbRj2UvcuA7lgBztGi/opj/iahcXD3BSj8Ymvib628yy9FA==", "dev": true }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { "path-type": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/dns-packet": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "dev": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, "engines": { "node": ">=6" } }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { "esutils": "^2.0.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/fb55" } ] }, "node_modules/domexception": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", "deprecated": "Use your platform's native DOMException instead", "dev": true, "dependencies": { "webidl-conversions": "^7.0.0" }, "engines": { "node": ">=12" } }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, "dependencies": { "domelementtype": "^2.3.0" }, "engines": { "node": ">= 4" }, "funding": { "url": "https://github.com/fb55/domhandler?sponsor=1" } }, "node_modules/domutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "dependencies": { "is-obj": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, "node_modules/electron-to-chromium": { "version": "1.4.750", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.750.tgz", "integrity": "sha512-9ItEpeu15hW5m8jKdriL+BQrgwDTXEL9pn4SkillWFu73ZNNNQ2BKKLS+ZHv2vC9UkNhosAeyfxOf/5OSeTCPA==", "dev": true }, "node_modules/emittery": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "dependencies": { "iconv-lite": "^0.6.2" } }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "dependencies": { "once": "^1.4.0" } }, "node_modules/enhanced-resolve": { "version": "5.16.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" }, "engines": { "node": ">=10.13.0" } }, "node_modules/enquirer": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8.6" } }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "engines": { "node": ">=0.12" }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/envinfo": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", "dev": true, "bin": { "envinfo": "dist/cli.js" }, "engines": { "node": ">=4" } }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/error-stack-parser": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", "dev": true, "dependencies": { "stackframe": "^1.3.4" } }, "node_modules/es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", "data-view-buffer": "^1.0.1", "data-view-byte-length": "^1.0.1", "data-view-byte-offset": "^1.0.0", "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", "get-intrinsic": "^1.2.4", "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", "has-symbols": "^1.0.3", "hasown": "^2.0.2", "internal-slot": "^1.0.7", "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", "is-data-view": "^1.0.1", "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.5", "regexp.prototype.flags": "^1.5.2", "safe-array-concat": "^1.1.2", "safe-regex-test": "^1.0.3", "string.prototype.trim": "^1.2.9", "string.prototype.trimend": "^1.0.8", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.2", "typed-array-byte-length": "^1.0.1", "typed-array-byte-offset": "^1.0.2", "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, "dependencies": { "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/es-iterator-helpers": { "version": "1.0.19", "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.7", "iterator.prototype": "^1.1.2", "safe-array-concat": "^1.1.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz", "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==", "dev": true }, "node_modules/es-object-atoms": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, "dependencies": { "es-errors": "^1.3.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-set-tostringtag": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { "get-intrinsic": "^1.2.4", "has-tostringtag": "^1.0.2", "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "dependencies": { "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/escodegen": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2" }, "bin": { "escodegen": "bin/escodegen.js", "esgenerate": "bin/esgenerate.js" }, "engines": { "node": ">=6.0" }, "optionalDependencies": { "source-map": "~0.6.1" } }, "node_modules/escodegen/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/eslint": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", "@eslint/js": "8.57.0", "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.2", "eslint-visitor-keys": "^3.4.3", "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3", "strip-ansi": "^6.0.1", "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-config-prettier": { "version": "8.10.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, "peerDependencies": { "eslint": ">=7.0.0" } }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, "dependencies": { "debug": "^3.2.7" }, "engines": { "node": ">=4" }, "peerDependenciesMeta": { "eslint": { "optional": true } } }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", "array.prototype.flat": "^1.3.2", "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.8.0", "hasown": "^2.0.0", "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.7", "object.groupby": "^1.0.1", "object.values": "^1.1.7", "semver": "^6.3.1", "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, "node_modules/eslint-plugin-import/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { "esutils": "^2.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/eslint-plugin-import/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/eslint-plugin-jest": { "version": "27.9.0", "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", "dev": true, "dependencies": { "@typescript-eslint/utils": "^5.10.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", "eslint": "^7.0.0 || ^8.0.0", "jest": "*" }, "peerDependenciesMeta": { "@typescript-eslint/eslint-plugin": { "optional": true }, "jest": { "optional": true } } }, "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", "semver": "^7.3.7", "tsutils": "^3.21.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", "@typescript-eslint/typescript-estree": "5.62.0", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/eslint-plugin-jest/node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-plugin-jest/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/eslint-plugin-jest/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/eslint-plugin-jest/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/eslint-plugin-jsdoc": { "version": "46.10.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.10.1.tgz", "integrity": "sha512-x8wxIpv00Y50NyweDUpa+58ffgSAI5sqe+zcZh33xphD0AVh+1kqr1ombaTRb7Fhpove1zfUuujlX9DWWBP5ag==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.41.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", "is-builtin-module": "^3.2.1", "semver": "^7.5.4", "spdx-expression-parse": "^4.0.0" }, "engines": { "node": ">=16" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/eslint-plugin-jsdoc/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/eslint-plugin-jsdoc/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/eslint-plugin-jsdoc/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.8.0", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", "dev": true, "dependencies": { "@babel/runtime": "^7.23.2", "aria-query": "^5.3.0", "array-includes": "^3.1.7", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", "axe-core": "=4.7.0", "axobject-query": "^3.2.1", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "es-iterator-helpers": "^1.0.15", "hasown": "^2.0.0", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", "object.entries": "^1.1.7", "object.fromentries": "^2.0.7" }, "engines": { "node": ">=4.0" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/eslint-plugin-playwright": { "version": "0.15.3", "resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-0.15.3.tgz", "integrity": "sha512-LQMW5y0DLK5Fnpya7JR1oAYL2/7Y9wDiYw6VZqlKqcRGSgjbVKNqxraphk7ra1U3Bb5EK444xMgUlQPbMg2M1g==", "dev": true, "peerDependencies": { "eslint": ">=7", "eslint-plugin-jest": ">=25" }, "peerDependenciesMeta": { "eslint-plugin-jest": { "optional": true } } }, "node_modules/eslint-plugin-prettier": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", "dev": true, "dependencies": { "prettier-linter-helpers": "^1.0.0", "synckit": "^0.8.6" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { "@types/eslint": ">=8.0.0", "eslint": ">=8.0.0", "eslint-config-prettier": "*", "prettier": ">=3.0.0" }, "peerDependenciesMeta": { "@types/eslint": { "optional": true }, "eslint-config-prettier": { "optional": true } } }, "node_modules/eslint-plugin-react": { "version": "7.34.1", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", "dev": true, "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlast": "^1.2.4", "array.prototype.flatmap": "^1.3.2", "array.prototype.toreversed": "^1.1.2", "array.prototype.tosorted": "^1.1.3", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.0.17", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.7", "object.fromentries": "^2.0.7", "object.hasown": "^1.1.3", "object.values": "^1.1.7", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", "string.prototype.matchall": "^4.0.10" }, "engines": { "node": ">=4" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, "node_modules/eslint-plugin-react-hooks": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", "dev": true, "engines": { "node": ">=10" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, "node_modules/eslint-plugin-react/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { "esutils": "^2.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/eslint-plugin-react/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" }, "engines": { "node": ">=8.0.0" } }, "node_modules/eslint-scope/node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/eslint/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/eslint/node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/eslint/node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { "p-locate": "^5.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/eslint/node_modules/p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { "p-limit": "^3.0.2" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" }, "engines": { "node": ">=4" } }, "node_modules/esquery": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" }, "engines": { "node": ">=0.10" } }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { "estraverse": "^5.2.0" }, "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, "engines": { "node": ">=0.8.x" } }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/execa/node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/execa/node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/execa/node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/execa/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/expand-tilde": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", "integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==", "dev": true, "dependencies": { "os-homedir": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/expect": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/expect-puppeteer": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-4.4.0.tgz", "integrity": "sha512-6Ey4Xy2xvmuQu7z7YQtMsaMV0EHJRpVxIDOd5GRrm04/I3nkTKIutELfECsLp6le+b3SSa3cXhPiw6PgqzxYWA==", "dev": true }, "node_modules/express": { "version": "4.19.2", "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.2.0", "fresh": "0.5.2", "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", "serve-static": "1.15.0", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, "engines": { "node": ">= 0.10.0" } }, "node_modules/express/node_modules/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "bin": { "extract-zip": "cli.js" }, "engines": { "node": ">= 10.17.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" } }, "node_modules/extract-zip/node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "dependencies": { "pump": "^3.0.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "node_modules/fast-diff": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, "node_modules/fast-fifo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", "dev": true }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" }, "engines": { "node": ">=8.6.0" } }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { "is-glob": "^4.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, "engines": { "node": ">= 4.9.1" } }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" } }, "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, "dependencies": { "websocket-driver": ">=0.5.1" }, "engines": { "node": ">=0.8.0" } }, "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "dependencies": { "bser": "2.1.1" } }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, "dependencies": { "pend": "~1.2.0" } }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "dependencies": { "flat-cache": "^3.0.4" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/filename-reserved-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/filenamify": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", "dev": true, "dependencies": { "filename-reserved-regex": "^2.0.0", "strip-outer": "^1.0.1", "trim-repeated": "^1.0.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, "node_modules/finalhandler/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, "node_modules/find-file-up": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz", "integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==", "dev": true, "dependencies": { "fs-exists-sync": "^0.1.0", "resolve-dir": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/find-parent-dir": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.1.tgz", "integrity": "sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A==", "dev": true }, "node_modules/find-pkg": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz", "integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==", "dev": true, "dependencies": { "find-file-up": "^0.1.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/find-process": { "version": "1.4.7", "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz", "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==", "dev": true, "dependencies": { "chalk": "^4.0.0", "commander": "^5.1.0", "debug": "^4.1.1" }, "bin": { "find-process": "bin/find-process.js" } }, "node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flat-cache/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/follow-redirects": { "version": "1.15.6", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], "engines": { "node": ">=4.0" }, "peerDependenciesMeta": { "debug": { "optional": true } } }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/for-own": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", "dev": true, "dependencies": { "for-in": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { "node": ">= 6" } }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, "engines": { "node": "*" }, "funding": { "type": "patreon", "url": "https://github.com/sponsors/rawify" } }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, "node_modules/fs-exists-sync": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", "integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/fs-extra": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { "node": ">=14.14" } }, "node_modules/fs-extra/node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { "node": ">= 10.0.0" } }, "node_modules/fs-monkey": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "engines": { "node": ">=8.0.0" } }, "node_modules/get-port": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-stdin": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-symbol-description": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { "call-bind": "^1.0.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-uri": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", "dev": true, "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", "debug": "^4.3.4", "fs-extra": "^11.2.0" }, "engines": { "node": ">= 14" } }, "node_modules/gettext-parser": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz", "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==", "dev": true, "dependencies": { "encoding": "^0.1.12", "safe-buffer": "^5.1.1" } }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { "is-glob": "^4.0.3" }, "engines": { "node": ">=10.13.0" } }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, "node_modules/glob/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/glob/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/global-modules": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", "integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==", "dev": true, "dependencies": { "global-prefix": "^0.1.4", "is-windows": "^0.2.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/global-prefix": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", "integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==", "dev": true, "dependencies": { "homedir-polyfill": "^1.0.0", "ini": "^1.3.4", "is-windows": "^0.2.0", "which": "^1.2.12" }, "engines": { "node": ">=0.10.0" } }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/globalthis": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, "dependencies": { "define-properties": "^1.1.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globjoin": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, "dependencies": { "get-intrinsic": "^1.1.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, "dependencies": { "duplexer": "^0.1.2" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-tostringtag": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { "function-bind": "^1.1.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/header-case": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", "dev": true, "dependencies": { "capital-case": "^1.0.4", "tslib": "^2.0.3" } }, "node_modules/homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, "dependencies": { "parse-passwd": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "engines": { "node": ">=10" } }, "node_modules/hosted-git-info/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/hosted-git-info/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", "readable-stream": "^2.0.1", "wbuf": "^1.1.0" } }, "node_modules/hpack.js/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "node_modules/hpack.js/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, "dependencies": { "whatwg-encoding": "^2.0.0" }, "engines": { "node": ">=12" } }, "node_modules/html-entities": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/mdevils" }, { "type": "patreon", "url": "https://patreon.com/mdevils" } ] }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "node_modules/html-tags": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", "dev": true }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" }, "engines": { "node": ">= 0.8" } }, "node_modules/http-link-header": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz", "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/http-parser-js": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", "dev": true }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" }, "engines": { "node": ">=8.0.0" } }, "node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, "dependencies": { "@tootallnate/once": "2", "agent-base": "6", "debug": "4" }, "engines": { "node": ">= 6" } }, "node_modules/http-proxy-middleware": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", "is-glob": "^4.0.1", "is-plain-obj": "^3.0.0", "micromatch": "^4.0.2" }, "engines": { "node": ">=12.0.0" }, "peerDependencies": { "@types/express": "^4.17.13" }, "peerDependenciesMeta": { "@types/express": { "optional": true } } }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "dependencies": { "agent-base": "6", "debug": "4" }, "engines": { "node": ">= 6" } }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "engines": { "node": ">=10.17.0" } }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/ignore-walk": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", "dev": true, "dependencies": { "minimatch": "^3.0.4" }, "engines": { "node": ">=10" } }, "node_modules/ignore-walk/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/ignore-walk/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/image-ssim": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz", "integrity": "sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==", "dev": true }, "node_modules/immutable": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", "dev": true }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/import-fresh/node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { "node": ">= 0.4" } }, "node_modules/interpret": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, "engines": { "node": ">=10.13.0" } }, "node_modules/intl-messageformat": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz", "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==", "dev": true, "dependencies": { "intl-messageformat-parser": "^1.8.1" } }, "node_modules/intl-messageformat-parser": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser", "dev": true }, "node_modules/ip-address": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "dev": true, "dependencies": { "jsbn": "1.1.0", "sprintf-js": "^1.1.3" }, "engines": { "node": ">= 12" } }, "node_modules/ipaddr.js": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, "engines": { "node": ">= 10" } }, "node_modules/irregular-plurals": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "node_modules/is-async-function": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "dependencies": { "has-bigints": "^1.0.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "node_modules/is-builtin-module": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, "dependencies": { "builtin-modules": "^3.3.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-data-view": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, "dependencies": { "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, "bin": { "is-docker": "cli.js" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-finalizationregistry": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", "dev": true, "dependencies": { "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-generator-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-negative-zero": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/is-path-in-cwd": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "dev": true, "dependencies": { "is-path-inside": "^2.1.0" }, "engines": { "node": ">=6" } }, "node_modules/is-path-in-cwd/node_modules/is-path-inside": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "dev": true, "dependencies": { "path-is-inside": "^1.0.2" }, "engines": { "node": ">=6" } }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "dependencies": { "isobject": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-set": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { "call-bind": "^1.0.7" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-symbol": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-windows": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "dependencies": { "is-docker": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" }, "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" } }, "node_modules/istanbul-lib-report/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/istanbul-lib-report/node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "dependencies": { "semver": "^7.5.3" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/istanbul-lib-report/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/istanbul-lib-report/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" }, "engines": { "node": ">=10" } }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-reports": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/iterator.prototype": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", "dev": true, "dependencies": { "define-properties": "^1.2.1", "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", "reflect.getprototypeof": "^1.0.4", "set-function-name": "^2.0.1" } }, "node_modules/jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", "import-local": "^3.0.2", "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { "node-notifier": { "optional": true } } }, "node_modules/jest-changed-files": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-circus": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", "jest-each": "^29.7.0", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-runtime": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", "p-limit": "^3.1.0", "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-cli": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "chalk": "^4.0.0", "create-jest": "^29.7.0", "exit": "^0.1.2", "import-local": "^3.0.2", "jest-config": "^29.7.0", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "bin": { "jest": "bin/jest.js" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { "node-notifier": { "optional": true } } }, "node_modules/jest-config": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", "@jest/types": "^29.6.3", "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "jest-circus": "^29.7.0", "jest-environment-node": "^29.7.0", "jest-get-type": "^29.6.3", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", "jest-runner": "^29.7.0", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "@types/node": "*", "ts-node": ">=9.0.0" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, "ts-node": { "optional": true } } }, "node_modules/jest-dev-server": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-9.0.2.tgz", "integrity": "sha512-Zc/JB0IlNNrpXkhBw+h86cGrde/Mey52KvF+FER2eyrtYJTHObOwW7Iarxm3rPyTKby5+3Y2QZtl8pRz/5GCxg==", "dev": true, "dependencies": { "chalk": "^4.1.2", "cwd": "^0.10.0", "find-process": "^1.4.7", "prompts": "^2.4.2", "spawnd": "^9.0.2", "tree-kill": "^1.2.2", "wait-on": "^7.2.0" }, "engines": { "node": ">=16" } }, "node_modules/jest-diff": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-docblock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-each": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", "jest-get-type": "^29.6.3", "jest-util": "^29.7.0", "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-environment-jsdom": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/jsdom": "^20.0.0", "@types/node": "*", "jest-mock": "^29.7.0", "jest-util": "^29.7.0", "jsdom": "^20.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "canvas": "^2.5.0" }, "peerDependenciesMeta": { "canvas": { "optional": true } } }, "node_modules/jest-environment-node": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "jest-mock": "^29.7.0", "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-get-type": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "optionalDependencies": { "fsevents": "^2.3.2" } }, "node_modules/jest-leak-detector": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-message-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-mock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "engines": { "node": ">=6" }, "peerDependencies": { "jest-resolve": "*" }, "peerDependenciesMeta": { "jest-resolve": { "optional": true } } }, "node_modules/jest-regex-util": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve-dependencies": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-runner": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", "jest-docblock": "^29.7.0", "jest-environment-node": "^29.7.0", "jest-haste-map": "^29.7.0", "jest-leak-detector": "^29.7.0", "jest-message-util": "^29.7.0", "jest-resolve": "^29.7.0", "jest-runtime": "^29.7.0", "jest-util": "^29.7.0", "jest-watcher": "^29.7.0", "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-runtime": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", "@jest/globals": "^29.7.0", "@jest/source-map": "^29.6.3", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-message-util": "^29.7.0", "jest-mock": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-snapshot": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", "@jest/expect-utils": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", "expect": "^29.7.0", "graceful-fs": "^4.2.9", "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", "natural-compare": "^1.4.0", "pretty-format": "^29.7.0", "semver": "^7.5.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-snapshot/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/jest-snapshot/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-validate": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.6.3", "leven": "^3.1.0", "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-watcher": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-worker": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/joi": { "version": "17.13.0", "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.0.tgz", "integrity": "sha512-9qcrTyoBmFZRNHeVP4edKqIUEgFzq7MHvTNSDuHSqkpOPtiBkgNgcmTSqmiw1kw9tdKaiddvIDv/eCJDxmqWCA==", "dev": true, "dependencies": { "@hapi/hoek": "^9.3.0", "@hapi/topo": "^5.1.0", "@sideway/address": "^4.1.5", "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, "node_modules/jpeg-js": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", "dev": true }, "node_modules/js-library-detector": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.7.0.tgz", "integrity": "sha512-c80Qupofp43y4cJ7+8TTDN/AsDwLi5oOm/plBrWI+iQt485vKXCco+yVmOwEgdo9VOdsYTuV0UlTeetVPTriXA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/jsbn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", "dev": true }, "node_modules/jsdoc-type-pratt-parser": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true, "engines": { "node": ">=12.0.0" } }, "node_modules/jsdom": { "version": "20.0.3", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", "dev": true, "dependencies": { "abab": "^2.0.6", "acorn": "^8.8.1", "acorn-globals": "^7.0.0", "cssom": "^0.5.0", "cssstyle": "^2.3.0", "data-urls": "^3.0.2", "decimal.js": "^10.4.2", "domexception": "^4.0.0", "escodegen": "^2.0.0", "form-data": "^4.0.0", "html-encoding-sniffer": "^3.0.0", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.2", "parse5": "^7.1.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^4.1.2", "w3c-xmlserializer": "^4.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^2.0.0", "whatwg-mimetype": "^3.0.0", "whatwg-url": "^11.0.0", "ws": "^8.11.0", "xml-name-validator": "^4.0.0" }, "engines": { "node": ">=14" }, "peerDependencies": { "canvas": "^2.5.0" }, "peerDependenciesMeta": { "canvas": { "optional": true } } }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, "bin": { "jsesc": "bin/jsesc" }, "engines": { "node": ">=4" } }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json2php": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.7.tgz", "integrity": "sha512-dnSoUiLAoVaMXxFsVi4CrPVYMKOuDBXTghXSmMINX44RZ8WM9cXlY7UqrQnlAcODCVO7FV3+8t/5nDKAjimLfg==", "dev": true }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "bin": { "json5": "lib/cli.js" }, "engines": { "node": ">=6" } }, "node_modules/jsonc-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", "dev": true }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/jsonfile/node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { "node": ">= 10.0.0" } }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" }, "engines": { "node": ">=4.0" } }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/klona": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/known-css-properties": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", "dev": true }, "node_modules/language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", "dev": true }, "node_modules/language-tags": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dev": true, "dependencies": { "language-subtag-registry": "^0.3.20" }, "engines": { "node": ">=0.10" } }, "node_modules/launch-editor": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", "dev": true, "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" } }, "node_modules/lazy-cache": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/lighthouse": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-10.4.0.tgz", "integrity": "sha512-XQWHEWkJ8YxSPsxttBJORy5+hQrzbvGkYfeP3fJjyYKioWkF2MXfFqNK4ZuV4jL8pBu7Z91qnQP6In0bq1yXww==", "dev": true, "dependencies": { "@sentry/node": "^6.17.4", "axe-core": "4.7.2", "chrome-launcher": "^0.15.2", "configstore": "^5.0.1", "csp_evaluator": "1.1.1", "devtools-protocol": "0.0.1155343", "enquirer": "^2.3.6", "http-link-header": "^1.1.1", "intl-messageformat": "^4.4.0", "jpeg-js": "^0.4.4", "js-library-detector": "^6.6.0", "lighthouse-logger": "^1.4.1", "lighthouse-stack-packs": "1.11.0", "lodash": "^4.17.21", "lookup-closest-locale": "6.2.0", "metaviewport-parser": "0.3.0", "open": "^8.4.0", "parse-cache-control": "1.0.1", "ps-list": "^8.0.0", "puppeteer-core": "^20.8.0", "robots-parser": "^3.0.0", "semver": "^5.3.0", "speedline-core": "^1.4.3", "third-party-web": "^0.23.3", "ws": "^7.0.0", "yargs": "^17.3.1", "yargs-parser": "^21.0.0" }, "bin": { "chrome-debug": "core/scripts/manual-chrome-launcher.js", "lighthouse": "cli/index.js", "smokehouse": "cli/test/smokehouse/frontends/smokehouse-bin.js" }, "engines": { "node": ">=16.16" } }, "node_modules/lighthouse-logger": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", "dev": true, "dependencies": { "debug": "^2.6.9", "marky": "^1.2.2" } }, "node_modules/lighthouse-logger/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/lighthouse-logger/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/lighthouse-stack-packs": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.11.0.tgz", "integrity": "sha512-sRr0z1S/I26VffRLq9KJsKtLk856YrJlNGmcJmbLX8dFn3MuzVPUbstuChEhqnSxZb8TZmVfthuXuwhG9vRoSw==", "dev": true }, "node_modules/lighthouse/node_modules/axe-core": { "version": "4.7.2", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz", "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/lighthouse/node_modules/cross-fetch": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", "dev": true, "dependencies": { "node-fetch": "^2.6.12" } }, "node_modules/lighthouse/node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" }, "engines": { "node": "4.x || >=6.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "peerDependenciesMeta": { "encoding": { "optional": true } } }, "node_modules/lighthouse/node_modules/puppeteer-core": { "version": "20.9.0", "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.9.0.tgz", "integrity": "sha512-H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==", "dev": true, "dependencies": { "@puppeteer/browsers": "1.4.6", "chromium-bidi": "0.4.16", "cross-fetch": "4.0.0", "debug": "4.3.4", "devtools-protocol": "0.0.1147663", "ws": "8.13.0" }, "engines": { "node": ">=16.3.0" }, "peerDependencies": { "typescript": ">= 4.7.4" }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/chromium-bidi": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz", "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==", "dev": true, "dependencies": { "mitt": "3.0.0" }, "peerDependencies": { "devtools-protocol": "*" } }, "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/devtools-protocol": { "version": "0.0.1147663", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz", "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==", "dev": true }, "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/ws": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/lighthouse/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/lighthouse/node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, "node_modules/lighthouse/node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "node_modules/lighthouse/node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "node_modules/lighthouse/node_modules/ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, "engines": { "node": ">=8.3.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/lilconfig": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", "dev": true, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "node_modules/linkify-it": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", "dev": true, "dependencies": { "uc.micro": "^1.0.1" } }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, "engines": { "node": ">=6.11.5" } }, "node_modules/loader-utils": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" }, "engines": { "node": ">=8.9.0" } }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { "p-locate": "^4.1.0" }, "engines": { "node": ">=8" } }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lookup-closest-locale": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz", "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==", "dev": true }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, "dependencies": { "tslib": "^2.0.3" } }, "node_modules/lru_map": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", "dev": true }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { "yallist": "^3.0.2" } }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "dependencies": { "semver": "^6.0.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "dependencies": { "tmpl": "1.0.5" } }, "node_modules/map-obj": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/map-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-values/-/map-values-1.0.1.tgz", "integrity": "sha512-BbShUnr5OartXJe1GeccAWtfro11hhgNJg6G9/UtWKjVGvV5U4C09cg5nk8JUevhXODaXY+hQ3xxMUKSs62ONQ==", "dev": true }, "node_modules/markdown-it": { "version": "12.3.2", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", "dev": true, "dependencies": { "argparse": "^2.0.1", "entities": "~2.1.0", "linkify-it": "^3.0.1", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" }, "bin": { "markdown-it": "bin/markdown-it.js" } }, "node_modules/markdown-it/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "node_modules/markdown-it/node_modules/entities": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", "dev": true, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/markdownlint": { "version": "0.25.1", "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz", "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==", "dev": true, "dependencies": { "markdown-it": "12.3.2" }, "engines": { "node": ">=12" } }, "node_modules/markdownlint-cli": { "version": "0.31.1", "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.31.1.tgz", "integrity": "sha512-keIOMwQn+Ch7MoBwA+TdkyVMuxAeZFEGmIIlvwgV0Z1TGS5MxPnRr29XCLhkNzCHU+uNKGjU+VEjLX+Z9kli6g==", "dev": true, "dependencies": { "commander": "~9.0.0", "get-stdin": "~9.0.0", "glob": "~7.2.0", "ignore": "~5.2.0", "js-yaml": "^4.1.0", "jsonc-parser": "~3.0.0", "markdownlint": "~0.25.1", "markdownlint-rule-helpers": "~0.16.0", "minimatch": "~3.0.5", "run-con": "~1.2.10" }, "bin": { "markdownlint": "markdownlint.js" }, "engines": { "node": ">=12" } }, "node_modules/markdownlint-cli/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "node_modules/markdownlint-cli/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/markdownlint-cli/node_modules/commander": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", "dev": true, "engines": { "node": "^12.20.0 || >=14" } }, "node_modules/markdownlint-cli/node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/markdownlint-cli/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/markdownlint-cli/node_modules/minimatch": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/markdownlint-rule-helpers": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.16.0.tgz", "integrity": "sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w==", "dev": true }, "node_modules/marky": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", "dev": true }, "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", "dev": true }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/memfs": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, "dependencies": { "fs-monkey": "^1.0.4" }, "engines": { "node": ">= 4.0.0" } }, "node_modules/memize": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.0.tgz", "integrity": "sha512-yywVJy8ctVlN5lNPxsep5urnZ6TTclwPEyigM9M3Bi8vseJBOfqNrGWN/r8NzuIt3PovM323W04blJfGQfQSVg==", "dev": true }, "node_modules/meow": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", "decamelize": "^1.2.0", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.1.0", "minimist-options": "4.1.0", "normalize-package-data": "^3.0.0", "read-pkg-up": "^7.0.1", "redent": "^3.0.0", "trim-newlines": "^3.0.0", "type-fest": "^0.18.0", "yargs-parser": "^20.2.3" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/meow/node_modules/type-fest": { "version": "0.18.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/meow/node_modules/yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/merge-deep": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", "dev": true, "dependencies": { "arr-union": "^3.1.0", "clone-deep": "^0.2.4", "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", "dev": true }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/metaviewport-parser": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.3.0.tgz", "integrity": "sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ==", "dev": true }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, "node_modules/mime": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "dev": true, "bin": { "mime": "cli.js" }, "engines": { "node": ">=10.0.0" } }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "dependencies": { "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" } }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/mini-css-extract-plugin": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", "dev": true, "dependencies": { "schema-utils": "^4.0.0", "tapable": "^2.2.1" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.0.0" } }, "node_modules/mini-css-extract-plugin/node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, "node_modules/minimatch": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minimist-options": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", "kind-of": "^6.0.3" }, "engines": { "node": ">= 6" } }, "node_modules/minimist-options/node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/minimist-options/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/mitt": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", "dev": true }, "node_modules/mixin-object": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", "dev": true, "dependencies": { "for-in": "^0.1.3", "is-extendable": "^0.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/mixin-object/node_modules/for-in": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, "node_modules/mrmime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/multicast-dns": { "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" }, "bin": { "multicast-dns": "cli.js" } }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], "bin": { "nanoid": "bin/nanoid.cjs" }, "engines": { "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, "node_modules/netmask": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", "dev": true, "engines": { "node": ">= 0.4.0" } }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dev": true, "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" }, "engines": { "node": "4.x || >=6.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "peerDependenciesMeta": { "encoding": { "optional": true } } }, "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, "engines": { "node": ">= 6.13.0" } }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/normalize-package-data": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" }, "engines": { "node": ">=10" } }, "node_modules/normalize-package-data/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/normalize-package-data/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/normalize-package-data/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/npm-bundled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", "dev": true, "dependencies": { "npm-normalize-package-bin": "^1.0.1" } }, "node_modules/npm-normalize-package-bin": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true }, "node_modules/npm-package-json-lint": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-6.4.0.tgz", "integrity": "sha512-cuXAJJB1Rdqz0UO6w524matlBqDBjcNt7Ru+RDIu4y6RI1gVqiWBnylrK8sPRk81gGBA0X8hJbDXolVOoTc+sA==", "dev": true, "dependencies": { "ajv": "^6.12.6", "ajv-errors": "^1.0.1", "chalk": "^4.1.2", "cosmiconfig": "^8.0.0", "debug": "^4.3.4", "globby": "^11.1.0", "ignore": "^5.2.0", "is-plain-obj": "^3.0.0", "jsonc-parser": "^3.2.0", "log-symbols": "^4.1.0", "meow": "^9.0.0", "plur": "^4.0.0", "semver": "^7.3.8", "slash": "^3.0.0", "strip-json-comments": "^3.1.1", "type-fest": "^3.2.0", "validate-npm-package-name": "^5.0.0" }, "bin": { "npmPkgJsonLint": "dist/cli.js" }, "engines": { "node": ">=14.0.0", "npm": ">=6.0.0" } }, "node_modules/npm-package-json-lint/node_modules/jsonc-parser": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", "dev": true }, "node_modules/npm-package-json-lint/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/npm-package-json-lint/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/npm-package-json-lint/node_modules/type-fest": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", "dev": true, "engines": { "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm-package-json-lint/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/npm-packlist": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", "dev": true, "dependencies": { "glob": "^7.1.6", "ignore-walk": "^4.0.1", "npm-bundled": "^1.1.1", "npm-normalize-package-bin": "^1.0.1" }, "bin": { "npm-packlist": "bin/index.js" }, "engines": { "node": ">=10" } }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { "path-key": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "dependencies": { "boolbase": "^1.0.0" }, "funding": { "url": "https://github.com/fb55/nth-check?sponsor=1" } }, "node_modules/nwsapi": { "version": "2.2.9", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.9.tgz", "integrity": "sha512-2f3F0SEEer8bBu0dsNCFF50N0cTThV1nWFYcEYFZttdW0lDAoybv9cQoK7X7/68Z89S7FoRrVjP1LPX4XRf9vg==", "dev": true }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/object-filter": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz", "integrity": "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA==", "dev": true }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.entries": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.groupby": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.hasown": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", "dev": true, "dependencies": { "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.values": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "dependencies": { "ee-first": "1.1.1" }, "engines": { "node": ">= 0.8" } }, "node_modules/on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/open": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, "bin": { "opener": "bin/opener-bin.js" } }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { "p-limit": "^2.2.0" }, "engines": { "node": ">=8" } }, "node_modules/p-locate/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { "p-try": "^2.0.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-map": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dev": true, "dependencies": { "@types/retry": "0.12.0", "retry": "^0.13.1" }, "engines": { "node": ">=8" } }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/pac-proxy-agent": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", "dev": true, "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", "agent-base": "^7.0.2", "debug": "^4.3.4", "get-uri": "^6.0.1", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.2", "pac-resolver": "^7.0.0", "socks-proxy-agent": "^8.0.2" }, "engines": { "node": ">= 14" } }, "node_modules/pac-proxy-agent/node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "dependencies": { "debug": "^4.3.4" }, "engines": { "node": ">= 14" } }, "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" }, "engines": { "node": ">= 14" } }, "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, "dependencies": { "agent-base": "^7.0.2", "debug": "4" }, "engines": { "node": ">= 14" } }, "node_modules/pac-resolver": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", "dev": true, "dependencies": { "degenerator": "^5.0.0", "netmask": "^2.0.2" }, "engines": { "node": ">= 14" } }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "dev": true, "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "dependencies": { "callsites": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", "dev": true }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, "dependencies": { "entities": "^4.4.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/pascal-case": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "node_modules/path-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", "dev": true, "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, "dependencies": { "pinkie": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { "find-up": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/playwright": { "version": "1.43.1", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.43.1.tgz", "integrity": "sha512-V7SoH0ai2kNt1Md9E3Gwas5B9m8KR2GVvwZnAI6Pg0m3sh7UvgiYhRrhsziCmqMJNouPckiOhk8T+9bSAK0VIA==", "dev": true, "peer": true, "dependencies": { "playwright-core": "1.43.1" }, "bin": { "playwright": "cli.js" }, "engines": { "node": ">=16" }, "optionalDependencies": { "fsevents": "2.3.2" } }, "node_modules/playwright-core": { "version": "1.43.1", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.43.1.tgz", "integrity": "sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==", "dev": true, "peer": true, "bin": { "playwright-core": "cli.js" }, "engines": { "node": ">=16" } }, "node_modules/playwright/node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], "peer": true, "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/plur": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", "dev": true, "dependencies": { "irregular-plurals": "^3.2.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/postcss": { "version": "8.4.38", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/postcss-calc": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.2" } }, "node_modules/postcss-colormin": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-convert-values": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-discard-comments": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-discard-duplicates": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-discard-empty": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-discard-overridden": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-loader": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", "dev": true, "dependencies": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", "semver": "^7.3.5" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" } }, "node_modules/postcss-loader/node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" }, "engines": { "node": ">=10" } }, "node_modules/postcss-loader/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/postcss-loader/node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/postcss-loader/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", "dev": true }, "node_modules/postcss-merge-longhand": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^6.1.1" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-merge-rules": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", "cssnano-utils": "^4.0.2", "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-minify-font-values": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-minify-gradients": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", "dev": true, "dependencies": { "colord": "^2.9.3", "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-minify-params": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-minify-selectors": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-modules-extract-imports": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-modules-local-by-default": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.1.0" }, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-modules-scope": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.4" }, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, "dependencies": { "icss-utils": "^5.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-normalize-charset": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-display-values": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-positions": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-repeat-style": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-string": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-timing-functions": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-unicode": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-url": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-whitespace": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-ordered-values": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", "dev": true, "dependencies": { "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-initial": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-transforms": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-resolve-nested-selector": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", "dev": true }, "node_modules/postcss-safe-parser": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", "dev": true, "engines": { "node": ">=12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, "peerDependencies": { "postcss": "^8.3.3" } }, "node_modules/postcss-scss": { "version": "4.0.9", "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss-scss" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "engines": { "node": ">=12.0" }, "peerDependencies": { "postcss": "^8.4.29" } }, "node_modules/postcss-selector-parser": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", "dev": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" }, "engines": { "node": ">=4" } }, "node_modules/postcss-svgo": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^3.2.0" }, "engines": { "node": "^14 || ^16 || >= 18" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-unique-selectors": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { "name": "wp-prettier", "version": "3.0.3", "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-3.0.3.tgz", "integrity": "sha512-X4UlrxDTH8oom9qXlcjnydsjAOD2BmB6yFmvS4Z2zdTzqqpRWb+fbqrH412+l+OUXmbzJlSXjlMFYPgYG12IAA==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, "dependencies": { "fast-diff": "^1.1.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" }, "engines": { "node": ">= 6" } }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" }, "engines": { "node": ">= 0.10" } }, "node_modules/proxy-addr/node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/proxy-agent": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz", "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==", "dev": true, "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", "lru-cache": "^7.14.1", "pac-proxy-agent": "^7.0.0", "proxy-from-env": "^1.1.0", "socks-proxy-agent": "^8.0.1" }, "engines": { "node": ">= 14" } }, "node_modules/proxy-agent/node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "dependencies": { "debug": "^4.3.4" }, "engines": { "node": ">= 14" } }, "node_modules/proxy-agent/node_modules/http-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" }, "engines": { "node": ">= 14" } }, "node_modules/proxy-agent/node_modules/https-proxy-agent": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, "dependencies": { "agent-base": "^7.0.2", "debug": "4" }, "engines": { "node": ">= 14" } }, "node_modules/proxy-agent/node_modules/lru-cache": { "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, "node_modules/ps-list": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.1.tgz", "integrity": "sha512-OPS9kEJYVmiO48u/B9qneqhkMvgCxT+Tm28VCEJpheTpl8cJ0ffZRRNgS5mrQRTrX5yRTpaJ+hRDeefXYmmorQ==", "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", "dev": true }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/puppeteer-core": { "version": "13.7.0", "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz", "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==", "dev": true, "dependencies": { "cross-fetch": "3.1.5", "debug": "4.3.4", "devtools-protocol": "0.0.981744", "extract-zip": "2.0.1", "https-proxy-agent": "5.0.1", "pkg-dir": "4.2.0", "progress": "2.0.3", "proxy-from-env": "1.1.0", "rimraf": "3.0.2", "tar-fs": "2.1.1", "unbzip2-stream": "1.4.3", "ws": "8.5.0" }, "engines": { "node": ">=10.18.1" } }, "node_modules/puppeteer-core/node_modules/devtools-protocol": { "version": "0.0.981744", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", "dev": true }, "node_modules/puppeteer-core/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/puppeteer-core/node_modules/ws": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/pure-rand": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { "type": "individual", "url": "https://github.com/sponsors/dubzzz" }, { "type": "opencollective", "url": "https://opencollective.com/fast-check" } ] }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, "dependencies": { "side-channel": "^1.0.4" }, "engines": { "node": ">=0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/queue-tick": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", "dev": true }, "node_modules/quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, "engines": { "node": ">= 0.8" } }, "node_modules/raw-body/node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/raw-body/node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, "engines": { "node": ">=0.10.0" } }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dev": true, "dependencies": { "loose-envify": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dev": true, "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" }, "peerDependencies": { "react": "^18.3.1" } }, "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", "parse-json": "^5.0.0", "type-fest": "^0.6.0" }, "engines": { "node": ">=8" } }, "node_modules/read-pkg-up": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "dependencies": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/node_modules/type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/read-pkg/node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/read-pkg/node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } }, "node_modules/read-pkg/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/read-pkg/node_modules/type-fest": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { "picomatch": "^2.2.1" }, "engines": { "node": ">=8.10.0" } }, "node_modules/rechoir": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, "dependencies": { "resolve": "^1.20.0" }, "engines": { "node": ">= 10.13.0" } }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/reflect.getprototypeof": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.1", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, "node_modules/regenerate-unicode-properties": { "version": "10.1.1", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "dependencies": { "regenerate": "^1.4.2" }, "engines": { "node": ">=4" } }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "dev": true }, "node_modules/regenerator-transform": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" } }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { "call-bind": "^1.0.6", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.1.0", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "dependencies": { "jsesc": "~0.5.0" }, "bin": { "regjsparser": "bin/parser" } }, "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" } }, "node_modules/remove-accents": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", "dev": true }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/requireindex": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", "dev": true, "engines": { "node": ">=0.10.5" } }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/resolve-bin": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/resolve-bin/-/resolve-bin-0.4.3.tgz", "integrity": "sha512-9u8TMpc+SEHXxQXblXHz5yRvRZERkCZimFN9oz85QI3uhkh7nqfjm6OGTLg+8vucpXGcY4jLK6WkylPmt7GSvw==", "dev": true, "dependencies": { "find-parent-dir": "~0.3.0" } }, "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "dependencies": { "resolve-from": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/resolve-dir": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", "integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==", "dev": true, "dependencies": { "expand-tilde": "^1.2.2", "global-modules": "^0.2.3" }, "engines": { "node": ">=0.10.0" } }, "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "node_modules/robots-parser": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-3.0.1.tgz", "integrity": "sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==", "dev": true, "engines": { "node": ">=10.0.0" } }, "node_modules/run-con": { "version": "1.2.12", "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz", "integrity": "sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==", "dev": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~3.0.0", "minimist": "^1.2.8", "strip-json-comments": "~3.1.1" }, "bin": { "run-con": "cli.js" } }, "node_modules/run-con/node_modules/ini": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", "dev": true, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ], "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-array-concat": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, "engines": { "node": ">=0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/safe-regex-test": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "node_modules/sass": { "version": "1.75.0", "resolved": "https://registry.npmjs.org/sass/-/sass-1.75.0.tgz", "integrity": "sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { "sass": "sass.js" }, "engines": { "node": ">=14.0.0" } }, "node_modules/sass-loader": { "version": "12.6.0", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", "dev": true, "dependencies": { "klona": "^2.0.4", "neo-async": "^2.6.2" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "fibers": ">= 3.1.0", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" }, "peerDependenciesMeta": { "fibers": { "optional": true }, "node-sass": { "optional": true }, "sass": { "optional": true }, "sass-embedded": { "optional": true } } }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, "dependencies": { "xmlchars": "^2.2.0" }, "engines": { "node": ">=v12.22.7" } }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dev": true, "peer": true, "dependencies": { "loose-envify": "^1.1.0" } }, "node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" }, "engines": { "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true }, "node_modules/selfsigned": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" }, "engines": { "node": ">=10" } }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/send/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/send/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "bin": { "mime": "cli.js" }, "engines": { "node": ">=4" } }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "node_modules/sentence-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", "upper-case-first": "^2.0.2" } }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", "http-errors": "~1.6.2", "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/serve-index/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/serve-index/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/serve-index/node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", "statuses": ">= 1.4.0 < 2" }, "engines": { "node": ">= 0.6" } }, "node_modules/serve-index/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, "node_modules/shallow-clone": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", "integrity": "sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==", "dev": true, "dependencies": { "is-extendable": "^0.1.1", "kind-of": "^2.0.1", "lazy-cache": "^0.2.3", "mixin-object": "^2.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/shallow-clone/node_modules/kind-of": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", "integrity": "sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==", "dev": true, "dependencies": { "is-buffer": "^1.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/shallow-clone/node_modules/lazy-cache": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", "integrity": "sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, "dependencies": { "shebang-regex": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/shell-quote": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/sirv": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", "dev": true, "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" }, "engines": { "node": ">= 10" } }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" } }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dev": true, "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, "node_modules/socks": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, "node_modules/socks-proxy-agent": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", "dev": true, "dependencies": { "agent-base": "^7.1.1", "debug": "^4.3.4", "socks": "^2.7.1" }, "engines": { "node": ">= 14" } }, "node_modules/socks-proxy-agent/node_modules/agent-base": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "dependencies": { "debug": "^4.3.4" }, "engines": { "node": ">= 14" } }, "node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-loader": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", "dev": true, "dependencies": { "abab": "^2.0.5", "iconv-lite": "^0.6.3", "source-map-js": "^1.0.1" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.0.0" } }, "node_modules/source-map-support": { "version": "0.5.13", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/spawnd": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-9.0.2.tgz", "integrity": "sha512-nl8DVHEDQ57IcKakzpjanspVChkMpGLuVwMR/eOn9cXE55Qr6luD2Kn06sA0ootRMdgrU4tInN6lA6ohTNvysw==", "dev": true, "dependencies": { "signal-exit": "^4.1.0", "tree-kill": "^1.2.2" }, "engines": { "node": ">=16" } }, "node_modules/spawnd/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-correct/node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-exceptions": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, "node_modules/spdx-expression-parse": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "dev": true, "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { "version": "3.0.17", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", "dev": true }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/spdy-transport": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", "hpack.js": "^2.1.6", "obuf": "^1.1.2", "readable-stream": "^3.0.6", "wbuf": "^1.7.3" } }, "node_modules/speedline-core": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz", "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==", "dev": true, "dependencies": { "@types/node": "*", "image-ssim": "^0.2.0", "jpeg-js": "^0.4.1" }, "engines": { "node": ">=8.0" } }, "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "dev": true }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "dependencies": { "escape-string-regexp": "^2.0.0" }, "engines": { "node": ">=10" } }, "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/stackframe": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", "dev": true }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/streamx": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", "dev": true, "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" }, "optionalDependencies": { "bare-events": "^2.2.0" } }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" } }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/string.prototype.matchall": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-symbols": "^1.0.3", "internal-slot": "^1.0.7", "regexp.prototype.flags": "^1.5.2", "set-function-name": "^2.0.2", "side-channel": "^1.0.6" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.0", "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimend": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, "dependencies": { "min-indent": "^1.0.0" }, "engines": { "node": ">=8" } }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strip-outer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/strip-outer/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", "dev": true }, "node_modules/stylehacks": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", "dev": true, "dependencies": { "browserslist": "^4.23.0", "postcss-selector-parser": "^6.0.16" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.4.31" } }, "node_modules/stylelint": { "version": "14.16.1", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz", "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==", "dev": true, "dependencies": { "@csstools/selector-specificity": "^2.0.2", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^7.1.0", "css-functions-list": "^3.1.0", "debug": "^4.3.4", "fast-glob": "^3.2.12", "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^6.0.1", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.2.0", "ignore": "^5.2.1", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", "known-css-properties": "^0.26.0", "mathml-tag-names": "^2.1.3", "meow": "^9.0.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", "postcss": "^8.4.19", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "style-search": "^0.1.0", "supports-hyperlinks": "^2.3.0", "svg-tags": "^1.0.0", "table": "^6.8.1", "v8-compile-cache": "^2.3.0", "write-file-atomic": "^4.0.2" }, "bin": { "stylelint": "bin/stylelint.js" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/stylelint" } }, "node_modules/stylelint-config-recommended": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz", "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==", "dev": true, "peerDependencies": { "stylelint": "^14.0.0" } }, "node_modules/stylelint-config-recommended-scss": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-5.0.2.tgz", "integrity": "sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==", "dev": true, "dependencies": { "postcss-scss": "^4.0.2", "stylelint-config-recommended": "^6.0.0", "stylelint-scss": "^4.0.0" }, "peerDependencies": { "stylelint": "^14.0.0" } }, "node_modules/stylelint-scss": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", "dev": true, "dependencies": { "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "stylelint": "^14.5.1 || ^15.0.0" } }, "node_modules/stylelint/node_modules/balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true }, "node_modules/stylelint/node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" }, "engines": { "node": ">=10" } }, "node_modules/stylelint/node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "dependencies": { "global-prefix": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/stylelint/node_modules/global-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", "which": "^1.3.1" }, "engines": { "node": ">=6" } }, "node_modules/stylelint/node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/stylelint/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/supports-hyperlinks": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "dev": true, "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/svg-parser": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", "dev": true }, "node_modules/svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "dev": true }, "node_modules/svgo": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", "dev": true, "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^5.1.0", "css-tree": "^2.3.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.0.0" }, "bin": { "svgo": "bin/svgo" }, "engines": { "node": ">=14.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/svgo" } }, "node_modules/svgo/node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, "engines": { "node": ">= 10" } }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, "node_modules/synckit": { "version": "0.8.8", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", "dev": true, "dependencies": { "@pkgr/core": "^0.1.0", "tslib": "^2.6.2" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/unts" } }, "node_modules/table": { "version": "6.8.2", "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=10.0.0" } }, "node_modules/table/node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/table/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/tannin": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/tannin/-/tannin-1.2.0.tgz", "integrity": "sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA==", "dev": true, "dependencies": { "@tannin/plural-forms": "^1.1.0" } }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" } }, "node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" }, "engines": { "node": ">=6" } }, "node_modules/terser": { "version": "5.30.4", "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.4.tgz", "integrity": "sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" }, "engines": { "node": ">=10" } }, "node_modules/terser-webpack-plugin": { "version": "5.3.10", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", "terser": "^5.26.0" }, "engines": { "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.1.0" }, "peerDependenciesMeta": { "@swc/core": { "optional": true }, "esbuild": { "optional": true }, "uglify-js": { "optional": true } } }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, "engines": { "node": ">= 10.13.0" } }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "node_modules/terser/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/terser/node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" }, "engines": { "node": ">=8" } }, "node_modules/test-exclude/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/test-exclude/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/third-party-web": { "version": "0.23.4", "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.23.4.tgz", "integrity": "sha512-kwYnSZRhEvv0SBW2fp8SBBKRglMoBjV8xz6C31m0ewqOtknB5UL+Ihg+M81hyFY5ldkZuGWPb+e4GVDkzf/gYg==", "dev": true }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { "is-number": "^7.0.0" }, "engines": { "node": ">=8.0" } }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, "engines": { "node": ">=0.6" } }, "node_modules/totalist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/tough-cookie": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", "universalify": "^0.2.0", "url-parse": "^1.5.3" }, "engines": { "node": ">=6" } }, "node_modules/tr46": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, "dependencies": { "punycode": "^2.1.1" }, "engines": { "node": ">=12" } }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, "bin": { "tree-kill": "cli.js" } }, "node_modules/trim-newlines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/trim-repeated": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/trim-repeated/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/ts-api-utils": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, "engines": { "node": ">=16" }, "peerDependencies": { "typescript": ">=4.2.0" } }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/tsutils": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "dependencies": { "tslib": "^1.8.1" }, "engines": { "node": ">= 6" }, "peerDependencies": { "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { "prelude-ls": "^1.2.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" }, "engines": { "node": ">= 0.6" } }, "node_modules/typed-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/typed-array-byte-offset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/typed-array-length": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typescript": { "version": "5.4.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { "node": ">=14.17" } }, "node_modules/uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", "dev": true }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, "dependencies": { "buffer": "^5.2.1", "through": "^2.3.8" } }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/unicode-match-property-value-ecmascript": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "dependencies": { "crypto-random-string": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/universalify": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, "engines": { "node": ">= 4.0.0" } }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/browserslist" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" }, "bin": { "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" } }, "node_modules/upper-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", "dev": true, "dependencies": { "tslib": "^2.0.3" } }, "node_modules/upper-case-first": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", "dev": true, "dependencies": { "tslib": "^2.0.3" } }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "dependencies": { "punycode": "^2.1.0" } }, "node_modules/url-loader": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", "dev": true, "dependencies": { "loader-utils": "^2.0.0", "mime-types": "^2.1.27", "schema-utils": "^3.0.0" }, "engines": { "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "file-loader": "*", "webpack": "^4.0.0 || ^5.0.0" }, "peerDependenciesMeta": { "file-loader": { "optional": true } } }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", "dev": true }, "node_modules/v8-to-istanbul": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" } }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/validate-npm-package-name": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", "dev": true, "dependencies": { "builtins": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "dev": true, "dependencies": { "xml-name-validator": "^4.0.0" }, "engines": { "node": ">=14" } }, "node_modules/wait-on": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", "dev": true, "dependencies": { "axios": "^1.6.1", "joi": "^17.11.0", "lodash": "^4.17.21", "minimist": "^1.2.8", "rxjs": "^7.8.1" }, "bin": { "wait-on": "bin/wait-on" }, "engines": { "node": ">=12.0.0" } }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "dependencies": { "makeerror": "1.0.12" } }, "node_modules/watchpack": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" }, "engines": { "node": ">=10.13.0" } }, "node_modules/wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "dependencies": { "minimalistic-assert": "^1.0.0" } }, "node_modules/web-vitals": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz", "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==", "dev": true }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/webpack": { "version": "5.91.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", "acorn-import-assertions": "^1.9.0", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.16.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.2.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.10", "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { "webpack": "bin/webpack.js" }, "engines": { "node": ">=10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependenciesMeta": { "webpack-cli": { "optional": true } } }, "node_modules/webpack-bundle-analyzer": { "version": "4.10.2", "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", "acorn-walk": "^8.0.0", "commander": "^7.2.0", "debounce": "^1.2.1", "escape-string-regexp": "^4.0.0", "gzip-size": "^6.0.0", "html-escaper": "^2.0.2", "opener": "^1.5.2", "picocolors": "^1.0.0", "sirv": "^2.0.3", "ws": "^7.3.1" }, "bin": { "webpack-bundle-analyzer": "lib/bin/analyzer.js" }, "engines": { "node": ">= 10.13.0" } }, "node_modules/webpack-bundle-analyzer/node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, "engines": { "node": ">= 10" } }, "node_modules/webpack-bundle-analyzer/node_modules/ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, "engines": { "node": ">=8.3.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/webpack-cli": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^2.1.1", "@webpack-cli/info": "^2.0.2", "@webpack-cli/serve": "^2.0.5", "colorette": "^2.0.14", "commander": "^10.0.1", "cross-spawn": "^7.0.3", "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", "interpret": "^3.1.1", "rechoir": "^0.8.0", "webpack-merge": "^5.7.3" }, "bin": { "webpack-cli": "bin/cli.js" }, "engines": { "node": ">=14.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "5.x.x" }, "peerDependenciesMeta": { "@webpack-cli/generators": { "optional": true }, "webpack-bundle-analyzer": { "optional": true }, "webpack-dev-server": { "optional": true } } }, "node_modules/webpack-cli/node_modules/commander": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, "engines": { "node": ">=14" } }, "node_modules/webpack-cli/node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/webpack-cli/node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/webpack-cli/node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/webpack-cli/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/webpack-dev-middleware": { "version": "5.3.4", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^4.0.0 || ^5.0.0" } }, "node_modules/webpack-dev-middleware/node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/webpack-dev-middleware/node_modules/schema-utils": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/webpack-dev-server": { "version": "4.15.2", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", "@types/ws": "^8.5.5", "ansi-html-community": "^0.0.8", "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", "express": "^4.17.3", "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", "launch-editor": "^2.6.0", "open": "^8.0.9", "p-retry": "^4.5.0", "rimraf": "^3.0.2", "schema-utils": "^4.0.0", "selfsigned": "^2.1.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.4", "ws": "^8.13.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^4.37.0 || ^5.0.0" }, "peerDependenciesMeta": { "webpack": { "optional": true }, "webpack-cli": { "optional": true } } }, "node_modules/webpack-dev-server/node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/webpack-dev-server/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/webpack-dev-server/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/webpack-dev-server/node_modules/schema-utils": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/webpack-merge": { "version": "5.10.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", "wildcard": "^2.0.0" }, "engines": { "node": ">=10.0.0" } }, "node_modules/webpack-merge/node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", "shallow-clone": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/webpack-merge/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/webpack-merge/node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "dependencies": { "kind-of": "^6.0.2" }, "engines": { "node": ">=8" } }, "node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, "engines": { "node": ">=10.13.0" } }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" }, "engines": { "node": ">=0.8.0" } }, "node_modules/websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, "dependencies": { "iconv-lite": "0.6.3" }, "engines": { "node": ">=12" } }, "node_modules/whatwg-mimetype": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/whatwg-url": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" }, "engines": { "node": ">=12" } }, "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "which": "bin/which" } }, "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-builtin-type": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", "dev": true, "dependencies": { "function.prototype.name": "^1.1.5", "has-tostringtag": "^1.0.0", "is-async-function": "^2.0.0", "is-date-object": "^1.0.5", "is-finalizationregistry": "^1.0.2", "is-generator-function": "^1.0.10", "is-regex": "^1.1.4", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.0.2", "which-collection": "^1.0.1", "which-typed-array": "^1.1.9" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-collection": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/write-file-atomic": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/ws": { "version": "8.17.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" } }, "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } } } } breadcrumbs/package.json 0000644 00000000643 15103634703 0011330 0 ustar 00 { "name": "breadcrumbs", "version": "0.1.0", "description": "Adds HTML breadcrumbs on the page", "author": "SiteSEO", "license": "GPL-2.0", "main": "build/index.js", "scripts": { "build": "wp-scripts build", "format": "wp-scripts format", "lint:css": "wp-scripts lint-style", "lint:js": "wp-scripts lint-js", "start": "wp-scripts start" }, "devDependencies": { "@wordpress/scripts": "^27.7.0" } } breadcrumbs/build/block.json 0000644 00000001170 15103634703 0012122 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "siteseo/breadcrumbs", "version": "1.0.0", "title": "Breadcrumbs", "category": "widgets", "description": "Breadcrumbs help you track you location on the website.", "supports": { "html": false, "align": true, "spacing": { "padding": true, "margin": true }, "multiple": false, "typography": { "fontSize": true, "lineHeight": true }, "color": { "link": true } }, "textdomain": "siteseo", "editorScript": "file:./index.js", "editorStyle": "file:./style-index.css" } breadcrumbs/build/index.js 0000644 00000005370 15103634703 0011610 0 ustar 00 (()=>{"use strict";var e,t={95:()=>{const e=window.React,t=window.wp.blocks,r=window.wp.i18n,l=window.wp.blockEditor,i=window.wp.data,s=window.wp.components,a=JSON.parse('{"UU":"siteseo/breadcrumbs"}');(0,t.registerBlockType)(a.UU,{edit:function({attributes:t}){let[a]=(0,i.useSelect)((e=>[e("core/editor").getEditedPostAttribute("title")||(0,r.__)("Example title","siteseo")]),[]),n=[];return t.prefix&&n.push({title:t.prefix,url:!1}),t.hideHome||n.push({title:t.homeLabel?t.homeLabel:(0,r.__)("Home"),url:!0}),n.push({title:a,url:!1}),(0,e.createElement)(e.Fragment,null,(0,e.createElement)(s.Notice,{status:"warning",isDismissible:!1,politeness:"polite"},(0,e.createElement)("p",null,(0,r.__)("This is just a preview, to see the final result, please view this page as a normal user","siteseo"))),(0,e.createElement)("div",{...(0,l.useBlockProps)()},(0,e.createElement)("ul",{className:"siteseo-breadcrumbs"},n.map(((r,l)=>(0,e.createElement)(e.Fragment,null,(0,e.createElement)("li",{key:r.url},r.url?(0,e.createElement)("a",{href:"#",title:r.title},r.title):r.title),(0,e.createElement)("div",{className:"siteseo-breadcrumbs-seperator"},(0,e.createElement)("span",null,n.length-1!=l?t.seperator:""))))))))},icon:function(){return(0,e.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"664.82",height:"495.38",viewBox:"0 0 43.214 32.2"},(0,e.createElement)("path",{d:"M1 32.1c-.6 0-1-.4-1-1V1c0-.6.4-1 1-1h8.1c.4 0 .9.2 1.2.5l11.6 14.6c.4.5.4 1.3 0 1.9L10.2 31.6c-.3.4-.8.6-1.3.6zM42.914 15.071l-11.7-14.5c-.5-.6-1.4-.8-2.1-.2l-2.3 1.9c-.7.5-.8 1.5-.2 2.1l9.5 11.7-9.5 11.8c-.5.6-.4 1.6.2 2.1l2.3 1.9c.7.5 1.5.4 2.1-.2l11.7-14.6c.4-.8.4-1.5 0-2z"}),(0,e.createElement)("path",{d:"m32.407 15.071-11.7-14.5c-.5-.6-1.4-.8-2.1-.2l-2.3 1.9c-.7.5-.8 1.5-.2 2.1l9.5 11.7-9.5 11.8c-.5.6-.4 1.6.2 2.1l2.3 1.9c.7.5 1.5.4 2.1-.2l11.7-14.6c.4-.8.4-1.5 0-2z"}))}})}},r={};function l(e){var i=r[e];if(void 0!==i)return i.exports;var s=r[e]={exports:{}};return t[e](s,s.exports,l),s.exports}l.m=t,e=[],l.O=(t,r,i,s)=>{if(!r){var a=1/0;for(u=0;u<e.length;u++){for(var[r,i,s]=e[u],n=!0,o=0;o<r.length;o++)(!1&s||a>=s)&&Object.keys(l.O).every((e=>l.O[e](r[o])))?r.splice(o--,1):(n=!1,s<a&&(a=s));if(n){e.splice(u--,1);var c=i();void 0!==c&&(t=c)}}return t}s=s||0;for(var u=e.length;u>0&&e[u-1][2]>s;u--)e[u]=e[u-1];e[u]=[r,i,s]},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={57:0,350:0};l.O.j=t=>0===e[t];var t=(t,r)=>{var i,s,[a,n,o]=r,c=0;if(a.some((t=>0!==e[t]))){for(i in n)l.o(n,i)&&(l.m[i]=n[i]);if(o)var u=o(l)}for(t&&t(r);c<a.length;c++)s=a[c],l.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return l.O(u)},r=globalThis.webpackChunkbreadcrumbs=globalThis.webpackChunkbreadcrumbs||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var i=l.O(void 0,[350],(()=>l(95)));i=l.O(i)})(); breadcrumbs/build/style-index.css 0000644 00000000201 15103634703 0013106 0 ustar 00 .siteseo-breadcrumbs{display:flex;list-style-type:none;margin:0;padding:0}.siteseo-breadcrumbs-seperator{margin:0 5px;padding:0} breadcrumbs/build/index.asset.php 0000644 00000000242 15103634703 0013072 0 ustar 00 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-i18n'), 'version' => '8b21d09f0f5425c2e70d'); metabox.js 0000644 00000001403 15103634703 0006541 0 ustar 00 jQuery(document).ready(function() { jQuery('#speedycache-generate-specific-cache').on('click', function(){ let ccss_disabled = jQuery('#speedycache-disable-critical-css:checked'); if(ccss_disabled.length){ alert('Critical CSS is disabled for this post'); return; } jQuery.ajax({ 'method': 'POST', 'url': speedycache_metabox.url, 'data': { 'post_id': speedycache_metabox.post_id, 'security': speedycache_metabox.nonce, 'action': 'speedycache_generate_single_ccss', }, success: function(res){ if(!res.success){ alert(res.data.message ? res.data.message : 'Something went wrong ! Unable to intitiate Critical CSS!'); return; } alert(res.data.message); } }); }); }); block.js 0000644 00000002724 15103634703 0006203 0 ustar 00 (function (blocks, element, editor) { const el = element.createElement; const { InspectorControls } = editor; const { PanelBody, ToggleControl } = wp.components; blocks.registerBlockType('siteseo-pro/local-business', { title: 'Local Business', icon: 'store', category: 'siteseo', attributes: { displayOnHomepage: { type: 'boolean', default: true } }, edit: function (props) { return [ el('div', { className: props.className }, el('div', { className: 'local-business-preview' }, el('h3', null, 'Local Business'), el('div', { dangerouslySetInnerHTML: { __html: siteseoProLocalBusiness.previewData } }) ) ), el(InspectorControls, null, el(PanelBody, { title: 'Settings' }, el(ToggleControl, { label: 'Display on Homepage Only', checked: props.attributes.displayOnHomepage, onChange: (newVal) => props.setAttributes({ displayOnHomepage: newVal }) }) ) ) ]; }, save: function () { return null; // Use dynamic rendering } }); })(window.wp.blocks, window.wp.element, window.wp.blockEditor); custom-fields-priority.js 0000644 00000001546 15103704124 0011542 0 ustar 00 /** * custom-fields-priority.js * * Provide more preferences to Astra meta setting so wordpress custom field not causing any kind of conflicts. * * @package Astra */ function removeMetaBoxSection() { document.getElementById("the-list").remove(); } function buttonClickEvent() { [...document.querySelectorAll('.editor-post-publish-button')].forEach(element => element.addEventListener('click', function (event) { removeMetaBoxSection(); })); [...document.querySelectorAll('.editor-post-publish-panel__toggle')].forEach(element => element.addEventListener('click', function (event) { removeMetaBoxSection(); })); } function DOMContentLoaded() { const elementMetaBox = document.getElementById("the-list"); if (elementMetaBox != null) { setTimeout(buttonClickEvent, 2000); } } document.addEventListener('DOMContentLoaded', DOMContentLoaded, false); customizer-preview.js 0000644 00000103242 15103704124 0010764 0 ustar 00 /** * HTML Component CSS. * * @param string builder_type Builder Type. * @param string html_count HTML Count. * */ function astra_builder_html_css( builder_type = 'header', html_count ) { for ( var index = 1; index <= html_count; index++ ) { let selector = ( 'header' === builder_type ) ? '.ast-header-html-' + index : '.footer-widget-area[data-section="section-fb-html-' + index + '"]'; let section = ( 'header' === builder_type ) ? 'section-hb-html-' + index : 'section-fb-html-' + index; var tablet_break_point = astraBuilderPreview.tablet_break_point || 768, mobile_break_point = astraBuilderPreview.mobile_break_point || 544; // HTML color. astra_color_responsive_css( builder_type + '-html-' + index + '-color', 'astra-settings[' + builder_type + '-html-' + index + 'color]', 'color', selector + ' .ast-builder-html-element' ); // Link color. astra_color_responsive_css( builder_type + '-html-' + index + '-l-color', 'astra-settings[' + builder_type + '-html-' + index + 'link-color]', 'color', selector + ' .ast-builder-html-element a' ); // Link Hover color. astra_color_responsive_css( builder_type + '-html-' + index + '-l-h-color', 'astra-settings[' + builder_type + '-html-' + index + 'link-h-color]', 'color', selector + ' .ast-builder-html-element a:hover' ); // Advanced Visibility CSS Generation. astra_builder_visibility_css( section, selector, 'block' ); // Margin. wp.customize( 'astra-settings[' + section + '-margin]', function( value ) { value.bind( function( margin ) { if( margin.desktop.bottom != '' || margin.desktop.top != '' || margin.desktop.left != '' || margin.desktop.right != '' || margin.tablet.bottom != '' || margin.tablet.top != '' || margin.tablet.left != '' || margin.tablet.right != '' || margin.mobile.bottom != '' || margin.mobile.top != '' || margin.mobile.left != '' || margin.mobile.right != '' ) { var dynamicStyle = ''; dynamicStyle += selector + ' {'; dynamicStyle += 'margin-left: ' + margin['desktop']['left'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-right: ' + margin['desktop']['right'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-top: ' + margin['desktop']['top'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-bottom: ' + margin['desktop']['bottom'] + margin['desktop-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) {'; dynamicStyle += selector + ' {'; dynamicStyle += 'margin-left: ' + margin['tablet']['left'] + margin['tablet-unit'] + ';'; dynamicStyle += 'margin-right: ' + margin['tablet']['right'] + margin['tablet-unit'] + ';'; dynamicStyle += 'margin-top: ' + margin['tablet']['top'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-bottom: ' + margin['tablet']['bottom'] + margin['desktop-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {'; dynamicStyle += selector + ' {'; dynamicStyle += 'margin-left: ' + margin['mobile']['left'] + margin['mobile-unit'] + ';'; dynamicStyle += 'margin-right: ' + margin['mobile']['right'] + margin['mobile-unit'] + ';'; dynamicStyle += 'margin-top: ' + margin['mobile']['top'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-bottom: ' + margin['mobile']['bottom'] + margin['desktop-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; astra_add_dynamic_css( section + '-margin-toggle-button', dynamicStyle ); } } ); } ); // Typography CSS Generation. astra_responsive_font_size( 'astra-settings[font-size-' + section + ']', selector + ' .ast-builder-html-element' ); } } /** * Button Component CSS. * * @param string builder_type Builder Type. * @param string button_count Button Count. * */ function astra_builder_button_css( builder_type = 'header', button_count ) { var tablet_break_point = astraBuilderPreview.tablet_break_point || 768, mobile_break_point = astraBuilderPreview.mobile_break_point || 544; for ( var index = 1; index <= button_count; index++ ) { var section = ( 'header' === builder_type ) ? 'section-hb-button-' + index : 'section-fb-button-' + index; var context = ( 'header' === builder_type ) ? 'hb' : 'fb'; var prefix = 'button' + index; var selector = '.ast-' + builder_type + '-button-' + index + ' .ast-builder-button-wrap'; var button_selector = '.ast-' + builder_type + '-button-' + index + '[data-section*="section-' + context + '-button-"] .ast-builder-button-wrap'; astra_css( 'flex', 'display', '.ast-' + builder_type + '-button-' + index + '[data-section="' + section + '"]' ); // Button Text Color. astra_color_responsive_css( context + '-button-color', 'astra-settings[' + builder_type + '-' + prefix + '-text-color]', 'color', selector + ' .ast-custom-button' ); astra_color_responsive_css( context + '-button-color-h', 'astra-settings[' + builder_type + '-' + prefix + '-text-h-color]', 'color', selector + ':hover .ast-custom-button' ); // Button Background Color. astra_color_responsive_css( context + '-button-bg-color', 'astra-settings[' + builder_type + '-' + prefix + '-back-color]', 'background-color', selector + ' .ast-custom-button' ); astra_color_responsive_css( context + '-button-bg-color-h', 'astra-settings[' + builder_type + '-' + prefix + '-back-h-color]', 'background-color', selector + ':hover .ast-custom-button' ); // Button Typography. astra_responsive_font_size( 'astra-settings[' + builder_type + '-' + prefix + '-font-size]', button_selector + ' .ast-custom-button' ); astra_generate_outside_font_family_css( 'astra-settings[' + builder_type + '-' + prefix + '-font-family]', button_selector + ' .ast-custom-button' ); astra_generate_font_weight_css( 'astra-settings[' + builder_type + '-' + prefix + '-font-family]', 'astra-settings[' + builder_type + '-' + prefix + '-font-weight]', 'font-weight', button_selector + ' .ast-custom-button' ); astra_font_extras_css( builder_type + '-' + prefix + '-font-extras', button_selector + ' .ast-custom-button' ); // Border Color. astra_color_responsive_css( context + '-button-border-color', 'astra-settings[' + builder_type + '-' + prefix + '-border-color]', 'border-color', selector + ' .ast-custom-button' ); astra_color_responsive_css( context + '-button-border-color-h', 'astra-settings[' + builder_type + '-' + prefix + '-border-h-color]', 'border-color', selector + ' .ast-custom-button:hover' ); // Advanced CSS Generation. astra_builder_advanced_css( section, button_selector + ' .ast-custom-button' ); // Advanced Visibility CSS Generation. astra_builder_visibility_css( section, selector, 'block' ); (function (index) { // Builder Type Border Radius Fields wp.customize('astra-settings[' + builder_type + '-button' + index + '-border-radius-fields]', function (setting) { setting.bind(function (border) { let globalSelector = '.ast-' + builder_type + '-button-'+ index +' .ast-custom-button'; let dynamicStyle = globalSelector + '{ border-top-left-radius :' + border['desktop']['top'] + border['desktop-unit'] + '; border-bottom-right-radius :' + border['desktop']['bottom'] + border['desktop-unit'] + '; border-bottom-left-radius :' + border['desktop']['left'] + border['desktop-unit'] + '; border-top-right-radius :' + border['desktop']['right'] + border['desktop-unit'] + '; } '; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) { ' + globalSelector + '{ border-top-left-radius :' + border['tablet']['top'] + border['tablet-unit'] + '; border-bottom-right-radius :' + border['tablet']['bottom'] + border['tablet-unit'] + '; border-bottom-left-radius :' + border['tablet']['left'] + border['tablet-unit'] + '; border-top-right-radius :' + border['tablet']['right'] + border['tablet-unit'] + '; } } '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) { ' + globalSelector + '{ border-top-left-radius :' + border['mobile']['top'] + border['mobile-unit'] + '; border-bottom-right-radius :' + border['mobile']['bottom'] + border['mobile-unit'] + '; border-bottom-left-radius :' + border['mobile']['left'] + border['mobile-unit'] + '; border-top-right-radius :' + border['mobile']['right'] + border['mobile-unit'] + '; } } '; astra_add_dynamic_css( 'astra-settings[' + builder_type + '-button' + index + '-border-radius-fields]', dynamicStyle); }); }); wp.customize( 'astra-settings[' + builder_type + '-button'+ index +'-border-size]', function( setting ) { setting.bind( function( border ) { var dynamicStyle = '.ast-' + builder_type + '-button-'+ index +' .ast-custom-button {'; dynamicStyle += 'border-top-width:' + border.top + 'px;'; dynamicStyle += 'border-right-width:' + border.right + 'px;'; dynamicStyle += 'border-left-width:' + border.left + 'px;'; dynamicStyle += 'border-bottom-width:' + border.bottom + 'px;'; dynamicStyle += '} '; astra_add_dynamic_css( 'astra-settings[' + builder_type + '-button'+ index +'-border-size]', dynamicStyle ); } ); } ); if( 'footer' == builder_type ) { wp.customize( 'astra-settings[footer-button-'+ index +'-alignment]', function( value ) { value.bind( function( alignment ) { if( alignment.desktop != '' || alignment.tablet != '' || alignment.mobile != '' ) { var dynamicStyle = ''; dynamicStyle += '.ast-footer-button-'+ index +'[data-section="section-fb-button-'+ index +'"] {'; dynamicStyle += 'justify-content: ' + alignment['desktop'] + ';'; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) {'; dynamicStyle += '.ast-footer-button-'+ index +'[data-section="section-fb-button-'+ index +'"] {'; dynamicStyle += 'justify-content: ' + alignment['tablet'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {'; dynamicStyle += '.ast-footer-button-'+ index +'[data-section="section-fb-button-'+ index +'"] {'; dynamicStyle += 'justify-content: ' + alignment['mobile'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; astra_add_dynamic_css( 'footer-button-'+ index +'-alignment', dynamicStyle ); } } ); } ); } })(index); } } /** * Social Component CSS. * * @param string builder_type Builder Type. * @param string section Section. * */ function astra_builder_social_css( builder_type = 'header', social_count ) { var tablet_break_point = astraBuilderPreview.tablet_break_point || 768, mobile_break_point = astraBuilderPreview.mobile_break_point || 544; for ( var index = 1; index <= social_count; index++ ) { let selector = '.ast-' + builder_type + '-social-' + index + '-wrap'; let section = ( 'header' === builder_type ) ? 'section-hb-social-icons-' + index : 'section-fb-social-icons-' + index; var context = ( 'header' === builder_type ) ? 'hb' : 'fb'; var visibility_selector = '.ast-builder-layout-element[data-section="' + section + '"]'; // Icon Color. astra_color_responsive_css( context + '-soc-color', 'astra-settings[' + builder_type + '-social-' + index + '-color]', 'fill', selector + ' .ast-social-color-type-custom .ast-builder-social-element svg' ); astra_color_responsive_css( context + '-soc-label-color', 'astra-settings[' + builder_type + '-social-' + index + '-color]', 'color', selector + ' .ast-social-color-type-custom .ast-builder-social-element .social-item-label' ); astra_color_responsive_css( context + '-soc-color-h', 'astra-settings[' + builder_type + '-social-' + index + '-h-color]', 'color', selector + ' .ast-social-color-type-custom .ast-builder-social-element:hover' ); astra_color_responsive_css( context + '-soc-label-color-h', 'astra-settings[' + builder_type + '-social-' + index + '-h-color]', 'color', selector + ' .ast-social-color-type-custom .ast-builder-social-element:hover .social-item-label' ); astra_color_responsive_css( context + '-soc-svg-color-h', 'astra-settings[' + builder_type + '-social-' + index + '-h-color]', 'fill', selector + ' .ast-social-color-type-custom .ast-builder-social-element:hover svg' ); // Icon Background Color. astra_color_responsive_css( context + '-soc-bg-color', 'astra-settings[' + builder_type + '-social-' + index + '-bg-color]', 'background-color', selector + ' .ast-social-color-type-custom .ast-builder-social-element' ); astra_color_responsive_css( context + '-soc-bg-color-h', 'astra-settings[' + builder_type + '-social-' + index + '-bg-h-color]', 'background-color', selector + ' .ast-social-color-type-custom .ast-builder-social-element:hover' ); // Icon Label Color. astra_color_responsive_css( context + '-soc-label-color', 'astra-settings[' + builder_type + '-social-' + index + '-label-color]', 'color', selector + ' .ast-social-color-type-custom .ast-builder-social-element span.social-item-label' ); astra_color_responsive_css( context + '-soc-label-color-h', 'astra-settings[' + builder_type + '-social-' + index + '-label-h-color]', 'color', selector + ' .ast-social-color-type-custom .ast-builder-social-element:hover span.social-item-label' ); // Icon Background Space. astra_css( 'astra-settings[' + builder_type + '-social-' + index + '-bg-space]', 'padding', selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element', 'px' ); // Icon Brand Color. astra_color_responsive_css( context + '-soc-color', 'astra-settings[' + builder_type + '-social-' + index + '-brand-color]', 'fill', selector + ' .ast-social-color-type-official svg' ); astra_color_responsive_css( context + '-soc-label-color', 'astra-settings[' + builder_type + '-social-' + index + '-brand-color]', 'color', selector + ' .ast-social-color-type-official .social-item-label' ); // Icon Label Brand Color. astra_color_responsive_css( context + '-soc-label-color', 'astra-settings[' + builder_type + '-social-' + index + '-brand-label-color]', 'color', selector + ' .ast-social-color-type-official span.social-item-label' ); // Icon Border Radius Fields wp.customize('astra-settings[' + builder_type + '-social-' + index + '-radius-fields]', function (setting) { setting.bind(function (border) { let globalSelector = selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element'; let dynamicStyle = globalSelector + '{ border-top-left-radius :' + border['desktop']['top'] + border['desktop-unit'] + '; border-bottom-right-radius :' + border['desktop']['bottom'] + border['desktop-unit'] + '; border-bottom-left-radius :' + border['desktop']['left'] + border['desktop-unit'] + '; border-top-right-radius :' + border['desktop']['right'] + border['desktop-unit'] + '; } '; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) { ' + globalSelector + '{ border-top-left-radius :' + border['tablet']['top'] + border['tablet-unit'] + '; border-bottom-right-radius :' + border['tablet']['bottom'] + border['tablet-unit'] + '; border-bottom-left-radius :' + border['tablet']['left'] + border['tablet-unit'] + '; border-top-right-radius :' + border['tablet']['right'] + border['tablet-unit'] + '; } } '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) { ' + globalSelector + '{ border-top-left-radius :' + border['mobile']['top'] + border['mobile-unit'] + '; border-bottom-right-radius :' + border['mobile']['bottom'] + border['mobile-unit'] + '; border-bottom-left-radius :' + border['mobile']['left'] + border['mobile-unit'] + '; border-top-right-radius :' + border['mobile']['right'] + border['mobile-unit'] + '; } } '; astra_add_dynamic_css( builder_type + '-social-' + index + '-radius-fields', dynamicStyle); }); }); // Typography CSS Generation. astra_responsive_font_size( 'astra-settings[font-size-' + section + ']', selector ); // Advanced Visibility CSS Generation. astra_builder_visibility_css( section, visibility_selector, 'block' ); // Icon Spacing. (function( index ) { // Icon Size. wp.customize( 'astra-settings[' + builder_type + '-social-' + index + '-size]', function( value ) { value.bind( function( size ) { if( size.desktop != '' || size.tablet != '' || size.mobile != '' ) { var dynamicStyle = ''; dynamicStyle += selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element svg {'; dynamicStyle += 'height: ' + size.desktop + 'px;'; dynamicStyle += 'width: ' + size.desktop + 'px;'; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) {'; dynamicStyle += selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element svg {'; dynamicStyle += 'height: ' + size.tablet + 'px;'; dynamicStyle += 'width: ' + size.tablet + 'px;'; dynamicStyle += '} '; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {'; dynamicStyle += selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element svg {'; dynamicStyle += 'height: ' + size.mobile + 'px;'; dynamicStyle += 'width: ' + size.mobile + 'px;'; dynamicStyle += '} '; dynamicStyle += '} '; astra_add_dynamic_css( builder_type + '-social-' + index + '-size', dynamicStyle ); } } ); } ); // Icon Space. wp.customize( 'astra-settings[' + builder_type + '-social-' + index + '-space]', function( value ) { value.bind( function( spacing ) { var space = ''; var dynamicStyle = ''; if ( spacing.desktop != '' ) { space = spacing.desktop/2; dynamicStyle += selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element {'; dynamicStyle += 'margin-left: ' + space + 'px;'; dynamicStyle += 'margin-right: ' + space + 'px;'; dynamicStyle += '} '; dynamicStyle += selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element:first-child {'; dynamicStyle += 'margin-left: 0;'; dynamicStyle += '} '; dynamicStyle += selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element:last-child {'; dynamicStyle += 'margin-right: 0;'; dynamicStyle += '} '; } if ( spacing.tablet != '' ) { space = spacing.tablet/2; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) {'; dynamicStyle += selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element {'; dynamicStyle += 'margin-left: ' + space + 'px;'; dynamicStyle += 'margin-right: ' + space + 'px;'; dynamicStyle += '} '; dynamicStyle += selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element:first-child {'; dynamicStyle += 'margin-left: 0;'; dynamicStyle += '} '; dynamicStyle += selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element:last-child {'; dynamicStyle += 'margin-right: 0;'; dynamicStyle += '} '; dynamicStyle += '} '; } if ( spacing.mobile != '' ) { space = spacing.mobile/2; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {'; dynamicStyle += selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element {'; dynamicStyle += 'margin-left: ' + space + 'px;'; dynamicStyle += 'margin-right: ' + space + 'px;'; dynamicStyle += '} '; dynamicStyle += selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element:first-child {'; dynamicStyle += 'margin-left: 0;'; dynamicStyle += '} '; dynamicStyle += selector + ' .' + builder_type + '-social-inner-wrap .ast-builder-social-element:last-child {'; dynamicStyle += 'margin-right: 0;'; dynamicStyle += '} '; dynamicStyle += '} '; } astra_add_dynamic_css( builder_type + '-social-icons-icon-space', dynamicStyle ); } ); } ); // Color Type - Custom/Official wp.customize( 'astra-settings[' + builder_type + '-social-' + index + '-color-type]', function ( value ) { value.bind( function ( newval ) { var side_class = 'ast-social-color-type-' + newval; jQuery('.ast-' + builder_type + '-social-' + index + '-wrap .' + builder_type + '-social-inner-wrap').removeClass( 'ast-social-color-type-custom' ); jQuery('.ast-' + builder_type + '-social-' + index + '-wrap .' + builder_type + '-social-inner-wrap').removeClass( 'ast-social-color-type-official' ); jQuery('.ast-' + builder_type + '-social-' + index + '-wrap .' + builder_type + '-social-inner-wrap').addClass( side_class ); } ); } ); // Margin. wp.customize( 'astra-settings[' + section + '-margin]', function( value ) { value.bind( function( margin ) { if( margin.desktop.bottom != '' || margin.desktop.top != '' || margin.desktop.left != '' || margin.desktop.right != '' || margin.tablet.bottom != '' || margin.tablet.top != '' || margin.tablet.left != '' || margin.tablet.right != '' || margin.mobile.bottom != '' || margin.mobile.top != '' || margin.mobile.left != '' || margin.mobile.right != '' ) { var dynamicStyle = ''; dynamicStyle += selector + ' {'; dynamicStyle += 'margin-left: ' + margin['desktop']['left'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-right: ' + margin['desktop']['right'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-top: ' + margin['desktop']['top'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-bottom: ' + margin['desktop']['bottom'] + margin['desktop-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) {'; dynamicStyle += selector + ' {'; dynamicStyle += 'margin-left: ' + margin['tablet']['left'] + margin['tablet-unit'] + ';'; dynamicStyle += 'margin-right: ' + margin['tablet']['right'] + margin['tablet-unit'] + ';'; dynamicStyle += 'margin-top: ' + margin['tablet']['top'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-bottom: ' + margin['tablet']['bottom'] + margin['desktop-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {'; dynamicStyle += selector + ' {'; dynamicStyle += 'margin-left: ' + margin['mobile']['left'] + margin['mobile-unit'] + ';'; dynamicStyle += 'margin-right: ' + margin['mobile']['right'] + margin['mobile-unit'] + ';'; dynamicStyle += 'margin-top: ' + margin['mobile']['top'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-bottom: ' + margin['mobile']['bottom'] + margin['desktop-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; astra_add_dynamic_css( section + '-margin', dynamicStyle ); } } ); } ); if ( 'footer' === builder_type ) { // Alignment. wp.customize( 'astra-settings[footer-social-' + index + '-alignment]', function( value ) { value.bind( function( alignment ) { if( alignment.desktop != '' || alignment.tablet != '' || alignment.mobile != '' ) { var dynamicStyle = ''; dynamicStyle += '[data-section="section-fb-social-icons-' + index + '"] .footer-social-inner-wrap {'; dynamicStyle += 'text-align: ' + alignment['desktop'] + ';'; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) {'; dynamicStyle += '[data-section="section-fb-social-icons-' + index + '"] .footer-social-inner-wrap {'; dynamicStyle += 'text-align: ' + alignment['tablet'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {'; dynamicStyle += '[data-section="section-fb-social-icons-' + index + '"] .footer-social-inner-wrap {'; dynamicStyle += 'text-align: ' + alignment['mobile'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; astra_add_dynamic_css( 'footer-social-' + index + '-alignment', dynamicStyle ); } } ); } ); } })( index ); } } /** * Widget Component CSS. * * @param string builder_type Builder Type. * @param string section Section. * */ function astra_builder_widget_css( builder_type = 'header' ) { var tablet_break_point = AstraBuilderWidgetData.tablet_break_point || 768, mobile_break_point = AstraBuilderWidgetData.mobile_break_point || 544; let widget_count = 'header' === builder_type ? AstraBuilderWidgetData.header_widget_count: AstraBuilderWidgetData.footer_widget_count; for ( var index = 1; index <= widget_count; index++ ) { var selector = '.' + builder_type + '-widget-area[data-section="sidebar-widgets-' + builder_type + '-widget-' + index + '"]'; var section = AstraBuilderWidgetData.has_block_editor ? 'astra-sidebar-widgets-' + builder_type + '-widget-' + index : 'sidebar-widgets-' + builder_type + '-widget-' + index; // Widget Content Color. astra_color_responsive_css( builder_type + '-widget-' + index + '-color', 'astra-settings[' + builder_type + '-widget-' + index + '-color]', 'color', ( AstraBuilderWidgetData.is_flex_based_css ) ? selector + '.' + builder_type + '-widget-area-inner' : selector + ' .' + builder_type + '-widget-area-inner' ); // Widget Link Color. astra_color_responsive_css( builder_type + '-widget-' + index + '-link-color', 'astra-settings[' + builder_type + '-widget-' + index + '-link-color]', 'color', ( AstraBuilderWidgetData.is_flex_based_css ) ? selector + '.' + builder_type + '-widget-area-inner a' : selector + ' .' + builder_type + '-widget-area-inner a' ); // Widget Link Hover Color. astra_color_responsive_css( builder_type + '-widget-' + index + '-link-h-color', 'astra-settings[' + builder_type + '-widget-' + index + '-link-h-color]', 'color', ( AstraBuilderWidgetData.is_flex_based_css ) ? selector + '.' + builder_type + '-widget-area-inner a:hover' : selector + ' .' + builder_type + '-widget-area-inner a:hover' ); // Widget Title Color. astra_color_responsive_css( builder_type + '-widget-' + index + '-title-color', 'astra-settings[' + builder_type + '-widget-' + index + '-title-color]', 'color', selector + ' .widget-title, ' + selector + ' h1, ' + selector + ' .widget-area h1, ' + selector + ' h2, ' + selector + ' .widget-area h2, ' + selector + ' h3, ' + selector + ' .widget-area h3, ' + selector + ' h4, ' + selector + ' .widget-area h4, ' + selector + ' h5, ' + selector + ' .widget-area h5, ' + selector + ' h6, ' + selector + ' .widget-area h6' ); // Widget Title Typography. astra_responsive_font_size( 'astra-settings[' + builder_type + '-widget-' + index + '-font-size]', selector + ' .widget-title, ' + selector + ' h1, ' + selector + ' .widget-area h1, ' + selector + ' h2, ' + selector + ' .widget-area h2, ' + selector + ' h3, ' + selector + ' .widget-area h3, ' + selector + ' h4, ' + selector + ' .widget-area h4, ' + selector + ' h5, ' + selector + ' .widget-area h5, ' + selector + ' h6, ' + selector + ' .widget-area h6' ); // Widget Content Typography. astra_responsive_font_size( 'astra-settings[' + builder_type + '-widget-' + index + '-content-font-size]', ( AstraBuilderWidgetData.is_flex_based_css ) ? selector + '.' + builder_type + '-widget-area-inner' : selector + ' .' + builder_type + '-widget-area-inner' ); // Advanced Visibility CSS Generation. astra_builder_visibility_css( section, selector, 'block' ); (function (index) { var marginControl = AstraBuilderWidgetData.has_block_editor ? 'astra-sidebar-widgets-' + builder_type + '-widget-' + index + '-margin' : 'sidebar-widgets-' + builder_type + '-widget-' + index + '-margin'; wp.customize( 'astra-settings[' + marginControl + ']', function( value ) { value.bind( function( margin ) { var selector = '.' + builder_type + '-widget-area[data-section="sidebar-widgets-' + builder_type + '-widget-' + index + '"]'; if( margin.desktop.bottom != '' || margin.desktop.top != '' || margin.desktop.left != '' || margin.desktop.right != '' || margin.tablet.bottom != '' || margin.tablet.top != '' || margin.tablet.left != '' || margin.tablet.right != '' || margin.mobile.bottom != '' || margin.mobile.top != '' || margin.mobile.left != '' || margin.mobile.right != '' ) { var dynamicStyle = ''; dynamicStyle += selector + ' {'; dynamicStyle += 'margin-left: ' + margin['desktop']['left'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-right: ' + margin['desktop']['right'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-top: ' + margin['desktop']['top'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-bottom: ' + margin['desktop']['bottom'] + margin['desktop-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) {'; dynamicStyle += selector + ' {'; dynamicStyle += 'margin-left: ' + margin['tablet']['left'] + margin['tablet-unit'] + ';'; dynamicStyle += 'margin-right: ' + margin['tablet']['right'] + margin['tablet-unit'] + ';'; dynamicStyle += 'margin-top: ' + margin['tablet']['top'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-bottom: ' + margin['tablet']['bottom'] + margin['desktop-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {'; dynamicStyle += selector + ' {'; dynamicStyle += 'margin-left: ' + margin['mobile']['left'] + margin['mobile-unit'] + ';'; dynamicStyle += 'margin-right: ' + margin['mobile']['right'] + margin['mobile-unit'] + ';'; dynamicStyle += 'margin-top: ' + margin['mobile']['top'] + margin['desktop-unit'] + ';'; dynamicStyle += 'margin-bottom: ' + margin['mobile']['bottom'] + margin['desktop-unit'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; astra_add_dynamic_css( 'sidebar-widgets-' + builder_type + '-widget-' + index + '-margin', dynamicStyle ); } } ); } ); if ( 'footer' === builder_type ) { wp.customize( 'astra-settings[footer-widget-alignment-' + index + ']', function( value ) { value.bind( function( alignment ) { if( alignment.desktop != '' || alignment.tablet != '' || alignment.mobile != '' ) { var dynamicStyle = ''; if( AstraBuilderWidgetData.is_flex_based_css ){ dynamicStyle += '.footer-widget-area[data-section="sidebar-widgets-footer-widget-' + index + '"].footer-widget-area-inner {'; }else{ dynamicStyle += '.footer-widget-area[data-section="sidebar-widgets-footer-widget-' + index + '"] .footer-widget-area-inner {'; } dynamicStyle += 'text-align: ' + alignment['desktop'] + ';'; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) {'; if( AstraBuilderWidgetData.is_flex_based_css ){ dynamicStyle += '.footer-widget-area[data-section="sidebar-widgets-footer-widget-' + index + '"].footer-widget-area-inner {'; }else{ dynamicStyle += '.footer-widget-area[data-section="sidebar-widgets-footer-widget-' + index + '"] .footer-widget-area-inner {'; } dynamicStyle += 'text-align: ' + alignment['tablet'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {'; if( AstraBuilderWidgetData.is_flex_based_css ){ dynamicStyle += '.footer-widget-area[data-section="sidebar-widgets-footer-widget-' + index + '"].footer-widget-area-inner {'; }else{ dynamicStyle += '.footer-widget-area[data-section="sidebar-widgets-footer-widget-' + index + '"] .footer-widget-area-inner {'; } dynamicStyle += 'text-align: ' + alignment['mobile'] + ';'; dynamicStyle += '} '; dynamicStyle += '} '; astra_add_dynamic_css( 'footer-widget-alignment-' + index, dynamicStyle ); } } ); } ); } })(index); } } /** * Apply Visibility CSS for the element * * @param string section Section ID. * @param string selector Base Selector. * @param string default_property default CSS property. */ function astra_builder_visibility_css( section, selector, default_property = 'flex' ) { var tablet_break_point = astraBuilderPreview.tablet_break_point || 768, mobile_break_point = astraBuilderPreview.mobile_break_point || 544; wp.customize( 'astra-settings[' + section + '-visibility-responsive]', function( setting ) { setting.bind( function( visibility ) { let dynamicStyle = ''; let is_desktop = ( ! visibility['desktop'] ) ? 'none' : default_property ; let is_tablet = ( ! visibility['tablet'] ) ? 'none' : default_property ; let is_mobile = ( ! visibility['mobile'] ) ? 'none' : default_property ; dynamicStyle += selector + ' {'; dynamicStyle += 'display: ' + is_desktop + ';'; dynamicStyle += '} '; dynamicStyle += '@media (min-width: ' + mobile_break_point + 'px) and (max-width: ' + tablet_break_point + 'px) {'; dynamicStyle += '.ast-header-break-point ' + selector + ' {'; dynamicStyle += 'display: ' + is_tablet + ';'; dynamicStyle += '} '; dynamicStyle += '} '; dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {'; dynamicStyle += '.ast-header-break-point ' + selector + ' {'; dynamicStyle += 'display: ' + is_mobile + ';'; dynamicStyle += '} '; dynamicStyle += '} '; astra_add_dynamic_css( section + '-visibility-responsive', dynamicStyle ); } ); } ); } astra-admin-menu-settings.js 0000644 00000011345 15103704124 0012103 0 ustar 00 /** * Install Starter Templates * * * @since 1.2.4 */ (function($){ AstraThemeAdmin = { init: function() { this._bind(); }, /** * Binds events for the Astra Theme. * * @since 1.0.0 * @method _bind */ _bind: function() { $( document ).on('ast-after-plugin-active', AstraThemeAdmin._disableActivcationNotice ); $( document ).on('click' , '.astra-install-recommended-plugin', AstraThemeAdmin._installNow ); $( document ).on('click' , '.astra-activate-recommended-plugin', AstraThemeAdmin._activatePlugin); $( document ).on('wp-plugin-install-success' , AstraThemeAdmin._activatePlugin); $( document ).on('wp-plugin-install-error' , AstraThemeAdmin._installError); $( document ).on('wp-plugin-installing' , AstraThemeAdmin._pluginInstalling); }, /** * Plugin Installation Error. */ _installError: function( event, response ) { var $card = jQuery( '.astra-install-recommended-plugin' ); $card .removeClass( 'button-primary' ) .addClass( 'disabled' ) .html( wp.updates.l10n.installFailedShort ); }, /** * Installing Plugin */ _pluginInstalling: function(event, args) { event.preventDefault(); var slug = args.slug; var $card = jQuery( '.astra-install-recommended-plugin' ); var activatingText = astra.recommendedPluiginActivatingText; $card.each(function( index, element ) { element = jQuery( element ); if ( element.data('slug') === slug ) { element.addClass('updating-message'); element.html( activatingText ); } }); }, /** * Activate Success */ _activatePlugin: function( event, response ) { event.preventDefault(); var $message = jQuery(event.target); var $init = $message.data('init'); var activatedSlug = $init; if (typeof $init === 'undefined') { var $message = jQuery('.astra-install-recommended-plugin[data-slug=' + response.slug + ']'); activatedSlug = response.slug; } // Transform the 'Install' button into an 'Activate' button. $init = $message.data('init'); var activatingText = astra.recommendedPluiginActivatingText; var astraSitesLink = astra.astraSitesLink; var astraPluginRecommendedNonce = astra.astraPluginManagerNonce; $message.removeClass( 'install-now installed button-disabled updated-message' ) .addClass('updating-message') .html( activatingText ); // WordPress adds "Activate" button after waiting for 1000ms. So we will run our activation after that. setTimeout( function() { $.ajax({ url: astra.ajaxUrl, type: 'POST', data: { 'action' : 'astra_recommended_plugin_activate', 'security' : astraPluginRecommendedNonce, 'init' : $init, }, }) .done(function (result) { console.error( result ); if( result.success ) { $message.removeClass( 'astra-activate-recommended-plugin astra-install-recommended-plugin button button-primary install-now activate-now updating-message' ); $message.parent('.ast-addon-link-wrapper').parent('.astra-recommended-plugin').addClass('active'); jQuery(document).trigger( 'ast-after-plugin-active', [astraSitesLink, activatedSlug] ); } else { $message.removeClass( 'updating-message' ); } }); }, 1200 ); }, /** * Install Now */ _installNow: function(event) { event.preventDefault(); var $button = jQuery( event.target ), $document = jQuery(document); if ( $button.hasClass( 'updating-message' ) || $button.hasClass( 'button-disabled' ) ) { return; } if ( wp.updates.shouldRequestFilesystemCredentials && ! wp.updates.ajaxLocked ) { wp.updates.requestFilesystemCredentials( event ); $document.on( 'credential-modal-cancel', function() { var $message = $( '.astra-install-recommended-plugin.updating-message' ); $message .addClass('astra-activate-recommended-plugin') .removeClass( 'updating-message astra-install-recommended-plugin' ) .text( wp.updates.l10n.installNow ); wp.a11y.speak( wp.updates.l10n.updateCancel, 'polite' ); } ); } wp.updates.installPlugin( { slug: $button.data( 'slug' ) }); }, /** * After plugin active redirect and deactivate activation notice */ _disableActivcationNotice: function( event, astraSitesLink, activatedSlug ) { event.preventDefault(); if ( activatedSlug.indexOf( 'astra-sites' ) >= 0 || activatedSlug.indexOf( 'astra-pro-sites' ) >= 0 ) { if ( 'undefined' != typeof AstraNotices ) { AstraNotices._ajax( 'astra-sites-on-active', '' ); } window.location.href = astraSitesLink + '&ast-disable-activation-notice'; } }, }; /** * Initialize AstraThemeAdmin */ $(function(){ AstraThemeAdmin.init(); }); })(jQuery); block-editor-script.js 0000644 00000117156 15103704124 0010772 0 ustar 00 window.addEventListener( 'load', function(e) { astra_onload_function(); }); document.addEventListener('DOMContentLoaded', function () { if ( astraColors?.is_dark_palette ) { document.documentElement.classList.add('astra-dark-mode-enable'); } }); // Function to add block editor dynamic styles. function blockEditorDynamicStyles() { setTimeout(() => { const iframes = document.getElementsByTagName('iframe'); if (!iframes?.length) return; const cloneLinkElement = (id) => { const element = document.getElementById(id); return element ? element.cloneNode(true) : null; } const googleFontsStyle = cloneLinkElement('astra-google-fonts-css'); const appendLinkIfNotExists = (iframeDoc, clonedLink, linkId) => { if (clonedLink && !iframeDoc.getElementById(linkId)) { iframeDoc.head.appendChild(clonedLink); } } for (const iframe of iframes) { try { const iframeDoc = iframe?.contentWindow?.document || iframe?.contentDocument; if (iframeDoc?.head) { appendLinkIfNotExists(iframeDoc, googleFontsStyle, 'astra-google-fonts-css'); } } catch { // Access denied to iframe document. } } }, 1000); } function addTitleVisibility() { let titleVisibility = document.querySelector( '.title-visibility' ), titleBlock = document.querySelector( '.edit-post-visual-editor__post-title-wrapper' ), editorDocument = document, postTitleOption = ( undefined !== wp.data.select( 'core/editor' ) && null !== wp.data.select( 'core/editor' ) && undefined !== wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' ) && wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['site-post-title'] ) ? wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['site-post-title'] : ''; if ( astraColors.ast_wp_version_higher_6_3 ) { let desktopPreview = document.getElementsByClassName('is-desktop-preview'), tabletPreview = document.getElementsByClassName('is-tablet-preview'), mobilePreview = document.getElementsByClassName('is-mobile-preview'), devicePreview = desktopPreview[0]; if ( tabletPreview.length > 0 ) { devicePreview = tabletPreview[0]; } else if ( mobilePreview.length > 0 ) { devicePreview = mobilePreview[0]; } let iframe = undefined !== devicePreview ? devicePreview.getElementsByTagName('iframe')[0] : undefined; if ( iframe && devicePreview.querySelector('iframe') !== null ) { editorDocument = iframe.contentWindow.document || iframe.contentDocument; } // Addressed the WordPress 6.5 issue involving an extraneous iframe layer. if ( ! iframe && astraColors.ast_wp_version_higher_6_4 ) { let _iframe = document.querySelector('.editor-canvas__iframe') || document.querySelector('.block-editor-iframe__scale-container iframe[name="editor-canvas"]'); editorDocument = _iframe ? _iframe.contentWindow.document : editorDocument; if (editorDocument) { titleVisibility = editorDocument.querySelector('.title-visibility'); titleBlock = editorDocument.querySelector('.edit-post-visual-editor__post-title-wrapper'); } } } if( null !== titleBlock && null === titleVisibility ) { let titleVisibilityTrigger = '<span class="ast-title title-visibility" data-tooltip="Disable Title"> <svg xmlns="http://www.w3.org/2000/svg" width="0px" viewBox="0 0 576 512"><path d="M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"></path></svg> </span>'; if ( 'disabled' === postTitleOption ) { titleVisibilityTrigger = '<span class="ast-title title-visibility" data-tooltip="Enable Title"> <svg xmlns="http://www.w3.org/2000/svg" width="0px" viewBox="0 0 640 512"><path d="M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"></path></svg> </span>'; } if ( null === titleVisibility ) { titleBlock.insertAdjacentHTML( 'beforeend', titleVisibilityTrigger ); } let titleVisibilityTriggerElement = editorDocument.querySelector( '.title-visibility' ), titleVisibilityWrapper = editorDocument.querySelector( '.edit-post-visual-editor__post-title-wrapper' ); if (titleVisibilityWrapper) { if ('disabled' === postTitleOption && !titleVisibilityWrapper.classList.contains('invisible')) { titleVisibilityWrapper.classList.add('invisible'); } else { titleVisibilityWrapper.classList.remove('invisible'); } titleVisibilityTriggerElement.addEventListener("click", function() { let metaTitleOptions = postTitleOption || ''; if ( this.parentNode.classList.contains( 'invisible' ) && ( 'disabled' === metaTitleOptions || '' === metaTitleOptions ) ) { this.parentNode.classList.remove( 'invisible' ); this.dataset.tooltip = 'Disable Title'; titleVisibilityTriggerElement.innerHTML = ''; titleVisibilityTriggerElement.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="0px" viewBox="0 0 576 512"><path d="M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"></path></svg>'; wp.data.dispatch( 'core/editor' ).editPost( { meta: { 'site-post-title': '', } } ); } else { this.parentNode.classList.add( 'invisible' ); this.dataset.tooltip = 'Enable Title'; titleVisibilityTriggerElement.innerHTML = ''; titleVisibilityTriggerElement.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="0px" viewBox="0 0 640 512"><path d="M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"></path></svg>'; wp.data.dispatch( 'core/editor' ).editPost( { meta: { 'site-post-title': 'disabled', } } ); } }); } } } function siteLogoImageChange() { let mobileLogoState = astraColors.mobile_logo_state; if (!mobileLogoState) { return; } let mobileLogo = astraColors.mobile_logo; // Added OR condtion to check iframe content from WordPress 6.6 structure. let iframe = document.querySelector('.editor-canvas__iframe') || document.querySelector('.block-editor-iframe__scale-container iframe[name="editor-canvas"]'); if (iframe) { let is_desktop = iframe.contentWindow.document.querySelector( ".is-desktop-preview" ); if (!is_desktop) { let iframeDoc = iframe.contentDocument || iframe.contentWindow.document; let logoElement = iframeDoc.querySelector(".custom-logo"); if (logoElement) { // Updating logo in the editor iframe preview with the mobile logo. logoElement.setAttribute("src", mobileLogo); } } } } function astra_onload_function() { /* Do things after DOM has fully loaded */ var astraMetaBox = document.querySelector( '#astra_settings_meta_box' ); if( astraMetaBox != null ){ var titleCheckbox = document.getElementById('site-post-title'); if( null === titleCheckbox ) { titleCheckbox = document.querySelector('.site-post-title input'); } if( null !== titleCheckbox ) { titleCheckbox.addEventListener('change',function() { var titleBlock = document.querySelector('.editor-post-title__block'); if( null !== titleBlock ) { if( titleCheckbox.checked ){ titleBlock.style.opacity = '0.2'; } else { titleBlock.style.opacity = '1.0'; } } }); } } wp.data.subscribe(function () { setTimeout( function () { // Title visibility with new editor compatibility update. var titleBlock = document.querySelector( '.edit-post-visual-editor__post-title-wrapper' ), editorDocument = document; // Excuting responsive site logo change function. siteLogoImageChange(); // Adding title visibility icon on wp.data.subscribe. addTitleVisibility(); // Block editor dynamic style function. blockEditorDynamicStyles(); if ( astraColors.ast_wp_version_higher_6_3 ) { let desktopPreview = document.getElementsByClassName('is-desktop-preview'), tabletPreview = document.getElementsByClassName('is-tablet-preview'), mobilePreview = document.getElementsByClassName('is-mobile-preview'), devicePreview = desktopPreview[0]; if ( tabletPreview.length > 0 ) { devicePreview = tabletPreview[0]; } else if ( mobilePreview.length > 0 ) { devicePreview = mobilePreview[0]; } let iframe = undefined !== devicePreview ? devicePreview.getElementsByTagName('iframe')[0] : undefined; if ( iframe && devicePreview.querySelector('iframe') !== null ) { editorDocument = iframe.contentWindow.document || iframe.contentDocument; } // Addressed the WordPress 6.5 issue involving an extraneous iframe layer. if ( ! iframe && astraColors.ast_wp_version_higher_6_4 ) { const _iframe = document.querySelector('.editor-canvas__iframe') || document.querySelector('.block-editor-iframe__scale-container iframe[name="editor-canvas"]'); if ( !! _iframe ){ editorDocument = _iframe.contentWindow.document ; } } titleBlock = editorDocument.querySelector( '.edit-post-visual-editor__post-title-wrapper' ); } // Compatibility for updating layout in editor with direct reflection. const contentLayout = ( undefined !== wp.data.select( 'core/editor' ) && null !== wp.data.select( 'core/editor' ) && undefined !== wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' ) && wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['ast-site-content-layout'] ) ? wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['ast-site-content-layout'] : 'default', bodyClass = document.querySelector('body'); editorBodyClass = astraColors.ast_wp_version_higher_6_3 ? editorDocument.querySelector('html') : false; const contentStyle = ( undefined !== wp.data.select( 'core/editor' ) && null !== wp.data.select( 'core/editor' ) && undefined !== wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' ) && wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['site-content-style'] ) ? wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['site-content-style'] : 'default'; const sidebarStyle = ( undefined !== wp.data.select( 'core/editor' ) && null !== wp.data.select( 'core/editor' ) && undefined !== wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' ) && wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['site-sidebar-style'] ) ? wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['site-sidebar-style'] : 'default'; const sidebarLayout = ( undefined !== wp.data.select( 'core/editor' ) && null !== wp.data.select( 'core/editor' ) && undefined !== wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' ) && wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['site-sidebar-layout'] ) ? wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['site-sidebar-layout'] : 'default'; const applyContainerLayoutClasses = (layout) => { switch (layout) { case "plain-container": bodyClass.classList.add("ast-plain-container"); bodyClass.classList.remove( "ast-two-container", "ast-page-builder-template", "ast-separate-container", "ast-narrow-container" ); if ( editorBodyClass ) { editorBodyClass.classList.add("ast-plain-container"); editorBodyClass.classList.remove( "ast-two-container", "ast-page-builder-template", "ast-separate-container", "ast-narrow-container" ); } break; case "content-boxed-container": bodyClass.classList.add("ast-separate-container"); bodyClass.classList.remove( "ast-two-container", "ast-page-builder-template", "ast-plain-container", "ast-narrow-container" ); if ( editorBodyClass ) { editorBodyClass.classList.add("ast-separate-container"); editorBodyClass.classList.remove( "ast-two-container", "ast-page-builder-template", "ast-plain-container", "ast-narrow-container" ); } break; case "boxed-container": bodyClass.classList.add( "ast-separate-container", "ast-two-container" ); bodyClass.classList.remove( "ast-page-builder-template", "ast-plain-container", "ast-narrow-container" ); if ( editorBodyClass ) { editorBodyClass.classList.add( "ast-separate-container", "ast-two-container" ); editorBodyClass.classList.remove( "ast-page-builder-template", "ast-plain-container", "ast-narrow-container" ); } break; case "page-builder-template": bodyClass.classList.add("ast-page-builder-template"); bodyClass.classList.remove( "ast-two-container", "ast-plain-container", "ast-separate-container", "ast-narrow-container" ); if ( editorBodyClass ) { editorBodyClass.classList.add("ast-page-builder-template"); editorBodyClass.classList.remove( "ast-two-container", "ast-plain-container", "ast-separate-container", "ast-narrow-container" ); } break; case "narrow-container": bodyClass.classList.add("ast-narrow-container"); bodyClass.classList.remove( "ast-two-container", "ast-plain-container", "ast-separate-container", "ast-page-builder-template" ); if ( editorBodyClass ) { editorBodyClass.classList.add("ast-narrow-container"); editorBodyClass.classList.remove( "ast-two-container", "ast-plain-container", "ast-separate-container", "ast-page-builder-template" ); } break; default: break; } }; switch( contentLayout ) { case 'normal-width-container': applyContainerLayoutClasses( 'plain-container' ); break; case 'narrow-width-container': applyContainerLayoutClasses( 'narrow-container' ); break; case 'full-width-container': applyContainerLayoutClasses( 'page-builder-template' ); break; case 'default': if( bodyClass && bodyClass.classList.contains( 'ast-default-layout-boxed-container' ) ) { applyContainerLayoutClasses( 'boxed-container' ); } else if( bodyClass && bodyClass.classList.contains( 'ast-default-layout-content-boxed-container' ) ) { applyContainerLayoutClasses( 'content-boxed-container' ); } else if( bodyClass && bodyClass.classList.contains( 'ast-default-layout-page-builder' ) ) { applyContainerLayoutClasses( 'page-builder-template' ); } else if( bodyClass && bodyClass.classList.contains( 'ast-default-layout-plain-container' ) ) { applyContainerLayoutClasses( 'plain-container' ); } else if( bodyClass && bodyClass.classList.contains( 'ast-default-layout-narrow-container' ) ) { applyContainerLayoutClasses( 'narrow-container' ); } break; } const is_default_boxed = bodyClass && bodyClass.classList.contains( 'ast-default-layout-boxed-container' ) ? true : false; const is_default_content_boxed = bodyClass && bodyClass.classList.contains( 'ast-default-layout-content-boxed-container' ) ? true : false; const is_default_normal = bodyClass && bodyClass.classList.contains( 'ast-default-layout-plain-container' ) ? true : false; const is_default_normal_width = ( 'default' === contentLayout && ( is_default_boxed || is_default_content_boxed || is_default_normal ) ); const is_content_style_boxed = bodyClass && bodyClass.classList.contains( 'ast-default-content-style-boxed' ) ? true : false; const is_sidebar_style_boxed = bodyClass && bodyClass.classList.contains( 'ast-default-sidebar-boxed' ) ? true : false; if ( 'normal-width-container' === contentLayout || is_default_normal_width ) { switch ( contentStyle ) { case 'boxed': applyContainerLayoutClasses( 'boxed-container' ); break; case 'unboxed': applyContainerLayoutClasses( 'plain-container' ); break; default: if ( is_content_style_boxed ) { applyContainerLayoutClasses( 'boxed-container' ); } break; } const is_sidebar_default_enabled = 'default' === sidebarLayout && ( ! bodyClass.classList.contains( 'ast-sidebar-default-no-sidebar' ) ); if( ( 'default' !== sidebarLayout && 'no-sidebar' !== sidebarLayout || is_sidebar_default_enabled ) ) { switch ( sidebarStyle ) { case 'boxed': applyContainerLayoutClasses( 'boxed-container' ); break; case 'unboxed': applyContainerLayoutClasses( 'content-boxed-container' ); if ( 'unboxed' === contentStyle || 'default' === contentStyle && ! is_content_style_boxed ) { applyContainerLayoutClasses( 'plain-container' ); } break; default: if ( ( 'unboxed' === contentStyle && ! is_sidebar_style_boxed ) || ( 'default' === contentStyle && ! is_sidebar_style_boxed && ! is_content_style_boxed ) ) { applyContainerLayoutClasses( 'plain-container' ); } else if ( is_sidebar_style_boxed ) { applyContainerLayoutClasses( 'boxed-container' ); } else if ( ! is_sidebar_style_boxed ) { applyContainerLayoutClasses( 'content-boxed-container' ); } break; } } } // Narrow + Boxed compatibility in editor. if ( 'narrow-width-container' === contentLayout && ( 'boxed' === contentStyle || 'default' === contentStyle && is_content_style_boxed ) ) { let editorArea = document.querySelector('.edit-post-visual-editor__content-area'); if ( ! editorArea ) { editorArea = document.querySelector('.edit-post-visual-editor'); } if ( editorArea ) { editorArea.style.padding = '20px'; } } else { let editorArea = document.querySelector('.edit-post-visual-editor__content-area'); if ( ! editorArea ) { editorArea = document.querySelector('.edit-post-visual-editor'); } if ( editorArea ) { editorArea.style.padding = '0px'; } } // Container unboxed + sidebar boxed case. let isUnboxedContainer = false; const is_sidebar_default_enabled = 'default' === sidebarLayout && ( ! bodyClass.classList.contains( 'ast-sidebar-default-no-sidebar' ) ); if ( ( 'normal-width-container' === contentLayout || is_default_normal_width ) ) { if ( is_sidebar_default_enabled || 'no-sidebar' !== sidebarLayout && 'default' !== sidebarLayout ) { if ( 'default' === contentStyle && ! is_content_style_boxed || 'unboxed' === contentStyle ) { if ( 'boxed' === sidebarStyle || 'default' === sidebarStyle && is_sidebar_style_boxed ) { isUnboxedContainer = true; } } } } const editorStylesWrapper = editorDocument.querySelector( '.editor-styles-wrapper' ); if( null !== editorStylesWrapper ) { const editorStylesWrapperWidth = parseInt( editorStylesWrapper.offsetWidth ) if( editorStylesWrapperWidth < 1350 ) { editorStylesWrapper.classList.remove( 'ast-stacked-title-visibility' ); editorStylesWrapper.classList.add( 'ast-stacked-title-visibility' ); } else { editorStylesWrapper.classList.remove( 'ast-stacked-title-visibility' ); } } /** * In WP-5.9 block editor comes up with color palette showing color-code canvas, but with theme var() CSS its appearing directly as it is. So updated them on wp.data event. */ const customColorPickerButtons = document.querySelectorAll( '.components-color-palette__custom-color-value' ); for ( let btnCount = 0; btnCount < customColorPickerButtons.length; btnCount++ ) { let colorCode = customColorPickerButtons[btnCount].innerText, transformedCode = colorCode.toLowerCase(); if ( colorCode.indexOf( 'VAR(--AST-GLOBAL-COLOR' ) > -1 ) { customColorPickerButtons[btnCount].innerHTML = astraColors[ transformedCode ]; } } // Show post/page title wrapper outline & eye icon only when clicked. const titleInput = editorDocument.querySelector('.editor-post-title__input'); const visibilityIcon = editorDocument.querySelector('.title-visibility'); if( null != titleInput && null != visibilityIcon ) { if ( ! astraColors.ast_wp_version_higher_6_3 ) { editorDocument.addEventListener('click', function (event){ if( ! titleBlock.contains( event.target ) ){ visibilityIcon.classList.remove('ast-show-visibility-icon'); titleInput.classList.remove('ast-show-editor-title-outline'); } }); } editorDocument.addEventListener('visibilitychange', function (){ visibilityIcon.classList.remove('ast-show-visibility-icon'); titleInput.classList.remove('ast-show-editor-title-outline'); }); titleBlock.addEventListener('focusout', function (){ visibilityIcon.classList.remove('ast-show-visibility-icon'); titleInput.classList.remove('ast-show-editor-title-outline'); }); titleBlock.addEventListener('click', function (){ visibilityIcon.classList.add('ast-show-visibility-icon'); titleInput.classList.add('ast-show-editor-title-outline'); }); titleInput.addEventListener('input', function (){ visibilityIcon.classList.add('ast-show-visibility-icon'); this.classList.add('ast-show-editor-title-outline'); }); } var responsivePreview = document.querySelectorAll( '.is-tablet-preview, .is-mobile-preview' ); if( responsivePreview.length ) { document.body.classList.add( 'responsive-enabled' ); } else { document.body.classList.remove( 'responsive-enabled' ); } // Adding 'inherit-container-width' width to Group block externally. let postBlocks = ( undefined !== wp.data.select( 'core/editor' ) && null !== wp.data.select( 'core/editor' ) && undefined !== wp.data.select( 'core/editor' ).getCurrentPost() && undefined !== wp.data.select( 'core/block-editor' ).getBlocks() ) ? wp.data.select( 'core/block-editor' ).getBlocks() : false, groupBlocks = document.querySelectorAll( '.block-editor-block-list__layout.is-root-container > .wp-block-group' ); if( postBlocks && groupBlocks ) { for ( let blockNum = 0; blockNum < postBlocks.length; blockNum++ ) { if( 'core/group' === postBlocks[blockNum].name && undefined !== postBlocks[blockNum].attributes && undefined !== postBlocks[blockNum].attributes.layout && undefined !== postBlocks[blockNum].attributes.layout.inherit ) { if( undefined === groupBlocks[blockNum] ) { return; } if( ! postBlocks[blockNum].attributes.layout.inherit ) { groupBlocks[blockNum].classList.remove( 'inherit-container-width' ); } if( postBlocks[blockNum].attributes.layout.inherit && ! groupBlocks[blockNum].classList.contains( 'inherit-container-width' ) ) { groupBlocks[blockNum].classList.add( 'inherit-container-width' ); } } } } // Live reflections for page background setting. if ( astraColors.is_astra_pro_colors_activated ) { const backgroundToggle = (undefined !== wp.data.select('core/editor') && null !== wp.data.select('core/editor') && undefined !== wp.data.select('core/editor').getEditedPostAttribute('meta') && wp.data.select('core/editor').getEditedPostAttribute('meta')['ast-page-background-enabled']) ? wp.data.select('core/editor').getEditedPostAttribute('meta')['ast-page-background-enabled'] : 'default'; if ( 'enabled' === backgroundToggle ) { if ( isUnboxedContainer ) { updatePageBackground( false, isUnboxedContainer ); } else { updatePageBackground(); } } else if ( 'default' === backgroundToggle ) { updatePageBackground( true ); } } }, 1 ); }); // Redirect to Site Builder on click of "View Posts" Icon if Site Builder layout. if ( document && document.body ) { const isSiteBuilderLayout = document.body.classList.contains( 'post-type-astra-advanced-hook' ); if ( isSiteBuilderLayout ) { const viewPostsIcon = document.querySelector( '#editor .interface-navigable-region .edit-post-header > div a.components-button.edit-post-fullscreen-mode-close' ); if ( viewPostsIcon ) { viewPostsIcon.addEventListener( 'click', function(e) { e.preventDefault(); window.location.href = astraColors.site_builder_url; }); } } } } /* * Updates the page background css from the color picker. */ const updatePageBackground = ( apply_customizer_default = false, isUnboxedContainer = false ) => { // Document as per wp version. let editorDoc = document; let _iframe = document.querySelector("#editor iframe.editor-canvas__iframe") || document.querySelector('.block-editor-iframe__scale-container iframe[name="editor-canvas"]'); if (_iframe && astraColors.ast_wp_version_higher_6_4) { editorDoc = _iframe.contentWindow.document; } let desktopPreview = editorDoc.getElementsByClassName('is-desktop-preview'), tabletPreview = editorDoc.getElementsByClassName('is-tablet-preview'), mobilePreview = editorDoc.getElementsByClassName('is-mobile-preview'), devicePreview = desktopPreview[0]; if ( astraColors.ast_wp_version_higher_6_3 ) { if ( tabletPreview.length > 0 ) { devicePreview = tabletPreview[0]; } else if ( mobilePreview.length > 0 ) { devicePreview = mobilePreview[0]; } let iframe = undefined !== devicePreview ? devicePreview.getElementsByTagName('iframe')[0] : undefined; if ( iframe && devicePreview.querySelector('iframe') !== null ) { editorDoc = iframe.contentWindow.document || iframe.contentDocument; } } if ( apply_customizer_default ) { if ( document ) { const pageBgWrapper = document.querySelector('#editor .edit-post-visual-editor'); if ( pageBgWrapper ) { pageBgWrapper.style['background-color'] = ''; pageBgWrapper.style['background-image'] = ''; pageBgWrapper.style['background-size'] = ''; pageBgWrapper.style['background-position'] = ''; pageBgWrapper.style['background-repeat'] = ''; pageBgWrapper.style['background-attachment'] = ''; } } if ( editorDoc ) { const contentBgWrapper = editorDoc.querySelector('.editor-styles-wrapper'); if ( contentBgWrapper ) { contentBgWrapper.style['background-color'] = ''; contentBgWrapper.style['background-image'] = ''; contentBgWrapper.style['background-size'] = ''; contentBgWrapper.style['background-position'] = ''; contentBgWrapper.style['background-repeat'] = ''; contentBgWrapper.style['background-attachment'] = ''; } } return; } let bgObj = (undefined !== wp.data.select('core/editor') && null !== wp.data.select('core/editor') && undefined !== wp.data.select('core/editor').getEditedPostAttribute('meta') && wp.data.select('core/editor').getEditedPostAttribute('meta')['ast-page-background-meta']) ? wp.data.select('core/editor').getEditedPostAttribute('meta')['ast-page-background-meta'] : 'default'; let contentObj = (undefined !== wp.data.select('core/editor') && null !== wp.data.select('core/editor') && undefined !== wp.data.select('core/editor').getEditedPostAttribute('meta') && wp.data.select('core/editor').getEditedPostAttribute('meta')['ast-content-background-meta']) ? wp.data.select('core/editor').getEditedPostAttribute('meta')['ast-content-background-meta'] : 'default'; if ( desktopPreview.length > 0 ) { // Get the background object css values and update page background. const desktopCSS = astraGetResponsiveBackgroundObj(bgObj, 'desktop'); applyStylesToElement('#editor .edit-post-visual-editor', desktopCSS, document ); // Check current layout. is_boxed_based_layout = false; if ( document && document.querySelector('body') ) { is_boxed_based_layout = document.querySelector('body').classList.contains('ast-separate-container'); } if ( astraColors.apply_content_bg_fullwidth && ( ! is_boxed_based_layout ) ) { /** Fullwidth with Content Bg */ // Get the background object css values and update page content background. const desktopContentCSS = astraGetResponsiveBackgroundObj(contentObj, 'desktop'); applyStylesToElement('.editor-styles-wrapper', desktopContentCSS, editorDoc ); } else if ( ! astraColors.apply_content_bg_fullwidth && ( ! is_boxed_based_layout ) ) { /** Fullwidth with Page Bg */ // Get the background object css values and update page background. const desktopCSS = astraGetResponsiveBackgroundObj(bgObj, 'desktop'); applyStylesToElement('.editor-styles-wrapper', desktopCSS, document ); } else if ( is_boxed_based_layout ) { /** Boxed Layouts with Content Bg & Page Bg */ // Get the background object css values and update page background. const desktopCSS = astraGetResponsiveBackgroundObj(bgObj, 'desktop'); applyStylesToElement('#editor .edit-post-visual-editor', desktopCSS, document ); // Get the background object css values and update page content background. const desktopContentCSS = astraGetResponsiveBackgroundObj(contentObj, 'desktop'); applyStylesToElement('.editor-styles-wrapper', desktopContentCSS, editorDoc ); } if ( isUnboxedContainer ) { // Container unboxed + sidebar boxed -> update page content background to site background. applyStylesToElement('.editor-styles-wrapper', desktopCSS, editorDoc ); } } else if ( tabletPreview.length > 0 ) { // Check current layout. is_boxed_based_layout = false; if ( document && document.querySelector('body') ) { is_boxed_based_layout = document.querySelector('body').classList.contains('ast-separate-container'); } if ( astraColors.apply_content_bg_fullwidth && ( ! is_boxed_based_layout ) ) { /** Fullwidth with Content Bg */ // Get the background object css values and update page content background. const tabletContentCSS = astraGetResponsiveBackgroundObj(contentObj, 'tablet'); applyStylesToElement('.editor-styles-wrapper', tabletContentCSS, editorDoc ); // Set page background to black to indicate that page background not applicable. applyStylesToElement('#editor .edit-post-visual-editor', {'background-color' : '#363636'}, document ); } else if ( ! astraColors.apply_content_bg_fullwidth && ( ! is_boxed_based_layout ) ) { /** Fullwidth with Page Bg */ // Get the background object css values and update page background. const tabletCSS = astraGetResponsiveBackgroundObj(bgObj, 'tablet'); applyStylesToElement('.editor-styles-wrapper', tabletCSS, document ); } else if ( is_boxed_based_layout ) { /** Boxed Layouts with Content Bg & Page Bg */ // Get the background object css values and update page background. const tabletCSS = astraGetResponsiveBackgroundObj(bgObj, 'tablet'); applyStylesToElement('#editor .edit-post-visual-editor', tabletCSS, document ); // Get the background object css values and update page content background. const tabletContentCSS = astraGetResponsiveBackgroundObj(contentObj, 'tablet'); applyStylesToElement('.editor-styles-wrapper', tabletContentCSS, editorDoc ); } } else if ( mobilePreview.length > 0 ) { // Check current layout. is_boxed_based_layout = false; if ( document && document.querySelector('body') ) { is_boxed_based_layout = document.querySelector('body').classList.contains('ast-separate-container'); } if ( astraColors.apply_content_bg_fullwidth && ( ! is_boxed_based_layout ) ) { /** Fullwidth with Content Bg */ // Get the background object css values and update page content background. const mobileContentCSS = astraGetResponsiveBackgroundObj(contentObj, 'mobile'); applyStylesToElement('.editor-styles-wrapper', mobileContentCSS, editorDoc ); // Set page background to black to indicate that page background not applicable. applyStylesToElement('#editor .edit-post-visual-editor', {'background-color' : '#363636'}, document ); } else if ( ! astraColors.apply_content_bg_fullwidth && ( ! is_boxed_based_layout ) ) { /** Fullwidth with Page Bg */ // Get the background object css values and update page background. const mobileCSS = astraGetResponsiveBackgroundObj(bgObj, 'mobile'); applyStylesToElement('.editor-styles-wrapper', mobileCSS, document ); } else if ( is_boxed_based_layout ) { /** Boxed Layouts with Content Bg & Page Bg */ // Get the background object css values and update page background. const mobileCSS = astraGetResponsiveBackgroundObj(bgObj, 'mobile'); applyStylesToElement('#editor .edit-post-visual-editor', mobileCSS, document ); // Get the background object css values and update page content background. const mobileContentCSS = astraGetResponsiveBackgroundObj(contentObj, 'mobile'); applyStylesToElement('.editor-styles-wrapper', mobileContentCSS, editorDoc ); } } } /* * Dynamically applies styles to DOM element. */ function applyStylesToElement( selector, styles, docObj ) { if ( docObj ) { const element = docObj.querySelector(selector); if (element) { // Remove any prior cache values if set already. element.style.backgroundImage = 'none'; Object.keys(styles).forEach((property) => { element.style[property] = styles[property]; }); } else { console.error(`Element with selector "${selector}" not found.`); } } } /* * Generate Responsive Background Color CSS. */ function astraGetResponsiveBackgroundObj(bgObjRes, device) { const genBgCss = {}; const bgObj = bgObjRes[device]; const bgImg = bgObj['background-image'] || ''; const bgTabImg = bgObjRes['tablet']['background-image'] || ''; const bgDeskImg = bgObjRes['desktop']['background-image'] || ''; const bgColor = bgObj['background-color'] || ''; const tabletCss = bgObjRes['tablet']['background-image'] ? true : false; const desktopCss = bgObjRes['desktop']['background-image'] ? true : false; const bgType = bgObj['background-type'] || ''; if ('' !== bgType) { switch (bgType) { case 'color': if ('' !== bgImg && '' !== bgColor) { genBgCss['background-image'] = `linear-gradient(to right, ${bgColor}, ${bgColor}), url(${bgImg})`; } else if ('mobile' === device) { if (desktopCss) { genBgCss['background-image'] = `linear-gradient(to right, ${bgColor}, ${bgColor}), url(${bgDeskImg})`; } else if (tabletCss) { genBgCss['background-image'] = `linear-gradient(to right, ${bgColor}, ${bgColor}), url(${bgTabImg})`; } else { if ('' !== bgColor) { genBgCss['background-color'] = bgColor; genBgCss['background-image'] = 'none'; } } } else if ('tablet' === device) { if (desktopCss) { genBgCss['background-image'] = `linear-gradient(to right, ${bgColor}, ${bgColor}), url(${bgDeskImg})`; } else { if ('' !== bgColor) { genBgCss['background-color'] = bgColor; genBgCss['background-image'] = 'none'; } } } else if ('' === bgImg) { genBgCss['background-color'] = bgColor; genBgCss['background-image'] = 'none'; } break; case 'image': const overlayType = bgObj['overlay-type'] || 'none'; const overlayColor = bgObj['overlay-color'] || ''; const overlayGrad = bgObj['overlay-gradient'] || ''; if ('' !== bgImg) { if ('none' !== overlayType) { if ('classic' === overlayType && '' !== overlayColor) { genBgCss['background-image'] = `linear-gradient(to right, ${overlayColor}, ${overlayColor}), url(${bgImg})`; } else if ('gradient' === overlayType && '' !== overlayGrad) { genBgCss['background-image'] = `${overlayGrad}, url(${bgImg})`; } else { genBgCss['background-image'] = `url(${bgImg})`; } } else { genBgCss['background-image'] = `url(${bgImg})`; } } break; case 'gradient': if (bgColor) { genBgCss['background-image'] = bgColor; } break; default: break; } } else if ('' !== bgColor) { genBgCss['background-color'] = bgColor; } if ('' !== bgImg) { if (bgObj['background-repeat']) { genBgCss['background-repeat'] = bgObj['background-repeat']; } if (bgObj['background-position']) { genBgCss['background-position'] = bgObj['background-position']; } if (bgObj['background-size']) { genBgCss['background-size'] = bgObj['background-size']; } if (bgObj['background-attachment']) { genBgCss['background-attachment'] = bgObj['background-attachment']; } } return genBgCss; } document.body.addEventListener('mousedown', function () { var blockCssMode = document.querySelector('body').classList.contains('ast-block-legacy') var fontCss = document.getElementById('astra-google-fonts-css'); if( true === blockCssMode ){ var blockCss = document.getElementById('astra-block-editor-styles-css'); var inlineCss = document.getElementById('astra-block-editor-styles-inline-css'); } else { var blockCss = document.getElementById('astra-wp-editor-styles-css'); var inlineCss = document.getElementById('astra-wp-editor-styles-inline-css'); } var blockFixCss = null !== blockCss ? blockCss.cloneNode(true) : null; var blockInlineCss = null !== inlineCss ? inlineCss.cloneNode(true) : null; var blockfontCss = null !== fontCss ? fontCss.cloneNode(true) : null; setTimeout( function() { let tabletPreview = document.getElementsByClassName('is-tablet-preview'); let mobilePreview = document.getElementsByClassName('is-mobile-preview'); if (0 !== tabletPreview.length || 0 !== mobilePreview.length) { var googleFontId = 'astra-google-fonts-css'; if( true === blockCssMode ){ var styleTagId = 'astra-block-editor-styles-inline-css'; var styleTagBlockId = 'astra-block-editor-styles-css'; } else { var styleTagId = 'astra-wp-editor-styles-inline-css'; var styleTagBlockId = 'astra-wp-editor-styles-css'; } var styleTagId = 'astra-block-editor-styles-inline-css'; var styleTagBlockId = 'astra-block-editor-styles-css'; googleFontId = 'astra-google-fonts-css'; let preview = tabletPreview[0] || mobilePreview[0]; let iframe = preview.getElementsByTagName('iframe')[0]; let iframeDocument = iframe.contentWindow.document || iframe.contentDocument; let element = iframeDocument.getElementById( styleTagId ); let elementBlock = iframeDocument.getElementById( styleTagBlockId ); let elementGoogleFont = iframeDocument.getElementById( googleFontId ); if ( (null === element || undefined === element)) { iframeDocument.head.appendChild( blockInlineCss ); } if ( (null === elementBlock || undefined === elementBlock )) { iframeDocument.head.appendChild( blockFixCss ); } if ( (null === elementGoogleFont || undefined === elementGoogleFont ) && null !== fontCss) { iframeDocument.head.appendChild( blockfontCss ); } } }, 1000); }); column-block-compatibility.js 0000644 00000005273 15103704124 0012342 0 ustar 00 const updatingBlock = ['core/group']; wp.hooks.addFilter( 'blocks.registerBlockType', 'astra/meta/groupLayoutSettings', (settings, name) => { if (!updatingBlock.includes(name)) { return settings; } const newSettings = { ...settings, supports: { ...(settings.supports || {}), layout: { ...(settings.supports.layout || {}), allowEditing: true, allowSwitching: false, allowInheriting: true, }, __experimentalLayout: { ...(settings.supports.__experimentalLayout || {}), allowEditing: true, allowSwitching: false, allowInheriting: true, }, }, }; return newSettings; }, 20 ); // Get the block editor's data module. const { dispatch } = wp.data; // Create a function to set the default align attribute function setWooDefaultAlignments() { const checkoutBlocks = wp.blocks.getBlockTypes().some(block => block.name === 'woocommerce/checkout'); const cartBlocks = wp.blocks.getBlockTypes().some(block => block.name === 'woocommerce/cart'); if ( checkoutBlocks ) { const checkoutBlock = wp.data.select('core/block-editor').getBlocks().find(block => block.name === 'woocommerce/checkout'); if (checkoutBlock && checkoutBlock.attributes.align !== 'none') { const checkoutClientId = checkoutBlock.clientId; const checkoutLocalStorageKey = 'hasCheckoutBlockInserted'; const checkoutLocalStorageData = JSON.parse(localStorage.getItem(checkoutLocalStorageKey)) || {}; if ( ! checkoutLocalStorageData[checkoutClientId] ) { const updatedCheckoutAttributes = { ...checkoutBlock.attributes, align: 'none' }; dispatch('core/block-editor').updateBlockAttributes(checkoutClientId, updatedCheckoutAttributes); checkoutLocalStorageData[checkoutClientId] = true; localStorage.setItem(checkoutLocalStorageKey, JSON.stringify(checkoutLocalStorageData)); } } } if ( cartBlocks ) { const cartBlock = wp.data.select('core/block-editor').getBlocks().find(block => block.name === 'woocommerce/cart'); if (cartBlock && cartBlock.attributes.align !== 'none') { const cartClientId = cartBlock.clientId; const cartLocalStorageKey = 'hasCartBlockInserted'; const cartLocalStorageData = JSON.parse(localStorage.getItem(cartLocalStorageKey)) || {}; if ( ! cartLocalStorageData[cartClientId] ) { const updatedCartAttributes = { ...cartBlock.attributes, align: 'none' }; dispatch('core/block-editor').updateBlockAttributes(cartBlock.clientId, updatedCartAttributes); cartLocalStorageData[cartClientId] = true; localStorage.setItem(cartLocalStorageKey, JSON.stringify(cartLocalStorageData)); } } } } // Listen for the first insertion of a WooCommerce block wp.data.subscribe(() => { setWooDefaultAlignments(); }); ast-parse-svg.js 0000644 00000000350 15103704124 0007571 0 ustar 00 function parseSVG ( svg ) { svg = svg.replace( "far ", "" ) svg = svg.replace( "fas ", "" ) svg = svg.replace( "fab ", "" ) svg = svg.replace( "fa-", "" ) svg = svg.replace( "fa ", "" ) return svg } export default parseSVG ast-render-svg.js 0000644 00000001524 15103704124 0007742 0 ustar 00 /** * Set inline CSS class. * @param {object} props - The block object. * @return {array} The inline CSS class. */ import astIcons from "../../../assets/svg/ast-social-icons" import parseSVG from "./ast-parse-svg" import React from 'react'; function renderSVG ( svg ) { svg = parseSVG( svg ) var fontAwesome = astIcons[svg] if ( "undefined" != typeof fontAwesome ) { var viewbox_array = ( fontAwesome["svg"].hasOwnProperty("brands") ) ? fontAwesome["svg"]["brands"]["viewBox"] : fontAwesome["svg"]["solid"]["viewBox"] var path = ( fontAwesome["svg"].hasOwnProperty("brands") ) ? fontAwesome["svg"]["brands"]["path"] : fontAwesome["svg"]["solid"]["path"] var viewBox = viewbox_array.join( " " ) return ( <svg xmlns="http://www.w3.org/2000/svg" viewBox={viewBox}><path d={path}></path></svg> ) } } export default renderSVG; backuply.js 0000644 00000152222 15104062016 0006713 0 ustar 00 /* * BACKUPLY * https://backuply.com * (c) Backuply Team */ jQuery(document).ready(function(){ backuply_handle_tab(); // To Copy text on click jQuery('.backuply-code-copy').click( function() { navigator.clipboard.writeText(jQuery(this).parent().find('.backuply-code-text').text().trim()); jQuery(this).parent().find('.backuply-code-copied').show(); setTimeout(function() { jQuery('.backuply-code-copied').hide(); },1500); }); jQuery('[name="backuply_create_backup"]').click(function(e) { backuply_create_backup(jQuery(this), e); }); jQuery('[name="backuply_stop_backup"], .backuply-stop-backup').click(function(e) { backuply_stop_backup(jQuery(this), e); }); jQuery('#backuply-kill-process-btn').click(function(e) { e.preventDefault(); let confirmation = confirm('Are you sure you want to kill this process ?'); if(!confirmation){ return; } backuply_kill_process(jQuery(this)); }); checkprotocol(); jQuery('#protocol').change(function(){ checkprotocol(); }); backuply_cron_backup_style(backuply_obj.cron_task); jQuery("#check_all_edit").on("click", function(event){ if(this.checked == true){ jQuery('[name="add_to_fileindex[]"]').prop("checked", true); }else{ jQuery('[name="add_to_fileindex[]"]').prop("checked", false); } }); jQuery('#backuply-htaccess-fix').click(function() { event.preventDefault(); jQuery('#backuply-htaccess-modal').show(); }); jQuery('#backuply-index-html-fix').click(function() { event.preventDefault(); jQuery('#backuply-index-html-modal').show(); }); jQuery('#backuply_retry_htaccess').click(function() { event.preventDefault(); backuply_retry_htaccess(jQuery(this)); }); jQuery('.backuply-download-backup').click(function(){ event.preventDefault(); backuply_download_backup(jQuery(this)); }); // Listner to download Backuply Cloud Backups jQuery('.backuply-download-bcloud').click(function(){ event.preventDefault(); backuply_download_bcloud(jQuery(this)); }); // For Select all button on History tab jQuery('#backuply-bak-select-all').click(function() { event.preventDefault(); const checkboxes = jQuery('[name="backuply_selected_bak[]"]'); checkboxes.prop('checked', !checkboxes.prop('checked')); }); // For Select all button delete jQuery('#backuply-bak-multi-delete').click(function() { event.preventDefault(); backuply_bak_multi_delete(jQuery(this)); }); if(jQuery('#restore_message').length && jQuery('#restore_message').css('display') != 'none'){ backuply_update_modal_str(true); setTimeout(backuply_backup_progress, 2000); } // Brings up Backup/Restore Status Modal jQuery('.backuply-check-status').click(function() { let is_restoring = false; if(jQuery(this).closest('#message').parent().prop('id') == 'restore_message'){ is_restoring = true; } backuply_update_modal_str(is_restoring); jQuery('.backuply-modal').show(); backuply_backup_progress(); }); // Last log for backup jQuery('.backuply-backup-last-log').click(function(){ let file_name = jQuery(this).data('file-name'), proto_id = jQuery(this).closest('tr').data('proto-id'), log_name = 'Last Backup Log'; if(file_name){ log_name = 'Logs for ' + file_name.replace('_log.php', ''); } jQuery('#backuply-backup-last-log').dialog({ autoOpen: true, draggable: false, height: 600, width: 600, modal: true, title : log_name }); backuply_load_last_logs(false, file_name, proto_id); }); // Last Log for restore jQuery('.backuply-restore-last-log').click(function(){ jQuery('#backuply-restore-last-log').dialog({ autoOpen: true, draggable: false, height: 600, width: 600, modal: true, title : 'Last Restore Log' }); backuply_load_last_logs(true); }); jQuery('.backuply-update-quota').click(function(){ let ele = jQuery(this), storage = ele.data('storage'); if(!storage){ return false; } ele.addClass('backuply-placeholder'); ele.off('click'); jQuery.ajax(({ url: backuply_obj.ajax_url, method : 'POST', data : { 'security' : backuply_obj.nonce, 'action' : 'backuply_update_quota', 'location': storage }, success : function(res){ if(res.success){ location.reload(); return; } let snackbar = jQuery('#backuply-snackbar'); snackbar.text('Unable to fetch the Usage data'); snackbar.addClass('backuply-visible'); ele.removeClass('backuply-placeholder'); setTimeout(function(){snackbar.removeClass('backuply-visible');}, 3000); } })) }) let messages = jQuery('#restore_message, #process_message'); messages.each((_, ele) => { if(jQuery(ele).css('display') == 'none') { return; } if(jQuery(ele).prop('id') == 'restore_message') { backuply_progress_init(true); return; } backuply_progress_init(); }); jQuery(function () { let form = jQuery('#add_backup_loc_form form'), submit_btn = form.find('button'); form.find('[name="addbackuploc"]').val('true'); jQuery('#add_backup_loc_form').dialog({ autoOpen: false }); // Add Backup Location listener jQuery('#add_backup_loc_btn').click(function() { form[0].reset(); form.find('[name="protocol"]').prop('disabled', false); submit_btn.text('Add Backup Location'); backuply_update_labels('ftp'); checkprotocol(); jQuery('#add_backup_loc_form').dialog({ autoOpen: true, draggable: false, height: 600, width: 500, modal: true, title : 'Add Backup Location' }); }); // Edit Backup Listener jQuery('[name="backuply_edit_loc"]').click(function() { event.preventDefault(); let loc_id = jQuery(this).closest('td').find('[name="edit_loc_id"]').val(); form[0].reset(); jQuery('#add_backup_loc_form').dialog({ autoOpen: true, draggable: false, height: 600, width: 500, modal: true, title : 'Edit Backup Location' }); // Edit Backup Location jQuery.ajax({ url : backuply_obj.ajax_url, method : 'POST', data : { security : backuply_obj.nonce, loc_id : loc_id, action : 'backuply_get_loc_details' }, success : function(res){ if(res.message){ alert(message); return; } form.find('[name="backuply_edit_location"]').val('true'); form.find('[name="addbackuploc"]').val(''); submit_btn.text('Edit Backup Location'); let data = res.data; let inputs = { 'location_name' : data.name ? data.name : '', 'protocol' : data.protocol ? data.protocol : '', 'aws_endpoint' : data.aws_endpoint ? data.aws_endpoint : '', 'aws_region' : data.aws_region ? data.aws_region : '', 'aws_accessKey' : data.aws_accessKey ? data.aws_accessKey : '', 'aws_secretKey' : data.aws_secretKey ? data.aws_secretKey : '', 'aws_bucketname' : data.aws_bucketname ? data.aws_bucketname : '', 's3_compatible' : data.s3_compatible ? data.s3_compatible : '', 'aws_sse' : data.aws_sse ? data.aws_sse : '', 'access_code' : data.access_code ? data.access_code : '', 'server_host' : data.server_host ? data.server_host : '', 'port' : data.port ? data.port : '', 'ftp_user' : data.ftp_user ? data.ftp_user : '', 'ftp_pass' : data.ftp_pass ? data.ftp_pass : '', 'backup_loc' : data.backup_loc ? data.backup_loc : '', 'edit_loc_id' : data.id ? data.id : '', 'bcloud_key' : data.bcloud_key ? data.bcloud_key : '' } for(const i in inputs){ if(i == 'protocol') { // Disables protocol input form.find('[name="'+i+'"]').prop('disabled', true); if(inputs[i] in ['ftp', 'ftps', 'sftp', 'webdav']){ backuply_update_labels(inputs[i]); } } form.find('[name="'+i+'"]').val(inputs[i]); if(inputs[i] && i == 'aws_sse' && inputs['protocol'] == 'aws'){ form.find('[name="'+i+'"]').prop('checked', 'checked'); } } jQuery('#edit-protocol').change(() => { checkprotocol(); }); checkprotocol(); } }); }); }); jQuery('#backuply-btn-upload-bak').on('click', function(){ let title = jQuery('#backuply-upload-backup').attr('title'); jQuery('#backuply-upload-backup').dialog({ autoOpen: true, draggable: false, height: 430, width: 500, modal: true, title : title }); // Triggers The Select file button jQuery('.backuply-upload-select-file-btn').off('click').on('click', function(){ jQuery('#backuply-upload-backup-input').click(); }); jQuery(".backuply-backup-uploader-selection").on('dragenter', function(ev) { // Entering drop area. Highlight area jQuery(".backuply-backup-uploader-selection").addClass("backuply-highlight-drop-area"); }); jQuery(".backuply-backup-uploader-selection").on('dragleave', function(ev) { // Going out of drop area. Remove Highlight jQuery(".backuply-backup-uploader-selection").removeClass("backuply-highlight-drop-area"); }); jQuery('.backuply-upload-stop-upload').off('click').on('click', function(ev){ backuply_obj.upload_aborted = true; }); jQuery(".backuply-backup-uploader-selection").on('drop', backuply_upload_backup); jQuery("#backuply-upload-backup-input").off().on('change', backuply_upload_backup); jQuery(".backuply-backup-uploader-selection").on('dragover', function(ev) { ev.preventDefault(); }); }); if(jQuery('.error').length > 0 && window.location.hash == '#backuply-location') { jQuery('#add_backup_loc_form').dialog({ autoOpen: true, draggable: false, height: 600, width: 500, modal: true }); } jQuery('#backuply-btn-sync-bak').click(function() { event.preventDefault(); backuply_sync_backup(jQuery(this)); }); jQuery('#backuply-exclude-file-pattern').click(function() { jQuery('#backuply-exclude-pattern').dialog({ autoOpen: true, draggable: false, height: 500, width: 490, modal: true, title : 'Exclude Pattern' }); backuply_handle_exclude_pattern(jQuery('#backuply-exclude-pattern')); }); jQuery('#backuply-exclude-file-specific').click(function() { jQuery('#backuply-exclude-specific').dialog({ autoOpen: true, draggable: false, height: 600, width: 500, modal: true, title : 'Exclude Specific File/Folder' }); backuply_exclude_specific(jQuery('#backuply-exclude-specific')); }); jQuery('.backuply-pattern-delete').on('click', backuply_delete_exclude_rule); jQuery('.backuply-js-tree').jstree({ 'core' : { 'multiple' : false, 'data' : function(node, cb){ jQuery.ajax({ method : 'POST', url : backuply_obj.ajax_url, data : { action : 'backuply_get_jstree', security : backuply_obj.nonce, nodeid : node, }, success : function(res){ cb.call(this, res.nodes); } }) }, } }); }); // Handles Dashboard Tabs function backuply_handle_tab() { var backuply_tabs = jQuery('.nav-tab-wrapper'), backuply_tab; if(!window.location.hash || jQuery(window.location.hash).length == 0) { jQuery('.backuply-tab').hide(); jQuery('#backuply-dashboard').show(); backuply_tab = backuply_tabs.find('[href="#backuply-dashboard"]'); } else { jQuery('.backuply-tab').hide(); jQuery(window.location.hash).show(); backuply_tab = backuply_tabs.find('[href="'+window.location.hash+'"]'); } backuply_tab.addClass('nav-tab-active'); jQuery('.backuply-tab-wrapper .nav-tab').click(function() { event.preventDefault(); history.replaceState({}, '', event.target.href); jQuery('.backuply-tab').hide(); jQuery(window.location.hash).show(); backuply_tab = backuply_tabs.find('[href="'+window.location.hash+'"]'); backuply_tabs.find('.nav-tab-active').removeClass('nav-tab-active'); backuply_tab.addClass('nav-tab-active'); }); } function backuply_kill_process(jEle) { jEle.siblings('button').addClass('backuply-disabled').off('click'); jQuery.ajax({ method : 'GET', url : backuply_obj.ajax_url + '?action=backuply_kill_proccess&security=' + backuply_obj.nonce, success : function(res) { if(!res.success) { alert('Something went wrong unable to kill process'); return; } alert('The process was killed successfully, Now we will reload the page'); location.reload(); } }); } function backuply_update_modal_str(is_restore = false) { let modal = jQuery('#backuply-backup-progress'); if(is_restore) { modal.find('.backuply-title-restore').show(); modal.find('.backuply-title-backup').hide(); modal.find('.backuply-progress-extra-restore').show(); modal.find('.backuply-progress-extra-backup').hide(); modal.find('.backuply-loc-restore-name').show(); modal.find('.backuply-loc-bak-name').hide(); modal.find('.backuply-stop-backup').hide(); return; } //When we are backing-up modal.find('.backuply-title-restore').hide(); modal.find('.backuply-title-backup').show(); modal.find('.backuply-progress-extra-restore').hide(); modal.find('.backuply-progress-extra-backup').show(); modal.find('.backuply-loc-bak-name').show(); modal.find('.backuply-loc-restore-name').hide(); } // Deletes multiple selected backups function backuply_bak_multi_delete(jEle) { event.preventDefault(); const sel_bak = jQuery('[name="backuply_selected_bak[]"]:checked'), tab = jEle.closest('#backuply-history'), spinner = tab.find('.spinner'); if(sel_bak.length < 1) { alert('No Backup Selected For Deletion'); return; } const do_delete = confirm('You are about to delete ' + (sel_bak.length) + ' backup(s)\n\n Are you sure you want to delete?'); if(!do_delete) { return; } sel_bak.each((_, bak) => { let bak_name = jQuery(bak).val(), row = tab.find('[value="'+ bak_name +'"]').closest('tr'); //AJAX Call jQuery.ajax({ method : 'POST', url : backuply_obj.ajax_url, data : { action : 'backuply_multi_backup_delete', security : backuply_obj.nonce, backup_name : bak_name }, beforeSend : function() { spinner.addClass('is-active'); row.css('background-color', '#f2c2c2'); }, success : function(res) { if(!res.success) { alert(res.message ? res.message : 'Something went wrong!'); spinner.removeClass('is-active'); return; } row.remove(); spinner.removeClass('is-active'); } }); }); } // AJAX Call to retry creation of htaccess function backuply_retry_htaccess(jEle) { jQuery.ajax({ method : 'GET', url : backuply_obj.ajax_url, data : { 'action' : 'backuply_retry_htaccess', 'security' : backuply_obj.nonce }, beforeSend : function() { jEle.empty(); jEle.append('Trying...'); }, success : function(res) { jEle.empty().text('Click Here'); if(!res.success) { if(res.message) { alert(res.message); } else { alert('We are unable to create the htaccess file'); } } setTimeout(() => { location.reload(); }, 2000); return; } }); } // Event handler for Stop backup function backuply_stop_backup(jEle) { event.preventDefault(); jQuery.ajax({ method : 'GET', url : backuply_obj.ajax_url, data : { action : 'backuply_stop_backup', security : backuply_obj.nonce }, success : function(res) { if(!res.success) { alert('Unable to stop the backup'); return; } jEle.text('Stopping...').prop('disabled', true).off('click'); } }); } // Event handler for create backup function backuply_create_backup(jEle) { event.preventDefault(); var form = jEle.closest('form'), values = form.serializeArray(); var new_obj = {}; for(let val of values) { new_obj[val['name']] = val['value']; } if(!new_obj['backup_db'] && !new_obj['backup_dir']) { alert('Please select an option to backup'); return; } backuply_update_modal_str(); let modal = jQuery('#backuply-backup-progress'), image = modal.find('.backuply-modal-bak-icon'), protocol = jEle.closest('form').find('select option:selected').data('protocol'), proto_name = jEle.closest('form').find('select option:selected').text(), bak_name = modal.find('.backuply-loc-bak-name'); proto_name = proto_name.match(/^(.+?)(?=\()/); bak_name.text('Backup Location: ' + proto_name[0]); image.prop('src', backuply_obj.images + (protocol ? protocol : 'local') + '.svg'); modal.find('.backuply-backup-status').empty(); modal.find('.backuply-progress-value').css('width', '0%'); modal.find('.dashicons-no').show(); modal.data('process', 'backup'); modal.show(); backuply_progress_init(); jQuery.ajax({ method : 'POST', url : backuply_obj.ajax_url, data : { action : 'backuply_create_backup', security : backuply_obj.nonce, values : JSON.stringify(new_obj) }, success : function(res){ if(!res.success) { alert(res.message ? res.message : 'Something went Wrong!, Try again later'); return; } backuply_backup_progress(); } }) } let backuply_status = { has_ended : false, fail_count : 0, has_ended : false }; // Sets up Progress Modal function backuply_progress_init(is_restore = false, title = 'Backup') { let modal = jQuery('#backuply-backup-progress'); modal.on('click', '.dashicons-no', function() { modal.hide(); }); modal.find('.backuply-backup-status').empty(); modal.find('.backuply-progress-value').css('width', '0%').text('0%'); jQuery('[name="backuply_create_backup"]').addClass('backuply-disabled'); jQuery('[name="backuply_stop_backup"]').prop('disabled', false); if(is_restore) { modal.find('.backuply-title-restore').show(); modal.find('.backuply-title-backup').hide(); modal.find('.backuply-progress-extra-text').text('We are restoring your files it may take some time.'); } else { modal.find('.backuply-title-restore').hide(); modal.find('.backuply-title-backup').show(); } if(!is_restore) { jQuery('#process_message').show(); } backuply_status.is_restore = is_restore; // let interval = setInterval(() => { // if(backup_status.has_ended) { // clearInterval(interval); // return; // } // backuply_backup_progress(); // }, 2000); } // Toggles additional file option function toggle_advoptions(ele){ let target = jQuery('#' + ele); if (target.is(':hidden')){ target.slideDown('slow'); target.prev().attr('class', 'dashicons-before dashicons-minus'); } else{ target.slideUp('slow'); target.prev().attr('class', 'dashicons-before dashicons-plus-alt'); } } function conf_del(conf_msg){ return confirm(conf_msg); } function checkprotocol(is_edit = false){ let edit_str = is_edit ? '#edit-' : '#', protocol_id = edit_str + 'protocol', port_id = edit_str + 'port'; if(jQuery(protocol_id).val() == 'ftp' || jQuery(protocol_id).val() == 'softftpes'){ //alert('insode ftp'); if(jQuery(port_id).val() == '' || jQuery(port_id).val() == '22' || jQuery(port_id).val() == '443'){ jQuery(port_id).val('21'); } if(jQuery(protocol_id).val() == 'ftp') { backuply_update_labels('ftp'); } else { backuply_update_labels('ftps'); } show_ftp(); hide_aws_s3bucket(); hide_dropbox(); backuply_toggle_bcloud(); } if(jQuery(protocol_id).val() == 'softsftp'){ backuply_update_labels('sftp'); update_sftp_loc_desc(true); if(jQuery(port_id).val() == '' || jQuery(port_id).val() == '21' || jQuery(port_id).val() == '443'){ jQuery(port_id).val('22'); } show_ftp(); hide_aws_s3bucket(); hide_dropbox(); backuply_toggle_bcloud(); } else { update_sftp_loc_desc(); } if(jQuery(protocol_id).val() == 'webdav'){ backuply_update_labels('webdav'); if(jQuery(port_id).val() == '' || jQuery(port_id).val() == '21'){ jQuery(port_id).val('443'); } show_ftp(); hide_aws_s3bucket(); hide_dropbox(); backuply_toggle_bcloud(); } if(jQuery(protocol_id).val() == 'gdrive' || jQuery(protocol_id).val() == 'onedrive'){ hide_ftp(); hide_aws_s3bucket(); hide_dropbox(); backuply_toggle_bcloud(); } if(jQuery(protocol_id).val() == 'bcloud'){ hide_ftp(); hide_aws_s3bucket(); hide_dropbox(); backuply_toggle_bcloud(false); } if(jQuery(protocol_id).val() == 'aws' || jQuery(protocol_id).val() == 'caws'){ hide_ftp(); show_aws_s3bucket(); hide_dropbox(); backuply_toggle_bcloud(); // Toggles S3 Compatible Options if(jQuery(protocol_id).val() == 'caws'){ jQuery('.bakuply-s3-compatible').show(); jQuery('.aws_sse').hide(); } else { jQuery('.bakuply-s3-compatible').hide(); jQuery('.aws_sse').show(); } } if(jQuery(protocol_id).val() == 'dropbox'){ //alert('hide ftp'); hide_ftp(); hide_aws_s3bucket(); show_dropbox(); backuply_toggle_bcloud(); } } function backuply_toggle_bcloud(show = true){ if(!show){ jQuery('[for="location_name"]').closest('div').hide(); jQuery('[for="backup_loc"]').closest('div').hide(); jQuery('div > [for="backuply-cloud-key"]').closest('div').show(); return; } jQuery('div > [for="location_name"]').closest('div').show(); jQuery('div > [for="backup_loc"]').closest('div').show(); jQuery('[for="backuply-cloud-key"]').closest('div').hide(); } function backuply_update_labels(protocol = 'ftp') { let s_host_desc = jQuery('[name="server_host"]').parent().find('.backuply-opt-label__helper'), port_desc = jQuery('[name="port"]').parent().find('.backuply-opt-label__helper'), uname_label = jQuery('[name="ftp_user"]').parent().find('.backuply-opt-label__title'), uname_desc = jQuery('[name="ftp_user"]').parent().find('.backuply-opt-label__helper'), pass_label = jQuery('[name="ftp_pass"]').parent().find('.backuply-opt-label__title'), pass_desc = jQuery('[name="ftp_pass"]').parent().find('.backuply-opt-label__helper'); let fileds = { 'ftp' : { 's_host' : ['Enter the server host e.g. ftp.mydomain.com'], 'port' : ['Enter the port to connect (default FTP port is 21)'], 'u_name' : ['The Username of your FTP Account', 'FTP Username'], 'pass' : ['The Password of your FTP account', 'FTP Password'] }, 'ftps' : { 's_host' : ['Enter the server host e.g. ftps.mydomain.com'], 'port' : ['Enter the port to connect (default FTPS port is 21)'], 'u_name' : ['The Username of your FTPS Account', 'FTPS Username'], 'pass' : ['The Password of your FTPS account', 'FTPS Password'] }, 'sftp' : { 's_host' : ['Enter the server host e.g. sftp.mydomain.com'], 'port' : ['Enter the port to connect (default SFTP port is 22)'], 'u_name' : ['The Username of your SFTP Account', 'SFTP Username'], 'pass' : ['The Password of your SFTP account', 'SFTP Password'] }, 'webdav' : { 's_host' : ['Enter the server host e.g. webdav.mydomain.com'], 'port' : ['Enter the port to connect (default WebDAV port is 443)'], 'u_name' : ['The Username of your WebDAV Account', 'WebDAV Username'], 'pass' : ['The Password of your WebDAV account', 'WebDAV Password'] } } s_host_desc.text(fileds[protocol]['s_host'][0]); port_desc.text(fileds[protocol]['port'][0]); uname_label.text(fileds[protocol]['u_name'][1]); uname_desc.text(fileds[protocol]['u_name'][0]); pass_label.text(fileds[protocol]['pass'][1]); pass_desc.text(fileds[protocol]['pass'][0]); } function show_ftp(){ jQuery('[name="backup_loc"]').parent().find('.backuply-opt-label__title').text('Backup Location (Required)'); jQuery('.ftp_details').show(); jQuery('.ftp_credentials').show(); } function hide_ftp(){ jQuery('[name="backup_loc"]').parent().find('.backuply-opt-label__title').text('Backup Location (Optional)'); jQuery('.ftp_details').hide(); jQuery('.ftp_credentials').hide(); } // Updates the description of SFTP as it requires ABSOLUTE PATH function update_sftp_loc_desc(is_sftp = false) { let desc_holder = jQuery('[name="backup_loc"]').parent().find('.backuply-opt-label__helper'); if(is_sftp) { desc_holder.text('Absolute path to backup directory e.g. /home/USERNAME/backups'); return; } desc_holder.text('Backup Directory e.g. /backups or you can leave empty to allow Backuply to manage the'); } function show_aws_s3bucket(){ jQuery('.aws_s3bucket').show(); } function hide_aws_s3bucket(){ jQuery('.aws_s3bucket').hide(); } function show_dropbox(){ jQuery('.dropbox_authorize').show(); } function hide_dropbox(){ jQuery('.dropbox_authorize').hide(); } //TOOD:: Not required if(window.location.href.indexOf('&addbackuploc') > -1){ var reload_url = window.location.href; // Truncate unnecessary part of URL reload_url_arr = reload_url.split('&addbackuploc='); // Try to update url without reloading the window if (typeof (history.pushState) != 'undefined') { history.pushState({}, null, reload_url_arr[0]); } else { if(window.location.href != reload_url_arr[0]){ window.location.href = reload_url_arr[0]; } } } // Disabling Buttons when restoring or backingup function backuply_backup_style(style_for){ var input_button = jQuery('.button'); var other_inputs = jQuery('.disable'); input_button.prop('disabled', true); input_button.val('Backup is in process'); switch(style_for){ case 1: var backup_message = jQuery('#process_message'); backup_message.show(); input_button.val('Backingup...'); break; case 2: var backup_message = jQuery('#restore_message'); backup_message.show(); input_button.val('Restoring...'); break; } other_inputs.prop('disabled', true); } // Updates the Backup status in the Modal function backuply_backup_progress() { const progress = jQuery('.backuply-progress-value'), modal = progress.closest('.backuply-modal'), status_box = jQuery('.backuply-backup-status'), stop_modal = jQuery('.backuply-stop-backup'); backuply_obj.status_req_url = backuply_obj.ajax_url + '?action=backuply_check_backup_status'; if(backuply_status.hasOwnProperty('is_restore') && backuply_status.is_restore){ if(!backuply_status.progress){ backuply_status.progress = 0; } if(backuply_obj.status_url_code && backuply_obj.status_url_code == 1){ backuply_obj.status_req_url = backuply_obj.site_url + '/backuply-restore.php?status_key=' + backuply_obj.status_key; } else if(backuply_obj.status_url_code && backuply_obj.status_url_code == 2){ backuply_obj.status_req_url = backuply_obj.ajax_url + '?action=backuply_restore_status_log&status_key=' + backuply_obj.status_key; }else { // We will first try the status_log option only as, limit users face issue with this version and when using this we dont need to use the ajax method. backuply_obj.status_req_url = backuply_obj.backuply_url + '/status_logs.php?status_key=' + backuply_obj.status_key; } } if(!backuply_status.hasOwnProperty('is_restore')) { const stop = progress.closest('.backuply-settings-block').find('[name="backuply_stop_backup"]'); stop_modal.show(); } let ajax_data = {}; backuply_status.last_status = backuply_status.last_status ? backuply_status.last_status : 0; ajax_data['last_status'] = backuply_status.last_status; ajax_data['security'] = backuply_obj.nonce; if(backuply_status.hasOwnProperty('is_restore')) { ajax_data['is_restore'] = backuply_status['is_restore']; ajax_data['backup_name'] = backuply_status['backup_name']; } jQuery.ajax({ method : 'POST', url : backuply_obj.status_req_url, data : ajax_data, success : function(res) { if(!res.success) { backuply_status.fail_count++; if(backuply_status.fail_count > 15) { alert(res.message ? res.message : 'Something went wrong!'); backuply_status.has_ended = true; return; } } if(!res.progress_log) { setTimeout(backuply_backup_progress, 2000); return; } backuply_status.last_status += res.progress_log.length; res.progress_log = res.progress_log.split('\n'); let html = ''; for(let text of res.progress_log) { if(!text){ continue; } if(!text.includes('|')) { continue; } if(backuply_status.has_ended){ break; } let [log, status, percent] = text.split('|'), color = ''; percent = parseInt(percent); switch(status) { case 'info': color = 'yellow'; break; case 'error': color = 'red'; break; case 'warning': color = 'orange'; break; case 'success': color = 'rgb(102, 187, 106)'; break; } backuply_status.progress = parseInt(backuply_status.progress); if(backuply_status.progress && backuply_status.progress > percent) { percent = backuply_status.progress; } // Updating Progress Bar if(percent < 0 ) { progress.css('width', '100%').text('Stopping...'); if(!backuply_status.hasOwnProperty('is_restore')) { stop.off('click').text('Stopping...').prop('disabled', true); } } else if(percent != 0 && backuply_status.progress != percent){ setTimeout(() => { progress.css('width', percent + '%').text(percent + '%'); }, 300); } if(percent == 100 && stop_modal != 'undefined') { stop_modal.off('click').prop('disabled', true).addClass('backuply-disabled'); } if(backuply_status.progress != percent){ backuply_status.progress = percent; } if(status == 'uploading' || status == 'downloading') { if(status_box.find('.backuply-upload-progress')) { status_box.find('.backuply-upload-progress').remove(); } status_box.append(log); } else { html += '<p'+ (color ? ' style="color:'+color+'"' : '')+ '>'; if(status == 'success') { // This is to show a link to rate plugin only if the restore has been success. if(log == 'Restore performed successfully.'){ jQuery('#backuply-rate-on-restore').show(); } html += '<span class="dashicons dashicons-saved"></span>'; } html += log; html += '</p>'; } // Toggeling State of buttons on success and error if(status == 'success' || status == 'error' || res.progress == '100') { let finish_btn = modal.find('.backuply-backup-finish'); finish_btn.prop('disabled', false).removeClass('backuply-disabled'); if(!backuply_status.hasOwnProperty('is_restore')) { stop.off('click').prop('disabled', false).addClass('backuply-disabled'); stop.parent().prev().find('button').addClass('backuply-disabled').off('click'); stop_modal.off('click').prop('disabled', false).addClass('backuply-disabled'); } else { let modal = finish_btn.closest('.backuply-modal'), modal_header = modal.find('.backuply-title-backup'), modal_extra = modal.find('.backuply-progress-extra-backup'); if(status == 'success'){ modal_header.text('Backup Completed successfully 🎉'); modal_extra.slideUp(); } } finish_btn.click( function() { modal.hide(); location.reload(); }); backuply_status.has_ended = true; backuply_obj.process_ended = true; } } if(html){ status_box.append(html); status_box.scrollTop(status_box[0].scrollHeight); //Keeps the Scroll at bottom } if(!backuply_status.has_ended){ setTimeout(backuply_backup_progress, 2000); } }, error : function(res){ if(!res){ return; } if(res.status == 403 || res.status == 404){ if(!backuply_obj.status_url_code){ backuply_obj.status_url_code = 1; backuply_backup_progress(); } else if(backuply_obj.status_url_code && backuply_obj.status_url_code == 1) { backuply_obj.status_url_code = 2; backuply_backup_progress(); } } } }); } // Event handler for restore function backuply_restorequery(form_id){ event.preventDefault(); var inputs = jQuery(form_id+' :input'); var link = backuply_obj.ajax_url; var cnfm = confirm('Are you sure you want to Restore?'); if(!cnfm){ return; } var last_cnfm = confirm('This is the last confirmation!\nRestoration is an irreversible process, do you still want to continue?'); if(!last_cnfm){ return; } var failed = false, error_message = 'Somethign Went Wrong'; jQuery.ajax({ method : 'POST', async : false, url : backuply_obj.ajax_url, data : { 'action' : 'backuply_get_restore_key', 'security' : backuply_obj.nonce, }, success : function(res){ if(res.restore_key){ backuply_obj.restore_key = res.restore_key; backuply_obj.backuply_key = res.backuply_key; return; } if(!res.success){ error_message = res.message; failed = true; } failed = true; } }); if(failed){ alert(error_message); return; } backuply_backup_style(2); var data = new Object(); data['action'] = 'backuply_restore_curl_query'; data['sess_key'] = backuply_obj.creating_session; inputs.each(function(){ data[this.name] = jQuery(this).val(); data['security'] = backuply_obj.nonce; }); backuply_update_modal_str(true); let modal = jQuery('#backuply-backup-progress'), image = modal.find('.backuply-modal-bak-icon'), protocol = inputs.closest('form').data('protocol'), proto_name = inputs.closest('form').data('bak-name'), restore_name = modal.find('.backuply-loc-restore-name'); image.prop('src', backuply_obj.images + (protocol ? protocol : 'local') + '.svg'); restore_name.text('Restoring From: ' + proto_name); modal.find('.dashicons-no').hide(); modal.data('process', 'restore'); modal.find('.backuply-backup-status').empty(); modal.find('.backuply-stop-backup').hide(); modal.show(); backuply_progress_init(true, 'Restore'); jQuery.post(link, data, function(res) { backuply_backup_progress(); setTimeout(backuply_heartbeat, 2000); }); } function backuply_heartbeat(){ jQuery.ajax({ method : 'GET', url : backuply_obj.ajax_url + '?action=backuply_creating_session&security='+backuply_obj.restore_key+'&sess_key='+backuply_obj.creating_session, success : function(res){ if(res.success == true){ return; } if(!backuply_obj.process_ended){ setTimeout(backuply_heartbeat, 2000); } }, error: function(){ if(!backuply_obj.process_ended){ setTimeout(backuply_heartbeat, 2000); } } }); } // Downloads the backup file function backuply_download_backup(jEle) { let file_name = jEle.data('name'), progress_btn = jEle.next(); jQuery.ajax({ method : 'GET', url : backuply_obj.ajax_url, xhrFields : { responseType : 'arraybuffer' }, data : { action : 'backuply_download_backup', backup_name : file_name, security : backuply_obj.nonce }, xhr: function () { jEle.hide(); progress_btn.show(); var xhr = new window.XMLHttpRequest(); //Download progress xhr.addEventListener('progress', function (evt) { if (evt.lengthComputable) { var percent_complete = evt.loaded / evt.total; progress_btn.text(Math.round(percent_complete * 100) + '% Downloading'); } }, false); return xhr; }, success : function(res) { if(res.hasOwnProperty('success')) { alert(res.message); } let a = document.createElement('a'), url = URL.createObjectURL(new Blob([res], {type : 'application/octet-stream'})); a.href = url; a.download = file_name; document.body.append(a); a.setAttribute('target', '_blank'); a.click(); a.remove(); window.URL.revokeObjectURL(url); // Toggle download buttons progress_btn.text('0% Downloading'); progress_btn.hide(); jEle.show(); } }); } // Updates state of Auto backup option when Auto Backup is changed function backuply_cron_backup_style(select_value){ if(typeof select_value == 'object' && select_value.backuply_custom_cron) { select_value = 'custom'; } jQuery('#backuply-custom-cron').hide(); jQuery("#backuply_cron_checkbox").show(); jQuery('#backup_rotation').prop('disabled', false); if(!select_value) { jQuery("#backuply_cron_checkbox").hide(); jQuery('#backup_rotation').prop('disabled', true); } if(select_value == 'custom') { jQuery('#backuply-custom-cron').show(); } } function backuply_close_modal(ele) { jQuery(ele).closest('.backuply-modal').hide(); } function backuply_sync_backup(jEle) { let loc_id = jEle.prev().val(), tab = jEle.closest('#backuply-history'), spinner = tab.find('.spinner'); jQuery.ajax({ method : 'GET', url : backuply_obj.ajax_url + '?action=backuply_sync_backups&id='+loc_id+'&security='+backuply_obj.nonce, beforeSend: function() { spinner.addClass('is-active'); }, success : function(res){ if(!res.success){ if(!res.message){ alert('Something went wrong please try later'); } alert(res.message); return; } location.reload(); spinner.removeClass('is-active'); } }); } // Loads last logs function backuply_load_last_logs(is_restore, file_name = '', proto_id = ''){ let id = '#backuply-backup-last-log'; if(is_restore) { id = '#backuply-restore-last-log'; } let modal = jQuery(id), spinner = modal.find('.spinner'), inside = modal.find('.backuply-last-logs-block'); modal.find('.backuply-last-logs-block').empty(); let ajax_url = backuply_obj.ajax_url + '?action=backuply_last_logs'; if(is_restore){ ajax_url += '&is_restore=true'; } else { ajax_url += '&file_name=' + file_name; ajax_url += '&proto_id=' + proto_id; } ajax_url += '&security='+ backuply_obj.nonce; jQuery.ajax({ method : 'GET', url : ajax_url, beforeSend: function() { spinner.addClass('is-active'); }, success: function(res) { spinner.removeClass('is-active'); if(!res.success || !res.progress_log){ inside.append('No log found!'); return; } res.progress_log = res.progress_log.split('\n'); for(let text of res.progress_log) { if(!text){ continue; } if(!text.includes('|')) { continue; } let [log, status] = text.split('|'), color = ''; switch(status) { case 'info': color = 'yellow'; break; case 'error': color = 'red'; break; case 'success': color = 'rgb(102, 187, 106)'; break; } if(status == 'uploading' || status == 'downloading') { if(inside.find('.backuply-upload-progress')) { inside.find('.backuply-upload-progress').remove(); } inside.append(log); } else { let html = '<p'+ (color ? ' style="color:'+color+'"' : '')+ '>'; if(status == 'success') { html += '<span class="dashicons dashicons-saved"></span>'; } html += log; html += '</p>'; inside.append(html); } } } }); } function backuply_handle_exclude_pattern(jEle){ let add_btn = jEle.find('.backuply-pattern-insert'); // Adds the Exclude pattern using enter jQuery('[name="exclude_pattern_val"]').off().on('keypress', function() { if(event.key == 'Enter') { let block = jQuery(this).closest('.backuply-exclude-pattern-block'); block.find('.backuply-pattern-insert').trigger('click'); } }) function add_btn_handler() { let ele = jQuery(this).closest('.backuply-exclude-pattern-block'), type = ele.find('select'), pattern = ele.find('input'), html = '', type_val = type.val(), pattern_val = pattern.val(); if(!pattern_val){ alert('Add a pattern'); return; } if(ele.data('type')){ type_val = ele.data('type'); } types = { 'extension' : 'With specific extension', 'beginning' : 'At beginning', 'end' : 'At end', 'anywhere' : 'Anywhere' }; if(!ele.data('type')){ html = '<div class="backuply-exclude-pattern-block" data-edit="true" data-type="'+type_val+'">'+ '<span class="backuply-exclude-pattern-type">'+ types[type_val] + '</span>'+ '<span class="backuply-exclude-pattern-val"><input type="text" name="exclude_pattern_val" style="width:90%;" value="'+ pattern_val + '" disabled/></span>'+ '<span class="dashicons dashicons-trash backuply-pattern-delete" style="display:none;"></span>'+ '<span class="dashicons dashicons-edit backuply-pattern-edit"></span>'+ '<span class="dashicons dashicons-insert backuply-pattern-insert" style="display:none;"></span>'+ '<span class="spinner is-active"></span>'+ '</div>'; jEle.append(html); type.val('extension'); pattern.val(''); } if(ele.data('type')){ save_ele = ele; } else{ save_ele = jEle.last(); } let data = {pattern: pattern_val, type : type_val} if(ele.data('key')){ data['key'] = ele.data('key'); } save_rules(data, save_ele); } // Gets triggred when edit it clicked function edit_btn_handler() { let block = jQuery(this).closest('.backuply-exclude-pattern-block'); change_action_state(block, 'insert'); block.find('input').prop('disabled', false); } // Ajax request to save or update the exclude rule function save_rules(data, jEle) { let request_data = data; request_data['action'] = 'backuply_save_excludes'; request_data['security'] = backuply_obj.nonce; jQuery.ajax({ method : 'POST', url : backuply_obj.ajax_url, data : request_data, success: function(res){ if(!res.success){ if(res.message){ if(jEle.data('type')){ change_action_state(jEle, 'edit'); jEle.find('input').prop('disabled', true); } else { jEle.remove(); } alert(res.message); return; } alert('Unable to save this Exclude rule'); return; } if(jEle.data('type')){ jEle.find('input').prop('disabled', true); change_action_state(jEle, 'edit'); } else { let new_ele = jEle.find('.backuply-exclude-pattern-block').last(); new_ele.find('.is-active').css('display', 'none'); new_ele.find('.is-active').removeClass('is-active'); new_ele.find('.backuply-pattern-delete').css('display', 'block'); new_ele.attr('data-key', res.key); // Adding event listners to new elements new_ele.find('.backuply-pattern-insert').off().on('click', add_btn_handler); new_ele.find('.backuply-pattern-edit').off().on('click', edit_btn_handler); new_ele.find('.backuply-pattern-delete').off().on('click', backuply_delete_exclude_rule); } return; } }); } // Updates the states of icons of actions of the Exclude rule function change_action_state(jEle, state){ if(state == 'loader'){ jEle.find('.backuply-pattern-delete').css('display', 'none'); jEle.find('.backuply-pattern-insert').css('display', 'none'); jEle.find('.backuply-pattern-edit').css('display', 'none'); jEle.find('.spinner').css('display', ''); jEle.find('.spinner').addClass('is-active'); } else if(state == 'edit') { jEle.find('.backuply-pattern-delete').css('display', ''); jEle.find('.backuply-pattern-insert').css('display', 'none'); jEle.find('.backuply-pattern-edit').css('display', ''); jEle.find('.spinner').css('display', 'none'); jEle.find('.spinner').removeClass('is-active'); } else if(state == 'insert') { jEle.find('.backuply-pattern-delete').css('display', 'none'); jEle.find('.backuply-pattern-edit').css('display', 'none'); jEle.find('.backuply-pattern-insert').css('display', ''); jEle.find('.spinner').css('display', 'none'); jEle.find('.spinner').removeClass('is-active'); } } // Event handlers add_btn.off().on('click', add_btn_handler); jEle.find('.backuply-pattern-edit').off().on('click', edit_btn_handler); } function backuply_delete_exclude_rule() { let conf = confirm('Are you sure you want to delete this Exclude rule'); if(!conf){ return } let jEle = jQuery(this), block = jEle.closest('.backuply-exclude-pattern-block'), key = block.data('key'), type = block.data('type'); jQuery.ajax({ method : 'GET', url : backuply_obj.ajax_url, data : { action : 'backuply_exclude_rule_delete', security : backuply_obj.nonce, key : key, type : type }, success : function(res) { if(!res.success){ alert('Unable to delete this Exclude rule'); return; } block.remove(); } }); } function backuply_exclude_specific(jEle) { jEle.find('.backuply-exclude-add-exact').off().on('click', function() { event.preventDefault(); if(jEle.find('.backuply-js-tree').jstree('get_selected', true).length < 1){ alert('Select a File or Folder Before adding it!'); return; } let path = jEle.find('.backuply-js-tree').jstree('get_selected', true)[0]['id'], html = '<div class="backuply-exclude-pattern-block" data-edit="true" data-type="exact">'+ '<span class="backuply-exclude-pattern-val" style="width:95%;">'+path+'</span>'+ '<span class="dashicons dashicons-trash backuply-pattern-delete" style="display:none;"></span>'+ '<span class="spinner is-active"></span>'+ '</div>'; jEle.append(html); jQuery.ajax({ method : 'POST', url : backuply_obj.ajax_url, data : { action : 'backuply_save_excludes', security : backuply_obj.nonce, type : 'exact', pattern : path }, success : function(res) { if(!res.success){ if(res.message){ jEle.remove(); alert(res.message); return; } jEle.remove(); alert('Unable to save this Exclude rule'); return; } let new_ele = jEle.find('.backuply-exclude-pattern-block').last(); new_ele.find('.is-active').css('display', 'none'); new_ele.find('.is-active').removeClass('is-active'); new_ele.find('.backuply-pattern-delete').css('display', 'block'); new_ele.attr('data-key', res.key); new_ele.find('.backuply-pattern-delete').off().on('click', backuply_delete_exclude_rule); return; } }) }); } function backuply_download_bcloud(ele){ let filename = ele.data('name'); if(!filename){ alert('Could not find the Backup file name'); return; } jQuery.ajax({ method : 'POST', url : backuply_obj.ajax_url, data : { "security" : backuply_obj.nonce, "filename" : filename, "action" : "backuply_download_bcloud" }, success : function(res){ if(!res.success){ alert(res.data ?? "Something went wrong"); return; } const link = document.createElement('a'); link.href = res.data.url; link.download = res.data.filename; document.body.appendChild(link); link.click(); link.remove(); } }); } function backuply_upload_backup(ev){ // Dropping files ev.preventDefault(); ev.stopPropagation(); let files = ''; if(ev.target.files){ files = ev.target; } else if(ev.originalEvent.dataTransfer){ files = ev.originalEvent.dataTransfer; } if(backuply_obj.uploading_backup){ return false; } backuply_obj.uploading_backup = true; const show_alert = (ele, msg, type) => { switch(type){ case 'error': ele.style.borderColor = '#f5c6cb'; ele.style.backgroundColor = '#f8d7da'; ele.style.color = '#721c24'; break; case 'success': ele.style.backgroundColor = '#d4edda'; ele.style.borderColor = '#c3e6cb'; ele.style.color = '#155724'; break; case 'alert': ele.style.backgroundColor = '#fff3cd'; ele.style.borderColor = '#ffeeba'; ele.style.color = '#856404'; break; } if(type !== 'alert'){ document.querySelector('.backuply-backup-uploader-selection').style.display = 'block'; // Show the select file block. backuply_obj.uploading_backup = false; } ele.style.display = 'block'; ele.innerHTML = msg; } document.querySelector('.backuply-backup-uploader-selection').style.display = 'none'; // Hiding selector to prevent attempt to upload. let error_div = document.querySelector('#backuply-upload-alert'); error_div.style.display = 'none'; // Clear previous messages if(!files){ // Add message Here show_alert(error_div, 'Please select, or drop a file to proceed', 'error'); return; } if(!files.files.length || !files.files[0]){ // Add message Here show_alert(error_div, 'Please select, or drop a file to proceed', 'error'); return; } let dropped_file = files.files[0]; // Checking if the file is tar.gz let allowed_types = ['application/gzip', 'application/x-gzip']; if(!dropped_file.name.indexOf('.tar.gz') === -1 || !allowed_types.includes(dropped_file.type)){ show_alert(error_div, 'Please select a .tar.gz file, only .tar.gz files are backup files.', 'error'); return; } const regex = /^wp_.*_\d{4}-\d{2}-\d{2}_.*\.tar\.gz/; if(!regex.test(dropped_file.name)){ show_alert(error_div, 'File name is of unexpected format, it should be of fromat wp_domain_name_YYYY-MM-DD_HH-MM-SS.tar.gz.', 'error'); return; } // Updating the UI let progress_block = document.querySelector('.backuply-upload-backup'), file_name = document.querySelector('.backuply-upload-backup-name'), size_placeholder = document.querySelector('.backuply-upload-backup-size'), progress_bar = document.querySelector('#backuply-upload-bar-progress'), progress_percentage = document.querySelector('.backuply-upload-percentage'); const chunk_size = 2 * 1024 * 1024; // 2MB const total_chunks = Math.ceil(dropped_file.size / chunk_size); const reader = new FileReader(); let chunk_number = 0; reader.addEventListener('load', (e) => { let chunk_data = e.target.result; chunk_data = new Uint8Array(chunk_data); chunk_data = new Blob([chunk_data]); let form = new FormData(); form.append('action', 'backuply_backup_upload'); form.append('file_name', dropped_file.name); form.append('file', chunk_data); form.append('security', backuply_obj.nonce); form.append('chunk_number', chunk_number); form.append('total_chunks', total_chunks); jQuery.ajax({ url : backuply_obj.ajax_url, method : "POST", contentType: false, processData: false, data : form, success: function(res) { if(!res.success){ // Message for upload failed show_alert(error_div, res.data, 'error'); return; } //let percentage_str = Math.floor(((res.data - 1) * 100) / dropped_file.size); let percentage_str = Math.round((chunk_number * 100) / total_chunks); percentage_str += '%'; progress_bar.style.width = percentage_str; progress_percentage.innerHTML = percentage_str; if(chunk_number < total_chunks){ read_file(res.data); return; } show_alert(error_div, 'Backup <strong>'+ dropped_file.name + '</strong> of size ' + backuply_size_format(dropped_file.size) + ' successfully uploaded', 'success'); jQuery('#backuply-btn-sync-bak').trigger('click'); // Triggers sync after upload has been completed. jQuery(error_div).parent().append('<p style="text-align:center; color:green;">Syncing the backup, please wait for few seconds<span class="spinner is-active"></span></p>'); } }); }); const read_file = (start_byte) => { if(backuply_obj.upload_aborted){ backuply_obj.upload_aborted = false; // Setting it back to its initial state. show_alert(error_div, 'Attempting to abort the upload please wait for a few seconds', 'alert'); jQuery.ajax({ url : backuply_obj.ajax_url, method : "POST", data : { 'action' : 'backuply_backup_upload', 'file_name' : dropped_file.name, 'security' : backuply_obj.nonce, 'abort' : true }, success : function(res){ if(!res.success){ show_alert(error_div, 'Unable to abort upload, refresh the page to force stop it', 'error'); } show_alert(error_div, (res.data ? res.data : 'Upload aborted successfully, refresh the page'), 'success'); return; } }) return; } let end_byte = start_byte + chunk_size; // When its the last chunk if(chunk_number === total_chunks){ end_byte = dropped_file.size; } const slice = dropped_file.slice(start_byte, end_byte); reader.readAsArrayBuffer(slice); chunk_number++; } progress_block.style.display = "block"; size_placeholder.innerHTML = backuply_size_format(parseInt(dropped_file.size)); file_name.innerHTML = dropped_file.name; read_file(0); // Initiates the reading of file. jQuery(".backuply-backup-uploader-selection").removeClass("backuply-highlight-drop-area"); return false; } function backuply_size_format(bytes) { const sizes = ["B", "KB", "MB", "GB"]; const i = Math.floor(Math.log(bytes) / Math.log(1024)); return parseFloat((bytes / Math.pow(1024, i)).toFixed(2)) + " " + sizes[i]; } jstree.min.js 0000644 00000367424 15104062016 0007173 0 ustar 00 /*! jsTree - v3.2.1 - 2015-08-24 - (MIT) */ !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a,b){"use strict";if(!a.jstree){var c=0,d=!1,e=!1,f=!1,g=[],h=a("script:last").attr("src"),i=window.document,j=i.createElement("LI"),k,l;j.setAttribute("role","treeitem"),k=i.createElement("I"),k.className="jstree-icon jstree-ocl",k.setAttribute("role","presentation"),j.appendChild(k),k=i.createElement("A"),k.className="jstree-anchor",k.setAttribute("href","#"),k.setAttribute("tabindex","-1"),l=i.createElement("I"),l.className="jstree-icon jstree-themeicon",l.setAttribute("role","presentation"),k.appendChild(l),j.appendChild(k),k=l=null,a.jstree={version:"3.2.1",defaults:{plugins:[]},plugins:{},path:h&&-1!==h.indexOf("/")?h.replace(/\/[^\/]+$/,""):"",idregex:/[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g,root:"#"},a.jstree.create=function(b,d){var e=new a.jstree.core(++c),f=d;return d=a.extend(!0,{},a.jstree.defaults,d),f&&f.plugins&&(d.plugins=f.plugins),a.each(d.plugins,function(a,b){"core"!==a&&(e=e.plugin(b,d[b]))}),a(b).data("jstree",e),e.init(b,d),e},a.jstree.destroy=function(){a(".jstree:jstree").jstree("destroy"),a(i).off(".jstree")},a.jstree.core=function(a){this._id=a,this._cnt=0,this._wrk=null,this._data={core:{themes:{name:!1,dots:!1,icons:!1},selected:[],last_error:{},working:!1,worker_queue:[],focused:null}}},a.jstree.reference=function(b){var c=null,d=null;if(!b||!b.id||b.tagName&&b.nodeType||(b=b.id),!d||!d.length)try{d=a(b)}catch(e){}if(!d||!d.length)try{d=a("#"+b.replace(a.jstree.idregex,"\\$&"))}catch(e){}return d&&d.length&&(d=d.closest(".jstree")).length&&(d=d.data("jstree"))?c=d:a(".jstree").each(function(){var d=a(this).data("jstree");return d&&d._model.data[b]?(c=d,!1):void 0}),c},a.fn.jstree=function(c){var d="string"==typeof c,e=Array.prototype.slice.call(arguments,1),f=null;return c!==!0||this.length?(this.each(function(){var g=a.jstree.reference(this),h=d&&g?g[c]:null;return f=d&&h?h.apply(g,e):null,g||d||c!==b&&!a.isPlainObject(c)||a.jstree.create(this,c),(g&&!d||c===!0)&&(f=g||!1),null!==f&&f!==b?!1:void 0}),null!==f&&f!==b?f:this):!1},a.expr[":"].jstree=a.expr.createPseudo(function(c){return function(c){return a(c).hasClass("jstree")&&a(c).data("jstree")!==b}}),a.jstree.defaults.core={data:!1,strings:!1,check_callback:!1,error:a.noop,animation:200,multiple:!0,themes:{name:!1,url:!1,dir:!1,dots:!0,icons:!0,stripes:!1,variant:!1,responsive:!1},expand_selected_onload:!0,worker:!0,force_text:!1,dblclick_toggle:!0},a.jstree.core.prototype={plugin:function(b,c){var d=a.jstree.plugins[b];return d?(this._data[b]={},d.prototype=this,new d(c,this)):this},init:function(b,c){this._model={data:{},changed:[],force_full_redraw:!1,redraw_timeout:!1,default_state:{loaded:!0,opened:!1,selected:!1,disabled:!1}},this._model.data[a.jstree.root]={id:a.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this.element=a(b).addClass("jstree jstree-"+this._id),this.settings=c,this._data.core.ready=!1,this._data.core.loaded=!1,this._data.core.rtl="rtl"===this.element.css("direction"),this.element[this._data.core.rtl?"addClass":"removeClass"]("jstree-rtl"),this.element.attr("role","tree"),this.settings.core.multiple&&this.element.attr("aria-multiselectable",!0),this.element.attr("tabindex")||this.element.attr("tabindex","0"),this.bind(),this.trigger("init"),this._data.core.original_container_html=this.element.find(" > ul > li").clone(!0),this._data.core.original_container_html.find("li").addBack().contents().filter(function(){return 3===this.nodeType&&(!this.nodeValue||/^\s+$/.test(this.nodeValue))}).remove(),this.element.html("<ul class='jstree-container-ul jstree-children' role='group'><li id='j"+this._id+"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='tree-item'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading"),this._data.core.li_height=this.get_container_ul().children("li").first().height()||24,this.trigger("loading"),this.load_node(a.jstree.root)},destroy:function(a){if(this._wrk)try{window.URL.revokeObjectURL(this._wrk),this._wrk=null}catch(b){}a||this.element.empty(),this.teardown()},teardown:function(){this.unbind(),this.element.removeClass("jstree").removeData("jstree").find("[class^='jstree']").addBack().attr("class",function(){return this.className.replace(/jstree[^ ]*|$/gi,"")}),this.element=null},bind:function(){var b="",c=null,d=0;this.element.on("dblclick.jstree",function(a){if(a.target.tagName&&"input"===a.target.tagName.toLowerCase())return!0;if(i.selection&&i.selection.empty)i.selection.empty();else if(window.getSelection){var b=window.getSelection();try{b.removeAllRanges(),b.collapse()}catch(c){}}}).on("mousedown.jstree",a.proxy(function(a){a.target===this.element[0]&&(a.preventDefault(),d=+new Date)},this)).on("mousedown.jstree",".jstree-ocl",function(a){a.preventDefault()}).on("click.jstree",".jstree-ocl",a.proxy(function(a){this.toggle_node(a.target)},this)).on("dblclick.jstree",".jstree-anchor",a.proxy(function(a){return a.target.tagName&&"input"===a.target.tagName.toLowerCase()?!0:void(this.settings.core.dblclick_toggle&&this.toggle_node(a.target))},this)).on("click.jstree",".jstree-anchor",a.proxy(function(b){b.preventDefault(),b.currentTarget!==i.activeElement&&a(b.currentTarget).focus(),this.activate_node(b.currentTarget,b)},this)).on("keydown.jstree",".jstree-anchor",a.proxy(function(b){if(b.target.tagName&&"input"===b.target.tagName.toLowerCase())return!0;if(32!==b.which&&13!==b.which&&(b.shiftKey||b.ctrlKey||b.altKey||b.metaKey))return!0;var c=null;switch(this._data.core.rtl&&(37===b.which?b.which=39:39===b.which&&(b.which=37)),b.which){case 32:b.ctrlKey&&(b.type="click",a(b.currentTarget).trigger(b));break;case 13:b.type="click",a(b.currentTarget).trigger(b);break;case 37:b.preventDefault(),this.is_open(b.currentTarget)?this.close_node(b.currentTarget):(c=this.get_parent(b.currentTarget),c&&c.id!==a.jstree.root&&this.get_node(c,!0).children(".jstree-anchor").focus());break;case 38:b.preventDefault(),c=this.get_prev_dom(b.currentTarget),c&&c.length&&c.children(".jstree-anchor").focus();break;case 39:b.preventDefault(),this.is_closed(b.currentTarget)?this.open_node(b.currentTarget,function(a){this.get_node(a,!0).children(".jstree-anchor").focus()}):this.is_open(b.currentTarget)&&(c=this.get_node(b.currentTarget,!0).children(".jstree-children")[0],c&&a(this._firstChild(c)).children(".jstree-anchor").focus());break;case 40:b.preventDefault(),c=this.get_next_dom(b.currentTarget),c&&c.length&&c.children(".jstree-anchor").focus();break;case 106:this.open_all();break;case 36:b.preventDefault(),c=this._firstChild(this.get_container_ul()[0]),c&&a(c).children(".jstree-anchor").filter(":visible").focus();break;case 35:b.preventDefault(),this.element.find(".jstree-anchor").filter(":visible").last().focus()}},this)).on("load_node.jstree",a.proxy(function(b,c){c.status&&(c.node.id!==a.jstree.root||this._data.core.loaded||(this._data.core.loaded=!0,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.trigger("loaded")),this._data.core.ready||setTimeout(a.proxy(function(){if(this.element&&!this.get_container_ul().find(".jstree-loading").length){if(this._data.core.ready=!0,this._data.core.selected.length){if(this.settings.core.expand_selected_onload){var b=[],c,d;for(c=0,d=this._data.core.selected.length;d>c;c++)b=b.concat(this._model.data[this._data.core.selected[c]].parents);for(b=a.vakata.array_unique(b),c=0,d=b.length;d>c;c++)this.open_node(b[c],!1,0)}this.trigger("changed",{action:"ready",selected:this._data.core.selected})}this.trigger("ready")}},this),0))},this)).on("keypress.jstree",a.proxy(function(d){if(d.target.tagName&&"input"===d.target.tagName.toLowerCase())return!0;c&&clearTimeout(c),c=setTimeout(function(){b=""},500);var e=String.fromCharCode(d.which).toLowerCase(),f=this.element.find(".jstree-anchor").filter(":visible"),g=f.index(i.activeElement)||0,h=!1;if(b+=e,b.length>1){if(f.slice(g).each(a.proxy(function(c,d){return 0===a(d).text().toLowerCase().indexOf(b)?(a(d).focus(),h=!0,!1):void 0},this)),h)return;if(f.slice(0,g).each(a.proxy(function(c,d){return 0===a(d).text().toLowerCase().indexOf(b)?(a(d).focus(),h=!0,!1):void 0},this)),h)return}if(new RegExp("^"+e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")+"+$").test(b)){if(f.slice(g+1).each(a.proxy(function(b,c){return a(c).text().toLowerCase().charAt(0)===e?(a(c).focus(),h=!0,!1):void 0},this)),h)return;if(f.slice(0,g+1).each(a.proxy(function(b,c){return a(c).text().toLowerCase().charAt(0)===e?(a(c).focus(),h=!0,!1):void 0},this)),h)return}},this)).on("init.jstree",a.proxy(function(){var a=this.settings.core.themes;this._data.core.themes.dots=a.dots,this._data.core.themes.stripes=a.stripes,this._data.core.themes.icons=a.icons,this.set_theme(a.name||"default",a.url),this.set_theme_variant(a.variant)},this)).on("loading.jstree",a.proxy(function(){this[this._data.core.themes.dots?"show_dots":"hide_dots"](),this[this._data.core.themes.icons?"show_icons":"hide_icons"](),this[this._data.core.themes.stripes?"show_stripes":"hide_stripes"]()},this)).on("blur.jstree",".jstree-anchor",a.proxy(function(b){this._data.core.focused=null,a(b.currentTarget).filter(".jstree-hovered").mouseleave(),this.element.attr("tabindex","0")},this)).on("focus.jstree",".jstree-anchor",a.proxy(function(b){var c=this.get_node(b.currentTarget);c&&c.id&&(this._data.core.focused=c.id),this.element.find(".jstree-hovered").not(b.currentTarget).mouseleave(),a(b.currentTarget).mouseenter(),this.element.attr("tabindex","-1")},this)).on("focus.jstree",a.proxy(function(){if(+new Date-d>500&&!this._data.core.focused){d=0;var a=this.get_node(this.element.attr("aria-activedescendant"),!0);a&&a.find("> .jstree-anchor").focus()}},this)).on("mouseenter.jstree",".jstree-anchor",a.proxy(function(a){this.hover_node(a.currentTarget)},this)).on("mouseleave.jstree",".jstree-anchor",a.proxy(function(a){this.dehover_node(a.currentTarget)},this))},unbind:function(){this.element.off(".jstree"),a(i).off(".jstree-"+this._id)},trigger:function(a,b){b||(b={}),b.instance=this,this.element.triggerHandler(a.replace(".jstree","")+".jstree",b)},get_container:function(){return this.element},get_container_ul:function(){return this.element.children(".jstree-children").first()},get_string:function(b){var c=this.settings.core.strings;return a.isFunction(c)?c.call(this,b):c&&c[b]?c[b]:b},_firstChild:function(a){a=a?a.firstChild:null;while(null!==a&&1!==a.nodeType)a=a.nextSibling;return a},_nextSibling:function(a){a=a?a.nextSibling:null;while(null!==a&&1!==a.nodeType)a=a.nextSibling;return a},_previousSibling:function(a){a=a?a.previousSibling:null;while(null!==a&&1!==a.nodeType)a=a.previousSibling;return a},get_node:function(b,c){b&&b.id&&(b=b.id);var d;try{if(this._model.data[b])b=this._model.data[b];else if("string"==typeof b&&this._model.data[b.replace(/^#/,"")])b=this._model.data[b.replace(/^#/,"")];else if("string"==typeof b&&(d=a("#"+b.replace(a.jstree.idregex,"\\$&"),this.element)).length&&this._model.data[d.closest(".jstree-node").attr("id")])b=this._model.data[d.closest(".jstree-node").attr("id")];else if((d=a(b,this.element)).length&&this._model.data[d.closest(".jstree-node").attr("id")])b=this._model.data[d.closest(".jstree-node").attr("id")];else{if(!(d=a(b,this.element)).length||!d.hasClass("jstree"))return!1;b=this._model.data[a.jstree.root]}return c&&(b=b.id===a.jstree.root?this.element:a("#"+b.id.replace(a.jstree.idregex,"\\$&"),this.element)),b}catch(e){return!1}},get_path:function(b,c,d){if(b=b.parents?b:this.get_node(b),!b||b.id===a.jstree.root||!b.parents)return!1;var e,f,g=[];for(g.push(d?b.id:b.text),e=0,f=b.parents.length;f>e;e++)g.push(d?b.parents[e]:this.get_text(b.parents[e]));return g=g.reverse().slice(1),c?g.join(c):g},get_next_dom:function(b,c){var d;if(b=this.get_node(b,!0),b[0]===this.element[0]){d=this._firstChild(this.get_container_ul()[0]);while(d&&0===d.offsetHeight)d=this._nextSibling(d);return d?a(d):!1}if(!b||!b.length)return!1;if(c){d=b[0];do d=this._nextSibling(d);while(d&&0===d.offsetHeight);return d?a(d):!1}if(b.hasClass("jstree-open")){d=this._firstChild(b.children(".jstree-children")[0]);while(d&&0===d.offsetHeight)d=this._nextSibling(d);if(null!==d)return a(d)}d=b[0];do d=this._nextSibling(d);while(d&&0===d.offsetHeight);return null!==d?a(d):b.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first()},get_prev_dom:function(b,c){var d;if(b=this.get_node(b,!0),b[0]===this.element[0]){d=this.get_container_ul()[0].lastChild;while(d&&0===d.offsetHeight)d=this._previousSibling(d);return d?a(d):!1}if(!b||!b.length)return!1;if(c){d=b[0];do d=this._previousSibling(d);while(d&&0===d.offsetHeight);return d?a(d):!1}d=b[0];do d=this._previousSibling(d);while(d&&0===d.offsetHeight);if(null!==d){b=a(d);while(b.hasClass("jstree-open"))b=b.children(".jstree-children").first().children(".jstree-node:visible:last");return b}return d=b[0].parentNode.parentNode,d&&d.className&&-1!==d.className.indexOf("jstree-node")?a(d):!1},get_parent:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.parent:!1},get_children_dom:function(a){return a=this.get_node(a,!0),a[0]===this.element[0]?this.get_container_ul().children(".jstree-node"):a&&a.length?a.children(".jstree-children").children(".jstree-node"):!1},is_parent:function(a){return a=this.get_node(a),a&&(a.state.loaded===!1||a.children.length>0)},is_loaded:function(a){return a=this.get_node(a),a&&a.state.loaded},is_loading:function(a){return a=this.get_node(a),a&&a.state&&a.state.loading},is_open:function(a){return a=this.get_node(a),a&&a.state.opened},is_closed:function(a){return a=this.get_node(a),a&&this.is_parent(a)&&!a.state.opened},is_leaf:function(a){return!this.is_parent(a)},load_node:function(b,c){var d,e,f,g,h;if(a.isArray(b))return this._load_nodes(b.slice(),c),!0;if(b=this.get_node(b),!b)return c&&c.call(this,b,!1),!1;if(b.state.loaded){for(b.state.loaded=!1,d=0,e=b.children_d.length;e>d;d++){for(f=0,g=b.parents.length;g>f;f++)this._model.data[b.parents[f]].children_d=a.vakata.array_remove_item(this._model.data[b.parents[f]].children_d,b.children_d[d]);this._model.data[b.children_d[d]].state.selected&&(h=!0,this._data.core.selected=a.vakata.array_remove_item(this._data.core.selected,b.children_d[d])),delete this._model.data[b.children_d[d]]}b.children=[],b.children_d=[],h&&this.trigger("changed",{action:"load_node",node:b,selected:this._data.core.selected})}return b.state.failed=!1,b.state.loading=!0,this.get_node(b,!0).addClass("jstree-loading").attr("aria-busy",!0),this._load_node(b,a.proxy(function(a){b=this._model.data[b.id],b.state.loading=!1,b.state.loaded=a,b.state.failed=!b.state.loaded;var d=this.get_node(b,!0),e=0,f=0,g=this._model.data,h=!1;for(e=0,f=b.children.length;f>e;e++)if(g[b.children[e]]&&!g[b.children[e]].state.hidden){h=!0;break}b.state.loaded&&!h&&d&&d.length&&!d.hasClass("jstree-leaf")&&d.removeClass("jstree-closed jstree-open").addClass("jstree-leaf"),d.removeClass("jstree-loading").attr("aria-busy",!1),this.trigger("load_node",{node:b,status:a}),c&&c.call(this,b,a)},this)),!0},_load_nodes:function(a,b,c){var d=!0,e=function(){this._load_nodes(a,b,!0)},f=this._model.data,g,h,i=[];for(g=0,h=a.length;h>g;g++)!f[a[g]]||(f[a[g]].state.loaded||f[a[g]].state.failed)&&c||(this.is_loading(a[g])||this.load_node(a[g],e),d=!1);if(d){for(g=0,h=a.length;h>g;g++)f[a[g]]&&f[a[g]].state.loaded&&i.push(a[g]);b&&!b.done&&(b.call(this,i),b.done=!0)}},load_all:function(b,c){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var d=[],e=this._model.data,f=e[b.id].children_d,g,h;for(b.state&&!b.state.loaded&&d.push(b.id),g=0,h=f.length;h>g;g++)e[f[g]]&&e[f[g]].state&&!e[f[g]].state.loaded&&d.push(f[g]);d.length?this._load_nodes(d,function(){this.load_all(b,c)}):(c&&c.call(this,b),this.trigger("load_all",{node:b}))},_load_node:function(b,c){var d=this.settings.core.data,e;return d?a.isFunction(d)?d.call(this,b,a.proxy(function(d){d===!1&&c.call(this,!1),this["string"==typeof d?"_append_html_data":"_append_json_data"](b,"string"==typeof d?a(a.parseHTML(d)).filter(function(){return 3!==this.nodeType}):d,function(a){c.call(this,a)})},this)):"object"==typeof d?d.url?(d=a.extend(!0,{},d),a.isFunction(d.url)&&(d.url=d.url.call(this,b)),a.isFunction(d.data)&&(d.data=d.data.call(this,b)),a.ajax(d).done(a.proxy(function(d,e,f){var g=f.getResponseHeader("Content-Type");return g&&-1!==g.indexOf("json")||"object"==typeof d?this._append_json_data(b,d,function(a){c.call(this,a)}):g&&-1!==g.indexOf("html")||"string"==typeof d?this._append_html_data(b,a(a.parseHTML(d)).filter(function(){return 3!==this.nodeType}),function(a){c.call(this,a)}):(this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:b.id,xhr:f})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1))},this)).fail(a.proxy(function(a){c.call(this,!1),this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:b.id,xhr:a})},this.settings.core.error.call(this,this._data.core.last_error)},this))):(e=a.isArray(d)||a.isPlainObject(d)?JSON.parse(JSON.stringify(d)):d,b.id===a.jstree.root?this._append_json_data(b,e,function(a){c.call(this,a)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_05",reason:"Could not load node",data:JSON.stringify({id:b.id})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1))):"string"==typeof d?b.id===a.jstree.root?this._append_html_data(b,a(a.parseHTML(d)).filter(function(){return 3!==this.nodeType}),function(a){c.call(this,a)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_06",reason:"Could not load node",data:JSON.stringify({id:b.id})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1)):c.call(this,!1):b.id===a.jstree.root?this._append_html_data(b,this._data.core.original_container_html.clone(!0),function(a){c.call(this,a)}):c.call(this,!1)},_node_changed:function(a){a=this.get_node(a),a&&this._model.changed.push(a.id)},_append_html_data:function(b,c,d){b=this.get_node(b),b.children=[],b.children_d=[];var e=c.is("ul")?c.children():c,f=b.id,g=[],h=[],i=this._model.data,j=i[f],k=this._data.core.selected.length,l,m,n;for(e.each(a.proxy(function(b,c){l=this._parse_model_from_html(a(c),f,j.parents.concat()),l&&(g.push(l),h.push(l),i[l].children_d.length&&(h=h.concat(i[l].children_d)))},this)),j.children=g,j.children_d=h,m=0,n=j.parents.length;n>m;m++)i[j.parents[m]].children_d=i[j.parents[m]].children_d.concat(h);this.trigger("model",{nodes:h,parent:f}),f!==a.jstree.root?(this._node_changed(f),this.redraw()):(this.get_container_ul().children(".jstree-initial-node").remove(),this.redraw(!0)),this._data.core.selected.length!==k&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),d.call(this,!0)},_append_json_data:function(b,c,d,e){if(null!==this.element){b=this.get_node(b),b.children=[],b.children_d=[],c.d&&(c=c.d,"string"==typeof c&&(c=JSON.parse(c))),a.isArray(c)||(c=[c]);var f=null,g={df:this._model.default_state,dat:c,par:b.id,m:this._model.data,t_id:this._id,t_cnt:this._cnt,sel:this._data.core.selected},h=function(a,b){a.data&&(a=a.data);var c=a.dat,d=a.par,e=[],f=[],g=[],h=a.df,i=a.t_id,j=a.t_cnt,k=a.m,l=k[d],m=a.sel,n,o,p,q,r=function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e=a.id.toString(),f,i,j,l,m={id:e,text:a.text||"",icon:a.icon!==b?a.icon:!0,parent:c,parents:d,children:a.children||[],children_d:a.children_d||[],data:a.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(f in h)h.hasOwnProperty(f)&&(m.state[f]=h[f]);if(a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(m.icon=a.data.jstree.icon),(m.icon===b||null===m.icon||""===m.icon)&&(m.icon=!0),a&&a.data&&(m.data=a.data,a.data.jstree))for(f in a.data.jstree)a.data.jstree.hasOwnProperty(f)&&(m.state[f]=a.data.jstree[f]);if(a&&"object"==typeof a.state)for(f in a.state)a.state.hasOwnProperty(f)&&(m.state[f]=a.state[f]);if(a&&"object"==typeof a.li_attr)for(f in a.li_attr)a.li_attr.hasOwnProperty(f)&&(m.li_attr[f]=a.li_attr[f]);if(m.li_attr.id||(m.li_attr.id=e),a&&"object"==typeof a.a_attr)for(f in a.a_attr)a.a_attr.hasOwnProperty(f)&&(m.a_attr[f]=a.a_attr[f]);for(a&&a.children&&a.children===!0&&(m.state.loaded=!1,m.children=[],m.children_d=[]),k[m.id]=m,f=0,i=m.children.length;i>f;f++)j=r(k[m.children[f]],m.id,d),l=k[j],m.children_d.push(j),l.children_d.length&&(m.children_d=m.children_d.concat(l.children_d));return delete a.data,delete a.children,k[m.id].original=a,m.state.selected&&g.push(m.id),m.id},s=function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e=!1,f,l,m,n,o;do e="j"+i+"_"+ ++j;while(k[e]);o={id:!1,text:"string"==typeof a?a:"",icon:"object"==typeof a&&a.icon!==b?a.icon:!0,parent:c,parents:d,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(f in h)h.hasOwnProperty(f)&&(o.state[f]=h[f]);if(a&&a.id&&(o.id=a.id.toString()),a&&a.text&&(o.text=a.text),a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(o.icon=a.data.jstree.icon),(o.icon===b||null===o.icon||""===o.icon)&&(o.icon=!0),a&&a.data&&(o.data=a.data,a.data.jstree))for(f in a.data.jstree)a.data.jstree.hasOwnProperty(f)&&(o.state[f]=a.data.jstree[f]);if(a&&"object"==typeof a.state)for(f in a.state)a.state.hasOwnProperty(f)&&(o.state[f]=a.state[f]);if(a&&"object"==typeof a.li_attr)for(f in a.li_attr)a.li_attr.hasOwnProperty(f)&&(o.li_attr[f]=a.li_attr[f]);if(o.li_attr.id&&!o.id&&(o.id=o.li_attr.id.toString()),o.id||(o.id=e),o.li_attr.id||(o.li_attr.id=o.id),a&&"object"==typeof a.a_attr)for(f in a.a_attr)a.a_attr.hasOwnProperty(f)&&(o.a_attr[f]=a.a_attr[f]);if(a&&a.children&&a.children.length){for(f=0,l=a.children.length;l>f;f++)m=s(a.children[f],o.id,d),n=k[m],o.children.push(m),n.children_d.length&&(o.children_d=o.children_d.concat(n.children_d));o.children_d=o.children_d.concat(o.children)}return a&&a.children&&a.children===!0&&(o.state.loaded=!1,o.children=[],o.children_d=[]),delete a.data,delete a.children,o.original=a,k[o.id]=o,o.state.selected&&g.push(o.id),o.id};if(c.length&&c[0].id!==b&&c[0].parent!==b){for(o=0,p=c.length;p>o;o++)c[o].children||(c[o].children=[]),k[c[o].id.toString()]=c[o];for(o=0,p=c.length;p>o;o++)k[c[o].parent.toString()].children.push(c[o].id.toString()),l.children_d.push(c[o].id.toString());for(o=0,p=l.children.length;p>o;o++)n=r(k[l.children[o]],d,l.parents.concat()),f.push(n),k[n].children_d.length&&(f=f.concat(k[n].children_d));for(o=0,p=l.parents.length;p>o;o++)k[l.parents[o]].children_d=k[l.parents[o]].children_d.concat(f);q={cnt:j,mod:k,sel:m,par:d,dpc:f,add:g}}else{for(o=0,p=c.length;p>o;o++)n=s(c[o],d,l.parents.concat()),n&&(e.push(n),f.push(n),k[n].children_d.length&&(f=f.concat(k[n].children_d)));for(l.children=e,l.children_d=f,o=0,p=l.parents.length;p>o;o++)k[l.parents[o]].children_d=k[l.parents[o]].children_d.concat(f);q={cnt:j,mod:k,sel:m,par:d,dpc:f,add:g}}return"undefined"!=typeof window&&"undefined"!=typeof window.document?q:void postMessage(q)},i=function(b,c){if(null!==this.element){if(this._cnt=b.cnt,this._model.data=b.mod,c){var e,f,g=b.add,h=b.sel,i=this._data.core.selected.slice(),j=this._model.data;if(h.length!==i.length||a.vakata.array_unique(h.concat(i)).length!==h.length){for(e=0,f=h.length;f>e;e++)-1===a.inArray(h[e],g)&&-1===a.inArray(h[e],i)&&(j[h[e]].state.selected=!1);for(e=0,f=i.length;f>e;e++)-1===a.inArray(i[e],h)&&(j[i[e]].state.selected=!0)}}b.add.length&&(this._data.core.selected=this._data.core.selected.concat(b.add)),this.trigger("model",{nodes:b.dpc,parent:b.par}),b.par!==a.jstree.root?(this._node_changed(b.par),this.redraw()):this.redraw(!0),b.add.length&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),d.call(this,!0)}};if(this.settings.core.worker&&window.Blob&&window.URL&&window.Worker)try{null===this._wrk&&(this._wrk=window.URL.createObjectURL(new window.Blob(["self.onmessage = "+h.toString()],{type:"text/javascript"}))),!this._data.core.working||e?(this._data.core.working=!0,f=new window.Worker(this._wrk),f.onmessage=a.proxy(function(a){i.call(this,a.data,!0);try{f.terminate(),f=null}catch(b){}this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1},this),g.par?f.postMessage(g):this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1):this._data.core.worker_queue.push([b,c,d,!0])}catch(j){i.call(this,h(g),!1),this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1}else i.call(this,h(g),!1)}},_parse_model_from_html:function(c,d,e){e=e?[].concat(e):[],d&&e.unshift(d);var f,g,h=this._model.data,i={id:!1,text:!1,icon:!0,parent:d,parents:e,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1},j,k,l;for(j in this._model.default_state)this._model.default_state.hasOwnProperty(j)&&(i.state[j]=this._model.default_state[j]);if(k=a.vakata.attributes(c,!0),a.each(k,function(b,c){return c=a.trim(c),c.length?(i.li_attr[b]=c,void("id"===b&&(i.id=c.toString()))):!0}),k=c.children("a").first(),k.length&&(k=a.vakata.attributes(k,!0),a.each(k,function(b,c){c=a.trim(c),c.length&&(i.a_attr[b]=c)})),k=c.children("a").first().length?c.children("a").first().clone():c.clone(),k.children("ins, i, ul").remove(),k=k.html(),k=a("<div />").html(k),i.text=this.settings.core.force_text?k.text():k.html(),k=c.data(),i.data=k?a.extend(!0,{},k):null,i.state.opened=c.hasClass("jstree-open"),i.state.selected=c.children("a").hasClass("jstree-clicked"),i.state.disabled=c.children("a").hasClass("jstree-disabled"),i.data&&i.data.jstree)for(j in i.data.jstree)i.data.jstree.hasOwnProperty(j)&&(i.state[j]=i.data.jstree[j]);k=c.children("a").children(".jstree-themeicon"),k.length&&(i.icon=k.hasClass("jstree-themeicon-hidden")?!1:k.attr("rel")),i.state.icon!==b&&(i.icon=i.state.icon),(i.icon===b||null===i.icon||""===i.icon)&&(i.icon=!0),k=c.children("ul").children("li");do l="j"+this._id+"_"+ ++this._cnt;while(h[l]);return i.id=i.li_attr.id?i.li_attr.id.toString():l,k.length?(k.each(a.proxy(function(b,c){f=this._parse_model_from_html(a(c),i.id,e),g=this._model.data[f],i.children.push(f),g.children_d.length&&(i.children_d=i.children_d.concat(g.children_d))},this)),i.children_d=i.children_d.concat(i.children)):c.hasClass("jstree-closed")&&(i.state.loaded=!1),i.li_attr["class"]&&(i.li_attr["class"]=i.li_attr["class"].replace("jstree-closed","").replace("jstree-open","")),i.a_attr["class"]&&(i.a_attr["class"]=i.a_attr["class"].replace("jstree-clicked","").replace("jstree-disabled","")),h[i.id]=i,i.state.selected&&this._data.core.selected.push(i.id),i.id},_parse_model_from_flat_json:function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e=a.id.toString(),f=this._model.data,g=this._model.default_state,h,i,j,k,l={id:e,text:a.text||"",icon:a.icon!==b?a.icon:!0,parent:c,parents:d,children:a.children||[],children_d:a.children_d||[],data:a.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(h in g)g.hasOwnProperty(h)&&(l.state[h]=g[h]);if(a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(l.icon=a.data.jstree.icon),(l.icon===b||null===l.icon||""===l.icon)&&(l.icon=!0),a&&a.data&&(l.data=a.data,a.data.jstree))for(h in a.data.jstree)a.data.jstree.hasOwnProperty(h)&&(l.state[h]=a.data.jstree[h]);if(a&&"object"==typeof a.state)for(h in a.state)a.state.hasOwnProperty(h)&&(l.state[h]=a.state[h]);if(a&&"object"==typeof a.li_attr)for(h in a.li_attr)a.li_attr.hasOwnProperty(h)&&(l.li_attr[h]=a.li_attr[h]);if(l.li_attr.id||(l.li_attr.id=e),a&&"object"==typeof a.a_attr)for(h in a.a_attr)a.a_attr.hasOwnProperty(h)&&(l.a_attr[h]=a.a_attr[h]);for(a&&a.children&&a.children===!0&&(l.state.loaded=!1,l.children=[],l.children_d=[]),f[l.id]=l,h=0,i=l.children.length;i>h;h++)j=this._parse_model_from_flat_json(f[l.children[h]],l.id,d),k=f[j],l.children_d.push(j),k.children_d.length&&(l.children_d=l.children_d.concat(k.children_d));return delete a.data,delete a.children,f[l.id].original=a,l.state.selected&&this._data.core.selected.push(l.id),l.id},_parse_model_from_json:function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e=!1,f,g,h,i,j=this._model.data,k=this._model.default_state,l;do e="j"+this._id+"_"+ ++this._cnt;while(j[e]);l={id:!1,text:"string"==typeof a?a:"",icon:"object"==typeof a&&a.icon!==b?a.icon:!0,parent:c,parents:d,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(f in k)k.hasOwnProperty(f)&&(l.state[f]=k[f]);if(a&&a.id&&(l.id=a.id.toString()),a&&a.text&&(l.text=a.text),a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(l.icon=a.data.jstree.icon),(l.icon===b||null===l.icon||""===l.icon)&&(l.icon=!0),a&&a.data&&(l.data=a.data,a.data.jstree))for(f in a.data.jstree)a.data.jstree.hasOwnProperty(f)&&(l.state[f]=a.data.jstree[f]);if(a&&"object"==typeof a.state)for(f in a.state)a.state.hasOwnProperty(f)&&(l.state[f]=a.state[f]);if(a&&"object"==typeof a.li_attr)for(f in a.li_attr)a.li_attr.hasOwnProperty(f)&&(l.li_attr[f]=a.li_attr[f]);if(l.li_attr.id&&!l.id&&(l.id=l.li_attr.id.toString()),l.id||(l.id=e),l.li_attr.id||(l.li_attr.id=l.id),a&&"object"==typeof a.a_attr)for(f in a.a_attr)a.a_attr.hasOwnProperty(f)&&(l.a_attr[f]=a.a_attr[f]);if(a&&a.children&&a.children.length){for(f=0,g=a.children.length;g>f;f++)h=this._parse_model_from_json(a.children[f],l.id,d),i=j[h],l.children.push(h),i.children_d.length&&(l.children_d=l.children_d.concat(i.children_d));l.children_d=l.children_d.concat(l.children)}return a&&a.children&&a.children===!0&&(l.state.loaded=!1,l.children=[],l.children_d=[]),delete a.data,delete a.children,l.original=a,j[l.id]=l,l.state.selected&&this._data.core.selected.push(l.id),l.id},_redraw:function(){var b=this._model.force_full_redraw?this._model.data[a.jstree.root].children.concat([]):this._model.changed.concat([]),c=i.createElement("UL"),d,e,f,g=this._data.core.focused;for(e=0,f=b.length;f>e;e++)d=this.redraw_node(b[e],!0,this._model.force_full_redraw),d&&this._model.force_full_redraw&&c.appendChild(d);this._model.force_full_redraw&&(c.className=this.get_container_ul()[0].className,c.setAttribute("role","group"),this.element.empty().append(c)),null!==g&&(d=this.get_node(g,!0),d&&d.length&&d.children(".jstree-anchor")[0]!==i.activeElement?d.children(".jstree-anchor").focus():this._data.core.focused=null),this._model.force_full_redraw=!1,this._model.changed=[],this.trigger("redraw",{nodes:b})},redraw:function(a){a&&(this._model.force_full_redraw=!0),this._redraw()},draw_children:function(b){var c=this.get_node(b),d=!1,e=!1,f=!1,g=i;if(!c)return!1;if(c.id===a.jstree.root)return this.redraw(!0);if(b=this.get_node(b,!0),!b||!b.length)return!1;if(b.children(".jstree-children").remove(),b=b[0],c.children.length&&c.state.loaded){for(f=g.createElement("UL"),f.setAttribute("role","group"),f.className="jstree-children",d=0,e=c.children.length;e>d;d++)f.appendChild(this.redraw_node(c.children[d],!0,!0));b.appendChild(f)}},redraw_node:function(b,c,d,e){var f=this.get_node(b),g=!1,h=!1,k=!1,l=!1,m=!1,n=!1,o="",p=i,q=this._model.data,r=!1,s=!1,t=null,u=0,v=0,w=!1,x=!1;if(!f)return!1;if(f.id===a.jstree.root)return this.redraw(!0);if(c=c||0===f.children.length,b=i.querySelector?this.element[0].querySelector("#"+(-1!=="0123456789".indexOf(f.id[0])?"\\3"+f.id[0]+" "+f.id.substr(1).replace(a.jstree.idregex,"\\$&"):f.id.replace(a.jstree.idregex,"\\$&"))):i.getElementById(f.id))b=a(b),d||(g=b.parent().parent()[0],g===this.element[0]&&(g=null),h=b.index()),c||!f.children.length||b.children(".jstree-children").length||(c=!0), c||(k=b.children(".jstree-children")[0]),r=b.children(".jstree-anchor")[0]===i.activeElement,b.remove();else if(c=!0,!d){if(g=f.parent!==a.jstree.root?a("#"+f.parent.replace(a.jstree.idregex,"\\$&"),this.element)[0]:null,!(null===g||g&&q[f.parent].state.opened))return!1;h=a.inArray(f.id,null===g?q[a.jstree.root].children:q[f.parent].children)}b=j.cloneNode(!0),o="jstree-node ";for(l in f.li_attr)if(f.li_attr.hasOwnProperty(l)){if("id"===l)continue;"class"!==l?b.setAttribute(l,f.li_attr[l]):o+=f.li_attr[l]}for(f.a_attr.id||(f.a_attr.id=f.id+"_anchor"),b.setAttribute("aria-selected",!!f.state.selected),b.setAttribute("aria-level",f.parents.length),b.setAttribute("aria-labelledby",f.a_attr.id),f.state.disabled&&b.setAttribute("aria-disabled",!0),l=0,m=f.children.length;m>l;l++)if(!q[f.children[l]].state.hidden){w=!0;break}if(null!==f.parent&&q[f.parent]&&!f.state.hidden&&(l=a.inArray(f.id,q[f.parent].children),x=f.id,-1!==l))for(l++,m=q[f.parent].children.length;m>l;l++)if(q[q[f.parent].children[l]].state.hidden||(x=q[f.parent].children[l]),x!==f.id)break;f.state.hidden&&(o+=" jstree-hidden"),f.state.loaded&&!w?o+=" jstree-leaf":(o+=f.state.opened&&f.state.loaded?" jstree-open":" jstree-closed",b.setAttribute("aria-expanded",f.state.opened&&f.state.loaded)),x===f.id&&(o+=" jstree-last"),b.id=f.id,b.className=o,o=(f.state.selected?" jstree-clicked":"")+(f.state.disabled?" jstree-disabled":"");for(m in f.a_attr)if(f.a_attr.hasOwnProperty(m)){if("href"===m&&"#"===f.a_attr[m])continue;"class"!==m?b.childNodes[1].setAttribute(m,f.a_attr[m]):o+=" "+f.a_attr[m]}if(o.length&&(b.childNodes[1].className="jstree-anchor "+o),(f.icon&&f.icon!==!0||f.icon===!1)&&(f.icon===!1?b.childNodes[1].childNodes[0].className+=" jstree-themeicon-hidden":-1===f.icon.indexOf("/")&&-1===f.icon.indexOf(".")?b.childNodes[1].childNodes[0].className+=" "+f.icon+" jstree-themeicon-custom":(b.childNodes[1].childNodes[0].style.backgroundImage="url("+f.icon+")",b.childNodes[1].childNodes[0].style.backgroundPosition="center center",b.childNodes[1].childNodes[0].style.backgroundSize="auto",b.childNodes[1].childNodes[0].className+=" jstree-themeicon-custom")),this.settings.core.force_text?b.childNodes[1].appendChild(p.createTextNode(f.text)):b.childNodes[1].innerHTML+=f.text,c&&f.children.length&&(f.state.opened||e)&&f.state.loaded){for(n=p.createElement("UL"),n.setAttribute("role","group"),n.className="jstree-children",l=0,m=f.children.length;m>l;l++)n.appendChild(this.redraw_node(f.children[l],c,!0));b.appendChild(n)}if(k&&b.appendChild(k),!d){for(g||(g=this.element[0]),l=0,m=g.childNodes.length;m>l;l++)if(g.childNodes[l]&&g.childNodes[l].className&&-1!==g.childNodes[l].className.indexOf("jstree-children")){t=g.childNodes[l];break}t||(t=p.createElement("UL"),t.setAttribute("role","group"),t.className="jstree-children",g.appendChild(t)),g=t,h<g.childNodes.length?g.insertBefore(b,g.childNodes[h]):g.appendChild(b),r&&(u=this.element[0].scrollTop,v=this.element[0].scrollLeft,b.childNodes[1].focus(),this.element[0].scrollTop=u,this.element[0].scrollLeft=v)}return f.state.opened&&!f.state.loaded&&(f.state.opened=!1,setTimeout(a.proxy(function(){this.open_node(f.id,!1,0)},this),0)),b},open_node:function(c,d,e){var f,g,h,i;if(a.isArray(c)){for(c=c.slice(),f=0,g=c.length;g>f;f++)this.open_node(c[f],d,e);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?(e=e===b?this.settings.core.animation:e,this.is_closed(c)?this.is_loaded(c)?(h=this.get_node(c,!0),i=this,h.length&&(e&&h.children(".jstree-children").length&&h.children(".jstree-children").stop(!0,!0),c.children.length&&!this._firstChild(h.children(".jstree-children")[0])&&this.draw_children(c),e?(this.trigger("before_open",{node:c}),h.children(".jstree-children").css("display","none").end().removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded",!0).children(".jstree-children").stop(!0,!0).slideDown(e,function(){this.style.display="",i.trigger("after_open",{node:c})})):(this.trigger("before_open",{node:c}),h[0].className=h[0].className.replace("jstree-closed","jstree-open"),h[0].setAttribute("aria-expanded",!0))),c.state.opened=!0,d&&d.call(this,c,!0),h.length||this.trigger("before_open",{node:c}),this.trigger("open_node",{node:c}),e&&h.length||this.trigger("after_open",{node:c}),!0):this.is_loading(c)?setTimeout(a.proxy(function(){this.open_node(c,d,e)},this),500):void this.load_node(c,function(a,b){return b?this.open_node(a,d,e):d?d.call(this,a,!1):!1}):(d&&d.call(this,c,!1),!1)):!1},_open_to:function(b){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var c,d,e=b.parents;for(c=0,d=e.length;d>c;c+=1)c!==a.jstree.root&&this.open_node(e[c],!1,0);return a("#"+b.id.replace(a.jstree.idregex,"\\$&"),this.element)},close_node:function(c,d){var e,f,g,h;if(a.isArray(c)){for(c=c.slice(),e=0,f=c.length;f>e;e++)this.close_node(c[e],d);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?this.is_closed(c)?!1:(d=d===b?this.settings.core.animation:d,g=this,h=this.get_node(c,!0),h.length&&(d?h.children(".jstree-children").attr("style","display:block !important").end().removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded",!1).children(".jstree-children").stop(!0,!0).slideUp(d,function(){this.style.display="",h.children(".jstree-children").remove(),g.trigger("after_close",{node:c})}):(h[0].className=h[0].className.replace("jstree-open","jstree-closed"),h.attr("aria-expanded",!1).children(".jstree-children").remove())),c.state.opened=!1,this.trigger("close_node",{node:c}),void(d&&h.length||this.trigger("after_close",{node:c}))):!1},toggle_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.toggle_node(b[c]);return!0}return this.is_closed(b)?this.open_node(b):this.is_open(b)?this.close_node(b):void 0},open_all:function(b,c,d){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var e=b.id===a.jstree.root?this.get_container_ul():this.get_node(b,!0),f,g,h;if(!e.length){for(f=0,g=b.children_d.length;g>f;f++)this.is_closed(this._model.data[b.children_d[f]])&&(this._model.data[b.children_d[f]].state.opened=!0);return this.trigger("open_all",{node:b})}d=d||e,h=this,e=this.is_closed(b)?e.find(".jstree-closed").addBack():e.find(".jstree-closed"),e.each(function(){h.open_node(this,function(a,b){b&&this.is_parent(a)&&this.open_all(a,c,d)},c||0)}),0===d.find(".jstree-closed").length&&this.trigger("open_all",{node:this.get_node(d)})},close_all:function(b,c){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var d=b.id===a.jstree.root?this.get_container_ul():this.get_node(b,!0),e=this,f,g;for(d.length&&(d=this.is_open(b)?d.find(".jstree-open").addBack():d.find(".jstree-open"),a(d.get().reverse()).each(function(){e.close_node(this,c||0)})),f=0,g=b.children_d.length;g>f;f++)this._model.data[b.children_d[f]].state.opened=!1;this.trigger("close_all",{node:b})},is_disabled:function(a){return a=this.get_node(a),a&&a.state&&a.state.disabled},enable_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.enable_node(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.state.disabled=!1,this.get_node(b,!0).children(".jstree-anchor").removeClass("jstree-disabled").attr("aria-disabled",!1),void this.trigger("enable_node",{node:b})):!1},disable_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.disable_node(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.state.disabled=!0,this.get_node(b,!0).children(".jstree-anchor").addClass("jstree-disabled").attr("aria-disabled",!0),void this.trigger("disable_node",{node:b})):!1},hide_node:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.hide_node(b[d],!0);return this.redraw(),!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?void(b.state.hidden||(b.state.hidden=!0,this._node_changed(b.parent),c||this.redraw(),this.trigger("hide_node",{node:b}))):!1},show_node:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.show_node(b[d],!0);return this.redraw(),!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?void(b.state.hidden&&(b.state.hidden=!1,this._node_changed(b.parent),c||this.redraw(),this.trigger("show_node",{node:b}))):!1},hide_all:function(b){var c,d=this._model.data,e=[];for(c in d)d.hasOwnProperty(c)&&c!==a.jstree.root&&!d[c].state.hidden&&(d[c].state.hidden=!0,e.push(c));return this._model.force_full_redraw=!0,b||this.redraw(),this.trigger("hide_all",{nodes:e}),e},show_all:function(b){var c,d=this._model.data,e=[];for(c in d)d.hasOwnProperty(c)&&c!==a.jstree.root&&d[c].state.hidden&&(d[c].state.hidden=!1,e.push(c));return this._model.force_full_redraw=!0,b||this.redraw(),this.trigger("show_all",{nodes:e}),e},activate_node:function(a,c){if(this.is_disabled(a))return!1;if(c&&"object"==typeof c||(c={}),this._data.core.last_clicked=this._data.core.last_clicked&&this._data.core.last_clicked.id!==b?this.get_node(this._data.core.last_clicked.id):null,this._data.core.last_clicked&&!this._data.core.last_clicked.state.selected&&(this._data.core.last_clicked=null),!this._data.core.last_clicked&&this._data.core.selected.length&&(this._data.core.last_clicked=this.get_node(this._data.core.selected[this._data.core.selected.length-1])),this.settings.core.multiple&&(c.metaKey||c.ctrlKey||c.shiftKey)&&(!c.shiftKey||this._data.core.last_clicked&&this.get_parent(a)&&this.get_parent(a)===this._data.core.last_clicked.parent))if(c.shiftKey){var d=this.get_node(a).id,e=this._data.core.last_clicked.id,f=this.get_node(this._data.core.last_clicked.parent).children,g=!1,h,i;for(h=0,i=f.length;i>h;h+=1)f[h]===d&&(g=!g),f[h]===e&&(g=!g),this.is_disabled(f[h])||!g&&f[h]!==d&&f[h]!==e?this.deselect_node(f[h],!0,c):this.select_node(f[h],!0,!1,c);this.trigger("changed",{action:"select_node",node:this.get_node(a),selected:this._data.core.selected,event:c})}else this.is_selected(a)?this.deselect_node(a,!1,c):this.select_node(a,!1,!1,c);else!this.settings.core.multiple&&(c.metaKey||c.ctrlKey||c.shiftKey)&&this.is_selected(a)?this.deselect_node(a,!1,c):(this.deselect_all(!0),this.select_node(a,!1,!1,c),this._data.core.last_clicked=this.get_node(a));this.trigger("activate_node",{node:this.get_node(a),event:c})},hover_node:function(a){if(a=this.get_node(a,!0),!a||!a.length||a.children(".jstree-hovered").length)return!1;var b=this.element.find(".jstree-hovered"),c=this.element;b&&b.length&&this.dehover_node(b),a.children(".jstree-anchor").addClass("jstree-hovered"),this.trigger("hover_node",{node:this.get_node(a)}),setTimeout(function(){c.attr("aria-activedescendant",a[0].id)},0)},dehover_node:function(a){return a=this.get_node(a,!0),a&&a.length&&a.children(".jstree-hovered").length?(a.children(".jstree-anchor").removeClass("jstree-hovered"),void this.trigger("dehover_node",{node:this.get_node(a)})):!1},select_node:function(b,c,d,e){var f,g,h,i;if(a.isArray(b)){for(b=b.slice(),g=0,h=b.length;h>g;g++)this.select_node(b[g],c,d,e);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=this.get_node(b,!0),void(b.state.selected||(b.state.selected=!0,this._data.core.selected.push(b.id),d||(f=this._open_to(b)),f&&f.length&&f.attr("aria-selected",!0).children(".jstree-anchor").addClass("jstree-clicked"),this.trigger("select_node",{node:b,selected:this._data.core.selected,event:e}),c||this.trigger("changed",{action:"select_node",node:b,selected:this._data.core.selected,event:e})))):!1},deselect_node:function(b,c,d){var e,f,g;if(a.isArray(b)){for(b=b.slice(),e=0,f=b.length;f>e;e++)this.deselect_node(b[e],c,d);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(g=this.get_node(b,!0),void(b.state.selected&&(b.state.selected=!1,this._data.core.selected=a.vakata.array_remove_item(this._data.core.selected,b.id),g.length&&g.attr("aria-selected",!1).children(".jstree-anchor").removeClass("jstree-clicked"),this.trigger("deselect_node",{node:b,selected:this._data.core.selected,event:d}),c||this.trigger("changed",{action:"deselect_node",node:b,selected:this._data.core.selected,event:d})))):!1},select_all:function(b){var c=this._data.core.selected.concat([]),d,e;for(this._data.core.selected=this._model.data[a.jstree.root].children_d.concat(),d=0,e=this._data.core.selected.length;e>d;d++)this._model.data[this._data.core.selected[d]]&&(this._model.data[this._data.core.selected[d]].state.selected=!0);this.redraw(!0),this.trigger("select_all",{selected:this._data.core.selected}),b||this.trigger("changed",{action:"select_all",selected:this._data.core.selected,old_selection:c})},deselect_all:function(a){var b=this._data.core.selected.concat([]),c,d;for(c=0,d=this._data.core.selected.length;d>c;c++)this._model.data[this._data.core.selected[c]]&&(this._model.data[this._data.core.selected[c]].state.selected=!1);this._data.core.selected=[],this.element.find(".jstree-clicked").removeClass("jstree-clicked").parent().attr("aria-selected",!1),this.trigger("deselect_all",{selected:this._data.core.selected,node:b}),a||this.trigger("changed",{action:"deselect_all",selected:this._data.core.selected,old_selection:b})},is_selected:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.state.selected:!1},get_selected:function(b){return b?a.map(this._data.core.selected,a.proxy(function(a){return this.get_node(a)},this)):this._data.core.selected.slice()},get_top_selected:function(b){var c=this.get_selected(!0),d={},e,f,g,h;for(e=0,f=c.length;f>e;e++)d[c[e].id]=c[e];for(e=0,f=c.length;f>e;e++)for(g=0,h=c[e].children_d.length;h>g;g++)d[c[e].children_d[g]]&&delete d[c[e].children_d[g]];c=[];for(e in d)d.hasOwnProperty(e)&&c.push(e);return b?a.map(c,a.proxy(function(a){return this.get_node(a)},this)):c},get_bottom_selected:function(b){var c=this.get_selected(!0),d=[],e,f;for(e=0,f=c.length;f>e;e++)c[e].children.length||d.push(c[e].id);return b?a.map(d,a.proxy(function(a){return this.get_node(a)},this)):d},get_state:function(){var b={core:{open:[],scroll:{left:this.element.scrollLeft(),top:this.element.scrollTop()},selected:[]}},c;for(c in this._model.data)this._model.data.hasOwnProperty(c)&&c!==a.jstree.root&&(this._model.data[c].state.opened&&b.core.open.push(c),this._model.data[c].state.selected&&b.core.selected.push(c));return b},set_state:function(c,d){if(c){if(c.core){var e,f,g,h,i;if(c.core.open)return a.isArray(c.core.open)&&c.core.open.length?this._load_nodes(c.core.open,function(a){this.open_node(a,!1,0),delete c.core.open,this.set_state(c,d)},!0):(delete c.core.open,this.set_state(c,d)),!1;if(c.core.scroll)return c.core.scroll&&c.core.scroll.left!==b&&this.element.scrollLeft(c.core.scroll.left),c.core.scroll&&c.core.scroll.top!==b&&this.element.scrollTop(c.core.scroll.top),delete c.core.scroll,this.set_state(c,d),!1;if(c.core.selected)return h=this,this.deselect_all(),a.each(c.core.selected,function(a,b){h.select_node(b,!1,!0)}),delete c.core.selected,this.set_state(c,d),!1;for(i in c)c.hasOwnProperty(i)&&"core"!==i&&-1===a.inArray(i,this.settings.plugins)&&delete c[i];if(a.isEmptyObject(c.core))return delete c.core,this.set_state(c,d),!1}return a.isEmptyObject(c)?(c=null,d&&d.call(this),this.trigger("set_state"),!1):!0}return!1},refresh:function(b,c){this._data.core.state=c===!0?{}:this.get_state(),c&&a.isFunction(c)&&(this._data.core.state=c.call(this,this._data.core.state)),this._cnt=0,this._model.data={},this._model.data[a.jstree.root]={id:a.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this._data.core.selected=[],this._data.core.last_clicked=null,this._data.core.focused=null;var d=this.get_container_ul()[0].className;b||(this.element.html("<ul class='"+d+"' role='group'><li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading")),this.load_node(a.jstree.root,function(b,c){c&&(this.get_container_ul()[0].className=d,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.set_state(a.extend(!0,{},this._data.core.state),function(){this.trigger("refresh")})),this._data.core.state=null})},refresh_node:function(b){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var c=[],d=[],e=this._data.core.selected.concat([]);d.push(b.id),b.state.opened===!0&&c.push(b.id),this.get_node(b,!0).find(".jstree-open").each(function(){c.push(this.id)}),this._load_nodes(d,a.proxy(function(a){this.open_node(c,!1,0),this.select_node(this._data.core.selected),this.trigger("refresh_node",{node:b,nodes:a})},this))},set_id:function(b,c){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var d,e,f=this._model.data;for(c=c.toString(),f[b.parent].children[a.inArray(b.id,f[b.parent].children)]=c,d=0,e=b.parents.length;e>d;d++)f[b.parents[d]].children_d[a.inArray(b.id,f[b.parents[d]].children_d)]=c;for(d=0,e=b.children.length;e>d;d++)f[b.children[d]].parent=c;for(d=0,e=b.children_d.length;e>d;d++)f[b.children_d[d]].parents[a.inArray(b.id,f[b.children_d[d]].parents)]=c;return d=a.inArray(b.id,this._data.core.selected),-1!==d&&(this._data.core.selected[d]=c),d=this.get_node(b.id,!0),d&&(d.attr("id",c).children(".jstree-anchor").attr("id",c+"_anchor").end().attr("aria-labelledby",c+"_anchor"),this.element.attr("aria-activedescendant")===b.id&&this.element.attr("aria-activedescendant",c)),delete f[b.id],b.id=c,b.li_attr.id=c,f[c]=b,!0},get_text:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.text:!1},set_text:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.set_text(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.text=c,this.get_node(b,!0).length&&this.redraw_node(b.id),this.trigger("set_text",{obj:b,text:c}),!0):!1},get_json:function(b,c,d){if(b=this.get_node(b||a.jstree.root),!b)return!1;c&&c.flat&&!d&&(d=[]);var e={id:b.id,text:b.text,icon:this.get_icon(b),li_attr:a.extend(!0,{},b.li_attr),a_attr:a.extend(!0,{},b.a_attr),state:{},data:c&&c.no_data?!1:a.extend(!0,{},b.data)},f,g;if(c&&c.flat?e.parent=b.parent:e.children=[],!c||!c.no_state)for(f in b.state)b.state.hasOwnProperty(f)&&(e.state[f]=b.state[f]);if(c&&c.no_id&&(delete e.id,e.li_attr&&e.li_attr.id&&delete e.li_attr.id,e.a_attr&&e.a_attr.id&&delete e.a_attr.id),c&&c.flat&&b.id!==a.jstree.root&&d.push(e),!c||!c.no_children)for(f=0,g=b.children.length;g>f;f++)c&&c.flat?this.get_json(b.children[f],c,d):e.children.push(this.get_json(b.children[f],c));return c&&c.flat?d:b.id===a.jstree.root?e.children:e},create_node:function(c,d,e,f,g){if(null===c&&(c=a.jstree.root),c=this.get_node(c),!c)return!1;if(e=e===b?"last":e,!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(c))return this.load_node(c,function(){this.create_node(c,d,e,f,!0)});d||(d={text:this.get_string("New node")}),"string"==typeof d&&(d={text:d}),d.text===b&&(d.text=this.get_string("New node"));var h,i,j,k;switch(c.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":h=this.get_node(c.parent),e=a.inArray(c.id,h.children),c=h;break;case"after":h=this.get_node(c.parent),e=a.inArray(c.id,h.children)+1,c=h;break;case"inside":case"first":e=0;break;case"last":e=c.children.length;break;default:e||(e=0)}if(e>c.children.length&&(e=c.children.length),d.id||(d.id=!0),!this.check("create_node",d,c,e))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(d.id===!0&&delete d.id,d=this._parse_model_from_json(d,c.id,c.parents.concat()),!d)return!1;for(h=this.get_node(d),i=[],i.push(d),i=i.concat(h.children_d),this.trigger("model",{nodes:i,parent:c.id}),c.children_d=c.children_d.concat(i),j=0,k=c.parents.length;k>j;j++)this._model.data[c.parents[j]].children_d=this._model.data[c.parents[j]].children_d.concat(i);for(d=h,h=[],j=0,k=c.children.length;k>j;j++)h[j>=e?j+1:j]=c.children[j];return h[e]=d.id,c.children=h,this.redraw_node(c,!0),f&&f.call(this,this.get_node(d)),this.trigger("create_node",{node:this.get_node(d),parent:c.id,position:e}),d.id},rename_node:function(b,c){var d,e,f;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.rename_node(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=b.text,this.check("rename_node",b,this.get_parent(b),c)?(this.set_text(b,c),this.trigger("rename_node",{node:b,text:c,old:f}),!0):(this.settings.core.error.call(this,this._data.core.last_error),!1)):!1},delete_node:function(b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.delete_node(b[c]);return!0}if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;if(e=this.get_node(b.parent),f=a.inArray(b.id,e.children),l=!1,!this.check("delete_node",b,e,f))return this.settings.core.error.call(this,this._data.core.last_error),!1;for(-1!==f&&(e.children=a.vakata.array_remove(e.children,f)),g=b.children_d.concat([]),g.push(b.id),j=0,k=g.length;k>j;j++){for(h=0,i=b.parents.length;i>h;h++)f=a.inArray(g[j],this._model.data[b.parents[h]].children_d),-1!==f&&(this._model.data[b.parents[h]].children_d=a.vakata.array_remove(this._model.data[b.parents[h]].children_d,f));this._model.data[g[j]].state.selected&&(l=!0,f=a.inArray(g[j],this._data.core.selected),-1!==f&&(this._data.core.selected=a.vakata.array_remove(this._data.core.selected,f)))}for(this.trigger("delete_node",{node:b,parent:e.id}),l&&this.trigger("changed",{action:"delete_node",node:b,selected:this._data.core.selected,parent:e.id}),j=0,k=g.length;k>j;j++)delete this._model.data[g[j]];return-1!==a.inArray(this._data.core.focused,g)&&(this._data.core.focused=null,m=this.element[0].scrollTop,n=this.element[0].scrollLeft,e.id===a.jstree.root?this.get_node(this._model.data[a.jstree.root].children[0],!0).children(".jstree-anchor").focus():this.get_node(e,!0).children(".jstree-anchor").focus(),this.element[0].scrollTop=m,this.element[0].scrollLeft=n),this.redraw_node(e,!0),!0},check:function(b,c,d,e,f){c=c&&c.id?c:this.get_node(c),d=d&&d.id?d:this.get_node(d);var g=b.match(/^move_node|copy_node|create_node$/i)?d:c,h=this.settings.core.check_callback;return"move_node"!==b&&"copy_node"!==b||f&&f.is_multi||c.id!==d.id&&a.inArray(c.id,d.children)!==e&&-1===a.inArray(d.id,c.children_d)?(g&&g.data&&(g=g.data),g&&g.functions&&(g.functions[b]===!1||g.functions[b]===!0)?(g.functions[b]===!1&&(this._data.core.last_error={error:"check",plugin:"core",id:"core_02",reason:"Node data prevents function: "+b,data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})}),g.functions[b]):h===!1||a.isFunction(h)&&h.call(this,b,c,d,e,f)===!1||h&&h[b]===!1?(this._data.core.last_error={error:"check",plugin:"core",id:"core_03",reason:"User config for core.check_callback prevents function: "+b,data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})},!1):!0):(this._data.core.last_error={error:"check",plugin:"core",id:"core_01",reason:"Moving parent inside child",data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})},!1)},last_error:function(){return this._data.core.last_error},move_node:function(c,d,e,f,g,h,i){var j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(d=this.get_node(d),e=e===b?0:e,!d)return!1;if(!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(d))return this.load_node(d,function(){this.move_node(c,d,e,f,!0,!1,i)});if(a.isArray(c)){if(1!==c.length){for(j=0,k=c.length;k>j;j++)(r=this.move_node(c[j],d,e,f,g,!1,i))&&(d=r,e="after");return this.redraw(),!0}c=c[0]}if(c=c&&c.id?c:this.get_node(c),!c||c.id===a.jstree.root)return!1;if(l=(c.parent||a.jstree.root).toString(),n=e.toString().match(/^(before|after)$/)&&d.id!==a.jstree.root?this.get_node(d.parent):d,o=i?i:this._model.data[c.id]?this:a.jstree.reference(c.id),p=!o||!o._id||this._id!==o._id,m=o&&o._id&&l&&o._model.data[l]&&o._model.data[l].children?a.inArray(c.id,o._model.data[l].children):-1,o&&o._id&&(c=o._model.data[c.id]),p)return(r=this.copy_node(c,d,e,f,g,!1,i))?(o&&o.delete_node(c),r):!1;switch(d.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":e=a.inArray(d.id,n.children);break;case"after":e=a.inArray(d.id,n.children)+1;break;case"inside":case"first":e=0;break;case"last":e=n.children.length;break;default:e||(e=0)}if(e>n.children.length&&(e=n.children.length),!this.check("move_node",c,n,e,{core:!0,origin:i,is_multi:o&&o._id&&o._id!==this._id,is_foreign:!o||!o._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(c.parent===n.id){for(q=n.children.concat(),r=a.inArray(c.id,q),-1!==r&&(q=a.vakata.array_remove(q,r),e>r&&e--),r=[],s=0,t=q.length;t>s;s++)r[s>=e?s+1:s]=q[s];r[e]=c.id,n.children=r,this._node_changed(n.id),this.redraw(n.id===a.jstree.root)}else{for(r=c.children_d.concat(),r.push(c.id),s=0,t=c.parents.length;t>s;s++){for(q=[],w=o._model.data[c.parents[s]].children_d,u=0,v=w.length;v>u;u++)-1===a.inArray(w[u],r)&&q.push(w[u]);o._model.data[c.parents[s]].children_d=q}for(o._model.data[l].children=a.vakata.array_remove_item(o._model.data[l].children,c.id),s=0,t=n.parents.length;t>s;s++)this._model.data[n.parents[s]].children_d=this._model.data[n.parents[s]].children_d.concat(r);for(q=[],s=0,t=n.children.length;t>s;s++)q[s>=e?s+1:s]=n.children[s];for(q[e]=c.id,n.children=q,n.children_d.push(c.id),n.children_d=n.children_d.concat(c.children_d),c.parent=n.id,r=n.parents.concat(),r.unshift(n.id),w=c.parents.length,c.parents=r,r=r.concat(),s=0,t=c.children_d.length;t>s;s++)this._model.data[c.children_d[s]].parents=this._model.data[c.children_d[s]].parents.slice(0,-1*w),Array.prototype.push.apply(this._model.data[c.children_d[s]].parents,r);(l===a.jstree.root||n.id===a.jstree.root)&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||(this._node_changed(l),this._node_changed(n.id)),h||this.redraw()}return f&&f.call(this,c,n,e),this.trigger("move_node",{node:c,parent:n.id,position:e,old_parent:l,old_position:m,is_multi:o&&o._id&&o._id!==this._id,is_foreign:!o||!o._id,old_instance:o,new_instance:this}),c.id},copy_node:function(c,d,e,f,g,h,i){var j,k,l,m,n,o,p,q,r,s,t;if(d=this.get_node(d),e=e===b?0:e,!d)return!1;if(!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(d))return this.load_node(d,function(){this.copy_node(c,d,e,f,!0,!1,i)});if(a.isArray(c)){if(1!==c.length){for(j=0,k=c.length;k>j;j++)(m=this.copy_node(c[j],d,e,f,g,!0,i))&&(d=m,e="after");return this.redraw(),!0}c=c[0]}if(c=c&&c.id?c:this.get_node(c),!c||c.id===a.jstree.root)return!1;switch(q=(c.parent||a.jstree.root).toString(),r=e.toString().match(/^(before|after)$/)&&d.id!==a.jstree.root?this.get_node(d.parent):d,s=i?i:this._model.data[c.id]?this:a.jstree.reference(c.id),t=!s||!s._id||this._id!==s._id,s&&s._id&&(c=s._model.data[c.id]),d.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":e=a.inArray(d.id,r.children);break;case"after":e=a.inArray(d.id,r.children)+1;break;case"inside":case"first":e=0;break;case"last":e=r.children.length;break;default:e||(e=0)}if(e>r.children.length&&(e=r.children.length),!this.check("copy_node",c,r,e,{core:!0,origin:i,is_multi:s&&s._id&&s._id!==this._id,is_foreign:!s||!s._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(p=s?s.get_json(c,{no_id:!0,no_data:!0,no_state:!0}):c,!p)return!1;if(p.id===!0&&delete p.id,p=this._parse_model_from_json(p,r.id,r.parents.concat()),!p)return!1;for(m=this.get_node(p),c&&c.state&&c.state.loaded===!1&&(m.state.loaded=!1),l=[],l.push(p),l=l.concat(m.children_d),this.trigger("model",{nodes:l,parent:r.id}),n=0,o=r.parents.length;o>n;n++)this._model.data[r.parents[n]].children_d=this._model.data[r.parents[n]].children_d.concat(l);for(l=[],n=0,o=r.children.length;o>n;n++)l[n>=e?n+1:n]=r.children[n];return l[e]=m.id,r.children=l,r.children_d.push(m.id),r.children_d=r.children_d.concat(m.children_d),r.id===a.jstree.root&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||this._node_changed(r.id),h||this.redraw(r.id===a.jstree.root),f&&f.call(this,m,r,e),this.trigger("copy_node",{node:m,original:c,parent:r.id,position:e,old_parent:q,old_position:s&&s._id&&q&&s._model.data[q]&&s._model.data[q].children?a.inArray(c.id,s._model.data[q].children):-1,is_multi:s&&s._id&&s._id!==this._id,is_foreign:!s||!s._id,old_instance:s,new_instance:this}),m.id},cut:function(b){if(b||(b=this._data.core.selected.concat()),a.isArray(b)||(b=[b]),!b.length)return!1;var c=[],g,h,i;for(h=0,i=b.length;i>h;h++)g=this.get_node(b[h]),g&&g.id&&g.id!==a.jstree.root&&c.push(g);return c.length?(d=c,f=this,e="move_node",void this.trigger("cut",{node:b})):!1},copy:function(b){if(b||(b=this._data.core.selected.concat()),a.isArray(b)||(b=[b]),!b.length)return!1;var c=[],g,h,i;for(h=0,i=b.length;i>h;h++)g=this.get_node(b[h]),g&&g.id&&g.id!==a.jstree.root&&c.push(g);return c.length?(d=c,f=this,e="copy_node",void this.trigger("copy",{node:b})):!1},get_buffer:function(){return{mode:e,node:d,inst:f}},can_paste:function(){return e!==!1&&d!==!1},paste:function(a,b){return a=this.get_node(a),a&&e&&e.match(/^(copy_node|move_node)$/)&&d?(this[e](d,a,b,!1,!1,!1,f)&&this.trigger("paste",{parent:a.id,node:d,mode:e}),d=!1,e=!1,void(f=!1)):!1},clear_buffer:function(){d=!1,e=!1,f=!1,this.trigger("clear_buffer")},edit:function(b,c,d){var e,f,g,h,i,j,k,l,m,n=!1;return(b=this.get_node(b))?this.settings.core.check_callback===!1?(this._data.core.last_error={error:"check",plugin:"core",id:"core_07",reason:"Could not edit node because of check_callback"},this.settings.core.error.call(this,this._data.core.last_error),!1):(m=b,c="string"==typeof c?c:b.text,this.set_text(b,""),b=this._open_to(b),m.text=c,e=this._data.core.rtl,f=this.element.width(),this._data.core.focused=m.id,g=b.children(".jstree-anchor").focus(),h=a("<span>"),i=c,j=a("<div />",{css:{position:"absolute",top:"-200px",left:e?"0px":"-1000px",visibility:"hidden"}}).appendTo("body"),k=a("<input />",{value:i,"class":"jstree-rename-input",css:{padding:"0",border:"1px solid silver","box-sizing":"border-box",display:"inline-block",height:this._data.core.li_height+"px",lineHeight:this._data.core.li_height+"px",width:"150px"},blur:a.proxy(function(c){c.stopImmediatePropagation(),c.preventDefault();var e=h.children(".jstree-rename-input"),f=e.val(),k=this.settings.core.force_text,l;""===f&&(f=i),j.remove(),h.replaceWith(g),h.remove(),i=k?i:a("<div></div>").append(a.parseHTML(i)).html(),this.set_text(b,i),l=!!this.rename_node(b,k?a("<div></div>").text(f).text():a("<div></div>").append(a.parseHTML(f)).html()),l||this.set_text(b,i),this._data.core.focused=m.id,setTimeout(a.proxy(function(){var a=this.get_node(m.id,!0);a.length&&(this._data.core.focused=m.id,a.children(".jstree-anchor").focus())},this),0),d&&d.call(this,m,l,n)},this),keydown:function(a){var b=a.which;27===b&&(n=!0,this.value=i),(27===b||13===b||37===b||38===b||39===b||40===b||32===b)&&a.stopImmediatePropagation(),(27===b||13===b)&&(a.preventDefault(),this.blur())},click:function(a){a.stopImmediatePropagation()},mousedown:function(a){a.stopImmediatePropagation()},keyup:function(a){k.width(Math.min(j.text("pW"+this.value).width(),f))},keypress:function(a){return 13===a.which?!1:void 0}}),l={fontFamily:g.css("fontFamily")||"",fontSize:g.css("fontSize")||"",fontWeight:g.css("fontWeight")||"",fontStyle:g.css("fontStyle")||"",fontStretch:g.css("fontStretch")||"",fontVariant:g.css("fontVariant")||"",letterSpacing:g.css("letterSpacing")||"",wordSpacing:g.css("wordSpacing")||""},h.attr("class",g.attr("class")).append(g.contents().clone()).append(k),g.replaceWith(h),j.css(l),void k.css(l).width(Math.min(j.text("pW"+k[0].value).width(),f))[0].select()):!1},set_theme:function(b,c){if(!b)return!1;if(c===!0){var d=this.settings.core.themes.dir;d||(d=a.jstree.path+"/themes"),c=d+"/"+b+"/style.css"}c&&-1===a.inArray(c,g)&&(a("head").append('<link rel="stylesheet" href="'+c+'" type="text/css" />'),g.push(c)),this._data.core.themes.name&&this.element.removeClass("jstree-"+this._data.core.themes.name), this._data.core.themes.name=b,this.element.addClass("jstree-"+b),this.element[this.settings.core.themes.responsive?"addClass":"removeClass"]("jstree-"+b+"-responsive"),this.trigger("set_theme",{theme:b})},get_theme:function(){return this._data.core.themes.name},set_theme_variant:function(a){this._data.core.themes.variant&&this.element.removeClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant),this._data.core.themes.variant=a,a&&this.element.addClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant)},get_theme_variant:function(){return this._data.core.themes.variant},show_stripes:function(){this._data.core.themes.stripes=!0,this.get_container_ul().addClass("jstree-striped")},hide_stripes:function(){this._data.core.themes.stripes=!1,this.get_container_ul().removeClass("jstree-striped")},toggle_stripes:function(){this._data.core.themes.stripes?this.hide_stripes():this.show_stripes()},show_dots:function(){this._data.core.themes.dots=!0,this.get_container_ul().removeClass("jstree-no-dots")},hide_dots:function(){this._data.core.themes.dots=!1,this.get_container_ul().addClass("jstree-no-dots")},toggle_dots:function(){this._data.core.themes.dots?this.hide_dots():this.show_dots()},show_icons:function(){this._data.core.themes.icons=!0,this.get_container_ul().removeClass("jstree-no-icons")},hide_icons:function(){this._data.core.themes.icons=!1,this.get_container_ul().addClass("jstree-no-icons")},toggle_icons:function(){this._data.core.themes.icons?this.hide_icons():this.show_icons()},set_icon:function(c,d){var e,f,g,h;if(a.isArray(c)){for(c=c.slice(),e=0,f=c.length;f>e;e++)this.set_icon(c[e],d);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?(h=c.icon,c.icon=d===!0||null===d||d===b||""===d?!0:d,g=this.get_node(c,!0).children(".jstree-anchor").children(".jstree-themeicon"),d===!1?this.hide_icon(c):d===!0||null===d||d===b||""===d?(g.removeClass("jstree-themeicon-custom "+h).css("background","").removeAttr("rel"),h===!1&&this.show_icon(c)):-1===d.indexOf("/")&&-1===d.indexOf(".")?(g.removeClass(h).css("background",""),g.addClass(d+" jstree-themeicon-custom").attr("rel",d),h===!1&&this.show_icon(c)):(g.removeClass(h).css("background",""),g.addClass("jstree-themeicon-custom").css("background","url('"+d+"') center center no-repeat").attr("rel",d),h===!1&&this.show_icon(c)),!0):!1},get_icon:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.icon:!1},hide_icon:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.hide_icon(b[c]);return!0}return b=this.get_node(b),b&&b!==a.jstree.root?(b.icon=!1,this.get_node(b,!0).children(".jstree-anchor").children(".jstree-themeicon").addClass("jstree-themeicon-hidden"),!0):!1},show_icon:function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.show_icon(b[c]);return!0}return b=this.get_node(b),b&&b!==a.jstree.root?(e=this.get_node(b,!0),b.icon=e.length?e.children(".jstree-anchor").children(".jstree-themeicon").attr("rel"):!0,b.icon||(b.icon=!0),e.children(".jstree-anchor").children(".jstree-themeicon").removeClass("jstree-themeicon-hidden"),!0):!1}},a.vakata={},a.vakata.attributes=function(b,c){b=a(b)[0];var d=c?{}:[];return b&&b.attributes&&a.each(b.attributes,function(b,e){-1===a.inArray(e.name.toLowerCase(),["style","contenteditable","hasfocus","tabindex"])&&null!==e.value&&""!==a.trim(e.value)&&(c?d[e.name]=e.value:d.push(e.name))}),d},a.vakata.array_unique=function(a){var c=[],d,e,f,g={};for(d=0,f=a.length;f>d;d++)g[a[d]]===b&&(c.push(a[d]),g[a[d]]=!0);return c},a.vakata.array_remove=function(a,b,c){var d=a.slice((c||b)+1||a.length);return a.length=0>b?a.length+b:b,a.push.apply(a,d),a},a.vakata.array_remove_item=function(b,c){var d=a.inArray(c,b);return-1!==d?a.vakata.array_remove(b,d):b},a.jstree.plugins.changed=function(a,b){var c=[];this.trigger=function(a,d){var e,f;if(d||(d={}),"changed"===a.replace(".jstree","")){d.changed={selected:[],deselected:[]};var g={};for(e=0,f=c.length;f>e;e++)g[c[e]]=1;for(e=0,f=d.selected.length;f>e;e++)g[d.selected[e]]?g[d.selected[e]]=2:d.changed.selected.push(d.selected[e]);for(e=0,f=c.length;f>e;e++)1===g[c[e]]&&d.changed.deselected.push(c[e]);c=d.selected.slice()}b.trigger.call(this,a,d)},this.refresh=function(a,d){return c=[],b.refresh.apply(this,arguments)}};var m=i.createElement("I");m.className="jstree-icon jstree-checkbox",m.setAttribute("role","presentation"),a.jstree.defaults.checkbox={visible:!0,three_state:!0,whole_node:!0,keep_selected_style:!0,cascade:"",tie_selection:!0},a.jstree.plugins.checkbox=function(c,d){this.bind=function(){d.bind.call(this),this._data.checkbox.uto=!1,this._data.checkbox.selected=[],this.settings.checkbox.three_state&&(this.settings.checkbox.cascade="up+down+undetermined"),this.element.on("init.jstree",a.proxy(function(){this._data.checkbox.visible=this.settings.checkbox.visible,this.settings.checkbox.keep_selected_style||this.element.addClass("jstree-checkbox-no-clicked"),this.settings.checkbox.tie_selection&&this.element.addClass("jstree-checkbox-selection")},this)).on("loading.jstree",a.proxy(function(){this[this._data.checkbox.visible?"show_checkboxes":"hide_checkboxes"]()},this)),-1!==this.settings.checkbox.cascade.indexOf("undetermined")&&this.element.on("changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree",a.proxy(function(){this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(a.proxy(this._undetermined,this),50)},this)),this.settings.checkbox.tie_selection||this.element.on("model.jstree",a.proxy(function(a,b){var c=this._model.data,d=c[b.parent],e=b.nodes,f,g;for(f=0,g=e.length;g>f;f++)c[e[f]].state.checked=c[e[f]].state.checked||c[e[f]].original&&c[e[f]].original.state&&c[e[f]].original.state.checked,c[e[f]].state.checked&&this._data.checkbox.selected.push(e[f])},this)),(-1!==this.settings.checkbox.cascade.indexOf("up")||-1!==this.settings.checkbox.cascade.indexOf("down"))&&this.element.on("model.jstree",a.proxy(function(b,c){var d=this._model.data,e=d[c.parent],f=c.nodes,g=[],h,i,j,k,l,m,n=this.settings.checkbox.cascade,o=this.settings.checkbox.tie_selection;if(-1!==n.indexOf("down"))if(e.state[o?"selected":"checked"]){for(i=0,j=f.length;j>i;i++)d[f[i]].state[o?"selected":"checked"]=!0;this._data[o?"core":"checkbox"].selected=this._data[o?"core":"checkbox"].selected.concat(f)}else for(i=0,j=f.length;j>i;i++)if(d[f[i]].state[o?"selected":"checked"]){for(k=0,l=d[f[i]].children_d.length;l>k;k++)d[d[f[i]].children_d[k]].state[o?"selected":"checked"]=!0;this._data[o?"core":"checkbox"].selected=this._data[o?"core":"checkbox"].selected.concat(d[f[i]].children_d)}if(-1!==n.indexOf("up")){for(i=0,j=e.children_d.length;j>i;i++)d[e.children_d[i]].children.length||g.push(d[e.children_d[i]].parent);for(g=a.vakata.array_unique(g),k=0,l=g.length;l>k;k++){e=d[g[k]];while(e&&e.id!==a.jstree.root){for(h=0,i=0,j=e.children.length;j>i;i++)h+=d[e.children[i]].state[o?"selected":"checked"];if(h!==j)break;e.state[o?"selected":"checked"]=!0,this._data[o?"core":"checkbox"].selected.push(e.id),m=this.get_node(e,!0),m&&m.length&&m.attr("aria-selected",!0).children(".jstree-anchor").addClass(o?"jstree-clicked":"jstree-checked"),e=this.get_node(e.parent)}}}this._data[o?"core":"checkbox"].selected=a.vakata.array_unique(this._data[o?"core":"checkbox"].selected)},this)).on(this.settings.checkbox.tie_selection?"select_node.jstree":"check_node.jstree",a.proxy(function(b,c){var d=c.node,e=this._model.data,f=this.get_node(d.parent),g=this.get_node(d,!0),h,i,j,k,l=this.settings.checkbox.cascade,m=this.settings.checkbox.tie_selection;if(-1!==l.indexOf("down"))for(this._data[m?"core":"checkbox"].selected=a.vakata.array_unique(this._data[m?"core":"checkbox"].selected.concat(d.children_d)),h=0,i=d.children_d.length;i>h;h++)k=e[d.children_d[h]],k.state[m?"selected":"checked"]=!0,k&&k.original&&k.original.state&&k.original.state.undetermined&&(k.original.state.undetermined=!1);if(-1!==l.indexOf("up"))while(f&&f.id!==a.jstree.root){for(j=0,h=0,i=f.children.length;i>h;h++)j+=e[f.children[h]].state[m?"selected":"checked"];if(j!==i)break;f.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(f.id),k=this.get_node(f,!0),k&&k.length&&k.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"),f=this.get_node(f.parent)}-1!==l.indexOf("down")&&g.length&&g.find(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked").parent().attr("aria-selected",!0)},this)).on(this.settings.checkbox.tie_selection?"deselect_all.jstree":"uncheck_all.jstree",a.proxy(function(b,c){var d=this.get_node(a.jstree.root),e=this._model.data,f,g,h;for(f=0,g=d.children_d.length;g>f;f++)h=e[d.children_d[f]],h&&h.original&&h.original.state&&h.original.state.undetermined&&(h.original.state.undetermined=!1)},this)).on(this.settings.checkbox.tie_selection?"deselect_node.jstree":"uncheck_node.jstree",a.proxy(function(b,c){var d=c.node,e=this.get_node(d,!0),f,g,h,i=this.settings.checkbox.cascade,j=this.settings.checkbox.tie_selection;if(d&&d.original&&d.original.state&&d.original.state.undetermined&&(d.original.state.undetermined=!1),-1!==i.indexOf("down"))for(f=0,g=d.children_d.length;g>f;f++)h=this._model.data[d.children_d[f]],h.state[j?"selected":"checked"]=!1,h&&h.original&&h.original.state&&h.original.state.undetermined&&(h.original.state.undetermined=!1);if(-1!==i.indexOf("up"))for(f=0,g=d.parents.length;g>f;f++)h=this._model.data[d.parents[f]],h.state[j?"selected":"checked"]=!1,h&&h.original&&h.original.state&&h.original.state.undetermined&&(h.original.state.undetermined=!1),h=this.get_node(d.parents[f],!0),h&&h.length&&h.attr("aria-selected",!1).children(".jstree-anchor").removeClass(j?"jstree-clicked":"jstree-checked");for(h=[],f=0,g=this._data[j?"core":"checkbox"].selected.length;g>f;f++)-1!==i.indexOf("down")&&-1!==a.inArray(this._data[j?"core":"checkbox"].selected[f],d.children_d)||-1!==i.indexOf("up")&&-1!==a.inArray(this._data[j?"core":"checkbox"].selected[f],d.parents)||h.push(this._data[j?"core":"checkbox"].selected[f]);this._data[j?"core":"checkbox"].selected=a.vakata.array_unique(h),-1!==i.indexOf("down")&&e.length&&e.find(".jstree-anchor").removeClass(j?"jstree-clicked":"jstree-checked").parent().attr("aria-selected",!1)},this)),-1!==this.settings.checkbox.cascade.indexOf("up")&&this.element.on("delete_node.jstree",a.proxy(function(b,c){var d=this.get_node(c.parent),e=this._model.data,f,g,h,i,j=this.settings.checkbox.tie_selection;while(d&&d.id!==a.jstree.root&&!d.state[j?"selected":"checked"]){for(h=0,f=0,g=d.children.length;g>f;f++)h+=e[d.children[f]].state[j?"selected":"checked"];if(!(g>0&&h===g))break;d.state[j?"selected":"checked"]=!0,this._data[j?"core":"checkbox"].selected.push(d.id),i=this.get_node(d,!0),i&&i.length&&i.attr("aria-selected",!0).children(".jstree-anchor").addClass(j?"jstree-clicked":"jstree-checked"),d=this.get_node(d.parent)}},this)).on("move_node.jstree",a.proxy(function(b,c){var d=c.is_multi,e=c.old_parent,f=this.get_node(c.parent),g=this._model.data,h,i,j,k,l,m=this.settings.checkbox.tie_selection;if(!d){h=this.get_node(e);while(h&&h.id!==a.jstree.root&&!h.state[m?"selected":"checked"]){for(i=0,j=0,k=h.children.length;k>j;j++)i+=g[h.children[j]].state[m?"selected":"checked"];if(!(k>0&&i===k))break;h.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(h.id),l=this.get_node(h,!0),l&&l.length&&l.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"),h=this.get_node(h.parent)}}h=f;while(h&&h.id!==a.jstree.root){for(i=0,j=0,k=h.children.length;k>j;j++)i+=g[h.children[j]].state[m?"selected":"checked"];if(i===k)h.state[m?"selected":"checked"]||(h.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(h.id),l=this.get_node(h,!0),l&&l.length&&l.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"));else{if(!h.state[m?"selected":"checked"])break;h.state[m?"selected":"checked"]=!1,this._data[m?"core":"checkbox"].selected=a.vakata.array_remove_item(this._data[m?"core":"checkbox"].selected,h.id),l=this.get_node(h,!0),l&&l.length&&l.attr("aria-selected",!1).children(".jstree-anchor").removeClass(m?"jstree-clicked":"jstree-checked")}h=this.get_node(h.parent)}},this))},this._undetermined=function(){if(null!==this.element){var c,d,e,f,g={},h=this._model.data,i=this.settings.checkbox.tie_selection,j=this._data[i?"core":"checkbox"].selected,k=[],l=this;for(c=0,d=j.length;d>c;c++)if(h[j[c]]&&h[j[c]].parents)for(e=0,f=h[j[c]].parents.length;f>e;e++)g[h[j[c]].parents[e]]===b&&h[j[c]].parents[e]!==a.jstree.root&&(g[h[j[c]].parents[e]]=!0,k.push(h[j[c]].parents[e]));for(this.element.find(".jstree-closed").not(":has(.jstree-children)").each(function(){var i=l.get_node(this),j;if(i.state.loaded){for(c=0,d=i.children_d.length;d>c;c++)if(j=h[i.children_d[c]],!j.state.loaded&&j.original&&j.original.state&&j.original.state.undetermined&&j.original.state.undetermined===!0)for(g[j.id]===b&&j.id!==a.jstree.root&&(g[j.id]=!0,k.push(j.id)),e=0,f=j.parents.length;f>e;e++)g[j.parents[e]]===b&&j.parents[e]!==a.jstree.root&&(g[j.parents[e]]=!0,k.push(j.parents[e]))}else if(i.original&&i.original.state&&i.original.state.undetermined&&i.original.state.undetermined===!0)for(g[i.id]===b&&i.id!==a.jstree.root&&(g[i.id]=!0,k.push(i.id)),e=0,f=i.parents.length;f>e;e++)g[i.parents[e]]===b&&i.parents[e]!==a.jstree.root&&(g[i.parents[e]]=!0,k.push(i.parents[e]))}),this.element.find(".jstree-undetermined").removeClass("jstree-undetermined"),c=0,d=k.length;d>c;c++)h[k[c]].state[i?"selected":"checked"]||(j=this.get_node(k[c],!0),j&&j.length&&j.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-undetermined"))}},this.redraw_node=function(b,c,e,f){if(b=d.redraw_node.apply(this,arguments)){var g,h,i=null,j=null;for(g=0,h=b.childNodes.length;h>g;g++)if(b.childNodes[g]&&b.childNodes[g].className&&-1!==b.childNodes[g].className.indexOf("jstree-anchor")){i=b.childNodes[g];break}i&&(!this.settings.checkbox.tie_selection&&this._model.data[b.id].state.checked&&(i.className+=" jstree-checked"),j=m.cloneNode(!1),this._model.data[b.id].state.checkbox_disabled&&(j.className+=" jstree-checkbox-disabled"),i.insertBefore(j,i.childNodes[0]))}return e||-1===this.settings.checkbox.cascade.indexOf("undetermined")||(this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(a.proxy(this._undetermined,this),50)),b},this.show_checkboxes=function(){this._data.core.themes.checkboxes=!0,this.get_container_ul().removeClass("jstree-no-checkboxes")},this.hide_checkboxes=function(){this._data.core.themes.checkboxes=!1,this.get_container_ul().addClass("jstree-no-checkboxes")},this.toggle_checkboxes=function(){this._data.core.themes.checkboxes?this.hide_checkboxes():this.show_checkboxes()},this.is_undetermined=function(b){b=this.get_node(b);var c=this.settings.checkbox.cascade,d,e,f=this.settings.checkbox.tie_selection,g=this._data[f?"core":"checkbox"].selected,h=this._model.data;if(!b||b.state[f?"selected":"checked"]===!0||-1===c.indexOf("undetermined")||-1===c.indexOf("down")&&-1===c.indexOf("up"))return!1;if(!b.state.loaded&&b.original.state.undetermined===!0)return!0;for(d=0,e=b.children_d.length;e>d;d++)if(-1!==a.inArray(b.children_d[d],g)||!h[b.children_d[d]].state.loaded&&h[b.children_d[d]].original.state.undetermined)return!0;return!1},this.disable_checkbox=function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.disable_checkbox(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(e=this.get_node(b,!0),void(b.state.checkbox_disabled||(b.state.checkbox_disabled=!0,e&&e.length&&e.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-checkbox-disabled"),this.trigger("disable_checkbox",{node:b})))):!1},this.enable_checkbox=function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.enable_checkbox(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(e=this.get_node(b,!0),void(b.state.checkbox_disabled&&(b.state.checkbox_disabled=!1,e&&e.length&&e.children(".jstree-anchor").children(".jstree-checkbox").removeClass("jstree-checkbox-disabled"),this.trigger("enable_checkbox",{node:b})))):!1},this.activate_node=function(b,c){return a(c.target).hasClass("jstree-checkbox-disabled")?!1:(this.settings.checkbox.tie_selection&&(this.settings.checkbox.whole_node||a(c.target).hasClass("jstree-checkbox"))&&(c.ctrlKey=!0),this.settings.checkbox.tie_selection||!this.settings.checkbox.whole_node&&!a(c.target).hasClass("jstree-checkbox")?d.activate_node.call(this,b,c):this.is_disabled(b)?!1:(this.is_checked(b)?this.uncheck_node(b,c):this.check_node(b,c),void this.trigger("activate_node",{node:this.get_node(b)})))},this.check_node=function(b,c){if(this.settings.checkbox.tie_selection)return this.select_node(b,!1,!0,c);var d,e,f,g;if(a.isArray(b)){for(b=b.slice(),e=0,f=b.length;f>e;e++)this.check_node(b[e],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(d=this.get_node(b,!0),void(b.state.checked||(b.state.checked=!0,this._data.checkbox.selected.push(b.id),d&&d.length&&d.children(".jstree-anchor").addClass("jstree-checked"),this.trigger("check_node",{node:b,selected:this._data.checkbox.selected,event:c})))):!1},this.uncheck_node=function(b,c){if(this.settings.checkbox.tie_selection)return this.deselect_node(b,!1,c);var d,e,f;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.uncheck_node(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=this.get_node(b,!0),void(b.state.checked&&(b.state.checked=!1,this._data.checkbox.selected=a.vakata.array_remove_item(this._data.checkbox.selected,b.id),f.length&&f.children(".jstree-anchor").removeClass("jstree-checked"),this.trigger("uncheck_node",{node:b,selected:this._data.checkbox.selected,event:c})))):!1},this.check_all=function(){if(this.settings.checkbox.tie_selection)return this.select_all();var b=this._data.checkbox.selected.concat([]),c,d;for(this._data.checkbox.selected=this._model.data[a.jstree.root].children_d.concat(),c=0,d=this._data.checkbox.selected.length;d>c;c++)this._model.data[this._data.checkbox.selected[c]]&&(this._model.data[this._data.checkbox.selected[c]].state.checked=!0);this.redraw(!0),this.trigger("check_all",{selected:this._data.checkbox.selected})},this.uncheck_all=function(){if(this.settings.checkbox.tie_selection)return this.deselect_all();var a=this._data.checkbox.selected.concat([]),b,c;for(b=0,c=this._data.checkbox.selected.length;c>b;b++)this._model.data[this._data.checkbox.selected[b]]&&(this._model.data[this._data.checkbox.selected[b]].state.checked=!1);this._data.checkbox.selected=[],this.element.find(".jstree-checked").removeClass("jstree-checked"),this.trigger("uncheck_all",{selected:this._data.checkbox.selected,node:a})},this.is_checked=function(b){return this.settings.checkbox.tie_selection?this.is_selected(b):(b=this.get_node(b),b&&b.id!==a.jstree.root?b.state.checked:!1)},this.get_checked=function(b){return this.settings.checkbox.tie_selection?this.get_selected(b):b?a.map(this._data.checkbox.selected,a.proxy(function(a){return this.get_node(a)},this)):this._data.checkbox.selected},this.get_top_checked=function(b){if(this.settings.checkbox.tie_selection)return this.get_top_selected(b);var c=this.get_checked(!0),d={},e,f,g,h;for(e=0,f=c.length;f>e;e++)d[c[e].id]=c[e];for(e=0,f=c.length;f>e;e++)for(g=0,h=c[e].children_d.length;h>g;g++)d[c[e].children_d[g]]&&delete d[c[e].children_d[g]];c=[];for(e in d)d.hasOwnProperty(e)&&c.push(e);return b?a.map(c,a.proxy(function(a){return this.get_node(a)},this)):c},this.get_bottom_checked=function(b){if(this.settings.checkbox.tie_selection)return this.get_bottom_selected(b);var c=this.get_checked(!0),d=[],e,f;for(e=0,f=c.length;f>e;e++)c[e].children.length||d.push(c[e].id);return b?a.map(d,a.proxy(function(a){return this.get_node(a)},this)):d},this.load_node=function(b,c){var e,f,g,h,i,j;if(!a.isArray(b)&&!this.settings.checkbox.tie_selection&&(j=this.get_node(b),j&&j.state.loaded))for(e=0,f=j.children_d.length;f>e;e++)this._model.data[j.children_d[e]].state.checked&&(i=!0,this._data.checkbox.selected=a.vakata.array_remove_item(this._data.checkbox.selected,j.children_d[e]));return d.load_node.apply(this,arguments)},this.get_state=function(){var a=d.get_state.apply(this,arguments);return this.settings.checkbox.tie_selection?a:(a.checkbox=this._data.checkbox.selected.slice(),a)},this.set_state=function(b,c){var e=d.set_state.apply(this,arguments);if(e&&b.checkbox){if(!this.settings.checkbox.tie_selection){this.uncheck_all();var f=this;a.each(b.checkbox,function(a,b){f.check_node(b)})}return delete b.checkbox,this.set_state(b,c),!1}return e},this.refresh=function(a,b){return this.settings.checkbox.tie_selection||(this._data.checkbox.selected=[]),d.refresh.apply(this,arguments)}},a.jstree.defaults.conditionalselect=function(){return!0},a.jstree.plugins.conditionalselect=function(a,b){this.activate_node=function(a,c){this.settings.conditionalselect.call(this,this.get_node(a),c)&&b.activate_node.call(this,a,c)}},a.jstree.defaults.contextmenu={select_node:!0,show_at_node:!0,items:function(b,c){return{create:{separator_before:!1,separator_after:!0,_disabled:!1,label:"Create",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.create_node(d,{},"last",function(a){setTimeout(function(){c.edit(a)},0)})}},rename:{separator_before:!1,separator_after:!1,_disabled:!1,label:"Rename",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.edit(d)}},remove:{separator_before:!1,icon:!1,separator_after:!1,_disabled:!1,label:"Delete",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.delete_node(c.get_selected()):c.delete_node(d)}},ccp:{separator_before:!0,icon:!1,separator_after:!1,label:"Edit",action:!1,submenu:{cut:{separator_before:!1,separator_after:!1,label:"Cut",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.cut(c.get_top_selected()):c.cut(d)}},copy:{separator_before:!1,icon:!1,separator_after:!1,label:"Copy",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.copy(c.get_top_selected()):c.copy(d)}},paste:{separator_before:!1,icon:!1,_disabled:function(b){return!a.jstree.reference(b.reference).can_paste()},separator_after:!1,label:"Paste",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.paste(d)}}}}}}},a.jstree.plugins.contextmenu=function(c,d){this.bind=function(){d.bind.call(this);var b=0,c=null,e,f;this.element.on("contextmenu.jstree",".jstree-anchor",a.proxy(function(a,d){a.preventDefault(),b=a.ctrlKey?+new Date:0,(d||c)&&(b=+new Date+1e4),c&&clearTimeout(c),this.is_loading(a.currentTarget)||this.show_contextmenu(a.currentTarget,a.pageX,a.pageY,a)},this)).on("click.jstree",".jstree-anchor",a.proxy(function(c){this._data.contextmenu.visible&&(!b||+new Date-b>250)&&a.vakata.context.hide(),b=0},this)).on("touchstart.jstree",".jstree-anchor",function(b){b.originalEvent&&b.originalEvent.changedTouches&&b.originalEvent.changedTouches[0]&&(e=b.pageX,f=b.pageY,c=setTimeout(function(){a(b.currentTarget).trigger("contextmenu",!0)},750))}).on("touchmove.vakata.jstree",function(a){c&&a.originalEvent&&a.originalEvent.changedTouches&&a.originalEvent.changedTouches[0]&&(Math.abs(e-a.pageX)>50||Math.abs(f-a.pageY)>50)&&clearTimeout(c)}).on("touchend.vakata.jstree",function(a){c&&clearTimeout(c)}),a(i).on("context_hide.vakata.jstree",a.proxy(function(){this._data.contextmenu.visible=!1},this))},this.teardown=function(){this._data.contextmenu.visible&&a.vakata.context.hide(),d.teardown.call(this)},this.show_contextmenu=function(c,d,e,f){if(c=this.get_node(c),!c||c.id===a.jstree.root)return!1;var g=this.settings.contextmenu,h=this.get_node(c,!0),i=h.children(".jstree-anchor"),j=!1,k=!1;(g.show_at_node||d===b||e===b)&&(j=i.offset(),d=j.left,e=j.top+this._data.core.li_height),this.settings.contextmenu.select_node&&!this.is_selected(c)&&this.activate_node(c,f),k=g.items,a.isFunction(k)&&(k=k.call(this,c,a.proxy(function(a){this._show_contextmenu(c,d,e,a)},this))),a.isPlainObject(k)&&this._show_contextmenu(c,d,e,k)},this._show_contextmenu=function(b,c,d,e){var f=this.get_node(b,!0),g=f.children(".jstree-anchor");a(i).one("context_show.vakata.jstree",a.proxy(function(b,c){var d="jstree-contextmenu jstree-"+this.get_theme()+"-contextmenu";a(c.element).addClass(d)},this)),this._data.contextmenu.visible=!0,a.vakata.context.show(g,{x:c,y:d},e),this.trigger("show_contextmenu",{node:b,x:c,y:d})}},function(a){var b=!1,c={element:!1,reference:!1,position_x:0,position_y:0,items:[],html:"",is_visible:!1};a.vakata.context={settings:{hide_onmouseleave:0,icons:!0},_trigger:function(b){a(i).triggerHandler("context_"+b+".vakata",{reference:c.reference,element:c.element,position:{x:c.position_x,y:c.position_y}})},_execute:function(b){return b=c.items[b],b&&(!b._disabled||a.isFunction(b._disabled)&&!b._disabled({item:b,reference:c.reference,element:c.element}))&&b.action?b.action.call(null,{item:b,reference:c.reference,element:c.element,position:{x:c.position_x,y:c.position_y}}):!1},_parse:function(b,d){if(!b)return!1;d||(c.html="",c.items=[]);var e="",f=!1,g;return d&&(e+="<ul>"),a.each(b,function(b,d){return d?(c.items.push(d),!f&&d.separator_before&&(e+="<li class='vakata-context-separator'><a href='#' "+(a.vakata.context.settings.icons?"":'style="margin-left:0px;"')+"> </a></li>"),f=!1,e+="<li class='"+(d._class||"")+(d._disabled===!0||a.isFunction(d._disabled)&&d._disabled({item:d,reference:c.reference,element:c.element})?" vakata-contextmenu-disabled ":"")+"' "+(d.shortcut?" data-shortcut='"+d.shortcut+"' ":"")+">",e+="<a href='#' rel='"+(c.items.length-1)+"'>",a.vakata.context.settings.icons&&(e+="<i ",d.icon&&(e+=-1!==d.icon.indexOf("/")||-1!==d.icon.indexOf(".")?" style='background:url(\""+d.icon+"\") center center no-repeat' ":" class='"+d.icon+"' "),e+="></i><span class='vakata-contextmenu-sep'> </span>"),e+=(a.isFunction(d.label)?d.label({item:b,reference:c.reference,element:c.element}):d.label)+(d.shortcut?' <span class="vakata-contextmenu-shortcut vakata-contextmenu-shortcut-'+d.shortcut+'">'+(d.shortcut_label||"")+"</span>":"")+"</a>",d.submenu&&(g=a.vakata.context._parse(d.submenu,!0),g&&(e+=g)),e+="</li>",void(d.separator_after&&(e+="<li class='vakata-context-separator'><a href='#' "+(a.vakata.context.settings.icons?"":'style="margin-left:0px;"')+"> </a></li>",f=!0))):!0}),e=e.replace(/<li class\='vakata-context-separator'\><\/li\>$/,""),d&&(e+="</ul>"),d||(c.html=e,a.vakata.context._trigger("parse")),e.length>10?e:!1},_show_submenu:function(c){if(c=a(c),c.length&&c.children("ul").length){var d=c.children("ul"),e=c.offset().left+c.outerWidth(),f=c.offset().top,g=d.width(),h=d.height(),i=a(window).width()+a(window).scrollLeft(),j=a(window).height()+a(window).scrollTop();b?c[e-(g+10+c.outerWidth())<0?"addClass":"removeClass"]("vakata-context-left"):c[e+g+10>i?"addClass":"removeClass"]("vakata-context-right"),f+h+10>j&&d.css("bottom","-1px"),d.show()}},show:function(d,e,f){var g,h,i,j,k,l,m,n,o=!0;switch(c.element&&c.element.length&&c.element.width(""),o){case!e&&!d:return!1;case!!e&&!!d:c.reference=d,c.position_x=e.x,c.position_y=e.y;break;case!e&&!!d:c.reference=d,g=d.offset(),c.position_x=g.left+d.outerHeight(),c.position_y=g.top;break;case!!e&&!d:c.position_x=e.x,c.position_y=e.y}d&&!f&&a(d).data("vakata_contextmenu")&&(f=a(d).data("vakata_contextmenu")),a.vakata.context._parse(f)&&c.element.html(c.html),c.items.length&&(c.element.appendTo("body"),h=c.element,i=c.position_x,j=c.position_y,k=h.width(),l=h.height(),m=a(window).width()+a(window).scrollLeft(),n=a(window).height()+a(window).scrollTop(),b&&(i-=h.outerWidth()-a(d).outerWidth(),i<a(window).scrollLeft()+20&&(i=a(window).scrollLeft()+20)),i+k+20>m&&(i=m-(k+20)),j+l+20>n&&(j=n-(l+20)),c.element.css({left:i,top:j}).show().find("a").first().focus().parent().addClass("vakata-context-hover"),c.is_visible=!0,a.vakata.context._trigger("show"))},hide:function(){c.is_visible&&(c.element.hide().find("ul").hide().end().find(":focus").blur().end().detach(),c.is_visible=!1,a.vakata.context._trigger("hide"))}},a(function(){b="rtl"===a("body").css("direction");var d=!1;c.element=a("<ul class='vakata-context'></ul>"),c.element.on("mouseenter","li",function(b){b.stopImmediatePropagation(),a.contains(this,b.relatedTarget)||(d&&clearTimeout(d),c.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(),a(this).siblings().find("ul").hide().end().end().parentsUntil(".vakata-context","li").addBack().addClass("vakata-context-hover"),a.vakata.context._show_submenu(this))}).on("mouseleave","li",function(b){a.contains(this,b.relatedTarget)||a(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover")}).on("mouseleave",function(b){a(this).find(".vakata-context-hover").removeClass("vakata-context-hover"),a.vakata.context.settings.hide_onmouseleave&&(d=setTimeout(function(b){return function(){a.vakata.context.hide()}}(this),a.vakata.context.settings.hide_onmouseleave))}).on("click","a",function(b){b.preventDefault(),a(this).blur().parent().hasClass("vakata-context-disabled")||a.vakata.context._execute(a(this).attr("rel"))===!1||a.vakata.context.hide()}).on("keydown","a",function(b){var d=null;switch(b.which){case 13:case 32:b.type="mouseup",b.preventDefault(),a(b.currentTarget).trigger(b);break;case 37:c.is_visible&&(c.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 38:c.is_visible&&(d=c.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(),d.length||(d=c.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last()),d.addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 39:c.is_visible&&(c.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 40:c.is_visible&&(d=c.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(),d.length||(d=c.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first()),d.addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 27:a.vakata.context.hide(),b.preventDefault()}}).on("keydown",function(a){a.preventDefault();var b=c.element.find(".vakata-contextmenu-shortcut-"+a.which).parent();b.parent().not(".vakata-context-disabled")&&b.click()}),a(i).on("mousedown.vakata.jstree",function(b){c.is_visible&&!a.contains(c.element[0],b.target)&&a.vakata.context.hide()}).on("context_show.vakata.jstree",function(a,d){c.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"),b&&c.element.addClass("vakata-context-rtl").css("direction","rtl"),c.element.find("ul").hide().end()})})}(a),a.jstree.defaults.dnd={copy:!0,open_timeout:500,is_draggable:!0,check_while_dragging:!0,always_copy:!1,inside_pos:0,drag_selection:!0,touch:!0,large_drop_target:!1,large_drag_target:!1},a.jstree.plugins.dnd=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("mousedown.jstree touchstart.jstree",this.settings.dnd.large_drag_target?".jstree-node":".jstree-anchor",a.proxy(function(b){ if(this.settings.dnd.large_drag_target&&a(b.target).closest(".jstree-node")[0]!==b.currentTarget)return!0;if("touchstart"===b.type&&(!this.settings.dnd.touch||"selected"===this.settings.dnd.touch&&!a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").hasClass("jstree-clicked")))return!0;var c=this.get_node(b.target),d=this.is_selected(c)&&this.settings.dnd.drag_selection?this.get_top_selected().length:1,e=d>1?d+" "+this.get_string("nodes"):this.get_text(b.currentTarget);return this.settings.core.force_text&&(e=a.vakata.html.escape(e)),c&&c.id&&c.id!==a.jstree.root&&(1===b.which||"touchstart"===b.type)&&(this.settings.dnd.is_draggable===!0||a.isFunction(this.settings.dnd.is_draggable)&&this.settings.dnd.is_draggable.call(this,d>1?this.get_top_selected(!0):[c],b))?(this.element.trigger("mousedown.jstree"),a.vakata.dnd.start(b,{jstree:!0,origin:this,obj:this.get_node(c,!0),nodes:d>1?this.get_top_selected():[c.id]},'<div id="jstree-dnd" class="jstree-'+this.get_theme()+" jstree-"+this.get_theme()+"-"+this.get_theme_variant()+" "+(this.settings.core.themes.responsive?" jstree-dnd-responsive":"")+'"><i class="jstree-icon jstree-er"></i>'+e+'<ins class="jstree-copy" style="display:none;">+</ins></div>')):void 0},this))}},a(function(){var b=!1,c=!1,d=!1,e=!1,f=a('<div id="jstree-marker"> </div>').hide();a(i).on("dnd_start.vakata.jstree",function(a,c){b=!1,d=!1,c&&c.data&&c.data.jstree&&f.appendTo("body")}).on("dnd_move.vakata.jstree",function(g,h){if(e&&clearTimeout(e),h&&h.data&&h.data.jstree&&(!h.event.target.id||"jstree-marker"!==h.event.target.id)){d=h.event;var i=a.jstree.reference(h.event.target),j=!1,k=!1,l=!1,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A;if(i&&i._data&&i._data.dnd)if(f.attr("class","jstree-"+i.get_theme()+(i.settings.core.themes.responsive?" jstree-dnd-responsive":"")),h.helper.children().attr("class","jstree-"+i.get_theme()+" jstree-"+i.get_theme()+"-"+i.get_theme_variant()+" "+(i.settings.core.themes.responsive?" jstree-dnd-responsive":"")).find(".jstree-copy").first()[h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"show":"hide"](),h.event.target!==i.element[0]&&h.event.target!==i.get_container_ul()[0]||0!==i.get_container_ul().children().length){if(j=i.settings.dnd.large_drop_target?a(h.event.target).closest(".jstree-node").children(".jstree-anchor"):a(h.event.target).closest(".jstree-anchor"),j&&j.length&&j.parent().is(".jstree-closed, .jstree-open, .jstree-leaf")&&(k=j.offset(),l=h.event.pageY-k.top,p=j.outerHeight(),s=p/3>l?["b","i","a"]:l>p-p/3?["a","i","b"]:l>p/2?["i","a","b"]:["i","b","a"],a.each(s,function(d,g){switch(g){case"b":n=k.left-6,o=k.top,q=i.get_parent(j),r=j.parent().index();break;case"i":z=i.settings.dnd.inside_pos,A=i.get_node(j.parent()),n=k.left-2,o=k.top+p/2+1,q=A.id,r="first"===z?0:"last"===z?A.children.length:Math.min(z,A.children.length);break;case"a":n=k.left-6,o=k.top+p,q=i.get_parent(j),r=j.parent().index()+1}for(t=!0,u=0,v=h.data.nodes.length;v>u;u++)if(w=h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"copy_node":"move_node",x=r,"move_node"===w&&"a"===g&&h.data.origin&&h.data.origin===i&&q===i.get_parent(h.data.nodes[u])&&(y=i.get_node(q),x>a.inArray(h.data.nodes[u],y.children)&&(x-=1)),t=t&&(i&&i.settings&&i.settings.dnd&&i.settings.dnd.check_while_dragging===!1||i.check(w,h.data.origin&&h.data.origin!==i?h.data.origin.get_node(h.data.nodes[u]):h.data.nodes[u],q,x,{dnd:!0,ref:i.get_node(j.parent()),pos:g,origin:h.data.origin,is_multi:h.data.origin&&h.data.origin!==i,is_foreign:!h.data.origin})),!t){i&&i.last_error&&(c=i.last_error());break}return"i"===g&&j.parent().is(".jstree-closed")&&i.settings.dnd.open_timeout&&(e=setTimeout(function(a,b){return function(){a.open_node(b)}}(i,j),i.settings.dnd.open_timeout)),t?(b={ins:i,par:q,pos:"i"!==g||"last"!==z||0!==r||i.is_loaded(A)?r:"last"},f.css({left:n+"px",top:o+"px"}).show(),h.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),c={},s=!0,!1):void 0}),s===!0))return}else{for(t=!0,u=0,v=h.data.nodes.length;v>u;u++)if(t=t&&i.check(h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"copy_node":"move_node",h.data.origin&&h.data.origin!==i?h.data.origin.get_node(h.data.nodes[u]):h.data.nodes[u],a.jstree.root,"last",{dnd:!0,ref:i.get_node(a.jstree.root),pos:"i",origin:h.data.origin,is_multi:h.data.origin&&h.data.origin!==i,is_foreign:!h.data.origin}),!t)break;if(t)return b={ins:i,par:a.jstree.root,pos:"last"},f.hide(),void h.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok")}b=!1,h.helper.find(".jstree-icon").removeClass("jstree-ok").addClass("jstree-er"),f.hide()}}).on("dnd_scroll.vakata.jstree",function(a,c){c&&c.data&&c.data.jstree&&(f.hide(),b=!1,d=!1,c.helper.find(".jstree-icon").first().removeClass("jstree-ok").addClass("jstree-er"))}).on("dnd_stop.vakata.jstree",function(g,h){if(e&&clearTimeout(e),h&&h.data&&h.data.jstree){f.hide().detach();var i,j,k=[];if(b){for(i=0,j=h.data.nodes.length;j>i;i++)k[i]=h.data.origin?h.data.origin.get_node(h.data.nodes[i]):h.data.nodes[i];b.ins[h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"copy_node":"move_node"](k,b.par,b.pos,!1,!1,!1,h.data.origin)}else i=a(h.event.target).closest(".jstree"),i.length&&c&&c.error&&"check"===c.error&&(i=i.jstree(!0),i&&i.settings.core.error.call(this,c));d=!1,b=!1}}).on("keyup.jstree keydown.jstree",function(b,c){c=a.vakata.dnd._get(),c&&c.data&&c.data.jstree&&(c.helper.find(".jstree-copy").first()[c.data.origin&&(c.data.origin.settings.dnd.always_copy||c.data.origin.settings.dnd.copy&&(b.metaKey||b.ctrlKey))?"show":"hide"](),d&&(d.metaKey=b.metaKey,d.ctrlKey=b.ctrlKey,a.vakata.dnd._trigger("move",d)))})}),function(a){a.vakata.html={div:a("<div />"),escape:function(b){return a.vakata.html.div.text(b).html()},strip:function(b){return a.vakata.html.div.empty().append(a.parseHTML(b)).text()}};var b={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1};a.vakata.dnd={settings:{scroll_speed:10,scroll_proximity:20,helper_left:5,helper_top:10,threshold:5,threshold_touch:50},_trigger:function(b,c){var d=a.vakata.dnd._get();d.event=c,a(i).triggerHandler("dnd_"+b+".vakata",d)},_get:function(){return{data:b.data,element:b.element,helper:b.helper}},_clean:function(){b.helper&&b.helper.remove(),b.scroll_i&&(clearInterval(b.scroll_i),b.scroll_i=!1),b={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1},a(i).off("mousemove.vakata.jstree touchmove.vakata.jstree",a.vakata.dnd.drag),a(i).off("mouseup.vakata.jstree touchend.vakata.jstree",a.vakata.dnd.stop)},_scroll:function(c){if(!b.scroll_e||!b.scroll_l&&!b.scroll_t)return b.scroll_i&&(clearInterval(b.scroll_i),b.scroll_i=!1),!1;if(!b.scroll_i)return b.scroll_i=setInterval(a.vakata.dnd._scroll,100),!1;if(c===!0)return!1;var d=b.scroll_e.scrollTop(),e=b.scroll_e.scrollLeft();b.scroll_e.scrollTop(d+b.scroll_t*a.vakata.dnd.settings.scroll_speed),b.scroll_e.scrollLeft(e+b.scroll_l*a.vakata.dnd.settings.scroll_speed),(d!==b.scroll_e.scrollTop()||e!==b.scroll_e.scrollLeft())&&a.vakata.dnd._trigger("scroll",b.scroll_e)},start:function(c,d,e){"touchstart"===c.type&&c.originalEvent&&c.originalEvent.changedTouches&&c.originalEvent.changedTouches[0]&&(c.pageX=c.originalEvent.changedTouches[0].pageX,c.pageY=c.originalEvent.changedTouches[0].pageY,c.target=i.elementFromPoint(c.originalEvent.changedTouches[0].pageX-window.pageXOffset,c.originalEvent.changedTouches[0].pageY-window.pageYOffset)),b.is_drag&&a.vakata.dnd.stop({});try{c.currentTarget.unselectable="on",c.currentTarget.onselectstart=function(){return!1},c.currentTarget.style&&(c.currentTarget.style.MozUserSelect="none")}catch(f){}return b.init_x=c.pageX,b.init_y=c.pageY,b.data=d,b.is_down=!0,b.element=c.currentTarget,b.target=c.target,b.is_touch="touchstart"===c.type,e!==!1&&(b.helper=a("<div id='vakata-dnd'></div>").html(e).css({display:"block",margin:"0",padding:"0",position:"absolute",top:"-2000px",lineHeight:"16px",zIndex:"10000"})),a(i).on("mousemove.vakata.jstree touchmove.vakata.jstree",a.vakata.dnd.drag),a(i).on("mouseup.vakata.jstree touchend.vakata.jstree",a.vakata.dnd.stop),!1},drag:function(c){if("touchmove"===c.type&&c.originalEvent&&c.originalEvent.changedTouches&&c.originalEvent.changedTouches[0]&&(c.pageX=c.originalEvent.changedTouches[0].pageX,c.pageY=c.originalEvent.changedTouches[0].pageY,c.target=i.elementFromPoint(c.originalEvent.changedTouches[0].pageX-window.pageXOffset,c.originalEvent.changedTouches[0].pageY-window.pageYOffset)),b.is_down){if(!b.is_drag){if(!(Math.abs(c.pageX-b.init_x)>(b.is_touch?a.vakata.dnd.settings.threshold_touch:a.vakata.dnd.settings.threshold)||Math.abs(c.pageY-b.init_y)>(b.is_touch?a.vakata.dnd.settings.threshold_touch:a.vakata.dnd.settings.threshold)))return;b.helper&&(b.helper.appendTo("body"),b.helper_w=b.helper.outerWidth()),b.is_drag=!0,a.vakata.dnd._trigger("start",c)}var d=!1,e=!1,f=!1,g=!1,h=!1,j=!1,k=!1,l=!1,m=!1,n=!1;return b.scroll_t=0,b.scroll_l=0,b.scroll_e=!1,a(a(c.target).parentsUntil("body").addBack().get().reverse()).filter(function(){return/^auto|scroll$/.test(a(this).css("overflow"))&&(this.scrollHeight>this.offsetHeight||this.scrollWidth>this.offsetWidth)}).each(function(){var d=a(this),e=d.offset();return this.scrollHeight>this.offsetHeight&&(e.top+d.height()-c.pageY<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_t=1),c.pageY-e.top<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_t=-1)),this.scrollWidth>this.offsetWidth&&(e.left+d.width()-c.pageX<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_l=1),c.pageX-e.left<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_l=-1)),b.scroll_t||b.scroll_l?(b.scroll_e=a(this),!1):void 0}),b.scroll_e||(d=a(i),e=a(window),f=d.height(),g=e.height(),h=d.width(),j=e.width(),k=d.scrollTop(),l=d.scrollLeft(),f>g&&c.pageY-k<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_t=-1),f>g&&g-(c.pageY-k)<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_t=1),h>j&&c.pageX-l<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_l=-1),h>j&&j-(c.pageX-l)<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_l=1),(b.scroll_t||b.scroll_l)&&(b.scroll_e=d)),b.scroll_e&&a.vakata.dnd._scroll(!0),b.helper&&(m=parseInt(c.pageY+a.vakata.dnd.settings.helper_top,10),n=parseInt(c.pageX+a.vakata.dnd.settings.helper_left,10),f&&m+25>f&&(m=f-50),h&&n+b.helper_w>h&&(n=h-(b.helper_w+2)),b.helper.css({left:n+"px",top:m+"px"})),a.vakata.dnd._trigger("move",c),!1}},stop:function(c){if("touchend"===c.type&&c.originalEvent&&c.originalEvent.changedTouches&&c.originalEvent.changedTouches[0]&&(c.pageX=c.originalEvent.changedTouches[0].pageX,c.pageY=c.originalEvent.changedTouches[0].pageY,c.target=i.elementFromPoint(c.originalEvent.changedTouches[0].pageX-window.pageXOffset,c.originalEvent.changedTouches[0].pageY-window.pageYOffset)),b.is_drag)a.vakata.dnd._trigger("stop",c);else if("touchend"===c.type&&c.target===b.target){var d=setTimeout(function(){a(c.target).click()},100);a(c.target).one("click",function(){d&&clearTimeout(d)})}return a.vakata.dnd._clean(),!1}}}(a),a.jstree.defaults.massload=null,a.jstree.plugins.massload=function(b,c){this.init=function(a,b){c.init.call(this,a,b),this._data.massload={}},this._load_nodes=function(b,d,e){var f=this.settings.massload;return e&&!a.isEmptyObject(this._data.massload)?c._load_nodes.call(this,b,d,e):a.isFunction(f)?f.call(this,b,a.proxy(function(a){if(a)for(var f in a)a.hasOwnProperty(f)&&(this._data.massload[f]=a[f]);c._load_nodes.call(this,b,d,e)},this)):"object"==typeof f&&f&&f.url?(f=a.extend(!0,{},f),a.isFunction(f.url)&&(f.url=f.url.call(this,b)),a.isFunction(f.data)&&(f.data=f.data.call(this,b)),a.ajax(f).done(a.proxy(function(a,f,g){if(a)for(var h in a)a.hasOwnProperty(h)&&(this._data.massload[h]=a[h]);c._load_nodes.call(this,b,d,e)},this)).fail(a.proxy(function(a){c._load_nodes.call(this,b,d,e)},this))):c._load_nodes.call(this,b,d,e)},this._load_node=function(b,d){var e=this._data.massload[b.id];return e?this["string"==typeof e?"_append_html_data":"_append_json_data"](b,"string"==typeof e?a(a.parseHTML(e)).filter(function(){return 3!==this.nodeType}):e,function(a){d.call(this,a),delete this._data.massload[b.id]}):c._load_node.call(this,b,d)}},a.jstree.defaults.search={ajax:!1,fuzzy:!1,case_sensitive:!1,show_only_matches:!1,show_only_matches_children:!1,close_opened_onclear:!0,search_leaves_only:!1,search_callback:!1},a.jstree.plugins.search=function(c,d){this.bind=function(){d.bind.call(this),this._data.search.str="",this._data.search.dom=a(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=!1,this._data.search.smc=!1,this._data.search.hdn=[],this.element.on("search.jstree",a.proxy(function(b,c){if(this._data.search.som&&c.res.length){var d=this._model.data,e,f,g=[];for(e=0,f=c.res.length;f>e;e++)d[c.res[e]]&&!d[c.res[e]].state.hidden&&(g.push(c.res[e]),g=g.concat(d[c.res[e]].parents),this._data.search.smc&&(g=g.concat(d[c.res[e]].children_d)));g=a.vakata.array_remove_item(a.vakata.array_unique(g),a.jstree.root),this._data.search.hdn=this.hide_all(!0),this.show_node(g)}},this)).on("clear_search.jstree",a.proxy(function(a,b){this._data.search.som&&b.res.length&&this.show_node(this._data.search.hdn)},this))},this.search=function(c,d,e,f,g,h){if(c===!1||""===a.trim(c.toString()))return this.clear_search();f=this.get_node(f),f=f&&f.id?f.id:null,c=c.toString();var i=this.settings.search,j=i.ajax?i.ajax:!1,k=this._model.data,l=null,m=[],n=[],o,p;if(this._data.search.res.length&&!g&&this.clear_search(),e===b&&(e=i.show_only_matches),h===b&&(h=i.show_only_matches_children),!d&&j!==!1)return a.isFunction(j)?j.call(this,c,a.proxy(function(b){b&&b.d&&(b=b.d),this._load_nodes(a.isArray(b)?a.vakata.array_unique(b):[],function(){this.search(c,!0,e,f,g)},!0)},this),f):(j=a.extend({},j),j.data||(j.data={}),j.data.str=c,f&&(j.data.inside=f),a.ajax(j).fail(a.proxy(function(){this._data.core.last_error={error:"ajax",plugin:"search",id:"search_01",reason:"Could not load search parents",data:JSON.stringify(j)},this.settings.core.error.call(this,this._data.core.last_error)},this)).done(a.proxy(function(b){b&&b.d&&(b=b.d),this._load_nodes(a.isArray(b)?a.vakata.array_unique(b):[],function(){this.search(c,!0,e,f,g)},!0)},this)));if(g||(this._data.search.str=c,this._data.search.dom=a(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=e,this._data.search.smc=h),l=new a.vakata.search(c,!0,{caseSensitive:i.case_sensitive,fuzzy:i.fuzzy}),a.each(k[f?f:a.jstree.root].children_d,function(a,b){var d=k[b];d.text&&(!i.search_leaves_only||d.state.loaded&&0===d.children.length)&&(i.search_callback&&i.search_callback.call(this,c,d)||!i.search_callback&&l.search(d.text).isMatch)&&(m.push(b),n=n.concat(d.parents))}),m.length){for(n=a.vakata.array_unique(n),o=0,p=n.length;p>o;o++)n[o]!==a.jstree.root&&k[n[o]]&&this.open_node(n[o],null,0)===!0&&this._data.search.opn.push(n[o]);g?(this._data.search.dom=this._data.search.dom.add(a(this.element[0].querySelectorAll("#"+a.map(m,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #")))),this._data.search.res=a.vakata.array_unique(this._data.search.res.concat(m))):(this._data.search.dom=a(this.element[0].querySelectorAll("#"+a.map(m,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.res=m),this._data.search.dom.children(".jstree-anchor").addClass("jstree-search")}this.trigger("search",{nodes:this._data.search.dom,str:c,res:this._data.search.res,show_only_matches:e})},this.clear_search=function(){this.settings.search.close_opened_onclear&&this.close_node(this._data.search.opn,0),this.trigger("clear_search",{nodes:this._data.search.dom,str:this._data.search.str,res:this._data.search.res}),this._data.search.res.length&&(this._data.search.dom=a(this.element[0].querySelectorAll("#"+a.map(this._data.search.res,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search")),this._data.search.str="",this._data.search.res=[],this._data.search.opn=[],this._data.search.dom=a()},this.redraw_node=function(b,c,e,f){if(b=d.redraw_node.apply(this,arguments),b&&-1!==a.inArray(b.id,this._data.search.res)){var g,h,i=null;for(g=0,h=b.childNodes.length;h>g;g++)if(b.childNodes[g]&&b.childNodes[g].className&&-1!==b.childNodes[g].className.indexOf("jstree-anchor")){i=b.childNodes[g];break}i&&(i.className+=" jstree-search")}return b}},function(a){a.vakata.search=function(b,c,d){d=d||{},d=a.extend({},a.vakata.search.defaults,d),d.fuzzy!==!1&&(d.fuzzy=!0),b=d.caseSensitive?b:b.toLowerCase();var e=d.location,f=d.distance,g=d.threshold,h=b.length,i,j,k,l;return h>32&&(d.fuzzy=!1),d.fuzzy&&(i=1<<h-1,j=function(){var a={},c=0;for(c=0;h>c;c++)a[b.charAt(c)]=0;for(c=0;h>c;c++)a[b.charAt(c)]|=1<<h-c-1;return a}(),k=function(a,b){var c=a/h,d=Math.abs(e-b);return f?c+d/f:d?1:c}),l=function(a){if(a=d.caseSensitive?a:a.toLowerCase(),b===a||-1!==a.indexOf(b))return{isMatch:!0,score:0};if(!d.fuzzy)return{isMatch:!1,score:1};var c,f,l=a.length,m=g,n=a.indexOf(b,e),o,p,q=h+l,r,s,t,u,v,w=1,x=[];for(-1!==n&&(m=Math.min(k(0,n),m),n=a.lastIndexOf(b,e+h),-1!==n&&(m=Math.min(k(0,n),m))),n=-1,c=0;h>c;c++){o=0,p=q;while(p>o)k(c,e+p)<=m?o=p:q=p,p=Math.floor((q-o)/2+o);for(q=p,s=Math.max(1,e-p+1),t=Math.min(e+p,l)+h,u=new Array(t+2),u[t+1]=(1<<c)-1,f=t;f>=s;f--)if(v=j[a.charAt(f-1)],0===c?u[f]=(u[f+1]<<1|1)&v:u[f]=(u[f+1]<<1|1)&v|((r[f+1]|r[f])<<1|1)|r[f+1],u[f]&i&&(w=k(c,f-1),m>=w)){if(m=w,n=f-1,x.push(n),!(n>e))break;s=Math.max(1,2*e-n)}if(k(c+1,e)>m)break;r=u}return{isMatch:n>=0,score:w}},c===!0?{search:l}:l(c)},a.vakata.search.defaults={location:0,distance:100,threshold:.6,fuzzy:!1,caseSensitive:!1}}(a),a.jstree.defaults.sort=function(a,b){return this.get_text(a)>this.get_text(b)?1:-1},a.jstree.plugins.sort=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("model.jstree",a.proxy(function(a,b){this.sort(b.parent,!0)},this)).on("rename_node.jstree create_node.jstree",a.proxy(function(a,b){this.sort(b.parent||b.node.parent,!1),this.redraw_node(b.parent||b.node.parent,!0)},this)).on("move_node.jstree copy_node.jstree",a.proxy(function(a,b){this.sort(b.parent,!1),this.redraw_node(b.parent,!0)},this))},this.sort=function(b,c){var d,e;if(b=this.get_node(b),b&&b.children&&b.children.length&&(b.children.sort(a.proxy(this.settings.sort,this)),c))for(d=0,e=b.children_d.length;e>d;d++)this.sort(b.children_d[d],!1)}};var n=!1;a.jstree.defaults.state={key:"jstree",events:"changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree",ttl:!1,filter:!1},a.jstree.plugins.state=function(b,c){this.bind=function(){c.bind.call(this);var b=a.proxy(function(){this.element.on(this.settings.state.events,a.proxy(function(){n&&clearTimeout(n),n=setTimeout(a.proxy(function(){this.save_state()},this),100)},this)),this.trigger("state_ready")},this);this.element.on("ready.jstree",a.proxy(function(a,c){this.element.one("restore_state.jstree",b),this.restore_state()||b()},this))},this.save_state=function(){var b={state:this.get_state(),ttl:this.settings.state.ttl,sec:+new Date};a.vakata.storage.set(this.settings.state.key,JSON.stringify(b))},this.restore_state=function(){var b=a.vakata.storage.get(this.settings.state.key);if(b)try{b=JSON.parse(b)}catch(c){return!1}return b&&b.ttl&&b.sec&&+new Date-b.sec>b.ttl?!1:(b&&b.state&&(b=b.state),b&&a.isFunction(this.settings.state.filter)&&(b=this.settings.state.filter.call(this,b)),b?(this.element.one("set_state.jstree",function(c,d){d.instance.trigger("restore_state",{state:a.extend(!0,{},b)})}),this.set_state(b),!0):!1)},this.clear_state=function(){return a.vakata.storage.del(this.settings.state.key)}},function(a,b){a.vakata.storage={set:function(a,b){return window.localStorage.setItem(a,b)},get:function(a){return window.localStorage.getItem(a)},del:function(a){return window.localStorage.removeItem(a)}}}(a),a.jstree.defaults.types={"default":{}},a.jstree.defaults.types[a.jstree.root]={},a.jstree.plugins.types=function(c,d){this.init=function(c,e){var f,g;if(e&&e.types&&e.types["default"])for(f in e.types)if("default"!==f&&f!==a.jstree.root&&e.types.hasOwnProperty(f))for(g in e.types["default"])e.types["default"].hasOwnProperty(g)&&e.types[f][g]===b&&(e.types[f][g]=e.types["default"][g]);d.init.call(this,c,e),this._model.data[a.jstree.root].type=a.jstree.root},this.refresh=function(b,c){d.refresh.call(this,b,c),this._model.data[a.jstree.root].type=a.jstree.root},this.bind=function(){this.element.on("model.jstree",a.proxy(function(c,d){var e=this._model.data,f=d.nodes,g=this.settings.types,h,i,j="default";for(h=0,i=f.length;i>h;h++)j="default",e[f[h]].original&&e[f[h]].original.type&&g[e[f[h]].original.type]&&(j=e[f[h]].original.type),e[f[h]].data&&e[f[h]].data.jstree&&e[f[h]].data.jstree.type&&g[e[f[h]].data.jstree.type]&&(j=e[f[h]].data.jstree.type),e[f[h]].type=j,e[f[h]].icon===!0&&g[j].icon!==b&&(e[f[h]].icon=g[j].icon);e[a.jstree.root].type=a.jstree.root},this)),d.bind.call(this)},this.get_json=function(b,c,e){var f,g,h=this._model.data,i=c?a.extend(!0,{},c,{no_id:!1}):{},j=d.get_json.call(this,b,i,e);if(j===!1)return!1;if(a.isArray(j))for(f=0,g=j.length;g>f;f++)j[f].type=j[f].id&&h[j[f].id]&&h[j[f].id].type?h[j[f].id].type:"default",c&&c.no_id&&(delete j[f].id,j[f].li_attr&&j[f].li_attr.id&&delete j[f].li_attr.id,j[f].a_attr&&j[f].a_attr.id&&delete j[f].a_attr.id);else j.type=j.id&&h[j.id]&&h[j.id].type?h[j.id].type:"default",c&&c.no_id&&(j=this._delete_ids(j));return j},this._delete_ids=function(b){if(a.isArray(b)){for(var c=0,d=b.length;d>c;c++)b[c]=this._delete_ids(b[c]);return b}return delete b.id,b.li_attr&&b.li_attr.id&&delete b.li_attr.id,b.a_attr&&b.a_attr.id&&delete b.a_attr.id,b.children&&a.isArray(b.children)&&(b.children=this._delete_ids(b.children)),b},this.check=function(c,e,f,g,h){if(d.check.call(this,c,e,f,g,h)===!1)return!1;e=e&&e.id?e:this.get_node(e),f=f&&f.id?f:this.get_node(f);var i=e&&e.id?h&&h.origin?h.origin:a.jstree.reference(e.id):null,j,k,l,m;switch(i=i&&i._model&&i._model.data?i._model.data:null,c){case"create_node":case"move_node":case"copy_node":if("move_node"!==c||-1===a.inArray(e.id,f.children)){if(j=this.get_rules(f),j.max_children!==b&&-1!==j.max_children&&j.max_children===f.children.length)return this._data.core.last_error={error:"check",plugin:"types",id:"types_01",reason:"max_children prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;if(j.valid_children!==b&&-1!==j.valid_children&&-1===a.inArray(e.type||"default",j.valid_children))return this._data.core.last_error={error:"check",plugin:"types",id:"types_02",reason:"valid_children prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;if(i&&e.children_d&&e.parents){for(k=0,l=0,m=e.children_d.length;m>l;l++)k=Math.max(k,i[e.children_d[l]].parents.length);k=k-e.parents.length+1}(0>=k||k===b)&&(k=1);do{if(j.max_depth!==b&&-1!==j.max_depth&&j.max_depth<k)return this._data.core.last_error={error:"check",plugin:"types",id:"types_03",reason:"max_depth prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;f=this.get_node(f.parent),j=this.get_rules(f),k++}while(f)}}return!0},this.get_rules=function(a){if(a=this.get_node(a),!a)return!1;var c=this.get_type(a,!0);return c.max_depth===b&&(c.max_depth=-1),c.max_children===b&&(c.max_children=-1),c.valid_children===b&&(c.valid_children=-1),c},this.get_type=function(b,c){return b=this.get_node(b),b?c?a.extend({type:b.type},this.settings.types[b.type]):b.type:!1},this.set_type=function(c,d){var e,f,g,h,i;if(a.isArray(c)){for(c=c.slice(),f=0,g=c.length;g>f;f++)this.set_type(c[f],d);return!0}return e=this.settings.types,c=this.get_node(c),e[d]&&c?(h=c.type,i=this.get_icon(c),c.type=d,(i===!0||e[h]&&e[h].icon!==b&&i===e[h].icon)&&this.set_icon(c,e[d].icon!==b?e[d].icon:!0),!0):!1}},a.jstree.defaults.unique={case_sensitive:!1,duplicate:function(a,b){return a+" ("+b+")"}},a.jstree.plugins.unique=function(c,d){this.check=function(b,c,e,f,g){if(d.check.call(this,b,c,e,f,g)===!1)return!1;if(c=c&&c.id?c:this.get_node(c),e=e&&e.id?e:this.get_node(e),!e||!e.children)return!0;var h="rename_node"===b?f:c.text,i=[],j=this.settings.unique.case_sensitive,k=this._model.data,l,m;for(l=0,m=e.children.length;m>l;l++)i.push(j?k[e.children[l]].text:k[e.children[l]].text.toLowerCase());switch(j||(h=h.toLowerCase()),b){case"delete_node":return!0;case"rename_node":return l=-1===a.inArray(h,i)||c.text&&c.text[j?"toString":"toLowerCase"]()===h,l||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_01",reason:"Child with name "+h+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),l;case"create_node":return l=-1===a.inArray(h,i),l||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_04",reason:"Child with name "+h+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),l;case"copy_node":return l=-1===a.inArray(h,i),l||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_02",reason:"Child with name "+h+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),l;case"move_node":return l=c.parent===e.id&&(!g||!g.is_multi)||-1===a.inArray(h,i),l||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_03",reason:"Child with name "+h+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),l}return!0},this.create_node=function(c,e,f,g,h){if(!e||e.text===b){if(null===c&&(c=a.jstree.root),c=this.get_node(c),!c)return d.create_node.call(this,c,e,f,g,h);if(f=f===b?"last":f,!f.toString().match(/^(before|after)$/)&&!h&&!this.is_loaded(c))return d.create_node.call(this,c,e,f,g,h);e||(e={});var i,j,k,l,m,n=this._model.data,o=this.settings.unique.case_sensitive,p=this.settings.unique.duplicate;for(j=i=this.get_string("New node"),k=[],l=0,m=c.children.length;m>l;l++)k.push(o?n[c.children[l]].text:n[c.children[l]].text.toLowerCase());l=1;while(-1!==a.inArray(o?j:j.toLowerCase(),k))j=p.call(this,i,++l).toString();e.text=j}return d.create_node.call(this,c,e,f,g,h)}};var o=i.createElement("DIV");if(o.setAttribute("unselectable","on"),o.setAttribute("role","presentation"),o.className="jstree-wholerow",o.innerHTML=" ",a.jstree.plugins.wholerow=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("ready.jstree set_state.jstree",a.proxy(function(){this.hide_dots()},this)).on("init.jstree loading.jstree ready.jstree",a.proxy(function(){this.get_container_ul().addClass("jstree-wholerow-ul")},this)).on("deselect_all.jstree",a.proxy(function(a,b){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked")},this)).on("changed.jstree",a.proxy(function(a,b){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked");var c=!1,d,e;for(d=0,e=b.selected.length;e>d;d++)c=this.get_node(b.selected[d],!0),c&&c.length&&c.children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("open_node.jstree",a.proxy(function(a,b){this.get_node(b.node,!0).find(".jstree-clicked").parent().children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("hover_node.jstree dehover_node.jstree",a.proxy(function(a,b){"hover_node"===a.type&&this.is_disabled(b.node)||this.get_node(b.node,!0).children(".jstree-wholerow")["hover_node"===a.type?"addClass":"removeClass"]("jstree-wholerow-hovered")},this)).on("contextmenu.jstree",".jstree-wholerow",a.proxy(function(b){b.preventDefault();var c=a.Event("contextmenu",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey,pageX:b.pageX,pageY:b.pageY});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c)},this)).on("click.jstree",".jstree-wholerow",function(b){b.stopImmediatePropagation();var c=a.Event("click",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c).focus()}).on("click.jstree",".jstree-leaf > .jstree-ocl",a.proxy(function(b){b.stopImmediatePropagation();var c=a.Event("click",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c).focus()},this)).on("mouseover.jstree",".jstree-wholerow, .jstree-icon",a.proxy(function(a){return a.stopImmediatePropagation(),this.is_disabled(a.currentTarget)||this.hover_node(a.currentTarget),!1},this)).on("mouseleave.jstree",".jstree-node",a.proxy(function(a){this.dehover_node(a.currentTarget)},this))},this.teardown=function(){this.settings.wholerow&&this.element.find(".jstree-wholerow").remove(),c.teardown.call(this)},this.redraw_node=function(b,d,e,f){if(b=c.redraw_node.apply(this,arguments)){var g=o.cloneNode(!0);-1!==a.inArray(b.id,this._data.core.selected)&&(g.className+=" jstree-wholerow-clicked"),this._data.core.focused&&this._data.core.focused===b.id&&(g.className+=" jstree-wholerow-hovered"),b.insertBefore(g,b.childNodes[0])}return b}},i.registerElement&&Object&&Object.create){var p=Object.create(HTMLElement.prototype);p.createdCallback=function(){var b={core:{},plugins:[]},c;for(c in a.jstree.plugins)a.jstree.plugins.hasOwnProperty(c)&&this.attributes[c]&&(b.plugins.push(c),this.getAttribute(c)&&JSON.parse(this.getAttribute(c))&&(b[c]=JSON.parse(this.getAttribute(c))));for(c in a.jstree.defaults.core)a.jstree.defaults.core.hasOwnProperty(c)&&this.attributes[c]&&(b.core[c]=JSON.parse(this.getAttribute(c))||this.getAttribute(c));a(this).jstree(b)};try{i.registerElement("vakata-jstree",{prototype:p})}catch(q){}}}}); promo.js 0000644 00000007441 15104062016 0006237 0 ustar 00 (function($){ let url = window.location.href; $('#backuply-cloud-trial').click(function(){ $('#bcloud-dialog').dialog(); }); if(url.includes('token=') && url.includes('license=BAKLY')){ let display = $('.backuply-bcloud-trial-verify').css('display'); if(display != 'none'){ $('#backuply-cloud-trial').click(); } } $('#backuply_free-trial .backuply_promo-close').click(function(){ var data; // Hide it $('#backuply_free-trial').hide(); // Save this preference $.post(backuply_promo.ajax + '?backuply_trial_promo=0&security='+backuply_promo.nonce, data, function(response) { //alert(response); }); }); $('.backuply-cloud-state').on('click', '#backuply_has_license', function(){ $(this).closest('div').hide(); $('.bcloud-trial-license').show(); }); $('.backuply-cloud-state').on('click', '#backuply_no_license', function(){ $(this).closest('div').hide(); $('.bcloud-trial-email').show(); }); // License Linking to Backuply Cloud $('.backuply-cloud-state').on('click', 'button.backuply-license-link', function(){ let wrapper = $(this).closest('div'), input = wrapper.find('input'), input_name = input.attr('name'), value = input.val(); if(!value){ alert('Please Fill the form to proceed'); return false; } let spinner = $(this).next(); spinner.addClass('is-active'); $.ajax({ method : 'POST', url : backuply_promo.ajax, data : { action : 'bcloud_trial', security : backuply_promo.nonce, form_action : input_name, value : value, }, success : function(res){ spinner.removeClass('is-active'); if(res.success){ let state = wrapper.closest('.backuply-cloud-state'); state.hide(); state.next().show(); return; } alert(res.data ? res.data : 'Something went wrong, check if you already have Backuply Cloud added'); } }) }); $('button.backuply-default-yes').on('click', function(){ let wrapper = $(this).closest('.backuply-cloud-trial-settings'); $.ajax({ method : 'POST', url : backuply_promo.ajax, data : { action : 'backuply_trial_settings', security : backuply_promo.nonce }, success : function(res){ if(!res.success){ alert('Unable to set Backuply settings') } wrapper.hide(); wrapper.next().show(); } }); }); $('button.backuply-default-no').on('click', function(){ let wrapper = $(this).closest('.backuply-cloud-trial-settings'); wrapper.hide(); wrapper.next().show(); }); function backuply_trail_confirmation(){ let wrapper = $(this).closest('div'); let spinner = $(this).next(); spinner.addClass('is-active'); $.ajax({ method : 'POST', url : backuply_promo.ajax, data : { action : 'backuply_verify_trial', security : backuply_promo.nonce, }, success : function(res){ spinner.removeClass('is-active'); //if(res.success){ let state = wrapper.closest('div'); state.hide(); state.next().show(); // Add license to it and It will create the keys state.next().find('input').val(res.data['license']); state.next().find('button').click(); return; //} //alert(res.data ? res.data : 'Something went wrong!'); } }) }; // Confirming Email Verification $('#backuply-verify-checkbox').on('change', function(e){ if($(this).is(':checked')){ $('.backuply-cloud-state button.backuply-verify-email').attr('disabled', false); $('.backuply-cloud-state').on('click', 'button.backuply-verify-email', backuply_trail_confirmation); } else { $('.backuply-cloud-state').off('click'); $('.backuply-cloud-state button.backuply-verify-email').attr('disabled', true); } }); })(jQuery); social-admin.js 0000644 00000001615 15104074763 0007454 0 ustar 00 jQuery(document).ready(function() { jQuery(".loginizer-social-wrapper").sortable({ handle : '.loginizer-social-grip', placeholder : 'loginizer-sortable-placeholder', stop : loginizer_sort_social }); }); // Used to sort and save the order of Social Login Apps. function loginizer_sort_social(event, ui) { var target= jQuery(event.target), sortables = target.find('.loginizer-social-provider'), sorted_arr = sortables.map(function() { return jQuery(this).data('provider'); }).get(); // To show the saving order text. let saving_order = jQuery(ui.item).find('.loginizer-social-saving-order'); saving_order.show(); jQuery.ajax({ method : 'POST', url : loginizer_social.ajax_url, data : { security: loginizer_social.nonce, order: sorted_arr, action: 'loginizer_social_order' }, success: function(res){ saving_order.hide(); }} ); } jquery-paginate.js 0000644 00000012014 15104074763 0010214 0 ustar 00 (function($) { 'use strict'; var Paginator = function() { return { // Attributes obj: null, options: null, nav: null, // Methods build: function(obj, opts) { this.obj = obj; this.options = opts; if(!this.options.optional || this._totalRows() > this.options.limit) { this._createNavigation(); this._setPage(); } if(this.options.onCreate) this.options.onCreate(obj); return this.obj; }, _createNavigation: function() { this._createNavigationWrapper(); this._createNavigationButtons(); this._appendNavigation(); this._addNavigationCallbacks(); }, _createNavigationWrapper: function() { this.nav = $('<div>', { class: this.options.navigationClass }); }, _createNavigationButtons: function() { // Add 'first' button if(this.options.first) { this._createNavigationButton(this.options.firstText, { 'data-first': true }); } // Add 'previous' button if(this.options.previous) { this._createNavigationButton(this.options.previousText, { 'data-direction': -1, 'data-previous': true }); } // Add page buttons for(var i = 0; i < this._totalPages(); ++i) { this._createNavigationButton(this.options.pageToText(i), { 'data-page': i }); } // Add 'next' button if(this.options.next) { this._createNavigationButton(this.options.nextText, { 'data-direction': 1, 'data-next': true }); } // Add 'last' button if(this.options.last) { this._createNavigationButton(this.options.lastText, { 'data-last': true }); } }, _createNavigationButton: function(text, options) { this.nav.append($('<a>', $.extend(options, { href: '#', text: text }))); }, _appendNavigation: function() { // Add the content to the navigation block if(this.options.navigationWrapper) this.options.navigationWrapper.append(this.nav); // Add it after the table else this.obj.after(this.nav); }, _addNavigationCallbacks: function() { var paginator = this; paginator.nav.find('a').click(function(e) { var direction = $(this).data('direction') * 1; // 'First' button if($(this).data('first') !== undefined) { paginator._setPage(0); } // Page button else if ($(this).data('page') !== undefined) { paginator._setPage($(this).data('page') * 1); } // 'Previous' or 'Next' button else if ($(this).data('previous') !== undefined || $(this).data('next') !== undefined) { var page = paginator._currentPage() + direction; if(page >= 0 && page <= paginator._totalPages() - 1) { paginator._setPage(page); } } // 'Last' button else if ($(this).data('last') !== undefined) { paginator._setPage(paginator._totalPages() - 1); } // Handle callback if(paginator.options.onSelect) paginator.options.onSelect(paginator.obj, paginator._currentPage()); e.preventDefault(); return false; }); }, _setPage: function(index) { if(index == undefined) index = this.options.initialPage; // Hide all elements, and then show the current page. this._rows().hide().slice(index * this.options.limit, (index + 1) * this.options.limit).show(); // Set the current button as active this.nav.find('a').removeAttr('data-selected').siblings('a[data-page=' + index + ']') .attr('data-selected', true); }, _currentPage: function() { return this.nav.find('a[data-selected=true]').data('page'); }, _totalRows: function() { // Count the total rows of the selector return this._rows().length; }, _rows: function() { return this.obj.find(this.options.childrenSelector); }, _totalPages: function() { return Math.ceil(this._totalRows() / this.options.limit); } }; }; $.fn.paginate = function(options) { switch(options) { // Example of custom actions: // case 'destroy': return pagination.destroy(this); default: return Paginator().build(this, $.extend( {}, $.fn.paginate.defaults, options)); } }; $.fn.paginate.defaults = { limit: 20, initialPage: 0, previous: true, previousText: '<', next: true, nextText: '>', first: true, firstText: '<<', last: true, lastText: '>>', optional: true, onCreate: null, onSelect: null, childrenSelector: 'tbody > tr', navigationWrapper: null, navigationClass: 'page-navigation', pageToText: function(i) { return (i + 1).toString(); } } }(jQuery)); chart.js 0000644 00000615310 15104074763 0006220 0 ustar 00 /** * Skipped minification because the original files appears to be already minified. * Original file: /npm/chart.js@4.2.1/dist/chart.umd.js * * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files */ /*! * Chart.js v4.2.1 * https://www.chartjs.org * (c) 2023 Chart.js Contributors * Released under the MIT License */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){"use strict";var t=Object.freeze({__proto__:null,get Colors(){return jo},get Decimation(){return Uo},get Filler(){return ha},get Legend(){return fa},get SubTitle(){return ba},get Title(){return pa},get Tooltip(){return La}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function o(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,c=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function d(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a<r;a++)e.call(i,t[a],a);else if(o(t))for(l=Object.keys(t),r=l.length,a=0;a<r;a++)e.call(i,t[l[a]],l[a])}function f(t,e){let i,s,n,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,s=t.length;i<s;++i)if(n=t[i],o=e[i],n.datasetIndex!==o.datasetIndex||n.index!==o.index)return!1;return!0}function g(t){if(n(t))return t.map(g);if(o(t)){const e=Object.create(null),i=Object.keys(t),s=i.length;let n=0;for(;n<s;++n)e[i[n]]=g(t[i[n]]);return e}return t}function p(t){return-1===["__proto__","prototype","constructor"].indexOf(t)}function m(t,e,i,s){if(!p(t))return;const n=e[t],a=i[t];o(n)&&o(a)?b(n,a,s):e[t]=g(a)}function b(t,e,i){const s=n(e)?e:[e],a=s.length;if(!o(t))return t;const r=(i=i||{}).merger||m;let l;for(let e=0;e<a;++e){if(l=s[e],!o(l))continue;const n=Object.keys(l);for(let e=0,s=n.length;e<s;++e)r(n[e],t,l,i)}return t}function x(t,e){return b(t,e,{merger:_})}function _(t,e,i){if(!p(t))return;const s=e[t],n=i[t];o(s)&&o(n)?x(s,n):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=g(n))}const y={"":t=>t,x:t=>t.x,y:t=>t.y};function v(t){const e=t.split("."),i=[];let s="";for(const t of e)s+=t,s.endsWith("\\")?s=s.slice(0,-1)+".":(i.push(s),s="");return i}function M(t,e){const i=y[e]||(y[e]=function(t){const e=v(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function w(t){return t.charAt(0).toUpperCase()+t.slice(1)}const k=t=>void 0!==t,S=t=>"function"==typeof t,P=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function D(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const C=Math.PI,O=2*C,A=O+C,T=Number.POSITIVE_INFINITY,L=C/180,E=C/2,R=C/4,I=2*C/3,z=Math.log10,F=Math.sign;function V(t,e,i){return Math.abs(t-e)<i}function B(t){const e=Math.round(t);t=V(t,e,t/1e3)?e:t;const i=Math.pow(10,Math.floor(z(t))),s=t/i;return(s<=1?1:s<=2?2:s<=5?5:10)*i}function N(t){const e=[],i=Math.sqrt(t);let s;for(s=1;s<i;s++)t%s==0&&(e.push(s),e.push(t/s));return i===(0|i)&&e.push(i),e.sort(((t,e)=>t-e)).pop(),e}function W(t){return!isNaN(parseFloat(t))&&isFinite(t)}function H(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function j(t,e,i){let s,n,o;for(s=0,n=t.length;s<n;s++)o=t[s][i],isNaN(o)||(e.min=Math.min(e.min,o),e.max=Math.max(e.max,o))}function $(t){return t*(C/180)}function Y(t){return t*(180/C)}function U(t){if(!a(t))return;let e=1,i=0;for(;Math.round(t*e)/e!==t;)e*=10,i++;return i}function X(t,e){const i=e.x-t.x,s=e.y-t.y,n=Math.sqrt(i*i+s*s);let o=Math.atan2(s,i);return o<-.5*C&&(o+=O),{angle:o,distance:n}}function q(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function K(t,e){return(t-e+A)%O-C}function G(t){return(t%O+O)%O}function Z(t,e,i,s){const n=G(t),o=G(e),a=G(i),r=G(o-n),l=G(a-n),h=G(n-o),c=G(n-a);return n===o||n===a||s&&o===a||r>l&&h<c}function J(t,e,i){return Math.max(e,Math.min(i,t))}function Q(t){return J(t,-32768,32767)}function tt(t,e,i,s=1e-6){return t>=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function et(t,e,i){i=i||(i=>t[i]<e);let s,n=t.length-1,o=0;for(;n-o>1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const it=(t,e,i,s)=>et(t,i,s?s=>{const n=t[s][e];return n<i||n===i&&t[s+1][e]===i}:s=>t[s][e]<i),st=(t,e,i)=>et(t,i,(s=>t[s][e]>=i));function nt(t,e,i){let s=0,n=t.length;for(;s<n&&t[s]<e;)s++;for(;n>s&&t[n-1]>i;)n--;return s>0||n<t.length?t.slice(s,n):t}const ot=["push","pop","shift","splice","unshift"];function at(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),ot.forEach((e=>{const i="_onData"+w(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"==typeof t[i]&&t[i](...e)})),n}})})))}function rt(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s.indexOf(e);-1!==n&&s.splice(n,1),s.length>0||(ot.forEach((e=>{delete t[e]})),delete t._chartjs)}function lt(t){const e=new Set;let i,s;for(i=0,s=t.length;i<s;++i)e.add(t[i]);return e.size===s?t:Array.from(e)}const ht="undefined"==typeof window?function(t){return t()}:window.requestAnimationFrame;function ct(t,e){let i=[],s=!1;return function(...n){i=n,s||(s=!0,ht.call(window,(()=>{s=!1,t.apply(e,i)})))}}function dt(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}const ut=t=>"start"===t?"left":"end"===t?"right":"center",ft=(t,e,i)=>"start"===t?e:"end"===t?i:(e+i)/2,gt=(t,e,i,s)=>t===(s?"left":"right")?i:"center"===t?(e+i)/2:e;function pt(t,e,i){const s=e.length;let n=0,o=s;if(t._sorted){const{iScale:a,_parsed:r}=t,l=a.axis,{min:h,max:c,minDefined:d,maxDefined:u}=a.getUserBounds();d&&(n=J(Math.min(it(r,a.axis,h).lo,i?s:it(e,l,a.getPixelForValue(h)).lo),0,s-1)),o=u?J(Math.max(it(r,a.axis,c,!0).hi+1,i?0:it(e,l,a.getPixelForValue(c),!0).hi+1),n,s)-n:s-n}return{start:n,count:o}}function mt(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}class bt{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=ht.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,"progress")),n.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),e+=n.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var xt=new bt; /*! * @kurkle/color v0.3.0 * https://github.com/kurkle/color#readme * (c) 2022 Jukka Kurkela * Released under the MIT License */function _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t/2.55)/100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[..."0123456789ABCDEF"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Tt=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e<i?6:0):e===n?(i-t)/s+2:(t-e)/s+4}(e,i,s,h,n),r=60*r+.5),[0|r,l||0,a]}function zt(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s)).map(Mt)}function Ft(t,e,i){return zt(Lt,t,e,i)}function Vt(t){return(t%360+360)%360}function Bt(t){const e=Tt.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=e[6]?vt(+e[5]):Mt(+e[5]));const n=Vt(+e[2]),o=+e[3]/100,a=+e[4]/100;return i="hwb"===e[1]?function(t,e,i){return zt(Rt,t,e,i)}(n,o,a):"hsv"===e[1]?function(t,e,i){return zt(Et,t,e,i)}(n,o,a):Ft(n,o,a),{r:i[0],g:i[1],b:i[2],a:s}}const Nt={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Wt={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};let Ht;function jt(t){Ht||(Ht=function(){const t={},e=Object.keys(Wt),i=Object.keys(Nt);let s,n,o,a,r;for(s=0;s<e.length;s++){for(a=r=e[s],n=0;n<i.length;n++)o=i[n],r=r.replace(o,Nt[o]);o=parseInt(Wt[a],16),t[r]=[o>>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Yt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Ut=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=Ft(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function qt(t,e){return t?Object.assign(e||{},t):t}function Kt(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Mt(t[3]))):(e=qt(t,{r:0,g:0,b:0,a:1})).a=Mt(e.a),e}function Gt(t){return"r"===t.charAt(0)?function(t){const e=$t.exec(t);let i,s,n,o=255;if(e){if(e[7]!==i){const t=+e[7];o=e[8]?vt(t):yt(255*t,0,255)}return i=+e[1],s=+e[3],n=+e[5],i=255&(e[2]?vt(i):yt(i,0,255)),s=255&(e[4]?vt(s):yt(s,0,255)),n=255&(e[6]?vt(n):yt(n,0,255)),{r:i,g:s,b:n,a:o}}}(t):Bt(t)}class Zt{constructor(t){if(t instanceof Zt)return t;const e=typeof t;let i;var s,n,o;"object"===e?i=Kt(t):"string"===e&&(o=(s=t).length,"#"===s[0]&&(4===o||5===o?n={r:255&17*St[s[1]],g:255&17*St[s[2]],b:255&17*St[s[3]],a:5===o?17*St[s[4]]:255}:7!==o&&9!==o||(n={r:St[s[1]]<<4|St[s[2]],g:St[s[3]]<<4|St[s[4]],b:St[s[5]]<<4|St[s[6]],a:9===o?St[s[7]]<<4|St[s[8]]:255})),i=n||jt(t)||Gt(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=qt(this._rgb);return t&&(t.a=wt(t.a)),t}set rgb(t){this._rgb=Kt(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${wt(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?At(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=It(t),i=e[0],s=kt(e[1]),n=kt(e[2]);return t.a<255?`hsla(${i}, ${s}%, ${n}%, ${wt(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,s=t.rgb;let n;const o=e===n?.5:e,a=2*o-1,r=i.a-s.a,l=((a*r==-1?a:(a+r)/(1+a*r))+1)/2;n=1-l,i.r=255&l*i.r+n*s.r+.5,i.g=255&l*i.g+n*s.g+.5,i.b=255&l*i.b+n*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const s=Ut(wt(t.r)),n=Ut(wt(t.g)),o=Ut(wt(t.b));return{r:Mt(Yt(s+i*(Ut(wt(e.r))-s))),g:Mt(Yt(n+i*(Ut(wt(e.g))-n))),b:Mt(Yt(o+i*(Ut(wt(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new Zt(this.rgb)}alpha(t){return this._rgb.a=Mt(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=_t(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Xt(this._rgb,2,t),this}darken(t){return Xt(this._rgb,2,-t),this}saturate(t){return Xt(this._rgb,1,t),this}desaturate(t){return Xt(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=It(t);i[0]=Vt(i[0]+e),i=Ft(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function Jt(t){if(t&&"object"==typeof t){const e=t.toString();return"[object CanvasPattern]"===e||"[object CanvasGradient]"===e}return!1}function Qt(t){return Jt(t)?t:new Zt(t)}function te(t){return Jt(t)?t:new Zt(t).saturate(.5).darken(.1).hexString()}const ee=["x","y","borderWidth","radius","tension"],ie=["color","borderColor","backgroundColor"];const se=new Map;function ne(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=se.get(i);return s||(s=new Intl.NumberFormat(t,e),se.set(i,s)),s}(e,i).format(t)}const oe={values:t=>n(t)?t:""+t,numeric(t,e,i){if(0===t)return"0";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(n="scientific"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=z(Math.abs(o)),r=Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),ne(t,s,l)},logarithmic(t,e,i){if(0===t)return"0";const s=i[e].significand||t/Math.pow(10,Math.floor(z(t)));return[1,2,3,5,10,15].includes(s)||e>.8*i.length?oe.numeric.call(this,t,e,i):""}};var ae={formatters:oe};const re=Object.create(null),le=Object.create(null);function he(t,e){if(!e)return t;const i=e.split(".");for(let e=0,s=i.length;e<s;++e){const s=i[e];t=t[s]||(t[s]=Object.create(null))}return t}function ce(t,e,i){return"string"==typeof e?b(he(t,e),i):b(he(t,""),e)}class de{constructor(t,e){this.animation=void 0,this.backgroundColor="rgba(0,0,0,0.1)",this.borderColor="rgba(0,0,0,0.1)",this.color="#666",this.datasets={},this.devicePixelRatio=t=>t.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>te(e.backgroundColor),this.hoverBorderColor=(t,e)=>te(e.borderColor),this.hoverColor=(t,e)=>te(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return ce(this,t,e)}get(t){return he(this,t)}describe(t,e){return ce(le,t,e)}override(t,e){return ce(re,t,e)}route(t,e,i,s){const n=he(this,t),a=he(this,i),r="_"+e;Object.defineProperties(n,{[r]:{value:n[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[r],e=a[s];return o(t)?Object.assign({},e,t):l(t,e)},set(t){this[r]=t}}})}apply(t){t.forEach((t=>t(this)))}}var ue=new de({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),t.set("animations",{colors:{type:"color",properties:ie},numbers:{type:"number",properties:ee}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}})},function(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ae.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t&&"dash"!==t}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t})}]);function fe(){return"undefined"!=typeof window&&"undefined"!=typeof document}function ge(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e}function pe(t,e,i){let s;return"string"==typeof t?(s=parseInt(t,10),-1!==t.indexOf("%")&&(s=s/100*e.parentNode[i])):s=t,s}const me=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);function be(t,e){return me(t).getPropertyValue(e)}const xe=["top","right","bottom","left"];function _e(t,e,i){const s={};i=i?"-"+i:"";for(let n=0;n<4;n++){const o=xe[n];s[o]=parseFloat(t[e+"-"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}function ye(t,e){if("native"in t)return t;const{canvas:i,currentDevicePixelRatio:s}=e,n=me(i),o="border-box"===n.boxSizing,a=_e(n,"padding"),r=_e(n,"border","width"),{x:l,y:h,box:c}=function(t,e){const i=t.touches,s=i&&i.length?i[0]:t,{offsetX:n,offsetY:o}=s;let a,r,l=!1;if(((t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot))(n,o,t.target))a=n,r=o;else{const t=e.getBoundingClientRect();a=s.clientX-t.left,r=s.clientY-t.top,l=!0}return{x:a,y:r,box:l}}(t,i),d=a.left+(c&&r.left),u=a.top+(c&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*i.width/s),y:Math.round((h-u)/g*i.height/s)}}const ve=t=>Math.round(10*t)/10;function Me(t,e,i,s){const n=me(t),o=_e(n,"margin"),a=pe(n.maxWidth,t,"clientWidth")||T,r=pe(n.maxHeight,t,"clientHeight")||T,l=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=ge(t);if(o){const t=o.getBoundingClientRect(),a=me(o),r=_e(a,"border","width"),l=_e(a,"padding");e=t.width-l.width-r.width,i=t.height-l.height-r.height,s=pe(a.maxWidth,o,"clientWidth"),n=pe(a.maxHeight,o,"clientHeight")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||T,maxHeight:n||T}}(t,e,i);let{width:h,height:c}=l;if("content-box"===n.boxSizing){const t=_e(n,"border","width"),e=_e(n,"padding");h-=e.width+t.width,c-=e.height+t.height}h=Math.max(0,h-o.width),c=Math.max(0,s?h/s:c-o.height),h=ve(Math.min(h,a,l.maxWidth)),c=ve(Math.min(c,r,l.maxHeight)),h&&!c&&(c=ve(h/2));return(void 0!==e||void 0!==i)&&s&&l.height&&c>l.height&&(c=l.height,h=ve(Math.floor(c*s))),{width:h,height:c}}function we(t,e,i){const s=e||1,n=Math.floor(t.height*s),o=Math.floor(t.width*s);t.height=Math.floor(t.height),t.width=Math.floor(t.width);const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const ke=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(t){}return t}();function Se(t,e){const i=be(t,e),s=i&&i.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function Pe(t){return!t||s(t.size)||s(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function De(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function Ce(t,e,i,s){let o=(s=s||{}).data=s.data||{},a=s.garbageCollect=s.garbageCollect||[];s.font!==e&&(o=s.data={},a=s.garbageCollect=[],s.font=e),t.save(),t.font=e;let r=0;const l=i.length;let h,c,d,u,f;for(h=0;h<l;h++)if(u=i[h],null!=u&&!0!==n(u))r=De(t,o,a,r,u);else if(n(u))for(c=0,d=u.length;c<d;c++)f=u[c],null==f||n(f)||(r=De(t,o,a,r,f));t.restore();const g=a.length/2;if(g>i.length){for(h=0;h<g;h++)delete o[a[h]];a.splice(0,g)}return r}function Oe(t,e,i){const s=t.currentDevicePixelRatio,n=0!==i?Math.max(i/2,.5):0;return Math.round((e-n)*s)/s+n}function Ae(t,e){(e=e||t.getContext("2d")).save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore()}function Te(t,e,i,s){Le(t,e,i,s,null)}function Le(t,e,i,s,n){let o,a,r,l,h,c,d,u;const f=e.pointStyle,g=e.rotation,p=e.radius;let m=(g||0)*L;if(f&&"object"==typeof f&&(o=f.toString(),"[object HTMLImageElement]"===o||"[object HTMLCanvasElement]"===o))return t.save(),t.translate(i,s),t.rotate(m),t.drawImage(f,-f.width/2,-f.height/2,f.width,f.height),void t.restore();if(!(isNaN(p)||p<=0)){switch(t.beginPath(),f){default:n?t.ellipse(i,s,n/2,p,0,0,O):t.arc(i,s,p,0,O),t.closePath();break;case"triangle":c=n?n/2:p,t.moveTo(i+Math.sin(m)*c,s-Math.cos(m)*p),m+=I,t.lineTo(i+Math.sin(m)*c,s-Math.cos(m)*p),m+=I,t.lineTo(i+Math.sin(m)*c,s-Math.cos(m)*p),t.closePath();break;case"rectRounded":h=.516*p,l=p-h,a=Math.cos(m+R)*l,d=Math.cos(m+R)*(n?n/2-h:l),r=Math.sin(m+R)*l,u=Math.sin(m+R)*(n?n/2-h:l),t.arc(i-d,s-r,h,m-C,m-E),t.arc(i+u,s-a,h,m-E,m),t.arc(i+d,s+r,h,m,m+E),t.arc(i-u,s+a,h,m+E,m+C),t.closePath();break;case"rect":if(!g){l=Math.SQRT1_2*p,c=n?n/2:l,t.rect(i-c,s-l,2*c,2*l);break}m+=R;case"rectRot":d=Math.cos(m)*(n?n/2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n/2:p),t.moveTo(i-d,s-r),t.lineTo(i+u,s-a),t.lineTo(i+d,s+r),t.lineTo(i-u,s+a),t.closePath();break;case"crossRot":m+=R;case"cross":d=Math.cos(m)*(n?n/2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n/2:p),t.moveTo(i-d,s-r),t.lineTo(i+d,s+r),t.moveTo(i+u,s-a),t.lineTo(i-u,s+a);break;case"star":d=Math.cos(m)*(n?n/2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n/2:p),t.moveTo(i-d,s-r),t.lineTo(i+d,s+r),t.moveTo(i+u,s-a),t.lineTo(i-u,s+a),m+=R,d=Math.cos(m)*(n?n/2:p),a=Math.cos(m)*p,r=Math.sin(m)*p,u=Math.sin(m)*(n?n/2:p),t.moveTo(i-d,s-r),t.lineTo(i+d,s+r),t.moveTo(i+u,s-a),t.lineTo(i-u,s+a);break;case"line":a=n?n/2:Math.cos(m)*p,r=Math.sin(m)*p,t.moveTo(i-a,s-r),t.lineTo(i+a,s+r);break;case"dash":t.moveTo(i,s),t.lineTo(i+Math.cos(m)*(n?n/2:p),s+Math.sin(m)*p);break;case!1:t.closePath()}t.fill(),e.borderWidth>0&&t.stroke()}}function Ee(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.x<e.right+i&&t.y>e.top-i&&t.y<e.bottom+i}function Re(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()}function Ie(t){t.restore()}function ze(t,e,i,s,n){if(!e)return t.lineTo(i.x,i.y);if("middle"===n){const s=(e.x+i.x)/2;t.lineTo(s,e.y),t.lineTo(s,i.y)}else"after"===n!=!!s?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}function Fe(t,e,i,s){if(!e)return t.lineTo(i.x,i.y);t.bezierCurveTo(s?e.cp1x:e.cp2x,s?e.cp1y:e.cp2y,s?i.cp2x:i.cp1x,s?i.cp2y:i.cp1y,i.x,i.y)}function Ve(t,e,i,o,a,r={}){const l=n(e)?e:[e],h=r.strokeWidth>0&&""!==r.strokeColor;let c,d;for(t.save(),t.font=a.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]);s(e.rotation)||t.rotate(e.rotation);e.color&&(t.fillStyle=e.color);e.textAlign&&(t.textAlign=e.textAlign);e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,r),c=0;c<l.length;++c)d=l[c],r.backdrop&&Ne(t,r.backdrop),h&&(r.strokeColor&&(t.strokeStyle=r.strokeColor),s(r.strokeWidth)||(t.lineWidth=r.strokeWidth),t.strokeText(d,i,o,r.maxWidth)),t.fillText(d,i,o,r.maxWidth),Be(t,i,o,d,r),o+=a.lineHeight;t.restore()}function Be(t,e,i,s,n){if(n.strikethrough||n.underline){const o=t.measureText(s),a=e-o.actualBoundingBoxLeft,r=e+o.actualBoundingBoxRight,l=i-o.actualBoundingBoxAscent,h=i+o.actualBoundingBoxDescent,c=n.strikethrough?(l+h)/2:h;t.strokeStyle=t.fillStyle,t.beginPath(),t.lineWidth=n.decorationWidth||2,t.moveTo(a,c),t.lineTo(r,c),t.stroke()}}function Ne(t,e){const i=t.fillStyle;t.fillStyle=e.color,t.fillRect(e.left,e.top,e.width,e.height),t.fillStyle=i}function We(t,e){const{x:i,y:s,w:n,h:o,radius:a}=e;t.arc(i+a.topLeft,s+a.topLeft,a.topLeft,-E,C,!0),t.lineTo(i,s+o-a.bottomLeft),t.arc(i+a.bottomLeft,s+o-a.bottomLeft,a.bottomLeft,C,E,!0),t.lineTo(i+n-a.bottomRight,s+o),t.arc(i+n-a.bottomRight,s+o-a.bottomRight,a.bottomRight,E,0,!0),t.lineTo(i+n,s+a.topRight),t.arc(i+n-a.topRight,s+a.topRight,a.topRight,0,-E,!0),t.lineTo(i+a.topLeft,s)}function He(t,e=[""],i=t,s,n=(()=>t[0])){k(s)||(s=Qe("_fallback",t));const o={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:i,_fallback:s,_getTarget:n,override:n=>He([n,...t],e,i,s)};return new Proxy(o,{deleteProperty:(e,i)=>(delete e[i],delete e._keys,delete t[0][i],!0),get:(i,s)=>Xe(i,s,(()=>function(t,e,i,s){let n;for(const o of e)if(n=Qe(Ye(o,t),i),k(n))return Ue(t,n)?Ze(i,s,t,n):n}(s,e,t,i))),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>ti(t).includes(e),ownKeys:t=>ti(t),set(t,e,i){const s=t._storage||(t._storage=n());return t[e]=s[e]=i,delete t._keys,!0}})}function je(t,e,i,s){const a={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:$e(t,s),setContext:e=>je(t,e,i,s),override:n=>je(t.override(n),e,i,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete t[i],!0),get:(t,e,i)=>Xe(t,e,(()=>function(t,e,i){const{_proxy:s,_context:a,_subProxy:r,_descriptors:l}=t;let h=s[e];S(h)&&l.isScriptable(e)&&(h=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=i;if(r.has(t))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+t);r.add(t),e=e(o,a||s),r.delete(t),Ue(t,e)&&(e=Ze(n._scopes,n,t,e));return e}(e,h,t,i));n(h)&&h.length&&(h=function(t,e,i,s){const{_proxy:n,_context:a,_subProxy:r,_descriptors:l}=i;if(k(a.index)&&s(t))e=e[a.index%e.length];else if(o(e[0])){const i=e,s=n._scopes.filter((t=>t!==i));e=[];for(const o of i){const i=Ze(s,n,t,o);e.push(je(i,a,r&&r[t],l))}}return e}(e,h,t,l.isIndexable));Ue(e,h)&&(h=je(h,a,r&&r[e],l));return h}(t,e,i))),getOwnPropertyDescriptor:(e,i)=>e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,i)=>Reflect.has(t,i),ownKeys:()=>Reflect.ownKeys(t),set:(e,i,s)=>(t[i]=s,delete e[i],!0)})}function $e(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:s=e.indexable,_allKeys:n=e.allKeys}=t;return{allKeys:n,scriptable:i,indexable:s,isScriptable:S(i)?i:()=>i,isIndexable:S(s)?s:()=>s}}const Ye=(t,e)=>t?t+w(e):e,Ue=(t,e)=>o(e)&&"adapters"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function Xe(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e))return t[e];const s=i();return t[e]=s,s}function qe(t,e,i){return S(t)?t(e,i):t}const Ke=(t,e)=>!0===t?e:"string"==typeof t?M(e,t):void 0;function Ge(t,e,i,s,n){for(const o of e){const e=Ke(i,o);if(e){t.add(e);const o=qe(e._fallback,i,n);if(k(o)&&o!==i&&o!==s)return o}else if(!1===e&&k(s)&&i!==s)return null}return!1}function Ze(t,e,i,s){const a=e._rootScopes,r=qe(e._fallback,i,s),l=[...t,...a],h=new Set;h.add(s);let c=Je(h,l,i,r||i,s);return null!==c&&((!k(r)||r===i||(c=Je(h,l,r,c,s),null!==c))&&He(Array.from(h),[""],a,r,(()=>function(t,e,i){const s=t._getTarget();e in s||(s[e]={});const a=s[e];if(n(a)&&o(i))return i;return a||{}}(e,i,s))))}function Je(t,e,i,s,n){for(;i;)i=Ge(t,e,i,s,n);return i}function Qe(t,e){for(const i of e){if(!i)continue;const e=i[t];if(k(e))return e}}function ti(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith("_"))))e.add(t);return Array.from(e)}(t._scopes)),e}function ei(t,e,i,s){const{iScale:n}=t,{key:o="r"}=this._parsing,a=new Array(s);let r,l,h,c;for(r=0,l=s;r<l;++r)h=r+i,c=e[h],a[r]={r:n.parse(M(c,o),h)};return a}const ii=Number.EPSILON||1e-14,si=(t,e)=>e<t.length&&!t[e].skip&&t[e],ni=t=>"x"===t?"y":"x";function oi(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=q(o,n),l=q(a,o);let h=r/(r+l),c=l/(r+l);h=isNaN(h)?0:h,c=isNaN(c)?0:c;const d=s*h,u=s*c;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function ai(t,e="x"){const i=ni(e),s=t.length,n=Array(s).fill(0),o=Array(s);let a,r,l,h=si(t,0);for(a=0;a<s;++a)if(r=l,l=h,h=si(t,a+1),l){if(h){const t=h[e]-l[e];n[a]=0!==t?(h[i]-l[i])/t:0}o[a]=r?h?F(n[a-1])!==F(n[a])?0:(n[a-1]+n[a])/2:n[a-1]:n[a]}!function(t,e,i){const s=t.length;let n,o,a,r,l,h=si(t,0);for(let c=0;c<s-1;++c)l=h,h=si(t,c+1),l&&h&&(V(e[c],0,ii)?i[c]=i[c+1]=0:(n=i[c]/e[c],o=i[c+1]/e[c],r=Math.pow(n,2)+Math.pow(o,2),r<=9||(a=3/Math.sqrt(r),i[c]=n*a*e[c],i[c+1]=o*a*e[c])))}(t,n,o),function(t,e,i="x"){const s=ni(i),n=t.length;let o,a,r,l=si(t,0);for(let h=0;h<n;++h){if(a=r,r=l,l=si(t,h+1),!r)continue;const n=r[i],c=r[s];a&&(o=(n-a[i])/3,r[`cp1${i}`]=n-o,r[`cp1${s}`]=c-o*e[h]),l&&(o=(l[i]-n)/3,r[`cp2${i}`]=n+o,r[`cp2${s}`]=c+o*e[h])}}(t,o,e)}function ri(t,e,i){return Math.max(Math.min(t,i),e)}function li(t,e,i,s,n){let o,a,r,l;if(e.spanGaps&&(t=t.filter((t=>!t.skip))),"monotone"===e.cubicInterpolationMode)ai(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;o<a;++o)r=t[o],l=oi(i,r,t[Math.min(o+1,a-(s?0:1))%a],e.tension),r.cp1x=l.previous.x,r.cp1y=l.previous.y,r.cp2x=l.next.x,r.cp2y=l.next.y,i=r}e.capBezierPoints&&function(t,e){let i,s,n,o,a,r=Ee(t[0],e);for(i=0,s=t.length;i<s;++i)a=o,o=r,r=i<s-1&&Ee(t[i+1],e),o&&(n=t[i],a&&(n.cp1x=ri(n.cp1x,e.left,e.right),n.cp1y=ri(n.cp1y,e.top,e.bottom)),r&&(n.cp2x=ri(n.cp2x,e.left,e.right),n.cp2y=ri(n.cp2y,e.top,e.bottom)))}(t,i)}const hi=t=>0===t||1===t,ci=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*O/i),di=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*O/i)+1,ui={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*E),easeOutSine:t=>Math.sin(t*E),easeInOutSine:t=>-.5*(Math.cos(C*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>hi(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>hi(t)?t:ci(t,.075,.3),easeOutElastic:t=>hi(t)?t:di(t,.075,.3),easeInOutElastic(t){const e=.1125;return hi(t)?t:t<.5?.5*ci(2*t,e,.45):.5+.5*di(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-ui.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*ui.easeInBounce(2*t):.5*ui.easeOutBounce(2*t-1)+.5};function fi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function gi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:"middle"===s?i<.5?t.y:e.y:"after"===s?i<1?t.y:e.y:i>0?e.y:t.y}}function pi(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=fi(t,n,i),r=fi(n,o,i),l=fi(o,e,i),h=fi(a,r,i),c=fi(r,l,i);return fi(h,c,i)}const mi=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,bi=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function xi(t,e){const i=(""+t).match(mi);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t}function _i(t,e){const i={},s=o(e),n=s?Object.keys(e):e,a=o(t)?s?i=>l(t[i],t[e[i]]):e=>t[e]:()=>t;for(const t of n)i[t]=+a(t)||0;return i}function yi(t){return _i(t,{top:"y",right:"x",bottom:"y",left:"x"})}function vi(t){return _i(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Mi(t){const e=yi(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function wi(t,e){t=t||{},e=e||ue.font;let i=l(t.size,e.size);"string"==typeof i&&(i=parseInt(i,10));let s=l(t.style,e.style);s&&!(""+s).match(bi)&&(console.warn('Invalid font style specified: "'+s+'"'),s=void 0);const n={family:l(t.family,e.family),lineHeight:xi(l(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:l(t.weight,e.weight),string:""};return n.string=Pe(n),n}function ki(t,e,i,s){let o,a,r,l=!0;for(o=0,a=t.length;o<a;++o)if(r=t[o],void 0!==r&&(void 0!==e&&"function"==typeof r&&(r=r(e),l=!1),void 0!==i&&n(r)&&(r=r[i%r.length],l=!1),void 0!==r))return s&&!l&&(s.cacheable=!1),r}function Si(t,e,i){const{min:s,max:n}=t,o=c(e,(n-s)/2),a=(t,e)=>i&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function Pi(t,e){return Object.assign(Object.create(t),e)}function Di(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>"center"===t?t:"right"===t?"left":"right",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,i):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function Ci(t,e){let i,s;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,s=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=s)}function Oi(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Ai(t){return"angle"===t?{between:Z,compare:K,normalize:G}:{between:tt,compare:(t,e)=>t-e,normalize:t=>t}}function Ti({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i==0,style:n}}function Li(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:l,normalize:h}=Ai(s),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=Ai(s),l=e.length;let h,c,{start:d,end:u,loop:f}=t;if(f){for(d+=l,u+=l,h=0,c=l;h<c&&a(r(e[d%l][s]),n,o);++h)d--,u--;d%=l,u%=l}return u<d&&(u+=l),{start:d,end:u,loop:f,style:t.style}}(t,e,i),g=[];let p,m,b,x=!1,_=null;const y=()=>x||l(n,b,p)&&0!==r(n,b),v=()=>!x||0===r(o,p)||l(o,b,p);for(let t=c,i=c;t<=d;++t)m=e[t%a],m.skip||(p=h(m[s]),p!==b&&(x=l(p,n,o),null===_&&y()&&(_=0===r(p,n)?t:i),null!==_&&v()&&(g.push(Ti({start:_,end:t,loop:u,count:a,style:f})),_=null),i=t,b=p));return null!==_&&g.push(Ti({start:_,end:d,loop:u,count:a,style:f})),g}function Ei(t,e){const i=[],s=t.segments;for(let n=0;n<s.length;n++){const o=Li(s[n],t.points,e);o.length&&i.push(...o)}return i}function Ri(t,e){const i=t.points,s=t.options.spanGaps,n=i.length;if(!n)return[];const o=!!t._loop,{start:a,end:r}=function(t,e,i,s){let n=0,o=e-1;if(i&&!s)for(;n<e&&!t[n].skip;)n++;for(;n<e&&t[n].skip;)n++;for(n%=e,i&&(o+=n);o>n&&t[o%e].skip;)o--;return o%=e,{start:n,end:o}}(i,n,o,s);if(!0===s)return Ii(t,[{start:a,end:r,loop:o}],i,e);return Ii(t,function(t,e,i,s){const n=t.length,o=[];let a,r=e,l=t[e];for(a=e+1;a<=i;++a){const i=t[a%n];i.skip||i.stop?l.skip||(s=!1,o.push({start:e%n,end:(a-1)%n,loop:s}),e=r=i.stop?a:null):(r=a,l.skip&&(e=a)),l=i}return null!==r&&o.push({start:e%n,end:r%n,loop:s}),o}(i,a,r<a?r+n:r,!!t._fullLoop&&0===a&&r===n-1),i,e)}function Ii(t,e,i,s){return s&&s.setContext&&i?function(t,e,i,s){const n=t._chart.getContext(),o=zi(t.options),{_datasetIndex:a,options:{spanGaps:r}}=t,l=i.length,h=[];let c=o,d=e[0].start,u=d;function f(t,e,s,n){const o=r?-1:1;if(t!==e){for(t+=l;i[t%l].skip;)t-=o;for(;i[e%l].skip;)e+=o;t%l!=e%l&&(h.push({start:t%l,end:e%l,loop:s,style:n}),c=n,d=e%l)}}for(const t of e){d=r?d:t.start;let e,o=i[d%l];for(u=d+1;u<=t.end;u++){const r=i[u%l];e=zi(s.setContext(Pi(n,{type:"segment",p0:o,p1:r,p0DataIndex:(u-1)%l,p1DataIndex:u%l,datasetIndex:a}))),Fi(e,c)&&f(d,u-1,t.loop,c),o=r,c=e}d<u-1&&f(d,u-1,t.loop,c)}return h}(t,e,i,s):e}function zi(t){return{backgroundColor:t.backgroundColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,borderWidth:t.borderWidth,borderColor:t.borderColor}}function Fi(t,e){return e&&JSON.stringify(t)!==JSON.stringify(e)}var Vi=Object.freeze({__proto__:null,easingEffects:ui,isPatternOrGradient:Jt,color:Qt,getHoverColor:te,noop:e,uid:i,isNullOrUndef:s,isArray:n,isObject:o,isFinite:a,finiteOrDefault:r,valueOrDefault:l,toPercentage:h,toDimension:c,callback:d,each:u,_elementsEqual:f,clone:g,_merger:m,merge:b,mergeIf:x,_mergerIf:_,_deprecated:function(t,e,i,s){void 0!==e&&console.warn(t+': "'+i+'" is deprecated. Please use "'+s+'" instead')},_splitKey:v,resolveObjectKey:M,_capitalize:w,defined:k,isFunction:S,setsEqual:P,_isClickEvent:D,toFontString:Pe,_measureText:De,_longestText:Ce,_alignPixel:Oe,clearCanvas:Ae,drawPoint:Te,drawPointLegend:Le,_isPointInArea:Ee,clipArea:Re,unclipArea:Ie,_steppedLineTo:ze,_bezierCurveTo:Fe,renderText:Ve,addRoundedRectPath:We,_lookup:et,_lookupByKey:it,_rlookupByKey:st,_filterBetween:nt,listenArrayEvents:at,unlistenArrayEvents:rt,_arrayUnique:lt,_createResolver:He,_attachContext:je,_descriptors:$e,_parseObjectDataRadialScale:ei,splineCurve:oi,splineCurveMonotone:ai,_updateBezierControlPoints:li,_isDomSupported:fe,_getParentNode:ge,getStyle:be,getRelativePosition:ye,getMaximumSize:Me,retinaScale:we,supportsEventListenerOptions:ke,readUsedSize:Se,fontString:function(t,e,i){return e+" "+t+"px "+i},requestAnimFrame:ht,throttled:ct,debounce:dt,_toLeftRightCenter:ut,_alignStartEnd:ft,_textX:gt,_getStartAndCountOfVisiblePoints:pt,_scaleRangesChanged:mt,_pointInLine:fi,_steppedInterpolation:gi,_bezierInterpolation:pi,formatNumber:ne,toLineHeight:xi,_readValueToProps:_i,toTRBL:yi,toTRBLCorners:vi,toPadding:Mi,toFont:wi,resolve:ki,_addGrace:Si,createContext:Pi,PI:C,TAU:O,PITAU:A,INFINITY:T,RAD_PER_DEG:L,HALF_PI:E,QUARTER_PI:R,TWO_THIRDS_PI:I,log10:z,sign:F,almostEquals:V,niceNum:B,_factorize:N,isNumber:W,almostWhole:H,_setMinAndMaxByKey:j,toRadians:$,toDegrees:Y,_decimalPlaces:U,getAngleFromPoint:X,distanceBetweenPoints:q,_angleDiff:K,_normalizeAngle:G,_angleBetween:Z,_limitValue:J,_int16Range:Q,_isBetween:tt,getRtlAdapter:Di,overrideTextDirection:Ci,restoreTextDirection:Oi,_boundSegment:Li,_boundSegments:Ei,_computeSegments:Ri});function Bi(t,e,i,s){const{controller:n,data:o,_sorted:a}=t,r=n._cachedMeta.iScale;if(r&&e===r.axis&&"r"!==e&&a&&o.length){const t=r._reversePixels?st:it;if(!s)return t(o,e,i);if(n._sharedOptions){const s=o[0],n="function"==typeof s.getRange&&s.getRange(e);if(n){const s=t(o,e,i-n),a=t(o,e,i+n);return{lo:s.lo,hi:a.hi}}}}return{lo:0,hi:o.length-1}}function Ni(t,e,i,s,n){const o=t.getSortedVisibleDatasetMetas(),a=i[e];for(let t=0,i=o.length;t<i;++t){const{index:i,data:r}=o[t],{lo:l,hi:h}=Bi(o[t],e,a,n);for(let t=l;t<=h;++t){const e=r[t];e.skip||s(e,i,t)}}}function Wi(t,e,i,s,n){const o=[];if(!n&&!t.isPointInArea(e))return o;return Ni(t,i,e,(function(i,a,r){(n||Ee(i,t.chartArea,0))&&i.inRange(e.x,e.y,s)&&o.push({element:i,datasetIndex:a,index:r})}),!0),o}function Hi(t,e,i,s,n,o){let a=[];const r=function(t){const e=-1!==t.indexOf("x"),i=-1!==t.indexOf("y");return function(t,s){const n=e?Math.abs(t.x-s.x):0,o=i?Math.abs(t.y-s.y):0;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))}}(i);let l=Number.POSITIVE_INFINITY;return Ni(t,i,e,(function(i,h,c){const d=i.inRange(e.x,e.y,n);if(s&&!d)return;const u=i.getCenterPoint(n);if(!(!!o||t.isPointInArea(u))&&!d)return;const f=r(e,u);f<l?(a=[{element:i,datasetIndex:h,index:c}],l=f):f===l&&a.push({element:i,datasetIndex:h,index:c})})),a}function ji(t,e,i,s,n,o){return o||t.isPointInArea(e)?"r"!==i||s?Hi(t,e,i,s,n,o):function(t,e,i,s){let n=[];return Ni(t,i,e,(function(t,i,o){const{startAngle:a,endAngle:r}=t.getProps(["startAngle","endAngle"],s),{angle:l}=X(t,{x:e.x,y:e.y});Z(l,a,r)&&n.push({element:t,datasetIndex:i,index:o})})),n}(t,e,i,n):[]}function $i(t,e,i,s,n){const o=[],a="x"===i?"inXRange":"inYRange";let r=!1;return Ni(t,i,e,((t,s,l)=>{t[a](e[i],n)&&(o.push({element:t,datasetIndex:s,index:l}),r=r||t.inRange(e.x,e.y,n))})),s&&!r?[]:o}var Yi={evaluateInteractionItems:Ni,modes:{index(t,e,i,s){const n=ye(e,t),o=i.axis||"x",a=i.includeInvisible||!1,r=i.intersect?Wi(t,n,o,s,a):ji(t,n,o,!1,s,a),l=[];return r.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=r[0].index,i=t.data[e];i&&!i.skip&&l.push({element:i,datasetIndex:t.index,index:e})})),l):[]},dataset(t,e,i,s){const n=ye(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;let r=i.intersect?Wi(t,n,o,s,a):ji(t,n,o,!1,s,a);if(r.length>0){const e=r[0].datasetIndex,i=t.getDatasetMeta(e).data;r=[];for(let t=0;t<i.length;++t)r.push({element:i[t],datasetIndex:e,index:t})}return r},point:(t,e,i,s)=>Wi(t,ye(e,t),i.axis||"xy",s,i.includeInvisible||!1),nearest(t,e,i,s){const n=ye(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;return ji(t,n,o,i.intersect,s,a)},x:(t,e,i,s)=>$i(t,ye(e,t),"x",i.intersect,s),y:(t,e,i,s)=>$i(t,ye(e,t),"y",i.intersect,s)}};const Ui=["left","top","right","bottom"];function Xi(t,e){return t.filter((t=>t.pos===e))}function qi(t,e){return t.filter((t=>-1===Ui.indexOf(t.pos)&&t.box.axis===e))}function Ki(t,e){return t.sort(((t,i)=>{const s=e?i:t,n=e?t:i;return s.weight===n.weight?s.index-n.index:s.weight-n.weight}))}function Gi(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:s,stackWeight:n}=i;if(!t||!Ui.includes(s))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=n}return e}(t),{vBoxMaxWidth:s,hBoxMaxHeight:n}=e;let o,a,r;for(o=0,a=t.length;o<a;++o){r=t[o];const{fullSize:a}=r.box,l=i[r.stack],h=l&&r.stackWeight/l.weight;r.horizontal?(r.width=h?h*s:a&&e.availableWidth,r.height=n):(r.width=s,r.height=h?h*n:a&&e.availableHeight)}return i}function Zi(t,e,i,s){return Math.max(t[i],e[i])+Math.max(t[s],e[s])}function Ji(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function Qi(t,e,i,s){const{pos:n,box:a}=i,r=t.maxPadding;if(!o(n)){i.size&&(t[n]-=i.size);const e=s[i.stack]||{size:0,count:1};e.size=Math.max(e.size,i.horizontal?a.height:a.width),i.size=e.size/e.count,t[n]+=i.size}a.getPadding&&Ji(r,a.getPadding());const l=Math.max(0,e.outerWidth-Zi(r,t,"left","right")),h=Math.max(0,e.outerHeight-Zi(r,t,"top","bottom")),c=l!==t.w,d=h!==t.h;return t.w=l,t.h=h,i.horizontal?{same:c,other:d}:{same:d,other:c}}function ts(t,e){const i=e.maxPadding;function s(t){const s={left:0,top:0,right:0,bottom:0};return t.forEach((t=>{s[t]=Math.max(e[t],i[t])})),s}return s(t?["left","right"]:["top","bottom"])}function es(t,e,i,s){const n=[];let o,a,r,l,h,c;for(o=0,a=t.length,h=0;o<a;++o){r=t[o],l=r.box,l.update(r.width||e.w,r.height||e.h,ts(r.horizontal,e));const{same:a,other:d}=Qi(e,i,r,s);h|=a&&n.length,c=c||d,l.fullSize||n.push(r)}return h&&es(n,e,i,s)||c}function is(t,e,i,s,n){t.top=i,t.left=e,t.right=e+s,t.bottom=i+n,t.width=s,t.height=n}function ss(t,e,i,s){const n=i.padding;let{x:o,y:a}=e;for(const r of t){const t=r.box,l=s[r.stack]||{count:1,placed:0,weight:1},h=r.stackWeight/l.weight||1;if(r.horizontal){const s=e.w*h,o=l.size||t.height;k(l.start)&&(a=l.start),t.fullSize?is(t,n.left,a,i.outerWidth-n.right-n.left,o):is(t,e.left+l.placed,a,s,o),l.start=a,l.placed+=s,a=t.bottom}else{const s=e.h*h,a=l.size||t.width;k(l.start)&&(o=l.start),t.fullSize?is(t,o,n.top,a,i.outerHeight-n.bottom-n.top):is(t,o,e.top+l.placed,a,s),l.start=o,l.placed+=s,o=t.right}}e.x=o,e.y=a}var ns={addBox(t,e){t.boxes||(t.boxes=[]),e.fullSize=e.fullSize||!1,e.position=e.position||"top",e.weight=e.weight||0,e._layers=e._layers||function(){return[{z:0,draw(t){e.draw(t)}}]},t.boxes.push(e)},removeBox(t,e){const i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure(t,e,i){e.fullSize=i.fullSize,e.position=i.position,e.weight=i.weight},update(t,e,i,s){if(!t)return;const n=Mi(t.options.layout.padding),o=Math.max(e-n.width,0),a=Math.max(i-n.height,0),r=function(t){const e=function(t){const e=[];let i,s,n,o,a,r;for(i=0,s=(t||[]).length;i<s;++i)n=t[i],({position:o,options:{stack:a,stackWeight:r=1}}=n),e.push({index:i,box:n,pos:o,horizontal:n.isHorizontal(),weight:n.weight,stack:a&&o+a,stackWeight:r});return e}(t),i=Ki(e.filter((t=>t.box.fullSize)),!0),s=Ki(Xi(e,"left"),!0),n=Ki(Xi(e,"right")),o=Ki(Xi(e,"top"),!0),a=Ki(Xi(e,"bottom")),r=qi(e,"x"),l=qi(e,"y");return{fullSize:i,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Xi(e,"chartArea"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}(t.boxes),l=r.vertical,h=r.horizontal;u(t.boxes,(t=>{"function"==typeof t.beforeLayout&&t.beforeLayout()}));const c=l.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,d=Object.freeze({outerWidth:e,outerHeight:i,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/c,hBoxMaxHeight:a/2}),f=Object.assign({},n);Ji(f,Mi(s));const g=Object.assign({maxPadding:f,w:o,h:a,x:n.left,y:n.top},n),p=Gi(l.concat(h),d);es(r.fullSize,g,d,p),es(l,g,d,p),es(h,g,d,p)&&es(l,g,d,p),function(t){const e=t.maxPadding;function i(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=i("top"),t.x+=i("left"),i("right"),i("bottom")}(g),ss(r.leftAndTop,g,d,p),g.x+=g.w,g.y+=g.h,ss(r.rightAndBottom,g,d,p),t.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},u(r.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})}))}};class os{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e/s):i)}}isAttached(t){return!0}updateConfig(t){}}class as extends os{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const rs={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},ls=t=>null===t||""===t;const hs=!!ke&&{passive:!0};function cs(t,e,i){t.canvas.removeEventListener(e,i,hs)}function ds(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function us(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ds(i.addedNodes,s),e=e&&!ds(i.removedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}function fs(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ds(i.removedNodes,s),e=e&&!ds(i.addedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}const gs=new Map;let ps=0;function ms(){const t=window.devicePixelRatio;t!==ps&&(ps=t,gs.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function bs(t,e,i){const s=t.canvas,n=s&&ge(s);if(!n)return;const o=ct(((t,e)=>{const s=n.clientWidth;i(t,e),s<n.clientWidth&&i()}),window),a=new ResizeObserver((t=>{const e=t[0],i=e.contentRect.width,s=e.contentRect.height;0===i&&0===s||o(i,s)}));return a.observe(n),function(t,e){gs.size||window.addEventListener("resize",ms),gs.set(t,e)}(t,o),a}function xs(t,e,i){i&&i.disconnect(),"resize"===e&&function(t){gs.delete(t),gs.size||window.removeEventListener("resize",ms)}(t)}function _s(t,e,i){const s=t.canvas,n=ct((e=>{null!==t.ctx&&i(function(t,e){const i=rs[t.type]||t.type,{x:s,y:n}=ye(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==n?n:null}}(e,t))}),t);return function(t,e,i){t.addEventListener(e,i,hs)}(s,e,n),n}class ys extends os{acquireContext(t,e){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute("height"),n=t.getAttribute("width");if(t.$chartjs={initial:{height:s,width:n,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",ls(n)){const e=Se(t,"width");void 0!==e&&(t.width=e)}if(ls(s))if(""===t.style.height)t.height=t.width/(e||2);else{const e=Se(t,"height");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e.$chartjs)return!1;const i=e.$chartjs.initial;["height","width"].forEach((t=>{const n=i[t];s(n)?e.removeAttribute(t):e.setAttribute(t,n)}));const n=i.style||{};return Object.keys(n).forEach((t=>{e.style[t]=n[t]})),e.width=e.width,delete e.$chartjs,!0}addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxies||(t.$proxies={}),n={attach:us,detach:fs,resize:bs}[e]||_s;s[e]=n(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:xs,detach:xs,resize:xs}[e]||cs)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return Me(t,e,i,s)}isAttached(t){const e=ge(t);return!(!e||!e.isConnected)}}function vs(t){return!fe()||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?as:ys}var Ms=Object.freeze({__proto__:null,_detectPlatform:vs,BasePlatform:os,BasicPlatform:as,DomPlatform:ys});const ws="transparent",ks={boolean:(t,e,i)=>i>.5?e:t,color(t,e,i){const s=Qt(t||ws),n=s.valid&&Qt(e||ws);return n&&n.valid?n.mix(s,i).hexString():e},number:(t,e,i)=>t+(e-t)*i};class Ss{constructor(t,e,i,s){const n=e[i];s=ki([t.to,s,n,t.from]);const o=ki([t.from,n,s]);this._active=!0,this._fn=t.fn||ks[t.type||typeof o],this._easing=ui[t.easing]||ui.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],n=i-this._start,o=this._duration-n;this._start=i,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=n,this._loop=!!t.loop,this._to=ki([t.to,e,s,t.from]),this._from=ki([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._from,o=this._loop,a=this._to;let r;if(this._active=n!==a&&(o||e<i),!this._active)return this._target[s]=a,void this._notify(!0);e<0?this._target[s]=n:(r=e/i%2,r=o&&r>1?2-r:r,r=this._easing(Math.min(1,Math.max(0,r))),this._target[s]=this._fn(n,a,r))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?"res":"rej",i=this._promises||[];for(let t=0;t<i.length;t++)i[t][e]()}}class Ps{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!o(t))return;const e=Object.keys(ue.animation),i=this._properties;Object.getOwnPropertyNames(t).forEach((s=>{const a=t[s];if(!o(a))return;const r={};for(const t of e)r[t]=a[t];(n(a.properties)&&a.properties||[s]).forEach((t=>{t!==s&&i.has(t)||i.set(t,r)}))}))}_animateOptions(t,e){const i=e.options,s=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!s)return[];const n=this._createAnimations(s,i);return i.$shared&&function(t,e){const i=[],s=Object.keys(e);for(let e=0;e<s.length;e++){const n=t[s[e]];n&&n.active()&&i.push(n.wait())}return Promise.all(i)}(t.options.$animations,i).then((()=>{t.options=i}),(()=>{})),n}_createAnimations(t,e){const i=this._properties,s=[],n=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now();let r;for(r=o.length-1;r>=0;--r){const l=o[r];if("$"===l.charAt(0))continue;if("options"===l){s.push(...this._animateOptions(t,e));continue}const h=e[l];let c=n[l];const d=i.get(l);if(c){if(d&&c.active()){c.update(d,h,a);continue}c.cancel()}d&&d.duration?(n[l]=c=new Ss(d,t,l,h),s.push(c)):t[l]=h}return s}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(xt.add(this._chart,i),!0):void 0}}function Ds(t,e){const i=t&&t.options||{},s=i.reverse,n=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:s?o:n,end:s?n:o}}function Cs(t,e){const i=[],s=t._getSortedDatasetMetas(e);let n,o;for(n=0,o=s.length;n<o;++n)i.push(s[n].index);return i}function Os(t,e,i,s={}){const n=t.keys,o="single"===s.mode;let r,l,h,c;if(null!==e){for(r=0,l=n.length;r<l;++r){if(h=+n[r],h===i){if(s.all)continue;break}c=t.values[h],a(c)&&(o||0===e||F(e)===F(c))&&(e+=c)}return e}}function As(t,e){const i=t&&t.options.stacked;return i||void 0===i&&void 0!==e.stack}function Ts(t,e,i){const s=t[e]||(t[e]={});return s[i]||(s[i]={})}function Ls(t,e,i,s){for(const n of e.getMatchingVisibleMetas(s).reverse()){const e=t[n.index];if(i&&e>0||!i&&e<0)return n.index}return null}function Es(t,e){const{chart:i,_cachedMeta:s}=t,n=i._stacks||(i._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,h=a.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,a,s),d=e.length;let u;for(let t=0;t<d;++t){const i=e[t],{[l]:o,[h]:d}=i;u=(i._stacks||(i._stacks={}))[h]=Ts(n,c,o),u[r]=d,u._top=Ls(u,a,!0,s.type),u._bottom=Ls(u,a,!1,s.type);(u._visualValues||(u._visualValues={}))[r]=d}}function Rs(t,e){const i=t.scales;return Object.keys(i).filter((t=>i[t].axis===e)).shift()}function Is(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if(s){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[s]||void 0===e[s][i])return;delete e[s][i],void 0!==e[s]._visualValues&&void 0!==e[s]._visualValues[i]&&delete e[s]._visualValues[i]}}}const zs=t=>"reset"===t||"none"===t,Fs=(t,e)=>e?t:Object.assign({},t);class Vs{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=As(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&Is(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,s)=>"x"===t?e:"r"===t?s:i,n=e.xAxisID=l(i.xAxisID,Rs(t,"x")),o=e.yAxisID=l(i.yAxisID,Rs(t,"y")),a=e.rAxisID=l(i.rAxisID,Rs(t,"r")),r=e.indexAxis,h=e.iAxisID=s(r,n,o,a),c=e.vAxisID=s(r,o,n,a);e.xScale=this.getScaleForId(n),e.yScale=this.getScaleForId(o),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(h),e.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&rt(this._data,this),t._stacked&&Is(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(o(e))this._data=function(t){const e=Object.keys(t),i=new Array(e.length);let s,n,o;for(s=0,n=e.length;s<n;++s)o=e[s],i[s]={x:o,y:t[o]};return i}(e);else if(i!==e){if(i){rt(i,this);const t=this._cachedMeta;Is(t),t._parsed=[]}e&&Object.isExtensible(e)&&at(e,this),this._syncList=[],this._data=e}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const n=e._stacked;e._stacked=As(e.vScale,e),e.stack!==i.stack&&(s=!0,Is(e),e.stack=i.stack),this._resyncElements(t),(s||n!==e._stacked)&&Es(this,e._parsed)}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:i,_data:s}=this,{iScale:a,_stacked:r}=i,l=a.axis;let h,c,d,u=0===t&&e===s.length||i._sorted,f=t>0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=s,i._sorted=!0,d=s;else{d=n(s[t])?this.parseArrayData(i,s,t,e):o(s[t])?this.parseObjectData(i,s,t,e):this.parsePrimitiveData(i,s,t,e);const a=()=>null===c[l]||f&&c[l]<f[l];for(h=0;h<e;++h)i._parsed[h+t]=c=d[h],u&&(a()&&(u=!1),f=c);i._sorted=u}r&&Es(this,d)}parsePrimitiveData(t,e,i,s){const{iScale:n,vScale:o}=t,a=n.axis,r=o.axis,l=n.getLabels(),h=n===o,c=new Array(s);let d,u,f;for(d=0,u=s;d<u;++d)f=d+i,c[d]={[a]:h||n.parse(l[f],f),[r]:o.parse(e[f],f)};return c}parseArrayData(t,e,i,s){const{xScale:n,yScale:o}=t,a=new Array(s);let r,l,h,c;for(r=0,l=s;r<l;++r)h=r+i,c=e[h],a[r]={x:n.parse(c[0],h),y:o.parse(c[1],h)};return a}parseObjectData(t,e,i,s){const{xScale:n,yScale:o}=t,{xAxisKey:a="x",yAxisKey:r="y"}=this._parsing,l=new Array(s);let h,c,d,u;for(h=0,c=s;h<c;++h)d=h+i,u=e[d],l[h]={x:n.parse(M(u,a),d),y:o.parse(M(u,r),d)};return l}getParsed(t){return this._cachedMeta._parsed[t]}getDataElement(t){return this._cachedMeta.data[t]}applyStack(t,e,i){const s=this.chart,n=this._cachedMeta,o=e[t.axis];return Os({keys:Cs(s,!0),values:e._stacks[t.axis]._visualValues},o,n.index,{mode:i})}updateRangeFromParsed(t,e,i,s){const n=i[e.axis];let o=null===n?NaN:n;const a=s&&i._stacks[e.axis];s&&a&&(s.values=a,o=Os(s,n,this._cachedMeta.index)),t.min=Math.min(t.min,o),t.max=Math.max(t.max,o)}getMinMax(t,e){const i=this._cachedMeta,s=i._parsed,n=i._sorted&&t===i.iScale,o=s.length,r=this._getOtherScale(t),l=((t,e,i)=>t&&!e.hidden&&e._stacked&&{keys:Cs(i,!0),values:null})(e,i,this.chart),h={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:c,max:d}=function(t){const{min:e,max:i,minDefined:s,maxDefined:n}=t.getUserBounds();return{min:s?e:Number.NEGATIVE_INFINITY,max:n?i:Number.POSITIVE_INFINITY}}(r);let u,f;function g(){f=s[u];const e=f[r.axis];return!a(f[t.axis])||c>e||d<e}for(u=0;u<o&&(g()||(this.updateRangeFromParsed(h,t,f,l),!n));++u);if(n)for(u=o-1;u>=0;--u)if(!g()){this.updateRangeFromParsed(h,t,f,l);break}return h}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,n,o;for(s=0,n=e.length;s<n;++s)o=e[s][t.axis],a(o)&&i.push(o);return i}getMaxOverflow(){return!1}getLabelAndValue(t){const e=this._cachedMeta,i=e.iScale,s=e.vScale,n=this.getParsed(t);return{label:i?""+i.getLabelForValue(n[i.axis]):"",value:s?""+s.getLabelForValue(n[s.axis]):""}}_update(t){const e=this._cachedMeta;this.update(t||"default"),e._clip=function(t){let e,i,s,n;return o(t)?(e=t.top,i=t.right,s=t.bottom,n=t.left):e=i=s=n=t,{top:e,right:i,bottom:s,left:n,disabled:!1===t}}(l(this.options.clip,function(t,e,i){if(!1===i)return!1;const s=Ds(t,i),n=Ds(e,i);return{top:n.end,right:s.end,bottom:n.start,left:s.start}}(e.xScale,e.yScale,this.getMaxOverflow())))}update(t){}draw(){const t=this._ctx,e=this.chart,i=this._cachedMeta,s=i.data||[],n=e.chartArea,o=[],a=this._drawStart||0,r=this._drawCount||s.length-a,l=this.options.drawActiveElementsOnTop;let h;for(i.dataset&&i.dataset.draw(t,n,a,r),h=a;h<a+r;++h){const e=s[h];e.hidden||(e.active&&l?o.push(e):e.draw(t,n))}for(h=0;h<o.length;++h)o[h].draw(t,n)}getStyle(t,e){const i=e?"active":"default";return void 0===t&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(i):this.resolveDataElementOptions(t||0,i)}getContext(t,e,i){const s=this.getDataset();let n;if(t>=0&&t<this._cachedMeta.data.length){const e=this._cachedMeta.data[t];n=e.$context||(e.$context=function(t,e,i){return Pi(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:i,index:e,mode:"default",type:"data"})}(this.getContext(),t,e)),n.parsed=this.getParsed(t),n.raw=s.data[t],n.index=n.dataIndex=t}else n=this.$context||(this.$context=function(t,e){return Pi(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}(this.chart.getContext(),this.index)),n.dataset=s,n.index=n.datasetIndex=this.index;return n.active=!!e,n.mode=i,n}resolveDatasetElementOptions(t){return this._resolveElementOptions(this.datasetElementType.id,t)}resolveDataElementOptions(t,e){return this._resolveElementOptions(this.dataElementType.id,e,t)}_resolveElementOptions(t,e="default",i){const s="active"===e,n=this._cachedDataOpts,o=t+"-"+e,a=n[o],r=this.enableOptionSharing&&k(i);if(a)return Fs(a,r);const l=this.chart.config,h=l.datasetElementScopeKeys(this._type,t),c=s?[`${t}Hover`,"hover",t,""]:[t,""],d=l.getOptionScopes(this.getDataset(),h),u=Object.keys(ue.elements[t]),f=l.resolveNamedOptions(d,u,(()=>this.getContext(i,s,e)),c);return f.$shared&&(f.$shared=r,n[o]=Object.freeze(Fs(f,r))),f}_resolveAnimations(t,e,i){const s=this.chart,n=this._cachedDataOpts,o=`animation-${e}`,a=n[o];if(a)return a;let r;if(!1!==s.options.animation){const s=this.chart.config,n=s.datasetAnimationScopeKeys(this._type,e),o=s.getOptionScopes(this.getDataset(),n);r=s.createResolver(o,this.getContext(t,i,e))}const l=new Ps(s,r&&r.animations);return r&&r._cacheable&&(n[o]=Object.freeze(l)),l}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||zs(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const i=this.resolveDataElementOptions(t,e),s=this._sharedOptions,n=this.getSharedOptions(i),o=this.includeOptions(e,n)||n!==s;return this.updateSharedOptions(n,e,i),{sharedOptions:n,includeOptions:o}}updateElement(t,e,i,s){zs(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!zs(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;const n=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(n)||n})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[t,e,i]of this._syncList)this[t](e,i);this._syncList=[];const s=i.length,n=e.length,o=Math.min(n,s);o&&this.parse(0,o),n>s?this._insertElements(s,n-s,t):n<s&&this._removeElements(n,s-n)}_insertElements(t,e,i=!0){const s=this._cachedMeta,n=s.data,o=t+e;let a;const r=t=>{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;a<o;++a)n[a]=new this.dataElementType;this._parsing&&r(s._parsed),this.parse(t,e),i&&this.updateElements(n,t,e,"reset")}updateElements(t,e,i,s){}_removeElements(t,e){const i=this._cachedMeta;if(this._parsing){const s=i._parsed.splice(t,e);i._stacked&&Is(i,s)}i.data.splice(t,e)}_sync(t){if(this._parsing)this._syncList.push(t);else{const[e,i,s]=t;this[e](i,s)}this.chart._dataChanges.push([this.index,...t])}_onDataPush(){const t=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-t,t])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(t,e){e&&this._sync(["_removeElements",t,e]);const i=arguments.length-2;i&&this._sync(["_insertElements",t,i])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}class Bs{static defaults={};static defaultRoutes=void 0;active=!1;tooltipPosition(t){const{x:e,y:i}=this.getProps(["x","y"],t);return{x:e,y:i}}hasValue(){return W(this.x)&&W(this.y)}getProps(t,e){const i=this.$animations;if(!e||!i)return this;const s={};return t.forEach((t=>{s[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),s}}function Ns(t,e){const i=t.options.ticks,n=function(t){const e=t.options.offset,i=t._tickSize(),s=t._length/i+(e?0:1),n=t._maxLength/i;return Math.floor(Math.min(s,n))}(t),o=Math.min(i.maxTicksLimit||n,n),a=i.major.enabled?function(t){const e=[];let i,s;for(i=0,s=t.length;i<s;i++)t[i].major&&e.push(i);return e}(e):[],r=a.length,l=a[0],h=a[r-1],c=[];if(r>o)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;n<t.length;n++)n===a&&(e.push(t[n]),o++,a=i[o*s])}(e,c,a,r/o),c;const d=function(t,e,i){const s=function(t){const e=t.length;let i,s;if(e<2)return!1;for(s=t[0],i=1;i<e;++i)if(t[i]-t[i-1]!==s)return!1;return s}(t),n=e.length/i;if(!s)return Math.max(n,1);const o=N(s);for(let t=0,e=o.length-1;t<e;t++){const e=o[t];if(e>n)return e}return Math.max(n,1)}(a,e,o);if(r>0){let t,i;const n=r>1?Math.round((h-l)/(r-1)):null;for(Ws(e,c,d,s(n)?0:l-n,l),t=0,i=r-1;t<i;t++)Ws(e,c,d,a[t],a[t+1]);return Ws(e,c,d,h,s(n)?e.length:h+n),c}return Ws(e,c,d),c}function Ws(t,e,i,s,n){const o=l(s,0),a=Math.min(l(n,t.length),t.length);let r,h,c,d=0;for(i=Math.ceil(i),n&&(r=n-s,i=r/Math.floor(r/i)),c=o;c<0;)d++,c=Math.round(o+d*i);for(h=Math.max(o,0);h<a;h++)h===c&&(e.push(t[h]),d++,c=Math.round(o+d*i))}const Hs=(t,e,i)=>"top"===e||"left"===e?t[e]+i:t[e]-i,js=(t,e)=>Math.min(e||t,t);function $s(t,e){const i=[],s=t.length/e,n=t.length;let o=0;for(;o<n;o+=s)i.push(t[Math.floor(o)]);return i}function Ys(t,e,i){const s=t.ticks.length,n=Math.min(e,s-1),o=t._startPixel,a=t._endPixel,r=1e-6;let l,h=t.getPixelForTick(n);if(!(i&&(l=1===s?Math.max(h-o,a-h):0===e?(t.getPixelForTick(1)-h)/2:(h-t.getPixelForTick(n-1))/2,h+=n<e?l:-l,h<o-r||h>a+r)))return h}function Us(t){return t.drawTicks?t.tickLength:0}function Xs(t,e){if(!t.display)return 0;const i=wi(t.font,e),s=Mi(t.padding);return(n(t.text)?t.text.length:1)*i.lineHeight+s.height}function qs(t,e,i){let s=ut(t);return(i&&"right"!==e||!i&&"right"===e)&&(s=(t=>"left"===t?"right":"right"===t?"left":t)(s)),s}class Ks extends Bs{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=r(t,Number.POSITIVE_INFINITY),e=r(e,Number.NEGATIVE_INFINITY),i=r(i,Number.POSITIVE_INFINITY),s=r(s,Number.NEGATIVE_INFINITY),{min:r(t,i),max:r(e,s),minDefined:a(t),maxDefined:a(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:n,maxDefined:o}=this.getUserBounds();if(n&&o)return{min:i,max:s};const a=this.getMatchingVisibleMetas();for(let r=0,l=a.length;r<l;++r)e=a[r].controller.getMinMax(this,t),n||(i=Math.min(i,e.min)),o||(s=Math.max(s,e.max));return i=o&&i>s?s:i,s=n&&i>s?i:s,{min:r(i,r(s,i)),max:r(s,r(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){d(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:n,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Si(this,n,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const r=a<this.ticks.length;this._convertTicksToLabels(r?$s(this.ticks,a):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),o.display&&(o.autoSkip||"auto"===o.source)&&(this.ticks=Ns(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),r&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let t,e,i=this.options.reverse;this.isHorizontal()?(t=this.left,e=this.right):(t=this.top,e=this.bottom,i=!i),this._startPixel=t,this._endPixel=e,this._reversePixels=i,this._length=e-t,this._alignToPixels=this.options.alignToPixels}afterUpdate(){d(this.options.afterUpdate,[this])}beforeSetDimensions(){d(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){d(this.options.afterSetDimensions,[this])}_callHooks(t){this.chart.notifyPlugins(t,this.getContext()),d(this.options[t],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){d(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(t){const e=this.options.ticks;let i,s,n;for(i=0,s=t.length;i<s;i++)n=t[i],n.label=d(e.callback,[n.value,i,t],this)}afterTickToLabelConversion(){d(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){d(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const t=this.options,e=t.ticks,i=js(this.ticks.length,t.ticks.maxTicksLimit),s=e.minRotation||0,n=e.maxRotation;let o,a,r,l=s;if(!this._isVisible()||!e.display||s>=n||i<=1||!this.isHorizontal())return void(this.labelRotation=s);const h=this._getLabelSizes(),c=h.widest.width,d=h.highest.height,u=J(this.chart.width-c,0,this.maxWidth);o=t.offset?this.maxWidth/i:u/(i-1),c+6>o&&(o=u/(i-(t.offset?.5:1)),a=this.maxHeight-Us(t.grid)-e.padding-Xs(t.title,this.chart.options.font),r=Math.sqrt(c*c+d*d),l=Y(Math.min(Math.asin(J((h.highest.height+6)/o,-1,1)),Math.asin(J(a/r,-1,1))-Math.asin(J(d/r,-1,1)))),l=Math.max(s,Math.min(n,l))),this.labelRotation=l}afterCalculateLabelRotation(){d(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){d(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:n}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const o=Xs(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=Us(n)+o):(t.height=this.maxHeight,t.width=Us(n)+o),i.display&&this.ticks.length){const{first:e,last:s,widest:n,highest:o}=this._getLabelSizes(),r=2*i.padding,l=$(this.labelRotation),h=Math.cos(l),c=Math.sin(l);if(a){const e=i.mirror?0:c*n.width+h*o.height;t.height=Math.min(this.maxHeight,t.height+e+r)}else{const e=i.mirror?0:h*n.width+c*o.height;t.width=Math.min(this.maxWidth,t.width+e+r)}this._calculatePadding(e,s,c,h)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){const{ticks:{align:n,padding:o},position:a}=this.options,r=0!==this.labelRotation,l="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const a=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;r?l?(c=s*t.width,d=i*e.height):(c=i*t.height,d=s*e.width):"start"===n?d=e.width:"end"===n?c=t.width:"inner"!==n&&(c=t.width/2,d=e.width/2),this.paddingLeft=Math.max((c-a+o)*this.width/(this.width-a),0),this.paddingRight=Math.max((d-h+o)*this.width/(this.width-h),0)}else{let i=e.height/2,s=t.height/2;"start"===n?(i=0,s=t.height):"end"===n&&(i=e.height,s=0),this.paddingTop=i+o,this.paddingBottom=s+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){d(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e<i;e++)s(t[e].label)&&(t.splice(e,1),i--,e--);this.afterTickToLabelConversion()}_getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ticks.sampleSize;let i=this.ticks;e<i.length&&(i=$s(i,e)),this._labelSizes=t=this._computeLabelSizes(i,i.length,this.options.ticks.maxTicksLimit)}return t}_computeLabelSizes(t,e,i){const{ctx:o,_longestTextCache:a}=this,r=[],l=[],h=Math.floor(e/js(e,i));let c,d,f,g,p,m,b,x,_,y,v,M=0,w=0;for(c=0;c<e;c+=h){if(g=t[c].label,p=this._resolveTickFontOptions(c),o.font=m=p.string,b=a[m]=a[m]||{data:{},gc:[]},x=p.lineHeight,_=y=0,s(g)||n(g)){if(n(g))for(d=0,f=g.length;d<f;++d)v=g[d],s(v)||n(v)||(_=De(o,b.data,b.gc,_,v),y+=x)}else _=De(o,b.data,b.gc,_,g),y=x;r.push(_),l.push(y),M=Math.max(_,M),w=Math.max(y,w)}!function(t,e){u(t,(t=>{const i=t.gc,s=i.length/2;let n;if(s>e){for(n=0;n<s;++n)delete t.data[i[n]];i.splice(0,s)}}))}(a,e);const k=r.indexOf(M),S=l.indexOf(w),P=t=>({width:r[t]||0,height:l[t]||0});return{first:P(0),last:P(e-1),widest:P(k),highest:P(S),widths:r,heights:l}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return Q(this._alignToPixels?Oe(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&t<e.length){const i=e[t];return i.$context||(i.$context=function(t,e,i){return Pi(t,{tick:i,index:e,type:"tick"})}(this.getContext(),t,i))}return this.$context||(this.$context=Pi(this.chart.getContext(),{scale:this,type:"scale"}))}_tickSize(){const t=this.options.ticks,e=$(this.labelRotation),i=Math.abs(Math.cos(e)),s=Math.abs(Math.sin(e)),n=this._getLabelSizes(),o=t.autoSkipPadding||0,a=n?n.widest.width+o:0,r=n?n.highest.height+o:0;return this.isHorizontal()?r*i>a*s?a/i:r/s:r*s<a*i?r/i:a/s}_isVisible(){const t=this.options.display;return"auto"!==t?!!t:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:n,position:a,border:r}=s,h=n.offset,c=this.isHorizontal(),d=this.ticks.length+(h?1:0),u=Us(n),f=[],g=r.setContext(this.getContext()),p=g.display?g.width:0,m=p/2,b=function(t){return Oe(i,t,p)};let x,_,y,v,M,w,k,S,P,D,C,O;if("top"===a)x=b(this.bottom),w=this.bottom-u,S=x-m,D=b(t.top)+m,O=t.bottom;else if("bottom"===a)x=b(this.top),D=t.top,O=b(t.bottom)-m,w=x+m,S=this.top+u;else if("left"===a)x=b(this.right),M=this.right-u,k=x-m,P=b(t.left)+m,C=t.right;else if("right"===a)x=b(this.left),P=t.left,C=b(t.right)-m,M=x+m,k=this.left+u;else if("x"===e){if("center"===a)x=b((t.top+t.bottom)/2+.5);else if(o(a)){const t=Object.keys(a)[0],e=a[t];x=b(this.chart.scales[t].getPixelForValue(e))}D=t.top,O=t.bottom,w=x+m,S=w+u}else if("y"===e){if("center"===a)x=b((t.left+t.right)/2);else if(o(a)){const t=Object.keys(a)[0],e=a[t];x=b(this.chart.scales[t].getPixelForValue(e))}M=x-m,k=M-u,P=t.left,C=t.right}const A=l(s.ticks.maxTicksLimit,d),T=Math.max(1,Math.ceil(d/A));for(_=0;_<d;_+=T){const t=this.getContext(_),e=n.setContext(t),s=r.setContext(t),o=e.lineWidth,a=e.color,l=s.dash||[],d=s.dashOffset,u=e.tickWidth,g=e.tickColor,p=e.tickBorderDash||[],m=e.tickBorderDashOffset;y=Ys(this,_,h),void 0!==y&&(v=Oe(i,y,o),c?M=k=P=C=v:w=S=D=O=v,f.push({tx1:M,ty1:w,tx2:k,ty2:S,x1:P,y1:D,x2:C,y2:O,width:o,color:a,borderDash:l,borderDashOffset:d,tickWidth:u,tickColor:g,tickBorderDash:p,tickBorderDashOffset:m}))}return this._ticksLength=d,this._borderValue=x,f}_computeLabelItems(t){const e=this.axis,i=this.options,{position:s,ticks:a}=i,r=this.isHorizontal(),l=this.ticks,{align:h,crossAlign:c,padding:d,mirror:u}=a,f=Us(i.grid),g=f+d,p=u?-d:g,m=-$(this.labelRotation),b=[];let x,_,y,v,M,w,k,S,P,D,C,O,A="middle";if("top"===s)w=this.bottom-p,k=this._getXAxisLabelAlignment();else if("bottom"===s)w=this.top+p,k=this._getXAxisLabelAlignment();else if("left"===s){const t=this._getYAxisLabelAlignment(f);k=t.textAlign,M=t.x}else if("right"===s){const t=this._getYAxisLabelAlignment(f);k=t.textAlign,M=t.x}else if("x"===e){if("center"===s)w=(t.top+t.bottom)/2+g;else if(o(s)){const t=Object.keys(s)[0],e=s[t];w=this.chart.scales[t].getPixelForValue(e)+g}k=this._getXAxisLabelAlignment()}else if("y"===e){if("center"===s)M=(t.left+t.right)/2-g;else if(o(s)){const t=Object.keys(s)[0],e=s[t];M=this.chart.scales[t].getPixelForValue(e)}k=this._getYAxisLabelAlignment(f).textAlign}"y"===e&&("start"===h?A="top":"end"===h&&(A="bottom"));const T=this._getLabelSizes();for(x=0,_=l.length;x<_;++x){y=l[x],v=y.label;const t=a.setContext(this.getContext(x));S=this.getPixelForTick(x)+a.labelOffset,P=this._resolveTickFontOptions(x),D=P.lineHeight,C=n(v)?v.length:1;const e=C/2,i=t.color,o=t.textStrokeColor,h=t.textStrokeWidth;let d,f=k;if(r?(M=S,"inner"===k&&(f=x===_-1?this.options.reverse?"left":"right":0===x?this.options.reverse?"right":"left":"center"),O="top"===s?"near"===c||0!==m?-C*D+D/2:"center"===c?-T.highest.height/2-e*D+D:-T.highest.height+D/2:"near"===c||0!==m?D/2:"center"===c?T.highest.height/2-e*D:T.highest.height-C*D,u&&(O*=-1),0===m||t.showLabelBackdrop||(M+=D/2*Math.sin(m))):(w=S,O=(1-C)*D/2),t.showLabelBackdrop){const e=Mi(t.backdropPadding),i=T.heights[x],s=T.widths[x];let n=O-e.top,o=0-e.left;switch(A){case"middle":n-=i/2;break;case"bottom":n-=i}switch(k){case"center":o-=s/2;break;case"right":o-=s}d={left:o,top:n,width:s+e.width,height:i+e.height,color:t.backdropColor}}b.push({label:v,font:P,textOffset:O,options:{rotation:m,color:i,strokeColor:o,strokeWidth:h,textAlign:f,textBaseline:A,translation:[M,w],backdrop:d}})}return b}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-$(this.labelRotation))return"top"===t?"left":"right";let i="center";return"start"===e.align?i="left":"end"===e.align?i="right":"inner"===e.align&&(i="inner"),i}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:i,mirror:s,padding:n}}=this.options,o=t+n,a=this._getLabelSizes().widest.width;let r,l;return"left"===e?s?(l=this.right+n,"near"===i?r="left":"center"===i?(r="center",l+=a/2):(r="right",l+=a)):(l=this.right-o,"near"===i?r="right":"center"===i?(r="center",l-=a/2):(r="left",l=this.left)):"right"===e?s?(l=this.left+n,"near"===i?r="right":"center"===i?(r="center",l-=a/2):(r="left",l-=a)):(l=this.left+o,"near"===i?r="left":"center"===i?(r="center",l+=a/2):(r="right",l=this.right)):r="right",{textAlign:r,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:t.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:t.width}:void 0}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:i,top:s,width:n,height:o}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(i,s,n,o),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const i=this.ticks.findIndex((e=>e.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let n,o;const a=(t,e,s)=>{s.width&&s.color&&(i.save(),i.lineWidth=s.width,i.strokeStyle=s.color,i.setLineDash(s.borderDash||[]),i.lineDashOffset=s.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(n=0,o=s.length;n<o;++n){const t=s[n];e.drawOnChartArea&&a({x:t.x1,y:t.y1},{x:t.x2,y:t.y2},t),e.drawTicks&&a({x:t.tx1,y:t.ty1},{x:t.tx2,y:t.ty2},{color:t.tickColor,width:t.tickWidth,borderDash:t.tickBorderDash,borderDashOffset:t.tickBorderDashOffset})}}drawBorder(){const{chart:t,ctx:e,options:{border:i,grid:s}}=this,n=i.setContext(this.getContext()),o=i.display?n.width:0;if(!o)return;const a=s.setContext(this.getContext(0)).lineWidth,r=this._borderValue;let l,h,c,d;this.isHorizontal()?(l=Oe(t,this.left,o)-o/2,h=Oe(t,this.right,a)+a/2,c=d=r):(c=Oe(t,this.top,o)-o/2,d=Oe(t,this.bottom,a)+a/2,l=h=r),e.save(),e.lineWidth=n.width,e.strokeStyle=n.color,e.beginPath(),e.moveTo(l,c),e.lineTo(h,d),e.stroke(),e.restore()}drawLabels(t){if(!this.options.ticks.display)return;const e=this.ctx,i=this._computeLabelArea();i&&Re(e,i);const s=this.getLabelItems(t);for(const t of s){const i=t.options,s=t.font;Ve(e,t.label,0,t.textOffset,s,i)}i&&Ie(e)}drawTitle(){const{ctx:t,options:{position:e,title:i,reverse:s}}=this;if(!i.display)return;const a=wi(i.font),r=Mi(i.padding),l=i.align;let h=a.lineHeight/2;"bottom"===e||"center"===e||o(e)?(h+=r.bottom,n(i.text)&&(h+=a.lineHeight*(i.text.length-1))):h+=r.top;const{titleX:c,titleY:d,maxWidth:u,rotation:f}=function(t,e,i,s){const{top:n,left:a,bottom:r,right:l,chart:h}=t,{chartArea:c,scales:d}=h;let u,f,g,p=0;const m=r-n,b=l-a;if(t.isHorizontal()){if(f=ft(s,a,l),o(i)){const t=Object.keys(i)[0],s=i[t];g=d[t].getPixelForValue(s)+m-e}else g="center"===i?(c.bottom+c.top)/2+m-e:Hs(t,i,e);u=l-a}else{if(o(i)){const t=Object.keys(i)[0],s=i[t];f=d[t].getPixelForValue(s)-b+e}else f="center"===i?(c.left+c.right)/2-b+e:Hs(t,i,e);g=ft(s,r,n),p="left"===i?-E:E}return{titleX:f,titleY:g,maxWidth:u,rotation:p}}(this,h,e,l);Ve(t,i.text,0,0,a,{color:i.color,maxWidth:u,rotation:f,textAlign:qs(l,e,s),textBaseline:"middle",translation:[c,d]})}draw(t){this._isVisible()&&(this.drawBackground(),this.drawGrid(t),this.drawBorder(),this.drawTitle(),this.drawLabels(t))}_layers(){const t=this.options,e=t.ticks&&t.ticks.z||0,i=l(t.grid&&t.grid.z,-1),s=l(t.border&&t.border.z,0);return this._isVisible()&&this.draw===Ks.prototype.draw?[{z:i,draw:t=>{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let n,o;for(n=0,o=e.length;n<o;++n){const o=e[n];o[i]!==this.id||t&&o.type!==t||s.push(o)}return s}_resolveTickFontOptions(t){return wi(this.options.ticks.setContext(this.getContext(t)).font)}_maxDigits(){const t=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/t}}class Gs{constructor(t,e,i){this.type=t,this.scope=e,this.override=i,this.items=Object.create(null)}isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prototype,t.prototype)}register(t){const e=Object.getPrototypeOf(t);let i;(function(t){return"id"in t&&"defaults"in t})(e)&&(i=this.register(e));const s=this.items,n=t.id,o=this.scope+"."+n;if(!n)throw new Error("class does not have id: "+t);return n in s||(s[n]=t,function(t,e,i){const s=b(Object.create(null),[i?ue.get(i):{},ue.get(e),t.defaults]);ue.set(e,s),t.defaultRoutes&&function(t,e){Object.keys(e).forEach((i=>{const s=i.split("."),n=s.pop(),o=[t].concat(s).join("."),a=e[i].split("."),r=a.pop(),l=a.join(".");ue.route(o,n,l,r)}))}(e,t.defaultRoutes);t.descriptors&&ue.describe(e,t.descriptors)}(t,o,i),this.override&&ue.override(t.id,t.overrides)),o}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in ue[s]&&(delete ue[s][i],this.override&&delete re[i])}}class Zs{constructor(){this.controllers=new Gs(Vs,"datasets",!0),this.elements=new Gs(Bs,"elements"),this.plugins=new Gs(Object,"plugins"),this.scales=new Gs(Ks,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):u(e,(e=>{const s=i||this._getRegistryForType(e);this._exec(t,s,e)}))}))}_exec(t,e,i){const s=w(t);d(i["before"+s],[],i),e[t](i),d(i["after"+s],[],i)}_getRegistryForType(t){for(let e=0;e<this._typedRegistries.length;e++){const i=this._typedRegistries[e];if(i.isForType(t))return i}return this.plugins}_get(t,e,i){const s=e.get(t);if(void 0===s)throw new Error('"'+t+'" is not a registered '+i+".");return s}}var Js=new Zs;class Qs{constructor(){this._init=[]}notify(t,e,i,s){"beforeInit"===e&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));const n=s?this._descriptors(t).filter(s):this._descriptors(t),o=this._notify(n,t,e,i);return"afterDestroy"===e&&(this._notify(n,t,"stop"),this._notify(this._init,t,"uninstall")),o}_notify(t,e,i,s){s=s||{};for(const n of t){const t=n.plugin;if(!1===d(t[i],[e,s,n.options],t)&&s.cancelable)return!1}return!0}invalidate(){s(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const e=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),e}_createDescriptors(t,e){const i=t&&t.config,s=l(i.options&&i.options.plugins,{}),n=function(t){const e={},i=[],s=Object.keys(Js.plugins.items);for(let t=0;t<s.length;t++)i.push(Js.getPlugin(s[t]));const n=t.plugins||[];for(let t=0;t<n.length;t++){const s=n[t];-1===i.indexOf(s)&&(i.push(s),e[s.id]=!0)}return{plugins:i,localIds:e}}(i);return!1!==s||e?function(t,{plugins:e,localIds:i},s,n){const o=[],a=t.getContext();for(const r of e){const e=r.id,l=tn(s[e],n);null!==l&&o.push({plugin:r,options:en(t.config,{plugin:r,local:i[e]},l,a)})}return o}(t,n,s,e):[]}_notifyStateChanges(t){const e=this._oldCache||[],i=this._cache,s=(t,e)=>t.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(s(e,i),t,"stop"),this._notify(s(i,e),t,"start")}}function tn(t,e){return e||!1!==t?!0===t?{}:t:null}function en(t,{plugin:e,local:i},s,n){const o=t.pluginScopeKeys(e),a=t.getOptionScopes(s,o);return i&&e.defaults&&a.push(e.defaults),t.createResolver(a,n,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function sn(t,e){const i=ue.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||"x"}function nn(t,e){if("x"===t||"y"===t||"r"===t)return t;var i;if(t=e.axis||("top"===(i=e.position)||"bottom"===i?"x":"left"===i||"right"===i?"y":void 0)||t.length>1&&nn(t[0].toLowerCase(),e))return t;throw new Error(`Cannot determine type of '${name}' axis. Please provide 'axis' or 'position' option.`)}function on(t){const e=t.options||(t.options={});e.plugins=l(e.plugins,{}),e.scales=function(t,e){const i=re[t.type]||{scales:{}},s=e.scales||{},n=sn(t.type,e),a=Object.create(null);return Object.keys(s).forEach((t=>{const e=s[t];if(!o(e))return console.error(`Invalid scale configuration for scale: ${t}`);if(e._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);const r=nn(t,e),l=function(t,e){return t===e?"_index_":"_value_"}(r,n),h=i.scales||{};a[t]=x(Object.create(null),[{axis:r},e,h[r],h[l]])})),t.data.datasets.forEach((i=>{const n=i.type||t.type,o=i.indexAxis||sn(n,e),r=(re[n]||{}).scales||{};Object.keys(r).forEach((t=>{const e=function(t,e){let i=t;return"_index_"===t?i=e:"_value_"===t&&(i="x"===e?"y":"x"),i}(t,o),n=i[e+"AxisID"]||e;a[n]=a[n]||Object.create(null),x(a[n],[{axis:e},s[n],r[t]])}))})),Object.keys(a).forEach((t=>{const e=a[t];x(e,[ue.scales[e.type],ue.scale])})),a}(t,e)}function an(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const rn=new Map,ln=new Set;function hn(t,e){let i=rn.get(t);return i||(i=e(),rn.set(t,i),ln.add(i)),i}const cn=(t,e,i)=>{const s=M(e,i);void 0!==s&&t.add(s)};class dn{constructor(t){this._config=function(t){return(t=t||{}).data=an(t.data),on(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=an(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),on(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return hn(t,(()=>[[`datasets.${t}`,""]]))}datasetAnimationScopeKeys(t,e){return hn(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]]))}datasetElementScopeKeys(t,e){return hn(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]]))}pluginScopeKeys(t){const e=t.id;return hn(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!e||(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){const{options:s,type:n}=this,o=this._cachedScopes(t,i),a=o.get(e);if(a)return a;const r=new Set;e.forEach((e=>{t&&(r.add(t),e.forEach((e=>cn(r,t,e)))),e.forEach((t=>cn(r,s,t))),e.forEach((t=>cn(r,re[n]||{},t))),e.forEach((t=>cn(r,ue,t))),e.forEach((t=>cn(r,le,t)))}));const l=Array.from(r);return 0===l.length&&l.push(Object.create(null)),ln.has(e)&&o.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,re[e]||{},ue.datasets[e]||{},{type:e},ue,le]}resolveNamedOptions(t,e,i,s=[""]){const o={$shared:!0},{resolver:a,subPrefixes:r}=un(this._resolverCache,t,s);let l=a;if(function(t,e){const{isScriptable:i,isIndexable:s}=$e(t);for(const o of e){const e=i(o),a=s(o),r=(a||e)&&t[o];if(e&&(S(r)||fn(r))||a&&n(r))return!0}return!1}(a,e)){o.$shared=!1;l=je(a,i=S(i)?i():i,this.createResolver(t,i,r))}for(const t of e)o[t]=l[t];return o}createResolver(t,e,i=[""],s){const{resolver:n}=un(this._resolverCache,t,i);return o(e)?je(n,e,void 0,s):n}}function un(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const n=i.join();let o=s.get(n);if(!o){o={resolver:He(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes("hover")))},s.set(n,o)}return o}const fn=t=>o(t)&&Object.getOwnPropertyNames(t).reduce(((e,i)=>e||S(t[i])),!1);const gn=["top","bottom","left","right","chartArea"];function pn(t,e){return"top"===t||"bottom"===t||-1===gn.indexOf(t)&&"x"===e}function mn(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-s[t]}}function bn(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("afterRender"),d(i&&i.onComplete,[t],e)}function xn(t){const e=t.chart,i=e.options.animation;d(i&&i.onProgress,[t],e)}function _n(t){return fe()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const yn={},vn=t=>{const e=_n(t);return Object.values(yn).filter((t=>t.canvas===e)).pop()};function Mn(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;if(s>=e){const o=t[n];delete t[n],(i>0||s>e)&&(t[s+i]=o)}}}class wn{static defaults=ue;static instances=yn;static overrides=re;static registry=Js;static version="4.2.1";static getChart=vn;static register(...t){Js.add(...t),kn()}static unregister(...t){Js.remove(...t),kn()}constructor(t,e){const s=this.config=new dn(e),n=_n(t),o=vn(n);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const a=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||vs(n)),this.platform.updateConfig(s);const r=this.platform.acquireContext(n,a.aspectRatio),l=r&&r.canvas,h=l&&l.height,c=l&&l.width;this.id=i(),this.ctx=r,this.canvas=l,this.width=c,this.height=h,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Qs,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=dt((t=>this.update(t)),a.resizeDelay||0),this._dataChanges=[],yn[this.id]=this,r&&l?(xt.listen(this,"complete",bn),xt.listen(this,"progress",xn),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:n,_aspectRatio:o}=this;return s(t)?e&&o?o:n?i/n:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return Js}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():we(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Ae(this.canvas,this.ctx),this}stop(){return xt.stop(this),this}resize(t,e){xt.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,n=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,t,e,n),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),r=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,we(this,a,!0)&&(this.notifyPlugins("resize",{size:o}),d(i.onResize,[this,o],this),this.attached&&this._doResize(r)&&this.render())}ensureScalesHaveIDs(){u(this.options.scales||{},((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let n=[];e&&(n=n.concat(Object.keys(e).map((t=>{const i=e[t],s=nn(t,i),n="r"===s,o="x"===s;return{options:i,dposition:n?"chartArea":o?"bottom":"left",dtype:n?"radialLinear":o?"category":"linear"}})))),u(n,(e=>{const n=e.options,o=n.id,a=nn(o,n),r=l(n.type,e.dtype);void 0!==n.position&&pn(n.position,a)===pn(e.dposition)||(n.position=e.dposition),s[o]=!0;let h=null;if(o in i&&i[o].type===r)h=i[o];else{h=new(Js.getScale(r))({id:o,type:r,ctx:this.ctx,chart:this}),i[h.id]=h}h.init(n,t)})),u(s,((t,e)=>{t||delete i[e]})),u(i,(t=>{ns.configure(this,t,t.options),ns.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;t<i;++t)this._destroyDatasetMeta(t);t.splice(e,i-e)}this._sortedMetasets=t.slice(0).sort(mn("order","index"))}_removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:e}}=this;t.length>e.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i<s;i++){const s=e[i];let n=this.getDatasetMeta(i);const o=s.type||this.config.type;if(n.type&&n.type!==o&&(this._destroyDatasetMeta(i),n=this.getDatasetMeta(i)),n.type=o,n.indexAxis=s.indexAxis||sn(o,this.options),n.order=s.order||0,n.index=i,n.label=""+s.label,n.visible=this.isDatasetVisible(i),n.controller)n.controller.updateIndex(i),n.controller.linkScales();else{const e=Js.getController(o),{datasetElementType:s,dataElementType:a}=ue.datasets[o];Object.assign(e,{dataElementType:Js.getElement(a),datasetElementType:s&&Js.getElement(s)}),n.controller=new e(this,i),t.push(n.controller)}}return this._updateMetasets(),t}_resetElements(){u(this.data.datasets,((t,e)=>{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const n=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let t=0,e=this.data.datasets.length;t<e;t++){const{controller:e}=this.getDatasetMeta(t),i=!s&&-1===n.indexOf(e);e.buildOrUpdateElements(i),o=Math.max(+e.getMaxOverflow(),o)}o=this._minPadding=i.layout.autoPadding?o:0,this._updateLayout(o),s||u(n,(t=>{t.reset()})),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(mn("z","_idx"));const{_active:a,_lastEvent:r}=this;r?this._eventHandler(r,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){u(this.scales,(t=>{ns.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);P(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:n}of e){Mn(t,s,"_removeElements"===i?-n:n)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+","+t.splice(1).join(",")))),s=i(0);for(let t=1;t<e;t++)if(!P(s,i(t)))return;return Array.from(s).map((t=>t.split(","))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;ns.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],u(this.boxes,(t=>{i&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t<e;++t)this.getDatasetMeta(t).controller.configure();for(let e=0,i=this.data.datasets.length;e<i;++e)this._updateDataset(e,S(t)?t({datasetIndex:e}):t);this.notifyPlugins("afterDatasetsUpdate",{mode:t})}}_updateDataset(t,e){const i=this.getDatasetMeta(t),s={meta:i,index:t,mode:e,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetUpdate",s)&&(i.controller._update(e),s.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",s))}render(){!1!==this.notifyPlugins("beforeRender",{cancelable:!0})&&(xt.has(this)?this.attached&&!xt.running(this)&&xt.start(this):(this.draw(),bn({chart:this})))}draw(){let t;if(this._resizeBeforeDraw){const{width:t,height:e}=this._resizeBeforeDraw;this._resize(t,e),this._resizeBeforeDraw=null}if(this.clear(),this.width<=0||this.height<=0)return;if(!1===this.notifyPlugins("beforeDraw",{cancelable:!0}))return;const e=this._layers;for(t=0;t<e.length&&e[t].z<=0;++t)e[t].draw(this.chartArea);for(this._drawDatasets();t<e.length;++t)e[t].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(t){const e=this._sortedMetasets,i=[];let s,n;for(s=0,n=e.length;s<n;++s){const n=e[s];t&&!n.visible||i.push(n)}return i}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(!1===this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0}))return;const t=this.getSortedVisibleDatasetMetas();for(let e=t.length-1;e>=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,i=t._clip,s=!i.disabled,n=function(t){const{xScale:e,yScale:i}=t;if(e&&i)return{left:e.left,right:e.right,top:i.top,bottom:i.bottom}}(t)||this.chartArea,o={meta:t,index:t.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",o)&&(s&&Re(e,{left:!1===i.left?0:n.left-i.left,right:!1===i.right?this.width:n.right+i.right,top:!1===i.top?0:n.top-i.top,bottom:!1===i.bottom?this.height:n.bottom+i.bottom}),t.controller.draw(),s&&Ie(e),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(t){return Ee(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,s){const n=Yi.modes[e];return"function"==typeof n?n(this,t,i,s):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s=i.filter((t=>t&&t._dataset===e)).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Pi(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return"boolean"==typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?"show":"hide",n=this.getDatasetMeta(t),o=n.controller._resolveAnimations(void 0,s);k(e)?(n.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),o.update(n,{visible:i}),this.update((e=>e.datasetIndex===t?s:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),xt.remove(this),t=0,e=this.data.datasets.length;t<e;++t)this._destroyDatasetMeta(t)}destroy(){this.notifyPlugins("beforeDestroy");const{canvas:t,ctx:e}=this;this._stop(),this.config.clearCache(),t&&(this.unbindEvents(),Ae(t,e),this.platform.releaseContext(e),this.canvas=null,this.ctx=null),delete yn[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...t){return this.canvas.toDataURL(...t)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const t=this._listeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};u(this.options.events,(t=>i(t,s)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(i,s)=>{t[i]&&(e.removeEventListener(this,i,s),delete t[i])},n=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const a=()=>{s("attach",a),this.attached=!0,this.resize(),i("resize",n),i("detach",o)};o=()=>{this.attached=!1,s("resize",n),this._stop(),this._resize(0,0),i("attach",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){u(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},u(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const s=i?"set":"remove";let n,o,a,r;for("dataset"===e&&(n=this.getDatasetMeta(t[0].datasetIndex),n.controller["_"+s+"DatasetHoverStyle"]()),a=0,r=t.length;a<r;++a){o=t[a];const e=o&&this.getDatasetMeta(o.datasetIndex).controller;e&&e[s+"HoverStyle"](o.element,o.datasetIndex,o.index)}}getActiveElements(){return this._active||[]}setActiveElements(t){const e=this._active||[],i=t.map((({datasetIndex:t,index:e})=>{const i=this.getDatasetMeta(t);if(!i)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:i.data[e],index:e}}));!f(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin.id===t)).length}_updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=n(e,t),a=i?t:n(t,e);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},s=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",i,s))return;const n=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(n||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:n}=this,o=e,a=this._getActiveElements(t,s,i,o),r=D(t),l=function(t,e,i,s){return i&&"mouseout"!==t.type?s?e:t:null}(t,this._lastEvent,i,r);i&&(this._lastEvent=null,d(n.onHover,[t,a,this],this),r&&d(n.onClick,[t,a,this],this));const h=!f(a,s);return(h||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,h}_getActiveElements(t,e,i,s){if("mouseout"===t.type)return[];if(!i)return e;const n=this.options.hover;return this.getElementsAtEventForMode(t,n.mode,n,s)}}function kn(){return u(wn.instances,(t=>t._plugins.invalidate()))}function Sn(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Pn{static override(t){Object.assign(Pn.prototype,t)}constructor(t){this.options=t||{}}init(){}formats(){return Sn()}parse(){return Sn()}format(){return Sn()}add(){return Sn()}diff(){return Sn()}startOf(){return Sn()}endOf(){return Sn()}}var Dn={_date:Pn};function Cn(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let s=[];for(let e=0,n=i.length;e<n;e++)s=s.concat(i[e].controller.getAllParsedValues(t));t._cache.$bar=lt(s.sort(((t,e)=>t-e)))}return t._cache.$bar}(e,t.type);let s,n,o,a,r=e._length;const l=()=>{32767!==o&&-32768!==o&&(k(a)&&(r=Math.min(r,Math.abs(o-a)||r)),a=o)};for(s=0,n=i.length;s<n;++s)o=e.getPixelForValue(i[s]),l();for(a=void 0,s=0,n=e.ticks.length;s<n;++s)o=e.getPixelForTick(s),l();return r}function On(t,e,i,s){return n(t)?function(t,e,i,s){const n=i.parse(t[0],s),o=i.parse(t[1],s),a=Math.min(n,o),r=Math.max(n,o);let l=a,h=r;Math.abs(a)>Math.abs(r)&&(l=r,h=a),e[i.axis]=h,e._custom={barStart:l,barEnd:h,start:n,end:o,min:a,max:r}}(t,e,i,s):e[i.axis]=i.parse(t,s),e}function An(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o,l=[];let h,c,d,u;for(h=i,c=i+s;h<c;++h)u=e[h],d={},d[n.axis]=r||n.parse(a[h],h),l.push(On(u,d,o,h));return l}function Tn(t){return t&&void 0!==t.barStart&&void 0!==t.barEnd}function Ln(t,e,i,s){let n=e.borderSkipped;const o={};if(!n)return void(t.borderSkipped=o);if(!0===n)return void(t.borderSkipped={top:!0,right:!0,bottom:!0,left:!0});const{start:a,end:r,reverse:l,top:h,bottom:c}=function(t){let e,i,s,n,o;return t.horizontal?(e=t.base>t.x,i="left",s="right"):(e=t.base<t.y,i="bottom",s="top"),e?(n="end",o="start"):(n="start",o="end"),{start:i,end:s,reverse:e,top:n,bottom:o}}(t);"middle"===n&&i&&(t.enableBorderRadius=!0,(i._top||0)===s?n=h:(i._bottom||0)===s?n=c:(o[En(c,a,r,l)]=!0,n=h)),o[En(n,a,r,l)]=!0,t.borderSkipped=o}function En(t,e,i,s){var n,o,a;return s?(a=i,t=Rn(t=(n=t)===(o=e)?a:n===a?o:n,i,e)):t=Rn(t,e,i),t}function Rn(t,e,i){return"start"===t?e:"end"===t?i:t}function In(t,{inflateAmount:e},i){t.inflateAmount="auto"===e?1===i?.33:0:e}class zn extends Vs{static id="doughnut";static defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"};static descriptors={_scriptable:t=>"spacing"!==t,_indexable:t=>"spacing"!==t};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i,color:s}}=t.legend.options;return e.labels.map(((e,n)=>{const o=t.getDatasetMeta(0).controller.getStyle(n);return{text:e,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,fontColor:s,lineWidth:o.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(n),index:n}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}}};constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const i=this.getDataset().data,s=this._cachedMeta;if(!1===this._parsing)s._parsed=i;else{let n,a,r=t=>+i[t];if(o(i[t])){const{key:t="value"}=this._parsing;r=e=>+M(i[e],t)}for(n=t,a=t+e;n<a;++n)s._parsed[n]=r(n)}}_getRotation(){return $(this.options.rotation-90)}_getCircumference(){return $(this.options.circumference)}_getRotationExtents(){let t=O,e=-O;for(let i=0;i<this.chart.data.datasets.length;++i)if(this.chart.isDatasetVisible(i)&&this.chart.getDatasetMeta(i).type===this._type){const s=this.chart.getDatasetMeta(i).controller,n=s._getRotation(),o=s._getCircumference();t=Math.min(t,n),e=Math.max(e,n+o)}return{rotation:t,circumference:e-t}}update(t){const e=this.chart,{chartArea:i}=e,s=this._cachedMeta,n=s.data,o=this.getMaxBorderWidth()+this.getMaxOffset(n)+this.options.spacing,a=Math.max((Math.min(i.width,i.height)-o)/2,0),r=Math.min(h(this.options.cutout,a),1),l=this._getRingWeight(this.index),{circumference:d,rotation:u}=this._getRotationExtents(),{ratioX:f,ratioY:g,offsetX:p,offsetY:m}=function(t,e,i){let s=1,n=1,o=0,a=0;if(e<O){const r=t,l=r+e,h=Math.cos(r),c=Math.sin(r),d=Math.cos(l),u=Math.sin(l),f=(t,e,s)=>Z(t,r,l,!0)?1:Math.max(e,e*i,s,s*i),g=(t,e,s)=>Z(t,r,l,!0)?-1:Math.min(e,e*i,s,s*i),p=f(0,h,d),m=f(E,c,u),b=g(C,h,d),x=g(C+E,c,u);s=(p-b)/2,n=(m-x)/2,o=-(p+b)/2,a=-(m+x)/2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}(u,d,r),b=(i.width-o)/f,x=(i.height-o)/g,_=Math.max(Math.min(b,x)/2,0),y=c(this.options.radius,_),v=(y-Math.max(y*r,0))/this._getVisibleDatasetWeightTotal();this.offsetX=p*y,this.offsetY=m*y,s.total=this.calculateTotal(),this.outerRadius=y-v*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-v*l,0),this.updateElements(n,0,n.length,t)}_circumference(t,e){const i=this.options,s=this._cachedMeta,n=this._getCircumference();return e&&i.animation.animateRotate||!this.chart.getDataVisibility(t)||null===s._parsed[t]||s.data[t].hidden?0:this.calculateCircumference(s._parsed[t]*n/O)}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.chartArea,r=o.options.animation,l=(a.left+a.right)/2,h=(a.top+a.bottom)/2,c=n&&r.animateScale,d=c?0:this.innerRadius,u=c?0:this.outerRadius,{sharedOptions:f,includeOptions:g}=this._getSharedOptions(e,s);let p,m=this._getRotation();for(p=0;p<e;++p)m+=this._circumference(p,n);for(p=e;p<e+i;++p){const e=this._circumference(p,n),i=t[p],o={x:l+this.offsetX,y:h+this.offsetY,startAngle:m,endAngle:m+e,circumference:e,outerRadius:u,innerRadius:d};g&&(o.options=f||this.resolveDataElementOptions(p,i.active?"active":s)),m+=e,this.updateElement(i,p,o,s)}}calculateTotal(){const t=this._cachedMeta,e=t.data;let i,s=0;for(i=0;i<e.length;i++){const n=t._parsed[i];null===n||isNaN(n)||!this.chart.getDataVisibility(i)||e[i].hidden||(s+=Math.abs(n))}return s}calculateCircumference(t){const e=this._cachedMeta.total;return e>0&&!isNaN(t)?O*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t],i.options.locale);return{label:s[t]||"",value:n}}getMaxBorderWidth(t){let e=0;const i=this.chart;let s,n,o,a,r;if(!t)for(s=0,n=i.data.datasets.length;s<n;++s)if(i.isDatasetVisible(s)){o=i.getDatasetMeta(s),t=o.data,a=o.controller;break}if(!t)return 0;for(s=0,n=t.length;s<n;++s)r=a.resolveDataElementOptions(s),"inner"!==r.borderAlign&&(e=Math.max(e,r.borderWidth||0,r.hoverBorderWidth||0));return e}getMaxOffset(t){let e=0;for(let i=0,s=t.length;i<s;++i){const t=this.resolveDataElementOptions(i);e=Math.max(e,t.offset||0,t.hoverOffset||0)}return e}_getRingWeightOffset(t){let e=0;for(let i=0;i<t;++i)this.chart.isDatasetVisible(i)&&(e+=this._getRingWeight(i));return e}_getRingWeight(t){return Math.max(l(this.chart.data.datasets[t].weight,1),0)}_getVisibleDatasetWeightTotal(){return this._getRingWeightOffset(this.chart.data.datasets.length)||1}}class Fn extends Vs{static id="polarArea";static defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i,color:s}}=t.legend.options;return e.labels.map(((e,n)=>{const o=t.getDatasetMeta(0).controller.getStyle(n);return{text:e,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,fontColor:s,lineWidth:o.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(n),index:n}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t].r,i.options.locale);return{label:s[t]||"",value:n}}parseObjectData(t,e,i,s){return ei.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach(((t,i)=>{const s=this.getParsed(i).r;!isNaN(s)&&this.chart.getDataVisibility(i)&&(s<e.min&&(e.min=s),s>e.max&&(e.max=s))})),e}_updateRadius(){const t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),n=Math.max(s/2,0),o=(n-Math.max(i.cutoutPercentage?n/100*i.cutoutPercentage:1,0))/t.getVisibleDatasetCount();this.outerRadius=n-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.options.animation,r=this._cachedMeta.rScale,l=r.xCenter,h=r.yCenter,c=r.getIndexAngle(0)-.5*C;let d,u=c;const f=360/this.countVisibleElements();for(d=0;d<e;++d)u+=this._computeAngle(d,s,f);for(d=e;d<e+i;d++){const e=t[d];let i=u,g=u+this._computeAngle(d,s,f),p=o.getDataVisibility(d)?r.getDistanceFromCenterForValue(this.getParsed(d).r):0;u=g,n&&(a.animateScale&&(p=0),a.animateRotate&&(i=g=c));const m={x:l,y:h,innerRadius:0,outerRadius:p,startAngle:i,endAngle:g,options:this.resolveDataElementOptions(d,e.active?"active":s)};this.updateElement(e,d,m,s)}}countVisibleElements(){const t=this._cachedMeta;let e=0;return t.data.forEach(((t,i)=>{!isNaN(this.getParsed(i).r)&&this.chart.getDataVisibility(i)&&e++})),e}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?$(this.resolveDataElementOptions(t,e).angle||i):0}}var Vn=Object.freeze({__proto__:null,BarController:class extends Vs{static id="bar";static defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}};static overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};parsePrimitiveData(t,e,i,s){return An(t,e,i,s)}parseArrayData(t,e,i,s){return An(t,e,i,s)}parseObjectData(t,e,i,s){const{iScale:n,vScale:o}=t,{xAxisKey:a="x",yAxisKey:r="y"}=this._parsing,l="x"===n.axis?a:r,h="x"===o.axis?a:r,c=[];let d,u,f,g;for(d=i,u=i+s;d<u;++d)g=e[d],f={},f[n.axis]=n.parse(M(g,l),d),c.push(On(M(g,h),f,o,d));return c}updateRangeFromParsed(t,e,i,s){super.updateRangeFromParsed(t,e,i,s);const n=i._custom;n&&e===this._cachedMeta.vScale&&(t.min=Math.min(t.min,n.min),t.max=Math.max(t.max,n.max))}getMaxOverflow(){return 0}getLabelAndValue(t){const e=this._cachedMeta,{iScale:i,vScale:s}=e,n=this.getParsed(t),o=n._custom,a=Tn(o)?"["+o.start+", "+o.end+"]":""+s.getLabelForValue(n[s.axis]);return{label:""+i.getLabelForValue(n[i.axis]),value:a}}initialize(){this.enableOptionSharing=!0,super.initialize();this._cachedMeta.stack=this.getDataset().stack}update(t){const e=this._cachedMeta;this.updateElements(e.data,0,e.data.length,t)}updateElements(t,e,i,n){const o="reset"===n,{index:a,_cachedMeta:{vScale:r}}=this,l=r.getBasePixel(),h=r.isHorizontal(),c=this._getRuler(),{sharedOptions:d,includeOptions:u}=this._getSharedOptions(e,n);for(let f=e;f<e+i;f++){const e=this.getParsed(f),i=o||s(e[r.axis])?{base:l,head:l}:this._calculateBarValuePixels(f),g=this._calculateBarIndexPixels(f,c),p=(e._stacks||{})[r.axis],m={horizontal:h,base:i.base,enableBorderRadius:!p||Tn(e._custom)||a===p._top||a===p._bottom,x:h?i.head:g.center,y:h?g.center:i.head,height:h?g.size:Math.abs(i.size),width:h?Math.abs(i.size):g.size};u&&(m.options=d||this.resolveDataElementOptions(f,t[f].active?"active":n));const b=m.options||t[f].options;Ln(m,b,p,a),In(m,b,c.ratio),this.updateElement(t[f],f,m,n)}}_getStacks(t,e){const{iScale:i}=this._cachedMeta,n=i.getMatchingVisibleMetas(this._type).filter((t=>t.controller.options.grouped)),o=i.options.stacked,a=[],r=t=>{const i=t.controller.getParsed(e),n=i&&i[t.vScale.axis];if(s(n)||isNaN(n))return!0};for(const i of n)if((void 0===e||!r(i))&&((!1===o||-1===a.indexOf(i.stack)||void 0===o&&void 0===i.stack)&&a.push(i.stack),i.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,i){const s=this._getStacks(t,i),n=void 0!==e?s.indexOf(e):-1;return-1===n?s.length-1:n}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,s=[];let n,o;for(n=0,o=e.data.length;n<o;++n)s.push(i.getPixelForValue(this.getParsed(n)[i.axis],n));const a=t.barThickness;return{min:a||Cn(e),pixels:s,start:i._startPixel,end:i._endPixel,stackCount:this._getStackCount(),scale:i,grouped:t.grouped,ratio:a?1:t.categoryPercentage*t.barPercentage}}_calculateBarValuePixels(t){const{_cachedMeta:{vScale:e,_stacked:i,index:n},options:{base:o,minBarLength:a}}=this,r=o||0,l=this.getParsed(t),h=l._custom,c=Tn(h);let d,u,f=l[e.axis],g=0,p=i?this.applyStack(e,l,i):f;p!==f&&(g=p-f,p=f),c&&(f=h.barStart,p=h.barEnd-h.barStart,0!==f&&F(f)!==F(h.barEnd)&&(g=0),g+=f);const m=s(o)||c?g:o;let b=e.getPixelForValue(m);if(d=this.chart.getDataVisibility(t)?e.getPixelForValue(g+p):b,u=d-b,Math.abs(u)<a){u=function(t,e,i){return 0!==t?F(t):(e.isHorizontal()?1:-1)*(e.min>=i?1:-1)}(u,e,r)*a,f===r&&(b-=u/2);const t=e.getPixelForDecimal(0),s=e.getPixelForDecimal(1),o=Math.min(t,s),h=Math.max(t,s);b=Math.max(Math.min(b,h),o),d=b+u,i&&!c&&(l._stacks[e.axis]._visualValues[n]=e.getValueForPixel(d)-e.getValueForPixel(b))}if(b===e.getPixelForValue(r)){const t=F(u)*e.getLineWidthForValue(r)/2;b+=t,u-=t}return{size:u,base:b,head:d,center:d+u/2}}_calculateBarIndexPixels(t,e){const i=e.scale,n=this.options,o=n.skipNull,a=l(n.maxBarThickness,1/0);let r,h;if(e.grouped){const i=o?this._getStackCount(t):e.stackCount,l="flex"===n.barThickness?function(t,e,i,s){const n=e.pixels,o=n[t];let a=t>0?n[t-1]:null,r=t<n.length-1?n[t+1]:null;const l=i.categoryPercentage;null===a&&(a=o-(null===r?e.end-e.start:r-o)),null===r&&(r=o+o-a);const h=o-(o-Math.min(a,r))/2*l;return{chunk:Math.abs(r-a)/2*l/s,ratio:i.barPercentage,start:h}}(t,e,n,i):function(t,e,i,n){const o=i.barThickness;let a,r;return s(o)?(a=e.min*i.categoryPercentage,r=i.barPercentage):(a=o*n,r=1),{chunk:a/n,ratio:r,start:e.pixels[t]-a/2}}(t,e,n,i),c=this._getStackIndex(this.index,this._cachedMeta.stack,o?t:void 0);r=l.start+l.chunk*c+l.chunk/2,h=Math.min(a,l.chunk*l.ratio)}else r=i.getPixelForValue(this.getParsed(t)[i.axis],t),h=Math.min(a,e.min*e.ratio);return{base:r-h/2,head:r+h/2,center:r,size:h}}draw(){const t=this._cachedMeta,e=t.vScale,i=t.data,s=i.length;let n=0;for(;n<s;++n)null!==this.getParsed(n)[e.axis]&&i[n].draw(this._ctx)}},BubbleController:class extends Vs{static id="bubble";static defaults={datasetElementType:!1,dataElementType:"point",animations:{numbers:{type:"number",properties:["x","y","borderWidth","radius"]}}};static overrides={scales:{x:{type:"linear"},y:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,super.initialize()}parsePrimitiveData(t,e,i,s){const n=super.parsePrimitiveData(t,e,i,s);for(let t=0;t<n.length;t++)n[t]._custom=this.resolveDataElementOptions(t+i).radius;return n}parseArrayData(t,e,i,s){const n=super.parseArrayData(t,e,i,s);for(let t=0;t<n.length;t++){const s=e[i+t];n[t]._custom=l(s[2],this.resolveDataElementOptions(t+i).radius)}return n}parseObjectData(t,e,i,s){const n=super.parseObjectData(t,e,i,s);for(let t=0;t<n.length;t++){const s=e[i+t];n[t]._custom=l(s&&s.r&&+s.r,this.resolveDataElementOptions(t+i).radius)}return n}getMaxOverflow(){const t=this._cachedMeta.data;let e=0;for(let i=t.length-1;i>=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart.data.labels||[],{xScale:s,yScale:n}=e,o=this.getParsed(t),a=s.getLabelForValue(o.x),r=n.getLabelForValue(o.y),l=o._custom;return{label:i[t]||"",value:"("+a+", "+r+(l?", "+l:"")+")"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){const n="reset"===s,{iScale:o,vScale:a}=this._cachedMeta,{sharedOptions:r,includeOptions:l}=this._getSharedOptions(e,s),h=o.axis,c=a.axis;for(let d=e;d<e+i;d++){const e=t[d],i=!n&&this.getParsed(d),u={},f=u[h]=n?o.getPixelForDecimal(.5):o.getPixelForValue(i[h]),g=u[c]=n?a.getBasePixel():a.getPixelForValue(i[c]);u.skip=isNaN(f)||isNaN(g),l&&(u.options=r||this.resolveDataElementOptions(d,e.active?"active":s),n&&(u.options.radius=0)),this.updateElement(e,d,u,s)}}resolveDataElementOptions(t,e){const i=this.getParsed(t);let s=super.resolveDataElementOptions(t,e);s.$shared&&(s=Object.assign({},s,{$shared:!1}));const n=s.radius;return"active"!==e&&(s.radius=0),s.radius+=l(i&&i._custom,n),s}},DoughnutController:zn,LineController:class extends Vs{static id="line";static defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:i,data:s=[],_dataset:n}=e,o=this.chart._animationsDisabled;let{start:a,count:r}=pt(e,s,o);this._drawStart=a,this._drawCount=r,mt(e)&&(a=0,r=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!n._decimated,i.points=s;const l=this.resolveDatasetElementOptions(t);this.options.showLine||(l.borderWidth=0),l.segment=this.options.segment,this.updateElement(i,void 0,{animated:!o,options:l},t),this.updateElements(s,a,r,t)}updateElements(t,e,i,n){const o="reset"===n,{iScale:a,vScale:r,_stacked:l,_dataset:h}=this._cachedMeta,{sharedOptions:c,includeOptions:d}=this._getSharedOptions(e,n),u=a.axis,f=r.axis,{spanGaps:g,segment:p}=this.options,m=W(g)?g:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||"none"===n,x=e+i,_=t.length;let y=e>0&&this.getParsed(e-1);for(let i=0;i<_;++i){const g=t[i],_=b?g:{};if(i<e||i>=x){_.skip=!0;continue}const v=this.getParsed(i),M=s(v[f]),w=_[u]=a.getPixelForValue(v[u],i),k=_[f]=o||M?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,v,l):v[f],i);_.skip=isNaN(w)||isNaN(k)||M,_.stop=i>0&&Math.abs(v[u]-y[u])>m,p&&(_.parsed=v,_.raw=h.data[i]),d&&(_.options=c||this.resolveDataElementOptions(i,g.active?"active":n)),b||this.updateElement(g,i,_,n),y=v}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const n=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,n,o)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}},PolarAreaController:Fn,PieController:class extends zn{static id="pie";static defaults={cutout:0,rotation:0,circumference:360,radius:"100%"}},RadarController:class extends Vs{static id="radar";static defaults={datasetElementType:"line",dataElementType:"point",indexAxis:"r",showLine:!0,elements:{line:{fill:"start"}}};static overrides={aspectRatio:1,scales:{r:{type:"radialLinear"}}};getLabelAndValue(t){const e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(i[e.axis])}}parseObjectData(t,e,i,s){return ei.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta,i=e.dataset,s=e.data||[],n=e.iScale.getLabels();if(i.points=s,"resize"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const o={_loop:!0,_fullLoop:n.length===s.length,options:e};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){const n=this._cachedMeta.rScale,o="reset"===s;for(let a=e;a<e+i;a++){const e=t[a],i=this.resolveDataElementOptions(a,e.active?"active":s),r=n.getPointPositionForValue(a,this.getParsed(a).r),l=o?n.xCenter:r.x,h=o?n.yCenter:r.y,c={x:l,y:h,angle:r.angle,skip:isNaN(l)||isNaN(h),options:i};this.updateElement(e,a,c,s)}}},ScatterController:class extends Vs{static id="scatter";static defaults={datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1};static overrides={interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}};getLabelAndValue(t){const e=this._cachedMeta,i=this.chart.data.labels||[],{xScale:s,yScale:n}=e,o=this.getParsed(t),a=s.getLabelForValue(o.x),r=n.getLabelForValue(o.y);return{label:i[t]||"",value:"("+a+", "+r+")"}}update(t){const e=this._cachedMeta,{data:i=[]}=e,s=this.chart._animationsDisabled;let{start:n,count:o}=pt(e,i,s);if(this._drawStart=n,this._drawCount=o,mt(e)&&(n=0,o=i.length),this.options.showLine){const{dataset:n,_dataset:o}=e;n._chart=this.chart,n._datasetIndex=this.index,n._decimated=!!o._decimated,n.points=i;const a=this.resolveDatasetElementOptions(t);a.segment=this.options.segment,this.updateElement(n,void 0,{animated:!s,options:a},t)}this.updateElements(i,n,o,t)}addElements(){const{showLine:t}=this.options;!this.datasetElementType&&t&&(this.datasetElementType=this.chart.registry.getElement("line")),super.addElements()}updateElements(t,e,i,n){const o="reset"===n,{iScale:a,vScale:r,_stacked:l,_dataset:h}=this._cachedMeta,c=this.resolveDataElementOptions(e,n),d=this.getSharedOptions(c),u=this.includeOptions(n,d),f=a.axis,g=r.axis,{spanGaps:p,segment:m}=this.options,b=W(p)?p:Number.POSITIVE_INFINITY,x=this.chart._animationsDisabled||o||"none"===n;let _=e>0&&this.getParsed(e-1);for(let c=e;c<e+i;++c){const e=t[c],i=this.getParsed(c),p=x?e:{},y=s(i[g]),v=p[f]=a.getPixelForValue(i[f],c),M=p[g]=o||y?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,i,l):i[g],c);p.skip=isNaN(v)||isNaN(M)||y,p.stop=c>0&&Math.abs(i[f]-_[f])>b,m&&(p.parsed=i,p.raw=h.data[c]),u&&(p.options=d||this.resolveDataElementOptions(c,e.active?"active":n)),x||this.updateElement(e,c,p,n),_=i}this.updateSharedOptions(d,n,c)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let t=0;for(let i=e.length-1;i>=0;--i)t=Math.max(t,e[i].size(this.resolveDataElementOptions(i))/2);return t>0&&t}const i=t.dataset,s=i.options&&i.options.borderWidth||0;if(!e.length)return s;const n=e[0].size(this.resolveDataElementOptions(0)),o=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(s,n,o)/2}}});function Bn(t,e,i,s){const n=_i(t.options.borderRadius,["outerStart","outerEnd","innerStart","innerEnd"]);const o=(i-e)/2,a=Math.min(o,s*e/2),r=t=>{const e=(i-Math.min(o,t))*s/2;return J(t,0,Math.min(o,e))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:J(n.innerStart,0,a),innerEnd:J(n.innerEnd,0,a)}}function Nn(t,e,i,s){return{x:i+t*Math.cos(e),y:s+t*Math.sin(e)}}function Wn(t,e,i,s,n,o){const{x:a,y:r,startAngle:l,pixelMargin:h,innerRadius:c}=e,d=Math.max(e.outerRadius+s+i-h,0),u=c>0?c+s+i+h:0;let f=0;const g=n-l;if(s){const t=((c>0?c-s:0)+(d>0?d-s:0))/2;f=(g-(0!==t?g*t/(t+s):g))/2}const p=(g-Math.max(.001,g*d-i/C)/d)/2,m=l+p+f,b=n-p-f,{outerStart:x,outerEnd:_,innerStart:y,innerEnd:v}=Bn(e,u,d,b-m),M=d-x,w=d-_,k=m+x/M,S=b-_/w,P=u+y,D=u+v,O=m+y/P,A=b-v/D;if(t.beginPath(),o){const e=(k+S)/2;if(t.arc(a,r,d,k,e),t.arc(a,r,d,e,S),_>0){const e=Nn(w,S,a,r);t.arc(e.x,e.y,_,S,b+E)}const i=Nn(D,b,a,r);if(t.lineTo(i.x,i.y),v>0){const e=Nn(D,A,a,r);t.arc(e.x,e.y,v,b+E,A+Math.PI)}const s=(b-v/u+(m+y/u))/2;if(t.arc(a,r,u,b-v/u,s,!0),t.arc(a,r,u,s,m+y/u,!0),y>0){const e=Nn(P,O,a,r);t.arc(e.x,e.y,y,O+Math.PI,m-E)}const n=Nn(M,m,a,r);if(t.lineTo(n.x,n.y),x>0){const e=Nn(M,k,a,r);t.arc(e.x,e.y,x,m-E,k)}}else{t.moveTo(a,r);const e=Math.cos(k)*d+a,i=Math.sin(k)*d+r;t.lineTo(e,i);const s=Math.cos(S)*d+a,n=Math.sin(S)*d+r;t.lineTo(s,n)}t.closePath()}function Hn(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r,options:l}=e,{borderWidth:h,borderJoinStyle:c}=l,d="inner"===l.borderAlign;if(!h)return;d?(t.lineWidth=2*h,t.lineJoin=c||"round"):(t.lineWidth=h,t.lineJoin=c||"bevel");let u=e.endAngle;if(o){Wn(t,e,i,s,u,n);for(let e=0;e<o;++e)t.stroke();isNaN(r)||(u=a+(r%O||O))}d&&function(t,e,i){const{startAngle:s,pixelMargin:n,x:o,y:a,outerRadius:r,innerRadius:l}=e;let h=n/r;t.beginPath(),t.arc(o,a,r,s-h,i+h),l>n?(h=n/l,t.arc(o,a,l,i+h,s-h,!0)):t.arc(o,a,n,i+E,s-E),t.closePath(),t.clip()}(t,e,u),o||(Wn(t,e,i,s,u,n),t.stroke())}function jn(t,e,i=e){t.lineCap=l(i.borderCapStyle,e.borderCapStyle),t.setLineDash(l(i.borderDash,e.borderDash)),t.lineDashOffset=l(i.borderDashOffset,e.borderDashOffset),t.lineJoin=l(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=l(i.borderWidth,e.borderWidth),t.strokeStyle=l(i.borderColor,e.borderColor)}function $n(t,e,i){t.lineTo(i.x,i.y)}function Yn(t,e,i={}){const s=t.length,{start:n=0,end:o=s-1}=i,{start:a,end:r}=e,l=Math.max(n,a),h=Math.min(o,r),c=n<a&&o<a||n>r&&o>r;return{count:s,start:l,loop:e.loop,ilen:h<l&&!c?s+h-l:h-l}}function Un(t,e,i,s){const{points:n,options:o}=e,{count:a,start:r,loop:l,ilen:h}=Yn(n,i,s),c=function(t){return t.stepped?ze:t.tension||"monotone"===t.cubicInterpolationMode?Fe:$n}(o);let d,u,f,{move:g=!0,reverse:p}=s||{};for(d=0;d<=h;++d)u=n[(r+(p?h-d:d))%a],u.skip||(g?(t.moveTo(u.x,u.y),g=!1):c(t,f,u,p,o.stepped),f=u);return l&&(u=n[(r+(p?h:0))%a],c(t,f,u,p,o.stepped)),!!l}function Xn(t,e,i,s){const n=e.points,{count:o,start:a,ilen:r}=Yn(n,i,s),{move:l=!0,reverse:h}=s||{};let c,d,u,f,g,p,m=0,b=0;const x=t=>(a+(h?r-t:t))%o,_=()=>{f!==g&&(t.lineTo(m,g),t.lineTo(m,f),t.lineTo(m,p))};for(l&&(d=n[x(0)],t.moveTo(d.x,d.y)),c=0;c<=r;++c){if(d=n[x(c)],d.skip)continue;const e=d.x,i=d.y,s=0|e;s===u?(i<f?f=i:i>g&&(g=i),m=(b*m+e)/++b):(_(),t.lineTo(e,i),u=s,b=0,f=g=i),p=i}_()}function qn(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||"monotone"===e.cubicInterpolationMode||e.stepped||i)?Xn:Un}const Kn="function"==typeof Path2D;function Gn(t,e,i,s){Kn&&!e.options.segment?function(t,e,i,s){let n=e._path;n||(n=e._path=new Path2D,e.path(n,i,s)&&n.closePath()),jn(t,e.options),t.stroke(n)}(t,e,i,s):function(t,e,i,s){const{segments:n,options:o}=e,a=qn(e);for(const r of n)jn(t,o,r.style),t.beginPath(),a(t,e,r,{start:i,end:i+s-1})&&t.closePath(),t.stroke()}(t,e,i,s)}class Zn extends Bs{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:t=>"borderDash"!==t&&"fill"!==t};constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||"monotone"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;li(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=Ri(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,s=t[e],n=this.points,o=Ei(this,{property:e,start:s,end:s});if(!o.length)return;const a=[],r=function(t){return t.stepped?gi:t.tension||"monotone"===t.cubicInterpolationMode?pi:fi}(i);let l,h;for(l=0,h=o.length;l<h;++l){const{start:h,end:c}=o[l],d=n[h],u=n[c];if(d===u){a.push(d);continue}const f=r(d,u,Math.abs((s-d[e])/(u[e]-d[e])),i.stepped);f[e]=t[e],a.push(f)}return 1===a.length?a[0]:a}pathSegment(t,e,i){return qn(this)(t,this,e,i)}path(t,e,i){const s=this.segments,n=qn(this);let o=this._loop;e=e||0,i=i||this.points.length-e;for(const a of s)o&=n(t,this,a,{start:e,end:e+i-1});return!!o}draw(t,e,i,s){const n=this.options||{};(this.points||[]).length&&n.borderWidth&&(t.save(),Gn(t,this,i,s),t.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}function Jn(t,e,i,s){const n=t.options,{[i]:o}=t.getProps([i],s);return Math.abs(e-o)<n.radius+n.hitRadius}function Qn(t,e){const{x:i,y:s,base:n,width:o,height:a}=t.getProps(["x","y","base","width","height"],e);let r,l,h,c,d;return t.horizontal?(d=a/2,r=Math.min(i,n),l=Math.max(i,n),h=s-d,c=s+d):(d=o/2,r=i-d,l=i+d,h=Math.min(s,n),c=Math.max(s,n)),{left:r,top:h,right:l,bottom:c}}function to(t,e,i,s){return t?0:J(e,i,s)}function eo(t){const e=Qn(t),i=e.right-e.left,s=e.bottom-e.top,n=function(t,e,i){const s=t.options.borderWidth,n=t.borderSkipped,o=yi(s);return{t:to(n.top,o.top,0,i),r:to(n.right,o.right,0,e),b:to(n.bottom,o.bottom,0,i),l:to(n.left,o.left,0,e)}}(t,i/2,s/2),a=function(t,e,i){const{enableBorderRadius:s}=t.getProps(["enableBorderRadius"]),n=t.options.borderRadius,a=vi(n),r=Math.min(e,i),l=t.borderSkipped,h=s||o(n);return{topLeft:to(!h||l.top||l.left,a.topLeft,0,r),topRight:to(!h||l.top||l.right,a.topRight,0,r),bottomLeft:to(!h||l.bottom||l.left,a.bottomLeft,0,r),bottomRight:to(!h||l.bottom||l.right,a.bottomRight,0,r)}}(t,i/2,s/2);return{outer:{x:e.left,y:e.top,w:i,h:s,radius:a},inner:{x:e.left+n.l,y:e.top+n.t,w:i-n.l-n.r,h:s-n.t-n.b,radius:{topLeft:Math.max(0,a.topLeft-Math.max(n.t,n.l)),topRight:Math.max(0,a.topRight-Math.max(n.t,n.r)),bottomLeft:Math.max(0,a.bottomLeft-Math.max(n.b,n.l)),bottomRight:Math.max(0,a.bottomRight-Math.max(n.b,n.r))}}}}function io(t,e,i,s){const n=null===e,o=null===i,a=t&&!(n&&o)&&Qn(t,s);return a&&(n||tt(e,a.left,a.right))&&(o||tt(i,a.top,a.bottom))}function so(t,e){t.rect(e.x,e.y,e.w,e.h)}function no(t,e,i={}){const s=t.x!==i.x?-e:0,n=t.y!==i.y?-e:0,o=(t.x+t.w!==i.x+i.w?e:0)-s,a=(t.y+t.h!==i.y+i.h?e:0)-n;return{x:t.x+s,y:t.y+n,w:t.w+o,h:t.h+a,radius:t.radius}}var oo=Object.freeze({__proto__:null,ArcElement:class extends Bs{static id="arc";static defaults={borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0};static defaultRoutes={backgroundColor:"backgroundColor"};constructor(t){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.getProps(["x","y"],i),{angle:n,distance:o}=X(s,{x:t,y:e}),{startAngle:a,endAngle:r,innerRadius:h,outerRadius:c,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),u=this.options.spacing/2,f=l(d,r-a)>=O||Z(n,a,r),g=tt(o,h+u,c+u);return f&&g}getCenterPoint(t){const{x:e,y:i,startAngle:s,endAngle:n,innerRadius:o,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],t),{offset:r,spacing:l}=this.options,h=(s+n)/2,c=(o+a+l+r)/2;return{x:e+Math.cos(h)*c,y:i+Math.sin(h)*c}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:i}=this,s=(e.offset||0)/4,n=(e.spacing||0)/2,o=e.circular;if(this.pixelMargin="inner"===e.borderAlign?.33:0,this.fullCircles=i>O?Math.floor(i/O):0,0===i||this.innerRadius<0||this.outerRadius<0)return;t.save();const a=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(a)*s,Math.sin(a)*s);const r=s*(1-Math.sin(Math.min(C,i||0)));t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor,function(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r}=e;let l=e.endAngle;if(o){Wn(t,e,i,s,l,n);for(let e=0;e<o;++e)t.fill();isNaN(r)||(l=a+(r%O||O))}Wn(t,e,i,s,l,n),t.fill()}(t,this,r,n,o),Hn(t,this,r,n,o),t.restore()}},LineElement:Zn,PointElement:class extends Bs{static id="point";static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.options,{x:n,y:o}=this.getProps(["x","y"],i);return Math.pow(t-n,2)+Math.pow(e-o,2)<Math.pow(s.hitRadius+s.radius,2)}inXRange(t,e){return Jn(this,t,"x",e)}inYRange(t,e){return Jn(this,t,"y",e)}getCenterPoint(t){const{x:e,y:i}=this.getProps(["x","y"],t);return{x:e,y:i}}size(t){let e=(t=t||this.options||{}).radius||0;e=Math.max(e,e&&t.hoverRadius||0);return 2*(e+(e&&t.borderWidth||0))}draw(t,e){const i=this.options;this.skip||i.radius<.1||!Ee(this,e,this.size(i)/2)||(t.strokeStyle=i.borderColor,t.lineWidth=i.borderWidth,t.fillStyle=i.backgroundColor,Te(t,i,this.x,this.y))}getRange(){const t=this.options||{};return t.radius+t.hitRadius}},BarElement:class extends Bs{static id="bar";static defaults={borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(t){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,t&&Object.assign(this,t)}draw(t){const{inflateAmount:e,options:{borderColor:i,backgroundColor:s}}=this,{inner:n,outer:o}=eo(this),a=(r=o.radius).topLeft||r.topRight||r.bottomLeft||r.bottomRight?We:so;var r;t.save(),o.w===n.w&&o.h===n.h||(t.beginPath(),a(t,no(o,e,n)),t.clip(),a(t,no(n,-e,o)),t.fillStyle=i,t.fill("evenodd")),t.beginPath(),a(t,no(n,e)),t.fillStyle=s,t.fill(),t.restore()}inRange(t,e,i){return io(this,t,e,i)}inXRange(t,e){return io(this,t,null,e)}inYRange(t,e){return io(this,null,t,e)}getCenterPoint(t){const{x:e,y:i,base:s,horizontal:n}=this.getProps(["x","y","base","horizontal"],t);return{x:n?(e+s)/2:e,y:n?i:(i+s)/2}}getRange(t){return"x"===t?this.width/2:this.height/2}}});function ao(t,e,i,s){const n=t.indexOf(e);if(-1===n)return((t,e,i,s)=>("string"==typeof e?(i=t.push(e)-1,s.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,s);return n!==t.lastIndexOf(e)?i:n}function ro(t){const e=this.getLabels();return t>=0&&t<e.length?e[t]:t}function lo(t,e,{horizontal:i,minRotation:s}){const n=$(s),o=(i?Math.sin(n):Math.cos(n))||.001,a=.75*e*(""+t).length;return Math.min(e/o,a)}class ho extends Ks{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,e){return s(t)||("number"==typeof t||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:s,max:n}=this;const o=t=>s=e?s:t,a=t=>n=i?n:t;if(t){const t=F(s),e=F(n);t<0&&e<0?a(0):t>0&&e>0&&o(0)}if(s===n){let e=0===n?1:Math.abs(.05*n);a(n+e),t||o(s-e)}this.min=s,this.max=n}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:s}=t;return s?(e=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const n=function(t,e){const i=[],{bounds:n,step:o,min:a,max:r,precision:l,count:h,maxTicks:c,maxDigits:d,includeBounds:u}=t,f=o||1,g=c-1,{min:p,max:m}=e,b=!s(a),x=!s(r),_=!s(h),y=(m-p)/(d+1);let v,M,w,k,S=B((m-p)/g/f)*f;if(S<1e-14&&!b&&!x)return[{value:p},{value:m}];k=Math.ceil(m/S)-Math.floor(p/S),k>g&&(S=B(k*S/g/f)*f),s(l)||(v=Math.pow(10,l),S=Math.ceil(S*v)/v),"ticks"===n?(M=Math.floor(p/S)*S,w=Math.ceil(m/S)*S):(M=p,w=m),b&&x&&o&&H((r-a)/o,S/1e3)?(k=Math.round(Math.min((r-a)/S,c)),S=(r-a)/k,M=a,w=r):_?(M=b?a:M,w=x?r:w,k=h-1,S=(w-M)/k):(k=(w-M)/S,k=V(k,Math.round(k),S/1e3)?Math.round(k):Math.ceil(k));const P=Math.max(U(S),U(M));v=Math.pow(10,s(l)?P:l),M=Math.round(M*v)/v,w=Math.round(w*v)/v;let D=0;for(b&&(u&&M!==a?(i.push({value:a}),M<a&&D++,V(Math.round((M+D*S)*v)/v,a,lo(a,y,t))&&D++):M<a&&D++);D<k;++D)i.push({value:Math.round((M+D*S)*v)/v});return x&&u&&w!==r?i.length&&V(i[i.length-1].value,r,lo(r,y,t))?i[i.length-1].value=r:i.push({value:r}):x&&w!==r||i.push({value:w}),i}({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===t.bounds&&j(n,this,"value"),t.reverse?(n.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),n}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-e)/Math.max(t.length-1,1)/2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return ne(t,this.chart.options.locale,this.options.ticks.format)}}class co extends ho{static id="linear";static defaults={ticks:{callback:ae.formatters.numeric}};determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?t:0,this.max=a(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=$(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,n=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,n.lineHeight/s))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}const uo=t=>Math.floor(z(t)),fo=(t,e)=>Math.pow(10,uo(t)+e);function go(t){return 1===t/Math.pow(10,uo(t))}function po(t,e,i){const s=Math.pow(10,i),n=Math.floor(t/s);return Math.ceil(e/s)-n}function mo(t,{min:e,max:i}){e=r(t.min,e);const s=[],n=uo(e);let o=function(t,e){let i=uo(e-t);for(;po(t,e,i)>10;)i++;for(;po(t,e,i)<10;)i--;return Math.min(i,uo(t))}(e,i),a=o<0?Math.pow(10,Math.abs(o)):1;const l=Math.pow(10,o),h=n>o?Math.pow(10,n):0,c=Math.round((e-h)*a)/a,d=Math.floor((e-h)/l/10)*l*10;let u=Math.floor((c-d)/Math.pow(10,o)),f=r(t.min,Math.round((h+d+u*Math.pow(10,o))*a)/a);for(;f<i;)s.push({value:f,major:go(f),significand:u}),u>=10?u=u<15?15:20:u++,u>=20&&(o++,u=2,a=o>=0?1:a),f=Math.round((h+d+u*Math.pow(10,o))*a)/a;const g=r(t.max,f);return s.push({value:g,major:go(g),significand:u}),s}class bo extends Ks{static id="logarithmic";static defaults={ticks:{callback:ae.formatters.logarithmic,major:{enabled:!0}}};constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const i=ho.prototype.parse.apply(this,[t,e]);if(0!==i)return a(i)&&i>0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?Math.max(0,t):null,this.max=a(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!a(this._userMin)&&(this.min=t===fo(this.min,0)?fo(this.min,-1):fo(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,s=this.max;const n=e=>i=t?i:e,o=t=>s=e?s:t;i===s&&(i<=0?(n(1),o(10)):(n(fo(i,-1)),o(fo(s,1)))),i<=0&&n(fo(s,-1)),s<=0&&o(fo(i,1)),this.min=i,this.max=s}buildTicks(){const t=this.options,e=mo({min:this._userMin,max:this._userMax},this);return"ticks"===t.bounds&&j(e,this,"value"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?"0":ne(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=z(t),this._valueRange=z(this.max)-z(t)}getPixelForValue(t){return void 0!==t&&0!==t||(t=this.min),null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(z(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}function xo(t){const e=t.ticks;if(e.display&&t.display){const t=Mi(e.backdropPadding);return l(e.font&&e.font.size,ue.font.size)+t.height}return 0}function _o(t,e,i,s,n){return t===s||t===n?{start:e-i/2,end:e+i/2}:t<s||t>n?{start:e-i,end:e}:{start:e,end:e+i}}function yo(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},i=Object.assign({},e),s=[],o=[],a=t._pointLabels.length,r=t.options.pointLabels,l=r.centerPointLabels?C/a:0;for(let u=0;u<a;u++){const a=r.setContext(t.getPointLabelContext(u));o[u]=a.padding;const f=t.getPointPosition(u,t.drawingArea+o[u],l),g=wi(a.font),p=(h=t.ctx,c=g,d=n(d=t._pointLabels[u])?d:[d],{w:Ce(h,c.string,d),h:d.length*c.lineHeight});s[u]=p;const m=G(t.getIndexAngle(u)+l),b=Math.round(Y(m));vo(i,e,m,_o(b,f.x,p.w,0,180),_o(b,f.y,p.h,90,270))}var h,c,d;t.setCenterPoint(e.l-i.l,i.r-e.r,e.t-i.t,i.b-e.b),t._pointLabelItems=function(t,e,i){const s=[],n=t._pointLabels.length,o=t.options,a=xo(o)/2,r=t.drawingArea,l=o.pointLabels.centerPointLabels?C/n:0;for(let o=0;o<n;o++){const n=t.getPointPosition(o,r+a+i[o],l),h=Math.round(Y(G(n.angle+E))),c=e[o],d=ko(n.y,c.h,h),u=Mo(h),f=wo(n.x,c.w,u);s.push({x:n.x,y:d,textAlign:u,left:f,top:d,right:f+c.w,bottom:d+c.h})}return s}(t,s,o)}function vo(t,e,i,s,n){const o=Math.abs(Math.sin(i)),a=Math.abs(Math.cos(i));let r=0,l=0;s.start<e.l?(r=(e.l-s.start)/o,t.l=Math.min(t.l,e.l-r)):s.end>e.r&&(r=(s.end-e.r)/o,t.r=Math.max(t.r,e.r+r)),n.start<e.t?(l=(e.t-n.start)/a,t.t=Math.min(t.t,e.t-l)):n.end>e.b&&(l=(n.end-e.b)/a,t.b=Math.max(t.b,e.b+l))}function Mo(t){return 0===t||180===t?"center":t<180?"left":"right"}function wo(t,e,i){return"right"===i?t-=e:"center"===i&&(t-=e/2),t}function ko(t,e,i){return 90===i||270===i?t-=e/2:(i>270||i<90)&&(t-=e),t}function So(t,e,i,s){const{ctx:n}=t;if(i)n.arc(t.xCenter,t.yCenter,e,0,O);else{let i=t.getPointPosition(0,e);n.moveTo(i.x,i.y);for(let o=1;o<s;o++)i=t.getPointPosition(o,e),n.lineTo(i.x,i.y)}}class Po extends ho{static id="radialLinear";static defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:ae.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:t=>t,padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};static descriptors={angleLines:{_fallback:"grid"}};constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=Mi(xo(this.options)/2),e=this.width=this.maxWidth-t.width,i=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+e/2+t.left),this.yCenter=Math.floor(this.top+i/2+t.top),this.drawingArea=Math.floor(Math.min(e,i)/2)}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!1);this.min=a(t)&&!isNaN(t)?t:0,this.max=a(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/xo(this.options))}generateTickLabels(t){ho.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map(((t,e)=>{const i=d(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:""})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?yo(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,s))}getIndexAngle(t){return G(t*(O/(this._pointLabels.length||1))+$(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if(s(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(s(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t<e.length){const i=e[t];return function(t,e,i){return Pi(t,{label:i,index:e,type:"pointLabel"})}(this.getContext(),t,i)}}getPointPosition(t,e,i=0){const s=this.getIndexAngle(t)-E+i;return{x:Math.cos(s)*e+this.xCenter,y:Math.sin(s)*e+this.yCenter,angle:s}}getPointPositionForValue(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))}getBasePosition(t){return this.getPointPositionForValue(t||0,this.getBaseValue())}getPointLabelPosition(t){const{left:e,top:i,right:s,bottom:n}=this._pointLabelItems[t];return{left:e,top:i,right:s,bottom:n}}drawBackground(){const{backgroundColor:t,grid:{circular:e}}=this.options;if(t){const i=this.ctx;i.save(),i.beginPath(),So(this,this.getDistanceFromCenterForValue(this._endValue),e,this._pointLabels.length),i.closePath(),i.fillStyle=t,i.fill(),i.restore()}}drawGrid(){const t=this.ctx,e=this.options,{angleLines:i,grid:n,border:o}=e,a=this._pointLabels.length;let r,l,h;if(e.pointLabels.display&&function(t,e){const{ctx:i,options:{pointLabels:n}}=t;for(let o=e-1;o>=0;o--){const e=n.setContext(t.getPointLabelContext(o)),a=wi(e.font),{x:r,y:l,textAlign:h,left:c,top:d,right:u,bottom:f}=t._pointLabelItems[o],{backdropColor:g}=e;if(!s(g)){const t=vi(e.borderRadius),s=Mi(e.backdropPadding);i.fillStyle=g;const n=c-s.left,o=d-s.top,a=u-c+s.width,r=f-d+s.height;Object.values(t).some((t=>0!==t))?(i.beginPath(),We(i,{x:n,y:o,w:a,h:r,radius:t}),i.fill()):i.fillRect(n,o,a,r)}Ve(i,t._pointLabels[o],r,l+a.lineHeight/2,a,{color:e.color,textAlign:h,textBaseline:"middle"})}}(this,a),n.display&&this.ticks.forEach(((t,e)=>{if(0!==e){l=this.getDistanceFromCenterForValue(t.value);const i=this.getContext(e),s=n.setContext(i),r=o.setContext(i);!function(t,e,i,s,n){const o=t.ctx,a=e.circular,{color:r,lineWidth:l}=e;!a&&!s||!r||!l||i<0||(o.save(),o.strokeStyle=r,o.lineWidth=l,o.setLineDash(n.dash),o.lineDashOffset=n.dashOffset,o.beginPath(),So(t,i,a,s),o.closePath(),o.stroke(),o.restore())}(this,s,l,a,r)}})),i.display){for(t.save(),r=a-1;r>=0;r--){const s=i.setContext(this.getPointLabelContext(r)),{color:n,lineWidth:o}=s;o&&n&&(t.lineWidth=o,t.strokeStyle=n,t.setLineDash(s.borderDash),t.lineDashOffset=s.borderDashOffset,l=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),h=this.getPointPosition(r,l),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(h.x,h.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let n,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach(((s,a)=>{if(0===a&&!e.reverse)return;const r=i.setContext(this.getContext(a)),l=wi(r.font);if(n=this.getDistanceFromCenterForValue(this.ticks[a].value),r.showLabelBackdrop){t.font=l.string,o=t.measureText(s.label).width,t.fillStyle=r.backdropColor;const e=Mi(r.backdropPadding);t.fillRect(-o/2-e.left,-n-l.size/2-e.top,o+e.width,l.size+e.height)}Ve(t,s.label,0,-n,l,{color:r.color})})),t.restore()}drawTitle(){}}const Do={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Co=Object.keys(Do);function Oo(t,e){return t-e}function Ao(t,e){if(s(e))return null;const i=t._adapter,{parser:n,round:o,isoWeekday:r}=t._parseOpts;let l=e;return"function"==typeof n&&(l=n(l)),a(l)||(l="string"==typeof n?i.parse(l,n):i.parse(l)),null===l?null:(o&&(l="week"!==o||!W(r)&&!0!==r?i.startOf(l,o):i.startOf(l,"isoWeek",r)),+l)}function To(t,e,i,s){const n=Co.length;for(let o=Co.indexOf(t);o<n-1;++o){const t=Do[Co[o]],n=t.steps?t.steps:Number.MAX_SAFE_INTEGER;if(t.common&&Math.ceil((i-e)/(n*t.size))<=s)return Co[o]}return Co[n-1]}function Lo(t,e,i){if(i){if(i.length){const{lo:s,hi:n}=et(i,e);t[i[s]>=e?i[s]:i[n]]=!0}}else t[e]=!0}function Eo(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a<o;++a)r=e[a],n[r]=a,s.push({value:r,major:!1});return 0!==o&&i?function(t,e,i,s){const n=t._adapter,o=+n.startOf(e[0].value,s),a=e[e.length-1].value;let r,l;for(r=o;r<=a;r=+n.add(r,1,s))l=i[r],l>=0&&(e[l].major=!0);return e}(t,s,n,i):s}class Ro extends Ks{static id="time";static defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}};constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e={}){const i=t.time||(t.time={}),s=this._adapter=new Dn._date(t.adapters.date);s.init(e),x(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:Ao(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||"day";let{min:s,max:n,minDefined:o,maxDefined:r}=this.getUserBounds();function l(t){o||isNaN(t.min)||(s=Math.min(s,t.min)),r||isNaN(t.max)||(n=Math.max(n,t.max))}o&&r||(l(this._getLabelBounds()),"ticks"===t.bounds&&"labels"===t.ticks.source||l(this.getMinMax(!1))),s=a(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),n=a(n)&&!isNaN(n)?n:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,n-1),this.max=Math.max(s+1,n)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s="labels"===i.source?this.getLabelTimestamps():this._generate();"ticks"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const n=this.min,o=nt(s,n,this.max);return this._unit=e.unit||(i.autoSkip?To(e.minUnit,this.min,this.max,this._getLabelCapacity(n)):function(t,e,i,s,n){for(let o=Co.length-1;o>=Co.indexOf(i);o--){const i=Co[o];if(Do[i].common&&t._adapter.diff(n,s,i)>=e-1)return i}return Co[i?Co.indexOf(i):0]}(this,o.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&"year"!==this._unit?function(t){for(let e=Co.indexOf(t)+1,i=Co.length;e<i;++e)if(Do[Co[e]].common)return Co[e]}(this._unit):void 0,this.initOffsets(s),t.reverse&&o.reverse(),Eo(this,o,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map((t=>+t.value)))}initOffsets(t=[]){let e,i,s=0,n=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,i=this.getDecimalForValue(t[t.length-1]),n=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))/2);const o=t.length<3?.5:.25;s=J(s,0,o),n=J(n,0,o),this._offsets={start:s,end:n,factor:1/(s+1+n)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,n=s.time,o=n.unit||To(n.minUnit,e,i,this._getLabelCapacity(e)),a=l(s.ticks.stepSize,1),r="week"===o&&n.isoWeekday,h=W(r)||!0===r,c={};let d,u,f=e;if(h&&(f=+t.startOf(f,"isoWeek",r)),f=+t.startOf(f,h?"day":o),t.diff(i,e,o)>1e5*a)throw new Error(e+" and "+i+" are too far apart with stepSize of "+a+" "+o);const g="data"===s.ticks.source&&this.getDataTimestamps();for(d=f,u=0;d<i;d=+t.add(d,a,o),u++)Lo(c,d,g);return d!==i&&"ticks"!==s.bounds&&1!==u||Lo(c,d,g),Object.keys(c).sort(((t,e)=>t-e)).map((t=>+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}format(t,e){const i=this.options.time.displayFormats,s=this._unit,n=e||i[s];return this._adapter.format(t,n)}_tickFormatFunction(t,e,i,s){const n=this.options,o=n.ticks.callback;if(o)return d(o,[t,e,i],this);const a=n.time.displayFormats,r=this._unit,l=this._majorUnit,h=r&&a[r],c=l&&a[l],u=i[e],f=l&&c&&u&&u.major;return this._adapter.format(t,s||(f?c:h))}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e<i;++e)s=t[e],s.label=this._tickFormatFunction(s.value,e,t)}getDecimalForValue(t){return null===t?NaN:(t-this.min)/(this.max-this.min)}getPixelForValue(t){const e=this._offsets,i=this.getDecimalForValue(t);return this.getPixelForDecimal((e.start+i)*e.factor)}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return this.min+i*(this.max-this.min)}_getLabelSize(t){const e=this.options.ticks,i=this.ctx.measureText(t).width,s=$(this.isHorizontal()?e.maxRotation:e.minRotation),n=Math.cos(s),o=Math.sin(s),a=this._resolveTickFontOptions(0).size;return{w:i*n+a*o,h:i*o+a*n}}_getLabelCapacity(t){const e=this.options.time,i=e.displayFormats,s=i[e.unit]||i.millisecond,n=this._tickFormatFunction(t,0,Eo(this,[t],this._majorUnit),s),o=this._getLabelSize(n),a=Math.floor(this.isHorizontal()?this.width/o.w:this.height/o.h)-1;return a>0?a:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,e=s.length;t<e;++t)i=i.concat(s[t].controller.getAllParsedValues(this));return this._cache.data=this.normalize(i)}getLabelTimestamps(){const t=this._cache.labels||[];let e,i;if(t.length)return t;const s=this.getLabels();for(e=0,i=s.length;e<i;++e)t.push(Ao(this,s[e]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return lt(t.sort(Oo))}}function Io(t,e,i){let s,n,o,a,r=0,l=t.length-1;i?(e>=t[r].pos&&e<=t[l].pos&&({lo:r,hi:l}=it(t,"pos",e)),({pos:s,time:o}=t[r]),({pos:n,time:a}=t[l])):(e>=t[r].time&&e<=t[l].time&&({lo:r,hi:l}=it(t,"time",e)),({time:s,pos:o}=t[r]),({time:n,pos:a}=t[l]));const h=n-s;return h?o+(a-o)*(e-s)/h:o}var zo=Object.freeze({__proto__:null,CategoryScale:class extends Ks{static id="category";static defaults={ticks:{callback:ro}};constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:s}of e)t[i]===s&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(s(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:J(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:ao(i,t,l(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);"ticks"===this.options.bounds&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let n=this.getLabels();n=0===t&&e===n.length-1?n:n.slice(t,e+1),this._valueRange=Math.max(n.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let i=t;i<=e;i++)s.push({value:i});return s}getLabelForValue(t){return ro.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return"number"!=typeof t&&(t=this.parse(t)),null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}},LinearScale:co,LogarithmicScale:bo,RadialLinearScale:Po,TimeScale:Ro,TimeSeriesScale:class extends Ro{static id="timeseries";static defaults=Ro.defaults;constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=Io(e,this.min),this._tableRange=Io(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:i}=this,s=[],n=[];let o,a,r,l,h;for(o=0,a=t.length;o<a;++o)l=t[o],l>=e&&l<=i&&s.push(l);if(s.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(o=0,a=s.length;o<a;++o)h=s[o+1],r=s[o-1],l=s[o],Math.round((h+r)/2)!==l&&n.push({time:l,pos:o/(a-1)});return n}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const e=this.getDataTimestamps(),i=this.getLabelTimestamps();return t=e.length&&i.length?this.normalize(e.concat(i)):e.length?e:i,t=this._cache.all=t,t}getDecimalForValue(t){return(Io(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return Io(this._table,i*this._tableRange+this._minPos,!0)}}});const Fo=["rgb(54, 162, 235)","rgb(255, 99, 132)","rgb(255, 159, 64)","rgb(255, 205, 86)","rgb(75, 192, 192)","rgb(153, 102, 255)","rgb(201, 203, 207)"],Vo=Fo.map((t=>t.replace("rgb(","rgba(").replace(")",", 0.5)")));function Bo(t){return Fo[t%Fo.length]}function No(t){return Vo[t%Vo.length]}function Wo(t){let e=0;return(i,s)=>{const n=t.getDatasetMeta(s).controller;n instanceof zn?e=function(t,e){return t.backgroundColor=t.data.map((()=>Bo(e++))),e}(i,e):n instanceof Fn?e=function(t,e){return t.backgroundColor=t.data.map((()=>No(e++))),e}(i,e):n&&(e=function(t,e){return t.borderColor=Bo(e),t.backgroundColor=No(e),++e}(i,e))}}function Ho(t){let e;for(e in t)if(t[e].borderColor||t[e].backgroundColor)return!0;return!1}var jo={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(t,e,i){if(!i.enabled)return;const{data:{datasets:s},options:n}=t.config,{elements:o}=n;if(!i.forceOverride&&(Ho(s)||(a=n)&&(a.borderColor||a.backgroundColor)||o&&Ho(o)))return;var a;const r=Wo(t);s.forEach(r)}};function $o(t){if(t._decimated){const e=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,writable:!0,value:e})}}function Yo(t){t.data.datasets.forEach((t=>{$o(t)}))}var Uo={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(t,e,i)=>{if(!i.enabled)return void Yo(t);const n=t.width;t.data.datasets.forEach(((e,o)=>{const{_data:a,indexAxis:r}=e,l=t.getDatasetMeta(o),h=a||e.data;if("y"===ki([r,t.options.indexAxis]))return;if(!l.controller.supportsDecimation)return;const c=t.scales[l.xAxisID];if("linear"!==c.type&&"time"!==c.type)return;if(t.options.parsing)return;let{start:d,count:u}=function(t,e){const i=e.length;let s,n=0;const{iScale:o}=t,{min:a,max:r,minDefined:l,maxDefined:h}=o.getUserBounds();return l&&(n=J(it(e,o.axis,a).lo,0,i-1)),s=h?J(it(e,o.axis,r).hi+1,n,i)-n:i-n,{start:n,count:s}}(l,h);if(u<=(i.threshold||4*n))return void $o(e);let f;switch(s(a)&&(e._data=h,delete e.data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),i.algorithm){case"lttb":f=function(t,e,i,s,n){const o=n.samples||s;if(o>=i)return t.slice(e,e+i);const a=[],r=(i-2)/(o-2);let l=0;const h=e+i-1;let c,d,u,f,g,p=e;for(a[l++]=t[p],c=0;c<o-2;c++){let s,n=0,o=0;const h=Math.floor((c+1)*r)+1+e,m=Math.min(Math.floor((c+2)*r)+1,i)+e,b=m-h;for(s=h;s<m;s++)n+=t[s].x,o+=t[s].y;n/=b,o/=b;const x=Math.floor(c*r)+1+e,_=Math.min(Math.floor((c+1)*r)+1,i)+e,{x:y,y:v}=t[p];for(u=f=-1,s=x;s<_;s++)f=.5*Math.abs((y-n)*(t[s].y-v)-(y-t[s].x)*(o-v)),f>u&&(u=f,d=t[s],g=s);a[l++]=d,p=g}return a[l++]=t[h],a}(h,d,u,n,i);break;case"min-max":f=function(t,e,i,n){let o,a,r,l,h,c,d,u,f,g,p=0,m=0;const b=[],x=e+i-1,_=t[e].x,y=t[x].x-_;for(o=e;o<e+i;++o){a=t[o],r=(a.x-_)/y*n,l=a.y;const e=0|r;if(e===h)l<f?(f=l,c=o):l>g&&(g=l,d=o),p=(m*p+a.x)/++m;else{const i=o-1;if(!s(c)&&!s(d)){const e=Math.min(c,d),s=Math.max(c,d);e!==u&&e!==i&&b.push({...t[e],x:p}),s!==u&&s!==i&&b.push({...t[s],x:p})}o>0&&i!==u&&b.push(t[i]),b.push(a),h=e,m=0,f=g=l,c=d=u=o}}return b}(h,d,u,n);break;default:throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`)}e._decimated=f}))},destroy(t){Yo(t)}};function Xo(t,e,i,s){if(s)return;let n=e[t],o=i[t];return"angle"===t&&(n=G(n),o=G(o)),{property:t,start:n,end:o}}function qo(t,e,i){for(;e>t;e--){const t=i[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function Ko(t,e,i,s){return t&&e?s(t[i],e[i]):t?t[i]:e?e[i]:0}function Go(t,e){let i=[],s=!1;return n(t)?(s=!0,i=t):i=function(t,e){const{x:i=null,y:s=null}=t||{},n=e.points,o=[];return e.segments.forEach((({start:t,end:e})=>{e=qo(t,e,n);const a=n[t],r=n[e];null!==s?(o.push({x:a.x,y:s}),o.push({x:r.x,y:s})):null!==i&&(o.push({x:i,y:a.y}),o.push({x:i,y:r.y}))})),o}(t,e),i.length?new Zn({points:i,options:{tension:0},_loop:s,_fullLoop:s}):null}function Zo(t){return t&&!1!==t.fill}function Jo(t,e,i){let s=t[e].fill;const n=[e];let o;if(!i)return s;for(;!1!==s&&-1===n.indexOf(s);){if(!a(s))return s;if(o=t[s],!o)return!1;if(o.visible)return s;n.push(s),s=o.fill}return!1}function Qo(t,e,i){const s=function(t){const e=t.options,i=e.fill;let s=l(i&&i.target,i);void 0===s&&(s=!!e.backgroundColor);if(!1===s||null===s)return!1;if(!0===s)return"origin";return s}(t);if(o(s))return!isNaN(s.value)&&s;let n=parseFloat(s);return a(n)&&Math.floor(n)===n?function(t,e,i,s){"-"!==t&&"+"!==t||(i=e+i);if(i===e||i<0||i>=s)return!1;return i}(s[0],e,n,i):["origin","start","end","stack","shape"].indexOf(s)>=0&&s}function ta(t,e,i){const s=[];for(let n=0;n<i.length;n++){const o=i[n],{first:a,last:r,point:l}=ea(o,e,"x");if(!(!l||a&&r))if(a)s.unshift(l);else if(t.push(l),!r)break}t.push(...s)}function ea(t,e,i){const s=t.interpolate(e,i);if(!s)return{};const n=s[i],o=t.segments,a=t.points;let r=!1,l=!1;for(let t=0;t<o.length;t++){const e=o[t],s=a[e.start][i],h=a[e.end][i];if(tt(n,s,h)){r=n===s,l=n===h;break}}return{first:r,last:l,point:s}}class ia{constructor(t){this.x=t.x,this.y=t.y,this.radius=t.radius}pathSegment(t,e,i){const{x:s,y:n,radius:o}=this;return e=e||{start:0,end:O},t.arc(s,n,o,e.end,e.start,!0),!i.bounds}interpolate(t){const{x:e,y:i,radius:s}=this,n=t.angle;return{x:e+Math.cos(n)*s,y:i+Math.sin(n)*s,angle:n}}}function sa(t){const{chart:e,fill:i,line:s}=t;if(a(i))return function(t,e){const i=t.getDatasetMeta(e);return i&&t.isDatasetVisible(e)?i.dataset:null}(e,i);if("stack"===i)return function(t){const{scale:e,index:i,line:s}=t,n=[],o=s.segments,a=s.points,r=function(t,e){const i=[],s=t.getMatchingVisibleMetas("line");for(let t=0;t<s.length;t++){const n=s[t];if(n.index===e)break;n.hidden||i.unshift(n.dataset)}return i}(e,i);r.push(Go({x:null,y:e.bottom},s));for(let t=0;t<o.length;t++){const e=o[t];for(let t=e.start;t<=e.end;t++)ta(n,a[t],r)}return new Zn({points:n,options:{}})}(t);if("shape"===i)return!0;const n=function(t){if((t.scale||{}).getPointPositionForValue)return function(t){const{scale:e,fill:i}=t,s=e.options,n=e.getLabels().length,a=s.reverse?e.max:e.min,r=function(t,e,i){let s;return s="start"===t?i:"end"===t?e.options.reverse?e.min:e.max:o(t)?t.value:e.getBaseValue(),s}(i,e,a),l=[];if(s.grid.circular){const t=e.getPointPositionForValue(0,a);return new ia({x:t.x,y:t.y,radius:e.getDistanceFromCenterForValue(r)})}for(let t=0;t<n;++t)l.push(e.getPointPositionForValue(t,r));return l}(t);return function(t){const{scale:e={},fill:i}=t,s=function(t,e){let i=null;return"start"===t?i=e.bottom:"end"===t?i=e.top:o(t)?i=e.getPixelForValue(t.value):e.getBasePixel&&(i=e.getBasePixel()),i}(i,e);if(a(s)){const t=e.isHorizontal();return{x:t?s:null,y:t?null:s}}return null}(t)}(t);return n instanceof ia?n:Go(n,s)}function na(t,e,i){const s=sa(e),{line:n,scale:o,axis:a}=e,r=n.options,l=r.fill,h=r.backgroundColor,{above:c=h,below:d=h}=l||{};s&&n.points.length&&(Re(t,i),function(t,e){const{line:i,target:s,above:n,below:o,area:a,scale:r}=e,l=i._loop?"angle":e.axis;t.save(),"x"===l&&o!==n&&(oa(t,s,a.top),aa(t,{line:i,target:s,color:n,scale:r,property:l}),t.restore(),t.save(),oa(t,s,a.bottom));aa(t,{line:i,target:s,color:o,scale:r,property:l}),t.restore()}(t,{line:n,target:s,above:c,below:d,area:i,scale:o,axis:a}),Ie(t))}function oa(t,e,i){const{segments:s,points:n}=e;let o=!0,a=!1;t.beginPath();for(const r of s){const{start:s,end:l}=r,h=n[s],c=n[qo(s,l,n)];o?(t.moveTo(h.x,h.y),o=!1):(t.lineTo(h.x,i),t.lineTo(h.x,h.y)),a=!!e.pathSegment(t,r,{move:a}),a?t.closePath():t.lineTo(c.x,i)}t.lineTo(e.first().x,i),t.closePath(),t.clip()}function aa(t,e){const{line:i,target:s,property:n,color:o,scale:a}=e,r=function(t,e,i){const s=t.segments,n=t.points,o=e.points,a=[];for(const t of s){let{start:s,end:r}=t;r=qo(s,r,n);const l=Xo(i,n[s],n[r],t.loop);if(!e.segments){a.push({source:t,target:l,start:n[s],end:n[r]});continue}const h=Ei(e,l);for(const e of h){const s=Xo(i,o[e.start],o[e.end],e.loop),r=Li(t,n,s);for(const t of r)a.push({source:t,target:e,start:{[i]:Ko(l,s,"start",Math.max)},end:{[i]:Ko(l,s,"end",Math.min)}})}}return a}(i,s,n);for(const{source:e,target:l,start:h,end:c}of r){const{style:{backgroundColor:r=o}={}}=e,d=!0!==s;t.save(),t.fillStyle=r,ra(t,a,d&&Xo(n,h,c)),t.beginPath();const u=!!i.pathSegment(t,e);let f;if(d){u?t.closePath():la(t,s,c,n);const e=!!s.pathSegment(t,l,{move:u,reverse:!0});f=u&&e,f||la(t,s,h,n)}t.closePath(),t.fill(f?"evenodd":"nonzero"),t.restore()}}function ra(t,e,i){const{top:s,bottom:n}=e.chart.chartArea,{property:o,start:a,end:r}=i||{};"x"===o&&(t.beginPath(),t.rect(a,s,r-a,n-s),t.clip())}function la(t,e,i,s){const n=e.interpolate(i,s);n&&t.lineTo(n.x,n.y)}var ha={id:"filler",afterDatasetsUpdate(t,e,i){const s=(t.data.datasets||[]).length,n=[];let o,a,r,l;for(a=0;a<s;++a)o=t.getDatasetMeta(a),r=o.dataset,l=null,r&&r.options&&r instanceof Zn&&(l={visible:t.isDatasetVisible(a),index:a,fill:Qo(r,a,s),chart:t,axis:o.controller.options.indexAxis,scale:o.vScale,line:r}),o.$filler=l,n.push(l);for(a=0;a<s;++a)l=n[a],l&&!1!==l.fill&&(l.fill=Jo(n,a,i.propagate))},beforeDraw(t,e,i){const s="beforeDraw"===i.drawTime,n=t.getSortedVisibleDatasetMetas(),o=t.chartArea;for(let e=n.length-1;e>=0;--e){const i=n[e].$filler;i&&(i.line.updateControlPoints(o,i.axis),s&&i.fill&&na(t.ctx,i,o))}},beforeDatasetsDraw(t,e,i){if("beforeDatasetsDraw"!==i.drawTime)return;const s=t.getSortedVisibleDatasetMetas();for(let e=s.length-1;e>=0;--e){const i=s[e].$filler;Zo(i)&&na(t.ctx,i,t.chartArea)}},beforeDatasetDraw(t,e,i){const s=e.meta.$filler;Zo(s)&&"beforeDatasetDraw"===i.drawTime&&na(t.ctx,s,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const ca=(t,e)=>{let{boxHeight:i=e,boxWidth:s=e}=t;return t.usePointStyle&&(i=Math.min(i,e),s=t.pointStyleWidth||Math.min(s,e)),{boxWidth:s,boxHeight:i,itemHeight:Math.max(e,i)}};class da extends Bs{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=d(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=wi(i.font),n=s.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:r}=ca(i,n);let l,h;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,h=this._fitRows(o,n,a,r)+10):(h=this.maxHeight,l=this._fitCols(o,s,a,r)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.lineWidths=[0],h=s+a;let c=t;n.textAlign="left",n.textBaseline="middle";let d=-1,u=-h;return this.legendItems.forEach(((t,f)=>{const g=i+e/2+n.measureText(t.text).width;(0===f||l[l.length-1]+g+2*a>o)&&(c+=h,l[l.length-(f>0?0:1)]=0,u+=h,d++),r[f]={left:0,top:u,row:d,width:g,height:s},l[l.length-1]+=g+a})),c}_fitCols(t,e,i,s){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.columnSizes=[],h=o-t;let c=a,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const{itemWidth:p,itemHeight:m}=function(t,e,i,s,n){const o=function(t,e,i,s){let n=t.text;n&&"string"!=typeof n&&(n=n.reduce(((t,e)=>t.length>e.length?t:e)));return e+i.size/2+s.measureText(n).width}(s,t,e,i),a=function(t,e,i){let s=t;"string"!=typeof e.text&&(s=ua(e,i));return s}(n,s,e.lineHeight);return{itemWidth:o,itemHeight:a}}(i,e,n,t,s);o>0&&u+m+2*a>h&&(c+=d+a,l.push({width:d,height:u}),f+=d+a,g++,d=u=0),r[o]={left:f,top:u,col:g,width:p,height:m},d=Math.max(d,p),u+=m+a})),c+=d,l.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:n}}=this,o=Di(n,this.left,this.width);if(this.isHorizontal()){let n=0,a=ft(i,this.left+s,this.right-this.lineWidths[n]);for(const r of e)n!==r.row&&(n=r.row,a=ft(i,this.left+s,this.right-this.lineWidths[n])),r.top+=this.top+t+s,r.left=o.leftForLtr(o.x(a),r.width),a+=r.width+s}else{let n=0,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height);for(const r of e)r.col!==n&&(n=r.col,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height)),r.top=a,r.left+=this.left+s,r.left=o.leftForLtr(o.x(r.left),r.width),a+=r.height+s}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;Re(t,this),this._draw(),Ie(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:n,labels:o}=t,a=ue.color,r=Di(t.rtl,this.left,this.width),h=wi(o.font),{padding:c}=o,d=h.size,u=d/2;let f;this.drawTitle(),s.textAlign=r.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=h.string;const{boxWidth:g,boxHeight:p,itemHeight:m}=ca(o,d),b=this.isHorizontal(),x=this._computeTitleHeight();f=b?{x:ft(n,this.left+c,this.right-i[0]),y:this.top+c+x,line:0}:{x:this.left+c,y:ft(n,this.top+x+c,this.bottom-e[0].height),line:0},Ci(this.ctx,t.textDirection);const _=m+c;this.legendItems.forEach(((y,v)=>{s.strokeStyle=y.fontColor,s.fillStyle=y.fontColor;const M=s.measureText(y.text).width,w=r.textAlign(y.textAlign||(y.textAlign=o.textAlign)),k=g+u+M;let S=f.x,P=f.y;r.setWidth(this.width),b?v>0&&S+k+c>this.right&&(P=f.y+=_,f.line++,S=f.x=ft(n,this.left+c,this.right-i[f.line])):v>0&&P+_>this.bottom&&(S=f.x=S+e[f.line].width+c,f.line++,P=f.y=ft(n,this.top+x+c,this.bottom-e[f.line].height));if(function(t,e,i){if(isNaN(g)||g<=0||isNaN(p)||p<0)return;s.save();const n=l(i.lineWidth,1);if(s.fillStyle=l(i.fillStyle,a),s.lineCap=l(i.lineCap,"butt"),s.lineDashOffset=l(i.lineDashOffset,0),s.lineJoin=l(i.lineJoin,"miter"),s.lineWidth=n,s.strokeStyle=l(i.strokeStyle,a),s.setLineDash(l(i.lineDash,[])),o.usePointStyle){const a={radius:p*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:n},l=r.xPlus(t,g/2);Le(s,a,l,e+u,o.pointStyleWidth&&g)}else{const o=e+Math.max((d-p)/2,0),a=r.leftForLtr(t,g),l=vi(i.borderRadius);s.beginPath(),Object.values(l).some((t=>0!==t))?We(s,{x:a,y:o,w:g,h:p,radius:l}):s.rect(a,o,g,p),s.fill(),0!==n&&s.stroke()}s.restore()}(r.x(S),P,y),S=gt(w,S+g+u,b?S+k:this.right,t.rtl),function(t,e,i){Ve(s,i.text,t,e+m/2,h,{strikethrough:i.hidden,textAlign:r.textAlign(i.textAlign)})}(r.x(S),P,y),b)f.x+=k+c;else if("string"!=typeof y.text){const t=h.lineHeight;f.y+=ua(y,t)}else f.y+=_})),Oi(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=wi(e.font),s=Mi(e.padding);if(!e.display)return;const n=Di(t.rtl,this.left,this.width),o=this.ctx,a=e.position,r=i.size/2,l=s.top+r;let h,c=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),h=this.top+l,c=ft(t.align,c,this.right-d);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);h=l+ft(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const u=ft(a,c,c+d);o.textAlign=n.textAlign(ut(a)),o.textBaseline="middle",o.strokeStyle=e.color,o.fillStyle=e.color,o.font=i.string,Ve(o,e.text,u,h,i)}_computeTitleHeight(){const t=this.options.title,e=wi(t.font),i=Mi(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,n;if(tt(t,this.left,this.right)&&tt(e,this.top,this.bottom))for(n=this.legendHitBoxes,i=0;i<n.length;++i)if(s=n[i],tt(t,s.left,s.left+s.width)&&tt(e,s.top,s.top+s.height))return this.legendItems[i];return null}handleEvent(t){const e=this.options;if(!function(t,e){if(("mousemove"===t||"mouseout"===t)&&(e.onHover||e.onLeave))return!0;if(e.onClick&&("click"===t||"mouseup"===t))return!0;return!1}(t.type,e))return;const i=this._getLegendItemAt(t.x,t.y);if("mousemove"===t.type||"mouseout"===t.type){const o=this._hoveredItem,a=(n=i,null!==(s=o)&&null!==n&&s.datasetIndex===n.datasetIndex&&s.index===n.index);o&&!a&&d(e.onLeave,[t,o,this],this),this._hoveredItem=i,i&&!a&&d(e.onHover,[t,i,this],this)}else i&&d(e.onClick,[t,i,this],this);var s,n}}function ua(t,e){return e*(t.text?t.text.length+.5:0)}var fa={id:"legend",_element:da,start(t,e,i){const s=t.legend=new da({ctx:t.ctx,options:i,chart:t});ns.configure(t,s,i),ns.addBox(t,s)},stop(t){ns.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,i){const s=t.legend;ns.configure(t,s,i),s.options=i},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,i){const s=e.datasetIndex,n=i.chart;n.isDatasetVisible(s)?(n.hide(s),e.hidden=!0):(n.show(s),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:n,color:o,useBorderRadius:a,borderRadius:r}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const l=t.controller.getStyle(i?0:void 0),h=Mi(l.borderWidth);return{text:e[t.index].label,fillStyle:l.backgroundColor,fontColor:o,hidden:!t.visible,lineCap:l.borderCapStyle,lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:(h.width+h.height)/4,strokeStyle:l.borderColor,pointStyle:s||l.pointStyle,rotation:l.rotation,textAlign:n||l.textAlign,borderRadius:a&&(r||l.borderRadius),datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};class ga extends Bs{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const s=n(i.text)?i.text.length:1;this._padding=Mi(i.padding);const o=s*wi(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return"top"===t||"bottom"===t}_drawArgs(t){const{top:e,left:i,bottom:s,right:n,options:o}=this,a=o.align;let r,l,h,c=0;return this.isHorizontal()?(l=ft(a,i,n),h=e+t,r=n-i):("left"===o.position?(l=i+t,h=ft(a,s,e),c=-.5*C):(l=n-t,h=ft(a,e,s),c=.5*C),r=s-e),{titleX:l,titleY:h,maxWidth:r,rotation:c}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const i=wi(e.font),s=i.lineHeight/2+this._padding.top,{titleX:n,titleY:o,maxWidth:a,rotation:r}=this._drawArgs(s);Ve(t,e.text,0,0,i,{color:e.color,maxWidth:a,rotation:r,textAlign:ut(e.align),textBaseline:"middle",translation:[n,o]})}}var pa={id:"title",_element:ga,start(t,e,i){!function(t,e){const i=new ga({ctx:t.ctx,options:e,chart:t});ns.configure(t,i,e),ns.addBox(t,i),t.titleBlock=i}(t,i)},stop(t){const e=t.titleBlock;ns.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,i){const s=t.titleBlock;ns.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const ma=new WeakMap;var ba={id:"subtitle",start(t,e,i){const s=new ga({ctx:t.ctx,options:i,chart:t});ns.configure(t,s,i),ns.addBox(t,s),ma.set(t,s)},stop(t){ns.removeBox(t,ma.get(t)),ma.delete(t)},beforeUpdate(t,e,i){const s=ma.get(t);ns.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const xa={average(t){if(!t.length)return!1;let e,i,s=0,n=0,o=0;for(e=0,i=t.length;e<i;++e){const i=t[e].element;if(i&&i.hasValue()){const t=i.tooltipPosition();s+=t.x,n+=t.y,++o}}return{x:s/o,y:n/o}},nearest(t,e){if(!t.length)return!1;let i,s,n,o=e.x,a=e.y,r=Number.POSITIVE_INFINITY;for(i=0,s=t.length;i<s;++i){const s=t[i].element;if(s&&s.hasValue()){const t=q(e,s.getCenterPoint());t<r&&(r=t,n=s)}}if(n){const t=n.tooltipPosition();o=t.x,a=t.y}return{x:o,y:a}}};function _a(t,e){return e&&(n(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function ya(t){return("string"==typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function va(t,e){const{element:i,datasetIndex:s,index:n}=e,o=t.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:t,label:a,parsed:o.getParsed(n),raw:t.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:i}}function Ma(t,e){const i=t.chart.ctx,{body:s,footer:n,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=wi(e.bodyFont),h=wi(e.titleFont),c=wi(e.footerFont),d=o.length,f=n.length,g=s.length,p=Mi(e.padding);let m=p.height,b=0,x=s.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(x+=t.beforeBody.length+t.afterBody.length,d&&(m+=d*h.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),x){m+=g*(e.displayColors?Math.max(r,l.lineHeight):l.lineHeight)+(x-g)*l.lineHeight+(x-1)*e.bodySpacing}f&&(m+=e.footerMarginTop+f*c.lineHeight+(f-1)*e.footerSpacing);let _=0;const y=function(t){b=Math.max(b,i.measureText(t).width+_)};return i.save(),i.font=h.string,u(t.title,y),i.font=l.string,u(t.beforeBody.concat(t.afterBody),y),_=e.displayColors?a+2+e.boxPadding:0,u(s,(t=>{u(t.before,y),u(t.lines,y),u(t.after,y)})),_=0,i.font=c.string,u(t.footer,y),i.restore(),b+=p.width,{width:b,height:m}}function wa(t,e,i,s){const{x:n,width:o}=i,{width:a,chartArea:{left:r,right:l}}=t;let h="center";return"center"===s?h=n<=(r+l)/2?"left":"right":n<=o/2?h="left":n>=a-o/2&&(h="right"),function(t,e,i,s){const{x:n,width:o}=s,a=i.caretSize+i.caretPadding;return"left"===t&&n+o+a>e.width||"right"===t&&n-o-a<0||void 0}(h,t,e,i)&&(h="center"),h}function ka(t,e,i){const s=i.yAlign||e.yAlign||function(t,e){const{y:i,height:s}=e;return i<s/2?"top":i>t.height-s/2?"bottom":"center"}(t,i);return{xAlign:i.xAlign||e.xAlign||wa(t,e,i,s),yAlign:s}}function Sa(t,e,i,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=i,h=n+o,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=vi(a);let g=function(t,e){let{x:i,width:s}=t;return"right"===e?i-=s:"center"===e&&(i-=s/2),i}(e,r);const p=function(t,e,i){let{y:s,height:n}=t;return"top"===e?s+=i:s-="bottom"===e?n+i:n/2,s}(e,l,h);return"center"===l?"left"===r?g+=h:"right"===r&&(g-=h):"left"===r?g-=Math.max(c,u)+n:"right"===r&&(g+=Math.max(d,f)+n),{x:J(g,0,s.width-e.width),y:J(p,0,s.height-e.height)}}function Pa(t,e,i){const s=Mi(i.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-s.right:t.x+s.left}function Da(t){return _a([],ya(t))}function Ca(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}const Oa={beforeTitle:e,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(s>0&&e.dataIndex<s)return i[e.dataIndex]}return""},afterTitle:e,beforeBody:e,beforeLabel:e,label(t){if(this&&this.options&&"dataset"===this.options.mode)return t.label+": "+t.formattedValue||t.formattedValue;let e=t.dataset.label||"";e&&(e+=": ");const i=t.formattedValue;return s(i)||(e+=i),e},labelColor(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:e,afterBody:e,beforeFooter:e,footer:e,afterFooter:e};function Aa(t,e,i,s){const n=t[e].call(i,s);return void 0===n?Oa[e].call(i,s):n}class Ta extends Bs{static positioners=xa;constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const e=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&e.options.animation&&i.animations,n=new Ps(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(n)),n}getContext(){return this.$context||(this.$context=(t=this.chart.getContext(),e=this,i=this._tooltipItems,Pi(t,{tooltip:e,tooltipItems:i,type:"tooltip"})));var t,e,i}getTitle(t,e){const{callbacks:i}=e,s=Aa(i,"beforeTitle",this,t),n=Aa(i,"title",this,t),o=Aa(i,"afterTitle",this,t);let a=[];return a=_a(a,ya(s)),a=_a(a,ya(n)),a=_a(a,ya(o)),a}getBeforeBody(t,e){return Da(Aa(e.callbacks,"beforeBody",this,t))}getBody(t,e){const{callbacks:i}=e,s=[];return u(t,(t=>{const e={before:[],lines:[],after:[]},n=Ca(i,t);_a(e.before,ya(Aa(n,"beforeLabel",this,t))),_a(e.lines,Aa(n,"label",this,t)),_a(e.after,ya(Aa(n,"afterLabel",this,t))),s.push(e)})),s}getAfterBody(t,e){return Da(Aa(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:i}=e,s=Aa(i,"beforeFooter",this,t),n=Aa(i,"footer",this,t),o=Aa(i,"afterFooter",this,t);let a=[];return a=_a(a,ya(s)),a=_a(a,ya(n)),a=_a(a,ya(o)),a}_createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];let a,r,l=[];for(a=0,r=e.length;a<r;++a)l.push(va(this.chart,e[a]));return t.filter&&(l=l.filter(((e,s,n)=>t.filter(e,s,n,i)))),t.itemSort&&(l=l.sort(((e,s)=>t.itemSort(e,s,i)))),u(l,(e=>{const i=Ca(t.callbacks,e);s.push(Aa(i,"labelColor",this,e)),n.push(Aa(i,"labelPointStyle",this,e)),o.push(Aa(i,"labelTextColor",this,e))})),this.labelColors=s,this.labelPointStyles=n,this.labelTextColors=o,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),s=this._active;let n,o=[];if(s.length){const t=xa[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Ma(this,i),a=Object.assign({},t,e),r=ka(this.chart,i,a),l=Sa(i,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:l.x,y:l.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.lineTo(n.x3,n.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:n}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:r,topRight:l,bottomLeft:h,bottomRight:c}=vi(a),{x:d,y:u}=t,{width:f,height:g}=e;let p,m,b,x,_,y;return"center"===n?(_=u+g/2,"left"===s?(p=d,m=p-o,x=_+o,y=_-o):(p=d+f,m=p+o,x=_-o,y=_+o),b=p):(m="left"===s?d+Math.max(r,h)+o:"right"===s?d+f-Math.max(l,c)-o:this.caretX,"top"===n?(x=u,_=x-o,p=m-o,b=m+o):(x=u+g,_=x+o,p=m+o,b=m-o),y=x),{x1:p,x2:m,x3:b,y1:x,y2:_,y3:y}}drawTitle(t,e,i){const s=this.title,n=s.length;let o,a,r;if(n){const l=Di(i.rtl,this.x,this.width);for(t.x=Pa(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline="middle",o=wi(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=o.string,r=0;r<n;++r)e.fillText(s[r],l.x(t.x),t.y+o.lineHeight/2),t.y+=o.lineHeight+a,r+1===n&&(t.y+=i.titleMarginBottom-a)}}_drawColorBox(t,e,i,s,n){const a=this.labelColors[i],r=this.labelPointStyles[i],{boxHeight:l,boxWidth:h,boxPadding:c}=n,d=wi(n.bodyFont),u=Pa(this,"left",n),f=s.x(u),g=l<d.lineHeight?(d.lineHeight-l)/2:0,p=e.y+g;if(n.usePointStyle){const e={radius:Math.min(h,l)/2,pointStyle:r.pointStyle,rotation:r.rotation,borderWidth:1},i=s.leftForLtr(f,h)+h/2,o=p+l/2;t.strokeStyle=n.multiKeyBackground,t.fillStyle=n.multiKeyBackground,Te(t,e,i,o),t.strokeStyle=a.borderColor,t.fillStyle=a.backgroundColor,Te(t,e,i,o)}else{t.lineWidth=o(a.borderWidth)?Math.max(...Object.values(a.borderWidth)):a.borderWidth||1,t.strokeStyle=a.borderColor,t.setLineDash(a.borderDash||[]),t.lineDashOffset=a.borderDashOffset||0;const e=s.leftForLtr(f,h-c),i=s.leftForLtr(s.xPlus(f,1),h-c-2),r=vi(a.borderRadius);Object.values(r).some((t=>0!==t))?(t.beginPath(),t.fillStyle=n.multiKeyBackground,We(t,{x:e,y:p,w:h,h:l,radius:r}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),We(t,{x:i,y:p+1,w:h-2,h:l-2,radius:r}),t.fill()):(t.fillStyle=n.multiKeyBackground,t.fillRect(e,p,h,l),t.strokeRect(e,p,h,l),t.fillStyle=a.backgroundColor,t.fillRect(i,p+1,h-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:n,bodyAlign:o,displayColors:a,boxHeight:r,boxWidth:l,boxPadding:h}=i,c=wi(i.bodyFont);let d=c.lineHeight,f=0;const g=Di(i.rtl,this.x,this.width),p=function(i){e.fillText(i,g.x(t.x+f),t.y+d/2),t.y+=d+n},m=g.textAlign(o);let b,x,_,y,v,M,w;for(e.textAlign=o,e.textBaseline="middle",e.font=c.string,t.x=Pa(this,m,i),e.fillStyle=i.bodyColor,u(this.beforeBody,p),f=a&&"right"!==m?"center"===o?l/2+h:l+2+h:0,y=0,M=s.length;y<M;++y){for(b=s[y],x=this.labelTextColors[y],e.fillStyle=x,u(b.before,p),_=b.lines,a&&_.length&&(this._drawColorBox(e,t,y,g,i),d=Math.max(c.lineHeight,r)),v=0,w=_.length;v<w;++v)p(_[v]),d=c.lineHeight;u(b.after,p)}f=0,d=c.lineHeight,u(this.afterBody,p),t.y-=n}drawFooter(t,e,i){const s=this.footer,n=s.length;let o,a;if(n){const r=Di(i.rtl,this.x,this.width);for(t.x=Pa(this,i.footerAlign,i),t.y+=i.footerMarginTop,e.textAlign=r.textAlign(i.footerAlign),e.textBaseline="middle",o=wi(i.footerFont),e.fillStyle=i.footerColor,e.font=o.string,a=0;a<n;++a)e.fillText(s[a],r.x(t.x),t.y+o.lineHeight/2),t.y+=o.lineHeight+i.footerSpacing}}drawBackground(t,e,i,s){const{xAlign:n,yAlign:o}=this,{x:a,y:r}=t,{width:l,height:h}=i,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=vi(s.cornerRadius);e.fillStyle=s.backgroundColor,e.strokeStyle=s.borderColor,e.lineWidth=s.borderWidth,e.beginPath(),e.moveTo(a+c,r),"top"===o&&this.drawCaret(t,e,i,s),e.lineTo(a+l-d,r),e.quadraticCurveTo(a+l,r,a+l,r+d),"center"===o&&"right"===n&&this.drawCaret(t,e,i,s),e.lineTo(a+l,r+h-f),e.quadraticCurveTo(a+l,r+h,a+l-f,r+h),"bottom"===o&&this.drawCaret(t,e,i,s),e.lineTo(a+u,r+h),e.quadraticCurveTo(a,r+h,a,r+h-u),"center"===o&&"left"===n&&this.drawCaret(t,e,i,s),e.lineTo(a,r+c),e.quadraticCurveTo(a,r,a+c,r),e.closePath(),e.fill(),s.borderWidth>0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i.x,n=i&&i.y;if(s||n){const i=xa[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Ma(this,t),a=Object.assign({},i,this._size),r=ka(e,t,a),l=Sa(t,a,r,e);s._to===l.x&&n._to===l.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},n={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const o=Mi(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(n,t,s,e),Ci(t,e.textDirection),n.y+=o.top,this.drawTitle(n,t,e),this.drawBody(n,t,e),this.drawFooter(n,t,e),Oi(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:i.data[e],index:e}})),n=!f(i,s),o=this._positionChanged(s,e);(n||o)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,n=this._active||[],o=this._getActiveElements(t,n,e,i),a=this._positionChanged(o,t),r=e||!f(o,n)||a;return r&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),r}_getActiveElements(t,e,i,s){const n=this.options;if("mouseout"===t.type)return[];if(!s)return e;const o=this.chart.getElementsAtEventForMode(t,n.mode,n,i);return n.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=xa[n.position].call(this,t,e);return!1!==o&&(i!==o.x||s!==o.y)}}var La={id:"tooltip",_element:Ta,positioners:xa,afterInit(t,e,i){i&&(t.tooltip=new Ta({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(!1===t.notifyPlugins("beforeTooltipDraw",{...i,cancelable:!0}))return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:Oa},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};return wn.register(Vn,zo,oo,t),wn.helpers={...Vi},wn._adapters=Dn,wn.Animation=Ss,wn.Animations=Ps,wn.animator=xt,wn.controllers=Js.controllers.items,wn.DatasetController=Vs,wn.Element=Bs,wn.elements=oo,wn.Interaction=Yi,wn.layouts=ns,wn.platforms=Ms,wn.Scale=Ks,wn.Ticks=ae,Object.assign(wn,Vn,zo,oo,t,Ms),wn.Chart=wn,"undefined"!=typeof window&&(window.Chart=wn),wn})); //# sourceMappingURL=chart.umd.js.map chart.min.js 0000644 00000462061 15104530633 0006776 0 ustar 00 /*! * Chart.js v2.8.0 * https://www.chartjs.org * (c) 2019 Chart.js Contributors * Released under the MIT License */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(function(){try{return require("moment")}catch(t){}}()):"function"==typeof define&&define.amd?define(["require"],function(t){return e(function(){try{return t("moment")}catch(t){}}())}):t.Chart=e(t.moment)}(this,function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e={rgb2hsl:i,rgb2hsv:n,rgb2hwb:a,rgb2cmyk:o,rgb2keyword:s,rgb2xyz:l,rgb2lab:d,rgb2lch:function(t){return x(d(t))},hsl2rgb:u,hsl2hsv:function(t){var e=t[0],i=t[1]/100,n=t[2]/100;if(0===n)return[0,0,0];return[e,100*(2*(i*=(n*=2)<=1?n:2-n)/(n+i)),100*((n+i)/2)]},hsl2hwb:function(t){return a(u(t))},hsl2cmyk:function(t){return o(u(t))},hsl2keyword:function(t){return s(u(t))},hsv2rgb:h,hsv2hsl:function(t){var e,i,n=t[0],a=t[1]/100,o=t[2]/100;return e=a*o,[n,100*(e=(e/=(i=(2-a)*o)<=1?i:2-i)||0),100*(i/=2)]},hsv2hwb:function(t){return a(h(t))},hsv2cmyk:function(t){return o(h(t))},hsv2keyword:function(t){return s(h(t))},hwb2rgb:c,hwb2hsl:function(t){return i(c(t))},hwb2hsv:function(t){return n(c(t))},hwb2cmyk:function(t){return o(c(t))},hwb2keyword:function(t){return s(c(t))},cmyk2rgb:f,cmyk2hsl:function(t){return i(f(t))},cmyk2hsv:function(t){return n(f(t))},cmyk2hwb:function(t){return a(f(t))},cmyk2keyword:function(t){return s(f(t))},keyword2rgb:w,keyword2hsl:function(t){return i(w(t))},keyword2hsv:function(t){return n(w(t))},keyword2hwb:function(t){return a(w(t))},keyword2cmyk:function(t){return o(w(t))},keyword2lab:function(t){return d(w(t))},keyword2xyz:function(t){return l(w(t))},xyz2rgb:p,xyz2lab:m,xyz2lch:function(t){return x(m(t))},lab2xyz:v,lab2rgb:y,lab2lch:x,lch2lab:k,lch2xyz:function(t){return v(k(t))},lch2rgb:function(t){return y(k(t))}};function i(t){var e,i,n=t[0]/255,a=t[1]/255,o=t[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),i=(r+s)/2,[e,100*(s==r?0:i<=.5?l/(s+r):l/(2-s-r)),100*i]}function n(t){var e,i,n=t[0],a=t[1],o=t[2],r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return i=0==s?0:l/s*1e3/10,s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),[e,i,s/255*1e3/10]}function a(t){var e=t[0],n=t[1],a=t[2];return[i(t)[0],100*(1/255*Math.min(e,Math.min(n,a))),100*(a=1-1/255*Math.max(e,Math.max(n,a)))]}function o(t){var e,i=t[0]/255,n=t[1]/255,a=t[2]/255;return[100*((1-i-(e=Math.min(1-i,1-n,1-a)))/(1-e)||0),100*((1-n-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]}function s(t){return _[JSON.stringify(t)]}function l(t){var e=t[0]/255,i=t[1]/255,n=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)+.1805*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)),100*(.2126*e+.7152*i+.0722*n),100*(.0193*e+.1192*i+.9505*n)]}function d(t){var e=l(t),i=e[0],n=e[1],a=e[2];return n/=100,a/=108.883,i=(i/=95.047)>.008856?Math.pow(i,1/3):7.787*i+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(i-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function u(t){var e,i,n,a,o,r=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[o=255*l,o,o];e=2*l-(i=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var d=0;d<3;d++)(n=r+1/3*-(d-1))<0&&n++,n>1&&n--,o=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e,a[d]=255*o;return a}function h(t){var e=t[0]/60,i=t[1]/100,n=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*n*(1-i),s=255*n*(1-i*o),l=255*n*(1-i*(1-o));n*=255;switch(a){case 0:return[n,l,r];case 1:return[s,n,r];case 2:return[r,n,l];case 3:return[r,s,n];case 4:return[l,r,n];case 5:return[n,r,s]}}function c(t){var e,i,n,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,d=s+l;switch(d>1&&(s/=d,l/=d),n=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(n=1-n),a=s+n*((i=1-l)-s),e){default:case 6:case 0:r=i,g=a,b=s;break;case 1:r=a,g=i,b=s;break;case 2:r=s,g=i,b=a;break;case 3:r=s,g=a,b=i;break;case 4:r=a,g=s,b=i;break;case 5:r=i,g=s,b=a}return[255*r,255*g,255*b]}function f(t){var e=t[0]/100,i=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function p(t){var e,i,n,a=t[0]/100,o=t[1]/100,r=t[2]/100;return i=-.9689*a+1.8758*o+.0415*r,n=.0557*a+-.204*o+1.057*r,e=(e=3.2406*a+-1.5372*o+-.4986*r)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1))]}function m(t){var e=t[0],i=t[1],n=t[2];return i/=100,n/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(e-i),200*(i-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]}function v(t){var e,i,n,a,o=t[0],r=t[1],s=t[2];return o<=8?a=(i=100*o/903.3)/100*7.787+16/116:(i=100*Math.pow((o+16)/116,3),a=Math.pow(i/100,1/3)),[e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i,n=n/108.883<=.008859?n=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3)]}function x(t){var e,i=t[0],n=t[1],a=t[2];return(e=360*Math.atan2(a,n)/2/Math.PI)<0&&(e+=360),[i,Math.sqrt(n*n+a*a),e]}function y(t){return p(v(t))}function k(t){var e,i=t[0],n=t[1];return e=t[2]/360*2*Math.PI,[i,n*Math.cos(e),n*Math.sin(e)]}function w(t){return M[t]}var M={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},_={};for(var C in M)_[JSON.stringify(M[C])]=C;var S=function(){return new T};for(var P in e){S[P+"Raw"]=function(t){return function(i){return"number"==typeof i&&(i=Array.prototype.slice.call(arguments)),e[t](i)}}(P);var I=/(\w+)2(\w+)/.exec(P),A=I[1],D=I[2];(S[A]=S[A]||{})[D]=S[P]=function(t){return function(i){"number"==typeof i&&(i=Array.prototype.slice.call(arguments));var n=e[t](i);if("string"==typeof n||void 0===n)return n;for(var a=0;a<n.length;a++)n[a]=Math.round(n[a]);return n}}(P)}var T=function(){this.convs={}};T.prototype.routeSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i))},T.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},T.prototype.getValues=function(t){var e=this.convs[t];if(!e){var i=this.space,n=this.convs[i];e=S[i][t](n),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){T.prototype[t]=function(e){return this.routeSpace(t,arguments)}});var F=S,L={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},R={getRgba:O,getHsla:z,getRgb:function(t){var e=O(t);return e&&e.slice(0,3)},getHsl:function(t){var e=z(t);return e&&e.slice(0,3)},getHwb:B,getAlpha:function(t){var e=O(t);if(e)return e[3];if(e=z(t))return e[3];if(e=B(t))return e[3]},hexString:function(t,e){var e=void 0!==e&&3===t.length?e:t[3];return"#"+H(t[0])+H(t[1])+H(t[2])+(e>=0&&e<1?H(Math.round(255*e)):"")},rgbString:function(t,e){if(e<1||t[3]&&t[3]<1)return N(t,e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:N,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return W(t,e);var i=Math.round(t[0]/255*100),n=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+i+"%, "+n+"%, "+a+"%)"},percentaString:W,hslString:function(t,e){if(e<1||t[3]&&t[3]<1)return V(t,e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:V,hwbString:function(t,e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return j[t.slice(0,3)]}};function O(t){if(t){var e=[0,0,0],i=1,n=t.match(/^#([a-fA-F0-9]{3,4})$/i),a="";if(n){a=(n=n[1])[3];for(var o=0;o<e.length;o++)e[o]=parseInt(n[o]+n[o],16);a&&(i=Math.round(parseInt(a+a,16)/255*100)/100)}else if(n=t.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)){a=n[2],n=n[1];for(o=0;o<e.length;o++)e[o]=parseInt(n.slice(2*o,2*o+2),16);a&&(i=Math.round(parseInt(a,16)/255*100)/100)}else if(n=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=parseInt(n[o+1]);i=parseFloat(n[4])}else if(n=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=Math.round(2.55*parseFloat(n[o+1]));i=parseFloat(n[4])}else if(n=t.match(/(\w+)/)){if("transparent"==n[1])return[0,0,0,0];if(!(e=L[n[1]]))return}for(o=0;o<e.length;o++)e[o]=E(e[o],0,255);return i=i||0==i?E(i,0,1):1,e[3]=i,e}}function z(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[E(parseInt(e[1]),0,360),E(parseFloat(e[2]),0,100),E(parseFloat(e[3]),0,100),E(isNaN(i)?1:i,0,1)]}}}function B(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[E(parseInt(e[1]),0,360),E(parseFloat(e[2]),0,100),E(parseFloat(e[3]),0,100),E(isNaN(i)?1:i,0,1)]}}}function N(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function W(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function V(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function E(t,e,i){return Math.min(Math.max(e,t),i)}function H(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var j={};for(var q in L)j[L[q]]=q;var Y=function(t){return t instanceof Y?t:this instanceof Y?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof t?(e=R.getRgba(t))?this.setValues("rgb",e):(e=R.getHsla(t))?this.setValues("hsl",e):(e=R.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new Y(t);var e};Y.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return R.hexString(this.values.rgb)},rgbString:function(){return R.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return R.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return R.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return R.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return R.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return R.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return R.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],i=0;i<t.length;i++){var n=t[i]/255;e[i]=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),i=t.luminosity();return e>i?(e+.05)/(i+.05):(i+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,i=(e[0]+t)%360;return e[0]=i<0?360+i:i,this.setValues("hsl",e),this},mix:function(t,e){var i=t,n=void 0===e?.5:e,a=2*n-1,o=this.alpha()-i.alpha(),r=((a*o==-1?a:(a+o)/(1+a*o))+1)/2,s=1-r;return this.rgb(r*this.red()+s*i.red(),r*this.green()+s*i.green(),r*this.blue()+s*i.blue()).alpha(this.alpha()*n+i.alpha()*(1-n))},toJSON:function(){return this.rgb()},clone:function(){var t,e,i=new Y,n=this.values,a=i.values;for(var o in n)n.hasOwnProperty(o)&&(t=n[o],"[object Array]"===(e={}.toString.call(t))?a[o]=t.slice(0):"[object Number]"===e?a[o]=t:console.error("unexpected color value:",t));return i}},Y.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},Y.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},Y.prototype.getValues=function(t){for(var e=this.values,i={},n=0;n<t.length;n++)i[t.charAt(n)]=e[t][n];return 1!==e.alpha&&(i.a=e.alpha),i},Y.prototype.setValues=function(t,e){var i,n,a=this.values,o=this.spaces,r=this.maxes,s=1;if(this.valid=!0,"alpha"===t)s=e;else if(e.length)a[t]=e.slice(0,t.length),s=e[t.length];else if(void 0!==e[t.charAt(0)]){for(i=0;i<t.length;i++)a[t][i]=e[t.charAt(i)];s=e.a}else if(void 0!==e[o[t][0]]){var l=o[t];for(i=0;i<t.length;i++)a[t][i]=e[l[i]];s=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void 0===s?a.alpha:s)),"alpha"===t)return!1;for(i=0;i<t.length;i++)n=Math.max(0,Math.min(r[t][i],a[t][i])),a[t][i]=Math.round(n);for(var d in o)d!==t&&(a[d]=F[t][d](a[t]));return!0},Y.prototype.setSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i),this)},Y.prototype.setChannel=function(t,e,i){var n=this.values[t];return void 0===i?n[e]:i===n[e]?this:(n[e]=i,this.setValues(t,n),this)},"undefined"!=typeof window&&(window.Color=Y);var U,X=Y,K={noop:function(){},uid:(U=0,function(){return U++}),isNullOrUndef:function(t){return null==t},isArray:function(t){if(Array.isArray&&Array.isArray(t))return!0;var e=Object.prototype.toString.call(t);return"[object"===e.substr(0,7)&&"Array]"===e.substr(-6)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},isFinite:function(t){return("number"==typeof t||t instanceof Number)&&isFinite(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,i){return K.valueOrDefault(K.isArray(t)?t[e]:t,i)},callback:function(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)},each:function(t,e,i,n){var a,o,r;if(K.isArray(t))if(o=t.length,n)for(a=o-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a<o;a++)e.call(i,t[a],a);else if(K.isObject(t))for(o=(r=Object.keys(t)).length,a=0;a<o;a++)e.call(i,t[r[a]],r[a])},arrayEquals:function(t,e){var i,n,a,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,n=t.length;i<n;++i)if(a=t[i],o=e[i],a instanceof Array&&o instanceof Array){if(!K.arrayEquals(a,o))return!1}else if(a!==o)return!1;return!0},clone:function(t){if(K.isArray(t))return t.map(K.clone);if(K.isObject(t)){for(var e={},i=Object.keys(t),n=i.length,a=0;a<n;++a)e[i[a]]=K.clone(t[i[a]]);return e}return t},_merger:function(t,e,i,n){var a=e[t],o=i[t];K.isObject(a)&&K.isObject(o)?K.merge(a,o,n):e[t]=K.clone(o)},_mergerIf:function(t,e,i){var n=e[t],a=i[t];K.isObject(n)&&K.isObject(a)?K.mergeIf(n,a):e.hasOwnProperty(t)||(e[t]=K.clone(a))},merge:function(t,e,i){var n,a,o,r,s,l=K.isArray(e)?e:[e],d=l.length;if(!K.isObject(t))return t;for(n=(i=i||{}).merger||K._merger,a=0;a<d;++a)if(e=l[a],K.isObject(e))for(s=0,r=(o=Object.keys(e)).length;s<r;++s)n(o[s],t,e,i);return t},mergeIf:function(t,e){return K.merge(t,e,{merger:K._mergerIf})},extend:function(t){for(var e=function(e,i){t[i]=e},i=1,n=arguments.length;i<n;++i)K.each(arguments[i],e);return t},inherits:function(t){var e=this,i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},n=function(){this.constructor=i};return n.prototype=e.prototype,i.prototype=new n,i.extend=K.inherits,t&&K.extend(i.prototype,t),i.__super__=e.prototype,i}},G=K;K.callCallback=K.callback,K.indexOf=function(t,e,i){return Array.prototype.indexOf.call(t,e,i)},K.getValueOrDefault=K.valueOrDefault,K.getValueAtIndexOrDefault=K.valueAtIndexOrDefault;var Z={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i))},easeOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)},easeInOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:2==(t/=.5)?1:(i||(i=.45),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),t<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-Z.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*Z.easeInBounce(2*t):.5*Z.easeOutBounce(2*t-1)+.5}},$={effects:Z};G.easingEffects=Z;var J=Math.PI,Q=J/180,tt=2*J,et=J/2,it=J/4,nt=2*J/3,at={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,i,n,a,o){if(o){var r=Math.min(o,a/2,n/2),s=e+r,l=i+r,d=e+n-r,u=i+a-r;t.moveTo(e,l),s<d&&l<u?(t.arc(s,l,r,-J,-et),t.arc(d,l,r,-et,0),t.arc(d,u,r,0,et),t.arc(s,u,r,et,J)):s<d?(t.moveTo(s,i),t.arc(d,l,r,-et,et),t.arc(s,l,r,et,J+et)):l<u?(t.arc(s,l,r,-J,0),t.arc(s,u,r,0,J)):t.arc(s,l,r,-J,J),t.closePath(),t.moveTo(e,i)}else t.rect(e,i,n,a)},drawPoint:function(t,e,i,n,a,o){var r,s,l,d,u,h=(o||0)*Q;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(r=e.toString())&&"[object HTMLCanvasElement]"!==r){if(!(isNaN(i)||i<=0)){switch(t.beginPath(),e){default:t.arc(n,a,i,0,tt),t.closePath();break;case"triangle":t.moveTo(n+Math.sin(h)*i,a-Math.cos(h)*i),h+=nt,t.lineTo(n+Math.sin(h)*i,a-Math.cos(h)*i),h+=nt,t.lineTo(n+Math.sin(h)*i,a-Math.cos(h)*i),t.closePath();break;case"rectRounded":d=i-(u=.516*i),s=Math.cos(h+it)*d,l=Math.sin(h+it)*d,t.arc(n-s,a-l,u,h-J,h-et),t.arc(n+l,a-s,u,h-et,h),t.arc(n+s,a+l,u,h,h+et),t.arc(n-l,a+s,u,h+et,h+J),t.closePath();break;case"rect":if(!o){d=Math.SQRT1_2*i,t.rect(n-d,a-d,2*d,2*d);break}h+=it;case"rectRot":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+l,a-s),t.lineTo(n+s,a+l),t.lineTo(n-l,a+s),t.closePath();break;case"crossRot":h+=it;case"cross":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s);break;case"star":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s),h+=it,s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n+l,a-s),t.lineTo(n-l,a+s);break;case"line":s=Math.cos(h)*i,l=Math.sin(h)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l);break;case"dash":t.moveTo(n,a),t.lineTo(n+Math.cos(h)*i,a+Math.sin(h)*i)}t.fill(),t.stroke()}}else t.drawImage(e,n-e.width/2,a-e.height/2,e.width,e.height)},_isPointInArea:function(t,e){return t.x>e.left-1e-6&&t.x<e.right+1e-6&&t.y>e.top-1e-6&&t.y<e.bottom+1e-6},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,i,n){var a=i.steppedLine;if(a){if("middle"===a){var o=(e.x+i.x)/2;t.lineTo(o,n?i.y:e.y),t.lineTo(o,n?e.y:i.y)}else"after"===a&&!n||"after"!==a&&n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}else i.tension?t.bezierCurveTo(n?e.controlPointPreviousX:e.controlPointNextX,n?e.controlPointPreviousY:e.controlPointNextY,n?i.controlPointNextX:i.controlPointPreviousX,n?i.controlPointNextY:i.controlPointPreviousY,i.x,i.y):t.lineTo(i.x,i.y)}},ot=at;G.clear=at.clear,G.drawRoundedRectangle=function(t){t.beginPath(),at.roundedRect.apply(at,arguments)};var rt={_set:function(t,e){return G.merge(this[t]||(this[t]={}),e)}};rt._set("global",{defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",defaultLineHeight:1.2,showLines:!0});var st=rt,lt=G.valueOrDefault;var dt={toLineHeight:function(t,e){var i=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,i,n,a;return G.isObject(t)?(e=+t.top||0,i=+t.right||0,n=+t.bottom||0,a=+t.left||0):e=i=n=a=+t||0,{top:e,right:i,bottom:n,left:a,height:e+n,width:a+i}},_parseFont:function(t){var e=st.global,i=lt(t.fontSize,e.defaultFontSize),n={family:lt(t.fontFamily,e.defaultFontFamily),lineHeight:G.options.toLineHeight(lt(t.lineHeight,e.defaultLineHeight),i),size:i,style:lt(t.fontStyle,e.defaultFontStyle),weight:null,string:""};return n.string=function(t){return!t||G.isNullOrUndef(t.size)||G.isNullOrUndef(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(n),n},resolve:function(t,e,i){var n,a,o;for(n=0,a=t.length;n<a;++n)if(void 0!==(o=t[n])&&(void 0!==e&&"function"==typeof o&&(o=o(e)),void 0!==i&&G.isArray(o)&&(o=o[i]),void 0!==o))return o}},ut=G,ht=$,ct=ot,ft=dt;ut.easing=ht,ut.canvas=ct,ut.options=ft;var gt=function(t){ut.extend(this,t),this.initialize.apply(this,arguments)};ut.extend(gt.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=ut.clone(t._model)),t._start={},t},transition:function(t){var e=this,i=e._model,n=e._start,a=e._view;return i&&1!==t?(a||(a=e._view={}),n||(n=e._start={}),function(t,e,i,n){var a,o,r,s,l,d,u,h,c,f=Object.keys(i);for(a=0,o=f.length;a<o;++a)if(d=i[r=f[a]],e.hasOwnProperty(r)||(e[r]=d),(s=e[r])!==d&&"_"!==r[0]){if(t.hasOwnProperty(r)||(t[r]=s),(u=typeof d)==typeof(l=t[r]))if("string"===u){if((h=X(l)).valid&&(c=X(d)).valid){e[r]=c.mix(h,n).rgbString();continue}}else if(ut.isFinite(l)&&ut.isFinite(d)){e[r]=l+(d-l)*n;continue}e[r]=d}}(n,a,i,t),e):(e._view=i,e._start=null,e)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return ut.isNumber(this._model.x)&&ut.isNumber(this._model.y)}}),gt.extend=ut.inherits;var pt=gt,mt=pt.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),vt=mt;Object.defineProperty(mt.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(mt.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}}),st._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:ut.noop,onComplete:ut.noop}});var bt={animations:[],request:null,addAnimation:function(t,e,i,n){var a,o,r=this.animations;for(e.chart=t,e.startTime=Date.now(),e.duration=i,n||(t.animating=!0),a=0,o=r.length;a<o;++a)if(r[a].chart===t)return void(r[a]=e);r.push(e),1===r.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var e=ut.findIndex(this.animations,function(e){return e.chart===t});-1!==e&&(this.animations.splice(e,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=ut.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){this.advance(),this.animations.length>0&&this.requestAnimationFrame()},advance:function(){for(var t,e,i,n,a=this.animations,o=0;o<a.length;)e=(t=a[o]).chart,i=t.numSteps,n=Math.floor((Date.now()-t.startTime)/t.duration*i)+1,t.currentStep=Math.min(n,i),ut.callback(t.render,[e,t],e),ut.callback(t.onAnimationProgress,[t],e),t.currentStep>=i?(ut.callback(t.onAnimationComplete,[t],e),e.animating=!1,a.splice(o,1)):++o}},xt=ut.options.resolve,yt=["push","pop","shift","splice","unshift"];function kt(t,e){var i=t._chartjs;if(i){var n=i.listeners,a=n.indexOf(e);-1!==a&&n.splice(a,1),n.length>0||(yt.forEach(function(e){delete t[e]}),delete t._chartjs)}}var wt=function(t,e){this.initialize(t,e)};ut.extend(wt.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),i=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=i.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=i.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this.update(!0)},destroy:function(){this._data&&kt(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,i=this.getMeta(),n=this.getDataset().data||[],a=i.data;for(t=0,e=n.length;t<e;++t)a[t]=a[t]||this.createMetaData(t);i.dataset=i.dataset||this.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t,e,i=this,n=i.getDataset(),a=n.data||(n.data=[]);i._data!==a&&(i._data&&kt(i._data,i),a&&Object.isExtensible(a)&&(e=i,(t=a)._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),yt.forEach(function(e){var i="onData"+e.charAt(0).toUpperCase()+e.slice(1),n=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),a=n.apply(this,e);return ut.each(t._chartjs.listeners,function(t){"function"==typeof t[i]&&t[i].apply(t,e)}),a}})}))),i._data=a),i.resyncElements()},update:ut.noop,transition:function(t){for(var e=this.getMeta(),i=e.data||[],n=i.length,a=0;a<n;++a)i[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],i=e.length,n=0;for(t.dataset&&t.dataset.draw();n<i;++n)e[n].draw()},removeHoverStyle:function(t){ut.merge(t._model,t.$previousStyle||{}),delete t.$previousStyle},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},a=t._model,o=ut.getHoverColor;t.$previousStyle={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderWidth:a.borderWidth},a.backgroundColor=xt([n.hoverBackgroundColor,e.hoverBackgroundColor,o(a.backgroundColor)],void 0,i),a.borderColor=xt([n.hoverBorderColor,e.hoverBorderColor,o(a.borderColor)],void 0,i),a.borderWidth=xt([n.hoverBorderWidth,e.hoverBorderWidth,a.borderWidth],void 0,i)},resyncElements:function(){var t=this.getMeta(),e=this.getDataset().data,i=t.data.length,n=e.length;n<i?t.data.splice(n,i-n):n>i&&this.insertElements(i,n-i)},insertElements:function(t,e){for(var i=0;i<e;++i)this.addElementAndReset(t+i)},onDataPush:function(){var t=arguments.length;this.insertElements(this.getDataset().data.length-t,t)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),wt.extend=ut.inherits;var Mt=wt;st._set("global",{elements:{arc:{backgroundColor:st.global.defaultColor,borderColor:"#fff",borderWidth:2,borderAlign:"center"}}});var _t=pt.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var i=this._view;if(i){for(var n=ut.getAngleFromPoint(i,{x:t,y:e}),a=n.angle,o=n.distance,r=i.startAngle,s=i.endAngle;s<r;)s+=2*Math.PI;for(;a>s;)a-=2*Math.PI;for(;a<r;)a+=2*Math.PI;var l=a>=r&&a<=s,d=o>=i.innerRadius&&o<=i.outerRadius;return l&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,i=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,i=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},draw:function(){var t,e=this._chart.ctx,i=this._view,n=i.startAngle,a=i.endAngle,o="inner"===i.borderAlign?.33:0;e.save(),e.beginPath(),e.arc(i.x,i.y,Math.max(i.outerRadius-o,0),n,a),e.arc(i.x,i.y,i.innerRadius,a,n,!0),e.closePath(),e.fillStyle=i.backgroundColor,e.fill(),i.borderWidth&&("inner"===i.borderAlign?(e.beginPath(),t=o/i.outerRadius,e.arc(i.x,i.y,i.outerRadius,n-t,a+t),i.innerRadius>o?(t=o/i.innerRadius,e.arc(i.x,i.y,i.innerRadius-o,a+t,n-t,!0)):e.arc(i.x,i.y,o,a+Math.PI/2,n-Math.PI/2),e.closePath(),e.clip(),e.beginPath(),e.arc(i.x,i.y,i.outerRadius,n,a),e.arc(i.x,i.y,i.innerRadius,a,n,!0),e.closePath(),e.lineWidth=2*i.borderWidth,e.lineJoin="round"):(e.lineWidth=i.borderWidth,e.lineJoin="bevel"),e.strokeStyle=i.borderColor,e.stroke()),e.restore()}}),Ct=ut.valueOrDefault,St=st.global.defaultColor;st._set("global",{elements:{line:{tension:.4,backgroundColor:St,borderWidth:3,borderColor:St,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var Pt=pt.extend({draw:function(){var t,e,i,n,a=this._view,o=this._chart.ctx,r=a.spanGaps,s=this._children.slice(),l=st.global,d=l.elements.line,u=-1;for(this._loop&&s.length&&s.push(s[0]),o.save(),o.lineCap=a.borderCapStyle||d.borderCapStyle,o.setLineDash&&o.setLineDash(a.borderDash||d.borderDash),o.lineDashOffset=Ct(a.borderDashOffset,d.borderDashOffset),o.lineJoin=a.borderJoinStyle||d.borderJoinStyle,o.lineWidth=Ct(a.borderWidth,d.borderWidth),o.strokeStyle=a.borderColor||l.defaultColor,o.beginPath(),u=-1,t=0;t<s.length;++t)e=s[t],i=ut.previousItem(s,t),n=e._view,0===t?n.skip||(o.moveTo(n.x,n.y),u=t):(i=-1===u?i:s[u],n.skip||(u!==t-1&&!r||-1===u?o.moveTo(n.x,n.y):ut.canvas.lineTo(o,i._view,e._view),u=t));o.stroke(),o.restore()}}),It=ut.valueOrDefault,At=st.global.defaultColor;function Dt(t){var e=this._view;return!!e&&Math.abs(t-e.x)<e.radius+e.hitRadius}st._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:At,borderColor:At,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}});var Tt=pt.extend({inRange:function(t,e){var i=this._view;return!!i&&Math.pow(t-i.x,2)+Math.pow(e-i.y,2)<Math.pow(i.hitRadius+i.radius,2)},inLabelRange:Dt,inXRange:Dt,inYRange:function(t){var e=this._view;return!!e&&Math.abs(t-e.y)<e.radius+e.hitRadius},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,i=this._chart.ctx,n=e.pointStyle,a=e.rotation,o=e.radius,r=e.x,s=e.y,l=st.global,d=l.defaultColor;e.skip||(void 0===t||ut.canvas._isPointInArea(e,t))&&(i.strokeStyle=e.borderColor||d,i.lineWidth=It(e.borderWidth,l.elements.point.borderWidth),i.fillStyle=e.backgroundColor||d,ut.canvas.drawPoint(i,n,o,r,s,a))}}),Ft=st.global.defaultColor;function Lt(t){return t&&void 0!==t.width}function Rt(t){var e,i,n,a,o;return Lt(t)?(o=t.width/2,e=t.x-o,i=t.x+o,n=Math.min(t.y,t.base),a=Math.max(t.y,t.base)):(o=t.height/2,e=Math.min(t.x,t.base),i=Math.max(t.x,t.base),n=t.y-o,a=t.y+o),{left:e,top:n,right:i,bottom:a}}function Ot(t,e,i){return t===e?i:t===i?e:t}function zt(t,e,i){var n,a,o,r,s=t.borderWidth,l=function(t){var e=t.borderSkipped,i={};return e?(t.horizontal?t.base>t.x&&(e=Ot(e,"left","right")):t.base<t.y&&(e=Ot(e,"bottom","top")),i[e]=!0,i):i}(t);return ut.isObject(s)?(n=+s.top||0,a=+s.right||0,o=+s.bottom||0,r=+s.left||0):n=a=o=r=+s||0,{t:l.top||n<0?0:n>i?i:n,r:l.right||a<0?0:a>e?e:a,b:l.bottom||o<0?0:o>i?i:o,l:l.left||r<0?0:r>e?e:r}}function Bt(t,e,i){var n=null===e,a=null===i,o=!(!t||n&&a)&&Rt(t);return o&&(n||e>=o.left&&e<=o.right)&&(a||i>=o.top&&i<=o.bottom)}st._set("global",{elements:{rectangle:{backgroundColor:Ft,borderColor:Ft,borderSkipped:"bottom",borderWidth:0}}});var Nt=pt.extend({draw:function(){var t=this._chart.ctx,e=this._view,i=function(t){var e=Rt(t),i=e.right-e.left,n=e.bottom-e.top,a=zt(t,i/2,n/2);return{outer:{x:e.left,y:e.top,w:i,h:n},inner:{x:e.left+a.l,y:e.top+a.t,w:i-a.l-a.r,h:n-a.t-a.b}}}(e),n=i.outer,a=i.inner;t.fillStyle=e.backgroundColor,t.fillRect(n.x,n.y,n.w,n.h),n.w===a.w&&n.h===a.h||(t.save(),t.beginPath(),t.rect(n.x,n.y,n.w,n.h),t.clip(),t.fillStyle=e.borderColor,t.rect(a.x,a.y,a.w,a.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return Bt(this._view,t,e)},inLabelRange:function(t,e){var i=this._view;return Lt(i)?Bt(i,t,null):Bt(i,null,e)},inXRange:function(t){return Bt(this._view,t,null)},inYRange:function(t){return Bt(this._view,null,t)},getCenterPoint:function(){var t,e,i=this._view;return Lt(i)?(t=i.x,e=(i.y+i.base)/2):(t=(i.x+i.base)/2,e=i.y),{x:t,y:e}},getArea:function(){var t=this._view;return Lt(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),Wt={},Vt=_t,Et=Pt,Ht=Tt,jt=Nt;Wt.Arc=Vt,Wt.Line=Et,Wt.Point=Ht,Wt.Rectangle=jt;var qt=ut.options.resolve;st._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}});var Yt=Mt.extend({dataElementType:Wt.Rectangle,initialize:function(){var t;Mt.prototype.initialize.apply(this,arguments),(t=this.getMeta()).stack=this.getDataset().stack,t.bar=!0},update:function(t){var e,i,n=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,i=n.length;e<i;++e)this.updateElement(n[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.getMeta(),o=n.getDataset(),r=n._resolveElementOptions(t,e);t._xScale=n.getScaleForId(a.xAxisID),t._yScale=n.getScaleForId(a.yAxisID),t._datasetIndex=n.index,t._index=e,t._model={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderSkipped:r.borderSkipped,borderWidth:r.borderWidth,datasetLabel:o.label,label:n.chart.data.labels[e]},n._updateElementGeometry(t,e,i),t.pivot()},_updateElementGeometry:function(t,e,i){var n=this,a=t._model,o=n._getValueScale(),r=o.getBasePixel(),s=o.isHorizontal(),l=n._ruler||n.getRuler(),d=n.calculateBarValuePixels(n.index,e),u=n.calculateBarIndexPixels(n.index,e,l);a.horizontal=s,a.base=i?r:d.base,a.x=s?i?r:d.head:u.center,a.y=s?u.center:i?r:d.head,a.height=s?u.size:void 0,a.width=s?void 0:u.size},_getStacks:function(t){var e,i,n=this.chart,a=this._getIndexScale().options.stacked,o=void 0===t?n.data.datasets.length:t+1,r=[];for(e=0;e<o;++e)(i=n.getDatasetMeta(e)).bar&&n.isDatasetVisible(e)&&(!1===a||!0===a&&-1===r.indexOf(i.stack)||void 0===a&&(void 0===i.stack||-1===r.indexOf(i.stack)))&&r.push(i.stack);return r},getStackCount:function(){return this._getStacks().length},getStackIndex:function(t,e){var i=this._getStacks(t),n=void 0!==e?i.indexOf(e):-1;return-1===n?i.length-1:n},getRuler:function(){var t,e,i=this._getIndexScale(),n=this.getStackCount(),a=this.index,o=i.isHorizontal(),r=o?i.left:i.top,s=r+(o?i.width:i.height),l=[];for(t=0,e=this.getMeta().data.length;t<e;++t)l.push(i.getPixelForValue(null,t,a));return{min:ut.isNullOrUndef(i.options.barThickness)?function(t,e){var i,n,a,o,r=t.isHorizontal()?t.width:t.height,s=t.getTicks();for(a=1,o=e.length;a<o;++a)r=Math.min(r,Math.abs(e[a]-e[a-1]));for(a=0,o=s.length;a<o;++a)n=t.getPixelForTick(a),r=a>0?Math.min(r,n-i):r,i=n;return r}(i,l):-1,pixels:l,start:r,end:s,stackCount:n,scale:i}},calculateBarValuePixels:function(t,e){var i,n,a,o,r,s,l=this.chart,d=this.getMeta(),u=this._getValueScale(),h=u.isHorizontal(),c=l.data.datasets,f=+u.getRightValue(c[t].data[e]),g=u.options.minBarLength,p=u.options.stacked,m=d.stack,v=0;if(p||void 0===p&&void 0!==m)for(i=0;i<t;++i)(n=l.getDatasetMeta(i)).bar&&n.stack===m&&n.controller._getValueScaleId()===u.id&&l.isDatasetVisible(i)&&(a=+u.getRightValue(c[i].data[e]),(f<0&&a<0||f>=0&&a>0)&&(v+=a));return o=u.getPixelForValue(v),s=(r=u.getPixelForValue(v+f))-o,void 0!==g&&Math.abs(s)<g&&(s=g,r=f>=0&&!h||f<0&&h?o-g:o+g),{size:s,base:o,head:r,center:r+s/2}},calculateBarIndexPixels:function(t,e,i){var n=i.scale.options,a="flex"===n.barThickness?function(t,e,i){var n,a=e.pixels,o=a[t],r=t>0?a[t-1]:null,s=t<a.length-1?a[t+1]:null,l=i.categoryPercentage;return null===r&&(r=o-(null===s?e.end-e.start:s-o)),null===s&&(s=o+o-r),n=o-(o-Math.min(r,s))/2*l,{chunk:Math.abs(s-r)/2*l/e.stackCount,ratio:i.barPercentage,start:n}}(e,i,n):function(t,e,i){var n,a,o=i.barThickness,r=e.stackCount,s=e.pixels[t];return ut.isNullOrUndef(o)?(n=e.min*i.categoryPercentage,a=i.barPercentage):(n=o*r,a=1),{chunk:n/r,ratio:a,start:s-n/2}}(e,i,n),o=this.getStackIndex(t,this.getMeta().stack),r=a.start+a.chunk*o+a.chunk/2,s=Math.min(ut.valueOrDefault(n.maxBarThickness,1/0),a.chunk*a.ratio);return{base:r-s/2,head:r+s/2,center:r,size:s}},draw:function(){var t=this.chart,e=this._getValueScale(),i=this.getMeta().data,n=this.getDataset(),a=i.length,o=0;for(ut.canvas.clipArea(t.ctx,t.chartArea);o<a;++o)isNaN(e.getRightValue(n.data[o]))||i[o].draw();ut.canvas.unclipArea(t.ctx)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.rectangle,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderSkipped","borderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=qt([s[a],r[a],l[a]],u,e);return d}}),Ut=ut.valueOrDefault,Xt=ut.options.resolve;st._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.datasets[t.datasetIndex].label||"",n=e.datasets[t.datasetIndex].data[t.index];return i+": ("+t.xLabel+", "+t.yLabel+", "+n.r+")"}}}});var Kt=Mt.extend({dataElementType:Wt.Point,update:function(t){var e=this,i=e.getMeta().data;ut.each(i,function(i,n){e.updateElement(i,n,t)})},updateElement:function(t,e,i){var n=this,a=n.getMeta(),o=t.custom||{},r=n.getScaleForId(a.xAxisID),s=n.getScaleForId(a.yAxisID),l=n._resolveElementOptions(t,e),d=n.getDataset().data[e],u=n.index,h=i?r.getPixelForDecimal(.5):r.getPixelForValue("object"==typeof d?d:NaN,e,u),c=i?s.getBasePixel():s.getPixelForValue(d,e,u);t._xScale=r,t._yScale=s,t._options=l,t._datasetIndex=u,t._index=e,t._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,rotation:l.rotation,radius:i?0:l.radius,skip:o.skip||isNaN(h)||isNaN(c),x:h,y:c},t.pivot()},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Ut(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Ut(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Ut(i.hoverBorderWidth,i.borderWidth),e.radius=i.radius+i.hoverRadius},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d=r.data[e],u={},h={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},c=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"];for(i=0,n=c.length;i<n;++i)u[a=c[i]]=Xt([s[a],r[a],l[a]],h,e);return u.radius=Xt([s.radius,d?d.r:void 0,r.radius,l.radius],h,e),u}}),Gt=ut.options.resolve,Zt=ut.valueOrDefault;st._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),o=e.datasets[0],r=a.data[n],s=r&&r.custom||{},l=t.options.elements.arc;return{text:i,fillStyle:Gt([s.backgroundColor,o.backgroundColor,l.backgroundColor],void 0,n),strokeStyle:Gt([s.borderColor,o.borderColor,l.borderColor],void 0,n),lineWidth:Gt([s.borderWidth,o.borderWidth,l.borderWidth],void 0,n),hidden:isNaN(o.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o]&&(a.data[o].hidden=!a.data[o].hidden);r.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.labels[t.index],n=": "+e.datasets[t.datasetIndex].data[t.index];return ut.isArray(i)?(i=i.slice())[0]+=n:i+=n,i}}}});var $t=Mt.extend({dataElementType:Wt.Arc,linkScales:ut.noop,getRingIndex:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&++e;return e},update:function(t){var e,i,n=this,a=n.chart,o=a.chartArea,r=a.options,s=o.right-o.left,l=o.bottom-o.top,d=Math.min(s,l),u={x:0,y:0},h=n.getMeta(),c=h.data,f=r.cutoutPercentage,g=r.circumference,p=n._getRingWeight(n.index);if(g<2*Math.PI){var m=r.rotation%(2*Math.PI),v=(m+=2*Math.PI*(m>=Math.PI?-1:m<-Math.PI?1:0))+g,b={x:Math.cos(m),y:Math.sin(m)},x={x:Math.cos(v),y:Math.sin(v)},y=m<=0&&v>=0||m<=2*Math.PI&&2*Math.PI<=v,k=m<=.5*Math.PI&&.5*Math.PI<=v||m<=2.5*Math.PI&&2.5*Math.PI<=v,w=m<=-Math.PI&&-Math.PI<=v||m<=Math.PI&&Math.PI<=v,M=m<=.5*-Math.PI&&.5*-Math.PI<=v||m<=1.5*Math.PI&&1.5*Math.PI<=v,_=f/100,C={x:w?-1:Math.min(b.x*(b.x<0?1:_),x.x*(x.x<0?1:_)),y:M?-1:Math.min(b.y*(b.y<0?1:_),x.y*(x.y<0?1:_))},S={x:y?1:Math.max(b.x*(b.x>0?1:_),x.x*(x.x>0?1:_)),y:k?1:Math.max(b.y*(b.y>0?1:_),x.y*(x.y>0?1:_))},P={width:.5*(S.x-C.x),height:.5*(S.y-C.y)};d=Math.min(s/P.width,l/P.height),u={x:-.5*(S.x+C.x),y:-.5*(S.y+C.y)}}for(e=0,i=c.length;e<i;++e)c[e]._options=n._resolveElementOptions(c[e],e);for(a.borderWidth=n.getMaxBorderWidth(),a.outerRadius=Math.max((d-a.borderWidth)/2,0),a.innerRadius=Math.max(f?a.outerRadius/100*f:0,0),a.radiusLength=(a.outerRadius-a.innerRadius)/(n._getVisibleDatasetWeightTotal()||1),a.offsetX=u.x*a.outerRadius,a.offsetY=u.y*a.outerRadius,h.total=n.calculateTotal(),n.outerRadius=a.outerRadius-a.radiusLength*n._getRingWeightOffset(n.index),n.innerRadius=Math.max(n.outerRadius-a.radiusLength*p,0),e=0,i=c.length;e<i;++e)n.updateElement(c[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.chart,o=a.chartArea,r=a.options,s=r.animation,l=(o.left+o.right)/2,d=(o.top+o.bottom)/2,u=r.rotation,h=r.rotation,c=n.getDataset(),f=i&&s.animateRotate?0:t.hidden?0:n.calculateCircumference(c.data[e])*(r.circumference/(2*Math.PI)),g=i&&s.animateScale?0:n.innerRadius,p=i&&s.animateScale?0:n.outerRadius,m=t._options||{};ut.extend(t,{_datasetIndex:n.index,_index:e,_model:{backgroundColor:m.backgroundColor,borderColor:m.borderColor,borderWidth:m.borderWidth,borderAlign:m.borderAlign,x:l+a.offsetX,y:d+a.offsetY,startAngle:u,endAngle:h,circumference:f,outerRadius:p,innerRadius:g,label:ut.valueAtIndexOrDefault(c.label,e,a.data.labels[e])}});var v=t._model;i&&s.animateRotate||(v.startAngle=0===e?r.rotation:n.getMeta().data[e-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),t.pivot()},calculateTotal:function(){var t,e=this.getDataset(),i=this.getMeta(),n=0;return ut.each(i.data,function(i,a){t=e.data[a],isNaN(t)||i.hidden||(n+=Math.abs(t))}),n},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,i,n,a,o,r,s,l,d=0,u=this.chart;if(!t)for(e=0,i=u.data.datasets.length;e<i;++e)if(u.isDatasetVisible(e)){t=(n=u.getDatasetMeta(e)).data,e!==this.index&&(o=n.controller);break}if(!t)return 0;for(e=0,i=t.length;e<i;++e)a=t[e],"inner"!==(r=o?o._resolveElementOptions(a,e):a._options).borderAlign&&(s=r.borderWidth,d=(l=r.hoverBorderWidth)>(d=s>d?s:d)?l:d);return d},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=Zt(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Zt(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Zt(i.hoverBorderWidth,i.borderWidth)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=this.getDataset(),s=t.custom||{},l=o.options.elements.arc,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=Gt([s[a],r[a],l[a]],u,e);return d},_getRingWeightOffset:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&(e+=this._getRingWeight(i));return e},_getRingWeight:function(t){return Math.max(Zt(this.chart.data.datasets[t].weight,1),0)},_getVisibleDatasetWeightTotal:function(){return this._getRingWeightOffset(this.chart.data.datasets.length)}});st._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{type:"category",position:"left",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{mode:"index",axis:"y"}});var Jt=Yt.extend({_getValueScaleId:function(){return this.getMeta().xAxisID},_getIndexScaleId:function(){return this.getMeta().yAxisID}}),Qt=ut.valueOrDefault,te=ut.options.resolve,ee=ut.canvas._isPointInArea;function ie(t,e){return Qt(t.showLine,e.showLines)}st._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});var ne=Mt.extend({datasetElementType:Wt.Line,dataElementType:Wt.Point,update:function(t){var e,i,n=this,a=n.getMeta(),o=a.dataset,r=a.data||[],s=n.getScaleForId(a.yAxisID),l=n.getDataset(),d=ie(l,n.chart.options);for(d&&(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=n.index,o._children=r,o._model=n._resolveLineOptions(o),o.pivot()),e=0,i=r.length;e<i;++e)n.updateElement(r[e],e,t);for(d&&0!==o._model.tension&&n.updateBezierControlPoints(),e=0,i=r.length;e<i;++e)r[e].pivot()},updateElement:function(t,e,i){var n,a,o=this,r=o.getMeta(),s=t.custom||{},l=o.getDataset(),d=o.index,u=l.data[e],h=o.getScaleForId(r.yAxisID),c=o.getScaleForId(r.xAxisID),f=r.dataset._model,g=o._resolvePointOptions(t,e);n=c.getPixelForValue("object"==typeof u?u:NaN,e,d),a=i?h.getBasePixel():o.calculatePointY(u,e,d),t._xScale=c,t._yScale=h,t._options=g,t._datasetIndex=d,t._index=e,t._model={x:n,y:a,skip:s.skip||isNaN(n)||isNaN(a),radius:g.radius,pointStyle:g.pointStyle,rotation:g.rotation,backgroundColor:g.backgroundColor,borderColor:g.borderColor,borderWidth:g.borderWidth,tension:Qt(s.tension,f?f.tension:0),steppedLine:!!f&&f.steppedLine,hitRadius:g.hitRadius}},_resolvePointOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},c=Object.keys(h);for(i=0,n=c.length;i<n;++i)d[a=c[i]]=te([s[a],r[h[a]],r[a],l[a]],u,e);return d},_resolveLineOptions:function(t){var e,i,n,a=this.chart,o=a.data.datasets[this.index],r=t.custom||{},s=a.options,l=s.elements.line,d={},u=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill","cubicInterpolationMode"];for(e=0,i=u.length;e<i;++e)d[n=u[e]]=te([r[n],o[n],l[n]]);return d.spanGaps=Qt(o.spanGaps,s.spanGaps),d.tension=Qt(o.lineTension,l.tension),d.steppedLine=te([r.steppedLine,o.steppedLine,l.stepped]),d},calculatePointY:function(t,e,i){var n,a,o,r=this.chart,s=this.getMeta(),l=this.getScaleForId(s.yAxisID),d=0,u=0;if(l.options.stacked){for(n=0;n<i;n++)if(a=r.data.datasets[n],"line"===(o=r.getDatasetMeta(n)).type&&o.yAxisID===l.id&&r.isDatasetVisible(n)){var h=Number(l.getRightValue(a.data[e]));h<0?u+=h||0:d+=h||0}var c=Number(l.getRightValue(t));return c<0?l.getPixelForValue(u+c):l.getPixelForValue(d+c)}return l.getPixelForValue(t)},updateBezierControlPoints:function(){var t,e,i,n,a=this.chart,o=this.getMeta(),r=o.dataset._model,s=a.chartArea,l=o.data||[];function d(t,e,i){return Math.max(Math.min(t,i),e)}if(r.spanGaps&&(l=l.filter(function(t){return!t._model.skip})),"monotone"===r.cubicInterpolationMode)ut.splineCurveMonotone(l);else for(t=0,e=l.length;t<e;++t)i=l[t]._model,n=ut.splineCurve(ut.previousItem(l,t)._model,i,ut.nextItem(l,t)._model,r.tension),i.controlPointPreviousX=n.previous.x,i.controlPointPreviousY=n.previous.y,i.controlPointNextX=n.next.x,i.controlPointNextY=n.next.y;if(a.options.elements.line.capBezierPoints)for(t=0,e=l.length;t<e;++t)i=l[t]._model,ee(i,s)&&(t>0&&ee(l[t-1]._model,s)&&(i.controlPointPreviousX=d(i.controlPointPreviousX,s.left,s.right),i.controlPointPreviousY=d(i.controlPointPreviousY,s.top,s.bottom)),t<l.length-1&&ee(l[t+1]._model,s)&&(i.controlPointNextX=d(i.controlPointNextX,s.left,s.right),i.controlPointNextY=d(i.controlPointNextY,s.top,s.bottom)))},draw:function(){var t,e=this.chart,i=this.getMeta(),n=i.data||[],a=e.chartArea,o=n.length,r=0;for(ie(this.getDataset(),e.options)&&(t=(i.dataset._model.borderWidth||0)/2,ut.canvas.clipArea(e.ctx,{left:a.left,right:a.right,top:a.top-t,bottom:a.bottom+t}),i.dataset.draw(),ut.canvas.unclipArea(e.ctx));r<o;++r)n[r].draw(a)},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Qt(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=Qt(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=Qt(i.hoverBorderWidth,i.borderWidth),e.radius=Qt(i.hoverRadius,i.radius)}}),ae=ut.options.resolve;st._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),o=e.datasets[0],r=a.data[n].custom||{},s=t.options.elements.arc;return{text:i,fillStyle:ae([r.backgroundColor,o.backgroundColor,s.backgroundColor],void 0,n),strokeStyle:ae([r.borderColor,o.borderColor,s.borderColor],void 0,n),lineWidth:ae([r.borderWidth,o.borderWidth,s.borderWidth],void 0,n),hidden:isNaN(o.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o].hidden=!a.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}});var oe=Mt.extend({dataElementType:Wt.Arc,linkScales:ut.noop,update:function(t){var e,i,n,a=this,o=a.getDataset(),r=a.getMeta(),s=a.chart.options.startAngle||0,l=a._starts=[],d=a._angles=[],u=r.data;for(a._updateRadius(),r.count=a.countVisibleElements(),e=0,i=o.data.length;e<i;e++)l[e]=s,n=a._computeAngle(e),d[e]=n,s+=n;for(e=0,i=u.length;e<i;++e)u[e]._options=a._resolveElementOptions(u[e],e),a.updateElement(u[e],e,t)},_updateRadius:function(){var t=this,e=t.chart,i=e.chartArea,n=e.options,a=Math.min(i.right-i.left,i.bottom-i.top);e.outerRadius=Math.max(a/2,0),e.innerRadius=Math.max(n.cutoutPercentage?e.outerRadius/100*n.cutoutPercentage:1,0),e.radiusLength=(e.outerRadius-e.innerRadius)/e.getVisibleDatasetCount(),t.outerRadius=e.outerRadius-e.radiusLength*t.index,t.innerRadius=t.outerRadius-e.radiusLength},updateElement:function(t,e,i){var n=this,a=n.chart,o=n.getDataset(),r=a.options,s=r.animation,l=a.scale,d=a.data.labels,u=l.xCenter,h=l.yCenter,c=r.startAngle,f=t.hidden?0:l.getDistanceFromCenterForValue(o.data[e]),g=n._starts[e],p=g+(t.hidden?0:n._angles[e]),m=s.animateScale?0:l.getDistanceFromCenterForValue(o.data[e]),v=t._options||{};ut.extend(t,{_datasetIndex:n.index,_index:e,_scale:l,_model:{backgroundColor:v.backgroundColor,borderColor:v.borderColor,borderWidth:v.borderWidth,borderAlign:v.borderAlign,x:u,y:h,innerRadius:0,outerRadius:i?m:f,startAngle:i&&s.animateRotate?c:g,endAngle:i&&s.animateRotate?c:p,label:ut.valueAtIndexOrDefault(d,e,d[e])}}),t.pivot()},countVisibleElements:function(){var t=this.getDataset(),e=this.getMeta(),i=0;return ut.each(e.data,function(e,n){isNaN(t.data[n])||e.hidden||i++}),i},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor,a=ut.valueOrDefault;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=a(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=a(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=a(i.hoverBorderWidth,i.borderWidth)},_resolveElementOptions:function(t,e){var i,n,a,o=this.chart,r=this.getDataset(),s=t.custom||{},l=o.options.elements.arc,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(i=0,n=h.length;i<n;++i)d[a=h[i]]=ae([s[a],r[a],l[a]],u,e);return d},_computeAngle:function(t){var e=this,i=this.getMeta().count,n=e.getDataset(),a=e.getMeta();if(isNaN(n.data[t])||a.data[t].hidden)return 0;var o={chart:e.chart,dataIndex:t,dataset:n,datasetIndex:e.index};return ae([e.chart.options.elements.arc.angle,2*Math.PI/i],o,t)}});st._set("pie",ut.clone(st.doughnut)),st._set("pie",{cutoutPercentage:0});var re=$t,se=ut.valueOrDefault,le=ut.options.resolve;st._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}});var de=Mt.extend({datasetElementType:Wt.Line,dataElementType:Wt.Point,linkScales:ut.noop,update:function(t){var e,i,n=this,a=n.getMeta(),o=a.dataset,r=a.data||[],s=n.chart.scale,l=n.getDataset();for(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=n.index,o._children=r,o._loop=!0,o._model=n._resolveLineOptions(o),o.pivot(),e=0,i=r.length;e<i;++e)n.updateElement(r[e],e,t);for(n.updateBezierControlPoints(),e=0,i=r.length;e<i;++e)r[e].pivot()},updateElement:function(t,e,i){var n=this,a=t.custom||{},o=n.getDataset(),r=n.chart.scale,s=r.getPointPositionForValue(e,o.data[e]),l=n._resolvePointOptions(t,e),d=n.getMeta().dataset._model,u=i?r.xCenter:s.x,h=i?r.yCenter:s.y;t._scale=r,t._options=l,t._datasetIndex=n.index,t._index=e,t._model={x:u,y:h,skip:a.skip||isNaN(u)||isNaN(h),radius:l.radius,pointStyle:l.pointStyle,rotation:l.rotation,backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,tension:se(a.tension,d?d.tension:0),hitRadius:l.hitRadius}},_resolvePointOptions:function(t,e){var i,n,a,o=this.chart,r=o.data.datasets[this.index],s=t.custom||{},l=o.options.elements.point,d={},u={chart:o,dataIndex:e,dataset:r,datasetIndex:this.index},h={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},c=Object.keys(h);for(i=0,n=c.length;i<n;++i)d[a=c[i]]=le([s[a],r[h[a]],r[a],l[a]],u,e);return d},_resolveLineOptions:function(t){var e,i,n,a=this.chart,o=a.data.datasets[this.index],r=t.custom||{},s=a.options.elements.line,l={},d=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill"];for(e=0,i=d.length;e<i;++e)l[n=d[e]]=le([r[n],o[n],s[n]]);return l.tension=se(o.lineTension,s.tension),l},updateBezierControlPoints:function(){var t,e,i,n,a=this.getMeta(),o=this.chart.chartArea,r=a.data||[];function s(t,e,i){return Math.max(Math.min(t,i),e)}for(t=0,e=r.length;t<e;++t)i=r[t]._model,n=ut.splineCurve(ut.previousItem(r,t,!0)._model,i,ut.nextItem(r,t,!0)._model,i.tension),i.controlPointPreviousX=s(n.previous.x,o.left,o.right),i.controlPointPreviousY=s(n.previous.y,o.top,o.bottom),i.controlPointNextX=s(n.next.x,o.left,o.right),i.controlPointNextY=s(n.next.y,o.top,o.bottom)},setHoverStyle:function(t){var e=t._model,i=t._options,n=ut.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=se(i.hoverBackgroundColor,n(i.backgroundColor)),e.borderColor=se(i.hoverBorderColor,n(i.borderColor)),e.borderWidth=se(i.hoverBorderWidth,i.borderWidth),e.radius=se(i.hoverRadius,i.radius)}});st._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}});var ue={bar:Yt,bubble:Kt,doughnut:$t,horizontalBar:Jt,line:ne,polarArea:oe,pie:re,radar:de,scatter:ne};function he(t,e){return t.native?{x:t.x,y:t.y}:ut.getRelativePosition(t,e)}function ce(t,e){var i,n,a,o,r;for(n=0,o=t.data.datasets.length;n<o;++n)if(t.isDatasetVisible(n))for(a=0,r=(i=t.getDatasetMeta(n)).data.length;a<r;++a){var s=i.data[a];s._view.skip||e(s)}}function fe(t,e){var i=[];return ce(t,function(t){t.inRange(e.x,e.y)&&i.push(t)}),i}function ge(t,e,i,n){var a=Number.POSITIVE_INFINITY,o=[];return ce(t,function(t){if(!i||t.inRange(e.x,e.y)){var r=t.getCenterPoint(),s=n(e,r);s<a?(o=[t],a=s):s===a&&o.push(t)}}),o}function pe(t){var e=-1!==t.indexOf("x"),i=-1!==t.indexOf("y");return function(t,n){var a=e?Math.abs(t.x-n.x):0,o=i?Math.abs(t.y-n.y):0;return Math.sqrt(Math.pow(a,2)+Math.pow(o,2))}}function me(t,e,i){var n=he(e,t);i.axis=i.axis||"x";var a=pe(i.axis),o=i.intersect?fe(t,n):ge(t,n,!1,a),r=[];return o.length?(t.data.datasets.forEach(function(e,i){if(t.isDatasetVisible(i)){var n=t.getDatasetMeta(i).data[o[0]._index];n&&!n._view.skip&&r.push(n)}}),r):[]}var ve={modes:{single:function(t,e){var i=he(e,t),n=[];return ce(t,function(t){if(t.inRange(i.x,i.y))return n.push(t),n}),n.slice(0,1)},label:me,index:me,dataset:function(t,e,i){var n=he(e,t);i.axis=i.axis||"xy";var a=pe(i.axis),o=i.intersect?fe(t,n):ge(t,n,!1,a);return o.length>0&&(o=t.getDatasetMeta(o[0]._datasetIndex).data),o},"x-axis":function(t,e){return me(t,e,{intersect:!1})},point:function(t,e){return fe(t,he(e,t))},nearest:function(t,e,i){var n=he(e,t);i.axis=i.axis||"xy";var a=pe(i.axis);return ge(t,n,i.intersect,a)},x:function(t,e,i){var n=he(e,t),a=[],o=!1;return ce(t,function(t){t.inXRange(n.x)&&a.push(t),t.inRange(n.x,n.y)&&(o=!0)}),i.intersect&&!o&&(a=[]),a},y:function(t,e,i){var n=he(e,t),a=[],o=!1;return ce(t,function(t){t.inYRange(n.y)&&a.push(t),t.inRange(n.x,n.y)&&(o=!0)}),i.intersect&&!o&&(a=[]),a}}};function be(t,e){return ut.where(t,function(t){return t.position===e})}function xe(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,i){var n=e?i:t,a=e?t:i;return n.weight===a.weight?n._tmpIndex_-a._tmpIndex_:n.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}function ye(t,e){ut.each(t,function(t){e[t.position]+=t.isHorizontal()?t.height:t.width})}st._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var ke={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure:function(t,e,i){for(var n,a=["fullWidth","position","weight"],o=a.length,r=0;r<o;++r)n=a[r],i.hasOwnProperty(n)&&(e[n]=i[n])},update:function(t,e,i){if(t){var n=t.options.layout||{},a=ut.options.toPadding(n.padding),o=a.left,r=a.right,s=a.top,l=a.bottom,d=be(t.boxes,"left"),u=be(t.boxes,"right"),h=be(t.boxes,"top"),c=be(t.boxes,"bottom"),f=be(t.boxes,"chartArea");xe(d,!0),xe(u,!1),xe(h,!0),xe(c,!1);var g,p=d.concat(u),m=h.concat(c),v=p.concat(m),b=e-o-r,x=i-s-l,y=(e-b/2)/p.length,k=b,w=x,M={top:s,left:o,bottom:l,right:r},_=[];ut.each(v,function(t){var e,i=t.isHorizontal();i?(e=t.update(t.fullWidth?b:k,x/2),w-=e.height):(e=t.update(y,w),k-=e.width),_.push({horizontal:i,width:e.width,box:t})}),g=function(t){var e=0,i=0,n=0,a=0;return ut.each(t,function(t){if(t.getPadding){var o=t.getPadding();e=Math.max(e,o.top),i=Math.max(i,o.left),n=Math.max(n,o.bottom),a=Math.max(a,o.right)}}),{top:e,left:i,bottom:n,right:a}}(v),ut.each(p,T),ye(p,M),ut.each(m,T),ye(m,M),ut.each(p,function(t){var e=ut.findNextWhere(_,function(e){return e.box===t}),i={left:0,right:0,top:M.top,bottom:M.bottom};e&&t.update(e.width,w,i)}),ye(v,M={top:s,left:o,bottom:l,right:r});var C=Math.max(g.left-M.left,0);M.left+=C,M.right+=Math.max(g.right-M.right,0);var S=Math.max(g.top-M.top,0);M.top+=S,M.bottom+=Math.max(g.bottom-M.bottom,0);var P=i-M.top-M.bottom,I=e-M.left-M.right;I===k&&P===w||(ut.each(p,function(t){t.height=P}),ut.each(m,function(t){t.fullWidth||(t.width=I)}),w=P,k=I);var A=o+C,D=s+S;ut.each(d.concat(h),F),A+=k,D+=w,ut.each(u,F),ut.each(c,F),t.chartArea={left:M.left,top:M.top,right:M.left+k,bottom:M.top+w},ut.each(f,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(k,w)})}function T(t){var e=ut.findNextWhere(_,function(e){return e.box===t});if(e)if(e.horizontal){var i={left:Math.max(M.left,g.left),right:Math.max(M.right,g.right),top:0,bottom:0};t.update(t.fullWidth?b:k,x/2,i)}else t.update(e.width,w)}function F(t){t.isHorizontal()?(t.left=t.fullWidth?o:M.left,t.right=t.fullWidth?e-r:M.left+k,t.top=D,t.bottom=D+t.height,D=t.bottom):(t.left=A,t.right=A+t.width,t.top=M.top,t.bottom=M.top+w,A=t.right)}}};var we,Me=(we=Object.freeze({default:"@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&we.default||we,_e="$chartjs",Ce="chartjs-size-monitor",Se="chartjs-render-monitor",Pe="chartjs-render-animation",Ie=["animationstart","webkitAnimationStart"],Ae={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function De(t,e){var i=ut.getStyle(t,e),n=i&&i.match(/^(\d+)(\.\d+)?px$/);return n?Number(n[1]):void 0}var Te=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function Fe(t,e,i){t.addEventListener(e,i,Te)}function Le(t,e,i){t.removeEventListener(e,i,Te)}function Re(t,e,i,n,a){return{type:t,chart:e,native:a||null,x:void 0!==i?i:null,y:void 0!==n?n:null}}function Oe(t){var e=document.createElement("div");return e.className=t||"",e}function ze(t,e,i){var n,a,o,r,s=t[_e]||(t[_e]={}),l=s.resizer=function(t){var e=Oe(Ce),i=Oe(Ce+"-expand"),n=Oe(Ce+"-shrink");i.appendChild(Oe()),n.appendChild(Oe()),e.appendChild(i),e.appendChild(n),e._reset=function(){i.scrollLeft=1e6,i.scrollTop=1e6,n.scrollLeft=1e6,n.scrollTop=1e6};var a=function(){e._reset(),t()};return Fe(i,"scroll",a.bind(i,"expand")),Fe(n,"scroll",a.bind(n,"shrink")),e}((n=function(){if(s.resizer){var n=i.options.maintainAspectRatio&&t.parentNode,a=n?n.clientWidth:0;e(Re("resize",i)),n&&n.clientWidth<a&&i.canvas&&e(Re("resize",i))}},o=!1,r=[],function(){r=Array.prototype.slice.call(arguments),a=a||this,o||(o=!0,ut.requestAnimFrame.call(window,function(){o=!1,n.apply(a,r)}))}));!function(t,e){var i=t[_e]||(t[_e]={}),n=i.renderProxy=function(t){t.animationName===Pe&&e()};ut.each(Ie,function(e){Fe(t,e,n)}),i.reflow=!!t.offsetParent,t.classList.add(Se)}(t,function(){if(s.resizer){var e=t.parentNode;e&&e!==l.parentNode&&e.insertBefore(l,e.firstChild),l._reset()}})}function Be(t){var e=t[_e]||{},i=e.resizer;delete e.resizer,function(t){var e=t[_e]||{},i=e.renderProxy;i&&(ut.each(Ie,function(e){Le(t,e,i)}),delete e.renderProxy),t.classList.remove(Se)}(t),i&&i.parentNode&&i.parentNode.removeChild(i)}var Ne={disableCSSInjection:!1,_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,_ensureLoaded:function(){var t,e,i;this._loaded||(this._loaded=!0,this.disableCSSInjection||(e=Me,i=(t=this)._style||document.createElement("style"),t._style||(t._style=i,e="/* Chart.js */\n"+e,i.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(i)),i.appendChild(document.createTextNode(e))))},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext("2d");return this._ensureLoaded(),i&&i.canvas===t?(function(t,e){var i=t.style,n=t.getAttribute("height"),a=t.getAttribute("width");if(t[_e]={initial:{height:n,width:a,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",null===a||""===a){var o=De(t,"width");void 0!==o&&(t.width=o)}if(null===n||""===n)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var r=De(t,"height");void 0!==o&&(t.height=r)}}(t,e),i):null},releaseContext:function(t){var e=t.canvas;if(e[_e]){var i=e[_e].initial;["height","width"].forEach(function(t){var n=i[t];ut.isNullOrUndef(n)?e.removeAttribute(t):e.setAttribute(t,n)}),ut.each(i.style||{},function(t,i){e.style[i]=t}),e.width=e.width,delete e[_e]}},addEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=i[_e]||(i[_e]={});Fe(n,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){i(function(t,e){var i=Ae[t.type]||t.type,n=ut.getRelativePosition(t,e);return Re(i,e,n.x,n.y,t)}(e,t))})}else ze(n,i,t)},removeEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var a=((i[_e]||{}).proxies||{})[t.id+"_"+e];a&&Le(n,e,a)}else Be(n)}};ut.addEvent=Fe,ut.removeEvent=Le;var We=Ne._enabled?Ne:{acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}},Ve=ut.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},We);st._set("global",{plugins:{}});var Ee={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var i=e.indexOf(t);-1!==i&&e.splice(i,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,i){var n,a,o,r,s,l=this.descriptors(t),d=l.length;for(n=0;n<d;++n)if("function"==typeof(s=(o=(a=l[n]).plugin)[e])&&((r=[t].concat(i||[])).push(a.options),!1===s.apply(o,r)))return!1;return!0},descriptors:function(t){var e=t.$plugins||(t.$plugins={});if(e.id===this._cacheId)return e.descriptors;var i=[],n=[],a=t&&t.config||{},o=a.options&&a.options.plugins||{};return this._plugins.concat(a.plugins||[]).forEach(function(t){if(-1===i.indexOf(t)){var e=t.id,a=o[e];!1!==a&&(!0===a&&(a=ut.clone(st.global.plugins[e])),i.push(t),n.push({plugin:t,options:a||{}}))}}),e.descriptors=n,e.id=this._cacheId,n},_invalidate:function(t){delete t.$plugins}},He={constructors:{},defaults:{},registerScaleType:function(t,e,i){this.constructors[t]=e,this.defaults[t]=ut.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?ut.merge({},[st.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=ut.extend(this.defaults[t],e))},addScalesToLayout:function(t){ut.each(t.scales,function(e){e.fullWidth=e.options.fullWidth,e.position=e.options.position,e.weight=e.options.weight,ke.addBox(t,e)})}},je=ut.valueOrDefault;st._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:ut.noop,title:function(t,e){var i="",n=e.labels,a=n?n.length:0;if(t.length>0){var o=t[0];o.label?i=o.label:o.xLabel?i=o.xLabel:a>0&&o.index<a&&(i=n[o.index])}return i},afterTitle:ut.noop,beforeBody:ut.noop,beforeLabel:ut.noop,label:function(t,e){var i=e.datasets[t.datasetIndex].label||"";return i&&(i+=": "),ut.isNullOrUndef(t.value)?i+=t.yLabel:i+=t.value,i},labelColor:function(t,e){var i=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:i.borderColor,backgroundColor:i.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:ut.noop,afterBody:ut.noop,beforeFooter:ut.noop,footer:ut.noop,afterFooter:ut.noop}}});var qe={average:function(t){if(!t.length)return!1;var e,i,n=0,a=0,o=0;for(e=0,i=t.length;e<i;++e){var r=t[e];if(r&&r.hasValue()){var s=r.tooltipPosition();n+=s.x,a+=s.y,++o}}return{x:n/o,y:a/o}},nearest:function(t,e){var i,n,a,o=e.x,r=e.y,s=Number.POSITIVE_INFINITY;for(i=0,n=t.length;i<n;++i){var l=t[i];if(l&&l.hasValue()){var d=l.getCenterPoint(),u=ut.distanceBetweenPoints(e,d);u<s&&(s=u,a=l)}}if(a){var h=a.tooltipPosition();o=h.x,r=h.y}return{x:o,y:r}}};function Ye(t,e){return e&&(ut.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Ue(t){return("string"==typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function Xe(t){var e=st.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:je(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:je(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:je(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:je(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:je(t.titleFontStyle,e.defaultFontStyle),titleFontSize:je(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:je(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:je(t.footerFontStyle,e.defaultFontStyle),footerFontSize:je(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function Ke(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function Ge(t){return Ye([],Ue(t))}var Ze=pt.extend({initialize:function(){this._model=Xe(this._options),this._lastActive=[]},getTitle:function(){var t=this._options.callbacks,e=t.beforeTitle.apply(this,arguments),i=t.title.apply(this,arguments),n=t.afterTitle.apply(this,arguments),a=[];return a=Ye(a,Ue(e)),a=Ye(a,Ue(i)),a=Ye(a,Ue(n))},getBeforeBody:function(){return Ge(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var i=this,n=i._options.callbacks,a=[];return ut.each(t,function(t){var o={before:[],lines:[],after:[]};Ye(o.before,Ue(n.beforeLabel.call(i,t,e))),Ye(o.lines,n.label.call(i,t,e)),Ye(o.after,Ue(n.afterLabel.call(i,t,e))),a.push(o)}),a},getAfterBody:function(){return Ge(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this._options.callbacks,e=t.beforeFooter.apply(this,arguments),i=t.footer.apply(this,arguments),n=t.afterFooter.apply(this,arguments),a=[];return a=Ye(a,Ue(e)),a=Ye(a,Ue(i)),a=Ye(a,Ue(n))},update:function(t){var e,i,n,a,o,r,s,l,d,u,h=this,c=h._options,f=h._model,g=h._model=Xe(c),p=h._active,m=h._data,v={xAlign:f.xAlign,yAlign:f.yAlign},b={x:f.x,y:f.y},x={width:f.width,height:f.height},y={x:f.caretX,y:f.caretY};if(p.length){g.opacity=1;var k=[],w=[];y=qe[c.position].call(h,p,h._eventPosition);var M=[];for(e=0,i=p.length;e<i;++e)M.push((n=p[e],a=void 0,o=void 0,r=void 0,s=void 0,l=void 0,d=void 0,u=void 0,a=n._xScale,o=n._yScale||n._scale,r=n._index,s=n._datasetIndex,l=n._chart.getDatasetMeta(s).controller,d=l._getIndexScale(),u=l._getValueScale(),{xLabel:a?a.getLabelForIndex(r,s):"",yLabel:o?o.getLabelForIndex(r,s):"",label:d?""+d.getLabelForIndex(r,s):"",value:u?""+u.getLabelForIndex(r,s):"",index:r,datasetIndex:s,x:n._model.x,y:n._model.y}));c.filter&&(M=M.filter(function(t){return c.filter(t,m)})),c.itemSort&&(M=M.sort(function(t,e){return c.itemSort(t,e,m)})),ut.each(M,function(t){k.push(c.callbacks.labelColor.call(h,t,h._chart)),w.push(c.callbacks.labelTextColor.call(h,t,h._chart))}),g.title=h.getTitle(M,m),g.beforeBody=h.getBeforeBody(M,m),g.body=h.getBody(M,m),g.afterBody=h.getAfterBody(M,m),g.footer=h.getFooter(M,m),g.x=y.x,g.y=y.y,g.caretPadding=c.caretPadding,g.labelColors=k,g.labelTextColors=w,g.dataPoints=M,x=function(t,e){var i=t._chart.ctx,n=2*e.yPadding,a=0,o=e.body,r=o.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);r+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,l=e.footer.length,d=e.titleFontSize,u=e.bodyFontSize,h=e.footerFontSize;n+=s*d,n+=s?(s-1)*e.titleSpacing:0,n+=s?e.titleMarginBottom:0,n+=r*u,n+=r?(r-1)*e.bodySpacing:0,n+=l?e.footerMarginTop:0,n+=l*h,n+=l?(l-1)*e.footerSpacing:0;var c=0,f=function(t){a=Math.max(a,i.measureText(t).width+c)};return i.font=ut.fontString(d,e._titleFontStyle,e._titleFontFamily),ut.each(e.title,f),i.font=ut.fontString(u,e._bodyFontStyle,e._bodyFontFamily),ut.each(e.beforeBody.concat(e.afterBody),f),c=e.displayColors?u+2:0,ut.each(o,function(t){ut.each(t.before,f),ut.each(t.lines,f),ut.each(t.after,f)}),c=0,i.font=ut.fontString(h,e._footerFontStyle,e._footerFontFamily),ut.each(e.footer,f),{width:a+=2*e.xPadding,height:n}}(this,g),b=function(t,e,i,n){var a=t.x,o=t.y,r=t.caretSize,s=t.caretPadding,l=t.cornerRadius,d=i.xAlign,u=i.yAlign,h=r+s,c=l+s;return"right"===d?a-=e.width:"center"===d&&((a-=e.width/2)+e.width>n.width&&(a=n.width-e.width),a<0&&(a=0)),"top"===u?o+=h:o-="bottom"===u?e.height+h:e.height/2,"center"===u?"left"===d?a+=h:"right"===d&&(a-=h):"left"===d?a-=c:"right"===d&&(a+=c),{x:a,y:o}}(g,x,v=function(t,e){var i,n,a,o,r,s=t._model,l=t._chart,d=t._chart.chartArea,u="center",h="center";s.y<e.height?h="top":s.y>l.height-e.height&&(h="bottom");var c=(d.left+d.right)/2,f=(d.top+d.bottom)/2;"center"===h?(i=function(t){return t<=c},n=function(t){return t>c}):(i=function(t){return t<=e.width/2},n=function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},o=function(t){return t-e.width-s.caretSize-s.caretPadding<0},r=function(t){return t<=f?"top":"bottom"},i(s.x)?(u="left",a(s.x)&&(u="center",h=r(s.y))):n(s.x)&&(u="right",o(s.x)&&(u="center",h=r(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:u,yAlign:g.yAlign?g.yAlign:h}}(this,x),h._chart)}else g.opacity=0;return g.xAlign=v.xAlign,g.yAlign=v.yAlign,g.x=b.x,g.y=b.y,g.width=x.width,g.height=x.height,g.caretX=y.x,g.caretY=y.y,h._model=g,t&&c.custom&&c.custom.call(h,g),h},drawCaret:function(t,e){var i=this._chart.ctx,n=this._view,a=this.getCaretPosition(t,e,n);i.lineTo(a.x1,a.y1),i.lineTo(a.x2,a.y2),i.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,i){var n,a,o,r,s,l,d=i.caretSize,u=i.cornerRadius,h=i.xAlign,c=i.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if("center"===c)s=g+m/2,"left"===h?(a=(n=f)-d,o=n,r=s+d,l=s-d):(a=(n=f+p)+d,o=n,r=s-d,l=s+d);else if("left"===h?(n=(a=f+u+d)-d,o=a+d):"right"===h?(n=(a=f+p-u-d)-d,o=a+d):(n=(a=i.caretX)-d,o=a+d),"top"===c)s=(r=g)-d,l=r;else{s=(r=g+m)+d,l=r;var v=o;o=n,n=v}return{x1:n,x2:a,x3:o,y1:r,y2:s,y3:l}},drawTitle:function(t,e,i){var n=e.title;if(n.length){t.x=Ke(e,e._titleAlign),i.textAlign=e._titleAlign,i.textBaseline="top";var a,o,r=e.titleFontSize,s=e.titleSpacing;for(i.fillStyle=e.titleFontColor,i.font=ut.fontString(r,e._titleFontStyle,e._titleFontFamily),a=0,o=n.length;a<o;++a)i.fillText(n[a],t.x,t.y),t.y+=r+s,a+1===n.length&&(t.y+=e.titleMarginBottom-s)}},drawBody:function(t,e,i){var n,a=e.bodyFontSize,o=e.bodySpacing,r=e._bodyAlign,s=e.body,l=e.displayColors,d=e.labelColors,u=0,h=l?Ke(e,"left"):0;i.textAlign=r,i.textBaseline="top",i.font=ut.fontString(a,e._bodyFontStyle,e._bodyFontFamily),t.x=Ke(e,r);var c=function(e){i.fillText(e,t.x+u,t.y),t.y+=a+o};i.fillStyle=e.bodyFontColor,ut.each(e.beforeBody,c),u=l&&"right"!==r?"center"===r?a/2+1:a+2:0,ut.each(s,function(o,r){n=e.labelTextColors[r],i.fillStyle=n,ut.each(o.before,c),ut.each(o.lines,function(o){l&&(i.fillStyle=e.legendColorBackground,i.fillRect(h,t.y,a,a),i.lineWidth=1,i.strokeStyle=d[r].borderColor,i.strokeRect(h,t.y,a,a),i.fillStyle=d[r].backgroundColor,i.fillRect(h+1,t.y+1,a-2,a-2),i.fillStyle=n),c(o)}),ut.each(o.after,c)}),u=0,ut.each(e.afterBody,c),t.y-=o},drawFooter:function(t,e,i){var n=e.footer;n.length&&(t.x=Ke(e,e._footerAlign),t.y+=e.footerMarginTop,i.textAlign=e._footerAlign,i.textBaseline="top",i.fillStyle=e.footerFontColor,i.font=ut.fontString(e.footerFontSize,e._footerFontStyle,e._footerFontFamily),ut.each(n,function(n){i.fillText(n,t.x,t.y),t.y+=e.footerFontSize+e.footerSpacing}))},drawBackground:function(t,e,i,n){i.fillStyle=e.backgroundColor,i.strokeStyle=e.borderColor,i.lineWidth=e.borderWidth;var a=e.xAlign,o=e.yAlign,r=t.x,s=t.y,l=n.width,d=n.height,u=e.cornerRadius;i.beginPath(),i.moveTo(r+u,s),"top"===o&&this.drawCaret(t,n),i.lineTo(r+l-u,s),i.quadraticCurveTo(r+l,s,r+l,s+u),"center"===o&&"right"===a&&this.drawCaret(t,n),i.lineTo(r+l,s+d-u),i.quadraticCurveTo(r+l,s+d,r+l-u,s+d),"bottom"===o&&this.drawCaret(t,n),i.lineTo(r+u,s+d),i.quadraticCurveTo(r,s+d,r,s+d-u),"center"===o&&"left"===a&&this.drawCaret(t,n),i.lineTo(r,s+u),i.quadraticCurveTo(r,s,r+u,s),i.closePath(),i.fill(),e.borderWidth>0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var i={width:e.width,height:e.height},n={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(t.save(),t.globalAlpha=a,this.drawBackground(n,e,t,i),n.y+=e.yPadding,this.drawTitle(n,e,t),this.drawBody(n,e,t),this.drawFooter(n,e,t),t.restore())}},handleEvent:function(t){var e,i=this,n=i._options;return i._lastActive=i._lastActive||[],"mouseout"===t.type?i._active=[]:i._active=i._chart.getElementsAtEventForMode(t,n.mode,n),(e=!ut.arrayEquals(i._active,i._lastActive))&&(i._lastActive=i._active,(n.enabled||n.custom)&&(i._eventPosition={x:t.x,y:t.y},i.update(!0),i.pivot())),e}}),$e=qe,Je=Ze;Je.positioners=$e;var Qe=ut.valueOrDefault;function ti(){return ut.merge({},[].slice.call(arguments),{merger:function(t,e,i,n){if("xAxes"===t||"yAxes"===t){var a,o,r,s=i[t].length;for(e[t]||(e[t]=[]),a=0;a<s;++a)r=i[t][a],o=Qe(r.type,"xAxes"===t?"category":"linear"),a>=e[t].length&&e[t].push({}),!e[t][a].type||r.type&&r.type!==e[t][a].type?ut.merge(e[t][a],[He.getScaleDefaults(o),r]):ut.merge(e[t][a],r)}else ut._merger(t,e,i,n)}})}function ei(){return ut.merge({},[].slice.call(arguments),{merger:function(t,e,i,n){var a=e[t]||{},o=i[t];"scales"===t?e[t]=ti(a,o):"scale"===t?e[t]=ut.merge(a,[He.getScaleDefaults(o.type),o]):ut._merger(t,e,i,n)}})}function ii(t){return"top"===t||"bottom"===t}st._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var ni=function(t,e){return this.construct(t,e),this};ut.extend(ni.prototype,{construct:function(t,e){var i=this;e=function(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=ei(st.global,st[t.type],t.options||{}),t}(e);var n=Ve.acquireContext(t,e),a=n&&n.canvas,o=a&&a.height,r=a&&a.width;i.id=ut.uid(),i.ctx=n,i.canvas=a,i.config=e,i.width=r,i.height=o,i.aspectRatio=o?r/o:null,i.options=e.options,i._bufferedRender=!1,i.chart=i,i.controller=i,ni.instances[i.id]=i,Object.defineProperty(i,"data",{get:function(){return i.config.data},set:function(t){i.config.data=t}}),n&&a?(i.initialize(),i.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return Ee.notify(t,"beforeInit"),ut.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),Ee.notify(t,"afterInit"),t},clear:function(){return ut.canvas.clear(this),this},stop:function(){return bt.cancelAnimation(this),this},resize:function(t){var e=this,i=e.options,n=e.canvas,a=i.maintainAspectRatio&&e.aspectRatio||null,o=Math.max(0,Math.floor(ut.getMaximumWidth(n))),r=Math.max(0,Math.floor(a?o/a:ut.getMaximumHeight(n)));if((e.width!==o||e.height!==r)&&(n.width=e.width=o,n.height=e.height=r,n.style.width=o+"px",n.style.height=r+"px",ut.retinaScale(e,i.devicePixelRatio),!t)){var s={width:o,height:r};Ee.notify(e,"resize",[s]),i.onResize&&i.onResize(e,s),e.stop(),e.update({duration:i.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},i=t.scale;ut.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),ut.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,i=t.scales||{},n=[],a=Object.keys(i).reduce(function(t,e){return t[e]=!1,t},{});e.scales&&(n=n.concat((e.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(e.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),e.scale&&n.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),ut.each(n,function(e){var n=e.options,o=n.id,r=Qe(n.type,e.dtype);ii(n.position)!==ii(e.dposition)&&(n.position=e.dposition),a[o]=!0;var s=null;if(o in i&&i[o].type===r)(s=i[o]).options=n,s.ctx=t.ctx,s.chart=t;else{var l=He.getScaleConstructor(r);if(!l)return;s=new l({id:o,type:r,options:n,ctx:t.ctx,chart:t}),i[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)}),ut.each(a,function(t,e){t||delete i[e]}),t.scales=i,He.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t=this,e=[];return ut.each(t.data.datasets,function(i,n){var a=t.getDatasetMeta(n),o=i.type||t.config.type;if(a.type&&a.type!==o&&(t.destroyDatasetMeta(n),a=t.getDatasetMeta(n)),a.type=o,a.controller)a.controller.updateIndex(n),a.controller.linkScales();else{var r=ue[a.type];if(void 0===r)throw new Error('"'+a.type+'" is not a chart type.');a.controller=new r(t,n),e.push(a.controller)}},t),e},resetElements:function(){var t=this;ut.each(t.data.datasets,function(e,i){t.getDatasetMeta(i).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e,i,n=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),i=(e=n).options,ut.each(e.scales,function(t){ke.removeBox(e,t)}),i=ei(st.global,st[e.config.type],i),e.options=e.config.options=i,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=i.tooltips,e.tooltip.initialize(),Ee._invalidate(n),!1!==Ee.notify(n,"beforeUpdate")){n.tooltip._data=n.data;var a=n.buildOrUpdateControllers();ut.each(n.data.datasets,function(t,e){n.getDatasetMeta(e).controller.buildOrUpdateElements()},n),n.updateLayout(),n.options.animation&&n.options.animation.duration&&ut.each(a,function(t){t.reset()}),n.updateDatasets(),n.tooltip.initialize(),n.lastActive=[],Ee.notify(n,"afterUpdate"),n._bufferedRender?n._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:n.render(t)}},updateLayout:function(){!1!==Ee.notify(this,"beforeLayout")&&(ke.update(this,this.width,this.height),Ee.notify(this,"afterScaleUpdate"),Ee.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==Ee.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t<e;++t)this.updateDataset(t);Ee.notify(this,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this.getDatasetMeta(t),i={meta:e,index:t};!1!==Ee.notify(this,"beforeDatasetUpdate",[i])&&(e.controller.update(),Ee.notify(this,"afterDatasetUpdate",[i]))},render:function(t){var e=this;t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]});var i=e.options.animation,n=Qe(t.duration,i&&i.duration),a=t.lazy;if(!1!==Ee.notify(e,"beforeRender")){var o=function(t){Ee.notify(e,"afterRender"),ut.callback(i&&i.onComplete,[t],e)};if(i&&n){var r=new vt({numSteps:n/16.66,easing:t.easing||i.easing,render:function(t,e){var i=ut.easing.effects[e.easing],n=e.currentStep,a=n/e.numSteps;t.draw(i(a),a,n)},onAnimationProgress:i.onProgress,onAnimationComplete:o});bt.addAnimation(e,r,n,a)}else e.draw(),o(new vt({numSteps:0,chart:e}));return e}},draw:function(t){var e=this;e.clear(),ut.isNullOrUndef(t)&&(t=1),e.transition(t),e.width<=0||e.height<=0||!1!==Ee.notify(e,"beforeDraw",[t])&&(ut.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.drawDatasets(t),e._drawTooltip(t),Ee.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=0,i=(this.data.datasets||[]).length;e<i;++e)this.isDatasetVisible(e)&&this.getDatasetMeta(e).controller.transition(t);this.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==Ee.notify(e,"beforeDatasetsDraw",[t])){for(var i=(e.data.datasets||[]).length-1;i>=0;--i)e.isDatasetVisible(i)&&e.drawDataset(i,t);Ee.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var i=this.getDatasetMeta(t),n={meta:i,index:t,easingValue:e};!1!==Ee.notify(this,"beforeDatasetDraw",[n])&&(i.controller.draw(e),Ee.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(t){var e=this.tooltip,i={tooltip:e,easingValue:t};!1!==Ee.notify(this,"beforeTooltipDraw",[i])&&(e.draw(),Ee.notify(this,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return ve.modes.single(this,t)},getElementsAtEvent:function(t){return ve.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return ve.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,i){var n=ve.modes[e];return"function"==typeof n?n(this,t,i):[]},getDatasetAtEvent:function(t){return ve.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var i=e._meta[this.id];return i||(i=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,i=this.data.datasets.length;e<i;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,i=this.data.datasets[t],n=i._meta&&i._meta[e];n&&(n.controller.destroy(),delete i._meta[e])},destroy:function(){var t,e,i=this,n=i.canvas;for(i.stop(),t=0,e=i.data.datasets.length;t<e;++t)i.destroyDatasetMeta(t);n&&(i.unbindEvents(),ut.canvas.clear(i),Ve.releaseContext(i.ctx),i.canvas=null,i.ctx=null),Ee.notify(i,"destroy"),delete ni.instances[i.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var t=this;t.tooltip=new Je({_chart:t,_chartInstance:t,_data:t.data,_options:t.options.tooltips},t)},bindEvents:function(){var t=this,e=t._listeners={},i=function(){t.eventHandler.apply(t,arguments)};ut.each(t.options.events,function(n){Ve.addEventListener(t,n,i),e[n]=i}),t.options.responsive&&(i=function(){t.resize()},Ve.addEventListener(t,"resize",i),e.resize=i)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,ut.each(e,function(e,i){Ve.removeEventListener(t,i,e)}))},updateHoverStyle:function(t,e,i){var n,a,o,r=i?"setHoverStyle":"removeHoverStyle";for(a=0,o=t.length;a<o;++a)(n=t[a])&&this.getDatasetMeta(n._datasetIndex).controller[r](n)},eventHandler:function(t){var e=this,i=e.tooltip;if(!1!==Ee.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var n=e.handleEvent(t);i&&(n=i._start?i.handleEvent(t):n|i.handleEvent(t)),Ee.notify(e,"afterEvent",[t]);var a=e._bufferedRequest;return a?e.render(a):n&&!e.animating&&(e.stop(),e.render({duration:e.options.hover.animationDuration,lazy:!0})),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e,i=this,n=i.options||{},a=n.hover;return i.lastActive=i.lastActive||[],"mouseout"===t.type?i.active=[]:i.active=i.getElementsAtEventForMode(t,a.mode,a),ut.callback(n.onHover||n.hover.onHover,[t.native,i.active],i),"mouseup"!==t.type&&"click"!==t.type||n.onClick&&n.onClick.call(i,t.native,i.active),i.lastActive.length&&i.updateHoverStyle(i.lastActive,a.mode,!1),i.active.length&&a.mode&&i.updateHoverStyle(i.active,a.mode,!0),e=!ut.arrayEquals(i.active,i.lastActive),i.lastActive=i.active,e}}),ni.instances={};var ai=ni;ni.Controller=ni,ni.types={},ut.configMerge=ei,ut.scaleMerge=ti;function oi(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function ri(t){this.options=t||{}}ut.extend(ri.prototype,{formats:oi,parse:oi,format:oi,add:oi,diff:oi,startOf:oi,endOf:oi,_create:function(t){return t}}),ri.override=function(t){ut.extend(ri.prototype,t)};var si={_date:ri},li={formatters:{values:function(t){return ut.isArray(t)?t:""+t},linear:function(t,e,i){var n=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(n)>1&&t!==Math.floor(t)&&(n=t-Math.floor(t));var a=ut.log10(Math.abs(n)),o="";if(0!==t)if(Math.max(Math.abs(i[0]),Math.abs(i[i.length-1]))<1e-4){var r=ut.log10(Math.abs(t));o=t.toExponential(Math.floor(r)-Math.floor(a))}else{var s=-1*Math.floor(a);s=Math.max(Math.min(s,20),0),o=t.toFixed(s)}else o="0";return o},logarithmic:function(t,e,i){var n=t/Math.pow(10,Math.floor(ut.log10(t)));return 0===t?"0":1===n||2===n||5===n||0===e||e===i.length-1?t.toExponential():""}}},di=ut.valueOrDefault,ui=ut.valueAtIndexOrDefault;function hi(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(t[e].label);return n}function ci(t,e,i){return ut.isArray(e)?ut.longestText(t,i,e):t.measureText(e).width}st._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:li.formatters.values,minor:{},major:{}}});var fi=pt.extend({getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;for(var e in!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1}),t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){ut.callback(this.options.beforeUpdate,[this])},update:function(t,e,i){var n,a,o,r,s,l,d=this;for(d.beforeUpdate(),d.maxWidth=t,d.maxHeight=e,d.margins=ut.extend({left:0,right:0,top:0,bottom:0},i),d._maxLabelLines=0,d.longestLabelWidth=0,d.longestTextCache=d.longestTextCache||{},d.beforeSetDimensions(),d.setDimensions(),d.afterSetDimensions(),d.beforeDataLimits(),d.determineDataLimits(),d.afterDataLimits(),d.beforeBuildTicks(),s=d.buildTicks()||[],s=d.afterBuildTicks(s)||s,d.beforeTickToLabelConversion(),o=d.convertTicksToLabels(s)||d.ticks,d.afterTickToLabelConversion(),d.ticks=o,n=0,a=o.length;n<a;++n)r=o[n],(l=s[n])?l.label=r:s.push(l={label:r,major:!1});return d._ticks=s,d.beforeCalculateTickRotation(),d.calculateTickRotation(),d.afterCalculateTickRotation(),d.beforeFit(),d.fit(),d.afterFit(),d.afterUpdate(),d.minSize},afterUpdate:function(){ut.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){ut.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){ut.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){ut.callback(this.options.beforeDataLimits,[this])},determineDataLimits:ut.noop,afterDataLimits:function(){ut.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){ut.callback(this.options.beforeBuildTicks,[this])},buildTicks:ut.noop,afterBuildTicks:function(t){var e=this;return ut.isArray(t)&&t.length?ut.callback(e.options.afterBuildTicks,[e,t]):(e.ticks=ut.callback(e.options.afterBuildTicks,[e,e.ticks])||e.ticks,t)},beforeTickToLabelConversion:function(){ut.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this.options.ticks;this.ticks=this.ticks.map(t.userCallback||t.callback,this)},afterTickToLabelConversion:function(){ut.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){ut.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,i=t.options.ticks,n=hi(t._ticks),a=ut.options._parseFont(i);e.font=a.string;var o=i.minRotation||0;if(n.length&&t.options.display&&t.isHorizontal())for(var r,s=ut.longestText(e,a.string,n,t.longestTextCache),l=s,d=t.getPixelForTick(1)-t.getPixelForTick(0)-6;l>d&&o<i.maxRotation;){var u=ut.toRadians(o);if(r=Math.cos(u),Math.sin(u)*s>t.maxHeight){o--;break}o++,l=r*s}t.labelRotation=o},afterCalculateTickRotation:function(){ut.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){ut.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},i=hi(t._ticks),n=t.options,a=n.ticks,o=n.scaleLabel,r=n.gridLines,s=t._isVisible(),l=n.position,d=t.isHorizontal(),u=ut.options._parseFont,h=u(a),c=n.gridLines.tickMarkLength;if(e.width=d?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:s&&r.drawTicks?c:0,e.height=d?s&&r.drawTicks?c:0:t.maxHeight,o.display&&s){var f=u(o),g=ut.options.toPadding(o.padding),p=f.lineHeight+g.height;d?e.height+=p:e.width+=p}if(a.display&&s){var m=ut.longestText(t.ctx,h.string,i,t.longestTextCache),v=ut.numberOfLabelLines(i),b=.5*h.size,x=t.options.ticks.padding;if(t._maxLabelLines=v,t.longestLabelWidth=m,d){var y=ut.toRadians(t.labelRotation),k=Math.cos(y),w=Math.sin(y)*m+h.lineHeight*v+b;e.height=Math.min(t.maxHeight,e.height+w+x),t.ctx.font=h.string;var M,_,C=ci(t.ctx,i[0],h.string),S=ci(t.ctx,i[i.length-1],h.string),P=t.getPixelForTick(0)-t.left,I=t.right-t.getPixelForTick(i.length-1);0!==t.labelRotation?(M="bottom"===l?k*C:k*b,_="bottom"===l?k*b:k*S):(M=C/2,_=S/2),t.paddingLeft=Math.max(M-P,0)+3,t.paddingRight=Math.max(_-I,0)+3}else a.mirror?m=0:m+=x+b,e.width=Math.min(t.maxWidth,e.width+m),t.paddingTop=h.size/2,t.paddingBottom=h.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){ut.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(ut.isNullOrUndef(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:ut.noop,getPixelForValue:ut.noop,getValueForPixel:ut.noop,getPixelForTick:function(t){var e=this,i=e.options.offset;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(i?0:1),1),a=n*t+e.paddingLeft;i&&(a+=n/2);var o=e.left+a;return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,n=e.left+i;return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,i,n=this,a=n.isHorizontal(),o=n.options.ticks.minor,r=t.length,s=!1,l=o.maxTicksLimit,d=n._tickSize()*(r-1),u=a?n.width-(n.paddingLeft+n.paddingRight):n.height-(n.paddingTop+n.PaddingBottom),h=[];for(d>u&&(s=1+Math.floor(d/u)),r>l&&(s=Math.max(s,1+Math.floor(r/l))),e=0;e<r;e++)i=t[e],s>1&&e%s>0&&delete i.label,h.push(i);return h},_tickSize:function(){var t=this,e=t.isHorizontal(),i=t.options.ticks.minor,n=ut.toRadians(t.labelRotation),a=Math.abs(Math.cos(n)),o=Math.abs(Math.sin(n)),r=i.autoSkipPadding||0,s=t.longestLabelWidth+r||0,l=ut.options._parseFont(i),d=t._maxLabelLines*l.lineHeight+r||0;return e?d*a>s*o?s/a:d/o:d*o<s*a?d/a:s/o},_isVisible:function(){var t,e,i,n=this.chart,a=this.options.display;if("auto"!==a)return!!a;for(t=0,e=n.data.datasets.length;t<e;++t)if(n.isDatasetVisible(t)&&((i=n.getDatasetMeta(t)).xAxisID===this.id||i.yAxisID===this.id))return!0;return!1},draw:function(t){var e=this,i=e.options;if(e._isVisible()){var n,a,o,r=e.chart,s=e.ctx,l=st.global.defaultFontColor,d=i.ticks.minor,u=i.ticks.major||d,h=i.gridLines,c=i.scaleLabel,f=i.position,g=0!==e.labelRotation,p=d.mirror,m=e.isHorizontal(),v=ut.options._parseFont,b=d.display&&d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),x=di(d.fontColor,l),y=v(d),k=y.lineHeight,w=di(u.fontColor,l),M=v(u),_=d.padding,C=d.labelOffset,S=h.drawTicks?h.tickMarkLength:0,P=di(c.fontColor,l),I=v(c),A=ut.options.toPadding(c.padding),D=ut.toRadians(e.labelRotation),T=[],F=h.drawBorder?ui(h.lineWidth,0,0):0,L=ut._alignPixel;"top"===f?(n=L(r,e.bottom,F),a=e.bottom-S,o=n-F/2):"bottom"===f?(n=L(r,e.top,F),a=n+F/2,o=e.top+S):"left"===f?(n=L(r,e.right,F),a=e.right-S,o=n-F/2):(n=L(r,e.left,F),a=n+F/2,o=e.left+S);if(ut.each(b,function(n,s){if(!ut.isNullOrUndef(n.label)){var l,d,u,c,v,b,x,y,w,M,P,I,A,R,O,z,B=n.label;s===e.zeroLineIndex&&i.offset===h.offsetGridLines?(l=h.zeroLineWidth,d=h.zeroLineColor,u=h.zeroLineBorderDash||[],c=h.zeroLineBorderDashOffset||0):(l=ui(h.lineWidth,s),d=ui(h.color,s),u=h.borderDash||[],c=h.borderDashOffset||0);var N=ut.isArray(B)?B.length:1,W=function(t,e,i){var n=t.getPixelForTick(e);return i&&(1===t.getTicks().length?n-=t.isHorizontal()?Math.max(n-t.left,t.right-n):Math.max(n-t.top,t.bottom-n):n-=0===e?(t.getPixelForTick(1)-n)/2:(n-t.getPixelForTick(e-1))/2),n}(e,s,h.offsetGridLines);if(m){var V=S+_;W<e.left-1e-7&&(d="rgba(0,0,0,0)"),v=x=w=P=L(r,W,l),b=a,y=o,A=e.getPixelForTick(s)+C,"top"===f?(M=L(r,t.top,F)+F/2,I=t.bottom,O=((g?1:.5)-N)*k,z=g?"left":"center",R=e.bottom-V):(M=t.top,I=L(r,t.bottom,F)-F/2,O=(g?0:.5)*k,z=g?"right":"center",R=e.top+V)}else{var E=(p?0:S)+_;W<e.top-1e-7&&(d="rgba(0,0,0,0)"),v=a,x=o,b=y=M=I=L(r,W,l),R=e.getPixelForTick(s)+C,O=(1-N)*k/2,"left"===f?(w=L(r,t.left,F)+F/2,P=t.right,z=p?"left":"right",A=e.right-E):(w=t.left,P=L(r,t.right,F)-F/2,z=p?"right":"left",A=e.left+E)}T.push({tx1:v,ty1:b,tx2:x,ty2:y,x1:w,y1:M,x2:P,y2:I,labelX:A,labelY:R,glWidth:l,glColor:d,glBorderDash:u,glBorderDashOffset:c,rotation:-1*D,label:B,major:n.major,textOffset:O,textAlign:z})}}),ut.each(T,function(t){var e=t.glWidth,i=t.glColor;if(h.display&&e&&i&&(s.save(),s.lineWidth=e,s.strokeStyle=i,s.setLineDash&&(s.setLineDash(t.glBorderDash),s.lineDashOffset=t.glBorderDashOffset),s.beginPath(),h.drawTicks&&(s.moveTo(t.tx1,t.ty1),s.lineTo(t.tx2,t.ty2)),h.drawOnChartArea&&(s.moveTo(t.x1,t.y1),s.lineTo(t.x2,t.y2)),s.stroke(),s.restore()),d.display){s.save(),s.translate(t.labelX,t.labelY),s.rotate(t.rotation),s.font=t.major?M.string:y.string,s.fillStyle=t.major?w:x,s.textBaseline="middle",s.textAlign=t.textAlign;var n=t.label,a=t.textOffset;if(ut.isArray(n))for(var o=0;o<n.length;++o)s.fillText(""+n[o],0,a),a+=k;else s.fillText(n,0,a);s.restore()}}),c.display){var R,O,z=0,B=I.lineHeight/2;if(m)R=e.left+(e.right-e.left)/2,O="bottom"===f?e.bottom-B-A.bottom:e.top+B+A.top;else{var N="left"===f;R=N?e.left+B+A.top:e.right-B-A.top,O=e.top+(e.bottom-e.top)/2,z=N?-.5*Math.PI:.5*Math.PI}s.save(),s.translate(R,O),s.rotate(z),s.textAlign="center",s.textBaseline="middle",s.fillStyle=P,s.font=I.string,s.fillText(c.labelString,0,0),s.restore()}if(F){var W,V,E,H,j=F,q=ui(h.lineWidth,b.length-1,0);m?(W=L(r,e.left,j)-j/2,V=L(r,e.right,q)+q/2,E=H=n):(E=L(r,e.top,j)-j/2,H=L(r,e.bottom,q)+q/2,W=V=n),s.lineWidth=F,s.strokeStyle=ui(h.color,0),s.beginPath(),s.moveTo(W,E),s.lineTo(V,H),s.stroke()}}}}),gi=fi.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,i=e.getLabels();e.minIndex=0,e.maxIndex=i.length-1,void 0!==e.options.ticks.min&&(t=i.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=i.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=i[e.minIndex],e.max=i[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var i=this,n=i.chart;return n.getDatasetMeta(e).controller._getValueScaleId()===i.id?i.getRightValue(n.data.datasets[e].data[t]):i.ticks[t-i.minIndex]},getPixelForValue:function(t,e){var i,n=this,a=n.options.offset,o=Math.max(n.maxIndex+1-n.minIndex-(a?0:1),1);if(null!=t&&(i=n.isHorizontal()?t.x:t.y),void 0!==i||void 0!==t&&isNaN(e)){t=i||t;var r=n.getLabels().indexOf(t);e=-1!==r?r:e}if(n.isHorizontal()){var s=n.width/o,l=s*(e-n.minIndex);return a&&(l+=s/2),n.left+l}var d=n.height/o,u=d*(e-n.minIndex);return a&&(u+=d/2),n.top+u},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,i=e.options.offset,n=Math.max(e._ticks.length-(i?0:1),1),a=e.isHorizontal(),o=(a?e.width:e.height)/n;return t-=a?e.left:e.top,i&&(t-=o/2),(t<=0?0:Math.round(t/o))+e.minIndex},getBasePixel:function(){return this.bottom}}),pi={position:"bottom"};gi._defaults=pi;var mi=ut.noop,vi=ut.isNullOrUndef;var bi=fi.extend({getRightValue:function(t){return"string"==typeof t?+t:fi.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var i=ut.sign(t.min),n=ut.sign(t.max);i<0&&n<0?t.max=0:i>0&&n>0&&(t.min=0)}var a=void 0!==e.min||void 0!==e.suggestedMin,o=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),a!==o&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this.options.ticks,i=e.stepSize,n=e.maxTicksLimit;return i?t=Math.ceil(this.max/i)-Math.floor(this.min/i)+1:(t=this._computeTickLimit(),n=n||11),n&&(t=Math.min(n,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:mi,buildTicks:function(){var t=this,e=t.options.ticks,i=t.getTickLimit(),n={maxTicks:i=Math.max(2,i),min:e.min,max:e.max,precision:e.precision,stepSize:ut.valueOrDefault(e.fixedStepSize,e.stepSize)},a=t.ticks=function(t,e){var i,n,a,o,r=[],s=t.stepSize,l=s||1,d=t.maxTicks-1,u=t.min,h=t.max,c=t.precision,f=e.min,g=e.max,p=ut.niceNum((g-f)/d/l)*l;if(p<1e-14&&vi(u)&&vi(h))return[f,g];(o=Math.ceil(g/p)-Math.floor(f/p))>d&&(p=ut.niceNum(o*p/d/l)*l),s||vi(c)?i=Math.pow(10,ut._decimalPlaces(p)):(i=Math.pow(10,c),p=Math.ceil(p*i)/i),n=Math.floor(f/p)*p,a=Math.ceil(g/p)*p,s&&(!vi(u)&&ut.almostWhole(u/p,p/1e3)&&(n=u),!vi(h)&&ut.almostWhole(h/p,p/1e3)&&(a=h)),o=(a-n)/p,o=ut.almostEquals(o,Math.round(o),p/1e3)?Math.round(o):Math.ceil(o),n=Math.round(n*i)/i,a=Math.round(a*i)/i,r.push(vi(u)?n:u);for(var m=1;m<o;++m)r.push(Math.round((n+m*p)*i)/i);return r.push(vi(h)?a:h),r}(n,t);t.handleDirectionalChanges(),t.max=ut.max(a),t.min=ut.min(a),e.reverse?(a.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var t=this;t.ticksAsNumbers=t.ticks.slice(),t.zeroLineIndex=t.ticks.indexOf(0),fi.prototype.convertTicksToLabels.call(t)}}),xi={position:"left",ticks:{callback:li.formatters.linear}},yi=bi.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,a=t.isHorizontal();function o(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null;var r=e.stacked;if(void 0===r&&ut.each(n,function(t,e){if(!r){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&o(n)&&void 0!==n.stack&&(r=!0)}}),e.stacked||r){var s={};ut.each(n,function(n,a){var r=i.getDatasetMeta(a),l=[r.type,void 0===e.stacked&&void 0===r.stack?a:"",r.stack].join(".");void 0===s[l]&&(s[l]={positiveValues:[],negativeValues:[]});var d=s[l].positiveValues,u=s[l].negativeValues;i.isDatasetVisible(a)&&o(r)&&ut.each(n.data,function(i,n){var a=+t.getRightValue(i);isNaN(a)||r.data[n].hidden||(d[n]=d[n]||0,u[n]=u[n]||0,e.relativePoints?d[n]=100:a<0?u[n]+=a:d[n]+=a)})}),ut.each(s,function(e){var i=e.positiveValues.concat(e.negativeValues),n=ut.min(i),a=ut.max(i);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?a:Math.max(t.max,a)})}else ut.each(n,function(e,n){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&o(a)&&ut.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||a.data[i].hidden||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},_computeTickLimit:function(){var t;return this.isHorizontal()?Math.ceil(this.width/40):(t=ut.options._parseFont(this.options.ticks),Math.ceil(this.height/t.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,i=e.start,n=+e.getRightValue(t),a=e.end-i;return e.isHorizontal()?e.left+e.width/a*(n-i):e.bottom-e.height/a*(n-i)},getValueForPixel:function(t){var e=this,i=e.isHorizontal(),n=i?e.width:e.height,a=(i?t-e.left:e.bottom-t)/n;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}}),ki=xi;yi._defaults=ki;var wi=ut.valueOrDefault;var Mi={position:"left",ticks:{callback:li.formatters.logarithmic}};function _i(t,e){return ut.isFinite(t)&&t>=0?t:e}var Ci=fi.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,a=t.isHorizontal();function o(e){return a?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var r=e.stacked;if(void 0===r&&ut.each(n,function(t,e){if(!r){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&o(n)&&void 0!==n.stack&&(r=!0)}}),e.stacked||r){var s={};ut.each(n,function(n,a){var r=i.getDatasetMeta(a),l=[r.type,void 0===e.stacked&&void 0===r.stack?a:"",r.stack].join(".");i.isDatasetVisible(a)&&o(r)&&(void 0===s[l]&&(s[l]=[]),ut.each(n.data,function(e,i){var n=s[l],a=+t.getRightValue(e);isNaN(a)||r.data[i].hidden||a<0||(n[i]=n[i]||0,n[i]+=a)}))}),ut.each(s,function(e){if(e.length>0){var i=ut.min(e),n=ut.max(e);t.min=null===t.min?i:Math.min(t.min,i),t.max=null===t.max?n:Math.max(t.max,n)}})}else ut.each(n,function(e,n){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&o(a)&&ut.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||a.data[i].hidden||n<0||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n),0!==n&&(null===t.minNotZero||n<t.minNotZero)&&(t.minNotZero=n))})});this.handleTickRangeOptions()},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;t.min=_i(e.min,t.min),t.max=_i(e.max,t.max),t.min===t.max&&(0!==t.min&&null!==t.min?(t.min=Math.pow(10,Math.floor(ut.log10(t.min))-1),t.max=Math.pow(10,Math.floor(ut.log10(t.max))+1)):(t.min=1,t.max=10)),null===t.min&&(t.min=Math.pow(10,Math.floor(ut.log10(t.max))-1)),null===t.max&&(t.max=0!==t.min?Math.pow(10,Math.floor(ut.log10(t.min))+1):10),null===t.minNotZero&&(t.min>0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(ut.log10(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,i=!t.isHorizontal(),n={min:_i(e.min),max:_i(e.max)},a=t.ticks=function(t,e){var i,n,a=[],o=wi(t.min,Math.pow(10,Math.floor(ut.log10(e.min)))),r=Math.floor(ut.log10(e.max)),s=Math.ceil(e.max/Math.pow(10,r));0===o?(i=Math.floor(ut.log10(e.minNotZero)),n=Math.floor(e.minNotZero/Math.pow(10,i)),a.push(o),o=n*Math.pow(10,i)):(i=Math.floor(ut.log10(o)),n=Math.floor(o/Math.pow(10,i)));var l=i<0?Math.pow(10,Math.abs(i)):1;do{a.push(o),10==++n&&(n=1,l=++i>=0?1:l),o=Math.round(n*Math.pow(10,i)*l)/l}while(i<r||i===r&&n<s);var d=wi(t.max,o);return a.push(d),a}(n,t);t.max=ut.max(a),t.min=ut.min(a),e.reverse?(i=!i,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),i&&a.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),fi.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},_getFirstTickValue:function(t){var e=Math.floor(ut.log10(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},getPixelForValue:function(t){var e,i,n,a,o,r=this,s=r.options.ticks,l=s.reverse,d=ut.log10,u=r._getFirstTickValue(r.minNotZero),h=0;return t=+r.getRightValue(t),l?(n=r.end,a=r.start,o=-1):(n=r.start,a=r.end,o=1),r.isHorizontal()?(e=r.width,i=l?r.right:r.left):(e=r.height,o*=-1,i=l?r.top:r.bottom),t!==n&&(0===n&&(e-=h=wi(s.fontSize,st.global.defaultFontSize),n=u),0!==t&&(h+=e/(d(a)-d(n))*(d(t)-d(n))),i+=o*h),i},getValueForPixel:function(t){var e,i,n,a,o=this,r=o.options.ticks,s=r.reverse,l=ut.log10,d=o._getFirstTickValue(o.minNotZero);if(s?(i=o.end,n=o.start):(i=o.start,n=o.end),o.isHorizontal()?(e=o.width,a=s?o.right-t:t-o.left):(e=o.height,a=s?t-o.top:o.bottom-t),a!==i){if(0===i){var u=wi(r.fontSize,st.global.defaultFontSize);a-=u,e-=u,i=d}a*=l(n)-l(i),a/=e,a=Math.pow(10,l(i)+a)}return a}}),Si=Mi;Ci._defaults=Si;var Pi=ut.valueOrDefault,Ii=ut.valueAtIndexOrDefault,Ai=ut.options.resolve,Di={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:li.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function Ti(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function Fi(t){var e=t.ticks;return e.display&&t.display?Pi(e.fontSize,st.global.defaultFontSize)+2*e.backdropPaddingY:0}function Li(t,e,i,n,a){return t===n||t===a?{start:e-i/2,end:e+i/2}:t<n||t>a?{start:e-i,end:e}:{start:e,end:e+i}}function Ri(t){return 0===t||180===t?"center":t<180?"left":"right"}function Oi(t,e,i,n){var a,o,r=i.y+n/2;if(ut.isArray(e))for(a=0,o=e.length;a<o;++a)t.fillText(e[a],i.x,r),r+=n;else t.fillText(e,i.x,r)}function zi(t,e,i){90===t||270===t?i.y-=e.h/2:(t>270||t<90)&&(i.y-=e.h)}function Bi(t){return ut.isNumber(t)?t:0}var Ni=bi.extend({setDimensions:function(){var t=this;t.width=t.maxWidth,t.height=t.maxHeight,t.paddingTop=Fi(t.options)/2,t.xCenter=Math.floor(t.width/2),t.yCenter=Math.floor((t.height-t.paddingTop)/2),t.drawingArea=Math.min(t.height-t.paddingTop,t.width)/2},determineDataLimits:function(){var t=this,e=t.chart,i=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY;ut.each(e.data.datasets,function(a,o){if(e.isDatasetVisible(o)){var r=e.getDatasetMeta(o);ut.each(a.data,function(e,a){var o=+t.getRightValue(e);isNaN(o)||r.data[a].hidden||(i=Math.min(o,i),n=Math.max(o,n))})}}),t.min=i===Number.POSITIVE_INFINITY?0:i,t.max=n===Number.NEGATIVE_INFINITY?0:n,t.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/Fi(this.options))},convertTicksToLabels:function(){var t=this;bi.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map(t.options.pointLabels.callback,t)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t=this.options;t.display&&t.pointLabels.display?function(t){var e,i,n,a=ut.options._parseFont(t.options.pointLabels),o={l:0,r:t.width,t:0,b:t.height-t.paddingTop},r={};t.ctx.font=a.string,t._pointLabelSizes=[];var s,l,d,u=Ti(t);for(e=0;e<u;e++){n=t.getPointPosition(e,t.drawingArea+5),s=t.ctx,l=a.lineHeight,d=t.pointLabels[e]||"",i=ut.isArray(d)?{w:ut.longestText(s,s.font,d),h:d.length*l}:{w:s.measureText(d).width,h:l},t._pointLabelSizes[e]=i;var h=t.getIndexAngle(e),c=ut.toDegrees(h)%360,f=Li(c,n.x,i.w,0,180),g=Li(c,n.y,i.h,90,270);f.start<o.l&&(o.l=f.start,r.l=h),f.end>o.r&&(o.r=f.end,r.r=h),g.start<o.t&&(o.t=g.start,r.t=h),g.end>o.b&&(o.b=g.end,r.b=h)}t.setReductions(t.drawingArea,o,r)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(t,e,i){var n=this,a=e.l/Math.sin(i.l),o=Math.max(e.r-n.width,0)/Math.sin(i.r),r=-e.t/Math.cos(i.t),s=-Math.max(e.b-(n.height-n.paddingTop),0)/Math.cos(i.b);a=Bi(a),o=Bi(o),r=Bi(r),s=Bi(s),n.drawingArea=Math.min(Math.floor(t-(a+o)/2),Math.floor(t-(r+s)/2)),n.setCenterPoint(a,o,r,s)},setCenterPoint:function(t,e,i,n){var a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,s=i+a.drawingArea,l=a.height-a.paddingTop-n-a.drawingArea;a.xCenter=Math.floor((r+o)/2+a.left),a.yCenter=Math.floor((s+l)/2+a.top+a.paddingTop)},getIndexAngle:function(t){return t*(2*Math.PI/Ti(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var i=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*i:(t-e.min)*i},getPointPosition:function(t,e){var i=this.getIndexAngle(t)-Math.PI/2;return{x:Math.cos(i)*e+this.xCenter,y:Math.sin(i)*e+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,e=t.options,i=e.gridLines,n=e.ticks;if(e.display){var a=t.ctx,o=this.getIndexAngle(0),r=ut.options._parseFont(n);(e.angleLines.display||e.pointLabels.display)&&function(t){var e=t.ctx,i=t.options,n=i.angleLines,a=i.gridLines,o=i.pointLabels,r=Pi(n.lineWidth,a.lineWidth),s=Pi(n.color,a.color),l=Fi(i);e.save(),e.lineWidth=r,e.strokeStyle=s,e.setLineDash&&(e.setLineDash(Ai([n.borderDash,a.borderDash,[]])),e.lineDashOffset=Ai([n.borderDashOffset,a.borderDashOffset,0]));var d=t.getDistanceFromCenterForValue(i.ticks.reverse?t.min:t.max),u=ut.options._parseFont(o);e.font=u.string,e.textBaseline="middle";for(var h=Ti(t)-1;h>=0;h--){if(n.display&&r&&s){var c=t.getPointPosition(h,d);e.beginPath(),e.moveTo(t.xCenter,t.yCenter),e.lineTo(c.x,c.y),e.stroke()}if(o.display){var f=0===h?l/2:0,g=t.getPointPosition(h,d+f+5),p=Ii(o.fontColor,h,st.global.defaultFontColor);e.fillStyle=p;var m=t.getIndexAngle(h),v=ut.toDegrees(m);e.textAlign=Ri(v),zi(v,t._pointLabelSizes[h],g),Oi(e,t.pointLabels[h]||"",g,u.lineHeight)}}e.restore()}(t),ut.each(t.ticks,function(e,s){if(s>0||n.reverse){var l=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(i.display&&0!==s&&function(t,e,i,n){var a,o=t.ctx,r=e.circular,s=Ti(t),l=Ii(e.color,n-1),d=Ii(e.lineWidth,n-1);if((r||s)&&l&&d){if(o.save(),o.strokeStyle=l,o.lineWidth=d,o.setLineDash&&(o.setLineDash(e.borderDash||[]),o.lineDashOffset=e.borderDashOffset||0),o.beginPath(),r)o.arc(t.xCenter,t.yCenter,i,0,2*Math.PI);else{a=t.getPointPosition(0,i),o.moveTo(a.x,a.y);for(var u=1;u<s;u++)a=t.getPointPosition(u,i),o.lineTo(a.x,a.y)}o.closePath(),o.stroke(),o.restore()}}(t,i,l,s),n.display){var d=Pi(n.fontColor,st.global.defaultFontColor);if(a.font=r.string,a.save(),a.translate(t.xCenter,t.yCenter),a.rotate(o),n.showLabelBackdrop){var u=a.measureText(e).width;a.fillStyle=n.backdropColor,a.fillRect(-u/2-n.backdropPaddingX,-l-r.size/2-n.backdropPaddingY,u+2*n.backdropPaddingX,r.size+2*n.backdropPaddingY)}a.textAlign="center",a.textBaseline="middle",a.fillStyle=d,a.fillText(e,0,-l),a.restore()}}})}}}),Wi=Di;Ni._defaults=Wi;var Vi=ut.valueOrDefault,Ei=Number.MIN_SAFE_INTEGER||-9007199254740991,Hi=Number.MAX_SAFE_INTEGER||9007199254740991,ji={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},qi=Object.keys(ji);function Yi(t,e){return t-e}function Ui(t){var e,i,n,a={},o=[];for(e=0,i=t.length;e<i;++e)a[n=t[e]]||(a[n]=!0,o.push(n));return o}function Xi(t,e,i,n){var a=function(t,e,i){for(var n,a,o,r=0,s=t.length-1;r>=0&&r<=s;){if(a=t[(n=r+s>>1)-1]||null,o=t[n],!a)return{lo:null,hi:o};if(o[e]<i)r=n+1;else{if(!(a[e]>i))return{lo:a,hi:o};s=n-1}}return{lo:o,hi:null}}(t,e,i),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],r=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=r[e]-o[e],l=s?(i-o[e])/s:0,d=(r[n]-o[n])*l;return o[n]+d}function Ki(t,e){var i=t._adapter,n=t.options.time,a=n.parser,o=a||n.format,r=e;return"function"==typeof a&&(r=a(r)),ut.isFinite(r)||(r="string"==typeof o?i.parse(r,o):i.parse(r)),null!==r?+r:(a||"function"!=typeof o||(r=o(e),ut.isFinite(r)||(r=i.parse(r))),r)}function Gi(t,e){if(ut.isNullOrUndef(e))return null;var i=t.options.time,n=Ki(t,t.getRightValue(e));return null===n?n:(i.round&&(n=+t._adapter.startOf(n,i.round)),n)}function Zi(t){for(var e=qi.indexOf(t)+1,i=qi.length;e<i;++e)if(ji[qi[e]].common)return qi[e]}function $i(t,e,i,n){var a,o=t._adapter,r=t.options,s=r.time,l=s.unit||function(t,e,i,n){var a,o,r,s=qi.length;for(a=qi.indexOf(t);a<s-1;++a)if(r=(o=ji[qi[a]]).steps?o.steps[o.steps.length-1]:Hi,o.common&&Math.ceil((i-e)/(r*o.size))<=n)return qi[a];return qi[s-1]}(s.minUnit,e,i,n),d=Zi(l),u=Vi(s.stepSize,s.unitStepSize),h="week"===l&&s.isoWeekday,c=r.ticks.major.enabled,f=ji[l],g=e,p=i,m=[];for(u||(u=function(t,e,i,n){var a,o,r,s=e-t,l=ji[i],d=l.size,u=l.steps;if(!u)return Math.ceil(s/(n*d));for(a=0,o=u.length;a<o&&(r=u[a],!(Math.ceil(s/(d*r))<=n));++a);return r}(e,i,l,n)),h&&(g=+o.startOf(g,"isoWeek",h),p=+o.startOf(p,"isoWeek",h)),g=+o.startOf(g,h?"day":l),(p=+o.startOf(p,h?"day":l))<i&&(p=+o.add(p,1,l)),a=g,c&&d&&!h&&!s.round&&(a=+o.startOf(a,d),a=+o.add(a,~~((g-a)/(f.size*u))*u,l));a<p;a=+o.add(a,u,l))m.push(+a);return m.push(+a),m}var Ji=fi.extend({initialize:function(){this.mergeTicksOptions(),fi.prototype.initialize.call(this)},update:function(){var t=this.options,e=t.time||(t.time={}),i=this._adapter=new si._date(t.adapters.date);return e.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),ut.mergeIf(e.displayFormats,i.formats()),fi.prototype.update.apply(this,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),fi.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,i,n,a,o,r=this,s=r.chart,l=r._adapter,d=r.options.time,u=d.unit||"day",h=Hi,c=Ei,f=[],g=[],p=[],m=s.data.labels||[];for(t=0,i=m.length;t<i;++t)p.push(Gi(r,m[t]));for(t=0,i=(s.data.datasets||[]).length;t<i;++t)if(s.isDatasetVisible(t))if(a=s.data.datasets[t].data,ut.isObject(a[0]))for(g[t]=[],e=0,n=a.length;e<n;++e)o=Gi(r,a[e]),f.push(o),g[t][e]=o;else{for(e=0,n=p.length;e<n;++e)f.push(p[e]);g[t]=p.slice(0)}else g[t]=[];p.length&&(p=Ui(p).sort(Yi),h=Math.min(h,p[0]),c=Math.max(c,p[p.length-1])),f.length&&(f=Ui(f).sort(Yi),h=Math.min(h,f[0]),c=Math.max(c,f[f.length-1])),h=Gi(r,d.min)||h,c=Gi(r,d.max)||c,h=h===Hi?+l.startOf(Date.now(),u):h,c=c===Ei?+l.endOf(Date.now(),u)+1:c,r.min=Math.min(h,c),r.max=Math.max(h+1,c),r._horizontal=r.isHorizontal(),r._table=[],r._timestamps={data:f,datasets:g,labels:p}},buildTicks:function(){var t,e,i,n=this,a=n.min,o=n.max,r=n.options,s=r.time,l=[],d=[];switch(r.ticks.source){case"data":l=n._timestamps.data;break;case"labels":l=n._timestamps.labels;break;case"auto":default:l=$i(n,a,o,n.getLabelCapacity(a))}for("ticks"===r.bounds&&l.length&&(a=l[0],o=l[l.length-1]),a=Gi(n,s.min)||a,o=Gi(n,s.max)||o,t=0,e=l.length;t<e;++t)(i=l[t])>=a&&i<=o&&d.push(i);return n.min=a,n.max=o,n._unit=s.unit||function(t,e,i,n,a){var o,r;for(o=qi.length-1;o>=qi.indexOf(i);o--)if(r=qi[o],ji[r].common&&t._adapter.diff(a,n,r)>=e.length)return r;return qi[i?qi.indexOf(i):0]}(n,d,s.minUnit,n.min,n.max),n._majorUnit=Zi(n._unit),n._table=function(t,e,i,n){if("linear"===n||!t.length)return[{time:e,pos:0},{time:i,pos:1}];var a,o,r,s,l,d=[],u=[e];for(a=0,o=t.length;a<o;++a)(s=t[a])>e&&s<i&&u.push(s);for(u.push(i),a=0,o=u.length;a<o;++a)l=u[a+1],r=u[a-1],s=u[a],void 0!==r&&void 0!==l&&Math.round((l+r)/2)===s||d.push({time:s,pos:a/(o-1)});return d}(n._timestamps.data,a,o,r.distribution),n._offsets=function(t,e,i,n,a){var o,r,s=0,l=0;return a.offset&&e.length&&(a.time.min||(o=Xi(t,"time",e[0],"pos"),s=1===e.length?1-o:(Xi(t,"time",e[1],"pos")-o)/2),a.time.max||(r=Xi(t,"time",e[e.length-1],"pos"),l=1===e.length?r:(r-Xi(t,"time",e[e.length-2],"pos"))/2)),{start:s,end:l}}(n._table,d,0,0,r),r.ticks.reverse&&d.reverse(),function(t,e,i){var n,a,o,r,s=[];for(n=0,a=e.length;n<a;++n)o=e[n],r=!!i&&o===+t._adapter.startOf(o,i),s.push({value:o,major:r});return s}(n,d,n._majorUnit)},getLabelForIndex:function(t,e){var i=this,n=i._adapter,a=i.chart.data,o=i.options.time,r=a.labels&&t<a.labels.length?a.labels[t]:"",s=a.datasets[e].data[t];return ut.isObject(s)&&(r=i.getRightValue(s)),o.tooltipFormat?n.format(Ki(i,r),o.tooltipFormat):"string"==typeof r?r:n.format(Ki(i,r),o.displayFormats.datetime)},tickFormatFunction:function(t,e,i,n){var a=this._adapter,o=this.options,r=o.time.displayFormats,s=r[this._unit],l=this._majorUnit,d=r[l],u=+a.startOf(t,l),h=o.ticks.major,c=h.enabled&&l&&d&&t===u,f=a.format(t,n||(c?d:s)),g=c?h:o.ticks.minor,p=Vi(g.callback,g.userCallback);return p?p(f,e,i):f},convertTicksToLabels:function(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(this.tickFormatFunction(t[e].value,e,t));return n},getPixelForOffset:function(t){var e=this,i=e.options.ticks.reverse,n=e._horizontal?e.width:e.height,a=e._horizontal?i?e.right:e.left:i?e.bottom:e.top,o=Xi(e._table,"time",t,"pos"),r=n*(e._offsets.start+o)/(e._offsets.start+1+e._offsets.end);return i?a-r:a+r},getPixelForValue:function(t,e,i){var n=null;if(void 0!==e&&void 0!==i&&(n=this._timestamps.datasets[i][e]),null===n&&(n=Gi(this,t)),null!==n)return this.getPixelForOffset(n)},getPixelForTick:function(t){var e=this.getTicks();return t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,i=e._horizontal?e.width:e.height,n=e._horizontal?e.left:e.top,a=(i?(t-n)/i:0)*(e._offsets.start+1+e._offsets.start)-e._offsets.end,o=Xi(e._table,"pos",a,"time");return e._adapter._create(o)},getLabelWidth:function(t){var e=this.options.ticks,i=this.ctx.measureText(t).width,n=ut.toRadians(e.maxRotation),a=Math.cos(n),o=Math.sin(n);return i*a+Vi(e.fontSize,st.global.defaultFontSize)*o},getLabelCapacity:function(t){var e=this,i=e.options.time.displayFormats.millisecond,n=e.tickFormatFunction(t,0,[],i),a=e.getLabelWidth(n),o=e.isHorizontal()?e.width:e.height,r=Math.floor(o/a);return r>0?r:1}}),Qi={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};Ji._defaults=Qi;var tn={category:gi,linear:yi,logarithmic:Ci,radialLinear:Ni,time:Ji},en={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};si._date.override("function"==typeof t?{_id:"moment",formats:function(){return en},parse:function(e,i){return"string"==typeof e&&"string"==typeof i?e=t(e,i):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,i){return t(e).format(i)},add:function(e,i,n){return t(e).add(i,n).valueOf()},diff:function(e,i,n){return t.duration(t(e).diff(t(i))).as(n)},startOf:function(e,i,n){return e=t(e),"isoWeek"===i?e.isoWeekday(n).valueOf():e.startOf(i).valueOf()},endOf:function(e,i){return t(e).endOf(i).valueOf()},_create:function(e){return t(e)}}:{}),st._set("global",{plugins:{filler:{propagate:!0}}});var nn={dataset:function(t){var e=t.fill,i=t.chart,n=i.getDatasetMeta(e),a=n&&i.isDatasetVisible(e)&&n.dataset._children||[],o=a.length||0;return o?function(t,e){return e<o&&a[e]._view||null}:null},boundary:function(t){var e=t.boundary,i=e?e.x:null,n=e?e.y:null;return function(t){return{x:null===i?t.x:i,y:null===n?t.y:n}}}};function an(t,e,i){var n,a=t._model||{},o=a.fill;if(void 0===o&&(o=!!a.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(n=parseFloat(o,10),isFinite(n)&&Math.floor(n)===n)return"-"!==o[0]&&"+"!==o[0]||(n=e+n),!(n===e||n<0||n>=i)&&n;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function on(t){var e,i=t.el._model||{},n=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if("start"===a?o=void 0===i.scaleBottom?n.bottom:i.scaleBottom:"end"===a?o=void 0===i.scaleTop?n.top:i.scaleTop:void 0!==i.scaleZero?o=i.scaleZero:n.getBasePosition?o=n.getBasePosition():n.getBasePixel&&(o=n.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if(ut.isFinite(o))return{x:(e=n.isHorizontal())?o:null,y:e?null:o}}return null}function rn(t,e,i){var n,a=t[e].fill,o=[e];if(!i)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(n=t[a]))return!1;if(n.visible)return a;o.push(a),a=n.fill}return!1}function sn(t){var e=t.fill,i="dataset";return!1===e?null:(isFinite(e)||(i="boundary"),nn[i](t))}function ln(t){return t&&!t.skip}function dn(t,e,i,n,a){var o;if(n&&a){for(t.moveTo(e[0].x,e[0].y),o=1;o<n;++o)ut.canvas.lineTo(t,e[o-1],e[o]);for(t.lineTo(i[a-1].x,i[a-1].y),o=a-1;o>0;--o)ut.canvas.lineTo(t,i[o],i[o-1],!0)}}var un={id:"filler",afterDatasetsUpdate:function(t,e){var i,n,a,o,r=(t.data.datasets||[]).length,s=e.propagate,l=[];for(n=0;n<r;++n)o=null,(a=(i=t.getDatasetMeta(n)).dataset)&&a._model&&a instanceof Wt.Line&&(o={visible:t.isDatasetVisible(n),fill:an(a,n,r),chart:t,el:a}),i.$filler=o,l.push(o);for(n=0;n<r;++n)(o=l[n])&&(o.fill=rn(l,n,s),o.boundary=on(o),o.mapper=sn(o))},beforeDatasetDraw:function(t,e){var i=e.meta.$filler;if(i){var n=t.ctx,a=i.el,o=a._view,r=a._children||[],s=i.mapper,l=o.backgroundColor||st.global.defaultColor;s&&l&&r.length&&(ut.canvas.clipArea(n,t.chartArea),function(t,e,i,n,a,o){var r,s,l,d,u,h,c,f=e.length,g=n.spanGaps,p=[],m=[],v=0,b=0;for(t.beginPath(),r=0,s=f+!!o;r<s;++r)u=i(d=e[l=r%f]._view,l,n),h=ln(d),c=ln(u),h&&c?(v=p.push(d),b=m.push(u)):v&&b&&(g?(h&&p.push(d),c&&m.push(u)):(dn(t,p,m,v,b),v=b=0,p=[],m=[]));dn(t,p,m,v,b),t.closePath(),t.fillStyle=a,t.fill()}(n,r,s,o,l,a._loop),ut.canvas.unclipArea(n))}}},hn=ut.noop,cn=ut.valueOrDefault;function fn(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}st._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var i=e.datasetIndex,n=this.chart,a=n.getDatasetMeta(i);a.hidden=null===a.hidden?!n.data.datasets[i].hidden:null,n.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return ut.isArray(e.datasets)?e.datasets.map(function(e,i){return{text:e.label,fillStyle:ut.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(i),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:i}},this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var i=0;i<t.data.datasets.length;i++)e.push('<li><span style="background-color:'+t.data.datasets[i].backgroundColor+'"></span>'),t.data.datasets[i].label&&e.push(t.data.datasets[i].label),e.push("</li>");return e.push("</ul>"),e.join("")}});var gn=pt.extend({initialize:function(t){ut.extend(this,t),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:hn,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:hn,beforeSetDimensions:hn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:hn,beforeBuildLabels:hn,buildLabels:function(){var t=this,e=t.options.labels||{},i=ut.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(i=i.filter(function(i){return e.filter(i,t.chart.data)})),t.options.reverse&&i.reverse(),t.legendItems=i},afterBuildLabels:hn,beforeFit:hn,fit:function(){var t=this,e=t.options,i=e.labels,n=e.display,a=t.ctx,o=ut.options._parseFont(i),r=o.size,s=t.legendHitBoxes=[],l=t.minSize,d=t.isHorizontal();if(d?(l.width=t.maxWidth,l.height=n?10:0):(l.width=n?10:0,l.height=t.maxHeight),n)if(a.font=o.string,d){var u=t.lineWidths=[0],h=0;a.textAlign="left",a.textBaseline="top",ut.each(t.legendItems,function(t,e){var n=fn(i,r)+r/2+a.measureText(t.text).width;(0===e||u[u.length-1]+n+i.padding>l.width)&&(h+=r+i.padding,u[u.length-(e>0?0:1)]=i.padding),s[e]={left:0,top:0,width:n,height:r},u[u.length-1]+=n+i.padding}),l.height+=h}else{var c=i.padding,f=t.columnWidths=[],g=i.padding,p=0,m=0,v=r+c;ut.each(t.legendItems,function(t,e){var n=fn(i,r)+r/2+a.measureText(t.text).width;e>0&&m+v>l.height-c&&(g+=p+i.padding,f.push(p),p=0,m=0),p=Math.max(p,n),m+=v,s[e]={left:0,top:0,width:n,height:r}}),g+=p,f.push(p),l.width+=g}t.width=l.width,t.height=l.height},afterFit:hn,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,i=e.labels,n=st.global,a=n.defaultColor,o=n.elements.line,r=t.width,s=t.lineWidths;if(e.display){var l,d=t.ctx,u=cn(i.fontColor,n.defaultFontColor),h=ut.options._parseFont(i),c=h.size;d.textAlign="left",d.textBaseline="middle",d.lineWidth=.5,d.strokeStyle=u,d.fillStyle=u,d.font=h.string;var f=fn(i,c),g=t.legendHitBoxes,p=t.isHorizontal();l=p?{x:t.left+(r-s[0])/2+i.padding,y:t.top+i.padding,line:0}:{x:t.left+i.padding,y:t.top+i.padding,line:0};var m=c+i.padding;ut.each(t.legendItems,function(n,u){var h=d.measureText(n.text).width,v=f+c/2+h,b=l.x,x=l.y;p?u>0&&b+v+i.padding>t.left+t.minSize.width&&(x=l.y+=m,l.line++,b=l.x=t.left+(r-s[l.line])/2+i.padding):u>0&&x+m>t.top+t.minSize.height&&(b=l.x=b+t.columnWidths[l.line]+i.padding,x=l.y=t.top+i.padding,l.line++),function(t,i,n){if(!(isNaN(f)||f<=0)){d.save();var r=cn(n.lineWidth,o.borderWidth);if(d.fillStyle=cn(n.fillStyle,a),d.lineCap=cn(n.lineCap,o.borderCapStyle),d.lineDashOffset=cn(n.lineDashOffset,o.borderDashOffset),d.lineJoin=cn(n.lineJoin,o.borderJoinStyle),d.lineWidth=r,d.strokeStyle=cn(n.strokeStyle,a),d.setLineDash&&d.setLineDash(cn(n.lineDash,o.borderDash)),e.labels&&e.labels.usePointStyle){var s=f*Math.SQRT2/2,l=t+f/2,u=i+c/2;ut.canvas.drawPoint(d,n.pointStyle,s,l,u)}else 0!==r&&d.strokeRect(t,i,f,c),d.fillRect(t,i,f,c);d.restore()}}(b,x,n),g[u].left=b,g[u].top=x,function(t,e,i,n){var a=c/2,o=f+a+t,r=e+a;d.fillText(i.text,o,r),i.hidden&&(d.beginPath(),d.lineWidth=2,d.moveTo(o,r),d.lineTo(o+n,r),d.stroke())}(b,x,n,h),p?l.x+=v+i.padding:l.y+=m})}},_getLegendItemAt:function(t,e){var i,n,a,o=this;if(t>=o.left&&t<=o.right&&e>=o.top&&e<=o.bottom)for(a=o.legendHitBoxes,i=0;i<a.length;++i)if(t>=(n=a[i]).left&&t<=n.left+n.width&&e>=n.top&&e<=n.top+n.height)return o.legendItems[i];return null},handleEvent:function(t){var e,i=this,n=i.options,a="mouseup"===t.type?"click":t.type;if("mousemove"===a){if(!n.onHover&&!n.onLeave)return}else{if("click"!==a)return;if(!n.onClick)return}e=i._getLegendItemAt(t.x,t.y),"click"===a?e&&n.onClick&&n.onClick.call(i,t.native,e):(n.onLeave&&e!==i._hoveredItem&&(i._hoveredItem&&n.onLeave.call(i,t.native,i._hoveredItem),i._hoveredItem=e),n.onHover&&e&&n.onHover.call(i,t.native,e))}});function pn(t,e){var i=new gn({ctx:t.ctx,options:e,chart:t});ke.configure(t,i,e),ke.addBox(t,i),t.legend=i}var mn={id:"legend",_element:gn,beforeInit:function(t){var e=t.options.legend;e&&pn(t,e)},beforeUpdate:function(t){var e=t.options.legend,i=t.legend;e?(ut.mergeIf(e,st.global.legend),i?(ke.configure(t,i,e),i.options=e):pn(t,e)):i&&(ke.removeBox(t,i),delete t.legend)},afterEvent:function(t,e){var i=t.legend;i&&i.handleEvent(e)}},vn=ut.noop;st._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var bn=pt.extend({initialize:function(t){ut.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:vn,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:vn,beforeSetDimensions:vn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:vn,beforeBuildLabels:vn,buildLabels:vn,afterBuildLabels:vn,beforeFit:vn,fit:function(){var t=this,e=t.options,i=e.display,n=t.minSize,a=ut.isArray(e.text)?e.text.length:1,o=ut.options._parseFont(e),r=i?a*o.lineHeight+2*e.padding:0;t.isHorizontal()?(n.width=t.maxWidth,n.height=r):(n.width=r,n.height=t.maxHeight),t.width=n.width,t.height=n.height},afterFit:vn,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,i=t.options;if(i.display){var n,a,o,r=ut.options._parseFont(i),s=r.lineHeight,l=s/2+i.padding,d=0,u=t.top,h=t.left,c=t.bottom,f=t.right;e.fillStyle=ut.valueOrDefault(i.fontColor,st.global.defaultFontColor),e.font=r.string,t.isHorizontal()?(a=h+(f-h)/2,o=u+l,n=f-h):(a="left"===i.position?h+l:f-l,o=u+(c-u)/2,n=c-u,d=Math.PI*("left"===i.position?-.5:.5)),e.save(),e.translate(a,o),e.rotate(d),e.textAlign="center",e.textBaseline="middle";var g=i.text;if(ut.isArray(g))for(var p=0,m=0;m<g.length;++m)e.fillText(g[m],0,p,n),p+=s;else e.fillText(g,0,0,n);e.restore()}}});function xn(t,e){var i=new bn({ctx:t.ctx,options:e,chart:t});ke.configure(t,i,e),ke.addBox(t,i),t.titleBlock=i}var yn={},kn=un,wn=mn,Mn={id:"title",_element:bn,beforeInit:function(t){var e=t.options.title;e&&xn(t,e)},beforeUpdate:function(t){var e=t.options.title,i=t.titleBlock;e?(ut.mergeIf(e,st.global.title),i?(ke.configure(t,i,e),i.options=e):xn(t,e)):i&&(ke.removeBox(t,i),delete t.titleBlock)}};for(var _n in yn.filler=kn,yn.legend=wn,yn.title=Mn,ai.helpers=ut,function(){function t(t,e,i){var n;return"string"==typeof t?(n=parseInt(t,10),-1!==t.indexOf("%")&&(n=n/100*e.parentNode[i])):n=t,n}function e(t){return null!=t&&"none"!==t}function i(i,n,a){var o=document.defaultView,r=ut._getParentNode(i),s=o.getComputedStyle(i)[n],l=o.getComputedStyle(r)[n],d=e(s),u=e(l),h=Number.POSITIVE_INFINITY;return d||u?Math.min(d?t(s,i,a):h,u?t(l,r,a):h):"none"}ut.where=function(t,e){if(ut.isArray(t)&&Array.prototype.filter)return t.filter(e);var i=[];return ut.each(t,function(t){e(t)&&i.push(t)}),i},ut.findIndex=Array.prototype.findIndex?function(t,e,i){return t.findIndex(e,i)}:function(t,e,i){i=void 0===i?t:i;for(var n=0,a=t.length;n<a;++n)if(e.call(i,t[n],n,t))return n;return-1},ut.findNextWhere=function(t,e,i){ut.isNullOrUndef(i)&&(i=-1);for(var n=i+1;n<t.length;n++){var a=t[n];if(e(a))return a}},ut.findPreviousWhere=function(t,e,i){ut.isNullOrUndef(i)&&(i=t.length);for(var n=i-1;n>=0;n--){var a=t[n];if(e(a))return a}},ut.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},ut.almostEquals=function(t,e,i){return Math.abs(t-e)<i},ut.almostWhole=function(t,e){var i=Math.round(t);return i-e<t&&i+e>t},ut.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},ut.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},ut.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},ut.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,i=Math.round(e);return t===Math.pow(10,i)?i:e},ut.toRadians=function(t){return t*(Math.PI/180)},ut.toDegrees=function(t){return t*(180/Math.PI)},ut._decimalPlaces=function(t){if(ut.isFinite(t)){for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}},ut.getAngleFromPoint=function(t,e){var i=e.x-t.x,n=e.y-t.y,a=Math.sqrt(i*i+n*n),o=Math.atan2(n,i);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},ut.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},ut.aliasPixel=function(t){return t%2==0?0:.5},ut._alignPixel=function(t,e,i){var n=t.currentDevicePixelRatio,a=i/2;return Math.round((e-a)*n)/n+a},ut.splineCurve=function(t,e,i,n){var a=t.skip?e:t,o=e,r=i.skip?e:i,s=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),l=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),d=s/(s+l),u=l/(s+l),h=n*(d=isNaN(d)?0:d),c=n*(u=isNaN(u)?0:u);return{previous:{x:o.x-h*(r.x-a.x),y:o.y-h*(r.y-a.y)},next:{x:o.x+c*(r.x-a.x),y:o.y+c*(r.y-a.y)}}},ut.EPSILON=Number.EPSILON||1e-14,ut.splineCurveMonotone=function(t){var e,i,n,a,o,r,s,l,d,u=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),h=u.length;for(e=0;e<h;++e)if(!(n=u[e]).model.skip){if(i=e>0?u[e-1]:null,(a=e<h-1?u[e+1]:null)&&!a.model.skip){var c=a.model.x-n.model.x;n.deltaK=0!==c?(a.model.y-n.model.y)/c:0}!i||i.model.skip?n.mK=n.deltaK:!a||a.model.skip?n.mK=i.deltaK:this.sign(i.deltaK)!==this.sign(n.deltaK)?n.mK=0:n.mK=(i.deltaK+n.deltaK)/2}for(e=0;e<h-1;++e)n=u[e],a=u[e+1],n.model.skip||a.model.skip||(ut.almostEquals(n.deltaK,0,this.EPSILON)?n.mK=a.mK=0:(o=n.mK/n.deltaK,r=a.mK/n.deltaK,(l=Math.pow(o,2)+Math.pow(r,2))<=9||(s=3/Math.sqrt(l),n.mK=o*s*n.deltaK,a.mK=r*s*n.deltaK)));for(e=0;e<h;++e)(n=u[e]).model.skip||(i=e>0?u[e-1]:null,a=e<h-1?u[e+1]:null,i&&!i.model.skip&&(d=(n.model.x-i.model.x)/3,n.model.controlPointPreviousX=n.model.x-d,n.model.controlPointPreviousY=n.model.y-d*n.mK),a&&!a.model.skip&&(d=(a.model.x-n.model.x)/3,n.model.controlPointNextX=n.model.x+d,n.model.controlPointNextY=n.model.y+d*n.mK))},ut.nextItem=function(t,e,i){return i?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},ut.previousItem=function(t,e,i){return i?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},ut.niceNum=function(t,e){var i=Math.floor(ut.log10(t)),n=t/Math.pow(10,i);return(e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*Math.pow(10,i)},ut.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},ut.getRelativePosition=function(t,e){var i,n,a=t.originalEvent||t,o=t.target||t.srcElement,r=o.getBoundingClientRect(),s=a.touches;s&&s.length>0?(i=s[0].clientX,n=s[0].clientY):(i=a.clientX,n=a.clientY);var l=parseFloat(ut.getStyle(o,"padding-left")),d=parseFloat(ut.getStyle(o,"padding-top")),u=parseFloat(ut.getStyle(o,"padding-right")),h=parseFloat(ut.getStyle(o,"padding-bottom")),c=r.right-r.left-l-u,f=r.bottom-r.top-d-h;return{x:i=Math.round((i-r.left-l)/c*o.width/e.currentDevicePixelRatio),y:n=Math.round((n-r.top-d)/f*o.height/e.currentDevicePixelRatio)}},ut.getConstraintWidth=function(t){return i(t,"max-width","clientWidth")},ut.getConstraintHeight=function(t){return i(t,"max-height","clientHeight")},ut._calculatePadding=function(t,e,i){return(e=ut.getStyle(t,e)).indexOf("%")>-1?i*parseInt(e,10)/100:parseInt(e,10)},ut._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},ut.getMaximumWidth=function(t){var e=ut._getParentNode(t);if(!e)return t.clientWidth;var i=e.clientWidth,n=i-ut._calculatePadding(e,"padding-left",i)-ut._calculatePadding(e,"padding-right",i),a=ut.getConstraintWidth(t);return isNaN(a)?n:Math.min(n,a)},ut.getMaximumHeight=function(t){var e=ut._getParentNode(t);if(!e)return t.clientHeight;var i=e.clientHeight,n=i-ut._calculatePadding(e,"padding-top",i)-ut._calculatePadding(e,"padding-bottom",i),a=ut.getConstraintHeight(t);return isNaN(a)?n:Math.min(n,a)},ut.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},ut.retinaScale=function(t,e){var i=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==i){var n=t.canvas,a=t.height,o=t.width;n.height=a*i,n.width=o*i,t.ctx.scale(i,i),n.style.height||n.style.width||(n.style.height=a+"px",n.style.width=o+"px")}},ut.fontString=function(t,e,i){return e+" "+t+"px "+i},ut.longestText=function(t,e,i,n){var a=(n=n||{}).data=n.data||{},o=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(a=n.data={},o=n.garbageCollect=[],n.font=e),t.font=e;var r=0;ut.each(i,function(e){null!=e&&!0!==ut.isArray(e)?r=ut.measureText(t,a,o,r,e):ut.isArray(e)&&ut.each(e,function(e){null==e||ut.isArray(e)||(r=ut.measureText(t,a,o,r,e))})});var s=o.length/2;if(s>i.length){for(var l=0;l<s;l++)delete a[o[l]];o.splice(0,s)}return r},ut.measureText=function(t,e,i,n,a){var o=e[a];return o||(o=e[a]=t.measureText(a).width,i.push(a)),o>n&&(n=o),n},ut.numberOfLabelLines=function(t){var e=1;return ut.each(t,function(t){ut.isArray(t)&&t.length>e&&(e=t.length)}),e},ut.color=X?function(t){return t instanceof CanvasGradient&&(t=st.global.defaultColor),X(t)}:function(t){return console.error("Color.js not found!"),t},ut.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:ut.color(t).saturate(.5).darken(.1).rgbString()}}(),ai._adapters=si,ai.Animation=vt,ai.animationService=bt,ai.controllers=ue,ai.DatasetController=Mt,ai.defaults=st,ai.Element=pt,ai.elements=Wt,ai.Interaction=ve,ai.layouts=ke,ai.platform=Ve,ai.plugins=Ee,ai.Scale=fi,ai.scaleService=He,ai.Ticks=li,ai.Tooltip=Je,ai.helpers.each(tn,function(t,e){ai.scaleService.registerScaleType(e,t,t._defaults)}),yn)yn.hasOwnProperty(_n)&&ai.plugins.register(yn[_n]);ai.platform.initialize();var Cn=ai;return"undefined"!=typeof window&&(window.Chart=ai),ai.Chart=ai,ai.Legend=yn.legend._element,ai.Title=yn.title._element,ai.pluginService=ai.plugins,ai.PluginBase=ai.Element.extend({}),ai.canvasHelpers=ai.helpers.canvas,ai.layoutService=ai.layouts,ai.LinearScaleBase=bi,ai.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],function(t){ai[t]=function(e,i){return new ai(e,ai.helpers.merge(i||{},{type:t.charAt(0).toLowerCase()+t.slice(1)}))}}),Cn}); shuffle.min.js 0000644 00000046730 15104530633 0007332 0 ustar 00 !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Shuffle=e()}(this,function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function i(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}function n(t){return(n=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function o(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function r(){}r.prototype={on:function(t,e,i){var n=this.e||(this.e={});return(n[t]||(n[t]=[])).push({fn:e,ctx:i}),this},once:function(t,e,i){var n=this;function s(){n.off(t,s),e.apply(i,arguments)}return s._=e,this.on(t,s,i)},emit:function(t){for(var e=[].slice.call(arguments,1),i=((this.e||(this.e={}))[t]||[]).slice(),n=0,s=i.length;n<s;n++)i[n].fn.apply(i[n].ctx,e);return this},off:function(t,e){var i=this.e||(this.e={}),n=i[t],s=[];if(n&&e)for(var o=0,r=n.length;o<r;o++)n[o].fn!==e&&n[o].fn._!==e&&s.push(n[o]);return s.length?i[t]=s:delete i[t],this}};var l=r,a=r;l.TinyEmitter=a;var u="undefined"!=typeof Element?Element.prototype:{},h=u.matches||u.matchesSelector||u.webkitMatchesSelector||u.mozMatchesSelector||u.msMatchesSelector||u.oMatchesSelector,f=function(t,e){if(!t||1!==t.nodeType)return!1;if(h)return h.call(t,e);for(var i=t.parentNode.querySelectorAll(e),n=0;n<i.length;n++)if(i[n]==t)return!0;return!1};var c=function(t,e){var i,n,s,o,r=0;return function(){i=this,n=arguments;var t=new Date-r;return o||(t>=e?l():o=setTimeout(l,e-t)),s};function l(){o=0,r=+new Date,s=t.apply(i,n),i=null,n=null}};function d(){}function m(t){return parseFloat(t)||0}var p=function(){function e(i,n){t(this,e),this.x=m(i),this.y=m(n)}return i(e,null,[{key:"equals",value:function(t,e){return t.x===e.x&&t.y===e.y}}]),e}(),v=function(){function e(i,n,s,o,r){t(this,e),this.id=r,this.left=i,this.top=n,this.width=s,this.height=o}return i(e,null,[{key:"intersects",value:function(t,e){return t.left<e.left+e.width&&e.left<t.left+t.width&&t.top<e.top+e.height&&e.top<t.top+t.height}}]),e}(),y={BASE:"shuffle",SHUFFLE_ITEM:"shuffle-item",VISIBLE:"shuffle-item--visible",HIDDEN:"shuffle-item--hidden"},g=0,_=function(){function e(i){t(this,e),g+=1,this.id=g,this.element=i,this.isVisible=!0,this.isHidden=!1}return i(e,[{key:"show",value:function(){this.isVisible=!0,this.element.classList.remove(y.HIDDEN),this.element.classList.add(y.VISIBLE),this.element.removeAttribute("aria-hidden")}},{key:"hide",value:function(){this.isVisible=!1,this.element.classList.remove(y.VISIBLE),this.element.classList.add(y.HIDDEN),this.element.setAttribute("aria-hidden",!0)}},{key:"init",value:function(){this.addClasses([y.SHUFFLE_ITEM,y.VISIBLE]),this.applyCss(e.Css.INITIAL),this.scale=e.Scale.VISIBLE,this.point=new p}},{key:"addClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.add(t)})}},{key:"removeClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.remove(t)})}},{key:"applyCss",value:function(t){var e=this;Object.keys(t).forEach(function(i){e.element.style[i]=t[i]})}},{key:"dispose",value:function(){this.removeClasses([y.HIDDEN,y.VISIBLE,y.SHUFFLE_ITEM]),this.element.removeAttribute("style"),this.element=null}}]),e}();_.Css={INITIAL:{position:"absolute",top:0,left:0,visibility:"visible",willChange:"transform"},VISIBLE:{before:{opacity:1,visibility:"visible"},after:{transitionDelay:""}},HIDDEN:{before:{opacity:0},after:{visibility:"hidden",transitionDelay:""}}},_.Scale={VISIBLE:1,HIDDEN:.001};var E=null,I=function(){if(null!==E)return E;var t=document.body||document.documentElement,e=document.createElement("div");return e.style.cssText="width:10px;padding:2px;box-sizing:border-box;",t.appendChild(e),E="10px"===window.getComputedStyle(e,null).width,t.removeChild(e),E};function b(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.getComputedStyle(t,null),n=m(i[e]);return I()||"width"!==e?I()||"height"!==e||(n+=m(i.paddingTop)+m(i.paddingBottom)+m(i.borderTopWidth)+m(i.borderBottomWidth)):n+=m(i.paddingLeft)+m(i.paddingRight)+m(i.borderLeftWidth)+m(i.borderRightWidth),n}var S={reverse:!1,by:null,compare:null,randomize:!1,key:"element"};function T(t,e){var i=Object.assign({},S,e),n=Array.from(t),s=!1;return t.length?i.randomize?function(t){for(var e=t.length;e;){e-=1;var i=Math.floor(Math.random()*(e+1)),n=t[i];t[i]=t[e],t[e]=n}return t}(t):("function"==typeof i.by?t.sort(function(t,e){if(s)return 0;var n=i.by(t[i.key]),o=i.by(e[i.key]);return void 0===n&&void 0===o?(s=!0,0):n<o||"sortFirst"===n||"sortLast"===o?-1:n>o||"sortLast"===n||"sortFirst"===o?1:0}):"function"==typeof i.compare&&t.sort(i.compare),s?n:(i.reverse&&t.reverse(),t)):[]}var k={},w="transitionend",C=0;function L(t){return!!k[t]&&(k[t].element.removeEventListener(w,k[t].listener),k[t]=null,!0)}function D(t,e){var i=w+(C+=1),n=function(t){t.currentTarget===t.target&&(L(i),e(t))};return t.addEventListener(w,n),k[i]={element:t,listener:n},i}function z(t){return Math.max.apply(Math,t)}function M(t,e,i,n){var s=t/e;return Math.abs(Math.round(s)-s)<n&&(s=Math.round(s)),Math.min(Math.ceil(s),i)}function A(t,e,i){if(1===e)return t;for(var n=[],s=0;s<=i-e;s++)n.push(z(t.slice(s,s+e)));return n}function F(t,e){for(var i,n=(i=t,Math.min.apply(Math,i)),s=0,o=t.length;s<o;s++)if(t[s]>=n-e&&t[s]<=n+e)return s;return 0}function x(t,e){var i={};t.forEach(function(t){i[t.top]?i[t.top].push(t):i[t.top]=[t]});var n=[],s=[],o=[];return Object.keys(i).forEach(function(t){var r=i[t];s.push(r);var l,a=r[r.length-1],u=a.left+a.width,h=Math.round((e-u)/2),f=r,c=!1;if(h>0){var d=[];(c=r.every(function(t){var e=new v(t.left+h,t.top,t.width,t.height,t.id),i=!n.some(function(t){return v.intersects(e,t)});return d.push(e),i}))&&(f=d)}if(!c&&r.some(function(t){return n.some(function(e){var i=v.intersects(t,e);return i&&(l=e),i})})){var m=o.findIndex(function(t){return t.includes(l)});o.splice(m,1,s[m])}n=n.concat(f),o.push(f)}),[].concat.apply([],o).sort(function(t,e){return t.id-e.id}).map(function(t){return new p(t.left,t.top)})}function O(t){return Array.from(new Set(t))}var N=0,H=function(e){function r(e){var i,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,r),(i=o(this,n(r).call(this))).options=Object.assign({},r.options,s),i.options.delimeter&&(i.options.delimiter=i.options.delimeter),i.lastSort={},i.group=r.ALL_ITEMS,i.lastFilter=r.ALL_ITEMS,i.isEnabled=!0,i.isDestroyed=!1,i.isInitialized=!1,i._transitions=[],i.isTransitioning=!1,i._queue=[];var l=i._getElementOption(e);if(!l)throw new TypeError("Shuffle needs to be initialized with an element.");return i.element=l,i.id="shuffle_"+N,N+=1,i._init(),i.isInitialized=!0,i}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(r,l),i(r,[{key:"_init",value:function(){if(this.items=this._getItems(),this.options.sizer=this._getElementOption(this.options.sizer),this.element.classList.add(r.Classes.BASE),this._initItems(this.items),this._onResize=this._getResizeFunction(),window.addEventListener("resize",this._onResize),"complete"!==document.readyState){var t=this.layout.bind(this);window.addEventListener("load",function e(){window.removeEventListener("load",e),t()})}var e=window.getComputedStyle(this.element,null),i=r.getSize(this.element).width;this._validateStyles(e),this._setColumns(i),this.filter(this.options.group,this.options.initialSort),this.element.offsetWidth,this.setItemTransitions(this.items),this.element.style.transition="height ".concat(this.options.speed,"ms ").concat(this.options.easing)}},{key:"_getResizeFunction",value:function(){var t=this._handleResize.bind(this);return this.options.throttle?this.options.throttle(t,this.options.throttleTime):t}},{key:"_getElementOption",value:function(t){return"string"==typeof t?this.element.querySelector(t):t&&t.nodeType&&1===t.nodeType?t:t&&t.jquery?t[0]:null}},{key:"_validateStyles",value:function(t){"static"===t.position&&(this.element.style.position="relative"),"hidden"!==t.overflow&&(this.element.style.overflow="hidden")}},{key:"_filter",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastFilter,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.items,i=this._getFilteredSets(t,e);return this._toggleFilterClasses(i),this.lastFilter=t,"string"==typeof t&&(this.group=t),i}},{key:"_getFilteredSets",value:function(t,e){var i=this,n=[],s=[];return t===r.ALL_ITEMS?n=e:e.forEach(function(e){i._doesPassFilter(t,e.element)?n.push(e):s.push(e)}),{visible:n,hidden:s}}},{key:"_doesPassFilter",value:function(t,e){if("function"==typeof t)return t.call(e,e,this);var i=e.getAttribute("data-"+r.FILTER_ATTRIBUTE_KEY),n=this.options.delimiter?i.split(this.options.delimiter):JSON.parse(i);function s(t){return n.includes(t)}return Array.isArray(t)?this.options.filterMode===r.FilterMode.ANY?t.some(s):t.every(s):n.includes(t)}},{key:"_toggleFilterClasses",value:function(t){var e=t.visible,i=t.hidden;e.forEach(function(t){t.show()}),i.forEach(function(t){t.hide()})}},{key:"_initItems",value:function(t){t.forEach(function(t){t.init()})}},{key:"_disposeItems",value:function(t){t.forEach(function(t){t.dispose()})}},{key:"_updateItemCount",value:function(){this.visibleItems=this._getFilteredItems().length}},{key:"setItemTransitions",value:function(t){var e=this.options,i=e.speed,n=e.easing,s=this.options.useTransforms?["transform"]:["top","left"],o=Object.keys(_.Css.HIDDEN.before).map(function(t){return t.replace(/([A-Z])/g,function(t,e){return"-".concat(e.toLowerCase())})}),r=s.concat(o).join();t.forEach(function(t){t.element.style.transitionDuration=i+"ms",t.element.style.transitionTimingFunction=n,t.element.style.transitionProperty=r})}},{key:"_getItems",value:function(){var t=this;return Array.from(this.element.children).filter(function(e){return f(e,t.options.itemSelector)}).map(function(t){return new _(t)})}},{key:"_mergeNewItems",value:function(t){var e=Array.from(this.element.children);return T(this.items.concat(t),{by:function(t){return e.indexOf(t)}})}},{key:"_getFilteredItems",value:function(){return this.items.filter(function(t){return t.isVisible})}},{key:"_getConcealedItems",value:function(){return this.items.filter(function(t){return!t.isVisible})}},{key:"_getColumnSize",value:function(t,e){var i;return 0===(i="function"==typeof this.options.columnWidth?this.options.columnWidth(t):this.options.sizer?r.getSize(this.options.sizer).width:this.options.columnWidth?this.options.columnWidth:this.items.length>0?r.getSize(this.items[0].element,!0).width:t)&&(i=t),i+e}},{key:"_getGutterSize",value:function(t){return"function"==typeof this.options.gutterWidth?this.options.gutterWidth(t):this.options.sizer?b(this.options.sizer,"marginLeft"):this.options.gutterWidth}},{key:"_setColumns",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r.getSize(this.element).width,e=this._getGutterSize(t),i=this._getColumnSize(t,e),n=(t+e)/i;Math.abs(Math.round(n)-n)<this.options.columnThreshold&&(n=Math.round(n)),this.cols=Math.max(Math.floor(n||0),1),this.containerWidth=t,this.colWidth=i}},{key:"_setContainerSize",value:function(){this.element.style.height=this._getContainerSize()+"px"}},{key:"_getContainerSize",value:function(){return z(this.positions)}},{key:"_getStaggerAmount",value:function(t){return Math.min(t*this.options.staggerAmount,this.options.staggerAmountMax)}},{key:"_dispatch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.isDestroyed||(e.shuffle=this,this.emit(t,e))}},{key:"_resetCols",value:function(){var t=this.cols;for(this.positions=[];t;)t-=1,this.positions.push(0)}},{key:"_layout",value:function(t){var e=this,i=this._getNextPositions(t),n=0;t.forEach(function(t,s){function o(){t.applyCss(_.Css.VISIBLE.after)}if(p.equals(t.point,i[s])&&!t.isHidden)return t.applyCss(_.Css.VISIBLE.before),void o();t.point=i[s],t.scale=_.Scale.VISIBLE,t.isHidden=!1;var r=e.getStylesForTransition(t,_.Css.VISIBLE.before);r.transitionDelay=e._getStaggerAmount(n)+"ms",e._queue.push({item:t,styles:r,callback:o}),n+=1})}},{key:"_getNextPositions",value:function(t){var e=this;if(this.options.isCentered){var i=t.map(function(t,i){var n=r.getSize(t.element,!0),s=e._getItemPosition(n);return new v(s.x,s.y,n.width,n.height,i)});return this.getTransformedPositions(i,this.containerWidth)}return t.map(function(t){return e._getItemPosition(r.getSize(t.element,!0))})}},{key:"_getItemPosition",value:function(t){return function(t){for(var e=t.itemSize,i=t.positions,n=t.gridSize,s=t.total,o=t.threshold,r=t.buffer,l=M(e.width,n,s,o),a=A(i,l,s),u=F(a,r),h=new p(n*u,a[u]),f=a[u]+e.height,c=0;c<l;c++)i[u+c]=f;return h}({itemSize:t,positions:this.positions,gridSize:this.colWidth,total:this.cols,threshold:this.options.columnThreshold,buffer:this.options.buffer})}},{key:"getTransformedPositions",value:function(t,e){return x(t,e)}},{key:"_shrink",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._getConcealedItems(),i=0;e.forEach(function(e){function n(){e.applyCss(_.Css.HIDDEN.after)}if(e.isHidden)return e.applyCss(_.Css.HIDDEN.before),void n();e.scale=_.Scale.HIDDEN,e.isHidden=!0;var s=t.getStylesForTransition(e,_.Css.HIDDEN.before);s.transitionDelay=t._getStaggerAmount(i)+"ms",t._queue.push({item:e,styles:s,callback:n}),i+=1})}},{key:"_handleResize",value:function(){this.isEnabled&&!this.isDestroyed&&this.update()}},{key:"getStylesForTransition",value:function(t,e){var i=Object.assign({},e);if(this.options.useTransforms){var n=this.options.roundTransforms?Math.round(t.point.x):t.point.x,s=this.options.roundTransforms?Math.round(t.point.y):t.point.y;i.transform="translate(".concat(n,"px, ").concat(s,"px) scale(").concat(t.scale,")")}else i.left=t.point.x+"px",i.top=t.point.y+"px";return i}},{key:"_whenTransitionDone",value:function(t,e,i){var n=D(t,function(t){e(),i(null,t)});this._transitions.push(n)}},{key:"_getTransitionFunction",value:function(t){var e=this;return function(i){t.item.applyCss(t.styles),e._whenTransitionDone(t.item.element,t.callback,i)}}},{key:"_processQueue",value:function(){this.isTransitioning&&this._cancelMovement();var t=this.options.speed>0,e=this._queue.length>0;e&&t&&this.isInitialized?this._startTransitions(this._queue):e?(this._styleImmediately(this._queue),this._dispatch(r.EventType.LAYOUT)):this._dispatch(r.EventType.LAYOUT),this._queue.length=0}},{key:"_startTransitions",value:function(t){var e=this;this.isTransitioning=!0,function(t,e,i){i||("function"==typeof e?(i=e,e=null):i=d);var n=t&&t.length;if(!n)return i(null,[]);var s=!1,o=new Array(n);function r(t){return function(e,r){if(!s){if(e)return i(e,o),void(s=!0);o[t]=r,--n||i(null,o)}}}t.forEach(e?function(t,i){t.call(e,r(i))}:function(t,e){t(r(e))})}(t.map(function(t){return e._getTransitionFunction(t)}),this._movementFinished.bind(this))}},{key:"_cancelMovement",value:function(){this._transitions.forEach(L),this._transitions.length=0,this.isTransitioning=!1}},{key:"_styleImmediately",value:function(t){if(t.length){var e=t.map(function(t){return t.item.element});r._skipTransitions(e,function(){t.forEach(function(t){t.item.applyCss(t.styles),t.callback()})})}}},{key:"_movementFinished",value:function(){this._transitions.length=0,this.isTransitioning=!1,this._dispatch(r.EventType.LAYOUT)}},{key:"filter",value:function(t,e){this.isEnabled&&((!t||t&&0===t.length)&&(t=r.ALL_ITEMS),this._filter(t),this._shrink(),this._updateItemCount(),this.sort(e))}},{key:"sort",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastSort;if(this.isEnabled){this._resetCols();var e=T(this._getFilteredItems(),t);this._layout(e),this._processQueue(),this._setContainerSize(),this.lastSort=t}}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isEnabled&&(t||this._setColumns(),this.sort())}},{key:"layout",value:function(){this.update(!0)}},{key:"add",value:function(t){var e=this,i=O(t).map(function(t){return new _(t)});this._initItems(i),this._resetCols();var n=T(this._mergeNewItems(i),this.lastSort),s=this._filter(this.lastFilter,n),o=function(t){return i.includes(t)},r=function(t){t.scale=_.Scale.HIDDEN,t.isHidden=!0,t.applyCss(_.Css.HIDDEN.before),t.applyCss(_.Css.HIDDEN.after)},l=this._getNextPositions(s.visible);s.visible.forEach(function(t,i){o(t)&&(t.point=l[i],r(t),t.applyCss(e.getStylesForTransition(t,{})))}),s.hidden.forEach(function(t){o(t)&&r(t)}),this.element.offsetWidth,this.setItemTransitions(i),this.items=this._mergeNewItems(i),this.filter(this.lastFilter)}},{key:"disable",value:function(){this.isEnabled=!1}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.isEnabled=!0,t&&this.update()}},{key:"remove",value:function(t){var e=this;if(t.length){var i=O(t),n=i.map(function(t){return e.getItemByElement(t)}).filter(function(t){return!!t});this._toggleFilterClasses({visible:[],hidden:n}),this._shrink(n),this.sort(),this.items=this.items.filter(function(t){return!n.includes(t)}),this._updateItemCount(),this.once(r.EventType.LAYOUT,function(){e._disposeItems(n),i.forEach(function(t){t.parentNode.removeChild(t)}),e._dispatch(r.EventType.REMOVED,{collection:i})})}}},{key:"getItemByElement",value:function(t){return this.items.find(function(e){return e.element===t})}},{key:"resetItems",value:function(){var t=this;this._disposeItems(this.items),this.isInitialized=!1,this.items=this._getItems(),this._initItems(this.items),this.once(r.EventType.LAYOUT,function(){t.setItemTransitions(t.items),t.isInitialized=!0}),this.filter(this.lastFilter)}},{key:"destroy",value:function(){this._cancelMovement(),window.removeEventListener("resize",this._onResize),this.element.classList.remove("shuffle"),this.element.removeAttribute("style"),this._disposeItems(this.items),this.items.length=0,this._transitions.length=0,this.options.sizer=null,this.element=null,this.isDestroyed=!0,this.isEnabled=!1}}],[{key:"getSize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=window.getComputedStyle(t,null),n=b(t,"width",i),s=b(t,"height",i);if(e){var o=b(t,"marginLeft",i),r=b(t,"marginRight",i),l=b(t,"marginTop",i),a=b(t,"marginBottom",i);n+=o+r,s+=l+a}return{width:n,height:s}}},{key:"_skipTransitions",value:function(t,e){var i=t.map(function(t){var e=t.style,i=e.transitionDuration,n=e.transitionDelay;return e.transitionDuration="0ms",e.transitionDelay="0ms",{duration:i,delay:n}});e(),t[0].offsetWidth,t.forEach(function(t,e){t.style.transitionDuration=i[e].duration,t.style.transitionDelay=i[e].delay})}}]),r}();return H.ShuffleItem=_,H.ALL_ITEMS="all",H.FILTER_ATTRIBUTE_KEY="groups",H.EventType={LAYOUT:"shuffle:layout",REMOVED:"shuffle:removed"},H.Classes=y,H.FilterMode={ANY:"any",ALL:"all"},H.options={group:H.ALL_ITEMS,speed:250,easing:"cubic-bezier(0.4, 0.0, 0.2, 1)",itemSelector:"*",sizer:null,gutterWidth:0,columnWidth:0,delimiter:null,buffer:0,columnThreshold:.01,initialSort:null,throttle:c,throttleTime:300,staggerAmount:15,staggerAmountMax:150,useTransforms:!0,filterMode:H.FilterMode.ANY,isCentered:!1,roundTransforms:!0},H.Point=p,H.Rect=v,H.__sorter=T,H.__getColumnSpan=M,H.__getAvailablePositions=A,H.__getShortColumn=F,H.__getCenteredPositions=x,H}); //# sourceMappingURL=shuffle.min.js.map premium-frontend.js 0000644 00000133664 15104530633 0010412 0 ustar 00 /* PAGELAYER http://pagelayer.com/ (c) Pagelayer Team */ // Things to do on document load jQuery(document).ready(function(){ jQuery('.pagelayer-slides').each(function(){ pagelayer_pl_slides(jQuery(this)); }); jQuery('.pagelayer-featured_img').each(function(){ pagelayer_pl_image(jQuery(this)); }); jQuery('.pagelayer-wp_posts_slider').each(function(){ pagelayer_wp_posts_slider(jQuery(this)); }); jQuery('.pagelayer-review_slider').each(function(){ pagelayer_reviews_slider(jQuery(this)); }); // Facebook Apps if(jQuery('[pagelayer-facebook-load]')){ pagelayer_fb_apps(jQuery(this)); } // For Pagelayer Pro jQuery('.pagelayer-image_hotspot').each(function(){ pagelayer_image_hotspot(jQuery(this)); }); jQuery('.pagelayer-chart').each(function(){ pagelayer_chart(jQuery(this)); }); jQuery('.pagelayer-table').each(function(){ pagelayer_table(jQuery(this)); }); jQuery('.pagelayer-audio').each(function(){ pagelayer_audio(jQuery(this)); }); jQuery('.pagelayer-post_folio').each(function(){ pagelayer_post_folio(jQuery(this)); }); jQuery('.pagelayer-search').each(function(){ pagelayer_search_form(jQuery(this)); }); jQuery('.pagelayer-sitemap').each(function(){ pagelayer_sitemap_add_attributes(jQuery(this)); }); jQuery('.pagelayer-posts').each(function(){ var is_slider = jQuery(this).find('.pagelayer-posts-container').data('enable_slider'); if(is_slider){ pagelayer_pl_posts(jQuery(this)); } }); jQuery('.pagelayer-video_slider').each(function(){ pagelayer_pl_video_slider(jQuery(this)); }); jQuery('.pagelayer-woo_menu_cart').each(function(){ pagelayer_woo_menu_cart(jQuery(this)); }); jQuery('.pagelayer-popup-modal').each(function(){ pagelayer_popup_setup(jQuery(this)); }); jQuery('.pagelayer-sticky-ele').each(function(){ pagelayer_ele_sticky_handler(jQuery(this)); }); jQuery('.pagelayer-scrolling-effects').each(function(){ pagelayer_scrolling_effects(jQuery(this)); }); jQuery('.pagelayer-mouse-effects').each(function(){ pagelayer_mouse_effects(jQuery(this)); }); jQuery('.pagelayer-img_portfolio').each(function(){ pagelayer_pl_img_portfolio(jQuery(this)); }); jQuery('.pagelayer-single_img').each(function(){ pagelayer_pl_image(jQuery(this)); }); jQuery('.pagelayer-splash-container').each(function(){ pagelayer_pl_splash_screen(jQuery(this)); }); jQuery('.pagelayer-fb-page-container, .pagelayer-fb-embed-container').each(function(){ pagelayer_fb_width(jQuery(this)); }); jQuery('.pagelayer-before_after').each(function(){ pagelayer_before_after_slider(jQuery(this)); }); jQuery('.pagelayer-image_map').each(function(){ pagelayer_pl_image_map(jQuery(this)); // Make image map editable if(!pagelayer_empty(pagelayer_is_live)){ pagelayer_imgmap_handler(jQuery(this)); } }); }); jQuery(window).resize(function(){ jQuery('.pagelayer-scrolling-effects').each(function(){ pagelayer_scrolling_effects(jQuery(this)); }); }); // Add all shuffle instance in this object var shuffleInstance = {}; // Portfolio Gallery function pagelayer_pl_img_portfolio(jEle){ var id = jEle.attr('pagelayer-id'); var arr = []; // Fetch all categories in array jEle.find('[port-cat]').each(function(){ var cat = jQuery(this).attr('port-cat'); if(cat){ //var sel = jQuery(this).parent('.pagelayer-ele-wrap') ? jQuery(this).parent('.pagelayer-ele-wrap') : jQuery(this); jQuery(this).attr('data-groups','["'+cat+'"]'); if(!arr.includes(cat)){ arr.push(cat); } } }) // Create category button html var html = '<button class="pagelayer-pfbtn" data-pgl_pfbtn="all">All</button>'; arr.forEach(function(val){ if(val && val != 'all'){ html += '<button class="pagelayer-pfbtn" data-pgl_pfbtn="'+val+'">'+val+'</button>'; } }); // Append category buttons to holder jEle.find('.pagelayer-category-holder').empty().append(html); var setup = jEle.attr('pagelayer-setup'); // Already setup ? then distroy shuffle if(setup && setup.length > 0 && !pagelayer_empty(shuffleInstance[id])){ shuffleInstance[id].destroy(); } // Create an shuffle instance var Shuffle = window.Shuffle; var element = jEle.find('.pagelayer-img_portfolio-holder'); var sizer = jEle.find('.pagelayer-img_portfolio-holder'); shuffleInstance[id] = new Shuffle(element,{ itemSelector: '.pagelayer-img_portfolio-holder>div', //sizer: sizer // could also be a selector: '.my-sizer-element' }); // set click events on category buttons if(!window.location.href.includes('pagelayer-live=1')){ jEle.find('button').on("click", function(){ shuffleInstance[id].filter(jQuery(this).attr('data-pgl_pfbtn')); }); } // Set that we have setup everything jEle.attr('pagelayer-setup', 1); } // Reset Scrolling effects function pagelayer_reset_scrolling(jEle, parentEle){ if(jEle.length < 1){ return; } var style = jEle.get(0).style; style.setProperty("--transY", 0 +"px"); style.setProperty("--transX", 0 +"px"); style.setProperty("--rot", 0 +"deg"); jEle.css({"transform":"" , "opacity":"1" , "filter":"none"}); parentEle.off('scroll.'+jEle.attr('pagelayer-id')); } // Handle the scrolling effects function pagelayer_scrolling_effects(jEle, parentEle){ parentEle = parentEle || jQuery(pagelayerGetDocumentElement()); var win = pagelayerGetCurrentWindow(); pagelayer_reset_scrolling(jEle, parentEle); // Is this element to be scrolled on this Screen Size ? var screens = jEle.attr('ele_motion_effect_on'); if(pagelayer_empty(screens) || screens.search(pagelayer_get_media_mode()) == -1){ return; } var style = jEle.get(0).style; var totalProperty = ''; var documentHeight = parentEle.height(); var screenMiddle = documentHeight/2; var eMid = documentHeight/2;// By default motion_area-entire_page if(jEle.attr('motion_area') == 'viewport'){ jEle.css('top', '0px'); // For viewPort in Gutenberg if (parentEle.hasClass('interface-interface-skeleton__content')) { var scrollTopOfDiv = parentEle.scrollTop(); var offsetFromTopOfDiv = jEle.parent().offset().top - parentEle.offset().top + scrollTopOfDiv; eMid = offsetFromTopOfDiv + jEle.parent().height() / 2; }else{ eMid = jEle.parent().offset().top + jEle.parent().height() / 2; } screenMiddle = jQuery(win).height() / 2; } var screenHeightPercent = screenMiddle/100; // Vertical Scroll if(jEle.attr('ele_vertical_scroll')){ if(jEle.attr('motion_area')=='entire_page'){ jEle.offset({top:(documentHeight/2)}); } totalProperty += "translateY(var(--transY))"; var vertical_top = Math.ceil(jEle.attr('ele_v_sc_top_viewport')*(screenHeightPercent)); var vertical_bottom = -Math.ceil(jEle.attr('ele_v_sc_bottom_viewport')*(screenHeightPercent)); } // Horizontal scroll if(jEle.attr('ele_horizontal_scroll')){ totalProperty += "translateX(var(--transX))"; var screenWidthPercent = jQuery(win).width()/200; var horizontal_right = (Math.ceil(jEle.attr('ele_h_sc_right_viewport')*(screenWidthPercent))); var horizontal_left = -(Math.ceil(jEle.attr('ele_h_sc_left_viewport')*(screenWidthPercent))); } // Transparency if(jEle.attr('ele_transparency')){ var fadingLevel = 1-jEle.attr('ele_transp_level')/10; var transparency_top = Math.ceil(jEle.attr('ele_transp_top_viewport')*(screenHeightPercent)); var transparency_bottom = Math.ceil(jEle.attr('ele_transp_bottom_viewport')*(screenHeightPercent)); } // Blur if(jEle.attr('ele_blur')){ var blurringLevel = jEle.attr('ele_blur_level'); var blur_top = Math.ceil(jEle.attr('ele_blur_top_viewport')*(screenHeightPercent)); var blur_bottom = Math.ceil(jEle.attr('ele_blur_bottom_viewport')*(screenHeightPercent)); } // Rotate if(jEle.attr('ele_rotate')){ totalProperty += "rotate(var(--rot))"; var rotate_top = Math.ceil(jEle.attr('ele_rot_top_viewport')*(screenHeightPercent)); var rotate_bottom = -Math.ceil(jEle.attr('ele_rot_bottom_viewport')*(screenHeightPercent)); } // Scale if(jEle.attr('ele_scale')){ var childScale = jEle.children("div"); var scalingLevel = jEle.attr('ele_scl_level'); var scale_top = Math.ceil(jEle.attr('ele_scl_top_viewport')*(screenHeightPercent)); var scale_bottom = Math.ceil(jEle.attr('ele_scl_bottom_viewport')*(screenHeightPercent)); } if(totalProperty != ''){ jEle.css('transform', totalProperty); } // On Scroll calc and set parentEle.on('scroll.'+jEle.attr('pagelayer-id'), function(){ var vpMid = parentEle.scrollTop() + jQuery(win).height()/2; if(jEle.attr('ele_vertical_scroll')){ var preCalc = ((eMid-vpMid)/10)*(jEle.attr('ele_v_sc_speed')); if(jEle.attr('ele_v_sc_direction') == 'opposite'){ if(-preCalc<=vertical_top && -preCalc>vertical_bottom){ style.setProperty("--transY", preCalc +"px"); } }else if(jEle.attr('ele_v_sc_direction') == 'similar'){ if(preCalc<=vertical_top && preCalc>vertical_bottom){ style.setProperty("--transY", -preCalc +"px"); } } } if(jEle.attr('ele_horizontal_scroll')){ var preCalc = (eMid-vpMid)*(jEle.attr('ele_h_sc_speed')/2); if(jEle.attr('ele_h_sc_direction')=='toleft'){ if(preCalc<=horizontal_right && preCalc>horizontal_left) style.setProperty("--transX", preCalc +"px"); }else if(jEle.attr('ele_h_sc_direction')=='toright'){ if(-preCalc<=horizontal_right && -preCalc>horizontal_left) style.setProperty("--transX", -preCalc +"px"); } } if(jEle.attr('ele_transparency')){ var preCalc = (vpMid)-eMid; if(preCalc>(-transparency_bottom) && preCalc<=transparency_top){ var eMidB = eMid-transparency_bottom; var eMidT = eMid+transparency_top; var eMidTB = eMidT-eMidB; if(jEle.attr('ele_transp_type')=='fadein'){ var fadeIn = ((vpMid-eMidB)/eMidTB)+fadingLevel; jEle.css("opacity",fadeIn); }else if(jEle.attr('ele_transp_type')=='fadeout'){ var fadeOut = ((eMidT-vpMid)/eMidTB)+fadingLevel; jEle.css("opacity",fadeOut); }else if(jEle.attr('ele_transp_type')=='fadeinout'){ var fadeInOut1 = ((vpMid-eMidB)/(eMidTB/2))+fadingLevel; var fadeInOut2 = ((eMidT-vpMid)/(eMidTB/2))+fadingLevel; if(fadeInOut1<1+fadingLevel && fadeInOut1>0+fadingLevel){ jEle.css("opacity",fadeInOut1); }else if(fadeInOut2<1+fadingLevel && fadeInOut2>0+fadingLevel){ jEle.css("opacity",fadeInOut2); } }else if(jEle.attr('ele_transp_type')=='fadeoutin'){ var fadeOutIn1 = (((vpMid-eMidB)/(eMidTB/2)-1))+fadingLevel; var fadeOutIn2 = (((eMidT-vpMid)/(eMidTB/2)-1))+fadingLevel; if(fadeOutIn2<1+fadingLevel && fadeOutIn2>0+fadingLevel){ jEle.css("opacity",fadeOutIn2); }else if(fadeOutIn1<1+fadingLevel && fadeOutIn1>0+fadingLevel){ jEle.css("opacity",fadeOutIn1); } } } } if(jEle.attr('ele_blur')){ var preCalc = vpMid-eMid; if(preCalc>-(blur_bottom) && preCalc<=blur_top){ var eMidB = eMid-blur_bottom; var eMidT = eMid+blur_top; var eMidTB = eMidT-eMidB; if(jEle.attr('ele_blur_type')=='blurin'){ var blurIn = ((eMidT-vpMid)/eMidTB)*blurringLevel; jEle.css("filter","blur("+blurIn+"px)"); }else if(jEle.attr('ele_blur_type')=='blurout'){ var blurOut = ((vpMid-eMidB)/eMidTB)*blurringLevel; jEle.css("filter","blur("+blurOut+"px)"); }else if(jEle.attr('ele_blur_type')=='blurinout'){ var blurInOut1 = (vpMid-eMidB)/(eMidTB/2)*blurringLevel; var blurInOut2 = (eMidT-vpMid)/(eMidTB/2)*blurringLevel; if(blurInOut1<1*blurringLevel && blurInOut1>0.01*blurringLevel){ jEle.css("filter","blur("+blurInOut1+"px)"); }else if(blurInOut2<1*blurringLevel && blurInOut2>0.01*blurringLevel){ jEle.css("filter","blur("+blurInOut2+"px)"); } }else if(jEle.attr('ele_blur_type')=='bluroutin'){ var blurOutIn1 = ((vpMid-eMidB)/(eMidTB/2)-1)*blurringLevel; var blurOutIn2 = ((eMidT-vpMid)/(eMidTB/2)-1)*blurringLevel; if(blurOutIn2<1*blurringLevel && blurOutIn2>0.01*blurringLevel){ jEle.css("filter","blur("+blurOutIn2+"px)"); }else if(blurOutIn1<1*blurringLevel && blurOutIn1>0.01*blurringLevel){ jEle.css("filter","blur("+blurOutIn1+"px)"); } } } } if(jEle.attr('ele_rotate')){ var preCalc = ((vpMid-eMid)/2); var rotSpeed = jEle.attr('ele_rot_speed')/2; if(jEle.attr('ele_rot_direction')=='clockwise'){ if(preCalc<=rotate_top && preCalc>rotate_bottom){ style.setProperty("--rot", preCalc*rotSpeed +"deg"); } }else if(jEle.attr('ele_rot_direction')=='anticlockwise'){ if(preCalc<=rotate_top && preCalc>rotate_bottom){ style.setProperty("--rot", -preCalc*rotSpeed +"deg"); } } } if(jEle.attr('ele_scale')){ var preCalc = vpMid-eMid; if(preCalc>-(scale_bottom) && preCalc<=scale_top){ var eMidB = eMid-scale_bottom; var eMidT = eMid+scale_top; var eMidTB = eMidT-eMidB; if(jEle.attr('ele_scl_direction')=='scaleup'){ var scaleUp = ((vpMid-eMidB)/eMidTB)*scalingLevel+1; childScale.css("transform","scale("+ scaleUp +")"); }else if(jEle.attr('ele_scl_direction')=='scaledown'){ var scaleDown = ((eMidT-vpMid)/eMidTB)*scalingLevel+1; childScale.css("transform","scale("+ scaleDown +")"); }else if(jEle.attr('ele_scl_direction')=='scaleupdown'){ var scaleUpDown2 = (vpMid-eMidB)/(eMidTB/2)*scalingLevel+1; var scaleUpDown1 = (eMidT-vpMid)/(eMidTB/2)*scalingLevel+1; if(scaleUpDown1<1*scalingLevel && scaleUpDown1>0.1*scalingLevel){ childScale.css("transform","scale("+ scaleUpDown1 +")"); }else if(scaleUpDown2<1*scalingLevel && scaleUpDown2>0.1*scalingLevel){ childScale.css("transform","scale("+ scaleUpDown2 +")"); } }else if(jEle.attr('ele_scl_direction')=='scaledownup'){ var scaleDownUp1 = ((vpMid-eMidB)/(eMidTB/2)-1)*scalingLevel+1; var scaleDownUp2 = ((eMidT-vpMid)/(eMidTB/2)-1)*scalingLevel+1; if(scaleDownUp1<1*scalingLevel && scaleDownUp1>0.1*scalingLevel){ childScale.css("transform","scale("+ scaleDownUp1 +")"); }else if(scaleDownUp2<1*scalingLevel && scaleDownUp2>0.1*scalingLevel){ childScale.css("transform","scale("+ scaleDownUp2 +")"); } } } } }); }; function pagelayer_mouse_reset(jEle){ var win = pagelayerGetCurrentWindow(); jEle.css("transform", ""); var style = jEle.get(0).style; style.setProperty("--transY", 0 +"px"); style.setProperty("--transX", 0 +"px"); style.setProperty("--rotX", 0 +"deg"); style.setProperty("--rotY", 0 +"deg"); jQuery(win).off('mousemove.'+jEle.attr('pagelayer-id')); } // Mouse Effects setup function pagelayer_mouse_effects(jEle){ pagelayer_mouse_reset(jEle); var style = jEle.get(0).style; var mouseproperty = ''; var halfWidth = jEle.parent().offset().left+jEle.parent().width()/2; var halfHeight = jEle.parent().offset().top+jEle.parent().height()/2; if(jEle.attr('ele_m_track')){ mouseproperty += 'translateX(var(--transX)) translateY(var(--transY))'; var mouseLevel = jEle.attr('ele_m_tr_level'); } if(jEle.attr('ele_3d_tilt')){ mouseproperty += ' rotateX(var(--rotX)) rotateY(var(--rotY))'; jEle.parent().css("perspective", "1200px"); var tiltLevel = jEle.attr('ele_3d_tilt_level'); } if(mouseproperty != ''){ jEle.css("transform", mouseproperty); } var win = pagelayerGetCurrentWindow(); jQuery(win).bind('mousemove.'+jEle.attr('pagelayer-id'), function(event){ if(jEle.attr('ele_m_track')){ if(jEle.attr('ele_m_tr_direction') == 'opposite'){ var x =((event.pageX - halfWidth)*mouseLevel)/10; var y =((event.pageY - halfHeight)*mouseLevel)/10; style.setProperty("--transX",-x +"px"); style.setProperty("--transY",-y +"px"); //console.log(halfWidth +" "+ mouseLevel); }else if(jEle.attr('ele_m_tr_direction') == 'same'){ var x =((event.pageX - halfWidth)*mouseLevel)/10; var y = ((event.pageY-halfHeight)*mouseLevel)/10; style.setProperty("--transX",x +"px"); style.setProperty("--transY",y +"px"); } } if(jEle.attr('ele_3d_tilt')){ if(jEle.attr('ele_3d_tilt_direction')=='opposite'){ var x=((event.pageX - halfWidth)*tiltLevel)/100; var y=((event.pageY - halfHeight)*tiltLevel)/100; style.setProperty("--rotX", y +"deg"); style.setProperty("--rotY",-x + "deg"); }else if(jEle.attr('ele_3d_tilt_direction')=='same'){ var x=((event.pageX - halfWidth)*tiltLevel)/100; var y=((event.pageY - halfHeight)*tiltLevel)/100; style.setProperty("--rotX",-y + "deg"); style.setProperty("--rotY",x +"deg"); } } }); } // Element sticky handler function pagelayer_ele_sticky_handler(jEle, parentEle){ // Set element stickied if(jEle.attr('pagelayer-stickied-ele') == 1){ return; } parentEle = parentEle || jQuery(window); jEle.attr('pagelayer-stickied-ele', 1); var jEleTop = jEle.offset().top; var jEleW = jEle[0].clientWidth +'px'; var oldstyle = jEle.attr('style') || ''; var pagelayer_sticky = function(){ var position = jEle.attr('data-sticky-position') || ''; var offset = jEle.attr('data-sticky-offset') || 0; var sticky_in_col = jEle.attr('data-sticky_in_col') || ''; var sticky_on = jEle.attr('data-sticky-on') || ''; sticky_on = sticky_on.split(','); // If match the media var do_sticky = false; for(var x in sticky_on){ if(pagelayer_get_media_mode() == sticky_on[x]){ do_sticky = true; } } // If there is a wrapper var wrapper = jEle.parent('.pagelayer-ele-wrap'); if(wrapper.length > 0 ){ // Reset jEle jEle.next('.pagelayer-sticky-space-holder').remove(); jEle.attr('style', oldstyle); // Get wrapper old syle oldstyle = wrapper.attr('oldstyle') || ''; if(pagelayer_empty(oldstyle)){ oldstyle = wrapper.attr('style') || '1'; wrapper.attr('oldstyle', oldstyle); }else if(oldstyle == '1'){ oldstyle = ''; } }else{ wrapper = jEle; } var parentHeight = parentEle.height(); var parentScrollTop = parentEle.scrollTop(); var topToCheck = jEleTop - parentScrollTop; // Do fixed the element var pagelayer_fixed = function(){ var opp_position = (position == 'top') ? 'bottom' : 'top'; var fixed_css = {'position': 'fixed', 'width': jEleW, 'max-width': jEleW, [position] : offset +'px', [opp_position]: 'auto','z-index' : '99'} // For the sticky in columns if(!pagelayer_empty(sticky_in_col)){ //fixed_css['position'] = 'sticky'; var container = wrapper.parent(); var containerTop = container.offset().top; if((containerTop + container.height()) - parentScrollTop <= wrapper.outerHeight(true) + offset || containerTop - parentScrollTop >= parentHeight - wrapper.outerHeight(true) - offset){ fixed_css['position'] = 'absolute'; fixed_css[opp_position] = '0px'; fixed_css[position] = 'auto'; } } // Add position holder element if(wrapper.next('.pagelayer-sticky-space-holder').length < 1 ){ var clone = wrapper.clone(true); clone.addClass('pagelayer-sticky-space-holder'); clone.css({'visibility' : 'hidden', 'transition': 'none 0s ease 0s', 'animation': '0s ease 0s 1 normal none running none'}); // Remove pagelayer-parent attributes to avoid group children list double if(!pagelayer_empty(pagelayer_is_live)){ clone.removeClass('pagelayer-ele-wrap'); clone.removeClass('pagelayer-ele'); clone.find('.pagelayer-ele').removeClass('pagelayer-ele'); clone.find('[pagelayer-id]').removeAttr('pagelayer-id'); } // Add wrapper.after(clone); //wrapper.after('<div class="pagelayer-sticky-space-holder" style="width:'+wrapper.outerWidth(true)+'px;height:'+wrapper.outerHeight(true)+'px;visibility:hidden;margin:0px;"></div>'); } // Css for fixed the element wrapper.css(fixed_css); } // TODO: manage margin var mTopEle = parseFloat(wrapper.css('margin-top')); var mBottomEle = parseFloat(wrapper.css('margin-bottom')); // Fixed on top if( position == 'top' && (topToCheck <= offset+mTopEle && do_sticky) ){ pagelayer_fixed(); // Fixed on bottom }else if( position == 'bottom' && topToCheck + wrapper.outerHeight()+mBottomEle >= parentHeight - offset && do_sticky) { pagelayer_fixed(); // Set old style }else{ wrapper.attr('style', oldstyle); wrapper.next('.pagelayer-sticky-space-holder').remove(); jEleW = wrapper[0].clientWidth +'px'; jEleTop = wrapper.offset().top; } return true; }; // Run for the first time pagelayer_sticky(); // On window scroll parentEle.scroll(pagelayer_sticky); parentEle.resize(pagelayer_sticky); } function pagelayer_pl_posts(jEle){ var ul = jEle.find('.pagelayer-posts-container'); ul.addClass('pagelayer-owl-carousel pagelayer-owl-theme'); // Build the options var options = pagelayer_fetch_dataAttrs(ul, 'data-owl-'); // Already setup ? var setup = jEle.attr('pagelayer-setup'); // If already setup then Destroy Owl if(setup && setup.length > 0){ ul.pagelayerOwlCarousel('destroy'); ul.find('[class^="pagelayer-owl-"]').remove(); } //console.log(options); ul.pagelayerOwlCarousel(options); // Set that we have setup everything jEle.attr('pagelayer-setup', 1); } function pagelayer_pl_slides(jEle){ var ul = jEle.find('.pagelayer-slides-holder'); // Build the options var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-'); var blurNav = false; if(pagelayer_is_live){ if(!options.nav && !options.dots) { options.nav = true; options.dots = true; blurNav = true; } options.mouseDrag = false; } pagelayer_owl_init(jEle, ul, options); if(blurNav){ ul.find('.pagelayer-owl-nav button').css({'filter': 'blur(2px)'}); ul.find('.pagelayer-owl-dot').css({'filter': 'blur(2px)'}); } // Shows element animations after slide change ul.on('refresh.owl.carousel translate.owl.carousel', function(e) { var slide = jQuery(this); if(!pagelayer_is_live) { slide.find('.pagelayer-wow').addClass('animated'); return; } slide.find('.pagelayer-ele').each(function() { var ele = jQuery(this); if(ele.css('animation-name') == 'none') { return; } ele.addClass('pagelayer-wow animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ ele.removeClass('pagelayer-wow animated'); }); }); }); } // For Pagelayer Pro // Show tooltip in image hotspot function pagelayer_image_hotspot(jEle){ // Drag and Drop function for image if (typeof pagelayer_preDAndD_image !== "undefined") { pagelayer_preDAndD_image(jEle); } var tooltip_click = jEle.find('.pagelayer-icon-holder'); var icon_holder = jEle.find('.pagelayer-hotspots-icon-holder'); icon_holder.off('click'); icon_holder.find('.pagelayer-tooltip-text').removeClass('pagelayer-tooltip-on-click'); if(tooltip_click.hasClass('pagelayer-hotspots-click')){ icon_holder.each(function(){ jQuery(this).click(function(){ jQuery(this).find( '.pagelayer-tooltip-text' ).toggleClass('pagelayer-tooltip-on-click'); }) }); } // Assigning animation classes to icon holder if(!pagelayer_empty(tooltip_click.attr('pagelayer-animation'))){ icon_holder.addClass('pagelayer-animation-'+tooltip_click.attr('pagelayer-animation')); } } var pagelayer_chart_objects = {}; // Show Chart render function pagelayer_chart(jEle){ var holder = jEle.find('.pagelayer-chart-holder'); var id = jEle.attr('pagelayer-id'); var type = holder.attr('chart-type'); var labels = holder.attr('chart-labels') || ''; var legend = holder.attr('chart-legend'); var chart_datasets = []; labels = labels.split(','); //console.log(labels); jEle.find('.pagelayer-chart-child-holder').find('.pagelayer-chart-datasets').each(function(){ var tmp_dataset = {}; //console.log(jQuery(this).attr('chart-datasets')); var chartDatasets = jQuery(this).attr('chart-datasets') || ''; tmp_dataset['data'] = chartDatasets.split(','); //tmp_dataset['data'] = [734,784,2478,5267,433]; tmp_dataset['label'] = jQuery(this).attr('datasets-label'); tmp_dataset['backgroundColor'] = ( holder.attr('chart-colors') ? holder.attr('chart-colors').split(',') : jQuery(this).attr('dataset-bg') ); tmp_dataset['borderColor'] = jQuery(this).attr('border-color'); tmp_dataset['borderWidth'] = 1; tmp_dataset['fill'] = ( jQuery(this).attr('dataset-fill') ? true : false ); chart_datasets.push(tmp_dataset); }); //console.log(chart_datasets); //chart_datasets = chart_datasets.join(','); if(id in pagelayer_chart_objects && typeof pagelayer_chart_objects[id].destroy == 'function'){ pagelayer_chart_objects[id].destroy(); } pagelayer_chart_objects[id] = new Chart(jEle.find('.pagelayer-chart-holder'), { type: type, data: { labels: labels, datasets: chart_datasets }, options: { //rotation: holder.attr('data-pierotate') * Math.PI, //circumference: holder.attr('data-circumference') * Math.PI, maintainAspectRatio: ( holder.attr('chart-height') ? false : true ), legend: { display: ( legend ? true : false ), position: legend, }, scales: { xAxes: [ { barPercentage: 1, categoryPercentage: 0.9, ticks:{ beginAtZero: holder.attr('data-xbegin'), fontColor: holder.attr('data-xcolor'), fontSize: holder.attr('data-xsize'), autoSkip: false, maxRotation: holder.attr('data-xrotate'), minRotation: holder.attr('data-xrotate') }, //stacked: true } ], yAxes:[ { ticks:{ beginAtZero: holder.attr('data-ybegin'), fontColor: holder.attr('data-ycolor'), fontSize: holder.attr('data-ysize'), autoSkip: false, maxRotation: holder.attr('data-yrotate'), minRotation: holder.attr('data-yrotate') }, //stacked: true } ] } } }); } // Show table render function pagelayer_table(jEle){ var tHolder = jEle.find('.pagelayer-table-holder'); var dHolder = jEle.find('.pagelayer-data-holder'); var trEle = dHolder.find(".pagelayer-table_row"); var tdlength = 0; tHolder.empty(); /*trEle.each(function(){ var tdEle = jQuery(this).find(".pagelayer-table_col").length; if(tdlength < tdEle){tdlength = tdEle} });*/ // Add rows trEle.each(function(){ var this_trEle = jQuery(this); var this_trId = this_trEle.attr('pagelayer-id'); var tdEle = this_trEle.find(".pagelayer-table_col"); var html = ''; // Add columns tdEle.each(function(){ var td_data_Holder = jQuery(this).find('.pagelayer-col-data'); var td_id = jQuery(this).attr('pagelayer-id'); var tdata = td_data_Holder.attr('data-td') || ''; var t_tag = td_data_Holder.attr('data-tag') || ''; var attrs = {}; var col_attr = ''; attrs['colspan']= td_data_Holder.attr('data-colspan') || ''; attrs['rowspan'] = td_data_Holder.attr('data-rowspan') || ''; if(!pagelayer_empty(pagelayer_is_live)){ attrs['pagelayer-ref-id'] = td_id; attrs['pagelayer-editable'] = 'data'; attrs['contenteditable'] = 'true'; } for(var key in attrs){ if(!pagelayer_empty(attrs[key])){ col_attr += key+'="'+attrs[key]+'"'; } } html = html+'<'+t_tag +' '+col_attr+' pagelayer-table-id="'+td_id+'">'+tdata+'</'+t_tag+'>'; }); /* if(tdlength > tdEle.length){ var extra_td = tdlength - tdEle.length; for(var i=0; extra_td >i; i++){ html = html+'<td></td>'; } } */ tHolder.append('<tr pagelayer-table-id="'+this_trId+'">'+html+'</tr>'); }); if(!pagelayer_empty(pagelayer_is_live)){ tHolder.on('input', '[contenteditable]', function(){ var jEle = jQuery(this); var val = pagelayer_trim(jEle.html()); var id = jEle.closest('[pagelayer-ref-id]').attr('pagelayer-ref-id'); if(pagelayer_empty(id)){ return; } jQuery('[pagelayer-id='+id+']').find('.pagelayer-col-data').attr('data-td', val); }); } } function pagelayer_audio(jEle){ var audio = jQuery(jEle.find('audio')); var container = jEle.find('.pagelayer-audio-container'); var features = ['playpause','tracks','fullscreen']; (container.attr('show_duration') ? features.push('duration') : '' ); (container.attr('show_progress') ? features.push('progress') : '' ); (container.attr('show_current') ? features.push('current') : '' ); (container.attr('show_volume') ? features.push('volume') : '' ); audio.mediaelementplayer({ //features: ['playpause','duration','progress','current','volume','tracks','fullscreen'] features: features }); } // Post Portfolio Handler - Premium function pagelayer_post_folio(jEle){ var btn = jEle.find('.pagelayer-postfolio-btn'); var thumb = jEle.find('.pagelayer-postfolio-thumb'); btn.unbind('click'); btn.on('click', function(){ var btn_cat = jQuery(this).data("filter"); if(btn_cat == 'all'){ jQuery(thumb).fadeIn(1200); }else{ thumb.each(function(){ var thumb_cat = jQuery(this).data("category"); if(!pagelayer_empty(thumb_cat)){ thumb_cat = thumb_cat.split(' '); if(jQuery.inArray( btn_cat, thumb_cat ) == -1){ jQuery(this).hide(); }else{ jQuery(this).fadeIn(600); } }else{ jQuery(this).hide(); } }); } }); } // Search Form handler - Premium function pagelayer_search_form(jEle){ // In full screen mode set auto complete offscreenBuffering jEle.find('.pagelayer-search-full-screen form').attr('autocomplete', 'off'); jEle.find('.pagelayer-search-toggle').click(function(){ jEle.find('.pagelayer-search-fields').toggleClass('show'); }); jEle.find('.pagelayer-search-fields').click(function(e){ e = window.event || e; if(this === e.target) { jQuery(this).removeClass('show'); } }); } // Login Form handler - Premium function pagelayer_login_submit(jEle, e){ e.preventDefault(); var fdata = new FormData( jQuery(jEle).closest('form')[0] ); // Append the nonce fdata.append('pagelayer_nonce', pagelayer_global_nonce); jQuery.ajax({ url: pagelayer_ajaxurl+'action=pagelayer_login_submit', type: "POST", data: fdata, processData: false, contentType: false, cache:false, success:function(result){ var json = jQuery.parseJSON(result); // console.log(json); if(!pagelayer_empty(json['error'])){ jQuery(".pagelayer-login-error-box").html(json['error']).fadeIn().delay(10000).fadeOut(); }else{ if(!pagelayer_empty(json['redirect'])){ window.location.href = json['redirect']; }else{ location.reload(true); } } } }); } //Review slider handler - Premium function pagelayer_reviews_slider(jEle){ var ul = jEle.find('.pagelayer-reviews-holder'); // Build the options var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-'); pagelayer_owl_init(jEle, ul, options); } // Facebook App ID handler - Premium function pagelayer_fb_apps(jEle){ var app_id = jEle.find('.pagelayer-app-details').attr('pagelayer-app-id'); if(pagelayer_empty(app_id) || app_id == "{{fb-app-id}}"){ app_id = pagelayer_facebook_id; } // If still empty if(pagelayer_empty(app_id)){ return; } var win = pagelayerGetCurrentWindow(); var doc = pagelayerGetDocumentElement(); win.fbAsyncInit = function() { win.FB.init({ appId : app_id, autoLogAppEvents : true, xfbml : true, version : 'v3.3' }); }; win.FB = null; (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0"; fjs.parentNode.insertBefore(js, fjs); }(doc, 'script', 'facebook-jssdk')); } // SiteMap Attribute Handler- Premium function pagelayer_sitemap_add_attributes(jEle){ var nofollow = jEle.find('.pagelayer-sitemap-div-holder').data('nofollow'); if(!pagelayer_empty(nofollow)){ jEle.find('.pagelayer-sitemap-section .pagelayer-sitemap-list-item a').attr('rel','nofollow'); } } // Initialize video slider function pagelayer_pl_video_slider(jEle){ var ul = jEle.find('.pagelayer-video-slider-holder'); // Build the options var options = pagelayer_fetch_dataAttrs(ul, 'data-slides-'); pagelayer_owl_init(jEle, ul, options); } // Splash widget function pagelayer_pl_splash_screen(jEle){ if(!pagelayer_empty(pagelayer_is_live)){ return; } if( jEle.attr('display_type') == "once"){ if (!sessionStorage.isVisited) { sessionStorage.isVisited = "true"; jEle.delay(jEle.attr('delay')).fadeIn(); } }else{ jEle.delay(jEle.attr('delay')).fadeIn(); } jEle.find('.pagelayer-splash-close, .pagelayer-splash-bg-close').on('click', function(){ jEle.fadeOut(); }); } // Facebook width adjustment function function pagelayer_fb_width(jEle){ var facebook = (jEle.find('.fb-page').length ? jEle.find('.fb-page') : jEle.find('.fb-embed')); var fb_resize = function(){ facebook.attr('data-width', jEle.width()); FB.XFBML.parse(); }; setTimeout(fb_resize, 1000); var win = pagelayerGetCurrentWindow(); jQuery(win).on('resize', function(){ setTimeout(fb_resize, 1000); }); } // WooCommenrce cart function pagelayer_woo_menu_cart(jEle){ // On click menu cart jEle.find('.pagelayer-menu-cart-toggle').click(function(e){ e.preventDefault(); jEle.find('.pagelayer-menu-cart-container').toggle(); }); // On click menu cart close jEle.find('.pagelayer-menu-cart-close').click(function(){ jEle.find('.pagelayer-menu-cart-container').hide(); }); } // Setup the pop-ups function pagelayer_popup_setup(popEle){ var jEle = popEle.find('.pagelayer-popup').first(); var id = jEle.attr('pagelayer-id'); var popup_content = popEle.find('.pagelayer-popup-modal-content'); var data = new Object(); // Set the Pou-up id popEle.attr('pagelayer-popup-id', id); if(jEle.length < 1) return; jQuery.each(jEle[0].attributes, function(index, att){ if(att.name.match(/data\-/i)){ data[att.name.substr(5)] = att.value; } }); // Show pop-up var popup_show = function(force){ // Is there a cookie? if( !pagelayer_empty(data['popup_cookie_session']) && !pagelayer_empty(data['popup_cookie_name']) && pagelayer_empty(force)){ var name = data['popup_cookie_name']+ "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i = 0; i <ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return; } } } // Avoid multi time open if(!pagelayer_empty(popEle.attr('pagelayer-popup-Shown')) && pagelayer_empty(data['popup_multi_time'])){ return; } popEle.css({'display' : 'flex'}); popEle.attr('pagelayer-popup-Shown', 1); // Animate the Pop-up content if(!pagelayer_empty(data['popup_animation'])){ popup_content.addClass(data['popup_animation'] + ' animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ jQuery(this).removeClass(data['popup_animation']+ ' animated'); }); } // Auto close if(!pagelayer_empty(data['popup_auto_close'])){ var cSecond = parseFloat(data['popup_auto_close']); setTimeout(function(){ popEle.find('.pagelayer-popup-close').click(); }, cSecond * 1000); } } // Append the close element // remove close element popEle.find('.pagelayer-popup-close').remove(); // Put close button inside or outside if(data['popup_cbtn_position'] == 'outside'){ popEle.append('<div class="pagelayer-popup-close"><i class="fas fa-times" ></i></div>'); }else{ popEle.find('.pagelayer-popup-modal-content').append('<div class="pagelayer-popup-close"><i class="fas fa-times" ></i></div>'); } var closer = popEle.find('.pagelayer-popup-close'); // On click close closer.click(function(e){ jQuery(document).trigger('pagelayer_popup_close', e, popEle); e.preventDefault(); e.stopPropagation(); popEle.hide(); }); // Hide pop-up on click modal container if ( !pagelayer_empty(data['overlay_close']) ){ popEle.click(function(e){ if(jQuery(e.target).closest('.pagelayer-popup-modal-content').length > 0) return; closer.click(); }); } // Hide pop-up click on selector if ( !pagelayer_empty(data['selector_close']) ){ jQuery(data['selector_close']).click(function(e){ closer.click(); }); } // Is there a cookie to be set to be remembered ? if( !pagelayer_empty(data['popup_cookie_session']) && !pagelayer_empty(data['popup_cookie_name']) ){ // Set cookie on close as well ? if(!pagelayer_empty(data['popup_cookie_close'])){ data['popup_cookie_selector'] = '.pagelayer-popup-close'+(pagelayer_empty(data['popup_cookie_selector']) ? '' : ','+data['popup_cookie_selector']); } if(!pagelayer_empty(data['popup_cookie_selector'])){ pagelayer_popup_set_cookie(data, closer); } } // Pop-up triggers // If we are in editor if ( !pagelayer_empty(popEle.attr('pagelayer-popup-editor')) ) { closer.unbind('click'); popEle.unbind('click'); popEle.removeAttr('pagelayer-popup-Shown'); popup_show(true); } // Click popup show if(!pagelayer_empty(data['trig_click'])){ jQuery(data['trig_click_ele']).click(popup_show); } // Popup show on load if(!pagelayer_empty(data['trig_load'])){ var second = parseFloat(data['trig_load_sec'] || 0); setTimeout(popup_show, second * 1000); } // Popup show on scroll if(!pagelayer_empty(data['trig_scroll'])){ // Initial state var scrollPos = 0; // adding scroll event jQuery(window).on('scroll', function(){ // detects new state and compares it with the new one if ( scrollY > scrollPos){ if(data['trig_scroll_dir'] == 'down'){ let scroll_per = scrollY*100/(jQuery(document).height() - innerHeight); let scr_per =parseInt(data['trig_scroll_per']) || 0; if( scr_per <= scroll_per){ popup_show(); } } }else if(data['trig_scroll_dir'] == 'up'){ popup_show(); } // saves the new position for iteration. scrollPos = scrollY; }); } // Popup show on scroll to element if(!pagelayer_empty(data['trig_scroll_to_ele'])){ // adding scroll event jEle.find(data['trig_scroll_to_ele_sel']).on('scroll', function(){ popup_show(); }); } // On scroll popup show if(!pagelayer_empty(data['trig_page_exit_intent'])){ jQuery(document).on('mouseleave', popup_show); } // When page load popup hide if(!pagelayer_empty(data['trig_before_load'])){ closer.click(); } } // Sets the cookie function pagelayer_popup_set_cookie(data, closer){ jQuery(data['popup_cookie_selector']).click(function(e){ var exdays = data['popup_cookie_exp'] || 0; var d = new Date(); d.setTime(d.getTime() + ( parseFloat(exdays) *24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = data['popup_cookie_name'] + "=1;" + expires + ";path=/"; if(closer && !jQuery(e.target).is(closer)){ closer.click(); } }); } // Before After Slider Handler function pagelayer_before_after_slider(jEle){ let event = jEle.find('.pagelayer-before-after-container').attr('data-resize-event'), slider = jEle.find('.pagelayer-before-after-slider'), after = jEle.find('.pagelayer-after-image'), resizer = jEle.find('.pagelayer-resizer'), buttons = jEle.find('.pagelayer-before-btn, .pagelayer-after-btn'), plID = jEle.attr('pagelayer-id'); resizer.removeAttr('style'); after.removeAttr('style'); // z - Custom value for both var slideIt = function(e, z){ z = z || false; let x, y; if(z != false){ x = y = z; }else{ let pos = slider.offset(), eleWidth = slider.width(), eleHeight = slider.height(); x = Math.min( (e.pageX - pos.left), eleWidth ) * 100 / eleWidth; y = Math.min( (e.pageY - pos.top), eleHeight) * 100 / eleHeight; } if(x < 0 || x > 99.7 || y < 0 || y > 99.7){ return false; } if(slider.hasClass('pagelayer-before-after-slider-vertical')){ resizer.css({'top': y+'%'}); after.css({'clip-path': 'polygon(0px '+y+'%, 100% '+y+'%, 100% 100%, 0% 100%)'}); return; } resizer.css({'left': x+'%'}); after.css({'clip-path': 'polygon('+x+'% 0%, 100% 0%, 100% 100%, '+x+'% 100%)'}); } var resizeOn = function(){ slider.addClass('resize'); } var resizeOff = function(){ slider.removeClass('resize'); } // Before After Button click handler jEle.on('click', '.pagelayer-after-btn, .pagelayer-before-btn', function(e){ e.stopPropagation(); e.preventDefault(); var slide = (jQuery(this).hasClass('pagelayer-before-btn')) ? 90 : 10; // Start resizing resizeOn(); slideIt(e, slide); // Stop resizing resizeOff(); }); var win = pagelayerGetCurrentWindow(); var doc = pagelayerGetDocumentElement(); // Unbind All events jQuery(win).unbind('mousemove.bf_slider'+plID); slider.unbind('click mouseover mouseout'); resizer.unbind('mousedown'); jQuery(doc).unbind('mouseup.bf_slider'+plID); // If there is no events if(event == 'none' || pagelayer_empty(event)){ return; } if(event == 'hover'){ // No need of buttons while hover effect buttons.fadeOut(); slider.on('mouseover', resizeOn); slider.on('mouseout', resizeOff); }else{ resizer.on('mousedown', function(e){ // To prevent widgets from being dragged. e.stopPropagation(); e.preventDefault(); resizeOn(); buttons.fadeOut(); }); jQuery(doc).on('mouseup.bf_slider'+plID, function(e){ resizeOff(); buttons.fadeIn(); }); } jQuery(win).on('mousemove.bf_slider'+plID, function(e){ if(!slider.hasClass('resize')){ return; } // Stop divs being selected. e.stopPropagation(); e.preventDefault(); slideIt(e); }); slider.on('click', slideIt); } // Image Map Widget function pagelayer_pl_image_map(jEle){ var svgEle = jEle.find('.pagelayer-imgmap-svg'); var data = []; svgEle.find('.pagelayer-imgmap-item').each(function(){ var data_link = jQuery(this).attr('data-link'); var data_id = jQuery(this).attr('data-id'); data[data_id] = data_link; }); pagelayer_resize_imgmap(jEle); jQuery(pagelayerGetCurrentWindow()).off('resize.plimgmap').on('resize.plimgmap',function(){ pagelayer_resize_imgmap(jEle); }); if(!pagelayer_is_live){ for (const key in data) { if(data == undefined || data[key].length === 0){ continue; } var elem = jEle.find('[data-id='+key+']'); elem.css({'cursor':'pointer'}); elem.off('click').on('click',function(){ window.open(data[key], "_blank"); }); } svgEle.addClass('pagelayer-imgmap-hover-active'); } } function pagelayer_resize_imgmap(jEle){ var svgEle = jEle.find('svg'); var pathEles = svgEle.find('path'); if(pathEles.length > 0){ for (var i = 0; i < pathEles.length; i++) { pagelayer_resize_imgmap_item(jQuery(pathEles[i]), jEle); } } } function pagelayer_resize_imgmap_item(path_ele, jEle = ''){ var wrap = jEle.find('.pagelayer-imgmap-wrapper'); var img_ele = jEle.find('img'); // Delay while resizing map setTimeout(() => { // Auto resize wrapper wrap.css('cssText','width:'+img_ele.width()+'px;height:'+img_ele.height()+'px;left:'+img_ele.position().left+'px;top:'+img_ele.position().top+'px;'); var mapWidth = wrap.width(); var mapHeight = wrap.height(); var cords = path_ele.attr('data-cord'); var isActive = path_ele.hasClass('pagelayer-map-item-active') ? true : false; cords = cords.split(','); var tmpArr = []; var tmpCord = ''; var count = 0; cords.forEach((ele,index) => { var prefix = index == 1 ? 'M' : 'L'; var perc = ele; if(tmpCord.length == 0){ tmpCord = (mapWidth / 100) * perc; }else{ var cord = (mapHeight / 100) * perc; if(pagelayer_is_live){ var cordWrap = jEle.find('.pagelayer-imgmap-coordinates-wraper'); var mapId = path_ele.attr('data-id'); var cord_ele = jEle.find('.pl-cord-'+mapId).eq(count); if(cord_ele.length == 0){ var cordHTML = `<div class="pagelayer-imgmap-coord pl-cord-`+mapId+`" title="Drag to reposition" data-id="`+count+`" style="left:`+(tmpCord)+`px;top:`+(cord)+`px" style="display:block;"> <span class="pagelayer-imgmap-remove-cord fa fa-trash"></span> </div>`; cordWrap.append(cordHTML); }else{ var visibility = isActive ? 'display:block' : ''; cord_ele.css('cssText','left:'+tmpCord+'px;top:'+cord+'px;'+visibility); } } tmpArr.push(prefix + tmpCord+' '+cord); tmpCord = ''; count++; } }); // Close path denoted by z var endOpr = pagelayer_is_live ? '' : 'z'; var value = tmpArr.join('').toString() + endOpr; cords = cords.toString(); path_ele.attr('data-cord',cords); path_ele.attr('d',value); }, 10); } function pagelayer_create_imgmap_svg(classes = [], attrs = []){ // Create svg path element and append in the svg var elem = document.createElementNS('http://www.w3.org/2000/svg', 'path'); if(classes.length > 0){ classes.forEach(cls => { elem.classList.add(cls); }); } if(attrs.length > 0){ attrs.forEach(attr => { elem.setAttribute(attr[0],attr[1]); }); } return elem; } premium.js 0000644 00000125277 15104530633 0006576 0 ustar 00 // Render for audio function pagelayer_render_pl_audio(el){ el.tmp['src-url'] = el.tmp['src-url'] || el.atts['src']; return; /*// Do we have a URL ? if(!pagelayer_empty(el.atts['a_url'])){ //Get the file extension var extension = el.atts['a_url'].substr(el.atts['a_url'].lastIndexOf('.') + 1); //Create source tag according to audio file switch(extension){ default: case 'mp3': el.atts['a_type'] = 'audio/mpeg'; break; case 'ogg': el.atts['a_type']= 'audio/ogg'; break; case 'wav': el.atts['a_type'] = 'audio/wav'; break; } } // Add the attr if(!pagelayer_empty(el.atts['a_url']) && !pagelayer_empty(el.atts['a_type'])){ el.CSS.attr.push({'sel': '{{element}} source', 'val': 'src="{{a_url}}"'}); el.CSS.attr.push({'sel': '{{element}} source', 'val': 'type="{{a_type}}"'}); } */ }; function pagelayer_render_end_pl_audio(el){ var jEle = el.$; pagelayer_audio(jEle); } // render the video slider function pagelayer_render_end_pl_video_slider(el){ pagelayer_owl_destroy(el.$, '.pagelayer-video-slider-holder'); pagelayer_pl_video_slider(el.$); }; // End Render for splash function pagelayer_render_end_pl_splash(el){ var jEle = el.$; var container = jEle.find('.pagelayer-splash-container'); container.fadeIn(); el.$.find('.pagelayer-splash-close, .pagelayer-splash-bg-close').on('click', function(e){ container.fadeOut(); }); if(el.atts['style'] == 'custom'){ container.css({'background': el.atts['shadow_color'], 'color': el.atts['content_color']}); }else{ container.css({'background': '', 'color': ''}); } container.removeClass().addClass('pagelayer-splash-container pagelayer-splash-'+el.atts['style']); } // Render the Posts function pagelayer_render_end_pl_posts(el){ var post = {}; post['pagelayer_nonce'] = pagelayer_ajax_nonce; // Page count if(el.atts['count']) post['posts_per_page'] = el.atts['count']; if(el.atts['show_thumb']) post['show_thumb'] = el.atts['show_thumb']; if(el.atts['thumb_size']) post['thumb_size'] = el.atts['thumb_size']; if(el.atts['show_content']) post['show_content'] = el.atts['show_content']; if(el.atts['show_title']) post['show_title'] = el.atts['show_title']; if(el.atts['more']) post['more'] = el.atts['more']; if(el.atts['btn_type']) post['btn_type'] = el.atts['btn_type']; if(el.atts['size']) post['size'] = el.atts['size']; if(el.atts['icon_position']) post['icon_position'] = el.atts['icon_position']; if(el.atts['icon']) post['icon'] = el.atts['icon']; if(el.atts['show_more']) post['show_more'] = el.atts['show_more']; if(el.atts['meta_sep']) post['meta_sep'] = el.atts['meta_sep']; if(el.atts['exc_length']) post['exc_length'] = el.atts['exc_length']; if(el.atts['post_type']) post['post_type'] = el.atts['post_type']; if(el.atts['posts_order']) post['order'] = el.atts['posts_order']; if(el.atts['inc_term']) post['term'] = el.atts['inc_term']; if(el.atts['inc_author']) post['author_name'] = el.atts['inc_author']; if(el.atts['exc_term']) post['exc_term'] = el.atts['exc_term']; if(el.atts['exc_author']) post['exc_author'] = el.atts['exc_author']; if(el.atts['offset']) post['offset'] = el.atts['offset']; if(el.atts['ignore_sticky']) post['ignore_sticky'] = el.atts['ignore_sticky']; if(el.atts['orderby']) post['orderby'] = el.atts['orderby']; if(el.atts['by_period']) post['by_period'] = el.atts['by_period']; if(el.atts['before_date']) post['before_date'] = el.atts['before_date']; if(el.atts['after_date']) post['after_date'] = el.atts['after_date']; if(el.atts['thumb_img_type']) post['thumb_img_type'] = el.atts['thumb_img_type']; var img_size = el.tmp['def_thumb_img-'+el.atts['thumb_size']+'-url']; if(el.atts['def_thumb_img']) post['def_thumb_img'] = pagelayer_empty(img_size) ? el.tmp['def_thumb_img-url'] : img_size; if(el.atts['meta']){ var meta_arr = el.atts['meta'].split(','); jQuery.each(meta_arr, function(index, value){ post[value] = value; }); } if(pagelayer_empty(pagelayer_posts_data) || !pagelayer_compare_object(pagelayer_posts_data, post) || pagelayer_empty(pagelayer_ajax_data[el['id']])){ pagelayer_posts_data = post; jQuery.ajax({ url: pagelayer_ajax_url+'action=pagelayer_posts_data', type: 'post', data: post, success: function(data){ //console.log(data); el.$.find('.pagelayer-posts-container').html(data); pagelayer_ajax_data[el['id']] = data; if(el.atts['enable_slider']){ pagelayer_pl_posts(el.$); } } }); }else{ el.$.find('.pagelayer-posts-container').html(pagelayer_ajax_data[el['id']]); if(el.atts['enable_slider']){ pagelayer_pl_posts(el.$); } } } var pagelayer_folio_data = {}; // Render the Post portfolio function pagelayer_render_html_pl_post_folio(el){ var post = {}; post['pagelayer_nonce'] = pagelayer_ajax_nonce; if(el.atts['type']) post['post_type'] = el.atts['type']; if(el.atts['filter_by']) post['filter_by'] = el.atts['filter_by']; if(el.atts['count']) post['posts_per_page'] = el.atts['count'];// Page count if(pagelayer_empty(pagelayer_folio_data) || !pagelayer_compare_object(pagelayer_folio_data, post) || pagelayer_empty(pagelayer_ajax_data[el['id']])){ pagelayer_folio_data = post; jQuery.ajax({ url: pagelayer_ajax_url+'action=pagelayer_fetch_posts', type: 'post', data: post, success: function(data){ //console.log(data); el.$.find('.pagelayer-postfolio-section').html(data); pagelayer_ajax_data[el['id']] = data; pagelayer_post_folio(el.$); } }); }else{ el.$.find('.pagelayer-postfolio-section').html(pagelayer_ajax_data[el['id']]); } } // Render the chart function pagelayer_render_pl_chart(el){ el['atts']['xcolor'] = pagelayer_empty(el['atts']['xcolor']) ? '' : pagelayer_parse_color(el['atts']['xcolor'], false); el['atts']['ycolor'] = pagelayer_empty(el['atts']['ycolor']) ? '' : pagelayer_parse_color(el['atts']['ycolor'], false); } // Render the chart function pagelayer_render_end_pl_chart(el){ var jEle = el.$; pagelayer_chart(jEle); } // Render the chart Dataset function pagelayer_render_pl_chart_datasets(el){ el['atts']['chart_border_color'] = pagelayer_empty(el['atts']['chart_border_color']) ? '' : pagelayer_parse_color(el['atts']['chart_border_color'], false); el['atts']['bg_color'] = pagelayer_empty(el['atts']['bg_color']) ? '' : pagelayer_parse_color(el['atts']['bg_color'], false); } // Render the search form function pagelayer_render_pl_search(el){ if('placeholder' in el.atts){ el.tmp['placeholder'] = pagelayer_htmlEntities(el.atts['placeholder']); } } // Render the search form function pagelayer_render_end_pl_search(el){ pagelayer_search_form(el.$); } //var shuffleInstance1 = {}; // Render the img portfolio function pagelayer_render_end_pl_img_portfolio(el){ pagelayer_pl_img_portfolio(el.$); } // Render the img portfolio function pagelayer_render_pl_single_img(el){ jQuery(el.$).parent().attr('data-groups','["'+el.atts['cat_name']+'"]'); el.atts['func_img'] = el.tmp['img-'+el.atts['img-size']+'-url'] || el.tmp['img-url']; el.atts['func_img'] = el.atts['func_img'] || el.atts['img']; // What is the link ? if('link_type' in el.atts){ // Custom url if(el.atts['link_type'] == 'custom_url'){ el.atts['func_link'] = pagelayer_empty(el.tmp['link']) ? '' : el.tmp['link']; } // Link to the media file itself if(el.atts['link_type'] == 'media_file'){ el.atts['func_link'] = el.tmp['img-url'] || el.atts['img']; } // Lightbox if(el.atts['link_type'] == 'lightbox'){ el.atts['func_link'] = el.tmp['img-url'] || el.atts['img']; } } } // Incase if there is a lightbox function pagelayer_render_end_pl_single_img(el){ pagelayer_pl_image(el.$); } // Render the wp custom menus function pagelayer_sc_render_pl_wp_custom_menu(el){ var jEle = el.$; var params = { title: pagelayer_get_att(jEle, 'title'), nav_menu: pagelayer_get_att(jEle, 'nav_menu') }; var wp_custom_menu = jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_fetch_wp_custom_menu', type: 'POST', data: params, async: false }).responseText; jEle.find('.pagelayer-wp-custom-menu-container').html(wp_custom_menu); } // Render the pages function pagelayer_sc_render_pl_wp_pages(el){ var jEle = el.$; var params = { sortby: pagelayer_get_att(jEle, 'sortby'), exclude: pagelayer_get_att(jEle, 'exclude') } var wp_pages = jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_fetch_wp_pages', type: 'POST', data: params, async: false }).responseText; jEle.find('.pagelayer-wp-pages-title').html(pagelayer_get_att(jEle, 'title')); jEle.find('.pagelayer-wp-pages').html(wp_pages); } // Render tags function pagelayer_sc_render_pl_wp_search(el){ var jEle = el.$; var title = pagelayer_get_att(jEle, 'title'); //show title for recent comments jEle.find('.pagelayer-wp-search-title').empty().text(title); //Ajax call for fetching recent comments jQuery.ajax({ type: "POST", url: pagelayer_ajax_url+'&action=pagelayer_wp_search', success: function(response){ if(!pagelayer_empty(response)){ jEle.find('.pagelayer-wp-search-option').empty().html(response); } } }); } //render tags function pagelayer_sc_render_pl_wp_rss(el){ var jEle = el.$; var title = ''; var items = pagelayer_get_att(jEle, 'items'); var url = pagelayer_get_att(jEle, 'url'); var summary, author, date = 0; if(pagelayer_get_att(jEle, 'show_summary') == 'checked'){ summary = 1; } if(pagelayer_get_att(jEle, 'show_author') == 'checked'){ author = 1; } if(pagelayer_get_att(jEle, 'show_date') == 'checked'){ date = 1; } var t = pagelayer_get_att(jEle, 'title'); if(!pagelayer_empty(t)){ title = t; } //Ajax call for fetching recent comments jQuery.ajax({ type: "POST", url: pagelayer_ajax_url+'&action=pagelayer_wp_rss', data: {"num_items": items, "URL" : url, "summary" : summary, "author" : author, "date" : date, "title": title }, success: function(response){ if(!pagelayer_empty(response)){ jEle.find('.pagelayer-wp-rss-option').empty().html(response); } } }); } //render tags function pagelayer_sc_render_pl_wp_meta(el){ var jEle = el.$; var title = ''; var t = pagelayer_get_att(jEle, 'title'); if(!pagelayer_empty(t)){ title = t; } //Ajax call for fetching recent comments jQuery.ajax({ type: "POST", url: pagelayer_ajax_url+'&action=pagelayer_wp_meta', data: { "title": title }, success: function(response){ if(!pagelayer_empty(response)){ jEle.find('.pagelayer-wp-meta-option').empty().html(response); } } }); }; // Render the image hotspot function pagelayer_render_pl_image_hotspot(el){ // Remove animation classes el.$.find('.pagelayer-hotspots-icon-holder').removeClass (function (index, className) { return (className.match (/(^|\s)pagelayer-animation-\S+/g) || []).join(' '); }); // Decide the image URL el.tmp['img-url'] = el.tmp['img-url'] || el.atts['img']; } // Setup of image hotspot function pagelayer_render_end_pl_image_hotspot(el){ pagelayer_image_hotspot(el.$); }; // Render the table function pagelayer_render_end_pl_table(el){ pagelayer_table(el.$); }; // Render the Author Block function pagelayer_render_pl_author_box(el){ var jEle = el.$; if(el.atts['box_source'] == 'current'){ el.tmp['avatar-url'] = pagelayer_author['avatar']; el.atts['display_name'] = pagelayer_author['display_name']; el.atts['description'] = pagelayer_author['description']; el.atts['user_url'] = pagelayer_author['user_url']; }else{ el.tmp['avatar-url'] = el.tmp['avatar-url'] || el.atts['avatar']; } el.atts['display_html'] = '<'+el.atts['name_style']+'>'+el.atts['display_name']+'</'+el.atts['name_style']+'>'; }; // Render the Sitemap function pagelayer_render_pl_sitemap_item(el){ var jEle = el.$; var html_element = ''; var data_type = '', post_order = '', order = '', hier = '', depth = ''; if(el.atts['sitemap_type'] == 'post_type'){ if(pagelayer_empty(el.atts['title'])){ el.atts['title'] = 'Pages'; } data_type = el.atts['source_post']; post_order = el.atts['order_post']; order = el.atts['order']; hier = el.atts['hierarchical']; depth = el.atts['depth']; jQuery.ajax({ type: "POST", url: pagelayer_ajax_url+'&action=pagelayer_get_pages_list', data: { "type": data_type , "post_order": post_order, "order": order, "hier": hier, "depth": depth, pagelayer_nonce: pagelayer_ajax_nonce }, async:false, success: function(response){ html_element += '<div class="pagelayer-sitemap-section">'; html_element += '<span>'+el.atts['title']+'</span>'; html_element += response; html_element += '</div>'; //jEle.find('.pagelayer-sitemap-section').html(html_element); el.atts['sitemap_html'] = html_element; } }); }else{ if(pagelayer_empty(el.atts['title'])){ el.atts['title'] = 'Categories'; } data_type = el.atts['source_taxonomy']; post_order = el.atts['order_taxonomy']; order = el.atts['order']; hier = el.atts['hierarchical']; depth = el.atts['depth']; empty = el.atts['hide_empty']; jQuery.ajax({ type: "POST", url: pagelayer_ajax_url+'&action=pagelayer_get_taxonomy_list', data: { "type": data_type , "post_order": post_order, "order": order, "hier": hier, "depth": depth, "empty": empty, pagelayer_nonce: pagelayer_ajax_nonce }, async:false, success: function(response){ html_element += '<div class="pagelayer-sitemap-section">'; html_element += '<span>'+el.atts['title']+'</span>'; html_element += response; html_element += '</div>'; //jEle.find('.pagelayer-sitemap-section').html(html_element); el.atts['sitemap_html'] = html_element; } }); } }; // Render the fb button function pagelayer_render_pl_fb_btn(el){ jEle = el.$; if(el.atts['link_type'] == "current"){ el.atts['custom-url'] = pagelayer_post_permalink; } pagelayer_fb_apps(el.$); }; // Render the fb embed function pagelayer_render_pl_fb_embed(el){ pagelayer_fb_apps(el.$); }; // Render the fb page function pagelayer_render_pl_fb_page(el){ pagelayer_fb_apps(el.$); }; // Render the fb comments function pagelayer_render_pl_fb_comments(el){ jEle = el.$; if(el.atts['link_type'] == "current"){ el.atts['custom-url'] = pagelayer_post_permalink; } pagelayer_fb_apps(el.$); }; // Render the slides function pagelayer_render_end_pl_slides(el){ pagelayer_owl_destroy(el.$, '.pagelayer-slides-holder'); pagelayer_pl_slides(el.$); } // Render the Single Review function pagelayer_render_end_pl_review(el){ var jEle = el.$.find('.pagelayer-stars-container'); pagelayer_stars(jEle); } // Render the Review Slider function pagelayer_render_end_pl_review_slider(el){ pagelayer_owl_destroy(el.$, '.pagelayer-reviews-holder'); pagelayer_reviews_slider(el.$); } // Render the template content function pagelayer_render_pl_templates(el){ el.atts['template_content'] = ''; if( !pagelayer_empty(el.atts['templates']) ){ jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_apply_revision&revisionID='+el.atts['templates'], type: 'post', data: { pagelayer_nonce: pagelayer_ajax_nonce, 'pagelayer-live' : 1, }, success: function(response, status, xhr){ var obj = jQuery.parseJSON(response); if(obj['error']){ pagelayer_show_msg(obj['error'], 'error'); el.CSS.css.push({'sel': '{{element}} .pagelayer-template-content', 'val': 'min-height:20px;background-color:#e3e3e3;'}); }else{ el.$.find('.pagelayer-template-content').html(obj['content']); var selector = el.$.find('.pagelayer-template-content .pagelayer-ele'); //pagelayer_element_setup(selector, true); //selector.find('.pagelayer-ele-overlay').remove(); // Unwrap the wraps if(selector.parent().is('.pagelayer-ele-wrap')){ selector.unwrap(); } } } }); }else{ el.CSS.css.push({'sel': '{{element}} .pagelayer-template-content', 'val': 'min-height:20px;background-color:#e3e3e3;'}); } } ///////////////////////////// ////WooCommerce Shortcode Js ///////////////////////////// var product_data_timer = {}; function pagelayer_ajax_do_shortcodes(el, success){ var jEle = el.$; var shortcode_data = pagelayer_generate_sc(jEle, true); // Clear any previous timeout clearTimeout(product_data_timer[el.id]); // Set a timer for constant change product_data_timer[el.id] = setTimeout(function(){ // Make the call jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_do_shortcodes', type: 'POST', data: { pagelayer_nonce: pagelayer_ajax_nonce, shortcode_data: shortcode_data }, success: function(data){ if(typeof success == 'function'){ success(data); return; } var container = jQuery(data).find(success); if(container.length > 0){ data = container.html(); } el.$.find(success).html(data); } }); }, 200); } // Render the product image function pagelayer_render_pl_product_images(el){ el.atts['product_images_templ'] = ''; var success = function(data){ var container = jQuery(data).find('.pagelayer-product-images-container'); if(container.length > 0){ data = container.html(); } el.$.find('.pagelayer-product-images-container').html(data); jQuery(".woocommerce-product-gallery").each( function() { jQuery(this).wc_product_gallery(); }); } pagelayer_ajax_do_shortcodes(el, success); } // Render product price function pagelayer_render_pl_product_price(el){ pagelayer_ajax_do_shortcodes(el, '.pagelayer-product-price-container'); } function pagelayer_render_pl_product_short_desc(el) { pagelayer_ajax_do_shortcodes(el, '.pagelayer-product-short-desc'); } // Render product add to cart function pagelayer_render_pl_add_to_cart(el){ pagelayer_ajax_do_shortcodes(el, '.pagelayer-add-to-cart-holder'); } // Render product product meta function pagelayer_render_pl_product_meta(el){ pagelayer_ajax_do_shortcodes(el, '.pagelayer-product-meta'); } // Render product product meta function pagelayer_render_pl_product_addi_info(el){ pagelayer_ajax_do_shortcodes(el, '.pagelayer-addi-info-container'); } // Render product product meta function pagelayer_render_pl_product_data_tabs(el){ pagelayer_ajax_do_shortcodes(el, '.pagelayer-data-tabs-container'); } // Render product product rating function pagelayer_render_pl_product_rating(el){ pagelayer_ajax_do_shortcodes(el, '.pagelayer-product-rating'); } // Render the related product function pagelayer_render_pl_product_related(el){ el.atts['related_products'] = ''; pagelayer_ajax_do_shortcodes(el, '.pagelayer-product-related-container'); } // Render the WooCommerce pages function pagelayer_render_pl_woo_pages(el){ el.atts['page_content'] = ''; var shortcode =''; // if is not empty if( !pagelayer_empty(el.atts['pages']) ){ shortcode = '['+ el.atts['pages'] +']'; } jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_do_shortcodes', type: 'post', data: { pagelayer_nonce: pagelayer_ajax_nonce, shortcode_data: shortcode, }, success: function(response){ // If the content is empty if(pagelayer_empty(response)){ response = '<div class="woocommerce">Content not found</div>'; } // if is checkout page if ( 'woocommerce_checkout' === el.atts['pages'] && '<div class="woocommerce"></div>' == $content ) { response = '<div class="woocommerce">Your cart is currently empty.</div>'; } el.$.find('.pagelayer-woo-pages-container').html(response); } }); } // Render the WooCommerce pages function pagelayer_render_pl_product_categories(el){ el.atts['product_categories'] = ''; // Clear any previous timeout clearTimeout(product_data_timer[el.id]); // Set a timer for constant change product_data_timer[el.id] = setTimeout(function(){ jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_product_categories', type: 'post', data: { pagelayer_nonce: pagelayer_ajax_nonce, atts: el.atts, }, success: function(response){ el.$.find('.pagelayer-product-categories-container').html(response); } }); }, 200); } // Render the archive products function pagelayer_render_pl_product_archives(el){ el.atts['product_archives'] = ''; pagelayer_ajax_do_shortcodes(el, '.pagelayer-product-archives-container'); } // Render the products function pagelayer_render_pl_products(el){ el.atts['products_content'] = ''; // Clear any previous timeout clearTimeout(product_data_timer[el.id]); // Set a timer for constant change product_data_timer[el.id] = setTimeout(function(){ jQuery.ajax({ url: pagelayer_ajax_url+'&action=pagelayer_products_ajax', type: 'post', data: { pagelayer_nonce: pagelayer_ajax_nonce, atts: el.atts, }, success: function(response){ el.$.find('.pagelayer-products-container').html(response); } }); }, 200); } // Render the products function pagelayer_render_end_pl_woo_menu_cart(el){ var success = function(data){ var html = jQuery(data).find('.pagelayer-woo-menu-cart-container').html(); el.$.find('.pagelayer-woo-menu-cart-container').html(html); pagelayer_woo_menu_cart(el.$); } pagelayer_ajax_do_shortcodes(el, success); } // Function to sticky the element on render, if sticky attr is set pagelayer_add_action('pagelayer_sc_render_end', function(e, el){ // Is there any adding_attribute attribute then initialize in editor if(el.atts['ele_attributes']){ pagelayer_add_attributes(el); } // Is there any scrolling effects then initialize in editor if(el.atts['ele_scrolling_effects']){ pagelayer_scrolling_effects(el.$); } // Is there any mouse effects then initialize in editor if(el.atts['ele_mouse_effects']){ pagelayer_mouse_effects(el.$); } //console.log(el); if(pagelayer_empty(el.atts['ele_sticky_pos'])){return;} // Do sticky the elemen pagelayer_ele_sticky_handler(el.$); }); // Adding Custom Attributes var pagelayer_custom_attr = {}; function pagelayer_add_attributes(el){ // Remove all attributes first if(el.id in pagelayer_custom_attr){ pagelayer_custom_attr[el.id].forEach(function(item, index){ el.$.removeAttr(item); }); } pagelayer_custom_attr[el.id] = []; // Then create attributes var val = pagelayer_trim(el.atts['ele_attributes'].split(';')); val.forEach(function(item, index){ // Split from first equal only var splitValue = item.split(/=(.*)/); var attKey = pagelayer_trim(splitValue[0]); pagelayer_custom_attr[el.id].push(attKey); if(attKey.length < 1 || pagelayer_empty(attKey.match(/^[a-z_]+[\w:.-]*$/i))){ return; } if(splitValue.length < 2){ el.$.attr(attKey, ''); return; } el.$.attr(attKey, splitValue[1]); }); } // Function to always show Popup when editing the popup pagelayer_add_action('pagelayer_setup_history', function(){ if(!('pagelayer_template_type' in pagelayer_post && pagelayer_post['pagelayer_template_type'] == 'popup')){ return; } jQuery(pagelayer_editable).wrap('<div class="pagelayer-popup-modal" pagelayer-popup-editor="1">'+ '<div class="pagelayer-popup-modal-content">'+ '<div class="pagelayer-popup-content">'+ '</div>'+ '</div>'+ '</div>'); pagelayer.$$('.pagelayer-settings-icon, .pagelayer-settings').attr('pagelayer-tag', 'pl_popup'); pagelayer.$$('.pagelayer-settings').click(); pagelayer_popup_setup(jQuery('[pagelayer-popup-editor="1"]')); }); pagelayer_last_popup = {anim:'', close: ''}; // Render the pop-up function pagelayer_render_end_pl_popup(el){ // If the anim is same dont render animation again if(pagelayer_last_popup.anim == el.atts['popup_animation'] && pagelayer_last_popup.close == el.atts['popup_cbtn_position']){ return; } // Set the new type pagelayer_last_popup.anim = el.atts['popup_animation']; pagelayer_last_popup.close = el.atts['popup_cbtn_position']; var modal = el.$.closest('.pagelayer-popup-modal'); if(modal.length > 0){ pagelayer_popup_setup(modal); } } // Render the call to action widget function pagelayer_render_pl_call(el){ el.tmp['cta_image-url'] = el.tmp['cta_image-url'] || el.atts['cta_image']; } //Render before after slider function pagelayer_render_pl_before_after(el){ el.tmp['before_image-url'] = el.tmp['before_image-url'] || el.atts['before_image']; el.tmp['after_image-url'] = el.tmp['after_image-url'] || el.atts['after_image']; } function pagelayer_render_end_pl_before_after(el){ pagelayer_before_after_slider(el.$); } // Render the image map function pagelayer_render_pl_image_map(el){ el.atts['map_img_id'] = el.tmp['img_map-id-'+el.atts['img_map-size']+'-url'] || el.tmp['map_img-id-url']; el.atts['map_img_id'] = el.atts['map_img_id'] || el.atts['map_img-id']; el.atts['pagelayer-srcset'] = el.atts['map_img_id']+', '+el.atts['map_img_id']+' 1x, '; if (el.atts['pagelayer_image_map']) { el.atts['pagelayer_map_path'] = ''; for (const key in el.atts['pagelayer_image_map']) { const data_cord = el.atts['pagelayer_image_map'][key]?.path || ''; const data_id = key; const data_link = el.atts['pagelayer_image_map'][key]?.link || ''; el.atts['pagelayer_map_path'] += `<path class='pagelayer-imgmap-item' d='${data_cord}' stroke-width='2' data-cord='${data_cord}' data-id='${data_id}' fill-opacity='0.3' fill-rule='evenodd' data-link='${data_link}'></path>`; } } var image_atts = { name : 'map_img-id', size : 'img_map-size' }; pagelayer_get_img_src(el, image_atts); } function pagelayer_render_end_pl_image_map(el){ // Re-render image maps pagelayer_pl_image_map(el.$); // Re-render image map handler pagelayer_imgmap_handler(el.$); } // Image Map handler function pagelayer_imgmap_handler(jEle){ var mapObj = pagelayer_get_att(jEle,'pagelayer_image_map') || {}, sEle = jEle.find('svg'), cordWrap = jEle.find('.pagelayer-imgmap-coordinates-wraper'), toolbar = jEle.find('.pagelayer-imgmap-toolbar'), wrap = jEle.find('.pagelayer-imgmap-wrapper'); // Cords drag handler var handle_cord_drag = function(jEle){ var cordEle = jEle.find('.pagelayer-imgmap-coord'); var isDragging = false; const stopDragging = () => { isDragging = false; cordEle.removeClass('pagelayer-mapele-dragging').off('mouseup click'); jQuery(document).off('mouseup.imgmap'); }; cordEle.off('mousedown').on('mousedown', function (e) { e.stopPropagation(); e.preventDefault(); if (jQuery(e.target).hasClass('pagelayer-imgmap-remove-cord')) return; isDragging = true; jQuery(this).addClass('pagelayer-mapele-dragging').mouseup(stopDragging).click(stopDragging); jQuery(document).on('mouseup.imgmap', stopDragging); sEle.off('mouseup mousemove'); sEle.mouseup(function(e){ isdragging = false; }); sEle.mousemove(function (e) { if (!isDragging) return; const dragEle = jEle.find('.pagelayer-imgmap-coord.pagelayer-mapele-dragging'); if (!dragEle.length) return; const xPer = ((e.offsetX / wrap.width()) * 100).toFixed(2); const yPer = ((e.offsetY / wrap.height()) * 100).toFixed(2); dragEle.css({ left: `${xPer}%`, top: `${yPer}%` }); update_active_element_coordinates(xPer, yPer, dragEle.data('id')); }); }); } // Update active element's coordinates var update_active_element_coordinates = function(x, y, id){ const activeEle = jEle.find('.pagelayer-imgmap-item.pagelayer-map-item-active'); const coords = activeEle.attr('data-cord').split(','); coords.splice(id * 2, 2, x, y); activeEle.attr('data-cord', coords.join(',')); pagelayer_resize_imgmap(jEle); }; // Delete cord handler var cord_delete_handler = function(e){ e.stopPropagation(); const parent = jQuery(this).parent(); const cordPos = parent.attr('data-id'); const activeEle = sEle.find('.pagelayer-map-item-active'); const activeEleId = activeEle.attr('data-id'); // Remove coordinates const cords = activeEle.attr('data-cord').split(','); cords.splice(cordPos * 2, 2); activeEle.attr('data-cord', cords.join(',')); parent.remove(); // Reindex coordinates and resize the image map jEle.find(`.pl-cord-${activeEleId}`).each((index, elem) => { jQuery(elem).attr('data-id', index); }); pagelayer_resize_imgmap(jEle); } // Map items click handler var handleClick = function(){ if(sEle.find('.pagelayer-map-item-active').length > 0){ return; } sEle.find('.pagelayer-map-item-active_is_editable').removeClass('pagelayer-map-item-active_is_editable') var imageMapItem = jQuery(this).addClass('pagelayer-map-item-active_is_editable'); set_toolbar_editable(true, 'selected'); // Edit map item toolbar.find('.pagelayer-map_edit').off('click').on('click', function (e){ e.preventDefault(); editItem(imageMapItem); }); jEle.on('click.handleOutsideClick', function(event){ event.preventDefault(); if(sEle.find('.pagelayer-map-item-active').length > 0){ return; } if(!jQuery(event.target).hasClass('pagelayer-imgmap-item')){ imageMapItem.removeClass('pagelayer-map-item-active_is_editable'); set_toolbar_editable(false, 'selected'); set_toolbar_editable(false); jEle.off('click.handleOutsideClick'); } }); } // Remove image map item var remove_map_item = function(id){ if(id in mapObj) delete mapObj[id]; pagelayer_set_atts(jEle, 'pagelayer_image_map', mapObj); handle_navigator(id, 'delete'); cordWrap.find('.pl-cord-'+id).remove(); jEle.find('.pagelayer-imgmap-item[data-id="'+id+'"]').remove(); } // Edit Map Item var editItem = function(imageMapItem){ setTimeout(() => { set_toolbar_editable(true); imageMapItem.removeClass('pagelayer-map-item-active_is_editable').addClass('pagelayer-map-item-active'); sEle.css('cursor', 'crosshair'); var updatedActId = imageMapItem.attr('data-id'); var link = (mapObj[updatedActId] && mapObj[updatedActId].link && mapObj[updatedActId].link.length > 0) ? mapObj[updatedActId].link : ''; if (link.length > 0) toolbar.find('.pagelayer-map_href').css('color', 'blue'); cordWrap.find(`.pl-cord-${updatedActId}`).show(); toolbar.find('.pagelayer-imgmap-toolbar-link input[type=text]').val(link); handle_navigator(updatedActId, 'set_active'); handle_cord_drag(jEle); cordWrap.find('.pagelayer-imgmap-remove-cord').off('click').on('click', cord_delete_handler); }, 100); } // Add Toolbar if(toolbar.length < 1){ var toolbarHtml = `<div class="pagelayer-imgmap-toolbar"> <span class="pagelayer-imgmap-toolbar-mover" title="Drag Toolbar"></span> <button class="pagelayer-imgmap-toolbar-item pagelayer-map_append" title="Add"><i class="fas fa-plus"></i></button> <button class="pagelayer-imgmap-toolbar-item pagelayer-map_save" title="Save"><i class="fas fa-check"></i></button> <button class="pagelayer-imgmap-toolbar-item pagelayer-map_edit" title="Edit"><i class="fas fa-edit"></i></button> <button class="pagelayer-imgmap-toolbar-item pagelayer-map_href" title="Insert Link"><i class="fas fa-link"></i></button> <button class="pagelayer-imgmap-toolbar-item pagelayer-map_remove" title="Delete"><i class="fas fa-trash"></i></button> <div class="pagelayer-imgmap-toolbar-link"> <input type="text" name="url" placeholder="https://example.com" autocomplete="off"> <span class="pagelayer-imgmap-save-link pagelayer-btn-success">Save</span> </div> <button class="pagelayer-map-list-trigger" title="Navigator"><i class="fas fa-sitemap"></i></button> <div class="pagelayer-imgmap-navigator"> <div class="pagelayer-imgmap-navigator-header"> <i class="fas fa-sitemap"></i><span>Navigator</span> <span class="fa fa-remove pagelayer-imgmap-navigator-close"></span> </div> <div class="pagelayer-imgmap-navigator-wrap"></div> </div> </div>`; toolbar = wrap.append(toolbarHtml).find('.pagelayer-imgmap-toolbar'); } var linkWrap = toolbar.find('.pagelayer-imgmap-toolbar-link'), linkEle = linkWrap.find('input[type="text"]'), navigator = toolbar.find('.pagelayer-imgmap-navigator'), navigatorWrap = navigator.find('.pagelayer-imgmap-navigator-wrap'); // Change mode of Toolbar var set_toolbar_editable = function(on = true, mode = 'edit'){ var edit = mode; var select = mode == 'edit'? 'selected' : 'edit'; // Toggle editing options if(on){ toolbar.addClass('pagelayer-imgmap-'+edit); toolbar.removeClass('pagelayer-imgmap-'+select); return; } toolbar.removeClass('pagelayer-imgmap-'+edit); } // On move Toolbar toolbar.find('.pagelayer-imgmap-toolbar-mover').off('mousedown').on('mousedown', e => { e.preventDefault(); toolbar.addClass('pagelayer-imgmap-toolbar-dragging'); sEle.on('mousemove', e => { toolbar.hasClass('pagelayer-imgmap-toolbar-dragging') && toolbar.css({ left: `${e.offsetX - 5}px`, top: `${e.offsetY - 5}px` }); }); jQuery(document).off('mousedown.pl_svg_ele').on('mouseup.pl_svg_ele', () => { toolbar.removeClass('pagelayer-imgmap-toolbar-dragging'); sEle.off('mousemove'); }); }); // Toolbar actions toolbar.find('.pagelayer-imgmap-toolbar-item').off('click').on('click', function(e){ e.stopPropagation(); var tEle = jQuery(this), activeEle = sEle.find('.pagelayer-map-item-active'), actEleId = activeEle.attr('data-id'), isEditing = false; if(linkEle.length < 1) toolbar.find('.pagelayer-map_href').css('color', 'inherit'); sEle.css('cursor','initial'); // Add new map item if(tEle.hasClass('pagelayer-map_append')){ var eleId = pagelayer_randstr(6), attrs = [ ['d',''], ['data-id', eleId], ['stroke-linejoin', 'round'], ['fill-rule', 'evenodd'], ['fill-opacity', '0.3'], ['stroke-width', '2'], ['data-cord', '{{data}}'], ['data-link', '{{link_href}}'] ], pathEle = pagelayer_create_imgmap_svg(['pagelayer-imgmap-item', 'pagelayer-map-item-active'], attrs); handle_navigator(eleId, 'append', true); sEle.find('g')[0].appendChild(pathEle); sEle.find('.pagelayer-imgmap-item').on('click', handleClick); isEditing = true; } // Remove map item if(tEle.hasClass('pagelayer-map_remove')){ let activeId = sEle.find('.pagelayer-map-item-active, .pagelayer-map-item-active_is_editable').attr('data-id'); remove_map_item(activeId); } // Link to map item if(tEle.hasClass('pagelayer-map_href')){ toolbar.find('.pagelayer-imgmap-toolbar-link').fadeToggle(); isEditing = true; } // Save map item cords if(tEle.hasClass('pagelayer-map_save')){ if(cordWrap.find('.pl-cord-' + actEleId).length < 3){ return alert('Please draw at least 3 coordinates!'); } var finalValues = activeEle.attr('data-cord') || '', currentItem = navigatorWrap.find(`.pagelayer-imgmap-navigator-item[data-id="${actEleId}"]`), title = currentItem.find('.pagelayer-imgmap-navigator-title').text(); mapObj[actEleId] = mapObj[actEleId] || {}; mapObj[actEleId].path = finalValues || ''; mapObj[actEleId].title = title || ''; pagelayer_set_atts(jEle, 'pagelayer_image_map', mapObj); jQuery('.pagelayer-map_href').css('color', linkWrap.css('display') == 'block' && linkEle.val() ? 'blue' : 'inherit'); handle_navigator(actEleId, 'reset_active'); cordWrap.find('.pl-cord-' + actEleId).hide(); cordWrap.find('.pagelayer-imgmap-coord').removeClass('pagelayer-mapele-dragging'); sEle.find('.pagelayer-imgmap-item').removeClass('pagelayer-map-item-active'); } // Toggle editing options set_toolbar_editable(isEditing); }); // Save link of map items jEle.find('.pagelayer-imgmap-save-link').click(function() { let parent = jQuery(this).parent(); let actEleId = sEle.find('.pagelayer-map-item-active').data('id'); mapObj = mapObj || {}; (mapObj[actEleId] = mapObj[actEleId] || {}).link = parent.find('input').val() || ''; parent.fadeOut(); }); // SVG click handler and add new cords to map items sEle.off('click').on('click', function(e){ var activeEle = sEle.find('.pagelayer-map-item-active'); if(activeEle.length < 1){ toolbar.css({ left: e.offsetX - 15, top: e.offsetY - 40 }); return; } linkEle.val(''); // Reset Link field sEle.css('cursor','crosshair'); // Change cursor property var [mapWidth, mapHeight] = [wrap.width(), wrap.height()]; var [xPer, yPer] = [(e.offsetX / mapWidth * 100).toFixed(2), (e.offsetY / mapHeight * 100).toFixed(2)]; var coords = (activeEle.attr('data-cord') || ''); coords = (coords == '{{data}}' || coords == '') ? [] : coords.split(','); coords.push(xPer, yPer); activeEle.attr('data-cord', coords); // Append cordinates const cordLen = cordWrap.find(`.pl-cord-${activeEle.attr('data-id')}`).length; const coordHTML = `<div class="pagelayer-imgmap-coord pl-cord-${activeEle.attr('data-id')}" title="Drag to reposition" data-id="${cordLen}" style="left:${e.offsetX}px; top:${e.offsetY}px;"> <span class="pagelayer-imgmap-remove-cord fa fa-trash"></span> </div>`; cordWrap.append(coordHTML); setTimeout(() => pagelayer_resize_imgmap(jEle), 100); handle_cord_drag(jEle); cordWrap.find('.pagelayer-imgmap-remove-cord').off('click mousedown').on('click', cord_delete_handler); }); // Map items click handler sEle.find('.pagelayer-imgmap-item').on('click', handleClick); // Toggle navigator toolbar.find('.pagelayer-map-list-trigger').off('click').on('click', function(){ navigator.toggle(); }); navigator.find('.pagelayer-imgmap-navigator-close').on('click',function(){ navigator.hide(); }); // Navigator item move handler var navigator_move_item = function(curEle, is_next = false) { const arr = Object.keys(mapObj); const curPos = arr.indexOf(curEle); if (curPos === -1 || (curPos === 0 && !is_next) || (curPos === arr.length - 1 && is_next)) { return false; } const swapIndex = is_next ? curPos + 1 : curPos - 1; [arr[curPos], arr[swapIndex]] = [arr[swapIndex], arr[curPos]] mapObj = arr.reduce((newEl, key) => ({ ...newEl, [key]: mapObj[key] }), {}); pagelayer_set_atts(jEle, 'pagelayer_image_map', mapObj); const elem = jEle.find(`path[data-id="${curEle}"]`); is_next ? elem.next().after(elem) : elem.prev().before(elem); return true; } // Navigator handler var handle_navigator = function(id, opr = 'append', is_active = false){ if (!id) return; const item = navigatorWrap.find(`.pagelayer-imgmap-navigator-item[data-id="${id}"]`); switch(opr){ case 'append': if (item.length > 0) return; const wrapItems = navigatorWrap.children('.pagelayer-imgmap-navigator-item').length + 1; const cls = is_active ? 'pagelayer-navigator-item-active' : ''; const title = mapObj[id]?.title || `Map Item ${wrapItems}`; const content = ` <div class="pagelayer-imgmap-navigator-item ${cls}" data-id="${id}"> <div data-id="${id}" class="pagelayer-imgmap-navigator-item-drag"><i class="fas fa-th-list"></i></div> <div class="pagelayer-imgmap-navigator-title">${title}</div> <div class="pagelayer-imgmap-navigator-actions"> ${['Move Up', 'Edit', 'Delete', 'Move Down'].map((action, i) => ` <button value="${id}" class="pagelayer-map-navigator-trigger ${['navigator_move_up', 'navigator_pagelayer-map_edit', 'navigator_pagelayer-map_remove', 'navigator_move_down'][i]}" title="${action}"> <i class="${['fa fa-arrow-up', 'fa fa-pencil', 'fas fa-trash', 'fa fa-arrow-down'][i]}"></i> </button>`).join('')} </div> </div>`; navigatorWrap.append(content); var trigger = navigatorWrap.find('.pagelayer-map-navigator-trigger'); trigger.off('click').on('click', function(e){ e.stopPropagation(); var eleId = jQuery(this).val(); if(jQuery(this).hasClass('navigator_pagelayer-map_edit')){ const activeEle = sEle.find('.pagelayer-map-item-active'); // Multi Item editing if(activeEle.length > 0){ if(eleId === activeEle.attr('data-id')) return; toolbar.find('.pagelayer-imgmap-toolbar-item.pagelayer-map_save').click(); } let iEle = jEle.find(`.pagelayer-imgmap-item[data-id="${eleId}"]`); iEle.on('click', editItem(iEle)); }else if (jQuery(this).hasClass('navigator_move_down') || jQuery(this).hasClass('navigator_move_up')){ const par = jQuery(this).closest('.pagelayer-imgmap-navigator-item'); const moveUp = jQuery(this).hasClass('navigator_move_up'); const sibling = moveUp ? par.prev() : par.next(); if(sibling.length > 0){ navigator_move_item(eleId, !moveUp); moveUp ? sibling.before(par) : sibling.after(par); } }else if(jQuery(this).hasClass('navigator_pagelayer-map_remove')){ remove_map_item(eleId); toolbar.removeClass('pagelayer-imgmap-edit'); } }); // Make title editable navigatorWrap.find(`.pagelayer-imgmap-navigator-item[data-id="${id}"] .pagelayer-imgmap-navigator-title`).off('blur').on('click', function (){ const editable = jQuery(this).attr('contenteditable', 'true').focus(); const oldVal = editable.text().trim(); editable.on('blur', function (e) { const newValue = editable.text().trim(); if (!newValue) { alert('Error changing title'); editable.text(oldVal); }else{ mapObj[id].title = newValue; pagelayer_set_atts(jEle, 'pagelayer_image_map', mapObj); } editable.attr('contenteditable', 'false').off('blur'); }); }); break; case 'delete': item.remove(); break; case 'reset_active': navigatorWrap.find('.pagelayer-imgmap-navigator-item').removeClass('pagelayer-navigator-item-active'); break; case 'set_active': if(!item.hasClass('pagelayer-navigator-item-active')){ item.addClass('pagelayer-navigator-item-active'); jQuery('.pagelayer-imgmap-navigator-wrap').animate({ scrollTop: 0 }); } break; } } // Build Navigator if(Object.keys(mapObj).length > 0){ for (var mapId in mapObj) { handle_navigator(mapId); } } pagelayer_resize_imgmap(jEle); jQuery(window).on('resize', function(){pagelayer_resize_imgmap(jEle)}); } jquery.qrcode.min.js 0000644 00000051431 15104636317 0010471 0 ustar 00 /* jQuery.qrcode 0.12.0 - http://larsjung.de/jquery-qrcode/ - uses //github.com/kazuhikoarase/qrcode-generator (MIT) */ !function(r){"use strict";function t(t,e,n,o){function i(r,t){return r-=o,t-=o,0>r||r>=u||0>t||t>=u?!1:a.isDark(r,t)}var a=r(n,e);a.addData(t),a.make(),o=o||0;var u=a.getModuleCount(),f=a.getModuleCount()+2*o,c=function(r,t,e,n){var o=this.isDark,i=1/f;this.isDark=function(a,u){var f=u*i,c=a*i,l=f+i,g=c+i;return o(a,u)&&(r>l||f>e||t>g||c>n)}};this.text=t,this.level=e,this.version=n,this.moduleCount=f,this.isDark=i,this.addBlank=c}function e(r,e,n,o,i){n=Math.max(1,n||1),o=Math.min(40,o||40);for(var a=n;o>=a;a+=1)try{return new t(r,e,a,i)}catch(u){}}function n(r,t,e){var n=e.size,o="bold "+e.mSize*n+"px "+e.fontname,i=w("<canvas/>")[0].getContext("2d");i.font=o;var a=i.measureText(e.label).width,u=e.mSize,f=a/n,c=(1-f)*e.mPosX,l=(1-u)*e.mPosY,g=c+f,s=l+u,h=.01;1===e.mode?r.addBlank(0,l-h,n,s+h):r.addBlank(c-h,l-h,g+h,s+h),t.fillStyle=e.fontcolor,t.font=o,t.fillText(e.label,c*n,l*n+.75*e.mSize*n)}function o(r,t,e){var n=e.size,o=e.image.naturalWidth||1,i=e.image.naturalHeight||1,a=e.mSize,u=a*o/i,f=(1-u)*e.mPosX,c=(1-a)*e.mPosY,l=f+u,g=c+a,s=.01;3===e.mode?r.addBlank(0,c-s,n,g+s):r.addBlank(f-s,c-s,l+s,g+s),t.drawImage(e.image,f*n,c*n,u*n,a*n)}function i(r,t,e){w(e.background).is("img")?t.drawImage(e.background,0,0,e.size,e.size):e.background&&(t.fillStyle=e.background,t.fillRect(e.left,e.top,e.size,e.size));var i=e.mode;1===i||2===i?n(r,t,e):(3===i||4===i)&&o(r,t,e)}function a(r,t,e,n,o,i,a,u){r.isDark(a,u)&&t.rect(n,o,i,i)}function u(r,t,e,n,o,i,a,u,f,c){a?r.moveTo(t+i,e):r.moveTo(t,e),u?(r.lineTo(n-i,e),r.arcTo(n,e,n,o,i)):r.lineTo(n,e),f?(r.lineTo(n,o-i),r.arcTo(n,o,t,o,i)):r.lineTo(n,o),c?(r.lineTo(t+i,o),r.arcTo(t,o,t,e,i)):r.lineTo(t,o),a?(r.lineTo(t,e+i),r.arcTo(t,e,n,e,i)):r.lineTo(t,e)}function f(r,t,e,n,o,i,a,u,f,c){a&&(r.moveTo(t+i,e),r.lineTo(t,e),r.lineTo(t,e+i),r.arcTo(t,e,t+i,e,i)),u&&(r.moveTo(n-i,e),r.lineTo(n,e),r.lineTo(n,e+i),r.arcTo(n,e,n-i,e,i)),f&&(r.moveTo(n-i,o),r.lineTo(n,o),r.lineTo(n,o-i),r.arcTo(n,o,n-i,o,i)),c&&(r.moveTo(t+i,o),r.lineTo(t,o),r.lineTo(t,o-i),r.arcTo(t,o,t+i,o,i))}function c(r,t,e,n,o,i,a,c){var l=r.isDark,g=n+i,s=o+i,h=e.radius*i,v=a-1,d=a+1,w=c-1,m=c+1,p=l(a,c),y=l(v,w),T=l(v,c),B=l(v,m),A=l(a,m),E=l(d,m),k=l(d,c),M=l(d,w),C=l(a,w);p?u(t,n,o,g,s,h,!T&&!C,!T&&!A,!k&&!A,!k&&!C):f(t,n,o,g,s,h,T&&C&&y,T&&A&&B,k&&A&&E,k&&C&&M)}function l(r,t,e){var n,o,i=r.moduleCount,u=e.size/i,f=a;for(p&&e.radius>0&&e.radius<=.5&&(f=c),t.beginPath(),n=0;i>n;n+=1)for(o=0;i>o;o+=1){var l=e.left+o*u,g=e.top+n*u,s=u;f(r,t,e,l,g,s,n,o)}if(w(e.fill).is("img")){t.strokeStyle="rgba(0,0,0,0.5)",t.lineWidth=2,t.stroke();var h=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",t.fill(),t.globalCompositeOperation=h,t.clip(),t.drawImage(e.fill,0,0,e.size,e.size),t.restore()}else t.fillStyle=e.fill,t.fill()}function g(r,t){var n=e(t.text,t.ecLevel,t.minVersion,t.maxVersion,t.quiet);if(!n)return null;var o=w(r).data("qrcode",n),a=o[0].getContext("2d");return i(n,a,t),l(n,a,t),o}function s(r){var t=w("<canvas/>").attr("width",r.size).attr("height",r.size);return g(t,r)}function h(r){return w("<img/>").attr("src",s(r)[0].toDataURL("image/png"))}function v(r){var t=e(r.text,r.ecLevel,r.minVersion,r.maxVersion,r.quiet);if(!t)return null;var n,o,i=r.size,a=r.background,u=Math.floor,f=t.moduleCount,c=u(i/f),l=u(.5*(i-c*f)),g={position:"relative",left:0,top:0,padding:0,margin:0,width:i,height:i},s={position:"absolute",padding:0,margin:0,width:c,height:c,"background-color":r.fill},h=w("<div/>").data("qrcode",t).css(g);for(a&&h.css("background-color",a),n=0;f>n;n+=1)for(o=0;f>o;o+=1)t.isDark(n,o)&&w("<div/>").css(s).css({left:l+o*c,top:l+n*c}).appendTo(h);return h}function d(r){return m&&"canvas"===r.render?s(r):m&&"image"===r.render?h(r):v(r)}var w=jQuery,m=function(){var r=document.createElement("canvas");return Boolean(r.getContext&&r.getContext("2d"))}(),p="[object Opera]"!==Object.prototype.toString.call(window.opera),y={render:"canvas",minVersion:1,maxVersion:40,ecLevel:"L",left:0,top:0,size:200,fill:"#000",background:null,text:"no text",radius:0,quiet:0,mode:0,mSize:.1,mPosX:.5,mPosY:.5,label:"no label",fontname:"sans",fontcolor:"#000",image:null};w.fn.qrcode=function(r){var t=w.extend({},y,r);return this.each(function(){"canvas"===this.nodeName.toLowerCase()?g(this,t):w(this).append(d(t))})}}(function(){var r=function(){function r(t,e){if("undefined"==typeof t.length)throw new Error(t.length+"/"+e);var n=function(){for(var r=0;r<t.length&&0==t[r];)r+=1;for(var n=new Array(t.length-r+e),o=0;o<t.length-r;o+=1)n[o]=t[o+r];return n}(),o={};return o.getAt=function(r){return n[r]},o.getLength=function(){return n.length},o.multiply=function(t){for(var e=new Array(o.getLength()+t.getLength()-1),n=0;n<o.getLength();n+=1)for(var i=0;i<t.getLength();i+=1)e[n+i]^=a.gexp(a.glog(o.getAt(n))+a.glog(t.getAt(i)));return r(e,0)},o.mod=function(t){if(o.getLength()-t.getLength()<0)return o;for(var e=a.glog(o.getAt(0))-a.glog(t.getAt(0)),n=new Array(o.getLength()),i=0;i<o.getLength();i+=1)n[i]=o.getAt(i);for(var i=0;i<t.getLength();i+=1)n[i]^=a.gexp(a.glog(t.getAt(i))+e);return r(n,0).mod(t)},o}var t=function(t,e){var o=236,a=17,l=t,g=n[e],s=null,h=0,d=null,w=new Array,m={},p=function(r,t){h=4*l+17,s=function(r){for(var t=new Array(r),e=0;r>e;e+=1){t[e]=new Array(r);for(var n=0;r>n;n+=1)t[e][n]=null}return t}(h),y(0,0),y(h-7,0),y(0,h-7),A(),B(),k(r,t),l>=7&&E(r),null==d&&(d=D(l,g,w)),M(d,t)},y=function(r,t){for(var e=-1;7>=e;e+=1)if(!(-1>=r+e||r+e>=h))for(var n=-1;7>=n;n+=1)-1>=t+n||t+n>=h||(e>=0&&6>=e&&(0==n||6==n)||n>=0&&6>=n&&(0==e||6==e)||e>=2&&4>=e&&n>=2&&4>=n?s[r+e][t+n]=!0:s[r+e][t+n]=!1)},T=function(){for(var r=0,t=0,e=0;8>e;e+=1){p(!0,e);var n=i.getLostPoint(m);(0==e||r>n)&&(r=n,t=e)}return t},B=function(){for(var r=8;h-8>r;r+=1)null==s[r][6]&&(s[r][6]=r%2==0);for(var t=8;h-8>t;t+=1)null==s[6][t]&&(s[6][t]=t%2==0)},A=function(){for(var r=i.getPatternPosition(l),t=0;t<r.length;t+=1)for(var e=0;e<r.length;e+=1){var n=r[t],o=r[e];if(null==s[n][o])for(var a=-2;2>=a;a+=1)for(var u=-2;2>=u;u+=1)-2==a||2==a||-2==u||2==u||0==a&&0==u?s[n+a][o+u]=!0:s[n+a][o+u]=!1}},E=function(r){for(var t=i.getBCHTypeNumber(l),e=0;18>e;e+=1){var n=!r&&1==(t>>e&1);s[Math.floor(e/3)][e%3+h-8-3]=n}for(var e=0;18>e;e+=1){var n=!r&&1==(t>>e&1);s[e%3+h-8-3][Math.floor(e/3)]=n}},k=function(r,t){for(var e=g<<3|t,n=i.getBCHTypeInfo(e),o=0;15>o;o+=1){var a=!r&&1==(n>>o&1);6>o?s[o][8]=a:8>o?s[o+1][8]=a:s[h-15+o][8]=a}for(var o=0;15>o;o+=1){var a=!r&&1==(n>>o&1);8>o?s[8][h-o-1]=a:9>o?s[8][15-o-1+1]=a:s[8][15-o-1]=a}s[h-8][8]=!r},M=function(r,t){for(var e=-1,n=h-1,o=7,a=0,u=i.getMaskFunction(t),f=h-1;f>0;f-=2)for(6==f&&(f-=1);;){for(var c=0;2>c;c+=1)if(null==s[n][f-c]){var l=!1;a<r.length&&(l=1==(r[a]>>>o&1));var g=u(n,f-c);g&&(l=!l),s[n][f-c]=l,o-=1,-1==o&&(a+=1,o=7)}if(n+=e,0>n||n>=h){n-=e,e=-e;break}}},C=function(t,e){for(var n=0,o=0,a=0,u=new Array(e.length),f=new Array(e.length),c=0;c<e.length;c+=1){var l=e[c].dataCount,g=e[c].totalCount-l;o=Math.max(o,l),a=Math.max(a,g),u[c]=new Array(l);for(var s=0;s<u[c].length;s+=1)u[c][s]=255&t.getBuffer()[s+n];n+=l;var h=i.getErrorCorrectPolynomial(g),v=r(u[c],h.getLength()-1),d=v.mod(h);f[c]=new Array(h.getLength()-1);for(var s=0;s<f[c].length;s+=1){var w=s+d.getLength()-f[c].length;f[c][s]=w>=0?d.getAt(w):0}}for(var m=0,s=0;s<e.length;s+=1)m+=e[s].totalCount;for(var p=new Array(m),y=0,s=0;o>s;s+=1)for(var c=0;c<e.length;c+=1)s<u[c].length&&(p[y]=u[c][s],y+=1);for(var s=0;a>s;s+=1)for(var c=0;c<e.length;c+=1)s<f[c].length&&(p[y]=f[c][s],y+=1);return p},D=function(r,t,e){for(var n=u.getRSBlocks(r,t),c=f(),l=0;l<e.length;l+=1){var g=e[l];c.put(g.getMode(),4),c.put(g.getLength(),i.getLengthInBits(g.getMode(),r)),g.write(c)}for(var s=0,l=0;l<n.length;l+=1)s+=n[l].dataCount;if(c.getLengthInBits()>8*s)throw new Error("code length overflow. ("+c.getLengthInBits()+">"+8*s+")");for(c.getLengthInBits()+4<=8*s&&c.put(0,4);c.getLengthInBits()%8!=0;)c.putBit(!1);for(;;){if(c.getLengthInBits()>=8*s)break;if(c.put(o,8),c.getLengthInBits()>=8*s)break;c.put(a,8)}return C(c,n)};return m.addData=function(r){var t=c(r);w.push(t),d=null},m.isDark=function(r,t){if(0>r||r>=h||0>t||t>=h)throw new Error(r+","+t);return s[r][t]},m.getModuleCount=function(){return h},m.make=function(){p(!1,T())},m.createTableTag=function(r,t){r=r||2,t="undefined"==typeof t?4*r:t;var e="";e+='<table style="',e+=" border-width: 0px; border-style: none;",e+=" border-collapse: collapse;",e+=" padding: 0px; margin: "+t+"px;",e+='">',e+="<tbody>";for(var n=0;n<m.getModuleCount();n+=1){e+="<tr>";for(var o=0;o<m.getModuleCount();o+=1)e+='<td style="',e+=" border-width: 0px; border-style: none;",e+=" border-collapse: collapse;",e+=" padding: 0px; margin: 0px;",e+=" width: "+r+"px;",e+=" height: "+r+"px;",e+=" background-color: ",e+=m.isDark(n,o)?"#000000":"#ffffff",e+=";",e+='"/>';e+="</tr>"}return e+="</tbody>",e+="</table>"},m.createImgTag=function(r,t){r=r||2,t="undefined"==typeof t?4*r:t;var e=m.getModuleCount()*r+2*t,n=t,o=e-t;return v(e,e,function(t,e){if(t>=n&&o>t&&e>=n&&o>e){var i=Math.floor((t-n)/r),a=Math.floor((e-n)/r);return m.isDark(a,i)?0:1}return 1})},m};t.stringToBytes=function(r){for(var t=new Array,e=0;e<r.length;e+=1){var n=r.charCodeAt(e);t.push(255&n)}return t},t.createStringToBytes=function(r,t){var e=function(){for(var e=s(r),n=function(){var r=e.read();if(-1==r)throw new Error;return r},o=0,i={};;){var a=e.read();if(-1==a)break;var u=n(),f=n(),c=n(),l=String.fromCharCode(a<<8|u),g=f<<8|c;i[l]=g,o+=1}if(o!=t)throw new Error(o+" != "+t);return i}(),n="?".charCodeAt(0);return function(r){for(var t=new Array,o=0;o<r.length;o+=1){var i=r.charCodeAt(o);if(128>i)t.push(i);else{var a=e[r.charAt(o)];"number"==typeof a?(255&a)==a?t.push(a):(t.push(a>>>8),t.push(255&a)):t.push(n)}}return t}};var e={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},n={L:1,M:0,Q:3,H:2},o={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},i=function(){var t=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],n=1335,i=7973,u=21522,f={},c=function(r){for(var t=0;0!=r;)t+=1,r>>>=1;return t};return f.getBCHTypeInfo=function(r){for(var t=r<<10;c(t)-c(n)>=0;)t^=n<<c(t)-c(n);return(r<<10|t)^u},f.getBCHTypeNumber=function(r){for(var t=r<<12;c(t)-c(i)>=0;)t^=i<<c(t)-c(i);return r<<12|t},f.getPatternPosition=function(r){return t[r-1]},f.getMaskFunction=function(r){switch(r){case o.PATTERN000:return function(r,t){return(r+t)%2==0};case o.PATTERN001:return function(r,t){return r%2==0};case o.PATTERN010:return function(r,t){return t%3==0};case o.PATTERN011:return function(r,t){return(r+t)%3==0};case o.PATTERN100:return function(r,t){return(Math.floor(r/2)+Math.floor(t/3))%2==0};case o.PATTERN101:return function(r,t){return r*t%2+r*t%3==0};case o.PATTERN110:return function(r,t){return(r*t%2+r*t%3)%2==0};case o.PATTERN111:return function(r,t){return(r*t%3+(r+t)%2)%2==0};default:throw new Error("bad maskPattern:"+r)}},f.getErrorCorrectPolynomial=function(t){for(var e=r([1],0),n=0;t>n;n+=1)e=e.multiply(r([1,a.gexp(n)],0));return e},f.getLengthInBits=function(r,t){if(t>=1&&10>t)switch(r){case e.MODE_NUMBER:return 10;case e.MODE_ALPHA_NUM:return 9;case e.MODE_8BIT_BYTE:return 8;case e.MODE_KANJI:return 8;default:throw new Error("mode:"+r)}else if(27>t)switch(r){case e.MODE_NUMBER:return 12;case e.MODE_ALPHA_NUM:return 11;case e.MODE_8BIT_BYTE:return 16;case e.MODE_KANJI:return 10;default:throw new Error("mode:"+r)}else{if(!(41>t))throw new Error("type:"+t);switch(r){case e.MODE_NUMBER:return 14;case e.MODE_ALPHA_NUM:return 13;case e.MODE_8BIT_BYTE:return 16;case e.MODE_KANJI:return 12;default:throw new Error("mode:"+r)}}},f.getLostPoint=function(r){for(var t=r.getModuleCount(),e=0,n=0;t>n;n+=1)for(var o=0;t>o;o+=1){for(var i=0,a=r.isDark(n,o),u=-1;1>=u;u+=1)if(!(0>n+u||n+u>=t))for(var f=-1;1>=f;f+=1)0>o+f||o+f>=t||(0!=u||0!=f)&&a==r.isDark(n+u,o+f)&&(i+=1);i>5&&(e+=3+i-5)}for(var n=0;t-1>n;n+=1)for(var o=0;t-1>o;o+=1){var c=0;r.isDark(n,o)&&(c+=1),r.isDark(n+1,o)&&(c+=1),r.isDark(n,o+1)&&(c+=1),r.isDark(n+1,o+1)&&(c+=1),(0==c||4==c)&&(e+=3)}for(var n=0;t>n;n+=1)for(var o=0;t-6>o;o+=1)r.isDark(n,o)&&!r.isDark(n,o+1)&&r.isDark(n,o+2)&&r.isDark(n,o+3)&&r.isDark(n,o+4)&&!r.isDark(n,o+5)&&r.isDark(n,o+6)&&(e+=40);for(var o=0;t>o;o+=1)for(var n=0;t-6>n;n+=1)r.isDark(n,o)&&!r.isDark(n+1,o)&&r.isDark(n+2,o)&&r.isDark(n+3,o)&&r.isDark(n+4,o)&&!r.isDark(n+5,o)&&r.isDark(n+6,o)&&(e+=40);for(var l=0,o=0;t>o;o+=1)for(var n=0;t>n;n+=1)r.isDark(n,o)&&(l+=1);var g=Math.abs(100*l/t/t-50)/5;return e+=10*g},f}(),a=function(){for(var r=new Array(256),t=new Array(256),e=0;8>e;e+=1)r[e]=1<<e;for(var e=8;256>e;e+=1)r[e]=r[e-4]^r[e-5]^r[e-6]^r[e-8];for(var e=0;255>e;e+=1)t[r[e]]=e;var n={};return n.glog=function(r){if(1>r)throw new Error("glog("+r+")");return t[r]},n.gexp=function(t){for(;0>t;)t+=255;for(;t>=256;)t-=255;return r[t]},n}(),u=function(){var r=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],t=function(r,t){var e={};return e.totalCount=r,e.dataCount=t,e},e={},o=function(t,e){switch(e){case n.L:return r[4*(t-1)+0];case n.M:return r[4*(t-1)+1];case n.Q:return r[4*(t-1)+2];case n.H:return r[4*(t-1)+3];default:return void 0}};return e.getRSBlocks=function(r,e){var n=o(r,e);if("undefined"==typeof n)throw new Error("bad rs block @ typeNumber:"+r+"/errorCorrectLevel:"+e);for(var i=n.length/3,a=new Array,u=0;i>u;u+=1)for(var f=n[3*u+0],c=n[3*u+1],l=n[3*u+2],g=0;f>g;g+=1)a.push(t(c,l));return a},e}(),f=function(){var r=new Array,t=0,e={};return e.getBuffer=function(){return r},e.getAt=function(t){var e=Math.floor(t/8);return 1==(r[e]>>>7-t%8&1)},e.put=function(r,t){for(var n=0;t>n;n+=1)e.putBit(1==(r>>>t-n-1&1))},e.getLengthInBits=function(){return t},e.putBit=function(e){var n=Math.floor(t/8);r.length<=n&&r.push(0),e&&(r[n]|=128>>>t%8),t+=1},e},c=function(r){var n=e.MODE_8BIT_BYTE,o=t.stringToBytes(r),i={};return i.getMode=function(){return n},i.getLength=function(r){return o.length},i.write=function(r){for(var t=0;t<o.length;t+=1)r.put(o[t],8)},i},l=function(){var r=new Array,t={};return t.writeByte=function(t){r.push(255&t)},t.writeShort=function(r){t.writeByte(r),t.writeByte(r>>>8)},t.writeBytes=function(r,e,n){e=e||0,n=n||r.length;for(var o=0;n>o;o+=1)t.writeByte(r[o+e])},t.writeString=function(r){for(var e=0;e<r.length;e+=1)t.writeByte(r.charCodeAt(e))},t.toByteArray=function(){return r},t.toString=function(){var t="";t+="[";for(var e=0;e<r.length;e+=1)e>0&&(t+=","),t+=r[e];return t+="]"},t},g=function(){var r=0,t=0,e=0,n="",o={},i=function(r){n+=String.fromCharCode(a(63&r))},a=function(r){if(0>r);else{if(26>r)return 65+r;if(52>r)return 97+(r-26);if(62>r)return 48+(r-52);if(62==r)return 43;if(63==r)return 47}throw new Error("n:"+r)};return o.writeByte=function(n){for(r=r<<8|255&n,t+=8,e+=1;t>=6;)i(r>>>t-6),t-=6},o.flush=function(){if(t>0&&(i(r<<6-t),r=0,t=0),e%3!=0)for(var o=3-e%3,a=0;o>a;a+=1)n+="="},o.toString=function(){return n},o},s=function(r){var t=r,e=0,n=0,o=0,i={};i.read=function(){for(;8>o;){if(e>=t.length){if(0==o)return-1;throw new Error("unexpected end of file./"+o)}var r=t.charAt(e);if(e+=1,"="==r)return o=0,-1;r.match(/^\s$/)||(n=n<<6|a(r.charCodeAt(0)),o+=6)}var i=n>>>o-8&255;return o-=8,i};var a=function(r){if(r>=65&&90>=r)return r-65;if(r>=97&&122>=r)return r-97+26;if(r>=48&&57>=r)return r-48+52;if(43==r)return 62;if(47==r)return 63;throw new Error("c:"+r)};return i},h=function(r,t){var e=r,n=t,o=new Array(r*t),i={};i.setPixel=function(r,t,n){o[t*e+r]=n},i.write=function(r){r.writeString("GIF87a"),r.writeShort(e),r.writeShort(n),r.writeByte(128),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(0),r.writeByte(255),r.writeByte(255),r.writeByte(255),r.writeString(","),r.writeShort(0),r.writeShort(0),r.writeShort(e),r.writeShort(n),r.writeByte(0);var t=2,o=u(t);r.writeByte(t);for(var i=0;o.length-i>255;)r.writeByte(255),r.writeBytes(o,i,255),i+=255;r.writeByte(o.length-i),r.writeBytes(o,i,o.length-i),r.writeByte(0),r.writeString(";")};var a=function(r){var t=r,e=0,n=0,o={};return o.write=function(r,o){if(r>>>o!=0)throw new Error("length over");for(;e+o>=8;)t.writeByte(255&(r<<e|n)),o-=8-e,r>>>=8-e,n=0,e=0;n=r<<e|n,e+=o},o.flush=function(){e>0&&t.writeByte(n)},o},u=function(r){for(var t=1<<r,e=(1<<r)+1,n=r+1,i=f(),u=0;t>u;u+=1)i.add(String.fromCharCode(u));i.add(String.fromCharCode(t)),i.add(String.fromCharCode(e));var c=l(),g=a(c);g.write(t,n);var s=0,h=String.fromCharCode(o[s]);for(s+=1;s<o.length;){var v=String.fromCharCode(o[s]);s+=1,i.contains(h+v)?h+=v:(g.write(i.indexOf(h),n),i.size()<4095&&(i.size()==1<<n&&(n+=1),i.add(h+v)),h=v)}return g.write(i.indexOf(h),n),g.write(e,n),g.flush(),c.toByteArray()},f=function(){var r={},t=0,e={};return e.add=function(n){if(e.contains(n))throw new Error("dup key:"+n);r[n]=t,t+=1},e.size=function(){return t},e.indexOf=function(t){return r[t]},e.contains=function(t){return"undefined"!=typeof r[t]},e};return i},v=function(r,t,e,n){for(var o=h(r,t),i=0;t>i;i+=1)for(var a=0;r>a;a+=1)o.setPixel(a,i,e(a,i));var u=l();o.write(u);for(var f=g(),c=u.toByteArray(),s=0;s<c.length;s+=1)f.writeByte(c[s]);f.flush();var v="";return v+="<img",v+=' src="',v+="data:image/gif;base64,",v+=f,v+='"',v+=' width="',v+=r,v+='"',v+=' height="',v+=t,v+='"',n&&(v+=' alt="',v+=n,v+='"'),v+="/>"};return t}();return function(r){"function"==typeof define&&define.amd?define([],r):"object"==typeof exports&&(module.exports=r())}(function(){return r}),!function(r){r.stringToBytes=function(r){function t(r){for(var t=[],e=0;e<r.length;e++){var n=r.charCodeAt(e);128>n?t.push(n):2048>n?t.push(192|n>>6,128|63&n):55296>n||n>=57344?t.push(224|n>>12,128|n>>6&63,128|63&n):(e++,n=65536+((1023&n)<<10|1023&r.charCodeAt(e)),t.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return t}return t(r)}}(r),r}()); multi-recaptcha.js 0000644 00000003147 15104636317 0010177 0 ustar 00 // WooCommerce Registration form jQuery(document).ready(function(){ show_lz_multi_cap(); }); function captcha_v2_invisible_process(el){ grecaptcha.ready(function() { var cap_div_id = grecaptcha.render(el,{ 'sitekey': lz_cap_sitekey, 'size': 'invisible', 'callback' : function (recaptchaToken) { }, 'expired-callback' : function(){grecaptcha.reset(cap_div_id);} }); grecaptcha.execute(cap_div_id); }); } function show_lz_multi_cap(){ if(typeof grecaptcha == 'undefined'){ setTimeout(function(){show_lz_multi_cap()}, 1000); return; } // reCAPTCHA v2 tick box jQuery('.lz-recaptcha').each(function(index, el) { // Get the sitekey var lz_cap_key = jQuery(this).attr('data-sitekey'); //alert(lz_cap_key); // Render it try{ grecaptcha.render(el, {'sitekey' : lz_cap_key}); }catch(e){} }); // reCAPTCHA v2 invisible if(typeof lz_cap_invisible !== 'undefined' && lz_cap_invisible == 1 && typeof lz_cap_ver !== 'undefined' && lz_cap_ver == 2){ for (var i = 0; i < document.forms.length; ++i) { var form = document.forms[i]; var cap_div = form.querySelector("."+lz_cap_div_class); if (null === cap_div) continue; cap_div.innerHTML = ''; captcha_v2_invisible_process(cap_div); } } // reCAPTCHA v3 if(typeof lz_cap_ver !== 'undefined' && lz_cap_ver == 3){ grecaptcha.ready(function() { grecaptcha.execute(lz_cap_sitekey, {action: lz_cap_page_type}).then(function(token) { // pass the token to the backend script for verification jQuery(".lz-v3-input").each(function() { jQuery(this).val(token); }); }); }); } } jquery-clockpicker.min.js 0000644 00000025620 15104636317 0011505 0 ustar 00 /*! * ClockPicker v0.0.7 (http://weareoutman.github.io/clockpicker/) * Copyright 2014 Wang Shenwei. * Licensed under MIT (https://github.com/weareoutman/clockpicker/blob/gh-pages/LICENSE) */ !function(){function t(t){return document.createElementNS(p,t)}function i(t){return(10>t?"0":"")+t}function e(t){var i=++m+"";return t?t+i:i}function s(s,r){function p(t,i){var e=u.offset(),s=/^touch/.test(t.type),o=e.left+b,n=e.top+b,p=(s?t.originalEvent.touches[0]:t).pageX-o,h=(s?t.originalEvent.touches[0]:t).pageY-n,k=Math.sqrt(p*p+h*h),v=!1;if(!i||!(g-y>k||k>g+y)){t.preventDefault();var m=setTimeout(function(){c.addClass("clockpicker-moving")},200);l&&u.append(x.canvas),x.setHand(p,h,!i,!0),a.off(d).on(d,function(t){t.preventDefault();var i=/^touch/.test(t.type),e=(i?t.originalEvent.touches[0]:t).pageX-o,s=(i?t.originalEvent.touches[0]:t).pageY-n;(v||e!==p||s!==h)&&(v=!0,x.setHand(e,s,!1,!0))}),a.off(f).on(f,function(t){a.off(f),t.preventDefault();var e=/^touch/.test(t.type),s=(e?t.originalEvent.changedTouches[0]:t).pageX-o,l=(e?t.originalEvent.changedTouches[0]:t).pageY-n;(i||v)&&s===p&&l===h&&x.setHand(s,l),"hours"===x.currentView?x.toggleView("minutes",A/2):r.autoclose&&(x.minutesView.addClass("clockpicker-dial-out"),setTimeout(function(){x.done()},A/2)),u.prepend(j),clearTimeout(m),c.removeClass("clockpicker-moving"),a.off(d)})}}var h=n(V),u=h.find(".clockpicker-plate"),v=h.find(".clockpicker-hours"),m=h.find(".clockpicker-minutes"),T=h.find(".clockpicker-am-pm-block"),C="INPUT"===s.prop("tagName"),H=C?s:s.find("input"),P=s.find(".input-group-addon"),x=this;if(this.id=e("cp"),this.element=s,this.options=r,this.isAppended=!1,this.isShown=!1,this.currentView="hours",this.isInput=C,this.input=H,this.addon=P,this.popover=h,this.plate=u,this.hoursView=v,this.minutesView=m,this.amPmBlock=T,this.spanHours=h.find(".clockpicker-span-hours"),this.spanMinutes=h.find(".clockpicker-span-minutes"),this.spanAmPm=h.find(".clockpicker-span-am-pm"),this.amOrPm="PM",r.twelvehour){{var S=['<div class="clockpicker-am-pm-block">','<button type="button" class="btn btn-sm btn-default clockpicker-button clockpicker-am-button">',"AM</button>",'<button type="button" class="btn btn-sm btn-default clockpicker-button clockpicker-pm-button">',"PM</button>","</div>"].join("");n(S)}n('<button type="button" class="btn btn-sm btn-default clockpicker-button am-button">AM</button>').on("click",function(){x.amOrPm="AM",n(".clockpicker-span-am-pm").empty().append("AM")}).appendTo(this.amPmBlock),n('<button type="button" class="btn btn-sm btn-default clockpicker-button pm-button">PM</button>').on("click",function(){x.amOrPm="PM",n(".clockpicker-span-am-pm").empty().append("PM")}).appendTo(this.amPmBlock)}r.autoclose||n('<button type="button" class="btn btn-sm btn-default btn-block clockpicker-button">'+r.donetext+"</button>").click(n.proxy(this.done,this)).appendTo(h),"top"!==r.placement&&"bottom"!==r.placement||"top"!==r.align&&"bottom"!==r.align||(r.align="left"),"left"!==r.placement&&"right"!==r.placement||"left"!==r.align&&"right"!==r.align||(r.align="top"),h.addClass(r.placement),h.addClass("clockpicker-align-"+r.align),this.spanHours.click(n.proxy(this.toggleView,this,"hours")),this.spanMinutes.click(n.proxy(this.toggleView,this,"minutes")),H.on("focus.clockpicker click.clockpicker",n.proxy(this.show,this)),P.on("click.clockpicker",n.proxy(this.toggle,this));var E,D,I,B,z=n('<div class="clockpicker-tick"></div>');if(r.twelvehour)for(E=1;13>E;E+=1)D=z.clone(),I=E/6*Math.PI,B=g,D.css("font-size","120%"),D.css({left:b+Math.sin(I)*B-y,top:b-Math.cos(I)*B-y}),D.html(0===E?"00":E),v.append(D),D.on(k,p);else for(E=0;24>E;E+=1){D=z.clone(),I=E/6*Math.PI;var O=E>0&&13>E;B=O?w:g,D.css({left:b+Math.sin(I)*B-y,top:b-Math.cos(I)*B-y}),O&&D.css("font-size","120%"),D.html(0===E?"00":E),v.append(D),D.on(k,p)}for(E=0;60>E;E+=5)D=z.clone(),I=E/30*Math.PI,D.css({left:b+Math.sin(I)*g-y,top:b-Math.cos(I)*g-y}),D.css("font-size","120%"),D.html(i(E)),m.append(D),D.on(k,p);if(u.on(k,function(t){0===n(t.target).closest(".clockpicker-tick").length&&p(t,!0)}),l){var j=h.find(".clockpicker-canvas"),L=t("svg");L.setAttribute("class","clockpicker-svg"),L.setAttribute("width",M),L.setAttribute("height",M);var U=t("g");U.setAttribute("transform","translate("+b+","+b+")");var W=t("circle");W.setAttribute("class","clockpicker-canvas-bearing"),W.setAttribute("cx",0),W.setAttribute("cy",0),W.setAttribute("r",2);var N=t("line");N.setAttribute("x1",0),N.setAttribute("y1",0);var X=t("circle");X.setAttribute("class","clockpicker-canvas-bg"),X.setAttribute("r",y);var Y=t("circle");Y.setAttribute("class","clockpicker-canvas-fg"),Y.setAttribute("r",3.5),U.appendChild(N),U.appendChild(X),U.appendChild(Y),U.appendChild(W),L.appendChild(U),j.append(L),this.hand=N,this.bg=X,this.fg=Y,this.bearing=W,this.g=U,this.canvas=j}o(this.options.init)}function o(t){t&&"function"==typeof t&&t()}var c,n=window.jQuery,r=n(window),a=n(document),p="http://www.w3.org/2000/svg",l="SVGAngle"in window&&function(){var t,i=document.createElement("div");return i.innerHTML="<svg/>",t=(i.firstChild&&i.firstChild.namespaceURI)==p,i.innerHTML="",t}(),h=function(){var t=document.createElement("div").style;return"transition"in t||"WebkitTransition"in t||"MozTransition"in t||"msTransition"in t||"OTransition"in t}(),u="ontouchstart"in window,k="mousedown"+(u?" touchstart":""),d="mousemove.clockpicker"+(u?" touchmove.clockpicker":""),f="mouseup.clockpicker"+(u?" touchend.clockpicker":""),v=navigator.vibrate?"vibrate":navigator.webkitVibrate?"webkitVibrate":null,m=0,b=100,g=80,w=54,y=13,M=2*b,A=h?350:1,V=['<div class="popover clockpicker-popover">','<div class="arrow"></div>','<div class="popover-title">','<span class="clockpicker-span-hours text-primary"></span>'," : ",'<span class="clockpicker-span-minutes"></span>','<span class="clockpicker-span-am-pm"></span>',"</div>",'<div class="popover-content">','<div class="clockpicker-plate">','<div class="clockpicker-canvas"></div>','<div class="clockpicker-dial clockpicker-hours"></div>','<div class="clockpicker-dial clockpicker-minutes clockpicker-dial-out"></div>',"</div>",'<span class="clockpicker-am-pm-block">',"</span>","</div>","</div>"].join("");s.DEFAULTS={"default":"",fromnow:0,placement:"bottom",align:"left",donetext:"完成",autoclose:!1,twelvehour:!1,vibrate:!0},s.prototype.toggle=function(){this[this.isShown?"hide":"show"]()},s.prototype.locate=function(){var t=this.element,i=this.popover,e=t.offset(),s=t.outerWidth(),o=t.outerHeight(),c=this.options.placement,n=this.options.align,r={};switch(i.show(),c){case"bottom":r.top=e.top+o;break;case"right":r.left=e.left+s;break;case"top":r.top=e.top-i.outerHeight();break;case"left":r.left=e.left-i.outerWidth()}switch(n){case"left":r.left=e.left;break;case"right":r.left=e.left+s-i.outerWidth();break;case"top":r.top=e.top;break;case"bottom":r.top=e.top+o-i.outerHeight()}i.css(r)},s.prototype.show=function(){if(!this.isShown){o(this.options.beforeShow);var t=this;this.isAppended||(c=n(document.body).append(this.popover),r.on("resize.clockpicker"+this.id,function(){t.isShown&&t.locate()}),this.isAppended=!0);var e=((this.input.prop("value")||this.options["default"]||"")+"").split(":");if("now"===e[0]){var s=new Date(+new Date+this.options.fromnow);e=[s.getHours(),s.getMinutes()]}this.hours=+e[0]||0,this.minutes=+e[1]||0,this.spanHours.html(i(this.hours)),this.spanMinutes.html(i(this.minutes)),this.toggleView("hours"),this.locate(),this.isShown=!0,a.on("click.clockpicker."+this.id+" focusin.clockpicker."+this.id,function(i){var e=n(i.target);0===e.closest(t.popover).length&&0===e.closest(t.addon).length&&0===e.closest(t.input).length&&t.hide()}),a.on("keyup.clockpicker."+this.id,function(i){27===i.keyCode&&t.hide()}),o(this.options.afterShow)}},s.prototype.hide=function(){o(this.options.beforeHide),this.isShown=!1,a.off("click.clockpicker."+this.id+" focusin.clockpicker."+this.id),a.off("keyup.clockpicker."+this.id),this.popover.hide(),o(this.options.afterHide)},s.prototype.toggleView=function(t,i){var e=!1;"minutes"===t&&"visible"===n(this.hoursView).css("visibility")&&(o(this.options.beforeHourSelect),e=!0);var s="hours"===t,c=s?this.hoursView:this.minutesView,r=s?this.minutesView:this.hoursView;this.currentView=t,this.spanHours.toggleClass("text-primary",s),this.spanMinutes.toggleClass("text-primary",!s),r.addClass("clockpicker-dial-out"),c.css("visibility","visible").removeClass("clockpicker-dial-out"),this.resetClock(i),clearTimeout(this.toggleViewTimer),this.toggleViewTimer=setTimeout(function(){r.css("visibility","hidden")},A),e&&o(this.options.afterHourSelect)},s.prototype.resetClock=function(t){var i=this.currentView,e=this[i],s="hours"===i,o=Math.PI/(s?6:30),c=e*o,n=s&&e>0&&13>e?w:g,r=Math.sin(c)*n,a=-Math.cos(c)*n,p=this;l&&t?(p.canvas.addClass("clockpicker-canvas-out"),setTimeout(function(){p.canvas.removeClass("clockpicker-canvas-out"),p.setHand(r,a)},t)):this.setHand(r,a)},s.prototype.setHand=function(t,e,s,o){var c,r=Math.atan2(t,-e),a="hours"===this.currentView,p=Math.PI/(a||s?6:30),h=Math.sqrt(t*t+e*e),u=this.options,k=a&&(g+w)/2>h,d=k?w:g;if(u.twelvehour&&(d=g),0>r&&(r=2*Math.PI+r),c=Math.round(r/p),r=c*p,u.twelvehour?a?0===c&&(c=12):(s&&(c*=5),60===c&&(c=0)):a?(12===c&&(c=0),c=k?0===c?12:c:0===c?0:c+12):(s&&(c*=5),60===c&&(c=0)),this[this.currentView]!==c&&v&&this.options.vibrate&&(this.vibrateTimer||(navigator[v](10),this.vibrateTimer=setTimeout(n.proxy(function(){this.vibrateTimer=null},this),100))),this[this.currentView]=c,this[a?"spanHours":"spanMinutes"].html(i(c)),!l)return void this[a?"hoursView":"minutesView"].find(".clockpicker-tick").each(function(){var t=n(this);t.toggleClass("active",c===+t.html())});o||!a&&c%5?(this.g.insertBefore(this.hand,this.bearing),this.g.insertBefore(this.bg,this.fg),this.bg.setAttribute("class","clockpicker-canvas-bg clockpicker-canvas-bg-trans")):(this.g.insertBefore(this.hand,this.bg),this.g.insertBefore(this.fg,this.bg),this.bg.setAttribute("class","clockpicker-canvas-bg"));var f=Math.sin(r)*d,m=-Math.cos(r)*d;this.hand.setAttribute("x2",f),this.hand.setAttribute("y2",m),this.bg.setAttribute("cx",f),this.bg.setAttribute("cy",m),this.fg.setAttribute("cx",f),this.fg.setAttribute("cy",m)},s.prototype.done=function(){o(this.options.beforeDone),this.hide();var t=this.input.prop("value"),e=i(this.hours)+":"+i(this.minutes);this.options.twelvehour&&(e+=this.amOrPm),this.input.prop("value",e),e!==t&&(this.input.triggerHandler("change"),this.isInput||this.element.trigger("change")),this.options.autoclose&&this.input.trigger("blur"),o(this.options.afterDone)},s.prototype.remove=function(){this.element.removeData("clockpicker"),this.input.off("focus.clockpicker click.clockpicker"),this.addon.off("click.clockpicker"),this.isShown&&this.hide(),this.isAppended&&(r.off("resize.clockpicker"+this.id),this.popover.remove())},n.fn.clockpicker=function(t){var i=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=n(this),o=e.data("clockpicker");if(o)"function"==typeof o[t]&&o[t].apply(o,i);else{var c=n.extend({},s.DEFAULTS,e.data(),"object"==typeof t&&t);e.data("clockpicker",new s(e,c))}})}}(); operators_after.txt 0000644 00000000162 15104642242 0010503 0 ustar 00 + - * / % = += -= *= /= %= <<= >>= >>>= &= ^= |= & | ^ << >> >>> == === != !== > < >= <= && || . [ ] ? : , ; ( ) } keywords_before.txt 0000644 00000000247 15104642242 0010501 0 ustar 00 do in let new var case else enum void with class const yield delete export import public static typeof extends package private function protected implements instanceof keywords_after.txt 0000644 00000000071 15104642242 0010333 0 ustar 00 in public extends private protected implements instanceof operators_before.txt 0000644 00000000163 15104642242 0010645 0 ustar 00 + - * / % = += -= *= /= %= <<= >>= >>>= &= ^= |= & | ^ ~ << >> >>> == === != !== > < >= <= && || ! . [ ? : , ; ( { keywords_reserved.txt 0000644 00000000636 15104642242 0011060 0 ustar 00 do if in for let new try var case else enum eval null this true void with break catch class const false super throw while yield delete export import public return static switch typeof default extends finally package private continue debugger function arguments interface protected implements instanceof abstract boolean byte char double final float goto int long native short synchronized throws transient volatile operators.txt 0000644 00000000170 15104642242 0007321 0 ustar 00 + - * / % = += -= *= /= %= <<= >>= >>>= &= ^= |= & | ^ ~ << >> >>> == === != !== > < >= <= && || ! . [ ] ? : , ; ( ) { } elementor-admin-page.js 0000644 00000174656 15104676363 0011132 0 ustar 00 /** * AJAX Request Queue * * - add() * - remove() * - run() * - stop() * * @since 1.0.0 */ var AstraSitesAjaxQueue = ( function () { var requests = []; return { /** * Add AJAX request * * @since 1.0.0 */ add: function ( opt ) { requests.push( opt ); }, /** * Remove AJAX request * * @since 1.0.0 */ remove: function ( opt ) { if ( jQuery.inArray( opt, requests ) > -1 ) requests.splice( $.inArray( opt, requests ), 1 ); }, /** * Run / Process AJAX request * * @since 1.0.0 */ run: function () { var self = this, oriSuc; if ( requests.length ) { oriSuc = requests[ 0 ].complete; requests[ 0 ].complete = function () { if ( typeof oriSuc === 'function' ) oriSuc(); requests.shift(); self.run.apply( self, [] ); }; jQuery.ajax( requests[ 0 ] ); } else { self.tid = setTimeout( function () { self.run.apply( self, [] ); }, 1000 ); } }, /** * Stop AJAX request * * @since 1.0.0 */ stop: function () { requests = []; clearTimeout( this.tid ); }, }; } )(); ( function ( $ ) { $elscope = {}; $.fn.isInViewport = function () { // If not have the element then return false! if ( ! $( this ).length ) { return false; } var elementTop = $( this ).offset().top; var elementBottom = elementTop + $( this ).outerHeight(); var viewportTop = $( window ).scrollTop(); var viewportBottom = viewportTop + $( window ).height(); return elementBottom > viewportTop && elementTop < viewportBottom; }; AstraElementorSitesAdmin = { visited_pages: [], reset_remaining_posts: 0, site_imported_data: null, backup_taken: false, templateData: {}, insertData: {}, log_file: '', pages_list: '', insertActionFlag: false, page_id: '', site_id: '', block_id: '', requiredPlugins: [], canImport: false, canInsert: false, type: 'pages', action: '', masonryObj: [], index: 0, blockCategory: '', blockColor: '', processing: false, siteType: '', page: 1, per_page: 20, init: function () { this._bind(); }, /** * Binds events for the Astra Sites. * * @since 1.0.0 * @access private * @method _bind */ _bind: function () { if ( elementorCommon ) { let add_section_tmpl = $( '#tmpl-elementor-add-section' ); if ( add_section_tmpl.length > 0 ) { let action_for_add_section = add_section_tmpl.text(); let white_label_class = ''; let stylesheet = ''; if ( astraElementorSites.isWhiteLabeled ) { white_label_class = ' ast-elementor-white-label'; stylesheet = '<style type="">.elementor-add-ast-site-button.ast-elementor-white-label .eicon-folder:before {content: \'' + astraElementorSites.plugin_name[ 0 ] + "';}</style>"; } action_for_add_section = action_for_add_section.replace( '<div class="elementor-add-section-drag-title', stylesheet + '<div class="elementor-add-section-area-button elementor-add-ast-site-button ' + white_label_class + '" title="' + astraElementorSites.plugin_name + '"> <i class="eicon-folder"></i> </div><div class="elementor-add-section-drag-title' ); add_section_tmpl.text( action_for_add_section ); elementor.on( 'preview:loaded', function () { let base_skeleton = wp.template( 'ast-template-base-skeleton' ); let header_template = $( '#tmpl-ast-template-modal__header' ).text(); if ( $( '#ast-sites-modal' ).length == 0 ) { $( 'body' ).append( base_skeleton() ); $elscope = $( '#ast-sites-modal' ); $elscope .find( '.astra-sites-content-wrap' ) .before( header_template ); } AstraElementorSitesAdmin._populate_color_filters(); $elscope.find( '.astra-blocks-category' ).select2(); $elscope .find( '.astra-blocks-category' ) .on( 'select2:select', AstraElementorSitesAdmin._categoryChange ); $elscope .find( '#elementor-template-block-color-filter select' ) .on( 'change', AstraElementorSitesAdmin._blockColorChange ); $( elementor.$previewContents[ 0 ].body ).on( 'click', '.elementor-add-ast-site-button', AstraElementorSitesAdmin._open ); // Click events. $( 'body' ).on( 'click', '.ast-sites-modal__header__close', AstraElementorSitesAdmin._close ); $( 'body' ).on( 'click', '#ast-sites-modal .elementor-template-library-menu-item', AstraElementorSitesAdmin._libraryClick ); $( 'body' ).on( 'click', '#ast-sites-modal .theme-screenshot', AstraElementorSitesAdmin._preview ); $( 'body' ).on( 'click', '#ast-sites-modal .back-to-layout', AstraElementorSitesAdmin._goBack ); $( 'body' ).on( 'click', AstraElementorSitesAdmin._closeTooltip ); $( document ).on( 'click', '#ast-sites-modal .ast-library-template-insert', AstraElementorSitesAdmin._insert ); $( document ).on( 'click', '.ast-import-elementor-template', AstraElementorSitesAdmin._importTemplate ); $( 'body' ).on( 'click', '#ast-sites-modal .astra-sites-tooltip-icon', AstraElementorSitesAdmin._toggleTooltip ); $( document ).on( 'click', '.elementor-template-library-menu-item', AstraElementorSitesAdmin._toggle ); $( document ).on( 'click', '#ast-sites-modal .astra-sites__sync-wrap', AstraElementorSitesAdmin._sync ); $( document ).on( 'click', '#ast-sites-modal .ast-sites-modal__header__logo, #ast-sites-modal .back-to-layout-button', AstraElementorSitesAdmin._home ); $( document ).on( 'click', '#ast-sites-modal .notice-dismiss', AstraElementorSitesAdmin._dismiss ); // Other events. $elscope .find( '.astra-sites-content-wrap' ) .scroll( AstraElementorSitesAdmin._loadLargeImages ); $( document ).on( 'keyup input', '#ast-sites-modal #wp-filter-search-input', AstraElementorSitesAdmin._search ); $( document ).on( 'change', '#ast-sites-modal .elementor-template-library-order-input', AstraElementorSitesAdmin._changeType ); // Triggers. $( document ).on( 'astra-sites__elementor-open-after', AstraElementorSitesAdmin._initSites ); $( document ).on( 'astra-sites__elementor-open-before', AstraElementorSitesAdmin._beforeOpen ); $( document ).on( 'astra-sites__elementor-plugin-check', AstraElementorSitesAdmin._pluginCheck ); $( document ).on( 'astra-sites__elementor-close-before', AstraElementorSitesAdmin._beforeClose ); $( document ).on( 'astra-sites__elementor-do-step-1', AstraElementorSitesAdmin._step1 ); $( document ).on( 'astra-sites__elementor-do-step-2', AstraElementorSitesAdmin._step2 ); $( document ).on( 'astra-sites__elementor-goback-step-1', AstraElementorSitesAdmin._goStep1 ); $( document ).on( 'astra-sites__elementor-goback-step-2', AstraElementorSitesAdmin._goStep2 ); // Plugin install & activate. $( document ).on( 'wp-plugin-installing', AstraElementorSitesAdmin._pluginInstalling ); $( document ).on( 'wp-plugin-install-error', AstraElementorSitesAdmin._installError ); $( document ).on( 'wp-plugin-install-success', AstraElementorSitesAdmin._installSuccess ); //open modal on reload after required plugins activated AstraElementorSitesAdmin.insertBlockOnRefresh(); } ); } } }, insertBlockOnRefresh() { const urlObj = new URL( window.location.href ); const remoteST = urlObj.searchParams.get( 'remoteST' ); // Get the value of the "blockID" parameter const blockID = urlObj.searchParams.get( 'blockID' ); const type = urlObj.searchParams.get( 'type' ) === 'blocks' ? 'astra-blocks' : 'site-pages'; if ( remoteST && blockID && type ) { const data = astraElementorSites[ 'last_viewed_block_data' ]; const templateModel = new Backbone.Model( { getTitle() { return data?.title; }, } ); this.requestInsert( blockID, type, templateModel, this.afterInsert, this.beforeInsert, this.failedCallback ); this.removeAddedParams(); } }, _populate_color_filters: function () { if ( ! Object.keys( astraElementorSites.astra_blocks ).length ) { return; } let template = wp.template( 'ast-template-block-color-filters' ); var colorFilters = []; for ( block_id in astraElementorSites.astra_blocks ) { if ( astraElementorSites.astra_blocks[ block_id ][ 'filter' ] && ! colorFilters.includes( astraElementorSites.astra_blocks[ block_id ][ 'filter' ] ) ) { colorFilters.push( astraElementorSites.astra_blocks[ block_id ][ 'filter' ] ); } } if ( colorFilters.length <= 1 ) { return; } $( '#elementor-template-block-color-filter' ) .show() .html( template( colorFilters ) ); }, _paginateBlocks: function () { if ( AstraElementorSitesAdmin.type == 'blocks' ) { if ( undefined != $elscope .find( '.astra-sites-library-template:last' ) .offset() ) { if ( $( '.dialog-widget-content' ).scrollTop() + 600 >= $elscope .find( '.astra-sites-library-template:last' ) .offset().top ) { AstraElementorSitesAdmin.page = AstraElementorSitesAdmin.page + 1; // Set listing HTML. AstraElementorSitesAdmin._appendPaginationBlocks( astraElementorSites.astra_blocks ); } } } }, _changeType: function () { AstraElementorSitesAdmin.siteType = $( this ).val(); $elscope.find( '#wp-filter-search-input' ).trigger( 'keyup' ); }, _categoryChange: function ( event ) { AstraElementorSitesAdmin.blockCategory = $( this ).val(); $elscope.find( '#wp-filter-search-input' ).trigger( 'keyup' ); }, _blockColorChange: function ( event ) { AstraElementorSitesAdmin.blockColor = $( this ).val(); $elscope.find( '#wp-filter-search-input' ).trigger( 'keyup' ); }, _dismiss: function () { $( this ) .closest( '.ast-sites-floating-notice-wrap' ) .removeClass( 'slide-in' ); $( this ) .closest( '.ast-sites-floating-notice-wrap' ) .addClass( 'slide-out' ); setTimeout( function () { $( this ) .closest( '.ast-sites-floating-notice-wrap' ) .removeClass( 'slide-out' ); }, 200 ); if ( $( this ) .closest( '.ast-sites-floating-notice-wrap' ) .hasClass( 'refreshed-notice' ) ) { $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-update-library-complete', _ajax_nonce: astraElementorSites._ajax_nonce, }, } ).done( function ( response ) { $( '#ast-sites-floating-notice-wrap-id' ).toggle(); } ); } }, _done: function ( data ) { console.groupEnd( 'Process Done.' ); var str = AstraElementorSitesAdmin.type == 'pages' ? astraElementorSites.template : astraElementorSites.block; $elscope .find( '.ast-import-elementor-template' ) .removeClass( 'installing' ); $elscope .find( '.ast-import-elementor-template' ) .attr( 'data-demo-link', data.data.link ); setTimeout( function () { $elscope .find( '.ast-import-elementor-template' ) .text( 'View Saved ' + str ); $elscope .find( '.ast-import-elementor-template' ) .addClass( 'action-done' ); }, 200 ); }, _beforeClose: function () { if ( AstraElementorSitesAdmin.action == 'insert' ) { $elscope .find( '.ast-library-template-insert' ) .removeClass( 'installing' ); $elscope .find( '.ast-library-template-insert' ) .text( 'Imported' ); $elscope .find( '.ast-library-template-insert' ) .addClass( 'action-done' ); if ( $elscope .find( '.ast-sites-floating-notice-wrap' ) .hasClass( 'slide-in' ) ) { $elscope .find( '.ast-sites-floating-notice-wrap' ) .removeClass( 'slide-in' ); $elscope .find( '.ast-sites-floating-notice-wrap' ) .addClass( 'slide-out' ); setTimeout( function () { $elscope .find( '.ast-sites-floating-notice-wrap' ) .removeClass( 'slide-out' ); }, 200 ); } } }, _closeTooltip: function ( event ) { if ( event.target.className !== 'ast-tooltip-wrap' && event.target.className !== 'dashicons dashicons-editor-help' ) { var wrap = $elscope.find( '.ast-tooltip-wrap' ); if ( wrap.hasClass( 'ast-show-tooltip' ) ) { $elscope .find( '.ast-tooltip-wrap' ) .removeClass( 'ast-show-tooltip' ); } } }, _sync: function ( event ) { event.preventDefault(); var button = $( this ).find( '.astra-sites-sync-library-button' ); if ( button.hasClass( 'updating-message' ) ) { return; } button.addClass( 'updating-message' ); $elscope .find( '#ast-sites-floating-notice-wrap-id' ) .show() .removeClass( 'error' ); $elscope .find( '#ast-sites-floating-notice-wrap-id .ast-sites-floating-notice' ) .html( '<span class="message">Syncing template library in the background. The process can take anywhere between 2 to 3 minutes. We will notify you once done.<span><button type="button" class="notice-dismiss"><span class="screen-reader-text">' + astraElementorSites.dismiss_text + '</span></button>' ); $elscope .find( '#ast-sites-floating-notice-wrap-id' ) .addClass( 'slide-in' ) .removeClass( 'refreshed-notice' ); $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-update-library', _ajax_nonce: astraElementorSites._ajax_nonce, }, } ) .fail( function ( jqXHR ) { console.log( jqXHR ); } ) .done( function ( response ) { if ( response.success ) { if ( 'updated' === response.data ) { $elscope .find( '#ast-sites-floating-notice-wrap-id' ) .addClass( 'refreshed-notice' ) .find( '.ast-sites-floating-notice' ) .html( '<span class="message">' + astraElementorSites.syncCompleteMessage + '</span><button type="button" class="notice-dismiss"><span class="screen-reader-text">' + astraElementorSites.dismiss_text + '</span></button>' ); button.removeClass( 'updating-message' ); console.log( 'Already sync all the sites.' ); } else { // Import categories. $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-import-all-categories-and-tags', _ajax_nonce: astraElementorSites._ajax_nonce, }, } ).fail( function ( jqXHR ) { console.log( jqXHR ); } ); // Import categories. $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-import-all-categories', _ajax_nonce: astraElementorSites._ajax_nonce, }, } ).fail( function ( jqXHR ) { console.log( jqXHR ); } ); // Import Blocks. $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-get-blocks-request-count', _ajax_nonce: astraElementorSites._ajax_nonce, }, beforeSend: function () { console.groupCollapsed( 'Updating Blocks' ); console.log( 'Updating Blocks' ); }, } ) .fail( function ( jqXHR ) { console.log( jqXHR, 'error' ); console.error( jqXHR.status + jqXHR.statusText, 'Blocks Count Request Failed!', jqXHR ); console.groupEnd( 'Updating Blocks' ); } ) .done( function ( response ) { console.log( response ); if ( response.success ) { var total = response.data; for ( let i = 1; i <= total; i++ ) { AstraSitesAjaxQueue.add( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-import-blocks', page_no: i, _ajax_nonce: astraElementorSites._ajax_nonce, }, beforeSend: function () { console.groupCollapsed( 'Importing Blocks - Page ' + i ); console.log( 'Importing Blocks - Page ' + i ); }, success: function ( response ) { console.log( response ); console.groupEnd( 'Importing Blocks - Page ' + i ); }, } ); } // Run the AJAX queue. AstraSitesAjaxQueue.run(); } else { console.error( response.data, 'Blocks Count Request Failed!' ); } } ); // Import Block Categories. $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-import-block-categories', _ajax_nonce: astraElementorSites._ajax_nonce, }, } ).fail( function ( jqXHR ) { console.log( jqXHR ); } ); $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-get-sites-request-count', _ajax_nonce: astraElementorSites._ajax_nonce, }, } ) .fail( function ( jqXHR ) { console.log( jqXHR ); } ) .done( function ( response ) { if ( response.success ) { var total = response.data; for ( let i = 1; i <= total; i++ ) { AstraSitesAjaxQueue.add( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-import-sites', page_no: i, _ajax_nonce: astraElementorSites._ajax_nonce, }, success: function ( result ) { if ( i === total && astraElementorSites.syncCompleteMessage ) { button.removeClass( 'updating-message' ); $elscope .find( '#ast-sites-floating-notice-wrap-id' ) .addClass( 'refreshed-notice' ) .find( '.ast-sites-floating-notice' ) .html( '<span class="message">' + astraElementorSites.syncCompleteMessage + '</span><button type="button" class="notice-dismiss"><span class="screen-reader-text">' + astraElementorSites.dismiss_text + '</span></button>' ); } }, } ); } // Run the AJAX queue. AstraSitesAjaxQueue.run(); } } ); } } } ); }, _toggleTooltip: function ( e ) { var wrap = $elscope.find( '.ast-tooltip-wrap' ); if ( wrap.hasClass( 'ast-show-tooltip' ) ) { $elscope .find( '.ast-tooltip-wrap' ) .removeClass( 'ast-show-tooltip' ); } else { $elscope .find( '.ast-tooltip-wrap' ) .addClass( 'ast-show-tooltip' ); } }, _toggle: function ( e ) { $elscope .find( '.elementor-template-library-menu-item' ) .removeClass( 'elementor-active' ); $elscope.find( '.dialog-lightbox-content' ).hide(); $elscope.find( '.theme-preview' ).hide(); $elscope.find( '.theme-preview' ).html( '' ); $elscope.find( '.theme-preview-block' ).hide(); $elscope.find( '.theme-preview-block' ).html( '' ); $elscope.find( '.ast-template-library-toolbar' ).show(); $elscope.find( '.dialog-lightbox-content' ).hide(); $elscope.find( '.dialog-lightbox-content-block' ).hide(); $( this ).addClass( 'elementor-active' ); let data_type = $( this ).data( 'template-type' ); AstraElementorSitesAdmin.type = data_type; AstraElementorSitesAdmin._switchTo( data_type ); }, _home: function () { if ( AstraElementorSitesAdmin.processing ) { return; } $elscope.find( '#wp-filter-search-input' ).val( '' ); // Hide Back button. $elscope.find( '.back-to-layout' ).css( 'visibility', 'hidden' ); $elscope.find( '.back-to-layout' ).css( 'opacity', '0' ); $elscope .find( '.elementor-template-library-menu-item:first-child' ) .trigger( 'click' ); }, _switchTo: function ( type ) { if ( 'pages' == type ) { AstraElementorSitesAdmin._initSites(); $elscope.find( '.dialog-lightbox-content' ).show(); $elscope.find( '.astra-blocks-category-inner-wrap' ).hide(); $elscope.find( '.astra-blocks-filter-inner-wrap' ).hide(); $elscope.find( '.elementor-template-library-order' ).show(); } else { AstraElementorSitesAdmin._initBlocks(); $elscope.find( '.dialog-lightbox-content-block' ).show(); $elscope.find( '.astra-blocks-category-inner-wrap' ).show(); $elscope.find( '.astra-blocks-filter-inner-wrap' ).show(); $elscope.find( '.elementor-template-library-order' ).hide(); } $elscope.find( '.astra-sites-content-wrap' ).trigger( 'scroll' ); }, _importWPForm: function ( wpforms_url, callback ) { if ( ! wpforms_url ) { if ( callback && typeof callback == 'function' ) { callback( '' ); } return; } $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', dataType: 'json', data: { action: 'astra-sites-import-wpforms', screen: 'elementor', id: AstraElementorSitesAdmin.templateData.id, _ajax_nonce: astraElementorSites._ajax_nonce, }, beforeSend: function () { console.groupCollapsed( 'Importing WP Forms' ); }, } ) .fail( function ( jqXHR ) { console.log( jqXHR.status + ' ' + jqXHR.responseText, true ); console.groupEnd(); } ) .done( function ( data ) { // 1. Fail - Import WPForms Options. if ( false === data.success ) { console.log( data.data ); console.groupEnd(); } else { if ( callback && typeof callback == 'function' ) { callback( data ); } } } ); }, _createTemplate: function () { console.groupEnd(); // Work with JSON page here $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', dataType: 'json', data: { action: 'astra-sites-create-template', id: AstraElementorSitesAdmin.type == 'pages' ? AstraElementorSitesAdmin.page_id?.replace( 'id-', '' ) : AstraElementorSitesAdmin.block_id?.replace( 'id-', '' ), title: AstraElementorSitesAdmin.templateData?.title ?.rendered || '', type: 'blocks' == AstraElementorSitesAdmin.type ? 'astra-blocks' : 'site-pages', _ajax_nonce: astraElementorSites._ajax_nonce, }, beforeSend: function () { console.groupCollapsed( 'Creating Template' ); }, } ) .fail( function ( jqXHR ) { console.log( jqXHR ); } ) .done( function ( data ) { AstraElementorSitesAdmin._done( data ); } ); }, /** * Install All Plugins. */ _installAllPlugins: function ( not_installed ) { $.each( not_installed, function ( index, single_plugin ) { console.log( 'Installing Plugin - ' + single_plugin.name ); // Add each plugin activate request in Ajax queue. // @see wp-admin/js/updates.js wp.updates.queue.push( { action: 'install-plugin', // Required action. data: { slug: single_plugin.slug, }, } ); } ); // Required to set queue. wp.updates.queueChecker(); }, /** * Activate All Plugins. */ _activateAllPlugins: function ( activate_plugins ) { $.each( activate_plugins, function ( index, single_plugin ) { console.log( 'Activating Plugin - ' + single_plugin.name ); AstraSitesAjaxQueue.add( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-required_plugin_activate', init: single_plugin.init, _ajax_nonce: astraElementorSites._ajax_nonce, }, success: function ( result ) { if ( result.success ) { var pluginsList = AstraElementorSitesAdmin.requiredPlugins .inactive; // Reset not installed plugins list. AstraElementorSitesAdmin.requiredPlugins.inactive = AstraElementorSitesAdmin._removePluginFromQueue( single_plugin.slug, pluginsList ); // Enable Demo Import Button AstraElementorSitesAdmin._enableImport(); } }, } ); } ); AstraSitesAjaxQueue.run(); }, /** * Remove plugin from the queue. */ _removePluginFromQueue: function ( removeItem, pluginsList ) { return jQuery.grep( pluginsList, function ( value ) { return value.slug != removeItem; } ); }, /** * Get plugin from the queue. */ _getPluginFromQueue: function ( item, pluginsList ) { var match = ''; for ( ind in pluginsList ) { if ( item == pluginsList[ ind ].slug ) { match = pluginsList[ ind ]; } } return match; }, _bulkPluginInstallActivate: function () { console.groupCollapsed( 'Bulk Plugin Install Process Started' ); // If has class the skip-plugins then, // Avoid installing 3rd party plugins. var not_installed = AstraElementorSitesAdmin.requiredPlugins.notinstalled || ''; var activate_plugins = AstraElementorSitesAdmin.requiredPlugins.inactive || ''; console.log( AstraElementorSitesAdmin.requiredPlugins ); // First Install Bulk. if ( not_installed.length > 0 ) { AstraElementorSitesAdmin._installAllPlugins( not_installed ); } // Second Activate Bulk. if ( activate_plugins.length > 0 ) { AstraElementorSitesAdmin._activateAllPlugins( activate_plugins ); } if ( activate_plugins.length <= 0 && not_installed.length <= 0 ) { AstraElementorSitesAdmin._enableImport(); } }, _importTemplate: function ( e ) { if ( ! AstraElementorSitesAdmin.canImport ) { if ( $( this ).attr( 'data-demo-link' ) != undefined ) { window.open( $( this ).attr( 'data-demo-link' ), '_blank' ); } return; } AstraElementorSitesAdmin.canImport = false; var str = AstraElementorSitesAdmin.type == 'pages' ? astraElementorSites.template : astraElementorSites.block; $( this ).addClass( 'installing' ); $( this ).text( 'Saving ' + str + '...' ); AstraElementorSitesAdmin.action = 'import'; AstraElementorSitesAdmin._bulkPluginInstallActivate(); }, _unescape: function ( input_string ) { var title = _.unescape( input_string ); // @todo check why below character not escape with function _.unescape(); title = title.replace( '–', '-' ); return title; }, _unescape_lower: function ( input_string ) { input_string = $( '<textarea/>' ).html( input_string ).text(); var input_string = AstraElementorSitesAdmin._unescape( input_string ); return input_string.toLowerCase(); }, _search: function () { let search_term = $( this ).val() || ''; search_term = search_term.toLowerCase(); if ( 'pages' == AstraElementorSitesAdmin.type ) { var items = AstraElementorSitesAdmin._getSearchedPages( search_term ); if ( search_term.length ) { $( this ).addClass( 'has-input' ); AstraElementorSitesAdmin._addSites( items ); } else { $( this ).removeClass( 'has-input' ); AstraElementorSitesAdmin._appendSites( astraElementorSites.default_page_builder_sites ); } } else { var items = AstraElementorSitesAdmin._getSearchedBlocks( search_term ); if ( search_term.length ) { $( this ).addClass( 'has-input' ); AstraElementorSitesAdmin._appendBlocks( items ); } else { $( this ).removeClass( 'has-input' ); AstraElementorSitesAdmin._appendBlocks( astraElementorSites.astra_blocks ); } } }, _getSearchedPages: function ( search_term ) { var items = []; search_term = search_term.toLowerCase(); for ( site_id in astraElementorSites.default_page_builder_sites ) { var current_site = astraElementorSites.default_page_builder_sites[ site_id ]; // Check in site title. if ( current_site[ 'title' ] ) { var site_title = AstraElementorSitesAdmin._unescape_lower( current_site[ 'title' ] ); if ( site_title.toLowerCase().includes( search_term ) ) { for ( page_id in current_site[ 'pages' ] ) { items[ page_id ] = current_site[ 'pages' ][ page_id ]; items[ page_id ][ 'type' ] = 'page'; items[ page_id ][ 'site_id' ] = site_id; items[ page_id ][ 'astra-sites-type' ] = current_site[ 'astra-sites-type' ] || ''; items[ page_id ][ 'parent-site-name' ] = current_site[ 'title' ] || ''; items[ page_id ][ 'pages-count' ] = 0; } } } // Check in page title. if ( Object.keys( current_site[ 'pages' ] ).length ) { var pages = current_site[ 'pages' ]; for ( page_id in pages ) { // Check in site title. if ( pages[ page_id ][ 'title' ] ) { var page_title = AstraElementorSitesAdmin._unescape_lower( pages[ page_id ][ 'title' ] ); if ( page_title.toLowerCase().includes( search_term ) ) { items[ page_id ] = pages[ page_id ]; items[ page_id ][ 'type' ] = 'page'; items[ page_id ][ 'site_id' ] = site_id; items[ page_id ][ 'astra-sites-type' ] = current_site[ 'astra-sites-type' ] || ''; items[ page_id ][ 'parent-site-name' ] = current_site[ 'title' ] || ''; items[ page_id ][ 'pages-count' ] = 0; } } } } } return items; }, _getSearchedBlocks: function ( search_term ) { var items = []; if ( search_term.length ) { for ( block_id in astraElementorSites.astra_blocks ) { var current_site = astraElementorSites.astra_blocks[ block_id ]; // Check in site title. if ( current_site[ 'title' ] ) { var site_title = AstraElementorSitesAdmin._unescape_lower( current_site[ 'title' ] ); if ( site_title.toLowerCase().includes( search_term ) ) { items[ block_id ] = current_site; items[ block_id ][ 'type' ] = 'site'; items[ block_id ][ 'site_id' ] = block_id; } } } } return items; }, _addSites: function ( data ) { if ( data ) { let single_template = wp.template( 'astra-sites-search' ); pages_list = single_template( data ); $elscope.find( '.dialog-lightbox-content' ).html( pages_list ); AstraElementorSitesAdmin._loadLargeImages(); } else { $elscope .find( '.dialog-lightbox-content' ) .html( wp.template( 'astra-sites-no-sites' ) ); } }, _appendSites: function ( data ) { let single_template = wp.template( 'astra-sites-list' ); pages_list = single_template( data ); $elscope.find( '.dialog-lightbox-message-block' ).hide(); $elscope.find( '.dialog-lightbox-message' ).show(); $elscope.find( '.dialog-lightbox-content' ).html( pages_list ); AstraElementorSitesAdmin._loadLargeImages(); }, _appendBlocks: function ( data ) { let single_template = wp.template( 'astra-blocks-list' ); let blocks_list = single_template( data ); $elscope.find( '.dialog-lightbox-message' ).hide(); $elscope.find( '.dialog-lightbox-message-block' ).show(); $elscope .find( '.dialog-lightbox-content-block' ) .html( blocks_list ); AstraElementorSitesAdmin._masonry(); }, _appendPaginationBlocks: function ( data ) { let single_template = wp.template( 'astra-blocks-list' ); let blocks_list = single_template( data ); $elscope.find( '.dialog-lightbox-message' ).hide(); $elscope.find( '.dialog-lightbox-message-block' ).show(); $elscope .find( '.dialog-lightbox-content-block' ) .append( blocks_list ); AstraElementorSitesAdmin._masonry(); }, _masonry: function () { //create empty var masonryObj var masonryObj; var container = document.querySelector( '.dialog-lightbox-content-block' ); // initialize Masonry after all images have loaded imagesLoaded( container, function () { masonryObj = new Masonry( container, { itemSelector: '.astra-sites-library-template', } ); } ); }, _enableImport: function () { console.log( 'Required Plugins Process Done.' ); console.groupEnd(); if ( AstraElementorSitesAdmin[ 'initial-page-refresh' ] ) { AstraElementorSitesAdmin.saveContentAndRefresh(); } else { AstraElementorSitesAdmin.removeAddedParams(); } let form_url = ''; if ( 'pages' == AstraElementorSitesAdmin.type ) { form_url = AstraElementorSitesAdmin.templateData[ 'astra-site-wpforms-path' ]; } else { form_url = undefined != AstraElementorSitesAdmin.templateData[ 'post-meta' ] ? AstraElementorSitesAdmin.templateData[ 'post-meta' ][ 'astra-site-wpforms-path' ] : ''; } if ( ! AstraElementorSitesAdmin[ 'initial-page-refresh' ] ) { AstraElementorSitesAdmin._importWPForm( form_url, function () { AstraElementorSitesAdmin.insertData = AstraElementorSitesAdmin.templateData; if ( 'insert' == AstraElementorSitesAdmin.action ) { AstraElementorSitesAdmin._insertDemo(); } else { AstraElementorSitesAdmin._createTemplate(); } } ); } }, _insert: function ( e ) { if ( ! AstraElementorSitesAdmin.canInsert ) { return; } AstraElementorSitesAdmin.canInsert = false; var str = AstraElementorSitesAdmin.type == 'pages' ? astraElementorSites.template : astraElementorSites.block; $( this ).addClass( 'installing' ); if ( ! AstraElementorSitesAdmin[ 'initial-page-refresh' ] ) { $( this ).text( 'Importing ' + str + '...' ); } AstraElementorSitesAdmin.action = 'insert'; AstraElementorSitesAdmin._bulkPluginInstallActivate(); }, requestInsert: function ( _id, type, templateModel, afterInsert, beforeInsert, failedCallback ) { $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-page-elementor-insert-page', id: _id, type: type, _ajax_nonce: astraElementorSites._ajax_nonce, }, beforeSend: function () { console.groupCollapsed( 'Inserting Demo.' ); }, } ) .fail( function ( jqXHR ) { failedCallback( jqXHR ); } ) .done( function ( response ) { beforeInsert(); let page_content = response.data; page_content = page_content.map( function ( item ) { item.id = Math.random().toString( 36 ).substr( 2, 7 ); return item; } ); console.log( page_content ); console.groupEnd(); if ( undefined !== page_content && '' !== page_content ) { if ( undefined != $e && 'undefined' != typeof $e.internal ) { elementor.channels.data.trigger( 'document/import', templateModel ); elementor .getPreviewView() .addChildModel( page_content, { at: AstraElementorSitesAdmin.index } || {} ); elementor.channels.data.trigger( 'template:after:insert', {} ); $e.internal( 'document/save/set-is-modified', { status: true, } ); } else { elementor.channels.data.trigger( 'document/import', templateModel ); elementor .getPreviewView() .addChildModel( page_content, { at: AstraElementorSitesAdmin.index } || {} ); elementor.channels.data.trigger( 'template:after:insert', {} ); elementor.saver.setFlagEditorChange( true ); } } afterInsert(); } ); }, beforeInsert: function () { AstraElementorSitesAdmin.processing = false; $elscope .find( '.astra-sites-content-wrap' ) .removeClass( 'processing' ); }, afterInsert: function () { AstraElementorSitesAdmin.insertActionFlag = true; AstraElementorSitesAdmin._close(); }, failedCallback: function ( jqXHR ) { console.log( jqXHR ); console.groupEnd(); }, _insertDemo: function () { var data = AstraElementorSitesAdmin.templateData; if ( undefined !== data ) { let templateModel = new Backbone.Model( { getTitle() { return data[ 'title' ]; }, } ); let type = 'blocks' == AstraElementorSitesAdmin.type ? 'astra-blocks' : 'site-pages'; this.requestInsert( data[ 'id' ], type, templateModel, this.afterInsert, this.beforeInsert, this.failedCallback ); } }, _goBack: function ( e ) { if ( AstraElementorSitesAdmin.processing ) { return; } let step = $( this ).attr( 'data-step' ); $elscope.find( '#ast-sites-floating-notice-wrap-id.error' ).hide(); $elscope.find( '.astra-sites-step-1-wrap' ).show(); $elscope.find( '.astra-preview-actions-wrap' ).remove(); $elscope.find( '.ast-template-library-toolbar' ).show(); $elscope .find( '.ast-sites-modal__header' ) .removeClass( 'ast-preview-mode' ); let id = 'blocks' === AstraElementorSitesAdmin.type ? AstraElementorSitesAdmin.block_id?.replace( 'id-', '' ) : AstraElementorSitesAdmin.page_id?.replace( 'id-', '' ); if ( '' !== id ) { $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-elementor-flush-request', id, _ajax_nonce: astraElementorSites._ajax_nonce, }, beforeSend: function () { console.groupCollapsed( 'Deleting cached template data.' ); }, } ) .fail( function ( jqXHR ) { console.log( jqXHR ); console.groupEnd(); } ) .done( function ( response ) { console.log( response ); } ); } if ( 'pages' == AstraElementorSitesAdmin.type ) { if ( 3 == step ) { $( this ).attr( 'data-step', 2 ); $( document ).trigger( 'astra-sites__elementor-goback-step-2' ); } else if ( 2 == step ) { $( this ).attr( 'data-step', 1 ); $( document ).trigger( 'astra-sites__elementor-goback-step-1' ); } } else { $( this ).attr( 'data-step', 1 ); $( document ).trigger( 'astra-sites__elementor-goback-step-1' ); } $elscope.find( '.astra-sites-content-wrap' ).trigger( 'scroll' ); }, _goStep1: function ( e ) { // Reset site and page ids to null. AstraElementorSitesAdmin.site_id = ''; AstraElementorSitesAdmin.page_id = ''; AstraElementorSitesAdmin.block_id = ''; AstraElementorSitesAdmin.requiredPlugins = []; AstraElementorSitesAdmin.templateData = {}; AstraElementorSitesAdmin.canImport = false; AstraElementorSitesAdmin.canInsert = false; // Hide Back button. $elscope.find( '.back-to-layout' ).css( 'visibility', 'hidden' ); $elscope.find( '.back-to-layout' ).css( 'opacity', '0' ); // Hide Preview Page. $elscope.find( '.theme-preview' ).hide(); $elscope.find( '.theme-preview' ).html( '' ); $elscope.find( '.theme-preview-block' ).hide(); $elscope.find( '.theme-preview-block' ).html( '' ); $elscope.find( '.ast-template-library-toolbar' ).show(); // Show listing page. if ( AstraElementorSitesAdmin.type == 'pages' ) { $elscope.find( '.dialog-lightbox-content' ).show(); $elscope.find( '.dialog-lightbox-content-block' ).hide(); // Set listing HTML. AstraElementorSitesAdmin._appendSites( astraElementorSites.default_page_builder_sites ); } else { // Set listing HTML. AstraElementorSitesAdmin._appendBlocks( astraElementorSites.astra_blocks ); $elscope.find( '.dialog-lightbox-content-block' ).show(); $elscope.find( '.dialog-lightbox-content' ).hide(); if ( '' !== $elscope.find( '#wp-filter-search-input' ).val() ) { $elscope .find( '#wp-filter-search-input' ) .trigger( 'keyup' ); } } }, _goStep2: function ( e ) { // Set page and site ids. AstraElementorSitesAdmin.site_id = $elscope .find( '#astra-blocks' ) .data( 'site-id' ); AstraElementorSitesAdmin.page_id = ''; if ( undefined === AstraElementorSitesAdmin.site_id ) { return; } // Single Preview template. let single_template = wp.template( 'astra-sites-list-search' ); let passing_data = astraElementorSites.default_page_builder_sites[ AstraElementorSitesAdmin.site_id ][ 'pages' ]; passing_data[ 'site_id' ] = AstraElementorSitesAdmin.site_id; pages_list = single_template( passing_data ); $elscope.find( '.dialog-lightbox-content' ).html( pages_list ); // Hide Preview page. $elscope.find( '.theme-preview' ).hide(); $elscope.find( '.theme-preview' ).html( '' ); $elscope.find( '.ast-template-library-toolbar' ).show(); $elscope.find( '.theme-preview-block' ).hide(); $elscope.find( '.theme-preview-block' ).html( '' ); // Show listing page. $elscope.find( '.dialog-lightbox-content' ).show(); $elscope.find( '.dialog-lightbox-content-block' ).hide(); AstraElementorSitesAdmin._loadLargeImages(); if ( '' !== $elscope.find( '#wp-filter-search-input' ).val() ) { $elscope.find( '#wp-filter-search-input' ).trigger( 'keyup' ); } }, _step1: function ( e ) { if ( 'pages' == AstraElementorSitesAdmin.type ) { let passing_data = astraElementorSites.default_page_builder_sites[ AstraElementorSitesAdmin.site_id ][ 'pages' ]; var count = 0; var one_page = []; var one_page_id = ''; for ( key in passing_data ) { if ( undefined == passing_data[ key ][ 'site-pages-type' ] ) { continue; } if ( 'gutenberg' == passing_data[ key ][ 'site-pages-page-builder' ] ) { continue; } count++; one_page = passing_data[ key ]; one_page_id = key; } if ( count == 1 ) { // Logic for one page sites. AstraElementorSitesAdmin.page_id = one_page_id; $elscope .find( '.back-to-layout' ) .css( 'visibility', 'visible' ); $elscope.find( '.back-to-layout' ).css( 'opacity', '1' ); $elscope.find( '.back-to-layout' ).attr( 'data-step', 2 ); $( document ).trigger( 'astra-sites__elementor-do-step-2' ); return; } let single_template = wp.template( 'astra-sites-list-search' ); passing_data[ 'site_id' ] = AstraElementorSitesAdmin.site_id; pages_list = single_template( passing_data ); $elscope.find( '.dialog-lightbox-content-block' ).hide(); $elscope.find( '.astra-sites-step-1-wrap' ).show(); $elscope.find( '.astra-preview-actions-wrap' ).remove(); $elscope.find( '.theme-preview' ).hide(); $elscope.find( '.theme-preview' ).html( '' ); $elscope.find( '.ast-template-library-toolbar' ).show(); $elscope.find( '.theme-preview-block' ).hide(); $elscope.find( '.theme-preview-block' ).html( '' ); $elscope.find( '.dialog-lightbox-content' ).show(); $elscope.find( '.dialog-lightbox-content' ).html( pages_list ); AstraElementorSitesAdmin._loadLargeImages(); } else { $elscope.find( '.dialog-lightbox-content' ).hide(); $elscope.find( '.dialog-lightbox-content-block' ).hide(); $elscope .find( '.dialog-lightbox-message' ) .animate( { scrollTop: 0 }, 50 ); $elscope.find( '.theme-preview-block' ).show(); $elscope.find( '.ast-template-library-toolbar' ).hide(); $elscope .find( '.ast-sites-modal__header' ) .addClass( 'ast-preview-mode' ); // Hide. $elscope.find( '.theme-preview' ).hide(); $elscope.find( '.theme-preview' ).html( '' ); let import_template = wp.template( 'astra-sites-elementor-preview' ); let import_template_header = wp.template( 'astra-sites-elementor-preview-actions' ); let template_object = astraElementorSites.astra_blocks[ AstraElementorSitesAdmin.block_id ]; template_object[ 'id' ] = AstraElementorSitesAdmin.block_id; preview_page_html = import_template( template_object ); $elscope .find( '.theme-preview-block' ) .html( preview_page_html ); $elscope.find( '.astra-sites-step-1-wrap' ).hide(); preview_action_html = import_template_header( template_object ); $elscope .find( '.elementor-templates-modal__header__items-area' ) .append( preview_action_html ); AstraElementorSitesAdmin._masonry(); let actual_id = AstraElementorSitesAdmin.block_id.replace( 'id-', '' ); $( document ).trigger( 'astra-sites__elementor-plugin-check', { id: actual_id, } ); } }, _step2: function ( e ) { $elscope.find( '.dialog-lightbox-content' ).hide(); $elscope .find( '.dialog-lightbox-message' ) .animate( { scrollTop: 0 }, 50 ); $elscope.find( '.theme-preview' ).show(); $elscope .find( '.ast-sites-modal__header' ) .addClass( 'ast-preview-mode' ); if ( undefined === AstraElementorSitesAdmin.site_id ) { return; } let import_template = wp.template( 'astra-sites-elementor-preview' ); let import_template_header = wp.template( 'astra-sites-elementor-preview-actions' ); let template_object = astraElementorSites.default_page_builder_sites[ AstraElementorSitesAdmin.site_id ][ 'pages' ][ AstraElementorSitesAdmin.page_id ]; if ( undefined === template_object ) { return; } template_object[ 'id' ] = AstraElementorSitesAdmin.site_id; preview_page_html = import_template( template_object ); $elscope.find( '.theme-preview' ).html( preview_page_html ); $elscope.find( '.astra-sites-step-1-wrap' ).hide(); preview_action_html = import_template_header( template_object ); $elscope .find( '.elementor-templates-modal__header__items-area' ) .append( preview_action_html ); let actual_id = AstraElementorSitesAdmin.page_id.replace( 'id-', '' ); $( document ).trigger( 'astra-sites__elementor-plugin-check', { id: actual_id, } ); }, _preview: function ( e ) { if ( AstraElementorSitesAdmin.processing ) { return; } let step = $( this ).attr( 'data-step' ); AstraElementorSitesAdmin.site_id = $( this ) .closest( '.astra-theme' ) .data( 'site-id' ); AstraElementorSitesAdmin.page_id = $( this ) .closest( '.astra-theme' ) .data( 'template-id' ); AstraElementorSitesAdmin.block_id = $( this ) .closest( '.astra-theme' ) .data( 'block-id' ); $elscope.find( '.back-to-layout' ).css( 'visibility', 'visible' ); $elscope.find( '.back-to-layout' ).css( 'opacity', '1' ); $elscope.find( '.ast-template-library-toolbar' ).hide(); $elscope .find( '.ast-sites-modal__header' ) .removeClass( 'ast-preview-mode' ); if ( 1 == step ) { $elscope.find( '.back-to-layout' ).attr( 'data-step', 2 ); $( document ).trigger( 'astra-sites__elementor-do-step-1' ); } else { $elscope.find( '.back-to-layout' ).attr( 'data-step', 3 ); $( document ).trigger( 'astra-sites__elementor-do-step-2' ); } }, _pluginCheck: function ( e, data ) { var type = 'blocks' !== AstraElementorSitesAdmin.type ? 'site-pages' : 'astra-blocks'; var id = data[ 'id' ]; const generateData = new FormData(); generateData.append( 'action', 'astra-sites-elementor-api-request' ); generateData.append( 'id', id ); generateData.append( 'type', type ); generateData.append( '_ajax_nonce', astraElementorSites._ajax_nonce ); $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-elementor-api-request', _ajax_nonce: astraElementorSites._ajax_nonce, type: type, id: id, }, } ) .fail( function ( jqXHR ) { console.log( jqXHR ); console.groupEnd(); } ) .done( function ( response ) { if ( response.success === true ) { var data = response.data; if ( undefined !== data ) { AstraElementorSitesAdmin.templateData = data; if ( type == 'site-pages' ) { if ( undefined !== data[ 'site-pages-required-plugins' ] ) { AstraElementorSitesAdmin._requiredPluginsMarkup( data[ 'site-pages-required-plugins' ] ); } } else { if ( undefined !== data[ 'post-meta' ][ 'astra-blocks-required-plugins' ] ) { AstraElementorSitesAdmin._requiredPluginsMarkup( PHP.parse( data[ 'post-meta' ][ 'astra-blocks-required-plugins' ] ) ); } } } } } ); }, _requiredPluginsMarkup: function ( requiredPlugins ) { if ( '' === requiredPlugins ) { return; } if ( AstraElementorSitesAdmin.type == 'pages' && astraElementorSites.default_page_builder_sites[ AstraElementorSitesAdmin.site_id ][ 'astra-sites-type' ] != undefined && astraElementorSites.default_page_builder_sites[ AstraElementorSitesAdmin.site_id ][ 'astra-sites-type' ] != 'free' ) { if ( ! astraElementorSites.license_status ) { output = '<p class="ast-validate">' + astraElementorSites.license_msg + '</p>'; $elscope.find( '.required-plugins-list' ).html( output ); $elscope.find( '.ast-tooltip-wrap' ).css( 'opacity', 1 ); $elscope.find( '.astra-sites-tooltip' ).css( 'opacity', 1 ); /** * Enable Demo Import Button * @type number */ AstraElementorSitesAdmin.requiredPlugins = []; AstraElementorSitesAdmin.canImport = true; AstraElementorSitesAdmin.canInsert = true; $elscope .find( '.astra-sites-import-template-action > div' ) .removeClass( 'disabled' ); return; } } let id = 'blocks' === AstraElementorSitesAdmin.type ? AstraElementorSitesAdmin.block_id?.replace( 'id-', '' ) : AstraElementorSitesAdmin.page_id?.replace( 'id-', '' ); // Required Required. $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-required_plugins', id, screen: 'elementor', _ajax_nonce: astraElementorSites._ajax_nonce, required_plugins: requiredPlugins, }, } ) .fail( function ( jqXHR ) { console.log( jqXHR ); console.groupEnd(); } ) .done( function ( response ) { if ( false === response.success ) { $elscope = $( '#ast-sites-modal' ); $elscope .find( '#ast-sites-floating-notice-wrap-id' ) .show() .removeClass( 'error' ); $elscope .find( '#ast-sites-floating-notice-wrap-id .ast-sites-floating-notice' ) .show() .html( '<span class="message">Insufficient Permission. Please contact your Super Admin to allow the install required plugin permissions.<span>' ); $elscope .find( '#ast-sites-floating-notice-wrap-id' ) .addClass( 'error slide-in' ) .removeClass( 'refreshed-notice' ); } else { var output = ''; /** * Count remaining plugins. * @type number */ var remaining_plugins = 0; var required_plugins_markup = ''; required_plugins = response.data[ 'required_plugins' ]; if ( response.data[ 'third_party_required_plugins' ] .length ) { $( response.data[ 'third_party_required_plugins' ] ).each( function ( index, plugin ) { output += '<li class="plugin-card plugin-card-' + plugin.slug + '" data-slug="' + plugin.slug + '" data-init="' + plugin.init + '" data-name="' + plugin.name + '">' + plugin.name + '</li>'; } ); } /** * Not Installed * * List of not installed required plugins. */ if ( typeof required_plugins.notinstalled !== 'undefined' ) { // Add not have installed plugins count. remaining_plugins += parseInt( required_plugins.notinstalled.length ); $( required_plugins.notinstalled ).each( function ( index, plugin ) { if ( 'elementor' == plugin.slug ) { return; } output += '<li class="plugin-card plugin-card-' + plugin.slug + '" data-slug="' + plugin.slug + '" data-init="' + plugin.init + '" data-name="' + plugin.name + '">' + plugin.name + '</li>'; } ); } /** * Inactive * * List of not inactive required plugins. */ if ( typeof required_plugins.inactive !== 'undefined' ) { // Add inactive plugins count. remaining_plugins += parseInt( required_plugins.inactive.length ); $( required_plugins.inactive ).each( function ( index, plugin ) { if ( 'elementor' == plugin.slug ) { return; } output += '<li class="plugin-card plugin-card-' + plugin.slug + '" data-slug="' + plugin.slug + '" data-init="' + plugin.init + '" data-name="' + plugin.name + '">' + plugin.name + '</li>'; } ); } /** * Active * * List of not active required plugins. */ if ( typeof required_plugins.active !== 'undefined' ) { $( required_plugins.active ).each( function ( index, plugin ) { if ( 'elementor' == plugin.slug ) { return; } output += '<li class="plugin-card plugin-card-' + plugin.slug + '" data-slug="' + plugin.slug + '" data-init="' + plugin.init + '" data-name="' + plugin.name + '">' + plugin.name + '</li>'; } ); } if ( '' != output ) { output = '<li class="plugin-card-head"><strong>' + astraElementorSites.install_plugin_text + '</strong></li>' + output; $elscope .find( '.required-plugins-list' ) .html( output ); $elscope .find( '.ast-tooltip-wrap' ) .css( 'opacity', 1 ); $elscope .find( '.astra-sites-tooltip' ) .css( 'opacity', 1 ); } /** * Enable Demo Import Button * @type number */ AstraElementorSitesAdmin.requiredPlugins = response.data[ 'required_plugins' ]; AstraElementorSitesAdmin[ 'initial-page-refresh' ] = AstraElementorSitesAdmin[ 'requiredPlugins' ][ 'notinstalled' ]?.length || AstraElementorSitesAdmin[ 'requiredPlugins' ][ 'inactive' ]?.length ? true : false; if ( AstraElementorSitesAdmin[ 'initial-page-refresh' ] ) { document.querySelectorAll( '.astra-sites-import-template-action .ast-library-template-insert' )[ 0 ].innerText = 'Install Required Plugins & Import'; } AstraElementorSitesAdmin.canImport = true; AstraElementorSitesAdmin.canInsert = true; $elscope .find( '.astra-sites-import-template-action > div' ) .removeClass( 'disabled' ); } } ); }, removeAddedParams: function () { const urlObj = new URL( window.location.href ); // Check if the query parameters exist if ( urlObj.searchParams.has( 'remoteST' ) && urlObj.searchParams.has( 'blockID' ) ) { // Remove specific query parameters urlObj.searchParams.delete( 'remoteST' ); urlObj.searchParams.delete( 'blockID' ); urlObj.searchParams.delete( 'type' ); // Update the URL in the browser window.history.replaceState( {}, '', urlObj.href ); } }, saveContentAndRefresh: function () { const elementorPanel = document.querySelector( '.elementor-panel' ); // Get the Elementor panel element if ( elementorPanel ) { const updateButton = elementorPanel.querySelector( '#elementor-panel-saver-button-publish' ); // Find the Elementor update button if ( updateButton ) { updateButton.click(); // Trigger a click event on the update button let id = 'blocks' === AstraElementorSitesAdmin.type ? AstraElementorSitesAdmin.block_id?.replace( 'id-', '' ) : AstraElementorSitesAdmin.page_id?.replace( 'id-', '' ); if ( id ) { AstraElementorSitesAdmin.updateURLParams( id ); window.location.reload(); // Refresh the page } } } }, updateURLParams: function ( block_id ) { // Get the current URL var url = new URL( window.location.href ); // Create a new URLSearchParams object from the URL's search params var searchParams = new URLSearchParams( url.search ); let type = AstraElementorSitesAdmin.type; // Add parameters to the searchParams object searchParams.append( 'remoteST', 'true' ); searchParams.append( 'blockID', block_id ); searchParams.append( 'type', type ); // Update the search property of the URL object with the new search params url.search = searchParams.toString(); // Get the modified URL var modifiedUrl = url.toString(); // Update the browser's live URL window.history.pushState( { path: modifiedUrl }, '', modifiedUrl ); }, _libraryClick: function ( e ) { $elscope .find( '.elementor-template-library-menu-item' ) .each( function () { $( this ).removeClass( 'elementor-active' ); } ); $( this ).addClass( 'elementor-active' ); }, _loadLargeImage: function ( el ) { if ( el.hasClass( 'loaded' ) ) { return; } if ( el.parents( '.astra-theme' ).isInViewport() ) { var large_img_url = el.data( 'src' ) || ''; var imgLarge = new Image(); imgLarge.src = large_img_url; imgLarge.onload = function () { el.removeClass( 'loading' ); el.addClass( 'loaded' ); el.css( 'background-image', "url('" + imgLarge.src + "'" ); }; } }, _loadLargeImages: function () { $elscope.find( '.theme-screenshot' ).each( function ( key, el ) { AstraElementorSitesAdmin._loadLargeImage( $( el ) ); } ); }, _close: function ( e ) { console.groupEnd( 'Process Done.' ); $( document ).trigger( 'astra-sites__elementor-close-before' ); setTimeout( function () { $elscope.fadeOut(); $( 'body' ).removeClass( 'astra-sites__elementor-open' ); }, 300 ); $( document ).trigger( 'astra-sites__elementor-close-after' ); }, _open: function ( e ) { $( document ).trigger( 'astra-sites__elementor-open-before' ); $( 'body' ).addClass( 'astra-sites__elementor-open' ); let add_section = $( this ).closest( '.elementor-add-section' ); if ( add_section.hasClass( 'elementor-add-section-inline' ) ) { AstraElementorSitesAdmin.index = add_section.prevAll().length; } else { AstraElementorSitesAdmin.index = add_section .prev() .children().length; } AstraElementorSitesAdmin._home(); $elscope.fadeIn(); if ( $( '.refreshed-notice' ).length == 1 ) { setTimeout( function () { $( '.refreshed-notice' ).find( '.notice-dismiss' ).click(); }, 2500 ); } $( document ).trigger( 'astra-sites__elementor-open-after' ); }, _beforeOpen: function ( e ) { let userPrefersDark = matchMedia( '(prefers-color-scheme: dark)' ).matches; let uiTheme = elementor.settings.editorPreferences.model.get( 'ui_theme' ); if ( 'dark' === uiTheme || ( 'auto' === uiTheme && userPrefersDark ) ) { $( 'body' ).addClass( 'ast-sites-dark-mode' ); } else { $( 'body' ).removeClass( 'ast-sites-dark-mode' ); } // Hide preview page. $elscope.find( '.theme-preview' ).hide(); $elscope.find( '.theme-preview' ).html( '' ); // Show site listing page. $elscope.find( '.dialog-lightbox-content' ).show(); // Hide Back button. $elscope.find( '.back-to-layout' ).css( 'visibility', 'hidden' ); $elscope.find( '.back-to-layout' ).css( 'opacity', '0' ); }, _initSites: function ( e ) { AstraElementorSitesAdmin._appendSites( astraElementorSites.default_page_builder_sites ); AstraElementorSitesAdmin._goBack(); }, _initBlocks: function ( e ) { AstraElementorSitesAdmin._appendBlocks( astraElementorSites.astra_blocks ); AstraElementorSitesAdmin._goBack(); }, /** * Install Success */ _installSuccess: function ( event, response ) { event.preventDefault(); // Transform the 'Install' button into an 'Activate' button. var $init = $( '.plugin-card-' + response.slug ).data( 'init' ); var $name = $( '.plugin-card-' + response.slug ).data( 'name' ); // Reset not installed plugins list. var pluginsList = AstraElementorSitesAdmin.requiredPlugins.notinstalled; var curr_plugin = AstraElementorSitesAdmin._getPluginFromQueue( response.slug, pluginsList ); AstraElementorSitesAdmin.requiredPlugins.notinstalled = AstraElementorSitesAdmin._removePluginFromQueue( response.slug, pluginsList ); // WordPress adds "Activate" button after waiting for 1000ms. So we will run our activation after that. setTimeout( function () { console.log( 'Activating Plugin - ' + curr_plugin.name ); $.ajax( { url: astraElementorSites.ajaxurl, type: 'POST', data: { action: 'astra-sites-required_plugin_activate', init: curr_plugin.init, _ajax_nonce: astraElementorSites._ajax_nonce, }, } ).done( function ( result ) { if ( result.success ) { var pluginsList = AstraElementorSitesAdmin.requiredPlugins.inactive; console.log( 'Activated Plugin - ' + curr_plugin.name ); // Reset not installed plugins list. AstraElementorSitesAdmin.requiredPlugins.inactive = AstraElementorSitesAdmin._removePluginFromQueue( response.slug, pluginsList ); // Enable Demo Import Button AstraElementorSitesAdmin._enableImport(); } } ); }, 1200 ); }, /** * Plugin Installation Error. */ _installError: function ( event, response ) { console.log( response ); console.log( 'Error Installing Plugin - ' + response.slug ); console.log( response.errorMessage ); }, /** * Installing Plugin */ _pluginInstalling: function ( event, args ) { console.log( 'Installing Plugin - ' + args.slug ); }, }; /** * Initialize AstraElementorSitesAdmin */ $( function () { AstraElementorSitesAdmin.init(); } ); } )( jQuery ); import-status.js 0000644 00000005447 15104676363 0007762 0 ustar 00 ( function ( $ ) { AstraSitesImportStatus = { timer: null, ajax_in_process: false, current_step: null, interval: $( '.astra-sites-import-screen' ).length ? 1000 : 10000, /** * Init */ init: function () { this.start(); }, /** * Start */ start: function () { AstraSitesImportStatus.timer = setInterval( AstraSitesImportStatus.check_status, AstraSitesImportStatus.interval ); }, /** * Check Status */ check_status: function () { if ( false === AstraSitesImportStatus.ajax_in_process ) { AstraSitesImportStatus.ajax_in_process = true; AstraSitesImportStatus._ajax_request(); } }, /** * Ajax Request */ _ajax_request: function () { $.ajax( { url: AstraSitesImportStatusVars.ajaxurl, type: 'POST', data: { action: 'astra_sites_check_import_status', _ajax_nonce: AstraSitesImportStatusVars._ajax_nonce, }, } ) .done( function ( result ) { AstraSitesImportStatus.ajax_in_process = false; // Admin Bar UI markup. if ( 'complete' === result.data.response.step || 'fail' === result.data.response.step ) { AstraSitesImportStatus.stop(); var response_message = '<span class="dashicons dashicons-no-alt"></span> Site Import Failed'; if ( 'complete' === result.data.response.step ) { response_message = '<span class="dashicons dashicons-yes"></span>' + response_message; } $( '#astra-sites-import-status-admin-bar' ).html( response_message ); } else { $( '#astra-sites-import-status-admin-bar' ).html( '<span class="loading"></span>' + result.data.response.message ); } // Admin page UI markup. var currentStep = $( '.import-step[data-step="' + result.data.response.step + '"]' ); if ( currentStep.length ) { if ( 'complete' === result.data.response.step || 'fail' === result.data.response.step ) { $( '.import-step' ) .removeClass( 'processing' ) .addClass( 'success' ); } else if ( AstraSitesImportStatus.current_step !== result.data.response.step ) { AstraSitesImportStatus.current_step = result.data.response.step; currentStep .prevAll() .removeClass( 'processing' ) .addClass( 'success' ); currentStep.addClass( 'processing' ); } } } ) .fail( function ( err ) { AstraSitesImportStatus.ajax_in_process = false; // Stop. AstraSitesImportStatus.stop(); } ); }, /** * Step */ stop: function () { clearInterval( AstraSitesImportStatus.timer ); }, }; /** * Initialize AstraSitesImportStatus */ $( function () { AstraSitesImportStatus.init(); } ); } )( jQuery ); fetch.umd.js 0000644 00000034545 15104676363 0007005 0 ustar 00 /** * Fetch * https://github.com/github/fetch * * Released under the MIT License (MIT) * https://github.com/github/fetch/blob/master/LICENSE */ ( function ( global, factory ) { typeof exports === 'object' && typeof module !== 'undefined' ? factory( exports ) : typeof define === 'function' && define.amd ? define( [ 'exports' ], factory ) : factory( ( global.WHATWGFetch = {} ) ); } )( this, function ( exports ) { 'use strict'; var support = { searchParams: 'URLSearchParams' in self, iterable: 'Symbol' in self && 'iterator' in Symbol, blob: 'FileReader' in self && 'Blob' in self && ( function () { try { new Blob(); return true; } catch ( e ) { return false; } } )(), formData: 'FormData' in self, arrayBuffer: 'ArrayBuffer' in self, }; function isDataView( obj ) { return obj && DataView.prototype.isPrototypeOf( obj ); } if ( support.arrayBuffer ) { var viewClasses = [ '[object Int8Array]', '[object Uint8Array]', '[object Uint8ClampedArray]', '[object Int16Array]', '[object Uint16Array]', '[object Int32Array]', '[object Uint32Array]', '[object Float32Array]', '[object Float64Array]', ]; var isArrayBufferView = ArrayBuffer.isView || function ( obj ) { return ( obj && viewClasses.indexOf( Object.prototype.toString.call( obj ) ) > -1 ); }; } function normalizeName( name ) { if ( typeof name !== 'string' ) { name = String( name ); } if ( /[^a-z0-9\-#$%&'*+.^_`|~]/i.test( name ) ) { throw new TypeError( 'Invalid character in header field name' ); } return name.toLowerCase(); } function normalizeValue( value ) { if ( typeof value !== 'string' ) { value = String( value ); } return value; } // Build a destructive iterator for the value list function iteratorFor( items ) { var iterator = { next: function () { var value = items.shift(); return { done: value === undefined, value: value }; }, }; if ( support.iterable ) { iterator[ Symbol.iterator ] = function () { return iterator; }; } return iterator; } function Headers( headers ) { this.map = {}; if ( headers instanceof Headers ) { headers.forEach( function ( value, name ) { this.append( name, value ); }, this ); } else if ( Array.isArray( headers ) ) { headers.forEach( function ( header ) { this.append( header[ 0 ], header[ 1 ] ); }, this ); } else if ( headers ) { Object.getOwnPropertyNames( headers ).forEach( function ( name ) { this.append( name, headers[ name ] ); }, this ); } } Headers.prototype.append = function ( name, value ) { name = normalizeName( name ); value = normalizeValue( value ); var oldValue = this.map[ name ]; this.map[ name ] = oldValue ? oldValue + ', ' + value : value; }; Headers.prototype[ 'delete' ] = function ( name ) { delete this.map[ normalizeName( name ) ]; }; Headers.prototype.get = function ( name ) { name = normalizeName( name ); return this.has( name ) ? this.map[ name ] : null; }; Headers.prototype.has = function ( name ) { return this.map.hasOwnProperty( normalizeName( name ) ); }; Headers.prototype.set = function ( name, value ) { this.map[ normalizeName( name ) ] = normalizeValue( value ); }; Headers.prototype.forEach = function ( callback, thisArg ) { for ( var name in this.map ) { if ( this.map.hasOwnProperty( name ) ) { callback.call( thisArg, this.map[ name ], name, this ); } } }; Headers.prototype.keys = function () { var items = []; this.forEach( function ( value, name ) { items.push( name ); } ); return iteratorFor( items ); }; Headers.prototype.values = function () { var items = []; this.forEach( function ( value ) { items.push( value ); } ); return iteratorFor( items ); }; Headers.prototype.entries = function () { var items = []; this.forEach( function ( value, name ) { items.push( [ name, value ] ); } ); return iteratorFor( items ); }; if ( support.iterable ) { Headers.prototype[ Symbol.iterator ] = Headers.prototype.entries; } function consumed( body ) { if ( body.bodyUsed ) { return Promise.reject( new TypeError( 'Already read' ) ); } body.bodyUsed = true; } function fileReaderReady( reader ) { return new Promise( function ( resolve, reject ) { reader.onload = function () { resolve( reader.result ); }; reader.onerror = function () { reject( reader.error ); }; } ); } function readBlobAsArrayBuffer( blob ) { var reader = new FileReader(); var promise = fileReaderReady( reader ); reader.readAsArrayBuffer( blob ); return promise; } function readBlobAsText( blob ) { var reader = new FileReader(); var promise = fileReaderReady( reader ); reader.readAsText( blob ); return promise; } function readArrayBufferAsText( buf ) { var view = new Uint8Array( buf ); var chars = new Array( view.length ); for ( var i = 0; i < view.length; i++ ) { chars[ i ] = String.fromCharCode( view[ i ] ); } return chars.join( '' ); } function bufferClone( buf ) { if ( buf.slice ) { return buf.slice( 0 ); } else { var view = new Uint8Array( buf.byteLength ); view.set( new Uint8Array( buf ) ); return view.buffer; } } function Body() { this.bodyUsed = false; this._initBody = function ( body ) { this._bodyInit = body; if ( ! body ) { this._bodyText = ''; } else if ( typeof body === 'string' ) { this._bodyText = body; } else if ( support.blob && Blob.prototype.isPrototypeOf( body ) ) { this._bodyBlob = body; } else if ( support.formData && FormData.prototype.isPrototypeOf( body ) ) { this._bodyFormData = body; } else if ( support.searchParams && URLSearchParams.prototype.isPrototypeOf( body ) ) { this._bodyText = body.toString(); } else if ( support.arrayBuffer && support.blob && isDataView( body ) ) { this._bodyArrayBuffer = bufferClone( body.buffer ); // IE 10-11 can't handle a DataView body. this._bodyInit = new Blob( [ this._bodyArrayBuffer ] ); } else if ( support.arrayBuffer && ( ArrayBuffer.prototype.isPrototypeOf( body ) || isArrayBufferView( body ) ) ) { this._bodyArrayBuffer = bufferClone( body ); } else { this._bodyText = body = Object.prototype.toString.call( body ); } if ( ! this.headers.get( 'content-type' ) ) { if ( typeof body === 'string' ) { this.headers.set( 'content-type', 'text/plain;charset=UTF-8' ); } else if ( this._bodyBlob && this._bodyBlob.type ) { this.headers.set( 'content-type', this._bodyBlob.type ); } else if ( support.searchParams && URLSearchParams.prototype.isPrototypeOf( body ) ) { this.headers.set( 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8' ); } } }; if ( support.blob ) { this.blob = function () { var rejected = consumed( this ); if ( rejected ) { return rejected; } if ( this._bodyBlob ) { return Promise.resolve( this._bodyBlob ); } else if ( this._bodyArrayBuffer ) { return Promise.resolve( new Blob( [ this._bodyArrayBuffer ] ) ); } else if ( this._bodyFormData ) { throw new Error( 'could not read FormData body as blob' ); } else { return Promise.resolve( new Blob( [ this._bodyText ] ) ); } }; this.arrayBuffer = function () { if ( this._bodyArrayBuffer ) { return ( consumed( this ) || Promise.resolve( this._bodyArrayBuffer ) ); } else { return this.blob().then( readBlobAsArrayBuffer ); } }; } this.text = function () { var rejected = consumed( this ); if ( rejected ) { return rejected; } if ( this._bodyBlob ) { return readBlobAsText( this._bodyBlob ); } else if ( this._bodyArrayBuffer ) { return Promise.resolve( readArrayBufferAsText( this._bodyArrayBuffer ) ); } else if ( this._bodyFormData ) { throw new Error( 'could not read FormData body as text' ); } else { return Promise.resolve( this._bodyText ); } }; if ( support.formData ) { this.formData = function () { return this.text().then( decode ); }; } this.json = function () { return this.text().then( JSON.parse ); }; return this; } // HTTP methods whose capitalization should be normalized var methods = [ 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT' ]; function normalizeMethod( method ) { var upcased = method.toUpperCase(); return methods.indexOf( upcased ) > -1 ? upcased : method; } function Request( input, options ) { options = options || {}; var body = options.body; if ( input instanceof Request ) { if ( input.bodyUsed ) { throw new TypeError( 'Already read' ); } this.url = input.url; this.credentials = input.credentials; if ( ! options.headers ) { this.headers = new Headers( input.headers ); } this.method = input.method; this.mode = input.mode; this.signal = input.signal; if ( ! body && input._bodyInit != null ) { body = input._bodyInit; input.bodyUsed = true; } } else { this.url = String( input ); } this.credentials = options.credentials || this.credentials || 'same-origin'; if ( options.headers || ! this.headers ) { this.headers = new Headers( options.headers ); } this.method = normalizeMethod( options.method || this.method || 'GET' ); this.mode = options.mode || this.mode || null; this.signal = options.signal || this.signal; this.referrer = null; if ( ( this.method === 'GET' || this.method === 'HEAD' ) && body ) { throw new TypeError( 'Body not allowed for GET or HEAD requests' ); } this._initBody( body ); } Request.prototype.clone = function () { return new Request( this, { body: this._bodyInit } ); }; function decode( body ) { var form = new FormData(); body.trim() .split( '&' ) .forEach( function ( bytes ) { if ( bytes ) { var split = bytes.split( '=' ); var name = split.shift().replace( /\+/g, ' ' ); var value = split.join( '=' ).replace( /\+/g, ' ' ); form.append( decodeURIComponent( name ), decodeURIComponent( value ) ); } } ); return form; } function parseHeaders( rawHeaders ) { var headers = new Headers(); // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space // https://tools.ietf.org/html/rfc7230#section-3.2 var preProcessedHeaders = rawHeaders.replace( /\r?\n[\t ]+/g, ' ' ); preProcessedHeaders.split( /\r?\n/ ).forEach( function ( line ) { var parts = line.split( ':' ); var key = parts.shift().trim(); if ( key ) { var value = parts.join( ':' ).trim(); headers.append( key, value ); } } ); return headers; } Body.call( Request.prototype ); function Response( bodyInit, options ) { if ( ! options ) { options = {}; } this.type = 'default'; this.status = options.status === undefined ? 200 : options.status; this.ok = this.status >= 200 && this.status < 300; this.statusText = 'statusText' in options ? options.statusText : 'OK'; this.headers = new Headers( options.headers ); this.url = options.url || ''; this._initBody( bodyInit ); } Body.call( Response.prototype ); Response.prototype.clone = function () { return new Response( this._bodyInit, { status: this.status, statusText: this.statusText, headers: new Headers( this.headers ), url: this.url, } ); }; Response.error = function () { var response = new Response( null, { status: 0, statusText: '' } ); response.type = 'error'; return response; }; var redirectStatuses = [ 301, 302, 303, 307, 308 ]; Response.redirect = function ( url, status ) { if ( redirectStatuses.indexOf( status ) === -1 ) { throw new RangeError( 'Invalid status code' ); } return new Response( null, { status: status, headers: { location: url }, } ); }; exports.DOMException = self.DOMException; try { new exports.DOMException(); } catch ( err ) { exports.DOMException = function ( message, name ) { this.message = message; this.name = name; var error = Error( message ); this.stack = error.stack; }; exports.DOMException.prototype = Object.create( Error.prototype ); exports.DOMException.prototype.constructor = exports.DOMException; } function fetch( input, init ) { return new Promise( function ( resolve, reject ) { var request = new Request( input, init ); if ( request.signal && request.signal.aborted ) { return reject( new exports.DOMException( 'Aborted', 'AbortError' ) ); } var xhr = new XMLHttpRequest(); function abortXhr() { xhr.abort(); } xhr.onload = function () { var options = { status: xhr.status, statusText: xhr.statusText, headers: parseHeaders( xhr.getAllResponseHeaders() || '' ), }; options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get( 'X-Request-URL' ); var body = 'response' in xhr ? xhr.response : xhr.responseText; resolve( new Response( body, options ) ); }; xhr.onerror = function () { reject( new TypeError( 'Network request failed' ) ); }; xhr.ontimeout = function () { reject( new TypeError( 'Network request failed' ) ); }; xhr.onabort = function () { reject( new exports.DOMException( 'Aborted', 'AbortError' ) ); }; xhr.open( request.method, request.url, true ); if ( request.credentials === 'include' ) { xhr.withCredentials = true; } else if ( request.credentials === 'omit' ) { xhr.withCredentials = false; } if ( 'responseType' in xhr && support.blob ) { xhr.responseType = 'blob'; } request.headers.forEach( function ( value, name ) { xhr.setRequestHeader( name, value ); } ); if ( request.signal ) { request.signal.addEventListener( 'abort', abortXhr ); xhr.onreadystatechange = function () { // DONE (success or failure) if ( xhr.readyState === 4 ) { request.signal.removeEventListener( 'abort', abortXhr ); } }; } xhr.send( typeof request._bodyInit === 'undefined' ? null : request._bodyInit ); } ); } fetch.polyfill = true; if ( ! self.fetch ) { self.fetch = fetch; self.Headers = Headers; self.Request = Request; self.Response = Response; } exports.Headers = Headers; exports.Request = Request; exports.Response = Response; exports.fetch = fetch; Object.defineProperty( exports, '__esModule', { value: true } ); } ); helper.js 0000644 00000017675 15104676363 0006414 0 ustar 00 'use strict'; function _defineProperty( obj, key, value ) { if ( key in obj ) { Object.defineProperty( obj, key, { value: value, enumerable: true, configurable: true, writable: true, } ); } else { obj[ key ] = value; } return obj; } function _slicedToArray( arr, i ) { return ( _arrayWithHoles( arr ) || _iterableToArrayLimit( arr, i ) || _nonIterableRest() ); } function _nonIterableRest() { throw new TypeError( 'Invalid attempt to destructure non-iterable instance' ); } function _iterableToArrayLimit( arr, i ) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for ( var _i = arr[ Symbol.iterator ](), _s; ! ( _n = ( _s = _i.next() ).done ); _n = true ) { _arr.push( _s.value ); if ( i && _arr.length === i ) break; } } catch ( err ) { _d = true; _e = err; } finally { try { if ( ! _n && _i[ 'return' ] != null ) _i[ 'return' ](); } finally { if ( _d ) throw _e; } } return _arr; } function _arrayWithHoles( arr ) { if ( Array.isArray( arr ) ) return arr; } var PHP = { stdClass: function stdClass() {}, stringify: function stringify( val ) { var hash = new Map( [ [ Infinity, 'd:INF;' ], [ -Infinity, 'd:-INF;' ], [ NaN, 'd:NAN;' ], [ null, 'N;' ], [ undefined, 'N;' ], ] ); var utf8length = function utf8length( str ) { return str ? encodeURI( str ).match( /(%.)?./g ).length : 0; }; var serializeString = function serializeString( s ) { var delim = arguments.length > 1 && arguments[ 1 ] !== undefined ? arguments[ 1 ] : '"'; return '' .concat( utf8length( s ), ':' ) .concat( delim[ 0 ] ) .concat( s ) .concat( delim[ delim.length - 1 ] ); }; var ref = 0; function serialize( val ) { var canReference = arguments.length > 1 && arguments[ 1 ] !== undefined ? arguments[ 1 ] : true; if ( hash.has( val ) ) return hash.get( val ); ref += canReference; if ( typeof val === 'string' ) return 's:'.concat( serializeString( val ), ';' ); if ( typeof val === 'number' ) return '' .concat( Math.round( val ) === val ? 'i' : 'd', ':' ) .concat( ( '' + val ) .toUpperCase() .replace( /(-?\d)E/, '$1.0E' ), ';' ); if ( typeof val === 'boolean' ) return 'b:'.concat( +val, ';' ); var a = Array.isArray( val ) || val.constructor === Object; hash.set( val, ''.concat( 'rR'[ +a ], ':' ).concat( ref, ';' ) ); if ( typeof val.serialize === 'function' ) { return 'C:' .concat( serializeString( val.constructor.name ), ':' ) .concat( serializeString( val.serialize(), '{}' ) ); } var vals = Object.entries( val ).filter( function ( _ref ) { var _ref2 = _slicedToArray( _ref, 2 ), k = _ref2[ 0 ], v = _ref2[ 1 ]; return typeof v !== 'function'; } ); return ( ( a ? 'a' : 'O:'.concat( serializeString( val.constructor.name ) ) ) + ':'.concat( vals.length, ':{' ).concat( vals .map( function ( _ref3 ) { var _ref4 = _slicedToArray( _ref3, 2 ), k = _ref4[ 0 ], v = _ref4[ 1 ]; return ( serialize( a && /^\d{1,16}$/.test( k ) ? +k : k, false ) + serialize( v ) ); } ) .join( '' ), '}' ) ); } return serialize( val ); }, // Provide in second argument the classes that may be instantiated // e.g. { MyClass1, MyClass2 } parse: function parse( str ) { var allowedClasses = arguments.length > 1 && arguments[ 1 ] !== undefined ? arguments[ 1 ] : {}; allowedClasses.stdClass = PHP.stdClass; // Always allowed. var offset = 0; var values = [ null ]; var specialNums = { INF: Infinity, '-INF': -Infinity, NAN: NaN, }; var kick = function kick( msg ) { var i = arguments.length > 1 && arguments[ 1 ] !== undefined ? arguments[ 1 ] : offset; throw new Error( 'Error at ' .concat( i, ': ' ) .concat( msg, '\n' ) .concat( str, '\n' ) .concat( ' '.repeat( i ), '^' ) ); }; var read = function read( expected, ret ) { return expected === str.slice( offset, ( offset += expected.length ) ) ? ret : kick( "Expected '".concat( expected, "'" ), offset - expected.length ); }; function readMatch( regex, msg ) { var terminator = arguments.length > 2 && arguments[ 2 ] !== undefined ? arguments[ 2 ] : ';'; read( ':' ); var match = regex.exec( str.slice( offset ) ); if ( ! match ) kick( 'Exected ' .concat( msg, ", but got '" ) .concat( str .slice( offset ) .match( /^[:;{}]|[^:;{}]*/ )[ 0 ], "'" ) ); offset += match[ 0 ].length; return read( terminator, match[ 0 ] ); } function readUtf8chars( numUtf8Bytes ) { var terminator = arguments.length > 1 && arguments[ 1 ] !== undefined ? arguments[ 1 ] : ''; var i = offset; while ( numUtf8Bytes > 0 ) { var code = str.charCodeAt( offset++ ); numUtf8Bytes -= code < 0x80 ? 1 : code < 0x800 || code >> 11 === 0x1b ? 2 : 3; } return numUtf8Bytes ? kick( 'Invalid string length', i - 2 ) : read( terminator, str.slice( i, offset ) ); } var create = function create( className ) { return ! className ? {} : allowedClasses[ className ] ? Object.create( allowedClasses[ className ].prototype ) : new ( _defineProperty( {}, className, function () {} )[ className ] )(); }; // Create a mock class for this name var readBoolean = function readBoolean() { return readMatch( /^[01]/, "a '0' or '1'", ';' ); }; var readInt = function readInt() { return +readMatch( /^-?\d+/, 'an integer', ';' ); }; var readUInt = function readUInt( terminator ) { return +readMatch( /^\d+/, 'an unsigned integer', terminator ); }; var readString = function readString() { var terminator = arguments.length > 0 && arguments[ 0 ] !== undefined ? arguments[ 0 ] : ''; return readUtf8chars( readUInt( ':"' ), '"' + terminator ); }; function readDecimal() { var num = readMatch( /^-?(\d+(\.\d+)?(E[+-]\d+)?|INF)|NAN/, 'a decimal number', ';' ); return num in specialNums ? specialNums[ num ] : +num; } function readKey() { var typ = str[ offset++ ]; return typ === 's' ? readString( ';' ) : typ === 'i' ? readUInt( ';' ) : kick( "Expected 's' or 'i' as type for a key, but got ${str[offset-1]}", offset - 1 ); } function readObject( obj ) { for ( var i = 0, length = readUInt( ':{' ); i < length; i++ ) { obj[ readKey() ] = readValue(); } return read( '}', obj ); } function readArray() { var obj = readObject( {} ); return Object.keys( obj ).some( function ( key, i ) { return key != i; } ) ? obj : Object.values( obj ); } function readCustomObject( obj ) { if ( typeof obj.unserialize !== 'function' ) kick( 'Instance of '.concat( obj.constructor.name, ' does not have an "unserialize" method' ) ); obj.unserialize( readUtf8chars( readUInt( ':{' ) ) ); return read( '}', obj ); } function readValue() { var typ = str[ offset++ ].toLowerCase(); var ref = values.push( null ) - 1; var val = typ === 'n' ? read( ';', null ) : typ === 's' ? readString( ';' ) : typ === 'b' ? readBoolean() : typ === 'i' ? readInt() : typ === 'd' ? readDecimal() : typ === 'a' ? readArray() // Associative array : typ === 'o' ? readObject( create( readString() ) ) // Object : typ === 'c' ? readCustomObject( create( readString() ) ) // Custom serialized object : typ === 'r' ? values[ readInt() ] // Backreference : kick( 'Unexpected type '.concat( typ ), offset - 1 ); if ( typ !== 'r' ) values[ ref ] = val; return val; } var val = readValue(); if ( offset !== str.length ) kick( 'Unexpected trailing character' ); return val; }, }; eventsource.js 0000644 00000046245 15104676363 0007472 0 ustar 00 /** * EventSource * https://github.com/Yaffle/EventSource * * Released under the MIT License (MIT) * https://github.com/Yaffle/EventSource/blob/master/LICENSE.md */ /*jslint indent: 2, vars: true, plusplus: true */ /*global setTimeout, clearTimeout */ ( function ( global ) { 'use strict'; var setTimeout = global.setTimeout; var clearTimeout = global.clearTimeout; var XMLHttpRequest = global.XMLHttpRequest; var XDomainRequest = global.XDomainRequest; var NativeEventSource = global.EventSource; var document = global.document; if ( Object.create == null ) { Object.create = function ( C ) { function F() {} F.prototype = C; return new F(); }; } var k = function () {}; function XHRWrapper( xhr ) { this.withCredentials = false; this.responseType = ''; this.readyState = 0; this.status = 0; this.statusText = ''; this.responseText = ''; this.onprogress = k; this.onreadystatechange = k; this._contentType = ''; this._xhr = xhr; this._sendTimeout = 0; this._abort = k; } XHRWrapper.prototype.open = function ( method, url ) { this._abort( true ); var that = this; var xhr = this._xhr; var state = 1; var timeout = 0; this._abort = function ( silent ) { if ( that._sendTimeout !== 0 ) { clearTimeout( that._sendTimeout ); that._sendTimeout = 0; } if ( state === 1 || state === 2 || state === 3 ) { state = 4; xhr.onload = k; xhr.onerror = k; xhr.onabort = k; xhr.onprogress = k; xhr.onreadystatechange = k; // IE 8 - 9: XDomainRequest#abort() does not fire any event // Opera < 10: XMLHttpRequest#abort() does not fire any event xhr.abort(); if ( timeout !== 0 ) { clearTimeout( timeout ); timeout = 0; } if ( ! silent ) { that.readyState = 4; that.onreadystatechange(); } } state = 0; }; var onStart = function () { if ( state === 1 ) { //state = 2; var status = 0; var statusText = ''; var contentType = undefined; if ( ! ( 'contentType' in xhr ) ) { try { status = xhr.status; statusText = xhr.statusText; contentType = xhr.getResponseHeader( 'Content-Type' ); } catch ( error ) { // IE < 10 throws exception for `xhr.status` when xhr.readyState === 2 || xhr.readyState === 3 // Opera < 11 throws exception for `xhr.status` when xhr.readyState === 2 // https://bugs.webkit.org/show_bug.cgi?id=29121 status = 0; statusText = ''; contentType = undefined; // Firefox < 14, Chrome ?, Safari ? // https://bugs.webkit.org/show_bug.cgi?id=29658 // https://bugs.webkit.org/show_bug.cgi?id=77854 } } else { status = 200; statusText = 'OK'; contentType = xhr.contentType; } if ( status !== 0 ) { state = 2; that.readyState = 2; that.status = status; that.statusText = statusText; that._contentType = contentType; that.onreadystatechange(); } } }; var onProgress = function () { onStart(); if ( state === 2 || state === 3 ) { state = 3; var responseText = ''; try { responseText = xhr.responseText; } catch ( error ) { // IE 8 - 9 with XMLHttpRequest } that.readyState = 3; that.responseText = responseText; that.onprogress(); } }; var onFinish = function () { // Firefox 52 fires "readystatechange" (xhr.readyState === 4) without final "readystatechange" (xhr.readyState === 3) // IE 8 fires "onload" without "onprogress" onProgress(); if ( state === 1 || state === 2 || state === 3 ) { state = 4; if ( timeout !== 0 ) { clearTimeout( timeout ); timeout = 0; } that.readyState = 4; that.onreadystatechange(); } }; var onReadyStateChange = function () { if ( xhr != undefined ) { // Opera 12 if ( xhr.readyState === 4 ) { onFinish(); } else if ( xhr.readyState === 3 ) { onProgress(); } else if ( xhr.readyState === 2 ) { onStart(); } } }; var onTimeout = function () { timeout = setTimeout( function () { onTimeout(); }, 500 ); if ( xhr.readyState === 3 ) { onProgress(); } }; // XDomainRequest#abort removes onprogress, onerror, onload xhr.onload = onFinish; xhr.onerror = onFinish; // improper fix to match Firefox behaviour, but it is better than just ignore abort // see https://bugzilla.mozilla.org/show_bug.cgi?id=768596 // https://bugzilla.mozilla.org/show_bug.cgi?id=880200 // https://code.google.com/p/chromium/issues/detail?id=153570 // IE 8 fires "onload" without "onprogress xhr.onabort = onFinish; // https://bugzilla.mozilla.org/show_bug.cgi?id=736723 if ( ! ( 'sendAsBinary' in XMLHttpRequest.prototype ) && ! ( 'mozAnon' in XMLHttpRequest.prototype ) ) { xhr.onprogress = onProgress; } // IE 8 - 9 (XMLHTTPRequest) // Opera < 12 // Firefox < 3.5 // Firefox 3.5 - 3.6 - ? < 9.0 // onprogress is not fired sometimes or delayed // see also #64 xhr.onreadystatechange = onReadyStateChange; if ( 'contentType' in xhr ) { url += ( url.indexOf( '?', 0 ) === -1 ? '?' : '&' ) + 'padding=true'; } xhr.open( method, url, true ); if ( 'readyState' in xhr ) { // workaround for Opera 12 issue with "progress" events // #91 timeout = setTimeout( function () { onTimeout(); }, 0 ); } }; XHRWrapper.prototype.abort = function () { this._abort( false ); }; XHRWrapper.prototype.getResponseHeader = function ( name ) { return this._contentType; }; XHRWrapper.prototype.setRequestHeader = function ( name, value ) { var xhr = this._xhr; if ( 'setRequestHeader' in xhr ) { xhr.setRequestHeader( name, value ); } }; XHRWrapper.prototype.send = function () { // loading indicator in Safari < ? (6), Chrome < 14, Firefox if ( ! ( 'ontimeout' in XMLHttpRequest.prototype ) && document != undefined && document.readyState != undefined && document.readyState !== 'complete' ) { var that = this; that._sendTimeout = setTimeout( function () { that._sendTimeout = 0; that.send(); }, 4 ); return; } var xhr = this._xhr; // withCredentials should be set after "open" for Safari and Chrome (< 19 ?) xhr.withCredentials = this.withCredentials; xhr.responseType = this.responseType; try { // xhr.send(); throws "Not enough arguments" in Firefox 3.0 xhr.send( undefined ); } catch ( error1 ) { // Safari 5.1.7, Opera 12 throw error1; } }; function XHRTransport( xhr ) { this._xhr = new XHRWrapper( xhr ); } XHRTransport.prototype.open = function ( onStartCallback, onProgressCallback, onFinishCallback, url, withCredentials, headers ) { var xhr = this._xhr; xhr.open( 'GET', url ); var offset = 0; xhr.onprogress = function () { var responseText = xhr.responseText; var chunk = responseText.slice( offset ); offset += chunk.length; onProgressCallback( chunk ); }; xhr.onreadystatechange = function () { if ( xhr.readyState === 2 ) { var status = xhr.status; var statusText = xhr.statusText; var contentType = xhr.getResponseHeader( 'Content-Type' ); onStartCallback( status, statusText, contentType ); } else if ( xhr.readyState === 4 ) { onFinishCallback(); } }; xhr.withCredentials = withCredentials; xhr.responseType = 'text'; for ( var name in headers ) { if ( Object.prototype.hasOwnProperty.call( headers, name ) ) { xhr.setRequestHeader( name, headers[ name ] ); } } xhr.send(); }; XHRTransport.prototype.cancel = function () { var xhr = this._xhr; xhr.abort(); }; function EventTarget() { this._listeners = Object.create( null ); } function throwError( e ) { setTimeout( function () { throw e; }, 0 ); } EventTarget.prototype.dispatchEvent = function ( event ) { event.target = this; var typeListeners = this._listeners[ event.type ]; if ( typeListeners != undefined ) { var length = typeListeners.length; for ( var i = 0; i < length; i += 1 ) { var listener = typeListeners[ i ]; try { if ( typeof listener.handleEvent === 'function' ) { listener.handleEvent( event ); } else { listener.call( this, event ); } } catch ( e ) { throwError( e ); } } } }; EventTarget.prototype.addEventListener = function ( type, listener ) { type = String( type ); var listeners = this._listeners; var typeListeners = listeners[ type ]; if ( typeListeners == undefined ) { typeListeners = []; listeners[ type ] = typeListeners; } var found = false; for ( var i = 0; i < typeListeners.length; i += 1 ) { if ( typeListeners[ i ] === listener ) { found = true; } } if ( ! found ) { typeListeners.push( listener ); } }; EventTarget.prototype.removeEventListener = function ( type, listener ) { type = String( type ); var listeners = this._listeners; var typeListeners = listeners[ type ]; if ( typeListeners != undefined ) { var filtered = []; for ( var i = 0; i < typeListeners.length; i += 1 ) { if ( typeListeners[ i ] !== listener ) { filtered.push( typeListeners[ i ] ); } } if ( filtered.length === 0 ) { delete listeners[ type ]; } else { listeners[ type ] = filtered; } } }; function Event( type ) { this.type = type; this.target = undefined; } function MessageEvent( type, options ) { Event.call( this, type ); this.data = options.data; this.lastEventId = options.lastEventId; } MessageEvent.prototype = Object.create( Event.prototype ); var WAITING = -1; var CONNECTING = 0; var OPEN = 1; var CLOSED = 2; var AFTER_CR = -1; var FIELD_START = 0; var FIELD = 1; var VALUE_START = 2; var VALUE = 3; var contentTypeRegExp = /^text\/event\-stream;?(\s*charset\=utf\-8)?$/i; var MINIMUM_DURATION = 1000; var MAXIMUM_DURATION = 18000000; var parseDuration = function ( value, def ) { var n = parseInt( value, 10 ); if ( n !== n ) { n = def; } return clampDuration( n ); }; var clampDuration = function ( n ) { return Math.min( Math.max( n, MINIMUM_DURATION ), MAXIMUM_DURATION ); }; var fire = function ( that, f, event ) { try { if ( typeof f === 'function' ) { f.call( that, event ); } } catch ( e ) { throwError( e ); } }; function EventSourcePolyfill( url, options ) { EventTarget.call( this ); this.onopen = undefined; this.onmessage = undefined; this.onerror = undefined; this.url = undefined; this.readyState = undefined; this.withCredentials = undefined; this._close = undefined; start( this, url, options ); } function start( es, url, options ) { url = String( url ); var withCredentials = options != undefined && Boolean( options.withCredentials ); var initialRetry = clampDuration( 1000 ); var heartbeatTimeout = clampDuration( 45000 ); var lastEventId = ''; var retry = initialRetry; var wasActivity = false; var headers = options != undefined && options.headers != undefined ? JSON.parse( JSON.stringify( options.headers ) ) : undefined; var CurrentTransport = options != undefined && options.Transport != undefined ? options.Transport : XDomainRequest != undefined ? XDomainRequest : XMLHttpRequest; var transport = new XHRTransport( new CurrentTransport() ); var timeout = 0; var currentState = WAITING; var dataBuffer = ''; var lastEventIdBuffer = ''; var eventTypeBuffer = ''; var textBuffer = ''; var state = FIELD_START; var fieldStart = 0; var valueStart = 0; var onStart = function ( status, statusText, contentType ) { if ( currentState === CONNECTING ) { if ( status === 200 && contentType != undefined && contentTypeRegExp.test( contentType ) ) { currentState = OPEN; wasActivity = true; retry = initialRetry; es.readyState = OPEN; var event = new Event( 'open' ); es.dispatchEvent( event ); fire( es, es.onopen, event ); } else { var message = ''; if ( status !== 200 ) { if ( statusText ) { statusText = statusText.replace( /\s+/g, ' ' ); } message = "EventSource's response has a status " + status + ' ' + statusText + ' that is not 200. Aborting the connection.'; } else { message = "EventSource's response has a Content-Type specifying an unsupported type: " + ( contentType == undefined ? '-' : contentType.replace( /\s+/g, ' ' ) ) + '. Aborting the connection.'; } throwError( new Error( message ) ); close(); var event = new Event( 'error' ); es.dispatchEvent( event ); fire( es, es.onerror, event ); } } }; var onProgress = function ( textChunk ) { if ( currentState === OPEN ) { var n = -1; for ( var i = 0; i < textChunk.length; i += 1 ) { var c = textChunk.charCodeAt( i ); if ( c === '\n'.charCodeAt( 0 ) || c === '\r'.charCodeAt( 0 ) ) { n = i; } } var chunk = ( n !== -1 ? textBuffer : '' ) + textChunk.slice( 0, n + 1 ); textBuffer = ( n === -1 ? textBuffer : '' ) + textChunk.slice( n + 1 ); if ( chunk !== '' ) { wasActivity = true; } for ( var position = 0; position < chunk.length; position += 1 ) { var c = chunk.charCodeAt( position ); if ( state === AFTER_CR && c === '\n'.charCodeAt( 0 ) ) { state = FIELD_START; } else { if ( state === AFTER_CR ) { state = FIELD_START; } if ( c === '\r'.charCodeAt( 0 ) || c === '\n'.charCodeAt( 0 ) ) { if ( state !== FIELD_START ) { if ( state === FIELD ) { valueStart = position + 1; } var field = chunk.slice( fieldStart, valueStart - 1 ); var value = chunk.slice( valueStart + ( valueStart < position && chunk.charCodeAt( valueStart ) === ' '.charCodeAt( 0 ) ? 1 : 0 ), position ); if ( field === 'data' ) { dataBuffer += '\n'; dataBuffer += value; } else if ( field === 'id' ) { lastEventIdBuffer = value; } else if ( field === 'event' ) { eventTypeBuffer = value; } else if ( field === 'retry' ) { initialRetry = parseDuration( value, initialRetry ); retry = initialRetry; } else if ( field === 'heartbeatTimeout' ) { heartbeatTimeout = parseDuration( value, heartbeatTimeout ); if ( timeout !== 0 ) { clearTimeout( timeout ); timeout = setTimeout( function () { onTimeout(); }, heartbeatTimeout ); } } } if ( state === FIELD_START ) { if ( dataBuffer !== '' ) { lastEventId = lastEventIdBuffer; if ( eventTypeBuffer === '' ) { eventTypeBuffer = 'message'; } var event = new MessageEvent( eventTypeBuffer, { data: dataBuffer.slice( 1 ), lastEventId: lastEventIdBuffer, } ); es.dispatchEvent( event ); if ( eventTypeBuffer === 'message' ) { fire( es, es.onmessage, event ); } if ( currentState === CLOSED ) { return; } } dataBuffer = ''; eventTypeBuffer = ''; } state = c === '\r'.charCodeAt( 0 ) ? AFTER_CR : FIELD_START; } else { if ( state === FIELD_START ) { fieldStart = position; state = FIELD; } if ( state === FIELD ) { if ( c === ':'.charCodeAt( 0 ) ) { valueStart = position + 1; state = VALUE_START; } } else if ( state === VALUE_START ) { state = VALUE; } } } } } }; var onFinish = function () { if ( currentState === OPEN || currentState === CONNECTING ) { currentState = WAITING; if ( timeout !== 0 ) { clearTimeout( timeout ); timeout = 0; } timeout = setTimeout( function () { onTimeout(); }, retry ); retry = clampDuration( Math.min( initialRetry * 16, retry * 2 ) ); es.readyState = CONNECTING; var event = new Event( 'error' ); es.dispatchEvent( event ); fire( es, es.onerror, event ); } }; var close = function () { currentState = CLOSED; transport.cancel(); if ( timeout !== 0 ) { clearTimeout( timeout ); timeout = 0; } es.readyState = CLOSED; }; var onTimeout = function () { timeout = 0; if ( currentState !== WAITING ) { if ( ! wasActivity ) { throwError( new Error( 'No activity within ' + heartbeatTimeout + ' milliseconds. Reconnecting.' ) ); transport.cancel(); } else { wasActivity = false; timeout = setTimeout( function () { onTimeout(); }, heartbeatTimeout ); } return; } wasActivity = false; timeout = setTimeout( function () { onTimeout(); }, heartbeatTimeout ); currentState = CONNECTING; dataBuffer = ''; eventTypeBuffer = ''; lastEventIdBuffer = lastEventId; textBuffer = ''; fieldStart = 0; valueStart = 0; state = FIELD_START; // https://bugzilla.mozilla.org/show_bug.cgi?id=428916 // Request header field Last-Event-ID is not allowed by Access-Control-Allow-Headers. var requestURL = url; if ( url.slice( 0, 5 ) !== 'data:' && url.slice( 0, 5 ) !== 'blob:' ) { requestURL = url + ( url.indexOf( '?', 0 ) === -1 ? '?' : '&' ) + 'lastEventId=' + encodeURIComponent( lastEventId ); } var requestHeaders = {}; requestHeaders[ 'Accept' ] = 'text/event-stream'; if ( headers != undefined ) { for ( var name in headers ) { if ( Object.prototype.hasOwnProperty.call( headers, name ) ) { requestHeaders[ name ] = headers[ name ]; } } } try { transport.open( onStart, onProgress, onFinish, requestURL, withCredentials, requestHeaders ); } catch ( error ) { close(); throw error; } }; es.url = url; es.readyState = CONNECTING; es.withCredentials = withCredentials; es._close = close; onTimeout(); } EventSourcePolyfill.prototype = Object.create( EventTarget.prototype ); EventSourcePolyfill.prototype.CONNECTING = CONNECTING; EventSourcePolyfill.prototype.OPEN = OPEN; EventSourcePolyfill.prototype.CLOSED = CLOSED; EventSourcePolyfill.prototype.close = function () { this._close(); }; EventSourcePolyfill.CONNECTING = CONNECTING; EventSourcePolyfill.OPEN = OPEN; EventSourcePolyfill.CLOSED = CLOSED; EventSourcePolyfill.prototype.withCredentials = undefined; global.EventSourcePolyfill = EventSourcePolyfill; global.NativeEventSource = NativeEventSource; if ( XMLHttpRequest != undefined && ( NativeEventSource == undefined || ! ( 'withCredentials' in NativeEventSource.prototype ) ) ) { // Why replace a native EventSource ? // https://bugzilla.mozilla.org/show_bug.cgi?id=444328 // https://bugzilla.mozilla.org/show_bug.cgi?id=831392 // https://code.google.com/p/chromium/issues/detail?id=260144 // https://code.google.com/p/chromium/issues/detail?id=225654 // ... global.EventSource = EventSourcePolyfill; } } )( typeof window !== 'undefined' ? window : this ); eventsource.min.js 0000644 00000027734 15104676363 0010256 0 ustar 00 /** * EventSource * https://github.com/Yaffle/EventSource * * Released under the MIT License (MIT) * https://github.com/Yaffle/EventSource/blob/master/LICENSE.md */ ! ( function ( a ) { 'use strict'; function b( a ) { ( this.withCredentials = ! 1 ), ( this.responseType = '' ), ( this.readyState = 0 ), ( this.status = 0 ), ( this.statusText = '' ), ( this.responseText = '' ), ( this.onprogress = p ), ( this.onreadystatechange = p ), ( this._contentType = '' ), ( this._xhr = a ), ( this._sendTimeout = 0 ), ( this._abort = p ); } function c( a ) { this._xhr = new b( a ); } function d() { this._listeners = Object.create( null ); } function e( a ) { j( function () { throw a; }, 0 ); } function f( a ) { ( this.type = a ), ( this.target = void 0 ); } function g( a, b ) { f.call( this, a ), ( this.data = b.data ), ( this.lastEventId = b.lastEventId ); } function h( a, b ) { d.call( this ), ( this.onopen = void 0 ), ( this.onmessage = void 0 ), ( this.onerror = void 0 ), ( this.url = void 0 ), ( this.readyState = void 0 ), ( this.withCredentials = void 0 ), ( this._close = void 0 ), i( this, a, b ); } function i( a, b, d ) { b = String( b ); var h = void 0 != d && Boolean( d.withCredentials ), i = D( 1e3 ), n = D( 45e3 ), o = '', p = i, A = ! 1, B = void 0 != d && void 0 != d.headers ? JSON.parse( JSON.stringify( d.headers ) ) : void 0, F = void 0 != d && void 0 != d.Transport ? d.Transport : void 0 != m ? m : l, G = new c( new F() ), H = 0, I = q, J = '', K = '', L = '', M = '', N = v, O = 0, P = 0, Q = function ( b, c, d ) { if ( I === r ) if ( 200 === b && void 0 != d && z.test( d ) ) { ( I = s ), ( A = ! 0 ), ( p = i ), ( a.readyState = s ); var g = new f( 'open' ); a.dispatchEvent( g ), E( a, a.onopen, g ); } else { var h = ''; 200 !== b ? ( c && ( c = c.replace( /\s+/g, ' ' ) ), ( h = "EventSource's response has a status " + b + ' ' + c + ' that is not 200. Aborting the connection.' ) ) : ( h = "EventSource's response has a Content-Type specifying an unsupported type: " + ( void 0 == d ? '-' : d.replace( /\s+/g, ' ' ) ) + '. Aborting the connection.' ), e( new Error( h ) ), T(); var g = new f( 'error' ); a.dispatchEvent( g ), E( a, a.onerror, g ); } }, R = function ( b ) { if ( I === s ) { for ( var c = -1, d = 0; d < b.length; d += 1 ) { var e = b.charCodeAt( d ); ( e === '\n'.charCodeAt( 0 ) || e === '\r'.charCodeAt( 0 ) ) && ( c = d ); } var f = ( -1 !== c ? M : '' ) + b.slice( 0, c + 1 ); ( M = ( -1 === c ? M : '' ) + b.slice( c + 1 ) ), '' !== f && ( A = ! 0 ); for ( var h = 0; h < f.length; h += 1 ) { var e = f.charCodeAt( h ); if ( N === u && e === '\n'.charCodeAt( 0 ) ) N = v; else if ( ( N === u && ( N = v ), e === '\r'.charCodeAt( 0 ) || e === '\n'.charCodeAt( 0 ) ) ) { if ( N !== v ) { N === w && ( P = h + 1 ); var l = f.slice( O, P - 1 ), m = f.slice( P + ( h > P && f.charCodeAt( P ) === ' '.charCodeAt( 0 ) ? 1 : 0 ), h ); 'data' === l ? ( ( J += '\n' ), ( J += m ) ) : 'id' === l ? ( K = m ) : 'event' === l ? ( L = m ) : 'retry' === l ? ( ( i = C( m, i ) ), ( p = i ) ) : 'heartbeatTimeout' === l && ( ( n = C( m, n ) ), 0 !== H && ( k( H ), ( H = j( function () { U(); }, n ) ) ) ); } if ( N === v ) { if ( '' !== J ) { ( o = K ), '' === L && ( L = 'message' ); var q = new g( L, { data: J.slice( 1 ), lastEventId: K, } ); if ( ( a.dispatchEvent( q ), 'message' === L && E( a, a.onmessage, q ), I === t ) ) return; } ( J = '' ), ( L = '' ); } N = e === '\r'.charCodeAt( 0 ) ? u : v; } else N === v && ( ( O = h ), ( N = w ) ), N === w ? e === ':'.charCodeAt( 0 ) && ( ( P = h + 1 ), ( N = x ) ) : N === x && ( N = y ); } } }, S = function () { if ( I === s || I === r ) { ( I = q ), 0 !== H && ( k( H ), ( H = 0 ) ), ( H = j( function () { U(); }, p ) ), ( p = D( Math.min( 16 * i, 2 * p ) ) ), ( a.readyState = r ); var b = new f( 'error' ); a.dispatchEvent( b ), E( a, a.onerror, b ); } }, T = function () { ( I = t ), G.cancel(), 0 !== H && ( k( H ), ( H = 0 ) ), ( a.readyState = t ); }, U = function () { if ( ( ( H = 0 ), I !== q ) ) return void ( A ? ( ( A = ! 1 ), ( H = j( function () { U(); }, n ) ) ) : ( e( new Error( 'No activity within ' + n + ' milliseconds. Reconnecting.' ) ), G.cancel() ) ); ( A = ! 1 ), ( H = j( function () { U(); }, n ) ), ( I = r ), ( J = '' ), ( L = '' ), ( K = o ), ( M = '' ), ( O = 0 ), ( P = 0 ), ( N = v ); var a = b; 'data:' !== b.slice( 0, 5 ) && 'blob:' !== b.slice( 0, 5 ) && ( a = b + ( -1 === b.indexOf( '?', 0 ) ? '?' : '&' ) + 'lastEventId=' + encodeURIComponent( o ) ); var c = {}; if ( ( ( c.Accept = 'text/event-stream' ), void 0 != B ) ) for ( var d in B ) Object.prototype.hasOwnProperty.call( B, d ) && ( c[ d ] = B[ d ] ); try { G.open( Q, R, S, a, h, c ); } catch ( f ) { throw ( T(), f ); } }; ( a.url = b ), ( a.readyState = r ), ( a.withCredentials = h ), ( a._close = T ), U(); } var j = a.setTimeout, k = a.clearTimeout, l = a.XMLHttpRequest, m = a.XDomainRequest, n = a.EventSource, o = a.document; null == Object.create && ( Object.create = function ( a ) { function b() {} return ( b.prototype = a ), new b(); } ); var p = function () {}; ( b.prototype.open = function ( a, b ) { this._abort( ! 0 ); var c = this, d = this._xhr, e = 1, f = 0; this._abort = function ( a ) { 0 !== c._sendTimeout && ( k( c._sendTimeout ), ( c._sendTimeout = 0 ) ), ( 1 === e || 2 === e || 3 === e ) && ( ( e = 4 ), ( d.onload = p ), ( d.onerror = p ), ( d.onabort = p ), ( d.onprogress = p ), ( d.onreadystatechange = p ), d.abort(), 0 !== f && ( k( f ), ( f = 0 ) ), a || ( ( c.readyState = 4 ), c.onreadystatechange() ) ), ( e = 0 ); }; var g = function () { if ( 1 === e ) { var a = 0, b = '', f = void 0; if ( 'contentType' in d ) ( a = 200 ), ( b = 'OK' ), ( f = d.contentType ); else try { ( a = d.status ), ( b = d.statusText ), ( f = d.getResponseHeader( 'Content-Type' ) ); } catch ( g ) { ( a = 0 ), ( b = '' ), ( f = void 0 ); } 0 !== a && ( ( e = 2 ), ( c.readyState = 2 ), ( c.status = a ), ( c.statusText = b ), ( c._contentType = f ), c.onreadystatechange() ); } }, h = function () { if ( ( g(), 2 === e || 3 === e ) ) { e = 3; var a = ''; try { a = d.responseText; } catch ( b ) {} ( c.readyState = 3 ), ( c.responseText = a ), c.onprogress(); } }, i = function () { h(), ( 1 === e || 2 === e || 3 === e ) && ( ( e = 4 ), 0 !== f && ( k( f ), ( f = 0 ) ), ( c.readyState = 4 ), c.onreadystatechange() ); }, m = function () { void 0 != d && ( 4 === d.readyState ? i() : 3 === d.readyState ? h() : 2 === d.readyState && g() ); }, n = function () { ( f = j( function () { n(); }, 500 ) ), 3 === d.readyState && h(); }; ( d.onload = i ), ( d.onerror = i ), ( d.onabort = i ), 'sendAsBinary' in l.prototype || 'mozAnon' in l.prototype || ( d.onprogress = h ), ( d.onreadystatechange = m ), 'contentType' in d && ( b += ( -1 === b.indexOf( '?', 0 ) ? '?' : '&' ) + 'padding=true' ), d.open( a, b, ! 0 ), 'readyState' in d && ( f = j( function () { n(); }, 0 ) ); } ), ( b.prototype.abort = function () { this._abort( ! 1 ); } ), ( b.prototype.getResponseHeader = function ( a ) { return this._contentType; } ), ( b.prototype.setRequestHeader = function ( a, b ) { var c = this._xhr; 'setRequestHeader' in c && c.setRequestHeader( a, b ); } ), ( b.prototype.send = function () { if ( ! ( 'ontimeout' in l.prototype ) && void 0 != o && void 0 != o.readyState && 'complete' !== o.readyState ) { var a = this; return void ( a._sendTimeout = j( function () { ( a._sendTimeout = 0 ), a.send(); }, 4 ) ); } var b = this._xhr; ( b.withCredentials = this.withCredentials ), ( b.responseType = this.responseType ); try { b.send( void 0 ); } catch ( c ) { throw c; } } ), ( c.prototype.open = function ( a, b, c, d, e, f ) { var g = this._xhr; g.open( 'GET', d ); var h = 0; ( g.onprogress = function () { var a = g.responseText, c = a.slice( h ); ( h += c.length ), b( c ); } ), ( g.onreadystatechange = function () { if ( 2 === g.readyState ) { var b = g.status, d = g.statusText, e = g.getResponseHeader( 'Content-Type' ); a( b, d, e ); } else 4 === g.readyState && c(); } ), ( g.withCredentials = e ), ( g.responseType = 'text' ); for ( var i in f ) Object.prototype.hasOwnProperty.call( f, i ) && g.setRequestHeader( i, f[ i ] ); g.send(); } ), ( c.prototype.cancel = function () { var a = this._xhr; a.abort(); } ), ( d.prototype.dispatchEvent = function ( a ) { a.target = this; var b = this._listeners[ a.type ]; if ( void 0 != b ) for ( var c = b.length, d = 0; c > d; d += 1 ) { var f = b[ d ]; try { 'function' == typeof f.handleEvent ? f.handleEvent( a ) : f.call( this, a ); } catch ( g ) { e( g ); } } } ), ( d.prototype.addEventListener = function ( a, b ) { a = String( a ); var c = this._listeners, d = c[ a ]; void 0 == d && ( ( d = [] ), ( c[ a ] = d ) ); for ( var e = ! 1, f = 0; f < d.length; f += 1 ) d[ f ] === b && ( e = ! 0 ); e || d.push( b ); } ), ( d.prototype.removeEventListener = function ( a, b ) { a = String( a ); var c = this._listeners, d = c[ a ]; if ( void 0 != d ) { for ( var e = [], f = 0; f < d.length; f += 1 ) d[ f ] !== b && e.push( d[ f ] ); 0 === e.length ? delete c[ a ] : ( c[ a ] = e ); } } ), ( g.prototype = Object.create( f.prototype ) ); var q = -1, r = 0, s = 1, t = 2, u = -1, v = 0, w = 1, x = 2, y = 3, z = /^text\/event\-stream;?(\s*charset\=utf\-8)?$/i, A = 1e3, B = 18e6, C = function ( a, b ) { var c = parseInt( a, 10 ); return c !== c && ( c = b ), D( c ); }, D = function ( a ) { return Math.min( Math.max( a, A ), B ); }, E = function ( a, b, c ) { try { 'function' == typeof b && b.call( a, c ); } catch ( d ) { e( d ); } }; ( h.prototype = Object.create( d.prototype ) ), ( h.prototype.CONNECTING = r ), ( h.prototype.OPEN = s ), ( h.prototype.CLOSED = t ), ( h.prototype.close = function () { this._close(); } ), ( h.CONNECTING = r ), ( h.OPEN = s ), ( h.CLOSED = t ), ( h.prototype.withCredentials = void 0 ), ( a.EventSourcePolyfill = h ), ( a.NativeEventSource = n ), void 0 == l || ( void 0 != n && 'withCredentials' in n.prototype ) || ( a.EventSource = h ); } )( 'undefined' != typeof window ? window : this ); history.js 0000644 00000065065 15104676363 0006632 0 ustar 00 /** * History.js * https://github.com/browserstate/history.js * * Copyright © 2014+ Bevry Pty Ltd us@bevry.me (http://bevry.me) * Copyright © 2011-2013 Benjamin Lupton b@lupton.cc (http://balupton.com) * Released under the BSD License * https://github.com/browserstate/history.js/blob/master/LICENSE.md */ ( function ( e, t ) { 'use strict'; var n = ( e.History = e.History || {} ), r = e.jQuery; if ( typeof n.Adapter != 'undefined' ) throw new Error( 'History.js Adapter has already been loaded...' ); ( n.Adapter = { bind: function ( e, t, n ) { r( e ).bind( t, n ); }, trigger: function ( e, t, n ) { r( e ).trigger( t, n ); }, extractEventData: function ( e, n, r ) { var i = ( n && n.originalEvent && n.originalEvent[ e ] ) || ( r && r[ e ] ) || t; return i; }, onDomLoad: function ( e ) { r( e ); }, } ), typeof n.init != 'undefined' && n.init(); } )( window ), ( function ( e, t ) { 'use strict'; var n = e.console || t, r = e.document, i = e.navigator, s = ! 1, o = e.setTimeout, u = e.clearTimeout, a = e.setInterval, f = e.clearInterval, l = e.JSON, c = e.alert, h = ( e.History = e.History || {} ), p = e.history; try { ( s = e.sessionStorage ), s.setItem( 'TEST', '1' ), s.removeItem( 'TEST' ); } catch ( d ) { s = ! 1; } ( l.stringify = l.stringify || l.encode ), ( l.parse = l.parse || l.decode ); if ( typeof h.init != 'undefined' ) throw new Error( 'History.js Core has already been loaded...' ); ( h.init = function ( e ) { return typeof h.Adapter == 'undefined' ? ! 1 : ( typeof h.initCore != 'undefined' && h.initCore(), typeof h.initHtml4 != 'undefined' && h.initHtml4(), ! 0 ); } ), ( h.initCore = function ( d ) { if ( typeof h.initCore.initialized != 'undefined' ) return ! 1; ( h.initCore.initialized = ! 0 ), ( h.options = h.options || {} ), ( h.options.hashChangeInterval = h.options.hashChangeInterval || 100 ), ( h.options.safariPollInterval = h.options.safariPollInterval || 500 ), ( h.options.doubleCheckInterval = h.options.doubleCheckInterval || 500 ), ( h.options.disableSuid = h.options.disableSuid || ! 1 ), ( h.options.storeInterval = h.options.storeInterval || 1e3 ), ( h.options.busyDelay = h.options.busyDelay || 250 ), ( h.options.debug = h.options.debug || ! 1 ), ( h.options.initialTitle = h.options.initialTitle || r.title ), ( h.options.html4Mode = h.options.html4Mode || ! 1 ), ( h.options.delayInit = h.options.delayInit || ! 1 ), ( h.intervalList = [] ), ( h.clearAllIntervals = function () { var e, t = h.intervalList; if ( typeof t != 'undefined' && t !== null ) { for ( e = 0; e < t.length; e++ ) f( t[ e ] ); h.intervalList = null; } } ), ( h.debug = function () { ( h.options.debug || ! 1 ) && h.log.apply( h, arguments ); } ), ( h.log = function () { var e = typeof n != 'undefined' && typeof n.log != 'undefined' && typeof n.log.apply != 'undefined', t = r.getElementById( 'log' ), i, s, o, u, a; e ? ( ( u = Array.prototype.slice.call( arguments ) ), ( i = u.shift() ), typeof n.debug != 'undefined' ? n.debug.apply( n, [ i, u ] ) : n.log.apply( n, [ i, u ] ) ) : ( i = '\n' + arguments[ 0 ] + '\n' ); for ( s = 1, o = arguments.length; s < o; ++s ) { a = arguments[ s ]; if ( typeof a == 'object' && typeof l != 'undefined' ) try { a = l.stringify( a ); } catch ( f ) {} i += '\n' + a + '\n'; } return ( t ? ( ( t.value += i + '\n-----\n' ), ( t.scrollTop = t.scrollHeight - t.clientHeight ) ) : e || c( i ), ! 0 ); } ), ( h.getInternetExplorerMajorVersion = function () { var e = ( h.getInternetExplorerMajorVersion.cached = typeof h.getInternetExplorerMajorVersion.cached != 'undefined' ? h.getInternetExplorerMajorVersion.cached : ( function () { var e = 3, t = r.createElement( 'div' ), n = t.getElementsByTagName( 'i' ); while ( ( t.innerHTML = '<!--[if gt IE ' + ++e + ']><i></i><![endif]-->' ) && n[ 0 ] ); return e > 4 ? e : ! 1; } )() ); return e; } ), ( h.isInternetExplorer = function () { var e = ( h.isInternetExplorer.cached = typeof h.isInternetExplorer.cached != 'undefined' ? h.isInternetExplorer.cached : Boolean( h.getInternetExplorerMajorVersion() ) ); return e; } ), h.options.html4Mode ? ( h.emulated = { pushState: ! 0, hashChange: ! 0 } ) : ( h.emulated = { pushState: ! Boolean( e.history && e.history.pushState && e.history.replaceState && ! / Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test( i.userAgent ) && ! /AppleWebKit\/5([0-2]|3[0-2])/i.test( i.userAgent ) ), hashChange: Boolean( ! ( 'onhashchange' in e || 'onhashchange' in r ) || ( h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8 ) ), } ), ( h.enabled = ! h.emulated.pushState ), ( h.bugs = { setHash: Boolean( ! h.emulated.pushState && i.vendor === 'Apple Computer, Inc.' && /AppleWebKit\/5([0-2]|3[0-3])/.test( i.userAgent ) ), safariPoll: Boolean( ! h.emulated.pushState && i.vendor === 'Apple Computer, Inc.' && /AppleWebKit\/5([0-2]|3[0-3])/.test( i.userAgent ) ), ieDoubleCheck: Boolean( h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8 ), hashEscape: Boolean( h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 7 ), } ), ( h.isEmptyObject = function ( e ) { for ( var t in e ) if ( e.hasOwnProperty( t ) ) return ! 1; return ! 0; } ), ( h.cloneObject = function ( e ) { var t, n; return ( e ? ( ( t = l.stringify( e ) ), ( n = l.parse( t ) ) ) : ( n = {} ), n ); } ), ( h.getRootUrl = function () { var e = r.location.protocol + '//' + ( r.location.hostname || r.location.host ); if ( r.location.port || ! 1 ) e += ':' + r.location.port; return ( e += '/' ), e; } ), ( h.getBaseHref = function () { var e = r.getElementsByTagName( 'base' ), t = null, n = ''; return ( e.length === 1 && ( ( t = e[ 0 ] ), ( n = t.href.replace( /[^\/]+$/, '' ) ) ), ( n = n.replace( /\/+$/, '' ) ), n && ( n += '/' ), n ); } ), ( h.getBaseUrl = function () { var e = h.getBaseHref() || h.getBasePageUrl() || h.getRootUrl(); return e; } ), ( h.getPageUrl = function () { var e = h.getState( ! 1, ! 1 ), t = ( e || {} ).url || h.getLocationHref(), n; return ( ( n = t .replace( /\/+$/, '' ) .replace( /[^\/]+$/, function ( e, t, n ) { return /\./.test( e ) ? e : e + '/'; } ) ), n ); } ), ( h.getBasePageUrl = function () { var e = h .getLocationHref() .replace( /[#\?].*/, '' ) .replace( /[^\/]+$/, function ( e, t, n ) { return /[^\/]$/.test( e ) ? '' : e; } ) .replace( /\/+$/, '' ) + '/'; return e; } ), ( h.getFullUrl = function ( e, t ) { var n = e, r = e.substring( 0, 1 ); return ( ( t = typeof t == 'undefined' ? ! 0 : t ), /[a-z]+\:\/\//.test( e ) || ( r === '/' ? ( n = h.getRootUrl() + e.replace( /^\/+/, '' ) ) : r === '#' ? ( n = h .getPageUrl() .replace( /#.*/, '' ) + e ) : r === '?' ? ( n = h .getPageUrl() .replace( /[\?#].*/, '' ) + e ) : t ? ( n = h.getBaseUrl() + e.replace( /^(\.\/)+/, '' ) ) : ( n = h.getBasePageUrl() + e.replace( /^(\.\/)+/, '' ) ) ), n.replace( /\#$/, '' ) ); } ), ( h.getShortUrl = function ( e ) { var t = e, n = h.getBaseUrl(), r = h.getRootUrl(); return ( h.emulated.pushState && ( t = t.replace( n, '' ) ), ( t = t.replace( r, '/' ) ), h.isTraditionalAnchor( t ) && ( t = './' + t ), ( t = t .replace( /^(\.\/)+/g, './' ) .replace( /\#$/, '' ) ), t ); } ), ( h.getLocationHref = function ( e ) { return ( ( e = e || r ), e.URL === e.location.href ? e.location.href : e.location.href === decodeURIComponent( e.URL ) ? e.URL : e.location.hash && decodeURIComponent( e.location.href.replace( /^[^#]+/, '' ) ) === e.location.hash ? e.location.href : e.URL.indexOf( '#' ) == -1 && e.location.href.indexOf( '#' ) != -1 ? e.location.href : e.URL || e.location.href ); } ), ( h.store = {} ), ( h.idToState = h.idToState || {} ), ( h.stateToId = h.stateToId || {} ), ( h.urlToId = h.urlToId || {} ), ( h.storedStates = h.storedStates || [] ), ( h.savedStates = h.savedStates || [] ), ( h.normalizeStore = function () { ( h.store.idToState = h.store.idToState || {} ), ( h.store.urlToId = h.store.urlToId || {} ), ( h.store.stateToId = h.store.stateToId || {} ); } ), ( h.getState = function ( e, t ) { typeof e == 'undefined' && ( e = ! 0 ), typeof t == 'undefined' && ( t = ! 0 ); var n = h.getLastSavedState(); return ( ! n && t && ( n = h.createStateObject() ), e && ( ( n = h.cloneObject( n ) ), ( n.url = n.cleanUrl || n.url ) ), n ); } ), ( h.getIdByState = function ( e ) { var t = h.extractId( e.url ), n; if ( ! t ) { n = h.getStateString( e ); if ( typeof h.stateToId[ n ] != 'undefined' ) t = h.stateToId[ n ]; else if ( typeof h.store.stateToId[ n ] != 'undefined' ) t = h.store.stateToId[ n ]; else { for (;;) { t = new Date().getTime() + String( Math.random() ).replace( /\D/g, '' ); if ( typeof h.idToState[ t ] == 'undefined' && typeof h.store.idToState[ t ] == 'undefined' ) break; } ( h.stateToId[ n ] = t ), ( h.idToState[ t ] = e ); } } return t; } ), ( h.normalizeState = function ( e ) { var t, n; if ( ! e || typeof e != 'object' ) e = {}; if ( typeof e.normalized != 'undefined' ) return e; if ( ! e.data || typeof e.data != 'object' ) e.data = {}; return ( ( t = {} ), ( t.normalized = ! 0 ), ( t.title = e.title || '' ), ( t.url = h.getFullUrl( e.url ? e.url : h.getLocationHref() ) ), ( t.hash = h.getShortUrl( t.url ) ), ( t.data = h.cloneObject( e.data ) ), ( t.id = h.getIdByState( t ) ), ( t.cleanUrl = t.url.replace( /\??\&_suid.*/, '' ) ), ( t.url = t.cleanUrl ), ( n = ! h.isEmptyObject( t.data ) ), ( t.title || n ) && h.options.disableSuid !== ! 0 && ( ( t.hash = h .getShortUrl( t.url ) .replace( /\??\&_suid.*/, '' ) ), /\?/.test( t.hash ) || ( t.hash += '?' ), ( t.hash += '&_suid=' + t.id ) ), ( t.hashedUrl = h.getFullUrl( t.hash ) ), ( h.emulated.pushState || h.bugs.safariPoll ) && h.hasUrlDuplicate( t ) && ( t.url = t.hashedUrl ), t ); } ), ( h.createStateObject = function ( e, t, n ) { var r = { data: e, title: t, url: n }; return ( r = h.normalizeState( r ) ), r; } ), ( h.getStateById = function ( e ) { e = String( e ); var n = h.idToState[ e ] || h.store.idToState[ e ] || t; return n; } ), ( h.getStateString = function ( e ) { var t, n, r; return ( ( t = h.normalizeState( e ) ), ( n = { data: t.data, title: e.title, url: e.url, } ), ( r = l.stringify( n ) ), r ); } ), ( h.getStateId = function ( e ) { var t, n; return ( t = h.normalizeState( e ) ), ( n = t.id ), n; } ), ( h.getHashByState = function ( e ) { var t, n; return ( t = h.normalizeState( e ) ), ( n = t.hash ), n; } ), ( h.extractId = function ( e ) { var t, n, r, i; return ( e.indexOf( '#' ) != -1 ? ( i = e.split( '#' )[ 0 ] ) : ( i = e ), ( n = /(.*)\&_suid=([0-9]+)$/.exec( i ) ), ( r = n ? n[ 1 ] || e : e ), ( t = n ? String( n[ 2 ] || '' ) : '' ), t || ! 1 ); } ), ( h.isTraditionalAnchor = function ( e ) { var t = ! /[\/\?\.]/.test( e ); return t; } ), ( h.extractState = function ( e, t ) { var n = null, r, i; return ( ( t = t || ! 1 ), ( r = h.extractId( e ) ), r && ( n = h.getStateById( r ) ), n || ( ( i = h.getFullUrl( e ) ), ( r = h.getIdByUrl( i ) || ! 1 ), r && ( n = h.getStateById( r ) ), ! n && t && ! h.isTraditionalAnchor( e ) && ( n = h.createStateObject( null, null, i ) ) ), n ); } ), ( h.getIdByUrl = function ( e ) { var n = h.urlToId[ e ] || h.store.urlToId[ e ] || t; return n; } ), ( h.getLastSavedState = function () { return h.savedStates[ h.savedStates.length - 1 ] || t; } ), ( h.getLastStoredState = function () { return h.storedStates[ h.storedStates.length - 1 ] || t; } ), ( h.hasUrlDuplicate = function ( e ) { var t = ! 1, n; return ( ( n = h.extractState( e.url ) ), ( t = n && n.id !== e.id ), t ); } ), ( h.storeState = function ( e ) { return ( ( h.urlToId[ e.url ] = e.id ), h.storedStates.push( h.cloneObject( e ) ), e ); } ), ( h.isLastSavedState = function ( e ) { var t = ! 1, n, r, i; return ( h.savedStates.length && ( ( n = e.id ), ( r = h.getLastSavedState() ), ( i = r.id ), ( t = n === i ) ), t ); } ), ( h.saveState = function ( e ) { return h.isLastSavedState( e ) ? ! 1 : ( h.savedStates.push( h.cloneObject( e ) ), ! 0 ); } ), ( h.getStateByIndex = function ( e ) { var t = null; return ( typeof e == 'undefined' ? ( t = h.savedStates[ h.savedStates.length - 1 ] ) : e < 0 ? ( t = h.savedStates[ h.savedStates.length + e ] ) : ( t = h.savedStates[ e ] ), t ); } ), ( h.getCurrentIndex = function () { var e = null; return ( h.savedStates.length < 1 ? ( e = 0 ) : ( e = h.savedStates.length - 1 ), e ); } ), ( h.getHash = function ( e ) { var t = h.getLocationHref( e ), n; return ( n = h.getHashByUrl( t ) ), n; } ), ( h.unescapeHash = function ( e ) { var t = h.normalizeHash( e ); return ( t = decodeURIComponent( t ) ), t; } ), ( h.normalizeHash = function ( e ) { var t = e.replace( /[^#]*#/, '' ).replace( /#.*/, '' ); return t; } ), ( h.setHash = function ( e, t ) { var n, i; return t !== ! 1 && h.busy() ? ( h.pushQueue( { scope: h, callback: h.setHash, args: arguments, queue: t, } ), ! 1 ) : ( h.busy( ! 0 ), ( n = h.extractState( e, ! 0 ) ), n && ! h.emulated.pushState ? h.pushState( n.data, n.title, n.url, ! 1 ) : h.getHash() !== e && ( h.bugs.setHash ? ( ( i = h.getPageUrl() ), h.pushState( null, null, i + '#' + e, ! 1 ) ) : ( r.location.hash = e ) ), h ); } ), ( h.escapeHash = function ( t ) { var n = h.normalizeHash( t ); return ( ( n = e.encodeURIComponent( n ) ), h.bugs.hashEscape || ( n = n .replace( /\%21/g, '!' ) .replace( /\%26/g, '&' ) .replace( /\%3D/g, '=' ) .replace( /\%3F/g, '?' ) ), n ); } ), ( h.getHashByUrl = function ( e ) { var t = String( e ).replace( /([^#]*)#?([^#]*)#?(.*)/, '$2' ); return ( t = h.unescapeHash( t ) ), t; } ), ( h.setTitle = function ( e ) { var t = e.title, n; t || ( ( n = h.getStateByIndex( 0 ) ), n && n.url === e.url && ( t = n.title || h.options.initialTitle ) ); try { r.getElementsByTagName( 'title' )[ 0 ].innerHTML = t .replace( '<', '<' ) .replace( '>', '>' ) .replace( ' & ', ' & ' ); } catch ( i ) {} return ( r.title = t ), h; } ), ( h.queues = [] ), ( h.busy = function ( e ) { typeof e != 'undefined' ? ( h.busy.flag = e ) : typeof h.busy.flag == 'undefined' && ( h.busy.flag = ! 1 ); if ( ! h.busy.flag ) { u( h.busy.timeout ); var t = function () { var e, n, r; if ( h.busy.flag ) return; for ( e = h.queues.length - 1; e >= 0; --e ) { n = h.queues[ e ]; if ( n.length === 0 ) continue; ( r = n.shift() ), h.fireQueueItem( r ), ( h.busy.timeout = o( t, h.options.busyDelay ) ); } }; h.busy.timeout = o( t, h.options.busyDelay ); } return h.busy.flag; } ), ( h.busy.flag = ! 1 ), ( h.fireQueueItem = function ( e ) { return e.callback.apply( e.scope || h, e.args || [] ); } ), ( h.pushQueue = function ( e ) { return ( ( h.queues[ e.queue || 0 ] = h.queues[ e.queue || 0 ] || [] ), h.queues[ e.queue || 0 ].push( e ), h ); } ), ( h.queue = function ( e, t ) { return ( typeof e == 'function' && ( e = { callback: e } ), typeof t != 'undefined' && ( e.queue = t ), h.busy() ? h.pushQueue( e ) : h.fireQueueItem( e ), h ); } ), ( h.clearQueue = function () { return ( h.busy.flag = ! 1 ), ( h.queues = [] ), h; } ), ( h.stateChanged = ! 1 ), ( h.doubleChecker = ! 1 ), ( h.doubleCheckComplete = function () { return ( ( h.stateChanged = ! 0 ), h.doubleCheckClear(), h ); } ), ( h.doubleCheckClear = function () { return ( h.doubleChecker && ( u( h.doubleChecker ), ( h.doubleChecker = ! 1 ) ), h ); } ), ( h.doubleCheck = function ( e ) { return ( ( h.stateChanged = ! 1 ), h.doubleCheckClear(), h.bugs.ieDoubleCheck && ( h.doubleChecker = o( function () { return ( h.doubleCheckClear(), h.stateChanged || e(), ! 0 ); }, h.options.doubleCheckInterval ) ), h ); } ), ( h.safariStatePoll = function () { var t = h.extractState( h.getLocationHref() ), n; if ( ! h.isLastSavedState( t ) ) return ( ( n = t ), n || ( n = h.createStateObject() ), h.Adapter.trigger( e, 'popstate' ), h ); return; } ), ( h.back = function ( e ) { return e !== ! 1 && h.busy() ? ( h.pushQueue( { scope: h, callback: h.back, args: arguments, queue: e, } ), ! 1 ) : ( h.busy( ! 0 ), h.doubleCheck( function () { h.back( ! 1 ); } ), p.go( -1 ), ! 0 ); } ), ( h.forward = function ( e ) { return e !== ! 1 && h.busy() ? ( h.pushQueue( { scope: h, callback: h.forward, args: arguments, queue: e, } ), ! 1 ) : ( h.busy( ! 0 ), h.doubleCheck( function () { h.forward( ! 1 ); } ), p.go( 1 ), ! 0 ); } ), ( h.go = function ( e, t ) { var n; if ( e > 0 ) for ( n = 1; n <= e; ++n ) h.forward( t ); else { if ( ! ( e < 0 ) ) throw new Error( 'History.go: History.go requires a positive or negative integer passed.' ); for ( n = -1; n >= e; --n ) h.back( t ); } return h; } ); if ( h.emulated.pushState ) { var v = function () {}; ( h.pushState = h.pushState || v ), ( h.replaceState = h.replaceState || v ); } else ( h.onPopState = function ( t, n ) { var r = ! 1, i = ! 1, s, o; return ( h.doubleCheckComplete(), ( s = h.getHash() ), s ? ( ( o = h.extractState( s || h.getLocationHref(), ! 0 ) ), o ? h.replaceState( o.data, o.title, o.url, ! 1 ) : ( h.Adapter.trigger( e, 'anchorchange' ), h.busy( ! 1 ) ), ( h.expectedStateId = ! 1 ), ! 1 ) : ( ( r = h.Adapter.extractEventData( 'state', t, n ) || ! 1 ), r ? ( i = h.getStateById( r ) ) : h.expectedStateId ? ( i = h.getStateById( h.expectedStateId ) ) : ( i = h.extractState( h.getLocationHref() ) ), i || ( i = h.createStateObject( null, null, h.getLocationHref() ) ), ( h.expectedStateId = ! 1 ), h.isLastSavedState( i ) ? ( h.busy( ! 1 ), ! 1 ) : ( h.storeState( i ), h.saveState( i ), h.setTitle( i ), h.Adapter.trigger( e, 'statechange' ), h.busy( ! 1 ), ! 0 ) ) ); } ), h.Adapter.bind( e, 'popstate', h.onPopState ), ( h.pushState = function ( t, n, r, i ) { if ( h.getHashByUrl( r ) && h.emulated.pushState ) throw new Error( 'History.js does not support states with fragement-identifiers (hashes/anchors).' ); if ( i !== ! 1 && h.busy() ) return ( h.pushQueue( { scope: h, callback: h.pushState, args: arguments, queue: i, } ), ! 1 ); h.busy( ! 0 ); var s = h.createStateObject( t, n, r ); return ( h.isLastSavedState( s ) ? h.busy( ! 1 ) : ( h.storeState( s ), ( h.expectedStateId = s.id ), p.pushState( s.id, s.title, s.url ), h.Adapter.trigger( e, 'popstate' ) ), ! 0 ); } ), ( h.replaceState = function ( t, n, r, i ) { if ( h.getHashByUrl( r ) && h.emulated.pushState ) throw new Error( 'History.js does not support states with fragement-identifiers (hashes/anchors).' ); if ( i !== ! 1 && h.busy() ) return ( h.pushQueue( { scope: h, callback: h.replaceState, args: arguments, queue: i, } ), ! 1 ); h.busy( ! 0 ); var s = h.createStateObject( t, n, r ); return ( h.isLastSavedState( s ) ? h.busy( ! 1 ) : ( h.storeState( s ), ( h.expectedStateId = s.id ), p.replaceState( s.id, s.title, s.url ), h.Adapter.trigger( e, 'popstate' ) ), ! 0 ); } ); if ( s ) { try { h.store = l.parse( s.getItem( 'History.store' ) ) || {}; } catch ( m ) { h.store = {}; } h.normalizeStore(); } else ( h.store = {} ), h.normalizeStore(); h.Adapter.bind( e, 'unload', h.clearAllIntervals ), h.saveState( h.storeState( h.extractState( h.getLocationHref(), ! 0 ) ) ), s && ( ( h.onUnload = function () { var e, t, n; try { e = l.parse( s.getItem( 'History.store' ) ) || {}; } catch ( r ) { e = {}; } ( e.idToState = e.idToState || {} ), ( e.urlToId = e.urlToId || {} ), ( e.stateToId = e.stateToId || {} ); for ( t in h.idToState ) { if ( ! h.idToState.hasOwnProperty( t ) ) continue; e.idToState[ t ] = h.idToState[ t ]; } for ( t in h.urlToId ) { if ( ! h.urlToId.hasOwnProperty( t ) ) continue; e.urlToId[ t ] = h.urlToId[ t ]; } for ( t in h.stateToId ) { if ( ! h.stateToId.hasOwnProperty( t ) ) continue; e.stateToId[ t ] = h.stateToId[ t ]; } ( h.store = e ), h.normalizeStore(), ( n = l.stringify( e ) ); try { s.setItem( 'History.store', n ); } catch ( i ) { if ( i.code !== DOMException.QUOTA_EXCEEDED_ERR ) throw i; s.length && ( s.removeItem( 'History.store' ), s.setItem( 'History.store', n ) ); } } ), h.intervalList.push( a( h.onUnload, h.options.storeInterval ) ), h.Adapter.bind( e, 'beforeunload', h.onUnload ), h.Adapter.bind( e, 'unload', h.onUnload ) ); if ( ! h.emulated.pushState ) { h.bugs.safariPoll && h.intervalList.push( a( h.safariStatePoll, h.options.safariPollInterval ) ); if ( i.vendor === 'Apple Computer, Inc.' || ( i.appCodeName || '' ) === 'Mozilla' ) h.Adapter.bind( e, 'hashchange', function () { h.Adapter.trigger( e, 'popstate' ); } ), h.getHash() && h.Adapter.onDomLoad( function () { h.Adapter.trigger( e, 'hashchange' ); } ); } } ), ( ! h.options || ! h.options.delayInit ) && h.init(); } )( window ); index.js 0000644 00000000000 15104676363 0006212 0 ustar 00 instantpage.js 0000644 00000005775 15104710714 0007435 0 ustar 00 /*! instant.page v5.2.0 - (C) 2019-2023 Alexandre Dieulot - https://instant.page/license */ !(function(){let t,e,n,o,i,a=null,s=65,c=new Set;const r=1111;function d(t){o=performance.now();const e=t.target.closest("a");m(e)&&p(e.href,"high")}function u(t){if(performance.now()-o<r)return;if(!("closest"in t.target))return;const e=t.target.closest("a");m(e)&&(e.addEventListener("mouseout",f,{passive:!0}),i=setTimeout(()=>{p(e.href,"high"),i=void 0},s))}function l(t){const e=t.target.closest("a");m(e)&&p(e.href,"high")}function f(t){t.relatedTarget&&t.target.closest("a")==t.relatedTarget.closest("a")||i&&(clearTimeout(i),i=void 0)}function h(t){if(performance.now()-o<r)return;const e=t.target.closest("a");if(t.which>1||t.metaKey||t.ctrlKey)return;if(!e)return;e.addEventListener("click",function(t){1337!=t.detail&&t.preventDefault()},{capture:!0,passive:!1,once:!0});const n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1,detail:1337});e.dispatchEvent(n)}function m(o){if(o&&o.href&&(!n||"instant"in o.dataset)){if(o.origin!=location.origin){if(!(e||"instant"in o.dataset)||!a)return}if(["http:","https:"].includes(o.protocol)&&("http:"!=o.protocol||"https:"!=location.protocol)&&(t||!o.search||"instant"in o.dataset)&&!(o.hash&&o.pathname+o.search==location.pathname+location.search||"noInstant"in o.dataset))return!0}}function p(t,e="auto"){if(c.has(t))return;const n=document.createElement("link");n.rel="prefetch",n.href=t,n.fetchPriority=e,n.as="document",document.head.appendChild(n),c.add(t)}!function(){if(!document.createElement("link").relList.supports("prefetch"))return;const o="instantVaryAccept"in document.body.dataset||"Shopify"in window,i=navigator.userAgent.indexOf("Chrome/");i>-1&&(a=parseInt(navigator.userAgent.substring(i+"Chrome/".length)));if(o&&a&&a<110)return;const c="instantMousedownShortcut"in document.body.dataset;t="instantAllowQueryString"in document.body.dataset,e="instantAllowExternalLinks"in document.body.dataset,n="instantWhitelist"in document.body.dataset;const r={capture:!0,passive:!0};let f=!1,v=!1,g=!1;if("instantIntensity"in document.body.dataset){const t=document.body.dataset.instantIntensity;if(t.startsWith("mousedown"))f=!0,"mousedown-only"==t&&(v=!0);else if(t.startsWith("viewport")){const e=navigator.connection&&navigator.connection.saveData,n=navigator.connection&&navigator.connection.effectiveType&&navigator.connection.effectiveType.includes("2g");e||n||("viewport"==t?document.documentElement.clientWidth*document.documentElement.clientHeight<45e4&&(g=!0):"viewport-all"==t&&(g=!0))}else{const e=parseInt(t);isNaN(e)||(s=e)}}v||document.addEventListener("touchstart",d,r);f?c||document.addEventListener("mousedown",l,r):document.addEventListener("mouseover",u,r);c&&document.addEventListener("mousedown",h,r);if(g){let t=window.requestIdleCallback;t||(t=(t=>{t()})),t(function(){const t=new IntersectionObserver(e=>{e.forEach(e=>{if(e.isIntersecting){const n=e.target;t.unobserve(n),p(n.href)}})});document.querySelectorAll("a").forEach(e=>{m(e)&&t.observe(e)})},{timeout:1500})}}();})(); index.html 0000644 00000000133 15104710714 0006536 0 ustar 00 <h1>Powered By SpeedyCache</h1> Go to <a href="https://speedycache.com">SpeedyCache.Com</a>