@fortawesome/vue-fontawesome 3.1.0 → 3.1.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/CHANGELOG.md +26 -0
- package/index.d.ts +2 -2
- package/index.es.js +5 -73
- package/index.js +5 -73
- package/package.json +4 -14
- package/src/components/FontAwesomeIcon.js +3 -6
- package/src/components/FontAwesomeLayers.js +1 -5
- package/src/utils.js +0 -76
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,32 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [3.1.2](https://github.com/FortAwesome/vue-fontawesome/releases/tag/3.1.2) - 2025-09-09
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Replaced Jest with Vitest as the test runner for unit tests. This will help improve test performance and better aligns
|
|
12
|
+
with the Vue 3 + Vite ecosystem.
|
|
13
|
+
|
|
14
|
+
- Updated `FontAwesomeIconProps`:
|
|
15
|
+
- `flip` now accepts the `boolean` type in addition to `'horizontal' | 'vertical' | 'both'`
|
|
16
|
+
- `maskId` is now correctly typed as `string`
|
|
17
|
+
|
|
18
|
+
- Updated `DEVELOPMENT.md` with revised release instructions
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## [3.1.1](https://github.com/FortAwesome/vue-fontawesome/releases/tag/3.1.1) - 2025-07-24
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- Removed version checks related to `props.fixedWidth`, `iconProps.title`, and `iconProps.title`.
|
|
27
|
+
|
|
28
|
+
- The use of `require` to retrieve the version from `@fortawesome/fontawesome-svg-core` for version checks has been
|
|
29
|
+
removed to help ensure compatibility with ESM builds.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
7
33
|
## [3.1.0](https://github.com/FortAwesome/vue-fontawesome/releases/tag/3.1.0) - 2025-07-22
|
|
8
34
|
|
|
9
35
|
### Changed
|
package/index.d.ts
CHANGED
|
@@ -4,10 +4,10 @@ import { DefineComponent } from 'vue'
|
|
|
4
4
|
interface FontAwesomeIconProps {
|
|
5
5
|
border?: boolean
|
|
6
6
|
fixedWidth?: boolean
|
|
7
|
-
flip?: 'horizontal' | 'vertical' | 'both'
|
|
7
|
+
flip?: 'horizontal' | 'vertical' | 'both' | boolean
|
|
8
8
|
icon: object | Array<string> | string | IconDefinition
|
|
9
9
|
mask?: object | Array<string> | string
|
|
10
|
-
maskId?:
|
|
10
|
+
maskId?: string
|
|
11
11
|
listItem?: boolean
|
|
12
12
|
pull?: 'right' | 'left'
|
|
13
13
|
pulse?: boolean
|
package/index.es.js
CHANGED
|
@@ -6,9 +6,6 @@ function _arrayLikeToArray(r, a) {
|
|
|
6
6
|
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
7
7
|
return n;
|
|
8
8
|
}
|
|
9
|
-
function _arrayWithHoles(r) {
|
|
10
|
-
if (Array.isArray(r)) return r;
|
|
11
|
-
}
|
|
12
9
|
function _arrayWithoutHoles(r) {
|
|
13
10
|
if (Array.isArray(r)) return _arrayLikeToArray(r);
|
|
14
11
|
}
|
|
@@ -23,36 +20,6 @@ function _defineProperty(e, r, t) {
|
|
|
23
20
|
function _iterableToArray(r) {
|
|
24
21
|
if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
|
|
25
22
|
}
|
|
26
|
-
function _iterableToArrayLimit(r, l) {
|
|
27
|
-
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
28
|
-
if (null != t) {
|
|
29
|
-
var e,
|
|
30
|
-
n,
|
|
31
|
-
i,
|
|
32
|
-
u,
|
|
33
|
-
a = [],
|
|
34
|
-
f = !0,
|
|
35
|
-
o = !1;
|
|
36
|
-
try {
|
|
37
|
-
if (i = (t = t.call(r)).next, 0 === l) {
|
|
38
|
-
if (Object(t) !== t) return;
|
|
39
|
-
f = !1;
|
|
40
|
-
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
|
41
|
-
} catch (r) {
|
|
42
|
-
o = !0, n = r;
|
|
43
|
-
} finally {
|
|
44
|
-
try {
|
|
45
|
-
if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
|
|
46
|
-
} finally {
|
|
47
|
-
if (o) throw n;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return a;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
function _nonIterableRest() {
|
|
54
|
-
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
55
|
-
}
|
|
56
23
|
function _nonIterableSpread() {
|
|
57
24
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
58
25
|
}
|
|
@@ -97,9 +64,6 @@ function _objectWithoutPropertiesLoose(r, e) {
|
|
|
97
64
|
}
|
|
98
65
|
return t;
|
|
99
66
|
}
|
|
100
|
-
function _slicedToArray(r, e) {
|
|
101
|
-
return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
|
|
102
|
-
}
|
|
103
67
|
function _toConsumableArray(r) {
|
|
104
68
|
return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
|
|
105
69
|
}
|
|
@@ -134,9 +98,6 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
134
98
|
}
|
|
135
99
|
}
|
|
136
100
|
|
|
137
|
-
var ICON_PACKS_STARTING_VERSION = '7.0.0';
|
|
138
|
-
var svgCorePackageJson = require('@fortawesome/fontawesome-svg-core/package.json');
|
|
139
|
-
var SVG_CORE_VERSION = svgCorePackageJson.version;
|
|
140
101
|
function objectWithKey(key, value) {
|
|
141
102
|
return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};
|
|
142
103
|
}
|
|
@@ -161,34 +122,6 @@ function classList(props) {
|
|
|
161
122
|
});
|
|
162
123
|
}
|
|
163
124
|
|
|
164
|
-
// check if verion1 is less than version2
|
|
165
|
-
function versionCheckLt(version1, version2) {
|
|
166
|
-
var _version1$split = version1.split('-'),
|
|
167
|
-
_version1$split2 = _slicedToArray(_version1$split, 2),
|
|
168
|
-
v1Base = _version1$split2[0],
|
|
169
|
-
v1PreRelease = _version1$split2[1];
|
|
170
|
-
var _version2$split = version2.split('-'),
|
|
171
|
-
_version2$split2 = _slicedToArray(_version2$split, 2),
|
|
172
|
-
v2Base = _version2$split2[0],
|
|
173
|
-
v2PreRelease = _version2$split2[1];
|
|
174
|
-
var v1Parts = v1Base.split('.').map(Number);
|
|
175
|
-
var v2Parts = v2Base.split('.').map(Number);
|
|
176
|
-
|
|
177
|
-
// Compare version numbers first
|
|
178
|
-
for (var i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
|
|
179
|
-
var v1Part = v1Parts[i] || 0;
|
|
180
|
-
var v2Part = v2Parts[i] || 0;
|
|
181
|
-
if (v1Part < v2Part) return true;
|
|
182
|
-
if (v1Part > v2Part) return false;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// If version numbers are equal, compare pre-release identifiers
|
|
186
|
-
// A version with a pre-release identifier is less than one without
|
|
187
|
-
if (v1PreRelease && !v2PreRelease) return true;
|
|
188
|
-
if (!v1PreRelease && v2PreRelease) return false;
|
|
189
|
-
return false;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
125
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
193
126
|
|
|
194
127
|
var humps$1 = {exports: {}};
|
|
@@ -598,11 +531,10 @@ var FontAwesomeIcon = defineComponent({
|
|
|
598
531
|
symbol: props.symbol,
|
|
599
532
|
maskId: props.maskId
|
|
600
533
|
});
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
}
|
|
534
|
+
|
|
535
|
+
// the title attribute will only apply to versions prior to version 7.0.0
|
|
536
|
+
iconProps.title = props.title;
|
|
537
|
+
iconProps.titleId = props.titleId;
|
|
606
538
|
return icon(icon$1.value, iconProps);
|
|
607
539
|
});
|
|
608
540
|
watch(renderedIcon, function (value) {
|
|
@@ -633,7 +565,7 @@ var FontAwesomeLayers = defineComponent({
|
|
|
633
565
|
var slots = _ref.slots;
|
|
634
566
|
var familyPrefix = config.familyPrefix;
|
|
635
567
|
var className = computed(function () {
|
|
636
|
-
return ["".concat(familyPrefix, "-layers")].concat(_toConsumableArray(
|
|
568
|
+
return ["".concat(familyPrefix, "-layers")].concat(_toConsumableArray(props.fixedWidth ? ["".concat(familyPrefix, "-fw")] : []));
|
|
637
569
|
});
|
|
638
570
|
return function () {
|
|
639
571
|
return h('div', {
|
package/index.js
CHANGED
|
@@ -9,9 +9,6 @@
|
|
|
9
9
|
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
10
10
|
return n;
|
|
11
11
|
}
|
|
12
|
-
function _arrayWithHoles(r) {
|
|
13
|
-
if (Array.isArray(r)) return r;
|
|
14
|
-
}
|
|
15
12
|
function _arrayWithoutHoles(r) {
|
|
16
13
|
if (Array.isArray(r)) return _arrayLikeToArray(r);
|
|
17
14
|
}
|
|
@@ -26,36 +23,6 @@
|
|
|
26
23
|
function _iterableToArray(r) {
|
|
27
24
|
if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
|
|
28
25
|
}
|
|
29
|
-
function _iterableToArrayLimit(r, l) {
|
|
30
|
-
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
31
|
-
if (null != t) {
|
|
32
|
-
var e,
|
|
33
|
-
n,
|
|
34
|
-
i,
|
|
35
|
-
u,
|
|
36
|
-
a = [],
|
|
37
|
-
f = !0,
|
|
38
|
-
o = !1;
|
|
39
|
-
try {
|
|
40
|
-
if (i = (t = t.call(r)).next, 0 === l) {
|
|
41
|
-
if (Object(t) !== t) return;
|
|
42
|
-
f = !1;
|
|
43
|
-
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
|
44
|
-
} catch (r) {
|
|
45
|
-
o = !0, n = r;
|
|
46
|
-
} finally {
|
|
47
|
-
try {
|
|
48
|
-
if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
|
|
49
|
-
} finally {
|
|
50
|
-
if (o) throw n;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return a;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
function _nonIterableRest() {
|
|
57
|
-
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
58
|
-
}
|
|
59
26
|
function _nonIterableSpread() {
|
|
60
27
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
61
28
|
}
|
|
@@ -100,9 +67,6 @@
|
|
|
100
67
|
}
|
|
101
68
|
return t;
|
|
102
69
|
}
|
|
103
|
-
function _slicedToArray(r, e) {
|
|
104
|
-
return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
|
|
105
|
-
}
|
|
106
70
|
function _toConsumableArray(r) {
|
|
107
71
|
return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
|
|
108
72
|
}
|
|
@@ -137,9 +101,6 @@
|
|
|
137
101
|
}
|
|
138
102
|
}
|
|
139
103
|
|
|
140
|
-
var ICON_PACKS_STARTING_VERSION = '7.0.0';
|
|
141
|
-
var svgCorePackageJson = require('@fortawesome/fontawesome-svg-core/package.json');
|
|
142
|
-
var SVG_CORE_VERSION = svgCorePackageJson.version;
|
|
143
104
|
function objectWithKey(key, value) {
|
|
144
105
|
return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};
|
|
145
106
|
}
|
|
@@ -164,34 +125,6 @@
|
|
|
164
125
|
});
|
|
165
126
|
}
|
|
166
127
|
|
|
167
|
-
// check if verion1 is less than version2
|
|
168
|
-
function versionCheckLt(version1, version2) {
|
|
169
|
-
var _version1$split = version1.split('-'),
|
|
170
|
-
_version1$split2 = _slicedToArray(_version1$split, 2),
|
|
171
|
-
v1Base = _version1$split2[0],
|
|
172
|
-
v1PreRelease = _version1$split2[1];
|
|
173
|
-
var _version2$split = version2.split('-'),
|
|
174
|
-
_version2$split2 = _slicedToArray(_version2$split, 2),
|
|
175
|
-
v2Base = _version2$split2[0],
|
|
176
|
-
v2PreRelease = _version2$split2[1];
|
|
177
|
-
var v1Parts = v1Base.split('.').map(Number);
|
|
178
|
-
var v2Parts = v2Base.split('.').map(Number);
|
|
179
|
-
|
|
180
|
-
// Compare version numbers first
|
|
181
|
-
for (var i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
|
|
182
|
-
var v1Part = v1Parts[i] || 0;
|
|
183
|
-
var v2Part = v2Parts[i] || 0;
|
|
184
|
-
if (v1Part < v2Part) return true;
|
|
185
|
-
if (v1Part > v2Part) return false;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
// If version numbers are equal, compare pre-release identifiers
|
|
189
|
-
// A version with a pre-release identifier is less than one without
|
|
190
|
-
if (v1PreRelease && !v2PreRelease) return true;
|
|
191
|
-
if (!v1PreRelease && v2PreRelease) return false;
|
|
192
|
-
return false;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
128
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
196
129
|
|
|
197
130
|
var humps$1 = {exports: {}};
|
|
@@ -601,11 +534,10 @@
|
|
|
601
534
|
symbol: props.symbol,
|
|
602
535
|
maskId: props.maskId
|
|
603
536
|
});
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
}
|
|
537
|
+
|
|
538
|
+
// the title attribute will only apply to versions prior to version 7.0.0
|
|
539
|
+
iconProps.title = props.title;
|
|
540
|
+
iconProps.titleId = props.titleId;
|
|
609
541
|
return fontawesomeSvgCore.icon(icon.value, iconProps);
|
|
610
542
|
});
|
|
611
543
|
vue.watch(renderedIcon, function (value) {
|
|
@@ -636,7 +568,7 @@
|
|
|
636
568
|
var slots = _ref.slots;
|
|
637
569
|
var familyPrefix = fontawesomeSvgCore.config.familyPrefix;
|
|
638
570
|
var className = vue.computed(function () {
|
|
639
|
-
return ["".concat(familyPrefix, "-layers")].concat(_toConsumableArray(
|
|
571
|
+
return ["".concat(familyPrefix, "-layers")].concat(_toConsumableArray(props.fixedWidth ? ["".concat(familyPrefix, "-fw")] : []));
|
|
640
572
|
});
|
|
641
573
|
return function () {
|
|
642
574
|
return vue.h('div', {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fortawesome/vue-fontawesome",
|
|
3
3
|
"description": "Official Vue component for Font Awesome 7",
|
|
4
|
-
"version": "3.1.
|
|
4
|
+
"version": "3.1.2",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"files": [
|
|
7
7
|
"README.md",
|
|
@@ -14,15 +14,6 @@
|
|
|
14
14
|
"src/components/**.js",
|
|
15
15
|
"src/**.js"
|
|
16
16
|
],
|
|
17
|
-
"jest": {
|
|
18
|
-
"verbose": true,
|
|
19
|
-
"testEnvironmentOptions": {
|
|
20
|
-
"customExportConditions": [
|
|
21
|
-
"node",
|
|
22
|
-
"node-addons"
|
|
23
|
-
]
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
17
|
"module": "index.es.js",
|
|
27
18
|
"jsnext:main": "index.es.js",
|
|
28
19
|
"types": "index.d.ts",
|
|
@@ -55,7 +46,7 @@
|
|
|
55
46
|
"scripts": {
|
|
56
47
|
"build": "rollup -c rollup.config.js",
|
|
57
48
|
"dist": "cross-env NODE_ENV=production npm run build",
|
|
58
|
-
"test": "
|
|
49
|
+
"test": "vitest run",
|
|
59
50
|
"prepack": "npm run dist"
|
|
60
51
|
},
|
|
61
52
|
"lint-staged": {
|
|
@@ -84,15 +75,14 @@
|
|
|
84
75
|
"@rollup/plugin-node-resolve": "^13.3.0",
|
|
85
76
|
"@vue/test-utils": "^2.4.6",
|
|
86
77
|
"babel-core": "^7.0.0-bridge.0",
|
|
87
|
-
"babel-jest": "^28.1.1",
|
|
88
78
|
"concurrently": "^7.2.1",
|
|
89
79
|
"cross-env": "^7.0.3",
|
|
90
80
|
"humps": "^2.0.1",
|
|
91
81
|
"husky": "^8.0.1",
|
|
92
82
|
"install": "^0.13.0",
|
|
93
|
-
"
|
|
94
|
-
"jest-environment-jsdom": "^28.1.1",
|
|
83
|
+
"jsdom": "^22.1.0",
|
|
95
84
|
"lint-staged": "^13.0.0",
|
|
85
|
+
"vitest": "^0.34.4",
|
|
96
86
|
"markdown-toc": "^1.2.0",
|
|
97
87
|
"npm": "^10.2.2",
|
|
98
88
|
"prettier": "^3.0.3",
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { classList, objectWithKey } from '../utils'
|
|
2
2
|
import { computed, defineComponent, watch } from 'vue'
|
|
3
|
-
import { ICON_PACKS_STARTING_VERSION, SVG_CORE_VERSION, versionCheckLt } from '../utils'
|
|
4
3
|
import { icon as faIcon, parse as faParse } from '@fortawesome/fontawesome-svg-core'
|
|
5
4
|
|
|
6
5
|
import convert from '../converter'
|
|
@@ -172,11 +171,9 @@ export default defineComponent({
|
|
|
172
171
|
maskId: props.maskId
|
|
173
172
|
}
|
|
174
173
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
iconProps.titleId = props.titleId
|
|
179
|
-
}
|
|
174
|
+
// the title attribute will only apply to versions prior to version 7.0.0
|
|
175
|
+
iconProps.title = props.title
|
|
176
|
+
iconProps.titleId = props.titleId
|
|
180
177
|
|
|
181
178
|
return faIcon(icon.value, iconProps)
|
|
182
179
|
})
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { computed, defineComponent, h } from 'vue'
|
|
2
2
|
import { config } from '@fortawesome/fontawesome-svg-core'
|
|
3
|
-
import { ICON_PACKS_STARTING_VERSION, SVG_CORE_VERSION, versionCheckLt } from '../utils'
|
|
4
3
|
|
|
5
4
|
export default defineComponent({
|
|
6
5
|
name: 'FontAwesomeLayers',
|
|
@@ -15,10 +14,7 @@ export default defineComponent({
|
|
|
15
14
|
setup(props, { slots }) {
|
|
16
15
|
const { familyPrefix } = config
|
|
17
16
|
|
|
18
|
-
const className = computed(() => [
|
|
19
|
-
`${familyPrefix}-layers`,
|
|
20
|
-
...(versionCheckLt(SVG_CORE_VERSION, ICON_PACKS_STARTING_VERSION) && props.fixedWidth ? [`${familyPrefix}-fw`] : [])
|
|
21
|
-
])
|
|
17
|
+
const className = computed(() => [`${familyPrefix}-layers`, ...(props.fixedWidth ? [`${familyPrefix}-fw`] : [])])
|
|
22
18
|
|
|
23
19
|
return () => h('div', { class: className.value }, slots.default ? slots.default() : [])
|
|
24
20
|
}
|
package/src/utils.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
export const ICON_PACKS_STARTING_VERSION = '7.0.0'
|
|
2
|
-
|
|
3
|
-
const svgCorePackageJson = require('@fortawesome/fontawesome-svg-core/package.json')
|
|
4
|
-
|
|
5
|
-
export const SVG_CORE_VERSION = svgCorePackageJson.version
|
|
6
|
-
|
|
7
1
|
export function objectWithKey(key, value) {
|
|
8
2
|
return (Array.isArray(value) && value.length > 0) || (!Array.isArray(value) && value) ? { [key]: value } : {}
|
|
9
3
|
}
|
|
@@ -47,73 +41,3 @@ export function addStaticClass(to, what) {
|
|
|
47
41
|
|
|
48
42
|
return val.concat(what).join(' ')
|
|
49
43
|
}
|
|
50
|
-
|
|
51
|
-
// check if verion1 is less than version2
|
|
52
|
-
export function versionCheckLt(version1, version2) {
|
|
53
|
-
const [v1Base, v1PreRelease] = version1.split('-')
|
|
54
|
-
const [v2Base, v2PreRelease] = version2.split('-')
|
|
55
|
-
|
|
56
|
-
const v1Parts = v1Base.split('.').map(Number)
|
|
57
|
-
const v2Parts = v2Base.split('.').map(Number)
|
|
58
|
-
|
|
59
|
-
// Compare version numbers first
|
|
60
|
-
for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
|
|
61
|
-
const v1Part = v1Parts[i] || 0
|
|
62
|
-
const v2Part = v2Parts[i] || 0
|
|
63
|
-
|
|
64
|
-
if (v1Part < v2Part) return true
|
|
65
|
-
if (v1Part > v2Part) return false
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// If version numbers are equal, compare pre-release identifiers
|
|
69
|
-
// A version with a pre-release identifier is less than one without
|
|
70
|
-
if (v1PreRelease && !v2PreRelease) return true
|
|
71
|
-
if (!v1PreRelease && v2PreRelease) return false
|
|
72
|
-
|
|
73
|
-
return false
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// check if verion1 is greater than or equal to version2
|
|
77
|
-
export function versionCheckGte(version1, version2) {
|
|
78
|
-
const [v1Base, v1PreRelease] = version1.split('-')
|
|
79
|
-
const [v2Base, v2PreRelease] = version2.split('-')
|
|
80
|
-
|
|
81
|
-
const v1Parts = v1Base.split('.')
|
|
82
|
-
const v2Parts = v2Base.split('.')
|
|
83
|
-
|
|
84
|
-
// Compare version numbers first
|
|
85
|
-
for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
|
|
86
|
-
const v1Part = v1Parts[i] || '0'
|
|
87
|
-
const v2Part = v2Parts[i] || '0'
|
|
88
|
-
|
|
89
|
-
// Compare numeric values
|
|
90
|
-
const v1Num = parseInt(v1Part, 10)
|
|
91
|
-
const v2Num = parseInt(v2Part, 10)
|
|
92
|
-
|
|
93
|
-
if (v1Num !== v2Num) {
|
|
94
|
-
return v1Num > v2Num
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
// If numeric values are equal, look for any remaining parts
|
|
99
|
-
// that would make one version greater than the other
|
|
100
|
-
for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
|
|
101
|
-
const v1Part = v1Parts[i] || '0'
|
|
102
|
-
const v2Part = v2Parts[i] || '0'
|
|
103
|
-
|
|
104
|
-
if (v1Part !== v2Part) {
|
|
105
|
-
// When numeric values are equal but strings differ,
|
|
106
|
-
// the one without leading zeros is greater
|
|
107
|
-
if (v1Part.length !== v2Part.length) {
|
|
108
|
-
return v1Part.length < v2Part.length
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// If version numbers are equal, compare pre-release identifiers
|
|
114
|
-
// A version with a pre-release identifier is less than one without
|
|
115
|
-
if (v1PreRelease && !v2PreRelease) return false
|
|
116
|
-
if (!v1PreRelease && v2PreRelease) return true
|
|
117
|
-
|
|
118
|
-
return true
|
|
119
|
-
}
|