File "cf7-material-design-customizer-preview.js"

Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/material-design-for-contact-form-7/v1/assets/js/cf7-material-design-customizer-preview.js
File size: 3.29 KB
MIME-type: text/html
Charset: utf-8

// This closure gives access to jQuery as $
// Don't delete it
(function($) {

	// Do stuff
	$(document).ready(function(){

        var customize = wp.customize,
            selectors = cf7md_selectors,
            $stylesheet = $('#cf7-material-design-inline-css'),
            $customStylesheet = $('<style type="text/css"></style>'),
            internalStyles;

        // Find or create the internal stylesheet
        if( !$stylesheet.length ) {
            $stylesheet = $('<style type="text/css" id="cf7-material-design-inline-style"></style>');
            $stylesheet.insertAfter($('#cf7-material-design-css'));
        }
        // Set internalStyles var
        internalStyles = $.grep(document.styleSheets, function(el, i){
            return el.ownerNode === $stylesheet[0];
        })[0];

        // === Options === //

        // Use custom styles
        customize( 'cf7md_options[use_custom_styles]', function( value ) {
            var func = function(newval) {
                $stylesheet.attr('disabled', !newval);
            }
            func( value.get() );
            value.bind( func );
        } );

        // Custom css
        $customStylesheet.insertAfter($stylesheet);
        customize( 'cf7md_options[custom_css]', function( value ) {
            var func = function(newval) {
                $customStylesheet.text(newval);
            }
            func( value.get() );
            value.bind( func );
        } );

        // Selectors
        $.each(selectors, function(prop, val){
            customize( 'cf7md_options[' + prop + ']', function( value ) {
                var func = function(newval) {
                    $.each(val, function(index, selector){
                        // If the value has been set to blank, delete existing rules that reference it
                        if(newval === '') {
                            var rules = internalStyles.rules
                            for(var r=0; r<rules.length; r++) {
                                if(rules[r].selectorText === selector.selector) {
                                    internalStyles.deleteRule(r);
                                    r--; // deleting rule affects future indexes
                                }
                            }
                        }
                        if(selector.property === 'font-size') {
                            newval = newval + 'px';
                        }
                        if(prop === 'text_hint_on_light' || prop === 'text_on_light') {
                            newval = 'rgba(0, 0, 0, ' + newval + ')';
                        } else if(prop === 'text_hint_on_dark' || prop === 'text_on_dark') {
                            newval = 'rgba(255, 255, 255, ' + newval + ')';
                        }
                        internalStyles.insertRule(selector.selector + ' { ' + selector.property + ': ' + newval + '; }' , internalStyles.rules.length);
                    });
                }
                func( value.get() );
                value.bind( func );
            });
        });
        
        // === Misc === //

        // Open section on button click
        $('body').on('click', '.customizer-edit', function(e) {
            e.preventDefault();
            customize.preview.send( 'preview-edit', $(this).data('control') );
        });
		
	});

}(jQuery));