UNPKG

3.23 kBSource Map (JSON)View Raw
1{"version":3,"sources":["shadow.tsx"],"names":["Colors","Animated","SHADOW_COLOR","black","SHADOW_OPACITY","shadow","elevation","Value","inputRange","shadowColor","shadowOffset","width","height","interpolate","outputRange","shadowOpacity","extrapolate","shadowRadius","radius"],"mappings":"AAAA,OAAO,KAAKA,MAAZ,MAAwB,UAAxB;AACA,SAASC,QAAT,QAAyB,cAAzB;AAEA,MAAMC,YAAY,GAAGF,MAAM,CAACG,KAA5B;AACA,MAAMC,cAAc,GAAG,IAAvB;AAEA,eAAe,SAASC,MAAT,GAAwD;AAAA,MAAxCC,SAAwC,uEAAH,CAAG;;AACrE,MAAIA,SAAS,YAAYL,QAAQ,CAACM,KAAlC,EAAyC;AACvC,UAAMC,UAAU,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,EAAhB,CAAnB;AAEA,WAAO;AACLC,MAAAA,WAAW,EAAEP,YADR;AAELQ,MAAAA,YAAY,EAAE;AACZC,QAAAA,KAAK,EAAE,IAAIV,QAAQ,CAACM,KAAb,CAAmB,CAAnB,CADK;AAEZK,QAAAA,MAAM,EAAEN,SAAS,CAACO,WAAV,CAAsB;AAC5BL,UAAAA,UAD4B;AAE5BM,UAAAA,WAAW,EAAE,CAAC,CAAD,EAAI,GAAJ,EAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,EAAqB,EAArB;AAFe,SAAtB;AAFI,OAFT;AASLC,MAAAA,aAAa,EAAET,SAAS,CAACO,WAAV,CAAsB;AACnCL,QAAAA,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CADuB;AAEnCM,QAAAA,WAAW,EAAE,CAAC,CAAD,EAAIV,cAAJ,CAFsB;AAGnCY,QAAAA,WAAW,EAAE;AAHsB,OAAtB,CATV;AAcLC,MAAAA,YAAY,EAAEX,SAAS,CAACO,WAAV,CAAsB;AAClCL,QAAAA,UADkC;AAElCM,QAAAA,WAAW,EAAE,CAAC,CAAD,EAAI,IAAJ,EAAU,GAAV,EAAe,CAAf,EAAkB,CAAlB,EAAqB,EAArB;AAFqB,OAAtB;AAdT,KAAP;AAmBD,GAtBD,MAsBO;AACL,QAAIR,SAAS,KAAK,CAAlB,EAAqB;AACnB,aAAO,EAAP;AACD;;AAED,QAAIM,MAAJ,EAAYM,MAAZ;;AACA,YAAQZ,SAAR;AACE,WAAK,CAAL;AACEM,QAAAA,MAAM,GAAG,GAAT;AACAM,QAAAA,MAAM,GAAG,IAAT;AACA;;AACF,WAAK,CAAL;AACEN,QAAAA,MAAM,GAAG,IAAT;AACAM,QAAAA,MAAM,GAAG,GAAT;AACA;;AACF;AACEN,QAAAA,MAAM,GAAGN,SAAS,GAAG,CAArB;AACAY,QAAAA,MAAM,GAAGZ,SAAT;AAXJ;;AAcA,WAAO;AACLG,MAAAA,WAAW,EAAEP,YADR;AAELQ,MAAAA,YAAY,EAAE;AACZC,QAAAA,KAAK,EAAE,CADK;AAEZC,QAAAA;AAFY,OAFT;AAMLG,MAAAA,aAAa,EAAEX,cANV;AAOLa,MAAAA,YAAY,EAAEC;AAPT,KAAP;AASD;AACF","sourcesContent":["import * as Colors from './colors';\nimport { Animated } from 'react-native';\n\nconst SHADOW_COLOR = Colors.black;\nconst SHADOW_OPACITY = 0.24;\n\nexport default function shadow(elevation: number | Animated.Value = 0) {\n if (elevation instanceof Animated.Value) {\n const inputRange = [0, 1, 2, 3, 8, 24];\n\n return {\n shadowColor: SHADOW_COLOR,\n shadowOffset: {\n width: new Animated.Value(0),\n height: elevation.interpolate({\n inputRange,\n outputRange: [0, 0.5, 0.75, 2, 7, 23],\n }),\n },\n shadowOpacity: elevation.interpolate({\n inputRange: [0, 1],\n outputRange: [0, SHADOW_OPACITY],\n extrapolate: 'clamp',\n }),\n shadowRadius: elevation.interpolate({\n inputRange,\n outputRange: [0, 0.75, 1.5, 3, 8, 24],\n }),\n };\n } else {\n if (elevation === 0) {\n return {};\n }\n\n let height, radius;\n switch (elevation) {\n case 1:\n height = 0.5;\n radius = 0.75;\n break;\n case 2:\n height = 0.75;\n radius = 1.5;\n break;\n default:\n height = elevation - 1;\n radius = elevation;\n }\n\n return {\n shadowColor: SHADOW_COLOR,\n shadowOffset: {\n width: 0,\n height,\n },\n shadowOpacity: SHADOW_OPACITY,\n shadowRadius: radius,\n };\n }\n}\n"]}
\No newline at end of file