{"version":3,"sources":["translations.js","actions/index.js","icons/greek_monastery.svg","icons/latin_monastery.svg","icons/bath.svg","icons/bridge.svg","icons/cuba.svg","icons/fortification.svg","icons/gate.svg","icons/greek_church.svg","icons/hospital.svg","icons/icon.svg","icons/latin_church.svg","icons/laundry.svg","icons/mill.svg","icons/palace.svg","icons/park.svg","icons/uncertain.svg","icons/water_structure.svg","icons/index.jsx","components/place_name.jsx","components/place_metadata.jsx","components/place_location.jsx","utils.js","components/place_cssi.jsx","components/place_esr.jsx","components/place_uci.jsx","components/place_references.jsx","components/place_type.jsx","components/place_links.jsx","data/catalog.js","components/place_media.jsx","components/site_popup.jsx","selectors/index.js","containers/site_popup.js","components/markers.jsx","containers/markers.js","config.js","components/search_bar.jsx","providers/search.js","containers/search_bar.js","components/legend.jsx","containers/legend.js","components/interactive_map.jsx","containers/interactive_map.js","components/app.jsx","containers/app.js","reducers/index.js","api.js","sagas/map_saga.js","index.js"],"names":["module","exports","en","locale","messages","legendTitle","legendSublistTitleMonastic","loading","augustinian_canons","basilians","basilians_then_cistericans","benedictines","cistercians","cluniacs","hospital_of_saint_lazarus_of_jerusalem","knights_of_the_hospital_of_saint_lazarus_at_jerusalem","knights_of_the_hospital_of_saint_john_of_jerusalem","knights_templar","premonstratensian_canons","unknown","noDataMessage","descriptionFieldTitle","notesFieldTitle","referencesNotesFieldTitle","referencesPagesFieldTitle","referencesFieldTitle","attestationTypesFieldTitle","uciFieldTitle","uciSourceFieldTitle","esrFieldTitle","linksFieldTitle","geonamesLinkName","googleEarthLinkName","otherLinkName","locationAltNamesFieldTitle","locationHistoricalProvinceFieldTitle","locationModernComuneFieldTitle","locationModernProvinceFieldTitle","locationLatitudeFieldTitle","locationLongitudeFieldTitle","locationElevationFieldTitle","locationCoordinateSourceFieldTitle","locationSiesmicCodeFieldTitle","locationHighLocFieldTitle","fieldVisitsFieldTitle","metaCreatedOnFieldTitle","metaUpdatedOnFieldTitle","metaRecordStatusFieldTitle","nameFieldTitle","nameAltLabelFieldTitle","byFieldTitle","emailFieldPostfix","searchPrompt","monasteryGenderFieldTitle","monasteryStatusFieldTitle","monasteryOrderFieldTitle","monasteryDedicationFieldTitle","tabLabelNames","tabLabelLocation","tabLabelCssi","tabLabelNetwork","tabLabelReferences","tabLabelNotes","tabLabelMetadata","tabLabelMedia","draft","reviewed","female","male","male_then_female","abbey","grange","hospital","priory","priory_then_abbey","temple","GeoNames","documentary","archaeological","uncorroborated","cssiIntro","yes","no","it","INIT_MAP","LOAD_SITES_BEGIN","LOAD_SITES_SUCCESS","LOAD_SITES_FAILURE","SET_SELECTED_PLACE","FETCH_PLACE_BEGIN","FETCH_PLACE_SUCCESS","FETCH_PLACE_FAILURE","initMap","type","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_ref2","_ref3","x","y","className","width","height","_ref4","_ref5","_ref6","_ref7","d","_ref8","points","SvgGreekMonastery","_ref","svgRef","title","titleId","props","id","xmlns","xmlnsXlink","viewBox","style","enableBackground","xmlSpace","ref","ForwardRef","SvgLatinMonastery","SvgBath","rx","transform","cx","cy","r","_ref9","_ref10","_ref11","_ref12","_ref13","SvgBridge","ry","SvgCuba","SvgFortification","_ref14","_ref15","_ref16","SvgGate","x1","y1","x2","y2","SvgGreekChurch","SvgHospital","SvgIcon","SvgLatinChurch","SvgLaundry","SvgMill","SvgPalace","SvgPark","SvgUncertain","SvgWaterStructure","Icon","placetype","order","rite","rest","toLowerCase","ToLowerCase","defaultProps","NameComponent","translate","useTranslate","currentLocale","labels","skos_altLabel","languageNames","Intl","DisplayNames","map","l","lc","value","split","of","toUpperCase","_","uniqueId","Array","isArray","join","MetadataComponent","nsp_updatedOn","nsp_updatedBy","nsp_createdOn","nsp_createdBy","nsp_recordStatus","nsp_fieldVisit","fieldVisitString","Date","toLocaleDateString","foaf_givenName","foaf_familyName","foaf_mbox","href","trim","getSeeAlsoSource","link","includes","LocationComponent","nsp_hasLocation","rdfs_seeAlso","wgs_lat","wgs_long","wgs_alt","nsp_coordinateSource","nsp_seismicCode","nsp_modernComune","nsp_modernProvince","nsp_historicalProvince","nsp_locationHighLoc","item","rel","orderColorLookup","startCaseTerm","t","trimmedTerm","charAt","slice","startCaseList","word","getQueryStringValue","window","URLSearchParams","location","search","get","CSSIComponent","cssi_hasAssessment","assessments","content","iri","cssi_description","cssi_rockType","cssi_assessedBy","cssi_assessmentDate","cssi_rockCoatingNotationNotes","cssi_naturalProcessType","cssi_siteSettingScore","cssi_weaknessScore","cssi_largeErosionScore","cssi_smallErosionScore","cssi_rockCoatingsScore","cssi_totalAssessmentScore","cssi_otherConcernsScore","cssi_grandTotalAssessmentScore","cssi_hasRockCoatingNotation","rockCoatingNotations","rockTypes","n","entries","k","v","some","ESRComponent","nsp_earliestSurvivingRecord","rdfs_label","nsp_minYear","nsp_maxYear","UCIComponent","nsp_notes","nsp_uncorroboratedInformation","nsp_content","nsp_source","ReferencesComponent","nsp_hasReference","nsp_attestationType","attestationTypeString","at","undefined","references","nsp_zoteroIri","nsp_pages","placeMarkupByType","nsp_placeType","nsp_probableStatus","nsp_probableGender","nsp_subjectOfDedication","nsp_monasticIdentity","replace","monasteryMarkup","PlaceTypeInfoComponent","LinksComponent","nsp_hasLink","links","nsp_role","nsp_hasSource","nsp_hasTarget","skos_prefLabel","catalog","manifestId","locationId","MediaComponent","miradorRef","useRef","nsp_id","viewerId","find","useEffect","config","windows","view","imageToolsEnabled","imageToolsOpen","allowClose","allowMaximize","defaultSideBarPanel","sideBarOpenByDefault","views","workspace","workspaceControlPanel","enabled","language","availableLanguages","selectedTheme","theme","miradorInstance","mirador","viewer","miradorImageToolsPlugin","current","e","console","log","message","unmount","SitePopup","currentPlace","loadingCurrentPlace","nameProps","Popup","minWidth","maxWidth","minHeight","maxHeight","loadingSelector","createSelector","state","sitesSelector","sites","currentPlaceSelector","loadingCurrentPlaceSelector","legendSelector","markersSelector","place","currentLocaleSelector","popupSelector","SitePopupContainer","connect","markerIcon","feature","normalizedOrder","color","L","divIcon","html","ReactDOMServer","renderToString","fill","getTooltipText","itLabel","enLabel","Markers","handleMouseOver","handleMouseOut","markersMarkup","position","properties","Marker","icon","data","eventHandlers","mouseover","mouseout","Tooltip","MarkersContainer","dispatch","options","placeIri","placeId","placeType","CONFIG","centerPoint","initialZoom","maxZoom","searchZoom","mapAttribution","apiProtocol","process","apiHost","apiPort","media","catalogUrl","SearchControl","useMap","provider","findMarker","useCallback","latlng","layer","marker","getLayers","childLayers","getLatLng","equals","onShowLocation","latLng","foundMarker","eachLayer","MarkerClusterGroup","found","hasLayer","zoomToShowLayer","setView","fireEvent","openTooltip","useEventHandlers","instance","searchControl","GeoSearchControl","searchLabel","maxMarkers","showMarker","showPopup","updateMap","autoClose","maxSuggestions","addControl","removeControl","SearchProvider","JsonProvider","query","Promise","resolve","q","super","parse","reduce","accumulator","label","push","endpoint","getUrl","f","SearchBarContainer","SearchBar","Legend","orderMarkup","ordersSet","currentValue","m","endsWith","has","add","Set","sort","a","b","localeCompare","getListOfOrders","placeTypeMarkup","getPlaceTypes","LegendContainer","InteractiveMap","tileUrl","MapContainer","center","zoom","TileLayer","url","attribution","InteractiveMapContainer","App","initialState","makeProperties","processedLabels","c","lang","getAllPlaces","axios","getPlace","initMapSaga","takeEvery","put","response","result","places","error","fetchPlaceSaga","takeLatest","action","select","isEmpty","isEqual","sagaMiddleware","createSagaMiddleware","composeEnhancers","composeWithDevTools","rootReducer","combineReducers","getOr","cloneDeep","set","compose","geometry","coordinates","unset","store","createStore","applyMiddleware","defaultVal","run","all","render","translations","document","getElementById"],"mappings":"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","file":"static/js/main.b303fe2f.chunk.js","sourcesContent":["/* eslint camelcase: [\"error\", {properties: \"never\"}] */\n\nmodule.exports = {\n en: {\n locale: 'en',\n messages: {\n legendTitle: 'The Monastic Landscape of Norman Sicily and its Greater Network',\n legendSublistTitleMonastic: 'Communities',\n loading: 'Loading...',\n augustinian_canons: 'Augustinian Canons',\n basilians: 'Basilians',\n basilians_then_cistericans: 'Basilians then Cistericans',\n benedictines: 'Benedictines',\n cistercians: 'Cistercians',\n cluniacs: 'Cluniacs',\n hospital_of_saint_lazarus_of_jerusalem: 'Hospital of Saint Lazarus of Jerusalem',\n knights_of_the_hospital_of_saint_lazarus_at_jerusalem: 'Knights of the Hospital of Saint Lazarus at Jerusalem',\n knights_of_the_hospital_of_saint_john_of_jerusalem: 'Knights of the Hospital of Saint John of Jerusalem',\n knights_templar: 'Knights Templar',\n premonstratensian_canons: 'Premonstratensian Canons',\n unknown: 'Unknown',\n noDataMessage: 'No Data',\n descriptionFieldTitle: 'DESCRIPTION:',\n notesFieldTitle: 'NOTES:',\n referencesNotesFieldTitle: 'Notes:',\n referencesPagesFieldTitle: 'Page(s):',\n referencesFieldTitle: 'REFERENCES:',\n attestationTypesFieldTitle: 'ATTESTATION TYPE(S):',\n uciFieldTitle: 'UNCORROBORATED INFORMATION:',\n uciSourceFieldTitle: 'source:',\n esrFieldTitle: 'EARLIEST SURVIVING RECORD:',\n linksFieldTitle: 'BROADER NETWORK:',\n geonamesLinkName: 'Geonames Link',\n googleEarthLinkName: 'Google Earth Link',\n otherLinkName: 'Other Link',\n locationAltNamesFieldTitle: 'LOCATION SPELLING VARIATIONS & ALTERNATIVE NAMES:',\n locationHistoricalProvinceFieldTitle: 'HISTORICAL PROVINCE',\n locationModernComuneFieldTitle: 'MODERN COMUNE:',\n locationModernProvinceFieldTitle: 'MODERN PROVINCE:',\n locationLatitudeFieldTitle: 'LATITUDE:',\n locationLongitudeFieldTitle: 'LONGITUDE:',\n locationElevationFieldTitle: 'APPROXIMATE ELEVATION IN METERS:',\n locationCoordinateSourceFieldTitle: `COORDINATES' SOURCE:`,\n locationSiesmicCodeFieldTitle: 'SEISMIC CODE:',\n locationHighLocFieldTitle: 'HIGH LOC IN LOCATION:',\n fieldVisitsFieldTitle: 'FIELD VISIT(S):',\n metaCreatedOnFieldTitle: 'RECORD CREATED ON',\n metaUpdatedOnFieldTitle: 'RECORD LAST UPDATED ON',\n metaRecordStatusFieldTitle: 'RECORD STATUS:',\n nameFieldTitle: 'NAME:',\n nameAltLabelFieldTitle: 'SPELLING VARIATIONS & ALTERNATIVE NAMES:',\n byFieldTitle: 'by',\n emailFieldPostfix: '(email)',\n searchPrompt: 'Enter at least three letters of the name...',\n monasteryGenderFieldTitle: 'GENDER:',\n monasteryStatusFieldTitle: 'STATUS:',\n monasteryOrderFieldTitle: 'MONASTIC IDENTITY:',\n monasteryDedicationFieldTitle: 'SUBJECT OF DEDICATION:',\n tabLabelNames: 'NAMES & EARLIEST RECORD',\n tabLabelLocation: 'LOCATION & ELEVATION',\n tabLabelCssi: 'CSSI DATA',\n tabLabelNetwork: 'IDENTITY & NETWORK',\n tabLabelReferences: 'ATTESTATION TYPE & REFERENCES',\n tabLabelNotes: 'NOTES & UNCORROBORATED INFORMATION',\n tabLabelMetadata: 'METADATA',\n tabLabelMedia: 'MEDIA',\n draft: 'Draft',\n reviewed: 'Reviewed',\n female: 'Female',\n male: 'Male',\n male_then_female: 'Male then Female',\n abbey: 'Abbey',\n grange: 'Grange',\n hospital: 'Hospital',\n priory: 'Priory',\n priory_then_abbey: 'Priory then Abbey',\n 'priory?': 'Priory?',\n temple: 'Temple',\n GeoNames: 'GeoNames',\n 'Google Earth': 'Google Earth',\n 'Handheld GPS': 'Handheld GPS',\n documentary: 'Documentary',\n archaeological: 'Archaeological',\n uncorroborated: 'Uncorroborated',\n cssiIntro:\n 'For information on how Cultural Stone Stability Index (CSSI) data are generated and how to interpret scores, see the video on the CSSI under Resources/Learn/Videos.',\n yes: 'Yes',\n no: 'No',\n },\n },\n it: {\n locale: 'it',\n messages: {\n legendTitle: 'Il territorio monastico della Sicilia normanna e la sua rete più grande',\n legendSublistTitleMonastic: 'Le Communità',\n loading: 'Attendi...',\n augustinian_canons: 'Canonici Agostiniani',\n basilians: 'Basiliani',\n basilians_then_cistericans: 'Basiliani poi Cistercensi',\n benedictines: 'Benedettini',\n cistercians: 'Cistercensi',\n cluniacs: 'Cluniacensi',\n hospital_of_saint_lazarus_of_jerusalem: 'Ordine Ospedaliero di San Lazzaro di Gerusalemme',\n knights_of_the_hospital_of_saint_lazarus_at_jerusalem: 'Cavalieri di San Lazzaro di Gerusalemme',\n knights_of_the_hospital_of_saint_john_of_jerusalem: 'Ospitalieri di San Giovanni di Gerusalemme',\n knights_templar: 'Cavaleri Templari',\n premonstratensian_canons: 'Canonici regolari premostratensi ',\n unknown: 'Sconosciuti',\n noDataMessage: 'Nessun dato',\n descriptionFieldTitle: 'DESCRIZIONE:',\n notesFieldTitle: 'NOTE:',\n referencesNotesFieldTitle: 'Note:',\n referencesPagesFieldTitle: 'Pagine:',\n referencesFieldTitle: 'RIFERIMENTI:',\n attestationTypesFieldTitle: 'TIPO DI ATTESTAZIONE:',\n uciFieldTitle: 'INFORMAZIONI NON AVVALORATE:',\n uciSourceFieldTitle: 'fonte:',\n esrFieldTitle: 'DOCUMENTI PIÙ ANTICHI:',\n linksFieldTitle: 'RETE PIÙ AMPIA:',\n geonamesLinkName: 'Link Geonames',\n googleEarthLinkName: 'Link Google Earth',\n otherLinkName: 'Altri Link',\n locationAltNamesFieldTitle: 'TRASLITTERAZIONI E DENOMINAZIONI ALTERNATIVE:',\n locationHistoricalProvinceFieldTitle: 'PROVINCIA STORICA',\n locationModernComuneFieldTitle: 'COMUNE ATTUALE:',\n locationModernProvinceFieldTitle: 'PROVINCIA ATTUALE:',\n locationLatitudeFieldTitle: 'LATITUDINE:',\n locationLongitudeFieldTitle: 'LONGITUDINE:',\n locationElevationFieldTitle: 'ALTEZZA APPROSSIMATIVA IN METRI:',\n locationCoordinateSourceFieldTitle: `FONTI COORDINATE:`,\n locationSiesmicCodeFieldTitle: 'NORMATIVA SISMICA:',\n locationHighLocFieldTitle: 'HIGH LOC IN LOCATION:',\n fieldVisitsFieldTitle: 'VISITA IN LOCO:',\n metaCreatedOnFieldTitle: 'REGISTRO CREATO IL',\n metaUpdatedOnFieldTitle: 'REGISTRO AGGIORNATO IL',\n metaRecordStatusFieldTitle: 'STATO DEL REGISTRO:',\n nameFieldTitle: 'NOME:',\n nameAltLabelFieldTitle: 'TRASLITTERAZIONI & DENOMINAZIONI ALTERNATIVE:',\n byFieldTitle: 'da',\n emailFieldPostfix: '(email)',\n searchPrompt: 'Inserisci Almeno Tre Lettere...',\n monasteryGenderFieldTitle: 'GENERE:',\n monasteryStatusFieldTitle: 'STATO:',\n monasteryOrderFieldTitle: 'IDENTITÀ MONASTICA:',\n monasteryDedicationFieldTitle: 'SOGGETTO DELLA DEDICA:',\n tabLabelNames: 'NOMI & DOCUMENTI PIÙ ANTICHI',\n tabLabelLocation: 'LUOGO & ALTEZZA',\n tabLabelCssi: 'DATI CSSI',\n tabLabelNetwork: 'IDENTITÀ & RETE',\n tabLabelReferences: 'TIPO DI ATTESTAZIONE & RIFERIMENTI',\n tabLabelNotes: 'NOTE & INFORMAZIONI NON AVVALORATE',\n tabLabelMetadata: 'METADATI',\n tabLabelMedia: 'MEDIA',\n draft: 'Bozze',\n reviewed: 'Esaminato',\n female: 'Femminile',\n male: 'Maschile',\n male_then_female: 'Maschile poi Femminile',\n abbey: 'Abbazia',\n grange: 'Grangia',\n hospital: 'Ospedaliero',\n priory: 'Prioria',\n priory_then_abbey: 'Prioria poi Abbazia',\n 'priory?': 'Prioria?',\n temple: 'Tempio',\n GeoNames: 'GeoNames',\n 'Google Earth': 'Google Earth',\n 'Handheld GPS': 'GPS portatile',\n documentary: 'Documentario',\n archaeological: 'Archeologico',\n uncorroborated: 'Non avvalorato',\n cssiIntro: `Per informazioni su come vengono generati i dati dell'indice di stabilità della pietra culturale (CSSI) e su come interpretare i punteggi, vedere il video sul CSSI in Risorse / Scopri di Più / Video.`,\n yes: 'Si',\n no: 'No',\n },\n },\n};\n","export const INIT_MAP = 'INIT_MAP';\nexport const LOAD_SITES_BEGIN = 'LOAD_SITES_BEGIN';\nexport const LOAD_SITES_SUCCESS = 'LOAD_SITES_SUCCESS';\nexport const LOAD_SITES_FAILURE = 'LOAD_SITES_FAILURE';\n// export const CLEAR_SELECTED_PLACE = 'CLEAR_SELECTED_PLACE';\nexport const SET_SELECTED_PLACE = 'SET_SELECTED_PLACE';\nexport const FETCH_PLACE_BEGIN = 'FETCH_PLACE_BEGIN';\nexport const FETCH_PLACE_SUCCESS = 'FETCH_PLACE_SUCCESS';\nexport const FETCH_PLACE_FAILURE = 'FETCH_PLACE_FAILURE';\n\nexport const initMap = () => ({\n type: INIT_MAP,\n});\n\nexport const loadSitesBegin = () => ({\n type: LOAD_SITES_BEGIN,\n});\n\nexport const loadSitesSuccess = (result) => ({\n type: LOAD_SITES_SUCCESS,\n places: result,\n});\n\nexport const loadSitesFailure = (error) => ({\n type: LOAD_SITES_FAILURE,\n error,\n});\n\n// export const clearSelectedPlace = () => {\n// return {\n// type: CLEAR_SELECTED_PLACE,\n// }\n// };\n\nexport const setSelectedPlace = (placeIri, placeId, placeType) => ({\n type: SET_SELECTED_PLACE,\n place: { placeIri, placeId, placeType },\n});\n\nexport const fetchPlaceBegin = () => ({\n type: FETCH_PLACE_BEGIN,\n});\n\nexport const fetchPlaceSuccess = (result) => ({\n type: FETCH_PLACE_SUCCESS,\n place: Array.isArray(result) ? result[0] : result,\n});\n\nexport const fetchPlaceFailure = (error) => ({\n type: FETCH_PLACE_FAILURE,\n error,\n});\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 146.4,\n y: 257.2,\n className: \"st0\",\n width: 67,\n height: 102.8\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 133.5,\n y: 147.2,\n className: \"st0\",\n width: 92.7,\n height: 63.7\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 296.5,\n y: 174.9,\n className: \"st0\",\n width: 34.1,\n height: 34.1\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 34.6,\n y: 176.9,\n className: \"st0\",\n width: 34.1,\n height: 34.1\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174.2,87.7l-55.5,50.8v65.8h-45v-35.9h-0.1c-1-20-11.8-35.7-24.9-35.7s-23.9,15.7-24.9,35.7h-0.1v35.9V360h125.2v-66.1 c0-16.9,14-30.6,31.2-30.6s31.2,13.7,31.2,30.6V360h125.2V204.4v-35.9h-0.1c-1-20-11.8-35.7-24.9-35.7s-23.9,15.7-24.9,35.7h-0.1 v35.9h-43.8v-65.8l-56.7-50.8 M48.7,200.4c-6.1,0-11.1-5-11.1-11.1c0-6.1,5-11.1,11.1-11.1s11.1,5,11.1,11.1 C59.7,195.4,54.8,200.4,48.7,200.4z M169,197.4h-24.8v-31.6c0-8.1,5.5-14.6,12.4-14.6s12.4,6.6,12.4,14.6V197.4z M219,197.4h-24.8 v-31.6c0-8.1,5.5-14.6,12.4-14.6s12.4,6.6,12.4,14.6V197.4z M311.3,200.4c-6.1,0-11.1-5-11.1-11.1c0-6.1,5-11.1,11.1-11.1 s11.1,5,11.1,11.1C322.4,195.4,317.5,200.4,311.3,200.4z\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"198.5,10.8 198.5,20.9 185.8,20.9 185.8,31.2 208.8,31.2 208.8,41.2 185.8,41.2 185.8,65.2 198.5,70.1 198.5,81.5 185.8,76.8 185.8,93.3 174.2,93.3 174.2,72.8 161.5,68.2 161.5,55.9 174.4,61 174.4,41.2 151.2,41.2 151.2,31 174,31 174,20.9 161.1,20.9 161.1,10.8 174,10.8 174,0 185.8,0 185.8,10.8 \"\n});\n\nfunction SvgGreekMonastery(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgGreekMonastery);\nexport default __webpack_public_path__ + \"static/media/greek_monastery.b2e9787b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 135.8,\n y: 142.2,\n className: \"st0\",\n width: 91.8,\n height: 64.2\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 293.3,\n y: 173.2,\n className: \"st0\",\n width: 36,\n height: 32.2\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 30.6,\n y: 173.2,\n className: \"st0\",\n width: 36,\n height: 32.2\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 150,\n y: 260.3,\n className: \"st0\",\n width: 61.2,\n height: 99.7\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M336.3,168.5c-1-20-11.8-35.7-24.9-35.7s-23.9,15.7-24.9,35.7h-0.1v35.9h-43.8v-65.8l-53.9-50.6V54.7h19.7V38.9h-19.7V17 h-15.9v21.9H153v15.9h19.7v32.9l-54.1,50.8v65.8h-45v-35.9h-0.1c-1-20-11.8-35.7-24.9-35.7s-23.9,15.7-24.9,35.7h-0.1v35.9V360 h125.2v-66.1c0-16.9,14-30.6,31.2-30.6s31.2,13.7,31.2,30.6V360h125.2V204.4L336.3,168.5L336.3,168.5z M48.7,200.4 c-6.1,0-11.1-5-11.1-11.1c0-6.1,5-11.1,11.1-11.1s11.1,5,11.1,11.1C59.7,195.4,54.8,200.4,48.7,200.4z M169,197.4h-24.8v-31.6 c0-8.1,5.5-14.6,12.4-14.6s12.4,6.6,12.4,14.6V197.4z M219,197.4h-24.8v-31.6c0-8.1,5.5-14.6,12.4-14.6s12.4,6.6,12.4,14.6V197.4z M311.3,200.4c-6.1,0-11.1-5-11.1-11.1c0-6.1,5-11.1,11.1-11.1s11.1,5,11.1,11.1C322.4,195.4,317.5,200.4,311.3,200.4z\"\n});\n\nfunction SvgLatinMonastery(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLatinMonastery);\nexport default __webpack_public_path__ + \"static/media/latin_monastery.8f8460b0.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M341.5,124.9l-161.5,0l-161.5,0c0,0-18.5-1.4-18.5,13s18.5,11.6,18.5,11.6S7.9,217,51.4,243.9c-6,41.2-6.9,55.1-6.9,55.1 h18.5l26.4-40.7H180h90.7l26.4,40.7h18.5c0,0-0.9-13.9-6.9-55.1c43.5-26.8,32.9-94.4,32.9-94.4s18.5,2.8,18.5-11.6 S341.5,124.9,341.5,124.9z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.7,108.7H54.4V98.4c0,0-0.2-11.9-9.1-11.9c-9.5,0-9.7,11.3-9.7,11.3v34H21V96.9c0,0-0.1-24.1,23.4-24.1 c22.4,0,23.4,25.4,23.4,25.4V108.7z\"\n}));\n\nfunction SvgBath(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBath);\nexport default __webpack_public_path__ + \"static/media/bath.03b06fba.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:none;stroke:#000;stroke-miterlimit:10;stroke-width:15px;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 263.92,\n width: 24,\n height: 139.28,\n rx: 12\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 72.08,\n width: 24,\n height: 139.28,\n rx: 12\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M83.81,109\",\n transform: \"translate(0 -96.14)\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M275.62,108.68\",\n transform: \"translate(0 -96.14)\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"rect\", {\n y: 100.55,\n width: 360,\n height: 24,\n rx: 12\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 7.6,\n cy: 69.64,\n r: 7.6\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 352.4,\n cy: 69.64,\n r: 7.6\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M84.08,108.68s34.14,57.1,95.92,57.1\",\n transform: \"translate(0 -96.14)\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M275.92,108.68s-34.14,57.1-95.92,57.1\",\n transform: \"translate(0 -96.14)\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M275.92,108.68s27.22,57.1,76.48,57.1\",\n transform: \"translate(0 -96.14)\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M84.08,108.68s-27.22,57.1-76.48,57.1\",\n transform: \"translate(0 -96.14)\"\n});\n\nfunction SvgBridge(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 360 139.28\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBridge);\nexport default __webpack_public_path__ + \"static/media/bridge.145bb3ae.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 32.2,\n y: 93.1,\n width: 295.5,\n height: 266.9\n}), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 180,\n cy: 80.3,\n rx: 86,\n ry: 80.3\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: 23,\n y: 93.1,\n width: 314.1,\n height: 30.2\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M180,187c0,0-58.9,9.8-58.9,70s0,103,0,103H180h58.9c0,0,0-42.7,0-103S180,187,180,187z\"\n}));\n\nfunction SvgCuba(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCuba);\nexport default __webpack_public_path__ + \"static/media/cuba.c7e2bce7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\\t.st1{fill:none;stroke:#000000;stroke-miterlimit:10;}\\r\\n\\t.st2{fill:none;stroke:#858585;stroke-miterlimit:10;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 91.7,\n y: 131.4,\n className: \"st0\",\n width: 110,\n height: 148\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M275.1,313.1h-17.1l-32.9-211.9l34.6-29.5L260.1,0h-44.7v44.3h-46.6V0h-44.3v44.3H79.3V0H34.6v71.7l33.8,29.5L34.6,312.9 L17.6,313L0,360h293.4L275.1,313.1z M178.3,251.8h-63.2v-60.4c0-17.5,14.1-32.4,31.6-32.4s31.6,15,31.6,32.4L178.3,251.8z\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M275.5,357.3\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M275.5,69\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M18,360\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M18,71.7\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M125.1-1.6\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M125.1,311.3\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M148,0\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M147.1,131\"\n});\n\nfunction SvgFortification(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_2_1_\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 293.4 360\",\n style: {\n enableBackground: \"new 0 0 293.4 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFortification);\nexport default __webpack_public_path__ + \"static/media/fortification.e2ea0c76.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n y: 171.7,\n width: 360,\n height: 188.3\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M180,211.4c28.3,7.7,39.2,33.7,43.1,48.2c1.4,5.2,2.1,10.5,2.1,15.8V360h-90.3v-84.6c0-5.3,0.7-10.7,2.1-15.8 C140.8,245.1,151.7,219.1,180,211.4\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 51.4,\n y: 278.1,\n className: \"st0\",\n width: 32,\n height: 54.3\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 276.6,\n y: 278.1,\n className: \"st0\",\n width: 32,\n height: 54.3\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 74.3,\n y: 153.1,\n width: 18.6,\n height: 18.6\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 37.1,\n y: 153.1,\n width: 18.6,\n height: 18.6\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 112.1,\n y: 153.1,\n width: 18.6,\n height: 18.6\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"rect\", {\n y: 153.1,\n width: 18.6,\n height: 18.6\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 267.1,\n y: 153.1,\n transform: \"matrix(-1 -4.485668e-11 4.485668e-11 -1 552.8484 324.8042)\",\n width: 18.6,\n height: 18.6\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 304.3,\n y: 153.1,\n transform: \"matrix(-1 -4.490598e-11 4.490598e-11 -1 627.138 324.8042)\",\n width: 18.6,\n height: 18.6\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 229.4,\n y: 153.1,\n transform: \"matrix(-1 -4.490598e-11 4.490598e-11 -1 477.2768 324.8042)\",\n width: 18.6,\n height: 18.6\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 341.4,\n y: 153.1,\n transform: \"matrix(-1 -4.485668e-11 4.485668e-11 -1 701.4276 324.8042)\",\n width: 18.6,\n height: 18.6\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 148.9,\n y: 135.8,\n width: 62.2,\n height: 35.8\n});\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 141.8,\n y: 130.8,\n width: 76.5,\n height: 11.5\n});\n\nfunction SvgGate(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgGate);\nexport default __webpack_public_path__ + \"static/media/gate.522a4ea5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\\t.st1{fill:none;}\\r\\n\\t.st2{display:none;}\\r\\n\\t.st3{display:inline;}\\r\\n\\t.st4{fill:none;stroke:#FF0000;stroke-miterlimit:10;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 151.2,\n y: 269.8,\n className: \"st0\",\n width: 55.4,\n height: 90.2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"8.2,360 79.2,360 79.2,255.1 8.2,291.7 \"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174.2,86.3l-95,72.1v92.4l0,0V360h0h7.9h66.2v-45.1c0-13.2,11.9-26.3,26.6-26.3c14.7,0,26.6,13.1,26.6,26.3V360h74.2 V250.9v-92.4l-95-72.1\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"280.8,255.1 280.8,360 351.8,360 351.8,291.7 \"\n}), /*#__PURE__*/React.createElement(\"line\", {\n className: \"st1\",\n x1: 173,\n y1: 31.7,\n x2: 192.2,\n y2: 31.7\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"198.5,10.8 198.5,20.9 185.8,20.9 185.8,31.2 208.8,31.2 208.8,41.2 185.8,41.2 185.8,65.2 198.5,70.1 198.5,81.5 185.8,76.8 185.8,93.3 174.2,93.3 174.2,72.8 161.5,68.2 161.5,55.9 174.4,61 174.4,41.2 151.2,41.2 151.2,31 174,31 174,20.9 161.1,20.9 161.1,10.8 174,10.8 174,0 185.8,0 185.8,10.8 \"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n className: \"st2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"abTVRV.tif\",\n className: \"st3\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M97,121.1c-24.3,0-48.6,0-73,0c0-33.5,0-67,0-100.5c24.3,0,48.6,0,73,0C97,54.1,97,87.6,97,121.1z M42.3,79.3c0,0.3,0,0.5,0,0.6c0,3.4,0,6.9,0,10.3c0,0.5,0.2,0.7,0.6,0.8c3.9,1.4,7.8,2.8,11.7,4.2c0.4,0.2,0.6,0.4,0.6,0.8 c0,5.3,0,10.5,0,15.8c0,1.4,0,2.8,0,4.3c3.9,0,7.7,0,11.6,0c0-5.5,0-10.9,0-16.5c4.3,1.6,8.5,3.1,12.8,4.7c0-0.3,0-0.6,0-0.8 c0-3.4,0-6.8,0-10.1c0-0.5-0.1-0.7-0.6-0.9c-3.9-1.4-7.8-2.8-11.6-4.2c-0.4-0.2-0.6-0.3-0.6-0.9c0-7.6,0-15.1,0-22.7 c0-0.2,0-0.4,0-0.6c7.7,0,15.4,0,23.1,0c0-3.5,0-6.8,0-10.3c-7.7,0-15.4,0-23.1,0c0-3.5,0-6.8,0-10.3c4.3,0,8.5,0,12.8,0 c0-0.2,0.1-0.3,0.1-0.4c0-3.1,0-6.3,0-9.4c0-0.5-0.3-0.5-0.6-0.5c-3.8,0-7.7,0-11.5,0c-0.2,0-0.4,0-0.7,0c0-2.4,0-4.7,0-7 c-3.9,0-7.7,0-11.5,0c0,2.3,0,4.7,0,7c-0.3,0-0.6,0-0.8,0c-3.8,0-7.6,0-11.4,0c-0.5,0-0.6,0.1-0.6,0.6c0,2.9,0,5.9,0,8.8 c0,0.3,0,0.5,0,0.9c4.3,0,8.6,0,12.8,0c0,3.5,0,6.8,0,10.3c-7.7,0-15.4,0-23,0c0,3.5,0,6.8,0,10.3c7.7,0,15.4,0,23.1,0 c0,6.6,0,13.1,0,19.7C50.8,82.4,46.6,80.9,42.3,79.3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.3,79.3c4.3,1.6,8.5,3.1,12.8,4.6c0-6.6,0-13.1,0-19.7c-7.7,0-15.3,0-23.1,0c0-3.5,0-6.8,0-10.3c7.7,0,15.4,0,23,0 c0-3.4,0-6.8,0-10.3c-4.3,0-8.5,0-12.8,0c0-0.3,0-0.6,0-0.9c0-2.9,0-5.9,0-8.8c0-0.5,0.2-0.6,0.6-0.6c3.8,0,7.6,0,11.4,0 c0.2,0,0.5,0,0.8,0c0-2.4,0-4.7,0-7c3.9,0,7.7,0,11.5,0c0,2.3,0,4.6,0,7c0.3,0,0.5,0,0.7,0c3.8,0,7.7,0,11.5,0 c0.4,0,0.6,0,0.6,0.5c0,3.1,0,6.3,0,9.4c0,0.1,0,0.2-0.1,0.4c-4.3,0-8.5,0-12.8,0c0,3.4,0,6.8,0,10.3c7.7,0,15.3,0,23.1,0 c0,3.5,0,6.8,0,10.3c-7.7,0-15.4,0-23.1,0c0,0.3,0,0.5,0,0.6c0,7.6,0,15.1,0,22.7c0,0.5,0.2,0.7,0.6,0.9 c3.9,1.4,7.8,2.8,11.6,4.2c0.5,0.2,0.6,0.4,0.6,0.9c0,3.4,0,6.8,0,10.1c0,0.2,0,0.4,0,0.8c-4.3-1.6-8.5-3.1-12.8-4.7 c0,5.6,0,11,0,16.5c-3.9,0-7.7,0-11.6,0c0-1.5,0-2.9,0-4.3c0-5.3,0-10.5,0-15.8c0-0.5-0.1-0.7-0.6-0.8 c-3.9-1.4-7.8-2.8-11.7-4.2c-0.4-0.2-0.6-0.3-0.6-0.8c0-3.4,0-6.9,0-10.3C42.2,79.8,42.2,79.6,42.3,79.3z\"\n}))), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st4\",\n points: \"79.2,33.4 79.2,43.6 66.5,43.6 66.5,53.9 89.5,53.9 89.5,63.8 66.5,63.8 66.5,87.9 79.2,92.7 79.2,104.1 66.5,99.5 66.5,116 54.9,116 54.9,95.5 42.2,90.8 42.2,78.6 55.1,83.7 55.1,63.8 31.9,63.8 31.9,53.7 54.7,53.7 54.7,43.6 41.8,43.6 41.8,33.4 54.7,33.4 54.7,26.2 66.5,26.2 66.5,33.4 \"\n})));\n\nfunction SvgGreekChurch(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgGreekChurch);\nexport default __webpack_public_path__ + \"static/media/greek_church.c50c613b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M338,100H22c-12.1,0-22,9.8-22,22v194.9V338v22h22h316h22v-22v-21.2V121.9C360,109.8,350.2,100,338,100z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M237,199H122.1c-11.8,0-21.3-9.5-21.3-21.3V62.9c0-11.8,9.5-21.3,21.3-21.3H237c11.8,0,21.3,9.5,21.3,21.3v114.8 C258.3,189.5,248.7,199,237,199z\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 57.7,\n y: 275.6,\n className: \"st0\",\n width: 41.2,\n height: 41.2\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 57.7,\n y: 193.8,\n className: \"st0\",\n width: 41.2,\n height: 41.2\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 159.5,\n y: 275.6,\n className: \"st0\",\n width: 41.2,\n height: 84.4\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 159.5,\n y: 193.8,\n className: \"st0\",\n width: 41.2,\n height: 41.2\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 260.2,\n y: 275.6,\n className: \"st0\",\n width: 41.2,\n height: 41.2\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 260.2,\n y: 193.8,\n className: \"st0\",\n width: 41.2,\n height: 41.2\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st0\",\n points: \"211.2,111.1 188.7,111.1 188.7,88.6 170.4,88.6 170.4,111.1 147.9,111.1 147.9,129.5 170.4,129.5 170.4,152 188.7,152 188.7,129.5 211.2,129.5 \"\n});\n\nfunction SvgHospital(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHospital);\nexport default __webpack_public_path__ + \"static/media/hospital.ef285ac9.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\\t.st1{fill:#FFFFFF;stroke:#000000;stroke-width:5;stroke-miterlimit:10;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M334.7,187.6c0,0-54-62.4-155.1-69.1C81.7,112,32.5,145,11.6,187.6S55.5,278,116.1,295.4c59,16.9,116.6,35.8,145.5,16.9 c22.4-14.7-1.6-28.1-4-43.4c-2.4-15.3,41-16.1,41-16.1s52.9,0.6,53.9-24.1C353.3,205.1,334.7,187.6,334.7,187.6z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"matrix(0.9921 -0.1254 0.1254 0.9921 -16.8825 19.7188)\",\n className: \"st0\",\n cx: 148.2,\n cy: 144,\n rx: 25.3,\n ry: 13.8\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"matrix(0.9921 -0.1254 0.1254 0.9921 -19.57 11.4252)\",\n className: \"st0\",\n cx: 81,\n cy: 161.2,\n rx: 25.3,\n ry: 13.8\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"matrix(0.9921 -0.1254 0.1254 0.9921 -24.8271 7.6955)\",\n className: \"st0\",\n cx: 48.7,\n cy: 201.1,\n rx: 25.3,\n ry: 13.8\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"matrix(0.9921 -0.1254 0.1254 0.9921 -29.9274 12.077)\",\n className: \"st0\",\n cx: 81,\n cy: 243.8,\n rx: 25.3,\n ry: 13.8\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"ellipse\", {\n transform: \"matrix(0.9921 -0.1254 0.1254 0.9921 -32.0678 19.3777)\",\n className: \"st0\",\n cx: 137.9,\n cy: 264.5,\n rx: 25.3,\n ry: 13.8\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M253.2,175.6c0,0,75.1-127.7,74.4-153.6c-23.9,17.1-82.1,117.7-90.7,145.7C247.8,173.7,253.2,175.6,253.2,175.6 \"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M207.3,238.5c-0.1,0.7,0.7,1.1,1.3,0.6c4.3-4.3,13.5-10.6,19.6-15.8c8.9-7.5,13.2-19.4,6.4-27.3 c-12-7.8-20.6,0.4-25,15.6C206.2,223.4,208.2,233.5,207.3,238.5z\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"239,198.8 253.2,175.6 236.9,167.8 226.6,192.2 \"\n});\n\nfunction SvgIcon(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcon);\nexport default __webpack_public_path__ + \"static/media/icon.6bc60efe.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 148.7,\n y: 250.1,\n className: \"st0\",\n width: 63.4,\n height: 109.9\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"8.2,360 79.2,360 79.2,255.2 8.2,291.7 \"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173,22.2v19.4h-17.5v14.1H173v30.7l-93.7,72.1v92.4l0,0V360h0h7.9h66.2v-57.3c0-13.2,11.9-23.8,26.6-23.8 c14.7,0,26.6,10.7,26.6,23.8V360h74.2V250.9v-92.4L187,86.3V55.7h17.5V41.6H187V22.2\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"280.8,255.1 280.8,360 351.8,360 351.8,291.7 \"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174.2,86.3l-95,72.1v92.4l0,0V360h0h7.9h66.2v-45.1c0-13.2,11.9-26.3,26.6-26.3c14.7,0,26.6,13.1,26.6,26.3V360h74.2V250.9 v-92.4l-95-72.1\"\n});\n\nfunction SvgLatinChurch(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLatinChurch);\nexport default __webpack_public_path__ + \"static/media/latin_church.29c203de.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 44.8,\n y: 50.9,\n className: \"st0\",\n width: 270.3,\n height: 33.4\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M296,72.9H64c-10.6,0-19.2,8.6-19.2,19.2v42.8v44.7v179.5h270.3V179.6v-44.7V92C315.2,81.4,306.6,72.9,296,72.9z\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M296,0H64C53.4,0,44.8,8.6,44.8,19.2v37.2h270.3V19.2C315.2,8.6,306.6,0,296,0z\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"st0\",\n cx: 180,\n cy: 216,\n r: 96.4\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 180,\n cy: 216,\n r: 84.8\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M233.3,206c-7.3,0-13.8-3.8-17.6-9.5c-3.8,5.7-10.2,9.5-17.6,9.5c-7.5,0-14.1-4-17.8-9.9 c-3.7,6-10.3,9.9-17.8,9.9c-6.7,0-12.7-3.2-16.6-8.1c-3.8,4.9-9.8,8.1-16.6,8.1c-7.7,0-14.4-4.2-18.1-10.3 c-1.9,6.4-2.9,13.3-2.9,20.3c0,39.5,32.1,71.6,71.6,71.6c39.5,0,71.6-32.1,71.6-71.6c0-6-0.8-11.9-2.2-17.5 C245.6,203,239.8,206,233.3,206z\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"st0\",\n cx: 80.6,\n cy: 28.2,\n r: 14\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"st0\",\n cx: 120.3,\n cy: 28.2,\n r: 14\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 44.8,\n y: 72.9,\n width: 270.3,\n height: 36.7\n});\n\nfunction SvgLaundry(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLaundry);\nexport default __webpack_public_path__ + \"static/media/laundry.894a5f4e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\\t.st1{fill:#FFFFFF;stroke:#000000;stroke-width:5;stroke-miterlimit:10;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M247.1,163.8c0,0-11.6-74.7-67.3-74.8s-67.5,74.6-67.5,74.6L79.7,359.7l99.8,0.1l99.8,0.1L247.1,163.8z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M179.4,277.1c-13.8,0-25,11.2-25,25v58h49.9v-58C204.4,288.2,193.2,277.1,179.4,277.1z\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"205,135.1 319.2,26.9 296.1,3.8 188.8,118.9 \"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"40.9,259.1 63.9,282.1 171.3,167.1 163.6,159.4 155.1,150.8 \"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"205.5,153.3 189.3,169.5 297.5,283.7 320.6,260.6 \"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"38.3,26.8 153.3,134.1 169.6,117.9 61.3,3.7 \"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n className: \"st1\",\n cx: 180,\n cy: 143.1,\n r: 23.1\n}));\n\nfunction SvgMill(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMill);\nexport default __webpack_public_path__ + \"static/media/mill.709f1cc6.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M239.7,360c-30.5,0-30.5,0-65.3,0h-49.7H0V143.1V143v-13.6h13.7V143H28v-13.6h13.7V143H56v-13.6h13.7V143h0.1v54.5h37.4V108 \"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"polyline\", {\n points: \"107.2,108 252.8,108 252.8,197.5 290.2,197.5 290.2,143 290.3,143 290.3,129.3 304,129.3 304,143 318.3,143 318.3,129.3 332,129.3 332,143 346.3,143 346.3,129.3 360,129.3 360,143 360,360 235.3,360 \"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M220.2,299.1c0-18.2-18-32.9-40.2-32.9c-22.2,0-40.2,14.7-40.2,32.9h0V360h80.4v-60.5 C220.2,299.3,220.2,299.2,220.2,299.1z\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 91.3,\n y: 61.3,\n width: 20.3,\n height: 20.3\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 248.4,\n y: 61.3,\n width: 20.3,\n height: 20.3\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 169.8,\n y: 61.3,\n width: 20.3,\n height: 20.3\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 209.1,\n y: 61.3,\n width: 20.3,\n height: 20.3\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 130.6,\n y: 61.3,\n width: 20.3,\n height: 20.3\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 91.3,\n y: 81.7,\n width: 177.4,\n height: 26.3\n});\n\nfunction SvgPalace(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPalace);\nexport default __webpack_public_path__ + \"static/media/palace.a3321bfe.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"ktsEBH.tif\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M177.4,0.2c3.3,0,6.6,0,9.8,0c0.5,0.1,1,0.4,1.5,0.4c22.9,2.7,42,21.5,44.8,44.4c0.6,5.4,5,7.9,9.8,5.8 c10.4-4.5,21.6-1.2,28.3,7.8c2.7,3.7,4.8,4.2,9,2.2c6.7-3.1,13.8-3.9,21-2.3c13.6,3,24.1,13.8,26.4,27 c2.5,14.4-3.4,27.9-15.7,35.7c-2.3,1.4-4,3.1-3.8,6c0.3,3,2.1,4.6,4.8,5.7c2.8,1.2,5.6,2.4,8.2,4c18.2,11.1,27,32,22.9,54.3 c-4.7,25.5-29.9,44.2-55.6,41.2c-2.5-0.3-4.9-0.9-7.4-1.1c-3.7-0.4-6,1.3-6.8,4.9c-0.2,0.7-0.3,1.4-0.5,2.1 c-2.6,9-8.5,14.8-17.5,17.1c-8.9,2.3-16.7-0.3-23-6.9c-1.9-2-3.9-3.5-6.7-2.5c-2.9,1-4.1,3.4-4.2,6.4c-0.3,5.9-1.9,11.4-4.5,16.6 c-0.4,0.8-0.7,1.9-0.6,2.9c1.7,14.2,3.6,28.3,5.3,42.5c1.3,10.8,2.8,21.5,3.9,32.3c0.8,7.8-4.4,13.3-12.2,13.3 c-20.8,0-41.5,0-62.3,0c-7.9,0-12.9-5.4-12.2-13.3c0.9-10,2-20,3.1-30.1c1.4-13.6,3-27.2,4.4-40.8c0.1-0.9-0.1-2.1-0.6-2.8 c-3.2-5.1-5.5-10.5-6.4-16.4c-0.4-2.6-2.4-4.7-4.8-4.7c-1.7,0-3.5,0.6-5,1.4c-8.1,4.2-16.7,5.8-25.6,4 c-16.4-3.2-27-13.1-31.8-29.1c-1-3.4-2.7-4.7-6.3-4.8c-3-0.1-6.1-0.1-9.1-0.6C34.3,218.9,17,199.8,14.7,177 c-2.2-21.9,9.7-43.1,30.6-52.4c7.2-3.2,14.7-4.6,22.5-4.4c2.4,0.1,4.2-1,5.4-3.1c1.2-2.1,0.9-4.2-0.5-6.1 c-0.5-0.6-0.9-1.3-1.4-1.9c-6-9-8.4-18.8-6.5-29.4c4.6-26.7,32.7-41.1,57.1-29.4c4.8,2.3,8.5,0.2,9.3-5 c3.1-20.4,14.3-34.4,33.5-41.8C168.7,1.8,173.1,1.2,177.4,0.2z M168.8,211.9C149,197.9,129.5,184,110,170.2 c-0.1,0.5,0,0.8,0.1,0.9c17.4,24.5,34.9,48.9,52.2,73.5c0.6,0.8,0.9,2,0.8,2.9c-1.6,15.1-3.3,30.3-4.9,45.4 c-1.5,14-3,27.9-4.5,41.9c-0.5,4.6-0.9,9.1-1.4,13.8c21.3,0,42.3,0,63.5,0c-0.6-4.9-1.2-9.7-1.8-14.5c-2.4-19.8-4.8-39.5-7.2-59.3 c-2.8-22.6-5.5-45.2-8.4-67.9c-0.2-1.7,0.2-2.9,1.1-4.3c16.7-23.6,33.4-47.1,50-70.7c0.5-0.7,0.9-1.4,1.3-2 c-0.1-0.1-0.2-0.2-0.3-0.3c-19.3,13.7-38.5,27.5-58.1,41.4c-2.8-16.3-5.4-32.2-8.1-48.2c-0.2,0-0.3,0-0.5,0 C178.8,152.4,173.8,181.9,168.8,211.9z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M177.4,0.2c-4.3,1.1-8.8,1.7-12.9,3.2c-19.2,7.4-30.4,21.4-33.5,41.8c-0.8,5.2-4.5,7.3-9.3,5C97.4,38.6,69.3,53,64.7,79.6 c-1.8,10.6,0.5,20.5,6.5,29.4c0.4,0.6,0.9,1.3,1.4,1.9c1.4,1.9,1.7,4,0.5,6.1c-1.2,2.1-2.9,3.2-5.4,3.1 c-7.8-0.2-15.4,1.2-22.5,4.4c-20.8,9.3-32.8,30.5-30.6,52.4c2.3,22.8,19.6,41.9,43.5,45.7c3,0.5,6.1,0.5,9.1,0.6 c3.6,0.1,5.2,1.4,6.3,4.8c4.8,16,15.4,25.9,31.8,29.1c8.9,1.8,17.5,0.2,25.6-4c1.5-0.8,3.4-1.4,5-1.4c2.5,0,4.4,2.1,4.8,4.7 c1,6,3.2,11.4,6.4,16.4c0.5,0.8,0.7,1.9,0.6,2.8c-1.4,13.6-2.9,27.2-4.4,40.8c-1.1,10-2.2,20-3.1,30.1 c-0.7,7.9,4.3,13.2,12.2,13.3c20.8,0,41.5,0,62.3,0c7.8,0,13-5.5,12.2-13.3c-1.1-10.8-2.6-21.5-3.9-32.3 c-1.8-14.2-3.6-28.3-5.3-42.5c-0.1-0.9,0.1-2,0.6-2.9c2.6-5.2,4.2-10.7,4.5-16.6c0.1-3,1.3-5.3,4.2-6.4c2.9-1,4.8,0.5,6.7,2.5 c6.3,6.6,14.1,9.2,23,6.9c9-2.3,14.9-8.1,17.5-17.1c0.2-0.7,0.3-1.4,0.5-2.1c0.8-3.6,3.1-5.3,6.8-4.9c2.5,0.3,4.9,0.9,7.4,1.1 c25.6,3,50.8-15.7,55.6-41.2c4.1-22.3-4.6-43.1-22.9-54.3c-2.6-1.6-5.4-2.8-8.2-4c-2.7-1.1-4.6-2.8-4.8-5.7 c-0.3-2.9,1.5-4.5,3.8-6c12.3-7.7,18.2-21.3,15.7-35.7c-2.3-13.2-12.8-24-26.4-27c-7.2-1.6-14.3-0.8-21,2.3c-4.3,2-6.3,1.5-9-2.2 c-6.8-9.1-17.9-12.4-28.3-7.8c-4.8,2.1-9.2-0.4-9.8-5.8c-2.7-22.9-21.8-41.8-44.8-44.4c-0.5-0.1-1-0.3-1.5-0.4\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M168.8,211.9c5.1-30,10-59.5,15-89c0.2,0,0.3,0,0.5,0c2.7,15.9,5.4,31.9,8.1,48.2 c19.6-14,38.9-27.7,58.1-41.4c0.1,0.1,0.2,0.2,0.3,0.3c-0.4,0.7-0.9,1.4-1.3,2c-16.7,23.6-33.3,47.2-50,70.7 c-1,1.3-1.3,2.6-1.1,4.3c2.8,22.6,5.6,45.2,8.4,67.9c2.4,19.8,4.8,39.5,7.2,59.3c0.6,4.8,1.2,9.6,1.8,14.5c-21.2,0-42.2,0-63.5,0 c0.5-4.7,0.9-9.3,1.4-13.8c1.5-14,3-27.9,4.5-41.9c1.6-15.1,3.3-30.3,4.9-45.4c0.1-0.9-0.2-2.1-0.8-2.9 c-17.4-24.5-34.8-49-52.2-73.5c-0.1-0.2-0.2-0.4-0.1-0.9C129.5,184,149,197.9,168.8,211.9z\"\n})));\n\nfunction SvgPark(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPark);\nexport default __webpack_public_path__ + \"static/media/park.9ba8ef13.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"GorED2.tif\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.42,267.9H147c0-3,.06-6,0-8.91-.34-15.1.5-30.06,4.95-44.64s13.14-26.82,24.14-37.11c12.42-11.63,25.6-22.47,38.42-33.68,4.12-3.61,8.1-7.36,12.22-11,20.64-18.08,20.55-51.07-5.14-69.5-12.89-9.25-27.6-11.43-42.94-10.87C149.72,53.28,128.73,69.44,119,98.05c-1.52,4.45-2.72,9-4.19,13.9l-63-7.78c1.4-7.43,2.12-14.74,4.17-21.67,10.9-36.79,35.63-60.72,71-74,21.43-8,43.9-9.42,66.59-8,18.78,1.19,37,5,54,13.24C267.91,23.53,284.3,38,295.87,57.38c17.67,29.64,18,68.9-9.66,99.92-13.71,15.38-29.14,28.87-44.79,42.18-4.73,4-9.2,8.37-13.92,12.42-12.46,10.66-18,24.36-18.08,40.5C209.4,257.47,209.42,262.54,209.42,267.9Z\",\n transform: \"translate(-51.77 0)\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 128.23,\n cy: 327.48,\n r: 32.52\n})));\n\nfunction SvgUncertain(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 256.45 360\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUncertain);\nexport default __webpack_public_path__ + \"static/media/uncertain.69183975.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#FFFFFF;}\\r\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M284.6,249.4C281.4,181.1,180-0.2,180-0.2S78.6,181.1,75.4,249.4c-3.2,68.3,49.1,110.9,104.6,110.9 C235.6,360.2,287.8,317.7,284.6,249.4z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M126.1,141c0,0-66,146.9-7.3,152.3c38.7,5.9,29.8-53,26.5-67.9C141.6,208.8,122.4,154.6,126.1,141z\"\n});\n\nfunction SvgWaterStructure(_ref, svgRef) {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 360 360\",\n style: {\n enableBackground: \"new 0 0 360 360\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWaterStructure);\nexport default __webpack_public_path__ + \"static/media/water_structure.038e69b9.svg\";\nexport { ForwardRef as ReactComponent };","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactComponent as GreekMonastery } from './greek_monastery.svg';\nimport { ReactComponent as LatinMonastery } from './latin_monastery.svg';\nimport { ReactComponent as Bath } from './bath.svg';\nimport { ReactComponent as Bridge } from './bridge.svg';\nimport { ReactComponent as Cuba } from './cuba.svg';\nimport { ReactComponent as Fortification } from './fortification.svg';\nimport { ReactComponent as Gate } from './gate.svg';\nimport { ReactComponent as GreekChurch } from './greek_church.svg';\nimport { ReactComponent as Hospital } from './hospital.svg';\nimport { ReactComponent as AIcon } from './icon.svg';\nimport { ReactComponent as LatinChurch } from './latin_church.svg';\nimport { ReactComponent as Laundry } from './laundry.svg';\nimport { ReactComponent as Mill } from './mill.svg';\nimport { ReactComponent as Palace } from './palace.svg';\nimport { ReactComponent as Park } from './park.svg';\nimport { ReactComponent as Uncertain } from './uncertain.svg';\nimport { ReactComponent as WaterStructure } from './water_structure.svg';\n\nconst Icon = (props) => {\n const { placetype, order, rite, ...rest } = props;\n\n switch (placetype) {\n case 'bath':\n return ;\n case 'bridge':\n return ;\n case 'church':\n if (rite.toLowerCase() === 'basilian' || rite.ToLowerCase() === 'greek') {\n return ;\n }\n return ;\n case 'cuba':\n return ;\n case 'fortification':\n return ;\n case 'gate':\n return ;\n case 'hospital':\n return ;\n case 'icon':\n return ;\n case 'laundry':\n return ;\n case 'mill':\n return ;\n case 'monastery':\n if (order === 'basilian') {\n return ;\n }\n return ;\n case 'palace':\n return ;\n case 'park':\n return ;\n case 'uncertain':\n return ;\n case 'water_structure':\n return ;\n default:\n return
;\n }\n};\n\nIcon.propTypes = {\n placetype: PropTypes.string.isRequired,\n order: PropTypes.string,\n rite: PropTypes.string,\n};\n\nIcon.defaultProps = {\n order: '',\n rite: '',\n};\n\nexport default Icon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport './place_name.css';\nimport { useTranslate } from 'react-redux-multilingual';\n\nimport('@formatjs/intl-displaynames/polyfill');\nimport('@formatjs/intl-displaynames/locale-data/en');\nimport('@formatjs/intl-displaynames/locale-data/it');\n\nconst NameComponent = (props) => {\n const translate = useTranslate();\n const { currentLocale, labels, skos_altLabel } = props;\n const languageNames = new Intl.DisplayNames([currentLocale], { type: 'language' });\n\n return (\n
\n {labels.map((l) => {\n const [lc, value] = l.split(',');\n return (\n
\n {`${languageNames.of(lc).toUpperCase()} ${translate('nameFieldTitle')}`}{' '}\n {value}\n
\n );\n })}\n\n {skos_altLabel && (\n
\n {translate('nameAltLabelFieldTitle')}{' '}\n {Array.isArray(skos_altLabel) ? skos_altLabel.join(', ') : skos_altLabel}{' '}\n
\n )}\n
\n );\n};\n\nNameComponent.propTypes = {\n labels: PropTypes.arrayOf(PropTypes.string),\n skos_altLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n currentLocale: PropTypes.string,\n};\n\nNameComponent.defaultProps = {\n labels: [],\n skos_altLabel: null,\n currentLocale: 'en',\n};\n\nexport default NameComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport './place_metadata.css';\nimport { useTranslate } from 'react-redux-multilingual';\n\nconst MetadataComponent = (props) => {\n const translate = useTranslate();\n\n const { nsp_updatedOn, nsp_updatedBy, nsp_createdOn, nsp_createdBy, nsp_recordStatus, nsp_fieldVisit } = props;\n\n let fieldVisitString;\n if (nsp_fieldVisit) {\n if (Array.isArray(nsp_fieldVisit)) {\n fieldVisitString = nsp_fieldVisit.map((d) => new Date(d).toLocaleDateString()).join(', ');\n } else {\n fieldVisitString = new Date(nsp_fieldVisit).toLocaleDateString();\n }\n }\n\n return (\n
\n {fieldVisitString && (\n
\n {translate('fieldVisitsFieldTitle')} {fieldVisitString}\n
\n )}\n
\n {translate('metaCreatedOnFieldTitle')}{' '}\n {new Date(nsp_createdOn).toLocaleDateString()} {translate('byFieldTitle')} {nsp_createdBy.foaf_givenName}{' '}\n {nsp_createdBy.foaf_familyName}{' '}\n {nsp_createdBy.foaf_mbox && {translate('emailFieldPostfix')}}\n
\n
\n {translate('metaUpdatedOnFieldTitle')}{' '}\n {new Date(nsp_updatedOn).toLocaleDateString()} {translate('byFieldTitle')} {nsp_updatedBy.foaf_givenName}{' '}\n {nsp_updatedBy.foaf_familyName}{' '}\n {nsp_updatedBy.foaf_mbox && {translate('emailFieldPostfix')}}\n
\n {nsp_recordStatus && (\n
\n {translate('metaRecordStatusFieldTitle')}{' '}\n {translate(nsp_recordStatus.toLowerCase().trim())}\n
\n )}\n
\n );\n};\n\nMetadataComponent.propTypes = {\n nsp_recordStatus: PropTypes.string,\n nsp_createdOn: PropTypes.string,\n nsp_updatedOn: PropTypes.string,\n nsp_fieldVisit: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n nsp_createdBy: PropTypes.shape({\n foaf_givenName: PropTypes.string,\n foaf_familyName: PropTypes.string,\n foaf_mbox: PropTypes.string,\n }),\n nsp_updatedBy: PropTypes.shape({\n foaf_givenName: PropTypes.string,\n foaf_familyName: PropTypes.string,\n foaf_mbox: PropTypes.string,\n }),\n};\n\nMetadataComponent.defaultProps = {\n nsp_fieldVisit: null,\n nsp_recordStatus: null,\n nsp_createdOn: null,\n nsp_createdBy: {},\n nsp_updatedOn: null,\n nsp_updatedBy: {},\n};\n\nexport default MetadataComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport './place_location.css';\n\nimport { useTranslate } from 'react-redux-multilingual';\n\nconst getSeeAlsoSource = (translate, link) => {\n if (link.includes('geonames.org')) {\n return translate('geonamesLinkName');\n }\n if (link.includes('earth.google.com')) {\n return translate('googleEarthLinkName');\n }\n return translate('otherLinkName');\n};\n\nconst LocationComponent = (props) => {\n const translate = useTranslate();\n\n const {\n nsp_hasLocation: {\n skos_altLabel,\n rdfs_seeAlso,\n wgs_lat,\n wgs_long,\n wgs_alt,\n nsp_coordinateSource,\n nsp_seismicCode,\n nsp_modernComune,\n nsp_modernProvince,\n nsp_historicalProvince,\n nsp_locationHighLoc,\n },\n } = props;\n\n return (\n
\n {skos_altLabel && (\n
\n {translate('locationAltNamesFieldTitle')}{' '}\n {Array.isArray(skos_altLabel) ? skos_altLabel.join(', ') : skos_altLabel}\n
\n )}\n {nsp_historicalProvince && (\n
\n {translate('locationHistoricalProvinceFieldTitle')} {nsp_historicalProvince}\n
\n )}\n {nsp_modernProvince && (\n
\n {translate('locationModernComuneFieldTitle')} {nsp_modernComune}\n
\n )}\n {nsp_modernProvince && (\n
\n {translate('locationModernProvinceFieldTitle')} {nsp_modernProvince}\n
\n )}\n {rdfs_seeAlso &&\n rdfs_seeAlso.map((item) => (\n
\n {`${getSeeAlsoSource(translate, item).toUpperCase()}:`}{' '}\n \n {item}\n \n
\n ))}\n
\n {translate('locationLatitudeFieldTitle')} {wgs_lat}\n
\n
\n {translate('locationLongitudeFieldTitle')} {wgs_long}\n
\n {wgs_alt && (\n
\n {translate('locationElevationFieldTitle')} {wgs_alt}\n
\n )}\n {nsp_locationHighLoc && (\n
\n {translate('locationHighLocFieldTitle')}{' '}\n {translate(nsp_locationHighLoc.toLowerCase())}\n
\n )}\n {nsp_coordinateSource && (\n
\n {translate('locationCoordinateSourceFieldTitle')}{' '}\n {translate(nsp_coordinateSource.trim())}\n
\n )}\n {nsp_seismicCode && (\n
\n {translate('locationSiesmicCodeFieldTitle')}:{nsp_seismicCode}\n
\n )}\n
\n );\n};\n\nLocationComponent.propTypes = {\n nsp_hasLocation: PropTypes.shape({\n skos_altLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n rdfs_seeAlso: PropTypes.arrayOf(PropTypes.string),\n wgs_lat: PropTypes.number,\n wgs_long: PropTypes.number,\n wgs_alt: PropTypes.number,\n nsp_coordinateSource: PropTypes.string,\n nsp_seismicCode: PropTypes.string,\n nsp_modernComune: PropTypes.string,\n nsp_modernProvince: PropTypes.string,\n nsp_historicalProvince: PropTypes.string,\n nsp_locationHighLoc: PropTypes.string,\n }),\n};\n\nLocationComponent.defaultProps = {\n nsp_hasLocation: {\n skos_altLabel: null,\n rdfs_seeAlso: null,\n wgs_lat: null,\n wgs_long: null,\n wgs_alt: null,\n nsp_coordinateSource: null,\n nsp_seismicCode: null,\n nsp_modernComune: null,\n nsp_modernProvince: null,\n nsp_historicalProvince: null,\n nsp_locationHighLoc: null,\n },\n};\n\nexport default LocationComponent;\n","export const orderColorLookup = (order) => {\n switch (order) {\n case 'augustinian_canons':\n return '#969CA1';\n\n case 'basilians':\n return '#6f93ad';\n\n case 'basilians_then_cistercians':\n return '#38e3df';\n\n case 'benedictines':\n return '#c683ea';\n\n case 'cistercians':\n return '#d688aa';\n\n case 'cluniacs':\n return '#e77a68';\n\n case 'hospital_of_saint_lazarus_of_jerusalem':\n return '#73b961';\n\n case 'knights_of_the_hospital_of_saint_lazarus_at_jerusalem':\n return '#eda268';\n\n case 'knights_of_the_hospital_of_saint_john_of_jerusalem':\n return '#6795fe';\n\n case 'knights_templar':\n return '#ffff00';\n\n case 'premonstratensian_canons':\n return '#ff76b8';\n\n default:\n return '#000';\n }\n};\n\nexport const getListOfOrders = (sites = []) => {\n const ordersSet = sites.reduce((accumulator, currentValue) => {\n if (currentValue.properties.nsp_monasticIdentity && currentValue.properties.nsp_monasticIdentity.length > 0) {\n const m = currentValue.properties.nsp_monasticIdentity;\n if (!m.endsWith('?') && !accumulator.has(m)) {\n accumulator.add(m);\n }\n }\n\n return accumulator;\n }, new Set([]));\n\n if (!ordersSet.has('UNKNOWN')) {\n ordersSet.add('UNKNOWN');\n }\n\n return [...ordersSet].sort((a, b) => a.localeCompare(b));\n};\n\nexport const getPlaceTypes = (sites = []) => {\n const placeTypeSet = sites.reduce((accumulator, currentValue) => {\n if (currentValue.properties.nsp_placeType && currentValue.properties.nsp_placeType.length > 0) {\n const m = currentValue.properties.nsp_placeType;\n if (!m.endsWith('?') && !accumulator.has(m)) {\n accumulator.add(m);\n }\n }\n\n return accumulator;\n }, new Set([]));\n\n return [...placeTypeSet].sort((a, b) => a.localeCompare(b));\n};\n\n// source: http://en.marnoto.com/2014/04/converter-coordenadas-gps.html\nexport const getDms = (val) => {\n const result = [];\n const v = Math.abs(val);\n\n const deg = Math.floor(v);\n result.push(`${deg}º`);\n\n const min = Math.floor((v - deg) * 60);\n result.push(`${min}'`);\n\n const sec = Math.round((v - deg - min / 60) * 3600 * 1000) / 1000;\n result.push(`${sec}\"`);\n\n return result;\n};\n\n// source: http://en.marnoto.com/2014/04/converter-coordenadas-gps.html\nexport const ddToDms = ({ lat, lng }) => {\n const latResult = [];\n latResult.push(lat >= 0 ? 'N' : 'S');\n\n const lngResult = [];\n lngResult.push(lng >= 0 ? 'E' : 'W');\n\n return `${lngResult.concat(getDms(lng)).join(' ')} ${latResult.concat(getDms(lat)).join(' ')}`;\n};\n\nexport const startCaseTerm = (t = '') => {\n const trimmedTerm = t.trim();\n return trimmedTerm.charAt(0).toUpperCase() + trimmedTerm.slice(1);\n};\n\nexport const startCaseList = (l = [], d = ',') => {\n const words = Array.isArray(l) ? l : l.split(d);\n return words.map((word) => startCaseTerm(word)).join(', ');\n};\n\nconst getQuery = () => {\n if (typeof window !== 'undefined') {\n return new URLSearchParams(window.location.search);\n }\n return new URLSearchParams();\n};\n\nconst getQueryStringValue = (key = null) => getQuery().get(key);\n\nexport const getQueryParam = (key, defaultVal) => getQueryStringValue(key) || defaultVal;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport uniqueId from 'lodash/uniqueId';\nimport './place_cssi.css';\nimport { useTranslate } from 'react-redux-multilingual';\nimport { startCaseTerm, startCaseList } from '../utils';\n\nconst CSSIComponent = (props) => {\n const translate = useTranslate();\n\n const { cssi_hasAssessment } = props;\n\n const assessments = Array.isArray(cssi_hasAssessment) ? cssi_hasAssessment : [cssi_hasAssessment];\n\n const content =\n assessments.length === 0 ? (\n
{translate('noDataMessage')}
\n ) : (\n
\n {assessments.map(\n ({\n iri,\n cssi_description,\n cssi_rockType,\n cssi_assessedBy,\n cssi_assessmentDate,\n cssi_rockCoatingNotationNotes,\n cssi_naturalProcessType,\n cssi_siteSettingScore,\n cssi_weaknessScore,\n cssi_largeErosionScore,\n cssi_smallErosionScore,\n cssi_rockCoatingsScore,\n cssi_totalAssessmentScore,\n cssi_otherConcernsScore,\n cssi_grandTotalAssessmentScore,\n cssi_hasRockCoatingNotation,\n }) => {\n const rockCoatingNotations = Array.isArray(cssi_hasRockCoatingNotation)\n ? cssi_hasRockCoatingNotation\n : [cssi_hasRockCoatingNotation];\n const rockTypes = Array.isArray(cssi_rockType) ? cssi_rockType : [cssi_rockType];\n\n return (\n
\n {cssi_description && (\n
\n {translate('descriptionFieldTitle')} {cssi_description}\n
\n )}\n {cssi_rockType && (\n
\n ROCK TYPE: {startCaseList(rockTypes)}\n
\n )}\n {cssi_rockCoatingNotationNotes && (\n
\n ROCK COATING NOTES: {cssi_rockCoatingNotationNotes}\n
\n )}\n {rockCoatingNotations && (\n
    \n {' '}\n {rockCoatingNotations.map((n) =>\n Object.entries(n).map(([k, v]) => (\n
  • \n {startCaseTerm(k)}: {v}\n
  • \n )),\n )}\n
\n )}\n {cssi_naturalProcessType && (\n
\n NATURAL PROCESS TYPE: {startCaseList(cssi_naturalProcessType)}\n
\n )}\n\n {[\n cssi_siteSettingScore,\n cssi_weaknessScore,\n cssi_largeErosionScore,\n cssi_smallErosionScore,\n cssi_rockCoatingsScore,\n cssi_totalAssessmentScore,\n cssi_otherConcernsScore,\n cssi_grandTotalAssessmentScore,\n ].some((item) => item >= 0) &&
SCORES (lower is better):
}\n\n {cssi_siteSettingScore >= 0 && (\n
\n SITE SETTING: {cssi_siteSettingScore}\n
\n )}\n {cssi_weaknessScore >= 0 && (\n
\n ROCK WEAKNESS: {cssi_weaknessScore}\n
\n )}\n {cssi_largeErosionScore >= 0 && (\n
\n LARGE EROSION EVENTS: {cssi_largeErosionScore}\n
\n )}\n {cssi_smallErosionScore >= 0 && (\n
\n SMALL EROSION EVENTS: {cssi_smallErosionScore}\n
\n )}\n {cssi_rockCoatingsScore >= 0 && (\n
\n ROCK COATINGS: {cssi_rockCoatingsScore}\n
\n )}\n {cssi_totalAssessmentScore >= 0 && (\n
\n TOTAL: {cssi_totalAssessmentScore}\n
\n )}\n {cssi_otherConcernsScore >= 0 && (\n
\n OTHER CONCERNS: {cssi_otherConcernsScore}\n
\n )}\n {cssi_grandTotalAssessmentScore >= 0 && (\n
\n GRAND TOTAL: {cssi_grandTotalAssessmentScore}\n
\n )}\n\n {cssi_assessmentDate && (\n
\n ASSESSED ON {new Date(cssi_assessmentDate).toLocaleDateString()}\n by\n {cssi_assessedBy.foaf_givenName} {cssi_assessedBy.foaf_familyName}{' '}\n {cssi_assessedBy.foaf_mbox && (email)}\n
\n )}\n
\n
\n );\n },\n )}\n
\n );\n\n return (\n
\n
{translate('cssiIntro')}
\n {content}\n
\n );\n};\n\nCSSIComponent.propTypes = {\n cssi_hasAssessment: PropTypes.arrayOf(\n PropTypes.shape({\n iri: PropTypes.string,\n cssi_description: PropTypes.string,\n cssi_rockType: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n cssi_assessedBy: PropTypes.shape({\n foaf_givenName: PropTypes.string,\n foaf_familyName: PropTypes.string,\n foaf_mbox: PropTypes.string,\n }),\n cssi_assessmentDate: PropTypes.string,\n cssi_rockCoatingNotationNotes: PropTypes.string,\n cssi_naturalProcessType: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n cssi_siteSettingScore: PropTypes.number,\n cssi_weaknessScore: PropTypes.number,\n cssi_largeErosionScore: PropTypes.number,\n cssi_smallErosionScore: PropTypes.number,\n cssi_rockCoatingsScore: PropTypes.number,\n cssi_totalAssessmentScore: PropTypes.number,\n cssi_otherConcernsScore: PropTypes.number,\n cssi_grandTotalAssessmentScore: PropTypes.number,\n cssi_hasRockCoatingNotation: PropTypes.arrayOf(PropTypes.object),\n }),\n ),\n};\n\nCSSIComponent.defaultProps = {\n cssi_hasAssessment: [],\n};\n\nexport default CSSIComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport './place_esr.css';\nimport { useTranslate } from 'react-redux-multilingual';\n\nconst ESRComponent = (props) => {\n const translate = useTranslate();\n\n const {\n nsp_earliestSurvivingRecord: { rdfs_label, nsp_minYear, nsp_maxYear },\n } = props;\n\n return (\n
\n {rdfs_label && (\n
\n {translate('esrFieldTitle')} {rdfs_label} ({nsp_minYear} - {nsp_maxYear})\n
\n )}\n
\n );\n};\n\nESRComponent.propTypes = {\n nsp_earliestSurvivingRecord: PropTypes.shape({\n rdfs_label: PropTypes.string,\n nsp_minYear: PropTypes.string,\n nsp_maxYear: PropTypes.string,\n }),\n};\n\nESRComponent.defaultProps = {\n nsp_earliestSurvivingRecord: {},\n};\n\nexport default ESRComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport './place_uci.css';\nimport { useTranslate } from 'react-redux-multilingual';\n\nconst UCIComponent = (props) => {\n const translate = useTranslate();\n\n const {\n nsp_notes,\n nsp_uncorroboratedInformation: { nsp_content, nsp_source },\n } = props;\n\n if (nsp_notes || nsp_content) {\n return (\n
\n {nsp_notes && (\n
\n {translate('notesFieldTitle')} {nsp_notes}\n
\n )}\n {nsp_content && (\n
\n {translate('uciFieldTitle')} {nsp_content}\n {nsp_source && (\n \n {' '}\n ({translate('uciSourceFieldTitle')}\n {nsp_source})\n \n )}\n
\n )}\n )\n
\n );\n }\n return
{translate('noDataMessage')}
;\n};\n\nUCIComponent.propTypes = {\n nsp_notes: PropTypes.string,\n nsp_uncorroboratedInformation: PropTypes.shape({\n nsp_content: PropTypes.string,\n nsp_source: PropTypes.string,\n }),\n};\n\nUCIComponent.defaultProps = {\n nsp_notes: null,\n nsp_uncorroboratedInformation: {},\n};\n\nexport default UCIComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport uniqueId from 'lodash/uniqueId';\nimport { useTranslate } from 'react-redux-multilingual';\nimport { startCaseList, startCaseTerm } from '../utils';\n\nimport './place_references.css';\n\nconst ReferencesComponent = (props) => {\n const translate = useTranslate();\n\n const { nsp_hasReference, nsp_attestationType } = props;\n\n let attestationTypeString;\n\n if (Array.isArray(nsp_attestationType)) {\n attestationTypeString = startCaseList(nsp_attestationType.map((at) => translate(at.trim())));\n } else {\n attestationTypeString = nsp_attestationType ? startCaseTerm(translate(nsp_attestationType.trim())) : undefined;\n }\n\n const references = Array.isArray(nsp_hasReference) ? nsp_hasReference : [nsp_hasReference];\n return (\n
\n {attestationTypeString && (\n
\n {translate('attestationTypesFieldTitle')} {attestationTypeString}\n
\n )}\n
\n {translate('referencesFieldTitle')}\n
\n
    \n {references.map(({ nsp_zoteroIri, nsp_pages, nsp_notes }) => (\n
  • \n Zotero URL:{' '}\n \n {nsp_zoteroIri}\n \n {nsp_pages && (\n \n {' '}\n {translate('referencesPagesFieldTitle')} {nsp_pages}\n \n )}\n {nsp_notes && (\n \n {' '}\n {translate('referencesNotesFieldTitle')} {nsp_notes}\n \n )}\n
  • \n ))}\n
\n
\n );\n};\n\nReferencesComponent.propTypes = {\n nsp_hasReference: PropTypes.oneOfType([\n PropTypes.shape({ nsp_zoteroIri: PropTypes.string, nsp_pages: PropTypes.string, nsp_notes: PropTypes.string }),\n PropTypes.arrayOf(\n PropTypes.shape({ nsp_zoteroIri: PropTypes.string, nsp_pages: PropTypes.string, nsp_notes: PropTypes.string }),\n ),\n ]),\n nsp_attestationType: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n};\n\nReferencesComponent.defaultProps = {\n nsp_hasReference: [],\n nsp_attestationType: null,\n};\n\nexport default ReferencesComponent;\n","import React from 'react';\nimport './place_type.css';\nimport { useTranslate } from 'react-redux-multilingual';\n\nconst monasteryMarkup = (translate, props) => {\n const { nsp_probableStatus, nsp_probableGender, nsp_subjectOfDedication, nsp_monasticIdentity } = props;\n\n return (\n
\n {nsp_probableGender && (\n
\n {translate('monasteryGenderFieldTitle')}{' '}\n {translate(nsp_probableGender.trim().toLowerCase().replace(/ /g, '_'))}\n
\n )}\n {nsp_probableStatus && (\n
\n {translate('monasteryStatusFieldTitle')}{' '}\n {translate(nsp_probableStatus.trim().toLowerCase().replace(/ /g, '_'))}\n
\n )}\n {nsp_monasticIdentity && (\n
\n {translate('monasteryOrderFieldTitle')}{' '}\n {translate(nsp_monasticIdentity.trim().toLowerCase().replace(/ /g, '_'))}\n
\n )}\n {nsp_subjectOfDedication && (\n
\n {translate('monasteryDedicationFieldTitle')} {nsp_subjectOfDedication}\n
\n )}\n
\n );\n};\n\nconst placeMarkupByType = (translate, { nsp_placeType, ...rest }) => {\n switch (nsp_placeType) {\n case 'monastery':\n return monasteryMarkup(translate, rest);\n default:\n return
;\n }\n};\n\nconst PlaceTypeInfoComponent = (props) => {\n const translate = useTranslate();\n return
{placeMarkupByType(translate, props)}
;\n};\n\nexport default PlaceTypeInfoComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport uniqueId from 'lodash/uniqueId';\nimport './place_links.css';\nimport { useTranslate } from 'react-redux-multilingual';\n\nconst LinksComponent = (props) => {\n const translate = useTranslate();\n\n const { nsp_hasLink } = props;\n\n if (nsp_hasLink) {\n const links = Array.isArray(nsp_hasLink) ? nsp_hasLink : [nsp_hasLink];\n\n if (links.length > 0) {\n return (\n
\n
\n {translate('linksFieldTitle')}\n
\n
    \n {links.map(({ nsp_role, nsp_hasSource, nsp_hasTarget, nsp_hasReference = [] } = {}) => {\n const references = Array.isArray(nsp_hasReference) ? nsp_hasReference : [nsp_hasReference];\n\n return (\n
  • \n
    \n
    \n {nsp_hasSource.skos_prefLabel} {nsp_role}{' '}\n {nsp_hasTarget.skos_prefLabel}\n
    \n {references.map(({ nsp_zoteroIri, nsp_pages, nsp_notes }) => {\n if (nsp_zoteroIri) {\n return (\n
    \n (Reference:{' '}\n \n {nsp_zoteroIri}\n \n {nsp_pages && (\n \n {' '}\n {translate('referencesPagesFieldTitle')} {nsp_pages}\n \n )}\n {nsp_notes && (\n \n {' '}\n {translate('referencesNotesFieldTitle')} {nsp_notes}\n \n )}\n )\n
    \n );\n }\n return null;\n })}\n
    \n
  • \n );\n })}\n
\n
\n );\n }\n }\n return null;\n};\n\nLinksComponent.propTypes = {\n nsp_hasLink: PropTypes.oneOfType([PropTypes.shape({}), PropTypes.arrayOf(PropTypes.shape({}))]),\n};\n\nLinksComponent.defaultProps = {\n nsp_hasLink: null,\n};\n\nexport default LinksComponent;\n","export const catalog=[\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Adrano/Castello_di_Adrano/manifest\", locationId: \"fortification2\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Adrano/Santa_Lucia_di_Aderno/manifest\", locationId: \"monastery92\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Agira/San_Filippo_d_Agira/manifest\", locationId: \"monastery125\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Aidone/Chiesa_di_San_Leone/manifest\", locationId: \"church3\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Aidone/Chiesa_di_San_Michele/manifest\", locationId: \"church5\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Aidone/Chiesa_di_Santa_Maria_La_Cava/manifest\", locationId: \"church4\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Altavilla_Milicia/Ponte_Saraceno/manifest\", locationId: \"fortification5\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Altavilla_Milicia/Santa_Maria_di_Campogrosso/manifest\", locationId: \"monastery35\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Altofonte/Cappella_di_San_Michele_Arcangelo/manifest\", locationId: \"monastery7\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Barcellona_Pozzo_di_Gotto/Santa_Maria_di_Gala/manifest\", locationId: \"monastery37\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Bronte/Ponte_di_Cantara/manifest\", locationId: \"fortification2\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Bronte/Santa_Maria_di_Maniace/manifest\", locationId: \"monastery86\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Burgio/Castello_di_Burgio/manifest\", locationId: \"fortification12\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Burgio/Santissima_Trinita_di_Refesio/manifest\", locationId: \"monastery99\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Buscemi/Castello_di_Buscemi/manifest\", locationId: \"fortification13\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Buscemi/Chiesa_Bizantina/manifest\", locationId: \"church118\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Caccamo/Castello_di_Caccamo/manifest\", locationId: \"fortification15\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Caltabellotta/Castello_di_Caltabellotta/manifest\", locationId: \"fortification26\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Caltabellotta/Chiesa_San_Salvatore/manifest\", locationId: \"monastery105\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Caltabellotta/Chiesa_di_San_Giorgio/manifest\", locationId: \"monastery13\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Caltanisetta/Santo_Spirito_a_Caltanissetta/manifest\", locationId: \"monastery132\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Caltavuturo/Castello_of_Terravecchia/manifest\", locationId: \"fortification28\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Caltavuturo/Chiesa_del_Casale/manifest\", locationId: \"church114\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Campofelice_di_Roccella/Castello_di_Roccella/manifest\", locationId: \"fortification119\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Carlentini/Santa_Maria_di_Roccadia/manifest\", locationId: \"monastery140\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Caronia/Castello_di_Caronia/manifest\", locationId: \"fortification32\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Casalvecchio_Siculo/Santi_Pietro_e_Paolo_d_Agro/manifest\", locationId: \"monastery63\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Castelbuono/San_Cosma_a_Gonata/manifest\", locationId: \"monastery19\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Castelbuono/Sant_Anastasia_di_Gratteri/manifest\", locationId: \"monastery143\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Castelmola/Castello_di_Castelmola/manifest\", locationId: \"fortification35\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Castelvetrano/Santissima_Trinita_di_Delia/manifest\", locationId: \"monastery76\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Castiglione_di_Sicilia/Chiesa_della_Cuba_di_Castiglione/manifest\", locationId: \"church20\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Castroreale/Santa_Venera_di_Vanella/manifest\", locationId: \"monastery77\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Catania/Cattedrale_di_Catania/manifest\", locationId: \"monastery21\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Catania/Sant_Agata_di_Catania_Sant_Agata_La_Vetere/manifest\", locationId: \"monastery78\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Cefala_Diana/Castello_di_Cefala_Diana/manifest\", locationId: \"fortification154\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Cefala_Diana/Cefala_Diana/manifest\", locationId: \"fortification154\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Cefala_Diana/Terme/manifest\", locationId: \"fortification1\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Cefalu/Castello/manifest\", locationId: \"fortification42\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Cefalu/Cattedrale_di_Cefalu/manifest\", locationId: \"church22\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Cefalu/Cefalu/manifest\", locationId: \"church84\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Cefalu/Chiesa_di_San_Biagio/manifest\", locationId: \"church23\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Cefalu/Chiesa_di_San_Giorgio/manifest\", locationId: \"church84\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Cefalu/Osterio_Magno/manifest\", locationId: \"fortification5\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Cefalu/Palazzo_Maria/manifest\", locationId: \"fortification4\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Cefalu/Santissimo_Salvatore_e_Santi_Pietro_e_Paolo_a_Cefalu/manifest\", locationId: \"monastery118\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Collesano/Castello_di_Collesano/manifest\", locationId: \"fortification46\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Collesano/Chiesa_Santa_Maria_Assunta/manifest\", locationId: \"church123\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Collesano/Santa_Maria_del_Pedale/manifest\", locationId: \"monastery142\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Enna/Castello_di_Lombardia/manifest\", locationId: \"fortification145\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Erice/Castello/manifest\", locationId: \"fortification51\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Francavilla_di_Sicilia/Santissimo_Salvatore_della_Placa_-_Dawn_Hayes/manifest\", locationId: \"monastery72\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Francavilla_di_Sicilia/Santissimo_Salvatore_della_Placa_-_Max_Wilson/manifest\", locationId: \"monastery72\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Frazzano/Frazzano/manifest\", locationId: \"monastery65\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Frazzano/San_Filippo_di_Fragala/manifest\", locationId: \"monastery65\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Geraci_Siculo/Castle_Chapel_Cistern_and_Walls/manifest\", locationId: \"fortification60\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Geraci_Siculo/Chiesa_di_San_Giacomo/manifest\", locationId: \"church122\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Gratteri/Chiesa_di_Santa_Maria_di_Gesu_or_del_Convento/manifest\", locationId: \"monastery33\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Gratteri/San_Giorgio/manifest\", locationId: \"monastery120\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Itala/Itala/manifest\", locationId: \"monastery64\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Itala/Santi_Pietro_e_Paolo_di_Itala/manifest\", locationId: \"monastery64\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Licodia/Chiesa_Medioevale_di_Piano_Ammalati/manifest\", locationId: \"church97\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Licodia/Santa_Maria_di_Licodia/manifest\", locationId: \"monastery82\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Licodia/Santa_Maria_di_Licodia_Summer_Abbey/manifest\", locationId: \"monastery100\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Lipari/San_Bartolomeo_di_Lipari/manifest\", locationId: \"monastery1\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Mandanici/Santa_Maria_di_Mandanici/manifest\", locationId: \"monastery39\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Marsala/Santa_Maria_della_Grotta/manifest\", locationId: \"monastery40\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Mazara_del_Vallo/Castello_di_Mazara/manifest\", locationId: \"fortification74\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Mazara_del_Vallo/Cattedrale_di_Mazara/manifest\", locationId: \"church35\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Mazara_del_Vallo/Chiesa_di_San_Vito/manifest\", locationId: \"church36\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Mazara_del_Vallo/San_Michele_di_Mazara/manifest\", locationId: \"monastery47\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Mazara_del_Vallo/San_Nicolo_Regale/manifest\", locationId: \"monastery57\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Mazara_del_Vallo/Santa_Maria_delle_Giummare/manifest\", locationId: \"monastery33\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Messina/Cattedrale_di_Messina/manifest\", locationId: \"monastery37\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Messina/Chiesa_della_Santissima_Annunziata_dei_Catalani/manifest\", locationId: \"monastery44\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Messina/Chiesa_di_San_Gioacomo/manifest\", locationId: \"church39\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Messina/Santa_Maria_delle_Scale_La_Badiazza/manifest\", locationId: \"monastery90\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Messina/Santa_Maria_di_Roccamadore/manifest\", locationId: \"monastery103\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Messina/Santo_Stefano_di_Messina/manifest\", locationId: \"monastery73\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Mili_San_Pietro/42-Santa_Maria_di_Mili_Mili_San_Pietro/manifest\", locationId: \"monastery42\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Monreale/Castello_di_Monreale_Castellaccio/manifest\", locationId: \"fortification88\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Monreale/Cattedrale_di_Monreale/manifest\", locationId: \"church49\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Monreale/Santa_Maria_La_Nuova/manifest\", locationId: \"monastery85\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Motta_Sant_Anastasia/Castello_Sant_Anastasia/manifest\", locationId: \"fortification130\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Noto/Castello_di_Noto/manifest\", locationId: \"fortification96\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Noto_Antica/Chiesa_del_Santissimo_Crocifisso/manifest\", locationId: \"church54\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Novara_di_Sicilia/Santa_Maria_di_Novara/manifest\", locationId: \"monastery102\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palazzo_Adriano/Santa_Maria_di_Adriano/manifest\", locationId: \"monastery84\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Capella_di_Santa_Maria_Incoronata/manifest\", locationId: \"church58\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Castello_di_Castellammare/manifest\", locationId: \"fortification33\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Cattedrale_di_Palermo/manifest\", locationId: \"monastery55\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_della_Madonna_dei_Rimedi/manifest\", locationId: \"monastery79\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_della_Madonna_dell_Oreto/manifest\", locationId: \"church76\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_della_Santissima_Trinita_alla_Zisa/manifest\", locationId: \"church77\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_di_San_Cataldo/manifest\", locationId: \"church62\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_di_San_Giovanni_alla_Guilla/manifest\", locationId: \"church65\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_di_San_Giovanni_dei_Lebbrosi/manifest\", locationId: \"monastery64\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_di_San_Nicola/manifest\", locationId: \"church72\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_di_Sant_Agata_alla_Guilla/manifest\", locationId: \"church60\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_di_Santa_Cristina_la_Vetere/manifest\", locationId: \"church65\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_di_Santa_Maria_Maddalena/manifest\", locationId: \"church68\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_di_Santa_Maria_dell_Ammiraglio_La_Martorana/manifest\", locationId: \"church70\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_di_Santa_Maria_dell_Itria/manifest\", locationId: \"church69\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Chiesa_di_Santa_Maria_della_Speranza/manifest\", locationId: \"church80\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/La_Cubula/manifest\", locationId: \"fortification9\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Palazzo_Reale_and_the_Cappella_Palatina/manifest\", locationId: \"church81\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Palazzo_della_Cuba/manifest\", locationId: \"fortification10\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Palazzo_della_Favara_Castello_Maredolce/manifest\", locationId: \"palace7\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Palazzo_della_Zisa_Palermo/manifest\", locationId: \"palace11\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Palazzo_di_Uscibene_Lo_Scibene/manifest\", locationId: \"fortification12\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Palazzo_via_Protonotaro/manifest\", locationId: \"palace17\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Ponte_dell_Ammiraglio/manifest\", locationId: \"fortification4\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Porta_Mazara/manifest\", locationId: \"fortification2\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Porta_della_Vittoria/manifest\", locationId: \"fortification4\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/San_Giorgio_in_Kemonia/manifest\", locationId: \"monastery23\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/San_Giovanni_degli_Eremiti/manifest\", locationId: \"monastery83\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Santissima_Trinita_del_Cancelliere/manifest\", locationId: \"monastery94\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Santissima_Trinita_di_Palermo/manifest\", locationId: \"monastery98\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Palermo/Santissimo_Salvatore/manifest\", locationId: \"monastery71\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Pantelleria/Castello/manifest\", locationId: \"fortification100\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Paterno/Castello_di_Paterno/manifest\", locationId: \"fortification102\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Paterno/Paterno/manifest\", locationId: \"church124\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Paterno/San_Giorgio/manifest\", locationId: \"church124\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Paterno/Santa_Maria_di_Giosafat/manifest\", locationId: \"monastery122\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Paterno/Santa_Maria_di_Scala/manifest\", locationId: \"monastery0\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Patti/San_Bartolomeo/manifest\", locationId: \"church82\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Piazza_Armerina/Castello_di_Piazza_Armerina/manifest\", locationId: \"fortification107\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Piazza_Armerina/Sant_Andrea/manifest\", locationId: \"monastery130\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Polizzi_Generosa/Chiesa_di_San_Nicolo_de_Franchis/manifest\", locationId: \"church113\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Polizzi_Generosa/Chiesa_di_Santa_Maria_Assunta/manifest\", locationId: \"church88\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Polizzi_Generosa/Chiesa_di_Santa_Maria_dell_Udienza/manifest\", locationId: \"church119\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Raccuia/San_Nicolo_di_Fico/manifest\", locationId: \"monastery53\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Randazzo/Campanile_della_Chiesa_di_San_Martino/manifest\", locationId: \"church121\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Randazzo/Palazzo_Reale/manifest\", locationId: \"fortification98\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Randazzo/San_Giovanni_di_Psichro/manifest\", locationId: \"monastery30\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/San_Fratello/San_Pancrazio_di_San_Fratello/manifest\", locationId: \"monastery59\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/San_Marco_d_Alunzio/Castello_San_Marco_d_Alunzio/manifest\", locationId: \"fortification128\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Sant_Angelo_di_Brolo/San_Michele_Arcangelo_di_Brolo/manifest\", locationId: \"monastery14\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Sant_Angelo_di_Brolo/Torre_Saracena/manifest\", locationId: \"fortification146\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Sciacca/Chiesa_di_San_Nicolo_Latina/manifest\", locationId: \"church99\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Sciacca/Santa_Maria_delle_Giummare/manifest\", locationId: \"monastery87\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Siracusa/Chiesa_di_San_Nicolo_dei_Cordari/manifest\", locationId: \"church103\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Sperlinga/Castello_di_Sperlinga/manifest\", locationId: \"fortification141\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Taormina/Castello_di_Taormina/manifest\", locationId: \"fortification142\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Taormina/Chiesa_di_Madonna_della_Rocca/manifest\", locationId: \"monastery105\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Taormina/Chiesa_di_San_Nicolo_di_Bari/manifest\", locationId: \"church120\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Taormina/Palazzo_Corvaja/manifest\", locationId: \"fortification3\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Termini_Imerese/Castello_di_Termini_Imerese/manifest\", locationId: \"fortification145\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Termini_Imerese/Chiesa_di_San_Giacomo/manifest\", locationId: \"monastery39\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Termini_Imerese/Santa_Caterina_d_Alessandria/manifest\", locationId: \"church110\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Torrenova/San_Pietro_di_Deca/manifest\", locationId: \"church61\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Troina/San_Michele_di_Troina/manifest\", locationId: \"monastery49\" },\n { manifestId: \"https://norman-sicily.s3.amazonaws.com/Troina/Sant_Elia_d_Embula/manifest\", locationId: \"monastery20\" }\n];\n","import React, { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslate } from 'react-redux-multilingual';\nimport mirador from 'mirador';\nimport miradorImageToolsPlugin from 'mirador-image-tools/es/plugins/miradorImageToolsPlugin';\nimport { catalog } from '../data/catalog';\n\nconst MediaComponent = (props) => {\n const miradorRef = useRef();\n const { nsp_id, nsp_placeType } = props;\n const locationId = `${nsp_placeType}${nsp_id}`;\n const viewerId = `viewer-${locationId}`;\n const { manifestId } = catalog.find((item) => item.locationId === locationId) || {};\n\n useEffect(() => {\n const config = {\n id: viewerId,\n windows: [\n {\n manifestId,\n view: 'gallery',\n },\n ],\n window: {\n imageToolsEnabled: true,\n imageToolsOpen: false,\n allowClose: false, // Prevent the user from closing this window\n allowMaximize: false,\n defaultSideBarPanel: 'info',\n sideBarOpenByDefault: false,\n views: [\n // Only allow the user to select single and gallery view\n { key: 'single' },\n { key: 'gallery' },\n ],\n },\n workspace: {\n type: 'mosaic',\n },\n workspaceControlPanel: {\n enabled: false, // Remove extra workspace settings\n },\n language: 'en',\n availableLanguages: {\n en: 'English',\n it: 'Italiano',\n },\n selectedTheme: 'light',\n config: {\n theme: 'light',\n language: {\n en: 'English',\n it: 'Italiano',\n },\n },\n };\n\n try {\n const miradorInstance = mirador.viewer(config, [...miradorImageToolsPlugin]);\n miradorRef.current = miradorInstance;\n } catch (e) {\n console.log(`An error occurred when mounting ${viewerId}: ${e.message}`);\n }\n\n return () => {\n try {\n if (miradorRef.current) {\n miradorRef.current.unmount();\n }\n } catch (e) {\n console.log(`An error occurred when dismounting ${viewerId}: ${e.message}`);\n }\n };\n }, [viewerId, manifestId]);\n\n const translate = useTranslate();\n\n if (manifestId) {\n return
;\n }\n\n return
{translate('noDataMessage')}
;\n};\n\nMediaComponent.propTypes = {\n nsp_id: PropTypes.string,\n nsp_placeType: PropTypes.string,\n};\n\nMediaComponent.defaultProps = {\n nsp_id: undefined,\n nsp_placeType: undefined,\n};\n\nexport default MediaComponent;\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Popup } from 'react-leaflet';\nimport { Tab, Tabs, TabList, TabPanel } from 'react-tabs';\nimport { useTranslate } from 'react-redux-multilingual';\nimport NameComponent from './place_name';\nimport MetadataComponent from './place_metadata';\nimport LocationComponent from './place_location';\nimport CSSIComponent from './place_cssi';\nimport ESRComponent from './place_esr';\nimport UCIComponent from './place_uci';\nimport ReferencesComponent from './place_references';\nimport PlaceTypeInfoComponent from './place_type';\nimport LinksComponent from './place_links';\nimport MediaComponent from './place_media';\n\nimport './site_popup.css';\n\nimport 'react-tabs/style/react-tabs.css';\n\nconst SitePopup = (props) => {\n const translate = useTranslate();\n\n const { currentPlace, loadingCurrentPlace, currentLocale } = props;\n const { labels, skos_altLabel } = currentPlace;\n\n const nameProps = { currentLocale, labels, skos_altLabel };\n\n return (\n \n {loadingCurrentPlace && (\n
\n
\n
\n
\n
\n )}\n\n {!loadingCurrentPlace && (\n
\n \n \n {translate('tabLabelNames')}\n {translate('tabLabelLocation')}\n {translate('tabLabelCssi')}\n {translate('tabLabelNetwork')}\n {translate('tabLabelReferences')}\n {translate('tabLabelNotes')}\n {translate('tabLabelMetadata')}\n {translate('tabLabelMedia')}\n \n\n \n
\n \n \n
\n
\n \n
\n \n
\n
\n \n
\n \n
\n
\n \n
\n \n \n
\n
\n \n
\n \n
\n
\n \n
\n \n
\n
\n \n
\n \n
\n
\n \n
\n \n
\n
\n
\n
\n )}\n \n );\n};\n\nSitePopup.propTypes = {\n currentPlace: PropTypes.shape(PropTypes.any),\n loadingCurrentPlace: PropTypes.bool,\n currentLocale: PropTypes.string,\n};\n\nSitePopup.defaultProps = {\n currentPlace: null,\n loadingCurrentPlace: null,\n currentLocale: 'en',\n};\n\nexport default SitePopup;\n","/* eslint-disable no-shadow */\nimport { createSelector } from 'reselect';\n\nconst loading = (state) => state.map.loading;\n\nexport const loadingSelector = createSelector([loading], (loading) => loading);\n\nconst sites = (state) => state.map.sites;\n\nexport const sitesSelector = createSelector([sites], (sites) => sites);\n\nconst currentPlace = (state) => state.map.currentPlace;\n\nexport const currentPlaceSelector = createSelector([currentPlace], (currentPlace) => currentPlace);\n\nconst loadingCurrentPlace = (state) => state.map.loadingCurrentPlace;\n\nexport const loadingCurrentPlaceSelector = createSelector(\n [loadingCurrentPlace],\n (loadingCurrentPlace) => loadingCurrentPlace,\n);\n\nexport const legendSelector = createSelector([loadingSelector, sitesSelector], (loading, sites) => ({\n loading,\n sites,\n}));\n\nexport const markersSelector = createSelector([sitesSelector, currentPlaceSelector], (sites, place) => ({\n sites,\n place,\n}));\n\nconst currentLocale = (state) => state.Intl.locale;\n\nexport const currentLocaleSelector = createSelector([currentLocale], (currentLocale) => currentLocale);\n\nexport const popupSelector = createSelector(\n [currentPlaceSelector, loadingCurrentPlaceSelector, currentLocaleSelector],\n (currentPlace, loadingCurrentPlace, currentLocale) => ({ currentPlace, loadingCurrentPlace, currentLocale }),\n);\n","import { connect } from 'react-redux';\nimport SitePopup from '../components/site_popup';\nimport { popupSelector } from '../selectors';\n\nconst mapStateToProps = (state) => {\n const { currentPlace, loadingCurrentPlace, currentLocale } = popupSelector(state);\n return {\n currentPlace,\n loadingCurrentPlace,\n currentLocale,\n };\n};\n\nconst SitePopupContainer = connect(mapStateToProps)(SitePopup);\n\nexport default SitePopupContainer;\n","import React from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport PropTypes from 'prop-types';\nimport { Marker, Tooltip } from 'react-leaflet';\nimport MarkerClusterGroup from 'react-leaflet-markercluster';\nimport L from 'leaflet';\nimport _ from 'lodash';\nimport Icon from '../icons';\nimport SitePopup from '../containers/site_popup';\nimport { orderColorLookup } from '../utils';\n\nimport 'react-leaflet-markercluster/dist/styles.min.css';\nimport './markers.css';\n\nconst markerIcon = (feature) => {\n const size = 30;\n const order = _.get(feature, 'properties.nsp_monasticIdentity') || '';\n const normalizedOrder = order.toLowerCase().replace(/ /g, '_');\n const color = orderColorLookup(normalizedOrder);\n\n return L.divIcon({\n className: 'place-marker',\n html: ReactDOMServer.renderToString(\n ,\n ),\n });\n};\n\nconst getTooltipText = (itLabel, enLabel) => {\n if (itLabel && itLabel.length > 0 && enLabel && enLabel.length > 0) {\n return `${itLabel} (${enLabel})`;\n }\n if (itLabel && itLabel.length > 0) {\n return itLabel;\n }\n if (enLabel && enLabel.length > 0) {\n return enLabel;\n }\n return 'Unknown';\n};\n\nconst Markers = ({ handleMouseOver, handleMouseOut, sites, place }) => {\n const markersMarkup = sites.map((feature) => {\n const {\n labels: { en: enLabel, it: itLabel },\n iri,\n nsp_id,\n nsp_placeType,\n position,\n } = feature.properties;\n if (position) {\n return (\n handleMouseOver(e),\n mouseout: (e) => handleMouseOut(e),\n }}>\n {place && }\n \n {/* eslint-disable camelcase */}\n
\n
{getTooltipText(itLabel, enLabel)}
\n
\n {/* eslint-enable camelcase */}\n
\n \n );\n }\n return null;\n });\n\n return {markersMarkup};\n};\n\nMarkers.propTypes = {\n sites: PropTypes.arrayOf(PropTypes.object),\n handleMouseOut: PropTypes.func.isRequired,\n handleMouseOver: PropTypes.func.isRequired,\n place: PropTypes.shape({}),\n};\n\nMarkers.defaultProps = {\n place: null,\n sites: [],\n};\n\nexport default Markers;\n","import { connect } from 'react-redux';\nimport Markers from '../components/markers';\nimport { markersSelector } from '../selectors';\n// import { setSelectedPlace, clearSelectedPlace } from '../actions';\nimport { setSelectedPlace } from '../actions';\n\nconst mapStateToProps = (state) => {\n const { sites, place } = markersSelector(state);\n return {\n sites,\n place,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n handleMouseOver: (e) => {\n const { iri, id, type } = e.target.options.data;\n dispatch(setSelectedPlace(iri, id, type));\n },\n handleMouseOut: () => {\n // dispatch(clearSelectedPlace());\n },\n});\n\nconst MarkersContainer = connect(mapStateToProps, mapDispatchToProps)(Markers);\n\nexport default MarkersContainer;\n","const CONFIG = {\n centerPoint: [40.85, 14.3],\n initialZoom: 5,\n maxZoom: 18,\n searchZoom: 13,\n mapAttribution:\n '© Mapbox © OpenStreetMap',\n apiProtocol: process.env.REACT_APP_API_SERVER_PROTOCOL || 'http',\n apiHost: process.env.REACT_APP_API_SERVER_HOST || 'localhost',\n apiPort: process.env.REACT_APP_API_SERVER_PORT || '4000',\n media: {\n catalogUrl: 'https://media.normansicily.org/data/catalog.js',\n },\n};\n\nexport default CONFIG;\n","/* eslint no-plusplus: [\"error\", { \"allowForLoopAfterthoughts\": true }] */\nimport { useEffect, useCallback } from 'react';\nimport { useMap } from 'react-leaflet';\nimport { useEventHandlers } from '@react-leaflet/core';\nimport { GeoSearchControl } from 'leaflet-geosearch';\nimport { useTranslate } from 'react-redux-multilingual';\nimport L from 'leaflet';\nimport config from '../config';\n\nimport 'leaflet-geosearch/dist/geosearch.css';\n\nconst SearchControl = (props) => {\n const translate = useTranslate();\n const map = useMap();\n const { provider } = props;\n\n const findMarker = useCallback((latlng, layer) => {\n let marker;\n if (layer.getLayers) {\n const childLayers = layer.getLayers();\n for (let i = 0; i < childLayers.length; i++) {\n marker = findMarker(latlng, childLayers[i]);\n if (marker) break;\n }\n }\n if (layer.getLatLng && layer.options && layer.options.data && layer.options.data.id) {\n if (latlng.equals(layer.getLatLng())) {\n marker = layer;\n }\n }\n return marker;\n }, []);\n\n const onShowLocation = useCallback(\n (e) => {\n const latlng = L.latLng(e.location.y, e.location.x);\n\n let marker;\n let foundMarker = false;\n map.eachLayer((layer) => {\n if ((layer instanceof L.MarkerClusterGroup || layer instanceof L.Marker) && !foundMarker) {\n marker = findMarker(latlng, layer);\n if (marker) foundMarker = true;\n }\n });\n\n if (marker) {\n let found = false;\n map.eachLayer((layer) => {\n if (!found) {\n if (layer.hasLayer) {\n if (layer.hasLayer(marker)) {\n layer.zoomToShowLayer(marker);\n found = true;\n }\n }\n }\n });\n if (!found) {\n map.setView(latlng, config.searchZoom);\n }\n\n marker.fireEvent('mouseover');\n marker.openTooltip();\n } else {\n map.setView(latlng, config.searchZoom);\n }\n },\n [map, findMarker],\n );\n\n useEventHandlers({ instance: map }, { 'geosearch/showlocation': onShowLocation });\n\n useEffect(() => {\n const searchControl = new GeoSearchControl({\n provider,\n searchLabel: translate('searchPrompt'),\n maxMarkers: 0,\n showMarker: false,\n showPopup: false,\n updateMap: false,\n autoClose: true,\n position: 'topright',\n style: 'bar',\n maxSuggestions: 25,\n });\n\n map.addControl(searchControl);\n\n return () => map.removeControl(searchControl);\n }, [translate, map, provider]);\n\n return null;\n};\nexport default SearchControl;\n","/* eslint class-methods-use-this: [\"error\", { \"exceptMethods\": [\"parse\"] }] */\nimport { JsonProvider } from 'leaflet-geosearch';\nimport config from '../config';\n\nclass SearchProvider extends JsonProvider {\n endpoint({ query, type }) {\n return this.getUrl(`${config.apiProtocol}://${config.apiHost}:${config.apiPort}/names`, {\n q: query,\n f: 'json',\n });\n }\n\n search = (query) => {\n if ('data' in query) {\n return Promise.resolve([query.data]);\n }\n const { query: q } = query;\n if (q && q.length < 3) {\n return Promise.resolve([]);\n }\n return super.search(query);\n };\n\n parse = ({ data }) => {\n if (data && Array.isArray(data)) {\n return data.reduce((accumulator, value) => {\n const { rdfs_label, wgs_long, wgs_lat } = value;\n\n if (Array.isArray(rdfs_label)) {\n for (const label of rdfs_label) {\n accumulator.push({\n x: wgs_long,\n y: wgs_lat,\n label,\n });\n }\n } else {\n accumulator.push({\n x: wgs_long,\n y: wgs_lat,\n label: rdfs_label,\n });\n }\n return accumulator;\n }, []);\n }\n return [];\n };\n}\n\nexport default SearchProvider;\n","import { connect } from 'react-redux';\nimport SearchBar from '../components/search_bar';\nimport { sitesSelector } from '../selectors';\nimport SearchProvider from '../providers/search';\n\nconst mapStateToProps = (state) => {\n const sites = sitesSelector(state);\n const searchProvider = new SearchProvider(sites);\n\n return {\n provider: searchProvider,\n };\n};\n\nconst SearchBarContainer = connect(mapStateToProps)(SearchBar);\n\nexport default SearchBarContainer;\n","import React from 'react';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport { useTranslate } from 'react-redux-multilingual';\nimport { getPlaceTypes, getListOfOrders, orderColorLookup } from '../utils';\nimport Icon from '../icons';\nimport './legend.css';\n\nconst Legend = ({ sites, loading }) => {\n const translate = useTranslate();\n\n if (loading) {\n return
{translate('loading')}
;\n }\n const size = 25;\n const orderList = getListOfOrders(sites);\n const orderMarkup = orderList.map((order) => {\n const normalizedOrder = order.toLowerCase().replace(/ /g, '_');\n\n return (\n
  • \n
    \n \n
    \n {translate(normalizedOrder)}\n
    \n
    \n
  • \n );\n });\n\n const placeTypes = getPlaceTypes(sites);\n const placeTypeMarkup = placeTypes.map((placeType) => (\n
  • \n {placeType === 'monastery' ? (\n <>\n
    {translate('legendSublistTitleMonastic')}
    \n
      {orderMarkup}
    \n \n ) : (\n
    \n \n
    \n {placeType}\n
    \n
    \n )}\n
  • \n ));\n return (\n
    \n
    \n
    \n
    {translate('legendTitle')}
    \n
    \n
      {placeTypeMarkup}
    \n
    \n
    \n
    \n
    \n );\n};\n\nLegend.propTypes = {\n loading: PropTypes.bool,\n sites: PropTypes.arrayOf(PropTypes.object),\n};\n\nLegend.defaultProps = {\n sites: [],\n loading: false,\n};\n\nexport default Legend;\n","import { connect } from 'react-redux';\nimport Legend from '../components/legend';\nimport { legendSelector } from '../selectors';\n\nconst mapStateToProps = (state) => {\n const { loading, sites } = legendSelector(state);\n return {\n loading,\n sites,\n };\n};\n\nconst LegendContainer = connect(mapStateToProps)(Legend);\n\nexport default LegendContainer;\n","/* eslint-disable no-console */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslate } from 'react-redux-multilingual';\nimport { MapContainer, TileLayer } from 'react-leaflet';\nimport MarkersContainer from '../containers/markers';\nimport SearchBarContainer from '../containers/search_bar';\nimport LegendContainer from '../containers/legend';\nimport config from '../config';\n\nimport 'leaflet/dist/leaflet.css';\n\nconst InteractiveMap = ({ loading }) => {\n const translate = useTranslate();\n\n if (loading) {\n return
    {translate('loading')}
    ;\n }\n\n const tileUrl = `${config.apiProtocol}://${config.apiHost}:${config.apiPort}/mapproxy/{z}/{x}/{y}`;\n\n return (\n
    \n \n \n \n \n \n \n
    \n );\n};\n\nInteractiveMap.propTypes = {\n loading: PropTypes.bool,\n};\n\nInteractiveMap.defaultProps = {\n loading: false,\n};\n\nexport default InteractiveMap;\n","import { connect } from 'react-redux';\nimport InteractiveMap from '../components/interactive_map';\nimport { loadingSelector } from '../selectors';\n\nconst mapStateToProps = (state) => ({\n loading: loadingSelector(state),\n});\n\nconst InteractiveMapContainer = connect(mapStateToProps)(InteractiveMap);\n\nexport default InteractiveMapContainer;\n","import React from 'react';\nimport InteractiveMapContainer from '../containers/interactive_map';\nimport './app.css';\n\nconst App = () => (\n
    \n \n
    \n);\n\nexport default App;\n","import { connect } from 'react-redux';\nimport { initMap } from '../actions';\nimport App from '../components/app';\n\nconst mapDispatchToProps = (dispatch) => ({\n initMap: () => {\n dispatch(initMap());\n },\n});\n\nexport default connect(null, mapDispatchToProps)(App);\n","import { cloneDeep, getOr, set, unset, compose, isEqual } from 'lodash/fp';\nimport _ from 'lodash';\nimport {\n INIT_MAP,\n LOAD_SITES_BEGIN,\n LOAD_SITES_SUCCESS,\n LOAD_SITES_FAILURE,\n // CLEAR_SELECTED_PLACE,\n FETCH_PLACE_BEGIN,\n FETCH_PLACE_FAILURE,\n FETCH_PLACE_SUCCESS,\n} from '../actions';\n\nexport const initialState = {\n loading: false,\n loadingCurrentPlace: false,\n sites: [],\n currentPlace: {},\n};\n\nconst makeProperties = (props) => {\n const { labels, ...rest } = props;\n\n let processedLabels = {};\n if (_.isArray(labels)) {\n /* eslint-disable no-param-reassign */\n processedLabels = labels.reduce((a, c) => {\n const [lang, label] = c.split(',');\n a[lang] = label;\n return a;\n }, {});\n /* eslint-enable no-param-reassign */\n } else {\n processedLabels = { en: labels };\n }\n return { labels: processedLabels, ...rest };\n};\n\nconst stardog2geojson = (places) => {\n const features = places.reduce((a, c) => {\n const { wgs_long, wgs_lat, wgs_alt, ...rest } = c;\n const place = {\n type: 'Feature',\n geometry: { type: 'Point', coordinates: [wgs_long, wgs_lat, wgs_alt] },\n properties: { ...makeProperties(rest), position: [wgs_lat, wgs_long] },\n };\n a.push(place);\n return a;\n }, []);\n\n return features;\n};\n\nexport const mapReducer = (state = initialState, action) => {\n const currentPlace = getOr({}, 'currentPlace', state);\n\n switch (action.type) {\n case INIT_MAP:\n return cloneDeep(state);\n case LOAD_SITES_BEGIN:\n return set('loading', true, state);\n case LOAD_SITES_SUCCESS:\n return compose(set('loading', false), set('sites', stardog2geojson(action.places)), unset('error'))(state);\n case LOAD_SITES_FAILURE:\n return compose(set('loading', false), set('error', action.error), set('sites', []))(state);\n // case CLEAR_SELECTED_PLACE:\n // return state;\n // // return compose(\n // // set('loadingCurrentPlace', false),\n // // set('currentPlace', {}),\n // // unset('error'),\n // // )(state);\n case FETCH_PLACE_BEGIN:\n return set('loadingCurrentPlace', true, state);\n case FETCH_PLACE_SUCCESS:\n return !isEqual(currentPlace, action.place)\n ? compose(set('loadingCurrentPlace', false), set('currentPlace', action.place), unset('error'))(state)\n : state;\n case FETCH_PLACE_FAILURE:\n return compose(set('loadingCurrentPlace', false), set('error', action.error), set('currentPlace', {}))(state);\n default:\n return state;\n }\n};\n","import axios from 'axios';\nimport config from './config';\n\nexport const getAllPlaces = () => axios.get(`${config.apiProtocol}://${config.apiHost}:${config.apiPort}/places`);\n\nexport const getPlace = (place) => {\n const { placeId, placeType } = place;\n return axios.get(`${config.apiProtocol}://${config.apiHost}:${config.apiPort}/places/${placeType}/${placeId}`);\n};\n","import { all, call, put, select, takeEvery, takeLatest } from 'redux-saga/effects';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport { getAllPlaces, getPlace } from '../api';\n\nimport {\n INIT_MAP,\n loadSitesBegin,\n loadSitesSuccess,\n loadSitesFailure,\n SET_SELECTED_PLACE,\n fetchPlaceBegin,\n fetchPlaceSuccess,\n fetchPlaceFailure,\n} from '../actions';\nimport { currentPlaceSelector } from '../selectors';\n\nexport function* getAllPlacesSaga() {\n try {\n yield put(loadSitesBegin());\n const response = yield call(getAllPlaces);\n const { data } = response;\n yield put(loadSitesSuccess(data));\n } catch (e) {\n yield put(loadSitesFailure(e));\n }\n}\n\nexport function* getPlaceSaga(action) {\n try {\n const currentPlace = yield select(currentPlaceSelector, {\n key: 'currentPlace',\n });\n const { place = {} } = action;\n const { placeIri } = place;\n if (!isEmpty(placeIri) && !isEqual(currentPlace.iri, placeIri)) {\n yield put(fetchPlaceBegin());\n const response = yield call(getPlace, place);\n const { data } = response;\n yield put(fetchPlaceSuccess(data));\n }\n } catch (e) {\n yield put(fetchPlaceFailure(e));\n }\n}\n\nconst initMapSaga = [takeEvery(INIT_MAP, getAllPlacesSaga)];\n\nconst fetchPlaceSaga = [takeLatest(SET_SELECTED_PLACE, getPlaceSaga)];\n\nexport default function* rootSaga() {\n yield all([...initMapSaga, ...fetchPlaceSaga]);\n}\n","/* eslint-disable react/jsx-filename-extension */\nimport React from 'react';\nimport { render } from 'react-dom';\nimport { IntlReducer as Intl, IntlProvider } from 'react-redux-multilingual';\nimport { Provider } from 'react-redux';\nimport { createStore, applyMiddleware, combineReducers } from 'redux';\nimport createSagaMiddleware from 'redux-saga';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport translations from './translations';\n\nimport AppContainer from './containers/app';\nimport { initMap } from './actions';\nimport { mapReducer } from './reducers';\nimport rootSaga from './sagas/map_saga';\n// import registerServiceWorker from './registerServiceWorker';\nimport { getQueryParam } from './utils';\n\nconst sagaMiddleware = createSagaMiddleware();\n\nconst composeEnhancers = composeWithDevTools({\n // Specify name here, actionsBlacklist, actionsCreators and other options if needed\n});\n\nconst rootReducer = combineReducers({ Intl, map: mapReducer });\n\nconst store = createStore(rootReducer, composeEnhancers(applyMiddleware(sagaMiddleware)));\n\nconst locale = getQueryParam('locale', 'en');\n\nstore.dispatch({\n type: 'SET_LOCALE',\n locale,\n});\n\nsagaMiddleware.run(rootSaga);\n\nrender(\n \n \n \n \n ,\n document.getElementById('root'),\n);\n\nstore.dispatch(initMap());\n\n// registerServiceWorker();\n"],"sourceRoot":""}