spiritjs
Version:
The animation toolkit for the web
64 lines (59 loc) • 1.75 kB
JavaScript
;
exports.__esModule = true;
exports["default"] = void 0;
var _list = _interopRequireDefault(require("../list/list"));
var _group = require("../group");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
var Registry = /*#__PURE__*/function (_List) {
function Registry() {
return _List.call(this, []) || this;
}
/**
* Add unique group
*
* @param {Group} group
*/
_inheritsLoose(Registry, _List);
var _proto = Registry.prototype;
_proto.add = function add(group) {
if (!(group instanceof _group.Group)) {
throw new Error('Invalid group. Only Group instances allowed.');
}
_List.prototype.add.call(this, group);
}
/**
* Remove group from registry
*
* @param {Group} group
* @returns {Group}
*/;
_proto.remove = function remove(group) {
group.reset();
return _List.prototype.remove.call(this, group);
}
/**
* Get group by name
*
* @param {string} name
* @returns {Group}
*/;
_proto.get = function get(name) {
return this.list.find(function (g) {
return g.name === name;
});
}
/**
* Get all group names from registry
*
* @returns {Array}
*/;
_proto.groupNames = function groupNames() {
return this.list.map(function (g) {
return g.name;
});
};
return Registry;
}(_list["default"]);
var _default = exports["default"] = new Registry();