@atlassian/aui
Version:
Atlassian User Interface Framework
96 lines (78 loc) • 2.63 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['module', 'exports', './log'], factory);
} else if (typeof exports !== "undefined") {
factory(module, exports, require('./log'));
} else {
var mod = {
exports: {}
};
factory(mod, mod.exports, global.log);
global.enforcer = mod.exports;
}
})(this, function (module, exports, _log) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var logger = _interopRequireWildcard(_log);
function _interopRequireWildcard(obj) {
if (obj && obj.__esModule) {
return obj;
} else {
var newObj = {};
if (obj != null) {
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
}
}
newObj.default = obj;
return newObj;
}
}
function enforcer(element) {
function attributeExists(attributeName) {
var errorMessage = attributeName + ' wasn\'t defined';
return satisfiesRules(function () {
return element.hasAttribute(attributeName);
}, errorMessage);
}
function refersTo(attributeName) {
if (!attributeExists(attributeName, element)) {
return false;
}
var desiredId = element.getAttribute(attributeName);
var errorMessage = 'an element with id set to "' + desiredId + '" was not found';
return satisfiesRules(function () {
return document.getElementById(desiredId);
}, errorMessage);
}
function ariaControls() {
return refersTo('aria-controls');
}
function ariaOwns() {
return refersTo('aria-owns');
}
function satisfiesRules(predicate, message) {
if (!predicate()) {
if (element) {
logger.error(message, element);
} else {
logger.error(message);
}
return false;
}
return true;
}
return {
attributeExists: attributeExists,
refersTo: refersTo,
satisfiesRules: satisfiesRules,
ariaControls: ariaControls,
ariaOwns: ariaOwns
};
}
exports.default = enforcer;
module.exports = exports['default'];
});
//# sourceMappingURL=enforcer.js.map