504 lines
16 KiB
TypeScript
504 lines
16 KiB
TypeScript
// Module ID: 4663
|
|
// Function ID: 40392
|
|
// Name: getThemeMixColor
|
|
// Dependencies: [31, 27, 3943, 33, 4131, 3977, 3976, 3975, 1450, 4555, 4067, 689, 3979, 3942, 666, 1184, 624, 3981, 4066, 3945, 2]
|
|
// Exports: CustomThemedGradient, default
|
|
|
|
// Module 4663 (getThemeMixColor)
|
|
import result from "result";
|
|
import { View } from "get ActivityIndicator";
|
|
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
|
|
import jsxProd from "jsxProd";
|
|
import _createForOfIteratorHelperLoose from "_createForOfIteratorHelperLoose";
|
|
|
|
let closure_6;
|
|
let closure_7;
|
|
const require = arg1;
|
|
function getThemeMixColor(mixAmount) {
|
|
let darkFallbackOpacity;
|
|
let mixColorOverride;
|
|
let theme;
|
|
mixAmount = mixAmount.mixAmount;
|
|
if (mixAmount === undefined) {
|
|
mixAmount = {};
|
|
}
|
|
({ mixColorOverride, darkFallbackOpacity, theme } = mixAmount);
|
|
if (darkFallbackOpacity === undefined) {
|
|
darkFallbackOpacity = 0.7;
|
|
}
|
|
let num = mixAmount.lightFallbackOpacity;
|
|
if (num === undefined) {
|
|
num = 0.8;
|
|
}
|
|
if (null != mixColorOverride) {
|
|
return mixColorOverride;
|
|
} else {
|
|
const isThemeDarkResult = require(3977) /* AccessibilityAnnouncer */.isThemeDark(theme);
|
|
if (isThemeDarkResult) {
|
|
num = darkFallbackOpacity;
|
|
}
|
|
const tmp = isThemeDarkResult ? mixAmount.dark : mixAmount.light;
|
|
if (null != tmp) {
|
|
num = tmp;
|
|
}
|
|
let num2 = 255;
|
|
if (isThemeDarkResult) {
|
|
num2 = 0;
|
|
}
|
|
let tmp4 = importDefault(3976);
|
|
const prototype = tmp4.prototype;
|
|
tmp4 = new tmp4(num2, num2, num2, num);
|
|
return tmp4;
|
|
}
|
|
}
|
|
function getThemedMixAmount(mixAmount) {
|
|
let darkFallbackAmount;
|
|
let theme;
|
|
mixAmount = mixAmount.mixAmount;
|
|
if (mixAmount === undefined) {
|
|
mixAmount = {};
|
|
}
|
|
({ darkFallbackAmount, theme } = mixAmount);
|
|
if (darkFallbackAmount === undefined) {
|
|
darkFallbackAmount = 0.3;
|
|
}
|
|
let num = mixAmount.lightFallbackAmount;
|
|
if (num === undefined) {
|
|
num = 0.2;
|
|
}
|
|
if (obj2.isThemeDark(theme)) {
|
|
if (null != mixAmount.dark) {
|
|
darkFallbackAmount = 1 - mixAmount.dark;
|
|
}
|
|
num = darkFallbackAmount;
|
|
} else if (null != mixAmount.light) {
|
|
num = 1 - mixAmount.light;
|
|
}
|
|
return num;
|
|
}
|
|
function getMixedGradientColor(mixColorOverride) {
|
|
let b;
|
|
let g;
|
|
let mixAmount;
|
|
let r;
|
|
let theme;
|
|
({ mixAmount, theme } = mixColorOverride);
|
|
const obj = { mixAmount, mixColorOverride: mixColorOverride.mixColorOverride, theme };
|
|
const tmp = getThemeMixColor({ mixAmount, mixColorOverride: mixColorOverride.mixColorOverride, theme });
|
|
const tmp2 = getThemedMixAmount({ mixAmount, theme });
|
|
const obj2 = require(3975) /* hexToRgb */;
|
|
({ r, g, b } = require(3975) /* hexToRgb */.hexToRgb(mixColorOverride.color));
|
|
const hexToRgbResult = require(3975) /* hexToRgb */.hexToRgb(mixColorOverride.color);
|
|
let tmp4 = importDefault(3976);
|
|
tmp4 = new tmp4(r, g, b, tmp2);
|
|
const obj3 = require(3975) /* hexToRgb */;
|
|
return require(3975) /* hexToRgb */.mixColors(tmp, tmp4).toHexString();
|
|
}
|
|
function GradientBase(angleCenter) {
|
|
let absolute;
|
|
let angle;
|
|
let colors;
|
|
let height;
|
|
let locations;
|
|
let tall;
|
|
let wide;
|
|
let width;
|
|
angleCenter = angleCenter.angleCenter;
|
|
({ colors, locations, angle } = angleCenter);
|
|
if (angleCenter === undefined) {
|
|
angleCenter = closure_9;
|
|
}
|
|
({ absolute, wide, tall } = angleCenter);
|
|
const tmp = callback3();
|
|
({ width, height } = importDefault(1450)());
|
|
let obj = { colors, locations, angle, angleCenter, useAngle: true };
|
|
const tmp2 = importDefault(1450)();
|
|
const tmp3 = closure_6;
|
|
if (wide) {
|
|
obj = { width };
|
|
wide = obj;
|
|
}
|
|
const items = [wide, , , , ];
|
|
if (tall) {
|
|
obj = { height };
|
|
tall = obj;
|
|
}
|
|
items[1] = tall;
|
|
items[2] = tmp.linearGradient;
|
|
if (absolute) {
|
|
absolute = tmp.absolute;
|
|
}
|
|
items[3] = absolute;
|
|
items[4] = angleCenter.componentStyles;
|
|
obj.style = items;
|
|
return tmp3(importDefault(4555), obj);
|
|
}
|
|
class Gradient {
|
|
constructor(arg0) {
|
|
({ gradient, angleOverride, mix, mixAmount } = global);
|
|
({ absolute, wide, tall, componentStyles } = global);
|
|
if (mixAmount === undefined) {
|
|
mixAmount = {};
|
|
}
|
|
mixColorOverride = global.mixColorOverride;
|
|
c3 = undefined;
|
|
c3 = require("useTheme")();
|
|
colors = gradient.colors;
|
|
obj = {
|
|
colors: colors.map((arg0) => {
|
|
if (closure_0) {
|
|
const obj = { color: mixAmount(mixColorOverride[11]).unsafe_rawColors[arg0.token], mixAmount, mixColorOverride, theme: result };
|
|
let tmp3 = outer1_14(obj);
|
|
} else {
|
|
tmp3 = mixAmount(mixColorOverride[11]).unsafe_rawColors[arg0.token];
|
|
}
|
|
return tmp3;
|
|
}),
|
|
locations: colors1.map((stop) => stop.stop / 100)
|
|
};
|
|
colors1 = gradient.colors;
|
|
tmp = jsx;
|
|
tmp2 = GradientBase;
|
|
if (null == angleOverride) {
|
|
angleOverride = gradient.angle;
|
|
}
|
|
obj.angle = angleOverride;
|
|
angleCenter = gradient.angleCenter;
|
|
if (null == angleCenter) {
|
|
angleCenter = createStyles;
|
|
}
|
|
obj.angleCenter = angleCenter;
|
|
obj.absolute = absolute;
|
|
obj.wide = wide;
|
|
obj.tall = tall;
|
|
obj.componentStyles = componentStyles;
|
|
return tmp(tmp2, obj);
|
|
}
|
|
}
|
|
function GuildThemePresetGradient(mixColorOverride) {
|
|
let absolute;
|
|
let angleOverride;
|
|
let componentStyles;
|
|
let mixAmount;
|
|
let preset;
|
|
let require;
|
|
let tall;
|
|
let wide;
|
|
({ angleOverride, mix: require, mixAmount } = mixColorOverride);
|
|
({ preset, absolute, wide, tall, componentStyles } = mixColorOverride);
|
|
if (mixAmount === undefined) {
|
|
mixAmount = {};
|
|
}
|
|
mixColorOverride = mixColorOverride.mixColorOverride;
|
|
let c3;
|
|
const tmp = mixAmount(mixColorOverride[10])();
|
|
c3 = tmp;
|
|
let obj = require(mixColorOverride[12]);
|
|
const guildThemePresetAppearance = obj.getGuildThemePresetAppearance(preset, tmp);
|
|
const colors = guildThemePresetAppearance.colors;
|
|
obj = {
|
|
colors: colors.map((hex) => {
|
|
if (closure_0) {
|
|
const obj = { color: hex.hex, mixAmount, mixColorOverride, theme: c3 };
|
|
hex = outer1_14(obj);
|
|
} else {
|
|
hex = hex.hex;
|
|
}
|
|
return hex;
|
|
}),
|
|
locations: colors1.map((stop) => stop.stop / 100)
|
|
};
|
|
colors1 = guildThemePresetAppearance.colors;
|
|
if (null == angleOverride) {
|
|
angleOverride = guildThemePresetAppearance.angle;
|
|
}
|
|
obj.angle = angleOverride;
|
|
obj.angleCenter = closure_9;
|
|
obj.absolute = absolute;
|
|
obj.wide = wide;
|
|
obj.tall = tall;
|
|
obj.componentStyles = componentStyles;
|
|
return closure_6(GradientBase, obj);
|
|
}
|
|
function validateColors(arr) {
|
|
return arr.reduce((arr) => {
|
|
if ("string" === typeof arg1) {
|
|
if (outer1_11.test(tmp)) {
|
|
arr.push(arg1);
|
|
return arr;
|
|
}
|
|
}
|
|
arr.push(outer1_1(outer1_2[14])(arg1).hex("rgb"));
|
|
}, []);
|
|
}
|
|
function CustomThemesGradient(arg0) {
|
|
let absolute;
|
|
let baseMix;
|
|
let colors;
|
|
let componentStyles;
|
|
let end;
|
|
let gradientAngle;
|
|
let gradientColorStops;
|
|
let height;
|
|
let mix;
|
|
let mixAmount;
|
|
let mixColorOverride;
|
|
let start;
|
|
let tall;
|
|
let theme;
|
|
let wide;
|
|
let width;
|
|
({ absolute, wide, tall, mixAmount } = arg0);
|
|
({ colors, baseMix, gradientAngle, gradientColorStops, mix } = arg0);
|
|
if (mixAmount === undefined) {
|
|
mixAmount = {};
|
|
}
|
|
let c0;
|
|
let arr;
|
|
({ mixColorOverride, componentStyles, theme } = arg0);
|
|
let tmp = callback3();
|
|
let obj = { colors, mix, mixAmount, mixColorOverride, theme, baseMix };
|
|
({ width, height } = arr(1450)());
|
|
let tmp3 = (function getGradientColorsForCustomThemesGradient(mix) {
|
|
let c0;
|
|
let closure_2;
|
|
let result;
|
|
let colors;
|
|
let mixAmount;
|
|
({ colors, baseMix: c0, mixAmount } = mix);
|
|
if (mixAmount === undefined) {
|
|
mixAmount = {};
|
|
}
|
|
({ mixColorOverride: closure_2, theme: result } = mix);
|
|
let mapped = colors;
|
|
if (mix.mix) {
|
|
mapped = colors.map((PRIMARY_800) => {
|
|
let b;
|
|
let g;
|
|
let r;
|
|
const diff = 1 - closure_0 / 100;
|
|
let obj = { mixAmount, mixColorOverride: closure_2, theme: result, darkFallbackOpacity: outer2_10 + 0.25 * diff, lightFallbackOpacity: outer2_10 + 0.2 * diff };
|
|
obj = { mixAmount, theme: result, darkFallbackAmount: outer2_10, lightFallbackAmount: outer2_10 };
|
|
const tmp2 = outer2_12(obj);
|
|
const tmp3 = outer2_13(obj);
|
|
const obj3 = callback(outer2_2[7]);
|
|
({ r, g, b } = callback(outer2_2[7]).hexToRgb(PRIMARY_800));
|
|
const hexToRgbResult = callback(outer2_2[7]).hexToRgb(PRIMARY_800);
|
|
let tmp5 = arr(outer2_2[6]);
|
|
tmp5 = new tmp5(r, g, b, tmp3);
|
|
const obj4 = callback(outer2_2[7]);
|
|
const mixColorsResult = callback(outer2_2[7]).mixColors(tmp2, tmp5);
|
|
return callback(outer2_2[13]).colorToHex(mixColorsResult);
|
|
});
|
|
}
|
|
let tmp = mapped;
|
|
if (1 === mapped.length) {
|
|
const items = [mapped[0], mapped[0]];
|
|
tmp = items;
|
|
}
|
|
return tmp;
|
|
})(obj);
|
|
c0 = tmp3;
|
|
const result = (gradientAngle - 90) * Math.PI / 180;
|
|
const cosResult = Math.cos(result);
|
|
const sinResult = Math.sin(result);
|
|
obj = { start: obj, end: obj1 };
|
|
obj = { x: 0.6 - 0.7142857142857143 * cosResult, y: 0.5 - 0.7142857142857143 * sinResult };
|
|
({ start, end } = obj);
|
|
arr = validateColors(tmp3);
|
|
let items = [arr, tmp3];
|
|
obj1 = { x: 0.6 + 0.7142857142857143 * cosResult, y: 0.5 + 0.7142857142857143 * sinResult };
|
|
let tmp2 = arr(1450)();
|
|
const effect = React.useEffect(() => {
|
|
if (arr.length < 2) {
|
|
let obj = arr(outer1_2[15]);
|
|
const _Error = Error;
|
|
const error = new Error("Invalid custom theme gradient colors");
|
|
obj = {};
|
|
obj = {};
|
|
const _JSON = JSON;
|
|
obj.gradientColors = JSON.stringify(c0);
|
|
obj.extra = obj;
|
|
obj.captureException(error, obj);
|
|
}
|
|
}, items);
|
|
let tmp10Result = null;
|
|
if (arr.length >= 2) {
|
|
const obj2 = { colors: arr, locations: tmp7, start, end };
|
|
if (wide) {
|
|
let obj3 = { width };
|
|
wide = obj3;
|
|
}
|
|
const items1 = [wide, , , , ];
|
|
if (tall) {
|
|
let obj4 = { height };
|
|
tall = obj4;
|
|
}
|
|
items1[1] = tall;
|
|
items1[2] = tmp.linearGradient;
|
|
if (absolute) {
|
|
absolute = tmp.absolute;
|
|
}
|
|
items1[3] = absolute;
|
|
items1[4] = componentStyles;
|
|
obj2.style = items1;
|
|
tmp10Result = closure_6(arr(4555), obj2);
|
|
const tmp10 = closure_6;
|
|
const tmp13 = arr(4555);
|
|
}
|
|
return tmp10Result;
|
|
}
|
|
function wrapWithOverlayIfNeeded(arg0, withOverlay, styles, overlayColor, overlayOpacity) {
|
|
let tmp = arg0;
|
|
if (withOverlay) {
|
|
let obj = { style: styles.absolute };
|
|
const items = [arg0, ];
|
|
obj = {};
|
|
const items1 = [styles.softenGradient, ];
|
|
obj = { backgroundColor: require(3975) /* hexToRgb */.hexWithOpacity(overlayColor, overlayOpacity) };
|
|
items1[1] = obj;
|
|
obj.style = items1;
|
|
items[1] = callback(View, obj);
|
|
obj.children = items;
|
|
tmp = callback2(View, obj);
|
|
const obj4 = require(3975) /* hexToRgb */;
|
|
}
|
|
return tmp;
|
|
}
|
|
function useThemedGradientCommon() {
|
|
const obj = { styles: callback3() };
|
|
const tmp = callback3();
|
|
const tmp2 = importDefault(4067)();
|
|
const obj2 = require(3977) /* AccessibilityAnnouncer */;
|
|
const unsafe_rawColors = importDefault(689).unsafe_rawColors;
|
|
obj.overlayColor = require(3977) /* AccessibilityAnnouncer */.isThemeDark(tmp2) ? unsafe_rawColors.BLACK : unsafe_rawColors.WHITE;
|
|
return obj;
|
|
}
|
|
function ActiveGuildThemeGradient(arg0) {
|
|
let activeGuildTheme;
|
|
let theme;
|
|
({ activeGuildTheme, theme } = arg0);
|
|
let obj = Object.create(null);
|
|
obj.activeGuildTheme = 0;
|
|
obj.theme = 0;
|
|
const merged = Object.assign(arg0, obj);
|
|
if ("custom" === activeGuildTheme.type) {
|
|
const customUserThemeSettings = activeGuildTheme.customUserThemeSettings;
|
|
obj = {};
|
|
const merged1 = Object.assign(merged);
|
|
const items = [];
|
|
HermesBuiltin.arraySpread(require(3979) /* createPresetAppearance */.getSingleColorGuildThemeGradientColors(customUserThemeSettings.colors[0], theme), 0);
|
|
obj["colors"] = items;
|
|
obj["gradientColorStops"] = [];
|
|
const gradientAngle = customUserThemeSettings.gradientAngle;
|
|
let num3 = 0;
|
|
if (null != gradientAngle) {
|
|
num3 = gradientAngle;
|
|
}
|
|
obj["gradientAngle"] = num3;
|
|
let GUILD_THEME_DEFAULT_BASE_MIX = customUserThemeSettings.baseMix;
|
|
if (null == GUILD_THEME_DEFAULT_BASE_MIX) {
|
|
GUILD_THEME_DEFAULT_BASE_MIX = require(3979) /* createPresetAppearance */.GUILD_THEME_DEFAULT_BASE_MIX;
|
|
}
|
|
obj["baseMix"] = GUILD_THEME_DEFAULT_BASE_MIX;
|
|
obj["theme"] = theme;
|
|
return callback(CustomThemesGradient, obj);
|
|
} else {
|
|
obj = {};
|
|
const merged2 = Object.assign(merged);
|
|
obj["preset"] = activeGuildTheme.preset;
|
|
return callback(GuildThemePresetGradient, obj);
|
|
}
|
|
}
|
|
({ jsx: closure_6, jsxs: closure_7 } = jsxProd);
|
|
let closure_8 = _createForOfIteratorHelperLoose.createStyles({ softenGradient: { flex: 1 }, linearGradient: { flex: 1 }, absolute: { position: "absolute", top: 0, bottom: 0, left: 0, right: 0 } });
|
|
let closure_9 = { x: 0.5, y: 0.5 };
|
|
let c10 = 0.5;
|
|
const re11 = /^#(?:[0-9a-fA-F]{3}){1,2}$/;
|
|
let result = require("_isNativeReflectConstruct").fileFinishedImporting("modules/client_themes/native/ThemedGradient.tsx");
|
|
|
|
export default function ThemedGradient(overlayOpacity) {
|
|
let overlayColor;
|
|
let styles;
|
|
let num = overlayOpacity.overlayOpacity;
|
|
if (num === undefined) {
|
|
num = 0.7;
|
|
}
|
|
const gradientOverride = overlayOpacity.gradientOverride;
|
|
let obj = Object.create(null);
|
|
obj.overlayOpacity = 0;
|
|
obj.gradientOverride = 0;
|
|
const merged = Object.assign(overlayOpacity, obj);
|
|
({ styles, overlayColor } = useThemedGradientCommon());
|
|
const withOverlay = merged.withOverlay;
|
|
const tmp3 = useThemedGradientCommon();
|
|
obj = require(624) /* defaultAreStatesEqual */;
|
|
const items = [_isNativeReflectConstruct];
|
|
const preset = obj.useStateFromStoresObject(items, () => ({ preset: outer1_5.gradientPreset })).preset;
|
|
const tmp5 = importDefault(3981)();
|
|
let obj1 = require(4066) /* useCustomThemeDisplaySettings */;
|
|
const customThemeDisplaySettings = obj1.useCustomThemeDisplaySettings();
|
|
if (null != gradientOverride) {
|
|
if (tmp7) {
|
|
if (gradientOverride.type === require(3945) /* ClientThemeType */.ClientThemeType.CUSTOM_BACKGROUND_GRADIENT) {
|
|
obj = {};
|
|
const merged1 = Object.assign(merged);
|
|
const merged2 = Object.assign(gradientOverride.customThemeSettings);
|
|
obj["theme"] = gradientOverride.theme;
|
|
return wrapWithOverlayIfNeeded(callback(CustomThemesGradient, obj), withOverlay, styles, overlayColor, num);
|
|
}
|
|
}
|
|
if (gradientOverride.type === require(3945) /* ClientThemeType */.ClientThemeType.BACKGROUND_GRADIENT_PRESET) {
|
|
obj1 = {};
|
|
const merged3 = Object.assign(merged);
|
|
obj1["gradient"] = gradientOverride;
|
|
return wrapWithOverlayIfNeeded(callback(Gradient, obj1), withOverlay, styles, overlayColor, num);
|
|
}
|
|
}
|
|
if (null != tmp5) {
|
|
const obj2 = {};
|
|
const merged4 = Object.assign(merged);
|
|
obj2["activeGuildTheme"] = tmp5;
|
|
obj2["theme"] = tmp4;
|
|
let tmp12 = wrapWithOverlayIfNeeded(callback(ActiveGuildThemeGradient, obj2), withOverlay, styles, overlayColor, num);
|
|
} else {
|
|
if (tmp7) {
|
|
if (tmp7) {
|
|
const obj3 = {};
|
|
const merged5 = Object.assign(merged);
|
|
const merged6 = Object.assign(customThemeDisplaySettings.customTheme);
|
|
obj3["theme"] = customThemeDisplaySettings.baseTheme;
|
|
tmp12 = wrapWithOverlayIfNeeded(callback(CustomThemesGradient, obj3), withOverlay, styles, overlayColor, num);
|
|
}
|
|
}
|
|
tmp12 = null;
|
|
if (null != preset) {
|
|
const obj4 = {};
|
|
const merged7 = Object.assign(merged);
|
|
obj4["gradient"] = preset;
|
|
tmp12 = wrapWithOverlayIfNeeded(callback(Gradient, obj4), withOverlay, styles, overlayColor, num);
|
|
}
|
|
}
|
|
return tmp12;
|
|
};
|
|
export { Gradient };
|
|
export { validateColors };
|
|
export const CustomThemedGradient = function CustomThemedGradient(overlayOpacity) {
|
|
let overlayColor;
|
|
let styles;
|
|
let num = overlayOpacity.overlayOpacity;
|
|
if (num === undefined) {
|
|
num = 0.7;
|
|
}
|
|
const customTheme = overlayOpacity.customTheme;
|
|
let obj = Object.create(null);
|
|
obj.overlayOpacity = 0;
|
|
obj.customTheme = 0;
|
|
const merged = Object.assign(overlayOpacity, obj);
|
|
obj = {};
|
|
({ styles, overlayColor } = useThemedGradientCommon());
|
|
const merged1 = Object.assign(merged);
|
|
const merged2 = Object.assign(customTheme.customThemeSettings);
|
|
obj["theme"] = customTheme.theme;
|
|
return wrapWithOverlayIfNeeded(callback(CustomThemesGradient, obj), merged.withOverlay, styles, overlayColor, num);
|
|
};
|