'use strict'; Object.defineProperty(exports, "__esModule", { value: 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"); } } /** * Sheets registry to access them all at one place. */ var SheetsRegistry = function () { function SheetsRegistry() { _classCallCheck(this, SheetsRegistry); this.registry = []; } _createClass(SheetsRegistry, [{ key: 'add', /** * Register a Style Sheet. */ value: function add(sheet) { var registry = this.registry; var index = sheet.options.index; if (registry.indexOf(sheet) !== -1) return; if (registry.length === 0 || index >= this.index) { registry.push(sheet); return; } // Find a position. for (var i = 0; i < registry.length; i++) { if (registry[i].options.index > index) { registry.splice(i, 0, sheet); return; } } } /** * Reset the registry. */ }, { key: 'reset', value: function reset() { this.registry = []; } /** * Remove a Style Sheet. */ }, { key: 'remove', value: function remove(sheet) { var index = this.registry.indexOf(sheet); this.registry.splice(index, 1); } /** * Convert all attached sheets to a CSS string. */ }, { key: 'toString', value: function toString(options) { return this.registry.filter(function (sheet) { return sheet.attached; }).map(function (sheet) { return sheet.toString(options); }).join('\n'); } }, { key: 'index', /** * Current highest index number. */ get: function get() { return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index; } }]); return SheetsRegistry; }(); exports['default'] = SheetsRegistry;