@atlassian/aui
Version:
Atlassian User Interface Framework
131 lines (105 loc) • 4.03 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['module', 'exports', './jquery', './internal/amdify', './internal/globalize', './layer', './internal/widget'], factory);
} else if (typeof exports !== "undefined") {
factory(module, exports, require('./jquery'), require('./internal/amdify'), require('./internal/globalize'), require('./layer'), require('./internal/widget'));
} else {
var mod = {
exports: {}
};
factory(mod, mod.exports, global.jquery, global.amdify, global.globalize, global.layer, global.widget);
global.dialog2 = mod.exports;
}
})(this, function (module, exports, _jquery, _amdify, _globalize, _layer, _widget) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _jquery2 = _interopRequireDefault(_jquery);
var _amdify2 = _interopRequireDefault(_amdify);
var _globalize2 = _interopRequireDefault(_globalize);
var _layer2 = _interopRequireDefault(_layer);
var _widget2 = _interopRequireDefault(_widget);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
var defaults = {
'aui-focus': 'false', // do not focus by default as it's overridden below
'aui-blanketed': 'true'
};
function applyDefaults($el) {
_jquery2.default.each(defaults, function (key, value) {
var dataKey = 'data-' + key;
if (!$el[0].hasAttribute(dataKey)) {
$el.attr(dataKey, value);
}
});
}
function Dialog2(selector) {
if (selector) {
this.$el = (0, _jquery2.default)(selector);
} else {
this.$el = (0, _jquery2.default)(aui.dialog.dialog2({}));
}
applyDefaults(this.$el);
}
Dialog2.prototype.on = function (event, fn) {
(0, _layer2.default)(this.$el).on(event, fn);
return this;
};
Dialog2.prototype.off = function (event, fn) {
(0, _layer2.default)(this.$el).off(event, fn);
return this;
};
Dialog2.prototype.show = function () {
(0, _layer2.default)(this.$el).show();
return this;
};
Dialog2.prototype.hide = function () {
(0, _layer2.default)(this.$el).hide();
return this;
};
Dialog2.prototype.remove = function () {
(0, _layer2.default)(this.$el).remove();
return this;
};
Dialog2.prototype.isVisible = function () {
return (0, _layer2.default)(this.$el).isVisible();
};
var dialog2Widget = (0, _widget2.default)('dialog2', Dialog2);
dialog2Widget.on = function (eventName, fn) {
_layer2.default.on(eventName, '.aui-dialog2', fn);
return this;
};
dialog2Widget.off = function (eventName, fn) {
_layer2.default.off(eventName, '.aui-dialog2', fn);
return this;
};
/* Live events */
(0, _jquery2.default)(document).on('click', '.aui-dialog2-header-close', function (e) {
e.preventDefault();
dialog2Widget((0, _jquery2.default)(this).closest('.aui-dialog2')).hide();
});
dialog2Widget.on('show', function (e, $el) {
var selectors = ['.aui-dialog2-content', '.aui-dialog2-footer', '.aui-dialog2-header'];
var $selected;
selectors.some(function (selector) {
$selected = $el.find(selector + ' :aui-tabbable');
return $selected.length;
});
$selected && $selected.first().focus();
});
dialog2Widget.on('hide', function (e, $el) {
var layer = (0, _layer2.default)($el);
if ($el.data('aui-remove-on-hide')) {
layer.remove();
}
});
(0, _amdify2.default)('aui/dialog2', dialog2Widget);
(0, _globalize2.default)('dialog2', dialog2Widget);
exports.default = dialog2Widget;
module.exports = exports['default'];
});
//# sourceMappingURL=dialog2.js.map