324 lines
11 KiB
TypeScript
324 lines
11 KiB
TypeScript
// Metro module 15368 (f15369).
|
|
import { thumbHashToApproximateAspectRatio, rgbaToDataURL } from "../../_bundle/thumbHashToRGBA";
|
|
const thumbHashToRGBA = function thumbHashToRGBA(a0, r45 = {}) {
|
|
let r110, r112, r141, r170, r172, r195, r239, r241, r275, r277;
|
|
const { detail = 1, pop = 1 } = r45;
|
|
const { PI, min, max, cos, round } = Math;
|
|
const r75 = a0[0] | a0[1] << 8 | a0[2] << 16;
|
|
const r33 = a0[3] | a0[4] << 8;
|
|
const r39 = r75 >> 23;
|
|
const r80 = r33 >> 15;
|
|
const r55 = max(3, r80 ? r39 ? 5 : 7 : 7 & r33);
|
|
const r54 = max(3, r80 ? 7 & r33 : r39 ? 5 : 7);
|
|
const r36 = r39 ? (15 & a0[5]) / 15 : 1;
|
|
const r31 = (a0[5] >> 4) / 15;
|
|
const r87 = r39 ? 6 : 5;
|
|
const r34 = (r75 >> 18 & 31) / 31 / 2;
|
|
const r53 = [];
|
|
const r42 = 0 < r54;
|
|
let r94 = 0;
|
|
let r95 = 0;
|
|
let r22 = 0;
|
|
if (r42) {
|
|
do {
|
|
const r21 = r94;
|
|
const r27 = r95;
|
|
let r12 = r27 ? 0 : 1;
|
|
const r24 = r12 * r54;
|
|
const r96 = r55 * (r54 - r27);
|
|
let r23 = r21;
|
|
let r97 = r23;
|
|
if (r24 < r96) {
|
|
do {
|
|
const r101 = a0[r87 + (r23 >> 1)];
|
|
const r11 = r23 + 1;
|
|
r53.push(((r101 >> ((1 & r23) << 2) & 15) / 7.5 - 1) * r34);
|
|
const r17 = r12 + 1;
|
|
r110 = r17 * r54;
|
|
r112 = r55 * (r54 - r27);
|
|
r23 = r11;
|
|
r12 = r17;
|
|
r97 = r23;
|
|
} while (r110 < r112);
|
|
}
|
|
r95 = r27 + 1;
|
|
r94 = r97;
|
|
r22 = r94;
|
|
} while (r95 < r54);
|
|
}
|
|
const r117 = (r33 >> 3 & 63) / 63 * pop;
|
|
const r52 = [];
|
|
let r118 = 0;
|
|
while (true) {
|
|
const r119 = r22;
|
|
const r120 = r118;
|
|
let r121 = r120 ? 0 : 1;
|
|
const r122 = r121 * 3;
|
|
const r124 = 3 * (3 - r120);
|
|
let r125 = r119;
|
|
let r126 = r125;
|
|
if (r122 < r124) {
|
|
do {
|
|
const r130 = a0[r87 + (r125 >> 1)];
|
|
const r131 = r125 + 1;
|
|
r52.push(((r130 >> ((1 & r125) << 2) & 15) / 7.5 - 1) * r117);
|
|
const r140 = r121 + 1;
|
|
r141 = r140 * 3;
|
|
r125 = r131;
|
|
r121 = r140;
|
|
r126 = r125;
|
|
} while (r141 < r124);
|
|
}
|
|
r118 = r120 + 1;
|
|
r22 = r126;
|
|
if (!(r118 < 3)) {
|
|
const r146 = (r33 >> 9 & 63) / 63 * pop;
|
|
const r51 = [];
|
|
let r147 = 0;
|
|
while (true) {
|
|
const r148 = r126;
|
|
const r149 = r147;
|
|
let r150 = r149 ? 0 : 1;
|
|
const r151 = r150 * 3;
|
|
const r153 = 3 * (3 - r149);
|
|
let r154 = r148;
|
|
let r155 = r154;
|
|
if (r151 < r153) {
|
|
do {
|
|
const r159 = a0[r87 + (r154 >> 1)];
|
|
const r160 = r154 + 1;
|
|
r51.push(((r159 >> ((1 & r154) << 2) & 15) / 7.5 - 1) * r146);
|
|
const r169 = r150 + 1;
|
|
r170 = r169 * 3;
|
|
r154 = r160;
|
|
r150 = r169;
|
|
r155 = r154;
|
|
} while (r170 < r153);
|
|
}
|
|
r147 = r149 + 1;
|
|
r126 = r155;
|
|
if (!(r147 < 3)) {
|
|
const r171 = [];
|
|
if (r39) {
|
|
let r173 = 0;
|
|
do {
|
|
const r174 = r155;
|
|
const r175 = r173;
|
|
let r176 = r175 ? 0 : 1;
|
|
const r177 = r176 * 5;
|
|
const r179 = 5 * (5 - r175);
|
|
let r180 = r174;
|
|
let r181 = r180;
|
|
if (r177 < r179) {
|
|
do {
|
|
const r61 = a0[r87 + (r180 >> 1)];
|
|
const r185 = r180 + 1;
|
|
r171.push(((r61 >> ((1 & r180) << 2) & 15) / 7.5 - 1) * r31);
|
|
const r194 = r176 + 1;
|
|
r195 = r194 * 5;
|
|
r180 = r185;
|
|
r176 = r194;
|
|
r181 = r180;
|
|
} while (r195 < r179);
|
|
}
|
|
r173 = r175 + 1;
|
|
r155 = r181;
|
|
r172 = r171;
|
|
} while (r173 < 5);
|
|
} else {
|
|
r172 = r171;
|
|
}
|
|
const r202 = thumbHashToApproximateAspectRatio(a0);
|
|
const r206 = round(r202 > 1 ? 32 : 32 * r202);
|
|
const r209 = round(r202 > 1 ? 32 / r202 : 32);
|
|
const uint8Array = new Uint8Array(r206 * r209 * 4);
|
|
const r215 = [];
|
|
const r216 = [];
|
|
const r217 = 0 < r209;
|
|
const r225 = (r75 >> 6 & 63) / 31.5 - 1;
|
|
const r230 = (r75 >> 12 & 63) / 31.5 - 1;
|
|
const r232 = (63 & r75) / 63;
|
|
let r234 = 0;
|
|
let r235 = 0;
|
|
if (r217) {
|
|
while (true) {
|
|
L83: {
|
|
const r236 = 0 < r206;
|
|
const r237 = r235 + 0.5;
|
|
let r238 = r234;
|
|
r239 = r235;
|
|
let r240 = 0;
|
|
r241 = r238;
|
|
if (r236) {
|
|
loop52: while (true) {
|
|
const r242 = r240;
|
|
const r243 = r238;
|
|
const r245 = max(r55, r39 ? 5 : 3);
|
|
const r246 = 0 < r245;
|
|
const r247 = r242 + 0.5;
|
|
let r248 = 0;
|
|
if (r246) {
|
|
do {
|
|
r215[r248] = cos(PI / r206 * r247 * r248);
|
|
r248 = r248 + 1;
|
|
} while (r248 < r245);
|
|
}
|
|
const r253 = max(r54, r39 ? 5 : 3);
|
|
const r254 = 0 < r253;
|
|
let r255 = 0;
|
|
if (r254) {
|
|
do {
|
|
r216[r255] = cos(PI / r209 * r237 * r255);
|
|
r255 = r255 + 1;
|
|
} while (r255 < r253);
|
|
}
|
|
const r260 = 0 < r54;
|
|
let r15 = 0;
|
|
let r261 = 0;
|
|
let r262 = r232;
|
|
let r263 = r262;
|
|
if (r260) {
|
|
do {
|
|
const r13 = r15;
|
|
const r10 = r261;
|
|
const r14 = r262;
|
|
let r7 = r10 ? 0 : 1;
|
|
const r1 = 2 * r216[r10];
|
|
const r6 = r7 * r54;
|
|
const r265 = r55 * (r54 - r10);
|
|
let r0 = r13;
|
|
let r3 = r14;
|
|
let r266 = r0;
|
|
let r267 = r3;
|
|
if (r6 < r265) {
|
|
do {
|
|
let r268 = r7 > detail;
|
|
const r269 = r7;
|
|
const r270 = r0;
|
|
const r4 = r3;
|
|
if (!r268) {
|
|
r268 = r10 > detail;
|
|
}
|
|
const r5 = r268 ? r4 : r4 + r53[r270] * r215[r269] * r1;
|
|
const r274 = r269 + 1;
|
|
r0 = r270 + 1;
|
|
r275 = r274 * r54;
|
|
r277 = r55 * (r54 - r10);
|
|
r3 = r5;
|
|
r7 = r274;
|
|
r266 = r0;
|
|
r267 = r3;
|
|
} while (r275 < r277);
|
|
}
|
|
r261 = r10 + 1;
|
|
r15 = r266;
|
|
r262 = r267;
|
|
r263 = r262;
|
|
} while (r261 < r54);
|
|
}
|
|
let r278 = 0;
|
|
let r279 = 0;
|
|
let r280 = r230;
|
|
let r281 = r225;
|
|
while (true) {
|
|
const r282 = r278;
|
|
const r283 = r279;
|
|
const r284 = r280;
|
|
const r285 = r281;
|
|
let r286 = r283 ? 0 : 1;
|
|
const r288 = 2 * r216[r283];
|
|
const r289 = 3 - r283;
|
|
let r290 = r282;
|
|
let r291 = r284;
|
|
let r292 = r285;
|
|
let r293 = r290;
|
|
let r294 = r291;
|
|
let r295 = r292;
|
|
while (r286 < r289) {
|
|
const r297 = r215[r286] * r288;
|
|
r292 = r292 + r52[r290] * r297;
|
|
r291 = r291 + r51[r290] * r297;
|
|
r286 = r286 + 1;
|
|
r290 = r290 + 1;
|
|
r293 = r290;
|
|
r294 = r291;
|
|
r295 = r292;
|
|
}
|
|
r279 = r283 + 1;
|
|
r278 = r293;
|
|
r280 = r294;
|
|
r281 = r295;
|
|
if (!(r279 < 3)) {
|
|
let r301 = 0;
|
|
let r302 = 0;
|
|
let r303 = r36;
|
|
let r304 = r303;
|
|
if (r39) {
|
|
do {
|
|
const r305 = r301;
|
|
const r306 = r302;
|
|
const r307 = r303;
|
|
let r308 = r306 ? 0 : 1;
|
|
const r310 = 2 * r216[r306];
|
|
const r311 = 5 - r306;
|
|
let r312 = r305;
|
|
let r313 = r307;
|
|
let r314 = r312;
|
|
let r315 = r313;
|
|
while (r308 < r311) {
|
|
r313 = r313 + r172[r312] * r215[r308] * r310;
|
|
r308 = r308 + 1;
|
|
r312 = r312 + 1;
|
|
r314 = r312;
|
|
r315 = r313;
|
|
}
|
|
r302 = r306 + 1;
|
|
r301 = r314;
|
|
r303 = r315;
|
|
r304 = r303;
|
|
} while (r302 < 5);
|
|
}
|
|
const r321 = r263 - 0.6666666666666666 * r295;
|
|
const r325 = (3 * r263 - r321 + r294) / 2;
|
|
uint8Array[r243] = max(0, 255 * min(1, r325));
|
|
uint8Array[r243 + 1] = max(0, 255 * min(1, r325 - r294));
|
|
uint8Array[r243 + 2] = max(0, 255 * min(1, r321));
|
|
uint8Array[r243 + 3] = max(0, 255 * min(1, r304));
|
|
r240 = r242 + 1;
|
|
r238 = r243 + 4;
|
|
r241 = r238;
|
|
if (r240 < r206) {
|
|
continue loop52;
|
|
}
|
|
break L83;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
r235 = r239 + 1;
|
|
r234 = r241;
|
|
if (!(r235 < r209)) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return {
|
|
w: r206,
|
|
h: r209,
|
|
rgba: uint8Array
|
|
};
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
export function createThumbhashImageFromPlaceholder(a0) {
|
|
const r12 = thumbHashToRGBA(Uint8Array.from(atob(a0), (a0) => a0.charCodeAt(0)), {
|
|
detail: 1,
|
|
pop: 1.1
|
|
});
|
|
return rgbaToDataURL(r12.w, r12.h, r12.rgba);
|
|
}
|
|
export { thumbHashToRGBA };
|