74 lines
1.9 KiB
JavaScript
74 lines
1.9 KiB
JavaScript
/**
|
|
* DO NOT EDIT THIS FILE.
|
|
* See the following change record for more information,
|
|
* https://www.drupal.org/node/2815083
|
|
* @preserve
|
|
**/
|
|
|
|
(function ($, _ref) {
|
|
var tabbable = _ref.tabbable,
|
|
isTabbable = _ref.isTabbable;
|
|
$.widget('ui.dialog', $.ui.dialog, {
|
|
options: {
|
|
buttonClass: 'button',
|
|
buttonPrimaryClass: 'button--primary'
|
|
},
|
|
_createButtons: function _createButtons() {
|
|
var opts = this.options;
|
|
var primaryIndex;
|
|
var index;
|
|
var il = opts.buttons.length;
|
|
|
|
for (index = 0; index < il; index++) {
|
|
if (opts.buttons[index].primary && opts.buttons[index].primary === true) {
|
|
primaryIndex = index;
|
|
delete opts.buttons[index].primary;
|
|
break;
|
|
}
|
|
}
|
|
|
|
this._super();
|
|
|
|
var $buttons = this.uiButtonSet.children().addClass(opts.buttonClass);
|
|
|
|
if (typeof primaryIndex !== 'undefined') {
|
|
$buttons.eq(index).addClass(opts.buttonPrimaryClass);
|
|
}
|
|
},
|
|
_focusTabbable: function _focusTabbable() {
|
|
var hasFocus = this._focusedElement ? this._focusedElement.get(0) : null;
|
|
|
|
if (!hasFocus) {
|
|
hasFocus = this.element.find('[autofocus]').get(0);
|
|
}
|
|
|
|
if (!hasFocus) {
|
|
var $elements = [this.element, this.uiDialogButtonPane];
|
|
|
|
for (var i = 0; i < $elements.length; i++) {
|
|
var element = $elements[i].get(0);
|
|
|
|
if (element) {
|
|
var elementTabbable = tabbable(element);
|
|
hasFocus = elementTabbable.length ? elementTabbable[0] : null;
|
|
}
|
|
|
|
if (hasFocus) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!hasFocus) {
|
|
var closeBtn = this.uiDialogTitlebarClose.get(0);
|
|
hasFocus = closeBtn && isTabbable(closeBtn) ? closeBtn : null;
|
|
}
|
|
|
|
if (!hasFocus) {
|
|
hasFocus = this.uiDialog.get(0);
|
|
}
|
|
|
|
$(hasFocus).eq(0).trigger('focus');
|
|
}
|
|
});
|
|
})(jQuery, window.tabbable); |