@os-design-mobile/image-upload 1.0.51 → 1.0.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["overlayHasImageStyles","p","hasImage","backgroundColor","clr","theme","imageUploadOverlayOpacity","borderRadius","fontSize","Overlay","styled","View","omitEmotionProps","position","top","right","bottom","left","justifyContent","alignItems","padding","imageUploadOverlayPadding","StyledRectButton","RectButton","width","maxWidth","imageUploadMaxWidth","minHeight","imageUploadMinHeight","notHasImageStyles","imageUploadNoImageColorBg","borderWidth","borderColor","imageUploadNoImageColorBorder","borderStyle","Container","Content","flex","Title","Text","marginTop","textAlign","StyledImage","Image","resizeMode","aspectRatio","DeleteButtonContainer","ImageUpload","forwardRef","ref","url","locale","defaultLocale","imageLibraryOptions","cameraOptions","value","defaultValue","onChange","onPress","rest","useForwardedState","forwardedValue","setForwardedValue","useState","modalVisible","setModalVisible","useTheme","chooseFromPhotoLibraryHandler","useCallback","Promise","resolve","launchImageLibrary","mediaType","assets","e","takePhotoHandler","launchCamera","source","useMemo","uri","colorText","imageUploadNoImageBgHighlight","imageUploadNoImageBgRipple","t","title","buttonGhostColorText","buttonGhostColorBgHighlight","chooseFromLibrary","takePhoto","displayName"],"sources":["../src/index.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState } from 'react';\nimport { View, ViewProps } from 'react-native';\nimport { RectButton, RectButtonProps } from 'react-native-gesture-handler';\nimport ActionMenu, { MenuItem } from '@os-design-mobile/action-menu';\nimport { Picture, Camera, Delete } from '@os-design-mobile/icons';\nimport {\n launchImageLibrary,\n launchCamera,\n Asset,\n ImagePickerResponse,\n} from 'react-native-image-picker';\nimport Text from '@os-design-mobile/text';\nimport Image from '@os-design-mobile/image';\nimport useForwardedState from '@os-design/use-forwarded-state';\nimport styled from '@emotion/native';\nimport omitEmotionProps from '@os-design/omit-emotion-props';\nimport { clr, ThemeOverrider, useTheme } from '@os-design-mobile/theming';\nimport Button from '@os-design-mobile/button';\nimport {\n CameraOptions,\n ImageLibraryOptions,\n} from 'react-native-image-picker/src/types';\nimport defaultLocale, { ImageUploadLocale } from './utils/defaultLocale';\n\nexport interface ImageUploadProps extends RectButtonProps {\n /**\n * The url of the image.\n * @default undefined\n */\n url?: string;\n /**\n * The locale of the component.\n * @default undefined\n */\n locale?: ImageUploadLocale;\n /**\n * The image library options.\n * @default undefined\n */\n imageLibraryOptions?: Pick<\n ImageLibraryOptions,\n 'maxWidth' | 'maxHeight' | 'quality'\n >;\n /**\n * The camera options.\n * @default undefined\n */\n cameraOptions?: Pick<\n CameraOptions,\n 'maxWidth' | 'maxHeight' | 'quality' | 'saveToPhotos' | 'cameraType'\n >;\n /**\n * The selected local file, or null if the image is marked as deleted.\n * @default undefined\n */\n value?: Asset | null;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: Asset | null;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: Asset | null) => void;\n}\n\nconst overlayHasImageStyles = (p) =>\n p.hasImage\n ? {\n backgroundColor: clr([0, 0, 0, p.theme.imageUploadOverlayOpacity]),\n borderRadius: p.theme.borderRadius * p.theme.fontSize,\n }\n : {};\n\ninterface OverlayProps {\n hasImage: boolean;\n}\nconst Overlay = styled(\n View,\n omitEmotionProps('hasImage')\n)<OverlayProps>((p) => ({\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n justifyContent: 'center',\n alignItems: 'center',\n padding: p.theme.imageUploadOverlayPadding * p.theme.fontSize,\n ...overlayHasImageStyles(p),\n}));\n\nconst StyledRectButton = styled(RectButton)((p) => ({\n width: '100%',\n maxWidth: p.theme.imageUploadMaxWidth * p.theme.fontSize,\n minHeight: p.theme.imageUploadMinHeight * p.theme.fontSize,\n borderRadius: p.theme.borderRadius * p.theme.fontSize,\n}));\n\nconst notHasImageStyles = (p): Partial<ViewProps> =>\n !p.hasImage\n ? ({\n backgroundColor: clr(p.theme.imageUploadNoImageColorBg),\n borderWidth: 2,\n borderColor: clr(p.theme.imageUploadNoImageColorBorder),\n borderStyle: 'dashed',\n } as Partial<ViewProps>)\n : {};\n\ninterface ContainerProps {\n hasImage: boolean;\n}\n\nconst Container = styled(\n View,\n omitEmotionProps('hasImage')\n)<ContainerProps>((p) => ({\n minHeight: p.theme.imageUploadMinHeight * p.theme.fontSize,\n borderRadius: p.theme.borderRadius * p.theme.fontSize,\n ...notHasImageStyles(p),\n}));\n\nconst Content = styled.View({\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nconst Title = styled(Text)((p) => ({\n marginTop: 0.5 * p.theme.fontSize,\n textAlign: 'center',\n}));\n\nconst StyledImage = styled(Image)({\n resizeMode: 'cover',\n aspectRatio: 1,\n});\n\nconst DeleteButtonContainer = styled.View((p) => ({\n position: 'absolute',\n top: 0.5 * p.theme.fontSize,\n right: 0.5 * p.theme.fontSize,\n}));\n\n/**\n * The component to upload an image.\n */\nconst ImageUpload = forwardRef<RectButton, ImageUploadProps>(\n (\n {\n url,\n locale = defaultLocale,\n imageLibraryOptions = {},\n cameraOptions = {},\n value,\n defaultValue,\n onChange,\n onPress = () => {},\n ...rest\n },\n ref\n ) => {\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n const [modalVisible, setModalVisible] = useState(false);\n const { theme } = useTheme();\n\n const chooseFromPhotoLibraryHandler = useCallback(async () => {\n try {\n const { assets } = await new Promise<ImagePickerResponse>((resolve) => {\n launchImageLibrary(\n {\n mediaType: 'photo',\n ...imageLibraryOptions,\n },\n resolve\n );\n });\n setModalVisible(false);\n if (assets) setForwardedValue(assets[0]);\n } catch (e) {} // eslint-disable-line no-empty\n }, [imageLibraryOptions, setForwardedValue]);\n\n const takePhotoHandler = useCallback(async () => {\n try {\n const { assets } = await new Promise<ImagePickerResponse>((resolve) => {\n launchCamera(\n {\n mediaType: 'photo',\n ...cameraOptions,\n },\n resolve\n );\n });\n setModalVisible(false);\n if (assets) setForwardedValue(assets[0]);\n } catch (e) {} // eslint-disable-line no-empty\n }, [cameraOptions, setForwardedValue]);\n\n const source = useMemo(() => {\n if (forwardedValue === null) return null;\n if (forwardedValue) return forwardedValue.uri; // If the user select an image\n if (url) return url; // If the image already exists\n return null;\n }, [forwardedValue, url]);\n\n const hasImage = useMemo(() => !!source, [source]);\n\n return (\n <>\n <ThemeOverrider overrides={hasImage ? { colorText: [0, 0, 100] } : {}}>\n <StyledRectButton\n onPress={(e) => {\n setModalVisible(true);\n onPress(e);\n }}\n underlayColor={\n hasImage\n ? clr([0, 0, 100])\n : clr(theme.imageUploadNoImageBgHighlight)\n }\n rippleColor={\n hasImage\n ? clr([0, 0, 100])\n : clr(theme.imageUploadNoImageBgRipple)\n }\n activeOpacity={hasImage ? 0.8 : 1}\n {...rest}\n ref={ref}\n >\n <Container\n hasImage={hasImage}\n accessible\n accessibilityRole='imagebutton'\n >\n {source && <StyledImage source={{ uri: source }} />}\n\n <Overlay hasImage={hasImage}>\n <Content>\n <ThemeOverrider\n overrides={(t) => ({ fontSize: 2.5 * t.fontSize })}\n >\n <Picture />\n </ThemeOverrider>\n <Title>{locale?.title}</Title>\n </Content>\n\n {hasImage && (\n <ThemeOverrider\n overrides={{\n buttonGhostColorText: [0, 0, 100],\n buttonGhostColorBgHighlight: [0, 0, 100, 0.1],\n }}\n >\n <DeleteButtonContainer>\n <Button\n type='ghost'\n onPress={() => setForwardedValue(null)}\n >\n <Delete />\n </Button>\n </DeleteButtonContainer>\n </ThemeOverrider>\n )}\n </Overlay>\n </Container>\n </StyledRectButton>\n </ThemeOverrider>\n\n <ActionMenu\n visible={modalVisible}\n onClose={() => setModalVisible(false)}\n >\n <MenuItem left={<Picture />} onPress={chooseFromPhotoLibraryHandler}>\n {locale?.chooseFromLibrary}\n </MenuItem>\n <MenuItem left={<Camera />} onPress={takePhotoHandler}>\n {locale?.takePhoto}\n </MenuItem>\n </ActionMenu>\n </>\n );\n }\n);\n\nImageUpload.displayName = 'ImageUpload';\n\nexport default ImageUpload;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["overlayHasImageStyles","p","hasImage","backgroundColor","clr","theme","imageUploadOverlayOpacity","borderRadius","fontSize","Overlay","styled","View","omitEmotionProps","position","top","right","bottom","left","justifyContent","alignItems","padding","imageUploadOverlayPadding","StyledRectButton","RectButton","width","maxWidth","imageUploadMaxWidth","minHeight","imageUploadMinHeight","notHasImageStyles","imageUploadNoImageColorBg","borderWidth","borderColor","imageUploadNoImageColorBorder","borderStyle","Container","Content","flex","Title","Text","marginTop","textAlign","StyledImage","Image","resizeMode","aspectRatio","DeleteButtonContainer","ImageUpload","forwardRef","ref","url","locale","defaultLocale","imageLibraryOptions","cameraOptions","value","defaultValue","onChange","onPress","rest","useForwardedState","forwardedValue","setForwardedValue","useState","modalVisible","setModalVisible","useTheme","chooseFromPhotoLibraryHandler","useCallback","Promise","resolve","launchImageLibrary","mediaType","assets","e","takePhotoHandler","launchCamera","source","useMemo","uri","colorText","imageUploadNoImageBgHighlight","imageUploadNoImageBgRipple","t","title","buttonGhostColorText","buttonGhostColorBgHighlight","chooseFromLibrary","takePhoto","displayName"],"sources":["../src/index.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState } from 'react';\nimport { View, ViewProps } from 'react-native';\nimport { RectButton, RectButtonProps } from 'react-native-gesture-handler';\nimport ActionMenu, { MenuItem } from '@os-design-mobile/action-menu';\nimport { Picture, Camera, Delete } from '@os-design-mobile/icons';\nimport {\n launchImageLibrary,\n launchCamera,\n Asset,\n ImagePickerResponse,\n} from 'react-native-image-picker';\nimport Text from '@os-design-mobile/text';\nimport Image from '@os-design-mobile/image';\nimport useForwardedState from '@os-design/use-forwarded-state';\nimport styled from '@emotion/native';\nimport omitEmotionProps from '@os-design/omit-emotion-props';\nimport { clr, ThemeOverrider, useTheme } from '@os-design-mobile/theming';\nimport Button from '@os-design-mobile/button';\nimport {\n CameraOptions,\n ImageLibraryOptions,\n} from 'react-native-image-picker/src/types';\nimport defaultLocale, { ImageUploadLocale } from './utils/defaultLocale';\n\nexport interface ImageUploadProps extends RectButtonProps {\n /**\n * The url of the image.\n * @default undefined\n */\n url?: string;\n /**\n * The locale of the component.\n * @default undefined\n */\n locale?: ImageUploadLocale;\n /**\n * The image library options.\n * @default undefined\n */\n imageLibraryOptions?: Pick<\n ImageLibraryOptions,\n 'maxWidth' | 'maxHeight' | 'quality'\n >;\n /**\n * The camera options.\n * @default undefined\n */\n cameraOptions?: Pick<\n CameraOptions,\n 'maxWidth' | 'maxHeight' | 'quality' | 'saveToPhotos' | 'cameraType'\n >;\n /**\n * The selected local file, or null if the image is marked as deleted.\n * @default undefined\n */\n value?: Asset | null;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: Asset | null;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: Asset | null) => void;\n}\n\nconst overlayHasImageStyles = (p) =>\n p.hasImage\n ? {\n backgroundColor: clr([0, 0, 0, p.theme.imageUploadOverlayOpacity]),\n borderRadius: p.theme.borderRadius * p.theme.fontSize,\n }\n : {};\n\ninterface OverlayProps {\n hasImage: boolean;\n}\nconst Overlay = styled(\n View,\n omitEmotionProps('hasImage')\n)<OverlayProps>((p) => ({\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n justifyContent: 'center',\n alignItems: 'center',\n padding: p.theme.imageUploadOverlayPadding * p.theme.fontSize,\n ...overlayHasImageStyles(p),\n}));\n\nconst StyledRectButton = styled(RectButton)((p) => ({\n width: '100%',\n maxWidth: p.theme.imageUploadMaxWidth * p.theme.fontSize,\n minHeight: p.theme.imageUploadMinHeight * p.theme.fontSize,\n borderRadius: p.theme.borderRadius * p.theme.fontSize,\n}));\n\nconst notHasImageStyles = (p): Partial<ViewProps> =>\n !p.hasImage\n ? ({\n backgroundColor: clr(p.theme.imageUploadNoImageColorBg),\n borderWidth: 2,\n borderColor: clr(p.theme.imageUploadNoImageColorBorder),\n borderStyle: 'dashed',\n } as Partial<ViewProps>)\n : {};\n\ninterface ContainerProps {\n hasImage: boolean;\n}\n\nconst Container = styled(\n View,\n omitEmotionProps('hasImage')\n)<ContainerProps>((p) => ({\n minHeight: p.theme.imageUploadMinHeight * p.theme.fontSize,\n borderRadius: p.theme.borderRadius * p.theme.fontSize,\n ...notHasImageStyles(p),\n}));\n\nconst Content = styled.View({\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nconst Title = styled(Text)((p) => ({\n marginTop: 0.5 * p.theme.fontSize,\n textAlign: 'center',\n}));\n\nconst StyledImage = styled(Image)({\n resizeMode: 'cover',\n aspectRatio: 1,\n});\n\nconst DeleteButtonContainer = styled.View((p) => ({\n position: 'absolute',\n top: 0.5 * p.theme.fontSize,\n right: 0.5 * p.theme.fontSize,\n}));\n\n/**\n * The component to upload an image.\n */\nconst ImageUpload = forwardRef<RectButton, ImageUploadProps>(\n (\n {\n url,\n locale = defaultLocale,\n imageLibraryOptions = {},\n cameraOptions = {},\n value,\n defaultValue,\n onChange,\n onPress = () => {},\n ...rest\n },\n ref\n ) => {\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n const [modalVisible, setModalVisible] = useState(false);\n const { theme } = useTheme();\n\n const chooseFromPhotoLibraryHandler = useCallback(async () => {\n try {\n const { assets } = await new Promise<ImagePickerResponse>((resolve) => {\n launchImageLibrary(\n {\n mediaType: 'photo',\n ...imageLibraryOptions,\n },\n resolve\n );\n });\n setModalVisible(false);\n if (assets) setForwardedValue(assets[0]);\n } catch (e) {} // eslint-disable-line no-empty\n }, [imageLibraryOptions, setForwardedValue]);\n\n const takePhotoHandler = useCallback(async () => {\n try {\n const { assets } = await new Promise<ImagePickerResponse>((resolve) => {\n launchCamera(\n {\n mediaType: 'photo',\n ...cameraOptions,\n },\n resolve\n );\n });\n setModalVisible(false);\n if (assets) setForwardedValue(assets[0]);\n } catch (e) {} // eslint-disable-line no-empty\n }, [cameraOptions, setForwardedValue]);\n\n const source = useMemo(() => {\n if (forwardedValue === null) return null;\n if (forwardedValue) return forwardedValue.uri; // If the user select an image\n if (url) return url; // If the image already exists\n return null;\n }, [forwardedValue, url]);\n\n const hasImage = useMemo(() => !!source, [source]);\n\n return (\n <>\n <ThemeOverrider overrides={hasImage ? { colorText: [0, 0, 100] } : {}}>\n <StyledRectButton\n onPress={(e) => {\n setModalVisible(true);\n onPress(e);\n }}\n underlayColor={\n hasImage\n ? clr([0, 0, 100])\n : clr(theme.imageUploadNoImageBgHighlight)\n }\n rippleColor={\n hasImage\n ? clr([0, 0, 100])\n : clr(theme.imageUploadNoImageBgRipple)\n }\n activeOpacity={hasImage ? 0.8 : 1}\n {...rest}\n ref={ref}\n >\n <Container\n hasImage={hasImage}\n accessible\n accessibilityRole='imagebutton'\n >\n {source && <StyledImage source={{ uri: source }} />}\n\n <Overlay hasImage={hasImage}>\n <Content>\n <ThemeOverrider\n overrides={(t) => ({ fontSize: 2.5 * t.fontSize })}\n >\n <Picture />\n </ThemeOverrider>\n <Title>{locale?.title}</Title>\n </Content>\n\n {hasImage && (\n <ThemeOverrider\n overrides={{\n buttonGhostColorText: [0, 0, 100],\n buttonGhostColorBgHighlight: [0, 0, 100, 0.1],\n }}\n >\n <DeleteButtonContainer>\n <Button\n type='ghost'\n onPress={() => setForwardedValue(null)}\n >\n <Delete />\n </Button>\n </DeleteButtonContainer>\n </ThemeOverrider>\n )}\n </Overlay>\n </Container>\n </StyledRectButton>\n </ThemeOverrider>\n\n <ActionMenu\n visible={modalVisible}\n onClose={() => setModalVisible(false)}\n >\n <MenuItem left={<Picture />} onPress={chooseFromPhotoLibraryHandler}>\n {locale?.chooseFromLibrary}\n </MenuItem>\n <MenuItem left={<Camera />} onPress={takePhotoHandler}>\n {locale?.takePhoto}\n </MenuItem>\n </ActionMenu>\n </>\n );\n }\n);\n\nImageUpload.displayName = 'ImageUpload';\n\nexport default ImageUpload;\n"],"mappings":"idAAA,qDACA,yCACA,uEACA,kFACA,8CACA,iEAMA,oEACA,sEACA,0FACA,+DACA,uFACA,kDACA,wEAKA,4EAAyE,wpCA8CzE,GAAMA,sBAAqB,CAAG,QAAxBA,sBAAqB,CAAIC,CAAC,QAC9BA,EAAC,CAACC,QAAQ,CACN,CACEC,eAAe,CAAE,GAAAC,YAAG,EAAC,CAAC,CAAC,CAAE,CAAC,CAAE,CAAC,CAAEH,CAAC,CAACI,KAAK,CAACC,yBAAyB,CAAC,CAAC,CAClEC,YAAY,CAAEN,CAAC,CAACI,KAAK,CAACE,YAAY,CAAGN,CAAC,CAACI,KAAK,CAACG,QAC/C,CAAC,CACD,CAAC,CAAC,GAKR,GAAMC,QAAO,CAAG,GAAAC,eAAM,EACpBC,iBAAI,CACJ,GAAAC,yBAAgB,EAAC,UAAU,CAAC,CAC7B,CAAe,SAACX,CAAC,wBAChBY,QAAQ,CAAE,UAAU,CACpBC,GAAG,CAAE,CAAC,CACNC,KAAK,CAAE,CAAC,CACRC,MAAM,CAAE,CAAC,CACTC,IAAI,CAAE,CAAC,CACPC,cAAc,CAAE,QAAQ,CACxBC,UAAU,CAAE,QAAQ,CACpBC,OAAO,CAAEnB,CAAC,CAACI,KAAK,CAACgB,yBAAyB,CAAGpB,CAAC,CAACI,KAAK,CAACG,QAAQ,EAC1DR,qBAAqB,CAACC,CAAC,CAAC,GAC3B,CAAC,CAEH,GAAMqB,iBAAgB,CAAG,GAAAZ,eAAM,EAACa,qCAAU,CAAC,CAAC,SAACtB,CAAC,QAAM,CAClDuB,KAAK,CAAE,MAAM,CACbC,QAAQ,CAAExB,CAAC,CAACI,KAAK,CAACqB,mBAAmB,CAAGzB,CAAC,CAACI,KAAK,CAACG,QAAQ,CACxDmB,SAAS,CAAE1B,CAAC,CAACI,KAAK,CAACuB,oBAAoB,CAAG3B,CAAC,CAACI,KAAK,CAACG,QAAQ,CAC1DD,YAAY,CAAEN,CAAC,CAACI,KAAK,CAACE,YAAY,CAAGN,CAAC,CAACI,KAAK,CAACG,QAC/C,CAAC,EAAC,CAAC,CAEH,GAAMqB,kBAAiB,CAAG,QAApBA,kBAAiB,CAAI5B,CAAC,QAC1B,CAACA,CAAC,CAACC,QAAQ,CACN,CACCC,eAAe,CAAE,GAAAC,YAAG,EAACH,CAAC,CAACI,KAAK,CAACyB,yBAAyB,CAAC,CACvDC,WAAW,CAAE,CAAC,CACdC,WAAW,CAAE,GAAA5B,YAAG,EAACH,CAAC,CAACI,KAAK,CAAC4B,6BAA6B,CAAC,CACvDC,WAAW,CAAE,QACf,CAAC,CACD,CAAC,CAAC,GAMR,GAAMC,UAAS,CAAG,GAAAzB,eAAM,EACtBC,iBAAI,CACJ,GAAAC,yBAAgB,EAAC,UAAU,CAAC,CAC7B,CAAiB,SAACX,CAAC,wBAClB0B,SAAS,CAAE1B,CAAC,CAACI,KAAK,CAACuB,oBAAoB,CAAG3B,CAAC,CAACI,KAAK,CAACG,QAAQ,CAC1DD,YAAY,CAAEN,CAAC,CAACI,KAAK,CAACE,YAAY,CAAGN,CAAC,CAACI,KAAK,CAACG,QAAQ,EAClDqB,iBAAiB,CAAC5B,CAAC,CAAC,GACvB,CAAC,CAEH,GAAMmC,QAAO,CAAG1B,eAAM,CAACC,IAAI,CAAC,CAC1B0B,IAAI,CAAE,CAAC,CACPnB,cAAc,CAAE,QAAQ,CACxBC,UAAU,CAAE,QACd,CAAC,CAAC,CAEF,GAAMmB,MAAK,CAAG,GAAA5B,eAAM,EAAC6B,aAAI,CAAC,CAAC,SAACtC,CAAC,QAAM,CACjCuC,SAAS,CAAE,GAAG,CAAGvC,CAAC,CAACI,KAAK,CAACG,QAAQ,CACjCiC,SAAS,CAAE,QACb,CAAC,EAAC,CAAC,CAEH,GAAMC,YAAW,CAAG,GAAAhC,eAAM,EAACiC,cAAK,CAAC,CAAC,CAChCC,UAAU,CAAE,OAAO,CACnBC,WAAW,CAAE,CACf,CAAC,CAAC,CAEF,GAAMC,sBAAqB,CAAGpC,eAAM,CAACC,IAAI,CAAC,SAACV,CAAC,QAAM,CAChDY,QAAQ,CAAE,UAAU,CACpBC,GAAG,CAAE,GAAG,CAAGb,CAAC,CAACI,KAAK,CAACG,QAAQ,CAC3BO,KAAK,CAAE,GAAG,CAAGd,CAAC,CAACI,KAAK,CAACG,QACvB,CAAC,EAAC,CAAC,CAKH,GAAMuC,YAAW,CAAG,GAAAC,iBAAU,EAC5B,cAYEC,GAAG,CACA,IAXDC,IAAG,MAAHA,GAAG,kBACHC,MAAM,CAANA,MAAM,sBAAGC,sBAAa,wCACtBC,mBAAmB,CAAnBA,mBAAmB,gCAAG,CAAC,CAAC,+CACxBC,aAAa,CAAbA,aAAa,6BAAG,CAAC,CAAC,oBAClBC,KAAK,MAALA,KAAK,CACLC,YAAY,MAAZA,YAAY,CACZC,QAAQ,MAARA,QAAQ,mBACRC,OAAO,CAAPA,QAAO,uBAAG,UAAM,CAAC,CAAC,cACfC,IAAI,uDAIT,uBAA4C,GAAAC,2BAAiB,EAAC,CAC5DL,KAAK,CAALA,KAAK,CACLC,YAAY,CAAZA,YAAY,CACZC,QAAQ,CAARA,QACF,CAAC,CAAC,uEAJKI,cAAc,wBAAEC,iBAAiB,wBAMxC,cAAwC,GAAAC,eAAQ,EAAC,KAAK,CAAC,qDAAhDC,YAAY,eAAEC,eAAe,eACpC,cAAkB,GAAAC,iBAAQ,GAAE,CAApB7D,KAAK,WAALA,KAAK,CAEb,GAAM8D,8BAA6B,CAAG,GAAAC,kBAAW,iCAAC,WAAY,CAC5D,GAAI,CACF,wBAAyB,IAAIC,QAAO,CAAsB,SAACC,OAAO,CAAK,CACrE,GAAAC,0CAAkB,iBAEdC,SAAS,CAAE,OAAO,EACfnB,mBAAmB,EAExBiB,OAAO,CACR,CACH,CAAC,CAAC,CARMG,MAAM,gBAANA,MAAM,CASdR,eAAe,CAAC,KAAK,CAAC,CACtB,GAAIQ,MAAM,CAAEX,iBAAiB,CAACW,MAAM,CAAC,CAAC,CAAC,CAAC,CAC1C,CAAE,MAAOC,CAAC,CAAE,CAAC,CACf,CAAC,EAAE,CAACrB,mBAAmB,CAAES,iBAAiB,CAAC,CAAC,CAE5C,GAAMa,iBAAgB,CAAG,GAAAP,kBAAW,iCAAC,WAAY,CAC/C,GAAI,CACF,yBAAyB,IAAIC,QAAO,CAAsB,SAACC,OAAO,CAAK,CACrE,GAAAM,oCAAY,iBAERJ,SAAS,CAAE,OAAO,EACflB,aAAa,EAElBgB,OAAO,CACR,CACH,CAAC,CAAC,CARMG,MAAM,iBAANA,MAAM,CASdR,eAAe,CAAC,KAAK,CAAC,CACtB,GAAIQ,MAAM,CAAEX,iBAAiB,CAACW,MAAM,CAAC,CAAC,CAAC,CAAC,CAC1C,CAAE,MAAOC,CAAC,CAAE,CAAC,CACf,CAAC,EAAE,CAACpB,aAAa,CAAEQ,iBAAiB,CAAC,CAAC,CAEtC,GAAMe,OAAM,CAAG,GAAAC,cAAO,EAAC,UAAM,CAC3B,GAAIjB,cAAc,GAAK,IAAI,CAAE,MAAO,KAAI,CACxC,GAAIA,cAAc,CAAE,MAAOA,eAAc,CAACkB,GAAG,CAC7C,GAAI7B,GAAG,CAAE,MAAOA,IAAG,CACnB,MAAO,KAAI,CACb,CAAC,CAAE,CAACW,cAAc,CAAEX,GAAG,CAAC,CAAC,CAEzB,GAAMhD,SAAQ,CAAG,GAAA4E,cAAO,EAAC,iBAAM,CAAC,CAACD,MAAM,GAAE,CAACA,MAAM,CAAC,CAAC,CAElD,MACE,qDACE,oBAAC,uBAAc,EAAC,SAAS,CAAE3E,QAAQ,CAAG,CAAE8E,SAAS,CAAE,CAAC,CAAC,CAAE,CAAC,CAAE,GAAG,CAAE,CAAC,CAAG,CAAC,CAAE,UACpE,oBAAC,gBAAgB,gBACf,OAAO,CAAE,iBAACN,CAAC,CAAK,CACdT,eAAe,CAAC,IAAI,CAAC,CACrBP,QAAO,CAACgB,CAAC,CAAC,CACZ,CAAE,CACF,aAAa,CACXxE,QAAQ,CACJ,GAAAE,YAAG,EAAC,CAAC,CAAC,CAAE,CAAC,CAAE,GAAG,CAAC,CAAC,CAChB,GAAAA,YAAG,EAACC,KAAK,CAAC4E,6BAA6B,CAC5C,CACD,WAAW,CACT/E,QAAQ,CACJ,GAAAE,YAAG,EAAC,CAAC,CAAC,CAAE,CAAC,CAAE,GAAG,CAAC,CAAC,CAChB,GAAAA,YAAG,EAACC,KAAK,CAAC6E,0BAA0B,CACzC,CACD,aAAa,CAAEhF,QAAQ,CAAG,GAAG,CAAG,CAAE,EAC9ByD,IAAI,EACR,GAAG,CAAEV,GAAI,UAET,qBAAC,SAAS,EACR,QAAQ,CAAE/C,QAAS,CACnB,UAAU,MACV,iBAAiB,CAAC,aAAa,WAE9B2E,MAAM,EAAI,oBAAC,WAAW,EAAC,MAAM,CAAE,CAAEE,GAAG,CAAEF,MAAO,CAAE,EAAG,CAEnD,qBAAC,OAAO,EAAC,QAAQ,CAAE3E,QAAS,WAC1B,qBAAC,OAAO,YACN,oBAAC,uBAAc,EACb,SAAS,CAAE,mBAACiF,CAAC,QAAM,CAAE3E,QAAQ,CAAE,GAAG,CAAG2E,CAAC,CAAC3E,QAAS,CAAC,EAAE,UAEnD,oBAAC,cAAO,IAAG,EACI,CACjB,oBAAC,KAAK,WAAE2C,MAAM,cAANA,MAAM,CAAEiC,KAAK,EAAS,GACtB,CAETlF,QAAQ,EACP,oBAAC,uBAAc,EACb,SAAS,CAAE,CACTmF,oBAAoB,CAAE,CAAC,CAAC,CAAE,CAAC,CAAE,GAAG,CAAC,CACjCC,2BAA2B,CAAE,CAAC,CAAC,CAAE,CAAC,CAAE,GAAG,CAAE,GAAG,CAC9C,CAAE,UAEF,oBAAC,qBAAqB,WACpB,oBAAC,eAAM,EACL,IAAI,CAAC,OAAO,CACZ,OAAO,CAAE,yBAAMxB,kBAAiB,CAAC,IAAI,CAAC,EAAC,UAEvC,oBAAC,aAAM,IAAG,EACH,EACa,EAE3B,GACO,GACA,GACK,EACJ,CAEjB,qBAAC,mBAAU,EACT,OAAO,CAAEE,YAAa,CACtB,OAAO,CAAE,yBAAMC,gBAAe,CAAC,KAAK,CAAC,EAAC,WAEtC,oBAAC,oBAAQ,EAAC,IAAI,CAAE,oBAAC,cAAO,IAAI,CAAC,OAAO,CAAEE,6BAA8B,UACjEhB,MAAM,cAANA,MAAM,CAAEoC,iBAAiB,EACjB,CACX,oBAAC,oBAAQ,EAAC,IAAI,CAAE,oBAAC,aAAM,IAAI,CAAC,OAAO,CAAEZ,gBAAiB,UACnDxB,MAAM,cAANA,MAAM,CAAEqC,SAAS,EACT,GACA,GACZ,CAEP,CAAC,CACF,CAEDzC,WAAW,CAAC0C,WAAW,CAAG,aAAa,CAAC,aAEzB1C,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaultLocale.js","names":["defaultLocale","title","chooseFromLibrary","takePhoto"],"sources":["../../src/utils/defaultLocale.ts"],"sourcesContent":["export interface ImageUploadLocale {\n title: string;\n chooseFromLibrary: string;\n takePhoto: string;\n}\n\nconst defaultLocale: ImageUploadLocale = {\n title: 'Click here to choose an image',\n chooseFromLibrary: 'Choose from Library',\n takePhoto: 'Take a Photo',\n};\n\nexport default defaultLocale;\n"],"mappings":"gFAMA,GAAMA,cAAgC,CAAG,CACvCC,KAAK,CAAE,+BADgC,CAEvCC,iBAAiB,CAAE,qBAFoB,CAGvCC,SAAS,CAAE,cAH4B,CAAzC,C,aAMeH,a"}
1
+ {"version":3,"file":"defaultLocale.js","names":["defaultLocale","title","chooseFromLibrary","takePhoto"],"sources":["../../src/utils/defaultLocale.ts"],"sourcesContent":["export interface ImageUploadLocale {\n title: string;\n chooseFromLibrary: string;\n takePhoto: string;\n}\n\nconst defaultLocale: ImageUploadLocale = {\n title: 'Click here to choose an image',\n chooseFromLibrary: 'Choose from Library',\n takePhoto: 'Take a Photo',\n};\n\nexport default defaultLocale;\n"],"mappings":"gFAMA,GAAMA,cAAgC,CAAG,CACvCC,KAAK,CAAE,+BAA+B,CACtCC,iBAAiB,CAAE,qBAAqB,CACxCC,SAAS,CAAE,cACb,CAAC,CAAC,aAEaH,aAAa"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@os-design-mobile/image-upload",
3
- "version": "1.0.51",
3
+ "version": "1.0.52",
4
4
  "license": "UNLICENSED",
5
5
  "repository": "git@gitlab.com:os-team/libs/os-design-mobile.git",
6
6
  "main": "dist/index.js",
@@ -19,14 +19,14 @@
19
19
  "access": "public"
20
20
  },
21
21
  "dependencies": {
22
- "@os-design-mobile/action-menu": "^1.0.50",
23
- "@os-design-mobile/button": "^1.0.42",
24
- "@os-design-mobile/icons": "^1.0.41",
25
- "@os-design-mobile/image": "^1.0.27",
26
- "@os-design-mobile/text": "^1.0.39",
27
- "@os-design-mobile/theming": "^1.0.30",
28
- "@os-design/omit-emotion-props": "^1.0.7",
29
- "@os-design/use-forwarded-state": "^1.0.9"
22
+ "@os-design-mobile/action-menu": "^1.0.51",
23
+ "@os-design-mobile/button": "^1.0.43",
24
+ "@os-design-mobile/icons": "^1.0.42",
25
+ "@os-design-mobile/image": "^1.0.28",
26
+ "@os-design-mobile/text": "^1.0.40",
27
+ "@os-design-mobile/theming": "^1.0.31",
28
+ "@os-design/omit-emotion-props": "^1.0.8",
29
+ "@os-design/use-forwarded-state": "^1.0.10"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "@emotion/native": ">=11",
@@ -39,5 +39,5 @@
39
39
  "react-native-safe-area-context": ">=3",
40
40
  "react-native-svg": ">=12"
41
41
  },
42
- "gitHead": "66bea985002535c1fe33fe85a3a7c863d2c8e6c6"
42
+ "gitHead": "2c6957821e9eb66c1075bda0302bad3ed4f71c54"
43
43
  }