"use strict"; exports.__esModule = true; var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var _Constants = require("../Constants"); var PermissionOverwrite = (function () { function PermissionOverwrite(data) { _classCallCheck(this, PermissionOverwrite); this.id = data.id; this.type = data.type; // member or role this.deny = data.deny; this.allow = data.allow; } // returns an array of allowed permissions PermissionOverwrite.prototype.toObject = function toObject() { var keys = ['id', 'type', 'allow', 'deny'], obj = {}; for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { var _ref; if (_isArray) { if (_i >= _iterator.length) break; _ref = _iterator[_i++]; } else { _i = _iterator.next(); if (_i.done) break; _ref = _i.value; } var k = _ref; obj[k] = this[k]; } return obj; }; PermissionOverwrite.prototype.setAllowed = function setAllowed(allowedArray) { var _this = this; allowedArray.forEach(function (permission) { if (permission instanceof String || typeof permission === "string") { permission = _Constants.Permissions[permission]; } if (permission) { _this.allow |= 1 << permission; } }); }; PermissionOverwrite.prototype.setDenied = function setDenied(deniedArray) { var _this2 = this; deniedArray.forEach(function (permission) { if (permission instanceof String || typeof permission === "string") { permission = _Constants.Permissions[permission]; } if (permission) { _this2.deny |= 1 << permission; } }); }; _createClass(PermissionOverwrite, [{ key: "allowed", get: function get() { var allowed = []; for (var permName in _Constants.Permissions) { if (permName === "manageRoles" || permName === "manageChannels") { // these permissions do not exist in overwrites. continue; } if (!!(this.allow & _Constants.Permissions[permName])) { allowed.push(permName); } } return allowed; } // returns an array of denied permissions }, { key: "denied", get: function get() { var denied = []; for (var permName in _Constants.Permissions) { if (permName === "manageRoles" || permName === "manageChannels") { // these permissions do not exist in overwrites. continue; } if (!!(this.deny & _Constants.Permissions[permName])) { denied.push(permName); } } return denied; } }]); return PermissionOverwrite; })(); exports["default"] = PermissionOverwrite; module.exports = exports["default"];