{"version":3,"sources":["actions/actionTypes.ts","Constants.ts","translations/gr.ts","translations/en.ts","i18n.ts","Helpers.tsx","actions/Actions.ts","Notifier.tsx","store.ts","reducers/Reducers.ts","types.ts","Languages.tsx","Home.tsx","CartIcon.tsx","MenuHOC.tsx","Filter.tsx","Fonts.tsx","ScrollableContainer.tsx","FontDetails.tsx","About.tsx","LinkTo.tsx","LegalNotice.tsx","CustomServices.tsx","Contact.tsx","UsefulInfo.tsx","Support.tsx","Prices.tsx","Cart.tsx","App.tsx","index.tsx"],"names":["ActionType","BASE_URL","AMAZON_BASE_URL","MENU_NS","CART_NS","FONTS_NS","ABOUT_NS","PRICES_NS","LOCAL_STORAGE_CART_KEY","GR_TRANSLATION","_GR_TRANSLATION","_defineProperty","concat","EN_TRANSLATION","_EN_TRANSLATION","i18n","use","initReactI18next","init","lng","keySeparator","interpolation","escapeValue","fallbackLng","resources","el","translation","en","getFontTagNames","ids","allTags","map","id","tag","find","tg","language","nameGr","nameEn","getFontTagCodes","codeGr","codeEn","isFontInCart","cart","fontId","_ref2","getCartTotal","reduce","acc","_ref3","price","enqueueNotification","notification","type","ENQUEUE_NOTIFICATION","payload","updateCart","UPDATE_CART","updateCartAndShowNotification","action","fontName","dispatch","key","Date","getTime","message","t","font","options","variant","addRemoveToCart","getState","_getState$app","app","fonts","isInCart","parentFont","f","subFonts","some","_ref","updatedCart","cartIds","filter","_ref9","_ref10","_","includes","_ref11","_ref12","fullPageName","_ref4","childrenIds","_ref7","every","_ref8","_ref5","_ref6","displayed","Notifier","useDispatch","notifications","useSelector","store","_useSnackbar","useSnackbar","enqueueSnackbar","closeSnackbar","React","forEach","_ref$options","_objectSpread","onExited","_e","myKey","REMOVE_NOTIFICATION","removeNotification","STORE","filters","cartItem","localStorage","getItem","JSON","parse","_unused","loadCartFromLocalStorage","reducer","state","arguments","length","undefined","SET_FONTS","SET_FILTERS","UPDATE_FILTER_OPTION","categoryId","o","checked","setItem","stringify","Language","CategoryType","Languages","_ref$showSelection","showSelection","_ref$redirect","redirect","history","getClassName","useCallback","lang","clsx","selected","i18next","handleLanguageChange","changeLanguage","push","_jsxs","className","children","EL","onClick","_jsx","EN","Home","props","src","CartIcon","useTranslation","Link","to","FontAwesome","name","withMenu","Component","match","path","startsWith","moment","format","href","target","rel","Filter","_ref$width","width","category","_React$useState","useState","_React$useState2","_slicedToArray","expanded","setExpanded","toggleExpanded","handleOptionChange","config","getName","renderOptions","option","onChange","style","withRouter","WEIGHTS","_app$fonts","sortBy","isPackage","isMainFont","getPromoImage","code","hasPromoImgConfigured","filteredFonts","selectedOptions","fontTagIDs","isNewFont","hasNewVersion","supportedLanguageIDs","weightIDs","small","join","ScrollableContainer","header","_ref$hasColumns","hasColumns","headerClassName","_getLocalizationConfi","localizations","params","getFontPrice","isNil","priceActionPercentage","_Fragment","finalPriceAfterAction","getColImages","side","colCounter","maxLeftColumnCounter","maxRightColumnCounter","range","counter","getLogoImage","hasLogoImgConfigured","handleAddToCart","isEmpty","dangerouslySetInnerHTML","__html","mainText","LEFT_COL_TEXT_NO","num","RIGHT_COL_TEXT_NO","LinkTo","content","_useTranslation","getBody","_app$filters","_app$filters$filter","getTagAbbreviation","getTagDescription","descriptionEn","descriptionGr","fontTagCategoryID","LANGUAGES","sort","a","b","toLowerCase","localeCompare","i","fontCategoryIDs","PurchaseType","INITIAL_VALUES","purchaseType","PRIVATE","Condition","when","is","Field","subscription","value","input","loading","setLoading","onRemoveFromCart","renderCart","values","colSpan","total","title","COMPANY","getInvoiceText","renderPaymentForm","handleSubmit","hasValidationErrors","onSubmit","htmlFor","component","placeholder","rows","disabled","verticalAlign","marginBottom","validateForm","errors","fullName","email","companyInfo","address","handlePaymentRequest","form","isCompany","fontIDs","contactLanguage","fetch","method","headers","body","then","res","text","reset","catch","e","finally","Form","render","initialValues","validate","json","setFonts","Promise","all","categories","tags","setFilters","c","omit","x","Switch","Route","exact","About","Fonts","FontDetails","LegalNotice","CustomServices","Contact","UsefulInfo","Support","Prices","Cart","Redirect","browserHistory","createBrowserHistory","middlewares","thunk","routerMiddleware","ReactDOM","Provider","initialState","createStore","combineReducers","router","connectRouter","Reducers","applyMiddleware","apply","configureStore","ConnectedRouter","SnackbarProvider","maxSnack","anchorOrigin","vertical","horizontal","hideIconVariant","App","document","getElementById"],"mappings":"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","file":"static/js/main.bf46ac91.chunk.js","sourcesContent":["import { ThunkAction as ThunkActionCreator } from 'redux-thunk';\r\nimport { AnyAction } from 'redux';\r\nimport { SnackbarKey } from 'notistack';\r\nimport { Store, AppStore } from '../types';\r\n\r\nexport enum ActionType {\r\n REMOVE_NOTIFICATION = 'REMOVE_NOTIFICATION',\r\n ENQUEUE_NOTIFICATION = 'ENQUEUE_NOTIFICATION',\r\n SET_FONTS = 'SET_FONTS',\r\n SET_FILTERS = 'SET_FILTERS',\r\n UPDATE_FILTER_OPTION = 'UPDATE_FILTER_OPTION',\r\n UPDATE_CART = 'UPDATE_CART'\r\n}\r\n\r\ninterface UpdateCart {\r\n type: ActionType.UPDATE_CART;\r\n payload: AppStore['cart'];\r\n}\r\n\r\ninterface CloseNotification {\r\n type: ActionType.REMOVE_NOTIFICATION;\r\n payload: SnackbarKey;\r\n}\r\n\r\ninterface EnqueueNotification {\r\n type: ActionType.ENQUEUE_NOTIFICATION;\r\n payload: AppStore['notifications'][number];\r\n}\r\n\r\ninterface SetFonts {\r\n type: ActionType.SET_FONTS;\r\n payload: AppStore['fonts'];\r\n}\r\n\r\ninterface SetFilters {\r\n type: ActionType.SET_FILTERS;\r\n payload: AppStore['filters'];\r\n}\r\n\r\nexport interface UpdateFilterOption {\r\n type: ActionType.UPDATE_FILTER_OPTION;\r\n payload: {\r\n id: number;\r\n categoryId: number;\r\n };\r\n}\r\n\r\nexport type Action =\r\n | CloseNotification\r\n | EnqueueNotification\r\n | SetFonts\r\n | SetFilters\r\n | UpdateFilterOption\r\n | UpdateCart;\r\n\r\nexport type ThunkAction = ThunkActionCreator;\r\n","export const BASE_URL = 'https://personalizedgenericapi.azurewebsites.net/api/Anagrafi';\r\nexport const AMAZON_BASE_URL = 'https://d8lc6s7bpjqw2.cloudfront.net/anagrafi';\r\n\r\nexport const MENU_NS = 'menu';\r\nexport const CART_NS = 'cart';\r\nexport const FONTS_NS = 'fonts';\r\nexport const ABOUT_NS = 'about';\r\nexport const PRICES_NS = 'prices';\r\n\r\nexport const LOCAL_STORAGE_CART_KEY = 'anagrafi.cart';\r\n","import { ABOUT_NS, CART_NS, FONTS_NS, MENU_NS, PRICES_NS } from '../Constants';\r\n\r\nconst GR_TRANSLATION = {\r\n [`${MENU_NS}.about`]: 'Ἀναγραφή',\r\n [`${MENU_NS}.fonts`]: 'Γραμματοσειρές',\r\n [`${MENU_NS}.support`]: 'Τεχνικά',\r\n [`${MENU_NS}.prices`]: 'Τιμές',\r\n [`${MENU_NS}.useful-info`]: 'Χρήσιμα',\r\n [`${MENU_NS}.blog`]: 'Blog',\r\n [`${MENU_NS}.custom-services`]: 'Εἰδικὲς Ἐργασίες',\r\n [`${MENU_NS}.contact`]: 'Ἐπικοινωνία',\r\n [`${MENU_NS}.legal-notice`]: 'Νομικά Στοιχεία',\r\n footer: 'Σχεδίαση & Ανάπτυξη',\r\n [`${FONTS_NS}.new_font`]: 'ΝΕΑ',\r\n [`${FONTS_NS}.weight_label`]: 'Βάρη',\r\n [`${FONTS_NS}.price_label`]: 'Τιμή',\r\n [`${FONTS_NS}.languages_label`]: 'Γλῶσσες',\r\n [`${FONTS_NS}.euro`]: 'Εὐρώ',\r\n [`${FONTS_NS}.add_to_cart`]: 'Ἀποστολὴ στὸ καλάθι',\r\n [`${FONTS_NS}.download`]: 'Κατεβάστε',\r\n [`${FONTS_NS}.here`]: 'ἐδῶ',\r\n [`${FONTS_NS}.weight`]: 'βάρη',\r\n [`${FONTS_NS}.download_text`]:\r\n 'ἀρχεῖο μὲ δεῖγμα κειμένου, καθὼς καὶ τοὺς χαρακτῆρες τῆς γραμματοσειρᾶς.',\r\n [`${FONTS_NS}.download_all_text`]:\r\n 'ἀρχεῖο μὲ τὸν συνοπτικὸ κατάλογο ὅλων τῶν γραμματοσειρῶν τῆς Ἀναγραφῆς.',\r\n [`${ABOUT_NS}.left_1`]: `Ξεκίνησα πρὶν ἀπὸ τρεῖς δεκαετίες θαυμάζοντας σὲ φωτογραφίες παλιά\r\n χειρόγραφα. Σὲ βιβλία, ἐγκυκλοπαίδειες, περιοδικά, παντοῦ… Μάζευα\r\n χαρτάκια μὲ τύπους γραφικῶν χαρακτήρων, μιὰ ἰδιόμορφη συλλογὴ τῆς\r\n ἀνθρώπινης ἑτερότητας. Ὑπολογιστὲς δὲν ὑπῆρχαν, ἀλλὰ καὶ ἂν ὑπῆρχαν,\r\n βρίσκονταν πολὺ μακριὰ ἀπὸ τὶς γνώσεις καὶ τὶς δυνατότητές μας. Παρόλα\r\n αὐτά, θαυμάζοντας τὴ βυζαντινὴ καλλιγραφία, βρέθηκα παγιδευμένος νὰ\r\n ἐξερευνῶ αὐτὸ τὸν μυστηριώδη κόσμο. Ἕναν ἀπέραντο αἰσθητικὰ πλοῦτο\r\n γραφῆς ποὺ ἄνοιξε τὸ δρόμο, τὸν ἐνθουσιασμὸ καὶ τὴν ἀγάπη στὴν ἐξαιρετική\r\n μαστορικὴ τέχνη τῶν ἀντιγραφέων ἀπὸ τὴ μιά, ἀλλὰ καὶ στὴν ἴδια τὴ φόρμα\r\n τοῦ γράμματος ἀπὸ τὴν ἄλλη. Παρόλο ποὺ ἡ «βυζαντινότροπη» γραφὴ\r\n ταυτίστηκε σχεδὸν ὁλοκληρωτικὰ (ἀδίκως βέβαια) μὲ τὴν ἀντιγραφὴ\r\n ἐκκλησιαστικῶν κειμένων, δὲν μποροῦμε παρὰ νὰ παραδεκτοῦμε τὸ\r\n αὐτονότητο: τὴν ἐξέλιξή της σὲ ἐπίπεδα αἰσθητικῆς ἀρτιότητας, πρωτοτυπίας\r\n ἀλλὰ καὶ λειτουργικότητας πολῦ ὑψηλά, σχεδόν ἀσύλληπτα. Ἡ ἀνυπαρξία\r\n τεχνικῶν μέσων ὁδηγοῦσε τοὺς ἀντιγραφεῖς στὴν ἐπινόηση λύσεων, πολλὲς\r\n ἀπὸ τὶς ὁποῖες θεωροῦνται ἀξεπέραστες αἰσθητικὰ ἀλλὰ καὶ τεχνικά, ἀκόμα καὶ\r\n σήμερα. Ἡ ἁρμονικὴ σύζευξη κειμένου καὶ ἀρχιγραμμάτων, διακοσμητικῶν\r\n στοιχείων καὶ μικροζωγραφικῆς, ἔδωσε δείγματα παγκόσμιας ἀκτινοβολίας,\r\n ποὺ δυστυχῶς ἀκόμα καὶ σήμερα ποὺ εἶναι τόσο εὔκολο γιὰ τὸν καθένα ἀπὸ\r\n μᾶς νὰ στοιχειοθετήσει ἕνα κείμενο, πολύ δύσκολα συναντῶνται! Δυστυχῶς, ἡ\r\n τεχνολογικὴ ἐξέλιξη φαίνεται πὼς ἔπαιξε καθοριστικὸ ρόλο στὴν ἁπλοποίηση\r\n τῆς στοιχειοθεσίας καὶ τῆς τυπογραφικῆς αἰσθητικῆς τοῦ κειμένου γενικότερα.`,\r\n [`${ABOUT_NS}.left_2`]: `Εἶναι ἀλήθεια, πὼς ἀνάμεσα στὴν ἑλληνικὴ γλῶσσα καὶ τὸ χειρόγραφο κείμενο\r\n καλλιεργήθηκε μιὰ πραγματικά ἐρωτική σχέση. Μὲ τὶς ψιλές καὶ τὶς δασεῖες,\r\n τὴν περισπωμένη καὶ τὶς ὑπογεγραμμένες, τὴ δοτικὴ καὶ τὸ ἀξέχαστο τελικὸ\r\n «νί», ὅλα αὐτά, ἐν τέλει, ποὺ ἐξαφάνισε ἡ λαίλαπα τῆς ἁπλούστευσης.`,\r\n [`${ABOUT_NS}.right_1`]: `Μὲ καθιερωμένη «μιὰν ὀρθογραφία, ὅπου τὸ κάθε ὠμέγα, τὸ κάθε ὕψιλον, ἡ\r\n κάθε ὀξεία, ἡ κάθε ὑπογεγραμμένη, δὲν εἶναι παρὰ ἕνας κολπίσκος, μιὰ\r\n κατωφέρεια, μιὰ κάθετη βράχου πάνω σὲ μιὰ καμπύλη πρύμνας πλεούμενου,\r\n κυματιστοὶ ἀμπελῶνες, ὑπέρθυρα ἐκκλησιῶν, ἀσπράκια ἢ κοκκινάκια, ἐδῶ ἢ\r\n ἐκεῖ, ἀπὸ περιστεριῶνες καὶ γλάστρες μὲ γεράνια», ὅπως σοφὰ τονίζει ὁ\r\n Ὀδυσσέας Ἐλύτης. Πῶς ἀλλοιῶς ἄλλωστε νὰ μὴν ταιριάξει μιὰ πράξη κατεξοχὴν\r\n ποιητική, ὅπως αὐτὴ τῆς γραφῆς ἢ ἀντιγραφῆς, μὲ τὴ γλώσσα ποὺ ἐπένδυσε\r\n κάποιους ἀπὸ τοὺς μεγαλύτερους θησαυροὺς τῆς παγκόσμιας γραμματείας;\r\n Ναί, εἶναι ἀλήθεια! Δὲν θὰ μποροῦσε νὰ διανοηθεῖ κάποιος μιὰ γλώσσα καὶ\r\n μιὰ γραφὴ τόσο ἁπλοποιημένη, τόσο οἰκτρὰ ἀπογυμνωμένη ἀπὸ τὸ\r\n κοσμοπολίτικο παρελθὸν καὶ τὴν πνευματικότητά της. Γιατί, διασώζοντας μιὰ\r\n «πολύτιμη ὀρθογραφία», διασώζουμε «τὴ βαθύτερη ἐκείνη δύναμη τῶν\r\n ἀναλογιῶν ποὺ συνέχει τὰ παραμικρὰ μὲ τὰ σπουδαῖα ἢ τὰ καίρια μὲ τὰ\r\n ἀσήμαντα, καὶ διαμορφώνει κάτω ἀπὸ τὴν κατατεμαχισμένη τῶν φαινομένων\r\n ἐπιφάνεια ἕνα πιὸ στερεὸ ἔδαφος γιὰ νὰ πατήσει τὸ πόδι μου —παραλίγο νὰ\r\n πῶ ἡ ψυχή μου» (Ὀδ. Ἐλύτης).`,\r\n [`${ABOUT_NS}.right_2`]: `Ἂς εἶναι, ὅμως. Νομίζω πὼς θὰ ὑπάρχει πάντα χῶρος γιὰ λίγη ποίηση, μερικὲς\r\n πινελιὲς κοσμοπολιτισμοῦ, ὅσο ὁ ἄνθρωπος θὰ χρειάζεται αὐτὸ ποὺ\r\n ὀνομάζουμε Γραφή. Κι ὕστερα, ἂς μὴ ξεχνοῦμε πὼς ἡ ἴδια ἡ τεχνολογία στὴν\r\n ὁποία φορτώνουμε τόσες καὶ τόσες «ἁμαρτίες», εἶναι αὐτὴ ποὺ μᾶς χαρίζει\r\n σήμερα τὴν τεχνικὴ δυνατότητα νὰ πλησιάσουμε λίγο πιὸ κοντὰ –ὅσο αὐτὸ\r\n εἶναι δυνατὸν– στὸν τρόπο γραφῆς τῶν παλιῶν μαϊστόρων, τὴν εὐκαιρία νὰ\r\n δοῦμε κείμενα πρὸς μιὰν ἄλλην κατεύθυνση αἰσθητικῆς. Εἶναι ἡ ἐκείνη\r\n θαυμαστὴ δυνατοτότητα νὰ ἔχουμε κείμενα μὲ συμπλέξεις –μιὰ ἔστω ἐλάχιστη\r\n ἀλλὰ οὐσιαστικὴ συγγένεια μὲ τὴν ὀμορφιὰ τῆς ἐπισεσυρμένης γραφῆς–, νὰ\r\n χρησιμοποιοῦμε ἀρχιγράμματα δίνοντας ἕναν ἄλλο «ἀέρα» στο κείμενο, εἰδικά\r\n τεχνικὰ χαρακτηριστικὰ ὅπως τὰ OpenType features καὶ τόσα ἄλλα.`,\r\n [`${ABOUT_NS}.right_3`]: 'Κωνσταντῖνος Φ. Σισκάκης',\r\n [`${PRICES_NS}.abbreviations`]: 'ΣΥΝΤΟΜΕΥΣΕΙΣ',\r\n [`${CART_NS}.icon`]: 'τὸ καλάθι σας',\r\n [`${CART_NS}.title`]: 'Τὸ καλάθι σας',\r\n [`${CART_NS}.added`]: 'Η γραμματοσειρά {{font}} προστέθηκε επιτυχώς στο καλάθι',\r\n [`${CART_NS}.removed`]:\r\n 'Η γραμματοσειρά {{font}} αφαιρέθηκε επιτυχώς από το καλάθι',\r\n [`${CART_NS}.table.font`]: 'Γραμματοσειρά',\r\n [`${CART_NS}.table.price`]: 'Ποσό',\r\n [`${CART_NS}.table.empty`]: 'Το καλάθι σας είναι άδειο...',\r\n [`${CART_NS}.table.remove`]: 'Αφαίρεση απο το Καλάθι',\r\n [`${CART_NS}.form.name`]: 'Ὀνοματεπώνυμο',\r\n [`${CART_NS}.form.email`]: 'E-mail',\r\n [`${CART_NS}.form.address`]: 'Διεύθυνση',\r\n [`${CART_NS}.form.type_private`]: 'Ἰδιώτης [ἀπόδειξη]',\r\n [`${CART_NS}.form.type_company`]: 'Ἐταιρεία [τιμολόγιο]',\r\n [`${CART_NS}.form.company_info`]: 'Στοιχεία Ἐταιρείας/ΑΦΜ',\r\n [`${CART_NS}.form.comments`]: 'Σχόλια',\r\n [`${CART_NS}.form.mandatory`]: 'Ὑποχρεωτικὰ πεδία',\r\n [`${CART_NS}.form.pay`]: 'Αἴτηση Παραγγελίας',\r\n [`${CART_NS}.form.total.private`]: 'Τελικὸ σύνολο μὲ ΦΠΑ 20%',\r\n [`${CART_NS}.form.total.company`]: 'Τελικὸ σύνολο χωρὶς ΦΠΑ',\r\n [`${CART_NS}.form.success`]: 'Τὸ αἴτημά σας στάλθηκε ἐπιτυχῶς'\r\n};\r\n\r\nexport default GR_TRANSLATION;\r\n","import { ABOUT_NS, CART_NS, FONTS_NS, MENU_NS, PRICES_NS } from '../Constants';\r\n\r\nconst EN_TRANSLATION = {\r\n [`${MENU_NS}.about`]: 'Anagrafi',\r\n [`${MENU_NS}.fonts`]: 'Fonts',\r\n [`${MENU_NS}.support`]: 'Support',\r\n [`${MENU_NS}.prices`]: 'Pricelist',\r\n [`${MENU_NS}.useful-info`]: 'Useful info',\r\n [`${MENU_NS}.blog`]: 'Blog',\r\n [`${MENU_NS}.custom-services`]: 'Custom Services',\r\n [`${MENU_NS}.contact`]: 'Contact',\r\n [`${MENU_NS}.legal-notice`]: 'Legal Notice',\r\n footer: 'Design & Development',\r\n [`${FONTS_NS}.new_font`]: 'NEW',\r\n [`${FONTS_NS}.weight_label`]: 'Weights',\r\n [`${FONTS_NS}.price_label`]: 'Price',\r\n [`${FONTS_NS}.languages_label`]: 'Languages',\r\n [`${FONTS_NS}.euro`]: 'Euro',\r\n [`${FONTS_NS}.add_to_cart`]: 'Add to cart',\r\n [`${FONTS_NS}.download`]: 'Click',\r\n [`${FONTS_NS}.here`]: 'here',\r\n [`${FONTS_NS}.weight`]: 'weights',\r\n [`${FONTS_NS}.download_text`]:\r\n \"to download a PDF text sample, as well as this typeset's features.\",\r\n [`${FONTS_NS}.download_all_text`]:\r\n 'to download the complete list of Anagrafi fonts.',\r\n [`${ABOUT_NS}.left_1`]: `I started out three decades ago, admiring old manuscripts’ pictures; in books,\r\n encyclopedias, magazines, anywhere… I collected pieces of paper with graphic\r\n features, a sui generis collection of human diversity. At that time, computers did\r\n not exist or were falling short from our knowledge and capacities. Nevertheless,\r\n in admiring byzantine calligraphy, I found myself tangled in exploring this\r\n incredibly mysterious world; this aesthetically endless graphic richness, which\r\n marked the path of enthusiasm and love for the exquisite art of copiers on one\r\n hand, and the letter form itself on the other. Even though the byzantine typeset\r\n was almost completely (and yet unjustly) associated with the copying of\r\n ecclesiastic texts, we must admit the obvious: its evolution into extremely\r\n highly, almost unthinkable levels of aesthetic integrity, originality and\r\n functionality. The lack of technical means forced copiers to find solutions, many\r\n of which are considered aesthetically and technically unsurpassable even to this\r\n day. The harmonious union of text and initial caps, decorative elements and\r\n miniature painting was depicted in samples of global radiance, which even\r\n today, when it is so simple for everyone to typeset a text, cannot be found\r\n easily! Unfortunately, technological evolution seems to have played a decisive\r\n role in the simplification of typesetting and printing aesthetics in general.`,\r\n [`${ABOUT_NS}.left_2`]: `It is true that a virtually erotic relationship has developed between manuscript\r\n texts and the Greek language, with its rough and smooth breathings, its\r\n circumflexes and its adscripts, the dative and of course the unforgettable final\r\n /ν/, all of which have been swept away by the drift of simplification.`,\r\n [`${ABOUT_NS}.right_1`]: `An established spelling “where every omega, every upsilon, every acute and\r\n every adscript is but a creek, a down-slope, the vertical side of a rock on the\r\n curve of a boat’s stern, undulating vineyards, churches’ lintels, bits of white and\r\n red, here and there, from pigeon-coops and pots of cranesbills”, as Odysseas\r\n Elytis has wisely pointed out. After all, how could an eminently poetic action,\r\n such as that of writing and copying, not fit the language that vested some of the\r\n greatest treasures of world literature? It is true! One could not conceive a\r\n language and writing so simplified, so pitifully deprived of its cosmopolitan past\r\n and spirituality. For, in preserving our “precious spelling”, we preserve “the\r\n profound force of analogies that connects the petty with the grand or the\r\n crucial with the insignificant, and forms under the shredded surface of the\r\n phenomena a more solid terrain for my foot – I almost said my soul – to step\r\n on” (O. Elytis).`,\r\n [`${ABOUT_NS}.right_2`]: `Nevertheless, I believe that there is still room for a little poetry, a few touches\r\n of cosmopolitanism, as long as man will need what we call Writing. After all, we\r\n must not forget that it is technology, which we have burdened with so many\r\n “sins”, that allows us today the technical possibility of getting a bit closer – as\r\n much as possible – to the writing style of old copiers and gives us the\r\n opportunity to view texts from the perspective of a different aesthetic\r\n orientation. It is the great possibility to have ligatured text - an even minimal\r\n but essential affinity with the beauty of handwriting -, to use drop caps, giving\r\n an interesting “aroma” to the text, special technical features such as the\r\n OpenType features and so many others.`,\r\n [`${ABOUT_NS}.right_3`]: 'Konstantinos F. Siskakis',\r\n [`${PRICES_NS}.abbreviations`]: 'ABBREVIATIONS',\r\n [`${CART_NS}.icon`]: 'your cart',\r\n [`${CART_NS}.title`]: 'Your cart',\r\n [`${CART_NS}.added`]: 'The font {{font}} was successfully added to the cart',\r\n [`${CART_NS}.removed`]: 'The font {{font}} was successfully removed from the cart',\r\n [`${CART_NS}.table.font`]: 'Font',\r\n [`${CART_NS}.table.price`]: 'Price',\r\n [`${CART_NS}.table.empty`]: 'Your cart is empty...',\r\n [`${CART_NS}.table.remove`]: 'Remove from cart',\r\n [`${CART_NS}.form.name`]: 'Full name',\r\n [`${CART_NS}.form.email`]: 'E-mail',\r\n [`${CART_NS}.form.address`]: 'Address',\r\n [`${CART_NS}.form.type_private`]: 'Individual [Receipt]',\r\n [`${CART_NS}.form.type_company`]: 'Company [Invoice]',\r\n [`${CART_NS}.form.company_info`]: 'Company info',\r\n [`${CART_NS}.form.comments`]: 'Comments',\r\n [`${CART_NS}.form.mandatory`]: 'Required fields',\r\n [`${CART_NS}.form.pay`]: 'Place Order',\r\n [`${CART_NS}.form.total.private`]: 'Grand Total incl. 20% VAT',\r\n [`${CART_NS}.form.total.company`]: 'Grand Total excl. VAT',\r\n [`${CART_NS}.form.success`]: 'Your request was sent successfully'\r\n};\r\n\r\nexport default EN_TRANSLATION;\r\n","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport GR_TRANSLATION from './translations/gr';\r\nimport EN_TRANSLATION from './translations/en';\r\n\r\ni18n.use(initReactI18next).init({\r\n lng: 'el',\r\n keySeparator: '.',\r\n interpolation: { escapeValue: false },\r\n fallbackLng: 'el',\r\n resources: {\r\n el: {\r\n translation: GR_TRANSLATION\r\n },\r\n en: {\r\n translation: EN_TRANSLATION\r\n }\r\n }\r\n});\r\n\r\nexport default i18n;\r\n","import i18n from './i18n';\r\nimport { AppStore } from './types';\r\n\r\nexport const getLocalizationConfig = (\r\n localizations: AppStore['fonts'][number]['localizations']\r\n) => localizations.find(({ lang }) => lang === i18n.language);\r\n\r\nexport const getFontTagNames = (\r\n ids: number[],\r\n allTags: AppStore['filters'][number]['options']\r\n): string[] =>\r\n ids.map(id => {\r\n const tag = allTags.find(tg => tg.id === id);\r\n\r\n switch (i18n.language) {\r\n case 'el':\r\n return tag?.nameGr;\r\n case 'en':\r\n return tag?.nameEn;\r\n default:\r\n return tag?.nameGr || '';\r\n }\r\n });\r\n\r\nexport const getFontTagCodes = (\r\n ids: number[],\r\n allTags: AppStore['filters'][number]['options']\r\n): string[] =>\r\n ids.map(id => {\r\n const tag = (allTags || []).find(tg => tg.id === id);\r\n\r\n switch (i18n.language) {\r\n case 'el':\r\n return tag?.codeGr;\r\n case 'en':\r\n return tag?.codeEn;\r\n default:\r\n return tag?.codeGr || '';\r\n }\r\n });\r\n\r\nexport const isFontInCart = (cart: AppStore['cart'], fontId: number): boolean =>\r\n !!cart.find(({ id }) => id === fontId);\r\n\r\nexport const getCartTotal = (cart: AppStore['cart']): number =>\r\n cart.reduce((acc, { price }) => acc + price, 0);\r\n","import { SnackbarKey } from 'notistack';\r\nimport * as _ from 'lodash';\r\nimport { Action, ActionType, ThunkAction, UpdateFilterOption } from './actionTypes';\r\nimport { AppStore, Font, INotification } from '../types';\r\nimport i18n from '../i18n';\r\nimport { CART_NS } from '../Constants';\r\nimport { isFontInCart } from '../Helpers';\r\n\r\n// const ERROR_NOTIFICATION: INotification = {\r\n// message: i18n.t(`${NOTIFICATION_NS}.error`),\r\n// key: new Date().getTime(),\r\n// options: {\r\n// variant: 'error',\r\n// autoHideDuration: 3000\r\n// }\r\n// };\r\n\r\nexport const removeNotification = (key: SnackbarKey): Action => ({\r\n type: ActionType.REMOVE_NOTIFICATION,\r\n payload: key\r\n});\r\n\r\nexport const enqueueNotification = (notification: INotification): Action => ({\r\n type: ActionType.ENQUEUE_NOTIFICATION,\r\n payload: notification\r\n});\r\n\r\nexport const setFonts = (fonts: AppStore['fonts']): Action => ({\r\n type: ActionType.SET_FONTS,\r\n payload: fonts\r\n});\r\n\r\nexport const setFilters = (filters: AppStore['filters']): Action => ({\r\n type: ActionType.SET_FILTERS,\r\n payload: filters\r\n});\r\n\r\nexport const updateFilterOption = (config: UpdateFilterOption['payload']): Action => ({\r\n type: ActionType.UPDATE_FILTER_OPTION,\r\n payload: config\r\n});\r\n\r\nexport const updateCart = (cart: AppStore['cart']): Action => ({\r\n type: ActionType.UPDATE_CART,\r\n payload: cart\r\n});\r\n\r\nconst updateCartAndShowNotification =\r\n (cart: Font[], action: 'added' | 'removed', fontName: string): ThunkAction =>\r\n dispatch => {\r\n dispatch(updateCart(cart));\r\n\r\n dispatch(\r\n enqueueNotification({\r\n key: new Date().getTime(),\r\n message: i18n.t([`${CART_NS}.${action}`], { font: fontName }),\r\n options: { variant: 'success' }\r\n })\r\n );\r\n };\r\n\r\nexport const addRemoveToCart =\r\n (font: Font): ThunkAction =>\r\n (dispatch, getState) => {\r\n const { cart, fonts } = getState().app;\r\n const isInCart = isFontInCart(cart, font.id);\r\n const parentFont = fonts.find(f => f.subFonts.some(({ id }) => id === font.id));\r\n let updatedCart: Font[] = [];\r\n\r\n // not in cart\r\n if (!isInCart) {\r\n updatedCart = cart.concat(font);\r\n const cartIds = updatedCart.map(({ id }) => id);\r\n\r\n // parent in cart => remove parent and font and\r\n // add the rest of the siblings\r\n if (cartIds.includes(parentFont?.id)) {\r\n updatedCart = updatedCart\r\n .filter(({ id }) => id !== parentFont.id && id !== font.id)\r\n .concat(parentFont.subFonts.filter(({ id }) => id !== font.id));\r\n\r\n dispatch(\r\n updateCartAndShowNotification(\r\n updatedCart,\r\n 'removed',\r\n font.fullPageName\r\n )\r\n );\r\n return;\r\n }\r\n\r\n // parent font => remove possible children\r\n if (!_.isEmpty(font.subFonts)) {\r\n const childrenIds = font.subFonts.map(({ id }) => id);\r\n updatedCart = updatedCart.filter(({ id }) => !childrenIds.includes(id));\r\n } else if (parentFont) {\r\n // child font => check if all siblings are in the cart\r\n // and remove them in order to add the parent\r\n const childrenIds = parentFont.subFonts.map(({ id }) => id);\r\n\r\n if (childrenIds.every(id => cartIds.includes(id))) {\r\n updatedCart = updatedCart\r\n .concat(parentFont)\r\n .filter(({ id }) => !childrenIds.includes(id));\r\n }\r\n }\r\n\r\n dispatch(\r\n updateCartAndShowNotification(updatedCart, 'added', font.fullPageName)\r\n );\r\n return;\r\n }\r\n\r\n // removing\r\n updatedCart = cart.filter(({ id }) => id !== font.id);\r\n const cartIds = updatedCart.map(({ id }) => id);\r\n\r\n // child font => check if parent is added =>\r\n // remove parent and add the rest of the children\r\n if (_.isEmpty(font.subFonts) && cartIds.includes(parentFont?.id)) {\r\n updatedCart = updatedCart\r\n .filter(({ id }) => id !== parentFont.id)\r\n .concat(parentFont.subFonts.filter(({ id }) => id !== font.id));\r\n }\r\n\r\n dispatch(\r\n updateCartAndShowNotification(updatedCart, 'removed', font.fullPageName)\r\n );\r\n };\r\n","import * as React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useSnackbar, SnackbarKey } from 'notistack';\r\nimport { Store } from './types';\r\nimport { removeNotification } from './actions/Actions';\r\n\r\nlet displayed: SnackbarKey[] = [];\r\n\r\nconst Notifier: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const notifications = useSelector((store: Store) => store.app.notifications);\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n const storeDisplayed = (id: SnackbarKey) => {\r\n displayed = displayed.concat(id);\r\n };\r\n\r\n const removeDisplayed = (id: SnackbarKey) => {\r\n displayed = displayed.filter(key => id !== key);\r\n };\r\n\r\n React.useEffect(() => {\r\n notifications.forEach(({ key, message, options = {} }) => {\r\n // do nothing if snackbar is already displayed\r\n if (displayed.includes(key)) {\r\n return;\r\n }\r\n\r\n // display snackbar using notistack\r\n enqueueSnackbar(message, {\r\n key,\r\n ...options,\r\n onExited: (_e, myKey) => {\r\n // remove this snackbar from redux store\r\n dispatch(removeNotification(myKey));\r\n removeDisplayed(myKey);\r\n }\r\n });\r\n\r\n // keep track of snackbars that we've displayed\r\n storeDisplayed(key);\r\n });\r\n }, [notifications, closeSnackbar, enqueueSnackbar, dispatch]);\r\n\r\n return null;\r\n};\r\n\r\nexport default Notifier;\r\n","import { Store, Font } from './types';\r\nimport { LOCAL_STORAGE_CART_KEY } from './Constants';\r\n\r\nconst loadCartFromLocalStorage = (): Font[] => {\r\n const cartItem = localStorage.getItem(LOCAL_STORAGE_CART_KEY);\r\n\r\n try {\r\n const cart = JSON.parse(cartItem);\r\n return cart || [];\r\n } catch {\r\n return [];\r\n }\r\n};\r\n\r\nconst STORE: Store = {\r\n app: {\r\n notifications: [],\r\n fonts: null,\r\n filters: null,\r\n cart: loadCartFromLocalStorage()\r\n }\r\n};\r\n\r\nexport default STORE;\r\n","import { Action, ActionType } from '../actions/actionTypes';\r\nimport { LOCAL_STORAGE_CART_KEY } from '../Constants';\r\nimport STORE from '../store';\r\nimport { AppStore } from '../types';\r\n\r\nconst reducer = (state = STORE.app, action: Action): AppStore => {\r\n switch (action.type) {\r\n case ActionType.REMOVE_NOTIFICATION:\r\n return {\r\n ...state,\r\n notifications: state.notifications.filter(\r\n ({ key }) => key !== action.payload\r\n )\r\n };\r\n case ActionType.ENQUEUE_NOTIFICATION:\r\n return {\r\n ...state,\r\n notifications: state.notifications.concat(action.payload)\r\n };\r\n case ActionType.SET_FONTS:\r\n return { ...state, fonts: action.payload };\r\n case ActionType.SET_FILTERS:\r\n return { ...state, filters: action.payload };\r\n case ActionType.UPDATE_FILTER_OPTION:\r\n return {\r\n ...state,\r\n filters: state.filters.map(f => ({\r\n ...f,\r\n options:\r\n f.id === action.payload.categoryId\r\n ? f.options.map(o => ({\r\n ...o,\r\n checked:\r\n o.id === action.payload.id\r\n ? !o.checked\r\n : o.checked\r\n }))\r\n : f.options\r\n }))\r\n };\r\n case ActionType.UPDATE_CART:\r\n localStorage.setItem(\r\n LOCAL_STORAGE_CART_KEY,\r\n JSON.stringify(action.payload)\r\n );\r\n return { ...state, cart: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;\r\n","import { RouterState } from 'connected-react-router';\r\nimport { OptionsObject, SnackbarKey, SnackbarMessage } from 'notistack';\r\n\r\nexport interface Store {\r\n router?: RouterState;\r\n app: AppStore;\r\n}\r\n\r\nexport interface INotification {\r\n message: SnackbarMessage;\r\n options: OptionsObject;\r\n key: SnackbarKey;\r\n}\r\n\r\nexport interface AppStore {\r\n notifications: INotification[];\r\n fonts: Font[];\r\n filters: (Omit & {\r\n options: (FontTag & { checked: boolean })[];\r\n })[];\r\n cart: Font[];\r\n}\r\n\r\nexport enum Language {\r\n EL = 'el',\r\n EN = 'en'\r\n}\r\n\r\nexport enum CategoryType {\r\n CATEGORIES = 1,\r\n LANGUAGES = 2,\r\n WEIGHTS = 3\r\n}\r\n\r\nexport type FontTagCategory = {\r\n id: number;\r\n nameEn: string;\r\n nameGr: string;\r\n type: CategoryType;\r\n fontTagIDs: number[];\r\n};\r\n\r\nexport type FontTag = {\r\n id: number;\r\n nameEn: string;\r\n nameGr: string;\r\n descriptionGr: string;\r\n descriptionEn: string;\r\n codeEn: string;\r\n codeGr: string;\r\n fontTagCategoryID: number;\r\n};\r\n\r\nexport interface Font {\r\n id: number;\r\n code: string;\r\n finalPriceAfterAction: number;\r\n freeFonts: Font[];\r\n fullPageName: string;\r\n hasCyrilicSupport: boolean;\r\n hasDropCapsSupport: boolean;\r\n hasFullLatinSupport: boolean;\r\n hasLigaturesSupport: boolean;\r\n hasPolytonicSupport: boolean;\r\n hasPromoImgConfigured: boolean;\r\n hasLogoImgConfigured: boolean;\r\n hasSubFonts: boolean;\r\n hasNewVersion: boolean;\r\n isMainFont: boolean;\r\n isNewFont: boolean;\r\n isPackage: boolean;\r\n isReady: boolean;\r\n isSpecialFont: boolean;\r\n mainFontID: number;\r\n name: string;\r\n price: number;\r\n priceActionPercentage: number;\r\n subFonts: Font[];\r\n localizations: {\r\n id: number;\r\n lang: Language;\r\n description: string;\r\n extraDescription: string;\r\n weightDescription: string;\r\n mainText: string;\r\n }[];\r\n maxLeftColumnCounter: number;\r\n maxRightColumnCounter: number;\r\n supportedLanguageIDs: number[];\r\n weightIDs: number[];\r\n fontCategoryIDs: number[];\r\n fontTagIDs: number[];\r\n}\r\n","import clsx from 'clsx';\r\nimport i18next from 'i18next';\r\nimport React from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { Language } from './types';\r\n\r\nconst Languages: React.FC<\r\n RouteComponentProps & { showSelection?: boolean; redirect?: boolean }\r\n> = ({ showSelection = false, redirect = false, history }) => {\r\n const getClassName = React.useCallback(\r\n (lang: Language) =>\r\n clsx('language', {\r\n selected: showSelection && lang === i18next.language\r\n }),\r\n [showSelection]\r\n );\r\n\r\n const handleLanguageChange = React.useCallback(\r\n (lang: Language) => () => {\r\n i18next.changeLanguage(lang);\r\n\r\n if (redirect) {\r\n history.push('/fonts');\r\n }\r\n },\r\n [history, redirect]\r\n );\r\n\r\n return (\r\n
\r\n \r\n ΕΛΛΗΝΙΚΑ\r\n
\r\n
\r\n \r\n ENGLISH\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Languages;\r\n","import React from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { AMAZON_BASE_URL } from './Constants';\r\nimport Languages from './Languages';\r\n\r\nconst Home: React.FC = props => (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n);\r\n\r\nexport default Home;\r\n","import FontAwesome from 'react-fontawesome';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport { CART_NS } from './Constants';\r\nimport { getCartTotal } from './Helpers';\r\nimport { Store } from './types';\r\n\r\nconst CartIcon: React.FC<{}> = () => {\r\n const { t } = useTranslation();\r\n const cart = useSelector(({ app }: Store) => app.cart);\r\n\r\n return (\r\n
\r\n
\r\n
{t(`${CART_NS}.icon`)}
\r\n
€ {getCartTotal(cart)}
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CartIcon;\r\n","import * as React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Link, RouteComponentProps } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport { AMAZON_BASE_URL, MENU_NS } from './Constants';\r\nimport Languages from './Languages';\r\nimport CartIcon from './CartIcon';\r\n\r\nconst withMenu =

(Component: React.ComponentType

) => {\r\n const MenuPage: React.FC = props => {\r\n const { match } = props;\r\n const { t } = useTranslation();\r\n\r\n const getClassName = React.useCallback(\r\n (id: string) =>\r\n clsx('menu-item', { selected: match.path.startsWith(`/${id}`) }),\r\n [match.path]\r\n );\r\n\r\n return (\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {t(`${MENU_NS}.about`)}\r\n \r\n \r\n {t(`${MENU_NS}.fonts`)}\r\n \r\n \r\n {t(`${MENU_NS}.support`)}\r\n \r\n \r\n {t(`${MENU_NS}.useful-info`)}\r\n \r\n \r\n {t(`${MENU_NS}.prices`)}\r\n \r\n \r\n {t(`${MENU_NS}.custom-services`)}\r\n \r\n \r\n {t(`${MENU_NS}.legal-notice`)}\r\n \r\n \r\n {t(`${MENU_NS}.contact`)}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n © Anagrafi Fonts {moment().format('YYYY')}. All rights reserved.\r\n {t('footer')}:{' '}\r\n \r\n Personalized.at\r\n \r\n . {moment().format('DD.MM.YYYY')}\r\n
\r\n
\r\n );\r\n };\r\n\r\n return MenuPage;\r\n};\r\n\r\nexport default withMenu;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport FontAwesome from 'react-fontawesome';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { AppStore } from './types';\r\nimport { updateFilterOption } from './actions/Actions';\r\n\r\ntype Category = AppStore['filters'][number];\r\n\r\nconst Filter: React.FC<{ className?: string; width?: number; category: Category }> = ({\r\n className,\r\n width = 250,\r\n category\r\n}) => {\r\n const [expanded, setExpanded] = React.useState(false);\r\n const dispatch = useDispatch();\r\n const { i18n } = useTranslation();\r\n\r\n const toggleExpanded = React.useCallback(() => {\r\n setExpanded(!expanded);\r\n }, [expanded]);\r\n\r\n const handleOptionChange = React.useCallback(\r\n (id: number) => () => {\r\n dispatch(updateFilterOption({ categoryId: category.id, id }));\r\n },\r\n [category.id, dispatch]\r\n );\r\n\r\n const getName = React.useCallback(\r\n ({ nameEn, nameGr }: Category['options'][number] | Category) => {\r\n switch (i18n.language) {\r\n case 'el':\r\n return nameGr;\r\n case 'en':\r\n return nameEn;\r\n default:\r\n return nameGr;\r\n }\r\n },\r\n [i18n.language]\r\n );\r\n\r\n const renderOptions = React.useCallback(\r\n () => (\r\n
\r\n {category.options.map(option => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n ),\r\n [category.options, getName, handleOptionChange]\r\n );\r\n\r\n return (\r\n
\r\n
\r\n
{getName(category)}
\r\n \r\n
\r\n {expanded && renderOptions()}\r\n
\r\n );\r\n};\r\n\r\nexport default Filter;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Link, withRouter } from 'react-router-dom';\r\nimport { sortBy } from 'lodash';\r\nimport { useTranslation } from 'react-i18next';\r\nimport clsx from 'clsx';\r\nimport { AMAZON_BASE_URL, FONTS_NS } from './Constants';\r\nimport withMenu from './MenuHOC';\r\nimport { AppStore, CategoryType, Store } from './types';\r\nimport { getFontTagCodes } from './Helpers';\r\nimport Filter from './Filter';\r\n\r\nconst Fonts: React.FC<{}> = () => {\r\n const { t } = useTranslation();\r\n const filters = useSelector(({ app }: Store) =>\r\n (app.filters || []).filter(({ type }) => type !== CategoryType.WEIGHTS)\r\n );\r\n const allTags = filters.reduce(\r\n (acc, { options }) => acc.concat(options),\r\n [] as AppStore['filters'][number]['options']\r\n );\r\n const fonts = useSelector(({ app }: Store) =>\r\n sortBy(\r\n app.fonts?.filter(({ isPackage, isMainFont }) => isMainFont && !isPackage),\r\n ({ name }) => name\r\n )\r\n );\r\n\r\n const getPromoImage = React.useCallback(\r\n (code: string, hasPromoImgConfigured: boolean): string =>\r\n hasPromoImgConfigured\r\n ? `${AMAZON_BASE_URL}/fonts/${code}/promo.png`\r\n : `${AMAZON_BASE_URL}/general/not_yet.png`,\r\n []\r\n );\r\n\r\n const filteredFonts = filters.reduce((acc, { options }) => {\r\n const selectedOptions = options.filter(({ checked }) => checked);\r\n\r\n return acc.filter(({ fontTagIDs }) =>\r\n selectedOptions.some(({ id }) => fontTagIDs.includes(id))\r\n );\r\n }, fonts);\r\n\r\n return (\r\n
\r\n
\r\n {filters.map(f => (\r\n \r\n ))}\r\n
\r\n
\r\n {filteredFonts.map(\r\n ({\r\n id,\r\n name,\r\n fullPageName,\r\n isNewFont,\r\n code,\r\n hasPromoImgConfigured,\r\n hasNewVersion,\r\n supportedLanguageIDs,\r\n weightIDs\r\n }) => (\r\n \r\n
\r\n
\r\n 14\r\n })}>\r\n {name}\r\n
\r\n {isNewFont && (\r\n
\r\n {t(`${FONTS_NS}.new_font`)}\r\n
\r\n )}\r\n {hasNewVersion && (\r\n
UPD
\r\n )}\r\n
\r\n
\r\n
\r\n {weightIDs.length} {t(`${FONTS_NS}.weight`)}\r\n
\r\n
\r\n {getFontTagCodes(\r\n supportedLanguageIDs,\r\n allTags\r\n ).join('/')}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n )\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default withRouter(withMenu(Fonts));\r\n","import clsx from 'clsx';\r\n\r\nconst ScrollableContainer: React.FC<{\r\n className?: string;\r\n headerClassName?: string;\r\n header: JSX.Element;\r\n hasColumns?: boolean;\r\n}> = ({ children, className, header, hasColumns = true, headerClassName }) => (\r\n
\r\n
\r\n
\r\n
{header}
\r\n {hasColumns ? (\r\n
\r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n )}\r\n
\r\n
{children}
\r\n
\r\n
\r\n);\r\n\r\nexport default ScrollableContainer;\r\n","import React from 'react';\r\nimport _ from 'lodash';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\r\nimport FontAwesome from 'react-fontawesome';\r\nimport { AMAZON_BASE_URL, FONTS_NS } from './Constants';\r\nimport withMenu from './MenuHOC';\r\nimport { AppStore, Store } from './types';\r\nimport { getFontTagNames, getLocalizationConfig, isFontInCart } from './Helpers';\r\nimport ScrollableContainer from './ScrollableContainer';\r\nimport { addRemoveToCart } from './actions/Actions';\r\n\r\nconst FontDetails: React.FC> = ({ match }) => {\r\n const { t } = useTranslation();\r\n const dispatch = useDispatch();\r\n const fonts = useSelector(({ app }: Store) => app.fonts);\r\n const cart = useSelector(({ app }: Store) => app.cart);\r\n const allTags = useSelector(({ app }: Store) =>\r\n (app.filters || [])?.reduce(\r\n (acc, { options }) => acc.concat(options),\r\n [] as AppStore['filters'][number]['options']\r\n )\r\n );\r\n\r\n const font = fonts?.find(({ fullPageName }) => fullPageName === match.params.font);\r\n\r\n const getFontPrice = React.useCallback(() => {\r\n if (_.isNil(font.priceActionPercentage)) {\r\n return font.price;\r\n }\r\n\r\n return (\r\n <>\r\n ({font.price}){' '}\r\n {font.finalPriceAfterAction}{' '}\r\n ({font.priceActionPercentage}% Discount)\r\n \r\n );\r\n }, [font?.finalPriceAfterAction, font?.price, font?.priceActionPercentage]);\r\n\r\n const getColImages = React.useCallback(\r\n (side: 'left' | 'right') => {\r\n const colCounter =\r\n side === 'left'\r\n ? font.maxLeftColumnCounter\r\n : font.maxRightColumnCounter;\r\n\r\n return (\r\n !!colCounter &&\r\n _.range(1, colCounter + 1).map(counter => (\r\n
\r\n \r\n
\r\n ))\r\n );\r\n },\r\n [font?.code, font?.maxLeftColumnCounter, font?.maxRightColumnCounter]\r\n );\r\n\r\n const getLogoImage = React.useCallback(\r\n (code: string, hasLogoImgConfigured: boolean): string =>\r\n hasLogoImgConfigured\r\n ? `${AMAZON_BASE_URL}/fonts/${code}/logo.png`\r\n : `${AMAZON_BASE_URL}/general/not_yet.png`,\r\n []\r\n );\r\n\r\n const handleAddToCart = React.useCallback(() => {\r\n if (!isFontInCart(cart, font.id)) {\r\n dispatch(addRemoveToCart(font));\r\n }\r\n }, [dispatch, cart, font]);\r\n\r\n if (_.isEmpty(fonts) || _.isEmpty(allTags)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {font.name}\r\n {font.isNewFont && (\r\n {t(`${FONTS_NS}.new_font`)}\r\n )}\r\n {font.hasNewVersion && UPD}\r\n \r\n }>\r\n
\r\n
\r\n \r\n {getColImages('left')}\r\n
\r\n
{getColImages('right')}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{font.name}
\r\n
\r\n {t(`${FONTS_NS}.weight_label`)}:{' '}\r\n {getFontTagNames(font.weightIDs, allTags).join(' / ')}\r\n
\r\n
\r\n {t(`${FONTS_NS}.languages_label`)}:{' '}\r\n {getFontTagNames(font.supportedLanguageIDs, allTags).join(\r\n ' / '\r\n )}\r\n
\r\n
\r\n {t(`${FONTS_NS}.price_label`)}:{' '}\r\n
\r\n {getFontPrice()} {t(`${FONTS_NS}.euro`)}\r\n
\r\n
\r\n
\r\n {t(`${FONTS_NS}.add_to_cart`)}{' '}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Downloads
\r\n
\r\n {t(`${FONTS_NS}.download`)}{' '}\r\n \r\n {t(`${FONTS_NS}.here`)}\r\n {' '}\r\n {t(`${FONTS_NS}.download_text`)}\r\n
\r\n
\r\n {t(`${FONTS_NS}.download`)}{' '}\r\n \r\n {t(`${FONTS_NS}.here`)}\r\n {' '}\r\n {t(`${FONTS_NS}.download_all_text`)}\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(withMenu(FontDetails));\r\n","import React from 'react';\r\nimport { range } from 'lodash';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { ABOUT_NS, MENU_NS } from './Constants';\r\nimport withMenu from './MenuHOC';\r\nimport ScrollableContainer from './ScrollableContainer';\r\n\r\nconst LEFT_COL_TEXT_NO = 2;\r\nconst RIGHT_COL_TEXT_NO = 3;\r\n\r\nconst About: React.FC = () => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n
\r\n
\r\n {range(1, LEFT_COL_TEXT_NO + 1).map(num => (\r\n
\r\n {t(`${ABOUT_NS}.left_${num}`)}\r\n
\r\n ))}\r\n
\r\n
\r\n {range(1, RIGHT_COL_TEXT_NO + 1).map(num => (\r\n
\r\n {t(`${ABOUT_NS}.right_${num}`)}\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default withMenu(About);\r\n","import clsx from 'clsx';\r\n\r\nconst LinkTo: React.FC<{\r\n href: string;\r\n content?: string | JSX.Element;\r\n className?: string;\r\n}> = ({ href, content, className }) => (\r\n \r\n {content || href}\r\n \r\n);\r\n\r\nexport default LinkTo;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { MENU_NS } from './Constants';\r\nimport LinkTo from './LinkTo';\r\nimport withMenu from './MenuHOC';\r\nimport ScrollableContainer from './ScrollableContainer';\r\n\r\nconst LegalNotice: React.FC = () => {\r\n const { t, i18n } = useTranslation();\r\n\r\n const getBody = React.useCallback(() => {\r\n switch (i18n.language) {\r\n case 'en':\r\n return (\r\n
\r\n
\r\n
\r\n Anagrafi fonts are sold and distributed exclusively by{' '}\r\n Personalized / Fanourios Siskakis.
\r\n An Invoice or Receipt is issued and charged, as the case may\r\n be, with the Austrian VAT (20%).\r\n
\r\n
\r\n
\r\n
\r\n Personalized / Fanourios Siskakis\r\n
IT Services
\r\n
\r\n
\r\n
Address: Gattergasse 2A/1/20, 1110 Vienna, Austria
\r\n
Tel.: +43 680 5063773
\r\n
Bank: Easybank Austria
\r\n
IBAN: AT25 1420 0200 1229 2784
\r\n
BIC: BAWAATWW
\r\n
UID-Nr.: ATU78239158
\r\n
\r\n E-mail:{' '}\r\n {' '}\r\n ,{' '}\r\n \r\n
\r\n
\r\n Website:{' '}\r\n \r\n
\r\n
\r\n );\r\n case 'el':\r\n default:\r\n return (\r\n
\r\n
\r\n
\r\n Οἱ γραμματοσειρὲς Ἀναγραφὴ πωλοῦνται καὶ διακινοῦνται\r\n ἀποκλειστικὰ ἀπὸ τὴν ἐταιρεία{' '}\r\n Personalized / Φανούριος Σισκάκης.
\r\n Ἐκδίδεται Τιμολόγιο ἢ Ἀπόδειξη καὶ ἐπιβαρύνεται, κατὰ\r\n περίπτωση, μὲ ΦΠΑ Αὐστρίας (20%).\r\n
\r\n
\r\n
\r\n
\r\n Personalized / Fanourios Siskakis
IT Services
\r\n
\r\n
\r\n
Διεύθυνση: Gattergasse 2A/1/20, 1110 Vienna, Austria
\r\n
Tηλ.: +43 680 5063773
\r\n
Τράπεζα: Easybank Austria
\r\n
IBAN: AT25 1420 0200 1229 2784
\r\n
BIC: BAWAATWW
\r\n
UID-Nr.: ATU78239158
\r\n
\r\n E-mail:{' '}\r\n {' '}\r\n ,{' '}\r\n \r\n
\r\n
\r\n Website:{' '}\r\n \r\n
\r\n
\r\n );\r\n }\r\n }, [i18n.language]);\r\n\r\n return (\r\n \r\n {getBody()}\r\n \r\n );\r\n};\r\n\r\nexport default withMenu(LegalNotice);\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { MENU_NS } from './Constants';\r\nimport withMenu from './MenuHOC';\r\nimport ScrollableContainer from './ScrollableContainer';\r\n\r\nconst CustomServices: React.FC = () => {\r\n const { t, i18n } = useTranslation();\r\n\r\n const getBody = React.useCallback(() => {\r\n switch (i18n.language) {\r\n case 'en':\r\n case 'el':\r\n default:\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n Σχεδίαση γραμματοσειρῶν ἀποκλειστικῆς χρήσης\r\n
\r\n
\r\n Γιὰ μεγαλύτερη εὐελιξία ἀλλὰ καὶ ἰδιαιτερότητα στὴ χρήση\r\n τοῦ κειμένου ὑπάρχει ἡ δυνατότητα δημιουργίας\r\n γραμματοσειρῶν γιὰ ἐταιρικὴ ἢ προσωπικὴ χρήση μὲ\r\n ἀποκλειστικὰ δικαιώματα. Μπορεῖ, ἐπίσης, νὰ γίνει\r\n μετατροπὴ σὲ ἤδη ὑπάρχουσες οἰκογένειες γιὰ μεγαλύτερη\r\n οἰκονομία καὶ ταχύτητα. Τὰ δικαιώματα χρήσης (χρήση /\r\n μεταβίβαση / πώληση) στὶς γραμματοσειρὲς αὐτὲς ἀνήκουν\r\n ἀποκλειστικὰ στὸν πελάτη. Ὁ χρόνος ποὺ χρειάζεται γιὰ\r\n μιὰ τέτοια ἐργασία ποικίλει ἀπὸ ἕναν ἔως μερικοὺς μῆνες.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Σχεδίαση γραμματοσειρῶν μὲ βάση παλαιὰ χειρόγραφα ἢ\r\n ἰδιόγραφα κείμενα\r\n
\r\n
\r\n Δὲν εἶναι λίγες οἱ φορές, ποὺ μελετώντας παλιὰ\r\n χειρόγραφα, μᾶς ἐνθουσιάζουν καὶ μᾶς ἐμπνέουν τόσο πολὺ\r\n ποὺ θὰ θέλαμε νὰ δημιουργήσουμε ἕνα πολὺ προσωπικὸ ὕφος\r\n γραφῆς βασισμένο σὲ αὐτά. Ἡ διαδικασία εἶναι ἁπλὴ ἀλλά,\r\n βέβαια, χρονοβόρα. Δημιουργοῦμε καινούργιους χαρακτῆρες\r\n μὲ βάση τὰ ὑπάρχοντα γράμματα, πρῶτα στὸ χαρτὶ καὶ μετά,\r\n μὲ τὴ βοήθεια scanner, στὴν ὀθόνη τοῦ ὑπολογιστῆ.\r\n Ἀποκαθιστοῦμε τυχὸν ἀτέλειες ἢ καὶ ἐλλείψεις\r\n συγκεκριμένων γραμμάτων ποὺ ἔτυχε νὰ μὴν ἔχουν\r\n καταγραφεῖ στὸ χειρόγραφο (συνήθως κεφαλαῖα). Ἂν εἶναι\r\n ἐπιθυμητό, ἀκολουθοῦμε τοὺς σύγχρονους κανόνες σχεδίασης\r\n χαρακτήρων, χρησιμοποιοῦμε δηλαδὴ κοινὸ ὕψος καὶ γραμμὴ\r\n βάσης, ἐκτὸς ἂν ὑπάρχει λόγος γιὰ τὸ ἀντίθετο. Ἔτσι,\r\n δημιουργοῦμε μὲν γραμματοσειρὲς ποὺ εἶναι βασισμένες ἢ\r\n ἐμπνευσμένες ἀπὸ παλιὰ χειρόγραφα, ἀκολουθοῦμε ὅμως τοὺς\r\n σύγχρονους κανόνες αἰσθητικῆς τοῦ κειμένου. Ἡ τεχνολογία\r\n OpenType μᾶς δίνει πλέον τὴ δυνατότητα γιὰ συμπλέγματα\r\n χαρακτήρων, ποικιλίες σχεδίασης συγκεκριμένων χαρακτήρων\r\n καὶ ἄλλα πολλὰ χαρακτηριστικὰ τὰ ὁποῖα προσδίδουν στὸ\r\n κείμενο μιὰ ἐξαιρετικὰ ἰδιαίτερη εἰκόνα, κατὰ τὸ δοκοῦν.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Διορθώσεις προβλημάτων γραμματοσειρῶν\r\n
\r\n
\r\n Ὑπάρχει ἡ δυνατότητα ἀποκατάστασης προβλημάτων ποὺ\r\n μπορεῖ νὰ παρουσιαστοῦν στὴ χρήση μιᾶς γραμματοσειρᾶς,\r\n ὅπως:\r\n
\r\n - Ἀπουσία συγκεκριμένων χαρακτήρων (ἀρχαϊκῶν\r\n συμβόλων, τονούμενων λατινικῶν (λατινογενῶν\r\n ἀλφαβήτων), νομισματικῶν συμβόλων, κλασμάτων κ.λπ.),\r\n τύπων τονισμοῦ κ.λπ.\r\n
\r\n
\r\n - Δυσλειτουργικὲς ἀποστάσεις μεταξὺ τῶν χαρακτήρων\r\n (kerning) ἢ τῶν γραμμῶν τοῦ κειμένου\r\n (διάστιχο/leading) μιᾶς γραμματοσειρᾶς\r\n
\r\n
- Κακὴ σχεδίαση συγκεκριμένων χαρακτήρων
\r\n
\r\n - Διορθώσεις στὴ σχεδίαση τῶν ἀριθμητικῶν χαρακτήρων\r\n
\r\n
\r\n - Σχεδιασμὸς ἀριθμῶν μεταβλητῆς βάσης καὶ ὕψους\r\n (παλαιοῦ τύπου/oldstyle numerals)\r\n
\r\n
\r\n - Προσθήκη χαρακτήρων, συμβόλων, διακοσμητικῶν\r\n (ἀκόμα καὶ λογοτύπων!)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Ἐξελληνισμὸς ἢ ἐκλατινισμὸς γραμματοσειρῶν\r\n
\r\n
\r\n Δὲν εἶναι λίγες οἱ οἰκογένειες γραμματοσειρῶν, κυρίως\r\n αὐτὲς ποὺ προέρχονται ἀπὸ προηγούμενα χρόνια, στὶς\r\n ὁποῖες ἐπιβάλλεται νὰ σχεδιαστοῦν ἑλληνικοὶ ἢ λατινικοὶ\r\n χαρακτῆρες, ἀντίστοιχα. Μὲ βάση τὸ ὕφος ποὺ ἐπιθυμεῖ\r\n κανείς, μπορεῖ νὰ ἀποκτήσει μιὰ οἰκογένεια ἡ ὁποῖα θὰ\r\n περιέχει πλέον ὑποστήριξη τοῦ ἑλληνικοῦ ἢ τοῦ λατινικοῦ\r\n ἀλφαβήτου. Φυσικά, εἶναι δυνατὸν νὰ σχεδιαστοῦν ὅλα τὰ\r\n γνωστὰ λατινικὰ ἀλφάβητα, καθὼς καὶ τὰ κυριλλικά.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Μετατροπὴ γραμματοσειρῶν σὲ πολυτονικές\r\n
\r\n
\r\n Ἡ μετατροπὴ μιᾶς γραμματοσειρᾶς σὲ πολυτονικὴ εἶναι μιὰ\r\n διαδικασία ἡ ὁποία δὲν ἦταν αὐτονόητη παλαιότερα λόγῳ\r\n τῶν μεγάλων τεχνικῶν περιορισμῶν ποὺ ὑπῆρχαν πρὶν τὴν\r\n καθιέρωση τοῦ τύπου Unicode. Ἔτσι, ὑπάρχουν δεκάδες\r\n γραμματοσειρὲς οἱ ὁποῖες εἶναι πλέον τεχνικὰ δυνατὸν νὰ\r\n μετατραποῦν σὲ πολυτονικές.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Κατασκευὴ συμπλεγμάτων (ligatures) καὶ ἄλλων\r\n χαρακτηριστικῶν σὲ ἤδη ὑπάρχουσες γραμματοσειρές\r\n
\r\n
\r\n Ἡ ὕπαρξη συμπλεγμάτων χαρίζει στὸ κείμενο μιὰ εὐχάριστη\r\n καὶ αλαίσθητη εἰκόνα, ἕνα ἄρωμα καλλιγραφίας, ὅπου τὰ\r\n γράμματα συμπλέκονται ὄμορφα καὶ ἔξυπνα μεταξύ τους.\r\n Ἔτσι, τὸ κείμενό μας μπορεῖ νὰ ἀποκτήσει μιὰ αἴσθηση\r\n χειρόγραφης ἢ καλλιγραφικῆς εἰκόνας, ξεφεύγοντας ἀπὸ τὴν\r\n τυπικὴ διάταξη τῶν χαρακτήρων. Προϋπόθεση γιὰ τὴ\r\n δημιουργία συμπλεγμάτων εἶναι νὰ ὑποστηρίζονται τὰ\r\n χαρακτηριστικὰ OpenType ἀπὸ τὸ πρόγραμμα τὸ ὁποῖο\r\n χρησιμοποιοῦμε. Προγράμματα ὅπως τὸ Adobe InDesign,\r\n Adobe Illustrator, QuarkXPress, CorelDraw κ.ἄ.\r\n ὑποστηρίζουν (συνολικὰ ἢ μερικά) τὴ δυνατότητα αὐτή.\r\n Ἐκτὸς ἀπὸ τὴ σύμπλεξη χαρακτήρων μεταξύ τους, μποροῦμε,\r\n ἐκμεταλλευόμενοι τὴν τεχνολογία OpenType, νὰ παρέμβουμε\r\n στὸ κείμενο, μὲ τρόπους ποὺ χαρίζουν μιὰ ἀπαράμιλλη\r\n αἰσθητικὴ καὶ ἰδιαιτερότητα ὅπως:\r\n
\r\n - Εἰδικὰ συμπλέγματα (discretionary ligatures)\r\n
\r\n
- Κλάσματα ἀριθμῶν (fractions)
\r\n
\r\n - Ἀριθμοὺς μεταβλητῆς βάσης καὶ ὕψους (old style\r\n numerals)\r\n
\r\n
\r\n - Εἰδικὰ σχεδιασμένους ἀρχικοὺς χαρακτῆρες μιᾶς\r\n πρότασης ἢ τελικοὺς μιᾶς λέξης (swash)\r\n
\r\n
\r\n - Ἐναλλακτικὰ στυλιστικὰ σύνολα χαρακτήρων\r\n (stylistic sets)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Γραμματοσειρὲς ἀρχιγραμμάτων
\r\n
\r\n Μποροῦν νὰ σχεδιαστοῦν καὶ νὰ δημιουργηθοῦν εἰδικὲς\r\n γραμματοσειρὲς μὲ διακοσμητικὰ ἀρχιγράμματα ἀπὸ παλιὰ\r\n χειρόγραφα, ἰδιόγραφα ἢ βιβλία, γιὰ χρήση σὲ\r\n ἐκκλησιαστικὰ ἢ μὴ κείμενα.\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n }, [i18n.language]);\r\n\r\n return (\r\n \r\n {getBody()}\r\n \r\n );\r\n};\r\n\r\nexport default withMenu(CustomServices);\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { MENU_NS } from './Constants';\r\nimport LinkTo from './LinkTo';\r\nimport withMenu from './MenuHOC';\r\nimport ScrollableContainer from './ScrollableContainer';\r\n\r\nconst Contact: React.FC = () => {\r\n const { t, i18n } = useTranslation();\r\n\r\n const getBody = React.useCallback(() => {\r\n switch (i18n.language) {\r\n case 'en':\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n Distribution: Fanourios Siskakis /{' '}\r\n \r\n
\r\n
\r\n E-mail:{' '}\r\n \r\n ,{' '}\r\n \r\n
\r\n
\r\n Web site:{' '}\r\n \r\n
\r\n
\r\n
Design and research: Konstantinos F. Siskakis
\r\n
\r\n Web site:{' '}\r\n \r\n /\r\n
\r\n
Mob.: +30 697 7977052
\r\n
\r\n
\r\n
\r\n After choosing the fonts you want and sending them to\r\n the cart, you must fill in the information required in\r\n the form (Name, email, your property, and comments if\r\n any).\r\n
\r\n
\r\n For the sale of the fonts, an invoice/receipt from\r\n Personalized.at (Austria) is issued and sent via e-mail\r\n (invoicing@personalized.at).\r\n
\r\n
\r\n Please check your spam mails, in case our message is\r\n there.\r\n
\r\n
\r\n The fonts are sent to you to the e-mail you have\r\n declared, immediately after the bank deposit and the\r\n sending of the relevant receipt.\r\n
\r\n
\r\n \r\n );\r\n case 'el':\r\n default:\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n Διάθεση: Φανούριος Σισκάκης /{' '}\r\n \r\n
\r\n
\r\n E-mail:{' '}\r\n \r\n ,{' '}\r\n \r\n
\r\n
\r\n Web site:{' '}\r\n \r\n
\r\n
\r\n
Σχεδίαση: Kωνσταντῖνος Φ. Σισκάκης
\r\n
\r\n Web site:{' '}\r\n \r\n /\r\n
\r\n
Κιν. τηλ.: +30 697 7977052
\r\n
\r\n
\r\n
\r\n Μετὰ τὴν ἐπιλογὴ τῶν γραμματοσειρῶν ποὺ ἐπιθυμείτε καὶ\r\n τὴν ἀποστολή τους στὸ καλάθι, πρέπει νὰ συμπληρώσετε τὰ\r\n στοιχεία ποὺ ἀπαιτοῦνται στὴ φόρμα (Ὀνοματεπώνυμο,\r\n email, τὴν ἰδιότητά σας, καὶ σχόλια ἂν ὑπάρχουν).\r\n
\r\n
\r\n Γιὰ τὴν πώληση τῶν γραμματοσειρῶν ἐκδίδεται καὶ\r\n ἀποστέλεται, μέσω e-mail (invoicing@personalized.at),\r\n τιμολόγιο/ἀπόδειξη ἀπὸ τὴν ἐταιρεία Personalized.at\r\n (Αὐστρία).\r\n
\r\n
\r\n Παρακαλοῦμε, ἐλέγξτε τὰ spam mails σας, σὲ περίπτωση ποὺ\r\n τὸ μήνυμά μας βρίσκεται ἐκεῖ.\r\n
\r\n
\r\n Οἱ γραμματοσειρὲς σᾶς ἀποστέλονται, ἀμέσως μετά τὴν\r\n τραπεζικὴ κατάθεση καὶ τὴν ἀποστολὴ τοῦ σχετικοῦ\r\n ἀποδεικτικοῦ, στὸ e-mail ποὺ ἔχετε δηλώσει.\r\n
\r\n
\r\n \r\n );\r\n }\r\n }, [i18n.language]);\r\n\r\n return (\r\n \r\n {getBody()}\r\n \r\n );\r\n};\r\n\r\nexport default withMenu(Contact);\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { AMAZON_BASE_URL, MENU_NS } from './Constants';\r\nimport LinkTo from './LinkTo';\r\nimport withMenu from './MenuHOC';\r\nimport ScrollableContainer from './ScrollableContainer';\r\n\r\nconst UsefulInfo: React.FC = () => {\r\n const { t, i18n } = useTranslation();\r\n\r\n const getBody = React.useCallback(() => {\r\n switch (i18n.language) {\r\n case 'el':\r\n case 'en':\r\n return (\r\n
\r\n
\r\n
ΧΡΗΣΗ ΠΟΛΥΤΟΝΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ
\r\n
\r\n Χρήση πολυτονικών στὸ λειτουργικὸ Microsoft Windows PC\r\n
\r\n
\r\n Οἱ ἐκδόσεις τῶν Microsoft Windows ὑποστηρίζουν πολυτονικὴ\r\n Ἑλληνικὴ γραφὴ (ψιλή, δασεία, περισπωμένη, ὑπογεγραμμένη,\r\n βαρεία, ὀξεία, κλπ.) καὶ ἀκολουθεῖ τὸ ἐπίσημο Unicode(i)\r\n πρότυπο γιὰ τοὺς ἐλληνικοὺς πολυτονικοὺς χαρακτῆρες ὅπως\r\n ἔχουν κωδικοποιηθεῖ(ii) ἀπὸ τὸ “Unicode Consortium”(iii).\r\n
\r\n
\r\n Γιὰ νὰ εἶναι δυνατὴ ἡ γραφὴ πολυτονικῶν κειμένων στὰ Windows\r\n PC πρέπει νὰ εἶναι ἐγκατεστημένα:\r\n
α. Τὸ Ἑλληνικὸ πολυτονικὸ πληκτρολόγιο καὶ
\r\n
\r\n β. Γραμματοσειρὲς οἱ ὁποῖες ὑποστηρίζουν τὸ πολυτονικὸ\r\n σύστημα. Κάποιες ἀπὸ τὶς γραμματοσειρὲς τῆς Microsoft\r\n ποὺ ὑποστηρίζουν τὴν πολυτονικὴ γραφὴ εἶναι οἱ\r\n ἀκόλουθες:\r\n
\r\n
-Arial
\r\n
-Courier New
\r\n
-Georgia
\r\n
-Microsoft Sans
\r\n
-Palatino Linotype
\r\n
-Segoe
\r\n
-Tahoma
\r\n
-Verdana
\r\n
\r\n
\r\n
\r\n Ἐγκατάσταση ἑλληνικοῦ πληκτρολογίου\r\n
\r\n
\r\n Στὸν «Πίνακα Ἐλέγχου» (Control Panel) ἐπιλέγουμε «Ὤρα,\r\n Γλώσσα καὶ Περιοχή» (Clock, Language and Region). Ἐπιλέγουμε\r\n «Γλώσσα» (Language) καὶ στὴ συνέχεια, «Ἐπιλογές» (Options)\r\n γιὰ τὰ «Ἑλληνικά».\r\n
\r\n Στὴν θέση «Ἐπιλογὲς γλώσσας» (Language options), πρέπει\r\n κάνοντας κλὶκ στὴν ἐπιλογὴ «Προσθήκη μεθόδου εἰσαγωγῆς» (Add\r\n an input method) νὰ επιλέξουμε «Ἑλληνικά - Ἑλληνικὰ\r\n πολυτονικά» (Greek Polytonic) καὶ ἐπιλέγουμε «Προσθήκη»\r\n (Add), κάτω δεξιά.\r\n
\r\n Ἐπιλέγουμε «Ἀποθήκευση» (Save).\r\n
\r\n Μὲ τὸν συνδυασμὸ πλήκτρων Control + Shift ἢ WinKey +\r\n spacebar μπορoῦμε νὰ ἐναλλάσσουμε κυκλικὰ τὴ γλῶσσα ποὺ\r\n ἐπιθυμοῦμε.\r\n
\r\n Οἱ συνδυασμοὶ πλήκτρων γιὰ πολυτονικὴ γραφὴ εἶναι οἱ ἐξῆς\r\n (ἐφόσον ἔχει ἐπιλεγεῖ τὸ Greek Polytonic πληκτρολόγιο):\r\n
\r\n
\r\n Γιὰ τὰ ΠΕΖΑ ὁ συνδυασμὸς εἶναι:\r\n
\r\n Alt + Shift + νεκρὸ πλῆκτρο* + φωνῆεν\r\n
- Πατῆστε τὰ πλήκτρα Alt + Shift + νεκρὸ πλῆκτρο.\r\n
- Ἐλευθερῶστε τὰ πλήκτρα καὶ στὴν συνέχεια πατῆστε τὸ\r\n ἐπιθυμητὸ φωνῆεν.\r\n
\r\n *νεκρὸ πλῆκτρο: Εἶναι τὸ πλῆκτρο ποὺ κρατάει στὴ μνήμη τὸ\r\n σημεῖο στίξης, ὥστε νὰ ἐμφανιστεῖ μόλις πατηθεῖ τὸ ἐπιθυμητὸ\r\n φωνῆεν.\r\n
\r\n
\r\n Γιὰ ΚΕΦΑΛΑΙΑ, ὁ συνδυασμὸς γίνεται ὡς ἐξῆς:\r\n
\r\n Alt + Shift + νεκρό πλήκτρο + φωνήεν\r\n
\r\n 1ος τρόπος\r\n
- Πατῆστε τὰ πλῆκτρα Alt + Shift + νεκρὸ πλῆκτρο.\r\n
- Ἐλευθερῶστε τὰ πλήκτρα.\r\n
- Πατῆστε καὶ κρατῆστε πατημένο τὸ Shift, κάνοντας\r\n κλὶκ στὸ ἐπιθυμητὸ φωνῆεν.\r\n
\r\n 2ος τρόπος\r\n
- Πατῆστε τὸ Caps Lock.\r\n
- Πατῆστε τὰ πλήκτρα Alt + Shift + νεκρὸ πλῆκτρο.\r\n
- Ἐλευθερῶστε τὰ πλήκτρα καὶ στὴν συνέχεια πατῆστε τὸ\r\n ἐπιθυμητὸ φωνῆεν.\r\n
\r\n
\r\n (i) Unicode™- Unicode εἶναι σῆμα κατατεθὲν τῆς Unicode, Inc.\r\n
\r\n (ii) Ἑλληνικὴ πολυτονικὴ κωδικοσελίδα σύμφωνα μὲ τὸ Unicode\r\n 2.0 standard\r\n
\r\n (iii) Unicode Consortium: Εἶναι ὑπεύθυνο γιὰ τὸν ὁρισμὸ τῆς\r\n συμπεριφορᾶς καὶ τῶν σχέσεων μεταξὺ Unicode χαρακτήρων καὶ\r\n τὴν παροχὴ τεχνικῶν πληροφοριῶν γιὰ αὐτά.\r\n
\r\n
\r\n
\r\n
ΑΡΧΑΪΚΑ ΣΥΜΒΟΛΑ
\r\n Μερικὲς χρήσιμες ἱστορικὲς πληροφορίες γιὰ τὴν προέλευση τῶν\r\n ἀρχαϊκῶν συμβόλων τῆς ἑλληνικῆς γλώσσας, τοῦ νοήματος καὶ τῆς\r\n σημασίας τους.\r\n
\r\n
\r\n
ΚΟΠΠΑ
\r\n
\r\n Τὸ κόππα (Ϟ,ϟ) εἶναι γράμμα τῶν πρώιμων ἑλληνικῶν ἀλφαβήτων\r\n μεταξὺ τοῦ -π- καὶ τοῦ -ρ-, ποὺ ἰσοδυναμοῦσε ἠχητικὰ μὲ τὸ\r\n -κ-. Ἐνῷ τὸ γράμμα κάππα χρησιμοποιήθηκε στὴν ἑλληνικὴ γιὰ\r\n νὰ δηλώσει στὴ γραφή, ὡς τὰ μέσα περίπου τοῦ 6ου π.Χ. αἰῶνα,\r\n τὸ ἄηχο, κλειστὸ οὐρανικὸ σύμφωνο ποὺ προφέρουμε λ.χ. στὰ\r\n νεοελληνικά, κυρία - καὶ, τὴν ἴδια περίοδο γιὰ τὴν ἀπόδοση\r\n τοῦ ἄηχου κλειστοῦ ὑπερωικοῦ συμφώνου πρὸ τῶν - ο- καὶ -υ-,\r\n αὐτοῦ ποὺ προφέρουμε σήμερα στὶς λέξεις κόσμος - ἀκούω,\r\n χρησιμοποιήθηκε τὸ γράμμα κόππα (Ϟ). Ἔτσι, στὰ ἀρχαϊκὰ\r\n ἑλληνικὰ ἀλφάβητα, βρίσκουμε νὰ γράφονται ΔΙΚΕ (=δίκη),\r\n ΚΑΛΟΣ(=καλός), ΑΛΚΙΒΙΑΔΗΣ(=Ἀλκιβιάδης), ἀλλὰ ΚΑϞΟΣ (=κακός),\r\n ϞΟΡΕ(=κόρη), ΛΕϞΥΘΟΣ(=λήκυθος), ϞΟΡΙΝΘΟΣ(=Κόρινθος).\r\n Φωνολογικῶς, ἡ χρήση δύο διαφορετικῶν φωνημάτων στὶς\r\n ἀρχαϊκές, κυρίως, ἐπιγραφὲς σημαίνει ὅτι τὸ φωνολογικὸ\r\n σύστημα τῆς ἑλληνικῆς διέθετε δύο ἀλλόφωνα τοῦ -κ-: ἕνα\r\n οὐρανικὸ καὶ ἕνα ὑπερωικό, κάτι ἀντίστοιχο δηλαδὴ στὴν\r\n προφορά -ἀλλὰ ὄχι στὴ γραφή- μὲ αὐτὸ ποὺ συμβαίνει στὴ νέα\r\n ἑλληνική. Ἡ γενικευμένη χρήση ἑνὸς μόνο -κ- (τοῦ κάππα) ἀπὸ\r\n τὰ μέσα τοῦ 6ου π.Χ. αἰῶνα σημαίνει εἴτε ὅτι ἡ διαφορὰ αὐτὴ\r\n στὴν προφορὰ ἔπαψε ἀπὸ τότε νὰ ὑπάρχει, εἴτε ὅτι ἔπαψε ἁπλῶς\r\n νὰ δηλώνεται στὴ γραφή.\r\n
\r\n
\r\n Ἐνῷ γιὰ τὴ γραφὴ λέξεων χρησιμοποιήθηκε ἡ μορφὴ τοῦ ἀρχαϊκοῦ\r\n κόππα (Ϙ,ϙ), στὸ ἑλληνικὸ σύστημα ἀρίθμησης τὸ κόππα\r\n χρησιμοποιεῖται μέχρι καὶ σήμερα μὲ τὴ μορφὴ τοῦ\r\n κεραυνόμορφου κόππα (Ϟ,ϟ) γιὰ νὰ δηλώσει τὸν ἀριθμὸ 90. Στὸ\r\n λατινικὸ ἀλφάβητο τὸ γράμμα κόππα ἀντιστοιχεῖ στὸ γράμμα\r\n -Q-. Ἡ παροιμία «Οὐδὲ κόππα γιγνώσκων» λέγονταν γιὰ τὸν\r\n ἐντελῶς ἀδαῆ ἄνθρωπο. Στὸ σύστημα κωδικοποίησης Unicode τὸ\r\n κεφαλαῖο Κόππα ἔχει τὸν κωδικὸ U+03DE (Greek Letter Koppa),\r\n ἐνῷ τὸ πεζό, U+03DF (Greek Small Letter Koppa). Στὸ σύστημα\r\n κωδικοποίησης Unicode τὸ κεφαλαῖο ἀρχαϊκὸ Κόππα ἔχει τὸν\r\n κωδικὸ U+03D8 (Greek Letter Archaic Koppa), ἐνῷ τὸ πεζό,\r\n U+03D9 (Greek Small Letter Archaic Koppa).\r\n
\r\n
\r\n
\r\n
ΣΑΜΠΙ
\r\n
\r\n Τὸ σαμπί, ἢ πιθανῶς δίσιγμα, εἶναι παλαιὸ καὶ παρωχημένο\r\n πλέον γράμμα τοῦ ἑλληνικοῦ ἀλφαβήτου. Ἐμφανίζεται σὲ\r\n ἀρχαϊκὲς γραφὲς τῆς Μικράς Ἀσίας στὴ θέση τοῦ διπλοῦ -σ-.\r\n Ἔτσι, σὲ ἐπιγραφὴ τῆς Ἐφέσσου, ἡ λέξη τεσσαράκοντα\r\n ἐμφανίζεται ὡς τε῾Τ῾αραϞοντα, μὲ τὴν ἰωνικὴ μορφὴ τοῦ σαμπί:\r\n ῾Τ ποὺ μοιάζει μὲ αυτὴ τοῦ γράμματος Τ. Ἡ ἀρχικὴ ὀνομασία\r\n τοῦ γράμματος ἦταν πιθανῶς «δίσιγμα». Ἡ ὀνομασία σαμπὶ (ποὺ\r\n προῆλθε ἀπὸ τὴ φράση «Ὡσὰν πῖ» -σὰν τὸ γράμμα πῖ) εἶναι πολὺ\r\n μεταγενέστερη, τῶν ὄψιμων βυζαντινῶν χρόνων, ὅταν τὸ γράμμα\r\n ἐξελισσόμενο πρὸς τὴ μορφὴ κεκλιμένου - Π- (Ϡ)\r\n χρησιμοποιήθηκε στὸ ἑλληνικὸ σύστημα ἀρίθμησης γιὰ νὰ\r\n δηλώσει τὸν ἀριθμὸ 900.\r\n
\r\n
\r\n Στὸ σύστημα κωδικοποίησης Unicode τὸ κεφαλαῖο Σαμπὶ ἔχει τὸν\r\n κωδικὸ U+03E0 (Greek Letter Sampi), ἐνῷ τὸ πεζό, U+03E1\r\n (Greek Small Letter Sampi).\r\n
\r\n
\r\n
\r\n
ΣΤΙΓΜΑ
\r\n
\r\n Τὸ στίγμα (Ϛ, ϛ) εἶναι ἕνα γράμμα τοῦ ἑλληνικοῦ ἀλφαβήτου,\r\n ποὺ στὴν ἑλληνικὴ ἀρίθμηση ἰσοδυναμεῖ μὲ τὸν ἀριθμὸ 6.\r\n
\r\n
\r\n Τὸ σύμβολο Ϛ δὲν ἀντιστοιχεῖ σὲ κάποιο φθόγγο, ἀλλὰ\r\n οὐσιαστικὰ ἀποτελεῖ σύμπλεγμα (λιγατούρα) τῶν χαρακτήρων -σ-\r\n καὶ -τ-, ποὺ ἐχρησιμοποιεῖτο γιὰ τὴ γραφὴ λέξεων ὅπως\r\n στρατός (Ϛρατός), στύλος (Ϛύλος), Κωνσταντῖνος (ΚωνϚαντῖνος)\r\n κ.λπ.\r\n
\r\n
\r\n Τὸν Μεσαίωνα, ἀφοῦ τὸ δίγαμμα εἶχε πλέον ἐκπέσει σὲ ἀχρηστία\r\n ὡς γράμμα στὴν κοινὴ ἑλληνικὴ καὶ ἐχρησιμοποιεῖτο μόνο ὡς\r\n ἀριθμητικὸ γιὰ νὰ ἀναπαραστήσει τὸν ἀριθμὸ -6-, τὸ στίγμα\r\n ταυτίστηκε μὲ τὸ δίγαμμα λόγῳ σχεδιαστικῆς ὁμοιότητας (στὴν\r\n καλλιγραφία). Ἔτσι, τὸ ἀντικατέστησε ὡς σύμβολο τοῦ ἀριθμοῦ\r\n -6-.\r\n
\r\n
\r\n Σήμερα, χρησιμοποιεῖται σπάνια -σὲ κλασικὰ κείμενα γιὰ\r\n παράδειγμα- καὶ τὴ θέση του στὸ ἑλληνικὸ σύστημα ἀρίθμησης\r\n ἔχει πάρει τὸ -στ΄-.\r\n
\r\n
\r\n Στὸ σύστημα κωδικοποίησης Unicode τὸ κεφαλαῖο Στίγμα ἔχει\r\n τὸν κωδικὸ U+03DA (Greek Letter Stigma), ἐνῷ τὸ πεζό, U+03DB\r\n (Greek Small Letter Stigma).\r\n
\r\n
\r\n
\r\n
ΔΙΓΑΜΜΑ
\r\n
\r\n Τὸ δίγαμμα (Ϝ ϝ) (Ϝαυ) εἶναι τὸ ἕκτο γράμμα τοῦ ἀρχαίου\r\n ἑλληνικοῦ ἀλφαβήτου (ἑτυμολογία: δις + γάμμα – διττό, διπλό,\r\n δύο φορὲς γάμμα ἢ γάμα). Τὴν ὀνομασία του ὀφείλει στὸ σχῆμα\r\n του (δύο κεφαλαῖα γάμμα). Ἡ φωνητικὴ ἀξία του ἦταν ἕνας\r\n ἀσθενής, διχειλικὸς συμφωνικὸς φθόγγος, ποὺ πλησίαζε τὸν ἦχο\r\n τοῦ σημερινοῦ ἑλληνικοῦ -β-. Ἡ ἀσθενής ἄρθρωσή του ἦταν καὶ\r\n ὁ λόγος τῆς βαθμιαίας σίγησης καὶ πλήρους τελικὰ ἀποβολῆς\r\n του ἀπὸ τὴν ἑλληνικὴ γλῶσσα. Πρώτοι ἀπὸ τοὺς ἀρχαίους\r\n Ἕλληνες ἔπαψαν νὰ προφέρουν τὸ δίγαμμα οἱ Ἴωνες καὶ οἱ\r\n Ἀττικοί. Στὴ Λακωνικὴ διάλεκτο τὸ δίγαμμα διατηρήθηκε ὡς τὸν\r\n 2ο π.Χ. αἰώνα. Σὲ ἄλλες λέξεις ἀποδόθηκε μὲ τὴ δίφθογγο\r\n -ου-, τὰ γράμματα -υ-, -β-, -φ- καὶ τὴ δασεία, ποὺ πλέον\r\n χρησιμοποιεῖται μόνο στὸ πολυτονικὸ σύστημα γραφῆς, (λ.χ.\r\n Ϝορώ - ὁρῶ), σὲ ἄλλες πάλι ἔχει ἐκπέσει καὶ χαθεῖ (λ.χ.\r\n Ϝοίνος - οἶνος).\r\n
\r\n
\r\n Τὴν ὕπαρξη τοῦ διγάμματος στὸν Ὅμηρο κατέδειξε ὁ ἄγγλος\r\n φιλόλογος Bentley, ἐξηγώντας πλῆθος μετρικῶν ἀνωμαλιῶν καὶ\r\n χασμωδιῶν στὴ γλώσσα τῶν ὁμηρικῶν ἐπῶν, ποὺ ὀφείλονταν στὴν\r\n ἀπουσία τοῦ γράμματος κατὰ τὴ καταγραφὴ τῶν ἐπῶν μὲ τὸ\r\n κλασσικὸ εὐκλείδιο ἀλφάβητο τῶν 24 γραμμάτων (σὲ χρήση ἀπὸ\r\n τὸ 403 π.Χ μέχρι σήμερα) ποὺ δὲν περιεῖχε πλέον τὸ δίγαμμα,\r\n τὸ κόππα καὶ τὸ σαμπί.\r\n
\r\n
\r\n Στὴν Τσακωνική γλώσσα ακούγονται μέχρι καὶ σήμερα σὲ\r\n ορισμένες λέξεις απομεινάρια τοῦ αρχαίου αυτοῦ φθόγγου ποὺ\r\n προφέρεται σήμερα [v].\r\n
\r\n
\r\n Στὸ ἑλληνικὸ σύστημα ἀρίθμησης τὸ δίγαμμα χρησιμοποιεῖται μὲ\r\n τὴν αριθμητική του μορφὴ ποὺ ὀνομάζεται καὶ στίγμα:\r\n (Ϛ΄,στ΄), ἐπειδὴ μοιάζει μὲ τὸ συνδιασμό τῶν γραμμάτων σίγμα\r\n καὶ ταῦ, γιὰ νὰ δηλώσει τὸν ἀριθμὸ 6.\r\n
\r\n
\r\n Στὸ σύστημα κωδικοποίησης Unicode τὸ κεφαλαῖο Δίγαμμα ἔχει\r\n τὸν κωδικὸ U+03DC (Greek Letter Digamma), ἐνῷ τὸ πεζό,\r\n U+03DD (Greek Small Letter Digamma).\r\n
\r\n
\r\n
\r\n
HTA
\r\n
\r\n Τὸ γράμμα ἧτα (κεφαλαῖο Η, πεζό η) εἶναι τὸ ἕβδομο γράμμα\r\n τοῦ ἑλληνικοῦ ἀλφαβήτου.\r\n
\r\n
Στὸ εὐκλείδιο ἀλφάβητο κατεῖχε τὴν ὄγδοη θέση.
\r\n
\r\n Στὸ ἑλληνικὸ σύστημα ἀρίθμησης ἔχει ἀριθμητικὴ ἀξία η´=8.\r\n
\r\n
\r\n Προέρχεται ἀπὸ τὸ φοινικικὸ γράμμα heth καὶ σὲ ὀρισμένα\r\n τοπικὰ ἀλφάβητα τῆς ἀρχαίας Ἑλλάδας διατήρησε καὶ τὴν μορφὴ\r\n αὐτήν. Στὰ περισσότερα ἀλφάβητα συμβόλιζε τὸν δασὺ ἦχο τοῦ\r\n πνεύματος τῆς δασείας καὶ προφερόταν ὡς ἧτα (hēta). Στὸ\r\n ἰωνικὸ ἀλφάβητο ὅμως, ἐπειδὴ ἡ ἰωνικὴ διάλεκτος ἀπώλεσε τὸν\r\n ἀρχικὸ δασὺ φθόγγο στὶς λέξεις («ψίλωση»), κατέληξε νὰ\r\n προφέρεται ὡς ἧτα (ēta) καὶ νὰ συμβολίζει τὸ μακρόχρονο\r\n φωνῆεν [ē]. Ὅταν ὅμως καθιερώθηκε τὸ ἰωνικὸ ἀλφάβητο σὲ\r\n πολλὲς περιοχὲς τῆς ἀρχαίας Ἑλλάδας, προέκυψε ἡ ἀνάγκη νὰ\r\n ἀποδίδεται μὲ κάποιον τρόπο ὁ δασὺς φθόγγος, μιὰ καὶ τὸ ἧτα\r\n ἦταν πλέον [ē]. Ἔτσι, κατέληξαν νὰ χρησιμοποιοῦνται τὰ δύο\r\n μισὰ τοῦ Η, τὸ μὲν ἀριστερὸ ἧτα (├) ὡς δασύς φθόγγος, τὸ δὲ\r\n δεξιὸ γιὰ νὰ ἀποδώσει τὴν ἔλλειψη δασύτητας ἧτα (┤). Τὰ\r\n πνεύματα δασεῖα ( ῾ ) καὶ ψιλὴ ( ᾿ ) ὅπως τὰ ξέρουμε σήμερα\r\n προέκυψαν ἀπὸ τὸ ἀριστερὸ καὶ τὸ δεξί μισὸ τοῦ Ἡ ἀντίστοιχα.\r\n Στὴ σύγχρονη προφορὰ ταυτίζεται μὲ τὸ -ι-. Ἡ ἐξέλιξη αὐτὴ\r\n στὴν προφορὰ πραγματοποιήθηκε κατὰ τὴν περίοδο τῆς κοινῆς\r\n ἑλληνικῆς καὶ ὀνομάστηκε ἰωτακισμός.\r\n
\r\n
\r\n Τὸ Ἡ ἀντιστοιχεῖ στὸ λατινικὸ H h, ὅταν συμβολίζει τὸν ἦχο\r\n τῆς δασείας (π.χ. ῾Ελλάς → Hellas), ἀλλὰ στὸ E e (π.χ. Ἄρης\r\n → Ares) ἢ στὸ I i, ὅταν συμβολίζει φωνῆεν (π.χ. Ἀθήνα →\r\n Athina).\r\n
\r\n
\r\n Τὸ Ἡ συμβόλιζε σὲ ἕνα ἀρχαιότερο ἑλληνικὸ σύστημα ἀρίθμησης,\r\n τὸ ἀκροφωνικὸ σύστημα ἀρίθμησης, τὸν ἀριθμὸ 100, ἀπὸ τὸ\r\n πρῶτο γράμμα τῆς λέξης ἑκατό, ποὺ γράφονταν ΗΕΚΑΤΟΝ (ὅπου τὸ\r\n ἀρχικὸ Ἡ ἀντικαταστάθηκε τελικὰ ἀπὸ τὸ πνεῦμα τῆς δασείας).\r\n
\r\n
\r\n
\r\n
ΣΑΝ
\r\n
\r\n Δωρικὸ γράμμα σὰν (Ϻ, ϻ) τὸ ὁποῖο χρησιμοποιήθηκε γιὰ νὰ\r\n ἀποδώσει, πιθανῶς, μιὰ μορφὴ συρριστικοῦ συμφώνου ποὺ\r\n φωνητικὰ προσέγγιζε τὸ -ts- ἢ τὸ -s-.\r\n
\r\n
\r\n «Τὸ Δωριέες μὲν σὰν καλέουσι, Ἴωνες δὲ σίγμα». Ἡρόδοτος.\r\n
\r\n
\r\n Ἀκόμα καὶ ὁ ὅρος σαμφορά (ἐνν. ἵππος), πλάστηκε (πρβλ.\r\n Ἀριστοφ. Ἱππ 603) γιὰ νὰ χαρακτηρίσει τοὺς ἵππους τῆς\r\n Σικυῶνος (Ϻικύων) ποὺ ἔφεραν Ϻ) ἦταν δηλαδή στιγματισμένοι\r\n μὲ τὸ γράμμα σάν, ἐν ἀντιθέσει πρὸς τοὺς ἵππους τῆς Κορίνθου\r\n (Ϙόρινθος) ποὺ ἔφεραν τὸ χαρακτηριστικὸ τοῦ γράμματος κόππα\r\n (ἐξ οὗ καὶ κοππατίαι).\r\n
\r\n
Στὸ ἴδιο ἀλφάβητο δὲν συνυπῆρχαν σίγμα καὶ σάν.
\r\n
\r\n Στὸ σύστημα κωδικοποίησης Unicode τὸ κεφαλαῖο Σὰν ἔχει τὸν\r\n κωδικὸ U+03FA (Greek Letter Stigma), ἐνῷ τὸ πεζό, U+03FB\r\n (Greek Small Letter Stigma).\r\n
\r\n
\r\n
\r\n
ΣΩ
\r\n
\r\n Τὸ Σῶ (Ϸ, ϸ) εἶναι γράμμα ποὺ χρησιμοποιήθηκε γιὰ τὴ γραφή\r\n τῆς βακτριανῆς γλώσσας, ὅταν αὐτὴ γραφόταν μὲ τὸ ἑλληνικό\r\n ἀλφάβητο.\r\n
\r\n
\r\n Στὴ Βακτριανή (σήμερα βόρειο Ἀφγανιστάν), μετὰ ἀπὸ τὴν\r\n κατάκτησή της ἀπὸ τὸν Μέγα Ἀλέξανδρο, ἐπίσημη γλώσσα ἦταν τὰ\r\n ἑλληνικά. Περίπου δύο αἰῶνες ἀργότερα, αὐτὸ τὸ καθεστὼς\r\n ἄλλαξε καὶ τὰ ἑλληνικὰ ἔχασαν τὴν ἐπίσημη θέση τους. Παρ’\r\n ὅλα αὐτά, οἱ ἰθαγενεῖς συνέχιζαν νὰ γράφουν τὴ γλώσσα τους\r\n μὲ τὸ ἑλληνικὸ ἀλφάβητο, στὸ ὀποὶο εἶχε προστεθεῖ τὸ Σῶ, γιὰ\r\n νὰ ἀποδώσει πιθανῶς μιὰ μορφὴ συριστικοῦ συμφώνου ποὺ\r\n φωνητικὰ προσέγγιζε τὸ παχὺ σίγμα, ὅπως στὴν ἀγγλικὴ λέξη\r\n shoot, ἢ τὴν γαλλικὴ chateau.\r\n
\r\n
\r\n Τὸ Σῶ δὲν χρησιμοποιήθηκε ποτὲ γιὰ τὴ γραφὴ ἑλληνικῶν\r\n λέξεων. Τὸ σχῆμα του μοιάζει μὲ τὸ -Ρ- ἂν προεκτείνουμε τὴν\r\n κάθετη γραμμὴ πρὸς τὰ πάνω, ἢ μὲ τὸ -Φ- χωρὶς τὸ ἀριστερὸ\r\n ἡμικύκλιο. Λόγῳ τῆς ὁμοιότητάς του μὲ τὸ Ρῶ, τὸ βακτριανὸ\r\n γράμμα ὀνομάστηκε Σῶ, μετά ἀπὸ πρόταση γλωσσολόγων.\r\n
\r\n
\r\n Στὸ σύστημα κωδικοποίησης Unicode τὸ κεφαλαῖο Σῶ ἔχει τὸν\r\n κωδικὸ U+03F7 (Greek Capital Letter Sho), ἐνῷ τὸ πεζό,\r\n U+03F8 (Greek Small Letter Sho).\r\n
\r\n
\r\n
\r\n
\r\n Μπορεῖτε{' '}\r\n {' '}\r\n νὰ κατεβάστε τὸ ἀρχεῖο “archaic_characters.zip” (1.3Mb) μὲ\r\n μιὰ σύντομη ἀναφορὰ στὰ ἀρχαϊκὰ σύμβολα τοῦ ἑλληνικοῦ\r\n ἀλφαβήτου, τὸ νόημα καὶ τὴ σημασία τους καθὼς καὶ τὸν τρόπο\r\n εἰσαγωγῆς τους μέσῳ τοῦ συστήματος Unicode.\r\n
\r\n
\r\n
\r\n
\r\n Πηγή: -\r\n ἐπεξεργασία: Κωνσταντῖνος Σισκάκης -{' '}\r\n \r\n
\r\n
\r\n
\r\n
ΣΗΜΕΙΑ ΣΤΙΞΕΩΣ
\r\n
Τελεία ( . )
\r\n
\r\n Ἡ τελεία ἀνταποκρίνεται σὲ σταμάτημα ἢ κατέβασμα τῆς φωνῆς.\r\n Σημειώνεται:\r\n
\r\n
\r\n α. στὸ τέλος μιᾶς πρότασης καὶ δείχνει πὼς ὅ,τι εἰπώθηκε\r\n ἔχει ἀκέραιο νόημα: Τὸ αὐτοκίνητο εἶναι ἄσπρο.\r\n
\r\n
\r\n
\r\n β. ὕστερα ἀπὸ μιὰ συντομογραφία: π.χ., κτλ. Ἐξαιροῦνται\r\n μερικὲς συντομογραφίες ποὺ σχετίζονται μὲ τὶς διευθύνσεις\r\n τοῦ ὁρίζοντα, ποὺ δὲν τὴν παίρνουν, π.χ.: Α= Ἀνατολή,\r\n ἀνατολικός, ἀνατολικά, ΝΔ = νοτιοδυτικός, νοτιοδυτικὰ κτλ.\r\n Ὅταν πρόκειται, ὅμως, γιὰ προσδιορισμὸ τόπων, προσθέτουμε\r\n στὶς συντομογραφίες Α, Β κτλ. μιὰ τελεία: ἡ Β. Ἀμερική, ἡ Ν.\r\n Εὐρώπη κτλ.\r\n
\r\n
\r\n
\r\n γ. σὲ πολυψήφιους ἀριθμούς, χωρίζοντας σὲ τριάδες τὰ ψηφία\r\n μὲ ἀρχὴ ἀπὸ τὰ δεξιά (π.χ., 2.234.456). Οἱ τετραψήφιοι\r\n ἀριθμοὶ καὶ οἱ χρονολογίες δὲ χρειάζονται τελεία (π.χ.,\r\n 1821).\r\n
\r\n
\r\n
\r\n Μπορεῖ νὰ χρησιμοποιηθεῖ τελεία μετὰ ἀπὸ ἕνα ἀπόλυτο\r\n ἀριθμητικὸ γιὰ νὰ νοηθεῖ ὡς τακτικό: 9. = ἔνατος. (Ἡ χρήση\r\n αὐτὴ εἶναι σπάνια.)\r\n
\r\n
\r\n
\r\n Ἡ τελεία τοῦ τέλους δὲ σημειώνεται σὲ τίτλους βιβλίων, σ’\r\n ἐπιγραφὲς καὶ σ’ ἐπικεφαλίδες.\r\n
\r\n
\r\n
Ἡ τελεία καὶ τὰ ἄλλα σημεῖα τῆς στίξης:
\r\n
\r\n Ὅταν ὑπάρχουν εἰσαγωγικὰ στὸ κείμενο, ἡ τελεία σημειώνεται\r\n πάντα ἔξω ἀπὸ αὐτά. Τὸ ἴδιο ἰσχύει στὶς περιπτώσεις χρήσης\r\n παρενθέσεων, ἀγκυλῶν κτλ. Ὡστόσο, ὅταν μέσα στὴν παρένθεση\r\n ὑπάρχει ὁλόκληρη περίοδος, τότε ἡ τελεία σημειώνεται μέσα\r\n στὴν παρένθεση.\r\n
\r\n
\r\n
\r\n Τελεία δὲν σημειώνεται μετὰ τὸ ἐρωτηματικό, τὸ θαυμαστικὸ\r\n καὶ τὰ ἀποσιωπητικά.\r\n
\r\n
\r\n
\r\n
\r\n Ἄνω τελεία ( . ) [Alt+0183]\r\n
\r\n
\r\n Ἡ ἄνω τελεία δηλώνει ἀρκετὰ στενὸ νοηματικὸ σύνδεσμο μὲ τὰ\r\n προηγούμενα καὶ χρησιμεύει γιὰ νὰ σημειώνουμε μικρότερη\r\n διακοπὴ παρὰ μὲ τὴν τελεία καὶ μεγαλύτερη παρὰ μὲ τὸ κόμμα.\r\n Εἰδικότερα ἡ ἄνω τελεία:\r\n
\r\n
\r\n
\r\n Μέσα στὴν περίοδο χωρίζει ὁμάδες ἀπὸ προτάσεις. Οἱ προτάσεις\r\n αὐτές χωρίζονται μεταξύ τους μὲ κόμματα, π.χ.: Τοῦ Αἰσχύλου\r\n σώζονται τρεῖς τραγωδίες ἀπὸ τὸν τρωικὸ κύκλο, ὁ\r\n Ἀγαμέμνονας, οἱ Χοηφόρες, οἱ Εὐμενίδες• τοῦ Σοφοκλῆ, ὁ Αἴας,\r\n ἡ Ἠλέκτρα καὶ ὁ Φιλοκτήτης.\r\n
\r\n
\r\n
\r\n Στὸ ἐσωτερικὸ μιᾶς φράσης χωρίζει δύο μέρη της ποὺ\r\n σχετίζονται μεταξύ τους, ἀλλὰ καὶ ποὺ ἔχουν διαφορές, ἰδίως\r\n ὅταν τὸ δεύτερο ἐπεξηγεῖ ἢ ἔρχεται σὲ ἀντίθεση μὲ τὸ πρῶτο,\r\n π.χ.: Αὐτὸς δὲν ἦταν ἄνθρωπος• ἤτανε θεριό, δράκος, τοῦ\r\n βουνοῦ στοιχειό. Τοῦ πατέρα σου, ὅταν ἔλθης,/ δὲ θὰ βρῆς\r\n παρὰ τὸν τάφο./ εἶμαι ὀμπρός του καὶ σοῦ γράφω/ μέρα πρώτη\r\n τοῦ Μαγιοῦ. (Σολωμός).\r\n
\r\n
\r\n
Ἡ ἄνω τελεία καὶ τὰ ἄλλα σημεῖα τῆς στίξης:
\r\n
\r\n
\r\n Ὅταν ὑπάρχουν στὴν πρόταση εἰσαγωγικὰ ἢ παρένθεση, ἡ ἄνω\r\n τελεία σημειώνεται ἔξω ἀπὸ τὴν παρένθεση ἢ τὰ εἰσαγωγικά.\r\n
\r\n
\r\n
\r\n Παρατήρηση: Ἡ χρήση τῆς ἄνω τελείας ἔχει ἀτονήσει σήμερα.\r\n στὴ θέση της χρησιμοποιεῖται τὸ κόμμα ἢ ἡ τελεία. Ἕνας\r\n ἐπιπλέον λόγος γιὰ τὴν ὁλοένα καὶ ἀραιότερη χρήση της,\r\n ἀποτελεῖ τὸ γεγονὸς τῆς μὴ παρουσίας της στὸ τυποποιημένο\r\n πληκτρολόγιο τῶν ὑπολογιστῶν. Ἡ εἰσαγωγὴ στὸ κείμενο πρέπει\r\n νὰ γίνει μὲ εἰδικὴ πληκτρολόγηση. Τὸ σύμβολο τῆς ἄνω τελείας\r\n ἀντιστοιχεῖ στὸ συνδυασμὸ πλήκτρων Alt+0183 (μὲ τὸ\r\n ἀριθμητικὸ πληκτρολόγιο). Μιὰ καλὴ πρακτική, γιὰ ὅσους\r\n χρησιμοποιοῦν κειμενογράφους ποὺ τὸ ἐπιτρέπουν, εἶναι νὰ\r\n αντιστοιχηθεῖ στὴν ἄνω τελεία μιὰ ἁπλὴ λειτουργία αὐτόματης\r\n διόρθωσης κειμένου . μιὰ απλή, ἀποτελεσματικὴ καὶ\r\n εὐκολομνημόνευτη ἀλληλουχία πλήκτρων εἶναι τὰ δύο συνεχόμενα\r\n κόμματα “,,”.\r\n
\r\n
\r\n
\r\n
Κόμμα ( , )
\r\n
\r\n Τὸ κόμμα χρησιμεύει συνήθως γιὰ νὰ σημειώσουμε λογικὸ\r\n χωρισμὸ καὶ μικρὸ σταμάτημα στὸ ἐσωτερικὸ τῆς περιόδου, ἢ σὲ\r\n μεγάλες φράσεις γιὰ νὰ δώσουμε εὐκαιρία σὲ ἀναπνοή, εἴτε γιὰ\r\n νὰ κάνουμε τὸ κείμενο νὰ διαβάζεται εὐκολότερα (λ.χ. σὲ\r\n θεατρικὰ κείμενα, διδακτικὰ βιβλία) ἢ γιὰ νὰ προκαλέσουμε\r\n προσδοκία. Τὸ κόμμα εἶναι τὸ πιὸ συχνὸ σημεῖο τῆς στίξης καὶ\r\n ἡ χρήση του εἶναι ἀπαραίτητη προκειμένου ν’ ἀποφεύγονται\r\n παρανοήσεις καὶ ἡ ἀνάγνωση, ἢ ἡ ἀπαγγελία, νὰ γίνεται\r\n εὐκολότερη. Ἂν καὶ δὲν ὑπάρχουν ἀπόλυτοι κανόνες γιὰ τὴ\r\n χρήση τοῦ κόμματος, σὲ γενικὲς γραμμὲς χρησιμεύει γιὰ νὰ\r\n χωρίζουμε:\r\n
\r\n
\r\n
\r\n • Μέσα στὴν πρόταση τοὺς ὅμοιους ἀναμεταξύ τους ὅρους, ὅταν\r\n τοὺς παραθέτουμε ἀσύνδετους, π.χ.: Ἡ θάλασσα ἦταν ἤρεμη,\r\n γαλήνια, καθαρή.\r\n
\r\n
\r\n
\r\n Στὴν ἀπαρίθμηση ἐπιθέτων μπρὸς ἀπὸ ἕνα οὐσιαστικὸ τὸ κόμμα\r\n μπαίνει καὶ πρὶν τὸ τελευταῖο ἐπίθετο, ὅταν αὐτὸ\r\n προσδιορίζει τὸ οὐσιαστικὸ ἀκριβῶς ὅπως καὶ τ’ ἄλλα: Μὲ\r\n ἀργά, βαριά, κουρασμένα βήματα. Ἀλλὰ δὲν μπαίνει ὅταν τὸ\r\n τελευταῖο ἐπίθετο ἀποτελεῖ μὲ τὸ οὐσιαστικὸ ἔννοια ποὺ τὴν\r\n προσδιορίζουν τὰ προηγούμενα ἐπίθετα: Μὲ κέρασε ἄσπρο παλιὸ\r\n κρασί.\r\n
\r\n
\r\n
\r\n • Τὴν παράθεση καὶ κάθε εἴδους ἐπεξήγηση: Ἄρχισε μιὰ βροχή,\r\n κατακλυσμός.– Ὁ Ὄλυμπος, τὸ ψηλότερο βουνὸ τῆς Ἑλλάδας, ἦταν\r\n κατοικία τῶν θεῶν. κρασί.\r\n
\r\n
\r\n • Τὴν κλητική: Νίκο, σοῦ στέλνω σήμερα τὸ γράμμα.– Πῆρα τὸ\r\n γράμμα σου, κύριε Γιῶργο, καὶ χαίρομαι ποὺ εἶσαι καλά.\r\n
\r\n
\r\n • Ἕνα μόριο ἢ ἕνα βεβαιωτικὸ (ἢ ἀρνητικὸ) ἐπίρρημα στὴν ἀρχὴ\r\n τῆς περιόδου, ποὺ χρησιμεύει γιὰ τὴ σύνδεση μὲ τὰ\r\n προηγούμενα: Ναί, θὰ φύγω.– Ὄχι, δὲ θέλω.– Τότε, θὰ\r\n συμφωνήσουμε (δηλ. ἀφοῦ εἶναι ἔτσι).\r\n
\r\n
\r\n • Τὶς κύριες ἀπὸ δευτερεύουσες προτάσεις – τὶς αἰτιολογικές,\r\n τελικές (ἐκτὸς ὅταν εἰσάγονται μὲ τὸ νά), ἀποτελεσματικές,\r\n ὑποθετικές, ἐναντιωματικές, χρονικές ἢ ποὺ εἰσάγονται μὲ τὸ\r\n χωρίς νά, ἰδίως ὅταν αὐτές προηγοῦνται ἢ ὅταν εἶναι μεγάλες,\r\n π.χ.: Δὲν πρέπει νὰ ξεκινήσομε, γιατὶ ὁ καιρὸς ἄρχισε νὰ\r\n χαλᾶ.– Ἂν θέλεις, ἔλα.– Χωρίς νὰ τὸ καταλάβω, μοῦ πῆραν τὸ\r\n πορτοφόλι.\r\n
\r\n
\r\n • Τὶς πλάγιες ἐρωτηματικές προτάσεις ὅταν προηγοῦνται τοῦ\r\n ρήματος: Τὸ τὶ ἔκρυβε ἡ στάση της, ἦταν δύσκολο νὰ\r\n διαπιστωθεῖ. Ἀλλά: Ἦταν δύσκολο νὰ διαπιστωθεῖ τὸ τὶ ἔκρυβε\r\n ἡ στάση της.\r\n
\r\n
\r\n • Τὸ ρῆμα καὶ τὸν ἀμέσως κατόπι του ἐμπρόθετο προσδιορισμὸ\r\n ποὺ φανερώνει ἀντίθεση, π.χ.: Περισσότερο ἔβλαψε, παρὰ\r\n ὀφέλησε.\r\n
\r\n
\r\n • Τὶς συμπλεκτικὲς προτάσεις, π.χ.: Δὲ θὰ πάω στὰ Χανιά,\r\n οὔτε στὸ Ρέθυμνο.– Καὶ γενναίοι ἄνθρωποι ἦταν, καὶ τὸν ἑαυτό\r\n τους πρόσεχαν.\r\n
\r\n
\r\n • Τὶς διαζευκτικὲς προτάσεις, π.χ.: Ἢ θὰ σωθοῦμε, ἢ θὰ\r\n χαθοῦμε.\r\n
\r\n
\r\n • Τὶς ἀντιθετικὲς προτάσεις, π.χ.: Δὲν ἔχομε ἐμεῖς, μὰ κάτι\r\n θὰ γίνει.– Ναὶ μὲν εἶναι ἀκριβότερο, ἀλλὰ εἶναι τὸ καλύτερο\r\n γιὰ τὴ δουλειά μου.\r\n
\r\n
\r\n • Τὶς συμπερασματικὲς προτάσεις: Νὰ ληφθοῦν τὰ ἀπαραίτητα\r\n μέτρα, ὥστε... – Δὲν εἶναι κακός, νὰ (=ὥστε νὰ) μὴ μᾶς δώσει\r\n νερό.\r\n
\r\n
\r\n • Τὸ σύνδεσμο καὶ, ὅταν αὐτὸς ἔχει σημασία συνδέσμου ποὺ\r\n χρειάζεται κόμμα, π.χ.: Ἐσὺ μαζεύεις, καὶ (= ἐνῷ) αὐτὸς\r\n σκορπᾶ.– Πήγαινε στὸ καλό, καὶ (= γιατί) δὲ σ’ ἔχω ἀνάγκη.\r\n
\r\n
\r\n • Τοὺς ὅρους μιᾶς πρότασης ποὺ συνδέονται μὲ τοὺς συνδέσμους\r\n ἢ, εἴτε, μήτε, οὔτε, ὅταν εἶναι περισσότεροι τῶν δύο: Οὔτε ὁ\r\n Κώστας, οὔτε ὁ Γιῶργος, οὔτε ἡ Μαρία κατάφεραν νὰ λύσουν τὸ\r\n γρίφο. Ἀλλά: Οὔτε ὁ Μπάμπης οὔτε ὁ Θωμᾶς εἶπαν τὴν ἀλήθεια.\r\n
\r\n
\r\n
\r\n Ἡ δυσκολότερη περίπτωση εἶναι ἡ θέση ἢ μὴ τοῦ κόμματος πρὶν\r\n ἀπὸ ἀναφορικὴ πρόταση ποὺ ἀκολουθεῖ τὸ ὑποκείμενο, ἐπειδὴ ἡ\r\n λανθασμένη χρήση τοῦ κόμματος ἔχει ὡς ἀποτέλεσμα τὴν ἀλλαγὴ\r\n τοῦ νοήματος τῆς πρότασης:\r\n
\r\n
\r\n
\r\n Τὰ δέντρα τοῦ κήπου ποὺ εἶναι καρποφόρα χρειάζονται λίπασμα.\r\n
\r\n
\r\n Ἡ ἀναφορικὴ πρόταση ἐδῶ προσδιορίζει ἄμεσα τὸ ὑποκείμενο.\r\n Καθορίζει ποιὰ δέντρα τοῦ κήπου χρειάζονται λίπασμα, δηλαδὴ\r\n ὅσα δέντρα εἶναι καρποφόρα καὶ ὄχι ὅλα.\r\n
\r\n
\r\n Πέταξαν τὰ ροδάκινα ποὺ εἶχαν σαπίσει. (= Πέταξαν μόνο\r\n ἐκεῖνα ἀπὸ τὰ ροδάκινα ποὺ εἶχαν σαπίσει).\r\n
\r\n
\r\n
\r\n Τὰ δέντρα τοῦ κήπου, ποὺ εἶναι καρποφόρα, χρειάζονται\r\n λίπασμα.\r\n
\r\n
\r\n (Ἐδῶ μπορεῖ νὰ παραλειφθεῖ ἡ ἀναφορικὴ πρόταση χωρίς νὰ\r\n προκύψει ἀλλοίωση τοῦ νοήματος• δηλαδὴ τὰ δέντρα τοῦ κήπου,\r\n ποὺ ὅπως γνωρίζουμε εἶναι ὅλα καρποφόρα, χρειάζονται\r\n λίπασμα.)\r\n
\r\n
\r\n Πέταξαν τὰ ροδάκινα, ποὺ εἶχαν σαπίσει. (= Πέταξαν ὅλα τὰ\r\n ροδάκινα τὰ ὁποῖα εἶχαν σαπίσει).\r\n
\r\n
\r\n
Τὸ κόμμα καὶ τὰ ἄλλα σημεῖα τῆς στίξης:
\r\n
\r\n • Ὅταν παραθέτουμε τὰ λόγια κάποιου ἄλλου σὲ εἰσαγωγικά,\r\n σημειώνουμε τὸ κόμμα ἔξω ἀπὸ τὰ εἰσαγωγικὰ μόνο ὅταν τὸ\r\n ἀπαιτεῖ ἡ πρόταση:\r\n
\r\n
\r\n Κατορθώσαμε νὰ πεῖ «παραδίνομαι», γιατὶ τὸν κουράσαμε πάρα\r\n πολύ.\r\n
\r\n
\r\n Ἀντίθετα, δὲν χωρίζουμε μὲ κόμμα τὶς παρένθετες προτάσεις,\r\n μικρές ἢ μεγάλες, ποὺ δηλώνουν ποιὸς εἶπε τὰ λόγια ποὺ\r\n βρίσκονται στὰ εἰσαγωγικά:\r\n
\r\n
«Εἴμαστε ἔθνος ἀνάδελφο» εἶπε ὁ Πρόεδρος.
\r\n
\r\n Ἂν, ὅμως, αὐτοῦ τοῦ εἴδους οἱ προτάσεις ὑπάρχουν σὲ\r\n διαλόγους χωρὶς εἰσαγωγικὰ (εἰσάγονται δηλαδὴ μὲ παῦλες),\r\n χρησιμοποιοῦνται πάντα μὲ κόμμα:\r\n
\r\n
– Μπορεῖτε νὰ πιεῖτε νερό, μᾶς εἶπε ὁ περβολάρης.
\r\n
\r\n • Δὲν σημειώνουμε κόμμα ἀμέσως μετὰ τὸ ἐρωτηματικὸ καὶ τὸ\r\n θαυμαστικό.\r\n
\r\n
\r\n
\r\n
\r\n Δύο τελεῖες ( : ) (ὴ διπλὴ τελεία, ἢ πάνω καὶ κάτω τελεία)\r\n
\r\n
\r\n Οἱ δύο τελεῖες δηλώνουν ὅτι θ’ ἀκολουθήσει παράθεμα ἀπὸ ξένο\r\n κείμενο, ἀπόφθεγμα, παροιμία ἢ εὐθὺς λόγος. Χρησιμοποιεῖται\r\n ἀκόμη στὶς περιπτώσεις ποὺ ἀναλύομε ἢ ἐρμηνεύομε κάτι ποὺ\r\n ἔχομε καταγράψει, π.χ.: Σκεπτόμουν καθαρὰ τοῦτο: θὰ ἐκτελέσω\r\n ὅσο μπορῶ καλύτερα τὸ χρέος μου.\r\n
\r\n
\r\n
\r\n Ἡ λέξη ὕστερ’ ἀπὸ τὶς δύο τελεῖες γράφεται μὲ ἀρχικὸ γράμμα\r\n κεφαλαῖο ὅταν οἱ δύο τελεῖες ἔχουν τὴ θέση τελείας.\r\n
\r\n
\r\n
\r\n
Παύλα ( – ) [Alt+0150]
\r\n
\r\n Ἡ παύλα δηλώνει ἀλλαγὴ τοῦ συνομιλητῆ σ’ ἕνα γραπτὸ κείμενο\r\n διαλόγου ὅταν δὲν χρησιμοποιοῦνται εἰσαγωγικά.\r\n
\r\n
\r\n
\r\n Ἐπίσης χρησιμοποιεῖται γιὰ νὰ φανεῖ μεγαλύτερη ἡ ἀντίθεση\r\n τῶν προηγούμενων μὲ τ’ ἀκόλουθα, π.χ.: Ξεκίνησαν – μὰ δὲ θὰ\r\n φτάσουν ποτέ!\r\n
\r\n
\r\n
\r\n Ἡ χρήση τῆς παύλας δείχνει ἀπότομη ἀλλαγὴ ἢ ἀνακολουθία στὴ\r\n φράση, π.χ.: Εἶδα τὸ Μιχάλη προχθές – ὁ Γιάννης ἦταν στὸ\r\n τηλέφωνο.\r\n
\r\n
\r\n
\r\n Ἡ παύλα εἶναι δυνατὸ νὰ χρησιμοποιηθεῖ στὸ τέλος μιᾶς\r\n παραγράφου, ἀμέσως μετὰ τὴν τελεία, δηλώνοντας ὅτι ἔχει\r\n ὁλοκληρωθεῖ ἕνα θέμα, μιὰ νοηματικὴ ἑνότητα. (Σημείωση: Ἀπὸ\r\n ἐδῶ βγῆκε καὶ ἡ φράση: «τελεία καὶ παύλα», δηλαδὴ τελείωσε\r\n τελείως τὸ ζήτημα.)\r\n
\r\n
\r\n
\r\n Ἐπίσης, ἡ παύλα μπορεῖ νὰ χρησιμοποιηθεῖ σὲ διάλογο, ὅταν\r\n διακόπτεται ἀπότομα ὁ λόγος, σὲ ἀντίθεση μὲ τὰ ἀποσιωπητικά,\r\n ποὺ δηλώνουν κυρίως: παύση, ἀποσιώπηση, ἀμηχανία κτλ.:\r\n
\r\n
\r\n
– Μπορῶ νὰ σᾶς μιλή–
\r\n
– Σταμάτα! Δὲν σοῦ ἐπιτρέπω νὰ μιλᾶς!
\r\n
\r\n
\r\n
Παρένθεση [ ( ) ]
\r\n
Διπλὴ παύλα ( – – )
\r\n
\r\n Κοινὸ γνώρισμα καὶ τῶν δύο σημείων στίξης εἶναι ὅτι οἱ\r\n λέξεις ποὺ περικλείονται σ’ αὐτὰ παρουσιάζουν, κατὰ τὴ γνώμη\r\n μας, λιγότερο ἐνδιαφέρον. Ἔχουν ὅμως καὶ διαφορὲς μεταξύ\r\n τους, τὶς ἀκόλουθες:\r\n
\r\n
\r\n
\r\n Ἡ παρένθεση χρησιμεύει γιὰ νὰ περικλείσει καὶ ν’ ἀπομονώσει\r\n λέξη ἢ φράση ὁλόκληρη ποὺ ἐπεξηγεῖ ἢ συμπληρώνει τὰ\r\n λεγόμενα, π.χ.: «Ὁ Ὅμηρος (Ὀδύσσεια 490) ἐξυμνεῖ τὴ ζωή.»\r\n «Τὸ αὐτοκίνητο (σαράβαλο) ἀγκομαχοῦσε στὸν ἀνήφορο...»\r\n
\r\n
\r\n
\r\n Παρένθεση χρησιμοποιοῦμε καὶ μετὰ ἀπὸ μιὰ περίοδο. Στὶς\r\n περιπτώσεις αὐτές προηγεῖται ἄνω τελεία ἢ ἄλλο σημεῖο\r\n στίξης, π.χ.: «Θέλουν, μὰ δὲ βολεῖ νὰ λησμονήσουν.\r\n (Μαβίλης).» «–Φοβᾶμαι κάτι χειρότερο! (φεύγουν ἀπὸ τὴ\r\n σκηνή).»\r\n
\r\n
\r\n
\r\n Ἡ παρένθεση ἐπίσης χρησιμεύει γιὰ νὰ περικλείσει λέξεις ἢ\r\n φράσεις ποὺ μποροῦν νὰ παραλειφθοῦν. Αὐτὸ συχνὰ τὸ\r\n πετυχαίνομε καὶ μὲ τὰ κόμματα. Ἡ παρένθεση πρέπει νὰ\r\n χρησιμοποιεῖται στὴν περίπτωση αὐτή, ὅταν τὰ παρένθετα λόγια\r\n ἀποχωρίζονται καθαρὰ στὸ νόημα καὶ στὴ διατύπωση ἀπὸ τὸ\r\n ὑπόλοιπο κείμενο καὶ δὲν ὑπάρχει σ’ αὐτὸ λέξη ποὺ ἀναφέρεται\r\n στὰ λόγια μέσα στὴν παρένθεση.\r\n
\r\n
\r\n
\r\n Μέσα σὲ παρένθεση ἀναγράφονται οἱ παραπομπές: «Τὸ γράμμα\r\n ἀποκτείνει, τὸ δὲ πνεῦμα ζωοποιεῖ», εἶπε ὁ Παῦλος. (Πρὸς\r\n Κορινθίους Β´ 3.6).\r\n
\r\n
\r\n
\r\n Ἡ παρένθεση μπορεῖ ν’ ἀκολουθεῖ ἢ καὶ νὰ ἔχει κατόπι της\r\n ἄλλη στίξη, ἰδίως κόμμα. Μπορεῖ καὶ ν’ ἀρχίζει μὲ κεφαλαῖο\r\n γράμμα. Ἡ τελεία μπαίνει πρὶν κλείσει ἡ παρένθεση ὅταν ἡ\r\n παρένθεση ἀρχίζει μὲ κεφαλαῖο.\r\n
\r\n
\r\n
\r\n Ἡ διπλὴ παύλα χρησιμοποιεῖται γιὰ νὰ ἀπομονωθεῖ μέρος τῆς\r\n φράσης, ὅπως γίνεται καὶ στὴν παρένθεση. Αὐτὸ γίνεται ἰδίως\r\n ὅταν ὅταν τὸ μέρος αὐτὸ δὲν εἶναι τόσο δευτερότερο ὥστε νὰ\r\n κλειστεῖ σὲ παρένθεση. Τὸ κλείσιμό του μέσα σὲ κόμματα θὰ\r\n μποροῦσε νὰ προκαλέσει ἀσάφεια, π.χ.: «Ὁ πατέρας μου –ἐλαφρύ\r\n τὸ χῶμα ποὺ τὸν σκέπασε– δὲν ἤθελε νὰ μὲ κάνει βοσκό.»\r\n
\r\n
\r\n
\r\n
Ἀγκύλες [ ]
\r\n
\r\n Χρησιμοποιοῦνται γιὰ ν’ απομονωθεῖ μιὰ ἔνδειξη ποὺ βρίσκεται\r\n ἤδη σὲ παρένθεση.\r\n
\r\n
\r\n
\r\n
Εἰσαγωγικὰ ( « » )
\r\n
« = Alt+0171
\r\n
» = Alt+0187
\r\n
‘ = Alt+0145
\r\n
’ = Alt+0146
\r\n
“ = Alt+0147
\r\n
” = Alt+0148
\r\n
„ = Alt+0132
\r\n
\r\n
\r\n Τὰ εἰσαγωγικὰ σημειώνονται στὴν ἀρχὴ καὶ στὸ τέλος\r\n παραθεμάτων: Μοῦ εἶπε: «Δὲ σὲ ξέρω καθόλου».\r\n
\r\n
\r\n
\r\n Ἐπίσης, ὅταν ἀναφέρομε λέξεις ἢ φράσεις ποὺ δὲν ἀνήκουν στὴν\r\n κοινὴ γλῶσσα ἢ ποὺ παίρνουν ἕνα ἰδιαίτερο νόημα ἢ ἀπόχρωση\r\n νοήματος στὸ λόγο μας: οἱ παλαιότεροι χρησιμοποιοῦσαν τὴ\r\n λέξη «σπουδαῖος» μὲ διαφορετικὸ νόημα• σήμαινε τὸ μορφωμένο,\r\n τὸ λόγιο.\r\n
\r\n
\r\n
\r\n Τίτλοι βιβλίων, θεατρικῶν ἔργων, ὀνόματα πλοίων, ἐφημερίδων,\r\n ἐπιγραφές κτλ., τοποθετοῦνται μέσα σὲ εἰσαγωγικά.\r\n
\r\n
\r\n
\r\n Ὕστερα ἀπὸ τὰ εἰσαγωγικὰ σημειώνεται, ὅταν χρειάζεται, ἡ\r\n τελεία καὶ ἡ ἐπάνω τελεία. Τὸ κόμμα δὲ σημειώνεται, ἐκτὸς\r\n ὅταν μὲ τὸ κλείσιμο τῶν εἰσαγωγικῶν τελειώνει φράση ποὺ\r\n ἀπαιτεῖ κόμμα, π.χ.: «Εἶναι δύο ἡ ὥρα» εἶπε ἡ Μαρία «τὰ\r\n μαγαζιὰ θὰ ἔχουν κλείσει».\r\n
\r\n
\r\n
\r\n Τὸ ἐρωτηματικὸ καὶ τὸ θαυμαστικὸ σημειώνονται μέσα ἀπὸ τὰ\r\n εἰσαγωγικὰ τοῦ τέλους (ἐκτὸς κι ἂν δὲν ἀνήκουν στὸ κείμενο\r\n τὸ κλεισμένο μέσα στὰ εἰσαγωγικά, καὶ τότε μπαίνουν ἔξω ἀπὸ\r\n τὰ εἰσαγωγικά).\r\n
\r\n
\r\n
\r\n Ὅταν τὸ κείμενο τῶν εἰσαγωγικῶν συνεχίζεται καὶ σὲ\r\n καινούργια παράγραφο, ξανασημειώνομε στὴν ἀρχὴ της τὰ\r\n εἰσαγωγικὰ τοῦ τέλους (»), ἐνῷ ἡ προηγούμενη παράγραφος\r\n κλείνει χωρὶς εἰσαγωγικά.\r\n
\r\n
\r\n
\r\n Στὴ θέση τῶν εἰσαγωγικῶν μποροῦν νὰ χρησιμοποιηθοῦν τὰ\r\n παλιότερα πνεύματα δασεία καὶ ψιλή, μονὰ ἢ διπλὰ\r\n ἀνεστραμμένα (‘ ‘ ἢ “ “), κυρίως ὅταν χρειάζεται νὰ\r\n υπογραμμιστεῖ μιὰ λέξη ἢ φράση, ποὺ βρίσκεται ἤδη μέσα σὲ\r\n εἰσαγωγικά.\r\n
\r\n
\r\n
\r\n Ὅταν ἕνα τμῆμα κειμένου ποὺ βρίσκεται μέσα σὲ εἰσαγωγικὰ\r\n περιλαμβάνει λέξεις ἢ προτάσεις ποὺ πρέπει νὰ κλειστοῦν σὲ\r\n ἄλλα εἰσαγωγικά, τότε χρησιμοποιοῦμε τὰ «ἀνωφερὴ εἰσαγωγικά»\r\n ἢ «διπλὰ κόμματα» (“ “ ἢ “ “).\r\n
\r\n
\r\n
\r\n Τὰ εἰσαγωγικὰ δὲν εἶναι ἀπαραίτητο νὰ χρησιμοποιηθοῦν σὲ\r\n λέξεις ποὺ τυπώνονται μὲ διαφορετικὴ γραμματοσειρά. Αὐτὸ\r\n συνήθως ἐφαρμόζεται στὶς περιπτώσεις παράθεσης μίας λέξης ἢ\r\n ἑνὸς τίτλου βιβλίου κτλ.\r\n
\r\n
\r\n
\r\n Εἰσαγωγικὰ ἐπίσης χρησιμοποιοῦμε στοὺς διαλόγους, ὅταν δὲν\r\n γίνεται χρήση τῆς παύλας (γιὰ νὰ διακρίνονται τὰ πρόσωπα):\r\n
\r\n
«Τὶ εἶναι ἡ ζωή;» μονολόγησε ὁ γερο-Θόδωρος.
\r\n
«Ἕνα ποτήρι νερό» συμπλήρωσε ὁ Γιάννης.
\r\n
\r\n
\r\n Ὅταν στοὺς διαλόγους χρησιμοποιοῦνται παῦλες, παραθέτουμε σὲ\r\n εἰσαγωγικὰ τοὺς ἐσωτερικούς διαλόγους. δηλαδή, τὰ λόγια ποὺ\r\n σκέφτονται ἢ ἀνακαλοῦν τὰ πρόσωπα τῶν διαλόγων:\r\n
\r\n
– Περάστε, κύριε Γιώργο. Ἐδῶ ἔχει δροσιά.
\r\n
\r\n «Εἶναι καλύτερα νὰ περάσω τώρα» σκέφτηκε ὁ κυρ-Γιώργος.\r\n
\r\n
–Φχαριστῶ κυρα-Φρόσω, ἔρχομαι.
\r\n
\r\n
\r\n
Ὁμοιωματικὰ ( » )
\r\n
\r\n Σημειώνονται γιὰ νὰ μὴν ἐπαναληφθεῖ λέξη ποὺ γράφτηκε\r\n ἀκριβῶς στὸ ἴδιο σημεῖο τῆς προηγούμενης σειρᾶς γραπτοῦ\r\n κειμένου.\r\n
\r\n
\r\n
\r\n
Θαυμαστικὸ ( ! )
\r\n
\r\n Χρησιμοποιεῖται ὕστερα ἀπὸ ἕνα ἐπιφώνημα ἢ μιὰ ἔκφραση ποὺ\r\n δηλώνει θαυμασμό, προσταγή, χαρά, ἐλπίδα, φόβο, ἕνα ξαφνικὸ\r\n αἴσθημα, πάθος ἢ ἄλλο συναίσθημα, π.χ.: Ζήτω! Μακάρι!\r\n Πήγαινε! Ντροπή! Ἴσια τὸ τιμόνι! πρόσταξε ὁ πατέρας.\r\n
\r\n
\r\n
\r\n Τὸ θαυμαστικὸ ποὺ δηλώνει εἰρωνεία ἢ ποὺ σημειώνεται γιὰ νὰ\r\n ὑπογραμμιστεῖ κάτι ἀπίστευτο ἢ ἀνόητο, καὶ ποὺ ἀναφέρεται σὲ\r\n λέξη μόνο τῆς πρότασης, τὸ βάζομε σὲ παρένθεση, π.χ.: Λέει\r\n πὼς ἀνέβηκε σὲ μιὰ ὥρα(!) στὸν Ὄλυμπο.– Ἡ Σούλα εἶναι\r\n σπουδαία(!) νοικοκυρά.\r\n
\r\n
\r\n
\r\n Σημειώνουμε θαυμαστικὸ καὶ σὲ προτάσεις ἐρωτηματικοῦ τύπου\r\n ἀλλὰ πραγματικὰ ἐπιφωνηματικές, π.χ.: Ποῦ καταντήσαμε! Καὶ\r\n πιστεύεις κι ἐσύ τέτοια πράματα!\r\n
\r\n
\r\n
\r\n Τὸ θαυμαστικὸ σημειώνεται μέσα ἀπὸ τὰ εἰσαγωγικὰ ὅταν ἀνήκει\r\n στὰ λόγια ποὺ κλείνονται σ’ αὐτά, καὶ ἔξω ἀπὸ αὐτὰ ὅταν\r\n ἀνήκει στὸ κείμενο ποὺ εἰσάγει τὰ ξένα λόγια, π.χ.: «Ζήτω ἡ\r\n Ἑλλάδα!» βροντοφώναξε.– Καὶ ποιὸς δὲ θυμᾶται τοῦ Λεωνίδα τὸ\r\n «μολών λαβέ»!\r\n
\r\n
\r\n
\r\n Ἡ λέξη ὕστερα ἀπὸ θαυμαστικὸ (ἐκτὸς ὅταν αὐτὸ συνοδεύει ἕνα\r\n ἐπιφώνημα) γράφεται μὲ κεφαλαῖο στὴν ἀρχή. Συνεχίζομε μὲ\r\n μικρὸ γράμμα, ὅταν ἡ συνέχεια συνδέεται ἄμεσα μὲ τὰ\r\n προηγούμενα: «Ἴσια τὰ πανιά!» πρόσταξε ὁ καπετάνιος.\r\n
\r\n
\r\n
\r\n Ὅταν ἡ ἐπιφωνηματικὴ πρόταση ἀρχίζει ἀπὸ ἐπιφώνημα,\r\n παραλείπουμε συνήθως ἀπὸ αὐτὸ τὸ θαυμαστικό: Ἄχ, καὶ νὰ\r\n φυσοῦσε λίγο!\r\n
\r\n
\r\n
\r\n Τὰ ἐπιφωνήματα ποὺ παρατείνουν τὸ τελευταῖο φωνῆεν,\r\n γράφονται κιόλας ἔτσι, π.χ.: άαα! ἦταν φανταστικό!, έεε!\r\n πρόσεχε!, ώωω! τὴν πατήσαμε!, άααχ!, πωπώωω!, όφουουου!,\r\n όχουουου!, άουουου! κτλ.\r\n
\r\n
\r\n
Τὸ θαυμαστικὸ καὶ τὰ ἄλλα σημεῖα τῆς στίξης:
\r\n
\r\n Γιὰ τὸ θαυμαστικὸ ἰσχύουν τὰ ἴδια ποὺ ἰσχύουν γιὰ τὸ\r\n ἐρωτηματικό.\r\n
\r\n
\r\n
\r\n
Ἐρωτηματικὸ ( ; )
\r\n
\r\n Τοποθετεῖται στὸ τέλος κάθε εὐθείας ἐρωτηματικῆς πρότασης,\r\n π.χ.: Θὰ πᾶμε γιὰ καφέ;– Εἶναι καλὸς χτίστης ὁ Γιάννης;\r\n
\r\n
\r\n
\r\n Ἡ πλάγια ἐρώτηση δὲ χρειάζεται ἐρωτηματικό, π.χ.: Μὲ ρώτησε\r\n γιατὶ δὲν τὸν περίμενα.– Δὲν ἔμαθα ποῦ πῆγε.\r\n
\r\n
\r\n
\r\n Τοποθετημένο μετὰ μιὰ λέξη, σὲ παρένθεση, δηλώνει εἰρωνεία ἢ\r\n ἀμφιβολία ἢ ἀμφισβήτηση, π.χ.: Περηφανευόταν πὼς ἦταν ὁ\r\n καλύτερος(;) κυνηγός.\r\n
\r\n
\r\n
\r\n Σὲ σειρὰ ἀπὸ ἐρωτήσεις σημειώνεται τὸ ἐρωτηματικὸ μόνο στὴν\r\n τελευταία, ὅταν οἱ ἐρωτήσεις ἀπαιτοῦν τὴν ἴδια ἀπάντηση:\r\n Θέλεις νὰ μείνεις μόνος, νὰ ὑποφέρεις, νὰ καταντήσεις\r\n ἀλκοολικός; Ἀλλά: Γιατὶ ἄργησες; ποῦ ἤσουν; τὶ ἔκανες;\r\n (Παρατήρηση: στὴν περίπτωση μικρῶν προτάσεων δὲν εἶναι\r\n ἀναγκαῖο τὸ πρῶτο γράμμα μετὰ τὸ ἐρωτηματικὸ νὰ εἶναι\r\n κεφαλαῖο. Ἀλλά: Μάνα τὶ ἔχεις καὶ βογκᾶς; Τὶ κακὸ σοῦ ‘καμε\r\n ὁ γιός σου; Σὲ παράκουσε, λόγο σοῦ ἀντιγύρισε ποτέ;\r\n
\r\n
\r\n
\r\n Οἱ διμερεῖς (ἢ πολυμερεῖς) ἐρωτήσεις παίρνουν ἐρωτηματικὸ\r\n στὸ πρῶτο μέρος καὶ τελεία στὸ δεύτερο, ποὺ διαζευγνύεται\r\n ἀπὸ τὸ πρῶτο, π.χ.: Ἔρχεσαι σὰ φίλος; ἢ σὰν ἐχθρός.– Αὐτὸ\r\n εἶναι κουνουπίδι; εἶναι λάχανο; ἢ εἶναι μπρόκολο.\r\n
\r\n
\r\n
\r\n Τὸ ἐρωτηματικὸ σημειώνεται μέσα ἀπὸ τὰ εἰσαγωγικὰ ὅταν\r\n ἀνήκει στὰ λόγια ποὺ κλείνονται σ’ αὐτά, καὶ ἔξω ἀπὸ αὐτὰ\r\n ὅταν ἀνήκει στὸ κείμενο ποὺ εἰσάγει τὰ ξένα λόγια, π.χ.:\r\n «Ποῦ πᾶμε;» βροντοφώναξε.– Ποιὸς εἶπε τὸ «μολὼν λαβέ»;\r\n
\r\n
\r\n
\r\n Ἡ λέξη ὕστερα ἀπὸ ἐρωτηματικὸ γράφεται μὲ κεφαλαῖο στὴν\r\n ἀρχή. Συνεχίζομε μὲ μικρὸ γράμμα, ὅταν ἡ συνέχεια συνδέεται\r\n ἄμεσα μὲ τὰ προηγούμενα: «Εἴστε καλά;» ξαναρώτησε καὶ ἔφυγε,\r\n κλείνοντας τὴν πόρτα πίσω του.\r\n
\r\n
\r\n
Τὸ ἐρωτηματικὸ καὶ τὰ ἄλλα σημεῖα τῆς στίξης:
\r\n
\r\n • Δὲν μπαίνει ποτὲ κόμμα μετὰ ἀπὸ ἐρωτηματικό: – Πάλι πῆρες\r\n ἄδεια ἀπὸ τὴ σημαῖα; μὲ ρώτησε γελῶντας πονηρά.\r\n
\r\n
\r\n Παρατήρηση: ἡ ἴδια πρόταση μπορεῖ νὰ γραφεῖ ἰσοδύναμα μὲ τὴ\r\n χρήση τοῦ κόμματος, ἀλλὰ χρησιμοποιῶντας εἰσαγωγικά: «Πάλι\r\n πῆρες ἄδεια ἀπὸ τὴ σημαῖα;» μὲ ρώτησε γελῶντας πονηρά.\r\n
\r\n
\r\n • Τὸ ἐρωτηματικὸ σημειώνεται μέσα στὴν παρένθεση, στὰ\r\n εἰσαγωγικά, τὶς διπλές παῦλες κτλ., μόνον ὅταν ὁλόκληρη ἡ\r\n εὐθεία ἐρώτηση εἶναι παρενθετική: Μᾶς ἄφησε νὰ σκεφτόμαστε\r\n διάφορα (μήπως ἦταν κι ἡ πρώτη φορά;), πρὶν μᾶς ἐξηγήσει...\r\n
\r\n
\r\n • Ὅταν ὑπάρχουν ἀποσιωπητικά, τὸ ἐρωτηματικὸ σημειώνεται\r\n πρὶν ἀπὸ αὐτά:\r\n
\r\n
– Εἶναι λογικὸ νὰ μὴ μᾶς λέει τίποτα;...
\r\n
\r\n • Ὅταν ὑπάρχουν εἰσαγωγικά, τὸ ἐρωτηματικὸ μπαίνει μέσα σ’\r\n αὐτά, ἐκτὸς κι ἂν δὲν ἀνήκει στὸ κείμενο ποὺ βρίσκεται μέσα\r\n σ’ αὐτά: «Τὶ καιρὸ κάνει σήμερα;» μὲ ρώτησε ἡ Μαρία.\r\n
\r\n
\r\n Ἀλλά: Σὲ ρώτησε πράγματι «Τὶ καιρὸ κάνει σήμερα;»; Ἡ Μαρία\r\n μὲ ρώτησε: «Τὶ καιρὸ κάνει σήμερα;».\r\n
\r\n
\r\n
\r\n
\r\n Ἀποσιωπητικὰ ( ... ) [Alt+0133]\r\n
\r\n
\r\n Τὰ ἀποσιωπητικὰ σημειώνονται ὅταν δὲν τελειώνουμε τὴ φράση.\r\n Ἐπίσης, ὅταν σὲ παράθεμα ἀπὸ συγγραφέα παραλείπομε ἕνα τμήμα\r\n φράσης ἢ καὶ φράσεις ὁλόκληρες. στὶς περιπτώσεις αὐτὲς τὰ\r\n ἀποσιωπητικὰ τοποθετοῦνται μέσα σὲ ἀγκύλες: Γιὰ τὴν απάντηση\r\n στὸ ἐρώτημα τῶν ἐξετάσεων, δεῖτε στὴ σελίδα 41 τοῦ βιβλίου\r\n τὴν παράγραφο: «Ἀπὸ τὴ σοβαρότητα [...] εἶναι ἐπανάσταση τῶν\r\n ἰδεῶν.».\r\n
\r\n
\r\n
\r\n Μὲ τὰ ἀποσιωπητικὰ δηλώνεται ἐπίσης θαυμασμός, εἰρωνεία,\r\n συγκίνηση, φόβος, δισταγμός, ντροπή, περιφρόνηση, ἀπειλὴ\r\n κτλ., γιὰ ὅσα θὰ σημειωθοῦν ἀμέσως κατόπιν, π.χ.: «Μὴν\r\n ξανάρθεις ἀδιάβαστος, γιατί...» «Κι ἔπειτα... ἔπειτα ὅλα\r\n τέλειωσαν.»\r\n
\r\n
\r\n
\r\n Aποσιωπητικὰ σημειώνομε, σ’ ὁρισμένες περιπτώσεις, καὶ μετὰ\r\n ἀπὸ θαυμαστικὸ ἢ ἐρωτηματικό, στὶς περιπτώσεις αὐτές\r\n δείχνουν ἕνα σταμάτημα στὴν ὁμιλία, π.χ.: «Καὶ τὶ δὲ θά\r\n ‘κανα! ... Φτάνει νὰ μ’ ἄφηνες.» «Πῶς μᾶς θωρεῖς ἀκίνητος;\r\n ...»\r\n
\r\n
\r\n
\r\n Ἀποσιωπητικὰ χρησιμοποιοῦμε καὶ στὴν περίπτωση δισταχτικῆς\r\n ὁμιλίας, χωρίς ν’ ἀποσιωποῦμε τίποτα, προκειμένου νὰ\r\n τονιστοῦν ἐκεῖνα ποὺ θ’ ἀκολουθήσουν.\r\n
\r\n
\r\n
\r\n Σημείωση: Ἡ ἀγγλικὴ ὀνομασία τῶν ἀποσιωπητικῶν (ellipsis)\r\n καὶ ὁ ἀντίστοιχος δεκαδικὸς κωδικὸς ASCII, μοῦ ὑποδείχθηκαν\r\n ἀπὸ τὸν Σεμπαστιὰν Νικολάου (\r\n \r\n ), τὸν ὁποῖο καὶ εὐχαριστῶ.\r\n
\r\n
\r\n
\r\n
Ἀστερίσκος ( * )
\r\n
\r\n Στὸ τέλος μιᾶς λέξης δηλώνει παραπομπὴ σὲ ὑποσημείωση\r\n κειμένου. Σὲ φιλολογικὰ κείμενα στὴν ἀρχὴ μιᾶς λέξης δηλώνει\r\n ὅτι ἡ λέξη εἶναι ὑποθετική. Κοντὰ σὲ μιὰ χρονολογία δηλώνει\r\n τὴ γέννηση ἑνὸς προσώπου.\r\n
\r\n
\r\n
\r\n
Σταυρὸς ( † ) [Alt+0134]
\r\n
Συχνὰ, συνοδεύει τὴ χρονολογία θανάτου ἑνὸς προσώπου.
\r\n
\r\n
\r\n
Ἑνωτικὸ ( - )
\r\n
\r\n Βάζουμε ἑνωτικὸ στὸ τέλος τῆς ἀράδας ὅταν ἡ λέξη δὲ χωράει\r\n ὁλόκληρη καὶ θὰ πρέπει νὰ συλλαβιστεῖ.\r\n
\r\n
\r\n
\r\n Σημειώνεται ἑνωτικὸ συνήθως σὲ μακρόσυρτες συνθέσεις λέξεων:\r\n κοινωνικο- οικονομικός. Ἀπαραίτητο εἶναι ὅταν σὲ περίπτωση\r\n βραχυλογίας χρησιμοποιοῦνται δύο παράλληλες λέξεις:\r\n πρωί-βράδυ, μέρα-νύχτα.\r\n
\r\n
\r\n
\r\n Βάζουμε ἑνωτικὸ ὕστερα ἀπὸ τὰ προταχτικά: αγια-, αϊ-, γερο-,\r\n γρια-, θεια-, κυρα-, μαστρο-, μπαρμπα-, παπα-, χατζη-, ὅταν\r\n πᾶνε μπροστὰ ἀπὸ κύριο ὄνομα, π.χ.: αγια- Μαρίνα,\r\n αϊ-Γιώργης, γερο-Δῆμος, κυρα-Ρήνη, μαστρο-Νικόλας,\r\n μπαρμπα-Γιάννης, παπα-Κωστῆς κτλ. Οἱ προταχτικές λέξεις δὲν\r\n παίρνουν τόνο.\r\n
\r\n
\r\n
\r\n Χρησιμοποιοῦμε ἑνωτικὸ στὴν ἀπαρίθμηση ἢ παράθεση σταθμῶν\r\n δρομολογίων, π.χ.: Ἡ γραμμὴ Ἡρακλείου - Χανίων. Τὸ ταξίδι\r\n Πειραιᾶ - Ἡράκλειο διαρκεῖ δέκα ὧρες.\r\n
\r\n
\r\n
\r\n Τοποθετοῦμε ἑνωτικὸ στὰ σύνθετα παραθετικά, δηλαδὴ σὲ\r\n ὀνοματικὰ σύνολα ποὺ ἀποτελοῦνται ἀπὸ δύο ὁμοιόπτωτες λέξεις\r\n μὲ ἰδιαίτερη σημασιολογικὴ σημασία, π.χ.: ταξίδι-ἀστραπή,\r\n λέξη-κλειδί, πλοῖο-φάντασμα κτλ.\r\n
\r\n
\r\n
\r\n Στὶς περιπτώσεις ἑλληνικῶν ἢ ξενικῶν κυρίων ἀνθρωπονυμικῶν\r\n ὀνομάτων ποὺ ἀποτελοῦνται ἀπὸ δύο μικρὰ ὀνόματα, σημειώνεται\r\n τὸ ἑνωτικὸ μόνο ὅταν χρησιμοποιοῦνται καὶ τὰ δύο μαζὶ γιὰ νὰ\r\n προσδιορίσουν τὸν ἴδιο ἄνθρωπο: Ζακ-Ὓβ Κουστό, Ἀντρέ-Μαρὶ\r\n Ἀμπέρ, Ἄννα-Μαρία κτλ. Ἀντίθετα, ὅταν ὑπάρχουν δύο μικρὰ\r\n ὀνόματα τὰ ὁποῖα δὲν χρησιμοποιοῦνται ταυτόχρονα, τότε τὸ\r\n ἑνωτικὸ δὲ σημειώνεται: Ἀντώνιος Ἐμμανουὴλ Κατακουζηνός,\r\n Ἡλέκτρα Ἑλένη Μαυρογένη. ἀλλὰ, Γεώργιος- Ἀλέξανδρος\r\n Μαγκάκης.\r\n
\r\n
\r\n
\r\n Τὸ ἑνωτικὸ χρησιμοποιεῖται σ’ ὅλες τὶς περιπτώσεις τῶν\r\n ἑλληνικῶν ὀνομάτων μὲ δύο ἐπώνυμα: Θανάσης\r\n Πετσάλης-Διομήδης, Κατερίνα Περισυνάκη-Κουτρούλη.\r\n
\r\n
\r\n
\r\n Βάζουμε ἑνωτικὸ σὲ ἐμπορικούς τίτλους ἢ ἐπωνυμίες\r\n ἐπιχειρήσεων, π.χ.: Ἀγραφιώτης - Πουρνάρας καὶ Σία.\r\n
\r\n
\r\n
\r\n Τὸ ἑνωτικὸ σημειώνεται στὸ τέλος ἢ στὴν ἀρχὴ ἑνὸς γλωσσικοῦ\r\n τύπου, γιὰ νὰ δειχτεῖ πὼς αὐτὸς δὲ γράφεται ὁλόκληρος:\r\n μονο-, δηλαδὴ λέξεις ποὺ ἀρχίζουν ἀπὸ τὸ μόνο.\r\n
\r\n
\r\n
\r\n Σημειώνουμε τὸ ἑνωτικὸ σὲ φράσεις ποὺ λειτουργοῦν ὡς ἕνα\r\n ὄνομα: τὸ σ’ ἀγαπῶ-σὲ- μισῶ, ὁ φίλος μου ὁ\r\n Αὐτός-ποὺ-γίνεται-τύφλα κτλ.\r\n
\r\n
\r\n
\r\n Δὲν παίρνουν ἑνωτικὸ τὰ κυρ, πάτερ καὶ καπετάν, π.χ.: ὁ κυρ\r\n Αντώνης, ὁ πάτερ Γεώργιος, ὁ καπετὰν Μιχάλης κτλ.\r\n
\r\n
\r\n
\r\n Τὸ ἑνωτικὸ ἀνάμεσα σὲ ὅμοιες λέξεις συνήθως ἀποφεύγεται,\r\n π.χ.: Προχώρα σιγὰ σιγά. Περπατούσαμε ἄκρη ἄκρη στὸ δρόμο.\r\n
\r\n
\r\n
\r\n
Ὑποδιαστολὴ ( , )
\r\n
\r\n Σημειώνεται στὴν ἀναφορικὴ ἀντωνυμία ὅ,τι (= καθετί) καὶ στὸ\r\n χρονικὸ σύνδεσμο ὅ,τι (= μόλις): ὅ,τι μοῦ πεῖς θὰ τὸ κάμω.–\r\n Ὅ,τι ἦρθε.\r\n
\r\n
\r\n
\r\n Σ’ ἕνα δεκαδικὸ ἀριθμὸ χωρίζει τὸ ἀκέραιο μέρος ἀπὸ τὸ\r\n δεκαδικό: (3,14).\r\n
\r\n
\r\n
\r\n
Απόστροφος ( ‘ )
\r\n
\r\n Σημειώνεται στὴν ἔκθλιψη: ἀπ’ αὐτά. στὴν ἀφαίρεση: μοῦ ‘πε.\r\n στὴν ἀποκοπή: φέρ’ το.\r\n
\r\n
\r\n
\r\n
\r\n Παράγραφος ( § ) [Alt+0167]\r\n
\r\n
\r\n Δηλώνεται μικρὴ διακοπὴ στὸ λόγο, ἰδίως ὅταν ὁ λόγος\r\n προχωρεῖ σὲ διαφορετικὸ κύκλο ἰδεῶν. Ἡ ἔναρξη παραγράφου\r\n δηλώνεται μὲ ἀλλαγὴ σειρᾶς, καὶ τὸ ξεκίνημα τῆς γραφῆς λίγο\r\n πιὸ μέσα ἀπὸ τὴ συνηθισμένη ἀρχὴ τῆς σειρᾶς.\r\n
\r\n
\r\n
\r\n
Σύν, πλήν ( ± ) [Alt+0177]
\r\n
\r\n Ὅταν βρίσκεται κοντὰ σὲ μιὰ χρονολογία, σημαίνει τὸ περίπου,\r\n τὴ μὴ βεβαιότητα σὲ σχέση μὲ τὴ χρονολογία.\r\n
\r\n
\r\n
\r\n
Ἀριθμοὶ καὶ σημεῖα στίξης
\r\n
\r\n Τὸ κόμμα χρησιμοποιεῖται γιὰ νὰ χωρίζει τὶς ἀκέραιες μονάδες\r\n ἀπὸ τὸ δεκαδικὸ μέρος τοῦ ἀριθμοῦ. Οἱ πολυψήφιοι ἀριθμοὶ\r\n παριστάνονται ἀνὰ ὁμάδες τριῶν ψηφίων. κάθε ὁμάδα τριῶν\r\n ψηφίων χωρίζεται ἀπὸ τὴν προηγούμενη ἢ τὴν ἑπόμενη μὲ\r\n σταθερὸ ἡμιδιάστημα (Ctrl + Shift + Space). Τὰ δεκαδικὰ\r\n ψηφία δὲν χωρίζονται μεταξύ τους. Ἐναλλακτικά, στὴ θέση τοῦ\r\n ἡμιδιαστήματος μπορεῖ νὰ χρησιμοποιηθεῖ ἡ τελεία. Γιὰ\r\n παράδειγμα:\r\n
\r\n
\r\n
\r\n Ἡ ἀπόσταση μεταξύ αὐτῶν τῶν δύο περιοχῶν εἶναι 1 256\r\n 456,1256 μέτρα. Τὸ βάρος τοῦ χαμένου φορτίου ἦταν\r\n 2.526.253,145 κιλά.\r\n
\r\n
\r\n
\r\n Ὁ διαχωρισμὸς σὲ ὁμάδες τῶν τριῶν ψηφίων δὲν συνηθίζεται\r\n στὴν περίπτωση τῶν χρονολογιῶν. Γιὰ παράδειγμα:\r\n
\r\n
\r\n
\r\n Ἡ Ἐπανάσταση τοῦ 1821. Ἡ καταστροφή του συντελέστηκε τὸ 4500\r\n π.Χ. Ἡ περιοχὴ κατοικήθηκε πολύ πρὶν τὸ 10500 π.Χ.\r\n
\r\n
\r\n
\r\n
\r\n Διαστήματα καὶ σημεῖα στίξης\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Σημεῖο στίξηςΧρήση στὸ κείμενο
,χχ, χχ
.χχ. χχ
.χχ. Χχ
:χχ: χχ
!χχ! χχ
;χχ; Χχ
-χχ-χχ
χχ – χχ
/χχ/χχ
( )χχ (χχ) χχ
[ ]χχ [χχ] χχ
« »χχ «χχ» χχ
“ “χχ “χχ” χχ
‘ ‘χχ ‘χχ’ χχ
%00 %
++¤00
--¤00
±±¤00
°C (°F)00¤°C
°00°
\r\n
\r\n Σημείωση: ¤ = σταθερὸ ἡμιδιάστημα (Ctrl + Shift +\r\n Space), ° = (Alt + 0176)\r\n
\r\n
\r\n
\r\n
\r\n
Πηγές
\r\n
\r\n 1. Ὁδηγὸς τῆς νεοελληνικῆς γλώσσας, ἐπιμ. Ἄννα Ἰορδανίδου,\r\n ἐκδόσεις Πατάκη.\r\n
\r\n
\r\n 2. Χανδριώτης, Ἑλλάδιος, Προφορὰ καὶ στίξη, Λευκωσία 1972.\r\n
\r\n
\r\n 3. Ἴδρυμα Μανόλη Τριανταφυλλίδη – Ἀριστοτέλειο Πανεπιστήμιο\r\n Θεσσαλονίκης, Νεοελληνικὴ Γραμματικὴ (τῆς Δημοτικῆς),\r\n Θεσσαλονίκη 1973.\r\n
\r\n
4. Ἑλληνικὸ Λεξικό, Τεγόπουλος-Φυτράκης.
\r\n
\r\n 5. Ὑπηρεσία Ἐκδόσεων τῆς Εὐρωπαϊκῆς Ἕνωσης, Διοργανικὸ\r\n ἐγχειρίδιο σύνταξης κειμένων,{' '}\r\n \r\n
\r\n
\r\n 6. Σακελλαρίου, Χάρης, Κλιτικὸ λεξικὸ δημοτικῆς, ἐκδόσεις Ἱ.\r\n Σιδέρης, Ἀθήνα.\r\n
\r\n
\r\n 7. Κριαρᾶς Ἐμμανουήλ, Νέο ἑλληνικὸ λεξικὸ τῆς σύγχρονης\r\n δημοτικῆς γλώσσας, Ἐκδοτικὴ Ἀθηνῶν.\r\n
\r\n
\r\n
\r\n
\r\n Μπορεῖτε νὰ κατεβάσετε{' '}\r\n \r\n , ἀρχεῖο “xrisi_simion_stixeos.zip” (80KB) μὲ τὴν πολὺ καλὴ\r\n δουλειὰ τοῦ Μπάμπη Κουτρούλη ἀπὸ τὸ{' '}\r\n \r\n , «Βασικὲς ὁδηγίες γιὰ τὴ χρήση τῶν σημείων στίξης».\r\n
\r\n
© 2022 Μπάμπης Κουτρούλης\r\n
\r\n
\r\n
\r\n );\r\n default:\r\n return '';\r\n }\r\n }, [i18n.language]);\r\n\r\n return (\r\n \r\n {getBody()}\r\n \r\n );\r\n};\r\n\r\nexport default withMenu(UsefulInfo);\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { AMAZON_BASE_URL, MENU_NS } from './Constants';\r\nimport LinkTo from './LinkTo';\r\nimport withMenu from './MenuHOC';\r\nimport ScrollableContainer from './ScrollableContainer';\r\n\r\nconst Support: React.FC = () => {\r\n const { t, i18n } = useTranslation();\r\n\r\n const getBody = React.useCallback(() => {\r\n switch (i18n.language) {\r\n case 'el':\r\n case 'en':\r\n default:\r\n return (\r\n
\r\n
\r\n
ΕΓΚΑΤΑΣΤΑΣΗ ΓΡΑΜΜΑΤΟΣΕΙΡΩΝ
\r\n
\r\n Oἱ γραμματοσειρὲς «Ἀναγραφὴ» λειτουργοῦν, ἀποκλειστικά, σὲ\r\n περιβάλλοντα MacOSX καὶ Windows PC. Παρέχονται σὲ μορφὴ\r\n OpenType® ποὺ εἶναι ἀπολύτως συμβατἠ καὶ μὲ τὰ δύο\r\n λειτουργικά.\r\n
\r\n
\r\n Ὅλες οἱ γραμματοσειρὲς οἱ ὁποίες ἀποστέλλονται μέσῳ internet\r\n εἶναι σὲ συμπιεσμένη μορφὴ γιὰ τὴν ἀποφυγὴ ἀλλοιώσεων τῶν\r\n ἀρχείων. Στὶς περισσότερες περιπτώσεις, μποροῦμε νὰ\r\n ἀποσυμπιέσουμε τὸ ἀρχεῖο κάνοντας πάνω του διπλὸ κλίκ. Σὲ\r\n περίπτωση ποὺ αὐτὸ δὲν λειτουργήσει, πρέπει νὰ\r\n ἐγκαταστήσουμε στὸν ὑπολογιστή μας μιὰ δωρεὰν ἐφαρμογὴ ὅπως\r\n τὸ WinZip () ἢ τὸ\r\n WinRar (\r\n ).\r\n
\r\n
\r\n
\r\n
Γραμματοσειρὲς OpenType®
\r\n
\r\n Ὁ τύπος γραμματοσειρᾶς OpenType ἀναπτύχθηκε ἀπὸ κοινοῦ ἀπὸ\r\n τὶς ἐταιρεῖες Apple καὶ Microsoft καὶ εἶναι ὁ νεώτερος ἀπὸ\r\n ὅλους τοὺς τύπους (ἀρχὲς τοῦ 2000). Ἔχει βασιστεῖ στὴ χρήση\r\n κωδικοποίησης Unicode καὶ περιέχει ὅπως καὶ ὁ τύπος\r\n TrueType, τὰ δεδομένα ἀπεικόνισης ὀθόνης καὶ ἐκτύπωσης σὲ\r\n ἕνα καὶ μόνο ἀρχεῖο. Ὅμως, ὁ τύπος OpenType περιλαμβάνει\r\n ἐπιπλέον ἕνα πλῆθος δυνατοτήτων, ὅπως ἡ ταυτόχρονη\r\n ὑποστήριξη πολλαπλῶν λειτουργικῶν συστημάτων καὶ ἡ\r\n ἐκτεταμένη ὑποστήριξη ὁμάδων χαρακτήρων (γλωσσῶν). Ἐπίσης,\r\n ἐπιτρέπει τὴν ἀποθήκευση ἔως 65.000 χαρακτήρων. Αὐτό τὸ\r\n χαρακτηριστικὸ δίνει στοὺς σχεδιαστὲς γραμματοσειρῶν τὴν\r\n ἐλευθερία νὰ συμπεριλάβουν πρόσθετους τύπους χαρακτήρων,\r\n ὅπως γιὰ παράδειγμα, μικρὰ κεφαλαία (small caps), χαρακτῆρες\r\n παλαιοῦ ὕφους (old style figures), ἐναλλακτικοὺς χαρακτῆρες\r\n (alternate characters), συμπλέγματα (ligatures), κλάσματα\r\n (fractions), ἀριθμοὺς παλαιοῦ τύπου (old style numerals) καὶ\r\n ἄλλα πολλά, τὰ ὁποῖα παλαιότερα, θὰ ἀπαιτοῦσαν τὴ δημιουργία\r\n χωριστῶν γραμματοσειρῶν.\r\n
\r\n
\r\n Σημείωση: Ὅλες οἱ γραμματοσειρὲς OpenType δὲν περιέχουν\r\n πάντα ἐπιπλέον χαρακτῆρες ή δυνατότητες (π.χ.\r\n αυτοματοποιημένα συμπλέγματα). Μπορεῖ νὰ εἶναι ἁπλὲς\r\n μετατροπὲς ἀπὸ τοὺς τύπους PostScript Type 1 ἢ TrueType\r\n χωρὶς ἐπιπρόσθετα σύνολα χαρακτήρων. Περισσότερες\r\n πληροφορίες γιὰ τὸν τύπο OpenType μπορεῖτε νὰ βρεῖτε στὸ{' '}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Ἐγκατάσταση σὲ λειτουργικὸ Macintosh OSX\r\n
\r\n
\r\n Γιὰ νὰ ἐνεργοποίησουμε μιὰ γραμματοσειρά, μεταφέρουμε τὰ\r\n ἀρχεία της μέσα στὸ φάκελο Fonts, ἀκολουθώντας τὴ διαδρομὴ\r\n Macintosh HD {'>'} User {'>'} Library {'>'} Fonts. Μποροῦμε,\r\n ἐπίσης, νὰ χρησιμοποιήσουμε ἐφαρμογὲς ἐγκατάστασης καὶ\r\n διαχείρισης γραμματοσειρῶν, ὅπως τὸ Font Book (\r\n ) τὸ\r\n ὁποῖο βρίσκεται προεγκατεστημένο (δωρεὰν) στὸ λειτουργικὸ\r\n MacOSX, ἢ τὸ Linotype FontExplorer X (\r\n ) τὸ ὁποῖο\r\n παρέχει ἐπαγγελματικὲς δυνατότητες.\r\n
\r\n
\r\n
\r\n
\r\n Ἐγκατάσταση σὲ λειτουργικὸ Windows PC\r\n
\r\n
\r\n Γιὰ νὰ ἐγκαταστήσουμε γραμματοσειρὲς OpenType, ἁπλῶς\r\n μεταφέρουμε τὰ ἀρχεία στὸν φάκελο «Γραμματοσειρές» (“Fonts”)\r\n μέσα στὸν «Πίνακα Ἐλέγχου» (“Control Panel”). Ἐναλλακτικὰ,\r\n μὲ διπλό κλὶκ στὸ ἀρχεῖο τῆς γραμματοσειρᾶς, ἐπιλέγουμε\r\n «Ἐγκατάσταση» (Install).\r\n
\r\n
\r\n
\r\n
ΕΙΣΑΓΩΓΗ ΧΑΡΑΚΤΗΡΩΝ
\r\n
\r\n Πληκτρολόγηση εἰδικῶν χαρακτήρων μέσῳ τοῦ δεκαεξαδικοῦ ἢ\r\n δεκαδικοῦ κώδικα\r\n
\r\n
\r\n
\r\n Λειτουργικὸ Macintosh Mac OSX\r\n
\r\n
Δεκαεξαδικὴ εἰσαγωγή
\r\n
\r\n Ὁ τρόπος εἰσαγωγῆς Unicode Hex (OS 10.2+) ἐπιτρέπει στὸν\r\n χρήστη τὴν εἰσαγωγὴ ὀποιουδήποτε χαρακτήρα, ἐφόσον γνωρίζει\r\n τὰ 4 ψηφία ποὺ ἀντιστοιχοῦν (δεύτερη στήλη πινάκων).\r\n Μποροῦμε νὰ ἐνεργοποιήσουμε τὸ πληκτρολόγιο Unicode Hex ἀπὸ\r\n τὸ System Preferences {'>'} International {'>'} Input Menu.\r\n
\r\n
\r\n Ἔτσι, κρατώντας πατημένο τὸ πλῆκτρο ALT καὶ πληκτρολογώντας\r\n τὴν δεκαεξαδικὴ τιμὴ Unicode -1F0C- ἔχουμε αὐτόματα τὸν\r\n χαρακτῆρα - Ἄ- (ἄλφα κεφαλαῖο μὲ ψιλὴ - ὀξεῖα).\r\n
\r\n
\r\n
\r\n
Λειτουργικὸ Windows PC
\r\n
\r\n Στὰ Windows ὑπάρχει, ἐπίσης, διαθέσιμη ἡ δυνατότητα τῆς\r\n δεκαδικῆς καὶ δεκαεξαδικῆς εἰσαγωγῆς (Decimal/Hexadecimal\r\n Input Method).\r\n
\r\n
\r\n
\r\n
Δεκαδικὴ εἰσαγωγή
\r\n
\r\n Ἡ μέθοδος ALT + δεκαδικὸς ἀπαιτεῖ τὸν κώδικα ἀπὸ τὴν\r\n κωδικοποίηση τοῦ χαρακτήρα ποὺ θέλουμε νὰ εἰσάγουμε (τρίτη\r\n στήλη πινάκων). Ὁ κωδικὸς αὐτὸς ἀποτελεῖται ἀπὸ ἀριθμητικὰ\r\n ψηφία, μόνο.\r\n
\r\n
\r\n Ἔτσι, κρατώντας πατημένο τὸ πλῆκτρο ALT καὶ πληκτρολογώντας\r\n στὸ ἀριθμητικὸ πληκτρολόγιο (δεξιὰ) τὴν δεκαδικὴ τιμὴ\r\n Unicode -0163- ἔχουμε αὐτόματα τὸν χαρακτῆρα -£- (pound),\r\n ἐνῷ μὲ τὴν τιμὴ -8087- θὰ πάρουμε τὸν χαρακτήρα -ᾗ- (ἦτα\r\n πεζὸ μὲ δασεῖα - περισπωμένη καὶ ὑπογεγραμμένη).\r\n
\r\n
\r\n
\r\n
Δεκαεξαδικὴ εἰσαγωγή
\r\n
\r\n Μὲ τὴ μέθοδο αὐτή, πληκτρολογοῦμε τὸν δεκαεξαδικὸ κωδικὸ\r\n (δεύτερη στήλη πινάκων), καὶ ἀμέσως μετὰ alt + x. Ὁ κωδικὸς\r\n αὐτὸς μπορεῖ νὰ ἀποτελεῖται μόνο ἀπὸ ἀριθμοὺς ἢ ἀπὸ\r\n συνδυασμὸ ἀριθμῶν καὶ γραμμάτων.\r\n
\r\n
\r\n Ἔτσι, πληκτρολογώντας -1F10- καὶ ἀμέσως μετὰ alt + x, θὰ\r\n πάρουμε τὸν χαρακτήρα -ἐ- ἔψιλον πεζὸ μὲ ψιλή. Ἄν,\r\n ἀντιστρόφως, μετὰ ἀπὸ ἕνα ἤδη ὑπάρχοντα χαρακτήρα\r\n πληκτρολογήσουμε alt + x, θὰ ἐμφανιστεῖ στὴ θέση του ὁ\r\n δεκαεξαδικὸς κωδικός του.\r\n
\r\n
\r\n
\r\n Στὸ ἀρχεῖο “input_charts.zip” (340KB), ποὺ μπορεῖτε νὰ\r\n κατεβάσετε{' '}\r\n {' '}\r\n , θὰ βρεῖτε τοὺς πίνακες μὲ τοὺς δεκαδικοὺς καὶ\r\n δεκαεξαδικοὺς κωδικοὺς γιὰ ὅλους, σχεδόν, τοὺς χαρακτῆρες\r\n ποὺ μπορεῖ νὰ χρειαστεῖ κάποιος (Ἑλληνικά, Ἑλληνικὰ\r\n πολυτονικά, Λατινικά, Κυριλλικά, νομισματικά σύμβολα, σημεῖα\r\n στίξης κ.λπ.)\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n }, [i18n.language]);\r\n\r\n return (\r\n \r\n {getBody()}\r\n \r\n );\r\n};\r\n\r\nexport default withMenu(Support);\r\n","import * as _ from 'lodash';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { FONTS_NS, MENU_NS, PRICES_NS } from './Constants';\r\nimport { getFontTagCodes, getFontTagNames } from './Helpers';\r\nimport withMenu from './MenuHOC';\r\nimport ScrollableContainer from './ScrollableContainer';\r\nimport { AppStore, CategoryType, Store } from './types';\r\n\r\ntype Tags = AppStore['filters'][number]['options'];\r\n\r\nconst Prices: React.FC = () => {\r\n const { t, i18n } = useTranslation();\r\n const fonts = useSelector(({ app }: Store) =>\r\n _.sortBy(\r\n app.fonts?.filter(({ isPackage, isMainFont }) => isMainFont && !isPackage),\r\n ({ name }) => name\r\n )\r\n );\r\n const allTags = useSelector(({ app }: Store) =>\r\n app.filters\r\n ?.filter(({ type }) => type !== CategoryType.WEIGHTS)\r\n ?.reduce((acc, { options }) => acc.concat(options), [] as Tags)\r\n );\r\n\r\n const getTagAbbreviation = React.useCallback(\r\n ({ codeEn, codeGr }: Tags[number]) => {\r\n switch (i18n.language) {\r\n case 'en':\r\n return codeEn;\r\n case 'el':\r\n default:\r\n return codeGr;\r\n }\r\n },\r\n [i18n.language]\r\n );\r\n\r\n const getTagDescription = React.useCallback(\r\n ({ descriptionEn, descriptionGr }: Tags[number]) => {\r\n switch (i18n.language) {\r\n case 'en':\r\n return descriptionEn;\r\n case 'el':\r\n default:\r\n return descriptionGr;\r\n }\r\n },\r\n [i18n.language]\r\n );\r\n\r\n if (_.isEmpty(fonts) || _.isEmpty(allTags)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
\r\n Οἱ γραμματοσειρὲς Ἀναγραφὴ πωλοῦνται καὶ διακινοῦνται ἀποκλειστικὰ ἀπὸ\r\n τὴν ἐταιρεία Personalized / Φανούριος Σισκάκης.\r\n
\r\n
\r\n Ἐκδίδεται Τιμολόγιο ἢ Ἀπόδειξη καὶ ἐπιβαρύνεται, κατὰ περίπτωση, μὲ ΦΠΑ\r\n Αὐστρίας (20%).\r\n
\r\n
\r\n
ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΑΓΟΡΑ ΓΡΑΜΜΑΤΟΣΕΙΡΑΣ/ΩΝ
\r\n
\r\n Μπορεῖτε νά ἐπιλέξετε αὐτὸ ποὺ ἐπιθυμεῖτε, πατώντας στὸ σύμβολο τοῦ\r\n καλαθιοῦ, κάτω ἀριστερά στὴ σελὶδα τῶν λεπτομεριῶν κάθε γραμματοσειρᾶς.\r\n
\r\n
\r\n Μόλις ὁριστικοποιήσετε τὴν ἐπιλογή/ές σας, μπορεῖτε νὰ δεῖτε στὸ\r\n «Καλάθι» τὴ συνολικὴ εἰκόνα τῆς ἀγορᾶς σας, νὰ ἀφαιρέσετε καὶ/ἢ νὰ\r\n προχωρήσετε στὴν ὁλοκλήρωση της πληρωμῆς.\r\n
\r\n
\r\n Μετὰ τὴν ἐπιλογὴ τῶν γραμματοσειρῶν ποὺ ἐπιθυμείτε καὶ τὴν ἀποστολή τους\r\n στὸ καλάθι, πρέπει νὰ συμπληρώσετε τὰ στοιχεία ποὺ ἀπαιτοῦνται στὴ\r\n φόρμα.\r\n
\r\n
\r\n Γιὰ τὴν πώληση τῶν γραμματοσειρῶν ἐκδίδεται καὶ ἀποστέλεται, μέσω e-mail\r\n (invoicing@personalized.at), τιμολόγιο/ἀπόδειξη ἀπὸ τὴν ἐταιρεία\r\n Personalized.at (Αὐστρία). Παρακαλοῦμε, ἐλέγξτε τὰ spam mails σας, σὲ\r\n περίπτωση ποὺ τὸ μήνυμά μας βρίσκεται ἐκεῖ.\r\n
\r\n
\r\n Οἱ γραμματοσειρὲς σᾶς ἀποστέλονται, ἀμέσως μετά τὴν τραπεζικὴ κατάθεση\r\n καὶ τὴν ἀποστολὴ τοῦ σχετικοῦ ἀποδεικτικοῦ, στὸ e-mail ποὺ ἔχετε\r\n δηλώσει.\r\n
\r\n
\r\n
\r\n Ἂν γιὰ ὀποιοδήποτε λόγο ἀπαιτεῖται κάποια εἰδικὴ μεταχείριση, ἐκτὸς τῶν\r\n παρεχομένων ἐπιλογῶν, παρακαλοῦμε ἐπικοινωνεῖστε μαζί μας.\r\n
\r\n
\r\n
{t(`${PRICES_NS}.abbreviations`)}
\r\n
\r\n {allTags\r\n ?.filter(\r\n ({ fontTagCategoryID }) =>\r\n fontTagCategoryID === CategoryType.LANGUAGES\r\n )\r\n .map(tag => (\r\n
\r\n
\r\n {getTagAbbreviation(tag)}:\r\n
\r\n
{getTagDescription(tag)}
\r\n
\r\n ))}\r\n
\r\n
\r\n {fonts\r\n .sort((a, b) =>\r\n a.code.toLowerCase().localeCompare(b.code.toLowerCase())\r\n )\r\n .map(\r\n (\r\n {\r\n id,\r\n fullPageName,\r\n supportedLanguageIDs,\r\n weightIDs,\r\n price,\r\n fontCategoryIDs\r\n },\r\n i\r\n ) => (\r\n
\r\n {i + 1}. {fullPageName} -{' '}\r\n {getFontTagNames(fontCategoryIDs, allTags).join(' - ')}{' '}\r\n -{' '}\r\n {getFontTagCodes(supportedLanguageIDs, allTags).join(\r\n '/'\r\n )}\r\n {weightIDs.length\r\n ? ` - ${weightIDs.length} ${t(\r\n `${FONTS_NS}.weight`\r\n )}`\r\n : ''}{' '}\r\n -{' '}\r\n \r\n {t(`${FONTS_NS}.euro`)} {price}\r\n \r\n
\r\n )\r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default withMenu(Prices);\r\n","import { FormApi, ValidationErrors } from 'final-form';\r\nimport * as React from 'react';\r\nimport * as _ from 'lodash';\r\nimport { Field, Form, FormRenderProps } from 'react-final-form';\r\nimport FontAwesome from 'react-fontawesome';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { addRemoveToCart, enqueueNotification, updateCart } from './actions/Actions';\r\nimport { BASE_URL, CART_NS } from './Constants';\r\nimport { getCartTotal } from './Helpers';\r\nimport withMenu from './MenuHOC';\r\nimport ScrollableContainer from './ScrollableContainer';\r\nimport { Font, Store } from './types';\r\n\r\nenum PurchaseType {\r\n PRIVATE = 'private',\r\n COMPANY = 'company'\r\n}\r\n\r\ntype FormValues = {\r\n fullName: string;\r\n email: string;\r\n purchaseType: PurchaseType;\r\n companyInfo?: string;\r\n comments?: string;\r\n address?: string;\r\n};\r\n\r\nconst INITIAL_VALUES: Partial = { purchaseType: PurchaseType.PRIVATE };\r\n\r\nconst Condition = ({\r\n when,\r\n is,\r\n children\r\n}: {\r\n when: T;\r\n is: FormValues[T];\r\n children: JSX.Element;\r\n}) => (\r\n \r\n {({ input: { value } }) => (value === is ? children : null)}\r\n \r\n);\r\n\r\nconst Cart: React.FC = () => {\r\n const { t, i18n } = useTranslation();\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n const dispatch = useDispatch();\r\n const cart = useSelector(({ app }: Store) => app.cart);\r\n\r\n const onRemoveFromCart = React.useCallback(\r\n (font: Font) => () => {\r\n dispatch(addRemoveToCart(font));\r\n },\r\n [dispatch]\r\n );\r\n\r\n const renderCart = React.useCallback(\r\n (values: FormValues) => {\r\n if (!cart.length) {\r\n return (\r\n \r\n \r\n {t(`${CART_NS}.table.empty`)}\r\n \r\n \r\n );\r\n }\r\n\r\n const total = getCartTotal(cart);\r\n\r\n return (\r\n <>\r\n {cart.map(font => (\r\n \r\n {font.fullPageName}\r\n {font.price}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n {t(`${CART_NS}.form.total.${values.purchaseType}`)}\r\n \r\n {values.purchaseType === PurchaseType.COMPANY\r\n ? total\r\n : total + total * 0.2}\r\n \r\n \r\n \r\n );\r\n },\r\n [cart, onRemoveFromCart, t]\r\n );\r\n\r\n const getInvoiceText = React.useCallback(() => {\r\n if (i18n.language === 'el') {\r\n return (\r\n
\r\n Γιὰ τὴν πώληση τῶν γραμματοσειρῶν ἐκδίδεται καὶ ἀποστέλεται, μέσω\r\n e-mail (invoicing@personalized.at), τιμολόγιο/ἀπόδειξη ἀπὸ τὴν\r\n ἐταιρεία Personalized.at (Αὐστρία).\r\n
\r\n Παρακαλοῦμε, ἐλέγξτε τὰ spam mails σας, σὲ περίπτωση ποὺ τὸ\r\n μήνυμά μας βρίσκεται ἐκεῖ.\r\n
\r\n
\r\n Μετὰ τὴν ἀποστολὴ τῆς Αἴτησης Παραγγελίας, θὰ λάβετε e-mail, στὸ\r\n ὁποῖο πρέπει νὰ ἐπιβεβαιώσετε τὴν ὁρθότητα τῶν στοιχείων σας.\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n For the sale of the fonts, an invoice/receipt from the company\r\n Personalized.at (Austria) is issued and sent via e-mail\r\n (invoicing@personalized.at).\r\n
Please check your spam mails in case our message is there.
\r\n
\r\n After the Payment Request you will receive an email to confirm your\r\n input data.\r\n
\r\n
\r\n );\r\n }, [i18n.language]);\r\n\r\n const renderPaymentForm = React.useCallback(\r\n ({\r\n handleSubmit,\r\n hasValidationErrors,\r\n values\r\n }: FormRenderProps) => (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderCart(values)}\r\n
\r\n {t(`${CART_NS}.table.font`)}\r\n {t(`${CART_NS}.table.price`)} €\r\n
\r\n
Στοιχεία ἀποστολῆς/τιμολόγησης
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {t(`${CART_NS}.form.type_private`)}\r\n \r\n \r\n
\r\n
\r\n \r\n {t(`${CART_NS}.form.type_company`)}\r\n \r\n \r\n
\r\n
\r\n {t(`${CART_NS}.form.name`)}\r\n *:\r\n \r\n \r\n {({ input }) => (\r\n \r\n )}\r\n \r\n
\r\n {t(`${CART_NS}.form.company_info`)}\r\n *:\r\n \r\n \r\n
\r\n {t(`${CART_NS}.form.address`)}\r\n *:\r\n \r\n \r\n
\r\n {t(`${CART_NS}.form.email`)}\r\n *:\r\n \r\n \r\n {({ input }) => (\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {t(`${CART_NS}.form.pay`)}\r\n \r\n \r\n {loading && (\r\n \r\n )}\r\n
\r\n * {t(`${CART_NS}.form.mandatory`)}\r\n
{getInvoiceText()}
\r\n
\r\n \r\n ),\r\n [cart.length, getInvoiceText, loading, renderCart, t]\r\n );\r\n\r\n const validateForm = React.useCallback((values: FormValues) => {\r\n const errors: ValidationErrors = {};\r\n\r\n if (!values.fullName) {\r\n errors.fullName = 'Required';\r\n }\r\n if (!values.email) {\r\n errors.email = 'Required';\r\n }\r\n if (!values.purchaseType) {\r\n errors.purchaseType = 'Required';\r\n }\r\n if (values.purchaseType === PurchaseType.COMPANY && !values.companyInfo) {\r\n errors.companyInfo = 'Required';\r\n }\r\n if (!values.address) {\r\n errors.address = 'Required';\r\n }\r\n\r\n return errors;\r\n }, []);\r\n\r\n const handlePaymentRequest = React.useCallback(\r\n (values: FormValues, form: FormApi>) => {\r\n setLoading(true);\r\n\r\n const payload = {\r\n ...values,\r\n isCompany: values.purchaseType === PurchaseType.COMPANY,\r\n fontIDs: cart.map(({ id }) => id),\r\n contactLanguage: i18n.language\r\n };\r\n\r\n fetch(`${BASE_URL}/ShowInterestInBuyingFonts`, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(_.omit(payload, 'purchaseType'))\r\n })\r\n .then(res => res.text())\r\n .then(() => {\r\n form.reset({ ...INITIAL_VALUES });\r\n dispatch(updateCart([]));\r\n\r\n dispatch(\r\n enqueueNotification({\r\n key: new Date().getTime(),\r\n message: t(`${CART_NS}.form.success`),\r\n options: { variant: 'success' }\r\n })\r\n );\r\n })\r\n .catch(e => {\r\n dispatch(\r\n enqueueNotification({\r\n key: new Date().getTime(),\r\n message: e,\r\n options: { variant: 'error' }\r\n })\r\n );\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n },\r\n [cart, dispatch, i18n.language, t]\r\n );\r\n\r\n return (\r\n \r\n
\r\n \r\n render={renderPaymentForm}\r\n onSubmit={handlePaymentRequest}\r\n initialValues={{ ...INITIAL_VALUES }}\r\n validate={validateForm}\r\n />\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default withMenu(Cart);\r\n","import { omit } from 'lodash';\r\nimport * as React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n Redirect,\r\n Route,\r\n RouteComponentProps,\r\n Switch,\r\n withRouter\r\n} from 'react-router-dom';\r\nimport { setFilters, setFonts } from './actions/Actions';\r\nimport { ABOUT_NS, BASE_URL, CART_NS, FONTS_NS, PRICES_NS } from './Constants';\r\nimport Home from './Home';\r\nimport Fonts from './Fonts';\r\nimport FontDetails from './FontDetails';\r\nimport About from './About';\r\nimport LegalNotice from './LegalNotice';\r\nimport { AppStore, FontTag, FontTagCategory, Store } from './types';\r\nimport CustomServices from './CustomServices';\r\nimport Contact from './Contact';\r\nimport UsefulInfo from './UsefulInfo';\r\nimport Support from './Support';\r\nimport Prices from './Prices';\r\nimport Cart from './Cart';\r\n\r\nconst App: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const fonts = useSelector(({ app }: Store) => app.fonts);\r\n const filters = useSelector(({ app }: Store) => app.filters);\r\n\r\n React.useEffect(() => {\r\n if (!fonts) {\r\n fetch(`${BASE_URL}/Fonts`)\r\n .then(res => res.json())\r\n .then((f: AppStore['fonts']) => {\r\n dispatch(setFonts(f));\r\n });\r\n }\r\n\r\n if (!filters) {\r\n Promise.all([\r\n fetch(`${BASE_URL}/GetFontTagCategories`).then(res => res.json()),\r\n fetch(`${BASE_URL}/GetFontTags`).then(res => res.json())\r\n ]).then(([categories, tags]: [FontTagCategory[], FontTag[]]) => {\r\n dispatch(\r\n setFilters(\r\n categories.map(c => ({\r\n ...omit(c, 'fontTagIDs'),\r\n options: c.fontTagIDs.map(id => ({\r\n ...tags.find(x => x.id === id),\r\n checked: true\r\n }))\r\n }))\r\n )\r\n );\r\n });\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dispatch]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* fallback route */}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default withRouter(App);\r\n","import * as React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { createBrowserHistory, History } from 'history';\r\nimport { createStore, applyMiddleware, combineReducers } from 'redux';\r\nimport { Provider } from 'react-redux';\r\nimport thunk from 'redux-thunk';\r\nimport { createLogger } from 'redux-logger';\r\nimport {\r\n ConnectedRouter,\r\n connectRouter,\r\n routerMiddleware\r\n} from 'connected-react-router';\r\nimport { SnackbarProvider } from 'notistack';\r\nimport Notifier from './Notifier';\r\nimport STORE from './store';\r\nimport Reducers from './reducers/Reducers';\r\nimport App from './App';\r\n\r\nimport './i18n';\r\nimport './styles/main.less';\r\n\r\nconst browserHistory = createBrowserHistory();\r\nconst middlewares = [thunk, routerMiddleware(browserHistory)];\r\n\r\nif (process.env.NODE_ENV === 'development') {\r\n const logger = createLogger({\r\n collapsed: true,\r\n titleFormatter: action => `${action.type}`\r\n });\r\n middlewares.push(logger);\r\n}\r\n\r\nconst createRootReducer = (history: History) =>\r\n combineReducers({\r\n router: connectRouter(history),\r\n app: Reducers\r\n });\r\n\r\nconst configureStore = (initialState = STORE) =>\r\n createStore(\r\n createRootReducer(browserHistory),\r\n initialState,\r\n applyMiddleware(...middlewares)\r\n );\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n"],"sourceRoot":""}