@atlassian/aui
Version:
Atlassian User Interface Framework
89 lines (78 loc) • 2.96 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['module', 'exports', './internal/skate', 'skatejs-template-html', './internal/enforcer', './internal/constants'], factory);
} else if (typeof exports !== "undefined") {
factory(module, exports, require('./internal/skate'), require('skatejs-template-html'), require('./internal/enforcer'), require('./internal/constants'));
} else {
var mod = {
exports: {}
};
factory(mod, mod.exports, global.skate, global.skatejsTemplateHtml, global.enforcer, global.constants);
global.label = mod.exports;
}
})(this, function (module, exports, _skate, _skatejsTemplateHtml, _enforcer, _constants) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _skate2 = _interopRequireDefault(_skate);
var _skatejsTemplateHtml2 = _interopRequireDefault(_skatejsTemplateHtml);
var _enforcer2 = _interopRequireDefault(_enforcer);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function getLabel(element) {
return element.querySelector('label');
}
function updateLabelFor(element, change) {
if (element.hasAttribute('for')) {
getLabel(element).setAttribute('for', '' + change.newValue + _constants.INPUT_SUFFIX);
} else {
getLabel(element).removeAttribute('for');
}
}
function updateLabelForm(element, change) {
if (element.hasAttribute('form')) {
getLabel(element).setAttribute('form', change.newValue);
} else {
getLabel(element).removeAttribute('form');
}
}
var Label = (0, _skate2.default)('aui-label', {
template: (0, _skatejsTemplateHtml2.default)('<label><content></content></label>'),
created: function created(element) {
element._label = getLabel(element); // required for quick access from test
},
attached: function attached(element) {
(0, _enforcer2.default)(element).attributeExists('for');
},
attributes: {
'for': updateLabelFor,
form: updateLabelForm
},
prototype: {
get disabled() {
return this.hasAttribute('disabled');
},
set disabled(value) {
if (value) {
this.setAttribute('disabled', '');
} else {
this.removeAttribute('disabled');
}
}
},
events: {
click: function click(element, e) {
if (element.disabled) {
e.preventDefault();
}
}
}
});
exports.default = Label;
module.exports = exports['default'];
});
//# sourceMappingURL=label.js.map