@acorex/core 5.3.3 → 5.3.4
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/esm2020/lib/utils/color-util.mjs +39 -0
- package/esm2020/lib/utils/index.mjs +2 -1
- package/fesm2015/acorex-core.mjs +41 -1
- package/fesm2015/acorex-core.mjs.map +1 -1
- package/fesm2020/acorex-core.mjs +40 -1
- package/fesm2020/acorex-core.mjs.map +1 -1
- package/lib/utils/color-util.d.ts +15 -0
- package/lib/utils/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export class AXColorUtil {
|
|
2
|
+
static rgba2Hex(rgba) {
|
|
3
|
+
let rgbaVal = typeof rgba == 'string' ? rgba : `rgba(${rgba.r},${rgba.g},${rgba.b},${rgba.a ?? '1'})`;
|
|
4
|
+
const rgbaArr = rgbaVal.replace(/^rgba?\(|\s+|\)$/g, '').split(',');
|
|
5
|
+
const hex = `#${((1 << 24) + (parseInt(rgbaArr[0]) << 16) + (parseInt(rgbaArr[1]) << 8) + parseInt(rgbaArr[2])).toString(16).slice(1)}`;
|
|
6
|
+
return hex == '#aN' ? null : hex;
|
|
7
|
+
}
|
|
8
|
+
;
|
|
9
|
+
static hex2Rgb(hexColor) {
|
|
10
|
+
let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexColor);
|
|
11
|
+
return result ? {
|
|
12
|
+
r: parseInt(result[1], 16),
|
|
13
|
+
g: parseInt(result[2], 16),
|
|
14
|
+
b: parseInt(result[3], 16)
|
|
15
|
+
} : null;
|
|
16
|
+
}
|
|
17
|
+
;
|
|
18
|
+
static illuminance(hexColor) {
|
|
19
|
+
let rgbColor = AXColorUtil.hex2Rgb(hexColor);
|
|
20
|
+
if (!rgbColor)
|
|
21
|
+
return -1;
|
|
22
|
+
let r = rgbColor.r, g = rgbColor.g, b = rgbColor.b;
|
|
23
|
+
let a = [r, g, b].map(v => {
|
|
24
|
+
v /= 255;
|
|
25
|
+
return (v <= 0.03928) ?
|
|
26
|
+
v / 12.92 :
|
|
27
|
+
Math.pow(((v + 0.055) / 1.055), 2.4);
|
|
28
|
+
});
|
|
29
|
+
return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;
|
|
30
|
+
}
|
|
31
|
+
;
|
|
32
|
+
static contrastToWhite(hexColor) {
|
|
33
|
+
let whiteIlluminance = 1;
|
|
34
|
+
let illuminance = AXColorUtil.illuminance(hexColor);
|
|
35
|
+
return whiteIlluminance / illuminance;
|
|
36
|
+
}
|
|
37
|
+
;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL3NyYy9saWIvdXRpbHMvY29sb3ItdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sV0FBVztJQUdwQixNQUFNLENBQUMsUUFBUSxDQUFDLElBQThEO1FBQzFFLElBQUksT0FBTyxHQUFVLE9BQU8sSUFBSSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDN0csTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN4SSxPQUFPLEdBQUcsSUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ25DLENBQUM7SUFBQSxDQUFDO0lBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFnQjtRQUMzQixJQUFJLE1BQU0sR0FBRywyQ0FBMkMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzFCLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMxQixDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDN0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUFBLENBQUM7SUFFRixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQy9CLElBQUksUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFFBQVE7WUFDVCxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RCLENBQUMsSUFBSSxHQUFHLENBQUM7WUFDVCxPQUFPLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ25CLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztnQkFDWCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ3pELENBQUM7SUFBQSxDQUFDO0lBRUYsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFnQjtRQUNuQyxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDO0lBQzFDLENBQUM7SUFBQSxDQUFDO0NBRUwiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQVhDb2xvclV0aWwge1xuXG5cbiAgICBzdGF0aWMgcmdiYTJIZXgocmdiYTogc3RyaW5nIHwgeyByOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyLCBhPzogbnVtYmVyIH0pIHtcbiAgICAgICAgbGV0IHJnYmFWYWw6c3RyaW5nID0gdHlwZW9mIHJnYmEgPT0gJ3N0cmluZycgPyByZ2JhIDogYHJnYmEoJHtyZ2JhLnJ9LCR7cmdiYS5nfSwke3JnYmEuYn0sJHtyZ2JhLmEgPz8gJzEnfSlgO1xuICAgICAgICBjb25zdCByZ2JhQXJyID0gcmdiYVZhbC5yZXBsYWNlKC9ecmdiYT9cXCh8XFxzK3xcXCkkL2csICcnKS5zcGxpdCgnLCcpO1xuICAgICAgICBjb25zdCBoZXggPSBgIyR7KCgxIDw8IDI0KSArIChwYXJzZUludChyZ2JhQXJyWzBdKSA8PCAxNikgKyAocGFyc2VJbnQocmdiYUFyclsxXSkgPDwgOCkgKyBwYXJzZUludChyZ2JhQXJyWzJdKSkudG9TdHJpbmcoMTYpLnNsaWNlKDEpfWA7XG4gICAgICAgIHJldHVybiBoZXg9PScjYU4nID8gbnVsbCA6IGhleDtcbiAgICB9O1xuXG4gICAgc3RhdGljIGhleDJSZ2IoaGV4Q29sb3I6IHN0cmluZykge1xuICAgICAgICBsZXQgcmVzdWx0ID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleENvbG9yKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCA/IHtcbiAgICAgICAgICAgIHI6IHBhcnNlSW50KHJlc3VsdFsxXSwgMTYpLFxuICAgICAgICAgICAgZzogcGFyc2VJbnQocmVzdWx0WzJdLCAxNiksXG4gICAgICAgICAgICBiOiBwYXJzZUludChyZXN1bHRbM10sIDE2KVxuICAgICAgICB9IDogbnVsbDtcbiAgICB9O1xuXG4gICAgc3RhdGljIGlsbHVtaW5hbmNlKGhleENvbG9yOiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IHJnYkNvbG9yID0gQVhDb2xvclV0aWwuaGV4MlJnYihoZXhDb2xvcik7XG4gICAgICAgIGlmICghcmdiQ29sb3IpXG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIGxldCByID0gcmdiQ29sb3IuciwgZyA9IHJnYkNvbG9yLmcsIGIgPSByZ2JDb2xvci5iO1xuICAgICAgICBsZXQgYSA9IFtyLCBnLCBiXS5tYXAodiA9PiB7XG4gICAgICAgICAgICB2IC89IDI1NTtcbiAgICAgICAgICAgIHJldHVybiAodiA8PSAwLjAzOTI4KSA/XG4gICAgICAgICAgICAgICAgdiAvIDEyLjkyIDpcbiAgICAgICAgICAgICAgICBNYXRoLnBvdygoKHYgKyAwLjA1NSkgLyAxLjA1NSksIDIuNCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYVswXSAqIDAuMjEyNiArIGFbMV0gKiAwLjcxNTIgKyBhWzJdICogMC4wNzIyO1xuICAgIH07XG5cbiAgICBzdGF0aWMgY29udHJhc3RUb1doaXRlKGhleENvbG9yOiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IHdoaXRlSWxsdW1pbmFuY2UgPSAxO1xuICAgICAgICBsZXQgaWxsdW1pbmFuY2UgPSBBWENvbG9yVXRpbC5pbGx1bWluYW5jZShoZXhDb2xvcik7XG4gICAgICAgIHJldHVybiB3aGl0ZUlsbHVtaW5hbmNlIC8gaWxsdW1pbmFuY2U7XG4gICAgfTtcblxufSJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './object-util';
|
|
2
2
|
export * from './drawing-util';
|
|
3
3
|
export * from './string-util';
|
|
4
|
+
export * from './color-util';
|
|
4
5
|
export * from './safe.pipe';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29iamVjdC11dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9kcmF3aW5nLXV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0cmluZy11dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci11dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9zYWZlLnBpcGUnOyJdfQ==
|
package/fesm2015/acorex-core.mjs
CHANGED
|
@@ -93,6 +93,46 @@ class AXStringUtil {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
+
class AXColorUtil {
|
|
97
|
+
static rgba2Hex(rgba) {
|
|
98
|
+
var _a;
|
|
99
|
+
let rgbaVal = typeof rgba == 'string' ? rgba : `rgba(${rgba.r},${rgba.g},${rgba.b},${(_a = rgba.a) !== null && _a !== void 0 ? _a : '1'})`;
|
|
100
|
+
const rgbaArr = rgbaVal.replace(/^rgba?\(|\s+|\)$/g, '').split(',');
|
|
101
|
+
const hex = `#${((1 << 24) + (parseInt(rgbaArr[0]) << 16) + (parseInt(rgbaArr[1]) << 8) + parseInt(rgbaArr[2])).toString(16).slice(1)}`;
|
|
102
|
+
return hex == '#aN' ? null : hex;
|
|
103
|
+
}
|
|
104
|
+
;
|
|
105
|
+
static hex2Rgb(hexColor) {
|
|
106
|
+
let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexColor);
|
|
107
|
+
return result ? {
|
|
108
|
+
r: parseInt(result[1], 16),
|
|
109
|
+
g: parseInt(result[2], 16),
|
|
110
|
+
b: parseInt(result[3], 16)
|
|
111
|
+
} : null;
|
|
112
|
+
}
|
|
113
|
+
;
|
|
114
|
+
static illuminance(hexColor) {
|
|
115
|
+
let rgbColor = AXColorUtil.hex2Rgb(hexColor);
|
|
116
|
+
if (!rgbColor)
|
|
117
|
+
return -1;
|
|
118
|
+
let r = rgbColor.r, g = rgbColor.g, b = rgbColor.b;
|
|
119
|
+
let a = [r, g, b].map(v => {
|
|
120
|
+
v /= 255;
|
|
121
|
+
return (v <= 0.03928) ?
|
|
122
|
+
v / 12.92 :
|
|
123
|
+
Math.pow(((v + 0.055) / 1.055), 2.4);
|
|
124
|
+
});
|
|
125
|
+
return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;
|
|
126
|
+
}
|
|
127
|
+
;
|
|
128
|
+
static contrastToWhite(hexColor) {
|
|
129
|
+
let whiteIlluminance = 1;
|
|
130
|
+
let illuminance = AXColorUtil.illuminance(hexColor);
|
|
131
|
+
return whiteIlluminance / illuminance;
|
|
132
|
+
}
|
|
133
|
+
;
|
|
134
|
+
}
|
|
135
|
+
|
|
96
136
|
class AXSafePipe {
|
|
97
137
|
constructor(sanitizer) {
|
|
98
138
|
this.sanitizer = sanitizer;
|
|
@@ -1328,5 +1368,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
|
|
|
1328
1368
|
* Generated bundle index. Do not edit.
|
|
1329
1369
|
*/
|
|
1330
1370
|
|
|
1331
|
-
export { AXCalendarMonth, AXConfig, AXCoreModule, AXDateTime, AXDateTimeModule, AXDateTimePipe, AXDateTimeRange, AXDrawingUtil, AXEventService, AXHotkeysService, AXObjectUtil, AXPlatform, AXPlatformEvent, AXSafePipe, AXStringUtil, AXTranslationModule, AXTranslator, AXTranslatorPipe, GeorgianCalendar, JalaliCalendar, testUserAgent };
|
|
1371
|
+
export { AXCalendarMonth, AXColorUtil, AXConfig, AXCoreModule, AXDateTime, AXDateTimeModule, AXDateTimePipe, AXDateTimeRange, AXDrawingUtil, AXEventService, AXHotkeysService, AXObjectUtil, AXPlatform, AXPlatformEvent, AXSafePipe, AXStringUtil, AXTranslationModule, AXTranslator, AXTranslatorPipe, GeorgianCalendar, JalaliCalendar, testUserAgent };
|
|
1332
1372
|
//# sourceMappingURL=acorex-core.mjs.map
|