decord/source/modules/badges/native/BadgeIconSvg.tsx
2026-09-03 10:05:34 +00:00

179 lines
5.6 KiB
TypeScript

// Module ID: 9015
// Function ID: 9016
// Name: normalizeSvgXml
// Dependencies: [581, 684, 2]
// Exports: getCachedSvgXml, loadSvgXml
// Module 9015 (normalizeSvgXml)
import set from "set" /* 2 */;
function normalizeSvgXml(str) {
const match = str.match(closure_2);
let first;
if (match != null) {
first = match[0];
}
if (null != first) {
if (!regex.test(first)) {
const _RegExp = RegExp;
const _HermesInternal = HermesInternal;
const regExp = new RegExp("(?:^|\\s)" + "width" + "\\s*=\\s*\"(\\d+(?:\\.\\d+)?)(?:px)?\"", "i");
const match1 = first.match(regExp);
let tmp9;
if (match1 != null) {
tmp9 = match1[1];
}
if (null != tmp9) {
const _Number2 = Number;
let _NaN = Number.parseFloat(tmp9);
} else {
const _Number = Number;
_NaN = Number.NaN;
}
const _Number3 = Number;
let replaced = str;
if (Number.isFinite(_NaN)) {
replaced = str;
if (_NaN > 0) {
const _RegExp2 = RegExp;
const _HermesInternal3 = HermesInternal;
const regExp1 = new RegExp("(?:^|\\s)" + "height" + "\\s*=\\s*\"(\\d+(?:\\.\\d+)?)(?:px)?\"", "i");
const match2 = first.match(regExp1);
let tmp12;
if (match2 != null) {
tmp12 = match2[1];
}
if (null != tmp12) {
const _Number5 = Number;
let _NaN2 = Number.parseFloat(tmp12);
} else {
const _Number4 = Number;
_NaN2 = Number.NaN;
}
replaced = str;
if (_NaN === _NaN2) {
const _HermesInternal2 = HermesInternal;
replaced = str.replace(first, first.replace(/<svg\b/i, "<svg viewBox=\"0 0 " + tmp10 + " " + tmp10 + "\""));
}
}
}
return replaced;
}
}
return str;
}
const re2 = /<svg\b[^>]*>/i;
const re3 = /\bviewBox\s*=/i;
const map = new Map();
const map1 = new Map();
const map2 = new Map();
let result = set.fileFinishedImporting("modules/badges/native/BadgeIconSvg.tsx");
export { normalizeSvgXml };
export const getCachedSvgXml = function getCachedSvgXml(complex_icon_animated_url) {
return map.get(complex_icon_animated_url);
};
export const loadSvgXml = function loadSvgXml(arg0, signal) {
closure_0 = arg0;
let value = map.get(arg0);
if (null != value) {
let resolved = Promise.resolve(value);
} else {
let _Date = Date;
let timestamp = Date.now();
let num = map2.get(arg0);
if (num == null) {
num = 0;
}
if (timestamp < num) {
let _Error = Error;
let _HermesInternal = HermesInternal;
error = new Error("badge icon fetch is backed off: " + arg0);
resolved = Promise.reject(error);
} else {
const _fetch = fetch;
const obj = { signal: null };
obj[0] = signal;
const response = fetch(arg0, obj);
const nextPromise = response.then((ok) => {
if (ok.ok) {
return ok.text();
} else {
const _Error = Error;
const _HermesInternal = HermesInternal;
error = new Error("badge icon fetch failed with " + ok.status + ": " + closure_0);
throw error;
}
});
resolved = response.then((ok) => {
if (ok.ok) {
return ok.text();
} else {
const _Error = Error;
const _HermesInternal = HermesInternal;
error = new Error("badge icon fetch failed with " + ok.status + ": " + closure_0);
throw error;
}
}).then((arg0) => {
if (closure_1_2.test(arg0)) {
const tmp8 = closure_1_7(arg0);
const result = closure_1_4.set(closure_0, tmp8);
const value = closure_1_5.get(closure_0);
if (value != null) {
value.succeed();
}
closure_1_6.delete(closure_0);
return tmp8;
} else {
const _Error = Error;
const _HermesInternal = HermesInternal;
error = new Error("badge icon response was not an svg: " + closure_0);
throw error;
}
}).catch((name) => {
if ("AbortError" === name.name) {
throw name;
} else {
let tmp3 = closure_1_5.get(callback);
if (tmp3 == null) {
tmp3 = callback(closure_1_1[0]);
const result = 10 * callback(closure_1_1[1]).Millis.SECOND;
tmp3 = new tmp3(result, callback(closure_1_1[1]).Millis.HOUR, true);
}
const result1 = closure_1_5.set(tmp13, tmp3);
const _Date = Date;
const timestamp = Date.now();
const result2 = closure_1_6.set(tmp13, timestamp + tmp3.fail());
throw name;
}
});
const nextPromise1 = response.then((ok) => {
if (ok.ok) {
return ok.text();
} else {
const _Error = Error;
const _HermesInternal = HermesInternal;
error = new Error("badge icon fetch failed with " + ok.status + ": " + closure_0);
throw error;
}
}).then((arg0) => {
if (closure_1_2.test(arg0)) {
const tmp8 = closure_1_7(arg0);
const result = closure_1_4.set(closure_0, tmp8);
const value = closure_1_5.get(closure_0);
if (value != null) {
value.succeed();
}
closure_1_6.delete(closure_0);
return tmp8;
} else {
const _Error = Error;
const _HermesInternal = HermesInternal;
error = new Error("badge icon response was not an svg: " + closure_0);
throw error;
}
});
}
}
return resolved;
};