| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 'use strict';
- const icon_defaults = require('../icon/defaults.cjs');
- function minifyIconSet(data) {
- const icons = Object.keys(data.icons);
- Object.keys(
- icon_defaults.defaultIconDimensions
- ).forEach((prop) => {
- if (data[prop] === icon_defaults.defaultIconDimensions[prop]) {
- delete data[prop];
- }
- const defaultValue = icon_defaults.defaultIconDimensions[prop];
- const propType = typeof defaultValue;
- const hasMinifiedDefault = typeof data[prop] === propType && data[prop] !== defaultValue;
- let maxCount = 0;
- let maxValue = null;
- const counters = /* @__PURE__ */ new Map();
- for (let i = 0; i < icons.length; i++) {
- const item = data.icons[icons[i]];
- let value;
- if (typeof item[prop] === propType) {
- value = item[prop];
- } else if (hasMinifiedDefault) {
- value = data[prop];
- } else {
- value = icon_defaults.defaultIconDimensions[prop];
- }
- if (i === 0) {
- maxCount = 1;
- maxValue = value;
- counters.set(value, 1);
- continue;
- }
- if (!counters.has(value)) {
- counters.set(value, 1);
- continue;
- }
- const count = counters.get(value) + 1;
- counters.set(value, count);
- if (count > maxCount) {
- maxCount = count;
- maxValue = value;
- }
- }
- const canMinify = maxValue !== null && maxCount > 1;
- const oldDefault = hasMinifiedDefault ? data[prop] : null;
- const newDefault = canMinify ? maxValue : oldDefault;
- if (newDefault === defaultValue) {
- delete data[prop];
- } else if (canMinify) {
- data[prop] = newDefault;
- }
- icons.forEach((key) => {
- const item = data.icons[key];
- const value = prop in item ? item[prop] : hasMinifiedDefault ? oldDefault : defaultValue;
- if (value === newDefault || newDefault === null && value === defaultValue) {
- delete item[prop];
- return;
- }
- if (canMinify && !(prop in item)) {
- item[prop] = value;
- }
- });
- });
- }
- exports.minifyIconSet = minifyIconSet;
|