UNPKG

spiritjs

Version:

The animation toolkit for the web

64 lines (59 loc) 1.75 kB
"use strict"; 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();