summaryrefslogtreecommitdiff
path: root/addons/website/static/lib/ckeditor/plugins/stylesheetparser/plugin.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website/static/lib/ckeditor/plugins/stylesheetparser/plugin.js')
-rw-r--r--addons/website/static/lib/ckeditor/plugins/stylesheetparser/plugin.js152
1 files changed, 0 insertions, 152 deletions
diff --git a/addons/website/static/lib/ckeditor/plugins/stylesheetparser/plugin.js b/addons/website/static/lib/ckeditor/plugins/stylesheetparser/plugin.js
deleted file mode 100644
index 4ba18fb076d..00000000000
--- a/addons/website/static/lib/ckeditor/plugins/stylesheetparser/plugin.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or http://ckeditor.com/license
- */
-
-/**
- * @fileOverview stylesheetParser plugin.
- */
-
-(function() {
- // We want to extract only the elements with classes defined in the stylesheets:
- function parseClasses( aRules, skipSelectors, validSelectors ) {
- // aRules are just the different rules in the style sheets
- // We want to merge them and them split them by commas, so we end up with only
- // the selectors
- var s = aRules.join( ' ' );
- // Remove selectors splitting the elements, leave only the class selector (.)
- s = s.replace( /(,|>|\+|~)/g, ' ' );
- // Remove attribute selectors: table[border="0"]
- s = s.replace( /\[[^\]]*/g, '' );
- // Remove Ids: div#main
- s = s.replace( /#[^\s]*/g, '' );
- // Remove pseudo-selectors and pseudo-elements: :hover :nth-child(2n+1) ::before
- s = s.replace( /\:{1,2}[^\s]*/g, '' );
-
- s = s.replace( /\s+/g, ' ' );
-
- var aSelectors = s.split( ' ' ),
- aClasses = [];
-
- for ( var i = 0; i < aSelectors.length; i++ ) {
- var selector = aSelectors[ i ];
-
- if ( validSelectors.test( selector ) && !skipSelectors.test( selector ) ) {
- // If we still don't know about this one, add it
- if ( CKEDITOR.tools.indexOf( aClasses, selector ) == -1 )
- aClasses.push( selector );
- }
- }
-
- return aClasses;
- }
-
- function LoadStylesCSS( theDoc, skipSelectors, validSelectors ) {
- var styles = [],
- // It will hold all the rules of the applied stylesheets (except those internal to CKEditor)
- aRules = [],
- i;
-
- for ( i = 0; i < theDoc.styleSheets.length; i++ ) {
- var sheet = theDoc.styleSheets[ i ],
- node = sheet.ownerNode || sheet.owningElement;
-
- // Skip the internal stylesheets
- if ( node.getAttribute( 'data-cke-temp' ) )
- continue;
-
- // Exclude stylesheets injected by extensions
- if ( sheet.href && sheet.href.substr( 0, 9 ) == 'chrome://' )
- continue;
-
- // Bulletproof with x-domain content stylesheet.
- try {
- var sheetRules = sheet.cssRules || sheet.rules;
- for ( var j = 0; j < sheetRules.length; j++ )
- aRules.push( sheetRules[ j ].selectorText );
- } catch ( e ) {}
- }
-
- var aClasses = parseClasses( aRules, skipSelectors, validSelectors );
-
- // Add each style to our "Styles" collection.
- for ( i = 0; i < aClasses.length; i++ ) {
- var oElement = aClasses[ i ].split( '.' ),
- element = oElement[ 0 ].toLowerCase(),
- sClassName = oElement[ 1 ];
-
- styles.push({
- name: element + '.' + sClassName,
- element: element,
- attributes: { 'class': sClassName }
- });
- }
-
- return styles;
- }
-
- // Register a plugin named "stylesheetparser".
- CKEDITOR.plugins.add( 'stylesheetparser', {
- init: function( editor ) {
- // Stylesheet parser is incompatible with filter (#10136).
- editor.filter.disable();
-
- var cachedDefinitions;
-
- editor.once( 'stylesSet', function( evt ) {
- // Cancel event and fire it again when styles are ready.
- evt.cancel();
-
- // Overwrite editor#getStylesSet asap (contentDom is the first moment
- // when editor.document is ready), but before stylescombo reads styles set (priority 5).
- editor.once( 'contentDom', function() {
- editor.getStylesSet( function( definitions ) {
- // Rules that must be skipped
- var skipSelectors = editor.config.stylesheetParser_skipSelectors || ( /(^body\.|^\.)/i ),
- // Rules that are valid
- validSelectors = editor.config.stylesheetParser_validSelectors || ( /\w+\.\w+/ );
-
- cachedDefinitions = definitions.concat( LoadStylesCSS( editor.document.$, skipSelectors, validSelectors ) );
-
- editor.getStylesSet = function( callback ) {
- if ( cachedDefinitions )
- return callback( cachedDefinitions );
- };
-
- editor.fire( 'stylesSet', { styles: cachedDefinitions } );
- } );
- } );
- }, null, null, 1 );
- }
- });
-})();
-
-
-/**
- * A regular expression that defines whether a CSS rule will be
- * skipped by the Stylesheet Parser plugin. A CSS rule matching
- * the regular expression will be ignored and will not be available
- * in the Styles drop-down list.
- *
- * // Ignore rules for body and caption elements, classes starting with "high", and any class defined for no specific element.
- * config.stylesheetParser_skipSelectors = /(^body\.|^caption\.|\.high|^\.)/i;
- *
- * @since 3.6
- * @cfg {RegExp} [stylesheetParser_skipSelectors=/(^body\.|^\.)/i]
- * @member CKEDITOR.config
- * @see CKEDITOR.config#stylesheetParser_validSelectors
- */
-
-/**
- * A regular expression that defines which CSS rules will be used
- * by the Stylesheet Parser plugin. A CSS rule matching the regular
- * expression will be available in the Styles drop-down list.
- *
- * // Only add rules for p and span elements.
- * config.stylesheetParser_validSelectors = /\^(p|span)\.\w+/;
- *
- * @since 3.6
- * @cfg {RegExp} [stylesheetParser_validSelectors=/\w+\.\w+/]
- * @member CKEDITOR.config
- * @see CKEDITOR.config#stylesheetParser_skipSelectors
- */