{"version":3,"sources":["/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/web.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/facebook.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/twitter.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/whatsapp.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/instagram.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/update.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/columns.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/compartir.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/privacy.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/information.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/playstore.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Utility/Utilidad.js","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Utility/Api.js","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Views/Principal.js","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Views/HimnosPartido.js","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Views/Partido.js","/Users/larryrider/Projects-React-Native/PartidosPoliticos/App.js","/Users/larryrider/Projects-React-Native/PartidosPoliticos/web-build/register-service-worker.js","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/pp.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/pp_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_pp.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_pp_corto.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/psoe.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/psoe_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_psoe.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_psoe_corto.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/podemos.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/podemos_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_podemos.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/ciudadanos.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/ciudadanos_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/erc.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/erc_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_erc.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/iu.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/iu_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_iu.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/pdc.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/pdc_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_pdc.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/pnv.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/pnv_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_pnv.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/compromis.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/compromis_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/ehbildu.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/ehbildu_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/cc.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/cc_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/upyd.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/upyd_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_upyd.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/bng.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/bng_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_bng.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/cup.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/cup_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/pacma.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/pacma_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/vox.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/vox_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_vox.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/dn.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/dn_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_dn.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/pce.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/pce_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_pce.mp3","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/equo.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/equo_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/falange.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Images/falange_presidente.png","/Users/larryrider/Projects-React-Native/PartidosPoliticos/Himnos/himno_falange.mp3"],"names":["module","exports","partidos","key","nombre","siglas","fotoPartido","require","fotoPresidente","himno","himnoCorto","colorPartido","año","redesSociales","web","facebook","twitter","whatsapp","instagram","informacionPartido","actualizar_datos","concat","getPhoneInfo","info","Platform","OS","parseInt","Version","Constants","manifest","version","platform","ios","model","deviceName","enviarInfo","partido","accion","json","fetch","method","headers","body","timeout","retries","then","response","catch","error","callback","callbackError","formData","FormData","append","JSON","stringify","responseJson","Principal","props","posicionPartido","checkUpdates","a","async","Updates","checkForUpdateAsync","isAvailable","fetchUpdateAsync","setTimeout","Alert","alert","text","onPress","reloadFromCache","cancelable","getWidth","Dimensions","get","width","height","showSettings","visible","setState","settings","actualizarFlatlist","_onClick","item","index","Math","floor","state","numColumns","navigation","navigate","renderItem","empty","View","style","styles","itemInvisible","onLayout","formatData","numeroElementosUltimaFila","length","contador","partidosTemporal","sort","ordenarPartidos","i","push","partido1","partido2","ordenPartidos","startsWith","endsWith","escaños1","escaños2","isNaN","storeNumColumns","SecureStore","console","warn","updateNumColumns","Number","storeOrdenPartidos","updateOrdenPartidos","cambiarColumnas","modalVisible","floatingButton","isAppReady","this","setParams","headerRight","TouchableOpacity","paddingHorizontal","MaterialIcons","name","size","color","images","fonts","Feather","font","cacheImages","map","image","Asset","fromModule","downloadAsync","cacheFonts","Font","Promise","all","AppLoading","startAsync","_cacheResourcesAsync","onFinish","onError","flatListKey","flex","onWillFocus","payload","bottomModal","isVisible","onBackButtonPress","onBackdropPress","onModalHide","backgroundColor","alignItems","paddingVertical","Text","textAlign","marginBottom","step","minimumValue","maximumValue","value","onValueChange","val","minimumTrackTintColor","maximumTrackTintColor","thumbTintColor","Picker","selectedValue","justifyContent","itemValue","itemIndex","Item","label","FlatList","ref","flatList","container","data","initialScrollIndex","getItemLayout","ITEM_HEIGHT","offset","React","PureComponent","navigationOptions","auxHeaderRight","headerTitleAlign","headerTitle","getParam","ItemPartido","_onPress","Image","source","resizeMode","resizeMethod","Settings","updateApp","updating","Toast","show","duration","durations","LONG","position","positions","BOTTOM","shadow","animation","hideOnPress","delay","opacity","onShow","onShown","onHide","onHidden","marginTop","Modal","animationType","transparent","onRequestClose","borderBottomWidth","borderColor","flexDirection","zIndex","fontWeight","fontSize","defaultItemSize","Header","headerStyle","icon","imageStyle","title","titleInfo","titleInfoStyle","url","Linking","canOpenURL","supported","openURL","Share","share","message","Network","ip","expoVersion","installationId","deviceYearClass","Localization","informacionSistema","ActivityIndicator","StyleSheet","create","paddingBottom","margin","marginLeft","alignSelf","HimnosPartido","himnoLargoListener","estadoHimnoLargo","isLoaded","himnoLargo","loadingHimnoLargo","totalHimnoLargo","durationMillis","posicionHimnoLargo","positionMillis","isPlaying","playingHimnoLargo","isBuffering","didJustFinish","isLooping","stopHimnoLargo","destruirHimnoLargo","hayHimnoLargo","himnoCortoListener","estadoHimnoCorto","loadingHimnoCorto","totalHimnoCorto","posicionHimnoCorto","playingHimnoCorto","stopHimnoCorto","destruirHimnoCorto","hayHimnoCorto","getPosicionHimnoLargo","getPosicionHimnoCorto","cargarHimnoLargo","Audio","Sound","loadAsync","setOnPlaybackStatusUpdate","cargarHimnoCorto","unloadAsync","playHimnoLargo","pauseHimnoCorto","pauseHimnoLargo","playAsync","playHimnoCorto","pauseAsync","stopAsync","moviendoHimnoLargo","seekingHimnoLargo","moviendoHimnoCorto","seekingHimnoCorto","movidoHimnoLargo","seekPosition","playFromPositionAsync","setPositionAsync","movidoHimnoCorto","botonPausa","botonPlay","iconoCargando","padding","textoVersion","fila","paddingLeft","disabled","marginRight","onSlidingComplete","thumbStyle","trackStyle","horizontalLine","borderBottomColor","marginVertical","borderRadius","Partido","showHelp","getRedesSociales","redesPartido","redes","redSocial","foto","target","includes","getInformacion","informacion","first","titulo","intro","informaciones","masInfo","descripcion","textDecorationLine","mostrarFotoPartidoFullscreen","fotoPresidenteFullscreen","fotoPartidoFullscreen","mantenerPantalla","mostrarFotoPresidenteFullscreen","encendida","activateKeepAwake","deactivateKeepAwake","ScrollView","showsVerticalScrollIndicator","columna","borderWidth","top","left","headerTitleStyle","filaSocial","App","createStackNavigator","screen","initialRouteName","defaultNavigationOptions","headerTintColor","AppContainer","createAppContainer","navigator","window","addEventListener","serviceWorker","register","scope"],"mappings":"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","file":"static/js/app.f4d2e9f1.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/web.3d44f17c.png\";","module.exports = __webpack_public_path__ + \"static/media/facebook.6ea1e8ca.png\";","module.exports = __webpack_public_path__ + \"static/media/twitter.f566cd09.png\";","module.exports = __webpack_public_path__ + \"static/media/whatsapp.57b3dc75.png\";","module.exports = __webpack_public_path__ + \"static/media/instagram.3c4f780a.png\";","module.exports = __webpack_public_path__ + \"static/media/update.5d4ee5e3.png\";","module.exports = __webpack_public_path__ + \"static/media/columns.f9c05cc2.png\";","module.exports = __webpack_public_path__ + \"static/media/compartir.e91f6c20.png\";","module.exports = __webpack_public_path__ + \"static/media/privacy.4a9fbd93.png\";","module.exports = __webpack_public_path__ + \"static/media/information.926e7493.png\";","module.exports = __webpack_public_path__ + \"static/media/playstore.ce7c75f6.png\";","\nconst partidos = [\n    {\n        key: '1',\n        nombre: \"Partido Popular\",\n        siglas: \"PP\",\n        fotoPartido: require('../Images/pp.png'),\n        fotoPresidente: require('../Images/pp_presidente.png'),\n        himno: require('../Himnos/himno_pp.mp3'),\n        himnoCorto: require('../Himnos/himno_pp_corto.mp3'),\n        colorPartido: \"#FFFFFF\",\n        año: \"1989\",\n        redesSociales: {\n            web: \"pp.es\",\n            facebook: \"pp\",\n            twitter: \"20509689\",\n            whatsapp: \"34682631721\",\n            instagram: \"partidopopular\"\n        },\n        informacionPartido: {\n            \"Presidente del partido:\": \"Pablo Casado\",\n            \"Año de fundación:\": \"20 de enero de 1989\",\n            \"Escaños actuales (Congreso):\": \"88\",\n            \"Sede:\": \"Calle de Génova, 13, 28004 (Madrid)\",\n            \"Ideología:\": \"Conservador-liberal, Democracia cristiana, Nacionalismo español, Europeismo, Humanismo cristiano\",\n            \"Posición:\": \"Centroderecha, Derecha\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"pp.es/conocenos/programas\",\n            }\n        }\n    },\n    {\n        key: '2',\n        nombre: \"Partido Socialista Obrero Español\",\n        siglas: \"PSOE\",\n        fotoPartido: require('../Images/psoe.png'),\n        fotoPresidente: require('../Images/psoe_presidente.png'),\n        himno: require('../Himnos/himno_psoe.mp3'),\n        himnoCorto: require('../Himnos/himno_psoe_corto.mp3'),\n        colorPartido: \"#e30613\",\n        año: \"1879\",\n        redesSociales: {\n            web: \"psoe.es\",\n            facebook: \"psoe\",\n            twitter: \"50982086\",\n            whatsapp: \"\",\n            instagram: \"psoe\"\n        },\n        informacionPartido: {\n            \"Secretario general del partido:\": \"Pedro Sánchez\",\n            \"Año de fundación:\": \"2 de mayo de 1879\",\n            \"Escaños actuales (Congreso):\": \"120\",\n            \"Sede:\": \"Calle Ferraz, 70, 28008 Madrid\",\n            \"Ideología:\": \"Socialdemocracia, Socioliberalismo, Europeismo, Federalismo asimétrico, Feminismo, A favor del Modelo de las Autonomías, Ecologismo, Republicanismo\",\n            \"Posición:\": \"Centroizquierda\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"psoe.es/propuestas/\",\n            }\n        }\n    },\n    {\n        key: '3',\n        nombre: \"Podemos\",\n        siglas: \"PODEMOS\",\n        fotoPartido: require('../Images/podemos.png'),\n        fotoPresidente: require('../Images/podemos_presidente.png'),\n        himno: require('../Himnos/himno_podemos.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#FFFFFF\",\n        año: \"2014\",\n        redesSociales: {\n            web: \"podemos.info\",\n            facebook: \"ahorapodemos\",\n            twitter: \"2288138575\",\n            whatsapp: \"https://w.podemos.info/\",\n            instagram: \"ahorapodemos\"\n        },\n        informacionPartido: {\n            \"Secretario general del partido:\": \"Pablo Iglesias\",\n            \"Año de fundación:\": \"17 de enero de 2014\",\n            \"Escaños actuales (Congreso):\": \"35\",\n            \"Sede:\": \"Calle Zurita, 21, 28012 Madrid\",\n            \"Ideología:\": \"Igualitarismo, Feminismo, Socialdemocracia, Republicanismo, Comunismo, Democracia participativa\",\n            \"Posición:\": \"Izquierda\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"podemos.info/programa/\",\n            }\n        }\n    },\n    {\n        key: '4',\n        nombre: \"Ciudadanos\",\n        siglas: \"CIUDADANOS\",\n        fotoPartido: require('../Images/ciudadanos.png'),\n        fotoPresidente: require('../Images/ciudadanos_presidente.png'),\n        //himno: require('../Himnos/himno_.mp3),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#ffffff\",\n        año: \"2006\",\n        redesSociales: {\n            web: \"ciudadanos-cs.org\",\n            facebook: \"Cs.Ciudadanos\",\n            twitter: \"19028805\",\n            whatsapp: \"\",\n            instagram: \"ciudadanos\"\n        },\n        informacionPartido: {\n            \"Presidente del partido:\": \"Albert Rivera\",\n            \"Año de fundación:\": \"1 de junio de 2006\",\n            \"Escaños actuales (Congreso):\": \"10\",\n            \"Sede:\": \"Calle de Alcalá, 253, 28027, Madrid​\",\n            \"Ideología:\": \"Socialdemocracia, Constitucionalismo, Liberalismo, Laicismo, Antiindependentismo, Federalismo, Progresismo\",\n            \"Posición:\": \"Centro, Centroderecha, Centroizquierda\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"ciudadanos-cs.org/programa-electoral\",\n            }\n        }\n    },\n    {\n        key: '5',\n        nombre: \"Esquerra Republicana de Cataluña\",\n        siglas: \"ERC\",\n        fotoPartido: require('../Images/erc.png'),\n        fotoPresidente: require('../Images/erc_presidente.png'),\n        himno: require('../Himnos/himno_erc.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#fbc259\",\n        año: \"1931\",\n        redesSociales: {\n            web: \"esquerra.cat\",\n            facebook: \"Esquerra.ERC\",\n            twitter: \"84053338\",\n            whatsapp: \"\", //\"34607624161\",\n            instagram: \"esquerrarepublicana\"\n        },\n        informacionPartido: {\n            \"Presidente del partido:\": \"Oriol Junqueras\",\n            \"Año de fundación:\": \"19 de marzo de 1931\",\n            \"Escaños actuales (Congreso):\": \"13\",\n            \"Sede:\": \"Carrer de Calàbria, 166, 08015 Barcelona\",\n            \"Ideología:\": \"Nacionalismo catalán, Independentismo catalán, Catalanismo, Socialismo democrático, Socialdemocracia, Republicanismo, Pancatalanismo\",\n            \"Posición:\": \"Izquierda\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"esquerra.cat/ca/republica-que-farem/all\",\n            }\n        }\n    },\n    {\n        key: '6',\n        nombre: \"Izquierda Unida\",\n        siglas: \"IU\",\n        fotoPartido: require('../Images/iu.png'),\n        fotoPresidente: require('../Images/iu_presidente.png'),\n        himno: require('../Himnos/himno_iu.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#FFFFFF\",\n        año: \"1986\",\n        redesSociales: {\n            web: \"izquierda-unida.org\",\n            facebook: \"izquierda.unida\",\n            twitter: \"14824411\",\n            whatsapp: \"34680516199\",\n            instagram: \"izquierda_unida\"\n        },\n        informacionPartido: {\n            \"Coordinador federal:\": \"Alberto Garzón\",\n            \"Año de fundación:\": \"29 de abril de 1986\",\n            \"Escaños actuales (Congreso):\": \"5\",\n            \"Sede:\": \"Calle Olimpo, 35, 28043 Madrid\",\n            \"Ideología:\": \"Socialismo democrático, Ecosocialismo, Feminismo, Republicanismo, Federalismo, Anticapitalismo, Antiimperialismo, Antirracismo\",\n            \"Posición:\": \"Izquierda, Extrema Izquierda\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"izquierdaunida.org/programa\",\n            }\n        }\n    },\n    {\n        key: '7',\n        nombre: \"Partido Demócrata Europeo Catalán\",\n        siglas: \"PDC\",\n        fotoPartido: require('../Images/pdc.png'),\n        fotoPresidente: require('../Images/pdc_presidente.png'),\n        himno: require('../Himnos/himno_pdc.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#0181ca\",\n        año: \"2016\",\n        redesSociales: {\n            web: \"partitdemocrata.cat\",\n            facebook: \"Pdemocratacat\",\n            twitter: \"10242562\",\n            whatsapp: \"\",\n            instagram: \"pdemocratacat\"\n        },\n        informacionPartido: {\n            \"Presidente del partido:\": \"David Bonvehí\",\n            \"Año de fundación:\": \"29 de septiembre de 2016\",\n            \"Escaños actuales (Congreso):\": \"7\",\n            \"Sede:\": \"Calle de Provenza, 339, 08037 Barcelona\",\n            \"Ideología:\": \"Nacionalismo catalán, Independentismo catalán, Catalanismo, Pancatalanismo demócrata, Europeismo, Humanismo, Republicanismo\",\n            \"Posición:\": \"Centroderecha\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"partitdemocrata.cat/web/programes-electorals/\",\n            }\n        }\n    },\n    {\n        key: '8',\n        nombre: \"Partido Nacionalista Vasco\",\n        siglas: \"PNV\",\n        fotoPartido: require('../Images/pnv.png'),\n        fotoPresidente: require('../Images/pnv_presidente.png'),\n        himno: require('../Himnos/himno_pnv.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#ffffff\",\n        año: \"1895\",\n        redesSociales: {\n            web: \"eaj-pnv.eus\",\n            facebook: \"eajpnv\",\n            twitter: \"83784273\",\n            whatsapp: \"\",\n            instagram: \"eajpnv\"\n        },\n        informacionPartido: {\n            \"Presidente del partido:\": \"Andoni Ortuzar\",\n            \"Año de fundación:\": \"31 de julio de 1895\",\n            \"Escaños actuales (Congreso):\": \"6\",\n            \"Sede:\": \"Calle Ibáñez de Bilbao, 16, 48001 Bilbao, Vizcaya\",\n            \"Ideología:\": \"Nacionalismo vasco, Conservadurismo, Liberalismo económico, Nacionalismo liberal, Democracia cristiana, Soberanismo, Europeísmo\",\n            \"Posición:\": \"Centroderecha, Centro\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"eaj-pnv.eus/documentos/\",\n            }\n        }\n    },\n    {\n        key: '9',\n        nombre: \"Compromis\",\n        siglas: \"COMPROMIS\",\n        fotoPartido: require('../Images/compromis.png'),\n        fotoPresidente: require('../Images/compromis_presidente.png'),\n        //himno: require('../Himnos/himno_.mp3),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#ffffff\",\n        año: \"2010\",\n        redesSociales: {\n            web: \"compromis.net\",\n            facebook: \"coaliciocompromis\",\n            twitter: \"148867925\",\n            whatsapp: \"\",\n            instagram: \"compromis_net\"\n        },\n        informacionPartido: {\n            \"Portavoz del partido:\": \"Mónica Oltra\",\n            \"Año de fundación:\": \"25 de enero de 2010\",\n            \"Escaños actuales (Congreso):\": \"1\",\n            \"Sede:\": \"Plaza del Pilar, 1, 46001 Valencia\",\n            \"Ideología:\": \"Nacionalismo valenciano, Feminismo, Ecologismo, Ecosocialismo, Progresismo, Regionalismo, Federalismo\",\n            \"Posición:\": \"Izquierda\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"compromis.net/info/transparencia/idees-i-valors/\",\n            }\n        }\n    },\n    {\n        key: '10',\n        nombre: \"Euskal Herria Bildu\",\n        siglas: \"EHBILDU\",\n        fotoPartido: require('../Images/ehbildu.png'),\n        fotoPresidente: require('../Images/ehbildu_presidente.png'),\n        //himno: require('../Himnos/himno_.mp3),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#ffffff\",\n        año: \"2012\",\n        redesSociales: {\n            web: \"ehbildu.eus\",\n            facebook: \"ehbildu\",\n            twitter: \"601887686\",\n            whatsapp: \"\",\n            instagram: \"eh_bildu\"\n        },\n        informacionPartido: {\n            \"Líder del partido:\": \"Arnaldo Otegi\",\n            \"Año de fundación:\": \"10 de junio de 2012\",\n            \"Escaños actuales (Congreso):\": \"5\",\n            \"Sede:\": \"Plaza del Castillo, 49, 18163 Pamplona, Navarra\",\n            \"Ideología:\": \"Izquierda abertzale, Nacionalismo vasco, Socialismo, Independentismo, Soberanismo, Feminismo, Ecologismo, Progresismo, Anticapitalismo, Internacionalismo, Euskaldunización\",\n            \"Posición:\": \"Izquierda, Extrema Izquierda\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"ehbildu.eus/es#eskaintza\",\n            }\n        }\n    },\n    {\n        key: '11',\n        nombre: \"Coalición Canaria\",\n        siglas: \"COALICION CANARIA\",\n        fotoPartido: require('../Images/cc.png'),\n        fotoPresidente: require('../Images/cc_presidente.png'),\n        //himno: require('../Himnos/himno_cc.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#ffffff\",\n        año: \"1993\",\n        redesSociales: {\n            web: \"coalicioncanaria.org\",\n            facebook: \"coalicion.canaria\",\n            twitter: \"89543500\",\n            whatsapp: \"34682643606\",\n            instagram: \"coalicionc\"\n        },\n        informacionPartido: {\n            \"Portavoz del partido:\": \"Ana Oramas\",\n            \"Año de fundación:\": \"31 de marzo de 1993\",\n            \"Escaños actuales (Congreso):\": \"1\",\n            \"Sede:\": \"Buenos Aires 24, 35002 Las Palmas de Gran Canaria, Canarias\",\n            \"Ideología:\": \"Nacionalismo canario, Progresismo, Constitucionalismo\",\n            \"Posición:\": \"Centro, Centroderecha\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"coalicioncanaria.org/programas-electorales/\",\n            }\n        }\n    },\n    {\n        key: '12',\n        nombre: \"Unión Progreso y Democracia\",\n        siglas: \"UPYD\",\n        fotoPartido: require('../Images/upyd.png'),\n        fotoPresidente: require('../Images/upyd_presidente.png'),\n        himno: require('../Himnos/himno_upyd.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#da1d79\",\n        año: \"2007\",\n        redesSociales: {\n            web: \"upyd.es\",\n            facebook: \"Union.Progreso.y.Democracia\",\n            twitter: \"146150851\",\n            whatsapp: \"34602252446\",\n            instagram: \"upyd_es\"\n        },\n        informacionPartido: {\n            \"Portavoz del partido:\": \"Cristiano Brown\",\n            \"Año de fundación:\": \"29 de septiembre de 2007\",\n            \"Escaños actuales (Congreso):\": \"0\",\n            \"Sede:\": \"Calle del Desengaño, 12, 28004 Madrid\",\n            \"Ideología:\": \"Antinacionalismo, Centralismo, Centrismo radical, Federalismo europeo, Laicismo, Monarquismo, Patriotismo español, Progresismo, Reformismo, Socioliberalismo\",\n            \"Posición:\": \"Centro\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"upyd.es/propuestas/\",\n            }\n        }\n    },\n    {\n        key: '13',\n        nombre: \"Bloque Nacionalista Gallego\",\n        siglas: \"BNG\",\n        fotoPartido: require('../Images/bng.png'),\n        fotoPresidente: require('../Images/bng_presidente.png'),\n        himno: require('../Himnos/himno_bng.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#ffffff\",\n        año: \"1982\",\n        redesSociales: {\n            web: \"bng.gal\",\n            facebook: \"obloque\",\n            twitter: \"155544328\",\n            whatsapp: \"34981555850\",\n            instagram: \"o_bloque\"\n        },\n        informacionPartido: {\n            \"Portavoz nacional:\": \"Ana Pontón\",\n            \"Año de fundación:\": \"1982\",\n            \"Escaños actuales (Congreso):\": \"1\",\n            \"Sede:\": \"Avenida Rodríguez de Viguri, 16, Santiago de Compostela)\",\n            \"Ideología:\": \"Nacionalismo gallego, Independentismo gallego, Socialismo, Comunismo, Democracia directa, Marxismo, Internacionalismo\",\n            \"Posición:\": \"Izquierda\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"bng.gal/estaticas/programas-eleitorais\",\n            }\n        }\n    },\n    {\n        key: '14',\n        nombre: \"Candidatura de Unidad Popular\",\n        siglas: \"CUP\",\n        fotoPartido: require('../Images/cup.png'),\n        fotoPresidente: require('../Images/cup_presidente.png'),\n        //himno: require('../Himnos/himno_.mp3),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#fff200\",\n        año: \"1986\",\n        redesSociales: {\n            web: \"cup.cat\",\n            facebook: \"unitatpopular\",\n            twitter: \"91796121\",\n            whatsapp: \"\",\n            instagram: \"cupnacional\"\n        },\n        informacionPartido: {\n            \"Portavoz del partido:\": \"Carles Riera\",\n            \"Año de fundación:\": \"14 de diciembre de 1986\",\n            \"Escaños actuales (Congreso):\": \"2\",\n            \"Sede:\": \"Plaza de Gispert, 4, 1º, Manresa\",\n            \"Ideología:\": \"Pancatalanismo, Independentismo catalán, Euroescepticismo fuerte, Anticapitalismo, Feminismo, Socialismo, Asamblearismo, Antifascismo, Desobediencia\",\n            \"Posición:\": \"Extrema izquierda\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"cup.cat/documents\",\n            }\n        }\n    },\n    {\n        key: '15',\n        nombre: \"Partido Animalista Contra el Maltrato Animal\",\n        siglas: \"PACMA\",\n        fotoPartido: require('../Images/pacma.png'),\n        fotoPresidente: require('../Images/pacma_presidente.png'),\n        //himno: require('../Himnos/himno_.mp3),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#ffffff\",\n        año: \"2003\",\n        redesSociales: {\n            web: \"pacma.es\",\n            facebook: \"PartidoAnimalista.PACMA\",\n            twitter: \"84054978\",\n            whatsapp: \"\",\n            instagram: \"partidopacma\"\n        },\n        informacionPartido: {\n            \"Presidenta del partido:\": \"Silvia Barquero\",\n            \"Año de fundación:\": \"24 de febrero de 2003\",\n            \"Escaños actuales (Congreso):\": \"0\",\n            \"Sede:\": \"Calle Preciados 11, 28013 Madrid\",\n            \"Ideología:\": \"Derechos de los animales, Movimiento de liberación animal, Ecologismo, Democracia participativa, Pacifismo\",\n            \"Posición:\": \"Centroizquierda\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"pacma.es/programa-electoral\",\n            }\n        }\n    },\n    {\n        key: '16',\n        nombre: \"VOX\",\n        siglas: \"VOX\",\n        fotoPartido: require('../Images/vox.png'),\n        fotoPresidente: require('../Images/vox_presidente.png'),\n        himno: require('../Himnos/himno_vox.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#ffffff\",\n        año: \"2013\",\n        redesSociales: {\n            web: \"voxespana.es\",\n            facebook: \"vox.espana\",\n            twitter: \"2201623465\",\n            whatsapp: \"\",\n            instagram: \"vox_es\"\n        },\n        informacionPartido: {\n            \"Presidente del partido:\": \"Santiago Abascal\",\n            \"Año de fundación:\": \"7 de diciembre de 2013\",\n            \"Escaños actuales (Congreso):\": \"52\",\n            \"Sede:\": \"Calle de Diego de León, 60, 28006 Madrid\",\n            \"Ideología:\": \"Neolibrealismo, Nacionalismo español, Conservadurismo, Patriotismo español, Nacionalismo centrista, Reivindicacion caza y tauromaquia, Rechazo al aborto\",\n            \"Posición:\": \"Derecha, Extrema derecha\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"voxespana.es/espana/programa-electoral-vox\",\n            }\n        }\n    },\n    {\n        key: '17',\n        nombre: \"Democracia Nacional\",\n        siglas: \"DEMOCRACIA NACIONAL\",\n        fotoPartido: require('../Images/dn.png'),\n        fotoPresidente: require('../Images/dn_presidente.png'),\n        himno: require('../Himnos/himno_dn.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#004f97\",\n        año: \"1995\",\n        redesSociales: {\n            web: \"democracianacional.org\",\n            facebook: \"DNdemocracianacional\",\n            twitter: \"345257174\",\n            whatsapp: \"\",\n            instagram: \"\"\n        },\n        informacionPartido: {\n            \"Presidente del partido:\": \"Manuel Canduela\",\n            \"Año de fundación:\": \"25 de mayo de 1995\",\n            \"Escaños actuales (Congreso):\": \"0\",\n            \"Sede:\": \"Calle Colmenar de Oreja, 19 (Alcalá de Henares)\",\n            \"Ideología:\": \"Neonazismo, Nacionalismo español, Euroescepticismo, Fascismo, Proteccionismo, Antiinmigración\",\n            \"Posición:\": \"Extrema derecha\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"democracianacional.org/dn/conocenos/\",\n            }\n        }\n    },\n    {\n        key: '18',\n        nombre: \"Partido Comunista de España\",\n        siglas: \"PCE\",\n        fotoPartido: require('../Images/pce.png'),\n        fotoPresidente: require('../Images/pce_presidente.png'),\n        himno: require('../Himnos/himno_pce.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#FFF\",\n        año: \"1921\",\n        redesSociales: {\n            web: \"pce.es\",\n            facebook: \"elPCE\",\n            twitter: \"16579721\",\n            whatsapp: \"\",\n            instagram: \"el_pce\"\n        },\n        informacionPartido: {\n            \"Secretario general del partido:\": \"Enrique Santiago\",\n            \"Año de fundación:\": \"14 de noviembre de 1921\",\n            \"Escaños actuales (Congreso):\": \"4\",\n            \"Sede:\": \"C/ Olimpo, 35, 28043 Madrid\",\n            \"Ideología:\": \"Comunismo, Marxismo-leninismo, Internacionalismo, Republicanismo, Feminismo, Euroescepticismo suave, Antifascismo, Anticapitalismo\",\n            \"Posición:\": \"Izquierda, Extrema izquierda\"\n        }\n    },\n    {\n        key: '19',\n        nombre: \"Equo\",\n        siglas: \"EQUO\",\n        fotoPartido: require('../Images/equo.png'),\n        fotoPresidente: require('../Images/equo_presidente.png'),\n        //himno: require('../Himnos/himno_.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#8aba18\",\n        año: \"2011\",\n        redesSociales: {\n            web: \"partidoequo.es\",\n            facebook: \"EQUOpartido\",\n            twitter: \"187864310\",\n            whatsapp: \"\",\n            instagram: \"partido_equo\"\n        },\n        informacionPartido: {\n            \"Coportavoz del partido:\": \"Carmen Molina\",\n            \"Año de fundación:\": \"4 de junio de 2011\",\n            \"Escaños actuales (Congreso):\": \"1\",\n            \"Sede:\": \"Calle de Martín de Vargas, 7, 28012 Madrid\",\n            \"Ideología:\": \"Ecología política\",\n            \"Posición:\": \"Izquierda\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"partidoequo.es/que-hacemos/programas-electorales/\",\n            }\n        }\n    },\n    {\n        key: '20',\n        nombre: \"Falange Española de las JONS\",\n        siglas: \"FALANGE\",\n        fotoPartido: require('../Images/falange.png'),\n        fotoPresidente: require('../Images/falange_presidente.png'),\n        himno: require('../Himnos/himno_falange.mp3'),\n        //himnoCorto: require('../Himnos/himno_.mp3),\n        colorPartido: \"#d70135\",\n        año: \"1976\",\n        redesSociales: {\n            web: \"falange.es\",\n            facebook: \"falangistas\",\n            twitter: \"179202323\",\n            whatsapp: \"34635941194\",\n            instagram: \"falangistas\"\n        },\n        informacionPartido: {\n            \"Líder del partido (Jefe Nacional):\": \"Norberto Pico Sanabria\",\n            \"Año de fundación:\": \"4 de octubre de 1976\",\n            \"Escaños actuales (Congreso):\": \"0\",\n            \"Sede:\": \"C/ Carranza 13 2º, 28004, Madrid\",\n            \"Ideología:\": \"Nacionalsindicalismo, Nacionalismo español, Neofascismo, Tercera posición, Euroescepticismo\",\n            \"Posición:\": \"Extrema derecha\",\n            \"Más información:\" : {\n                \"Programa Electoral\": \"falange.es/programas-electorales\",\n            }\n        }\n    }\n];\n\n\nconst publicidad = {\n    /*testDeviceId: \"E40FA1696EC05952DD7D11853D3061C8\",           // Id de mi telefono en EXPO\n    bannerId: \"ca-app-pub-5523719235882180/9742982951\",         // BANNER Id publi BUENA\n    interstitialId: \"ca-app-pub-5523719235882180/7018124957\",   // INTERSTITITAL Id publi BUENA\n    bannerId: \"ca-app-pub-3940256099942544/6300978111\",       // BANNER Id publi TEST\n    interstitialId: \"ca-app-pub-3940256099942544/1033173712\"  // INTERSTITIAL Id publi TEST*/\n}\n\n\nexport { partidos, publicidad };","import { fetch } from \"fetch-awesome\";\nimport { Platform } from \"react-native\";\nimport Constants from \"expo-constants\";\n\nconst timeout = 5000;\nconst host = \"https://www.larryrider.es/apps/partidos/\";\nconst actualizar_datos = host.concat(\"actualizar_partidos.php\")\n\nconst URLGetIP = \"http://ip-api.com/json\";\n\nconst getIp = function (callback, callbackError) {\n    fetch(URLGetIP, {\n        method: \"GET\",\n        headers: {\n            'Accept': 'application/json',\n        },\n        timeout: timeout,\n        retries: 1\n    }).then((response) => {\n        return response.json();\n    }).then((responseJson) => {\n        //console.warn(\"respuesta GETIP: \" + JSON.stringify(responseJson));\n        callback(responseJson);\n    }).catch((error) => {\n        //console.warn(\"error GETIP: \" + error);\n        callbackError(error);\n    });\n}\n\nconst getPhoneInfo = function (info) {\n    if (info == \"phoneVersion\") {\n        if (Platform.OS == \"web\") {\n            return \"web\";\n        }\n        return parseInt(Platform.Version, 10);\n    }\n    if (info == \"version\") {\n        return Constants.manifest.version;\n    }\n    if (info == \"phone\") {\n        if (Platform.OS === 'ios') {\n            return Constants.platform.ios.model;\n        }\n        return Constants.deviceName;\n    }\n}\n\nexport const enviarInfo = function (partido, accion) {\n    if (Platform.OS == \"web\") {\n        let json = \"{\";\n        json = json.concat('\"partido\":\"', partido, '\",');\n        json = json.concat('\"accion\":\"', accion, '\",');\n        json = json.concat('\"phoneVersion\":\"', getPhoneInfo(\"phoneVersion\"), '\",');\n        json = json.concat('\"version\":\"', getPhoneInfo(\"version\"), '\",');\n        json = json.concat('\"phone\":\"', getPhoneInfo(\"phone\"), '\"');\n        json = json.concat(\"}\");\n\n        return fetch(actualizar_datos, {\n            method: \"POST\",\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            body: json,\n            timeout: timeout,\n            retries: 1\n        }).then((response) => {\n            //console.warn(response);\n        }).catch((error) => {\n            //console.warn(error);\n        });\n    }\n    getIp(function (response) {\n        let formData = new FormData();\n        formData.append(\"ip\", JSON.stringify(response));\n        formData.append(\"partido\", partido);\n        formData.append(\"accion\", accion);\n        formData.append(\"phoneVersion\", getPhoneInfo(\"phoneVersion\"));\n        formData.append(\"version\", getPhoneInfo(\"version\"));\n        formData.append(\"phone\", getPhoneInfo(\"phone\"));\n\n        fetch(actualizar_datos, {\n            method: \"POST\",\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            body: formData,\n            timeout: timeout,\n            retries: 1\n        }).then((response) => {\n            //console.warn(response);\n        }).catch((error) => {\n            //console.warn(error);\n        });\n    }, function (error) {\n        let formData = new FormData();\n        formData.append(\"partido\", partido);\n        formData.append(\"accion\", accion);\n        formData.append(\"phoneVersion\", getPhoneInfo(\"phoneVersion\"));\n        formData.append(\"version\", getPhoneInfo(\"version\"));\n        formData.append(\"phone\", getPhoneInfo(\"phone\"));\n\n        fetch(actualizar_datos, {\n            method: \"POST\",\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            body: formData,\n            timeout: timeout,\n            retries: 1\n        }).then((response) => {\n            //console.warn(response);\n        }).catch((error) => {\n            //console.warn(error);\n        });\n    });\n}","import React from \"react\";\nimport {\n    StyleSheet,\n    TouchableOpacity,\n    View,\n    FlatList,\n    Dimensions,\n    Image,\n    Text,\n    Platform,\n    Alert,\n    ActivityIndicator,\n    Modal,\n    Share,\n    Linking,\n    Picker\n} from \"react-native\";\nimport { AppLoading, Updates } from \"expo\";\nimport { Asset } from \"expo-asset\";\nimport Constants from \"expo-constants\";\nimport * as Font from \"expo-font\";\nimport * as Localization from \"expo-localization\";\nimport * as SecureStore from 'expo-secure-store';\nimport * as Network from 'expo-network';\nimport { MaterialIcons, Feather } from \"@expo/vector-icons\";\nimport CustomModal from \"react-native-modal\";\nimport SettingsList from \"react-native-settings-list\";\nimport Toast from \"react-native-root-toast\";\nimport Slider from 'react-native-slider';\nimport { NavigationEvents } from 'react-navigation';\nimport { partidos } from \"../Utility/Utilidad\";\nimport { enviarInfo } from \"../Utility/Api\";\n\nexport default class Principal extends React.PureComponent {\n    posicionPartido = 0;\n\n    constructor(props) {\n        super(props);\n\n        let numColumns = 2;\n\n        if (Platform.OS == \"web\") {\n            numColumns = 4;\n        }\n\n        this.state = {\n            width: this.getWidth(),\n            numColumns: numColumns,\n            ordenPartidos: \"congreso desc\",\n            modalVisible: false,\n            floatingButton: true,\n            settings: false,\n            actualizarFlatlist: false,\n            isAppReady: false,\n        };\n        enviarInfo(\"app\", \"app\");\n    }\n\n    componentDidMount() {\n        if (Platform.OS != \"web\") {\n            this.updateNumColumns();\n            this.updateOrdenPartidos();\n\n            this.props.navigation.setParams({\n                headerRight: () => (\n                    <TouchableOpacity\n                        style={{ paddingHorizontal: 15 }}\n                        onPress={() => { this.showSettings(true) }} >\n                        <MaterialIcons name={\"settings\"} size={30} color=\"#fff\" />\n                    </TouchableOpacity>\n                )\n            });\n\n            this.checkUpdates();\n        }\n    }\n\n    async _cacheResourcesAsync() {\n        let images = [\n            require('../Images/web.png'),\n            require('../Images/facebook.png'),\n            require('../Images/twitter.png'),\n            require('../Images/whatsapp.png'),\n            require('../Images/instagram.png'),\n            require('../Images/update.png'),\n            require('../Images/columns.png'),\n            require('../Images/compartir.png'),\n            require('../Images/privacy.png'),\n            require('../Images/information.png'),\n            require('../Images/playstore.png'),\n        ];\n\n        for (let i = 0; i < partidos.length; i++) {\n            images.push(partidos[i].fotoPartido);\n            images.push(partidos[i].fotoPresidente);\n        }\n\n        const fonts = [\n            Feather.font,\n            MaterialIcons.font,\n        ];\n\n        const cacheImages = images.map((image) => {\n            return Asset.fromModule(image).downloadAsync();\n        });\n\n        const cacheFonts = fonts.map((font) => {\n            return Font.loadAsync(font);\n        });\n\n        await Promise.all([...cacheImages, ...cacheFonts]);\n    }\n\n    checkUpdates = async () => {\n        try {\n            const update = await Updates.checkForUpdateAsync();\n            if (update.isAvailable) {\n                await Updates.fetchUpdateAsync();\n                setTimeout(() => {\n                    Alert.alert(\n                        'Actualización disponible\\n\\n',\n                        '¿Quieres actualizar ahora?.\\n',\n                        [\n                            { text: 'Más tarde', onPress: () => { } },\n                            { text: 'OK', onPress: () => { Updates.reloadFromCache(); } }\n                        ],\n                        { cancelable: true }\n                    )\n                }, 500);\n            }\n        } catch (error) { }\n    }\n\n    getWidth = () => {\n        if (Dimensions.get('window').width > Dimensions.get('window').height) {\n            return Dimensions.get('window').height;\n        } else {\n            return Dimensions.get('window').width;\n        }\n    }\n\n    showSettings = (visible) => {\n        this.setState({\n            settings: visible\n        }, () => {\n            if (visible) {\n                setTimeout(() => {\n                    this.actualizarFlatlist();\n                }, 500);\n            }\n        });\n    }\n\n    _onClick = (item, index) => {\n        this.posicionPartido = Math.floor(index / this.state.numColumns);\n        this.props.navigation.navigate(\"Partido\", { partido: item });\n    }\n\n    renderItem = ({ item, index }) => {\n        if (item.empty === true) {\n            return (<View key={item.key} style={[styles.item, styles.itemInvisible]} />);\n        }\n        return (\n            <ItemPartido\n                item={item}\n                index={index}\n                _onClick={this._onClick}\n                height={this.state.width / this.state.numColumns} />\n        );\n    }\n\n    onLayout = () => { //Cuando se rota la pantalla, para actualizar el ancho\n        this.setState({ width: this.getWidth() });\n    }\n\n    formatData = (partidos, numColumns) => {\n        let numeroElementosUltimaFila = partidos.length % numColumns;\n        let contador = partidos.length;\n        let partidosTemporal = [...partidos];\n        partidosTemporal.sort(this.ordenarPartidos);\n        if (numeroElementosUltimaFila !== 0 && numeroElementosUltimaFila !== numColumns) {\n            for (let i = 1; i <= numColumns - numeroElementosUltimaFila; i++) {\n                partidosTemporal.push({ key: `${contador + i}`, empty: true });\n            }\n        }\n        return partidosTemporal;\n    }\n\n    ordenarPartidos = (partido1, partido2) => {\n        if (this.state.ordenPartidos.startsWith(\"alfabeto\")) {\n            if (this.state.ordenPartidos.endsWith(\"asc\")) {\n                return partido1.nombre > partido2.nombre;\n            } else {\n                return partido1.nombre < partido2.nombre;\n            }\n        } else if (this.state.ordenPartidos.startsWith(\"año\")) {\n            if (this.state.ordenPartidos.endsWith(\"asc\")) {\n                return partido1.año > partido2.año;\n            } else {\n                return partido1.año < partido2.año;\n            }\n        } else {\n            let escaños1;\n            let escaños2;\n\n            if (partido1 && partido1.informacionPartido && partido1.informacionPartido[\"Escaños actuales (Congreso):\"]) {\n                escaños1 = partido1.informacionPartido[\"Escaños actuales (Congreso):\"];\n            }\n            if (partido2 && partido2.informacionPartido && partido2.informacionPartido[\"Escaños actuales (Congreso):\"]) {\n                escaños2 = partido2.informacionPartido[\"Escaños actuales (Congreso):\"];\n            }\n\n            if (!escaños1 || escaños1 == \"\") {\n                escaños1 = 0;\n            }\n            if (!escaños2 || escaños2 == \"\") {\n                escaños2 = 0;\n            }\n\n            escaños1 = parseInt(escaños1);\n            if (isNaN(escaños1)) {\n                escaños1 = 0;\n            }\n            escaños2 = parseInt(escaños2);\n            if (isNaN(escaños2)) {\n                escaños2 = 0;\n            }\n\n            if (this.state.ordenPartidos.endsWith(\"asc\")) {\n                return escaños1 - escaños2;\n            } else {\n                return escaños2 - escaños1;\n            }\n        }\n    }\n\n    storeNumColumns = async (numColumns) => {\n        try {\n            await SecureStore.setItemAsync(\"numColumns\", \"\".concat(numColumns));\n        } catch (error) {\n            console.warn(\"ERROR storeNumColumns: \" + error)\n        }\n    }\n\n    updateNumColumns = async () => {\n        try {\n            const numColumns = await SecureStore.getItemAsync(\"numColumns\");\n            if (numColumns !== null && numColumns != this.state.numColumns) {\n                this.posicionPartido = 0;\n                this.setState({\n                    numColumns: Number(numColumns)\n                });\n            }\n        } catch (error) {\n            console.warn(\"ERROR updateNumColumns: \" + error)\n        }\n    }\n\n    storeOrdenPartidos = async (ordenPartidos) => {\n        try {\n            await SecureStore.setItemAsync(\"ordenPartidos\", ordenPartidos);\n        } catch (error) {\n            console.warn(\"ERROR storeOrdenPartidos: \" + error)\n        }\n    }\n\n    updateOrdenPartidos = async () => {\n        try {\n            const ordenPartidos = await SecureStore.getItemAsync(\"ordenPartidos\");\n            if (ordenPartidos !== null && ordenPartidos != this.state.ordenPartidos) {\n                this.posicionPartido = 0;\n                this.setState({\n                    ordenPartidos: ordenPartidos\n                });\n            }\n        } catch (error) {\n            console.warn(\"ERROR updateOrdenPartidos: \" + error)\n        }\n    }\n\n    cambiarColumnas = (visible) => {\n        this.setState({ modalVisible: visible })\n    }\n\n    actualizarFlatlist = () => {\n        this.setState({ actualizarFlatlist: !this.state.actualizarFlatlist });\n    }\n\n    render() {\n        if (!this.state.isAppReady) {\n            return (\n                <AppLoading\n                    startAsync={this._cacheResourcesAsync}\n                    onFinish={() => this.setState({ isAppReady: true })}\n                    onError={console.warn}\n                />\n            );\n        }\n\n        const flatListKey = \"\".concat(this.state.numColumns).concat(this.state.actualizarFlatlist);\n        return (\n            <View style={{ flex: 1 }}>\n                <NavigationEvents\n                    //onWillBlur={payload => { }}\n                    //onDidFocus={payload => { }}\n                    //onDidBlur={payload => console.warn('did blur', payload)}\n                    onWillFocus={payload => { this.actualizarFlatlist(); }}\n                />\n                {this.state.modalVisible ? <CustomModal\n                    style={styles.bottomModal}\n                    isVisible={this.state.modalVisible}\n                    onBackButtonPress={() => { this.cambiarColumnas(false); }}\n                    onBackdropPress={() => { this.cambiarColumnas(false); }}\n                    onModalHide={() => {\n                        this.storeNumColumns(this.state.numColumns);\n                        this.storeOrdenPartidos(this.state.ordenPartidos);\n                    }}>\n                    <View style={{ height: \"auto\", backgroundColor: \"#FFF\", alignItems: \"center\", paddingVertical: 20 /*justifyContent: \"center\"*/ }}>\n                        <Text style={{ color: \"#000\", width: this.state.width, textAlign: \"center\", marginBottom: 15 }}>\n                            Mostrando {this.state.numColumns} columnas de partidos\n                        </Text>\n                        <Slider\n                            style={{ width: \"75%\", marginBottom: 25 }}\n                            step={1}\n                            minimumValue={2}\n                            maximumValue={6}\n                            value={this.state.numColumns}\n                            onValueChange={val => {\n                                this.posicionPartido = 0;\n                                this.setState({ numColumns: val });\n                            }}\n                            minimumTrackTintColor='#3ba9a4'\n                            maximumTrackTintColor='#d3d3d3'\n                            thumbTintColor='#2e827e'\n                        />\n                        <Text style={{ color: \"#000\", width: this.state.width, textAlign: \"center\", marginBottom: 15 }}>\n                            Ordenar partidos por:\n                        </Text>\n                        <Picker\n                            selectedValue={this.state.ordenPartidos}\n                            style={{ height: 50, width: \"55%\", marginBottom: 30, justifyContent: 'center', }}\n                            onValueChange={(itemValue, itemIndex) => {\n                                this.posicionPartido = 0;\n                                this.setState({ ordenPartidos: itemValue });\n                            }}>\n                            <Picker.Item label=\"Escaños Congreso ↑\" value=\"congreso asc\" />\n                            <Picker.Item label=\"Escaños Congreso ↓\" value=\"congreso desc\" />\n                            <Picker.Item label=\"Alfabéticamente ↑\" value=\"alfabeto asc\" />\n                            <Picker.Item label=\"Alfabéticamente ↓\" value=\"alfabeto desc\" />\n                            <Picker.Item label=\"Año Fundación ↑\" value=\"año asc\" />\n                            <Picker.Item label=\"Año Fundación ↓\" value=\"año desc\" />\n                        </Picker>\n                    </View>\n                </CustomModal> : <View></View>}\n                <FlatList\n                    key={flatListKey}\n                    ref={(ref) => { this.flatList = ref; }}\n                    style={styles.container}\n                    data={this.formatData(partidos, this.state.numColumns)}\n                    renderItem={this.renderItem}\n                    numColumns={this.state.numColumns}\n                    onLayout={this.onLayout}\n                    initialScrollIndex={this.posicionPartido}\n                    getItemLayout={(data, index) => {\n                        const paddings = 25;\n                        const ITEM_HEIGHT = (this.state.width / this.state.numColumns) + paddings;\n                        return { length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index };\n                    }}\n                /*onScrollBeginDrag={() => { this.setState({ floatingButton: false }); }}\n                onMomentumScrollBegin={() => { this.setState({ floatingButton: false }); }}\n                onScrollEndDrag={() => { this.setState({ floatingButton: true }); }}\n                onMomentumScrollEnd={() => { this.setState({ floatingButton: true }); }} */\n                />\n                {/*<FloatingAction\n                    actions={actions}\n                    overrideWithAction={true}\n                    iconHeight={30}\n                    iconWidth={30}\n                    onPressItem={(name) => { this.cambiarColumnas(true); }}\n                    visible={this.state.floatingButton}\n                    color={\"#3ba9a4\"}\n                />*/}\n                {this.state.showSettings ? <Settings\n                    settings={this.state.settings}\n                    showSettings={this.showSettings}\n                    cambiarColumnas={this.cambiarColumnas}\n                /> : <View></View>}\n            </View>\n        );\n    }\n\n    static navigationOptions = ({ navigation }) => {\n        if (Platform.OS != \"web\") {\n            var auxHeaderRight = () => (\n                <TouchableOpacity\n                    style={{ paddingHorizontal: 15 }} >\n                    <MaterialIcons name={\"settings\"} size={30} color=\"#fff\" />\n                </TouchableOpacity>\n            );\n        } else{\n            var headerTitleAlign = \"center\";\n        }\n        return {\n            headerTitle: 'Partidos Políticos España',\n            headerRight: navigation.getParam(\"headerRight\", auxHeaderRight),\n            headerTitleAlign: headerTitleAlign\n        }\n    }\n}\n\nclass ItemPartido extends React.PureComponent {\n    _onPress = () => {\n        this.props._onClick(this.props.item, this.props.index);\n    }\n\n    render() {\n        return (\n            <TouchableOpacity\n                key={this.props.item.key}\n                style={[styles.item, { height: this.props.height }]}\n                onPress={() => { this._onPress() }}>\n                <Image\n                    key={this.props.item.key}\n                    source={this.props.item.fotoPartido}\n                    style={{ width: \"100%\", height: \"100%\" }}\n                    resizeMode={\"contain\"}\n                    resizeMethod={\"resize\"}>\n                </Image>\n            </TouchableOpacity>\n        );\n    }\n}\n\nclass Settings extends React.PureComponent {\n    constructor(props) {\n        super(props);\n        this.state = {\n            updating: false\n        }\n    }\n\n    updateApp = () => {\n        this.setState({ updating: true }, () => {\n            setTimeout(async () => {\n                try {\n                    const update = await Updates.checkForUpdateAsync();\n                    if (update.isAvailable) {\n                        await Updates.fetchUpdateAsync();\n                        Updates.reloadFromCache();\n                    } else {\n                        Toast.show('No hay actualizaciones disponibles, ya tienes la última versión!', {\n                            duration: Toast.durations.LONG,\n                            position: Toast.positions.BOTTOM,\n                            shadow: true,\n                            animation: true,\n                            hideOnPress: true,\n                            delay: 0,\n                            backgroundColor: \"#226360\",\n                            opacity: 0.9,\n                            onShow: () => { },\n                            onShown: () => { },\n                            onHide: () => { },\n                            onHidden: () => { }\n                        });\n                    }\n                } catch (error) {\n                    Toast.show('Ha ocurrido un error buscando actualizaciones, inténtelo de nuevo', {\n                        duration: Toast.durations.LONG,\n                        position: Toast.positions.BOTTOM,\n                        shadow: true,\n                        animation: true,\n                        hideOnPress: true,\n                        delay: 0,\n                        backgroundColor: \"#226360\",\n                        opacity: 0.9,\n                        onShow: () => { },\n                        onShown: () => { },\n                        onHide: () => { },\n                        onHidden: () => { }\n                    });\n                }\n                this.setState({ updating: false });\n            }, 1000);\n        });\n    }\n\n    render() {\n        const marginTop = (Platform.OS === 'android') ? 5 : 30;\n        return (\n            <View>\n                <Modal\n                    animationType=\"fade\"\n                    transparent={false}\n                    visible={this.props.settings}\n                    onRequestClose={() => { this.props.showSettings(false); }}>\n                    <View style={{ backgroundColor: '#FFF', flex: 1 }}>\n                        <View style={{ borderBottomWidth: 1, backgroundColor: '#349994', borderColor: '#c8c7cc' }}>\n                            <View style={{ flexDirection: 'row', marginTop: marginTop, marginBottom: 10 }}>\n                                <TouchableOpacity\n                                    style={{ zIndex: 999 }}\n                                    onPress={() => { this.props.showSettings(false); }}>\n                                    <MaterialIcons name={\"chevron-left\"} size={40} color=\"#fff\" />\n                                </TouchableOpacity>\n                                <View style={{ position: 'absolute', width: '100%' }}>\n                                    <Text style={{ marginTop: 8, fontWeight: 'bold', fontSize: 20, textAlign: 'center', color: '#fff' }}>Ajustes</Text>\n                                </View>\n                            </View>\n                        </View>\n                        <View style={{ backgroundColor: '#EFEFF4', flex: 1 }}>\n                            <SettingsList borderColor='#c8c7cc' defaultItemSize={50}>\n                                <SettingsList.Header headerStyle={{ marginTop: 15 }} />\n                                <SettingsList.Item\n                                    icon={<Image style={styles.imageStyle} source={require('../Images/update.png')} />}\n                                    title='Actualizar aplicación'\n                                    titleInfo='Actualizar'\n                                    titleInfoStyle={styles.titleInfoStyle}\n                                    onPress={() => {\n                                        this.props.showSettings(false);\n                                        this.updateApp();\n                                    }}\n                                />\n                                <SettingsList.Item\n                                    icon={<Image style={styles.imageStyle} source={require('../Images/columns.png')} />}\n                                    title='Organización Visual'\n                                    titleInfo='Cambiar'\n                                    titleInfoStyle={styles.titleInfoStyle}\n                                    onPress={() => {\n                                        this.props.showSettings(false);\n                                        this.props.cambiarColumnas(true);\n                                    }}\n                                />\n                                <SettingsList.Item\n                                    icon={<Image style={styles.imageStyle} source={require('../Images/playstore.png')} />}\n                                    title='Ver en Play Store'\n                                    titleInfo='Abrir'\n                                    titleInfoStyle={styles.titleInfoStyle}\n                                    onPress={() => {\n                                        let url = \"market://details?id=com.himnospartidospoliticos\";\n                                        Linking.canOpenURL(url).then((supported) => {\n                                            if (!supported) {\n                                                url = \"https://play.google.com/store/apps/details?id=com.himnospartidospoliticos\";\n                                            }\n                                            return Linking.openURL(url);\n                                        });\n                                    }}\n                                />\n                                <SettingsList.Item\n                                    icon={<Image style={styles.imageStyle} source={require('../Images/compartir.png')} />}\n                                    title='Compartir aplicación'\n                                    titleInfo='Compartir'\n                                    titleInfoStyle={styles.titleInfoStyle}\n                                    onPress={() => {\n                                        const mensaje = \"Conoce la informacion de nuestros partidos politicos en:\\n https://play.google.com/store/apps/details?id=com.himnospartidospoliticos\";\n                                        Share.share({\n                                            title: \"Partidos Políticos España\",\n                                            message: mensaje\n                                        });\n                                    }}\n                                />\n                                <SettingsList.Header headerStyle={{ marginTop: 15 }} />\n                                <SettingsList.Item\n                                    icon={<Image style={styles.imageStyle} source={require('../Images/privacy.png')} />}\n                                    title='Política de privacidad'\n                                    onPress={async () => {\n                                        Linking.openURL(\"http://www.larryrider.es/apps/partidos/privacy/privacy_policy.html\");\n                                    }}\n                                />\n                                <SettingsList.Item\n                                    icon={<Image style={styles.imageStyle} source={require('../Images/information.png')} />}\n                                    title='Información del sistema'\n                                    onPress={async () => {\n                                        let ip;\n                                        try { ip = '\\nIp: ' + await Network.getIpAddressAsync(); } catch (error) { };\n                                        const informacionSistema = 'Expo: ' + Constants.expoVersion + '\\nId: ' + Constants.installationId +\n                                            '\\nDispositivo: ' + Constants.deviceName + '\\nAño: ' + Constants.deviceYearClass +\n                                            '\\nPlataforma: ' + (Platform.OS === 'ios' ? 'iOS' : 'Android') +\n                                            '\\nVersión Sistema: ' + parseInt(Platform.Version, 10) +\n                                            (Platform.OS === 'ios' ? '\\nModelo: ' + Constants.platform.ios.model : '') +\n                                            (Platform.OS === 'ios' ? '\\nPaís: ' + await Localization.region : '') +\n                                            (ip ? ip : '') +\n                                            '\\n\\nVersión App: ' + Constants.manifest.version;\n                                        Alert.alert(\n                                            'Información del sistema',\n                                            informacionSistema,\n                                            [\n                                                {\n                                                    text: 'Compartir', onPress: () => {\n                                                        Share.share({\n                                                            title: \"Información del telefono\",\n                                                            message: informacionSistema\n                                                        });\n                                                    }\n                                                },\n                                                { text: 'OK', onPress: () => { } }\n                                            ],\n                                            { cancelable: true }\n                                        );\n                                    }}\n                                />\n                            </SettingsList>\n                        </View>\n                    </View>\n                </Modal>\n                <Modal\n                    animationType=\"fade\"\n                    transparent={false}\n                    visible={this.state.updating}\n                    onRequestClose={() => { }}>\n                    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>\n                        <Text style={{ fontSize: 20, fontWeight: '200', color: '#349994', marginBottom: 20 }}>\n                            Actualizando...\n                        </Text>\n                        <ActivityIndicator size=\"large\" color=\"#349994\" />\n                    </View>\n                </Modal>\n            </View>\n        );\n    }\n}\n\nconst styles = StyleSheet.create({\n    container: {\n        flex: 1,\n        backgroundColor: '#FFF',\n        paddingVertical: 10,\n        paddingBottom: 15\n    },\n    item: {\n        backgroundColor: '#FFF', //'#4D243D',\n        alignItems: 'center',\n        justifyContent: 'center',\n        flex: 1,\n        margin: 10,\n    },\n    itemInvisible: {\n        backgroundColor: 'transparent', //transparent\n    },\n    bottomModal: {\n        justifyContent: \"flex-end\",\n        margin: 0\n    },\n    imageStyle: {\n        marginLeft: 15,\n        alignSelf: 'center',\n        height: 30,\n        width: 30\n    },\n    titleInfoStyle: {\n        fontSize: 16,\n        color: '#8e8e93'\n    }\n});","import React from \"react\";\n\nimport {\n    View,\n    StyleSheet,\n    Text,\n    TouchableOpacity,\n    ActivityIndicator,\n//    Slider\n} from \"react-native\";\nimport { enviarInfo } from \"../Utility/Api\";\nimport { MaterialIcons } from \"@expo/vector-icons\";\nimport { Audio } from 'expo-av';\nimport Slider from \"react-native-slider\";\nimport Toast from \"react-native-root-toast\";\n\nexport default class HimnosPartido extends React.PureComponent {\n    constructor(props) {\n        super(props);\n\n        this.himnoLargo = null;\n        this.himnoCorto = null;\n\n        const hayHimnoLargo = this.props.partido.himno && this.props.partido.himno != null && this.props.partido.himno != \"\";\n        const hayHimnoCorto = this.props.partido.himnoCorto && this.props.partido.himnoCorto != null && this.props.partido.himnoCorto != \"\";\n\n        this.state = {\n            hayHimnoLargo: hayHimnoLargo,\n            hayHimnoCorto: hayHimnoCorto,\n            playingHimnoLargo: false,\n            playingHimnoCorto: false,\n            loadingHimnoLargo: true,\n            loadingHimnoCorto: true,\n            seekingHimnoLargo: false,\n            seekingHimnoCorto: false\n        }\n    }\n\n    componentDidMount() {\n        if (this.state.hayHimnoLargo) {\n            this.cargarHimnoLargo();\n            if (this.state.hayHimnoCorto) {\n                this.cargarHimnoCorto();\n            }\n        }\n    }\n\n    componentWillUnmount() {\n        this.destruirHimnoLargo();\n        this.destruirHimnoCorto();\n    }\n\n    himnoLargoListener = estadoHimnoLargo => {\n        if (!estadoHimnoLargo.isLoaded) {\n            // Update your UI for the unloaded state\n            this.setState({\n                playingHimnoLargo: false,\n                loadingHimnoLargo: true\n            });\n            if (estadoHimnoLargo.error) {\n                console.warn(`ERROR HIMNOLARGO: ${estadoHimnoLargo.error}`);\n\n                // Send Expo team the error on Slack or the forums so we can help you debug!\n                this.destruirHimnoLargo();\n                this.setState({ hayHimnoLargo: false });\n\n                const mensaje = \"Error de conexión con el audio del dispositivo, por favor, reinicie la aplicación.\";\n                Toast.show(mensaje, {\n                    duration: Toast.durations.LONG,\n                    position: Toast.positions.BOTTOM,\n                    shadow: true,\n                    animation: true,\n                    hideOnPress: true,\n                    delay: 0,\n                    backgroundColor: \"#226360\",\n                    opacity: 0.9,\n                    onShow: () => { },\n                    onShown: () => { },\n                    onHide: () => { },\n                    onHidden: () => { }\n                });\n            }\n        } else if (this.himnoLargo != null && estadoHimnoLargo.isLoaded) {\n            // Update your UI for the loaded state\n            this.setState({\n                loadingHimnoLargo: false,\n                totalHimnoLargo: estadoHimnoLargo.durationMillis,\n                posicionHimnoLargo: estadoHimnoLargo.positionMillis\n            });\n\n            if (estadoHimnoLargo.isPlaying) {\n                // Update your UI for the playing state\n                this.setState({\n                    playingHimnoLargo: true\n                });\n            } else {\n                // Update your UI for the paused state\n                this.setState({\n                    playingHimnoLargo: false\n                });\n            }\n\n            if (estadoHimnoLargo.isBuffering) {\n                // Update your UI for the buffering state\n            }\n\n            if (estadoHimnoLargo.didJustFinish && !estadoHimnoLargo.isLooping) {\n                // The player has just finished playing and will stop. Maybe you want to play something else?\n                //console.warn(\"himno largo terminado\") //habria que cambiar el pause por play\n                this.stopHimnoLargo();\n            }\n        }\n    }\n\n    himnoCortoListener = estadoHimnoCorto => {\n        if (!estadoHimnoCorto.isLoaded) {\n            // Update your UI for the unloaded state\n            this.setState({\n                playingHimnoCorto: false,\n                loadingHimnoCorto: true\n            });\n            if (estadoHimnoCorto.error) {\n                console.warn(`ERROR HIMNOCORTO: ${estadoHimnoCorto.error}`);\n\n                // Send Expo team the error on Slack or the forums so we can help you debug!\n                this.destruirHimnoCorto();\n                this.setState({ hayHimnoCorto: false });\n\n                const mensaje = \"Error de conexión con el audio del dispositivo, por favor, reinicie la aplicación.\";\n                Toast.show(mensaje, {\n                    duration: Toast.durations.LONG,\n                    position: Toast.positions.BOTTOM,\n                    shadow: true,\n                    animation: true,\n                    hideOnPress: true,\n                    delay: 0,\n                    backgroundColor: \"#226360\",\n                    opacity: 0.9,\n                    onShow: () => { },\n                    onShown: () => { },\n                    onHide: () => { },\n                    onHidden: () => { }\n                });\n            }\n        } else if (this.himnoCorto != null && estadoHimnoCorto.isLoaded) {\n            // Update your UI for the loaded state\n            this.setState({\n                loadingHimnoCorto: false,\n                totalHimnoCorto: estadoHimnoCorto.durationMillis,\n                posicionHimnoCorto: estadoHimnoCorto.positionMillis\n            });\n\n            if (estadoHimnoCorto.isPlaying) {\n                // Update your UI for the playing state\n                this.setState({\n                    playingHimnoCorto: true\n                });\n            } else {\n                // Update your UI for the paused state\n                this.setState({\n                    playingHimnoCorto: false\n                });\n            }\n\n            if (estadoHimnoCorto.isBuffering) {\n                // Update your UI for the buffering state\n            }\n\n            if (estadoHimnoCorto.didJustFinish && !estadoHimnoCorto.isLooping) {\n                // The player has just finished playing and will stop. Maybe you want to play something else?\n                //console.warn(\"himno corto terminado\") //habria que cambiar el pause por play\n                this.stopHimnoCorto();\n            }\n        }\n    }\n\n    getPosicionHimnoLargo = () => {\n        if (this.himnoLargo != null && this.state.posicionHimnoLargo != null && this.state.totalHimnoLargo != null) {\n            return this.state.posicionHimnoLargo / this.state.totalHimnoLargo;\n        }\n        return 0;\n    }\n\n    getPosicionHimnoCorto = () => {\n        if (this.himnoCorto != null && this.state.posicionHimnoCorto != null && this.state.totalHimnoCorto != null) {\n            return this.state.posicionHimnoCorto / this.state.totalHimnoCorto;\n        }\n        return 0;\n    }\n\n    cargarHimnoLargo = async () => {\n        try {\n            this.himnoLargo = new Audio.Sound();\n            await this.himnoLargo.loadAsync(this.props.partido.himno);\n            this.himnoLargo.setOnPlaybackStatusUpdate(this.himnoLargoListener);\n        } catch (error) {\n            console.warn(\"error al cargar himnoLargo \" + error);\n        }\n    }\n\n    cargarHimnoCorto = async () => {\n        try {\n            this.himnoCorto = new Audio.Sound();\n            await this.himnoCorto.loadAsync(this.props.partido.himnoCorto);\n            this.himnoCorto.setOnPlaybackStatusUpdate(this.himnoCortoListener);\n        } catch (error) {\n            console.warn(\"error al cargar himnoCorto \" + error);\n        }\n    }\n\n    destruirHimnoLargo = async () => {\n        try {\n            if (this.himnoLargo != null) {\n                this.himnoLargo.setOnPlaybackStatusUpdate(null);\n                await this.himnoLargo.unloadAsync();\n                this.himnoLargo = null;\n            }\n        } catch (error) { }\n    }\n\n    destruirHimnoCorto = async () => {\n        try {\n            if (this.himnoCorto != null) {\n                this.himnoCorto.setOnPlaybackStatusUpdate(null);\n                await this.himnoCorto.unloadAsync();\n                this.himnoCorto = null;\n            }\n        } catch (error) { }\n    }\n\n    playHimnoLargo = async () => {\n        try {\n            if (this.state.playingHimnoCorto) {\n                this.pauseHimnoCorto();\n            }\n\n            if (this.state.playingHimnoLargo) {\n                this.pauseHimnoLargo();\n            } else {\n                await this.himnoLargo.playAsync();\n                enviarInfo(this.props.partido.siglas, \"himnolargo\");\n            }\n        } catch (error) {\n            console.warn(\"error al sonar himnoLargo \" + error);\n        }\n    }\n\n    playHimnoCorto = async () => {\n        try {\n            if (this.state.playingHimnoLargo) {\n                this.pauseHimnoLargo();\n            }\n\n            if (this.state.playingHimnoCorto) {\n                this.pauseHimnoCorto();\n            } else {\n                await this.himnoCorto.playAsync();\n                enviarInfo(this.props.partido.siglas, \"himnocorto\");\n            }\n        } catch (error) {\n            console.warn(\"error al sonar himnoCorto \" + error);\n        }\n    }\n\n    pauseHimnoLargo = async () => {\n        try {\n            if (this.state.playingHimnoLargo) {\n                await this.himnoLargo.pauseAsync();\n            }\n        } catch (error) {\n            console.warn(\"error al pausar himnoLargo \" + error);\n        }\n    }\n\n    pauseHimnoCorto = async () => {\n        try {\n            if (this.state.playingHimnoCorto) {\n                await this.himnoCorto.pauseAsync();\n            }\n        } catch (error) {\n            console.warn(\"error al pausar himnoCorto \" + error);\n        }\n    }\n\n    stopHimnoLargo = async () => {\n        try {\n            await this.himnoLargo.stopAsync();\n        } catch (error) {\n            console.warn(\"error al parar himnoLargo \" + error);\n        }\n    }\n\n    stopHimnoCorto = async () => {\n        try {\n            await this.himnoCorto.stopAsync();\n        } catch (error) {\n            console.warn(\"error al parar himnoCorto \" + error);\n        }\n    }\n\n    moviendoHimnoLargo = () => {\n        if (this.himnoLargo != null && !this.state.seekingHimnoLargo) {\n            this.setState({\n                seekingHimnoLargo: true\n            });\n            this.himnoLargo.pauseAsync();\n        }\n    }\n\n    moviendoHimnoCorto = () => {\n        if (this.himnoCorto != null && !this.state.seekingHimnoCorto) {\n            this.setState({\n                seekingHimnoCorto: true\n            });\n            this.himnoCorto.pauseAsync();\n        }\n    }\n\n    movidoHimnoLargo = async (value) => {\n        if (this.himnoLargo != null && this.state.totalHimnoLargo != null) {\n            const seekPosition = value * this.state.totalHimnoLargo;\n            if (this.state.playingHimnoLargo) {\n                await this.himnoLargo.playFromPositionAsync(seekPosition);\n            } else {\n                await this.himnoLargo.setPositionAsync(seekPosition);\n            }\n        }\n        this.setState({\n            seekingHimnoLargo: false\n        });\n    }\n\n    movidoHimnoCorto = async (value) => {\n        if (this.himnoCorto != null && this.state.totalHimnoCorto != null) {\n            const seekPosition = value * this.state.totalHimnoCorto;\n            if (this.state.playingHimnoCorto) {\n                await this.himnoCorto.playFromPositionAsync(seekPosition);\n            } else {\n                await this.himnoCorto.setPositionAsync(seekPosition);\n            }\n        }\n        this.setState({\n            seekingHimnoCorto: false\n        });\n    }\n\n    render() {\n        const botonPausa = <MaterialIcons name={\"pause-circle-outline\"} size={45} color=\"#349994\" />;\n        const botonPlay = <MaterialIcons name={\"play-circle-outline\"} size={45} color=\"#349994\" />;\n        const iconoCargando = <ActivityIndicator size=\"large\" color=\"#349994\" style={{ width: 45, height: 45 }} />;\n        return (\n            <View>\n                {this.state.hayHimnoLargo && <View>\n                    <View style={{ padding: 10, marginBottom: 5 }}>\n                        <Text style={{ width: \"100%\", textAlign: \"center\", fontSize: 19, fontWeight: \"bold\" }}>\n                            {\"Himno\\n\"}\n                        </Text>\n                        <Text style={styles.textoVersion}>Versión completa</Text>\n                        <View style={[styles.fila, { paddingLeft: 18, alignItems: 'center' }]}>\n                            <TouchableOpacity\n                                disabled={this.state.loadingHimnoLargo}\n                                onPress={() => {\n                                    this.playHimnoLargo();\n                                }}>\n                                {(this.state.loadingHimnoLargo && iconoCargando) ||\n                                    (this.state.playingHimnoLargo && botonPausa) || botonPlay\n                                }\n                            </TouchableOpacity>\n                            <View style={{ flex: 1, marginLeft: 15, marginRight: 25 }}>\n                                <Slider\n                                    value={this.getPosicionHimnoLargo()}\n                                    onValueChange={this.moviendoHimnoLargo}\n                                    onSlidingComplete={this.movidoHimnoLargo}\n                                    disabled={this.state.loadingHimnoLargo}\n                                    minimumTrackTintColor='#42c4bd'\n                                    maximumTrackTintColor='#d3d3d3'\n                                    thumbTintColor='#349994'\n                                    thumbStyle={styles.thumbStyle}\n                                    trackStyle={styles.trackStyle}\n                                />\n                            </View>\n                        </View>\n                        {this.state.hayHimnoCorto &&\n                            <View>\n                                <Text style={styles.textoVersion}>Versión corta</Text>\n                                <View style={[styles.fila, { paddingLeft: 18, alignItems: 'center' }]}>\n                                    <TouchableOpacity\n                                        disabled={this.state.loadingHimnoCorto}\n                                        onPress={() => {\n                                            this.playHimnoCorto();\n                                        }}>\n                                        {(this.state.loadingHimnoCorto && iconoCargando) ||\n                                            (this.state.playingHimnoCorto && botonPausa) || botonPlay\n                                        }\n                                    </TouchableOpacity>\n                                    <View style={{ flex: 1, marginLeft: 15, marginRight: 25 }}>\n                                        <Slider\n                                            value={this.getPosicionHimnoCorto()}\n                                            onValueChange={this.moviendoHimnoCorto}\n                                            onSlidingComplete={this.movidoHimnoCorto}\n                                            disabled={this.state.loadingHimnoCorto}\n                                            minimumTrackTintColor='#42c4bd'\n                                            maximumTrackTintColor='#d3d3d3'\n                                            thumbTintColor='#349994'\n                                            thumbStyle={styles.thumbStyle}\n                                            trackStyle={styles.trackStyle}\n                                        />\n                                    </View>\n                                </View>\n                            </View>}\n                    </View>\n                    <View style={styles.horizontalLine} />\n                </View>}\n            </View>\n        );\n    }\n}\n\nconst styles = StyleSheet.create({\n    horizontalLine: {\n        borderBottomColor: \"#349994\",\n        borderBottomWidth: 1,\n        width: \"100%\",\n        marginVertical: 10\n    },\n    fila: {\n        flexDirection: \"row\",\n        width: \"100%\",\n        height: \"auto\"\n    },\n    textoVersion: {\n        width: \"100%\",\n        marginLeft: 20,\n        marginTop: 15,\n        marginBottom: 10,\n        color: \"#349994\"\n    },\n    thumbStyle: {\n        width: 15,\n        height: 15,\n        borderRadius: 15 / 2\n    },\n    trackStyle: {\n        height: 3\n    }\n});","import React from \"react\";\nimport {\n    View,\n    Text,\n    Image,\n    StyleSheet,\n    ScrollView,\n    TouchableOpacity,\n    Dimensions,\n    Linking,\n    Modal,\n    Alert,\n    Platform\n} from \"react-native\";\nimport { MaterialIcons, Feather } from \"@expo/vector-icons\";\nimport { Asset } from \"expo-asset\";\nimport { activateKeepAwake, deactivateKeepAwake } from 'expo-keep-awake';\nimport HimnosPartido from \"./HimnosPartido.js\";\nimport { enviarInfo } from \"../Utility/Api\";\n\nexport default class Partido extends React.PureComponent {\n    constructor(props) {\n        super(props);\n        const { navigation } = props;\n        const partido = navigation.getParam('partido', {});\n        this.state = {\n            partido: partido,\n            width: this.getWidth(),\n            fotoPartidoFullscreen: false,\n            fotoPresidenteFullscreen: false\n        };\n        enviarInfo(partido.siglas, \"perfil\");\n    }\n\n    componentDidMount() {\n        if (Platform.OS != \"web\") {\n            this.props.navigation.setParams({\n                headerRight: () => (\n                    <TouchableOpacity\n                        style={{ paddingHorizontal: 18 }}\n                        onPress={() => { this.showHelp(); }}>\n                        <Feather name={\"help-circle\"} size={30} color=\"#fff\" />\n                    </TouchableOpacity>\n                )\n            });\n        }\n        const partido = this.props.navigation.getParam('partido', {});\n        if (partido.himno) {\n            Asset.fromModule(\n                partido.himno\n            ).downloadAsync();\n        }\n        if (partido.himnoCorto) {\n            Asset.fromModule(\n                partido.himnoCorto\n            ).downloadAsync();\n        }\n    }\n\n    showHelp = () => {\n        const mensaje = '\\nFuente de información:\\n' +\n            'Todos los datos aquí mostrados se han recolectado de Webs oficiales o Wikipedia®. En ningún caso nos pertenece a nosotros.\\n\\n\\n' +\n            'Modo meeting:\\n' +\n            'Si pulsas sobre el logo del partido, éste se pone a pantalla completa (pensado para apoyar a tu partido en los meetings).\\n\\n\\n' +\n            'Sugerencias y errores son bien recibidos en: larryriderandroid@gmail.com\\n';\n        Alert.alert(\n            'Información',\n            mensaje,\n            [\n                //{ text: 'Enviar Email', onPress: () => { Linking.openURL(\"mailto:larryriderandroid@gmail.com\"); } },\n                { text: 'OK', onPress: () => { } }\n            ],\n            { cancelable: true }\n        );\n    }\n\n    getWidth = () => {\n        if (Dimensions.get('window').width > Dimensions.get('window').height) {\n            return Dimensions.get('window').height;\n        } else {\n            return Dimensions.get('window').width;\n        }\n    }\n\n    onLayout = () => { //Cuando se rota la pantalla, para actualizar el ancho\n        this.setState({\n            width: this.getWidth()\n        });\n    }\n\n    getRedesSociales = () => {\n        const redesPartido = this.state.partido.redesSociales;\n        let redes = [];\n        for (let redSocial in redesPartido) {\n            if (redesPartido[redSocial] && redesPartido[redSocial] != \"\") {\n                if (redSocial == \"web\") {\n                    redes.push(\n                        <TouchableOpacity\n                            key={redSocial}\n                            style={[styles.foto, { height: this.state.width / 5, width: this.state.width / 5 }]}\n                            target=\"_blank\"\n                            onPress={() => {\n                                Linking.openURL(\"http://www.\" + redesPartido[redSocial]);\n                                enviarInfo(this.state.partido.siglas, redSocial);\n                            }}>\n                            <Image source={require(\"../Images/web.png\")} style={{ width: \"100%\", height: \"100%\" }} resizeMode={\"contain\"} resizeMethod={\"resize\"} />\n                        </TouchableOpacity>\n                    );\n                } else if (redSocial == \"whatsapp\") {\n                    redes.push(\n                        <TouchableOpacity\n                            key={redSocial}\n                            style={[styles.foto, { height: this.state.width / 5, width: this.state.width / 5 }]}\n                            onPress={() => {\n                                let url = \"https://api.whatsapp.com/send?phone=\" + redesPartido[redSocial];\n                                if (redesPartido[redSocial].includes(\"http\")) {\n                                    url = redesPartido[redSocial];\n                                }\n                                Linking.openURL(url);\n                                enviarInfo(this.state.partido.siglas, redSocial);\n                            }}>\n                            <Image source={require(\"../Images/whatsapp.png\")} style={{ width: \"100%\", height: \"100%\" }} resizeMode={\"contain\"} resizeMethod={\"resize\"}></Image>\n                        </TouchableOpacity>\n                    );\n                } else if (redSocial == \"facebook\") {\n                    redes.push(\n                        <TouchableOpacity\n                            key={redSocial}\n                            style={[styles.foto, { height: this.state.width / 5, width: this.state.width / 5 }]}\n                            onPress={() => {\n                                let url = \"fb://facewebmodal/f?href=\" + \"https://www.facebook.com/\" + redesPartido[redSocial];\n                                Linking.canOpenURL(url).then((supported) => {\n                                    if (!supported || Platform.OS == \"web\") {\n                                        url = \"https://www.facebook.com/\" + redesPartido[redSocial];\n                                    }\n                                    return Linking.openURL(url);\n                                });\n                                enviarInfo(this.state.partido.siglas, redSocial);\n                            }}>\n                            <Image source={require(\"../Images/facebook.png\")} style={{ width: \"100%\", height: \"100%\" }} resizeMode={\"contain\"} resizeMethod={\"resize\"}></Image>\n                        </TouchableOpacity>\n                    );\n                } else if (redSocial == \"twitter\") {\n                    redes.push(\n                        <TouchableOpacity\n                            key={redSocial}\n                            style={[styles.foto, { height: this.state.width / 5, width: this.state.width / 5 }]}\n                            onPress={() => {\n                                let url = \"twitter://user?user_id=\" + redesPartido[redSocial];\n                                Linking.canOpenURL(url).then((supported) => {\n                                    if (!supported || Platform.OS == \"web\") {\n                                        url = \"https://twitter.com/intent/user?user_id=\" + redesPartido[redSocial];\n                                    }\n                                    return Linking.openURL(url);\n                                });\n                                enviarInfo(this.state.partido.siglas, redSocial);\n                            }}>\n                            <Image source={require(\"../Images/twitter.png\")} style={{ width: \"100%\", height: \"100%\" }} resizeMode={\"contain\"} resizeMethod={\"resize\"}></Image>\n                        </TouchableOpacity>\n                    );\n                } else if (redSocial == \"instagram\") {\n                    redes.push(\n                        <TouchableOpacity\n                            key={redSocial}\n                            style={[styles.foto, { height: this.state.width / 5, width: this.state.width / 5 }]}\n                            onPress={() => {\n                                let url = \"http://instagram.com/_u/\" + redesPartido[redSocial];\n                                Linking.canOpenURL(url).then((supported) => {\n                                    if (!supported || Platform.OS == \"web\") {\n                                        url = \"http://instagram.com/\" + redesPartido[redSocial];\n                                    }\n                                    return Linking.openURL(url);\n                                });\n                                enviarInfo(this.state.partido.siglas, redSocial);\n                            }}>\n                            <Image source={require(\"../Images/instagram.png\")} style={{ width: \"100%\", height: \"100%\" }} resizeMode={\"contain\"} resizeMethod={\"resize\"}></Image>\n                        </TouchableOpacity>\n                    );\n                }\n            }\n        }\n        return redes;\n    }\n\n    getInformacion = () => {\n        let informacion = [];\n        const informacionPartido = this.state.partido.informacionPartido;\n        let first = true;\n        for (let titulo in informacionPartido) {\n            let intro = \"\";\n            if (!first) {\n                intro = \"\\n\";\n            } else {\n                first = false;\n            }\n            if (titulo == \"Más información:\") {\n                let informaciones = [];\n                for (let masInfo in informacionPartido[titulo]) {\n                    informaciones.push(\n                        <Text\n                            key={masInfo}\n                            onPress={() => {\n                                Linking.openURL(\"http://www.\" + informacionPartido[titulo][masInfo]);\n                                enviarInfo(this.state.partido.siglas, \"programa\");\n                            }}>\n                            <Text style={[styles.descripcion, {\n                                color: \"#07C\",\n                                textDecorationLine: \"underline\"\n                            }]}>\n                                {masInfo}\n                            </Text>\n                            {\" \"}\n                            <Feather name={\"link\"} size={12} color=\"#07C\" />\n                            {\"\\n\"}\n                        </Text>\n                    );\n                }\n                informacion.push(\n                    <Text key={titulo}>\n                        <Text style={styles.titulo}>\n                            {intro}{titulo}{\"\\n\"}\n                        </Text>\n                        <Text style={styles.descripcion}>\n                            {informaciones}\n                        </Text>\n                    </Text>\n                );\n            } else {\n                informacion.push(\n                    <Text key={titulo}>\n                        <Text style={styles.titulo}>\n                            {intro}{titulo}{\"\\n\"}\n                        </Text>\n                        <Text style={styles.descripcion}>\n                            {informacionPartido[titulo]}{\"\\n\"}\n                        </Text>\n                    </Text>\n                );\n            }\n        }\n        return informacion;\n    }\n\n    mostrarFotoPartidoFullscreen = (visible) => {\n        this.setState({\n            fotoPresidenteFullscreen: false,\n            fotoPartidoFullscreen: visible\n        }, () => {\n            this.mantenerPantalla(visible);\n        });\n    }\n\n    mostrarFotoPresidenteFullscreen = (visible) => {\n        this.setState({\n            fotoPresidenteFullscreen: visible,\n            fotoPartidoFullscreen: false\n        }, () => {\n            this.mantenerPantalla(visible);\n        });\n    }\n\n    render() {\n        const redesSociales = this.getRedesSociales();\n        const informacion = this.getInformacion();\n        return (\n            <View style={{ flex: 1, backgroundColor: '#FFF', }}>\n                <ScrollView\n                    style={{ flex: 1 }}\n                    onLayout={this.onLayout}\n                    showsVerticalScrollIndicator={true}>\n                    <Text style={{ width: \"100%\", marginVertical: 10, textAlign: \"center\", fontSize: 20, fontWeight: \"bold\", color: \"#349994\" }}>\n                        {this.state.partido.nombre}\n                    </Text>\n                    <View style={styles.fila}>\n                        <View style={styles.columna}>\n                            <TouchableOpacity\n                                style={[styles.foto, { height: this.state.width / 2, width: this.state.width / 2 }]}\n                                onPress={() => { this.mostrarFotoPartidoFullscreen(true); }}>\n                                <Image source={this.state.partido.fotoPartido} style={{ width: \"100%\", height: \"100%\" }} resizeMode={\"contain\"} resizeMethod={\"resize\"}></Image>\n                            </TouchableOpacity>\n                        </View>\n                        <View style={styles.columna}>\n                            <TouchableOpacity\n                                style={[styles.foto, { height: this.state.width / 2, width: this.state.width / 2 }]}\n                                onPress={() => { this.mostrarFotoPresidenteFullscreen(true); }}>\n                                <Image source={this.state.partido.fotoPresidente} style={{ width: \"100%\", height: \"100%\" }} resizeMode={\"contain\"} resizeMethod={\"resize\"}></Image>\n                            </TouchableOpacity>\n                        </View>\n                    </View>\n                    <View style={styles.horizontalLine} />\n                    <HimnosPartido\n                        partido={this.state.partido} >\n                    </HimnosPartido>\n                    <Text style={{ width: \"100%\", textAlign: \"center\", fontSize: 19, fontWeight: \"bold\" }}>\n                        Información (obtenida de Wikipedia®)\n                    </Text>\n                    <View style={styles.fila}>\n                        <View style={[styles.columna, { paddingLeft: 18, width: \"100%\", alignItems: 'flex-start', justifyContent: 'flex-start' }]}>\n                            <Text style={{ textAlign: \"justify\" }}>\n                                {informacion}\n                            </Text>\n                        </View>\n                    </View>\n                    <View style={styles.horizontalLine} />\n                    <Text style={{ width: \"100%\", textAlign: \"center\", fontSize: 19, fontWeight: \"bold\" }}>\n                        Redes sociales\n                    </Text>\n                    <View style={styles.fila}>\n                        <View style={[styles.columna, { width: \"100%\", flexDirection: \"row\" }]}>\n                            {redesSociales}\n                        </View>\n                    </View>\n                </ScrollView>\n                <Modal\n                    animationType=\"fade\"\n                    transparent={false}\n                    visible={this.state.fotoPartidoFullscreen}\n                    onRequestClose={() => { this.mostrarFotoPartidoFullscreen(false); }}>\n                    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center', backgroundColor: this.state.partido.colorPartido }}>\n                        <Image source={this.state.partido.fotoPartido} style={{ width: \"100%\", height: \"100%\" }} resizeMode={\"contain\"} resizeMethod={\"resize\"}></Image>\n                    </View>\n                    <TouchableOpacity\n                        style={{\n                            borderWidth: 1,\n                            borderColor: '#349994',\n                            alignItems: 'center',\n                            justifyContent: 'center',\n                            width: 45,\n                            height: 45,\n                            backgroundColor: '#fff',\n                            borderRadius: 100,\n                            position: 'absolute',\n                            top: 0,\n                            left: 0,\n                            margin: 10,\n                            alignItems: 'center',\n                            justifyContent: 'center'\n                        }}\n                        onPress={() => { this.mostrarFotoPartidoFullscreen(false); }}>\n                        <MaterialIcons name={\"chevron-left\"} size={40} color=\"#349994\" />\n                    </TouchableOpacity>\n                </Modal>\n                <Modal\n                    animationType=\"fade\"\n                    transparent={false}\n                    visible={this.state.fotoPresidenteFullscreen}\n                    onRequestClose={() => { this.mostrarFotoPresidenteFullscreen(false); }}>\n                    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center', backgroundColor: \"#FFF\" }}>\n                        <Image source={this.state.partido.fotoPresidente} style={{ width: \"100%\", height: \"100%\" }} resizeMode={\"contain\"} resizeMethod={\"resize\"}></Image>\n                    </View>\n                    <TouchableOpacity\n                        style={{\n                            borderWidth: 1,\n                            borderColor: '#349994',\n                            alignItems: 'center',\n                            justifyContent: 'center',\n                            width: 45,\n                            height: 45,\n                            backgroundColor: '#fff',\n                            borderRadius: 100,\n                            position: 'absolute',\n                            top: 0,\n                            left: 0,\n                            margin: 10,\n                            alignItems: 'center',\n                            justifyContent: 'center'\n                        }}\n                        onPress={() => { this.mostrarFotoPresidenteFullscreen(false); }}>\n                        <MaterialIcons name={\"chevron-left\"} size={40} color=\"#349994\" />\n                    </TouchableOpacity>\n                </Modal>\n            </View>\n        );\n    }\n\n    mantenerPantalla = (encendida) => {\n        if (encendida) {\n            activateKeepAwake();\n        } else {\n            deactivateKeepAwake();\n        }\n    }\n\n    static navigationOptions = ({ navigation }) => {\n        if (Platform.OS != \"web\") {\n            var auxHeaderRight = () => (\n                <TouchableOpacity style={{ paddingHorizontal: 18 }}>\n                    <Feather name={\"help-circle\"} size={30} color=\"#fff\" />\n                </TouchableOpacity>\n            );\n        }\n        return {\n            headerTitle: 'Ficha del Partido', //navigation.getParam(\"partido\", { siglas: \"\" }).siglas,\n            headerTitleStyle: {\n                textAlign: 'left',\n                width: '100%'\n            },\n            headerRight: navigation.getParam(\"headerRight\", auxHeaderRight)\n        };\n    }\n}\n\nconst styles = StyleSheet.create({\n    horizontalLine: {\n        borderBottomColor: \"#349994\",\n        borderBottomWidth: 1,\n        width: \"100%\",\n        marginVertical: 10\n    },\n    fila: {\n        flexDirection: \"row\",\n        width: \"100%\",\n        height: \"auto\"\n    },\n    filaSocial: {\n        flexDirection: \"row\",\n        width: \"100%\",\n        height: \"auto\",\n        flex: 1\n    },\n    columna: {\n        width: \"50%\",\n        alignItems: 'center',\n        justifyContent: 'center',\n        padding: 10\n    },\n    foto: {\n        backgroundColor: '#FFF', //'#4D243D',\n        alignItems: 'center',\n        justifyContent: 'center',\n        flex: 1,\n        padding: 10\n    },\n    titulo: {\n        fontWeight: \"bold\"\n    }\n});\n","import { createAppContainer } from 'react-navigation';\nimport { createStackNavigator } from 'react-navigation-stack';\n\nimport Principal from \"./Views/Principal\";\nimport Partido from \"./Views/Partido\";\n\nconst App = createStackNavigator(\n    {\n        Principal: { screen: Principal },\n        Partido: { screen: Partido }\n    },\n    {\n        initialRouteName: 'Principal',\n        defaultNavigationOptions: {\n            headerTintColor: '#FFF',\n            headerStyle: {\n                backgroundColor: '#3ba9a4',\n                borderWidth: 0,\n                borderBottomColor: 'white'\n            }\n        }\n    }\n);\n\nconst AppContainer = createAppContainer(App);\n\nexport default AppContainer;","/* eslint-env browser */\n\nif ('serviceWorker' in navigator) {\n  window.addEventListener('load', function() {\n    navigator.serviceWorker\n      .register('/expo-service-worker.js', { scope: '/' })\n      .then(function(info) {\n        // console.info('Registered service-worker', info);\n      })\n      .catch(function(error) {\n        console.info('Failed to register service-worker', error);\n      });\n  });\n}\n","module.exports = __webpack_public_path__ + \"static/media/pp.a756c57a.png\";","module.exports = __webpack_public_path__ + \"static/media/pp_presidente.0d973fb7.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_pp.191b4746.mp3\";","module.exports = __webpack_public_path__ + \"static/media/himno_pp_corto.587fe004.mp3\";","module.exports = __webpack_public_path__ + \"static/media/psoe.11b5144d.png\";","module.exports = __webpack_public_path__ + \"static/media/psoe_presidente.d9c659c8.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_psoe.426c493f.mp3\";","module.exports = __webpack_public_path__ + \"static/media/himno_psoe_corto.10e936c7.mp3\";","module.exports = __webpack_public_path__ + \"static/media/podemos.c299db1b.png\";","module.exports = __webpack_public_path__ + \"static/media/podemos_presidente.3ebf7170.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_podemos.6da09a20.mp3\";","module.exports = __webpack_public_path__ + \"static/media/ciudadanos.c9d4e800.png\";","module.exports = __webpack_public_path__ + \"static/media/ciudadanos_presidente.cb718b3d.png\";","module.exports = __webpack_public_path__ + \"static/media/erc.1342cc8c.png\";","module.exports = __webpack_public_path__ + \"static/media/erc_presidente.7d292611.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_erc.6302cc8b.mp3\";","module.exports = __webpack_public_path__ + \"static/media/iu.60327954.png\";","module.exports = __webpack_public_path__ + \"static/media/iu_presidente.de2ac4c7.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_iu.f6a9592e.mp3\";","module.exports = __webpack_public_path__ + \"static/media/pdc.87ca654d.png\";","module.exports = __webpack_public_path__ + \"static/media/pdc_presidente.cb22a84f.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_pdc.b61b4773.mp3\";","module.exports = __webpack_public_path__ + \"static/media/pnv.2c3428fe.png\";","module.exports = __webpack_public_path__ + \"static/media/pnv_presidente.6e92f5e0.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_pnv.a43a6a9b.mp3\";","module.exports = __webpack_public_path__ + \"static/media/compromis.c2f0c8ff.png\";","module.exports = __webpack_public_path__ + \"static/media/compromis_presidente.8359cee5.png\";","module.exports = __webpack_public_path__ + \"static/media/ehbildu.4a2e1d21.png\";","module.exports = __webpack_public_path__ + \"static/media/ehbildu_presidente.600336f9.png\";","module.exports = __webpack_public_path__ + \"static/media/cc.3fe99942.png\";","module.exports = __webpack_public_path__ + \"static/media/cc_presidente.7e3b4e2d.png\";","module.exports = __webpack_public_path__ + \"static/media/upyd.776b582b.png\";","module.exports = __webpack_public_path__ + \"static/media/upyd_presidente.b43a6493.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_upyd.ded637c9.mp3\";","module.exports = __webpack_public_path__ + \"static/media/bng.4d6ea198.png\";","module.exports = __webpack_public_path__ + \"static/media/bng_presidente.8f1e4139.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_bng.9e62a7db.mp3\";","module.exports = __webpack_public_path__ + \"static/media/cup.8d73f85b.png\";","module.exports = __webpack_public_path__ + \"static/media/cup_presidente.a877b8cf.png\";","module.exports = __webpack_public_path__ + \"static/media/pacma.cabc4979.png\";","module.exports = __webpack_public_path__ + \"static/media/pacma_presidente.742ea43c.png\";","module.exports = __webpack_public_path__ + \"static/media/vox.c431e0b7.png\";","module.exports = __webpack_public_path__ + \"static/media/vox_presidente.9c92fb21.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_vox.6f0e8cf6.mp3\";","module.exports = __webpack_public_path__ + \"static/media/dn.5653c5be.png\";","module.exports = __webpack_public_path__ + \"static/media/dn_presidente.5b55a9d7.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_dn.b5217ff8.mp3\";","module.exports = __webpack_public_path__ + \"static/media/pce.efd2238f.png\";","module.exports = __webpack_public_path__ + \"static/media/pce_presidente.f4d0b9c1.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_pce.cddd1087.mp3\";","module.exports = __webpack_public_path__ + \"static/media/equo.b5e939e3.png\";","module.exports = __webpack_public_path__ + \"static/media/equo_presidente.8dbfa9ab.png\";","module.exports = __webpack_public_path__ + \"static/media/falange.745e56ae.png\";","module.exports = __webpack_public_path__ + \"static/media/falange_presidente.bc096e89.png\";","module.exports = __webpack_public_path__ + \"static/media/himno_falange.888d41c4.mp3\";"],"sourceRoot":""}