UNPKG

@atlassian/aui

Version:

Atlassian User Interface Framework

89 lines (78 loc) 2.96 kB
(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