Chris@0: /** Chris@0: * DO NOT EDIT THIS FILE. Chris@0: * See the following change record for more information, Chris@0: * https://www.drupal.org/node/2815083 Chris@0: * @preserve Chris@0: **/ Chris@0: Chris@0: (function ($, Drupal, drupalSettings, _) { Chris@0: Drupal.behaviors.ckeditorStylesComboSettings = { Chris@0: attach: function attach(context) { Chris@0: var $context = $(context); Chris@0: Chris@0: var $ckeditorActiveToolbar = $context.find('.ckeditor-toolbar-configuration').find('.ckeditor-toolbar-active'); Chris@0: var previousStylesSet = drupalSettings.ckeditor.hiddenCKEditorConfig.stylesSet; Chris@0: var that = this; Chris@0: $context.find('[name="editor[settings][plugins][stylescombo][styles]"]').on('blur.ckeditorStylesComboSettings', function () { Chris@0: var styles = $.trim($(this).val()); Chris@0: var stylesSet = that._generateStylesSetSetting(styles); Chris@0: if (!_.isEqual(previousStylesSet, stylesSet)) { Chris@0: previousStylesSet = stylesSet; Chris@0: $ckeditorActiveToolbar.trigger('CKEditorPluginSettingsChanged', [{ stylesSet: stylesSet }]); Chris@0: } Chris@0: }); Chris@0: }, Chris@0: _generateStylesSetSetting: function _generateStylesSetSetting(styles) { Chris@0: var stylesSet = []; Chris@0: Chris@0: styles = styles.replace(/\r/g, '\n'); Chris@0: var lines = styles.split('\n'); Chris@0: for (var i = 0; i < lines.length; i++) { Chris@0: var style = $.trim(lines[i]); Chris@0: Chris@0: if (style.length === 0) { Chris@0: continue; Chris@0: } Chris@0: Chris@0: if (style.match(/^ *[a-zA-Z0-9]+ *(\.[a-zA-Z0-9_-]+ *)*\| *.+ *$/) === null) { Chris@0: continue; Chris@0: } Chris@0: Chris@0: var parts = style.split('|'); Chris@0: var selector = parts[0]; Chris@0: var label = parts[1]; Chris@0: var classes = selector.split('.'); Chris@0: var element = classes.shift(); Chris@0: Chris@0: stylesSet.push({ Chris@0: attributes: { class: classes.join(' ') }, Chris@0: element: element, Chris@0: name: label Chris@0: }); Chris@0: } Chris@0: Chris@0: return stylesSet; Chris@0: } Chris@0: }; Chris@0: Chris@0: Drupal.behaviors.ckeditorStylesComboSettingsSummary = { Chris@0: attach: function attach() { Chris@0: $('[data-ckeditor-plugin-id="stylescombo"]').drupalSetSummary(function (context) { Chris@0: var styles = $.trim($('[data-drupal-selector="edit-editor-settings-plugins-stylescombo-styles"]').val()); Chris@0: if (styles.length === 0) { Chris@0: return Drupal.t('No styles configured'); Chris@0: } Chris@0: Chris@0: var count = $.trim(styles).split('\n').length; Chris@0: return Drupal.t('@count styles configured', { '@count': count }); Chris@0: }); Chris@0: } Chris@0: }; Chris@0: })(jQuery, Drupal, drupalSettings, _);