repoweaver
Version:
A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies
1 lines • 41.8 kB
JSON
{"ast":null,"code":"import Platform from \"react-native-web/dist/exports/Platform\";\nimport color from 'color';\nimport { AdornmentSide, AdornmentType } from \"./Adornment/enums\";\nimport { MIN_WIDTH, ADORNMENT_SIZE, MD2_ADORNMENT_OFFSET, MD2_AFFIX_OFFSET, MD2_FLAT_INPUT_OFFSET, MD2_ICON_OFFSET, MD2_INPUT_PADDING_HORIZONTAL, MD2_LABEL_PADDING_HORIZONTAL, MD2_LABEL_PADDING_TOP, MD2_MIN_HEIGHT, MD2_OUTLINED_INPUT_OFFSET, MD3_ADORNMENT_OFFSET, MD3_AFFIX_OFFSET, MD3_FLAT_INPUT_OFFSET, MD3_ICON_OFFSET, MD3_INPUT_PADDING_HORIZONTAL, MD3_LABEL_PADDING_HORIZONTAL, MD3_LABEL_PADDING_TOP, MD3_MIN_HEIGHT, MD3_OUTLINED_INPUT_OFFSET } from \"./constants\";\nexport const calculateLabelTopPosition = (labelHeight, height = 0, optionalPadding = 0) => {\n const customHeight = height > 0 ? height : 0;\n return Math.floor((customHeight - labelHeight) / 2 + optionalPadding);\n};\nexport const calculateInputHeight = (labelHeight, height = 0, minHeight) => {\n const finalHeight = height > 0 ? height : labelHeight;\n if (height > 0) return height;\n return finalHeight < minHeight ? minHeight : finalHeight;\n};\nexport const calculatePadding = props => {\n const {\n height,\n multiline = false\n } = props;\n let result = 0;\n if (multiline) {\n if (height && multiline) {\n result = calculateTextAreaPadding(props);\n } else {\n result = calculateInputPadding(props);\n }\n }\n return Math.max(0, result);\n};\nconst calculateTextAreaPadding = props => {\n const {\n dense\n } = props;\n return dense ? 10 : 20;\n};\nconst calculateInputPadding = ({\n topPosition,\n fontSize,\n multiline,\n scale,\n dense,\n offset,\n isAndroid\n}) => {\n const refFontSize = scale * fontSize;\n let result = Math.floor(topPosition / 2);\n result = result + Math.floor((refFontSize - fontSize) / 2) - (scale < 1 ? offset / 2 : 0);\n if (multiline && isAndroid) result = Math.min(dense ? offset / 2 : offset, result);\n return result;\n};\nexport const adjustPaddingOut = ({\n pad,\n multiline,\n label,\n scale,\n height,\n fontSize,\n lineHeight,\n dense,\n offset,\n isAndroid\n}) => {\n const fontHeight = lineHeight ?? fontSize;\n const refFontHeight = scale * fontSize;\n let result = pad;\n if (!isAndroid && height && !multiline) {\n return {\n paddingTop: Math.max(0, (height - fontHeight) / 2),\n paddingBottom: Math.max(0, (height - fontHeight) / 2)\n };\n }\n if (!isAndroid && multiline) {\n if (dense) {\n if (label) {\n result += scale < 1 ? Math.min(offset, refFontHeight / 2 * scale) : 0;\n } else {\n result += 0;\n }\n }\n if (!dense) {\n if (label) {\n result += scale < 1 ? Math.min(offset, refFontHeight * scale) : Math.min(offset / 2, refFontHeight * scale);\n } else {\n result += scale < 1 ? Math.min(offset / 2, refFontHeight * scale) : 0;\n }\n }\n result = Math.floor(result);\n }\n return {\n paddingTop: result,\n paddingBottom: result\n };\n};\nexport const adjustPaddingFlat = ({\n pad,\n scale,\n multiline,\n label,\n height,\n offset,\n dense,\n fontSize,\n isAndroid,\n styles\n}) => {\n let result = pad;\n let topResult = result;\n let bottomResult = result;\n const {\n paddingTop,\n paddingBottom\n } = styles;\n const refFontSize = scale * fontSize;\n if (!multiline) {\n if (label) {\n return {\n paddingTop,\n paddingBottom\n };\n }\n return {\n paddingTop: result,\n paddingBottom: result\n };\n }\n if (label) {\n topResult = paddingTop;\n bottomResult = paddingBottom;\n if (!isAndroid) {\n if (dense) {\n topResult += scale < 1 ? Math.min(result, refFontSize * scale) - result / 2 : Math.min(result, refFontSize * scale) - result / 2;\n }\n if (!dense) {\n topResult += scale < 1 ? Math.min(offset / 2, refFontSize * scale) : Math.min(result, refFontSize * scale) - offset / 2;\n }\n }\n topResult = Math.floor(topResult);\n } else {\n if (height) {\n return {\n paddingTop: Math.max(0, (height - fontSize) / 2),\n paddingBottom: Math.max(0, (height - fontSize) / 2)\n };\n }\n if (!isAndroid) {\n if (dense) {\n result += scale < 1 ? Math.min(offset / 2, fontSize / 2 * scale) : Math.min(offset / 2, scale);\n }\n if (!dense) {\n result += scale < 1 ? Math.min(offset, fontSize * scale) : Math.min(fontSize, offset / 2 * scale);\n }\n result = Math.floor(result);\n topResult = result;\n bottomResult = result;\n }\n }\n return {\n paddingTop: Math.max(0, topResult),\n paddingBottom: Math.max(0, bottomResult)\n };\n};\nexport function calculateFlatAffixTopPosition({\n height,\n paddingTop,\n paddingBottom,\n affixHeight\n}) {\n const inputHeightWithoutPadding = height - paddingTop - paddingBottom;\n const halfOfTheInputHeightDecreasedByAffixHeight = (inputHeightWithoutPadding - affixHeight) / 2;\n return paddingTop + halfOfTheInputHeightDecreasedByAffixHeight;\n}\nexport function calculateOutlinedIconAndAffixTopPosition({\n height,\n affixHeight,\n labelYOffset\n}) {\n return (height - affixHeight + labelYOffset) / 2;\n}\nexport const calculateFlatInputHorizontalPadding = ({\n adornmentConfig,\n isV3\n}) => {\n const {\n LABEL_PADDING_HORIZONTAL,\n ADORNMENT_OFFSET,\n FLAT_INPUT_OFFSET\n } = getConstants(isV3);\n let paddingLeft = LABEL_PADDING_HORIZONTAL;\n let paddingRight = LABEL_PADDING_HORIZONTAL;\n adornmentConfig.forEach(({\n type,\n side\n }) => {\n if (type === AdornmentType.Icon && side === AdornmentSide.Left) {\n paddingLeft = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n } else if (side === AdornmentSide.Right) {\n if (type === AdornmentType.Affix) {\n paddingRight = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n } else if (type === AdornmentType.Icon) {\n paddingRight = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n }\n }\n });\n return {\n paddingLeft,\n paddingRight\n };\n};\nconst getInputTextColor = ({\n theme,\n textColor,\n disabled\n}) => {\n if (textColor) {\n return textColor;\n }\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n return theme.colors.onSurface;\n }\n if (disabled) {\n return color(theme.colors.text).alpha(0.54).rgb().string();\n }\n return theme.colors.text;\n};\nconst getActiveColor = ({\n theme,\n disabled,\n error,\n activeUnderlineColor,\n activeOutlineColor,\n mode\n}) => {\n const isFlat = mode === 'flat';\n const modeColor = isFlat ? activeUnderlineColor : activeOutlineColor;\n if (error) {\n return theme.colors.error;\n }\n if (modeColor) {\n return modeColor;\n }\n if (disabled) {\n if (theme.isV3) {\n return theme.colors.onSurfaceDisabled;\n }\n return color(theme.colors.text).alpha(0.54).rgb().string();\n }\n return theme.colors.primary;\n};\nconst getPlaceholderColor = ({\n theme,\n disabled\n}) => {\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n return theme.colors.onSurfaceVariant;\n }\n if (disabled) {\n return theme.colors.disabled;\n }\n return theme.colors.placeholder;\n};\nconst getSelectionColor = ({\n activeColor,\n customSelectionColor\n}) => {\n if (typeof customSelectionColor !== 'undefined') {\n return customSelectionColor;\n }\n if (Platform.OS === 'android') {\n return color(activeColor).alpha(0.54).rgb().string();\n }\n return activeColor;\n};\nconst getFlatBackgroundColor = ({\n theme,\n disabled\n}) => {\n var _theme$colors, _theme$colors2;\n if (theme.isV3) {\n if (disabled) {\n return color(theme.colors.onSurface).alpha(0.04).rgb().string();\n } else {\n return theme.colors.surfaceVariant;\n }\n }\n if (disabled) {\n return undefined;\n }\n return theme.dark ? color((_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.background).lighten(0.24).rgb().string() : color((_theme$colors2 = theme.colors) === null || _theme$colors2 === void 0 ? void 0 : _theme$colors2.background).darken(0.06).rgb().string();\n};\nconst getFlatUnderlineColor = ({\n theme,\n disabled,\n underlineColor\n}) => {\n if (!disabled && underlineColor) {\n return underlineColor;\n }\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n return theme.colors.onSurfaceVariant;\n }\n if (disabled) {\n return 'transparent';\n }\n return theme.colors.disabled;\n};\nconst getOutlinedOutlineInputColor = ({\n theme,\n disabled,\n customOutlineColor\n}) => {\n const isTransparent = color(customOutlineColor).alpha() === 0;\n if (!disabled && customOutlineColor) {\n return customOutlineColor;\n }\n if (theme.isV3) {\n if (disabled) {\n if (theme.dark) {\n return 'transparent';\n }\n return theme.colors.surfaceDisabled;\n }\n return theme.colors.outline;\n }\n if (disabled) {\n if (isTransparent) {\n return customOutlineColor;\n }\n return theme.colors.disabled;\n }\n return theme.colors.placeholder;\n};\nexport const getFlatInputColors = ({\n underlineColor,\n activeUnderlineColor,\n customSelectionColor,\n textColor,\n disabled,\n error,\n theme\n}) => {\n const baseFlatColorProps = {\n theme,\n disabled\n };\n const activeColor = getActiveColor(Object.assign({}, baseFlatColorProps, {\n error,\n activeUnderlineColor,\n mode: 'flat'\n }));\n return {\n inputTextColor: getInputTextColor(Object.assign({}, baseFlatColorProps, {\n textColor\n })),\n activeColor,\n underlineColorCustom: getFlatUnderlineColor(Object.assign({}, baseFlatColorProps, {\n underlineColor\n })),\n placeholderColor: getPlaceholderColor(baseFlatColorProps),\n selectionColor: getSelectionColor({\n activeColor,\n customSelectionColor\n }),\n errorColor: theme.colors.error,\n backgroundColor: getFlatBackgroundColor(baseFlatColorProps)\n };\n};\nexport const getOutlinedInputColors = ({\n activeOutlineColor,\n customOutlineColor,\n customSelectionColor,\n textColor,\n disabled,\n error,\n theme\n}) => {\n const baseOutlinedColorProps = {\n theme,\n disabled\n };\n const activeColor = getActiveColor(Object.assign({}, baseOutlinedColorProps, {\n error,\n activeOutlineColor,\n mode: 'outlined'\n }));\n return {\n inputTextColor: getInputTextColor(Object.assign({}, baseOutlinedColorProps, {\n textColor\n })),\n activeColor,\n outlineColor: getOutlinedOutlineInputColor(Object.assign({}, baseOutlinedColorProps, {\n customOutlineColor\n })),\n placeholderColor: getPlaceholderColor(baseOutlinedColorProps),\n selectionColor: getSelectionColor({\n activeColor,\n customSelectionColor\n }),\n errorColor: theme.colors.error\n };\n};\nexport const getConstants = isV3 => {\n let AFFIX_OFFSET;\n let ICON_OFFSET;\n let LABEL_PADDING_TOP;\n let LABEL_PADDING_HORIZONTAL;\n let FLAT_INPUT_OFFSET;\n let MIN_HEIGHT;\n let INPUT_PADDING_HORIZONTAL;\n let ADORNMENT_OFFSET;\n let OUTLINED_INPUT_OFFSET;\n if (isV3) {\n AFFIX_OFFSET = MD3_AFFIX_OFFSET;\n ICON_OFFSET = MD3_ICON_OFFSET;\n LABEL_PADDING_TOP = MD3_LABEL_PADDING_TOP;\n LABEL_PADDING_HORIZONTAL = MD3_LABEL_PADDING_HORIZONTAL;\n FLAT_INPUT_OFFSET = MD3_FLAT_INPUT_OFFSET;\n MIN_HEIGHT = MD3_MIN_HEIGHT;\n INPUT_PADDING_HORIZONTAL = MD3_INPUT_PADDING_HORIZONTAL;\n ADORNMENT_OFFSET = MD3_ADORNMENT_OFFSET;\n OUTLINED_INPUT_OFFSET = MD3_OUTLINED_INPUT_OFFSET;\n } else {\n AFFIX_OFFSET = MD2_AFFIX_OFFSET;\n ICON_OFFSET = MD2_ICON_OFFSET;\n LABEL_PADDING_TOP = MD2_LABEL_PADDING_TOP;\n LABEL_PADDING_HORIZONTAL = MD2_LABEL_PADDING_HORIZONTAL;\n FLAT_INPUT_OFFSET = MD2_FLAT_INPUT_OFFSET;\n MIN_HEIGHT = MD2_MIN_HEIGHT;\n INPUT_PADDING_HORIZONTAL = MD2_INPUT_PADDING_HORIZONTAL;\n ADORNMENT_OFFSET = MD2_ADORNMENT_OFFSET;\n OUTLINED_INPUT_OFFSET = MD2_OUTLINED_INPUT_OFFSET;\n }\n return {\n AFFIX_OFFSET,\n ICON_OFFSET,\n LABEL_PADDING_TOP,\n LABEL_PADDING_HORIZONTAL,\n FLAT_INPUT_OFFSET,\n MIN_HEIGHT,\n INPUT_PADDING_HORIZONTAL,\n ADORNMENT_OFFSET,\n OUTLINED_INPUT_OFFSET,\n MIN_WIDTH\n };\n};","map":{"version":3,"names":["color","AdornmentSide","AdornmentType","MIN_WIDTH","ADORNMENT_SIZE","MD2_ADORNMENT_OFFSET","MD2_AFFIX_OFFSET","MD2_FLAT_INPUT_OFFSET","MD2_ICON_OFFSET","MD2_INPUT_PADDING_HORIZONTAL","MD2_LABEL_PADDING_HORIZONTAL","MD2_LABEL_PADDING_TOP","MD2_MIN_HEIGHT","MD2_OUTLINED_INPUT_OFFSET","MD3_ADORNMENT_OFFSET","MD3_AFFIX_OFFSET","MD3_FLAT_INPUT_OFFSET","MD3_ICON_OFFSET","MD3_INPUT_PADDING_HORIZONTAL","MD3_LABEL_PADDING_HORIZONTAL","MD3_LABEL_PADDING_TOP","MD3_MIN_HEIGHT","MD3_OUTLINED_INPUT_OFFSET","calculateLabelTopPosition","labelHeight","height","optionalPadding","customHeight","Math","floor","calculateInputHeight","minHeight","finalHeight","calculatePadding","props","multiline","result","calculateTextAreaPadding","calculateInputPadding","max","dense","topPosition","fontSize","scale","offset","isAndroid","refFontSize","min","adjustPaddingOut","pad","label","lineHeight","fontHeight","refFontHeight","paddingTop","paddingBottom","adjustPaddingFlat","styles","topResult","bottomResult","calculateFlatAffixTopPosition","affixHeight","inputHeightWithoutPadding","halfOfTheInputHeightDecreasedByAffixHeight","calculateOutlinedIconAndAffixTopPosition","labelYOffset","calculateFlatInputHorizontalPadding","adornmentConfig","isV3","LABEL_PADDING_HORIZONTAL","ADORNMENT_OFFSET","FLAT_INPUT_OFFSET","getConstants","paddingLeft","paddingRight","forEach","type","side","Icon","Left","Right","Affix","getInputTextColor","theme","textColor","disabled","colors","onSurfaceDisabled","onSurface","text","alpha","rgb","string","getActiveColor","error","activeUnderlineColor","activeOutlineColor","mode","isFlat","modeColor","primary","getPlaceholderColor","onSurfaceVariant","placeholder","getSelectionColor","activeColor","customSelectionColor","Platform","OS","getFlatBackgroundColor","_theme$colors","_theme$colors2","surfaceVariant","undefined","dark","background","lighten","darken","getFlatUnderlineColor","underlineColor","getOutlinedOutlineInputColor","customOutlineColor","isTransparent","surfaceDisabled","outline","getFlatInputColors","baseFlatColorProps","Object","assign","inputTextColor","underlineColorCustom","placeholderColor","selectionColor","errorColor","backgroundColor","getOutlinedInputColors","baseOutlinedColorProps","outlineColor","AFFIX_OFFSET","ICON_OFFSET","LABEL_PADDING_TOP","MIN_HEIGHT","INPUT_PADDING_HORIZONTAL","OUTLINED_INPUT_OFFSET"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/react-native-paper/src/components/TextInput/helpers.tsx"],"sourcesContent":["import { Platform } from 'react-native';\n\nimport color from 'color';\n\nimport { AdornmentSide, AdornmentType } from './Adornment/enums';\nimport type { AdornmentConfig } from './Adornment/types';\nimport {\n MIN_WIDTH,\n ADORNMENT_SIZE,\n MD2_ADORNMENT_OFFSET,\n MD2_AFFIX_OFFSET,\n MD2_FLAT_INPUT_OFFSET,\n MD2_ICON_OFFSET,\n MD2_INPUT_PADDING_HORIZONTAL,\n MD2_LABEL_PADDING_HORIZONTAL,\n MD2_LABEL_PADDING_TOP,\n MD2_MIN_HEIGHT,\n MD2_OUTLINED_INPUT_OFFSET,\n MD3_ADORNMENT_OFFSET,\n MD3_AFFIX_OFFSET,\n MD3_FLAT_INPUT_OFFSET,\n MD3_ICON_OFFSET,\n MD3_INPUT_PADDING_HORIZONTAL,\n MD3_LABEL_PADDING_HORIZONTAL,\n MD3_LABEL_PADDING_TOP,\n MD3_MIN_HEIGHT,\n MD3_OUTLINED_INPUT_OFFSET,\n} from './constants';\nimport type { TextInputLabelProp } from './types';\nimport type { InternalTheme } from '../../types';\n\ntype PaddingProps = {\n height: number | null;\n labelHalfHeight: number;\n multiline: boolean | null;\n dense: boolean | null;\n topPosition: number;\n fontSize: number;\n lineHeight?: number;\n label?: TextInputLabelProp | null;\n scale: number;\n offset: number;\n isAndroid: boolean;\n styles: { paddingTop: number; paddingBottom: number };\n};\n\ntype AdjProps = PaddingProps & {\n pad: number;\n};\n\nexport type Padding = { paddingTop: number; paddingBottom: number };\n\nexport const calculateLabelTopPosition = (\n labelHeight: number,\n height: number = 0,\n optionalPadding: number = 0\n): number => {\n const customHeight = height > 0 ? height : 0;\n\n return Math.floor((customHeight - labelHeight) / 2 + optionalPadding);\n};\n\nexport const calculateInputHeight = (\n labelHeight: number,\n height: any = 0,\n minHeight: number\n): number => {\n const finalHeight = height > 0 ? height : labelHeight;\n\n if (height > 0) return height;\n return finalHeight < minHeight ? minHeight : finalHeight;\n};\n\nexport const calculatePadding = (props: PaddingProps): number => {\n const { height, multiline = false } = props;\n\n let result = 0;\n\n if (multiline) {\n if (height && multiline) {\n result = calculateTextAreaPadding(props);\n } else {\n result = calculateInputPadding(props);\n }\n }\n\n return Math.max(0, result);\n};\n\nconst calculateTextAreaPadding = (props: PaddingProps) => {\n const { dense } = props;\n\n return dense ? 10 : 20;\n};\n\nconst calculateInputPadding = ({\n topPosition,\n fontSize,\n multiline,\n scale,\n dense,\n offset,\n isAndroid,\n}: PaddingProps): number => {\n const refFontSize = scale * fontSize;\n let result = Math.floor(topPosition / 2);\n\n result =\n result +\n Math.floor((refFontSize - fontSize) / 2) -\n (scale < 1 ? offset / 2 : 0);\n\n if (multiline && isAndroid)\n result = Math.min(dense ? offset / 2 : offset, result);\n\n return result;\n};\n\nexport const adjustPaddingOut = ({\n pad,\n multiline,\n label,\n scale,\n height,\n fontSize,\n lineHeight,\n dense,\n offset,\n isAndroid,\n}: AdjProps): Padding => {\n const fontHeight = lineHeight ?? fontSize;\n const refFontHeight = scale * fontSize;\n let result = pad;\n\n if (!isAndroid && height && !multiline) {\n return {\n paddingTop: Math.max(0, (height - fontHeight) / 2),\n paddingBottom: Math.max(0, (height - fontHeight) / 2),\n };\n }\n if (!isAndroid && multiline) {\n if (dense) {\n if (label) {\n result += scale < 1 ? Math.min(offset, (refFontHeight / 2) * scale) : 0;\n } else {\n result += 0;\n }\n }\n if (!dense) {\n if (label) {\n result +=\n scale < 1\n ? Math.min(offset, refFontHeight * scale)\n : Math.min(offset / 2, refFontHeight * scale);\n } else {\n result += scale < 1 ? Math.min(offset / 2, refFontHeight * scale) : 0;\n }\n }\n result = Math.floor(result);\n }\n return { paddingTop: result, paddingBottom: result };\n};\n\nexport const adjustPaddingFlat = ({\n pad,\n scale,\n multiline,\n label,\n height,\n offset,\n dense,\n fontSize,\n isAndroid,\n styles,\n}: AdjProps): Padding => {\n let result = pad;\n let topResult = result;\n let bottomResult = result;\n const { paddingTop, paddingBottom } = styles;\n const refFontSize = scale * fontSize;\n\n if (!multiline) {\n // do not modify padding if input is not multiline\n if (label) {\n // return const style for flat input with label\n return { paddingTop, paddingBottom };\n }\n // return pad for flat input without label\n return { paddingTop: result, paddingBottom: result };\n }\n\n if (label) {\n // add paddings passed from styles\n topResult = paddingTop;\n bottomResult = paddingBottom;\n\n // adjust top padding for iOS\n if (!isAndroid) {\n if (dense) {\n topResult +=\n scale < 1\n ? Math.min(result, refFontSize * scale) - result / 2\n : Math.min(result, refFontSize * scale) - result / 2;\n }\n if (!dense) {\n topResult +=\n scale < 1\n ? Math.min(offset / 2, refFontSize * scale)\n : Math.min(result, refFontSize * scale) - offset / 2;\n }\n }\n topResult = Math.floor(topResult);\n } else {\n if (height) {\n // center text when height is passed\n return {\n paddingTop: Math.max(0, (height - fontSize) / 2),\n paddingBottom: Math.max(0, (height - fontSize) / 2),\n };\n }\n // adjust paddings for iOS if no label\n if (!isAndroid) {\n if (dense) {\n result +=\n scale < 1\n ? Math.min(offset / 2, (fontSize / 2) * scale)\n : Math.min(offset / 2, scale);\n }\n if (!dense) {\n result +=\n scale < 1\n ? Math.min(offset, fontSize * scale)\n : Math.min(fontSize, (offset / 2) * scale);\n }\n\n result = Math.floor(result);\n topResult = result;\n bottomResult = result;\n }\n }\n\n return {\n paddingTop: Math.max(0, topResult),\n paddingBottom: Math.max(0, bottomResult),\n };\n};\n\nexport function calculateFlatAffixTopPosition({\n height,\n paddingTop,\n paddingBottom,\n affixHeight,\n}: {\n height: number;\n paddingTop: number;\n paddingBottom: number;\n affixHeight: number;\n}): number {\n const inputHeightWithoutPadding = height - paddingTop - paddingBottom;\n\n const halfOfTheInputHeightDecreasedByAffixHeight =\n (inputHeightWithoutPadding - affixHeight) / 2;\n\n return paddingTop + halfOfTheInputHeightDecreasedByAffixHeight;\n}\n\nexport function calculateOutlinedIconAndAffixTopPosition({\n height,\n affixHeight,\n labelYOffset,\n}: {\n height: number;\n affixHeight: number;\n labelYOffset: number;\n}): number {\n return (height - affixHeight + labelYOffset) / 2;\n}\n\nexport const calculateFlatInputHorizontalPadding = ({\n adornmentConfig,\n isV3,\n}: {\n adornmentConfig: AdornmentConfig[];\n isV3?: boolean;\n}) => {\n const { LABEL_PADDING_HORIZONTAL, ADORNMENT_OFFSET, FLAT_INPUT_OFFSET } =\n getConstants(isV3);\n\n let paddingLeft = LABEL_PADDING_HORIZONTAL;\n let paddingRight = LABEL_PADDING_HORIZONTAL;\n\n adornmentConfig.forEach(({ type, side }) => {\n if (type === AdornmentType.Icon && side === AdornmentSide.Left) {\n paddingLeft = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n } else if (side === AdornmentSide.Right) {\n if (type === AdornmentType.Affix) {\n paddingRight = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n } else if (type === AdornmentType.Icon) {\n paddingRight = ADORNMENT_SIZE + ADORNMENT_OFFSET + FLAT_INPUT_OFFSET;\n }\n }\n });\n\n return { paddingLeft, paddingRight };\n};\n\ntype BaseProps = {\n theme: InternalTheme;\n disabled?: boolean;\n};\n\ntype Mode = 'flat' | 'outlined';\n\nconst getInputTextColor = ({\n theme,\n textColor,\n disabled,\n}: BaseProps & { textColor?: string }) => {\n if (textColor) {\n return textColor;\n }\n\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n\n return theme.colors.onSurface;\n }\n\n if (disabled) {\n return color(theme.colors.text).alpha(0.54).rgb().string();\n }\n\n return theme.colors.text;\n};\n\nconst getActiveColor = ({\n theme,\n disabled,\n error,\n activeUnderlineColor,\n activeOutlineColor,\n mode,\n}: BaseProps & {\n error?: boolean;\n activeUnderlineColor?: string;\n activeOutlineColor?: string;\n mode?: Mode;\n}) => {\n const isFlat = mode === 'flat';\n const modeColor = isFlat ? activeUnderlineColor : activeOutlineColor;\n\n if (error) {\n return theme.colors.error;\n }\n\n if (modeColor) {\n return modeColor;\n }\n\n if (disabled) {\n if (theme.isV3) {\n return theme.colors.onSurfaceDisabled;\n }\n\n return color(theme.colors.text).alpha(0.54).rgb().string();\n }\n\n return theme.colors.primary;\n};\n\nconst getPlaceholderColor = ({ theme, disabled }: BaseProps) => {\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n\n return theme.colors.onSurfaceVariant;\n }\n\n if (disabled) {\n return theme.colors.disabled;\n }\n\n return theme.colors.placeholder;\n};\n\nconst getSelectionColor = ({\n activeColor,\n customSelectionColor,\n}: {\n activeColor: string;\n customSelectionColor?: string;\n}) => {\n if (typeof customSelectionColor !== 'undefined') {\n return customSelectionColor;\n }\n\n if (Platform.OS === 'android') {\n return color(activeColor).alpha(0.54).rgb().string();\n }\n\n return activeColor;\n};\n\nconst getFlatBackgroundColor = ({ theme, disabled }: BaseProps) => {\n if (theme.isV3) {\n if (disabled) {\n return color(theme.colors.onSurface).alpha(0.04).rgb().string();\n } else {\n return theme.colors.surfaceVariant;\n }\n }\n\n if (disabled) {\n return undefined;\n }\n\n return theme.dark\n ? color(theme.colors?.background).lighten(0.24).rgb().string()\n : color(theme.colors?.background).darken(0.06).rgb().string();\n};\n\nconst getFlatUnderlineColor = ({\n theme,\n disabled,\n underlineColor,\n}: BaseProps & { underlineColor?: string }) => {\n if (!disabled && underlineColor) {\n return underlineColor;\n }\n\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n\n return theme.colors.onSurfaceVariant;\n }\n\n if (disabled) {\n return 'transparent';\n }\n\n return theme.colors.disabled;\n};\n\nconst getOutlinedOutlineInputColor = ({\n theme,\n disabled,\n customOutlineColor,\n}: BaseProps & { customOutlineColor?: string }) => {\n const isTransparent = color(customOutlineColor).alpha() === 0;\n\n if (!disabled && customOutlineColor) {\n return customOutlineColor;\n }\n\n if (theme.isV3) {\n if (disabled) {\n if (theme.dark) {\n return 'transparent';\n }\n return theme.colors.surfaceDisabled;\n }\n\n return theme.colors.outline;\n }\n\n if (disabled) {\n if (isTransparent) {\n return customOutlineColor;\n }\n return theme.colors.disabled;\n }\n return theme.colors.placeholder;\n};\n\nexport const getFlatInputColors = ({\n underlineColor,\n activeUnderlineColor,\n customSelectionColor,\n textColor,\n disabled,\n error,\n theme,\n}: {\n underlineColor?: string;\n activeUnderlineColor?: string;\n customSelectionColor?: string;\n textColor?: string;\n disabled?: boolean;\n error?: boolean;\n theme: InternalTheme;\n}) => {\n const baseFlatColorProps = { theme, disabled };\n const activeColor = getActiveColor({\n ...baseFlatColorProps,\n error,\n activeUnderlineColor,\n mode: 'flat',\n });\n\n return {\n inputTextColor: getInputTextColor({\n ...baseFlatColorProps,\n textColor,\n }),\n activeColor,\n underlineColorCustom: getFlatUnderlineColor({\n ...baseFlatColorProps,\n underlineColor,\n }),\n placeholderColor: getPlaceholderColor(baseFlatColorProps),\n selectionColor: getSelectionColor({ activeColor, customSelectionColor }),\n errorColor: theme.colors.error,\n backgroundColor: getFlatBackgroundColor(baseFlatColorProps),\n };\n};\n\nexport const getOutlinedInputColors = ({\n activeOutlineColor,\n customOutlineColor,\n customSelectionColor,\n textColor,\n disabled,\n error,\n theme,\n}: {\n activeOutlineColor?: string;\n customOutlineColor?: string;\n customSelectionColor?: string;\n textColor?: string;\n disabled?: boolean;\n error?: boolean;\n theme: InternalTheme;\n}) => {\n const baseOutlinedColorProps = { theme, disabled };\n const activeColor = getActiveColor({\n ...baseOutlinedColorProps,\n error,\n activeOutlineColor,\n mode: 'outlined',\n });\n\n return {\n inputTextColor: getInputTextColor({\n ...baseOutlinedColorProps,\n textColor,\n }),\n activeColor,\n outlineColor: getOutlinedOutlineInputColor({\n ...baseOutlinedColorProps,\n customOutlineColor,\n }),\n placeholderColor: getPlaceholderColor(baseOutlinedColorProps),\n selectionColor: getSelectionColor({ activeColor, customSelectionColor }),\n errorColor: theme.colors.error,\n };\n};\n\nexport const getConstants = (isV3?: boolean) => {\n // Text input affix\n let AFFIX_OFFSET;\n // Text input icon\n let ICON_OFFSET;\n //Text input flat\n let LABEL_PADDING_TOP;\n let LABEL_PADDING_HORIZONTAL;\n let FLAT_INPUT_OFFSET;\n let MIN_HEIGHT;\n // Text input outlined;\n let INPUT_PADDING_HORIZONTAL;\n let ADORNMENT_OFFSET;\n let OUTLINED_INPUT_OFFSET;\n\n if (isV3) {\n AFFIX_OFFSET = MD3_AFFIX_OFFSET;\n ICON_OFFSET = MD3_ICON_OFFSET;\n LABEL_PADDING_TOP = MD3_LABEL_PADDING_TOP;\n LABEL_PADDING_HORIZONTAL = MD3_LABEL_PADDING_HORIZONTAL;\n FLAT_INPUT_OFFSET = MD3_FLAT_INPUT_OFFSET;\n MIN_HEIGHT = MD3_MIN_HEIGHT;\n INPUT_PADDING_HORIZONTAL = MD3_INPUT_PADDING_HORIZONTAL;\n ADORNMENT_OFFSET = MD3_ADORNMENT_OFFSET;\n OUTLINED_INPUT_OFFSET = MD3_OUTLINED_INPUT_OFFSET;\n } else {\n AFFIX_OFFSET = MD2_AFFIX_OFFSET;\n ICON_OFFSET = MD2_ICON_OFFSET;\n LABEL_PADDING_TOP = MD2_LABEL_PADDING_TOP;\n LABEL_PADDING_HORIZONTAL = MD2_LABEL_PADDING_HORIZONTAL;\n FLAT_INPUT_OFFSET = MD2_FLAT_INPUT_OFFSET;\n MIN_HEIGHT = MD2_MIN_HEIGHT;\n INPUT_PADDING_HORIZONTAL = MD2_INPUT_PADDING_HORIZONTAL;\n ADORNMENT_OFFSET = MD2_ADORNMENT_OFFSET;\n OUTLINED_INPUT_OFFSET = MD2_OUTLINED_INPUT_OFFSET;\n }\n\n return {\n AFFIX_OFFSET,\n ICON_OFFSET,\n LABEL_PADDING_TOP,\n LABEL_PADDING_HORIZONTAL,\n FLAT_INPUT_OFFSET,\n MIN_HEIGHT,\n INPUT_PADDING_HORIZONTAL,\n ADORNMENT_OFFSET,\n OUTLINED_INPUT_OFFSET,\n MIN_WIDTH,\n };\n};\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}