438 lines
17 KiB
TypeScript
438 lines
17 KiB
TypeScript
// Module ID: 4929
|
|
// Function ID: 4930
|
|
// Name: CollapsingText
|
|
// Dependencies: [32, 19, 17, 21, 4478, 709, 4217, 4930, 4927, 4931, 4933, 1234, 4934, 4474, 1355, 4446, 4936, 4199, 4938, 2]
|
|
|
|
// Module 4929 (CollapsingText)
|
|
import ThemesDefault from "Themes" /* 709 */;
|
|
import IconSizesDefault from "IconSizes" /* 4930 */;
|
|
import styleProperties from "styleProperties" /* 4934 */;
|
|
import closure_3 from "_slicedToArray" /* 32 */;
|
|
import importAllResult from "noop" /* 19 */;
|
|
import get_ActivityIndicator from "get ActivityIndicator" /* 17 */;
|
|
import jsxProd from "jsxProd" /* 21 */;
|
|
import createCacheKey from "createCacheKey" /* 4478 */;
|
|
import { LARGE_BUTTON_HEIGHT, LARGE_BUTTON_HEIGHT as LARGE_BUTTON_HEIGHT2 } from "MINIMUM_HIT_AREA" /* 4933 */;
|
|
import importDefaultResult from "module_4217" /* 4217 */;
|
|
|
|
require = arg1;
|
|
function CollapsingText(children) {
|
|
const collapseText = children.collapseText;
|
|
let sharedValue;
|
|
let obj = sharedValue(textCollapsed[6]);
|
|
sharedValue = obj.useSharedValue(0);
|
|
const tmp = callback3();
|
|
const fn = function o(nativeEvent) {
|
|
if (0 === sharedValue.get()) {
|
|
const result = sharedValue.set(nativeEvent.nativeEvent.layout.width);
|
|
}
|
|
};
|
|
fn.__closure = { containerWidth: sharedValue };
|
|
fn.__workletHash = 5541458715155;
|
|
fn.__initData = closure_14;
|
|
const items = [sharedValue];
|
|
const obj2 = sharedValue(textCollapsed[6]);
|
|
const workletCallback = sharedValue(textCollapsed[6]).useWorkletCallback(fn, items);
|
|
const fn2 = function o() {
|
|
let obj = sharedValue;
|
|
if (0 === sharedValue.get()) {
|
|
obj = {};
|
|
} else {
|
|
let num2 = 1;
|
|
let num = 0;
|
|
if (1 !== collapseText.get()) {
|
|
num = obj.get();
|
|
}
|
|
obj = { width: null, opacity: null };
|
|
obj[0] = sharedValue(textCollapsed[8]).withSpring(num, sharedValue(textCollapsed[9]).SUBTLE_SPRING, "animate-always");
|
|
const obj4 = sharedValue(textCollapsed[8]);
|
|
const obj5 = collapseText;
|
|
if (num2 === obj5.get()) {
|
|
num2 = 0;
|
|
}
|
|
obj[1] = sharedValue(textCollapsed[8]).withSpring(num2, sharedValue(textCollapsed[9]).SUBTLE_SPRING, "animate-always");
|
|
const tmpResult = sharedValue(textCollapsed[8]);
|
|
}
|
|
return obj;
|
|
};
|
|
obj = { containerWidth: sharedValue, withSpring: sharedValue(textCollapsed[8]).withSpring, collapsed: collapseText, SUBTLE_SPRING: sharedValue(textCollapsed[9]).SUBTLE_SPRING };
|
|
fn2.__closure = obj;
|
|
fn2.__workletHash = 493185281611;
|
|
fn2.__initData = closure_16;
|
|
textCollapsed = undefined;
|
|
const animatedStyle = sharedValue(textCollapsed[6]).useAnimatedStyle(fn2);
|
|
textCollapsed = callback3().textCollapsed;
|
|
const obj3 = sharedValue(textCollapsed[6]);
|
|
const fn3 = function s() {
|
|
if (0 === collapseText.get()) {
|
|
let obj = {};
|
|
} else {
|
|
obj = {};
|
|
const merged = Object.assign(textCollapsed);
|
|
obj.width = sharedValue.get();
|
|
}
|
|
return obj;
|
|
};
|
|
fn3.__closure = { collapsed: collapseText, textCollapsed, containerWidth: sharedValue };
|
|
fn3.__workletHash = 5824483783888;
|
|
fn3.__initData = closure_17;
|
|
const animatedStyle1 = sharedValue(textCollapsed[6]).useAnimatedStyle(fn3);
|
|
obj = { style: items1, onLayout: workletCallback, children: callback(collapseText(textCollapsed[6]).View, { style: animatedStyle1, children: children.children }) };
|
|
items1 = [tmp.container, animatedStyle];
|
|
return callback(collapseText(textCollapsed[6]).View, obj);
|
|
}
|
|
function BaseTextButtonIcon(arg0) {
|
|
({ icon, size, iconPosition, iconOpticalOffsetMargin, style } = arg0);
|
|
let obj = styleProperties;
|
|
const iconSizeStyles = obj.useIconSizeStyles(size);
|
|
obj = { source: icon, style: null };
|
|
const items = [style, iconSizeStyles, callback5(iconPosition, iconOpticalOffsetMargin).offset];
|
|
obj[1] = items;
|
|
return callback(closure_12, obj);
|
|
}
|
|
let c4 = importAllResult;
|
|
({ Text: c5, View: closure_6 } = get_ActivityIndicator);
|
|
({ jsx: error, jsxs: closure_8 } = jsxProd);
|
|
let closure_9 = createCacheKey.createStyles((arg0, arg1) => {
|
|
let obj = { grow: { flexGrow: 1, alignSelf: "stretch" }, shrink: { flexShrink: 1 }, buttonText: { flexShrink: 1, flexGrow: 0 }, androidLineHeight: null, icon: null, iconLeft: null, iconRight: null, expressiveButtonContainer: null };
|
|
if (typeof getTextPlatformLineHeight !== "function") {
|
|
HermesBuiltin.throwTypeError();
|
|
}
|
|
if (null != arg1) {
|
|
obj = { sm: null, md: null, lg: null };
|
|
obj[0] = arg1;
|
|
obj[1] = arg1 + 0.5;
|
|
obj[2] = arg1 + 1.9;
|
|
const tmp = obj[arg0];
|
|
}
|
|
let tmp3;
|
|
if (obj3.isAndroid()) {
|
|
tmp3 = tmp;
|
|
}
|
|
obj[3] = { lineHeight: tmp3 };
|
|
obj[4] = { flexShrink: 0, flexGrow: 0 };
|
|
obj[5] = { paddingLeft: 4 };
|
|
obj[6] = { paddingRight: 4 };
|
|
obj[7] = { position: "relative" };
|
|
return obj;
|
|
});
|
|
let closure_10 = createCacheKey.createStyles({ container: { flexDirection: "row", alignItems: "center", position: "relative" }, textCollapsed: { position: "absolute", left: 0 } });
|
|
let obj = { entityWrapper: null };
|
|
obj = { borderWidth: 1, borderRadius: ThemesDefault.radii.round, borderColor: ThemesDefault.colors.BORDER_SUBTLE, overflow: "hidden" };
|
|
obj[0] = obj;
|
|
let closure_11 = createCacheKey.createStyles(obj);
|
|
let closure_12 = importDefaultResult.createAnimatedComponent(IconSizesDefault);
|
|
let context = importAllResult.createContext("md");
|
|
let closure_14 = { code: "function BaseTextButtonNativeTsx1({nativeEvent:nativeEvent}){const{containerWidth}=this.__closure;if(containerWidth.get()!==0)return;const{width:width}=nativeEvent.layout;containerWidth.set(width);}" };
|
|
let closure_16 = { code: "function BaseTextButtonNativeTsx2(){const{containerWidth,withSpring,collapsed,SUBTLE_SPRING}=this.__closure;if(containerWidth.get()===0)return{};return{width:withSpring(collapsed.get()===1?0:containerWidth.get(),SUBTLE_SPRING,'animate-always'),opacity:withSpring(collapsed.get()===1?0:1,SUBTLE_SPRING,'animate-always')};}" };
|
|
let closure_17 = { code: "function BaseTextButtonNativeTsx3(){const{collapsed,textCollapsed,containerWidth}=this.__closure;if(collapsed.get()===0)return{};return{...textCollapsed,width:containerWidth.get()};}" };
|
|
let closure_18 = createCacheKey.createStyles((arg0, arg1) => {
|
|
if (0 === arg1) {
|
|
let obj = { offset: null };
|
|
obj[0] = {};
|
|
return obj;
|
|
} else if ("start" === arg0) {
|
|
obj = { offset: null };
|
|
obj1 = { marginLeft: null };
|
|
obj1[0] = arg1;
|
|
obj[0] = obj1;
|
|
return obj;
|
|
} else if ("end" === arg0) {
|
|
const obj2 = { offset: null };
|
|
const obj3 = { marginRight: null };
|
|
obj3[0] = arg1;
|
|
obj2[0] = obj3;
|
|
return obj2;
|
|
} else {
|
|
obj = { offset: null };
|
|
obj[0] = {};
|
|
return obj;
|
|
}
|
|
});
|
|
createCacheKey = { sm: null, md: null, lg: null };
|
|
const bound = Math.max((require("MINIMUM_HIT_AREA").MINIMUM_HIT_AREA - require("MINIMUM_HIT_AREA").SMALL_BUTTON_HEIGHT) / 2, 0);
|
|
createCacheKey = { top: bound, left: "Array", right: "alignItems", bottom: 46601043520741950000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 };
|
|
createCacheKey[3] = bound;
|
|
createCacheKey[0] = createCacheKey;
|
|
const bound1 = Math.max((require("MINIMUM_HIT_AREA").MINIMUM_HIT_AREA - require("MINIMUM_HIT_AREA").MEDIUM_BUTTON_HEIGHT) / 2, 0);
|
|
createCacheKey = { top: bound1, left: "Array", right: "alignItems", bottom: 46601043520741950000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 };
|
|
createCacheKey[3] = bound1;
|
|
createCacheKey[1] = createCacheKey;
|
|
const bound2 = Math.max((require("MINIMUM_HIT_AREA").MINIMUM_HIT_AREA - require("MINIMUM_HIT_AREA").LARGE_BUTTON_HEIGHT) / 2, 0);
|
|
let obj4 = { top: bound2, left: "Array", right: "alignItems", bottom: 46601043520741950000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 };
|
|
obj4[3] = bound2;
|
|
createCacheKey[2] = obj4;
|
|
function getTextPlatformLineHeight(arg0, arg1) {
|
|
|
|
}
|
|
let merged = Object.assign({}, importAllResult.forwardRef((iconOpticalOffsetMargin, ref) => {
|
|
({ text, textElement, size } = iconOpticalOffsetMargin);
|
|
({ style, pillStyle } = iconOpticalOffsetMargin);
|
|
if (undefined === size) {
|
|
size = onPressIn(onLayout[10]).DEFAULT_BUTTON_SIZE;
|
|
}
|
|
({ icon, iconPosition } = iconOpticalOffsetMargin);
|
|
let str = "start";
|
|
if (undefined !== iconPosition) {
|
|
str = iconPosition;
|
|
}
|
|
iconOpticalOffsetMargin = iconOpticalOffsetMargin.iconOpticalOffsetMargin;
|
|
let num = 0;
|
|
if (undefined !== iconOpticalOffsetMargin) {
|
|
num = iconOpticalOffsetMargin;
|
|
}
|
|
const grow = iconOpticalOffsetMargin.grow;
|
|
let grow2 = undefined !== grow && grow;
|
|
const shrink = iconOpticalOffsetMargin.shrink;
|
|
let shrink2 = undefined !== shrink && shrink;
|
|
({ collapseText, accessibilityRole } = iconOpticalOffsetMargin);
|
|
let str2 = "button";
|
|
if (undefined !== accessibilityRole) {
|
|
str2 = accessibilityRole;
|
|
}
|
|
({ accessibilityLabel, maxFontSizeMultiplier } = iconOpticalOffsetMargin);
|
|
if (undefined === maxFontSizeMultiplier) {
|
|
maxFontSizeMultiplier = onPressIn(onLayout[10]).BUTTON_DEFAULT_MAX_FONT_SIZE_MULTIPLIER;
|
|
}
|
|
const shiny = iconOpticalOffsetMargin.shiny;
|
|
onPressIn = iconOpticalOffsetMargin.onPressIn;
|
|
const onPressOut = iconOpticalOffsetMargin.onPressOut;
|
|
onLayout = iconOpticalOffsetMargin.onLayout;
|
|
if (null != iconOpticalOffsetMargin.textVariant) {
|
|
let textVariant = iconOpticalOffsetMargin.textVariant;
|
|
} else {
|
|
let obj = onPressIn(onLayout[10]);
|
|
textVariant = obj.getButtonDefaultTextVariant(size);
|
|
}
|
|
const tmp10 = onPressIn(onLayout[13]).TextStyleSheet[textVariant];
|
|
const tmp11 = callback2(size, tmp10.fontSize);
|
|
obj1 = importAllResult;
|
|
const enabled = importAllResult.useContext(onPressIn(onLayout[14]).AccessibilityPreferencesContext).reducedMotion.enabled;
|
|
let str3 = iconOpticalOffsetMargin.variant;
|
|
if (str3 == null) {
|
|
str3 = "primary";
|
|
}
|
|
if ("tertiary" === str3) {
|
|
str3 = "secondary";
|
|
}
|
|
let tmp8Result = tmp8(tmp9[6]);
|
|
const sharedValue = tmp8Result.useSharedValue(0);
|
|
const startsWithResult = str3.startsWith("expressive");
|
|
ref = obj1.useRef(null);
|
|
closure_6 = obj1.useRef({ width: 0, height: 0 });
|
|
const tmp15 = enabled(obj1.useState({ pressed: false, posx: 0, posy: 0 }), 2);
|
|
let callback = tmp15[1];
|
|
const items = [onLayout, startsWithResult];
|
|
const items1 = [startsWithResult, onPressIn, enabled];
|
|
callback = obj1.useCallback((nativeEvent) => {
|
|
if (onLayout != null) {
|
|
tmp(nativeEvent);
|
|
}
|
|
if (closure_4) {
|
|
const obj = { width: null, height: null };
|
|
({ width: obj[0], height: obj[1] } = nativeEvent.nativeEvent.layout);
|
|
closure_6.current = obj;
|
|
}
|
|
}, items);
|
|
const items2 = [startsWithResult, onPressOut];
|
|
const callback1 = obj1.useCallback((nativeEvent) => {
|
|
if (onPressIn != null) {
|
|
tmp(nativeEvent);
|
|
}
|
|
if (closure_4) {
|
|
if (enabled) {
|
|
const current2 = ref.current;
|
|
if (current2 != tmp2) {
|
|
current2.play();
|
|
}
|
|
} else {
|
|
nativeEvent = nativeEvent.nativeEvent;
|
|
const current = ref.current;
|
|
const obj = { pressed: true, posx: null, posy: null };
|
|
obj[1] = nativeEvent.locationX - current.width / 2;
|
|
obj[2] = nativeEvent.locationY - current.height / 2;
|
|
callback(obj);
|
|
}
|
|
const result = onPressIn(onLayout[15]).triggerHapticFeedback(onPressIn(onLayout[15]).HapticFeedbackTypes.IMPACT_HEAVY);
|
|
const obj2 = onPressIn(onLayout[15]);
|
|
}
|
|
}, items1);
|
|
callback2 = obj1.useCallback((arg0) => {
|
|
if (onPressOut != null) {
|
|
tmp(arg0);
|
|
}
|
|
if (closure_4) {
|
|
callback((arg0) => {
|
|
const obj = {};
|
|
const merged = Object.assign(arg0);
|
|
obj.pressed = false;
|
|
return obj;
|
|
});
|
|
const result = onPressIn(onLayout[15]).triggerHapticFeedback(onPressIn(onLayout[15]).HapticFeedbackTypes.IMPACT_MEDIUM);
|
|
let obj = onPressIn(onLayout[15]);
|
|
}
|
|
}, items2);
|
|
tmp8Result = tmp8(tmp9[12]);
|
|
const buttonTextColorStyles = tmp8Result.useButtonTextColorStyles(str3);
|
|
if (null == icon) {
|
|
obj = {};
|
|
} else {
|
|
obj = "start" === str ? tmp11.iconLeft : tmp11.iconRight;
|
|
}
|
|
if (null == icon) {
|
|
obj = { icon: null, size: null, style: null, iconOpticalOffsetMargin: null, iconPosition: null };
|
|
obj[0] = icon;
|
|
obj[1] = size;
|
|
const items3 = [tmp11.icon, ];
|
|
obj1 = { tintColor: null };
|
|
obj1[0] = buttonTextColorStyles.color;
|
|
items3[1] = obj1;
|
|
obj[2] = items3;
|
|
obj[3] = num;
|
|
obj[4] = str;
|
|
let tmp20 = callback(BaseTextButtonIcon, obj);
|
|
} else {
|
|
tmp20 = icon;
|
|
}
|
|
if (null == textElement) {
|
|
let obj2 = { maxFontSizeMultiplier: null, numberOfLines: 1, style: null, children: null };
|
|
obj2[0] = maxFontSizeMultiplier;
|
|
const items4 = [tmp11.buttonText, tmp10, , , ];
|
|
let androidLineHeight = null;
|
|
if (tmp8Result1.isAndroid()) {
|
|
androidLineHeight = tmp11.androidLineHeight;
|
|
}
|
|
items4[2] = androidLineHeight;
|
|
items4[3] = buttonTextColorStyles;
|
|
items4[4] = obj;
|
|
obj2[2] = items4;
|
|
obj2[3] = text;
|
|
textElement = callback(ref, obj2);
|
|
const tmp23 = callback;
|
|
const tmp24 = ref;
|
|
tmp8Result1 = tmp8(tmp9[11]);
|
|
}
|
|
const obj3 = { ref };
|
|
let merged = Object.assign(iconOpticalOffsetMargin);
|
|
obj3.onPressIn = callback1;
|
|
obj3.onPressOut = callback2;
|
|
obj3.onLayout = callback;
|
|
if (grow2) {
|
|
grow2 = tmp11.grow;
|
|
}
|
|
const items5 = [grow2, , , ];
|
|
if (shrink2) {
|
|
shrink2 = tmp11.shrink;
|
|
}
|
|
items5[1] = shrink2;
|
|
items5[2] = style;
|
|
let expressiveButtonContainer = startsWithResult;
|
|
if (startsWithResult) {
|
|
expressiveButtonContainer = tmp11.expressiveButtonContainer;
|
|
}
|
|
items5[3] = expressiveButtonContainer;
|
|
obj3.style = items5;
|
|
let str4 = "box-only";
|
|
if (!startsWithResult) {
|
|
str4 = iconOpticalOffsetMargin.pointerEvents;
|
|
}
|
|
obj3.pointerEvents = str4;
|
|
obj3.pressed = sharedValue;
|
|
obj3.accessibilityRole = str2;
|
|
if (accessibilityLabel == null) {
|
|
accessibilityLabel = tmp8(tmp9[17]).getNodeText(text);
|
|
const tmp8Result2 = tmp8(tmp9[17]);
|
|
}
|
|
obj3.accessibilityLabel = accessibilityLabel;
|
|
obj3.hitSlop = createCacheKey[size];
|
|
const obj4 = { variant: str3, size, loading: iconOpticalOffsetMargin.loading, pressed: sharedValue, style: pillStyle, shiny: undefined !== shiny && shiny, expressiveRiveRef: null, expressivePressState: null, children: null };
|
|
let tmp28;
|
|
if (startsWithResult) {
|
|
tmp28 = ref;
|
|
}
|
|
obj4[6] = tmp28;
|
|
let first;
|
|
if (startsWithResult) {
|
|
first = tmp15[0];
|
|
}
|
|
obj4[7] = first;
|
|
const obj5 = { value: size, children: null };
|
|
let tmp31 = null != icon;
|
|
if (tmp31) {
|
|
tmp31 = "start" === str;
|
|
}
|
|
if (tmp31) {
|
|
tmp31 = tmp20;
|
|
}
|
|
const items6 = [tmp31, , ];
|
|
let tmp26Result = textElement;
|
|
if (undefined !== collapseText) {
|
|
const obj6 = { collapseText: null, children: null };
|
|
obj6[0] = collapseText;
|
|
obj6[1] = textElement;
|
|
tmp26Result = tmp26(CollapsingText, obj6);
|
|
}
|
|
items6[1] = tmp26Result;
|
|
let tmp34 = null != icon;
|
|
if (tmp34) {
|
|
tmp34 = "end" === str;
|
|
}
|
|
if (tmp34) {
|
|
tmp34 = tmp20;
|
|
}
|
|
items6[2] = tmp34;
|
|
obj5[1] = items6;
|
|
obj4[8] = closure_8(redux.Provider, obj5);
|
|
obj3.children = callback(onPressIn(onLayout[18]).ButtonPill, obj4);
|
|
return callback(onPressIn(onLayout[16]).BaseButton, obj3);
|
|
}), {
|
|
Icon: function TextButtonIcon(source) {
|
|
let str = source.variant;
|
|
if (str === undefined) {
|
|
str = "icon";
|
|
}
|
|
let flag = source.disableColor;
|
|
if (flag === undefined) {
|
|
flag = true;
|
|
}
|
|
const context = importAllResult.useContext(closure_13);
|
|
let obj = styleProperties;
|
|
obj = { source: source.source, disableColor: flag, style: obj.useIconSizeStyles(context) };
|
|
const tmp4 = callback(closure_12, obj);
|
|
let tmp3Result = tmp4;
|
|
if ("entity" === str) {
|
|
obj = { style: null, children: null };
|
|
obj[0] = tmp2.entityWrapper;
|
|
obj[1] = tmp4;
|
|
tmp3Result = callback(closure_6, obj);
|
|
}
|
|
return tmp3Result;
|
|
}
|
|
});
|
|
let obj5 = {
|
|
Icon: function TextButtonIcon(source) {
|
|
let str = source.variant;
|
|
if (str === undefined) {
|
|
str = "icon";
|
|
}
|
|
let flag = source.disableColor;
|
|
if (flag === undefined) {
|
|
flag = true;
|
|
}
|
|
const context = importAllResult.useContext(closure_13);
|
|
let obj = styleProperties;
|
|
obj = { source: source.source, disableColor: flag, style: obj.useIconSizeStyles(context) };
|
|
const tmp4 = callback(closure_12, obj);
|
|
let tmp3Result = tmp4;
|
|
if ("entity" === str) {
|
|
obj = { style: null, children: null };
|
|
obj[0] = tmp2.entityWrapper;
|
|
obj[1] = tmp4;
|
|
tmp3Result = callback(closure_6, obj);
|
|
}
|
|
return tmp3Result;
|
|
}
|
|
};
|
|
let result = require("set").fileFinishedImporting("design/components/Button/native/BaseTextButton.native.tsx");
|
|
|
|
export const BaseTextButton = merged;
|