{"ast":null,"code":"function _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nimport React from 'react';\nimport { AdornmentSide, AdornmentType, InputMode } from \"./enums\";\nimport TextInputAffix, { AffixAdornment } from \"./TextInputAffix\";\nimport TextInputIcon, { IconAdornment } from \"./TextInputIcon\";\nimport { getConstants } from \"../helpers\";\nexport function getAdornmentConfig({\n  left,\n  right\n}) {\n  let adornmentConfig = [];\n  if (left || right) {\n    [{\n      side: AdornmentSide.Left,\n      adornment: left\n    }, {\n      side: AdornmentSide.Right,\n      adornment: right\n    }].forEach(({\n      side,\n      adornment\n    }) => {\n      if (adornment && React.isValidElement(adornment)) {\n        let type;\n        if (adornment.type === TextInputAffix) {\n          type = AdornmentType.Affix;\n        } else if (adornment.type === TextInputIcon) {\n          type = AdornmentType.Icon;\n        }\n        adornmentConfig.push({\n          side,\n          type\n        });\n      }\n    });\n  }\n  return adornmentConfig;\n}\nexport function getAdornmentStyleAdjustmentForNativeInput({\n  adornmentConfig,\n  leftAffixWidth,\n  rightAffixWidth,\n  paddingHorizontal,\n  inputOffset = 0,\n  mode,\n  isV3\n}) {\n  const {\n    OUTLINED_INPUT_OFFSET,\n    ADORNMENT_OFFSET\n  } = getConstants(isV3);\n  if (adornmentConfig.length) {\n    const adornmentStyleAdjustmentForNativeInput = adornmentConfig.map(({\n      type,\n      side\n    }) => {\n      const isLeftSide = side === AdornmentSide.Left;\n      const inputModeAdornemntOffset = mode === InputMode.Outlined ? ADORNMENT_OFFSET + OUTLINED_INPUT_OFFSET : ADORNMENT_OFFSET;\n      const paddingKey = `padding${captalize(side)}`;\n      const affixWidth = isLeftSide ? leftAffixWidth : rightAffixWidth;\n      const padding = typeof paddingHorizontal === 'number' ? paddingHorizontal : inputModeAdornemntOffset;\n      const offset = affixWidth + padding;\n      const isAffix = type === AdornmentType.Affix;\n      const marginKey = `margin${captalize(side)}`;\n      return {\n        [marginKey]: isAffix ? 0 : offset,\n        [paddingKey]: isAffix ? offset : inputOffset\n      };\n    });\n    const allStyleAdjustmentsMerged = adornmentStyleAdjustmentForNativeInput.reduce((mergedStyles, currentStyle) => {\n      return Object.assign({}, mergedStyles, currentStyle);\n    }, {});\n    return allStyleAdjustmentsMerged;\n  } else {\n    return [{}];\n  }\n}\nconst captalize = text => text.charAt(0).toUpperCase() + text.slice(1);\nconst TextInputAdornment = ({\n  adornmentConfig,\n  left,\n  right,\n  onAffixChange,\n  textStyle,\n  visible,\n  topPosition,\n  isTextInputFocused,\n  forceFocus,\n  paddingHorizontal,\n  maxFontSizeMultiplier,\n  theme,\n  disabled\n}) => {\n  if (adornmentConfig.length) {\n    return React.createElement(React.Fragment, null, adornmentConfig.map(({\n      type,\n      side\n    }) => {\n      let inputAdornmentComponent;\n      if (side === AdornmentSide.Left) {\n        inputAdornmentComponent = left;\n      } else if (side === AdornmentSide.Right) {\n        inputAdornmentComponent = right;\n      }\n      const commonProps = {\n        side: side,\n        testID: `${side}-${type}-adornment`,\n        isTextInputFocused,\n        paddingHorizontal,\n        disabled\n      };\n      if (type === AdornmentType.Icon) {\n        return React.createElement(IconAdornment, _extends({}, commonProps, {\n          theme: theme,\n          key: side,\n          icon: inputAdornmentComponent,\n          topPosition: topPosition[AdornmentType.Icon],\n          forceFocus: forceFocus\n        }));\n      } else if (type === AdornmentType.Affix) {\n        return React.createElement(AffixAdornment, _extends({}, commonProps, {\n          key: side,\n          topPosition: topPosition[AdornmentType.Affix][side],\n          affix: inputAdornmentComponent,\n          textStyle: textStyle,\n          onLayout: onAffixChange[side],\n          visible: visible,\n          maxFontSizeMultiplier: maxFontSizeMultiplier\n        }));\n      } else {\n        return null;\n      }\n    }));\n  } else {\n    return null;\n  }\n};\nexport default TextInputAdornment;","map":{"version":3,"names":["React","AdornmentSide","AdornmentType","InputMode","TextInputAffix","AffixAdornment","TextInputIcon","IconAdornment","getConstants","getAdornmentConfig","left","right","adornmentConfig","side","Left","adornment","Right","forEach","isValidElement","type","Affix","Icon","push","getAdornmentStyleAdjustmentForNativeInput","leftAffixWidth","rightAffixWidth","paddingHorizontal","inputOffset","mode","isV3","OUTLINED_INPUT_OFFSET","ADORNMENT_OFFSET","length","adornmentStyleAdjustmentForNativeInput","map","isLeftSide","inputModeAdornemntOffset","Outlined","paddingKey","captalize","affixWidth","padding","offset","isAffix","marginKey","allStyleAdjustmentsMerged","reduce","mergedStyles","currentStyle","Object","assign","text","charAt","toUpperCase","slice","TextInputAdornment","onAffixChange","textStyle","visible","topPosition","isTextInputFocused","forceFocus","maxFontSizeMultiplier","theme","disabled","createElement","Fragment","inputAdornmentComponent","commonProps","testID","_extends","key","icon","affix","onLayout"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/react-native-paper/src/components/TextInput/Adornment/TextInputAdornment.tsx"],"sourcesContent":["import React from 'react';\nimport type {\n  LayoutChangeEvent,\n  TextStyle,\n  StyleProp,\n  Animated,\n  DimensionValue,\n} from 'react-native';\n\nimport type { ThemeProp } from 'src/types';\n\nimport { AdornmentSide, AdornmentType, InputMode } from './enums';\nimport TextInputAffix, { AffixAdornment } from './TextInputAffix';\nimport TextInputIcon, { IconAdornment } from './TextInputIcon';\nimport type {\n  AdornmentConfig,\n  AdornmentStyleAdjustmentForNativeInput,\n} from './types';\nimport { getConstants } from '../helpers';\n\nexport function getAdornmentConfig({\n  left,\n  right,\n}: {\n  left?: React.ReactNode;\n  right?: React.ReactNode;\n}): Array<AdornmentConfig> {\n  let adornmentConfig: any[] = [];\n  if (left || right) {\n    [\n      { side: AdornmentSide.Left, adornment: left },\n      { side: AdornmentSide.Right, adornment: right },\n    ].forEach(({ side, adornment }) => {\n      if (adornment && React.isValidElement(adornment)) {\n        let type;\n        if (adornment.type === TextInputAffix) {\n          type = AdornmentType.Affix;\n        } else if (adornment.type === TextInputIcon) {\n          type = AdornmentType.Icon;\n        }\n        adornmentConfig.push({\n          side,\n          type,\n        });\n      }\n    });\n  }\n\n  return adornmentConfig;\n}\n\nexport function getAdornmentStyleAdjustmentForNativeInput({\n  adornmentConfig,\n  leftAffixWidth,\n  rightAffixWidth,\n  paddingHorizontal,\n  inputOffset = 0,\n  mode,\n  isV3,\n}: {\n  inputOffset?: number;\n  adornmentConfig: AdornmentConfig[];\n  leftAffixWidth: number;\n  rightAffixWidth: number;\n  mode?: 'outlined' | 'flat';\n  paddingHorizontal?: DimensionValue;\n  isV3?: boolean;\n}): AdornmentStyleAdjustmentForNativeInput | {} {\n  const { OUTLINED_INPUT_OFFSET, ADORNMENT_OFFSET } = getConstants(isV3);\n\n  if (adornmentConfig.length) {\n    const adornmentStyleAdjustmentForNativeInput = adornmentConfig.map(\n      ({ type, side }: AdornmentConfig) => {\n        const isLeftSide = side === AdornmentSide.Left;\n        const inputModeAdornemntOffset =\n          mode === InputMode.Outlined\n            ? ADORNMENT_OFFSET + OUTLINED_INPUT_OFFSET\n            : ADORNMENT_OFFSET;\n        const paddingKey = `padding${captalize(side)}`;\n        const affixWidth = isLeftSide ? leftAffixWidth : rightAffixWidth;\n        const padding =\n          typeof paddingHorizontal === 'number'\n            ? paddingHorizontal\n            : inputModeAdornemntOffset;\n        const offset = affixWidth + padding;\n\n        const isAffix = type === AdornmentType.Affix;\n        const marginKey = `margin${captalize(side)}`;\n\n        return {\n          [marginKey]: isAffix ? 0 : offset,\n          [paddingKey]: isAffix ? offset : inputOffset,\n        };\n      }\n    );\n    const allStyleAdjustmentsMerged =\n      adornmentStyleAdjustmentForNativeInput.reduce(\n        (mergedStyles, currentStyle) => {\n          return {\n            ...mergedStyles,\n            ...currentStyle,\n          };\n        },\n        {}\n      );\n    return allStyleAdjustmentsMerged;\n  } else {\n    return [{}];\n  }\n}\n\nconst captalize = (text: string) =>\n  text.charAt(0).toUpperCase() + text.slice(1);\n\nexport interface TextInputAdornmentProps {\n  forceFocus: () => void;\n  adornmentConfig: AdornmentConfig[];\n  topPosition: {\n    [AdornmentType.Affix]: {\n      [AdornmentSide.Left]: number | null;\n      [AdornmentSide.Right]: number | null;\n    };\n    [AdornmentType.Icon]: number;\n  };\n  onAffixChange: {\n    [AdornmentSide.Left]: (event: LayoutChangeEvent) => void;\n    [AdornmentSide.Right]: (event: LayoutChangeEvent) => void;\n  };\n  left?: React.ReactNode;\n  right?: React.ReactNode;\n  textStyle?: StyleProp<TextStyle>;\n  visible?: Animated.Value;\n  isTextInputFocused: boolean;\n  paddingHorizontal?: DimensionValue;\n  maxFontSizeMultiplier?: number | undefined | null;\n  theme?: ThemeProp;\n  disabled?: boolean;\n}\n\nconst TextInputAdornment: React.FunctionComponent<TextInputAdornmentProps> = ({\n  adornmentConfig,\n  left,\n  right,\n  onAffixChange,\n  textStyle,\n  visible,\n  topPosition,\n  isTextInputFocused,\n  forceFocus,\n  paddingHorizontal,\n  maxFontSizeMultiplier,\n  theme,\n  disabled,\n}) => {\n  if (adornmentConfig.length) {\n    return (\n      <>\n        {adornmentConfig.map(({ type, side }: AdornmentConfig) => {\n          let inputAdornmentComponent;\n          if (side === AdornmentSide.Left) {\n            inputAdornmentComponent = left;\n          } else if (side === AdornmentSide.Right) {\n            inputAdornmentComponent = right;\n          }\n\n          const commonProps = {\n            side: side,\n            testID: `${side}-${type}-adornment`,\n            isTextInputFocused,\n            paddingHorizontal,\n            disabled,\n          };\n          if (type === AdornmentType.Icon) {\n            return (\n              <IconAdornment\n                {...commonProps}\n                theme={theme}\n                key={side}\n                icon={inputAdornmentComponent}\n                topPosition={topPosition[AdornmentType.Icon]}\n                forceFocus={forceFocus}\n              />\n            );\n          } else if (type === AdornmentType.Affix) {\n            return (\n              <AffixAdornment\n                {...commonProps}\n                key={side}\n                topPosition={topPosition[AdornmentType.Affix][side]}\n                affix={inputAdornmentComponent}\n                textStyle={textStyle}\n                onLayout={onAffixChange[side]}\n                visible={visible}\n                maxFontSizeMultiplier={maxFontSizeMultiplier}\n              />\n            );\n          } else {\n            return null;\n          }\n        })}\n      </>\n    );\n  } else {\n    return null;\n  }\n};\n\nexport default TextInputAdornment;\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}