@atlassian/aui
Version:
Atlassian User Interface Framework
59 lines (50 loc) • 1.74 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['module', 'exports', '../jquery'], factory);
} else if (typeof exports !== "undefined") {
factory(module, exports, require('../jquery'));
} else {
var mod = {
exports: {}
};
factory(mod, mod.exports, global.jquery);
global.widget = mod.exports;
}
})(this, function (module, exports, _jquery) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (name, Ctor) {
var dataAttr = '_aui-widget-' + name;
return function (selectorOrOptions, maybeOptions) {
var selector;
var options;
if (_jquery2.default.isPlainObject(selectorOrOptions)) {
options = selectorOrOptions;
} else {
selector = selectorOrOptions;
options = maybeOptions;
}
var $el = selector && (0, _jquery2.default)(selector);
var widget;
if (!$el || !$el.data(dataAttr)) {
widget = new Ctor($el, options || {});
$el = widget.$el;
$el.data(dataAttr, widget);
} else {
widget = $el.data(dataAttr);
// options are discarded if $el has already been constructed
}
return widget;
};
};
var _jquery2 = _interopRequireDefault(_jquery);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
module.exports = exports['default'];
});
//# sourceMappingURL=widget.js.map