{"version":3,"sources":["shared/sharedEnv.js","shared/axios-url.js","Admin/DeleteDialog/DeleteDialog.js","Admin/PeriodForm/PeriodForm.js","Admin/ImageUpload/ImageUpload.js","Admin/ItemForm/ItemForm.js","Admin/LogIn/LogIn.js","Admin/Admin.js","Admin/ResetPassword/ResetPassword.js","Timeline/ItemDialog/LazyImage/LazyImage.js","Timeline/ItemDialog/ImageFull/ImageFull.js","Timeline/ItemDialog/ItemDialog.js","Timeline/Carousel/Carousel.js","Timeline/Timeline.js","App.js","serviceWorker.js","index.js"],"names":["baseURL","window","env","backendURL","frontURL","frontendURL","hrefLink","hrefAlt","shareQuote","appVersion","logoFileName","faviconFileName","backgroundImageFileName","sharedEnv","introTextGR","introTextEN","axios_url","instance","axios","create","DeleteDialog","_Component","props","_this","_classCallCheck","this","_possibleConstructorReturn","_getPrototypeOf","call","handleClose","setState","hasError","errorCode","state","_inherits","_createClass","key","value","_this2","config","headers","Content-Type","x-auth","getToken","delete","item","then","response","error","status","setTimeout","localStorage","clear","location","reload","_this3","React","createElement","Dialog","open","isOpen","onClose","aria-labelledby","aria-describedby","classes","paper","DialogContent","className","CircularProgress","size","color","style","marginLeft","width","padding","Button","onClick","fontSize","event","deleteItem","Component","Transition","Slide","Object","assign","direction","PeriodForm","handleChange","element","updatedPeriod","_objectSpread","period","touched","indexOf","target","valid","wordCounter","test","length","id","elementYear","elementEra","Number","Date","getFullYear","startYear","endYear","startEra","endEra","checkFormValidity","editPeriod","preventDefault","loading","newData","description","el","descriptionEl","en","descriptionEn","post","result","title","formIsValid","prevProps","prevState","snapshot","get","data","newPeriod","console","log","periodElement","formIsTouched","str","count","replace","split","TransitionComponent","keepMounted","CloseIcon","onSubmit","marginRight","FormControl","TextField","label","onChange","margin","required","disabled","FormHelperText","right","multiline","rowsMax","type","variant","isFormTouched","ImageUpload","onRemove","updatedFiles","_toConsumableArray","files","updatedRemoved","removed","base64","push","preview","handleImages","receivedProps","images","submitted","droppedFiles","num","Math","floor","random","reader","FileReader","readAsDataURL","onload","URL","createObjectURL","imageToRemove","onabort","onerror","forEach","f","revokeObjectURL","Dropzone","accept","multiple","onDrop","bind","_ref","getRootProps","getInputProps","map","file","index","boxShadow","alt","src","getCleanState","mythPeriod","titleEl","titleEn","placeEl","placeEn","_id","category","imageUrls","removedImages","imageTextEl","imageTextEn","isMythology","availableCategories","availablePeriods","categoryColor","periodColor","isYearCritical","ItemForm","itemElement","updatedItem","startPeriod","getPeriodFromYear","titles","ids","criticalYears","i","periods","isCritical","_i","_criticalYears","critical","setAvailablePeriods","endPeriod","undefined","submitForm","newImage","itemData","place","imagesBase64Array","imagesToRemove","imageText","postUrl","isEdit","sort","a","b","_step","_iterator","_createForOfIteratorHelper","s","n","done","imageUrl","imageInfo","url","err","e","year","_step2","_iterator2","_step3","newPeriodColor","_iterator3","newCategoryColor","imagesArray","min","max","InputLabel","htmlFor","Select","input","Input","labelwidth","MenuItem","FormControlLabel","control","Checkbox","checked","handleImagesArray","LogIn","updatedState","logInUser","userData","email","password","setItem","hasAuthed","resetPassword","isClicked","resetClicked","Paper","cursor","position","bottom","backgroundColor","paddingLeft","paddingRight","paddingTop","paddingBottom","borderRadius","desc","order","orderBy","Admin","_getPrototypeOf2","_len","arguments","args","Array","_key","apply","concat","currentTab","page","rowsPerPage","selectedPeriod","periodDialogOpen","selectedItem","itemDialogOpen","editItem","deleteDialogOpen","snackbarTrueOpen","snackbarFalseOpen","handleTabChange","handleRequestSort","handleChangePage","handleChangeRowsPerPage","itemDialogEdit","itemDialogClose","getItems","periodDialogClose","getPeriods","deleteDialogClose","isTrue","isAuthed","userHasAuthed","items","loginTime","getItem","valueOf","start","end","limit","substr","lastIndexOf","_this4","emptyRows","backgroundImage","Tabs","indicatorColor","textColor","Tab","Table","TableHead","TableRow","TableCell","header","sortDirection","TableSortLabel","active","TableBody","array","cmp","stabilizedThis","stableSort","slice","hover","tabIndex","IconButton","aria-label","marginTop","maxWidth","getYear","getDescription","height","colSpan","TableFooter","TablePagination","rowsPerPageOptions","backIconButtonProps","nextIconButtonProps","onChangePage","onChangeRowsPerPage","Snackbar","TransitionUp","ContentProps","message","ResetPassword","confirm","hasExpired","changePassword","match","params","token","history","LazyImage","loaded","imageLoaded","image","Fragment","FullscreenIcon","onFull","data-src","onLoad","TransitionDown","imageFull","ItemDialog","handleImageOpen","isImageOpen","handleImageClose","lang","symbolA","symbolB","windowStart","windowEnd","hasPrev","getPrev","SimpleBar","autoHide","whiteSpace","wordBreak","background","opacity","TwitterShareButton","quote","FacebookShareButton","Tooltip","placement","CopyToClipboard","text","onCopy","openSnackbar","getTitle","borderBottomColor","getColor","displayYear","hasNext","getNext","ImageFull","Carousel","_Siema","dots","document","classList","add","_loop","dot","addEventListener","goTo","appendChild","innerElements","selector","parentNode","insertBefore","nextSibling","querySelectorAll","addOrRemove","currentSlide","Siema","Timeline","itemObjects","activeItem","activeFilters","range","startBC","endBC","categories","political","building","exhibits","keywords","validFilters","activeItemIndex","activePeriods","activePeriodFocused","categoryColors","dialogOpen","sidebarOpen","snackbarOpen","filtersOpen","currentLang","loadScreen","viewOk","setView","newLang","innerWidth","innerHeight","timeline","setWindow","setFullYear","itemId","getDialogItem","openSidebar","getElementById","display","closeSidebar","closeFilters","toggleFilters","openFilters","categoryFilterClicked","updatedFilters","handleFilterChange","focusFilteredPeriods","menuClick","zoomStep","currentStep","timeAxis","step","zoomIn","zoomOut","move","periodClick","undoFocusPeriod","focusPeriod","onMouseEnter","transform","createColor","onMouseLeave","getNextItem","visibleWindow","getWindow","visibleStart","visibleEnd","halfWidth","abs","newIndex","newStartYear","newEndYear","getPrevItem","changeLang","onRangeChanged","container","options","stack","zoomMin","format","minorLabels","date","month","majorLabels","transformed","transformItems","keys","finalData","vis","on","properties","wheelDelta","detail","what","itemClicked","itemsData","srcElement","interval","path","totalHeight","getElementsByClassName","offsetHeight","focusPeriods","scale","setItems","DataSet","multi","children","carousel","loop","onInit","addDots","updateDots","querySelector","prev","next","quarter","limits","middles","newDataArray","clusterData","clusterStyle","lineHeight","textClasses","cardId","cardClass","content","dataByYear","find","langs","_i4","_dataByYear","cardStyle","moreTexts","_step4","_iterator4","_step5","slides","_iterator5","filterStart","filterEnd","focused","colors","focusedIndeces","left","stateRange","_this5","percentage","distance","newStart","newEnd","_i7","_focused","newHistory","minWidth","txt","isPeriod","_this6","_step6","_iterator6","_step7","_iterator7","_this7","ScreenRotationIcon","href","rel","ZoomInIcon","ZoomOutIcon","name","maxLength","float","timeFilterIsBc","clearFilters","applyFilters","removeAccents","getPeriodYears","getPeriodSymbols","textAlign","theme","createMuiTheme","palette","primary","light","main","dark","contrastText","secondary","typography","useNextVariants","fontFamily","App","link","getElementsByTagName","updateFavicon","MuiThemeProvider","BrowserRouter","basename","Switch","Route","exact","component","Boolean","hostname","ReactDOM","render","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.13f93609.chunk.js","sourcesContent":["const baseURL = window.env.backendURL || 'http://localhost:8094';\nconst frontURL = window.env.frontendURL || 'http://localhost:8093';\n\nconst hrefLink = window.env.hrefLink || \"https://kiato.gov.gr\"\nconst hrefAlt = window.env.hrefAlt || \"Δήμος Σικυωνίων\";\nconst shareQuote = window.env.shareQuote || 'Dimos Sikionion Timeline';\nconst appVersion = window.env.appVersion || '0.0.0';\n\nconst logoFileName = window.env.logoFileName || 'comic-logo.png';\nconst faviconFileName = window.env.faviconFileName || 'comic-favicon.ico';\nconst backgroundImageFileName = window.env.backgroundImageFileName || 'mtpy-background.jpg'\n\nconst introTextGR = window.env.introTextGR || \"Η ΙΣΤΟΡΙΑ ΜΑΣ ΜΕΣΑ ΑΠΟ\\nΤΟ ΠΕΡΑΣΜΑ ΤΩΝ ΧΡΟΝΩΝ\";\nconst introTextEN = window.env.introTextEN || 'OUR HISTORY THROUGH THE YEARS';\n\nexport default {\n baseURL,\n frontURL,\n hrefLink,\n hrefAlt,\n shareQuote,\n logoFileName,\n faviconFileName,\n appVersion,\n introTextGR,\n introTextEN,\n backgroundImageFileName\n};\n","import axios from 'axios';\nimport sharedEnv from \"./sharedEnv\";\n\nconst instance = axios.create({\n baseURL: sharedEnv.baseURL\n});\n\nexport default {\n instance,\n};\n","import React, { Component } from 'react';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport Dialog from '@material-ui/core/Dialog';\nimport Button from '@material-ui/core/Button';\n\nimport axios from '../../shared/axios-url';\n\nfunction getCleanState() {\n return {\n hasError: false,\n errorCode: 0\n };\n}\n\nclass DeleteDialog extends Component {\n\n constructor(props) {\n super(props);\n this.state = getCleanState();\n }\n\n deleteItem() {\n const config = {\n headers: {\n 'Content-Type': 'application/json',\n 'x-auth': this.props.getToken()\n }\n };\n \n axios.instance.delete('/items/' + this.props.item, config)\n .then((response) => {\n this.handleClose();\n },\n (error) => {\n this.setState({\n hasError: true,\n errorCode: error.response.status\n }, () => {\n setTimeout(() => {\n if (this.state.errorCode === 401) {\n localStorage.clear();\n window.location.reload();\n }\n else {\n this.handleClose();\n }\n }, 3000);\n });\n });\n }\n\n handleClose = () => {\n this.setState(getCleanState(), () => {\n this.props.handleClose();\n });\n };\n\n render() {\n return (\n \n \n {this.state.hasError ? (\n this.state.errorCode === 401 ?\n
\n

Συνδεθείτε και προσπαθήστε ξανά!

\n \n
\n :\n
\n

Κάτι πήγε στραβά, προσπαθήστε ξανά!

\n
\n \n
\n
\n ) : \n
\n

Είστε βέβαιοι πως θέλετε να γίνει διαγραφή;

\n
\n \n \n
}\n
\n \n )\n }\n}\n\nexport default DeleteDialog;\n","import React, { Component } from 'react';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport FormControl from '@material-ui/core/FormControl';\nimport TextField from '@material-ui/core/TextField';\nimport CloseIcon from '@material-ui/icons/Close';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport Slide from '@material-ui/core/Slide';\n\nimport axios from '../../shared/axios-url';\nimport './PeriodForm.css';\n\nfunction Transition(props) {\n return ;\n}\n\nfunction getCleanState() {\n return {\n period: {\n title: {\n value: '',\n valid: false,\n touched: false\n },\n descriptionEl: {\n value: '',\n valid: false,\n touched: false\n },\n descriptionEn: {\n value: '',\n valid: false,\n touched: false\n },\n startYear: {\n value: '',\n valid: false,\n touched: false\n },\n endYear: {\n value: '',\n valid: false,\n touched: false\n },\n startEra: {\n value: '',\n valid: false,\n touched: false\n },\n endEra: {\n value: '',\n valid: false,\n touched: false\n }\n },\n formIsValid: false,\n loading: false,\n hasError: false,\n errorCode: 0\n };\n}\n\nclass PeriodForm extends Component {\n\n constructor(props) {\n super(props);\n this.state = getCleanState(); \n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.period !== prevProps.period && this.props.period !== '') {\n axios.instance.get('/periods/' + this.props.period)\n .then((period) => {\n let startYear = -1 * period.data.startYear;\n let startEra = 'π.Χ.';\n if (period.data.startYear >= 0) {\n startYear = period.data.startYear;\n startEra = 'μ.Χ.';\n }\n\n let endYear = '';\n let endEra = 'π.Χ.';\n if (period.data.endYear) {\n endYear = -1 * period.data.endYear;\n if (period.data.endYear >= 0) {\n endYear = period.data.endYear;\n endEra = 'μ.Χ.';\n }\n }\n\n let newPeriod = {\n title: {\n value: {\n el: period.data.title.el,\n en: period.data.title.en\n },\n valid: true,\n touched: false\n },\n descriptionEl: {\n value: period.data.description.el,\n valid: this.wordCounter(period.data.description.el),\n touched: false\n },\n descriptionEn: {\n value: period.data.description.en,\n valid: this.wordCounter(period.data.description.en),\n touched: false\n },\n startYear: {\n value: startYear,\n valid: true,\n touched: false\n },\n endYear: {\n value: endYear,\n valid: true,\n touched: false\n },\n startEra: {\n value: startEra,\n valid: true,\n touched: false\n },\n endEra: {\n value: endEra,\n valid: true,\n touched: false\n }\n };\n\n this.setState({\n period: newPeriod\n }, () => {\n this.checkFormValidity();\n });\n },\n (error) => {\n console.log(error);\n });\n }\n }\n\n checkFormValidity() {\n let formIsValid = true;\n for (let periodElement in this.state.period) {\n formIsValid = formIsValid && this.state.period[periodElement].valid;\n }\n\n this.setState({\n formIsValid: formIsValid\n });\n }\n\n isFormTouched() {\n let formIsTouched = false;\n for (let periodElement in this.state.period) {\n formIsTouched = formIsTouched || this.state.period[periodElement].touched;\n }\n return formIsTouched;\n }\n\n handleChange = (element) => event => {\n let updatedPeriod = {...this.state.period};\n updatedPeriod[element].touched = true;\n\n if (element.indexOf('description') > -1) {\n updatedPeriod[element].value = event.target.value;\n updatedPeriod[element].valid = this.wordCounter(event.target.value);\n }\n else if (element.indexOf('Year') > -1) {\n const regex = /^[0-9\\b]+$/;\n if (event.target.value === '' || (regex.test(event.target.value) && event.target.value.length < 5)) {\n updatedPeriod[element].value = event.target.value;\n }\n }\n else {\n let value = 'π.Χ.';\n if (event.target.id === '2' || event.target.id === '4') {\n value = 'μ.Χ.';\n }\n\n updatedPeriod[element].value = value;\n updatedPeriod[element].valid = true;\n }\n\n if (element.indexOf('Year') > -1 || element.indexOf('Era') > -1) {\n let elementYear = 'startYear';\n let elementEra = 'startEra';\n if (element.indexOf('end') > -1) {\n elementYear = 'endYear';\n elementEra = 'endEra';\n }\n\n if (updatedPeriod[elementEra].value === 'μ.Χ.') {\n updatedPeriod[elementYear].valid = updatedPeriod[elementYear].value !== '' && Number(updatedPeriod[elementYear].value) < new Date().getFullYear();\n }\n else {\n updatedPeriod[elementYear].valid = updatedPeriod[elementYear].value !== '' && Number(updatedPeriod[elementYear].value) < 6000;\n }\n\n if (updatedPeriod.startYear.value !== '' && updatedPeriod.endYear.value !== '') {\n let startYear = Number(this.state.period.startYear.value);\n let endYear = Number(this.state.period.endYear.value);\n\n if (this.state.period.startEra.value === 'π.Χ.') {\n startYear = -1 * startYear;\n }\n if (this.state.period.endEra.value === 'π.Χ.') {\n endYear = -1 * endYear;\n }\n\n if (elementYear === 'startYear') {\n updatedPeriod.startYear.valid = updatedPeriod.startYear.valid && startYear < endYear;\n }\n if (elementYear === 'endYear') {\n updatedPeriod.endYear.valid = updatedPeriod.endYear.valid && startYear < endYear;\n \n if (updatedPeriod.startEra.value === 'μ.Χ.') {\n updatedPeriod.startYear.valid = startYear < new Date().getFullYear();\n }\n else {\n updatedPeriod.startYear.valid = startYear < 6000;\n }\n }\n }\n }\n\n this.setState({\n period: updatedPeriod\n }, () => {\n this.checkFormValidity();\n });\n }\n\n editPeriod = (event) => {\n event.preventDefault();\n this.setState({ loading: true });\n\n let newData = {\n description: {\n el: this.state.period.descriptionEl.value,\n en: this.state.period.descriptionEn.value\n }\n };\n\n if (this.state.period.startYear.touched || this.state.period.endYear.touched) {\n let startYear = Number(this.state.period.startYear.value);\n let endYear = Number(this.state.period.endYear.value);\n\n if (this.state.period.startEra.value === 'π.Χ.') {\n startYear = -1 * startYear;\n }\n if (endYear && this.state.period.endEra.value === 'π.Χ.') {\n endYear = -1 * endYear;\n }\n newData['startYear'] = startYear;\n newData['endYear'] = endYear;\n }\n\n const config = {\n headers: {\n 'Content-Type': 'application/json',\n 'x-auth': this.props.getToken()\n }\n };\n\n axios.instance.post('/periods/' + this.props.period, newData, config)\n .then((result) => {\n this.handleClose();\n },\n (error) => {\n this.setState({\n hasError: true,\n errorCode: error.response.status\n }, () => {\n setTimeout(() => {\n if (this.state.errorCode === 401) {\n localStorage.clear();\n window.location.reload();\n }\n else {\n this.handleClose();\n }\n }, 3000);\n });\n });\n };\n\n wordCounter(str) {\n str = str.replace(/(^\\s*)|(\\s*$)/gi, \"\");\n str = str.replace(/[ ]{2,}/gi, \" \");\n str = str.replace(/\\n /, \"\\n\");\n\n const count = str.split(' ').length;\n return count >= 100 && count <= 450;\n }\n\n handleClose = () => {\n this.setState(getCleanState(), () => {\n this.props.handleClose();\n });\n };\n\n render() {\n return (\n \n \n
\n \n
\n\n
\n

\n {this.state.period.title.value.el} ({this.state.period.title.value.en})\n

\n\n {this.state.period.startYear.value !== 7000 && \n
\n
ΕΤΗ
\n
\n
\n \n \n {!this.state.period.startYear.valid && \n \n Μη έγκυρο έτος\n }\n \n\n
\n
\n π.Χ.\n
\n
\n μ.Χ.\n
\n
\n
\n\n
\n \n \n {this.state.period.endYear.touched && !this.state.period.endYear.valid && \n \n Μη έγκυρο έτος\n }\n \n\n
\n
\n π.Χ.\n
\n
\n μ.Χ.\n
\n
\n
\n
\n
\n }\n\n
\n
ΠΕΡΙΓΡΑΦΗ
\n \n \n {!this.state.period.descriptionEl.valid && \n \n Εισάγετε από 100 εώς 450 λέξεις.\n }\n \n\n \n \n {!this.state.period.descriptionEn.valid && \n \n Εισάγετε από 100 εώς 450 λέξεις.\n }\n \n
\n\n


\n
\n \n { this.state.loading && \n \n }\n
\n {this.state.hasError && (\n this.state.errorCode === 401 ?\n

Συνδεθείτε και προσπαθήστε ξανά!

\n :\n

Κάτι πήγε στραβά, προσπαθήστε ξανά!

\n )}\n
\n
\n \n )\n }\n}\n\nexport default PeriodForm;\n","import React, { Component } from 'react';\nimport Dropzone from 'react-dropzone';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport axios from '../../shared/axios-url';\nimport './ImageUpload.css';\nimport sharedEnv from \"../../shared/sharedEnv\";\n\nclass ImageUpload extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n files: [],\n removed: [],\n receivedProps: false\n };\n }\n\n componentDidUpdate() {\n if (this.props.images.length > 0 && !this.state.receivedProps) {\n this.setState({\n files: [...this.props.images],\n // removed: [],\n receivedProps: true\n });\n }\n else if (this.props.images.length === 0 && this.state.receivedProps) {\n this.setState({\n files: [],\n // removed: [],\n receivedProps: false\n });\n }\n else if (this.props.submitted) {\n this.setState({\n files: [],\n removed: [],\n receivedProps: true\n });\n }\n }\n\n onDrop(droppedFiles) {\n const num = Math.floor(Math.random() * 1000000000) + 1;\n const reader = new FileReader();\n\n reader.readAsDataURL(droppedFiles[0]);\n reader.onload = () => {\n Object.assign(droppedFiles[0], {\n id: 'file-' + num,\n preview: URL.createObjectURL(droppedFiles[0]),\n base64: reader.result\n });\n\n let imageToRemove = [];\n let updatedRemoved = [...this.state.removed];\n if (this.state.files.length > 0 && this.state.files[0].preview.indexOf(sharedEnv.baseURL) > -1) {\n imageToRemove = [this.state.files[0].preview.replace(sharedEnv.baseURL, '')];\n }\n if (imageToRemove.length > 0) {\n updatedRemoved.push(imageToRemove[0]);\n }\n\n this.setState({\n files: droppedFiles,\n removed: updatedRemoved\n }, () => {\n this.props.handleImages(this.state.files, this.state.removed);\n });\n };\n reader.onabort = () => console.log('File reading was aborted');\n reader.onerror = () => console.log('File reading has failed');\n }\n\n onRemove = () => {\n let updatedFiles = [...this.state.files];\n let updatedRemoved = [...this.state.removed];\n\n if (updatedFiles[0].base64 === '') {\n updatedRemoved.push(updatedFiles[0].preview.replace(sharedEnv.baseURL, ''));\n }\n\n this.setState({\n files: [],\n removed: updatedRemoved\n }, () => {\n this.props.handleImages(this.state.files, this.state.removed);\n });\n }\n\n componentWillUnmount() {\n this.state.files.forEach(f => URL.revokeObjectURL(f.preview));\n }\n\n render() {\n return (\n
\n
\n \n {({getRootProps, getInputProps}) => {\n return (\n
\n \n
\n
\n

Σύρετε είκονα εδώ ή πατήστε για να επιλέξετε.

\n
\n )\n }}\n
\n
\n
\n {this.state.files.map((file, index) => (\n
\n
\n this.onRemove()}\n style={{ fontSize: 18, color: '#100a0a' }}/>\n
\n
\n \n
\n
\n ))}\n
\n
\n );\n }\n}\n\nexport default ImageUpload;\n","import React, { Component } from 'react';\n\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport FormControl from '@material-ui/core/FormControl';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport TextField from '@material-ui/core/TextField';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport CloseIcon from '@material-ui/icons/Close';\nimport Button from '@material-ui/core/Button';\nimport Select from '@material-ui/core/Select';\nimport Dialog from '@material-ui/core/Dialog';\nimport Slide from '@material-ui/core/Slide';\nimport Input from '@material-ui/core/Input';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\n\nimport ImageUpload from '../ImageUpload/ImageUpload';\nimport axios from '../../shared/axios-url';\nimport './ItemForm.css';\nimport sharedEnv from \"../../shared/sharedEnv\";\n\nfunction Transition(props) {\n return ;\n}\n\nfunction getCleanState(mythPeriod) {\n return {\n item: {\n titleEl: {\n value: '',\n valid: true,\n touched: false\n },\n titleEn: {\n value: '',\n valid: true,\n touched: false\n },\n descriptionEl: {\n value: '',\n valid: false,\n touched: false\n },\n descriptionEn: {\n value: '',\n valid: false,\n touched: false\n },\n placeEl: {\n value: '',\n valid: true,\n touched: false\n },\n placeEn: {\n value: '',\n valid: true,\n touched: false\n },\n startYear: {\n value: '',\n valid: false,\n touched: false\n },\n startEra: {\n value: 'π.Χ.',\n valid: true,\n touched: false\n },\n endYear: {\n value: '',\n valid: true,\n touched: false\n },\n endEra: {\n value: 'π.Χ.',\n valid: true,\n touched: false\n },\n period: {\n id: mythPeriod ? mythPeriod._id : '',\n value: mythPeriod ? (mythPeriod.title.el + ' (' + mythPeriod.title.en + ')') : '',\n valid: mythPeriod ? true : false,\n touched: false\n },\n category: {\n id: '',\n value: '',\n valid: false,\n touched: false\n },\n imageUrls: {\n value: [],\n valid: true,\n touched: false\n },\n removedImages: {\n value: [],\n valid: true,\n touched: false\n },\n imageTextEl: {\n value: '',\n valid: true,\n touched: false\n },\n imageTextEn: {\n value: '',\n valid: true,\n touched: false\n },\n isMythology: {\n value: true,\n valid: true,\n touched: false\n }\n },\n loading: false,\n formIsValid: false,\n availableCategories: [\n {\n el: 'Γεγονός',\n en: 'Event'\n }, {\n el: 'Έκθεμα',\n en: 'Exhibit'\n }\n ],\n availablePeriods: {},\n categoryColor: 'black',\n periodColor: '166, 166, 166',\n isYearCritical: false,\n submitted: false,\n hasError: false,\n errorCode: 0\n };\n}\n\nclass ItemForm extends Component {\n\n constructor(props) {\n super(props);\n this.state = getCleanState(null);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (!prevProps.isOpen && !this.props.isEdit && prevProps.periods.length === 0 && this.props.periods.length > 0) {\n this.setState(getCleanState(this.props.periods[0]));\n }\n else if (this.props.isEdit && !prevProps.isEdit) {\n axios.instance.get('/items/' + this.props.item)\n .then((item) => {\n let images = [];\n item.data.imageUrls.sort((a, b) => {\n return a.index - b.index;\n });\n\n for (let imageUrl of item.data.imageUrls) {\n const imageInfo = {\n id: 'file-' + imageUrl._id,\n preview: sharedEnv.baseURL + '/' + imageUrl.url,\n base64: ''\n };\n images.push(imageInfo);\n }\n\n let startYear = -1 * item.data.startYear;\n let startEra = 'π.Χ.';\n if (item.data.startYear >= 0) {\n startYear = item.data.startYear;\n startEra = 'μ.Χ.';\n }\n\n let endYear = '';\n let endEra = 'π.Χ.';\n if (item.data.endYear) {\n endYear = -1 * item.data.endYear;\n if (item.data.endYear >= 0) {\n endYear = item.data.endYear;\n endEra = 'μ.Χ.';\n }\n }\n else if (startEra === 'μ.Χ.') {\n endEra = 'μ.Χ.';\n }\n\n this.setState({\n item: {\n titleEl: {\n value: item.data.title.el,\n valid: images.length === 0 ? this.wordCounter(item.data.title.el, 0, 10) : item.data.title.el.length > 0 && this.wordCounter(item.data.title.el, 0, 10),\n touched: false\n },\n titleEn: {\n value: item.data.title.en,\n valid: images.length === 0 ? this.wordCounter(item.data.title.en, 0, 10) : item.data.title.en.length > 0 && this.wordCounter(item.data.title.en, 0, 10),\n touched: false\n },\n descriptionEl: {\n value: item.data.description.el,\n valid: this.wordCounter(item.data.description.el, 5, 200),\n touched: false\n },\n descriptionEn: {\n value: item.data.description.en,\n valid: this.wordCounter(item.data.description.en, 5, 200),\n touched: false\n },\n placeEl: {\n value: item.data.place.el,\n valid: this.wordCounter(item.data.place.el, 0, 10),\n touched: false\n },\n placeEn: {\n value: item.data.place.en,\n valid: this.wordCounter(item.data.place.en, 0, 10),\n touched: false\n },\n startYear: {\n value: startYear,\n valid: true,\n touched: false\n },\n startEra: {\n value: startEra,\n valid: true,\n touched: false\n },\n endYear: {\n value: endYear,\n valid: true,\n touched: false\n },\n endEra: {\n value: endEra,\n valid: true,\n touched: false\n },\n period: {\n id: item.data.period._id,\n value: item.data.period.title.el + ' (' + item.data.period.title.en + ')',\n valid: true,\n touched: false\n },\n category: {\n id: item.data.category,\n value: this.state.availableCategories[item.data.category],\n valid: true,\n touched: false\n },\n imageUrls: {\n value: images,\n valid: true,\n touched: false\n },\n removedImages: {\n value: [],\n valid: true,\n touched: false\n },\n imageTextEl: {\n value: item.data.imageText.el,\n valid: this.wordCounter(item.data.imageText.el, 0, 10),\n touched: false\n },\n imageTextEn: {\n value: item.data.imageText.en,\n valid: this.wordCounter(item.data.imageText.en, 0, 10),\n touched: false\n },\n isMythology: {\n value: item.data.startYear < -6000,\n valid: true,\n touched: false\n }\n }\n }, () => {\n this.checkFormValidity();\n });\n },\n (error) => {\n console.log(error);\n });\n }\n }\n\n getPeriodFromYear(year) {\n for (let period of this.props.periods) {\n if (year >= period.startYear && year <= period.endYear) {\n return period;\n }\n }\n return '';\n }\n\n setAvailablePeriods(criticalYears, year) {\n for (let i = 0; i < criticalYears.length; i++) {\n if (year === criticalYears[i]) {\n return {\n ids: [this.props.periods[i]._id, this.props.periods[i + 1]._id],\n titles: [\n this.props.periods[i].title.el + ' (' + this.props.periods[i].title.en + ')',\n this.props.periods[i + 1].title.el + ' (' + this.props.periods[i + 1].title.en + ')'\n ]\n };\n }\n }\n }\n\n checkFormValidity() {\n let formIsValid = true;\n for (let itemElement in this.state.item) {\n formIsValid = formIsValid && this.state.item[itemElement].valid;\n }\n\n // also get period and category colors\n let newPeriodColor = '166, 166, 166';\n for (let period of this.props.periods) {\n if (this.state.item.period.id === period._id) {\n newPeriodColor = period.color;\n break;\n }\n }\n\n let newCategoryColor = 'black';\n if (this.state.item.category.id === 0) {\n newCategoryColor = '#ff7c44';\n }\n else if (this.state.item.category.id === 1) {\n newCategoryColor = '#00a99c';\n }\n\n this.setState({\n formIsValid: formIsValid,\n categoryColor: newCategoryColor,\n periodColor: newPeriodColor\n });\n }\n\n isFormTouched() {\n let formIsTouched = false;\n for (let itemElement in this.state.item) {\n formIsTouched = formIsTouched || this.state.item[itemElement].touched;\n }\n return formIsTouched;\n }\n\n handleChange = (itemElement) => event => {\n let updatedItem = {...this.state.item};\n updatedItem[itemElement].touched = true;\n\n // check field validity\n if (itemElement.indexOf('isMythology') > -1) {\n updatedItem[itemElement].value = !updatedItem[itemElement].value;\n\n if (updatedItem[itemElement].value) {\n const min = 6001;\n const max = 7001;\n updatedItem.startYear.value = Math.floor(Math.random() * (max - min) ) + min;\n updatedItem.startYear.valid = true;\n\n const startPeriod = this.getPeriodFromYear(-6500);\n updatedItem.period.valid = true;\n updatedItem.period.id = startPeriod._id;\n updatedItem.period.value = startPeriod.title.el + ' (' + startPeriod.title.en + ')';\n }\n else {\n updatedItem.startYear.value = '';\n updatedItem.startYear.valid = false;\n\n updatedItem.period.valid = true;\n updatedItem.period.id = '';\n updatedItem.period.value = '';\n }\n\n updatedItem.startEra.value = 'π.Χ.';\n updatedItem.startEra.valid = true;\n updatedItem.endYear.value = '';\n updatedItem.endYear.valid = true;\n updatedItem.endEra.value = 'π.Χ.';\n updatedItem.endEra.valid = true;\n }\n else if (itemElement.indexOf('title') > -1) {\n updatedItem[itemElement].value = event.target.value;\n updatedItem[itemElement].valid = this.wordCounter(event.target.value, 0, 10);\n\n if (updatedItem.imageUrls.value.length > 0) {\n updatedItem[itemElement].valid = updatedItem[itemElement].valid && updatedItem[itemElement].value.length > 0;\n }\n }\n else if (itemElement.indexOf('Era') > -1) {\n let value = 'π.Χ.';\n if (event.target.id === '2' || event.target.id === '4') {\n value = 'μ.Χ.';\n }\n\n if (itemElement === 'endEra' && updatedItem.startEra.value === 'μ.Χ.') {\n updatedItem.endEra.value = 'μ.Χ.';\n }\n else {\n updatedItem[itemElement].value = value;\n }\n updatedItem[itemElement].valid = true;\n\n if (itemElement === 'startEra' && value === 'μ.Χ.') {\n updatedItem.endEra.value = value;\n updatedItem.endEra.valid = true;\n }\n }\n else if (itemElement.indexOf('description') > -1) {\n updatedItem[itemElement].value = event.target.value;\n updatedItem[itemElement].valid = this.wordCounter(event.target.value, 5, 200);\n }\n else if (itemElement.indexOf('place') > -1) {\n updatedItem[itemElement].value = event.target.value;\n updatedItem[itemElement].valid = this.wordCounter(event.target.value, 0, 10);\n }\n else if (itemElement === 'category') {\n updatedItem[itemElement].id = this.state.availableCategories.indexOf(event.target.value);\n updatedItem[itemElement].value = event.target.value;\n updatedItem[itemElement].valid = updatedItem[itemElement].id > -1;\n\n if (updatedItem.imageUrls.value.length === 0 && this.state.availableCategories.indexOf(event.target.value) === 2) {\n updatedItem.imageUrls.valid = false;\n }\n }\n else if (itemElement.indexOf('Year') > -1) {\n const regex = /^[0-9\\b]+$/;\n if (event.target.value === '' || (regex.test(event.target.value) && event.target.value.length < 5)) {\n updatedItem[itemElement].value = event.target.value;\n }\n }\n else if (itemElement === 'period') {\n updatedItem[itemElement].value = event.target.value;\n const index = this.state.availablePeriods.titles.indexOf(event.target.value);\n updatedItem.period.valid = index !== -1;\n updatedItem.period.id = updatedItem.period.valid ? this.state.availablePeriods.ids[index] : '';\n }\n else if (itemElement.indexOf('imageText') > -1) {\n updatedItem[itemElement].value = event.target.value;\n updatedItem[itemElement].valid = this.wordCounter(event.target.value, 0, 10);\n }\n\n // check years validity\n if (itemElement.indexOf('Year') > -1 || itemElement.indexOf('Era') > -1) {\n let elementYear = 'startYear';\n let elementEra = 'startEra';\n if (itemElement.indexOf('end') > -1) {\n elementYear = 'endYear';\n elementEra = 'endEra';\n }\n\n updatedItem[elementYear].valid = true;\n if (itemElement.indexOf('start') > -1) {\n updatedItem[elementYear].valid = updatedItem[elementYear].value !== '';\n }\n\n if (updatedItem[elementEra].value === 'μ.Χ.') {\n updatedItem[elementYear].valid = updatedItem[elementYear].valid && Number(updatedItem[elementYear].value) <= new Date().getFullYear();\n }\n else {\n updatedItem[elementYear].valid = updatedItem[elementYear].valid && Number(updatedItem[elementYear].value) <= 6000;\n }\n }\n\n // check period validity\n if (itemElement.indexOf('start') > -1) {\n let startYear = updatedItem.startYear.value;\n let startEra = updatedItem.startEra.value;\n\n if (startEra === 'π.Χ.' && startYear !== '') {\n startYear = -1 * startYear;\n }\n\n updatedItem.period.touched = true;\n if (startYear === '' || !updatedItem.startYear.valid) {\n updatedItem.period.id = '';\n updatedItem.period.value = '';\n updatedItem.period.valid = false;\n }\n else {\n startYear = Number(startYear);\n\n // check for critical years\n let criticalYears = [];\n for (let i = 0; i < this.props.periods.length - 1; i++) {\n criticalYears.push(this.props.periods[i].endYear);\n }\n\n let isCritical = false;\n for (let critical of criticalYears) {\n if (startYear === critical) {\n isCritical = true;\n break;\n }\n }\n\n if (isCritical) {\n updatedItem.period.id = '';\n updatedItem.period.value = '';\n updatedItem.period.valid = false;\n\n this.setState({\n isYearCritical: this.state.item.endYear.value === '',\n availablePeriods: this.setAvailablePeriods(criticalYears, startYear)\n }, () => {\n if (this.state.item.endYear.value) {\n let endYear = Number(this.state.item.endYear.value);\n if (this.state.item.endEra.value === 'π.Χ.') {\n endYear = -1 * endYear;\n }\n\n if (startYear === endYear) {\n this.setState({ isYearCritical: true });\n }\n else {\n const endPeriod = this.getPeriodFromYear(endYear);\n updatedItem.period.valid = startYear < endYear && endPeriod !== '' && this.state.availablePeriods.ids[1] === endPeriod._id;\n updatedItem.period.value = updatedItem.period.valid ? endPeriod.title.el + ' (' + endPeriod.title.en + ')' : '';\n updatedItem.period.id = updatedItem.period.valid ? endPeriod._id : '';\n }\n }\n });\n }\n else {\n this.setState({\n isYearCritical: false,\n availablePeriods: {}\n }, () => {\n const startPeriod = this.getPeriodFromYear(startYear);\n updatedItem.period.valid = startPeriod !== '';\n updatedItem.period.id = updatedItem.period.valid ? startPeriod._id : '';\n updatedItem.period.value = updatedItem.period.valid ? startPeriod.title.el + ' (' + startPeriod.title.en + ')' : '';\n\n // check for matching end year period\n if (this.state.item.endYear.value) {\n let endYear = this.state.item.endYear.value;\n if (this.state.item.endEra.value === 'π.Χ.') {\n endYear = -1 * endYear;\n }\n\n const endPeriod = this.getPeriodFromYear(endYear);\n updatedItem.period.valid = endPeriod !== '' && startPeriod === endPeriod && startYear <= endYear;\n updatedItem.period.value = updatedItem.period.valid ? startPeriod.title.el + ' (' + startPeriod.title.en + ')' : '';\n updatedItem.period.id = updatedItem.period.valid ? startPeriod._id : '';\n }\n });\n }\n }\n }\n else if (itemElement.indexOf('end') > -1 && this.state.item.startYear.value !== '') {\n let endYear = updatedItem.endYear.value;\n let endEra = updatedItem.endEra.value;\n let startYear = Number(this.state.item.startYear.value);\n\n if (endEra === 'π.Χ.' && endYear !== '') {\n endYear = -1 * endYear;\n }\n if (this.state.item.startEra.value === 'π.Χ.') {\n startYear = -1 * startYear;\n }\n const startPeriod = this.getPeriodFromYear(startYear);\n\n // check for matching start year period\n if (endYear !== '') {\n endYear = Number(endYear);\n const endPeriod = this.getPeriodFromYear(endYear);\n\n if (this.state.availablePeriods.ids) {\n if (endYear === startYear) {\n this.setState({ isYearCritical: true });\n }\n else {\n this.setState({\n isYearCritical: false\n }, () => {\n updatedItem.period.valid = startYear < endYear && endPeriod !== '' && this.state.availablePeriods.ids[1] === endPeriod._id;\n updatedItem.period.value = updatedItem.period.valid ? endPeriod.title.el + ' (' + endPeriod.title.en + ')' : '';\n updatedItem.period.id = updatedItem.period.valid ? endPeriod._id : '';\n });\n }\n }\n else {\n updatedItem.period.valid = startPeriod !== '' && startPeriod === endPeriod && startYear <= endYear;\n updatedItem.period.value = updatedItem.period.valid ? startPeriod.title.el + ' (' + startPeriod.title.en + ')' : '';\n updatedItem.period.id = updatedItem.period.valid ? startPeriod._id : '';\n }\n }\n else {\n this.setState({\n isYearCritical: this.state.availablePeriods.ids !== undefined\n }, () => {\n if (!this.state.isYearCritical) {\n updatedItem.period.value = startPeriod.title.el + ' (' + startPeriod.title.en + ')';\n updatedItem.period.valid = true;\n }\n });\n }\n }\n\n this.setState({\n item: updatedItem\n }, () => {\n this.checkFormValidity();\n });\n };\n\n handleImagesArray(imagesArray, removed) {\n let updatedItem = {...this.state.item};\n updatedItem.imageUrls.value = imagesArray;\n updatedItem.imageUrls.valid = true;\n updatedItem.imageUrls.touched = true;\n\n if (imagesArray.length === 0 && updatedItem.category.id === 2) {\n updatedItem.imageUrls.valid = false;\n }\n\n updatedItem.removedImages.value = removed;\n updatedItem.removedImages.valid = true;\n updatedItem.removedImages.touched = true;\n\n updatedItem.titleEl.valid = this.wordCounter(updatedItem.titleEl.value, 0, 10);\n updatedItem.titleEn.valid = this.wordCounter(updatedItem.titleEn.value, 0, 10);\n\n if (imagesArray.length > 0) {\n updatedItem.titleEl.valid = updatedItem.titleEl.valid && updatedItem.titleEl.value.length > 0;\n updatedItem.titleEn.valid = updatedItem.titleEn.valid && updatedItem.titleEn.value.length > 0;\n }\n\n this.setState({\n item: updatedItem\n }, () => {\n this.checkFormValidity();\n });\n }\n\n wordCounter(str, min, max) {\n str = str.replace(/(^\\s*)|(\\s*$)/gi, \"\");\n str = str.replace(/[ ]{2,}/gi, \" \");\n str = str.replace(/\\n /, \"\\n\");\n\n const count = str.split(' ').length;\n return count >= min && count <= max;\n }\n\n submitForm = (event) => {\n event.preventDefault();\n this.setState({ loading: true });\n\n let newImage = [];\n if (this.state.item.imageUrls.value.length > 0 && this.state.item.imageUrls.value[0].base64 !== '') {\n newImage.push({\n index: 0,\n id: this.state.item.imageUrls.value[0].id,\n base64: this.state.item.imageUrls.value[0].base64\n });\n }\n\n let startYear = this.state.item.startYear.value;\n let endYear = this.state.item.endYear.value;\n if (this.state.item.startEra.value === 'π.Χ.') {\n startYear = -1 * startYear;\n }\n if (endYear && this.state.item.endEra.value === 'π.Χ.') {\n endYear = -1 * endYear;\n }\n\n const itemData = {\n title: { el: this.state.item.titleEl.value, en: this.state.item.titleEn.value},\n description: { el: this.state.item.descriptionEl.value, en: this.state.item.descriptionEn.value},\n place: { el: this.state.item.placeEl.value, en: this.state.item.placeEn.value},\n startYear: startYear,\n endYear: endYear,\n period: this.state.item.period.id,\n category: this.state.item.category.id,\n imagesBase64Array: newImage,\n imagesToRemove: this.state.item.removedImages.value,\n imageText: { el: this.state.item.imageTextEl.value, en: this.state.item.imageTextEn.value}\n };\n\n let postUrl = '/items';\n if (this.props.isEdit) {\n postUrl = postUrl + '/' + this.props.item;\n }\n\n const config = {\n headers: {\n 'Content-Type': 'application/json',\n 'x-auth': this.props.getToken()\n }\n };\n\n axios.instance.post(postUrl, itemData, config)\n .then((item) => {\n this.setState({\n submitted: true\n }, () => {\n this.handleClose();\n });\n },\n (error) => {\n this.setState({\n hasError: true,\n errorCode: error.response.status\n }, () => {\n setTimeout(() => {\n if (this.state.errorCode === 401) {\n localStorage.clear();\n window.location.reload();\n }\n else {\n this.setState({\n submitted: true\n }, () => {\n this.handleClose();\n });\n }\n }, 3000);\n });\n });\n };\n\n handleClose = () => {\n this.setState(getCleanState(this.props.periods[0]), () => {\n this.props.handleClose();\n });\n };\n\n render() {\n return (\n \n \n
\n \n
\n\n
\n
\n
ΤΙΤΛΟΣ
\n \n \n {!this.state.item.titleEl.valid &&\n \n {(this.state.item.imageUrls.value.length > 0 ? 'Ο τίτλος είναι υποχρεωτικός όταν υπάρχει εικόνα. ' : '') + 'Εισάγετε μέχρι 10 λέξεις.'}\n }\n \n\n \n \n {!this.state.item.titleEn.valid &&\n \n {(this.state.item.imageUrls.value.length > 0 ? 'Ο τίτλος είναι υποχρεωτικός όταν υπάρχει εικόνα. ' : '') + 'Εισάγετε μέχρι 10 λέξεις.'}\n }\n \n
\n\n
\n
ΠΕΡΙΓΡΑΦΗ
\n \n \n {this.state.item.descriptionEl.touched && !this.state.item.descriptionEl.valid &&\n \n Εισάγετε από 5 εώς 200 λέξεις.\n }\n \n\n \n \n {this.state.item.descriptionEn.touched && !this.state.item.descriptionEn.valid &&\n \n Εισάγετε από 5 εώς 200 λέξεις.\n }\n \n
\n\n
\n
ΚΑΤΗΓΟΡΙΑ
\n \n \n }\n style={{ color: this.state.categoryColor, fontSize: '110%' }}\n >\n {this.state.availableCategories.map((category, index) => (\n \n {category.el} ({category.en})\n \n ))}\n \n \n
\n\n
\n
ΤΟΠΟΘΕΣΙΑ
\n \n \n {this.state.item.placeEl.touched && !this.state.item.placeEl.valid &&\n \n Εισάγετε εώς 10 λέξεις.\n }\n \n\n \n \n {this.state.item.placeEn.touched && !this.state.item.placeEn.valid &&\n \n Εισάγετε εώς 10 λέξεις.\n }\n \n
\n\n
\n
ΕΤΗ
\n
\n } label=\"Μυθολογία\"/>
\n\n {!this.state.item.isMythology.value &&
\n \n \n {this.state.item.startYear.touched && !this.state.item.startYear.valid &&\n \n Μη έγκυρο έτος\n }\n \n\n
\n
\n π.Χ.\n
\n
\n μ.Χ.\n
\n
\n
}\n\n {!this.state.item.isMythology.value &&
\n \n \n {this.state.item.endYear.touched && !this.state.item.endYear.valid &&\n \n Μη έγκυρο έτος\n }\n \n\n
\n
\n π.Χ.\n
\n
\n μ.Χ.\n
\n
\n
}\n
\n
\n\n
\n
ΠΕΡΙΟΔΟΣ
\n {this.state.isYearCritical ?\n \n \n }\n >\n {this.state.availablePeriods.titles.map((title, index) => (\n \n {title}\n \n ))}\n \n \n :\n \n \n {this.state.item.period.touched && !this.state.item.period.valid &&\n \n Μη έγκυρη περίοδος\n }\n \n }\n
\n\n
\n
ΕΙΚΟΝΑ
\n
\n \n {!this.state.item.imageUrls.valid &&\n \n Η εικόνα είναι υποχρεωτική για τα εκθέματα.\n \n }\n
\n
\n\n
\n
ΛΕΖΑΝΤΑ
\n \n \n {this.state.item.imageTextEl.touched && !this.state.item.imageTextEl.valid &&\n \n Εισάγετε εώς 10 λέξεις.\n }\n \n\n \n \n {this.state.item.imageTextEn.touched && !this.state.item.imageTextEn.valid &&\n \n Εισάγετε εώς 10 λέξεις.\n }\n \n
\n\n
\n \n Αποθηκευση\n \n { this.state.loading &&\n \n }\n
\n {this.state.hasError && (\n this.state.errorCode === 401 ?\n

Συνδεθείτε και προσπαθήστε ξανά!

\n :\n

Κάτι πήγε στραβά, προσπαθήστε ξανά!

\n )}\n
\n
\n \n )\n }\n}\n\nexport default ItemForm;\n","import React, { Component } from 'react';\n\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport FormControl from '@material-ui/core/FormControl';\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\nimport Paper from '@material-ui/core/Paper';\nimport axios from '../../shared/axios-url';\nimport './LogIn.css';\nimport sharedEnv from \"../../shared/sharedEnv\";\n\nclass LogIn extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n email: {\n value: '',\n valid: false,\n touched: false\n },\n password: {\n value: '',\n valid: false,\n touched: false\n },\n hasError: false,\n isClicked: false\n };\n }\n\n handleChange = (element) => event => {\n let updatedState = {...this.state};\n updatedState[element].touched = true;\n updatedState[element].value = event.target.value;\n updatedState[element].valid = event.target.value.length > 0;\n\n this.setState(updatedState);\n };\n\n logInUser = (event) => {\n event.preventDefault();\n\n let userData = {\n email: this.state.email.value,\n password: this.state.password.value\n };\n\n axios.instance.post('/userLogIn', userData)\n .then((response) => {\n this.setState({\n hasError: false\n }, () => {\n localStorage.clear();\n localStorage.setItem('x-auth', response.headers['x-auth']);\n localStorage.setItem('login-time', new Date());\n this.props.hasAuthed();\n });\n },\n (error) => {\n this.setState({\n hasError: true\n });\n });\n };\n\n resetPassword = () => {\n if (this.state.email.valid && !this.state.isClicked) {\n axios.instance.post('/sendResetMail', {email: this.state.email.value})\n .then((response) => {\n this.setState({\n isClicked: true\n });\n this.props.resetClicked(true);\n },\n (error) => {\n this.props.resetClicked(false);\n });\n }\n };\n\n render() {\n return (\n \n

ΣΥΝΔΕΣΗ ΧΡΗΣΤΗ

\n
\n \n \n {this.state.email.touched && !this.state.email.valid &&\n \n Υποχρεωτικό πεδίο\n }\n \n\n \n \n {this.state.password.touched && !this.state.password.valid &&\n \n Υποχρεωτικό πεδίο\n }\n \n\n


\n
\n \n Συνδεση\n \n
\n {this.state.hasError &&\n

Συμπληρώστε σωστά τα στοιχεία σας.

}\n
\n

\n Επαναφορά κωδικού\n

\n
\n
\n AppVersion: {sharedEnv.appVersion}\n
\n )\n }\n}\n\nexport default LogIn;\n","import React, { Component } from 'react';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\nimport TableFooter from '@material-ui/core/TableFooter';\nimport IconButton from '@material-ui/core/IconButton';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport Button from '@material-ui/core/Button';\nimport Slide from '@material-ui/core/Slide';\nimport Paper from '@material-ui/core/Paper';\nimport Table from '@material-ui/core/Table';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\n\nimport DeleteDialog from './DeleteDialog/DeleteDialog.js';\nimport PeriodForm from './PeriodForm/PeriodForm';\nimport ItemForm from './ItemForm/ItemForm';\nimport LogIn from './LogIn/LogIn';\nimport axios from '../shared/axios-url';\nimport sharedEnv from \"../shared/sharedEnv\";\nimport './Admin.css';\n\nfunction desc(a, b, order, orderBy) {\n if (orderBy === 'startYear') {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n }\n else if (orderBy === 'category') {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n if (b[orderBy] === a[orderBy]) {\n if (order === 'desc') {\n return -desc(a, b, order, 'startYear');\n }\n return desc(a, b, order, 'startYear');\n }\n return 0;\n }\n else {\n if (b[orderBy].el < a[orderBy].el) {\n return -1;\n }\n if (b[orderBy].el > a[orderBy].el) {\n return 1;\n }\n return 0;\n }\n}\n\nfunction stableSort(array, cmp) {\n const stabilizedThis = array.map((el, index) => [el, index]);\n stabilizedThis.sort((a, b) => {\n const order = cmp(a[0], b[0]);\n if (order !== 0) return order;\n return a[1] - b[1];\n });\n return stabilizedThis.map(el => el[0]);\n}\n\nfunction getSorting(order, orderBy) {\n return order === 'desc' ? (a, b) => desc(a, b, order, orderBy) : (a, b) => -desc(a, b, order, orderBy);\n}\n\nclass Admin extends Component {\n\n state = {\n currentTab: 0,\n periods: [],\n data: [],\n availableCategories: [\n 'Γεγονός',\n 'Έκθεμα'\n ],\n headers: [\n { id: 'title', label: 'Τίτλος' },\n { id: 'startYear', label: 'Έτος έναρξης' },\n { id: 'description', label: 'Περιγραφή' },\n { id: 'category', label: 'Κατηγορία' }\n ],\n order: 'asc',\n orderBy: 'startYear',\n page: 0,\n rowsPerPage: 20,\n selectedPeriod: '',\n periodDialogOpen: false,\n selectedItem: '',\n itemDialogOpen: false,\n editItem: false,\n deleteDialogOpen: false,\n snackbarTrueOpen: false,\n snackbarFalseOpen: false\n };\n\n componentDidMount() {\n if (this.isAuthed()) {\n this.userHasAuthed();\n }\n }\n\n getItems() {\n axios.instance.get('/items')\n .then((items) => {\n let data = [];\n for (let item of items.data) {\n for (let imageUrl of item.imageUrls) {\n imageUrl.url = sharedEnv.baseURL + '/' + imageUrl.url;\n }\n item.category = this.state.availableCategories[item.category];\n data.push(item);\n }\n this.setState({ data });\n },\n (error) => {\n console.log(error);\n });\n }\n\n getPeriods() {\n axios.instance.get('/periods')\n .then((periods) => {\n this.setState({ periods: periods.data });\n },\n (error) => {\n console.log(error);\n });\n }\n\n getToken() {\n const loginTime = new Date(localStorage.getItem('login-time')).valueOf();\n\n if (new Date().valueOf() - loginTime >= 10800000) {\n localStorage.clear();\n }\n return localStorage.getItem('x-auth');\n }\n\n isAuthed() {\n return this.getToken() !== null;\n }\n\n userHasAuthed() {\n this.getItems();\n this.getPeriods();\n }\n\n handleTabChange = (event, value) => {\n this.setState({ currentTab: value });\n };\n\n handleRequestSort = (event, orderBy) => {\n let order = 'asc';\n if (this.state.orderBy === orderBy && this.state.order === 'asc') {\n order = 'desc';\n }\n this.setState({ order, orderBy });\n };\n\n handleChangePage = (event, page) => {\n this.setState({ page });\n };\n\n handleChangeRowsPerPage = (event) => {\n this.setState({ rowsPerPage: event.target.value });\n };\n\n getYear(start, end) {\n if (start < -6000) {\n return '';\n }\n\n if (end) {\n if (start < 0 && end >= 0) {\n return (-1 * start) + ' π.Χ. - ' + end + ' μ.Χ.';\n }\n else if (start < 0 && end < 0) {\n return (-1 * start) + ' - ' + (-1 * end) + ' π.Χ.';\n }\n else {\n return start + ' - ' + end + ' μ.Χ.';\n }\n }\n\n if (start < 0) {\n return (-1 * start) + ' π.Χ.';\n }\n else {\n return start + ' μ.Χ.';\n }\n };\n\n getDescription(description) {\n if (description.length > 170) {\n\t\t\tconst limit = description.substr(0, 170).lastIndexOf(' ');\n\t\t\treturn description.substr(0, limit) + ' ...';\n\t\t}\n\t\treturn description;\n }\n\n itemDialogOpen = () => {\n this.setState({ itemDialogOpen: true });\n };\n\n itemDialogEdit = (id) => {\n this.setState({\n selectedItem: id,\n itemDialogOpen: true,\n editItem: true\n });\n };\n\n itemDialogClose = () => {\n this.setState({\n selectedItem: '',\n itemDialogOpen: false,\n editItem: false\n }, () => {\n this.getItems();\n });\n };\n\n periodDialogOpen = (id) => {\n this.setState({\n selectedPeriod: id,\n periodDialogOpen: true\n });\n };\n\n periodDialogClose = () => {\n this.setState({\n selectedPeriod: '',\n periodDialogOpen: false\n }, () => {\n this.getPeriods();\n });\n };\n\n deleteDialogOpen = (id) => {\n this.setState({\n selectedItem: id,\n deleteDialogOpen: true\n });\n };\n\n deleteDialogClose = () => {\n this.setState({\n selectedItem: '',\n deleteDialogOpen: false\n }, () => {\n this.getItems();\n });\n };\n\n resetClicked = (isTrue) => {\n if (isTrue) {\n this.setState({ snackbarTrueOpen: true }, () => {\n setTimeout(() => {\n this.setState({ snackbarTrueOpen: false });\n }, 3000);\n });\n }\n else {\n this.setState({ snackbarFalseOpen: true }, () => {\n setTimeout(() => {\n this.setState({ snackbarFalseOpen: false });\n }, 3000);\n });\n }\n };\n\n TransitionUp(props) {\n return ;\n }\n\n render() {\n const emptyRows = this.state.rowsPerPage - Math.min(this.state.rowsPerPage, this.state.data.length - this.state.page * this.state.rowsPerPage);\n\n return (\n
\n {!this.isAuthed() ?\n \n :\n
\n \n \n \n \n\n \n {this.state.currentTab === 0 &&\n \n \n \n \n {this.state.headers.map(\n header => (\n \n this.handleRequestSort(event, header.id)}\n >\n {header.label}\n \n \n ),\n this,\n )}\n \n \n \n {stableSort(this.state.data, getSorting(this.state.order, this.state.orderBy))\n .slice(this.state.page * this.state.rowsPerPage, this.state.page * this.state.rowsPerPage + this.state.rowsPerPage)\n .map(item => {\n return (\n \n \n this.deleteDialogOpen(item._id)}\n style={{ marginTop: '-3px' }} // marginBottom: '10%',\n >\n \"delete\"\n \n this.itemDialogEdit(item._id)}\n >\n \"delete\"\n \n \n {item.title.el}\n {this.getYear(item.startYear)}\n {this.getDescription(item.description.el)}\n {item.category}\n \n );\n })}\n {emptyRows > 0 && (\n \n \n \n )}\n \n \n \n \n \n \n
}\n\n {this.state.currentTab === 1 &&\n \n \n \n \n Τίτλος\n Έτη\n Περιγραφή\n \n \n \n {this.state.periods.map((period, index) => (\n \n \n this.periodDialogOpen(period._id)}\n >\n \"delete\"\n \n \n {period.title.el}\n {index === 0 ? '' : this.getYear(period.startYear, period.endYear)}\n {this.getDescription(period.description.el)}\n \n ))}\n \n
}\n
\n\n {this.state.currentTab === 0 &&\n
\n \n Προσθηκη νεου\n \n
\n }\n
\n }\n\n {this.isAuthed() && }\n {this.isAuthed() && }\n {this.isAuthed() && }\n\n Μόλις λάβατε email!}\n />\n Κάτι πήγε λάθος, προσπαθήστε ξανά!}\n />\n
\n )\n }\n}\n\nexport default Admin;\n","import React, { Component } from 'react';\n\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport FormControl from '@material-ui/core/FormControl';\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\nimport Paper from '@material-ui/core/Paper';\n\nimport axios from '../../shared/axios-url';\nimport './ResetPassword.css';\nimport sharedEnv from \"../../shared/sharedEnv\";\n\nclass ResetPassword extends Component {\n\n state = {\n email: {\n value: '',\n valid: false,\n touched: false\n },\n password: {\n value: '',\n valid: false,\n touched: false\n },\n confirm: {\n value: '',\n valid: false,\n touched: false\n },\n hasExpired: false,\n hasError: false\n };\n\n componentDidMount() {\n if (this.props.match.params.token) {\n axios.instance.get('/resetToken/' + this.props.match.params.token)\n .then((response) => {\n // console.log(response);\n },\n (error) => {\n this.setState({\n hasExpired: true\n });\n });\n }\n }\n\n handleChange = (element) => event => {\n let updatedState = {...this.state};\n updatedState[element].touched = true;\n updatedState[element].value = event.target.value;\n updatedState[element].valid = event.target.value.length > 0;\n\n if (element === 'password' || element === 'confirm') {\n updatedState.confirm.valid = event.target.value.length > 0\n && updatedState.password.value === updatedState.confirm.value;\n }\n\n this.setState(updatedState);\n };\n\n changePassword = (event) => {\n event.preventDefault();\n\n let userData = {\n email: this.state.email.value,\n password: this.state.password.value\n };\n\n axios.instance.post('/users/' + this.props.match.params.token, userData)\n .then((response) => {\n this.setState({\n hasError: false\n }, () => {\n localStorage.clear();\n this.props.history.replace('/admin');\n });\n },\n (error) => {\n this.setState({\n hasError: true\n });\n });\n };\n\n render() {\n return (\n
\n {this.state.hasExpired &&\n

\n Κάτι πήγε στραβά.
\n Εάν ακόμα επιθυμείτε να αλλάξετε τον κωδικό σας, παρακαλώ ζητήστε νέο email επαναφοράς.\n

\n }\n {!this.state.hasExpired &&\n
\n \n

ΑΛΛΑΓΗ ΚΩΔΙΚΟΥ

\n
\n \n \n {this.state.email.touched && !this.state.email.valid &&\n \n Υποχρεωτικό πεδίο\n }\n \n\n \n \n {this.state.password.touched && !this.state.password.valid &&\n \n Υποχρεωτικό πεδίο\n }\n \n\n \n \n {this.state.confirm.touched && !this.state.confirm.valid &&\n \n Υποχρεωτικό πεδίο, απαιτεί ίδια τιμή με τον κωδικό\n }\n \n\n


\n
\n \n Αλλαγη\n \n
\n {this.state.hasError &&\n

Η αλλαγή δεν μπόρεσε να ολοκληρωθεί.

}\n
\n
\n
\n }\n
\n )\n }\n}\n\nexport default ResetPassword;\n","import React, { Component } from 'react';\nimport FullscreenIcon from '@material-ui/icons/Fullscreen';\n\nimport 'lazysizes';\nimport 'lazysizes/plugins/attrchange/ls.attrchange';\n\nclass LazyImage extends Component {\n\n state = {\n loaded: false\n };\n \n componentDidMount() {\n this.setState({\n loaded: false\n });\n }\n\n imageLoaded = (event) => {\n if (event.target.src.indexOf('spinner.gif') > -1) {\n this.setState({\n loaded: false\n });\n }\n else {\n this.setState({\n loaded: true\n });\n }\n };\n\n render() {\n let placeholder = process.env.PUBLIC_URL + '/images/spinner.gif';\n let image = {\n \turl: placeholder\n };\n\n if (this.props.image) {\n image = {\n url: this.props.image\n };\n }\n\n let Img = () => (\n this.imageLoaded(event)}\n onClick={() => this.props.onFull()}\n />\n );\n\n return (\n \n {this.state.loaded && \n
\n this.props.onFull()}\n />\n
\n }\n {Img()}\n
\n );\n }\n}\n\nexport default LazyImage;\n","import React from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport Slide from '@material-ui/core/Slide';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport './ImageFull.css';\n\nfunction TransitionDown(props) {\n\treturn ;\n}\n\nconst imageFull = (props) => {\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
props.handleClose()}>\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\"item-img\"\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default imageFull;\n","import React, { Component } from 'react';\nimport SimpleBar from 'simplebar-react';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\n\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Dialog from '@material-ui/core/Dialog';\nimport Slide from '@material-ui/core/Slide';\n\nimport {\n FacebookShareButton,\n TwitterShareButton,\n} from 'react-share';\n\nimport LazyImage from './LazyImage/LazyImage';\nimport ImageFull from './ImageFull/ImageFull';\nimport './ItemDialog.css';\n\nimport axios from '../../shared/axios-url';\nimport sharedEnv from \"../../shared/sharedEnv\";\n\nclass ItemDialog extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n isImageOpen: false\n };\n }\n\n TransitionDown(props) {\n return ;\n }\n\n displayYear(start, end, lang) {\n let symbolA = ' π.Χ.';\n let symbolB = ' μ.Χ.';\n if (lang === 'en') {\n symbolA = ' B.C.';\n symbolB = ' A.D.';\n }\n\n if (end) {\n if (start < 0 && end >= 0) {\n return (-1 * start) + symbolA + '-' + end + symbolB;\n }\n else if (start < 0 && end < 0) {\n return (-1 * start) + '-' + (-1 * end) + symbolA;\n }\n return start + '-' + end + symbolB;\n }\n\n if (start < 0) {\n return (-1 * start) + symbolA;\n }\n return start + symbolB;\n }\n\n getColor(period) {\n if (period) {\n return 'rgba(' + period.color + ', 1)';\n }\n return '';\n }\n\n getTitle(period, lang) {\n if (period) {\n return period.title[lang];\n }\n return '';\n }\n\n handleImageOpen = () => {\n this.setState({\n isImageOpen: true\n });\n };\n\n handleImageClose = () => {\n this.setState({\n isImageOpen: false\n });\n };\n\n render() {\n const url = sharedEnv.frontURL + '/' + this.props.lang + '/' +\n this.props.windowStart + '/' + this.props.windowEnd + '/' + this.props.item._id;\n\n return (\n 0 ? 'dialog-paper' : 'dialog-paper-no-img')}}\n open={this.props.isOpen}\n onClose={this.props.handleClose}\n TransitionComponent={this.TransitionDown}\n keepMounted\n aria-labelledby=\"dialog\"\n aria-describedby=\"dialog\"\n >\n
\n {this.props.hasPrev &&
}\n
\n
\n
\n \"close\"\n
\n\n
\n
\n
0 ? \" panel-with-image\" : \" panel-no-image\")}>\n
\n
{this.props.item._id !== -1 && this.props.item.imageText[this.props.lang]}
\n
{this.props.item._id !== -1 && this.props.item.title[this.props.lang]}
\n
\n
\n
0 ? \"dialog-desc\" : (\n this.props.item._id !== -1 && this.props.item.title[this.props.lang].length > 0 ? \"dialog-desc-no-image\" : \"dialog-desc-no-image-no-title\"\n )}>\n
{this.props.item._id !== -1 && this.props.item.place[this.props.lang]}
\n {this.props.item._id !== -1 ?\n \n {this.props.item.description[this.props.lang]}\n \n :\n
\n }\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n SHARE ON SOCIAL\n
\n
0 ? \"\" : \" social-networks-no-image\")}>\n
\n \n \"twitter\"\n \n
\n
\n \n \"facebook\"\n \n
\n \n \n
\n \"copy\n
\n
\n
\n
\n
\n
\n\n
\n
{this.getTitle(this.props.item.period, this.props.lang)}
\n
\n {this.displayYear(this.props.item.startYear, this.props.item.endYear, this.props.lang)}\n
\n
\n
\n
\n
\n
\n {this.props.hasNext &&
}\n
\n\n {this.props.item.imageUrls && this.props.item.imageUrls.length > 0 &&\n \n }\n\n {this.props.item.imageUrls && this.props.item.imageUrls.length > 0 &&\n \n }\n \n );\n }\n}\n\nexport default ItemDialog;\n","import Siema from 'siema';\n\nclass Carousel extends Siema {\n\n addDots() {\n this.dots = document.createElement('div');\n this.dots.classList.add('dots');\n\n for (let i = 0; i < this.innerElements.length; i++) {\n const dot = document.createElement('span');\n dot.classList.add('dot');\n dot.addEventListener('click', () => {\n this.goTo(i);\n })\n this.dots.appendChild(dot);\n }\n this.selector.parentNode.insertBefore(this.dots, this.selector.nextSibling);\n }\n\n updateDots() {\n for (let i = 0; i < this.dots.querySelectorAll('span').length; i++) {\n const addOrRemove = this.currentSlide === i ? 'add' : 'remove';\n this.dots.querySelectorAll('span')[i].classList[addOrRemove]('dot-active');\n }\n }\n} \n\nexport default Carousel;\n","import React, { Component } from 'react';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport ScreenRotationIcon from '@material-ui/icons/ScreenRotation';\nimport ZoomOutIcon from '@material-ui/icons/ZoomOut';\nimport ZoomInIcon from '@material-ui/icons/ZoomIn';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport Slide from '@material-ui/core/Slide';\nimport SimpleBar from 'simplebar-react';\nimport vis from 'vis';\nimport 'lazysizes';\n\nimport ItemDialog from './ItemDialog/ItemDialog';\nimport Carousel from './Carousel/Carousel';\nimport axios from '../shared/axios-url';\n\nimport 'simplebar/dist/simplebar.min.css';\nimport './Timeline.css';\nimport sharedEnv from \"../shared/sharedEnv\";\n\nclass Timeline extends Component {\n\n timeline;\n state = {\n periods: [],\n itemData: {},\n itemObjects: [],\n activeItem: {\n _id: -1\n },\n activeFilters: {\n range: {\n start: '',\n startBC: true,\n end: '',\n endBC: true\n },\n categories: {\n political: false,\n building: false,\n exhibits: false\n },\n keywords: ''\n },\n validFilters: true,\n activeItemIndex: -1,\n hasNext: true,\n hasPrev: true,\n activePeriods: [],\n activePeriodFocused: false,\n categoryColors: ['#ff7c44', '#00a99c'],\n dialogOpen: false,\n sidebarOpen: false,\n snackbarOpen: false,\n filtersOpen: false,\n currentLang: 'el',\n loadScreen: true,\n viewOk: true\n };\n\n // check screen dimensions & if url has params\n setView = () => {\n let newLang = 'el';\n if (this.props.match.params.lang === 'en') {\n newLang = this.props.match.params.lang;\n }\n\n this.setState({\n viewOk: window.innerWidth > window.innerHeight,\n currentLang: newLang,\n dialogOpen: false\n }, () => {\n if (this.props.match.params.start && this.props.match.params.end) {\n const startYear = Number(this.props.match.params.start);\n const endYear = Number(this.props.match.params.end);\n\n if (startYear && startYear >= -7000 && startYear < new Date().getFullYear() &&\n endYear && endYear > -7000 && endYear <= new Date().getFullYear()) {\n\n this.timeline.setWindow((new Date(startYear, 0, 1)).setFullYear(startYear), (new Date(endYear, 0, 1)).setFullYear(endYear));\n\n if (this.props.match.params.id && this.state.viewOk) {\n const itemId = this.props.match.params.id;\n setTimeout(() => {\n this.getDialogItem(itemId);\n }, 1000);\n }\n }\n else {\n this.timeline.setWindow(new Date(-7000, 0, 1), new Date(new Date().getFullYear(), 11, 31));\n }\n }\n else {\n this.timeline.setWindow(new Date(-7000, 0, 1), new Date(new Date().getFullYear(), 11, 31));\n }\n });\n };\n\n // call setView, init Timeline, get periods and items\n componentDidMount() {\n var container = document.getElementById('timeline');\n var options = {\n stack: false,\n min: new Date(-7000, 0, 1),\n max: new Date(new Date().getFullYear(), 11, 31),\n zoomMin: 88128000000,\n format: {\n minorLabels: (date) => {\n if (date.month() > 0) {\n return ' ';\n }\n if (this.state.currentLang === 'en') {\n return date.year() === 0 ? date.year() : (date.year() < 0 ? (-1 * date.year()) + ' B.C.' : date.year() + ' A.D.');\n }\n return date.year() === 0 ? date.year() : (date.year() < 0 ? (-1 * date.year()) + ' π.Χ.' : date.year() + ' μ.Χ.');\n },\n majorLabels: () => {\n return ' ';\n }\n }\n };\n\n axios.instance.get('/periods')\n .then((periods) => {\n\n axios.instance.get('/items')\n .then((items) => {\n let transformed = this.transformItems(items);\n\n this.setState({\n periods: periods.data,\n activePeriods: [...Array(periods.data.length).keys()],\n itemData: transformed.finalData,\n itemObjects: transformed.items.data\n }, () => {\n this.timeline = new vis.Timeline(container, [], options);\n this.setView();\n\n setTimeout(() => {\n this.setState({\n loadScreen: false,\n currentLang: this.props.match.params.lang\n }, () => {\n window.addEventListener('resize', (e) => this.setView());\n });\n }, 1000);\n\n // custom zoom step\n this.timeline.on('rangechange', (properties) => {\n if (properties.event) {\n let zoomStep = 2.5;\n const currentStep = this.timeline.timeAxis.step.step;\n if (currentStep === 1 || currentStep === 3) {\n zoomStep = 15;\n }\n\n if (properties.event.wheelDelta) {\n if (properties.event.wheelDelta > 0) {\n this.zoomIn(zoomStep);\n }\n else {\n this.zoomOut(zoomStep);\n }\n }\n else {\n if (properties.event.detail < 0) {\n this.zoomIn(zoomStep);\n }\n else {\n this.zoomOut(zoomStep);\n }\n }\n }\n this.setState({ activePeriodFocused: false });\n });\n\n this.timeline.on('rangechanged', () => {\n this.onRangeChanged();\n });\n\n // open item's dialog or expand cluster\n this.timeline.on('click', (properties) => {\n if (this.state.filtersOpen) {\n this.setState({\n filtersOpen: false\n }, () => {\n this.closeFilters();\n });\n }\n else if (this.state.sidebarOpen) {\n this.closeSidebar();\n }\n\n if (properties.what === 'item') {\n const itemClicked = this.timeline.itemsData.get(properties.item);\n\n if (properties.event.srcElement.className.indexOf('cluster') !== -1) {\n const visibleWindow = this.timeline.getWindow();\n const interval = (visibleWindow.end - visibleWindow.start) / 8;\n this.timeline.setWindow(itemClicked.start.valueOf() - interval, itemClicked.start.valueOf() + interval);\n }\n else if (properties.event.srcElement.className.indexOf('single') !== -1) {\n this.getDialogItem(itemClicked.id);\n }\n else if (properties.event.srcElement.className.indexOf('multiple') !== -1) {\n if (properties.event.srcElement.className.indexOf('multiple-slide') !== -1) {\n this.getDialogItem(properties.event.srcElement.id);\n }\n else if (properties.event.srcElement.className.indexOf('no-image') !== -1) {\n this.getDialogItem(properties.event.path[1].id);\n }\n else if (properties.event.srcElement.className.indexOf('card') !== -1) {\n this.getDialogItem(properties.event.srcElement.parentNode.parentNode.id);\n }\n }\n }\n this.setState({ activePeriodFocused: false });\n });\n });\n },\n (error) => {\n console.log(error);\n });\n },\n (error) => {\n console.log(error);\n });\n }\n\n // show clusters or items\n onRangeChanged() {\n const totalHeight = document.getElementsByClassName('vis-itemset')[0].offsetHeight;\n const visibleWindow = this.timeline.getWindow();\n this.focusPeriods(visibleWindow);\n\n // show single and multiple items\n if (this.timeline.timeAxis.step.scale === 'month') {\n this.timeline.setItems(new vis.DataSet(this.state.itemData[this.state.currentLang]));\n\n // init carousels\n const multi = document.querySelectorAll('.multiple-item');\n for (let i = 0; i < multi.length; i++) {\n if (multi[i].children.length > 0) {\n const carousel = new Carousel({\n selector: multi[i].children[0].children[3],\n loop: true,\n onInit: function() {\n this.addDots();\n this.updateDots();\n },\n onChange: function() {\n this.updateDots()\n }\n });\n\n multi[i].querySelector('.multiple-prev').addEventListener('click', () => carousel.prev());\n multi[i].querySelector('.multiple-next').addEventListener('click', () => carousel.next());\n }\n }\n }\n // create four clusters\n else {\n // split timeline view field in 4 equal parts ang get their limits\n var interval = visibleWindow.end - visibleWindow.start;\n var quarter = interval / 4;\n var limits = [visibleWindow.start.valueOf()];\n var middles = [];\n\n for (let i = 1; i <= 4; i++) {\n limits.push(visibleWindow.start.valueOf() + (i * quarter));\n }\n for (let i = 0; i < 4; i++) {\n middles.push((limits[i] + limits[i + 1]) / 2);\n }\n\n var newDataArray = [];\n for (let i = 0; i < 4; i++) {\n // get each cluster's items\n let clusterData = [];\n for (let item of this.state.itemObjects) {\n if (item.startYear >= new Date(limits[i]).getFullYear() && item.startYear < new Date(limits[i + 1]).getFullYear()) {\n clusterData.push(item);\n }\n }\n\n if (clusterData.length > 0) {\n const margin = Math.floor(Math.random() * (totalHeight / 5));\n const clusterStyle = 'margin-top: ' + margin + 'px !important;'\n const lineHeight = totalHeight - margin;\n\n let textClasses = 'card-texts-no-image';\n if (clusterData[0].imageUrls && clusterData[0].imageUrls.length > 0) {\n textClasses = 'card-texts';\n }\n\n let cardId = clusterData[0]._id;\n let cardClass = 'single';\n if (clusterData.length > 1) {\n cardId = i;\n cardClass = 'cluster';\n }\n\n const moreTexts = {\n el: 'ΠΕΡΙΣΣΟΤΕΡΑ',\n en: 'SHOW MORE'\n };\n\n newDataArray.push({\n id: cardId,\n start: new Date(middles[i]),\n className: cardClass + '-item',\n style: clusterStyle,\n content: `\n
\n
` +\n (cardClass === 'cluster' ? `
` : '') +\n `
` + (\n clusterData[0].imageUrls && clusterData[0].imageUrls.length > 0 ?\n `
\n \"card\"\n
` : '') +\n `
\n

` + clusterData[0].title[this.state.currentLang] + `

\n
\n
\n
\n
\n

` + clusterData[0].description[this.state.currentLang].split('\\n')[0] + `

\n
` + (cardClass === 'single' ? `\n
\n
` + moreTexts[this.state.currentLang] + `
\n
` : ``) + `\n
\n `\n });\n }\n }\n\n if (visibleWindow.start.getFullYear() === -7000 && visibleWindow.end.getFullYear() === new Date().getFullYear()) {\n newDataArray = [];\n }\n this.timeline.setItems(new vis.DataSet(newDataArray));\n }\n }\n\n // create html items for cards or multiple items\n transformItems(items) {\n items.data.sort(function(a, b) {\n return a.startYear - b.startYear;\n });\n\n let dataByYear = [];\n items.data.forEach(item => {\n for (let imageUrl of item.imageUrls) {\n imageUrl.url = sharedEnv.baseURL + '/' + imageUrl.url;\n }\n\n // match each year with its item(s)\n let found = dataByYear.find(data => {\n if (data && data.startYear === item.startYear) {\n data.items.push(item);\n return true;\n }\n return false;\n });\n\n if (!found) {\n dataByYear.push({\n startYear: item.startYear,\n items: [item]\n })\n }\n });\n\n let finalData = {\n el: [],\n en: []\n };\n const langs = ['el', 'en'];\n\n for (let data of dataByYear) {\n const margin = Math.floor(Math.random() * 100);\n const cardStyle = 'margin-top: ' + margin + 'px !important;'\n const moreTexts = {\n el: 'ΠΕΡΙΣΣΟΤΕΡΑ',\n en: 'SHOW MORE'\n };\n\n // single item\n if (data.items.length === 1) {\n let textClasses = 'card-texts-no-image';\n if (data.items[0].imageUrls && data.items[0].imageUrls.length > 0) {\n textClasses = 'card-texts';\n }\n\n for (let lang of langs) {\n finalData[lang].push({\n id: data.items[0]._id,\n start: (new Date(data.items[0].startYear, 6, 1)).setFullYear(data.items[0].startYear),\n className: 'single-item',\n style: cardStyle,\n content: `\n
\n
\n
` + (\n data.items[0].imageUrls && data.items[0].imageUrls.length > 0 ?\n `
\n \"card\"\n
` : '') +\n `
\n

` + data.items[0].title[lang] + `

\n
\n
\n
\n
\n

` + data.items[0].description[lang].split('\\n')[0] + `

\n
\n
\n
` + moreTexts[lang] + `
\n
\n
\n `\n });\n }\n }\n // multiple items on the same year\n else {\n for (let lang of langs) {\n let slides = '';\n for (let item of data.items) {\n slides += `
`;\n if (item.imageUrls && item.imageUrls.length > 0) {\n slides += `
`;\n slides += `\"card\"`;\n slides += `
`;\n slides += `
`;\n }\n else {\n slides += `
`;\n }\n slides += `

` + item.title[lang] + `

`;\n slides += `
`;\n slides += `
`;\n slides += `
`;\n slides += `
`;\n slides += `

` + item.description[lang].split('\\n')[0] + `

`;\n slides += `
`;\n slides += `
`;\n slides += `
` + moreTexts[lang] + `
`;\n slides += `
`;\n slides += `
`;\n }\n\n finalData[lang].push({\n id: 'multiple' + data.startYear,\n start: (new Date(data.startYear, 6, 1)).setFullYear(data.startYear),\n className: 'multiple-item',\n style: cardStyle,\n content: `\n
\n
\n
\n
`\n + slides +\n `
\n
\n \n \n
\n `\n });\n }\n }\n }\n\n return {finalData, items};\n }\n\n // animate opening side menu\n openSidebar = () => {\n this.setState({\n sidebarOpen: true\n }, () => {\n document.getElementById('side-menu').style.width = '6%';\n document.getElementById('side-menu').style.height = '54%';\n document.getElementById('side-menu-container').style.display = 'none';\n document.getElementById('side-menu-table').style.display = 'block';\n });\n }\n\n // animate closing side menu\n closeSidebar = () => {\n if (this.state.filtersOpen) {\n this.setState({\n filtersOpen: false\n }, () => {\n this.closeFilters();\n });\n }\n\n this.setState({\n sidebarOpen: false\n }, () => {\n document.getElementById('side-menu').style.width = '3%';\n document.getElementById('side-menu').style.height = '15%';\n document.getElementById('side-menu-container').style.display = 'block';\n document.getElementById('side-menu-table').style.display = 'none';\n });\n }\n\n toggleFilters = () => {\n this.setState({\n filtersOpen: !this.state.filtersOpen\n }, () => {\n if (this.state.filtersOpen) {\n this.openFilters();\n }\n else {\n this.closeFilters();\n }\n });\n };\n\n openFilters() {\n document.getElementById('filters').style.display = 'block';\n this.focusFilteredPeriods();\n };\n\n closeFilters() {\n document.getElementById('filters').style.display = 'none';\n };\n\n categoryFilterClicked = (value) => {\n let updatedFilters = {...this.state.activeFilters};\n updatedFilters.categories[value] = !this.state.activeFilters.categories[value];\n\n this.setState({\n activeFilters: updatedFilters\n });\n };\n\n handleFilterChange = (element) => event => {\n const regex = /^[0-9\\b]+$/;\n let updatedFilters = {...this.state.activeFilters};\n\n if (element === 'keywords') {\n updatedFilters.keywords = event.target.value;\n }\n else {\n if (event.target.value === '' || regex.test(event.target.value)) {\n updatedFilters.range[element] = event.target.value;\n }\n }\n\n this.setState({\n activeFilters: updatedFilters\n }, () => {\n if (element !== 'keywords') {\n this.focusFilteredPeriods();\n }\n });\n };\n\n timeFilterIsBc(value, isTrue) {\n let updatedFilters = {...this.state.activeFilters};\n updatedFilters.range[value] = isTrue;\n\n if (value === 'startBC' && isTrue === false) {\n updatedFilters.range.endBC = false;\n }\n if (value === 'endBC' && this.state.activeFilters.range.startBC === false) {\n updatedFilters.range.endBC = false;\n }\n\n this.setState({\n activeFilters: updatedFilters\n }, () => {\n this.focusFilteredPeriods();\n });\n }\n\n // color line based on filter time input\n focusFilteredPeriods() {\n let filterStart = this.state.activeFilters.range.start;\n let filterEnd = this.state.activeFilters.range.end;\n\n if (filterStart === '') {\n filterStart = -7000;\n }\n else if (this.state.activeFilters.range.startBC) {\n filterStart = -1 * filterStart;\n }\n else {\n filterStart = Number(filterStart);\n }\n\n if (filterEnd === '') {\n filterEnd = new Date().getFullYear();\n }\n else if (this.state.activeFilters.range.endBC) {\n filterEnd = -1 * filterEnd;\n }\n else {\n filterEnd = Number(filterEnd);\n }\n\n let focused = [];\n for (let i = 0; i < 13; i++) {\n focused.push(false);\n }\n\n if (filterStart <= filterEnd) {\n if (filterStart < -6000) {\n filterStart = -6000;\n }\n\n for (let i = 0; i < 13; i++) {\n const start = this.state.periods[i].startYear;\n const end = this.state.periods[i].endYear;\n\n if (i === 0) {\n if ((filterStart >= start && filterStart < end) || (filterEnd > start && filterEnd <= end)) {\n focused[i] = true;\n }\n }\n else {\n if ((filterStart < end && end <= filterEnd) || (filterStart <= start && start < filterEnd) || (start <= filterStart && filterEnd <= end)) {\n focused[i] = true;\n }\n }\n }\n }\n\n let colors = '';\n let focusedIndeces = [];\n for (let i = 0; i < 13; i++) {\n if (focused[i]) {\n focusedIndeces.push(i);\n colors += 'rgb(' + this.state.periods[i].color + ') ' + 7.69 * i + '%, ';\n colors += 'rgb(' + this.state.periods[i].color + ') ' + 7.69 * (i + 1) + '%';\n }\n else {\n colors += '#595959 ' + 7.69 * i + '%, ';\n colors += '#595959 ' + 7.69 * (i + 1) + '%';\n }\n\n if (i < 12) {\n colors += ', ';\n }\n }\n\n if (focusedIndeces.length > 0) {\n this.setState({ validFilters: true });\n document.getElementById('left-handle').style.display = 'block';\n document.getElementById('right-handle').style.display = 'block';\n document.getElementById('left-handle').style.left = 7.69 * focusedIndeces[0] + '%';\n document.getElementById('right-handle').style.left = 7.69 * (focusedIndeces[focusedIndeces.length - 1] + 1) + '%';\n }\n else {\n this.setState({ validFilters: false });\n document.getElementById('left-handle').style.display = 'none';\n document.getElementById('right-handle').style.display = 'none';\n }\n document.getElementById('colored-line').style.background = 'linear-gradient(to right, ' + colors + ')';\n document.getElementById('colored-line').style.background = '-o-linear-gradient(left, ' + colors + ')';\n document.getElementById('colored-line').style.background = '-ms-linear-gradient(left, ' + colors + ')';\n document.getElementById('colored-line').style.background = '-moz-linear-gradient(left, ' + colors + ')';\n document.getElementById('colored-line').style.background = '-webkit-linear-gradient(left, ' + colors + ')';\n }\n\n applyFilters() {\n let categories = [];\n if (this.state.activeFilters.categories.political) {\n categories.push(0);\n }\n if (this.state.activeFilters.categories.building) {\n categories.push(1);\n }\n if (this.state.activeFilters.categories.exhibits) {\n categories.push(2);\n }\n\n let stateRange = {...this.state.activeFilters.range};\n let range = {\n start: -6000,\n end: new Date().getFullYear()\n }\n if (stateRange.start !== '') {\n range.start = Number(stateRange.start);\n if (stateRange.startBC) {\n range.start = -1 * range.start;\n }\n }\n if (stateRange.end !== '') {\n range.end = Number(stateRange.end);\n if (stateRange.endBC) {\n range.end = -1 * range.end;\n }\n }\n\n axios.instance.post('/filteredItems', {\n categories: categories,\n range: range,\n keywords: this.state.activeFilters.keywords\n })\n .then((items) => {\n let transformed = this.transformItems(items);\n this.setState({\n itemData: transformed.finalData,\n itemObjects: transformed.items.data\n }, () => {\n if (range.start === -6000 && range.end === new Date().getFullYear() && this.state.itemObjects.length > 0) {\n range.start = this.state.itemObjects[0].startYear - 25;\n range.end = this.state.itemObjects[this.state.itemObjects.length - 1].startYear + 25;\n }\n const start = (new Date(range.start, 0, 1)).setFullYear(range.start);\n const end = (new Date(range.end + 1, 0, 1)).setFullYear(range.end);\n this.timeline.setWindow(start, end);\n this.onRangeChanged();\n });\n },\n (error) => {\n console.log(error);\n });\n }\n\n clearFilters() {\n axios.instance.get('/items')\n .then((items) => {\n let transformed = this.transformItems(items);\n this.setState({\n itemData: transformed.finalData,\n itemObjects: transformed.items.data,\n activeFilters: {\n range: {\n start: '',\n startBC: true,\n end: '',\n endBC: true\n },\n categories: {\n political: false,\n building: false,\n exhibits: false\n },\n keywords: ''\n },\n validFilters: true\n }, () => {\n const start = new Date(-7000, 0, 1);\n const end = new Date(new Date().getFullYear(), 11, 31);\n this.timeline.setWindow(start, end);\n this.focusFilteredPeriods();\n });\n },\n (error) => {\n console.log(error);\n });\n }\n\n move(direction) {\n var range = this.timeline.getWindow();\n var interval = range.end - range.start;\n this.timeline.setWindow(range.start.valueOf() - interval * direction, range.end.valueOf() - interval * direction);\n }\n\n zoomIn(percentage) {\n var range = this.timeline.getWindow();\n var start = range.start.valueOf();\n var end = range.end.valueOf();\n var interval = end - start;\n var newInterval = interval / (1 + percentage);\n var distance = (interval - newInterval) / 2;\n var newStart = start + distance;\n var newEnd = end - distance;\n\n this.timeline.setWindow(newStart, newEnd);\n }\n\n zoomOut(percentage) {\n var range = this.timeline.getWindow();\n var start = range.start.valueOf();\n var end = range.end.valueOf();\n var interval = end - start;\n var newStart = start - interval * percentage / 2;\n var newEnd = end + interval * percentage / 2;\n\n this.timeline.setWindow(newStart, newEnd);\n }\n\n menuClick = (num) => () => {\n let zoomStep = 2.5;\n const currentStep = this.timeline.timeAxis.step.step;\n if (currentStep === 1 || currentStep === 3) {\n zoomStep = 15;\n }\n\n if (num === 1) { // zoom in\n this.zoomIn(zoomStep);\n }\n else if (num === 2) { // zoom out\n this.zoomOut(zoomStep);\n }\n else if (num === 3) { // left\n this.move(1);\n }\n else if (num === 4) { // right\n this.move(-1);\n }\n };\n\n periodClick = (num) => () => {\n if (!(this.state.activePeriods.indexOf(num) > -1 && this.state.activePeriods.length === 1)) {\n this.setState({ activePeriodFocused: false });\n }\n\n for (let i = 0; i < 13; i++) {\n if (num === i) {\n const start = (new Date(this.state.periods[i].startYear, 0, 1)).setFullYear(this.state.periods[i].startYear);\n const end = (new Date(this.state.periods[i].endYear, 0, 1)).setFullYear(this.state.periods[i].endYear);\n this.timeline.setWindow(start, end);\n this.undoFocusPeriod([i]);\n break;\n }\n }\n };\n\n focusPeriods(visibleWindow) {\n const visibleStart = visibleWindow.start.getFullYear();\n const visibleEnd = visibleWindow.end.getFullYear();\n let focused = [];\n\n // apply color on focused periods\n if (this.state.periods.length > 0) {\n for (let i = 0; i < 13; i++) {\n const start = this.state.periods[i].startYear;\n const end = this.state.periods[i].endYear;\n\n if (i === 0) {\n if ((visibleStart >= start && visibleStart < end) || (visibleEnd > start && visibleEnd <= end)) {\n focused.push(i);\n }\n }\n else {\n if ((visibleStart < end && end <= visibleEnd) || (visibleStart <= start && start < visibleEnd) || (start <= visibleStart && visibleEnd <= end)) {\n focused.push(i);\n }\n }\n }\n }\n\n for (let i of focused) {\n document.getElementById('period' + i).style.backgroundColor = this.createColor(this.state.periods[i].color, 1);\n }\n this.undoFocusPeriod(focused);\n\n let newHistory = '/' + this.state.currentLang + '/' + visibleStart + '/' + visibleEnd;\n if (this.state.activeItem._id !== -1) {\n newHistory += '/' + this.state.activeItem._id;\n }\n this.props.history.replace(newHistory);\n }\n\n undoFocusPeriod(focused) {\n // focused: array of focused period(s)\n let maxWidth = 7.69;\n let minWidth = 0;\n if (focused.length < 13) {\n maxWidth = 75 / focused.length;\n minWidth = 25 / (13 - focused.length);\n }\n\n for (let i = 0; i < 13; i++) {\n if (focused.indexOf(i) === -1) {\n document.getElementById('period' + i).style.backgroundColor = this.createColor(this.state.periods[i].color, 1);\n document.getElementById('period' + i).style.width = minWidth + '%';\n }\n else {\n document.getElementById('period' + i).style.width = maxWidth + '%';\n document.getElementById('period' + i).style.transform = 'scale(1)';\n document.getElementById('period' + i).style.height = '100%';\n document.getElementById('period' + i).style.marginTop = '0px';\n }\n }\n this.setState({ activePeriods: focused });\n }\n\n focusPeriod = () => {\n this.setState({ activePeriodFocused: !this.state.activePeriodFocused });\n };\n\n onMouseEnter = (index, color) => {\n if (this.state.activePeriods.indexOf(index) > -1 && this.state.activePeriods.length === 1) {\n document.getElementById('period' + index).style.transform = 'scale(1)';\n document.getElementById('period' + index).style.height = '100%';\n document.getElementById('period' + index).style.marginTop = '0';\n }\n else if (this.state.activePeriods.indexOf(index) > -1 && this.state.activePeriods.length < 3) {\n document.getElementById('period' + index).style.transform = 'scale(1.05)';\n document.getElementById('period' + index).style.height = '112%';\n document.getElementById('period' + index).style.marginTop = '-18px';\n }\n else {\n document.getElementById('period' + index).style.backgroundColor = this.createColor(color, 1);\n document.getElementById('period' + index).style.transform = 'scale(1.2)';\n document.getElementById('period' + index).style.marginTop = '-12px';\n }\n };\n\n onMouseLeave = (index, color) => {\n if (this.state.activePeriods.indexOf(index) < 0) {\n document.getElementById('period' + index).style.backgroundColor = this.createColor(color, 1);\n }\n document.getElementById('period' + index).style.transform = 'scale(1)';\n document.getElementById('period' + index).style.height = '100%';\n document.getElementById('period' + index).style.marginTop = '0px';\n };\n\n createColor(color, opacity) {\n return 'rgba(' + color + ',' + opacity + ')';\n }\n\n getPeriodYears(year) {\n if (year < 0) {\n return (-1 * year);\n }\n if (year > 0) {\n return year;\n }\n }\n\n getPeriodSymbols(year) {\n let symbolA = ' π.Χ.';\n let symbolB = ' μ.Χ.';\n if (this.state.currentLang === 'en') {\n symbolA = ' B.C.';\n symbolB = ' A.D.';\n }\n\n if (year < 0) {\n return symbolA;\n }\n if (year > 0) {\n return symbolB;\n }\n }\n\n getDescription(description) {\n if (description.length > 300) {\n const limit = description.substr(0, 300).lastIndexOf(' ');\n return description.substr(0, limit) + ' ...';\n }\n return description;\n }\n\n removeAccents(txt, isPeriod) {\n if (isPeriod && !txt) {\n return null;\n }\n return txt.replace(/ά/g, 'α').replace(/Ά/g, 'Α')\n .replace(/έ/g, 'ε').replace(/Έ/g, 'Ε')\n .replace(/ή/g, 'η').replace(/Ή/g, 'Η')\n .replace(/ί/g, 'ι').replace(/Ί/g, 'Ι')\n .replace(/ό/g, 'ο').replace(/Ό/g, 'Ο')\n .replace(/ύ/g, 'υ').replace(/Ύ/g, 'Υ')\n .replace(/ώ/g, 'ω').replace(/Ώ/g, 'Ω');\n }\n\n getNextItem = () => {\n const visibleWindow = this.timeline.getWindow();\n const visibleStart = visibleWindow.start.getFullYear();\n const visibleEnd = visibleWindow.end.getFullYear();\n const fullWidth = Math.abs(visibleEnd - visibleStart);\n const halfWidth = fullWidth / 2;\n\n if (this.state.activeItemIndex < this.state.itemObjects.length - 1) {\n const newIndex = this.state.activeItemIndex + 1;\n this.setState({\n activeItem: {\n _id: -1\n }\n }, () => {\n this.setState({\n activeItem: this.state.itemObjects[newIndex],\n activeItemIndex: newIndex,\n hasNext: newIndex !== this.state.itemObjects.length - 1,\n hasPrev: newIndex !== 0\n }, () => {\n const newStartYear = this.state.itemObjects[newIndex].startYear - halfWidth;\n const newEndYear = this.state.itemObjects[newIndex].startYear + halfWidth;\n this.timeline.setWindow((new Date(newStartYear, 0, 1)).setFullYear(newStartYear), (new Date(newEndYear, 0, 1)).setFullYear(newEndYear));\n });\n });\n }\n };\n\n getPrevItem = () => {\n const visibleWindow = this.timeline.getWindow();\n const visibleStart = visibleWindow.start.getFullYear();\n const visibleEnd = visibleWindow.end.getFullYear();\n const fullWidth = Math.abs(visibleEnd - visibleStart);\n const halfWidth = fullWidth / 2;\n\n if (this.state.activeItemIndex > 0) {\n const newIndex = this.state.activeItemIndex - 1;\n this.setState({\n activeItem: {\n _id: -1\n }\n }, () => {\n this.setState({\n activeItem: this.state.itemObjects[newIndex],\n activeItemIndex: newIndex,\n hasNext: newIndex !== this.state.itemObjects.length - 1,\n hasPrev: newIndex !== 0\n }, () => {\n const newStartYear = this.state.itemObjects[newIndex].startYear - halfWidth;\n const newEndYear = this.state.itemObjects[newIndex].startYear + halfWidth;\n this.timeline.setWindow((new Date(newStartYear, 0, 1)).setFullYear(newStartYear), (new Date(newEndYear, 0, 1)).setFullYear(newEndYear));\n });\n });\n }\n };\n\n getDialogItem(itemId) {\n if (itemId) {\n axios.instance.get('/items/' + itemId)\n .then((response) => {\n for (let imageUrl of response.data.imageUrls) {\n imageUrl.url = sharedEnv.baseURL + '/' + imageUrl.url;\n }\n\n let index;\n for (let item of this.state.itemObjects) {\n if (item._id === itemId) {\n index = this.state.itemObjects.indexOf(item);\n break;\n }\n }\n\n this.setState({\n activeItem: response.data,\n activeItemIndex: index,\n dialogOpen: true,\n hasNext: index !== this.state.itemObjects.length - 1,\n hasPrev: index !== 0\n }, () => {\n const visibleWindow = this.timeline.getWindow();\n const visibleStart = visibleWindow.start.getFullYear();\n const visibleEnd = visibleWindow.end.getFullYear();\n this.props.history.replace('/' + this.state.currentLang + '/' + visibleStart + '/' + visibleEnd + '/' + itemId);\n });\n },\n (error) => {\n console.log(error);\n });\n }\n }\n\n changeLang = (lang) => {\n this.setState({ currentLang: lang }, () => {\n this.props.history.replace('/' + lang);\n this.onRangeChanged();\n });\n };\n\n handleClose = () => {\n this.setState({\n dialogOpen: false,\n hasNext: true,\n hasPrev: true,\n activeItem: {\n _id: -1\n }\n }, () => {\n const visibleWindow = this.timeline.getWindow();\n const visibleStart = visibleWindow.start.getFullYear();\n const visibleEnd = visibleWindow.end.getFullYear();\n this.props.history.replace('/' + this.state.currentLang + '/' + visibleStart + '/' + visibleEnd);\n });\n };\n\n openSnackbar = () => {\n this.setState({ snackbarOpen: true }, () => {\n setTimeout(() => {\n this.setState({ snackbarOpen: false });\n }, 3000);\n })\n };\n\n TransitionUp(props) {\n return ;\n }\n\n render() {\n return (\n
\n { this.state.loadScreen &&\n
\n
\n
\n }\n { !this.state.viewOk && !this.state.loadScreen &&\n
\n
\n \n
\n {this.state.currentLang === 'en' ?

ROTATE YOUR SCREEN

:

ΣΤΡΕΨΤΕ ΤΗΝ ΟΘΟΝΗ ΣΑΣ

}\n
\n }\n { !this.state.loadScreen && this.state.viewOk &&\n
\n {this.state.activePeriods.length < 13 &&\n
\n
\n \"arrow\"\n
\n
\n
{this.state.currentLang === 'en' ? 'MOVE' : 'ΚΥΛΙΣΗ'}
\n
\n
\n }\n
\n
\n
this.changeLang('en')}\n style={{ opacity: this.state.currentLang === 'en' ? 1 : 0.5 }}>ENG
\n
\n
\n
\n \n {sharedEnv.hrefAlt}\n \n
\n
\n
\n
this.changeLang('el')}\n style={{ opacity: this.state.currentLang === 'el' ? 1 : 0.5 }}>ΕΛ
\n
\n
\n {this.state.activePeriods.length < 13 &&\n
\n
\n
{this.state.currentLang === 'en' ? 'MOVE' : 'ΚΥΛΙΣΗ'}
\n
\n
\n \"arrow\"\n
\n
\n }\n
\n }\n { !this.state.loadScreen && this.state.viewOk &&\n
\n
this.openSidebar()}>\n
\n
\n {this.state.currentLang === 'en' ?\n \"OPTIONS\"\n :\n \"ΕΠΙΛΟΓΕΣ\"\n }\n
\n
\n
\n
\n \"more\"\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n
this.toggleFilters()}>\n \"filters\"\n
\n {this.state.currentLang === 'en' ? 'FILTERS' : 'ΦΙΛΤΡΑ'}\n

ZOOM IN

ZOOM OUT
this.closeSidebar()}>\n \"close\"\n
\n
\n }\n { !this.state.loadScreen && this.state.viewOk &&\n
\n {this.state.currentLang === 'en' ?

BY TIME RANGE >

:

ΕΥΡΟΣ ΧΡΟΝΟΥ >

}\n
\n \n \n
\n this.timeFilterIsBc('startBC', true)}\n style={{ opacity: this.state.activeFilters.range.startBC ? 1 : 0.5, marginRight: '20%' }}\n >\n {this.state.currentLang === 'en' ? 'B.C.' : 'π.Χ.'}\n \n this.timeFilterIsBc('startBC', false)}\n style={{ opacity: this.state.activeFilters.range.startBC ? 0.5 : 1 }}\n >\n {this.state.currentLang === 'en' ? 'A.D.' : 'μ.Χ.'}\n \n
\n
\n
\n \n \n
\n this.timeFilterIsBc('endBC', true)}\n style={{ opacity: this.state.activeFilters.range.endBC ? 1 : 0.5, marginRight: '20%' }}\n >\n {this.state.currentLang === 'en' ? 'B.C.' : 'π.Χ.'}\n \n this.timeFilterIsBc('endBC', false)}\n style={{ opacity: this.state.activeFilters.range.endBC ? 0.5 : 1 }}\n >\n {this.state.currentLang === 'en' ? 'A.D.' : 'μ.Χ.'}\n \n
\n
\n
\n
\n
\n
\n
\n\n {this.state.currentLang === 'en' ?

BY CATEGORY >

:

ΚΑΤΗΓΟΡΙΑ >

}\n this.categoryFilterClicked('political')}\n >\n
\n {this.state.currentLang === 'en' ? 'Events' : 'Γεγονότα'}\n
\n this.categoryFilterClicked('exhibits')}\n >\n
\n {this.state.currentLang === 'en' ? 'Exhibits' : 'Εκθέματα'}\n
\n\n {this.state.currentLang === 'en' ?

BY KEYWORD >

:

ΛΕΞΗ - ΚΛΕΙΔΙ >

}\n \n \n\n
\n
\n
this.clearFilters()}>\n {this.state.currentLang === 'en' ? 'CLEAR' : 'ΚΑΘΑΡΙΣΜΟΣ'}\n
\n {this.state.validFilters ?\n
this.applyFilters()}>\n {this.state.currentLang === 'en' ? 'APPLY' : 'ΕΦΑΡΜΟΓΗ'}\n
\n :\n
\n {this.state.currentLang === 'en' ? 'APPLY' : 'ΕΦΑΡΜΟΓΗ'}\n
\n }\n
{this.state.itemObjects.length} {this.state.itemObjects.length === 1 ? (\n this.state.currentLang === 'en' ? 'result' : 'αποτέλεσμα'\n ) : (\n this.state.currentLang === 'en' ? 'results' : 'αποτελέσματα'\n )}
\n
\n
\n }\n\n
\n {!this.state.loadScreen && this.state.viewOk &&\n this.timeline.getWindow().start.getFullYear() === -7000 &&\n this.timeline.getWindow().end.getFullYear() === new Date().getFullYear() &&\n
\n {this.state.currentLang === 'en' ? sharedEnv.introTextEN : sharedEnv.introTextGR}\n
\n }\n
\n
\n
\n {this.state.periods.map((period, index) => (\n -1 && this.state.activePeriods.length === 1 ? (this.state.activePeriodFocused ? \" focused-period\" : \"\") : \"\")}\n id={'period' + index}\n onMouseEnter={() => this.onMouseEnter(index, period.color)}\n onMouseLeave={() => this.onMouseLeave(index, period.color)}\n onClick={this.periodClick(index)}\n >\n {this.state.activePeriods.indexOf(index) !== -1 ? (\n this.state.activePeriods.length === 1 ?\n
\n
\n
{this.removeAccents(period.title[this.state.currentLang], true)}
\n
\n {index !== 0 && \n \n \n \n \n \n \n \n \n \n \n \n \n
{this.getPeriodYears(period.startYear)}{this.getPeriodYears(period.endYear)}
{this.getPeriodSymbols(period.startYear)}-{this.getPeriodSymbols(period.endYear)}
}\n
\n
\n
\n {this.state.activePeriodFocused ?\n \n {period.description[this.state.currentLang]}\n \n :\n
\n {period.description[this.state.currentLang]}\n
\n }\n
\n {period.description[this.state.currentLang].length > 300 &&\n
\n {this.state.currentLang === 'en' ? (\n this.state.activePeriodFocused ? 'SHOW LESS' : 'SHOW MORE'\n ) : (\n this.state.activePeriodFocused ? 'ΛΙΓΟΤΕΡΑ' : 'ΠΕΡΙΣΣΟΤΕΡΑ'\n )}\n
}\n
\n
\n
\n :\n
\n
{this.removeAccents(period.title[this.state.currentLang], true)}
\n
\n {index !== 0 && \n \n \n \n \n \n \n \n \n \n \n \n \n
{this.getPeriodYears(period.startYear)} {this.getPeriodYears(period.endYear)}
{this.getPeriodSymbols(period.startYear)}-{this.getPeriodSymbols(period.endYear)}
}\n
\n
\n )\n :\n
\n {this.getPeriodYears(period.startYear)} {this.getPeriodSymbols(period.startYear)} - {this.getPeriodYears(period.endYear)} {this.getPeriodSymbols(period.endYear)}\n
\n }\n
\n ))}\n \n\n {this.state.currentLang === 'en' ? 'The url has been copied!' : 'Ο σύνδεσμος αντιγράφηκε!'}}\n />\n\n \n \n );\n }\n}\n\nexport default Timeline;\n","import React, {Component} from 'react';\nimport { BrowserRouter, Route, Switch } from 'react-router-dom';\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';\nimport './App.css';\nimport Admin from './Admin/Admin';\nimport ResetPassword from './Admin/ResetPassword/ResetPassword';\nimport Timeline from './Timeline/Timeline';\nimport sharedEnv from \"./shared/sharedEnv\";\n\nconst theme = createMuiTheme({\n palette: {\n primary: {\n light: '#33a095',\n main: '#00897b',\n dark: '#005f56',\n contrastText: 'black'\n },\n secondary: {\n light: '#ce467b',\n main: '#c2185b',\n dark: '#87103f',\n contrastText: 'white'\n }\n },\n typography: {\n useNextVariants: true,\n fontFamily: [\n 'Roboto'\n ]\n }\n});\n\nclass App extends Component {\n\n updateFavicon() {\n var link = document.querySelector(\"link[rel*='icon']\") || document.createElement('link');\n link.type = 'image/x-icon';\n link.rel = 'shortcut icon';\n link.href = process.env.PUBLIC_URL + '/favicons/' + sharedEnv.faviconFileName;\n document.getElementsByTagName('head')[0].appendChild(link);\n }\n\n componentDidMount() {\n // call api or anything\n this.updateFavicon();\n }\n\n render() {\n\n return (\n \n
\n \n \n \n \n \n \n \n \n
\n
\n );\n }\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}