UNPKG

@bigfishtv/cockpit

Version:

153 lines (131 loc) 3.73 kB
'use strict'; exports.__esModule = true; exports.add = add; exports.addAll = addAll; exports.addWithCategory = addWithCategory; exports.addAllWithCategory = addAllWithCategory; exports.get = get; exports.getAll = getAll; exports.getByCategory = getByCategory; exports.getUncategorizedKeys = getUncategorizedKeys; exports.getCategories = getCategories; var _iconLibrary = require('./iconLibrary'); var iconLibrary = _interopRequireWildcard(_iconLibrary); 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; } } var icons = {}; /** * @module Core/iconRegistry */ var categories = {}; /** * Adds icon to registry * @param {String} key * @param {JSX} pathTag - JSX svg path tag */ function add(key, pathTag) { icons[key] = pathTag; } /** * Adds multiple icons to registry * @param {JSX[]} icons - Array of JSX svg path tags */ function addAll(_icons) { Object.keys(_icons).map(function (key) { return add(key, _icons[key]); }); } /** * Adds icon to registry and stores its category * @param {String} key * @param {JSX} pathTag - JSX svg path tag * @param {String} category */ function addWithCategory(key, pathTag, category) { if (!(category in categories)) categories[category] = []; categories[category].push(key); icons[key] = pathTag; } /** * [addAllWithCategory description] * @param {JSX[]} icons - Array of JSX svg path tags * @param {String} category */ function addAllWithCategory(category, _icons) { if (!(category in categories)) categories[category] = []; Object.keys(_icons).forEach(function (key) { categories[category].push(key); add(key, _icons[key]); }); } /** * Gets icon from registry * @param {String} key * @return {JSX} */ function get(key) { return icons[key]; } /** * Gets all icons in registry * @return {Object} */ function getAll() { return icons; } /** * Gets all icons in category * @param {String} category * @return {Object} icons */ function getByCategory(category) { var filteredIcons = {}; if (category in categories) { var keys = categories[category]; keys.forEach(function (key) { return filteredIcons[key] = icons[key]; }); } return filteredIcons; } /** * Gets any icons that weren't added with a category * @return {String[]} icons */ function getUncategorizedKeys() { var categorizedKeys = []; for (var _iterator = Object.keys(categories), _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 category = _ref; categorizedKeys = [].concat(categorizedKeys, categories[category]); } var uncategorizedKeys = []; for (var _iterator2 = Object.keys(icons), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { var _ref2; if (_isArray2) { if (_i2 >= _iterator2.length) break; _ref2 = _iterator2[_i2++]; } else { _i2 = _iterator2.next(); if (_i2.done) break; _ref2 = _i2.value; } var key = _ref2; if (categorizedKeys.indexOf(key) < 0) uncategorizedKeys.push(key); } return uncategorizedKeys; } /** * Gets categories * @return {Object} object of categories */ function getCategories() { return categories; } iconLibrary.init();