@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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29iamVjdC11dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9kcmF3aW5nLXV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0cmluZy11dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9zYWZlLnBpcGUnOyJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29iamVjdC11dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9kcmF3aW5nLXV0aWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0cmluZy11dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb2xvci11dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9zYWZlLnBpcGUnOyJdfQ==
@@ -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