You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.5 KiB

/**
* JavaScript code for the CodeMirror handling on the "Options" screen.
*
* @package TablePress
* @subpackage Views JavaScript
* @author Tobias Bäthge
* @since 1.9.0
*/
/* globals tp, wp */
/* jshint strict: global */
'use strict'; // Necessary as this file does not use "import".
// Ensure the global `tp` object exists.
window.tp = window.tp || {};
/**
* Invoke CodeMirror on the "Custom CSS" textarea.
*
* @since 1.9.0
*/
tp.CM_custom_css = wp.codeEditor.initialize( 'option-custom-css', {} ).codemirror;
const $CM_wrapper = tp.CM_custom_css.getWrapperElement();
/**
* Let CodeMirror textarea grow on first focus (with mouse click), if it is not disabled.
*
* @since 1.0.0
*/
const CM_wrapper_mousedown_handler = function () {
if ( ! this.classList.contains( 'disabled' ) ) {
this.classList.add( 'large' );
tp.CM_custom_css.refresh();
this.removeEventListener( 'mousedown', CM_wrapper_mousedown_handler ); // No need to keep checking for clicks after the textarea height was increased.
}
};
$CM_wrapper.addEventListener( 'mousedown', CM_wrapper_mousedown_handler );
/**
* Enable/disable CodeMirror according to state of "Load Custom CSS" checkbox.
*
* @since 1.0.0
*/
const $cb_use_custom_css = document.getElementById( 'option-use-custom-css' );
$cb_use_custom_css.addEventListener( 'change', function () {
tp.CM_custom_css.setOption( 'readOnly', ! this.checked );
$CM_wrapper.classList.toggle( 'disabled', ! this.checked );
} );
$cb_use_custom_css.dispatchEvent( new Event( 'change' ) );