{"version":3,"sources":["webpack://uhr/webpack/bootstrap","webpack://uhr/external \"Cookies\"","webpack://uhr/external \"jQuery\"","webpack://uhr/./src/layout/layout-de.ts","webpack://uhr/./src/layout/layout-de_ch.ts","webpack://uhr/./src/layout/layout-de_ch_genau.ts","webpack://uhr/./src/layout/layout-dk.ts","webpack://uhr/./src/layout/layout-en.ts","webpack://uhr/./src/layout/layout-es.ts","webpack://uhr/./src/layout/layout-fr.ts","webpack://uhr/./src/layout/layout-it.ts","webpack://uhr/./src/layout/layout-nl.ts","webpack://uhr/./src/layout/layout-pt.ts","webpack://uhr/./src/domain/globals.ts","webpack://uhr/./src/domain/layout.ts","webpack://uhr/./src/domain/letter.ts","webpack://uhr/./src/renderer.ts","webpack://uhr/./src/uhr.ts","webpack://uhr/./src/theme-autodetector.ts","webpack://uhr/./src/index.ts","webpack://uhr/./src/bundle.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","Cookies","jQuery","__webpack_exports__","Layout_de","nach","4","vor","halb","5","fuenf","1","zehn","2","zwanzig","code","hours","0,12","9","1,13","6","2,14","3,15","7","4,16","5,17","6,18","8","7,19","8,20","9,21","10","10,22","11,23","letters","minutes","0,1,2,3,4","5,6,7,8,9","10,11,12,13,14","15,16,17,18,19","3","20,21,22,23,24","25,26,27,28,29","30,31,32,33,34","35,36,37,38,39","40,41,42,43,44","45,46,47,48,49","50,51,52,53,54","55,56,57,58,59","permanent","prettyName","version","$","fritteli","uhr","register","Layout_de_CH","ab","haubi","fuef","zae","viertu","zwaenzg","Layout_de_CH_genau","0","Layout_dk","minutter","over","fem","ti","kvart","tyve","halv","Layout_en","to","past","five","ten","a_quarter","twenty","twentyfive","getHour","time","hour","getHours","getMinutes","Layout_es","son_las","y","menos","cinco","diez","cuarto","veinte","veinticinco","Layout_fr","et","moins","heures","cinq","dix","quart","vingt","vingtcinq","12","Layout_it","sono_le","e","meno","cinque","dieci","un_quarto","venti","venticinque","Layout_nl","over1","voor1","half","vijf","tien","kwart","Layout_pt","e_","sao","e1","e2","dez","um_quarto","vinte","Globals","registerTheme","styleClass","themes","some","console","log","push","hasThemes","length","hasMultipleThemes","getFirstTheme","getTheme","index","getThemes","registerLayout","layout","layouts","element","error","sort","a","b","localeCompare","hasLayouts","hasMultipleLayouts","getFirstLayout","getLayouts","EMPTY_LAYOUT","Letter","style","this","addStyle","toString","renderer_UhrRendererV2Delegate","UhrRendererV2Delegate","parse","forEach","lineString","line","parseArrayOrObject","seconds","parseTimeDefinition","parseObject","keys","map","Number","x","input","_this","Array","isArray","item","definition","listString","timeValues","split","highlightLetters","timeValue","vorne0","hinten0","vorne1","hinten1","vorne2","hinten2","vorne3","hinten3","vorne4","hinten4","vorne5","hinten5","hinten6","hinten7","hinten8","hinten9","11","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","UhrRenderer","renderarea","render","beforeshow","undefined","parsed","warn","parsedLayout","writable","configurable","fadeOut","empty","array","letter","append","fadeIn","uhr_Uhr","Uhr","widgetInstance","timer","currentMinute","userTime","options","Date","parseHash","setupHTML","wireFunctionality","setTime","destroy","window","clearInterval","removeAttr","uuid","remove","start","isOn","setInterval","update","setCookie","stop","toggle","setLanguage","language","getCurrentLayout","find","setTheme","theme","removeClass","addClass","setMode","setWidth","width","css","realWidth","height","controls","controlpanel","content","toggleSwitch","modeSwitch","languageChooser_1","themeChooser_1","closebutton","on","hide","after","configlink","click","toggleConfigScreen","status","getCookie","force","prop","languageChooser","change","languageKey","val","selectedLayout","found","fallbackLanguage","themeChooser","themeKey","selectedTheme","fallbackTheme","autoresize","resize","$parent","parent","$window","parentWidth","parentHeight","windowWidth","windowHeight","size","Math","min","cookieName","external_Cookies_","cookieValue","cookiePath","expires","path","show","clear","second","getSecond","dotMinute","getDotMinute","coarseMinute","getCoarseMinute","highlight","itemClass","getSeconds","date","hash","location","charAt","substring","decodeURIComponent","pair","matchingLanguages","filter","external_jQuery_","each","styleSheet","attr","name_1","widget","__fritteli_uhr_instance","_create","_destroy","_layout_layout_de__WEBPACK_IMPORTED_MODULE_1__","_layout_layout_de_ch__WEBPACK_IMPORTED_MODULE_2__","_layout_layout_de_ch_genau__WEBPACK_IMPORTED_MODULE_3__","_layout_layout_dk__WEBPACK_IMPORTED_MODULE_4__","_layout_layout_en__WEBPACK_IMPORTED_MODULE_5__","_layout_layout_es__WEBPACK_IMPORTED_MODULE_6__","_layout_layout_fr__WEBPACK_IMPORTED_MODULE_7__","_layout_layout_it__WEBPACK_IMPORTED_MODULE_8__","_layout_layout_nl__WEBPACK_IMPORTED_MODULE_9__","_layout_layout_pt__WEBPACK_IMPORTED_MODULE_10__"],"mappings":"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","file":"lib/uhr.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 13);\n","module.exports = Cookies;","module.exports = jQuery;","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Layout, WordDefinition} from '../domain/layout';\n\nconst es_ist: WordDefinition = {1: [1, 2, 4, 5, 6]};\nconst uhr: WordDefinition = {10: [9, 10, 11]};\nconst nach: WordDefinition = {4: [8, 9, 10, 11]};\nconst vor: WordDefinition = {4: [1, 2, 3]};\nconst halb: WordDefinition = {5: [1, 2, 3, 4]};\nconst fuenf: WordDefinition = {1: [8, 9, 10, 11]};\nconst zehn: WordDefinition = {2: [1, 2, 3, 4]};\nconst viertel: WordDefinition = {3: [5, 6, 7, 8, 9, 10, 11]};\nconst zwanzig: WordDefinition = {2: [5, 6, 7, 8, 9, 10, 11]};\nconst dreiviertel: WordDefinition = {3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]};\n\nexport const Layout_de: Layout = {\n code: 'de',\n hours: {\n '0,12': {9: [7, 8, 9, 10, 11]},\n '1,13': {6: [1, 2, 3, 4]},\n '2,14': {6: [8, 9, 10, 11]},\n '3,15': {7: [1, 2, 3, 4]},\n '4,16': {7: [8, 9, 10, 11]},\n '5,17': {5: [8, 9, 10, 11]},\n '6,18': {8: [1, 2, 3, 4, 5]},\n '7,19': {9: [1, 2, 3, 4, 5, 6]},\n '8,20': {8: [8, 9, 10, 11]},\n '9,21': {10: [4, 5, 6, 7]},\n '10,22': {10: [1, 2, 3, 4]},\n '11,23': {5: [6, 7, 8]}\n },\n letters: [\n 'ESKISTAFÜNF',\n 'ZEHNZWANZIG',\n 'DREIVIERTEL',\n 'VORFUNKNACH',\n 'HALBAELFÜNF',\n 'EINSXAMZWEI',\n 'DREIPMJVIER',\n 'SECHSNLACHT',\n 'SIEBENZWÖLF',\n 'ZEHNEUNKUHR'\n ],\n minutes: {\n '0,1,2,3,4': uhr,\n '5,6,7,8,9': [fuenf, nach],\n '10,11,12,13,14': [zehn, nach],\n '15,16,17,18,19': [viertel, nach],\n '20,21,22,23,24': [zwanzig, nach],\n '25,26,27,28,29': [fuenf, vor, halb],\n '30,31,32,33,34': halb,\n '35,36,37,38,39': [fuenf, nach, halb],\n '40,41,42,43,44': [zwanzig, vor],\n '45,46,47,48,49': dreiviertel,\n '50,51,52,53,54': [zehn, vor],\n '55,56,57,58,59': [fuenf, vor]\n },\n permanent: es_ist,\n prettyName: 'Deutsch',\n version: 2\n};\n\n$.fritteli.uhr.register(Layout_de);\n\ndeclare namespace $ {\n const fritteli: Fritteli.Fritteli;\n}\ndeclare namespace Fritteli {\n interface Fritteli {\n uhr: Uhr;\n }\n\n interface Uhr {\n register: (layout: Layout) => void;\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Layout, WordDefinition} from '../domain/layout';\n\nconst es_isch: WordDefinition = {1: [1, 2, 4, 5, 6, 7]};\nconst ab: WordDefinition = {4: [1, 2]};\nconst vor: WordDefinition = {3: [9, 10, 11]};\nconst haubi: WordDefinition = {4: [4, 5, 6, 7, 8]};\nconst fuef: WordDefinition = {1: [9, 10, 11]};\nconst zae: WordDefinition = {2: [9, 10, 11]};\nconst viertu: WordDefinition = {2: [1, 2, 3, 4, 5, 6]};\nconst zwaenzg: WordDefinition = {3: [1, 2, 3, 4, 5, 6]};\n\nexport const Layout_de_CH: Layout = {\n code: 'de_CH',\n hours: {\n '0,12': {10: [1, 2, 3, 4, 5, 6]},\n '1,13': {5: [1, 2, 3]},\n '2,14': {5: [4, 5, 6, 7]},\n '3,15': {5: [9, 10, 11]},\n '4,16': {6: [1, 2, 3, 4, 5]},\n '5,17': {6: [6, 7, 8, 9]},\n '6,18': {7: [1, 2, 3, 4, 5, 6]},\n '7,19': {7: [7, 8, 9, 10, 11]},\n '8,20': {8: [1, 2, 3, 4, 5]},\n '9,21': {8: [6, 7, 8, 9]},\n '10,22': {9: [1, 2, 3, 4]},\n '11,23': {9: [8, 9, 10, 11]}\n },\n letters: [\n 'ESKISCHAFÜF',\n 'VIERTUBFZÄÄ',\n 'ZWÄNZGSIVOR',\n 'ABOHAUBIEGE',\n 'EISZWÖISDRÜ',\n 'VIERIFÜFIQT',\n 'SÄCHSISIBNI',\n 'ACHTINÜNIEL',\n 'ZÄNIERBEUFI',\n 'ZWÖUFINAUHR'\n ],\n minutes: {\n '5,6,7,8,9': [fuef, ab],\n '10,11,12,13,14': [zae, ab],\n '15,16,17,18,19': [viertu, ab],\n '20,21,22,23,24': [zwaenzg, ab],\n '25,26,27,28,29': [fuef, vor, haubi],\n '30,31,32,33,34': haubi,\n '35,36,37,38,39': [fuef, ab, haubi],\n '40,41,42,43,44': [zwaenzg, vor],\n '45,46,47,48,49': [viertu, vor],\n '50,51,52,53,54': [zae, vor],\n '55,56,57,58,59': [fuef, vor]\n },\n permanent: es_isch,\n prettyName: 'Bärndütsch',\n version: 2\n};\n\n$.fritteli.uhr.register(Layout_de_CH);\n\ndeclare namespace $ {\n const fritteli: Fritteli.Fritteli;\n}\ndeclare namespace Fritteli {\n interface Fritteli {\n uhr: Uhr;\n }\n\n interface Uhr {\n register: (layout: Layout) => void;\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Layout, WordDefinition} from '../domain/layout';\n\nconst es_isch: WordDefinition = {1: [1, 2, 4, 5, 6, 7]};\nconst genau: WordDefinition = {3: [7, 8, 9, 10, 11]};\nconst ab: WordDefinition = {4: [4, 5]};\nconst vor: WordDefinition = {4: [1, 2, 3]};\nconst haubi: WordDefinition = {4: [7, 8, 9, 10, 11]};\nconst fuef: WordDefinition = {1: [9, 10, 11]};\nconst zae: WordDefinition = {2: [9, 10, 11]};\nconst viertu: WordDefinition = {2: [1, 2, 3, 4, 5, 6]};\nconst zwaenzg: WordDefinition = {3: [1, 2, 3, 4, 5, 6]};\n\nexport const Layout_de_CH_genau: Layout = {\n code: 'de_CH_genau',\n hours: {\n '0,12': {10: [1, 2, 3, 4, 5, 6]},\n '1,13': {5: [1, 2, 3]},\n '2,14': {5: [4, 5, 6, 7]},\n '3,15': {5: [9, 10, 11]},\n '4,16': {6: [1, 2, 3, 4, 5]},\n '5,17': {6: [6, 7, 8, 9]},\n '6,18': {7: [1, 2, 3, 4, 5, 6]},\n '7,19': {7: [7, 8, 9, 10, 11]},\n '8,20': {8: [1, 2, 3, 4, 5]},\n '9,21': {8: [6, 7, 8, 9]},\n '10,22': {9: [1, 2, 3, 4]},\n '11,23': {9: [8, 9, 10, 11]}\n },\n letters: [\n 'ESKISCHAFÜF',\n 'VIERTUBFZÄÄ',\n 'ZWÄNZGGENAU',\n 'VORABOHAUBI',\n 'EISZWÖISDRÜ',\n 'VIERIFÜFIQT',\n 'SÄCHSISIBNI',\n 'ACHTINÜNIEL',\n 'ZÄNIERBEUFI',\n 'ZWÖUFINAUHR'\n ],\n minutes: {\n '0': genau,\n '5,6,7,8,9': [fuef, ab],\n '10,11,12,13,14': [zae, ab],\n '15,16,17,18,19': [viertu, ab],\n '20,21,22,23,24': [zwaenzg, ab],\n '25,26,27,28,29': [fuef, vor, haubi],\n '30,31,32,33,34': haubi,\n '35,36,37,38,39': [fuef, ab, haubi],\n '40,41,42,43,44': [zwaenzg, vor],\n '45,46,47,48,49': [viertu, vor],\n '50,51,52,53,54': [zae, vor],\n '55,56,57,58,59': [fuef, vor]\n },\n permanent: es_isch,\n prettyName: 'Bärndütsch (genau)',\n version: 2\n};\n\n$.fritteli.uhr.register(Layout_de_CH_genau);\n\ndeclare namespace $ {\n const fritteli: Fritteli.Fritteli;\n}\ndeclare namespace Fritteli {\n interface Fritteli {\n uhr: Uhr;\n }\n\n interface Uhr {\n register: (layout: Layout) => void;\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Layout, WordDefinition} from '../domain/layout';\n\nconst klokken_er: WordDefinition = {1: [1, 2, 3, 4, 5, 6, 7, 9, 10]};\nconst minutter: WordDefinition = {4: [4, 5, 6, 7, 8, 9, 10, 11]};\nconst i: WordDefinition = {5: [8]};\nconst over: WordDefinition = {5: [4, 5, 6, 7]};\nconst fem: WordDefinition = {2: [1, 2, 3]};\nconst ti: WordDefinition = {4: [1, 2]};\nconst kvart: WordDefinition = {3: [4, 5, 6, 7, 8]};\nconst tyve: WordDefinition = {2: [4, 5, 6, 7]};\nconst halv: WordDefinition = {6: [8, 9, 10, 11]};\n\nexport const Layout_dk: Layout = {\n code: 'dk',\n hours: {\n '0,12': {10: [8, 9, 10, 11]},\n '1,13': {7: [1, 2]},\n '2,14': {7: [3, 4]},\n '3,15': {7: [5, 6, 7]},\n '4,16': {7: [8, 9, 10, 11]},\n '5,17': {8: [1, 2, 3]},\n '6,18': {8: [4, 5, 6, 7]},\n '7,19': {8: [9, 10, 11]},\n '8,20': {9: [1, 2, 3, 4]},\n '9,21': {9: [6, 7]},\n '10,22': {9: [10, 11]},\n '11,23': {10: [1, 2, 3, 4, 5, 6]}\n },\n letters: [\n 'KLOKKENVERO',\n 'FEMTYVESKLA',\n 'OJEKVARTVAT',\n 'TIAMINUTTER',\n 'VEMOVERILMF',\n 'MONALISHALV',\n 'ETTOTREFIRE',\n 'FEMSEKSRSYV',\n 'OTTERNIMETI',\n 'ELLEVEATOLV'\n ],\n minutes: {\n '5,6,7,8,9': [fem, minutter, over],\n '10,11,12,13,14': [ti, minutter, over],\n '15,16,17,18,19': [kvart, over],\n '20,21,22,23,24': [tyve, minutter, over],\n '25,26,27,28,29': [fem, minutter, i, halv],\n '30,31,32,33,34': [halv],\n '35,36,37,38,39': [fem, minutter, over, halv],\n '40,41,42,43,44': [tyve, minutter, i],\n '45,46,47,48,49': [kvart, i],\n '50,51,52,53,54': [ti, minutter, i],\n '55,56,57,58,59': [fem, minutter, i]\n },\n permanent: klokken_er,\n prettyName: 'Dansk',\n version: 2\n};\n\n$.fritteli.uhr.register(Layout_dk);\n\ndeclare namespace $ {\n const fritteli: Fritteli.Fritteli;\n}\ndeclare namespace Fritteli {\n interface Fritteli {\n uhr: Uhr;\n }\n\n interface Uhr {\n register: (layout: Layout) => void;\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Layout, WordDefinition} from '../domain/layout';\n\nconst it_is: WordDefinition = {1: [1, 2, 4, 5]};\nconst half: WordDefinition = {4: [1, 2, 3, 4]};\nconst to: WordDefinition = {4: [10, 11]};\nconst past: WordDefinition = {5: [1, 2, 3, 4]};\nconst o_clock: WordDefinition = {10: [5, 6, 7, 8, 9, 10, 11]};\nconst five: WordDefinition = {3: [7, 8, 9, 10]};\nconst ten: WordDefinition = {4: [6, 7, 8]};\nconst a_quarter: WordDefinition = {2: [1, 3, 4, 5, 6, 7, 8, 9]};\nconst twenty: WordDefinition = {3: [1, 2, 3, 4, 5, 6]};\nconst twentyfive: WordDefinition = {3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]};\n\nexport const Layout_en: Layout = {\n code: 'en',\n getHour: (time: Date) => {\n const hour = time.getHours();\n if (time.getMinutes() >= 35) {\n return (hour + 1) % 24;\n }\n return hour;\n },\n\n hours: {\n '0,12': {9: [6, 7, 8, 9, 10, 11]},\n '1,13': {6: [1, 2, 3]},\n '2,14': {7: [9, 10, 11]},\n '3,15': {6: [7, 8, 9, 10, 11]},\n '4,16': {7: [1, 2, 3, 4]},\n '5,17': {7: [5, 6, 7, 8]},\n '6,18': {6: [4, 5, 6]},\n '7,19': {9: [1, 2, 3, 4, 5]},\n '8,20': {8: [1, 2, 3, 4, 5]},\n '9,21': {5: [8, 9, 10, 11]},\n '10,22': {10: [1, 2, 3]},\n '11,23': {8: [6, 7, 8, 9, 10, 11]}\n },\n letters: [\n 'ITLISBFAMPM',\n 'ACQUARTERDC',\n 'TWENTYFIVEX',\n 'HALFBTENFTO',\n 'PASTERUNINE',\n 'ONESIXTHREE',\n 'FOURFIVETWO',\n 'EIGHTELEVEN',\n 'SEVENTWELVE',\n 'TENSO\\'CLOCK'\n ],\n minutes: {\n '0,1,2,3,4': o_clock,\n '5,6,7,8,9': [five, past],\n '10,11,12,13,14': [ten, past],\n '15,16,17,18,19': [a_quarter, past],\n '20,21,22,23,24': [twenty, past],\n '25,26,27,28,29': [twentyfive, past],\n '30,31,32,33,34': [half, past],\n '35,36,37,38,39': [twentyfive, to],\n '40,41,42,43,44': [twenty, to],\n '45,46,47,48,49': [a_quarter, to],\n '50,51,52,53,54': [ten, to],\n '55,56,57,58,59': [five, to]\n },\n permanent: it_is,\n prettyName: 'English',\n version: 2\n};\n\n$.fritteli.uhr.register(Layout_en);\n\ndeclare namespace $ {\n const fritteli: Fritteli.Fritteli;\n}\ndeclare namespace Fritteli {\n interface Fritteli {\n uhr: Uhr;\n }\n\n interface Uhr {\n register: (layout: Layout) => void;\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Layout, WordDefinition} from '../domain/layout';\n\nconst es_la: WordDefinition = {1: [1, 2, 6, 7]};\nconst son_las: WordDefinition = {1: [2, 3, 4, 6, 7, 8]};\nconst y: WordDefinition = {7: [6]};\nconst menos: WordDefinition = {7: [7, 8, 9, 10, 11]};\nconst media: WordDefinition = {10: [1, 2, 3, 4, 5]};\nconst cinco: WordDefinition = {9: [7, 8, 9, 10, 11]};\nconst diez: WordDefinition = {8: [8, 9, 10, 11]};\nconst cuarto: WordDefinition = {10: [6, 7, 8, 9, 10, 11]};\nconst veinte: WordDefinition = {8: [2, 3, 4, 5, 6, 7]};\nconst veinticinco: WordDefinition = {9: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]};\n\nexport const Layout_es: Layout = {\n code: 'es',\n getHour: (time: Date) => {\n const hour = time.getHours();\n if (time.getMinutes() >= 35) {\n return (hour + 1) % 24;\n }\n return hour;\n },\n\n hours: {\n '0,12': [son_las, {7: [1, 2, 3, 4]}],\n '1,13': [es_la, {1: [9, 10, 11]}],\n '2,14': [son_las, {2: [1, 2, 3]}],\n '3,15': [son_las, {2: [5, 6, 7, 8]}],\n '4,16': [son_las, {3: [1, 2, 3, 4, 5, 6]}],\n '5,17': [son_las, {3: [7, 8, 9, 10, 11]}],\n '6,18': [son_las, {4: [1, 2, 3, 4]}],\n '7,19': [son_las, {4: [6, 7, 8, 9, 10]}],\n '8,20': [son_las, {5: [1, 2, 3, 4]}],\n '9,21': [son_las, {5: [5, 6, 7, 8, 9]}],\n '10,22': [son_las, {6: [3, 4, 5, 6]}],\n '11,23': [son_las, {6: [8, 9, 10, 11]}]\n },\n letters: [\n 'ESONELASUNA',\n 'DOSITRESORE',\n 'CUATROCINCO',\n 'SEISASIETEN',\n 'OCHONUEVEYO',\n 'LADIEZSONCE',\n 'DOCELYMENOS',\n 'OVEINTEDIEZ',\n 'VEINTICINCO',\n 'MEDIACUARTO'\n ],\n minutes: {\n '5,6,7,8,9': [y, cinco],\n '10,11,12,13,14': [y, diez],\n '15,16,17,18,19': [y, cuarto],\n '20,21,22,23,24': [y, veinte],\n '25,26,27,28,29': [y, veinticinco],\n '30,31,32,33,34': [y, media],\n '35,36,37,38,39': [menos, veinticinco],\n '40,41,42,43,44': [menos, veinte],\n '45,46,47,48,49': [menos, cuarto],\n '50,51,52,53,54': [menos, diez],\n '55,56,57,58,59': [menos, cinco]\n },\n permanent: null,\n prettyName: 'Español',\n version: 2\n};\n\n$.fritteli.uhr.register(Layout_es);\n\ndeclare namespace $ {\n const fritteli: Fritteli.Fritteli;\n}\ndeclare namespace Fritteli {\n interface Fritteli {\n uhr: Uhr;\n }\n\n interface Uhr {\n register: (layout: Layout) => void;\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Layout, WordDefinition} from '../domain/layout';\n\nconst il_est: WordDefinition = {1: [1, 2, 4, 5, 6]};\nconst et: WordDefinition = {8: [1, 2]};\nconst moins: WordDefinition = {7: [1, 2, 3, 4, 5]};\nconst demie: WordDefinition = {10: [4, 5, 6, 7, 8]};\nconst heures: WordDefinition = {6: [6, 7, 8, 9, 10, 11]};\nconst le: WordDefinition = {7: [7, 8]};\nconst cinq: WordDefinition = {9: [7, 8, 9, 10]};\nconst dix: WordDefinition = {7: [9, 10, 11]};\nconst quart: WordDefinition = {8: [4, 5, 6, 7, 8]};\nconst vingt: WordDefinition = {9: [1, 2, 3, 4, 5]};\nconst vingtcinq: WordDefinition = {9: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]};\n\nexport const Layout_fr: Layout = {\n code: 'fr',\n getHour: (time: Date) => {\n const hour = time.getHours();\n if (time.getMinutes() >= 35) {\n return (hour + 1) % 24;\n }\n return hour;\n },\n hours: {\n '0': {5: [6, 7, 8, 9, 10, 11]},\n '1,13': [\n {3: [5, 6, 7]},\n heures\n ],\n '2,14': [\n {1: [8, 9, 10, 11]},\n heures\n ],\n '3,15': [\n {2: [7, 8, 9, 10, 11]},\n heures\n ],\n '4,16': [\n {2: [1, 2, 3, 4, 5, 6]},\n heures\n ],\n '5,17': [\n {4: [8, 9, 10, 11]},\n heures\n ],\n '6,18': [\n {4: [5, 6, 7]},\n heures\n ],\n '7,19': [\n {3: [8, 9, 10, 11]},\n heures\n ],\n '8,20': [\n {4: [1, 2, 3, 4]},\n heures\n ],\n '9,21': [\n {3: [1, 2, 3, 4]},\n heures\n ],\n '10,22': [\n {5: [3, 4, 5]},\n heures\n ],\n '11,23': [\n {6: [1, 2, 3, 4]},\n heures\n ],\n '12': {5: [1, 2, 3, 4]}\n },\n letters: [\n 'ILNESTODEUX',\n 'QUATRETROIS',\n 'NEUFUNESEPT',\n 'HUITSIXCINQ',\n 'MIDIXMINUIT',\n 'ONZERHEURES',\n 'MOINSOLEDIX',\n 'ETRQUARTPMD',\n 'VINGT-CINQU',\n 'ETSDEMIEPAM'\n ],\n minutes: {\n '5,6,7,8,9': cinq,\n '10,11,12,13,14': dix,\n '15,16,17,18,19': [et, quart],\n '20,21,22,23,24': vingt,\n '25,26,27,28,29': vingtcinq,\n '30,31,32,33,34': [et, demie],\n '35,36,37,38,39': [moins, vingtcinq],\n '40,41,42,43,44': [moins, vingt],\n '45,46,47,48,49': [moins, le, quart],\n '50,51,52,53,54': [moins, dix],\n '55,56,57,58,59': [moins, cinq]\n },\n permanent: il_est,\n prettyName: 'Français',\n version: 2\n};\n\n$.fritteli.uhr.register(Layout_fr);\n\ndeclare namespace $ {\n const fritteli: Fritteli.Fritteli;\n}\ndeclare namespace Fritteli {\n interface Fritteli {\n uhr: Uhr;\n }\n\n interface Uhr {\n register: (layout: Layout) => void;\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Layout, WordDefinition} from '../domain/layout';\n\nconst sono_le: WordDefinition = {1: [1, 2, 3, 4, 6, 7]};\nconst e_l: WordDefinition = {2: [1, 3, 4]};\nconst e: WordDefinition = {8: [1]};\nconst meno: WordDefinition = {7: [8, 9, 10, 11]};\nconst mezza: WordDefinition = {10: [7, 8, 9, 10, 11]};\nconst cinque: WordDefinition = {9: [6, 7, 8, 9, 10, 11]};\nconst dieci: WordDefinition = {10: [1, 2, 3, 4, 5]};\nconst un_quarto: WordDefinition = {8: [3, 4, 6, 7, 8, 9, 10, 11]};\nconst venti: WordDefinition = {9: [1, 2, 3, 4, 5]};\nconst venticinque: WordDefinition = {9: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]};\n\nexport const Layout_it: Layout = {\n code: 'it',\n getHour: (time: Date) => {\n const hour = time.getHours();\n if (time.getMinutes() >= 35) {\n return (hour + 1) % 24;\n }\n return hour;\n },\n hours: {\n '0,12': [sono_le, {5: [1, 2, 3, 4, 5, 6]}],\n '1,13': [e_l, {2: [5, 6, 7]}],\n '2,14': [sono_le, {2: [9, 10, 11]}],\n '3,15': [sono_le, {3: [1, 2, 3]}],\n '4,16': [sono_le, {6: [1, 2, 3, 4, 5, 6, 7]}],\n '5,17': [sono_le, {7: [1, 2, 3, 4, 5, 6]}],\n '6,18': [sono_le, {6: [9, 10, 11]}],\n '7,19': [sono_le, {5: [7, 8, 9, 10, 11]}],\n '8,20': [sono_le, {3: [4, 5, 6, 7]}],\n '9,21': [sono_le, {3: [8, 9, 10, 11]}],\n '10,22': [sono_le, {4: [1, 2, 3, 4, 5]}],\n '11,23': [sono_le, {4: [6, 7, 8, 9, 10, 11]}]\n },\n letters: [\n 'SONORLEBORE',\n 'ÈRL\\'UNASDUE',\n 'TREOTTONOVE',\n 'DIECIUNDICI',\n 'DODICISETTE',\n 'QUATTROCSEI',\n 'CINQUEAMENO',\n 'ECUNOQUARTO',\n 'VENTICINQUE',\n 'DIECIPMEZZA'\n ],\n minutes: {\n '5,6,7,8,9': [e, cinque],\n '10,11,12,13,14': [e, dieci],\n '15,16,17,18,19': [e, un_quarto],\n '20,21,22,23,24': [e, venti],\n '25,26,27,28,29': [e, venticinque],\n '30,31,32,33,34': [e, mezza],\n '35,36,37,38,39': [meno, venticinque],\n '40,41,42,43,44': [meno, venti],\n '45,46,47,48,49': [meno, un_quarto],\n '50,51,52,53,54': [meno, dieci],\n '55,56,57,58,59': [meno, cinque]\n },\n permanent: null,\n prettyName: 'Italiano',\n version: 2\n};\n\n$.fritteli.uhr.register(Layout_it);\n\ndeclare namespace $ {\n const fritteli: Fritteli.Fritteli;\n}\ndeclare namespace Fritteli {\n interface Fritteli {\n uhr: Uhr;\n }\n\n interface Uhr {\n register: (layout: Layout) => void;\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Layout, WordDefinition} from '../domain/layout';\n\nconst het_is: WordDefinition = {1: [1, 2, 3, 5, 6]};\nconst over1: WordDefinition = {3: [1, 2, 3, 4]};\nconst voor1: WordDefinition = {2: [8, 9, 10, 11]};\nconst over2: WordDefinition = {4: [8, 9, 10, 11]};\nconst voor2: WordDefinition = {5: [1, 2, 3, 4]};\nconst half: WordDefinition = {4: [1, 2, 3, 4]};\nconst vijf: WordDefinition = {1: [8, 9, 10, 11]};\nconst tien: WordDefinition = {2: [1, 2, 3, 4]};\nconst kwart: WordDefinition = {3: [7, 8, 9, 10, 11]};\nconst uur: WordDefinition = {10: [9, 10, 11]};\n\nexport const Layout_nl: Layout = {\n code: 'nl',\n getHour: (time: Date) => {\n const hour = time.getHours();\n if (time.getMinutes() >= 20) {\n return (hour + 1) % 24;\n }\n return hour;\n },\n hours: {\n '0,12': {10: [1, 2, 3, 4, 5, 6]},\n '1,13': {5: [8, 9, 10]},\n '2,14': {6: [1, 2, 3, 4]},\n '3,15': {6: [8, 9, 10, 11]},\n '4,16': {7: [1, 2, 3, 4]},\n '5,17': {7: [5, 6, 7, 8]},\n '6,18': {7: [9, 10, 11]},\n '7,19': {8: [1, 2, 3, 4, 5]},\n '8,20': {9: [1, 2, 3, 4]},\n '9,21': {8: [7, 8, 9, 10, 11]},\n '10,22': {9: [5, 6, 7, 8]},\n '11,23': {9: [9, 10, 11]}\n },\n letters: [\n 'HETKISAVIJF',\n 'TIENBTZVOOR',\n 'OVERMEKWART',\n 'HALFSPWOVER',\n 'VOORTHGEENS',\n 'TWEEPVCDRIE',\n 'VIERVIJFZES',\n 'ZEVENONEGEN',\n 'ACHTTIENELF',\n 'TWAALFBFUUR'\n ],\n minutes: {\n '0,1,2,3,4': uur,\n '5,6,7,8,9': [vijf, over1],\n '10,11,12,13,14': [tien, over1],\n '15,16,17,18,19': [kwart, over2],\n '20,21,22,23,24': [tien, voor1, half],\n '25,26,27,28,29': [vijf, voor1, half],\n '30,31,32,33,34': half,\n '35,36,37,38,39': [vijf, over1, half],\n '40,41,42,43,44': [tien, over1, half],\n '45,46,47,48,49': [kwart, voor2],\n '50,51,52,53,54': [tien, voor1],\n '55,56,57,58,59': [vijf, voor1]\n },\n permanent: het_is,\n prettyName: 'Nederlands',\n version: 2\n};\n\n$.fritteli.uhr.register(Layout_nl);\n\ndeclare namespace $ {\n const fritteli: Fritteli.Fritteli;\n}\ndeclare namespace Fritteli {\n interface Fritteli {\n uhr: Uhr;\n }\n\n interface Uhr {\n register: (layout: Layout) => void;\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Layout, WordDefinition} from '../domain/layout';\n\nconst e_: WordDefinition = {1: [1]};\nconst sao: WordDefinition = {1: [2, 3, 4]};\nconst e1: WordDefinition = {7: [8]};\nconst e2: WordDefinition = {10: [5]};\nconst menos: WordDefinition = {7: [7, 8, 9, 10, 11]};\nconst meia: WordDefinition = {8: [8, 9, 10, 11]};\nconst cinco: WordDefinition = {10: [7, 8, 9, 10, 11]};\nconst dez: WordDefinition = {10: [1, 2, 3]};\nconst um_quarto: WordDefinition = {9: [1, 2, 4, 5, 6, 7, 8, 9]};\nconst vinte: WordDefinition = {8: [1, 2, 3, 4, 5]};\n\nexport const Layout_pt: Layout = {\n code: 'pt',\n getHour: (time: Date) => {\n const hour = time.getHours();\n if (time.getMinutes() >= 35) {\n return (hour + 1) % 24;\n }\n return hour;\n },\n hours: {\n '0': [e_, {'6': [2, 3, 4, 5, 7, 8, 9, 10, 11]}],\n '12': [e_, {'2': [1, 2, 3, 4, 6, 7, 8]}],\n '1,13': [e_, {'1': [5, 6, 7]}],\n '2,14': [sao, {'3': [1, 2, 3, 4]}],\n '3,15': [sao, {'1': [8, 9, 10, 11]}],\n '4,16': [sao, {'4': [1, 2, 3, 4, 5, 6]}],\n '5,17': [sao, {'5': [1, 2, 3, 4, 5]}],\n '6,18': [sao, {'3': [4, 5, 6, 7]}],\n '7,19': [sao, {'3': [7, 8, 9, 10]}],\n '8,20': [sao, {'5': [5, 6, 7, 8]}],\n '9,21': [sao, {'4': [8, 9, 10, 11]}],\n '10,22': [sao, {'2': [9, 10, 11]}],\n '11,23': [sao, {'5': [8, 9, 10, 11]}]\n },\n letters: [\n 'ÉSÃOUMATRÊS',\n 'MEIOLDIADEZ',\n 'DUASEISETEY',\n 'QUATROHNOVE',\n 'CINCOITONZE',\n 'ZMEIALNOITE',\n 'HORASYMENOS',\n 'VINTECAMEIA',\n 'UMVQUARTOPM',\n 'DEZOEYCINCO'\n ],\n minutes: {\n '5,6,7,8,9': [e1, cinco],\n '10,11,12,13,14': [e1, dez],\n '15,16,17,18,19': [e1, um_quarto],\n '20,21,22,23,24': [e1, vinte],\n '25,26,27,28,29': [e1, vinte, e2, cinco],\n '30,31,32,33,34': [e1, meia],\n '35,36,37,38,39': [menos, vinte, e2, cinco],\n '40,41,42,43,44': [menos, vinte],\n '45,46,47,48,49': [menos, um_quarto],\n '50,51,52,53,54': [menos, dez],\n '55,56,57,58,59': [menos, cinco]\n },\n permanent: null,\n prettyName: 'Português',\n version: 2\n};\n\n$.fritteli.uhr.register(Layout_pt);\n\ndeclare namespace $ {\n const fritteli: Fritteli.Fritteli;\n}\ndeclare namespace Fritteli {\n interface Fritteli {\n uhr: Uhr;\n }\n\n interface Uhr {\n register: (layout: Layout) => void;\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Layout} from './layout';\nimport {Theme} from './theme';\n\nexport class Globals {\n private static layouts: Layout[] = [];\n private static themes: Theme[] = [];\n\n static registerTheme(name: string, styleClass: string): void {\n if (Globals.themes.some(value => value.name === name)) {\n console.log(`Theme with name '${name}' already registered; ignoring register request for styleClass '${styleClass}'.`)\n } else {\n Globals.themes.push({\n name,\n styleClass\n });\n }\n }\n\n static hasThemes(): boolean {\n return Globals.themes.length > 0;\n }\n\n static hasMultipleThemes(): boolean {\n return Globals.themes.length > 1;\n }\n\n static getFirstTheme(): Theme {\n return Globals.getTheme(0);\n }\n\n static getTheme(index: number): Theme {\n return Globals.themes[index];\n }\n\n static getThemes(): Theme[] {\n return Globals.themes;\n }\n\n static registerLayout(layout: Layout): void {\n const available = !Globals.layouts.some(element => {\n if (layout.code === element.code) {\n if (layout.prettyName !== element.prettyName) {\n console.error(\n `Error: Language code '${layout.code}' cannot be registered for layout '${layout.prettyName}' because it is already registered for layout '${element.prettyName}'!`\n );\n }\n return true;\n }\n return false;\n }\n );\n if (available) {\n Globals.layouts.push(layout);\n Globals.layouts.sort((a, b) => a.prettyName.localeCompare(b.prettyName));\n }\n }\n\n static hasLayouts(): boolean {\n return Globals.layouts.length > 0;\n }\n\n static hasMultipleLayouts(): boolean {\n return Globals.layouts.length > 1;\n }\n\n static getFirstLayout(): Layout {\n return Globals.layouts[0];\n }\n\n static getLayouts(): Layout[] {\n return Globals.layouts;\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Letter} from './letter';\n\nexport interface Layout {\n readonly code: string;\n getCoarseMinute?: (time: Date) => number;\n getDotMinute?: (time: Date) => number;\n getHour?: (time: Date) => number;\n getSeconds?: (time: Date) => number;\n readonly hours: TimeDefinition;\n readonly letters: string[];\n readonly minutes: TimeDefinition;\n parsed?: Letter[][];\n readonly permanent: WordDefinition | WordDefinition[];\n readonly prettyName: string;\n seconds?: TimeDefinition;\n readonly version: number;\n}\n\nexport interface WordDefinition {\n [line: number]: number[];\n}\n\nexport interface TimeDefinition {\n [values: string]: WordDefinition | WordDefinition[];\n}\n\nexport const EMPTY_LAYOUT: Layout = {\n code: null,\n hours: null,\n letters: [],\n minutes: null,\n permanent: [],\n prettyName: null,\n version: 2\n};\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\n/**\n * Ein Buchstabe. Hilfsklasse für den Renderer und Inhalt der Layout-Arrays.\n * @param value Der Buchstabe, der Dargestellt werden soll.\n * @param style Die CSS-Styleklassen des Buchstabens.\n */\nexport class Letter {\n private readonly value: string;\n private style: string = '';\n\n constructor(value: string, style?: string) {\n this.value = value;\n if (!!style) {\n this.style = style;\n }\n }\n\n addStyle(style: string): void {\n if (this.style === '') {\n this.style = style;\n } else {\n this.style += ` ${style}`;\n }\n };\n\n toString(): string {\n return `${this.value}`;\n };\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Layout, TimeDefinition, WordDefinition} from './domain/layout';\nimport {Letter} from './domain/letter';\n\nclass UhrRendererV2Delegate {\n private static readonly vorne0: WordDefinition = {\n 3: [2, 3, 4],\n 4: [1, 5],\n 5: [1, 4, 5],\n 6: [1, 3, 5],\n 7: [1, 2, 5],\n 8: [1, 5],\n 9: [2, 3, 4]\n };\n private static readonly hinten0: WordDefinition = {\n 3: [8, 9, 10],\n 4: [7, 11],\n 5: [7, 10, 11],\n 6: [7, 9, 11],\n 7: [7, 8, 11],\n 8: [7, 11],\n 9: [8, 9, 10]\n };\n private static readonly vorne1: WordDefinition = {\n 3: [3],\n 4: [2, 3],\n 5: [3],\n 6: [3],\n 7: [3],\n 8: [3],\n 9: [2, 3, 4]\n };\n private static readonly hinten1: WordDefinition = {\n 3: [9],\n 4: [8, 9],\n 5: [9],\n 6: [9],\n 7: [9],\n 8: [9],\n 9: [8, 9, 10]\n };\n private static readonly vorne2: WordDefinition = {\n 3: [2, 3, 4],\n 4: [1, 5],\n 5: [5],\n 6: [4],\n 7: [3],\n 8: [2],\n 9: [1, 2, 3, 4, 5]\n };\n private static readonly hinten2: WordDefinition = {\n 3: [8, 9, 10],\n 4: [7, 11],\n 5: [11],\n 6: [10],\n 7: [9],\n 8: [8],\n 9: [7, 8, 9, 10, 11]\n };\n private static readonly vorne3: WordDefinition = {\n 3: [1, 2, 3, 4, 5],\n 4: [4],\n 5: [3],\n 6: [4],\n 7: [5],\n 8: [1, 5],\n 9: [2, 3, 4]\n };\n private static readonly hinten3: WordDefinition = {\n 3: [7, 8, 9, 10, 11],\n 4: [10],\n 5: [9],\n 6: [10],\n 7: [11],\n 8: [7, 11],\n 9: [8, 9, 10]\n };\n private static readonly vorne4: WordDefinition = {\n 3: [4],\n 4: [3, 4],\n 5: [2, 4],\n 6: [1, 4],\n 7: [1, 2, 3, 4, 5],\n 8: [4],\n 9: [4]\n };\n private static readonly hinten4: WordDefinition = {\n 3: [10],\n 4: [9, 10],\n 5: [8, 10],\n 6: [7, 10],\n 7: [7, 8, 9, 10, 11],\n 8: [10],\n 9: [10]\n };\n private static readonly vorne5: WordDefinition = {\n 3: [1, 2, 3, 4, 5],\n 4: [1],\n 5: [1, 2, 3, 4],\n 6: [5],\n 7: [5],\n 8: [1, 5],\n 9: [2, 3, 4]\n };\n private static readonly hinten5: WordDefinition = {\n 3: [7, 8, 9, 10, 11],\n 4: [7],\n 5: [7, 8, 9, 10],\n 6: [11],\n 7: [11],\n 8: [7, 11],\n 9: [8, 9, 10]\n };\n private static readonly hinten6: WordDefinition = {\n 3: [9, 10],\n 4: [8],\n 5: [7],\n 6: [7, 8, 9, 10],\n 7: [7, 11],\n 8: [7, 11],\n 9: [8, 9, 10]\n };\n private static readonly hinten7: WordDefinition = {\n 3: [7, 8, 9, 10, 11],\n 4: [11],\n 5: [10],\n 6: [9],\n 7: [8],\n 8: [8],\n 9: [8]\n };\n private static readonly hinten8: WordDefinition = {\n 3: [8, 9, 10],\n 4: [7, 11],\n 5: [7, 11],\n 6: [8, 9, 10],\n 7: [7, 11],\n 8: [7, 11],\n 9: [8, 9, 10]\n };\n private static readonly hinten9: WordDefinition = {\n 3: [8, 9, 10],\n 4: [7, 11],\n 5: [7, 11],\n 6: [8, 9, 10, 11],\n 7: [11],\n 8: [10],\n 9: [8, 9]\n };\n private static readonly seconds: TimeDefinition = {\n '0': [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten0],\n '1': [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten1],\n '2': [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten2],\n '3': [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten3],\n '4': [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten4],\n '5': [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten5],\n '6': [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten6],\n '7': [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten7],\n '8': [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten8],\n '9': [UhrRendererV2Delegate.vorne0, UhrRendererV2Delegate.hinten9],\n '10': [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten0],\n '11': [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten1],\n '12': [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten2],\n '13': [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten3],\n '14': [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten4],\n '15': [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten5],\n '16': [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten6],\n '17': [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten7],\n '18': [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten8],\n '19': [UhrRendererV2Delegate.vorne1, UhrRendererV2Delegate.hinten9],\n '20': [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten0],\n '21': [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten1],\n '22': [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten2],\n '23': [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten3],\n '24': [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten4],\n '25': [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten5],\n '26': [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten6],\n '27': [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten7],\n '28': [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten8],\n '29': [UhrRendererV2Delegate.vorne2, UhrRendererV2Delegate.hinten9],\n '30': [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten0],\n '31': [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten1],\n '32': [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten2],\n '33': [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten3],\n '34': [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten4],\n '35': [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten5],\n '36': [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten6],\n '37': [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten7],\n '38': [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten8],\n '39': [UhrRendererV2Delegate.vorne3, UhrRendererV2Delegate.hinten9],\n '40': [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten0],\n '41': [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten1],\n '42': [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten2],\n '43': [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten3],\n '44': [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten4],\n '45': [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten5],\n '46': [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten6],\n '47': [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten7],\n '48': [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten8],\n '49': [UhrRendererV2Delegate.vorne4, UhrRendererV2Delegate.hinten9],\n '50': [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten0],\n '51': [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten1],\n '52': [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten2],\n '53': [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten3],\n '54': [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten4],\n '55': [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten5],\n '56': [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten6],\n '57': [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten7],\n '58': [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten8],\n '59': [UhrRendererV2Delegate.vorne5, UhrRendererV2Delegate.hinten9]\n };\n\n constructor(private layout: Layout) {\n }\n\n public parse(): Letter[][] {\n const letters: Letter[][] = [];\n this.layout.letters.forEach(lineString => {\n const line: Letter[] = [];\n for (let c = 0; c < lineString.length; c++) {\n line.push(new Letter(lineString[c]));\n }\n letters.push(line);\n });\n this.parseArrayOrObject(letters, 'on', this.layout.permanent);\n if (typeof this.layout.seconds !== 'undefined' && this.layout.seconds !== null) {\n this.parseTimeDefinition(letters, 'second', this.layout.seconds);\n } else {\n this.parseTimeDefinition(letters, 'second', UhrRendererV2Delegate.seconds);\n }\n this.parseTimeDefinition(letters, 'minute', this.layout.minutes);\n this.parseTimeDefinition(letters, 'hour', this.layout.hours);\n return letters;\n };\n\n private parseObject(letters: Letter[][], styleClass: string, object: WordDefinition): void {\n if (typeof object !== 'undefined' && object !== null) {\n Object.keys(object)\n .map(key => Number(key))\n .forEach(\n y => object[y].forEach(\n x => letters[y - 1][x - 1].addStyle(styleClass)\n )\n );\n }\n }\n\n private parseArrayOrObject(letters: Letter[][], styleClass: string, input: WordDefinition | WordDefinition[]): void {\n if (typeof input !== 'undefined' && input !== null) {\n if (Array.isArray(input)) {\n input.forEach(item => this.parseObject(letters, styleClass, item));\n } else {\n this.parseObject(letters, styleClass, input);\n }\n }\n }\n\n private parseTimeDefinition(letters: Letter[][], styleClass: string, definition: TimeDefinition): void {\n if (typeof definition !== 'undefined' && definition !== null) {\n Object.keys(definition).forEach(listString => {\n const timeValues: string[] = listString.split(',');\n const highlightLetters: WordDefinition | WordDefinition[] = definition[listString];\n timeValues.forEach(timeValue => this.parseArrayOrObject(letters, styleClass + timeValue, highlightLetters));\n });\n }\n }\n}\n\n/**\n * Hilfsklasse zum Rendern der Uhr.\n * @param layout Layout-Objekt, das gerendert werden soll.\n * @param renderarea Das jQuery-gewrappte HTML-Element, auf dem gerendert werden soll.\n */\nexport class UhrRenderer {\n constructor(private layout: Layout, private renderarea: any/*FIXME any: jQuery-wrapped HTML element*/) {\n }\n\n render(beforeshow?: () => void): void {\n if (this.layout.parsed === undefined) {\n if (this.layout.version === 2) {\n const delegate: UhrRendererV2Delegate = new UhrRendererV2Delegate(this.layout);\n const parsedLayout: Letter[][] = delegate.parse();\n Object.defineProperty(this.layout, 'parsed', {\n value: parsedLayout,\n writable: false,\n configurable: false\n });\n } else {\n console.warn(`Unknown layout version: '${this.layout.version}', expecting '2'`);\n return;\n }\n }\n const letters: Letter[][] = this.layout.parsed;\n this.renderarea.fadeOut('fast', () => {\n this.renderarea.empty();\n letters.forEach((line, index, array) => {\n line.forEach(letter => this.renderarea.append(letter.toString()));\n if (index < array.length - 1) {\n this.renderarea.append('
');\n }\n });\n if (!!beforeshow) {\n beforeshow();\n }\n this.renderarea.fadeIn('fast');\n });\n };\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport * as Cookies from 'js-cookie';\nimport {EMPTY_LAYOUT, Layout} from './domain/layout';\nimport {Globals} from './domain/globals';\nimport {UhrRenderer} from './renderer';\nimport {WidgetPrototype} from './widget/widget-prototype';\n\nexport class Uhr {\n\n private timer: number = null;\n private currentMinute: number = null;\n\n constructor(private widgetInstance: WidgetPrototype) {\n const userTime = this.widgetInstance.options.time;\n if (this.widgetInstance.options.time === undefined) {\n this.widgetInstance.options.time = new Date();\n }\n this.parseHash();\n this.setupHTML();\n this.wireFunctionality();\n if (userTime !== undefined) {\n this.setTime(userTime);\n }\n }\n\n destroy(): void {\n if (!!this.timer) {\n window.clearInterval(this.timer);\n this.timer = null;\n }\n this.widgetInstance.element\n .removeAttr('style')\n .removeAttr('class')\n .empty();\n $(`#uhr-configlink${this.widgetInstance.uuid}`).remove();\n $(`#uhr-controlpanel${this.widgetInstance.uuid}`).remove();\n }\n\n start(): void {\n if (!this.isOn()) {\n this.timer = window.setInterval(() => {\n this.widgetInstance.options.time = new Date();\n this.update();\n }, 1000);\n this.update();\n this.setCookie('uhr-status', 'on');\n }\n }\n\n stop(): void {\n if (this.isOn()) {\n window.clearInterval(this.timer);\n this.timer = null;\n this.update();\n this.setCookie('uhr-status', 'off');\n }\n }\n\n toggle(): void {\n if (this.isOn()) {\n this.stop();\n } else {\n this.start();\n }\n }\n\n setLanguage(key: string): void {\n if (key !== this.widgetInstance.options.language) {\n this.widgetInstance.options.language = key;\n const renderer = new UhrRenderer(this.getCurrentLayout(), this.widgetInstance.element.find('.letterarea'));\n renderer.render(() => {\n this.currentMinute = -1;\n this.update();\n });\n this.setCookie('uhr-language', key);\n this.update();\n }\n }\n\n setTheme(styleClass: string): void {\n if (styleClass !== this.widgetInstance.options.theme) {\n this.widgetInstance.element.removeClass(this.widgetInstance.options.theme).addClass(styleClass);\n $(`#uhr-onoffswitch${this.widgetInstance.uuid}`).removeClass(this.widgetInstance.options.theme).addClass(styleClass);\n this.widgetInstance.options.theme = styleClass;\n this.setCookie('uhr-theme', styleClass);\n }\n }\n\n setTime(time: Date): void {\n this.currentMinute = null;\n if (time === null) {\n this.widgetInstance.options.time = new Date();\n } else {\n if (this.timer !== null) {\n window.clearInterval(this.timer);\n }\n this.widgetInstance.options.time = time;\n }\n this.update();\n }\n\n setMode(mode: string): void {\n this.widgetInstance.options.mode = mode;\n this.currentMinute = null;\n this.update();\n this.setCookie('uhr-mode', mode);\n }\n\n setWidth(width: string): void {\n const e = this.widgetInstance.element;\n e.css('width', width);\n const realWidth = e.width();\n e.width(realWidth);\n e.height(realWidth);\n e.css('font-size', (realWidth / 40) + 'px');\n }\n\n private setupHTML(): void {\n const e: JQuery = this.widgetInstance.element;\n // Base clock area\n e.addClass('uhr')\n .empty()\n .append('')\n .append('')\n .append('')\n .append('')\n .append('
')\n .append('
');\n\n this.setWidth(this.widgetInstance.options.width);\n\n if (this.widgetInstance.options.controls) {\n const controlpanel = $(`
`);\n const content = $('
');\n controlpanel.append(content);\n // on/off switch\n const toggleSwitch = $(`
`);\n toggleSwitch.append(``);\n toggleSwitch.append(``);\n content.append(toggleSwitch);\n\n // time mode switch\n const modeSwitch = $(`
`);\n modeSwitch.append(``);\n modeSwitch.append(``);\n content.append(modeSwitch);\n // language chooser\n if (Globals.hasMultipleLayouts()) {\n const languageChooser = $(``);\n Globals.getLayouts().forEach(layout => {\n languageChooser.append(``);\n });\n content.append(languageChooser);\n }\n\n // theme chooser\n if (Globals.hasMultipleThemes()) {\n const themeChooser = $(``);\n Globals.getThemes().forEach(theme => {\n themeChooser.append(``);\n });\n content.append(themeChooser);\n }\n const closebutton = $(``);\n //FIXME deprecated?!\n closebutton.on('click', () => $(`#uhr-controlpanel${this.widgetInstance.uuid}`).hide('fast'));\n content.append(closebutton);\n e.after(controlpanel);\n controlpanel.hide();\n const configlink = $(``);\n configlink.on({click: () => this.toggleConfigScreen()});\n e.after(configlink);\n }\n };\n\n private wireFunctionality(): void {\n // on/off switch\n const toggleSwitch = $(`#uhr-onoffswitch-checkbox${this.widgetInstance.uuid}`);\n toggleSwitch.on({click: () => this.toggle()});\n let status = this.getCookie('uhr-status');\n if (status === undefined || this.widgetInstance.options.force) {\n status = this.widgetInstance.options.status;\n }\n toggleSwitch.prop('checked', status === 'on');\n if (status === 'on') {\n this.start();\n } else {\n this.stop();\n }\n\n // time mode switch\n const modeSwitch = $(`#uhr-modeswitch-checkbox${this.widgetInstance.uuid}`);\n modeSwitch.on({\n click: () => {\n if (this.widgetInstance.options.mode === 'seconds') {\n this.setMode('normal');\n } else {\n this.setMode('seconds');\n }\n }\n });\n\n let mode = this.getCookie('uhr-mode');\n if (mode === undefined || this.widgetInstance.options.force) {\n mode = this.widgetInstance.options.mode;\n }\n modeSwitch.prop('checked', mode !== 'seconds');\n if (mode === 'seconds') {\n this.setMode('seconds');\n } else {\n this.setMode('normal');\n }\n\n // language chooser\n const languageChooser = $(`#uhr-languagechooser${this.widgetInstance.uuid}`);\n languageChooser.on({\n change: () => {\n const languageKey = $(`#uhr-languagechooser${this.widgetInstance.uuid}`).val() as string;\n this.setLanguage(languageKey);\n }\n });\n let selectedLayout = this.getCookie('uhr-language');\n if (selectedLayout === undefined || this.widgetInstance.options.force) {\n selectedLayout = this.widgetInstance.options.language;\n }\n let found = Globals.getLayouts().some(item => selectedLayout === item.code);\n if (!found) {\n let fallbackLanguage;\n if (Globals.hasLayouts()) {\n fallbackLanguage = Globals.getFirstLayout().code;\n } else {\n fallbackLanguage = '';\n }\n console.warn(`Language '${selectedLayout}' not found! Using fallback '${fallbackLanguage}'.`);\n selectedLayout = fallbackLanguage;\n }\n languageChooser.val(selectedLayout);\n this.widgetInstance.options.language = '';\n this.setLanguage(selectedLayout);\n\n // theme chooser\n const themeChooser = $(`#uhr-themechooser${this.widgetInstance.uuid}`);\n themeChooser.on({\n change: () => {\n const themeKey = $(`#uhr-themechooser${this.widgetInstance.uuid}`).val() as string;\n this.setTheme(themeKey);\n }\n });\n let selectedTheme = this.getCookie('uhr-theme');\n if (selectedTheme === undefined || this.widgetInstance.options.force) {\n selectedTheme = this.widgetInstance.options.theme;\n }\n found = Globals.getThemes().some(item => selectedTheme === item.styleClass);\n if (!found) {\n const fallbackTheme = Globals.getFirstTheme().styleClass;\n console.warn(`Theme '${selectedTheme}' not found! Using fallback '${fallbackTheme}'.`);\n selectedTheme = fallbackTheme;\n }\n themeChooser.val(selectedTheme);\n this.widgetInstance.options.theme = '';\n this.setTheme(selectedTheme);\n if (this.widgetInstance.options.autoresize) {\n $(window).on({\n resize: () => {\n const $e: JQuery = this.widgetInstance.element;\n const $parent: JQuery = $e.parent();\n const $window: JQuery = $(window);\n const parentWidth: number = $parent.width();\n const parentHeight: number = $parent.height();\n const windowWidth: number = $window.width();\n const windowHeight: number = $window.height();\n const size: string = `${Math.min(parentWidth, parentHeight, windowWidth, windowHeight)}px`;\n this.setWidth(size);\n }\n });\n }\n }\n\n private isOn(): boolean {\n return this.timer !== null;\n }\n\n private getCookie(cookieName: string): string {\n return Cookies.get(cookieName + this.widgetInstance.uuid);\n }\n\n private setCookie(cookieName: string, cookieValue: string): void {\n let options;\n if (this.widgetInstance.options.cookiePath !== undefined) {\n options = {expires: 365, path: this.widgetInstance.options.cookiePath};\n } else {\n options = {expires: 365};\n }\n Cookies.set(cookieName + this.widgetInstance.uuid, cookieValue, options);\n }\n\n private update(): void {\n if (this.isOn()) {\n const time = this.widgetInstance.options.time;\n if (!this.getCurrentLayout().hasOwnProperty('seconds') && this.widgetInstance.options.mode !== 'seconds') {\n if (time.getMinutes() === this.currentMinute) {\n return;\n }\n this.currentMinute = time.getMinutes();\n }\n this.show(time);\n } else {\n this.clear();\n this.currentMinute = -1;\n }\n }\n\n private show(time: Date): void {\n const second = this.getSecond(time);\n const dotMinute = this.getDotMinute(time);\n const hour = this.getHour(time);\n const coarseMinute = this.getCoarseMinute(time);\n this.clear();\n if (this.widgetInstance.options.mode === 'seconds') {\n this.highlight(`second${second}`);\n } else {\n this.highlight('on');\n for (let i = 1; i <= dotMinute; i++) {\n this.highlight(`dot${i}`);\n }\n this.highlight(`minute${coarseMinute}`);\n this.highlight(`hour${hour}`);\n }\n }\n\n private clear(): void {\n this.widgetInstance.element.find('.item').removeClass('active');\n }\n\n private highlight(itemClass: string): void {\n this.widgetInstance.element.find(`.item.${itemClass}`).addClass('active');\n }\n\n private getSecond(time: Date): number {\n if (typeof this.getCurrentLayout().getSeconds === 'function') {\n return this.getCurrentLayout().getSeconds(time);\n }\n return time.getSeconds();\n };\n\n private getDotMinute(date: Date): number {\n if (typeof this.getCurrentLayout().getDotMinute === 'function') {\n return this.getCurrentLayout().getDotMinute(date);\n }\n return date.getMinutes() % 5;\n };\n\n private getCoarseMinute(date: Date): number {\n if (typeof this.getCurrentLayout().getCoarseMinute === 'function') {\n return this.getCurrentLayout().getCoarseMinute(date);\n }\n return date.getMinutes();\n };\n\n private getHour(date: Date): number {\n if (typeof this.getCurrentLayout().getHour === 'function') {\n return this.getCurrentLayout().getHour(date);\n }\n const hour = date.getHours();\n if (date.getMinutes() >= 25) {\n return (hour + 1) % 24;\n }\n return hour;\n };\n\n private toggleConfigScreen() {\n $(`#uhr-controlpanel${this.widgetInstance.uuid}`).toggle('fast');\n };\n\n private parseHash(): void {\n let hash: string = window.location.hash;\n if (hash !== undefined && hash.charAt(0) === '#') {\n hash = hash.substring(1);\n hash = decodeURIComponent(hash);\n const params: string[] = hash.split('&');\n params.forEach(element => {\n const pair: string[] = element.split('=');\n const key = pair[0];\n const value = pair[1];\n switch (key) {\n case 'l':\n case 'language':\n this.widgetInstance.options.language = value;\n this.widgetInstance.options.force = true;\n break;\n case 't':\n case 'theme':\n this.widgetInstance.options.theme = value;\n this.widgetInstance.options.force = true;\n break;\n case 'm':\n case 'mode':\n this.widgetInstance.options.mode = value;\n this.widgetInstance.options.force = true;\n break;\n case 's':\n case 'status':\n this.widgetInstance.options.status = value;\n this.widgetInstance.options.force = true;\n break;\n }\n });\n }\n }\n\n private getCurrentLayout(): Layout {\n const matchingLanguages: Layout[] = Globals.getLayouts().filter(element => element.code === this.widgetInstance.options.language, this);\n if (matchingLanguages.length > 0) {\n return matchingLanguages[0];\n }\n // fallback: return empty object\n return EMPTY_LAYOUT;\n };\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport * as $ from 'jquery';\nimport {Globals} from './domain/globals';\n\nexport function autodetectThemes() {\n $('link[rel=stylesheet]').each((index, item) => {\n const styleSheet = $(item);\n const styleClass: string = styleSheet.attr('data-class');\n if (styleClass !== undefined) {\n let name: string = styleSheet.attr('data-name');\n if (name === undefined) {\n name = styleClass;\n }\n Globals.registerTheme(name, styleClass);\n }\n });\n\n // fall-back if no theme was included\n if (!Globals.hasThemes()) {\n Globals.registerTheme('', '');\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport {Globals} from './domain/globals';\nimport {Layout} from './domain/layout';\nimport {Uhr} from './uhr';\nimport {WidgetPrototype} from './widget/widget-prototype';\nimport {autodetectThemes} from './theme-autodetector';\n\n// First things first: discover included themes and register them\nautodetectThemes();\n\n$.widget('fritteli.uhr', {\n options: {\n width: '100%',\n status: 'on',\n language: 'de_CH',\n theme: Globals.getFirstTheme().styleClass,\n force: false,\n controls: true,\n cookiePath: undefined,\n autoresize: true,\n mode: 'normal'\n },\n start: function () {\n this.__fritteli_uhr_instance.start();\n },\n stop: function () {\n this.__fritteli_uhr_instance.stop();\n },\n toggle: function () {\n this.__fritteli_uhr_instance.toggle();\n },\n language: function (key: string) {\n this.__fritteli_uhr_instance.setLanguage(key);\n },\n theme: function (styleClass: string) {\n this.__fritteli_uhr_instance.setTheme(styleClass);\n },\n time: function (time: Date) {\n this.__fritteli_uhr_instance.setTime(time);\n },\n mode: function (mode: string) {\n this.__fritteli_uhr_instance.setMode(mode);\n },\n width: function (width: string) {\n this.__fritteli_uhr_instance.setWidth(width);\n },\n // constructor method\n _create: function () {\n this.__fritteli_uhr_instance = new Uhr(this);\n },\n // destructor method\n _destroy: function () {\n this.__fritteli_uhr_instance.destroy();\n },\n __fritteli_uhr_instance: null\n} as WidgetPrototype);\n\n$.fritteli.uhr.register = Globals.registerLayout;\n\ndeclare namespace $ {\n const fritteli: Fritteli.Fritteli;\n const widget: JQueryUI.Widget;\n}\ndeclare namespace Fritteli {\n interface Fritteli {\n uhr: Uhr;\n }\n\n interface Uhr {\n register: (layout: Layout) => void;\n }\n}\n","/*\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n */\n\nimport * as uhr from './index';\nimport {Layout_de} from './layout/layout-de';\nimport {Layout_de_CH} from './layout/layout-de_ch';\nimport {Layout_de_CH_genau} from './layout/layout-de_ch_genau';\nimport {Layout_dk} from './layout/layout-dk';\nimport {Layout_en} from './layout/layout-en';\nimport {Layout_es} from './layout/layout-es';\nimport {Layout_fr} from './layout/layout-fr';\nimport {Layout_it} from './layout/layout-it';\nimport {Layout_nl} from './layout/layout-nl';\nimport {Layout_pt} from './layout/layout-pt';\n\n// We just need to reference all required files at least once, so that the tree-shaker won't remove them from\n// the bundle.\nlet a = uhr;\na = Layout_de_CH;\na = Layout_de_CH_genau;\na = Layout_de;\na = Layout_dk;\na = Layout_en;\na = Layout_es;\na = Layout_fr;\na = Layout_it;\na = Layout_nl;\na = Layout_pt;\n"],"sourceRoot":""}