%PDF- %PDF-
Direktori : /home/riacommer/public_html/admin/vendor/wysihtml5/src/commands/ |
Current File : /home/riacommer/public_html/admin/vendor/wysihtml5/src/commands/formatInline.js |
/** * formatInline scenarios for tag "B" (| = caret, |foo| = selected text) * * #1 caret in unformatted text: * abcdefg| * output: * abcdefg<b>|</b> * * #2 unformatted text selected: * abc|deg|h * output: * abc<b>|deg|</b>h * * #3 unformatted text selected across boundaries: * ab|c <span>defg|h</span> * output: * ab<b>|c </b><span><b>defg</b>|h</span> * * #4 formatted text entirely selected * <b>|abc|</b> * output: * |abc| * * #5 formatted text partially selected * <b>ab|c|</b> * output: * <b>ab</b>|c| * * #6 formatted text selected across boundaries * <span>ab|c</span> <b>de|fgh</b> * output: * <span>ab|c</span> de|<b>fgh</b> */ (function(wysihtml5) { var undef, // Treat <b> as <strong> and vice versa ALIAS_MAPPING = { "strong": "b", "em": "i", "b": "strong", "i": "em" }, htmlApplier = {}; function _getTagNames(tagName) { var alias = ALIAS_MAPPING[tagName]; return alias ? [tagName.toLowerCase(), alias.toLowerCase()] : [tagName.toLowerCase()]; } function _getApplier(tagName, className, classRegExp) { var identifier = tagName + ":" + className; if (!htmlApplier[identifier]) { htmlApplier[identifier] = new wysihtml5.selection.HTMLApplier(_getTagNames(tagName), className, classRegExp, true); } return htmlApplier[identifier]; } wysihtml5.commands.formatInline = { exec: function(composer, command, tagName, className, classRegExp) { var range = composer.selection.getRange(); if (!range) { return false; } _getApplier(tagName, className, classRegExp).toggleRange(range); composer.selection.setSelection(range); }, state: function(composer, command, tagName, className, classRegExp) { var doc = composer.doc, aliasTagName = ALIAS_MAPPING[tagName] || tagName, range; // Check whether the document contains a node with the desired tagName if (!wysihtml5.dom.hasElementWithTagName(doc, tagName) && !wysihtml5.dom.hasElementWithTagName(doc, aliasTagName)) { return false; } // Check whether the document contains a node with the desired className if (className && !wysihtml5.dom.hasElementWithClassName(doc, className)) { return false; } range = composer.selection.getRange(); if (!range) { return false; } return _getApplier(tagName, className, classRegExp).isAppliedToRange(range); }, value: function() { return undef; } }; })(wysihtml5);