diff --git a/CHANGELOG.md b/CHANGELOG.md index 7dcb215..a9e100c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.6.1 + +* Added ability to open info display from collapsed control panel. +* Remove feature for displaying equatorial position - confusing, and not as useful as I thought. +* Fix iOS keyboard input bug. +* Enable "Suppress onscreen keyboard" option even when iOS is requesting a desktop version of the website. + +## 1.6.0 + +* Add option for sun/moon hour angle markers. + ## 1.5.0 * Add new "Sun constrained by hour hand". diff --git a/messages.xlf b/messages.xlf index 9a6cc47..d0b1153 100644 --- a/messages.xlf +++ b/messages.xlf @@ -114,232 +114,232 @@ 39 + + No name provided + + src/app/app.component.html + 13 + + + + Uncheck "Track current time" to modify the time + + src/app/app.component.html + 30 + + + + ISO time format + + src/app/app.component.html + 42 + + + + Disable DST on clock + + src/app/app.component.html + 44 + + + + Track current time + + src/app/app.component.html + 50 + + + + Now + + src/app/app.component.html + 51 + + Local mean time: src/app/app.component.html - 7 + 612 Local solar time: src/app/app.component.html - 9 + 614 Sidereal time: src/app/app.component.html - 11 + 616 Bohemian time: src/app/app.component.html - 13 + 618 Sun rise/set: src/app/app.component.html - 15 + 620 Moon rise/set: src/app/app.component.html - 17 + 622 Last virtual recalibration: src/app/app.component.html - 21 + 626 Actual src/app/app.component.html - 27 + 632 Sun λ src/app/app.component.html - 33 + 638 mins src/app/app.component.html - 38 + 643 Moon λ src/app/app.component.html - 42 + 647 days src/app/app.component.html - 47 + 652 src/app/app.component.html - 56 + 661 Moon phase src/app/app.component.html - 51 - - - - No name provided - - src/app/app.component.html - 74 - - - - Uncheck "Track current time" to modify the time - - src/app/app.component.html - 91 - - - - ISO time format - - src/app/app.component.html - 103 - - - - Disable DST on clock - - src/app/app.component.html - 105 - - - - Track current time - - src/app/app.component.html - 111 - - - - Now - - src/app/app.component.html - 112 + 656 Original SVG clock graphics by Jan Tošovský src/app/app.component.html - 663 + 668 Change time src/app/app.component.html - 666 + 671 Prague, CZE src/app/app.component.ts - 38 + 41 Default src/app/app.component.ts - 113 + 116 ↔ Equinox/solstice src/app/app.component.ts - 191 + 195 ↔ Moon phase src/app/app.component.ts - 193 + 197 ↔ Sunrise/transit/sunset src/app/app.component.ts - 195 + 199 Advanced options... src/app/app.component.ts - 198 + 202 Language src/app/app.component.ts - 202 + 206 Code on GitHub src/app/app.component.ts - 206 + 210 Czech Horological Society site src/app/app.component.ts - 208 + 212 About the real clock src/app/app.component.ts - 210 + 214 https://en.wikipedia.org/wiki/Prague_astronomical_clock src/app/app.component.ts - 211 + 215 Language-specific Wikipedia URL @@ -347,21 +347,21 @@ About this simulator src/app/app.component.ts - 213 + 217 Suppress onscreen keyboard src/app/app.component.ts - 309 + 313 Yes src/app/app.component.ts - 345 + 350 for dialog button @@ -369,7 +369,7 @@ No src/app/app.component.ts - 346 + 351 for dialog button @@ -377,109 +377,109 @@ Turn off "Track current time" so you can edit the time? src/app/app.component.ts - 990 + 1010 Turn off "Track current time" and change the clock time? src/app/app.component.ts - 1065 + 1085 Event src/app/app.component.ts - 1106 + 1126 src/app/app.component.ts - 1110 + 1130 Event outside of - year range. src/app/app.component.ts - 1107 + 1127 Sunrise src/app/app.component.ts - 1117 + 1137 Sunset src/app/app.component.ts - 1119 + 1139 Transit src/app/app.component.ts - 1121 + 1141 Vernal equinox src/app/app.component.ts - 1123 + 1143 Summer solstice src/app/app.component.ts - 1125 + 1145 Autumnal equinox src/app/app.component.ts - 1127 + 1147 Winter Solstice src/app/app.component.ts - 1129 + 1149 New moon src/app/app.component.ts - 1131 + 1151 First quarter src/app/app.component.ts - 1133 + 1153 Full moon src/app/app.component.ts - 1135 + 1155 Third quarter src/app/app.component.ts - 1137 + 1157 diff --git a/package-lock.json b/package-lock.json index f2b5aa3..61777c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "prague-clock", - "version": "1.5.0", + "version": "1.6.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "prague-clock", - "version": "1.5.0", + "version": "1.6.1", "dependencies": { "@angular/animations": "~13.2.0", "@angular/cdk": "^13.2.6", @@ -24,45 +24,45 @@ "@fortawesome/free-solid-svg-icons": "^6.1.1", "@tubular/astronomy": "^3.1.0", "@tubular/math": "^3.1.0", - "@tubular/ng-widgets": "^2.1.1", + "@tubular/ng-widgets": "^2.1.2", "@tubular/time": "^3.8.1", - "@tubular/util": "^4.7.1", + "@tubular/util": "^4.9.1", "primeicons": "^5.0.0", "primeng": "^13.3.3", "rxjs": "~7.5.0", - "three": "^0.138.3", - "tslib": "^2.3.0", - "zone.js": "~0.11.4" + "three": "^0.140.0", + "tslib": "^2.4.0", + "zone.js": "~0.11.5" }, "devDependencies": { "@angular-devkit/build-angular": "~13.2.5", - "@angular-eslint/eslint-plugin": "^13.1.0", - "@angular-eslint/eslint-plugin-template": "^13.1.0", - "@angular-eslint/template-parser": "^13.1.0", + "@angular-eslint/eslint-plugin": "^13.2.1", + "@angular-eslint/eslint-plugin-template": "^13.2.1", + "@angular-eslint/template-parser": "^13.2.1", "@angular/cli": "~13.2.5", "@angular/compiler-cli": "~13.2.0", "@angular/localize": "^13.2.7", - "@types/jasmine": "~3.10.0", - "@types/node": "^12.11.1", - "@types/three": "^0.138.0", - "@typescript-eslint/eslint-plugin": "^5.9.1", - "@typescript-eslint/parser": "^5.9.1", + "@types/jasmine": "~3.10.6", + "@types/node": "^12.20.50", + "@types/three": "^0.139.0", + "@typescript-eslint/eslint-plugin": "^5.21.0", + "@typescript-eslint/parser": "^5.21.0", "eslint": "^7.32.0", "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.25.4", + "eslint-plugin-import": "^2.26.0", "eslint-plugin-jasmine": "^4.1.3", "eslint-plugin-node": "^11.1.0", "jasmine-core": "~4.0.0", - "karma": "~6.3.0", - "karma-chrome-launcher": "~3.1.0", - "karma-coverage": "~2.1.0", - "karma-jasmine": "~4.0.0", + "karma": "~6.3.19", + "karma-chrome-launcher": "~3.1.1", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~4.0.2", "karma-jasmine-html-reporter": "~1.7.0", - "postcss-scss": "^4.0.3", - "stylelint": "^14.6.1", + "postcss-scss": "^4.0.4", + "stylelint": "^14.8.1", "stylelint-config-standard": "^25.0.0", "stylelint-scss": "^4.2.0", - "typescript": "~4.5.2" + "typescript": "~4.5.5" } }, "node_modules/@ampproject/remapping": { @@ -239,6 +239,12 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, "node_modules/@angular-devkit/build-webpack": { "version": "0.1302.6", "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1302.6.tgz", @@ -358,19 +364,19 @@ "dev": true }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-13.1.0.tgz", - "integrity": "sha512-0VSAZ3zrHkKdbvogQ4GLSf+lKojtPL3LXLlvXU9xNgNsqw68+gSNwaWd595tXoQCmpwWpTerKUbyIsGnPA7EYA==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-13.2.1.tgz", + "integrity": "sha512-v/O9s6yvg7MJTQ9iNdXpZJOAjunY4ATk/dE3+xTsLwWTZXTXLXZE1FtKD/reijoItZtGiLUJ+F1pK5nwq/iI6w==", "dev": true }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-13.1.0.tgz", - "integrity": "sha512-WiggBWPhhpSjcYVHJiawCduCsydM/RPudUE8zxv0Nmj/APuzNgvUr6E//uYTrhNv9EIJoZutRovw7R4Y/yXj4Q==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-13.2.1.tgz", + "integrity": "sha512-hlHzbe7MIBbZ4IUKvJh5pjN5nKw0YZBwPyIB1+IBOJAdjWuS274uUGTZxKeyJiyJi0FOUu5+Z6vbM9ZJ2uzjcw==", "dev": true, "dependencies": { - "@angular-eslint/utils": "13.1.0", - "@typescript-eslint/experimental-utils": "5.11.0" + "@angular-eslint/utils": "13.2.1", + "@typescript-eslint/experimental-utils": "5.17.0" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0", @@ -378,13 +384,13 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-13.1.0.tgz", - "integrity": "sha512-ceZAMjufE58aduOW/UwjrbCRWocYC0zOEJ2jUkPt6jlL8yzc+SC6UitO0VmMgUsCizHueav5/3gKy05xqwk/CA==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-13.2.1.tgz", + "integrity": "sha512-fA11IGfnWzJePFVS04JKigQY33/Twp5Gv3sj6o8NLRi25NbZDFMc6YjRv8FuKfJ0DXrZh0nLgP2L/01qnXDgZQ==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "13.1.0", - "@typescript-eslint/experimental-utils": "5.11.0", + "@angular-eslint/bundled-angular-compiler": "13.2.1", + "@typescript-eslint/experimental-utils": "5.17.0", "aria-query": "^4.2.2", "axobject-query": "^2.2.0" }, @@ -394,12 +400,12 @@ } }, "node_modules/@angular-eslint/template-parser": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-13.1.0.tgz", - "integrity": "sha512-gKV+kms+kYm1HdToH3j4HL1RrjvMHscVkhwjoV1WbJColnfDivVAZ6/5/J92/A/8r7vJptQkftsbiaGKDyg47w==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-13.2.1.tgz", + "integrity": "sha512-aSZjKYTUXjJ3sehm90CfZey/ed333IxP0TpnaG7Lue9rSEa3BkKOv8Kffy+EhDkpdTpjdwdmGfopxxsbm9sPHw==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "13.1.0", + "@angular-eslint/bundled-angular-compiler": "13.2.1", "eslint-scope": "^5.1.0" }, "peerDependencies": { @@ -408,13 +414,13 @@ } }, "node_modules/@angular-eslint/utils": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-13.1.0.tgz", - "integrity": "sha512-iLmYMXNk+1sFMIlYXN8/Z5UcNAOno38v10lzo4bMjCpzXKkMa0O2b+4qi+469iUJAU6RAZ5weUL+S2Wtlr0ooA==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-13.2.1.tgz", + "integrity": "sha512-TCw56jQDPe/FDg3IC0QTQVn4mv5Pzb8K4YpO2hiBdU4XwmOTGWjbwZO++Wr1Gekw1OJYVWSIwNfz2MrGIDsu7A==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "13.1.0", - "@typescript-eslint/experimental-utils": "5.11.0" + "@angular-eslint/bundled-angular-compiler": "13.2.1", + "@typescript-eslint/experimental-utils": "5.17.0" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0", @@ -2965,9 +2971,9 @@ } }, "node_modules/@tubular/ng-widgets": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tubular/ng-widgets/-/ng-widgets-2.1.1.tgz", - "integrity": "sha512-FuutN73dUR37E0xv+Q69GEOYHnhSH3aEsuu7YX9aAI6djIZl7ltiqt8BNhQHRxoQO11yL+b/iuLMrSZ8GwyQqA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@tubular/ng-widgets/-/ng-widgets-2.1.2.tgz", + "integrity": "sha512-7du7JHdCPNMBXpxxl3J5xwBe/fp5LPea57HhaFuxsNQfJSWjxTdZH8kNyDQab0qzsXgYBU8Chy5SxLRI4uk8AA==", "dependencies": { "tslib": "^2.1.0" }, @@ -2975,8 +2981,8 @@ "@angular/common": "^13.0.0", "@angular/core": "^13.0.0", "@tubular/math": "^3.1.0", - "@tubular/time": "^3.8.0", - "@tubular/util": "^4.7.1", + "@tubular/time": "^3.8.1", + "@tubular/util": "^4.9.1", "detect-resize": "^0.1.5", "lodash": "^4.17.21" } @@ -2998,9 +3004,9 @@ } }, "node_modules/@tubular/util": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@tubular/util/-/util-4.7.1.tgz", - "integrity": "sha512-EscN6dwB4g3CyvHUrLmLi5KMqOtBpPDa/RjSxjTtnzwPJiCiVFhhgd4Q2bTNAdjSqYVBkN9AiUWraaXKShsfEA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@tubular/util/-/util-4.9.1.tgz", + "integrity": "sha512-oykvYHnCuIx+NWMouAKPt89AkcL9+tNhiyf2WqDyFn96tf27Gddkp4oWnjscwz9IhulW1Aa8IFGDs3ZJ8o6zmw==", "engines": { "node": ">=10.24.1" } @@ -3129,9 +3135,9 @@ } }, "node_modules/@types/jasmine": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.4.tgz", - "integrity": "sha512-7UAoOBYJpaZKmpJ8esMUIMl6pSdReliPQjviOOikWdQ7eVr4Hq8YbpeXyfXFKflZv8ymDFhYdTjVabbP2s4K4Q==", + "version": "3.10.6", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.6.tgz", + "integrity": "sha512-twY9adK/vz72oWxCWxzXaxoDtF9TpfEEsxvbc1ibjF3gMD/RThSuSud/GKUTR3aJnfbivAbC/vLqhY+gdWCHfA==", "dev": true }, "node_modules/@types/json-schema": { @@ -3159,9 +3165,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "12.20.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.47.tgz", - "integrity": "sha512-BzcaRsnFuznzOItW1WpQrDHM7plAa7GIDMZ6b5pnMbkqEtM/6WCOhvZar39oeMQP79gwvFUWjjptE7/KGcNqFg==", + "version": "12.20.50", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz", + "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA==", "devOptional": true }, "node_modules/@types/normalize-package-data": { @@ -3223,9 +3229,9 @@ } }, "node_modules/@types/three": { - "version": "0.138.0", - "resolved": "https://registry.npmjs.org/@types/three/-/three-0.138.0.tgz", - "integrity": "sha512-D8AoV7h2kbCfrv/DcebHOFh1WDwyus3HdooBkAwcBikXArdqnsQ38PQ85JCunnvun160oA9jz53GszF3zch3tg==", + "version": "0.139.0", + "resolved": "https://registry.npmjs.org/@types/three/-/three-0.139.0.tgz", + "integrity": "sha512-4V/jZhyq7Mv05coUzxL3bz8AuBOSi/1F0RY7ujisHTV0Amy/fnYJ+s7TSJ1/hXjZukSkpuFRgV+wvWUEMbsMbQ==", "dev": true }, "node_modules/@types/ws": { @@ -3238,14 +3244,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz", - "integrity": "sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz", + "integrity": "sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/type-utils": "5.15.0", - "@typescript-eslint/utils": "5.15.0", + "@typescript-eslint/scope-manager": "5.21.0", + "@typescript-eslint/type-utils": "5.21.0", + "@typescript-eslint/utils": "5.21.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -3271,12 +3277,12 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.11.0.tgz", - "integrity": "sha512-EPvC/bU2n1LKtzKWP1AjGWkp7r8tJ8giVlZHIODo6q7SAd6J+/9vjtEKHK2G/Qp+D2IGPsQge+oadDR3CZcFtQ==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.17.0.tgz", + "integrity": "sha512-U4sM5z0/ymSYqQT6I7lz8l0ZZ9zrya5VIwrwAP5WOJVabVtVsIpTMxPQe+D3qLyePT+VlETUTO2nA1+PufPx9Q==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.11.0" + "@typescript-eslint/utils": "5.17.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3290,13 +3296,13 @@ } }, "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", - "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", + "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0" + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3307,9 +3313,9 @@ } }, "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/types": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", - "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", + "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3320,13 +3326,13 @@ } }, "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", - "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", + "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3347,15 +3353,15 @@ } }, "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/utils": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.11.0.tgz", - "integrity": "sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", + "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/typescript-estree": "5.11.0", + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -3371,12 +3377,12 @@ } }, "node_modules/@typescript-eslint/experimental-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", - "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", + "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/types": "5.17.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -3388,14 +3394,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", - "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.21.0.tgz", + "integrity": "sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", + "@typescript-eslint/scope-manager": "5.21.0", + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/typescript-estree": "5.21.0", "debug": "^4.3.2" }, "engines": { @@ -3415,13 +3421,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", - "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", + "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0" + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3432,12 +3438,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz", - "integrity": "sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz", + "integrity": "sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.15.0", + "@typescript-eslint/utils": "5.21.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -3458,9 +3464,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", - "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", + "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3471,13 +3477,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", - "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz", + "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0", + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -3498,15 +3504,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.15.0.tgz", - "integrity": "sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.21.0.tgz", + "integrity": "sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", + "@typescript-eslint/scope-manager": "5.21.0", + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/typescript-estree": "5.21.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -3522,12 +3528,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", - "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", + "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/types": "5.21.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -6597,9 +6603,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "dependencies": { "array-includes": "^3.1.4", @@ -6607,14 +6613,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "engines": { "node": ">=4" @@ -6644,6 +6650,18 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -7908,12 +7926,15 @@ "dev": true }, "node_modules/html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/http-cache-semantics": { @@ -8982,9 +9003,9 @@ ] }, "node_modules/karma": { - "version": "6.3.17", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.17.tgz", - "integrity": "sha512-2TfjHwrRExC8yHoWlPBULyaLwAFmXmxQrcuFImt/JsAsSZu1uOWTZ1ZsWjqQtWpHLiatJOHL5jFjXSJIgCd01g==", + "version": "6.3.19", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.19.tgz", + "integrity": "sha512-NDhWckzES/Y9xMiddyU1RzaKL76/scCsu8Mp0vR0Z3lQRvC3p72+Ab4ppoxs36S9tyPNX5V48yvaV++RNEBPZw==", "dev": true, "dependencies": { "@colors/colors": "1.5.0", @@ -9006,7 +9027,7 @@ "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^4.2.0", + "socket.io": "^4.4.1", "source-map": "^0.6.1", "tmp": "^0.2.1", "ua-parser-js": "^0.7.30", @@ -9041,13 +9062,13 @@ } }, "node_modules/karma-coverage": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.1.1.tgz", - "integrity": "sha512-oxeOSBVK/jdZsiX03LhHQkO4eISSQb5GbHi6Nsw3Mw7G4u6yUgacBAftnO7q+emPBLMsrNbz1pGIrj+Jb3z17A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.0.tgz", + "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-instrument": "^5.1.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.1", "istanbul-reports": "^3.0.5", @@ -9057,34 +9078,10 @@ "node": ">=10.0.0" } }, - "node_modules/karma-coverage/node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma-coverage/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/karma-jasmine": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", - "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.2.tgz", + "integrity": "sha512-ggi84RMNQffSDmWSyyt4zxzh2CQGwsxvYYsprgyR1j8ikzIduEdOlcLvXjZGwXG/0j41KUXOWsUCBfbEHPWP9g==", "dev": true, "dependencies": { "jasmine-core": "^3.6.0" @@ -9693,13 +9690,13 @@ } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -11557,9 +11554,9 @@ } }, "node_modules/postcss-scss": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.3.tgz", - "integrity": "sha512-j4KxzWovfdHsyxwl1BxkUal/O4uirvHgdzMKS1aWJBAV0qh2qj5qAZqpeBfVUYGWv+4iK9Az7SPyZ4fyNju1uA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.4.tgz", + "integrity": "sha512-aBBbVyzA8b3hUL0MGrpydxxXKXFZc5Eqva0Q3V9qsBOLEMsjb6w49WfpsoWzpEgcqJGW4t7Rio8WXVU9Gd8vWg==", "dev": true, "engines": { "node": ">=12.0" @@ -11585,9 +11582,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -13068,9 +13065,9 @@ "dev": true }, "node_modules/stylelint": { - "version": "14.6.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.6.1.tgz", - "integrity": "sha512-FfNdvZUZdzh9KDQxDnO7Opp+prKh8OQVuSW8S13cBtxrooCbm6J6royhUeb++53WPMt04VB+ZbOz/QmzAijs6Q==", + "version": "14.8.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.8.1.tgz", + "integrity": "sha512-0YxTop3wTeEVmQWhS7jjLFaBkvfPmffRiJ6eFIDlK++f3OklaobTYFJu32E5u/cIrFLbcW52pLqrYpihA/y0/w==", "dev": true, "dependencies": { "balanced-match": "^2.0.0", @@ -13086,7 +13083,7 @@ "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", - "html-tags": "^3.1.0", + "html-tags": "^3.2.0", "ignore": "^5.2.0", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", @@ -13094,7 +13091,7 @@ "known-css-properties": "^0.24.0", "mathml-tag-names": "^2.1.3", "meow": "^9.0.0", - "micromatch": "^4.0.4", + "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "normalize-selector": "^0.2.0", "picocolors": "^1.0.0", @@ -13102,7 +13099,7 @@ "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.9", + "postcss-selector-parser": "^6.0.10", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "specificity": "^0.4.1", @@ -13556,9 +13553,9 @@ "dev": true }, "node_modules/three": { - "version": "0.138.3", - "resolved": "https://registry.npmjs.org/three/-/three-0.138.3.tgz", - "integrity": "sha512-4t1cKC8gimNyJChJbaklg8W/qj3PpsLJUIFm5LIuAy/hVxxNm1ru2FGTSfbTSsuHmC/7ipsyuGKqrSAKLNtkzg==" + "version": "0.140.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.140.0.tgz", + "integrity": "sha512-jcHjbnYspPLDdsDQChmzyAoZ5KhJbgFk6pNGlAIc9fQMvsfPGjF5H9glrngqvb2CR/qXcClMyp5PYdF996lldA==" }, "node_modules/through": { "version": "2.3.8", @@ -13633,14 +13630,14 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz", - "integrity": "sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.0", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, @@ -13657,9 +13654,9 @@ } }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -14618,6 +14615,12 @@ "dev": true } } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true } } }, @@ -14710,51 +14713,51 @@ } }, "@angular-eslint/bundled-angular-compiler": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-13.1.0.tgz", - "integrity": "sha512-0VSAZ3zrHkKdbvogQ4GLSf+lKojtPL3LXLlvXU9xNgNsqw68+gSNwaWd595tXoQCmpwWpTerKUbyIsGnPA7EYA==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-13.2.1.tgz", + "integrity": "sha512-v/O9s6yvg7MJTQ9iNdXpZJOAjunY4ATk/dE3+xTsLwWTZXTXLXZE1FtKD/reijoItZtGiLUJ+F1pK5nwq/iI6w==", "dev": true }, "@angular-eslint/eslint-plugin": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-13.1.0.tgz", - "integrity": "sha512-WiggBWPhhpSjcYVHJiawCduCsydM/RPudUE8zxv0Nmj/APuzNgvUr6E//uYTrhNv9EIJoZutRovw7R4Y/yXj4Q==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-13.2.1.tgz", + "integrity": "sha512-hlHzbe7MIBbZ4IUKvJh5pjN5nKw0YZBwPyIB1+IBOJAdjWuS274uUGTZxKeyJiyJi0FOUu5+Z6vbM9ZJ2uzjcw==", "dev": true, "requires": { - "@angular-eslint/utils": "13.1.0", - "@typescript-eslint/experimental-utils": "5.11.0" + "@angular-eslint/utils": "13.2.1", + "@typescript-eslint/experimental-utils": "5.17.0" } }, "@angular-eslint/eslint-plugin-template": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-13.1.0.tgz", - "integrity": "sha512-ceZAMjufE58aduOW/UwjrbCRWocYC0zOEJ2jUkPt6jlL8yzc+SC6UitO0VmMgUsCizHueav5/3gKy05xqwk/CA==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-13.2.1.tgz", + "integrity": "sha512-fA11IGfnWzJePFVS04JKigQY33/Twp5Gv3sj6o8NLRi25NbZDFMc6YjRv8FuKfJ0DXrZh0nLgP2L/01qnXDgZQ==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "13.1.0", - "@typescript-eslint/experimental-utils": "5.11.0", + "@angular-eslint/bundled-angular-compiler": "13.2.1", + "@typescript-eslint/experimental-utils": "5.17.0", "aria-query": "^4.2.2", "axobject-query": "^2.2.0" } }, "@angular-eslint/template-parser": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-13.1.0.tgz", - "integrity": "sha512-gKV+kms+kYm1HdToH3j4HL1RrjvMHscVkhwjoV1WbJColnfDivVAZ6/5/J92/A/8r7vJptQkftsbiaGKDyg47w==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-13.2.1.tgz", + "integrity": "sha512-aSZjKYTUXjJ3sehm90CfZey/ed333IxP0TpnaG7Lue9rSEa3BkKOv8Kffy+EhDkpdTpjdwdmGfopxxsbm9sPHw==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "13.1.0", + "@angular-eslint/bundled-angular-compiler": "13.2.1", "eslint-scope": "^5.1.0" } }, "@angular-eslint/utils": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-13.1.0.tgz", - "integrity": "sha512-iLmYMXNk+1sFMIlYXN8/Z5UcNAOno38v10lzo4bMjCpzXKkMa0O2b+4qi+469iUJAU6RAZ5weUL+S2Wtlr0ooA==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-13.2.1.tgz", + "integrity": "sha512-TCw56jQDPe/FDg3IC0QTQVn4mv5Pzb8K4YpO2hiBdU4XwmOTGWjbwZO++Wr1Gekw1OJYVWSIwNfz2MrGIDsu7A==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "13.1.0", - "@typescript-eslint/experimental-utils": "5.11.0" + "@angular-eslint/bundled-angular-compiler": "13.2.1", + "@typescript-eslint/experimental-utils": "5.17.0" } }, "@angular/animations": { @@ -16548,9 +16551,9 @@ "integrity": "sha512-a7loxb8zHLxhq3mMSZbro2JNMxR2Vf8DoRy762RNCUKx3Ifd/pB024MVKsDF/5CVywdS5SvhavVtLtmpMRkmPQ==" }, "@tubular/ng-widgets": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tubular/ng-widgets/-/ng-widgets-2.1.1.tgz", - "integrity": "sha512-FuutN73dUR37E0xv+Q69GEOYHnhSH3aEsuu7YX9aAI6djIZl7ltiqt8BNhQHRxoQO11yL+b/iuLMrSZ8GwyQqA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@tubular/ng-widgets/-/ng-widgets-2.1.2.tgz", + "integrity": "sha512-7du7JHdCPNMBXpxxl3J5xwBe/fp5LPea57HhaFuxsNQfJSWjxTdZH8kNyDQab0qzsXgYBU8Chy5SxLRI4uk8AA==", "requires": { "tslib": "^2.1.0" } @@ -16567,9 +16570,9 @@ } }, "@tubular/util": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@tubular/util/-/util-4.7.1.tgz", - "integrity": "sha512-EscN6dwB4g3CyvHUrLmLi5KMqOtBpPDa/RjSxjTtnzwPJiCiVFhhgd4Q2bTNAdjSqYVBkN9AiUWraaXKShsfEA==" + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@tubular/util/-/util-4.9.1.tgz", + "integrity": "sha512-oykvYHnCuIx+NWMouAKPt89AkcL9+tNhiyf2WqDyFn96tf27Gddkp4oWnjscwz9IhulW1Aa8IFGDs3ZJ8o6zmw==" }, "@types/body-parser": { "version": "1.19.2", @@ -16695,9 +16698,9 @@ } }, "@types/jasmine": { - "version": "3.10.4", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.4.tgz", - "integrity": "sha512-7UAoOBYJpaZKmpJ8esMUIMl6pSdReliPQjviOOikWdQ7eVr4Hq8YbpeXyfXFKflZv8ymDFhYdTjVabbP2s4K4Q==", + "version": "3.10.6", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.6.tgz", + "integrity": "sha512-twY9adK/vz72oWxCWxzXaxoDtF9TpfEEsxvbc1ibjF3gMD/RThSuSud/GKUTR3aJnfbivAbC/vLqhY+gdWCHfA==", "dev": true }, "@types/json-schema": { @@ -16725,9 +16728,9 @@ "dev": true }, "@types/node": { - "version": "12.20.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.47.tgz", - "integrity": "sha512-BzcaRsnFuznzOItW1WpQrDHM7plAa7GIDMZ6b5pnMbkqEtM/6WCOhvZar39oeMQP79gwvFUWjjptE7/KGcNqFg==", + "version": "12.20.50", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz", + "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA==", "devOptional": true }, "@types/normalize-package-data": { @@ -16789,9 +16792,9 @@ } }, "@types/three": { - "version": "0.138.0", - "resolved": "https://registry.npmjs.org/@types/three/-/three-0.138.0.tgz", - "integrity": "sha512-D8AoV7h2kbCfrv/DcebHOFh1WDwyus3HdooBkAwcBikXArdqnsQ38PQ85JCunnvun160oA9jz53GszF3zch3tg==", + "version": "0.139.0", + "resolved": "https://registry.npmjs.org/@types/three/-/three-0.139.0.tgz", + "integrity": "sha512-4V/jZhyq7Mv05coUzxL3bz8AuBOSi/1F0RY7ujisHTV0Amy/fnYJ+s7TSJ1/hXjZukSkpuFRgV+wvWUEMbsMbQ==", "dev": true }, "@types/ws": { @@ -16804,14 +16807,14 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz", - "integrity": "sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz", + "integrity": "sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/type-utils": "5.15.0", - "@typescript-eslint/utils": "5.15.0", + "@typescript-eslint/scope-manager": "5.21.0", + "@typescript-eslint/type-utils": "5.21.0", + "@typescript-eslint/utils": "5.21.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -16821,38 +16824,38 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.11.0.tgz", - "integrity": "sha512-EPvC/bU2n1LKtzKWP1AjGWkp7r8tJ8giVlZHIODo6q7SAd6J+/9vjtEKHK2G/Qp+D2IGPsQge+oadDR3CZcFtQ==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.17.0.tgz", + "integrity": "sha512-U4sM5z0/ymSYqQT6I7lz8l0ZZ9zrya5VIwrwAP5WOJVabVtVsIpTMxPQe+D3qLyePT+VlETUTO2nA1+PufPx9Q==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.11.0" + "@typescript-eslint/utils": "5.17.0" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", - "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", + "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", "dev": true, "requires": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0" + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0" } }, "@typescript-eslint/types": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", - "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", + "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", - "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", + "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -16861,78 +16864,78 @@ } }, "@typescript-eslint/utils": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.11.0.tgz", - "integrity": "sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", + "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/typescript-estree": "5.11.0", + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", - "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", + "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/types": "5.17.0", "eslint-visitor-keys": "^3.0.0" } } } }, "@typescript-eslint/parser": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", - "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.21.0.tgz", + "integrity": "sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", + "@typescript-eslint/scope-manager": "5.21.0", + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/typescript-estree": "5.21.0", "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", - "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz", + "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0" + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0" } }, "@typescript-eslint/type-utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz", - "integrity": "sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz", + "integrity": "sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.15.0", + "@typescript-eslint/utils": "5.21.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", - "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz", + "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", - "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz", + "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0", + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/visitor-keys": "5.21.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -16941,26 +16944,26 @@ } }, "@typescript-eslint/utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.15.0.tgz", - "integrity": "sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.21.0.tgz", + "integrity": "sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", + "@typescript-eslint/scope-manager": "5.21.0", + "@typescript-eslint/types": "5.21.0", + "@typescript-eslint/typescript-estree": "5.21.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", - "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz", + "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/types": "5.21.0", "eslint-visitor-keys": "^3.0.0" } }, @@ -19328,9 +19331,9 @@ } }, "eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -19338,14 +19341,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "dependencies": { "debug": { @@ -19366,6 +19369,15 @@ "esutils": "^2.0.2" } }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -20196,9 +20208,9 @@ "dev": true }, "html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", "dev": true }, "http-cache-semantics": { @@ -20968,9 +20980,9 @@ "dev": true }, "karma": { - "version": "6.3.17", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.17.tgz", - "integrity": "sha512-2TfjHwrRExC8yHoWlPBULyaLwAFmXmxQrcuFImt/JsAsSZu1uOWTZ1ZsWjqQtWpHLiatJOHL5jFjXSJIgCd01g==", + "version": "6.3.19", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.19.tgz", + "integrity": "sha512-NDhWckzES/Y9xMiddyU1RzaKL76/scCsu8Mp0vR0Z3lQRvC3p72+Ab4ppoxs36S9tyPNX5V48yvaV++RNEBPZw==", "dev": true, "requires": { "@colors/colors": "1.5.0", @@ -20992,7 +21004,7 @@ "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^4.2.0", + "socket.io": "^4.4.1", "source-map": "^0.6.1", "tmp": "^0.2.1", "ua-parser-js": "^0.7.30", @@ -21067,43 +21079,23 @@ } }, "karma-coverage": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.1.1.tgz", - "integrity": "sha512-oxeOSBVK/jdZsiX03LhHQkO4eISSQb5GbHi6Nsw3Mw7G4u6yUgacBAftnO7q+emPBLMsrNbz1pGIrj+Jb3z17A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.0.tgz", + "integrity": "sha512-gPVdoZBNDZ08UCzdMHHhEImKrw1+PAOQOIiffv1YsvxFhBjqvo/SVXNk4tqn1SYqX0BJZT6S/59zgxiBe+9OuA==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-instrument": "^5.1.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.1", "istanbul-reports": "^3.0.5", "minimatch": "^3.0.4" - }, - "dependencies": { - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } } }, "karma-jasmine": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", - "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.2.tgz", + "integrity": "sha512-ggi84RMNQffSDmWSyyt4zxzh2CQGwsxvYYsprgyR1j8ikzIduEdOlcLvXjZGwXG/0j41KUXOWsUCBfbEHPWP9g==", "dev": true, "requires": { "jasmine-core": "^3.6.0" @@ -21507,13 +21499,13 @@ "dev": true }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "mime": { @@ -22876,9 +22868,9 @@ "requires": {} }, "postcss-scss": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.3.tgz", - "integrity": "sha512-j4KxzWovfdHsyxwl1BxkUal/O4uirvHgdzMKS1aWJBAV0qh2qj5qAZqpeBfVUYGWv+4iK9Az7SPyZ4fyNju1uA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.4.tgz", + "integrity": "sha512-aBBbVyzA8b3hUL0MGrpydxxXKXFZc5Eqva0Q3V9qsBOLEMsjb6w49WfpsoWzpEgcqJGW4t7Rio8WXVU9Gd8vWg==", "dev": true, "requires": {} }, @@ -22892,9 +22884,9 @@ } }, "postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -24027,9 +24019,9 @@ "dev": true }, "stylelint": { - "version": "14.6.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.6.1.tgz", - "integrity": "sha512-FfNdvZUZdzh9KDQxDnO7Opp+prKh8OQVuSW8S13cBtxrooCbm6J6royhUeb++53WPMt04VB+ZbOz/QmzAijs6Q==", + "version": "14.8.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.8.1.tgz", + "integrity": "sha512-0YxTop3wTeEVmQWhS7jjLFaBkvfPmffRiJ6eFIDlK++f3OklaobTYFJu32E5u/cIrFLbcW52pLqrYpihA/y0/w==", "dev": true, "requires": { "balanced-match": "^2.0.0", @@ -24045,7 +24037,7 @@ "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", - "html-tags": "^3.1.0", + "html-tags": "^3.2.0", "ignore": "^5.2.0", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", @@ -24053,7 +24045,7 @@ "known-css-properties": "^0.24.0", "mathml-tag-names": "^2.1.3", "meow": "^9.0.0", - "micromatch": "^4.0.4", + "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "normalize-selector": "^0.2.0", "picocolors": "^1.0.0", @@ -24061,7 +24053,7 @@ "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.9", + "postcss-selector-parser": "^6.0.10", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "specificity": "^0.4.1", @@ -24375,9 +24367,9 @@ "dev": true }, "three": { - "version": "0.138.3", - "resolved": "https://registry.npmjs.org/three/-/three-0.138.3.tgz", - "integrity": "sha512-4t1cKC8gimNyJChJbaklg8W/qj3PpsLJUIFm5LIuAy/hVxxNm1ru2FGTSfbTSsuHmC/7ipsyuGKqrSAKLNtkzg==" + "version": "0.140.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.140.0.tgz", + "integrity": "sha512-jcHjbnYspPLDdsDQChmzyAoZ5KhJbgFk6pNGlAIc9fQMvsfPGjF5H9glrngqvb2CR/qXcClMyp5PYdF996lldA==" }, "through": { "version": "2.3.8", @@ -24434,14 +24426,14 @@ "dev": true }, "tsconfig-paths": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz", - "integrity": "sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "requires": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.0", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" }, "dependencies": { @@ -24457,9 +24449,9 @@ } }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "tsutils": { "version": "3.21.0", diff --git a/package.json b/package.json index e2eef68..f8a6602 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "prague-clock", - "version": "1.5.0", + "version": "1.6.1", "scripts": { "ng": "ng", "start": "ng serve --configuration=development", @@ -33,44 +33,44 @@ "@fortawesome/free-solid-svg-icons": "^6.1.1", "@tubular/astronomy": "^3.1.0", "@tubular/math": "^3.1.0", - "@tubular/ng-widgets": "^2.1.1", + "@tubular/ng-widgets": "^2.1.2", "@tubular/time": "^3.8.1", - "@tubular/util": "^4.7.1", + "@tubular/util": "^4.9.1", "primeicons": "^5.0.0", "primeng": "^13.3.3", "rxjs": "~7.5.0", - "three": "^0.138.3", - "tslib": "^2.3.0", - "zone.js": "~0.11.4" + "three": "^0.140.0", + "tslib": "^2.4.0", + "zone.js": "~0.11.5" }, "devDependencies": { "@angular-devkit/build-angular": "~13.2.5", - "@angular-eslint/eslint-plugin": "^13.1.0", - "@angular-eslint/eslint-plugin-template": "^13.1.0", - "@angular-eslint/template-parser": "^13.1.0", + "@angular-eslint/eslint-plugin": "^13.2.1", + "@angular-eslint/eslint-plugin-template": "^13.2.1", + "@angular-eslint/template-parser": "^13.2.1", "@angular/cli": "~13.2.5", "@angular/compiler-cli": "~13.2.0", "@angular/localize": "^13.2.7", - "@types/jasmine": "~3.10.0", - "@types/node": "^12.11.1", - "@types/three": "^0.138.0", - "@typescript-eslint/eslint-plugin": "^5.9.1", - "@typescript-eslint/parser": "^5.9.1", + "@types/jasmine": "~3.10.6", + "@types/node": "^12.20.50", + "@types/three": "^0.139.0", + "@typescript-eslint/eslint-plugin": "^5.21.0", + "@typescript-eslint/parser": "^5.21.0", "eslint": "^7.32.0", "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.25.4", + "eslint-plugin-import": "^2.26.0", "eslint-plugin-jasmine": "^4.1.3", "eslint-plugin-node": "^11.1.0", "jasmine-core": "~4.0.0", - "karma": "~6.3.0", - "karma-chrome-launcher": "~3.1.0", - "karma-coverage": "~2.1.0", - "karma-jasmine": "~4.0.0", + "karma": "~6.3.19", + "karma-chrome-launcher": "~3.1.1", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~4.0.2", "karma-jasmine-html-reporter": "~1.7.0", - "postcss-scss": "^4.0.3", - "stylelint": "^14.6.1", + "postcss-scss": "^4.0.4", + "stylelint": "^14.8.1", "stylelint-config-standard": "^25.0.0", "stylelint-scss": "^4.2.0", - "typescript": "~4.5.2" + "typescript": "~4.5.5" } } diff --git a/src/app/app.component.html b/src/app/app.component.html index 265a280..63d2d9b 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,666 +1,672 @@ - -
- -
- {{ zoneOffset }} - {{ localTime }} - Local mean time: - {{ localMeanTime }} - Local solar time: - {{ localSolarTime }} - Sidereal time: - {{ siderealTime }} - Bohemian time: - {{ bohemianTime }} - Sun rise/set: - {{ sunrise }} • {{ sunset }} - Moon rise/set: - {{ moonrise }} • {{ moonset }} +
+
+ + + + + +
+ {{placeName}} + No name provided + +   + + +
-
- Last virtual recalibration: {{ lastRecalibration }} +
+ + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 ActualOrlojΔ
Sun λ{{ true_sunAngle.orig | number: '1.0-0' }}° {{ toZodiac(true_sunAngle.orig) }}{{ sunAngle.orig | number: '1.0-0' }}°{{ errorSun | number: '1.1-1' }}°, {{ errorSunMinutes | number: '1.1-1' }} - mins
Moon λ{{ true_moonAngle.orig | number: '1.0-0' }}° {{ toZodiac(true_moonAngle.orig) }}{{ moonAngle.orig | number: '1.0-0' }}°{{ errorMoon | number: '1.1-1' }}°, {{ errorMoonDays | number: '1.1-1' }} - days
Moon phase{{ true_moonPhase | number: '1.0-0' }}°{{ moonPhase | number: '1.0-0' }}°{{ errorPhase | number: '1.1-1' }}°, {{ errorPhaseDays | number: '1.1-1' }} - days
-
- +
+ + +
+ +
+    + + + + +
+
+ + +
+
{{timeText}}
-
- - - - - -
- {{placeName}} - No name provided - -   - - - -
-
- - - -
-
- - +
- -
-    - - - - -
-
- - -
-
{{timeText}}
- - -
- +
+ +
-
- -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - ɐɑɒɓɔ - - - - - ɜɝɞɟɠɡ - - - - - ɕɖɗɘəɚɛ - - - - - ɢɣɤɥɦɧɨɩɪɫɬ - - - - - SOL       NOCTIS - - - - - - CIRCVLVS AEQVINOCTII + + + + + + + + + + + + + + + + + + + + + + + ɐɑɒɓɔ - - - - CIRCVLVS        CANCRI - - - - - CIRCVLVS CAPRICORNI - - - - - - - CIRCVLVS         CAPRICORNI - - - - - CIRCVLVS CANCRI + + + ɜɝɞɟɠɡ + + + + + ɕɖɗɘəɚɛ + + + + + ɢɣɤɥɦɧɨɩɪɫɬ + + + + + SOL       NOCTIS + + + + + + CIRCVLVS AEQVINOCTII + + + + CIRCVLVS        CANCRI + + + + + CIRCVLVS CAPRICORNI + + + + + + + CIRCVLVS         CAPRICORNI + + + + + CIRCVLVS CANCRI + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - + - -
+ +
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + - - - - + + + + - - - + - - - - - - - - - - - - - - - - ♈︎ - - - ♉︎ - - - ♊︎ - - - ♋︎ - - - ♌︎ - - - ♍︎ - - - ♎︎ - - - ♏︎ - - - ♐︎ - - - ♑︎ + + + + + + + + + + + + + + + + + + - - ♒︎ + + + ♈︎ + + + ♉︎ + + + ♊︎ + + + ♋︎ + + + ♌︎ + + + ♍︎ + + + ♎︎ + + + ♏︎ + + + ♐︎ + + + ♑︎ + + + ♒︎ + + + ♓︎ + - - ♓︎ + + + ♈︎ + + + ♉︎ + + + ♊︎ + + + ♋︎ + + + ♌︎ + + + ♍︎ + + + ♎︎ + + + ♏︎ + + + ♐︎ + + + ♑︎ + + + ♒︎ + + + ♓︎ + - - - ♈︎ - - - ♉︎ - - - ♊︎ - - - ♋︎ - - - ♌︎ - - - ♍︎ - - - ♎︎ - - - ♏︎ - - - ♐︎ - - - ♑︎ - - - ♒︎ - - - ♓︎ + + + + + + + + + + - - - - - - - - - + + + + + + + + - - - + - - - + + + + + + + + - - - - - - - - - + + + + + + - - - + - - - + + + + + + {{ true_sunAngle.orig | number: '1.1-1' }}° + + + - + - - - - - - - - {{ true_sunAngle.orig | number: '1.1-1' }}° - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{ true_moonAngle.orig | number: '1.1-1' }}° - + + + + + + + + + + + + + + + + + + + {{ true_moonAngle.orig | number: '1.1-1' }}° + + - - - - - {{ mercuryAngle.orig | number: '1.1-1' }}° - - - - - - {{ venusAngle.orig | number: '1.1-1' }}° - - - - - - {{ marsAngle.orig | number: '1.1-1' }}° - - - - - - {{ jupiterAngle.orig | number: '1.1-1' }}° - - - - - - {{ saturnAngle.orig | number: '1.1-1' }}° - - - - - - {{ true_sunAngle.orig | number: '1.1-1' }}° - - - - - - {{ true_moonAngle.orig | number: '1.1-1' }}° - - - + + + + {{ mercuryAngle.orig | number: '1.1-1' }}° + + + + + + {{ venusAngle.orig | number: '1.1-1' }}° + + + + + + {{ marsAngle.orig | number: '1.1-1' }}° + + + + + + {{ jupiterAngle.orig | number: '1.1-1' }}° + + + + + + {{ saturnAngle.orig | number: '1.1-1' }}° + + + + + + {{ true_sunAngle.orig | number: '1.1-1' }}° + + + + + + {{ true_moonAngle.orig | number: '1.1-1' }}° + + + + - - + +
-
- +
+
+ +
+ {{ zoneOffset }} + {{ localTime }} + Local mean time: + {{ localMeanTime }} + Local solar time: + {{ localSolarTime }} + Sidereal time: + {{ siderealTime }} + Bohemian time: + {{ bohemianTime }} + Sun rise/set: + {{ sunrise }} • {{ sunset }} + Moon rise/set: + {{ moonrise }} • {{ moonset }} +
+
+ Last virtual recalibration: {{ lastRecalibration }} +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 ActualOrlojΔ
Sun λ{{ true_sunAngle.orig | number: '1.0-0' }}° {{ toZodiac(true_sunAngle.orig) }}{{ sunAngle.orig | number: '1.0-0' }}°{{ errorSun | number: '1.1-1' }}°, {{ errorSunMinutes | number: '1.1-1' }} + mins
Moon λ{{ true_moonAngle.orig | number: '1.0-0' }}° {{ toZodiac(true_moonAngle.orig) }}{{ moonAngle.orig | number: '1.0-0' }}°{{ errorMoon | number: '1.1-1' }}°, {{ errorMoonDays | number: '1.1-1' }} + days
Moon phase{{ true_moonPhase | number: '1.0-0' }}°{{ moonPhase | number: '1.0-0' }}°{{ errorPhase | number: '1.1-1' }}°, {{ errorPhaseDays | number: '1.1-1' }} + days
+
-
-
Original SVG clock graphics by Jan Tošovský
+
Original SVG clock graphics by Jan Tošovský
- - + + +
diff --git a/src/app/app.component.scss b/src/app/app.component.scss index 556ddad..41e1924 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -1,14 +1,22 @@ @import "../colors"; -:host { +.wrapper { box-sizing: border-box; display: grid; font-family: Horologium, NoEmojiAstronomy, sans-serif; gap: 12px; - grid-template-columns: 1fr auto; + grid-template-columns: 1fr 400px; min-height: var(--mfvh); place-items: center; padding: 8px; + + &.collapsed { + grid-template-columns: 1fr 160px; + } + + &.narrow { + grid-template-columns: 1fr auto; + } } p-toast, p-confirmDialog { @@ -25,6 +33,7 @@ p-toast, p-confirmDialog { font: 14px Arial, sans-serif; gap: 4px; grid-area: 1 / 2; + justify-self: end; min-height: 400px; min-width: 400px; padding: 1em 0.5em; @@ -134,17 +143,40 @@ p-toast, p-confirmDialog { } i.pi-info-circle { + background: inherit; bottom: 0; cursor: pointer; + display: block; padding: 0.5em; position: absolute; right: 0; - opacity: 1; - transition: opacity 0.5s ease-in-out; &.collapsed { - opacity: 0; - pointer-events: none; + padding: 0.5em 0 0.5em 0.5em; + right: 1.5em; + top: 0; + width: 2em; + } + } + + .time-text { + background: inherit; + bottom: 0; + display: none; + font: 14px Verdana, sans-serif; + font-variant-numeric: tabular-nums; + padding: 0.5em 0 0.5em 0.5em; + position: absolute; + right: 4em; + top: 0; + white-space: nowrap; + + &.collapsed { + display: block; + } + + &.track-time { + color: #0A0; } } @@ -176,27 +208,6 @@ p-toast, p-confirmDialog { margin: 0.5em 0; } - .time-text { - background: inherit; - bottom: 0; - display: none; - font: 14px Verdana, sans-serif; - font-variant-numeric: tabular-nums; - padding: 0.5em 0 0.5em 0.5em; - position: absolute; - right: 2em; - top: 0; - white-space: nowrap; - - &.collapsed { - display: block; - } - - &.track-time { - color: #0A0; - } - } - #now { margin: -4px 0; } @@ -235,11 +246,23 @@ svg { &.controls-collapsed { height: calc(max(var(--mfvh) - 16px, 320px)); width: calc(min(max(var(--mfvh) - 16px, 320px), calc(100vw - 28px))); + + &.show-info-panel { + height: calc(min(max(var(--mfvh) - 16px, 320px), calc(100vw - 200px))); + width: calc(min(max(var(--mfvh) - 16px, 320px), calc(100vw - 200px))); + } } } #svg-wrapper { + align-self: start; + justify-self: start; position: relative; + + &.wide { + align-self: center; + justify-self: center; + } } .svg-overlay { @@ -250,12 +273,24 @@ svg { top: 0; } +.info-panel-overlay { + font-size: calc(14px * var(--font-scaler)); + position: static; + + &.expanded { + bottom: 0.5em; + position: fixed; + right: 0.5em; + } +} + .info-panel { background-color: $controls-background; border: 1px solid #999; box-sizing: border-box; color: $controls-text; - font: 14px NoEmojiAstronomy, Arial, sans-serif; + font-size: 1em; + font-family: NoEmojiAstronomy, Arial, sans-serif; max-width: 400px; padding: 0.5em 2.5em 0.5em 0.5em; position: relative; @@ -274,19 +309,19 @@ svg { .num { color: #64B5F6; - font: 12.5px NoEmojiAstronomy, Verdana, sans-serif; - min-width: 52px; + font: 0.9em NoEmojiAstronomy, Verdana, sans-serif; + min-width: 4.2em; white-space: nowrap; } .diff { color: #F63; - font: 12.5px Verdana, sans-serif; + font: 0.9em Verdana, sans-serif; white-space: nowrap; } .wide { - min-width: 125px; + min-width: 10.5em; } .recalibration { @@ -308,12 +343,6 @@ svg { } } -.svg-info-overlay { - bottom: 8px; - position: fixed; - right: 8px; -} - .below-control-panel { position: absolute; right: 0; @@ -342,14 +371,9 @@ svg { margin: -2px; } } - - .info-panel { - margin: -20px 13px; - transform: scale(0.9); - } } -@media screen and (max-height: 820px) { +@media screen and (max-height: 600px) { .info-panel { bottom: 8px; left: unset; @@ -368,22 +392,27 @@ svg { margin: -4px -40px; } } - - .info-panel { - margin: -40px 26px; - transform: scale(0.8); - } } @media screen and (orientation: portrait) { - :host { + .wrapper { grid-template-columns: auto; - grid-template-rows: auto 1fr; + grid-template-rows: auto 1fr auto; overflow: auto; + + &.collapsed, &.narrow { + grid-template-columns: auto; + } + } + + #svg-wrapper { + align-self: center; + justify-self: center; } .controls { grid-area: unset; + justify-self: center; &.collapsed { margin-left: 0; @@ -405,12 +434,17 @@ svg { svg { grid-area: unset; - height: calc(min(calc(100vw - 16px), calc(var(--mfvh) - 428px))); - width: calc(min(calc(100vw - 16px), calc(var(--mfvh) - 428px))); + height: calc(min(calc(100vw - 16px), calc(var(--mfvh) - 440px))); + width: calc(min(calc(100vw - 16px), calc(var(--mfvh) - 440px))); &.controls-collapsed { height: calc(max(min(var(--mfvh) - 28px - 2.25em, 100vw - 16px), 320px)); width: calc(max(min(var(--mfvh) - 28px - 2.25em, 100vw - 16px), 320px)); + + &.show-info-panel { + height: calc(max(min(var(--mfvh) - 40px - calc(260px * var(--font-scaler)) - 2.25em, 100vw - 16px), 320px)); + width: calc(max(min(var(--mfvh) - 40px - calc(260px * var(--font-scaler)) - 2.25em, 100vw - 16px), 320px)); + } } } @@ -420,8 +454,17 @@ svg { } @media screen and (orientation: landscape) { - .svg-info-overlay { - display: none; + .info-panel-overlay { + bottom: 0.5em; + position: fixed; + right: 0.5em; + } +} + +@media screen and (orientation: landscape) and (min-width: 740px) { + #svg-wrapper { + align-self: center; + justify-self: center; } } @@ -808,7 +851,7 @@ svg { } .handSymbol { - fill: #DCC393; + fill: #D6BD90; } .eclipticSymbol, @@ -820,7 +863,7 @@ svg { .sunBeamLargeSymbol, .sunBeamSmallSymbol { - fill: #DFC388; + fill: #D9BD88; } .baseCircle, diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 0b5f64e..5940724 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -2,7 +2,8 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { ConfirmationService, MenuItem, MessageService, PrimeNGConfig } from 'primeng/api'; import { abs, floor, max, min, mod, mod2 } from '@tubular/math'; import { - clone, extendDelimited, forEach, getCssValue, isEqual, isLikelyMobile, isObject, isSafari, processMillis + clone, extendDelimited, forEach, getCssValue, isAndroid, isEqual, isIOS, isLikelyMobile, isMacOS, isObject, isSafari, + processMillis } from '@tubular/util'; import { AngleStyle, DateTimeStyle, TimeEditorOptions } from '@tubular/ng-widgets'; import { @@ -18,16 +19,18 @@ import { faForward, faPlay, faStop } from '@fortawesome/free-solid-svg-icons'; import { AdvancedOptionsComponent, Appearance, SettingsHolder, Timing } from '../advanced-options/advanced-options.component'; import { - adjustForEclipticWheel, BasicPositions, calculateBasicPositions, calculateMechanicalPositions, MILLIS_PER_DAY, + adjustForEclipticWheel, AngleTriplet, BasicPositions, calculateBasicPositions, calculateMechanicalPositions, MILLIS_PER_DAY, solarSystem, ZeroAngles } from 'src/math/math'; import { adjustGraphicsForLatitude, initSvgHost, sunlitMoonPath, SvgHost } from 'src/svg/svg'; +import { sizeChanges } from '../main'; const { DATE, DATETIME_LOCAL, julianDay, TIME } = ttime; const RESUME_FILTERING_DELAY = 1000; -const START_FILTERING_DELAY = 500; -const STOP_FILTERING_DELAY = isSafari() ? 1000 : 3000; +const SIMPLE_FILTER_IS_SLOW_TOO = isAndroid() || (isSafari() && isMacOS()); +const STOP_FILTERING_DELAY = SIMPLE_FILTER_IS_SLOW_TOO ? 1000 : 3000; +const START_FILTERING_DELAY = SIMPLE_FILTER_IS_SLOW_TOO ? 1000 : 500; const RECOMPUTED_WHEN_NEEDED: null = null; enum EventType { EQUISOLSTICE, MOON_PHASE, RISE_SET } @@ -176,6 +179,7 @@ export class AppComponent implements OnInit, SettingsHolder, SvgHost { private playTimeBase: number; private playTimeProcessBase: number; private _realPositionMarkers = false; + private _showInfoPanel = false; private sunsetA: AstroEvent = null; private sunsetB: AstroEvent = null; private _suppressOsKeyboard = false; @@ -260,7 +264,6 @@ export class AppComponent implements OnInit, SettingsHolder, SvgHost { saturnAngle = ZeroAngles; showAllErrors = false; showErrors = false; - showInfoPanel = false; showLanguageMenu = false; showRecalibration = false; siderealAngle = 0; @@ -292,7 +295,8 @@ export class AppComponent implements OnInit, SettingsHolder, SvgHost { } get filterRelief(): string { - return this.fasterGraphics && (!this.svgFilteringOn || this.playing) ? null : 'url("#filterRelief")'; + return this.fasterGraphics && (!this.svgFilteringOn || this.playing) ? + (SIMPLE_FILTER_IS_SLOW_TOO ? null : 'url("#filterReliefSimple")') : 'url("#filterRelief")'; } constructor( @@ -304,7 +308,7 @@ export class AppComponent implements OnInit, SettingsHolder, SvgHost { let settings: any; - if (isLikelyMobile()) { + if (isLikelyMobile() || isIOS()) { this.menuItems.push({ separator: true }); this.menuItems.push({ label: $localize`Suppress onscreen keyboard`, icon: 'pi pi-circle', id: 'sok', command: (): boolean => this.suppressOsKeyboard = !this.suppressOsKeyboard }); @@ -326,6 +330,7 @@ export class AppComponent implements OnInit, SettingsHolder, SvgHost { } delete settings.hideMap; + delete settings.equatorialPositionMarkers; } catch { settings = null; @@ -369,6 +374,7 @@ export class AppComponent implements OnInit, SettingsHolder, SvgHost { docElem.style.setProperty('--mfvh', height + 'px'); docElem.style.setProperty('--mvh', (height * 0.01) + 'px'); + this.adjustFontScaling(); if (disallowScroll && (docElem.scrollTop !== 0 || docElem.scrollLeft !== 0)) { docElem.scrollTo(0, 0); @@ -382,24 +388,7 @@ export class AppComponent implements OnInit, SettingsHolder, SvgHost { }); }; - let lastW = window.innerWidth; - let lastH = window.innerHeight; - - const poll = (): void => { - const w = window.innerWidth; - const h = window.innerHeight; - const disallowScroll = docElem.style.overflow === 'hidden'; - - if (lastW !== w || lastH !== h || (disallowScroll && (docElem.scrollTop !== 0 || docElem.scrollLeft !== 0))) { - lastW = w; - lastH = h; - doResize(); - } - - setTimeout(poll, 100); - }; - - poll(); + sizeChanges.subscribe(() => doResize()); doResize(); setTimeout(() => document.getElementById('graphics-credit').style.opacity = '0', 15000); @@ -461,6 +450,7 @@ export class AppComponent implements OnInit, SettingsHolder, SvgHost { if ((document.activeElement as any)?.blur) (document.activeElement as any).blur(); + this.adjustFontScaling(); this.graphicsRateChangeCheck(true); this.saveSettings(); } @@ -471,6 +461,19 @@ export class AppComponent implements OnInit, SettingsHolder, SvgHost { } } + get showInfoPanel(): boolean { return this._showInfoPanel; } + set showInfoPanel(value: boolean) { + if (this._showInfoPanel !== value) { + this._showInfoPanel = value; + + if (this.initDone && this.collapsed) { + this.adjustFontScaling(); + this.graphicsRateChangeCheck(true); + this.saveSettings(); + } + } + } + get appearance(): Appearance { return this._appearance; } set appearance(value: Appearance) { if (this.appearance !== value) { @@ -516,6 +519,19 @@ export class AppComponent implements OnInit, SettingsHolder, SvgHost { } } + private adjustFontScaling(): void { + let fontScaler: number; + + if (window.innerHeight > window.innerWidth) + fontScaler = max(min(window.innerHeight / 1100, 1), 0.75); + else if (this.collapsed && window.innerWidth > 1100) + fontScaler = max(min(window.innerWidth / 600, window.innerHeight / 500, 1), 0.75); + else + fontScaler = max(min((window.innerWidth - 500) / 600, (window.innerHeight - 400) / 400, 1), 0.75); + + document.documentElement.style.setProperty('--font-scaler', fontScaler.toPrecision(3)); + } + private clearTimingReferenceIfNeeded(): void { if (this.timing !== Timing.MODERN) this.timingReference = RECOMPUTED_WHEN_NEEDED; @@ -975,7 +991,11 @@ export class AppComponent implements OnInit, SettingsHolder, SvgHost { } rotate(angle: number): string { - return `rotate(${angle})`; + return `rotate(${angle * this.rotateSign})`; + } + + reorient(angle: AngleTriplet): string { + return isSafari() ? null : `rotate(${(90 - angle.orig - angle.oe) * this.rotateSign})`; } sunlitMoonPath(): string { @@ -1107,7 +1127,7 @@ export class AppComponent implements OnInit, SettingsHolder, SvgHost { detail: $localize`Event outside of ${this.MIN_YEAR}-${this.MAX_YEAR} year range.` }); else { this.time = evt.eventTime.utcMillis; - this.messageService.add({ severity: 'info', summary: $localize`Event`, detail: eventText }); + this.messageService.add({ severity: 'info', summary: $localize`Event`, detail: eventText, life: 1000 }); } } } diff --git a/src/assets/AppleZodiac.ttf b/src/assets/AppleZodiac.ttf new file mode 100644 index 0000000..3296598 Binary files /dev/null and b/src/assets/AppleZodiac.ttf differ diff --git a/src/locales/messages.cs.xlf b/src/locales/messages.cs.xlf index ca9be4f..3236443 100644 --- a/src/locales/messages.cs.xlf +++ b/src/locales/messages.cs.xlf @@ -130,12 +130,60 @@ 39 + + No name provided + Nebylo uvedeno žádné jméno + + src/app/app.component.html + 13 + + + + Uncheck "Track current time" to modify the time + Chcete-li čas upravit, zrušte zaškrtnutí políčka „Sledujte aktuální čas“. + + src/app/app.component.html + 30 + + + + ISO time format + Formát času ISO + + src/app/app.component.html + 42 + + + + Disable DST on clock + Zakázat letní čas na orloji + + src/app/app.component.html + 44 + + + + Track current time + Sledujte aktuální čas + + src/app/app.component.html + 50 + + + + Now + Nyní + + src/app/app.component.html + 51 + + Local mean time: Místní střední čas: src/app/app.component.html - 7 + 612 @@ -143,7 +191,7 @@ Místní sluneční čas: src/app/app.component.html - 9 + 614 @@ -151,7 +199,7 @@ Hvězdný čas: src/app/app.component.html - 11 + 616 @@ -159,7 +207,7 @@ Staročeský čas: src/app/app.component.html - 13 + 618 @@ -167,7 +215,7 @@ Východ/západ slunce src/app/app.component.html - 15 + 620 @@ -175,7 +223,7 @@ Východ/západ Měsíce: src/app/app.component.html - 17 + 622 @@ -183,7 +231,7 @@ Poslední virtuální rekalibrace: src/app/app.component.html - 21 + 626 @@ -191,7 +239,7 @@ Skutečný src/app/app.component.html - 27 + 632 @@ -199,7 +247,7 @@ Slunce λ src/app/app.component.html - 33 + 638 @@ -207,7 +255,7 @@ minut src/app/app.component.html - 38 + 643 @@ -215,7 +263,7 @@ Měsíc λ src/app/app.component.html - 42 + 647 @@ -223,11 +271,11 @@ dní src/app/app.component.html - 47 + 652 src/app/app.component.html - 56 + 661 @@ -235,55 +283,7 @@ Fáze Měsíce src/app/app.component.html - 51 - - - - No name provided - Nebylo uvedeno žádné jméno - - src/app/app.component.html - 74 - - - - Uncheck "Track current time" to modify the time - Chcete-li čas upravit, zrušte zaškrtnutí políčka „Sledujte aktuální čas“. - - src/app/app.component.html - 91 - - - - ISO time format - Formát času ISO - - src/app/app.component.html - 103 - - - - Disable DST on clock - Zakázat letní čas na orloji - - src/app/app.component.html - 105 - - - - Track current time - Sledujte aktuální čas - - src/app/app.component.html - 111 - - - - Now - Nyní - - src/app/app.component.html - 112 + 656 @@ -291,7 +291,7 @@ Originální grafika orloje SVG od Jana Tošovského src/app/app.component.html - 663 + 668 @@ -299,7 +299,7 @@ Změňte čas src/app/app.component.html - 666 + 671 @@ -307,7 +307,7 @@ Praha, CZE src/app/app.component.ts - 38 + 41 @@ -315,7 +315,7 @@ Výchozí src/app/app.component.ts - 113 + 116 @@ -323,7 +323,7 @@ ↔ Rovnodennost/slunovrat src/app/app.component.ts - 191 + 195 @@ -331,7 +331,7 @@ ↔ Fáze Měsíce src/app/app.component.ts - 193 + 197 @@ -339,7 +339,7 @@ ↔ Východ/kulminace/západ slunce src/app/app.component.ts - 195 + 199 @@ -347,7 +347,7 @@ Pokročilé možnosti... src/app/app.component.ts - 198 + 202 @@ -355,7 +355,7 @@ Jazyk / Language src/app/app.component.ts - 202 + 206 @@ -363,7 +363,7 @@ Kód na GitHubu src/app/app.component.ts - 206 + 210 @@ -371,7 +371,7 @@ Stránky Českého spolku horologického src/app/app.component.ts - 208 + 212 @@ -379,7 +379,7 @@ O skutečném orloji src/app/app.component.ts - 210 + 214 @@ -387,7 +387,7 @@ https://cs.wikipedia.org/wiki/Staroměstský_orloj src/app/app.component.ts - 211 + 215 Language-specific Wikipedia URL @@ -396,7 +396,7 @@ O tomto simulátoru src/app/app.component.ts - 213 + 217 @@ -404,7 +404,7 @@ Potlačit klávesnici na obrazovce src/app/app.component.ts - 309 + 313 @@ -412,7 +412,7 @@ Ano src/app/app.component.ts - 345 + 350 for dialog button @@ -421,7 +421,7 @@ Ne src/app/app.component.ts - 346 + 351 for dialog button @@ -430,7 +430,7 @@ Vypnout "Sledujte aktuální čas", abyste mohli upravovat čas? src/app/app.component.ts - 990 + 1010 @@ -438,7 +438,7 @@ Vypnout "Sledujte aktuální čas" a změnit čas? src/app/app.component.ts - 1065 + 1085 @@ -446,11 +446,11 @@ Událos src/app/app.component.ts - 1106 + 1126 src/app/app.component.ts - 1110 + 1130 @@ -458,7 +458,7 @@ Událost mimo rozsah let -. src/app/app.component.ts - 1107 + 1127 @@ -466,7 +466,7 @@ Východ slunce src/app/app.component.ts - 1117 + 1137 @@ -474,7 +474,7 @@ Západ slunce src/app/app.component.ts - 1119 + 1139 @@ -482,7 +482,7 @@ Kulminace src/app/app.component.ts - 1121 + 1141 @@ -490,7 +490,7 @@ Jarní rovnodennost src/app/app.component.ts - 1123 + 1143 @@ -498,7 +498,7 @@ Letní slunovrat src/app/app.component.ts - 1125 + 1145 @@ -506,7 +506,7 @@ Podzimní rovnodennost src/app/app.component.ts - 1127 + 1147 @@ -514,7 +514,7 @@ Zimní slunovrat src/app/app.component.ts - 1129 + 1149 @@ -522,7 +522,7 @@ Nový měsíc src/app/app.component.ts - 1131 + 1151 @@ -530,7 +530,7 @@ První čtvrt měsíc* src/app/app.component.ts - 1133 + 1153 @@ -538,7 +538,7 @@ Úplněk src/app/app.component.ts - 1135 + 1155 @@ -546,7 +546,7 @@ Třetí čtvrt měsíce src/app/app.component.ts - 1137 + 1157 @@ -766,4 +766,4 @@ - + \ No newline at end of file diff --git a/src/locales/messages.de.xlf b/src/locales/messages.de.xlf index 1f39290..71f09da 100644 --- a/src/locales/messages.de.xlf +++ b/src/locales/messages.de.xlf @@ -130,12 +130,60 @@ 39 + + No name provided + Kein Name angegeben + + src/app/app.component.html + 13 + + + + Uncheck "Track current time" to modify the time + Deaktivieren Sie "Aktuelle Zeit verfolgen", um die Zeit zu ändern + + src/app/app.component.html + 30 + + + + ISO time format + ISO-Zeitformat + + src/app/app.component.html + 42 + + + + Disable DST on clock + Deaktivieren DST auf der Uhr + + src/app/app.component.html + 44 + + + + Track current time + Aktuelle Uhrzeit verfolgen + + src/app/app.component.html + 50 + + + + Now + Jetzt + + src/app/app.component.html + 51 + + Local mean time: Lokale mittlere Zeit: src/app/app.component.html - 7 + 612 @@ -143,7 +191,7 @@ Lokale Sonnenzeit: src/app/app.component.html - 9 + 614 @@ -151,7 +199,7 @@ Sternzeit: src/app/app.component.html - 11 + 616 @@ -159,7 +207,7 @@ Böhmische Zeit: src/app/app.component.html - 13 + 618 @@ -167,7 +215,7 @@ Sonnenaufgang/-untergang: src/app/app.component.html - 15 + 620 @@ -175,7 +223,7 @@ Mondaufgang/-untergang: src/app/app.component.html - 17 + 622 @@ -183,7 +231,7 @@ Letzte virtuelle Neukalibrierung: src/app/app.component.html - 21 + 626 @@ -191,7 +239,7 @@ Tatsächlich src/app/app.component.html - 27 + 632 @@ -199,7 +247,7 @@ Sonne λ src/app/app.component.html - 33 + 638 @@ -207,7 +255,7 @@ Min src/app/app.component.html - 38 + 643 @@ -215,7 +263,7 @@ Mond λ src/app/app.component.html - 42 + 647 @@ -223,11 +271,11 @@ Tage src/app/app.component.html - 47 + 652 src/app/app.component.html - 56 + 661 @@ -235,55 +283,7 @@ Mond Phase src/app/app.component.html - 51 - - - - No name provided - Kein Name angegeben - - src/app/app.component.html - 74 - - - - Uncheck "Track current time" to modify the time - Deaktivieren Sie "Aktuelle Zeit verfolgen", um die Zeit zu ändern - - src/app/app.component.html - 91 - - - - ISO time format - ISO-Zeitformat - - src/app/app.component.html - 103 - - - - Disable DST on clock - Deaktivieren DST auf der Uhr - - src/app/app.component.html - 105 - - - - Track current time - Aktuelle Uhrzeit verfolgen - - src/app/app.component.html - 111 - - - - Now - Jetzt - - src/app/app.component.html - 112 + 656 @@ -291,7 +291,7 @@ Originale SVG-Uhrengrafik von Jan Tošovský src/app/app.component.html - 663 + 668 @@ -299,7 +299,7 @@ Zeit ändern src/app/app.component.html - 666 + 671 @@ -307,7 +307,7 @@ Prag, CZE src/app/app.component.ts - 38 + 41 @@ -315,7 +315,7 @@ Default src/app/app.component.ts - 113 + 116 @@ -323,7 +323,7 @@ ↔ Tagundnachtgleiche/Sonnenwende src/app/app.component.ts - 191 + 195 @@ -331,7 +331,7 @@ ↔ Mondphase src/app/app.component.ts - 193 + 197 @@ -339,7 +339,7 @@ ↔ Sonnenaufgang/Sonnenuntergang src/app/app.component.ts - 195 + 199 @@ -347,7 +347,7 @@ Erweiterte Optionen... src/app/app.component.ts - 198 + 202 @@ -355,7 +355,7 @@ Sprache / Language src/app/app.component.ts - 202 + 206 @@ -363,7 +363,7 @@ Code auf GitHub src/app/app.component.ts - 206 + 210 @@ -371,7 +371,7 @@ Tschechische Uhrengesellschaft src/app/app.component.ts - 208 + 212 @@ -379,7 +379,7 @@ Über die echte Uhr src/app/app.component.ts - 210 + 214 @@ -387,7 +387,7 @@ https://de.wikipedia.org/wiki/Prager_Rathausuhr src/app/app.component.ts - 211 + 215 Language-specific Wikipedia URL @@ -396,7 +396,7 @@ Über diesen Simulator src/app/app.component.ts - 213 + 217 @@ -404,7 +404,7 @@ Bildschirmtastatur unterdrücken src/app/app.component.ts - 309 + 313 @@ -412,7 +412,7 @@ Ja src/app/app.component.ts - 345 + 350 for dialog button @@ -421,7 +421,7 @@ Nein src/app/app.component.ts - 346 + 351 for dialog button @@ -430,7 +430,7 @@ "Aktuelle Uhrzeit verfolgen" deaktivieren, damit Sie die Zeit bearbeiten können? src/app/app.component.ts - 990 + 1010 @@ -438,7 +438,7 @@ "Aktuelle Uhrzeit verfolgen" deaktivieren und die Uhrzeit ändern? src/app/app.component.ts - 1065 + 1085 @@ -446,11 +446,11 @@ Vorfall src/app/app.component.ts - 1106 + 1126 src/app/app.component.ts - 1110 + 1130 @@ -458,7 +458,7 @@ Ereignis außerhalb des Zeitraums von bis Jahren. src/app/app.component.ts - 1107 + 1127 @@ -466,7 +466,7 @@ Sonnenaufgang src/app/app.component.ts - 1117 + 1137 @@ -474,7 +474,7 @@ Sonnenuntergang src/app/app.component.ts - 1119 + 1139 @@ -482,7 +482,7 @@ Transit src/app/app.component.ts - 1121 + 1141 @@ -490,7 +490,7 @@ Frühlings-Tagundnachtgleiche src/app/app.component.ts - 1123 + 1143 @@ -498,7 +498,7 @@ Sommersonnenwende src/app/app.component.ts - 1125 + 1145 @@ -506,7 +506,7 @@ Herbsttagundnachtgleiche src/app/app.component.ts - 1127 + 1147 @@ -514,7 +514,7 @@ Wintersonnenwende src/app/app.component.ts - 1129 + 1149 @@ -522,7 +522,7 @@ Neumond src/app/app.component.ts - 1131 + 1151 @@ -530,7 +530,7 @@ Mond im ersten Viertel src/app/app.component.ts - 1133 + 1153 @@ -538,7 +538,7 @@ Vollmond src/app/app.component.ts - 1135 + 1155 @@ -546,7 +546,7 @@ Mond im dritten Viertel src/app/app.component.ts - 1137 + 1157 @@ -766,4 +766,4 @@ - + \ No newline at end of file diff --git a/src/locales/messages.es.xlf b/src/locales/messages.es.xlf index cd58391..54e2f11 100644 --- a/src/locales/messages.es.xlf +++ b/src/locales/messages.es.xlf @@ -130,12 +130,60 @@ 39 + + No name provided + Sin nombre proporcionado + + src/app/app.component.html + 13 + + + + Uncheck "Track current time" to modify the time + Desmarque "Rastrear la hora actual" para modificar la hora + + src/app/app.component.html + 30 + + + + ISO time format + Formato de hora ISO + + src/app/app.component.html + 42 + + + + Disable DST on clock + Desactivar DST en el reloj + + src/app/app.component.html + 44 + + + + Track current time + Seguir la hora actual + + src/app/app.component.html + 50 + + + + Now + Ahora + + src/app/app.component.html + 51 + + Local mean time: Hora media local: src/app/app.component.html - 7 + 612 @@ -143,7 +191,7 @@ Hora solar local: src/app/app.component.html - 9 + 614 @@ -151,7 +199,7 @@ Tiempo sideral: src/app/app.component.html - 11 + 616 @@ -159,7 +207,7 @@ Hora bohemia: src/app/app.component.html - 13 + 618 @@ -167,7 +215,7 @@ Salida/puesta del sol src/app/app.component.html - 15 + 620 @@ -175,7 +223,7 @@ Salida/puesta de la luna: src/app/app.component.html - 17 + 622 @@ -183,7 +231,7 @@ Última recalibración virtual: src/app/app.component.html - 21 + 626 @@ -191,7 +239,7 @@ Actual src/app/app.component.html - 27 + 632 @@ -199,7 +247,7 @@ Sol λ src/app/app.component.html - 33 + 638 @@ -207,7 +255,7 @@ min src/app/app.component.html - 38 + 643 @@ -215,7 +263,7 @@ Luna λ src/app/app.component.html - 42 + 647 @@ -223,11 +271,11 @@ dias src/app/app.component.html - 47 + 652 src/app/app.component.html - 56 + 661 @@ -235,55 +283,7 @@ Fase lunar src/app/app.component.html - 51 - - - - No name provided - Sin nombre proporcionado - - src/app/app.component.html - 74 - - - - Uncheck "Track current time" to modify the time - Desmarque "Rastrear la hora actual" para modificar la hora - - src/app/app.component.html - 91 - - - - ISO time format - Formato de hora ISO - - src/app/app.component.html - 103 - - - - Disable DST on clock - Desactivar DST en el reloj - - src/app/app.component.html - 105 - - - - Track current time - Seguir la hora actual - - src/app/app.component.html - 111 - - - - Now - Ahora - - src/app/app.component.html - 112 + 656 @@ -291,7 +291,7 @@ Gráficos de reloj originales de Jan Tošovský src/app/app.component.html - 663 + 668 @@ -299,7 +299,7 @@ Cambio de hora src/app/app.component.html - 666 + 671 @@ -307,7 +307,7 @@ Praga, CZE src/app/app.component.ts - 38 + 41 @@ -315,7 +315,7 @@ Defecto src/app/app.component.ts - 113 + 116 @@ -323,7 +323,7 @@ ↔ Equinoccio/solsticio src/app/app.component.ts - 191 + 195 @@ -331,7 +331,7 @@ ↔ Fase lunar src/app/app.component.ts - 193 + 197 @@ -339,7 +339,7 @@ ↔ Amanecer/tránsito/atardecer src/app/app.component.ts - 195 + 199 @@ -347,7 +347,7 @@ Opciones avanzadas... src/app/app.component.ts - 198 + 202 @@ -355,7 +355,7 @@ Idioma / Language src/app/app.component.ts - 202 + 206 @@ -363,7 +363,7 @@ Código en GitHub src/app/app.component.ts - 206 + 210 @@ -371,7 +371,7 @@ Sitio web de la Sociedad Relojera Checa src/app/app.component.ts - 208 + 212 @@ -379,7 +379,7 @@ Sobre el reloj real src/app/app.component.ts - 210 + 214 @@ -387,7 +387,7 @@ https://es.wikipedia.org/wiki/Reloj_Astron%C3%B3mico_de_Praga src/app/app.component.ts - 211 + 215 Language-specific Wikipedia URL @@ -396,7 +396,7 @@ Sobre este simulador src/app/app.component.ts - 213 + 217 @@ -404,7 +404,7 @@ Suprimir teclado en pantalla src/app/app.component.ts - 309 + 313 @@ -412,7 +412,7 @@ src/app/app.component.ts - 345 + 350 for dialog button @@ -421,7 +421,7 @@ No src/app/app.component.ts - 346 + 351 for dialog button @@ -430,7 +430,7 @@ ¿Desactivar "Rastrear la hora actual" para poder editar la hora? src/app/app.component.ts - 990 + 1010 @@ -438,7 +438,7 @@ ¿Desactivar "Rastrear la hora actual" y cambiar la hora del reloj? src/app/app.component.ts - 1065 + 1085 @@ -446,11 +446,11 @@ Evento src/app/app.component.ts - 1106 + 1126 src/app/app.component.ts - 1110 + 1130 @@ -458,7 +458,7 @@ Evento fuera del rango de años -. src/app/app.component.ts - 1107 + 1127 @@ -466,7 +466,7 @@ Amanecer src/app/app.component.ts - 1117 + 1137 @@ -474,7 +474,7 @@ Puesta de sol src/app/app.component.ts - 1119 + 1139 @@ -482,7 +482,7 @@ Tránsito src/app/app.component.ts - 1121 + 1141 @@ -490,7 +490,7 @@ Equinoccio de primavera src/app/app.component.ts - 1123 + 1143 @@ -498,7 +498,7 @@ Solsticio de verano src/app/app.component.ts - 1125 + 1145 @@ -506,7 +506,7 @@ Equinoccio de otoño src/app/app.component.ts - 1127 + 1147 @@ -514,7 +514,7 @@ Solsticio de invierno src/app/app.component.ts - 1129 + 1149 @@ -522,7 +522,7 @@ Luna nueva src/app/app.component.ts - 1131 + 1151 @@ -530,7 +530,7 @@ Primer cuarto src/app/app.component.ts - 1133 + 1153 @@ -538,7 +538,7 @@ Luna llena src/app/app.component.ts - 1135 + 1155 @@ -546,7 +546,7 @@ Tercer cuarto src/app/app.component.ts - 1137 + 1157 @@ -766,4 +766,4 @@ - + \ No newline at end of file diff --git a/src/locales/messages.fr.xlf b/src/locales/messages.fr.xlf index 24699ec..c6268b0 100644 --- a/src/locales/messages.fr.xlf +++ b/src/locales/messages.fr.xlf @@ -130,12 +130,60 @@ 39 + + No name provided + Aucun nom fourni + + src/app/app.component.html + 13 + + + + Uncheck "Track current time" to modify the time + Décochez "Suivre l'heure actuelle" pour modifier l'heure + + src/app/app.component.html + 30 + + + + ISO time format + Format d'heure ISO + + src/app/app.component.html + 42 + + + + Disable DST on clock + Désactiver DST sur l'horloge + + src/app/app.component.html + 44 + + + + Track current time + Suivre l'heure actuelle + + src/app/app.component.html + 50 + + + + Now + À présent + + src/app/app.component.html + 51 + + Local mean time: Heure moyenne locale: src/app/app.component.html - 7 + 612 @@ -143,7 +191,7 @@ Heure solaire locale: src/app/app.component.html - 9 + 614 @@ -151,7 +199,7 @@ Temps sidéral: src/app/app.component.html - 11 + 616 @@ -159,7 +207,7 @@ Heures bohémiennes: src/app/app.component.html - 13 + 618 @@ -167,7 +215,7 @@ Lever/coucher du soleil: src/app/app.component.html - 15 + 620 @@ -175,7 +223,7 @@ Lever/coucher de la lune: src/app/app.component.html - 17 + 622 @@ -183,7 +231,7 @@ Dernier recalibrage virtuel: src/app/app.component.html - 21 + 626 @@ -191,7 +239,7 @@ Réel src/app/app.component.html - 27 + 632 @@ -199,7 +247,7 @@ Soleil λ src/app/app.component.html - 33 + 638 @@ -207,7 +255,7 @@ min src/app/app.component.html - 38 + 643 @@ -215,7 +263,7 @@ Lune λ src/app/app.component.html - 42 + 647 @@ -223,11 +271,11 @@ jours src/app/app.component.html - 47 + 652 src/app/app.component.html - 56 + 661 @@ -235,55 +283,7 @@ Phase de lune src/app/app.component.html - 51 - - - - No name provided - Aucun nom fourni - - src/app/app.component.html - 74 - - - - Uncheck "Track current time" to modify the time - Décochez "Suivre l'heure actuelle" pour modifier l'heure - - src/app/app.component.html - 91 - - - - ISO time format - Format d'heure ISO - - src/app/app.component.html - 103 - - - - Disable DST on clock - Désactiver DST sur l'horloge - - src/app/app.component.html - 105 - - - - Track current time - Suivre l'heure actuelle - - src/app/app.component.html - 111 - - - - Now - À présent - - src/app/app.component.html - 112 + 656 @@ -291,7 +291,7 @@ Graphiques d'horloge SVG originaux par Jan Tošovský src/app/app.component.html - 663 + 668 @@ -299,7 +299,7 @@ Changer le temps src/app/app.component.html - 666 + 671 @@ -307,7 +307,7 @@ Prague, CZE src/app/app.component.ts - 38 + 41 @@ -315,7 +315,7 @@ Défaut src/app/app.component.ts - 113 + 116 @@ -323,7 +323,7 @@ ↔ Équinoxe/solstice src/app/app.component.ts - 191 + 195 @@ -331,7 +331,7 @@ ↔ Phase de lune src/app/app.component.ts - 193 + 197 @@ -339,7 +339,7 @@ ↔ Lever/transit/coucher du soleil src/app/app.component.ts - 195 + 199 @@ -347,7 +347,7 @@ Options avancées... src/app/app.component.ts - 198 + 202 @@ -355,7 +355,7 @@ Langue / Language src/app/app.component.ts - 202 + 206 @@ -363,7 +363,7 @@ Coder sur GitHub src/app/app.component.ts - 206 + 210 @@ -371,7 +371,7 @@ Société tchèque d'horlogerie src/app/app.component.ts - 208 + 212 @@ -379,7 +379,7 @@ A propos de la vraie horloge src/app/app.component.ts - 210 + 214 @@ -387,7 +387,7 @@ https://fr.wikipedia.org/wiki/Horloge_astronomique_de_Prague src/app/app.component.ts - 211 + 215 Language-specific Wikipedia URL @@ -396,7 +396,7 @@ À propos de ce simulateur src/app/app.component.ts - 213 + 217 @@ -404,7 +404,7 @@ Supprimer le clavier à l'écran src/app/app.component.ts - 309 + 313 @@ -412,7 +412,7 @@ Oui src/app/app.component.ts - 345 + 350 for dialog button @@ -421,7 +421,7 @@ Non src/app/app.component.ts - 346 + 351 for dialog button @@ -430,7 +430,7 @@ Désactiver "Suivre l'heure actuelle" pour pouvoir modifier l'heure? src/app/app.component.ts - 990 + 1010 @@ -438,7 +438,7 @@ Désactiver "Suivre l'heure actuelle" et modifier l'heure de l'horloge? src/app/app.component.ts - 1065 + 1085 @@ -446,11 +446,11 @@ Événement src/app/app.component.ts - 1106 + 1126 src/app/app.component.ts - 1110 + 1130 @@ -458,7 +458,7 @@ Événement en dehors de la plage des années -. src/app/app.component.ts - 1107 + 1127 @@ -466,7 +466,7 @@ Lever du soleil src/app/app.component.ts - 1117 + 1137 @@ -474,7 +474,7 @@ Coucher du soleil src/app/app.component.ts - 1119 + 1139 @@ -482,7 +482,7 @@ Transit src/app/app.component.ts - 1121 + 1141 @@ -490,7 +490,7 @@ Équinoxe vernal src/app/app.component.ts - 1123 + 1143 @@ -498,7 +498,7 @@ Solstice d'été src/app/app.component.ts - 1125 + 1145 @@ -506,7 +506,7 @@ Équinoxe d'automne src/app/app.component.ts - 1127 + 1147 @@ -514,7 +514,7 @@ Solstice d'hiver src/app/app.component.ts - 1129 + 1149 @@ -522,7 +522,7 @@ Nouvelle lune src/app/app.component.ts - 1131 + 1151 @@ -530,7 +530,7 @@ Premier quartier src/app/app.component.ts - 1133 + 1153 @@ -538,7 +538,7 @@ Pleine lune src/app/app.component.ts - 1135 + 1155 @@ -546,7 +546,7 @@ Troisième quart src/app/app.component.ts - 1137 + 1157 @@ -766,4 +766,4 @@ - + \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index 068c211..e953a1c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,6 +3,7 @@ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app.module'; import { environment } from './environments/environment'; +import { Subject, throttleTime } from 'rxjs'; if (environment.production) { enableProdMode(); @@ -21,8 +22,18 @@ if (Math.min(width, height) < 428) { let screenOrientationSucceeded = false; let orientationChangeTimer: any; +const docElem = document.documentElement; +const rawSizeChanges = new Subject(); + +export const sizeChanges = rawSizeChanges.pipe(throttleTime(100, undefined, { leading: true, trailing: true })); + +function sizeChange(): void { + rawSizeChanges.next(); +} function orientationChange(): void { + sizeChange(); + if (orientationChangeTimer) clearTimeout(orientationChangeTimer); @@ -45,5 +56,11 @@ if (!screenOrientationSucceeded) { window.addEventListener('orientationchange', orientationChange); } +window.addEventListener('resize', sizeChange); +docElem.addEventListener('scroll', () => { + if (docElem.style.overflow === 'hidden' && (docElem.scrollTop !== 0 || docElem.scrollLeft !== 0)) + sizeChange(); +}); + platformBrowserDynamic().bootstrapModule(AppModule) .catch(err => console.error(err)); diff --git a/src/styles.scss b/src/styles.scss index bcc5455..af066bb 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -2,17 +2,18 @@ @font-face { font-family: NoEmojiAstronomy; - src: local("Apple Symbol"), local("Segoe UI Symbol"), local("Arial Unicode MS"), local("Menlo"), local("sans-serif"); + src: url("assets/AppleZodiac.ttf") format("truetype"); unicode-range: U+263C-2653; } @font-face { font-family: Horologium; - src: url("assets/Horologium.ttf"); + src: url("assets/Horologium.ttf") format("truetype"); } :root { --background: #{$app-background}; + --font-scaler: 1; --gold-trim: #{$gold-trim}; --gold-trim-2018: #{$gold-trim-2018}; --mfvh: 100vh; // mobile full height