@iconify/tools 2.2.6 → 3.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/lib/colors/detect.cjs +4 -4
- package/lib/colors/detect.d.ts +1 -1
- package/lib/colors/detect.mjs +5 -5
- package/lib/colors/parse.cjs +275 -129
- package/lib/colors/parse.d.ts +14 -5
- package/lib/colors/parse.mjs +278 -133
- package/lib/colors/validate.cjs +11 -2
- package/lib/colors/validate.d.ts +10 -2
- package/lib/colors/validate.mjs +12 -4
- package/lib/css/parser/export.cjs +1 -10
- package/lib/css/parser/export.mjs +1 -10
- package/lib/css/parser/text.cjs +6 -25
- package/lib/css/parser/text.mjs +6 -25
- package/lib/css/parser/types.d.ts +2 -3
- package/lib/download/api/download.cjs +4 -4
- package/lib/download/api/download.mjs +4 -4
- package/lib/download/api/index.cjs +0 -1
- package/lib/download/api/index.mjs +0 -1
- package/lib/download/git/index.cjs +1 -1
- package/lib/download/git/index.mjs +1 -1
- package/lib/download/git/reset.cjs +1 -1
- package/lib/download/git/reset.mjs +1 -1
- package/lib/download/github/hash.cjs +0 -1
- package/lib/download/github/hash.mjs +0 -1
- package/lib/download/github/index.cjs +1 -1
- package/lib/download/github/index.mjs +1 -1
- package/lib/download/gitlab/hash.cjs +0 -1
- package/lib/download/gitlab/hash.mjs +0 -1
- package/lib/download/gitlab/index.cjs +1 -1
- package/lib/download/gitlab/index.mjs +1 -1
- package/lib/download/helpers/unzip.cjs +5 -1
- package/lib/download/index.cjs +1 -1
- package/lib/download/index.mjs +1 -1
- package/lib/download/npm/index.cjs +1 -1
- package/lib/download/npm/index.mjs +1 -1
- package/lib/icon-set/index.cjs +18 -0
- package/lib/icon-set/index.d.ts +7 -1
- package/lib/icon-set/index.mjs +18 -0
- package/lib/icon-set/tags.cjs +2 -2
- package/lib/icon-set/tags.d.ts +1 -1
- package/lib/icon-set/tags.mjs +2 -2
- package/lib/icon-set/types.d.ts +5 -4
- package/lib/import/directory.cjs +101 -28
- package/lib/import/directory.d.ts +12 -5
- package/lib/import/directory.mjs +103 -31
- package/lib/import/figma/index.cjs +1 -2
- package/lib/import/figma/index.mjs +1 -2
- package/lib/import/figma/query.cjs +0 -1
- package/lib/import/figma/query.mjs +0 -1
- package/lib/index.cjs +7 -1
- package/lib/index.d.ts +6 -6
- package/lib/index.mjs +7 -7
- package/lib/misc/scan.cjs +61 -8
- package/lib/misc/scan.d.ts +12 -6
- package/lib/misc/scan.mjs +62 -10
- package/lib/svg/analyse.cjs +2 -2
- package/lib/svg/analyse.d.ts +1 -1
- package/lib/svg/analyse.mjs +4 -4
- package/lib/svg/cleanup/attribs.cjs +2 -2
- package/lib/svg/cleanup/attribs.d.ts +1 -1
- package/lib/svg/cleanup/attribs.mjs +3 -3
- package/lib/svg/cleanup/bad-tags.cjs +2 -2
- package/lib/svg/cleanup/bad-tags.d.ts +1 -1
- package/lib/svg/cleanup/bad-tags.mjs +3 -3
- package/lib/svg/cleanup/inline-style.cjs +2 -2
- package/lib/svg/cleanup/inline-style.d.ts +1 -1
- package/lib/svg/cleanup/inline-style.mjs +3 -3
- package/lib/svg/cleanup/root-style.cjs +19 -8
- package/lib/svg/cleanup/root-style.d.ts +5 -5
- package/lib/svg/cleanup/root-style.mjs +20 -9
- package/lib/svg/cleanup/svgo-style.cjs +5 -2
- package/lib/svg/cleanup/svgo-style.d.ts +1 -1
- package/lib/svg/cleanup/svgo-style.mjs +6 -3
- package/lib/svg/cleanup.cjs +6 -6
- package/lib/svg/cleanup.d.ts +1 -1
- package/lib/svg/cleanup.mjs +6 -6
- package/lib/svg/index.cjs +5 -1
- package/lib/svg/parse-style.cjs +266 -103
- package/lib/svg/parse-style.d.ts +21 -3
- package/lib/svg/parse-style.mjs +267 -105
- package/lib/svg/parse.cjs +56 -18
- package/lib/svg/parse.d.ts +8 -2
- package/lib/svg/parse.mjs +56 -19
- package/package.json +15 -17
package/lib/css/parser/text.cjs
CHANGED
|
@@ -81,7 +81,6 @@ function textTokensToRule(tokens) {
|
|
|
81
81
|
});
|
|
82
82
|
return result.value.length ? result : null;
|
|
83
83
|
}
|
|
84
|
-
const nestableAtRules = ["media", "supports"];
|
|
85
84
|
function textTokensToSelector(tokens) {
|
|
86
85
|
const selectors = getSelectors(tokens);
|
|
87
86
|
const code = mergeTextTokens(tokens);
|
|
@@ -89,33 +88,15 @@ function textTokensToSelector(tokens) {
|
|
|
89
88
|
if (!selectors.length) {
|
|
90
89
|
return null;
|
|
91
90
|
}
|
|
92
|
-
if (
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
const
|
|
96
|
-
if (nestableAtRules.indexOf(atRule) !== -1) {
|
|
97
|
-
atValues.forEach((item, index2) => {
|
|
98
|
-
if (typeof item !== "string" || item.charAt(0) !== "(" || item.charAt(item.length - 1) !== ")") {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
const list = item.slice(1, -1).split(/\)\s?and\s?\(/i).map((item2) => item2.trim());
|
|
102
|
-
let match = true;
|
|
103
|
-
list.forEach((item2) => {
|
|
104
|
-
if (item2.indexOf("(") !== -1 || item2.indexOf(")") !== -1) {
|
|
105
|
-
match = false;
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
if (match) {
|
|
109
|
-
atValues[index2] = list;
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
}
|
|
91
|
+
if (code.charAt(0) === "@") {
|
|
92
|
+
const parts = code.split(/\s+/);
|
|
93
|
+
const rule = parts.shift().slice(1);
|
|
94
|
+
const value = parts.join(" ").trim();
|
|
113
95
|
return {
|
|
114
96
|
type: "at-rule",
|
|
115
|
-
code,
|
|
116
97
|
index,
|
|
117
|
-
|
|
118
|
-
|
|
98
|
+
rule,
|
|
99
|
+
value
|
|
119
100
|
};
|
|
120
101
|
} else {
|
|
121
102
|
return {
|
package/lib/css/parser/text.mjs
CHANGED
|
@@ -79,7 +79,6 @@ function textTokensToRule(tokens) {
|
|
|
79
79
|
});
|
|
80
80
|
return result.value.length ? result : null;
|
|
81
81
|
}
|
|
82
|
-
const nestableAtRules = ["media", "supports"];
|
|
83
82
|
function textTokensToSelector(tokens) {
|
|
84
83
|
const selectors = getSelectors(tokens);
|
|
85
84
|
const code = mergeTextTokens(tokens);
|
|
@@ -87,33 +86,15 @@ function textTokensToSelector(tokens) {
|
|
|
87
86
|
if (!selectors.length) {
|
|
88
87
|
return null;
|
|
89
88
|
}
|
|
90
|
-
if (
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
const
|
|
94
|
-
if (nestableAtRules.indexOf(atRule) !== -1) {
|
|
95
|
-
atValues.forEach((item, index2) => {
|
|
96
|
-
if (typeof item !== "string" || item.charAt(0) !== "(" || item.charAt(item.length - 1) !== ")") {
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
const list = item.slice(1, -1).split(/\)\s?and\s?\(/i).map((item2) => item2.trim());
|
|
100
|
-
let match = true;
|
|
101
|
-
list.forEach((item2) => {
|
|
102
|
-
if (item2.indexOf("(") !== -1 || item2.indexOf(")") !== -1) {
|
|
103
|
-
match = false;
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
if (match) {
|
|
107
|
-
atValues[index2] = list;
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}
|
|
89
|
+
if (code.charAt(0) === "@") {
|
|
90
|
+
const parts = code.split(/\s+/);
|
|
91
|
+
const rule = parts.shift().slice(1);
|
|
92
|
+
const value = parts.join(" ").trim();
|
|
111
93
|
return {
|
|
112
94
|
type: "at-rule",
|
|
113
|
-
code,
|
|
114
95
|
index,
|
|
115
|
-
|
|
116
|
-
|
|
96
|
+
rule,
|
|
97
|
+
value
|
|
117
98
|
};
|
|
118
99
|
} else {
|
|
119
100
|
return {
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const fetch = require('node-fetch');
|
|
4
3
|
const util = require('util');
|
|
5
4
|
const stream = require('stream');
|
|
6
|
-
const
|
|
5
|
+
const promises = require('fs/promises');
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
util.promisify(stream.pipeline);
|
|
9
8
|
async function downloadFile(query, target) {
|
|
10
9
|
const params = query.params ? query.params.toString() : "";
|
|
11
10
|
const url = query.uri + (params ? "?" + params : "");
|
|
@@ -16,7 +15,8 @@ async function downloadFile(query, target) {
|
|
|
16
15
|
if (!response.ok || !response.body) {
|
|
17
16
|
throw new Error(`Error downloading ${url}: ${response.status}`);
|
|
18
17
|
}
|
|
19
|
-
await
|
|
18
|
+
const data = await response.arrayBuffer();
|
|
19
|
+
await promises.writeFile(target, Buffer.from(data));
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
exports.downloadFile = downloadFile;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import fetch from 'node-fetch';
|
|
2
1
|
import { promisify } from 'util';
|
|
3
2
|
import { pipeline } from 'stream';
|
|
4
|
-
import {
|
|
3
|
+
import { writeFile } from 'fs/promises';
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
promisify(pipeline);
|
|
7
6
|
async function downloadFile(query, target) {
|
|
8
7
|
const params = query.params ? query.params.toString() : "";
|
|
9
8
|
const url = query.uri + (params ? "?" + params : "");
|
|
@@ -14,7 +13,8 @@ async function downloadFile(query, target) {
|
|
|
14
13
|
if (!response.ok || !response.body) {
|
|
15
14
|
throw new Error(`Error downloading ${url}: ${response.status}`);
|
|
16
15
|
}
|
|
17
|
-
await
|
|
16
|
+
const data = await response.arrayBuffer();
|
|
17
|
+
await writeFile(target, Buffer.from(data));
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export { downloadFile };
|
|
@@ -23,11 +23,11 @@ require('@iconify/utils/lib/icon-set/convert-info');
|
|
|
23
23
|
require('../../icon-set/props.cjs');
|
|
24
24
|
require('@iconify/utils/lib/misc/objects');
|
|
25
25
|
require('@iconify/utils/lib/colors');
|
|
26
|
-
require('node-fetch');
|
|
27
26
|
require('crypto');
|
|
28
27
|
require('../api/download.cjs');
|
|
29
28
|
require('util');
|
|
30
29
|
require('stream');
|
|
30
|
+
require('fs/promises');
|
|
31
31
|
require('extract-zip');
|
|
32
32
|
require('tar');
|
|
33
33
|
|
|
@@ -21,11 +21,11 @@ import '@iconify/utils/lib/icon-set/convert-info';
|
|
|
21
21
|
import '../../icon-set/props.mjs';
|
|
22
22
|
import '@iconify/utils/lib/misc/objects';
|
|
23
23
|
import '@iconify/utils/lib/colors';
|
|
24
|
-
import 'node-fetch';
|
|
25
24
|
import 'crypto';
|
|
26
25
|
import '../api/download.mjs';
|
|
27
26
|
import 'util';
|
|
28
27
|
import 'stream';
|
|
28
|
+
import 'fs/promises';
|
|
29
29
|
import 'extract-zip';
|
|
30
30
|
import 'tar';
|
|
31
31
|
|
|
@@ -13,7 +13,6 @@ require('@iconify/utils/lib/icon-set/minify');
|
|
|
13
13
|
require('@iconify/utils/lib/icon-set/convert-info');
|
|
14
14
|
require('../../icon-set/props.cjs');
|
|
15
15
|
require('@iconify/utils/lib/colors');
|
|
16
|
-
require('node-fetch');
|
|
17
16
|
require('fs');
|
|
18
17
|
require('crypto');
|
|
19
18
|
require('pathe');
|
|
@@ -26,6 +25,7 @@ require('@iconify/utils/lib/misc/objects');
|
|
|
26
25
|
require('child_process');
|
|
27
26
|
require('util');
|
|
28
27
|
require('stream');
|
|
28
|
+
require('fs/promises');
|
|
29
29
|
|
|
30
30
|
async function resetGitRepoContents(target) {
|
|
31
31
|
await misc_exec.execAsync("git add -A", {
|
|
@@ -11,7 +11,6 @@ import '@iconify/utils/lib/icon-set/minify';
|
|
|
11
11
|
import '@iconify/utils/lib/icon-set/convert-info';
|
|
12
12
|
import '../../icon-set/props.mjs';
|
|
13
13
|
import '@iconify/utils/lib/colors';
|
|
14
|
-
import 'node-fetch';
|
|
15
14
|
import 'fs';
|
|
16
15
|
import 'crypto';
|
|
17
16
|
import 'pathe';
|
|
@@ -24,6 +23,7 @@ import '@iconify/utils/lib/misc/objects';
|
|
|
24
23
|
import 'child_process';
|
|
25
24
|
import 'util';
|
|
26
25
|
import 'stream';
|
|
26
|
+
import 'fs/promises';
|
|
27
27
|
|
|
28
28
|
async function resetGitRepoContents(target) {
|
|
29
29
|
await execAsync("git add -A", {
|
|
@@ -7,12 +7,12 @@ const download_api_download = require('../api/download.cjs');
|
|
|
7
7
|
const download_helpers_unzip = require('../helpers/unzip.cjs');
|
|
8
8
|
require('pathe');
|
|
9
9
|
require('../api/index.cjs');
|
|
10
|
-
require('node-fetch');
|
|
11
10
|
require('../api/cache.cjs');
|
|
12
11
|
require('crypto');
|
|
13
12
|
require('../../misc/scan.cjs');
|
|
14
13
|
require('util');
|
|
15
14
|
require('stream');
|
|
15
|
+
require('fs/promises');
|
|
16
16
|
require('extract-zip');
|
|
17
17
|
|
|
18
18
|
async function findMatchingDirs(rootDir, hash) {
|
|
@@ -5,12 +5,12 @@ import { downloadFile } from '../api/download.mjs';
|
|
|
5
5
|
import { unzip } from '../helpers/unzip.mjs';
|
|
6
6
|
import 'pathe';
|
|
7
7
|
import '../api/index.mjs';
|
|
8
|
-
import 'node-fetch';
|
|
9
8
|
import '../api/cache.mjs';
|
|
10
9
|
import 'crypto';
|
|
11
10
|
import '../../misc/scan.mjs';
|
|
12
11
|
import 'util';
|
|
13
12
|
import 'stream';
|
|
13
|
+
import 'fs/promises';
|
|
14
14
|
import 'extract-zip';
|
|
15
15
|
|
|
16
16
|
async function findMatchingDirs(rootDir, hash) {
|
|
@@ -8,12 +8,12 @@ const download_api_download = require('../api/download.cjs');
|
|
|
8
8
|
const download_helpers_unzip = require('../helpers/unzip.cjs');
|
|
9
9
|
require('pathe');
|
|
10
10
|
require('../api/index.cjs');
|
|
11
|
-
require('node-fetch');
|
|
12
11
|
require('../api/cache.cjs');
|
|
13
12
|
require('crypto');
|
|
14
13
|
require('../../misc/scan.cjs');
|
|
15
14
|
require('util');
|
|
16
15
|
require('stream');
|
|
16
|
+
require('fs/promises');
|
|
17
17
|
require('extract-zip');
|
|
18
18
|
|
|
19
19
|
async function findMatchingDirs(rootDir, hash) {
|
|
@@ -6,12 +6,12 @@ import { downloadFile } from '../api/download.mjs';
|
|
|
6
6
|
import { unzip } from '../helpers/unzip.mjs';
|
|
7
7
|
import 'pathe';
|
|
8
8
|
import '../api/index.mjs';
|
|
9
|
-
import 'node-fetch';
|
|
10
9
|
import '../api/cache.mjs';
|
|
11
10
|
import 'crypto';
|
|
12
11
|
import '../../misc/scan.mjs';
|
|
13
12
|
import 'util';
|
|
14
13
|
import 'stream';
|
|
14
|
+
import 'fs/promises';
|
|
15
15
|
import 'extract-zip';
|
|
16
16
|
|
|
17
17
|
async function findMatchingDirs(rootDir, hash) {
|
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
const extract = require('extract-zip');
|
|
4
4
|
const fs = require('fs');
|
|
5
5
|
|
|
6
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
7
|
+
|
|
8
|
+
const extract__default = /*#__PURE__*/_interopDefaultCompat(extract);
|
|
9
|
+
|
|
6
10
|
async function unzip(source, path) {
|
|
7
11
|
const dir = await fs.promises.realpath(path);
|
|
8
|
-
await
|
|
12
|
+
await extract__default(source, {
|
|
9
13
|
dir
|
|
10
14
|
});
|
|
11
15
|
}
|
package/lib/download/index.cjs
CHANGED
|
@@ -9,13 +9,13 @@ require('../export/helpers/prepare.cjs');
|
|
|
9
9
|
require('pathe');
|
|
10
10
|
require('./github/hash.cjs');
|
|
11
11
|
require('./api/index.cjs');
|
|
12
|
-
require('node-fetch');
|
|
13
12
|
require('./api/cache.cjs');
|
|
14
13
|
require('crypto');
|
|
15
14
|
require('../misc/scan.cjs');
|
|
16
15
|
require('./api/download.cjs');
|
|
17
16
|
require('util');
|
|
18
17
|
require('stream');
|
|
18
|
+
require('fs/promises');
|
|
19
19
|
require('./helpers/unzip.cjs');
|
|
20
20
|
require('extract-zip');
|
|
21
21
|
require('../misc/exec.cjs');
|
package/lib/download/index.mjs
CHANGED
|
@@ -7,13 +7,13 @@ import '../export/helpers/prepare.mjs';
|
|
|
7
7
|
import 'pathe';
|
|
8
8
|
import './github/hash.mjs';
|
|
9
9
|
import './api/index.mjs';
|
|
10
|
-
import 'node-fetch';
|
|
11
10
|
import './api/cache.mjs';
|
|
12
11
|
import 'crypto';
|
|
13
12
|
import '../misc/scan.mjs';
|
|
14
13
|
import './api/download.mjs';
|
|
15
14
|
import 'util';
|
|
16
15
|
import 'stream';
|
|
16
|
+
import 'fs/promises';
|
|
17
17
|
import './helpers/unzip.mjs';
|
|
18
18
|
import 'extract-zip';
|
|
19
19
|
import '../misc/exec.mjs';
|
|
@@ -6,9 +6,9 @@ const download_api_download = require('../api/download.cjs');
|
|
|
6
6
|
const download_helpers_untar = require('../helpers/untar.cjs');
|
|
7
7
|
const download_npm_version = require('./version.cjs');
|
|
8
8
|
require('pathe');
|
|
9
|
-
require('node-fetch');
|
|
10
9
|
require('util');
|
|
11
10
|
require('stream');
|
|
11
|
+
require('fs/promises');
|
|
12
12
|
require('tar');
|
|
13
13
|
require('../../misc/exec.cjs');
|
|
14
14
|
require('child_process');
|
|
@@ -4,9 +4,9 @@ import { downloadFile } from '../api/download.mjs';
|
|
|
4
4
|
import { untar } from '../helpers/untar.mjs';
|
|
5
5
|
import { getNPMVersion, getPackageVersion } from './version.mjs';
|
|
6
6
|
import 'pathe';
|
|
7
|
-
import 'node-fetch';
|
|
8
7
|
import 'util';
|
|
9
8
|
import 'stream';
|
|
9
|
+
import 'fs/promises';
|
|
10
10
|
import 'tar';
|
|
11
11
|
import '../../misc/exec.mjs';
|
|
12
12
|
import 'child_process';
|
package/lib/icon-set/index.cjs
CHANGED
|
@@ -172,6 +172,24 @@ class IconSet {
|
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Synchronous version of forEach function to loop through all entries.
|
|
177
|
+
*
|
|
178
|
+
* Callback should return false to stop loop.
|
|
179
|
+
*/
|
|
180
|
+
forEachSync(callback, types = ["icon", "variation", "alias"]) {
|
|
181
|
+
const names = this.list(types);
|
|
182
|
+
for (let i = 0; i < names.length; i++) {
|
|
183
|
+
const name = names[i];
|
|
184
|
+
const item = this.entries[name];
|
|
185
|
+
if (item) {
|
|
186
|
+
const result = callback(name, item.type);
|
|
187
|
+
if (result === false) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
175
193
|
/**
|
|
176
194
|
* Get parent icons tree
|
|
177
195
|
*
|
package/lib/icon-set/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IconifyInfo, IconifyJSON } from '@iconify/types';
|
|
2
2
|
import { IconifyIconCustomisations } from '@iconify/utils/lib/customisations/defaults';
|
|
3
|
-
import { IconSetIconEntry, IconCategory, IconSetIconType, IconSetAsyncForEachCallback, ResolvedIconifyIcon, CommonIconProps, CheckThemeResult } from './types.js';
|
|
3
|
+
import { IconSetIconEntry, IconCategory, IconSetIconType, IconSetAsyncForEachCallback, IconSetSyncForEachCallback, ResolvedIconifyIcon, CommonIconProps, CheckThemeResult } from './types.js';
|
|
4
4
|
import { SVG } from '../svg/index.js';
|
|
5
5
|
import { ParentIconsTree } from '@iconify/utils/lib/icon-set/tree';
|
|
6
6
|
|
|
@@ -48,6 +48,12 @@ declare class IconSet {
|
|
|
48
48
|
* Callback should return false to stop loop.
|
|
49
49
|
*/
|
|
50
50
|
forEach(callback: IconSetAsyncForEachCallback, types?: IconSetIconType[]): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Synchronous version of forEach function to loop through all entries.
|
|
53
|
+
*
|
|
54
|
+
* Callback should return false to stop loop.
|
|
55
|
+
*/
|
|
56
|
+
forEachSync(callback: IconSetSyncForEachCallback, types?: IconSetIconType[]): void;
|
|
51
57
|
/**
|
|
52
58
|
* Get parent icons tree
|
|
53
59
|
*
|
package/lib/icon-set/index.mjs
CHANGED
|
@@ -170,6 +170,24 @@ class IconSet {
|
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Synchronous version of forEach function to loop through all entries.
|
|
175
|
+
*
|
|
176
|
+
* Callback should return false to stop loop.
|
|
177
|
+
*/
|
|
178
|
+
forEachSync(callback, types = ["icon", "variation", "alias"]) {
|
|
179
|
+
const names = this.list(types);
|
|
180
|
+
for (let i = 0; i < names.length; i++) {
|
|
181
|
+
const name = names[i];
|
|
182
|
+
const item = this.entries[name];
|
|
183
|
+
if (item) {
|
|
184
|
+
const result = callback(name, item.type);
|
|
185
|
+
if (result === false) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
173
191
|
/**
|
|
174
192
|
* Get parent icons tree
|
|
175
193
|
*
|
package/lib/icon-set/tags.cjs
CHANGED
|
@@ -28,7 +28,7 @@ const sizeTags = {
|
|
|
28
28
|
gridPrefix: "Grid: ",
|
|
29
29
|
heightPrefix: "Height: "
|
|
30
30
|
};
|
|
31
|
-
|
|
31
|
+
function addTagsToIconSet(iconSet, customTags) {
|
|
32
32
|
const info = iconSet.info;
|
|
33
33
|
const tags = [];
|
|
34
34
|
const iconNames = Object.keys(iconSet.entries).filter((key) => {
|
|
@@ -44,7 +44,7 @@ async function addTagsToIconSet(iconSet, customTags) {
|
|
|
44
44
|
if (iconNames.length) {
|
|
45
45
|
let hasPalette = info?.palette;
|
|
46
46
|
if (hasPalette === void 0) {
|
|
47
|
-
hasPalette =
|
|
47
|
+
hasPalette = colors_detect.detectIconSetPalette(iconSet);
|
|
48
48
|
}
|
|
49
49
|
if (hasPalette === true) {
|
|
50
50
|
tags.push(paletteTags.palette);
|
package/lib/icon-set/tags.d.ts
CHANGED
|
@@ -17,6 +17,6 @@ declare const sizeTags: {
|
|
|
17
17
|
/**
|
|
18
18
|
* Add tags to icon set
|
|
19
19
|
*/
|
|
20
|
-
declare function addTagsToIconSet(iconSet: IconSet, customTags?: string[]):
|
|
20
|
+
declare function addTagsToIconSet(iconSet: IconSet, customTags?: string[]): string[];
|
|
21
21
|
|
|
22
22
|
export { addTagsToIconSet, paletteTags, sizeTags };
|
package/lib/icon-set/tags.mjs
CHANGED
|
@@ -26,7 +26,7 @@ const sizeTags = {
|
|
|
26
26
|
gridPrefix: "Grid: ",
|
|
27
27
|
heightPrefix: "Height: "
|
|
28
28
|
};
|
|
29
|
-
|
|
29
|
+
function addTagsToIconSet(iconSet, customTags) {
|
|
30
30
|
const info = iconSet.info;
|
|
31
31
|
const tags = [];
|
|
32
32
|
const iconNames = Object.keys(iconSet.entries).filter((key) => {
|
|
@@ -42,7 +42,7 @@ async function addTagsToIconSet(iconSet, customTags) {
|
|
|
42
42
|
if (iconNames.length) {
|
|
43
43
|
let hasPalette = info?.palette;
|
|
44
44
|
if (hasPalette === void 0) {
|
|
45
|
-
hasPalette =
|
|
45
|
+
hasPalette = detectIconSetPalette(iconSet);
|
|
46
46
|
}
|
|
47
47
|
if (hasPalette === true) {
|
|
48
48
|
tags.push(paletteTags.palette);
|
package/lib/icon-set/types.d.ts
CHANGED
|
@@ -64,11 +64,12 @@ interface CheckThemeResult {
|
|
|
64
64
|
invalid: string[];
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
|
-
* Callback for
|
|
67
|
+
* Callback for forEach functions
|
|
68
68
|
*
|
|
69
69
|
* Return false to stop loop
|
|
70
70
|
*/
|
|
71
|
-
type
|
|
72
|
-
type IconSetAsyncForEachCallback = (name: string, type: IconSetIconEntry['type']) => Promise<
|
|
71
|
+
type IconSetForEachCallbackResult = void | false;
|
|
72
|
+
type IconSetAsyncForEachCallback = (name: string, type: IconSetIconEntry['type']) => Promise<IconSetForEachCallbackResult> | IconSetForEachCallbackResult;
|
|
73
|
+
type IconSetSyncForEachCallback = (name: string, type: IconSetIconEntry['type']) => IconSetForEachCallbackResult;
|
|
73
74
|
|
|
74
|
-
export { CheckThemeResult, CommonIconProps, ExtraIconProps, IconCategory, IconParentData, IconSetAsyncForEachCallback, IconSetIcon, IconSetIconAlias, IconSetIconEntry, IconSetIconType, IconSetIconVariation, IconWithCategories, IconWithChars, IconWithPropsData, ResolvedIconifyIcon };
|
|
75
|
+
export { CheckThemeResult, CommonIconProps, ExtraIconProps, IconCategory, IconParentData, IconSetAsyncForEachCallback, IconSetIcon, IconSetIconAlias, IconSetIconEntry, IconSetIconType, IconSetIconVariation, IconSetSyncForEachCallback, IconWithCategories, IconWithChars, IconWithPropsData, ResolvedIconifyIcon };
|