/
var
/
softaculous
/
sitepad
/
editor
/
site-admin
/
js
/
/var/softaculous/sitepad/editor/site-admin/js
mkdir
upload
Name
Size
Mode
Actions
accordion.js
2955
0644
edit
dl
rm
accordion.min.js
835
0644
edit
dl
rm
admin-custom.js
5408
0644
edit
dl
rm
bootstrap.min.js
58072
0644
edit
dl
rm
code-editor.js
11589
0644
edit
dl
rm
code-editor.min.js
3169
0644
edit
dl
rm
color-picker.js
9825
0644
edit
dl
rm
color-picker.min.js
3521
0644
edit
dl
rm
comment.js
2797
0644
edit
dl
rm
comment.min.js
1247
0644
edit
dl
rm
common.js
42770
0644
edit
dl
rm
common.min.js
15378
0644
edit
dl
rm
custom-background.js
3345
0644
edit
dl
rm
custom-background.min.js
1148
0644
edit
dl
rm
customize-controls.js
290802
0644
edit
dl
rm
customize-controls.min.js
111980
0644
edit
dl
rm
customize-nav-menus.js
109011
0644
edit
dl
rm
customize-nav-menus.min.js
46465
0644
edit
dl
rm
edit-comments.js
28556
0644
edit
dl
rm
edit-comments.min.js
15070
0644
edit
dl
rm
editor-expand.js
42479
0644
edit
dl
rm
editor-expand.min.js
13518
0644
edit
dl
rm
editor.js
45312
0644
edit
dl
rm
editor.min.js
13430
0644
edit
dl
rm
gallery.js
5640
0644
edit
dl
rm
gallery.min.js
3842
0644
edit
dl
rm
image-edit.js
29296
0644
edit
dl
rm
image-edit.min.js
10225
0644
edit
dl
rm
inline-edit-post.js
16309
0644
edit
dl
rm
inline-edit-post.min.js
7329
0644
edit
dl
rm
inline-edit-tax.js
7703
0644
edit
dl
rm
inline-edit-tax.min.js
2889
0644
edit
dl
rm
iris.min.js
23608
0644
edit
dl
rm
language-chooser.js
875
0644
edit
dl
rm
language-chooser.min.js
374
0644
edit
dl
rm
link.js
3877
0644
edit
dl
rm
link.min.js
1646
0644
edit
dl
rm
media-gallery.js
1221
0644
edit
dl
rm
media-gallery.min.js
537
0644
edit
dl
rm
media-upload.js
3465
0644
edit
dl
rm
media-upload.min.js
1123
0644
edit
dl
rm
media.js
5229
0644
edit
dl
rm
media.min.js
1867
0644
edit
dl
rm
nav-menu.js
42477
0644
edit
dl
rm
nav-menu.min.js
21248
0644
edit
dl
rm
password-strength-meter.js
3175
0644
edit
dl
rm
password-strength-meter.min.js
769
0644
edit
dl
rm
post.js
37388
0644
edit
dl
rm
post.min.js
18305
0644
edit
dl
rm
postbox.js
11767
0644
edit
dl
rm
postbox.min.js
4185
0644
edit
dl
rm
revisions.js
33792
0644
edit
dl
rm
revisions.min.js
17926
0644
edit
dl
rm
set-post-thumbnail.js
843
0644
edit
dl
rm
set-post-thumbnail.min.js
533
0644
edit
dl
rm
svg-painter.js
5524
0644
edit
dl
rm
svg-painter.min.js
2410
0644
edit
dl
rm
tags-box.js
11093
0644
edit
dl
rm
tags-box.min.js
3145
0644
edit
dl
rm
tags-suggest.js
5238
0644
edit
dl
rm
tags-suggest.min.js
2173
0644
edit
dl
rm
tags.js
4348
0644
edit
dl
rm
tags.min.js
1711
0644
edit
dl
rm
theme.js
54384
0644
edit
dl
rm
theme.min.js
26612
0644
edit
dl
rm
trail.js
4498
0644
edit
dl
rm
updates.js
80505
0644
edit
dl
rm
updates.min.js
35804
0644
edit
dl
rm
user-profile.js
12248
0644
edit
dl
rm
user-profile.min.js
6315
0644
edit
dl
rm
user-suggest.js
2321
0644
edit
dl
rm
user-suggest.min.js
679
0644
edit
dl
rm
word-count.js
7692
0644
edit
dl
rm
word-count.min.js
1508
0644
edit
dl
rm
wp-fullscreen-stub.js
680
0644
edit
dl
rm
wp-fullscreen-stub.min.js
331
0644
edit
dl
rm
xfn.js
7712
0644
edit
dl
rm
xfn.min.js
3504
0644
edit
dl
rm
Edit:
/var/softaculous/sitepad/editor/site-admin/js/code-editor.js
(11589B)
/** * @output site-admin/js/code-editor.js */ if ( 'undefined' === typeof window.wp ) { /** * @namespace wp */ window.wp = {}; } if ( 'undefined' === typeof window.wp.codeEditor ) { /** * @namespace wp.codeEditor */ window.wp.codeEditor = {}; } ( function( $, wp ) { 'use strict'; /** * Default settings for code editor. * * @since 4.9.0 * @type {object} */ wp.codeEditor.defaultSettings = { codemirror: {}, csslint: {}, htmlhint: {}, jshint: {}, onTabNext: function() {}, onTabPrevious: function() {}, onChangeLintingErrors: function() {}, onUpdateErrorNotice: function() {} }; /** * Configure linting. * * @param {CodeMirror} editor - Editor. * @param {object} settings - Code editor settings. * @param {object} settings.codeMirror - Settings for CodeMirror. * @param {Function} settings.onChangeLintingErrors - Callback for when there are changes to linting errors. * @param {Function} settings.onUpdateErrorNotice - Callback to update error notice. * * @returns {void} */ function configureLinting( editor, settings ) { // eslint-disable-line complexity var currentErrorAnnotations = [], previouslyShownErrorAnnotations = []; /** * Call the onUpdateErrorNotice if there are new errors to show. * * @returns {void} */ function updateErrorNotice() { if ( settings.onUpdateErrorNotice && ! _.isEqual( currentErrorAnnotations, previouslyShownErrorAnnotations ) ) { settings.onUpdateErrorNotice( currentErrorAnnotations, editor ); previouslyShownErrorAnnotations = currentErrorAnnotations; } } /** * Get lint options. * * @returns {object} Lint options. */ function getLintOptions() { // eslint-disable-line complexity var options = editor.getOption( 'lint' ); if ( ! options ) { return false; } if ( true === options ) { options = {}; } else if ( _.isObject( options ) ) { options = $.extend( {}, options ); } // Note that rules must be sent in the "deprecated" lint.options property to prevent linter from complaining about unrecognized options. See <https://github.com/codemirror/CodeMirror/pull/4944>. if ( ! options.options ) { options.options = {}; } // Configure JSHint. if ( 'javascript' === settings.codemirror.mode && settings.jshint ) { $.extend( options.options, settings.jshint ); } // Configure CSSLint. if ( 'css' === settings.codemirror.mode && settings.csslint ) { $.extend( options.options, settings.csslint ); } // Configure HTMLHint. if ( 'htmlmixed' === settings.codemirror.mode && settings.htmlhint ) { options.options.rules = $.extend( {}, settings.htmlhint ); if ( settings.jshint ) { options.options.rules.jshint = settings.jshint; } if ( settings.csslint ) { options.options.rules.csslint = settings.csslint; } } // Wrap the onUpdateLinting CodeMirror event to route to onChangeLintingErrors and onUpdateErrorNotice. options.onUpdateLinting = (function( onUpdateLintingOverridden ) { return function( annotations, annotationsSorted, cm ) { var errorAnnotations = _.filter( annotations, function( annotation ) { return 'error' === annotation.severity; } ); if ( onUpdateLintingOverridden ) { onUpdateLintingOverridden.apply( annotations, annotationsSorted, cm ); } // Skip if there are no changes to the errors. if ( _.isEqual( errorAnnotations, currentErrorAnnotations ) ) { return; } currentErrorAnnotations = errorAnnotations; if ( settings.onChangeLintingErrors ) { settings.onChangeLintingErrors( errorAnnotations, annotations, annotationsSorted, cm ); } /* * Update notifications when the editor is not focused to prevent error message * from overwhelming the user during input, unless there are now no errors or there * were previously errors shown. In these cases, update immediately so they can know * that they fixed the errors. */ if ( ! editor.state.focused || 0 === currentErrorAnnotations.length || previouslyShownErrorAnnotations.length > 0 ) { updateErrorNotice(); } }; })( options.onUpdateLinting ); return options; } editor.setOption( 'lint', getLintOptions() ); // Keep lint options populated. editor.on( 'optionChange', function( cm, option ) { var options, gutters, gutterName = 'CodeMirror-lint-markers'; if ( 'lint' !== option ) { return; } gutters = editor.getOption( 'gutters' ) || []; options = editor.getOption( 'lint' ); if ( true === options ) { if ( ! _.contains( gutters, gutterName ) ) { editor.setOption( 'gutters', [ gutterName ].concat( gutters ) ); } editor.setOption( 'lint', getLintOptions() ); // Expand to include linting options. } else if ( ! options ) { editor.setOption( 'gutters', _.without( gutters, gutterName ) ); } // Force update on error notice to show or hide. if ( editor.getOption( 'lint' ) ) { editor.performLint(); } else { currentErrorAnnotations = []; updateErrorNotice(); } } ); // Update error notice when leaving the editor. editor.on( 'blur', updateErrorNotice ); // Work around hint selection with mouse causing focus to leave editor. editor.on( 'startCompletion', function() { editor.off( 'blur', updateErrorNotice ); } ); editor.on( 'endCompletion', function() { var editorRefocusWait = 500; editor.on( 'blur', updateErrorNotice ); // Wait for editor to possibly get re-focused after selection. _.delay( function() { if ( ! editor.state.focused ) { updateErrorNotice(); } }, editorRefocusWait ); }); /* * Make sure setting validities are set if the user tries to click Publish * while an autocomplete dropdown is still open. The Customizer will block * saving when a setting has an error notifications on it. This is only * necessary for mouse interactions because keyboards will have already * blurred the field and cause onUpdateErrorNotice to have already been * called. */ $( document.body ).on( 'mousedown', function( event ) { if ( editor.state.focused && ! $.contains( editor.display.wrapper, event.target ) && ! $( event.target ).hasClass( 'CodeMirror-hint' ) ) { updateErrorNotice(); } }); } /** * Configure tabbing. * * @param {CodeMirror} codemirror - Editor. * @param {object} settings - Code editor settings. * @param {object} settings.codeMirror - Settings for CodeMirror. * @param {Function} settings.onTabNext - Callback to handle tabbing to the next tabbable element. * @param {Function} settings.onTabPrevious - Callback to handle tabbing to the previous tabbable element. * * @returns {void} */ function configureTabbing( codemirror, settings ) { var $textarea = $( codemirror.getTextArea() ); codemirror.on( 'blur', function() { $textarea.data( 'next-tab-blurs', false ); }); codemirror.on( 'keydown', function onKeydown( editor, event ) { var tabKeyCode = 9, escKeyCode = 27; // Take note of the ESC keypress so that the next TAB can focus outside the editor. if ( escKeyCode === event.keyCode ) { $textarea.data( 'next-tab-blurs', true ); return; } // Short-circuit if tab key is not being pressed or the tab key press should move focus. if ( tabKeyCode !== event.keyCode || ! $textarea.data( 'next-tab-blurs' ) ) { return; } // Focus on previous or next focusable item. if ( event.shiftKey ) { settings.onTabPrevious( codemirror, event ); } else { settings.onTabNext( codemirror, event ); } // Reset tab state. $textarea.data( 'next-tab-blurs', false ); // Prevent tab character from being added. event.preventDefault(); }); } /** * @typedef {object} wp.codeEditor~CodeEditorInstance * @property {object} settings - The code editor settings. * @property {CodeMirror} codemirror - The CodeMirror instance. */ /** * Initialize Code Editor (CodeMirror) for an existing textarea. * * @since 4.9.0 * * @param {string|jQuery|Element} textarea - The HTML id, jQuery object, or DOM Element for the textarea that is used for the editor. * @param {object} [settings] - Settings to override defaults. * @param {Function} [settings.onChangeLintingErrors] - Callback for when the linting errors have changed. * @param {Function} [settings.onUpdateErrorNotice] - Callback for when error notice should be displayed. * @param {Function} [settings.onTabPrevious] - Callback to handle tabbing to the previous tabbable element. * @param {Function} [settings.onTabNext] - Callback to handle tabbing to the next tabbable element. * @param {object} [settings.codemirror] - Options for CodeMirror. * @param {object} [settings.csslint] - Rules for CSSLint. * @param {object} [settings.htmlhint] - Rules for HTMLHint. * @param {object} [settings.jshint] - Rules for JSHint. * * @returns {CodeEditorInstance} Instance. */ wp.codeEditor.initialize = function initialize( textarea, settings ) { var $textarea, codemirror, instanceSettings, instance; if ( 'string' === typeof textarea ) { $textarea = $( '#' + textarea ); } else { $textarea = $( textarea ); } instanceSettings = $.extend( {}, wp.codeEditor.defaultSettings, settings ); instanceSettings.codemirror = $.extend( {}, instanceSettings.codemirror ); codemirror = wp.CodeMirror.fromTextArea( $textarea[0], instanceSettings.codemirror ); configureLinting( codemirror, instanceSettings ); instance = { settings: instanceSettings, codemirror: codemirror }; if ( codemirror.showHint ) { codemirror.on( 'keyup', function( editor, event ) { // eslint-disable-line complexity var shouldAutocomplete, isAlphaKey = /^[a-zA-Z]$/.test( event.key ), lineBeforeCursor, innerMode, token; if ( codemirror.state.completionActive && isAlphaKey ) { return; } // Prevent autocompletion in string literals or comments. token = codemirror.getTokenAt( codemirror.getCursor() ); if ( 'string' === token.type || 'comment' === token.type ) { return; } innerMode = wp.CodeMirror.innerMode( codemirror.getMode(), token.state ).mode.name; lineBeforeCursor = codemirror.doc.getLine( codemirror.doc.getCursor().line ).substr( 0, codemirror.doc.getCursor().ch ); if ( 'html' === innerMode || 'xml' === innerMode ) { shouldAutocomplete = '<' === event.key || '/' === event.key && 'tag' === token.type || isAlphaKey && 'tag' === token.type || isAlphaKey && 'attribute' === token.type || '=' === token.string && token.state.htmlState && token.state.htmlState.tagName; } else if ( 'css' === innerMode ) { shouldAutocomplete = isAlphaKey || ':' === event.key || ' ' === event.key && /:\s+$/.test( lineBeforeCursor ); } else if ( 'javascript' === innerMode ) { shouldAutocomplete = isAlphaKey || '.' === event.key; } else if ( 'clike' === innerMode && 'application/x-httpd-php' === codemirror.options.mode ) { shouldAutocomplete = 'keyword' === token.type || 'variable' === token.type; } if ( shouldAutocomplete ) { codemirror.showHint( { completeSingle: false } ); } }); } // Facilitate tabbing out of the editor. configureTabbing( codemirror, settings ); return instance; }; })( window.jQuery, window.wp );
Save
cmd:
run