/**
* DO NOT EDIT THIS FILE.
* See the following change record for more information,
* https://www.drupal.org/node/2815083
* @preserve
**/
(function ($, Drupal, drupalSettings, _) {
Drupal.ckeditor = Drupal.ckeditor || {};
Drupal.behaviors.ckeditorAdmin = {
attach: function attach(context) {
var $configurationForm = $(context).find('.ckeditor-toolbar-configuration').once('ckeditor-configuration');
if ($configurationForm.length) {
var $textarea = $configurationForm.find('.js-form-item-editor-settings-toolbar-button-groups').hide().find('textarea');
$configurationForm.append(drupalSettings.ckeditor.toolbarAdmin);
Drupal.ckeditor.models.Model = new Drupal.ckeditor.Model({
$textarea: $textarea,
activeEditorConfig: JSON.parse($textarea.val()),
hiddenEditorConfig: drupalSettings.ckeditor.hiddenCKEditorConfig
});
var viewDefaults = {
model: Drupal.ckeditor.models.Model,
el: $('.ckeditor-toolbar-configuration')
};
Drupal.ckeditor.views = {
controller: new Drupal.ckeditor.ControllerView(viewDefaults),
visualView: new Drupal.ckeditor.VisualView(viewDefaults),
keyboardView: new Drupal.ckeditor.KeyboardView(viewDefaults),
auralView: new Drupal.ckeditor.AuralView(viewDefaults)
};
}
},
detach: function detach(context, settings, trigger) {
if (trigger !== 'unload') {
return;
}
var $configurationForm = $(context).find('.ckeditor-toolbar-configuration').findOnce('ckeditor-configuration');
if ($configurationForm.length && Drupal.ckeditor.models && Drupal.ckeditor.models.Model) {
var config = Drupal.ckeditor.models.Model.toJSON().activeEditorConfig;
var buttons = Drupal.ckeditor.views.controller.getButtonList(config);
var $activeToolbar = $('.ckeditor-toolbar-configuration').find('.ckeditor-toolbar-active');
for (var i = 0; i < buttons.length; i++) {
$activeToolbar.trigger('CKEditorToolbarChanged', ['removed', buttons[i]]);
}
}
}
};
Drupal.ckeditor = {
views: {},
models: {},
registerButtonMove: function registerButtonMove(view, $button, callback) {
var $group = $button.closest('.ckeditor-toolbar-group');
if ($group.hasClass('placeholder')) {
if (view.isProcessing) {
return;
}
view.isProcessing = true;
Drupal.ckeditor.openGroupNameDialog(view, $group, callback);
} else {
view.model.set('isDirty', true);
callback(true);
}
},
registerGroupMove: function registerGroupMove(view, $group) {
var $row = $group.closest('.ckeditor-row');
if ($row.hasClass('placeholder')) {
$row.removeClass('placeholder');
}
$row.parent().children().each(function () {
$row = $(this);
if ($row.find('.ckeditor-toolbar-group').not('.placeholder').length === 0) {
$row.addClass('placeholder');
}
});
view.model.set('isDirty', true);
},
openGroupNameDialog: function openGroupNameDialog(view, $group, callback) {
callback = callback || function () {};
function validateForm(form) {
if (form.elements[0].value.length === 0) {
var $form = $(form);
if (!$form.hasClass('errors')) {
$form.addClass('errors').find('input').addClass('error').attr('aria-invalid', 'true');
$('
' + Drupal.t('Please provide a name for the button group.') + '
').insertAfter(form.elements[0]);
}
return true;
}
return false;
}
function closeDialog(action, form) {
function shutdown() {
dialog.close(action);
delete view.isProcessing;
}
function namePlaceholderGroup($group, name) {
if ($group.hasClass('placeholder')) {
var groupID = 'ckeditor-toolbar-group-aria-label-for-' + Drupal.checkPlain(name.toLowerCase().replace(/\s/g, '-'));
$group.removeAttr('aria-label').attr('data-drupal-ckeditor-type', 'group').attr('tabindex', 0).children('.ckeditor-toolbar-group-name').attr('id', groupID).end().children('.ckeditor-toolbar-group-buttons').attr('aria-labelledby', groupID);
}
$group.attr('data-drupal-ckeditor-toolbar-group-name', name).children('.ckeditor-toolbar-group-name').text(name);
}
if (action === 'cancel') {
shutdown();
callback(false, $group);
return;
}
if (form && validateForm(form)) {
return;
}
if (action === 'apply') {
shutdown();
namePlaceholderGroup($group, Drupal.checkPlain(form.elements[0].value));
$group.closest('.ckeditor-row.placeholder').addBack().removeClass('placeholder');
callback(true, $group);
view.model.set('isDirty', true);
}
}
var $ckeditorButtonGroupNameForm = $(Drupal.theme('ckeditorButtonGroupNameForm'));
var dialog = Drupal.dialog($ckeditorButtonGroupNameForm.get(0), {
title: Drupal.t('Button group name'),
dialogClass: 'ckeditor-name-toolbar-group',
resizable: false,
buttons: [{
text: Drupal.t('Apply'),
click: function click() {
closeDialog('apply', this);
},
primary: true
}, {
text: Drupal.t('Cancel'),
click: function click() {
closeDialog('cancel');
}
}],
open: function open() {
var form = this;
var $form = $(this);
var $widget = $form.parent();
$widget.find('.ui-dialog-titlebar-close').remove();
$widget.on('keypress.ckeditor', 'input, button', function (event) {
if (event.keyCode === 13) {
var $target = $(event.currentTarget);
var data = $target.data('ui-button');
var action = 'apply';
if (data && data.options && data.options.label) {
action = data.options.label.toLowerCase();
}
closeDialog(action, form);
event.stopPropagation();
event.stopImmediatePropagation();
event.preventDefault();
}
});
var text = Drupal.t('Editing the name of the new button group in a dialog.');
if (typeof $group.attr('data-drupal-ckeditor-toolbar-group-name') !== 'undefined') {
text = Drupal.t('Editing the name of the "@groupName" button group in a dialog.', {
'@groupName': $group.attr('data-drupal-ckeditor-toolbar-group-name')
});
}
Drupal.announce(text);
},
close: function close(event) {
$(event.target).remove();
}
});
dialog.showModal();
$(document.querySelector('.ckeditor-name-toolbar-group').querySelector('input')).attr('value', $group.attr('data-drupal-ckeditor-toolbar-group-name')).trigger('focus');
}
};
Drupal.behaviors.ckeditorAdminButtonPluginSettings = {
attach: function attach(context) {
var $context = $(context);
var $ckeditorPluginSettings = $context.find('#ckeditor-plugin-settings').once('ckeditor-plugin-settings');
if ($ckeditorPluginSettings.length) {
$ckeditorPluginSettings.find('[data-ckeditor-buttons]').each(function () {
var $this = $(this);
if ($this.data('verticalTab')) {
$this.data('verticalTab').tabHide();
} else {
$this.hide();
}
$this.data('ckeditorButtonPluginSettingsActiveButtons', []);
});
$context.find('.ckeditor-toolbar-active').off('CKEditorToolbarChanged.ckeditorAdminPluginSettings').on('CKEditorToolbarChanged.ckeditorAdminPluginSettings', function (event, action, button) {
var $pluginSettings = $ckeditorPluginSettings.find('[data-ckeditor-buttons~=' + button + ']');
if ($pluginSettings.length === 0) {
return;
}
var verticalTab = $pluginSettings.data('verticalTab');
var activeButtons = $pluginSettings.data('ckeditorButtonPluginSettingsActiveButtons');
if (action === 'added') {
activeButtons.push(button);
if (verticalTab) {
verticalTab.tabShow();
} else {
$pluginSettings.show();
}
} else {
activeButtons.splice(activeButtons.indexOf(button), 1);
if (activeButtons.length === 0) {
if (verticalTab) {
verticalTab.tabHide();
} else {
$pluginSettings.hide();
}
}
}
$pluginSettings.data('ckeditorButtonPluginSettingsActiveButtons', activeButtons);
});
}
}
};
Drupal.theme.ckeditorRow = function () {
return '';
};
Drupal.theme.ckeditorToolbarGroup = function () {
var group = '';
group += '';
group += '';
group += '';
group += '';
return group;
};
Drupal.theme.ckeditorButtonGroupNameForm = function () {
return '';
};
Drupal.theme.ckeditorButtonGroupNamesToggle = function () {
return '';
};
Drupal.theme.ckeditorNewButtonGroup = function () {
return '';
};
})(jQuery, Drupal, drupalSettings, _);