From e482bd9fe7032a1815205c4d56bf9792204e1aa0 Mon Sep 17 00:00:00 2001 From: J Blackman Date: Sat, 28 Jan 2023 16:44:17 +1100 Subject: [PATCH 001/393] Version bump in preparation for release (#3280) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1ceb92ef2c..a701e946ad 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "betaflight-configurator", "productName": "Betaflight Configurator", "description": "Crossplatform configuration tool for Betaflight flight control system.", - "version": "10.9.0", + "version": "10.10.0", "main": "main.html", "chromium-args": "--disable-features=nw2", "scripts": { From 1cfdcd833db9c7d523774ccbcb7cef5a0e61cdf6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 28 Jan 2023 06:53:40 +0100 Subject: [PATCH 002/393] Bump simple-git from 3.15.0 to 3.16.0 (#3281) Bumps [simple-git](https://github.com/steveukx/git-js/tree/HEAD/simple-git) from 3.15.0 to 3.16.0. - [Release notes](https://github.com/steveukx/git-js/releases) - [Changelog](https://github.com/steveukx/git-js/blob/main/simple-git/CHANGELOG.md) - [Commits](https://github.com/steveukx/git-js/commits/simple-git@3.16.0/simple-git) --- updated-dependencies: - dependency-name: simple-git dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a701e946ad..73dca0deb9 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "rollup-plugin-vue": "^5.*.*", "rpm-builder": "^1.2.1", "run-script-os": "^1.1.6", - "simple-git": "^3.15.0", + "simple-git": "^3.16.0", "targz": "^1.0.1", "temp": "^0.9.4", "through2": "^4.0.2", diff --git a/yarn.lock b/yarn.lock index 8c76be90eb..86f435fce6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14138,10 +14138,10 @@ signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -simple-git@^3.15.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.15.0.tgz#301a95a943c4f9b0a21d051eb6e6d0ffe4c9754f" - integrity sha512-FiWoMPlcYHQ+ApRihUsGjC/ZmIlWj62S6MBCwOunczvXcLQt+9ZdrysDrR6QVepkRQfEAaBXrN2QtJKrN6zbtg== +simple-git@^3.16.0: + version "3.16.0" + resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.16.0.tgz#421773e24680f5716999cc4a1d60127b4b6a9dec" + integrity sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw== dependencies: "@kwsites/file-exists" "^1.1.1" "@kwsites/promise-deferred" "^1.1.1" From da3596bb06fc316db08e3e3fd2db3d59d36d9731 Mon Sep 17 00:00:00 2001 From: EMSR Date: Sun, 29 Jan 2023 09:18:26 +0800 Subject: [PATCH 003/393] Artery AT32F435/7 DFU and VCP support (#3259) * Add Artery AT32F435/7 Virtual COM Port support * ADD ARTRY AT32 DFU support * remove wrong comment --- src/js/port_handler.js | 1 + src/js/protocols/stm32usbdfu.js | 10 +++++++++- src/js/serial.js | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/js/port_handler.js b/src/js/port_handler.js index 7b2fd9e28d..4496777ec0 100644 --- a/src/js/port_handler.js +++ b/src/js/port_handler.js @@ -11,6 +11,7 @@ const TIMEOUT_CHECK = 500 ; // With 250 it seems that it produces a memory leak export const usbDevices = { filters: [ {'vendorId': 1155, 'productId': 57105}, // STM Device in DFU Mode || Digital Radio in USB mode {'vendorId': 10473, 'productId': 393}, // GD32 DFU Bootloader + {'vendorId': 0x2E3C, 'productId': 0xDF11}, // AT32F435 DFU Bootloader ] }; const PortHandler = new function () { diff --git a/src/js/protocols/stm32usbdfu.js b/src/js/protocols/stm32usbdfu.js index 90345a0fcf..482f9805ba 100644 --- a/src/js/protocols/stm32usbdfu.js +++ b/src/js/protocols/stm32usbdfu.js @@ -346,10 +346,18 @@ STM32DFU_protocol.prototype.getChipInfo = function (_interface, callback) { // H750 SPRacing H7 EXST: "@External Flash /0x90000000/1001*128Kg,3*128Kg,20*128Ka" - Early BL firmware with incorrect string, treat as above. // H750 Partitions: Flash, Config, Firmware, 1x BB Management block + x BB Replacement blocks) + // AT32 F437 "@Internal Flash /0x08000000/08*04Ka,1000*04Kg" if (str === "@External Flash /0x90000000/1001*128Kg,3*128Kg,20*128Ka") { str = "@External Flash /0x90000000/998*128Kg,1*128Kg,4*128Kg,21*128Ka"; } - + //AT32F43xxM + if (str === "@Option byte /0x1FFFC000/01*4096 g"){ + str = "@Option bytes /0x1FFFC000/01*4096 g"; + } + //AT32F43xxG + if (str === "@Option byte /0x1FFFC000/01*512 g"){ + str = "@Option bytes /0x1FFFC000/01*512 g"; + } // split main into [location, start_addr, sectors] var tmp0 = str.replace(/[^\x20-\x7E]+/g, ""); diff --git a/src/js/serial.js b/src/js/serial.js index 009ceb6dcb..4cd1f7fbf6 100644 --- a/src/js/serial.js +++ b/src/js/serial.js @@ -28,6 +28,7 @@ const serial = { {'vendorId': 4292, 'productId': 60000}, // CP210x {'vendorId': 4292, 'productId': 60001}, // CP210x {'vendorId': 4292, 'productId': 60002}, // CP210x + {'vendorId': 0x2e3c, 'productId': 0x5740}, // AT32 VCP ], connect: function (path, options, callback) { From de92eccb461759a8b578183f7b24775e4635de86 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Sun, 29 Jan 2023 02:19:56 +0100 Subject: [PATCH 004/393] Add Octo X8 plus model (#3230) --- src/js/model.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/model.js b/src/js/model.js index 24462df56d..1b7ecac751 100644 --- a/src/js/model.js +++ b/src/js/model.js @@ -14,6 +14,7 @@ export const mixerList = [ { name: 'Y4', pos: 19, model: 'y4', image: 'y4', motors: 4, servos: false }, { name: 'Hex X', pos: 6, model: 'hex_x', image: 'hex_x', motors: 6, servos: false }, { name: 'Octo X8', pos: 21, model: 'custom', image: 'octo_x8', motors: 8, servos: false }, + { name: 'Octo X8 +', pos: 26, model: 'custom', image: 'custom', motors: 8, servos: false }, { name: 'Octo Flat +', pos: 8, model: 'custom', image: 'octo_flat_p', motors: 8, servos: false }, { name: 'Octo Flat X', pos: 9, model: 'custom', image: 'octo_flat_x', motors: 8, servos: false }, { name: 'Airplane', pos: 11, model: 'custom', image: 'airplane', motors: 1, servos: true }, From bdd87a5d541011978538e72e8c0c3d673afd3401 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 06:40:31 +1100 Subject: [PATCH 005/393] Update translations (#3295) Co-authored-by: Crowdin Bot --- locales/da/messages.json | 28 ++++++++++++++-------------- locales/de/messages.json | 3 +++ locales/it/messages.json | 4 ++-- locales/ko/messages.json | 2 +- 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/locales/da/messages.json b/locales/da/messages.json index 48fdaf32e4..d0eb140151 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -4999,19 +4999,19 @@ "message": "koordinat for GPS breddegrad" }, "osdTextElementGPSVariant7Decimals": { - "message": "Med 7 decimaler", + "message": "Decimal (DD) med 7 decimaler", "description": "One of the variants for the GPS element of the OSD" }, "osdTextElementGPSVariant4Decimals": { - "message": "Med 4 decimaler", + "message": "Decimal (DD) med 4 decimaler", "description": "One of the variants for the GPS element of the OSD" }, "osdTextElementGPSVariantDegMinSec": { - "message": "Brug grader, minutter og sekunder", + "message": "Grader, minutter og sekunder (DMS)", "description": "One of the variants for the GPS element of the OSD" }, "osdTextElementGPSVariantOpenLocation": { - "message": "Anvender Open Location Code", + "message": "Open Location Code (OLC)", "description": "One of the variants for the GPS element of the OSD" }, "osdTextElementDebug": { @@ -5104,7 +5104,7 @@ "description": "One of the variants for the Main Battery Usage element of the OSD" }, "osdTextElementMainBattUsageVariantValueUsage": { - "message": "Resterende i procent", + "message": "Forbrugt i procent", "description": "One of the variants for the Main Battery Usage element of the OSD" }, "osdTextElementArmedTime": { @@ -5606,19 +5606,19 @@ "message": "Vælg den faktor, som styrer tidstagningens varighed/hændelse" }, "osdTimerSourceOptionOnTime": { - "message": "Forbrugt tid", + "message": "Fra fartøj blev tændt", "description": "One of the options for the source timer. This options shows the amount of time has passed since the battery was plugged" }, "osdTimerSourceOptionTotalArmedTime": { - "message": "Tidspunkt for fartøj blev tændt", + "message": "Aktiveringer fra fartøj blev tændt", "description": "One of the options for the source timer. This options shows the amount of time the craft was armed since the battery was plugged" }, "osdTimerSourceOptionLastArmedTime": { - "message": "Sidste tidspunkt for aktivering", + "message": "Sidste aktivering", "description": "One of the options for the source timer. This options shows the amount of time the craft was armed the latest time" }, "osdTimerSourceOptionOnArmTime": { - "message": "Til/aktiveret tid", + "message": "Sidste aktivering / deaktivering", "description": "One of the options for the source timer. This option shows On time when craft is disarmed, and Armed time when armed" }, "osdTimerPrecision": { @@ -5628,15 +5628,15 @@ "message": "Vælg præcision til præsentation af tidstagning" }, "osdTimerPrecisionOptionSecond": { - "message": "Sekund", + "message": "Sekunder", "description": "Selectable option for the precision of the timer in the OSD" }, "osdTimerPrecisionOptionHundredth": { - "message": "Hundreddele", + "message": "Sekunder / 100", "description": "Selectable option for the precision of the timer in the OSD" }, "osdTimerPrecisionOptionTenth": { - "message": "Tiende", + "message": "Sekunder / 10", "description": "Selectable option for the precision of the timer in the OSD" }, "osdTimerAlarm": { @@ -6706,9 +6706,9 @@ "message": "Brugertilpasset Defines" }, "coreBuild": { - "message": "Alene kerne " + "message": "Kun grund komponenter" }, "coreBuildModeDescription": { - "message": "Dette tilvalg danner en relase som indeholder hardware drivere (og nogle begrænsede funktioner). Den er tilgængelig til at hjælpe med at detektere hardware på en FC og er til rådighed for bekvemmelighed. Ikke alle funktioner vil være tilgængelige (kun hardware) ved hjælp af denne indstilling." + "message": "Dette tilvalg danner en relase som indeholder hardware drivere (og nogle begrænsede funktioner). Den kan anvendes til at detektere hardware på FC og er til rådighed for bekvemmelighed. Ikke alle funktioner vil være tilgængelige (kun hardware) hvis du vælger denne indstilling." } } diff --git a/locales/de/messages.json b/locales/de/messages.json index 7a41d450aa..bdc0638c5c 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -2039,6 +2039,9 @@ "receiverButtonBindMessage": { "message": "Kopplungsanfrage an den Flugcontroller gesendet." }, + "receiverButtonBindingPhrase": { + "message": "Schlüsselbegriff (binding phrase)" + }, "receiverButtonSticks": { "message": "Kontroll Sticks" }, diff --git a/locales/it/messages.json b/locales/it/messages.json index 9127242127..92ab43efc5 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -234,7 +234,7 @@ "message": "Porte" }, "tabPidTuning": { - "message": "Messa a punto PID" + "message": "Regolazione PID" }, "tabReceiver": { "message": "Ricevente" @@ -1318,7 +1318,7 @@ "description": "Value for some options that show the speed of gyro, pid, etc. in kHz" }, "configurationLoopTimeHelp": { - "message": "Nota: Assicurati che il FC sia in grado di operare a queste velocità! controlla la stabilità della CPU e del tempo di ciclo. La modifica potrebbe richiedere una nuova messa a punto dei PID. SUGGERIMENTO: disabilita l'accelerometro e gli altri sensori per avere maggiori prestazioni." + "message": "Nota: Assicurati che il FC sia in grado di operare a queste velocità! controlla la stabilità della CPU e del tempo di ciclo. La modifica potrebbe richiedere una regolazione dei PID. SUGGERIMENTO: disabilita l'accelerometro e gli altri sensori per avere maggiori prestazioni." }, "configurationGPS": { "message": "GPS" diff --git a/locales/ko/messages.json b/locales/ko/messages.json index 2d996f2e03..690c841f84 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -1544,7 +1544,7 @@ "message": "안티 그라비티는 스로틀이 빠르게 변화하는 동안과 직후에 I (4.3은 P도) 를 증가시켜 스로틀 펌프 중 자세 안정성을 높입니다.

높은 게인 값은 낮은 권위의 기계 또는 무게 중심이 틀어진 기계에서 안정성을 향상시킬 수 있습니다." }, "pidTuningDMin": { - "message": "D침식", + "message": "D미분", "description": "Table header of the D Min feature in the PIDs tab" }, "pidTuningDMinDisabledNote": { From 4f6fcb0d3b52c1bc7ca184cded7425b16a65f0eb Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Mon, 30 Jan 2023 20:40:54 +0100 Subject: [PATCH 006/393] OSD select sort (#3287) --- src/js/tabs/osd.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/js/tabs/osd.js b/src/js/tabs/osd.js index 73f9ac9cd6..efb2f7ff30 100644 --- a/src/js/tabs/osd.js +++ b/src/js/tabs/osd.js @@ -2774,6 +2774,8 @@ osd.initialize = function(callback) { const timerSourceOptionText = i18n.getMessage(`osdTimerSourceOption${inflection.camelize(e.toLowerCase())}`); src.append(``); }); + // Sort the element, if need to group, do it by lexical sort, ie. by naming of (the translated) selection text + src.sortSelect(); src[0].selectedIndex = tim.src; src.blur(function() { const idx = $(this)[0].id.split("_")[1]; @@ -2795,6 +2797,8 @@ osd.initialize = function(callback) { const timerPrecisionOptionText = i18n.getMessage(`osdTimerPrecisionOption${inflection.camelize(e.toLowerCase())}`); precision.append(``); }); + // Sort the element, if need to group, do it by lexical sort, ie. by naming of (the translated) selection text + precision.sortSelect(); precision[0].selectedIndex = tim.precision; precision.blur(function() { const idx = $(this)[0].id.split("_")[1]; @@ -3068,6 +3072,9 @@ osd.initialize = function(callback) { .html(i18n.getMessage(variantText))); } + // Sort the element, if need to group, do it by lexical sort, ie. by naming of (the translated) selection text + selectVariant.sortSelect(); + selectVariant.val(field.variant); $labelAndVariant.append(selectVariant); From d89900904448feb8023d97e910faf990c627c6f7 Mon Sep 17 00:00:00 2001 From: Tomas Chmelevskij Date: Tue, 31 Jan 2023 16:27:38 +0100 Subject: [PATCH 007/393] feat: drop jquery debounce for local implementation (#3296) --- libraries/jquery.ba-throttle-debounce.min.js | 9 --------- package.json | 1 + src/js/tabs/osd.js | 5 +++-- src/main.html | 1 - yarn.lock | 2 +- 5 files changed, 5 insertions(+), 13 deletions(-) delete mode 100644 libraries/jquery.ba-throttle-debounce.min.js diff --git a/libraries/jquery.ba-throttle-debounce.min.js b/libraries/jquery.ba-throttle-debounce.min.js deleted file mode 100644 index 07205508eb..0000000000 --- a/libraries/jquery.ba-throttle-debounce.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * jQuery throttle / debounce - v1.1 - 3/7/2010 - * http://benalman.com/projects/jquery-throttle-debounce-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ -(function(b,c){var $=b.jQuery||b.Cowboy||(b.Cowboy={}),a;$.throttle=a=function(e,f,j,i){var h,d=0;if(typeof f!=="boolean"){i=j;j=f;f=c}function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new Date();j.apply(o,n)}function k(){h=c}if(i&&!h){l()}h&&clearTimeout(h);if(i===c&&m>e){l()}else{if(f!==true){h=setTimeout(i?k:l,i===c?e-m:e)}}}if($.guid){g.guid=j.guid=j.guid||$.guid++}return g};$.debounce=function(d,e,f){return f===c?a(d,e,false):a(d,f,e!==false)}})(this); \ No newline at end of file diff --git a/package.json b/package.json index 73dca0deb9..0584eb4b3d 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "jquery-touchswipe": "^1.6.19", "jquery-ui-npm": "^1.12.0", "jsdom": "^21.0.0", + "lodash.debounce": "^4.0.8", "marked": "^4.1.1", "multicast-dns": "^7.2.5", "multiple-select": "^1.5.2", diff --git a/src/js/tabs/osd.js b/src/js/tabs/osd.js index efb2f7ff30..2a51e3ec54 100644 --- a/src/js/tabs/osd.js +++ b/src/js/tabs/osd.js @@ -14,6 +14,7 @@ import semver from "semver"; import jBox from "jbox"; import inflection from "inflection"; import { checkChromeRuntimeError } from "../utils/common"; +import debounce from "lodash.debounce"; const FONT = {}; const SYM = {}; @@ -3085,7 +3086,7 @@ osd.initialize = function(callback) { $(``) .data('field', field) .val(field.position) - .change($.debounce(250, function() { + .change(debounce(function() { const fieldChanged = $(this).data('field'); const position = parseInt($(this).val()); fieldChanged.position = position; @@ -3093,7 +3094,7 @@ osd.initialize = function(callback) { .then(function() { updateOsdView(); }); - })), + }, 250)), ); } diff --git a/src/main.html b/src/main.html index 12f7cd1762..860f413cfd 100644 --- a/src/main.html +++ b/src/main.html @@ -62,7 +62,6 @@ - diff --git a/yarn.lock b/yarn.lock index 86f435fce6..a2a375cf3d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10314,7 +10314,7 @@ lodash._root@^3.0.0: lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.defaults@^4.2.0: version "4.2.0" From 8b6f3bbe304af01db8d6ef521ec7d0d4f66307ec Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 31 Jan 2023 16:52:45 +0100 Subject: [PATCH 008/393] Fix telemetry being disabled for protocols used outside of ports tab (#3298) Fix telemetry being disabled for other protocols used outside of ports tab --- src/js/tabs/ports.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/js/tabs/ports.js b/src/js/tabs/ports.js index 92ba640f06..65adca201d 100644 --- a/src/js/tabs/ports.js +++ b/src/js/tabs/ports.js @@ -459,8 +459,6 @@ ports.initialize = function (callback) { if (enableTelemetry) { featureConfig.enable('TELEMETRY'); - } else { - featureConfig.disable('TELEMETRY'); } if (enableBlackbox) { From b4d1375aa0d3661e7d7f2aab4d8e6e66a6b12beb Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 31 Jan 2023 22:01:06 +0100 Subject: [PATCH 009/393] Fix links (#3294) --- locales/en/messages.json | 2 +- src/js/VirtualFC.js | 2 +- src/tabs/adjustments.html | 2 +- src/tabs/auxiliary.html | 2 +- src/tabs/configuration.html | 2 +- src/tabs/failsafe.html | 2 +- src/tabs/firmware_flasher.html | 2 +- src/tabs/gps.html | 2 +- src/tabs/led_strip.html | 2 +- src/tabs/logging.html | 2 +- src/tabs/motors.html | 2 +- src/tabs/onboard_logging.html | 2 +- src/tabs/pid_tuning.html | 2 +- src/tabs/ports.html | 2 +- src/tabs/presets/presets.html | 2 +- src/tabs/receiver.html | 2 +- src/tabs/sensors.html | 2 +- src/tabs/transponder.html | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 53147684f8..8a6d6917a3 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -3212,7 +3212,7 @@ "message": "Recovery / Lost communication" }, "firmwareFlasherRecoveryText": { - "message": "If you have lost communication with your board follow these steps to restore communication:
  • Power off
  • Enable 'No reboot sequence', enable 'Full chip erase'.
  • Jumper the BOOT pins or hold BOOT button.
  • Power on (activity LED will NOT flash if done correctly).
  • Install all STM32 drivers and Zadig if required (see USB Flashing section of Betaflight manual).
  • Close configurator, Restart Configurator.
  • Release BOOT button if your FC has one.
  • Flash with correct firmware (using manual baud rate if specified in your FC's manual).
  • Power off.
  • Remove BOOT jumper.
  • Power on (activity LED should flash).
  • Connect normally.
" + "message": "If you have lost communication with your board follow these steps to restore communication:
  • Power off
  • Enable 'No reboot sequence', enable 'Full chip erase'.
  • Jumper the BOOT pins or hold BOOT button.
  • Power on (activity LED will NOT flash if done correctly).
  • Install all STM32 drivers and Zadig if required (see USB Flashing section of Betaflight manual).
  • Close configurator, Restart Configurator.
  • Release BOOT button if your FC has one.
  • Flash with correct firmware (using manual baud rate if specified in your FC's manual).
  • Power off.
  • Remove BOOT jumper.
  • Power on (activity LED should flash).
  • Connect normally.
" }, "firmwareFlasherButtonLeave": { "message": "Leave Firmware Flasher" diff --git a/src/js/VirtualFC.js b/src/js/VirtualFC.js index 490a72408c..226acad251 100644 --- a/src/js/VirtualFC.js +++ b/src/js/VirtualFC.js @@ -164,7 +164,7 @@ const VirtualFC = { virtualFC.RC.channels[i] = 1500; } - // from https://github.com/betaflight/betaflight/blob/master/docs/Modes.md + // from https://betaflight.com/docs/development/Modes virtualFC.AUX_CONFIG = ["ARM","ANGLE","HORIZON","ANTI GRAVITY","MAG","HEADFREE","HEADADJ","CAMSTAB","PASSTHRU","BEEPERON","LEDLOW","CALIB", "OSD","TELEMETRY","SERVO1","SERVO2","SERVO3","BLACKBOX","FAILSAFE","AIRMODE","3D","FPV ANGLE MIX","BLACKBOX ERASE","CAMERA CONTROL 1", "CAMERA CONTROL 2","CAMERA CONTROL 3","FLIP OVER AFTER CRASH","BOXPREARM","BEEP GPS SATELLITE COUNT","VTX PIT MODE","USER1","USER2", diff --git a/src/tabs/adjustments.html b/src/tabs/adjustments.html index 69afd8d15b..c53cbe693d 100644 --- a/src/tabs/adjustments.html +++ b/src/tabs/adjustments.html @@ -2,7 +2,7 @@
- +

diff --git a/src/tabs/auxiliary.html b/src/tabs/auxiliary.html index 14872a1b53..ef85391266 100644 --- a/src/tabs/auxiliary.html +++ b/src/tabs/auxiliary.html @@ -2,7 +2,7 @@
tabAuxiliary
- +

diff --git a/src/tabs/configuration.html b/src/tabs/configuration.html index e269350ff4..68c5376e37 100644 --- a/src/tabs/configuration.html +++ b/src/tabs/configuration.html @@ -2,7 +2,7 @@
- +

diff --git a/src/tabs/failsafe.html b/src/tabs/failsafe.html index 0fea81b16b..30c45b972d 100644 --- a/src/tabs/failsafe.html +++ b/src/tabs/failsafe.html @@ -2,7 +2,7 @@
- +

diff --git a/src/tabs/firmware_flasher.html b/src/tabs/firmware_flasher.html index d70653db2e..f8e26b76cc 100644 --- a/src/tabs/firmware_flasher.html +++ b/src/tabs/firmware_flasher.html @@ -2,7 +2,7 @@
- +
diff --git a/src/tabs/gps.html b/src/tabs/gps.html index 04b5e6ed1b..5ff192c8cc 100644 --- a/src/tabs/gps.html +++ b/src/tabs/gps.html @@ -2,7 +2,7 @@
GPS
- +
diff --git a/src/tabs/led_strip.html b/src/tabs/led_strip.html index 1845d29c13..51f2f8954f 100644 --- a/src/tabs/led_strip.html +++ b/src/tabs/led_strip.html @@ -2,7 +2,7 @@
- +

diff --git a/src/tabs/logging.html b/src/tabs/logging.html index 5374eafb68..cc62c1328e 100755 --- a/src/tabs/logging.html +++ b/src/tabs/logging.html @@ -2,7 +2,7 @@
- +

diff --git a/src/tabs/motors.html b/src/tabs/motors.html index d591e12813..3f432e0549 100644 --- a/src/tabs/motors.html +++ b/src/tabs/motors.html @@ -2,7 +2,7 @@
Motors
- +
diff --git a/src/tabs/onboard_logging.html b/src/tabs/onboard_logging.html index 2fb7dccbce..811d9f7089 100644 --- a/src/tabs/onboard_logging.html +++ b/src/tabs/onboard_logging.html @@ -2,7 +2,7 @@
- +

diff --git a/src/tabs/pid_tuning.html b/src/tabs/pid_tuning.html index 93fb23d15a..6cbee4d269 100644 --- a/src/tabs/pid_tuning.html +++ b/src/tabs/pid_tuning.html @@ -2,7 +2,7 @@
- +
diff --git a/src/tabs/ports.html b/src/tabs/ports.html index d1401fc916..4eb5d9f5f9 100644 --- a/src/tabs/ports.html +++ b/src/tabs/ports.html @@ -2,7 +2,7 @@
Ports
- +
diff --git a/src/tabs/presets/presets.html b/src/tabs/presets/presets.html index d01154176a..97c2ff9bac 100644 --- a/src/tabs/presets/presets.html +++ b/src/tabs/presets/presets.html @@ -3,7 +3,7 @@
- Presets Wiki + Presets Wiki
diff --git a/src/tabs/receiver.html b/src/tabs/receiver.html index f2b7074258..6ea574f794 100644 --- a/src/tabs/receiver.html +++ b/src/tabs/receiver.html @@ -2,7 +2,7 @@
- +

diff --git a/src/tabs/sensors.html b/src/tabs/sensors.html index af3fc2fd07..0efab46c40 100644 --- a/src/tabs/sensors.html +++ b/src/tabs/sensors.html @@ -2,7 +2,7 @@
- +
diff --git a/src/tabs/transponder.html b/src/tabs/transponder.html index 72611916f4..a2c44eede6 100644 --- a/src/tabs/transponder.html +++ b/src/tabs/transponder.html @@ -4,7 +4,7 @@
Transponder
- +
From fc6bcc2bf91f2aa2e143867c7ffd973233c91b3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Semr=C3=A1d?= <76877124+VitroidFPV@users.noreply.github.com> Date: Wed, 1 Feb 2023 17:58:05 +0100 Subject: [PATCH 010/393] Added autofocus on Select2 elements with a textbox (#3299) * Added autofocus on Select2 elements with a textbox * Apply suggestions from code review Co-authored-by: Mark Haslinghuis --------- Co-authored-by: Mark Haslinghuis --- src/js/tabs/firmware_flasher.js | 17 +++++++++++++++++ src/js/tabs/receiver.js | 18 ++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index e08b3a9153..1b5f38faac 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -443,6 +443,23 @@ firmware_flasher.initialize = function (callback) { } } }); + // when any of the select2 elements is opened, force a focus on that element's search box + const select2Elements = [ + 'select[name="board"]', + 'select[name="radioProtocols"]', + 'select[name="telemetryProtocols"]', + 'select[name="motorProtocols"]', + 'select[name="options"]', + 'select[name="commits"]', + ]; + $(document).on('select2:open', select2Elements.join(','), () => { + const allFound = document.querySelectorAll('.select2-container--open .select2-search__field'); + $(this).one('mouseup keyup', () => { + setTimeout(() => { + allFound[allFound.length - 1].focus(); + }, 0); + }); + }); function cleanUnifiedConfigFile(input) { let output = []; diff --git a/src/js/tabs/receiver.js b/src/js/tabs/receiver.js index c6c6f203be..2c51318951 100644 --- a/src/js/tabs/receiver.js +++ b/src/js/tabs/receiver.js @@ -277,6 +277,15 @@ receiver.initialize = function (callback) { // Convert to select2 and order alphabetic if (!GUI.isCordova()) { serialRxSelectElement.sortSelect().select2(); + + $(document).on('select2:open', 'select.serialRX', () => { + const allFound = document.querySelectorAll('.select2-container--open .select2-search__field'); + $(this).one('mouseup keyup',()=>{ + setTimeout(()=>{ + allFound[allFound.length - 1].focus(); + },0); + }); + }); } const spiRxTypes = [ @@ -336,6 +345,15 @@ receiver.initialize = function (callback) { if (!GUI.isCordova()) { // Convert to select2 and order alphabetic spiRxElement.sortSelect().select2(); + + $(document).on('select2:open', 'select.spiRx', () => { + const allFound = document.querySelectorAll('.select2-container--open .select2-search__field'); + $(this).one('mouseup keyup',()=>{ + setTimeout(()=>{ + allFound[allFound.length - 1].focus(); + },0); + }); + }); } if (FC.FEATURE_CONFIG.features.isEnabled('RX_SPI') && FC.RX_CONFIG.rxSpiProtocol == 19 && semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) { From 799b587ac6f98408b588eb536a51ed9e4b9c49df Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Thu, 2 Feb 2023 20:26:45 +0100 Subject: [PATCH 011/393] Simplify Expert Mode (#3301) --- locales/en/messages.json | 5 +---- src/js/main.js | 18 +++++++++--------- src/js/serial_backend.js | 6 ++---- src/js/tabs/firmware_flasher.js | 29 ++++++++++++++++------------- src/js/tabs/options.js | 16 ---------------- src/tabs/firmware_flasher.html | 24 ++++++++++++------------ src/tabs/options.html | 6 ------ 7 files changed, 40 insertions(+), 64 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 8a6d6917a3..d61f22a2d4 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -90,10 +90,7 @@ "message": "Enable Expert Mode" }, "expertModeDescription": { - "message": "Show development builds that are potentially unstable" - }, - "permanentExpertMode": { - "message": "Permanently enable Expert Mode" + "message": "Enable Expert Mode options" }, "warningSettings": { "message": "Show warnings" diff --git a/src/js/main.js b/src/js/main.js index 61f150785b..d674b2ed13 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -539,14 +539,14 @@ function startProcess() { $("#showlog").trigger('click'); } - result = getConfig('permanentExpertMode'); - const expertModeCheckbox = 'input[name="expertModeCheckbox"]'; - if (result.permanentExpertMode) { - $(expertModeCheckbox).prop('checked', true); - } + result = getConfig('expertMode').expertMode ?? false; + + const expertModeCheckbox = $('input[name="expertModeCheckbox"]'); + expertModeCheckbox.prop('checked', result).trigger('change'); + + expertModeCheckbox.on("change", () => { + const checked = expertModeCheckbox.is(':checked'); - $(expertModeCheckbox).on("change", () => { - const checked = $(expertModeCheckbox).is(':checked'); checkSetupAnalytics(function (analyticsService) { analyticsService.setDimension(analyticsService.DIMENSIONS.CONFIGURATOR_EXPERT_MODE, checked ? 'On' : 'Off'); }); @@ -558,9 +558,9 @@ function startProcess() { if (GUI.active_tab) { TABS[GUI.active_tab]?.expertModeChanged?.(checked); } - }); - $(expertModeCheckbox).trigger("change"); + setConfig({'expertMode': checked}); + }); result = getConfig('cliAutoComplete'); CliAutoComplete.setEnabled(typeof result.cliAutoComplete === "undefined" || result.cliAutoComplete); // On by default diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index 621344e43b..49053baab9 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -259,10 +259,8 @@ function onOpen(openInfo) { } // reset expert mode - result = getConfig('permanentExpertMode'); - if (result.permanentExpertMode) { - $('input[name="expertModeCheckbox"]').prop('checked', result.permanentExpertMode).trigger('change'); - } + result = getConfig('expertMode')?.expertMode ?? false; + $('input[name="expertModeCheckbox"]').prop('checked', result).trigger('change'); serial.onReceive.addListener(read_serial); setConnectionTimeout(); diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 1b5f38faac..0c3220c22a 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -221,35 +221,39 @@ firmware_flasher.initialize = function (callback) { if (showExtraReleases) { $('tr.build_type').show(); - $('tr.expert_mode').show(); } else { $('tr.build_type').hide(); - $('tr.expert_mode').hide(); buildType_e.val(0).trigger('change'); } } - const globalExpertMode_e = $('input[name="expertModeCheckbox"]'); function showOrHideExpertMode() { const expertModeChecked = $(this).is(':checked'); - globalExpertMode_e.prop('checked', expertModeChecked).trigger('change'); if (expertModeChecked) { buildTypesToShow = buildTypes; } else { buildTypesToShow = buildTypes.slice(0,2); } + buildBuildTypeOptionsList(); buildType_e.val(0).trigger('change'); - setConfig({'selected_expert_mode': expertModeChecked}); + setTimeout(() => { + $('tr.expertOptions').toggle(expertModeChecked); + $('div.expertOptions').toggle(expertModeChecked); + }, 0); + + setConfig({'expertMode': expertModeChecked}); } const expertMode_e = $('.tab-firmware_flasher input.expert_mode'); - const expertMode = getConfig('selected_expert_mode'); - expertMode_e.prop('checked', expertMode.selected_expert_mode ?? false); + const expertMode = getConfig('expertMode').expertMode; + + expertMode_e.prop('checked', expertMode); + expertMode_e.on('change', showOrHideExpertMode).trigger('change'); + $('input.show_development_releases').change(showOrHideBuildTypes).change(); - expertMode_e.change(showOrHideExpertMode).change(); // translate to user-selected language i18n.localizePage(); @@ -302,8 +306,6 @@ firmware_flasher.initialize = function (callback) { const expertMode = $('.tab-firmware_flasher input.expert_mode').is(':checked'); if (expertMode) { - $('div.expertOptions').show(); - if (response.releaseType === 'Unstable') { self.releaseLoader.loadCommits(response.release, (commits) => { const select_e = $('select[name="commits"]'); @@ -317,9 +319,9 @@ firmware_flasher.initialize = function (callback) { } else { $('div.commitSelection').hide(); } - } else { - $('div.expertOptions').hide(); } + + $('div.expertOptions').toggle(expertMode); } if (response.configuration && !self.isConfigLocal) { @@ -489,11 +491,12 @@ firmware_flasher.initialize = function (callback) { } const portPickerElement = $('div#port-picker #port'); + function flashFirmware(firmware) { const options = {}; let eraseAll = false; - if ($('input.erase_chip').is(':checked')) { + if ($('input.erase_chip').is(':checked') || $('.tab-firmware_flasher input.expert_mode').not(':checked')) { options.erase_chip = true; eraseAll = true; diff --git a/src/js/tabs/options.js b/src/js/tabs/options.js index ff1bc7e03c..a6ec28691f 100644 --- a/src/js/tabs/options.js +++ b/src/js/tabs/options.js @@ -16,7 +16,6 @@ options.initialize = function (callback) { $('#content').load("./tabs/options.html", function () { i18n.localizePage(); - TABS.options.initPermanentExpertMode(); TABS.options.initRememberLastTab(); TABS.options.initCheckForConfiguratorUnstableVersions(); TABS.options.initAnalyticsOptOut(); @@ -50,21 +49,6 @@ options.initShowWarnings = function () { }).change(); }; -options.initPermanentExpertMode = function () { - const result = getConfig('permanentExpertMode'); - if (result.permanentExpertMode) { - $('div.permanentExpertMode input').prop('checked', true); - } - - $('div.permanentExpertMode input').change(function () { - const checked = $(this).is(':checked'); - - setConfig({'permanentExpertMode': checked}); - - $('input[name="expertModeCheckbox"]').prop('checked', checked).change(); - }).change(); -}; - options.initRememberLastTab = function () { const result = getConfig('rememberLastTab'); $('div.rememberLastTab input') diff --git a/src/tabs/firmware_flasher.html b/src/tabs/firmware_flasher.html index f8e26b76cc..f2321c45b2 100644 --- a/src/tabs/firmware_flasher.html +++ b/src/tabs/firmware_flasher.html @@ -8,24 +8,24 @@
- + - + @@ -64,7 +64,7 @@ - + - + - + - + `); + if (FC.GPS_DATA.chn.length <= 16) { // Legacy code path: old BF firmware or old ublox module for (let i = 0; i < FC.GPS_DATA.chn.length; i++) { @@ -155,11 +281,9 @@ gps.initialize = function (callback) { message.action = 'nofix'; frame.contentWindow.postMessage(message, '*'); } - }else{ + } else { gpsWasFixed = false; - $('#connect').show(); - $('#waiting').hide(); - $('#loadmap').hide(); + set_offline(); } } @@ -216,9 +340,31 @@ gps.initialize = function (callback) { frame.contentWindow.postMessage(message, '*'); }); + $('a.save').on('click', function() { + // fill some data + FC.GPS_CONFIG.auto_baud = $('input[name="gps_auto_baud"]').is(':checked') ? 1 : 0; + FC.GPS_CONFIG.auto_config = $('input[name="gps_auto_config"]').is(':checked') ? 1 : 0; + + async function saveConfiguration() { + await MSP.promise(MSPCodes.MSP_SET_FEATURE_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_FEATURE_CONFIG)); + await MSP.promise(MSPCodes.MSP_SET_GPS_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_GPS_CONFIG)); + await MSP.promise(MSPCodes.MSP_EEPROM_WRITE); + reboot(); + } + + function reboot() { + gui_log(i18n.getMessage('configurationEepromSaved')); + + GUI.tab_switch_cleanup(function() { + MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection); + }); + } + + saveConfiguration(); + }); + GUI.content_ready(callback); } - }; gps.cleanup = function (callback) { diff --git a/src/tabs/configuration.html b/src/tabs/configuration.html index 68c5376e37..94b700ba2c 100644 --- a/src/tabs/configuration.html +++ b/src/tabs/configuration.html @@ -135,7 +135,7 @@ - +
-
+
-
+
${i18n.getMessage('gpsSignalStatusQly')}
@@ -143,82 +143,6 @@
- - -
-
-
-
-
-
- - - - - - - - - - - -
-
-
-
-

-
- -
- - -
-
- - -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
-
- -
- -
-
-
- - -
-
-
-
-
-
-
@@ -416,10 +340,12 @@
+
+
diff --git a/src/tabs/gps.html b/src/tabs/gps.html index 5ff192c8cc..f9e5d33e48 100644 --- a/src/tabs/gps.html +++ b/src/tabs/gps.html @@ -1,13 +1,83 @@ -
+
GPS
-
+ +
+
+
+
+
+
+
+
+ + +
+
+ + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+ + +
+
+
+
+
+ +
+
+
+
+
+ + +
+
+
+
+ +
+
@@ -46,18 +116,6 @@
-
-
-
-
-
- - -
-
-
-
-
@@ -65,9 +123,8 @@ -
-
-
+
+
@@ -76,9 +133,14 @@
+
+
+
+ +
+
-
From fe978b9a44b0088effdb7285e18587bcbe669d11 Mon Sep 17 00:00:00 2001 From: Rickard von Essen Date: Thu, 9 Feb 2023 07:22:02 +0100 Subject: [PATCH 022/393] Updated the PR template (#3328) Reference _GitHub Actions_ instead of _Travis CI_. Also update instructions to use `yarn lint` instead of `make pre-push`. --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index a509065dfd..fbdffa8ca0 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -12,7 +12,7 @@ 6. All pull requests are reviewed. Be ready to receive constructive criticism, and to learn and improve your coding style. Also, be ready to clarify anything that isn't already sufficiently explained in the code and text of the pull request, and to defend your ideas. -7. We use continuous integration (CI) with [Travis](https://travis-ci.com/betaflight) to build all targets and run the test suite for every pull request. Pull requests that fail any of the builds or fail tests will most likely not be reviewed before they are fixed to build successfully and pass the tests. In order to get a quick idea if there are things that need fixing **before** opening a pull request or pushing an update into an existing pull request, run `make pre-push` to run a representative subset of the CI build. _Note: This is not an exhaustive test (which will take hours to run on any desktop type system), so even if this passes the CI build might still fail._ +7. We use continuous integration (CI) with [GitHub Actions](https://github.com/betaflight/betaflight-configurator/actions) to build all targets and run the test suite for every pull request. Pull requests that fail any of the builds or fail tests will most likely not be reviewed before they are fixed to build successfully and pass the tests. In order to get a quick idea if there are things that need fixing **before** opening a pull request or pushing an update into an existing pull request, run `yarn lint` to verify formatting. _Note: This is not an exhaustive test (which will take hours to run on any desktop type system), so even if this passes the CI build might still fail._ 8. If your pull request is a fix for one or more issues that are open in GitHub, add a comment to your pull request, and add the issue numbers of the issues that are fixed in the form `Fixes #`. This will cause the issues to be closed when the pull request is merged; From e0b44c07093ca4b98bac002c75de667b5a8c66a7 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Fri, 10 Feb 2023 12:56:40 +0100 Subject: [PATCH 023/393] Update NW.js to 0.72.0 (#3334) --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index 1d10f4fd64..59a45df20c 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -46,7 +46,7 @@ const NODE_ENV = process.env.NODE_ENV || 'production'; const NAME_REGEX = /-/g; const nwBuilderOptions = { - version: '0.67.1', + version: '0.72.0', files: `${DIST_DIR}**/*`, macIcns: './src/images/bf_icon.icns', macPlist: { 'CFBundleDisplayName': 'Betaflight Configurator'}, From 37e91ff9ed0202d3af06ec4beb2da2c5125d5596 Mon Sep 17 00:00:00 2001 From: Rickard von Essen Date: Sat, 11 Feb 2023 22:05:36 +0100 Subject: [PATCH 024/393] Updated the PR template (2) (#3335) --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index fbdffa8ca0..4ee9fa0a55 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -12,7 +12,7 @@ 6. All pull requests are reviewed. Be ready to receive constructive criticism, and to learn and improve your coding style. Also, be ready to clarify anything that isn't already sufficiently explained in the code and text of the pull request, and to defend your ideas. -7. We use continuous integration (CI) with [GitHub Actions](https://github.com/betaflight/betaflight-configurator/actions) to build all targets and run the test suite for every pull request. Pull requests that fail any of the builds or fail tests will most likely not be reviewed before they are fixed to build successfully and pass the tests. In order to get a quick idea if there are things that need fixing **before** opening a pull request or pushing an update into an existing pull request, run `yarn lint` to verify formatting. _Note: This is not an exhaustive test (which will take hours to run on any desktop type system), so even if this passes the CI build might still fail._ +7. We use continuous integration (CI) with [GitHub Actions](https://github.com/betaflight/betaflight-configurator/actions) to build all targets and run the test suite for every pull request. Pull requests that fail any of the builds or fail tests will most likely not be reviewed before they are fixed to build successfully and pass the tests. In order to get a quick idea if there are things that need fixing **before** opening a pull request or pushing an update into an existing pull request, run `yarn lint` to verify formatting and `yarn run vitest run` to execute the test suite. _Note: This is not an exhaustive test, so even if this passes the CI build might still fail._ 8. If your pull request is a fix for one or more issues that are open in GitHub, add a comment to your pull request, and add the issue numbers of the issues that are fixed in the form `Fixes #`. This will cause the issues to be closed when the pull request is merged; From 81541331ccf5918f9ce7778a10943145f08a2dc1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 15 Feb 2023 18:35:58 +0100 Subject: [PATCH 025/393] Update translations (#3339) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 11 +-- locales/da/messages.json | 90 +++++++++++-------- locales/de/messages.json | 174 ++++++++++++++++++++++++++++++++++-- locales/es/messages.json | 9 +- locales/eu/messages.json | 9 -- locales/fr/messages.json | 11 +-- locales/gl/messages.json | 9 -- locales/it/messages.json | 11 +-- locales/ja/messages.json | 46 ++++++++-- locales/ko/messages.json | 9 +- locales/nl/messages.json | 9 -- locales/pl/messages.json | 11 +-- locales/pt/messages.json | 9 +- locales/pt_BR/messages.json | 9 -- locales/ru/messages.json | 9 -- locales/zh_CN/messages.json | 9 -- locales/zh_TW/messages.json | 9 -- 17 files changed, 278 insertions(+), 166 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index 4548569352..bb0386799a 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -103,7 +103,7 @@ "description": "Change timeout on auto-connect and reboot so the bus has more time to initialize after being detected by the system" }, "showAllSerialDevices": { - "message": "Mostra tots els dispositius en sèrie (per a fabricants o desenvolupament)", + "message": "Mostra tots els dispositius sèrie (per a fabricants o desenvolupament)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, "showVirtualMode": { @@ -605,7 +605,7 @@ "message": "Contribuir" }, "defaultContributingText": { - "message": "Si voleu ajudar a millorar encara més Betaflight, podeu ajudar-nos de moltes maneres, incloent:
  • utilitzar els vostres coneixements sobre Betaflight per crear o actualitzar contingut a el nostre Wiki, o responent a les preguntes d'altres usuaris als fòrums en línia;
  • codi que contribueix al firmware i Configurator - novetats, solucions, millores;
  • proves noves funcions i solucions i proporciona comentaris;
  • ajudant a altres usuaris a resoldre els problemes que exposen a el nostre tracker de asumptes, i participant en discussions sobre peticions de funcions;
  • traduïnt el Configurador de Betaflight a un nou idioma o ajudant a mantenir les traduccions existents.
" + "message": "Si voleu ajudar a millorar encara més Betaflight, podeu ajudar-nos de moltes maneres, incloent:
  • utilitzar els vostres coneixements sobre Betaflight per crear o actualitzar contingut a el nostre Wiki, o responent a les preguntes d'altres usuaris als fòrums en línia;
  • codi que contribueix al firmware i Configurator - novetats, solucions, millores;
  • proves noves funcions i solucions i proporciona comentaris;
  • ajudant a altres usuaris a resoldre els problemes que exposen a el nostre tracker de asumptes, i participant en discussions sobre peticions de funcions;
  • traduïnt el Configurador de Betaflight a un nou idioma o ajudant a mantenir les traduccions existents.
" }, "defaultFacebookText": { "message": "També tenim un Grup de Facebook.
Uneix-te a nosaltres per obtenir un lloc on parlar de Betaflight, fer preguntes de configuració o simplement passar una estona amb altres pilots." @@ -1326,7 +1326,7 @@ "message": "Nota: Assegureu-vos que la vostra controladora pot funcionar a aquestes velocitats. Comproveu l'estabilitat de la CPU i del cicle de temps. Si canvieu això, podreu requerir nous ajustos dels PID. CONSELL: Desactiveu l’acceleròmetre i altres sensors per obtenir més rendiment." }, "configurationGPS": { - "message": "GPS" + "message": "Configuració GPS" }, "configurationGPSProtocol": { "message": "Protocol" @@ -1359,9 +1359,6 @@ "message": "Quan estigui habilitat, només s’utilitzarà com a punt inicial el primer armat després de la bateria connectada. Si no està habilitat, cada vegada que el quad sigui armat s’actualitzarà el punt d’inici.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "Nota: Recorda configurar el Port Sèrie (pestanya Ports) per a fer servir la funció GPS." - }, "configurationSerialRX": { "message": "Proveïdor del receptor sèrie" }, @@ -1967,7 +1964,7 @@ "message": "Mode de control lliscant de sintonització de PID

El mode de control lliscant de sintonització de Pid pot ser:

• DESACTIVAT: sense control lliscant, introduïu valors manualment
• RP: els control lliscants només controlen Roll and Pitch, introduïu els valors de Yaw manualment
• RPY: els control lliscants controlen tots els valors PID

Important: Si us plau, deseu després de canviar el mode lliscant abans de canviar altres paràmetres." }, "receiverHelp": { - "message": "• Comproveu sempre que el vostre Failsafe funcioni correctament! La configuració es troba a la pestanya Failsafe, que requereix el mode expert.
Utilitzeu el darrer microprogramari Tx!
Desactiva el filtre ADC de maquinari< /a> al transmissor si feu servir OpenTx o EdgeTx.
Configuració bàsica: configureu correctament la configuració del \"Receptor\". Trieu el \"Mapa de canals\" correcte per a la vostra ràdio. Comproveu que els gràfics de balanceig, to i altres barres es mouen correctament. Ajusteu el punt final del canal o els valors d'interval al transmissor entre ~1000 i ~2000 i configureu el punt mitjà en 1500. Per obtenir més informació, llegiu la
documentació." + "message": "• Comproveu sempre que el vostre Failsafe funcioni correctament! La configuració es troba a la pestanya Failsafe, que requereix el mode expert.
Utilitzeu el darrer microprogramari Tx!
Desactiva el filtre ADC de maquinari< /a> al transmissor si feu servir OpenTx o EdgeTx.
Configuració bàsica: configureu correctament la configuració del \"Receptor\". Trieu el \"Mapa de canals\" correcte per a la vostra ràdio. Comproveu que els gràfics de balanceig, to i altres barres es mouen correctament. Ajusteu el punt final del canal o els valors d'interval al transmissor entre ~1000 i ~2000 i configureu el punt mitjà en 1500. Per obtenir més informació, llegiu la
documentació." }, "receiverThrottleMid": { "message": "Throttle MID" diff --git a/locales/da/messages.json b/locales/da/messages.json index 04ba65da30..cd748b0fd7 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -597,7 +597,7 @@ "message": "Bidrag" }, "defaultContributingText": { - "message": "Hvis du gerne vil hjælpe med at gøre Betaflight endnu bedre, kan du hjælpe på mange måder, herunder:
  • ved at bruge din viden om Betaflight til at oprette eller opdatere indhold på vores Wiki, eller ved at besvare andre brugeres spørgsmål i onlinefora
  • bidrage med kode til firmware og Configurator - nye funktioner, rettelser, forbedringer,
  • test af nye funktioner og rettelser og give feedback;
  • hjælper andre brugere med at løse de problemer, de rapporterer i vores issue tracker, deltagelse i diskussioner om ønsker til rettelser og forbedringer
  • oversætte Betaflight Configurator til et nyt sprog eller hjælpe med at vedligeholde eksisterende oversættelser.
" + "message": "Hvis du gerne vil hjælpe med at gøre Betaflight endnu bedre, kan du hjælpe på mange måder, herunder:
  • ved at bruge din viden om Betaflight til at oprette eller opdatere indhold på vores Wiki, eller ved at besvare andre brugeres spørgsmål i onlinefora
  • bidrage med kode til firmware og Configurator - nye funktioner, rettelser, forbedringer,
  • test af nye funktioner og rettelser og give feedback;
  • hjælper andre brugere med at løse de problemer, de rapporterer i vores issue tracker, deltagelse i diskussioner om ønsker til rettelser og forbedringer
  • oversætte Betaflight Configurator til et nyt sprog eller hjælpe med at vedligeholde eksisterende oversættelser.
" }, "defaultFacebookText": { "message": "Vi har også en Facebook-gruppe.
Meld dig ind i gruppen vedrørende Betaflight, for at stille spørgsmål om opsætning eller blot hænge ud med andre piloter." @@ -766,7 +766,7 @@ "message": "Magnetometer" }, "initialSetupInfoHead": { - "message": "Info" + "message": "System info" }, "initialSetupBattery": { "message": "Batteri spænding:" @@ -1318,13 +1318,13 @@ "message": "Benærk: Tjek, at din FC er i stand til at fungere ved disse frekvenser! Tjek CPU- og klokfrekvensstabilitet. Ændring af dette kan kræve PID-genindstilling. TIP: Deaktivér accelerometer og evt. andre sensorer for højere CPU ydeevne." }, "configurationGPS": { - "message": "GPS" + "message": "GPS konfiguration" }, "configurationGPSProtocol": { "message": "Protokol" }, "configurationGPSBaudrate": { - "message": "Baud-hastighed" + "message": "Baud hastighed" }, "configurationGPSubxSbas": { "message": "Type af jordbaserede referencestationer" @@ -1351,9 +1351,6 @@ "message": "Når valgt, vil kun den første aktivering efter batteriet er tilsluttet blive brugt som startpunkt. Hvis det ikke er aktiveret, opdateres hjempunkt, hver gang fartøj aktiveres.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "Bemærk: Husk først at konfiguere sensor-input (via fanen Porte) for at bruge GPS-funktion." - }, "configurationSerialRX": { "message": "Leverandør protokol til seriel modtagelse" }, @@ -1472,7 +1469,7 @@ "message": "PID profil $1" }, "pidTuningRateProfileOption": { - "message": "Rate profil $1" + "message": "Hastighed profil $1" }, "portsFunction_LIDAR_TF": { "message": "Benewake LIDAR" @@ -1484,7 +1481,7 @@ "message": "PID profiler" }, "pidTuningSubTabRates": { - "message": "Rate profiler" + "message": "Hastighed profiler" }, "pidTuningSubTabFilter": { "message": "Filter indstillinger" @@ -1496,10 +1493,10 @@ "message": "Beskrivelse af PID profil, som kan angive hvad profilen er beregnet til, fx let/tungere batteri, actionkamera/intet actionkamera, højere højde osv." }, "rateProfileName": { - "message": "Rate profil beskrivelse" + "message": "Hastighed profil beskrivelse" }, "rateProfileNameHelp": { - "message": "Beskrivelse af Rate profil, som kan angive hvad profilen er beregnet til, fx Filme, Ræs, etc" + "message": "Beskrivelse af hastighed profil, som kan angive hvad profilen er beregnet til, fx Filme, Ræs, etc" }, "pidTuningShowAllPids": { "message": "Vis alle PID profiler" @@ -1757,7 +1754,7 @@ "message": "Feedforward boost tilføjer ekstra skub i respons på pind acceleration eller deceleration.

Dette minimerer gyro strøj, der er forårsaget af motor acceleration forsinkelse, og reducerer overskridelsen, når pindene decelererer ved at trække tilbage hårdt på motorerne.

Standard boost virker for de fleste opsætninger. Race piloter kan foretrække at øge det en lille smule. Boost kan finjusteres med omhyggelig log analyse." }, "pidTuningFeedforwardMaxRateLimit": { - "message": "Maksimal grænse for Rate" + "message": "Maksimal grænse for hastighed" }, "pidTuningFeedforwardMaxRateLimitHelp": { "message": "Sænker hastighed fremad, efterhånden som pindene bevæger sig mod maksimal position, for at minimere overskydning ved starten af en flip- eller krænging.

Gør intet i slutningen af et flip eller krænging. \nLavere værdier får dæmpning til at begynde tidligere.

Normalt kræver denne værdi ikke ændring. Den højeste værdi, der er i overensstemmelse med acceptabel overskridelse ved starten af krængning eller flips, er bedst." @@ -1804,19 +1801,19 @@ "description": "Feedforward Term helpicon message on PID table titlebar" }, "pidTuningMaxRateWarning": { - "message": "Advarsel: meget høje rater kan resultere i desynk fra hurtige decelerationer." + "message": "Advarsel: meget høje hastigheder kan resultere i desynk ved hurtige deaccelerationer." }, "pidTuningRcRate": { - "message": "RC rate" + "message": "RC hastighed" }, "pidTuningMaxVel": { "message": "Maks hastighed [grad/s]" }, "pidTuningRate": { - "message": "Rate" + "message": "Hastighed" }, "pidTuningSuperRate": { - "message": "Super Rate" + "message": "Super hastighed" }, "pidTuningRatesPreview": { "message": "Forhåndsvisning bevægelse" @@ -1897,13 +1894,13 @@ "message": "Kopier PID profil" }, "pidTuningCopyRateProfile": { - "message": "Kopier Rate profil" + "message": "Kopier hastigheds profil" }, "dialogCopyProfileText": { "message": "Kopiér værdier fra aktuel profil til" }, "dialogCopyRateProfileText": { - "message": "Kopiér værdier fra aktuel rate-profil til" + "message": "Kopier aktuel hastigheds profil til" }, "dialogCopyProfileTitle": { "message": "Kopier profil" @@ -1927,13 +1924,13 @@ "message": "Opsat PID profil: $1" }, "pidTuningReceivedRateProfile": { - "message": "Opsat Rate profil: $1" + "message": "Opsat hastigheds profil: $1" }, "pidTuningLoadedProfile": { "message": "Indlæst PID profil: $1" }, "pidTuningLoadedRateProfile": { - "message": "Indlæst Rate profil: $1" + "message": "Indlæst hastigheds profil: $1" }, "pidTuningDataRefreshed": { "message": "PID-data opfrisket" @@ -1959,7 +1956,7 @@ "message": "Pid Tuning Slider tilstand

Pidtuning slider mode kan være:

• FRA - ingen skydere, indtast værdier manuelt
• RP - skydere kontrol Roll og Pitch kun, indtast sideror værdier manuelt
• RPY - skydere styrer alle PID værdier

Advarsel:At gå fra RP til RPY tilstand vil overskrive sideror indstillinger med firmware indstillinger." }, "receiverHelp": { - "message": "• Kontrollér altid, at din Fejlsikring fungerer korrekt! Indstillingerne på fanen Fejlsikring kræver Configuration er i Eksperttilstand.
Brug den seneste Tx firmware!
Deaktiver hardware-ADC-filteret i senderen, hvis du bruger OpenTx eller EdgeTx.
Grundlæggende opsætning: Indstil indstillingerne 'Modtager' korrekt. Vælg det korrekte 'Kanalkort' for din radio. Kontroller at krængror, højderor og andre søjlegrafer bevæger sig korrekt. Justér kanalens endepunkt eller intervalværdier i senderen til ~1000 til ~2000, og sæt midtpunktet til 1500.
For mere information, læs dokumentationen." + "message": "• Kontroller altid, at din konfiguration af fejlsikring fungerer korrekt! Indstillingerne på fanen Fejlsikring kræver Configuration er i Eksperttilstand.
Brug den seneste Tx firmware!
Deaktiver hardware-ADC-filteret i senderen, hvis du bruger OpenTx eller EdgeTx.
Grundlæggende opsætning: Indstil indstillingerne 'Modtager' korrekt. Vælg det korrekte 'Kanalkort' for din radio. Kontroller at krængror, højderor, gas, sideror og andre søjlegrafer bevæger sig korrekt. Justér kanalens endepunkt eller intervalværdier i senderen til ~1000 til ~2000, og sæt midtpunktet til 1500.
For mere information, læs dokumentationen." }, "receiverThrottleMid": { "message": "Gas MID" @@ -2019,7 +2016,7 @@ "message": "Deaktiveret" }, "receiverRefreshRateTitle": { - "message": "Grafopfriskningrate" + "message": "Graf opfriskning frekvens" }, "receiverResetRefreshRate": { "message": "Nulstil" @@ -2185,7 +2182,7 @@ "message": "Sideror D justering" }, "adjustmentsFunction12": { - "message": "Profilvalg Rate" + "message": "Profilvalg hastighed" }, "adjustmentsFunction13": { "message": "Højderor hastighed" @@ -2338,7 +2335,7 @@ "message": "Vinkel ved maks" }, "servosDirectionAndRate": { - "message": "Retning og rate" + "message": "Retning og hastighed" }, "servosLiveMode": { "message": "Aktivér Live-tilstand" @@ -2584,6 +2581,9 @@ "motorsRemapDialogRiskNotice": { "message": "Sikkerheds meddelelse
Fjern alle propeller for at forhindre skader !
Motorerne vil rotere !" }, + "motorsRemapDialogExplanations": { + "message": "Bemærk
Motorer vil rotere en efter en, og du vil være i stand til at vælge hvilken motor der skal rotere. Batteriet skal tilsluttes, den korrekte ESC-protokol skal vælges. Dette værktøj kan kun omarrangere motorer som er opdaget af FC . Mere komplekse ommapping kan ske med CLI 'resource' kommando. Se denne Wiki side." + }, "motorsRemapDialogSave": { "message": "Gem" }, @@ -2653,6 +2653,9 @@ "escDshotDirectionDialog-WrongProtocolText": { "message": "Funktionen fungerer kun med DSHOT ESC'er.
Kontroller, at din ESC understøtter Dshot protokol og sæt protokol på fanen $t(tabMotorTesting.message)." }, + "escDshotDirectionDialog-WrongMixerText": { + "message": "Antallet af motorer er 0.
Kontroller den aktuelle Mix på fanen $t(tabMotorTesting.message), eller brug et tilpasset mix via CLI. Se denne Wiki side." + }, "escDshotDirectionDialog-WrongFirmwareText": { "message": "Opdater firmwaren.
Sørg for at du bruger den seneste firmware: Betaflight 4.3 eller nyere." }, @@ -3032,7 +3035,7 @@ "message": "Manuel valg af baud rate for FC, som ikke understøtter standard hastighed eller forbinder via bluetooth.
Bemærk: Ikke brugt hvis forbundet via USB DFU" }, "firmwareFlasherBaudRate": { - "message": "Baudhastighed" + "message": "Baud hastighed" }, "firmwareFlasherShowDevelopmentReleases": { "message": "Vis udviklings releases" @@ -4010,6 +4013,9 @@ "pidTuningVbatSagCompensation": { "message": "Vbat Sag Compensation" }, + "pidTuningVbatSagCompensationHelp": { + "message": "Giver stabil gas og PID ydeevne i hele batteris spændingsområde ved at øge motoren output som kompensation for fald i batteri spænding.

Kompensationen kan variere mellem 0 og 100%. Fuld kompensation (100%) anbefales.

Besøg denne wiki-post for mere info." + }, "pidTuningVbatSagValue": { "message": "%" }, @@ -4088,6 +4094,9 @@ "pidTuningIdleMinRpm": { "message": "Dynamisk tomgang [* 100 RPM]" }, + "pidTuningIdleMinRpmHelp": { + "message": "Dynamisk tomgang forbedrer styringen ved lav omdr/min og reducerer risikoen for desynkronisering af motor.

Det forbedrer PID værdi, stabilitet ved nul gas, omvendt hænge tid og motorbremsning.

Dynamic tomgang min rpm skal sættes til omkring 3000 - 3500 rpm. For 4.2, indstil DShot tomgangs værdi lavt, fx 1%. Der er ingen grund til at justere DShot tomgangs værdi i 4.3.

Besøg denne wiki-post for mere info." + }, "pidTuningIdleMinRpmDisabled": { "message": "Dynamisk tomgang er slået fra, fordi Dshot Telemetry er slået FRA" }, @@ -4100,6 +4109,9 @@ "pidTuningIntegratedYaw": { "message": "Integreret sideror" }, + "pidTuningIntegratedYawCaution": { + "message": "ADVARSEL: Hvis du aktiverer denne funktion, skal du justere sideror PID i overensstemmelse hermed (Yaw PID). Mere info her" + }, "pidTuningIntegratedYawHelp": { "message": "Integreret sideror integrerer sideror P, I og D værdier, der tillader at sideror P, I og D kan tunes lidt, som hvis du tuner højderor og krængror.

Meget lidt I er påkrævet, fordi den integrerede P fungerer som I, og integreret D fungerer som P.

BEMÆRK: Integreret sideror kræver brug af Absolut kontrol, da der ikke er brug for I med Integreret sideror." }, @@ -4203,10 +4215,10 @@ "message": "Gas værdi ved svævning" }, "failsafeGpsRescueItemAscendRate": { - "message": "Jordhastighed (meter/sekund)" + "message": "Stignings hastighed (meter/sekund)" }, "failsafeGpsRescueItemDescendRate": { - "message": "Stignings hastighed (meter/sekund)" + "message": "Nedstignings hastighed (meter/sekund)" }, "failsafeGpsRescueItemMinSats": { "message": "Mindste antal satellitter" @@ -5032,7 +5044,7 @@ "message": "Effektforbrug " }, "osdTextElementPIDRateProfile": { - "message": "Profil: PID og Rate", + "message": "Profil: PID og hastighed", "description": "One of the elements of the OSD" }, "osdDescElementPIDRateProfile": { @@ -5279,11 +5291,11 @@ "message": "RPM frekvens rapporteret af ESC telemetri" }, "osdTextElementRateProfileName": { - "message": "Profil: Rate profilnavn", + "message": "Profil: Hastighed profilnavn", "description": "One of the elements of the OSD" }, "osdDescElementRateProfileName": { - "message": "Viser det aktuelle rate profilnavn" + "message": "Viser det aktuelle hastigheds profilnavn" }, "osdTextElementPidProfileName": { "message": "Profil: PID profilnavn", @@ -6183,19 +6195,19 @@ "message": "PID profil" }, "pidTuningProfileTip": { - "message": "Op til 3 forskellige PID profiler kan gemmes på FC. PID profilerne omfatter PID, D forstærkning og vinkel-/horisont indstillinger. \nDu kan skifte PID profil under flyvning, ved fx at oprette en 3 positionskontakt for 'Profilvalg Rate' på fanen 'Kanal justeringer'." + "message": "Op til 3 forskellige PID profiler kan gemmes på FC. PID profilerne omfatter PID, D forstærkning og vinkel-/horisont indstillinger. \nDu kan skifte PID profil under flyvning, ved fx at oprette en 3 positionskontakt for 'Profilvalg PID' på fanen 'Kanal justeringer'." }, "pidTuningRateProfile": { - "message": "Rate profil" + "message": "Hastighed profil" }, "pidTuningRateProfileTip": { - "message": "Op til 3 forskellige Rate profiler kan gemmes i FC. Rateprofilerne inkluderer indstillingerne for 'RC Rate', 'Rate', 'Expo', 'Gas' og 'TPA'. \nDu kan skifte Rate profil under flyvning, ved fx at oprette en 3 positionskontakt for 'Profilvalg Rate' på fanen 'Kanal justeringer'." + "message": "Op til 3 forskellige hastighed profiler kan gemmes i FC. Hastighed profilerne inkluderer indstillingerne for 'RC Rate', 'Rate', 'Expo', 'Gas' og 'TPA'. \nDu kan skifte hastighed profil under flyvning, ved fx at oprette en 3 positionskontakt for 'Profilvalg hastighed' på fanen 'Kanal justeringer'." }, "pidTuningRateSetup": { "message": "Begynder/Acro" }, "pidTuningRateSetupHelp": { - "message": "Juster disse værdier for at indstille din Rate. Brug RC Rate til at øge den maksimale hastighed generelt, brug Super Rate til at have højere satser i slutningen af pind bevægelse, brug Expo til at få den pind midter position til at føles glat.", + "message": "Juster disse værdier for at indstille din hastighed. Brug RC Rate til at øge den maksimale hastighed generelt, brug Super Rate til at have højere værdier i slutningen af pind bevægelse, brug Expo til at få pind midter position til at føles glat.", "description": "Rate table helpicon message" }, "pidTuningDelta": { @@ -6244,7 +6256,7 @@ "message": "Blackbox logger til ..." }, "onboardLoggingRateOfLogging": { - "message": "Blackbox loggnings hastighed" + "message": "Blackbox lognings hastighed" }, "onboardLoggingDebugMode": { "message": "Blackbox logger med debug for ..." @@ -6307,10 +6319,10 @@ "message": "Brug mørkt tema for Configuration" }, "pidTuningRatesType": { - "message": "Rate type" + "message": "Hastighed type" }, "pidTuningRatesTypeTip": { - "message": "Ændring af Rate type vil ændre kurven og den måde, du kan indstille den" + "message": "Ændring af hastighed type vil ændre kurven og den måde, du kan indstille den" }, "pidTuningRcRateRaceflight": { "message": "Hastighed" @@ -6325,13 +6337,13 @@ "message": "RC kurve" }, "pidTuningRateQuickRates": { - "message": "Maksimal sats" + "message": "Maksimal hastighed" }, "pidTuningRcRateActual": { "message": "Centrer følsomhed" }, "dialogRatesTypeTitle": { - "message": "Ændring af Rate type" + "message": "Ændring af hastigheds type" }, "dialogRatesTypeNote": { "message": "ADVARSEL: Du ændrer Rate typen. Hvis du ændrer Rate, vil værder blive sat til en standardkurve." diff --git a/locales/de/messages.json b/locales/de/messages.json index 45b86094cc..6a1b562b88 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -89,6 +89,9 @@ "expertMode": { "message": "Expertenmodus einschalten" }, + "expertModeDescription": { + "message": "Expertenmodus-Optionen aktivieren" + }, "warningSettings": { "message": "Warnungen anzeigen" }, @@ -135,7 +138,7 @@ "description": "Text of the dataflash image in the header of the page." }, "sensorStatusGyro": { - "message": "Gyro" + "message": "Gyroskop" }, "sensorStatusGyroShort": { "message": "Gyro", @@ -597,7 +600,7 @@ "message": "Mitmachen" }, "defaultContributingText": { - "message": "Wenn du helfen möchtest, Betaflight noch besser zu machen, kannst du in vielerlei Hinsicht helfen, beispielsweise:
    \n
  • nutze dein Wissen über Betaflight, um Inhalte auf unserem Wiki zu erstellen, zu aktualisieren oder Fragen anderer Benutzer in Online-Foren zu beantworten;
  • \n
  • steuere Code zur Firmware und dem Konfigurator bei - neue Funktionen, Korrekturen, Verbesserungen;
  • Testen von neuen Funktionen und Korrekturen oder Feedback abgeben;
  • Hilf anderen Benutzern beim Lösen der Probleme, die sie in unserem Problem-Tracker melden, oder nimm an Diskussionen zu Funktionsanfragen teil;
  • Übersetze den Betaflight Konfigurator in eine neue Sprache oder helfe, die vorhandenen Übersetzungen zu aktualisieren.
" + "message": "Wenn du beitragen möchtest, Betaflight noch besser zu machen, kannst du in vielerlei Hinsicht helfen:
  • Nutze dein Wissen über Betaflight, um Inhalte auf unserem Wiki zu erstellen, zu aktualisieren oder Fragen anderer Benutzer in Online-Foren zu beantworten;
  • Trage Code zur Firmware und zum Konfigurator bei - zu neuen Features, Korrekturen, Verbesserungen;
  • Testen von neuen Funktionen und Korrekturen und geben Feedback ab;
  • Hilfe für andere Benutzer bei der Lösung von Probleme, die sie in unserem Issue-Tracker melden, und Teilnahme an Diskussionen auf Funktionsanfragen;
  • Übersetze den Betaflight Konfigurator in eine andere Sprachen oder hilf dabei, die vorhandenen Übersetzungen zu pflegen.
" }, "defaultFacebookText": { "message": "Wir haben auch eine Facebook Gruppe.
Trete bei, um über Betaflight zu sprechen, Konfigurationsfragen zu stellen oder einfach nur um mit anderen Piloten abzuhängen." @@ -605,6 +608,9 @@ "defaultDiscordText": { "message": "Betaflight Discord Server.
Teile deine Flugerfahrung, diskutiere über Betaflight, hilf Anderen oder erhalte Hilfe von der Community." }, + "statisticsDisclaimer": { + "message": "Betaflight Konfigurator sammelt anonyme Nutzungsdaten. Diese Daten umfassen zum Beispiel (aber nicht beschränkt) die Anzahl der Starts, die geographische Region der Nutzer, Typen von Flugsteuerungen, Firmware-Versionen, Verwendung von UI-Elementen und Tabs etc. Die Zusammenfassung dieser Daten ist hier einsehbar.. Die Erfassung wird durchgeführt, um besser zu verstehen, wie Betaflight Configurator verwendet wird, um Community-Trends zu verstehen und für mögliche UI-Verbesserungen. Benutzer können die Datenerfassung über die Registerkarte Optionen abstellen (Opt-out)." + }, "defaultChangelogHead": { "message": "Konfigurator - Changelog" }, @@ -636,6 +642,9 @@ "defaultDocumentation": { "message": "Dokumentation zu Betaflight gibt es in den Release Notes und im Wiki.

" }, + "defaultDocumentation1": { + "message": "Das Betaflight-Wiki ist eine großartige Quelle für Informationen. Es kann hier aufgerufen werden." + }, "defaultDocumentation2": { "message": "Änderungen und Aktualisierungen für die Firmware findest du auf der GitHub Release-Seite." }, @@ -654,12 +663,18 @@ "defaultSupport1": { "message": "RC Groups Forumseite" }, + "defaultSupport2": { + "message": "Betaflight-Wiki" + }, "defaultSupport3": { "message": "Joshua Bardwells Videos zu Betaflight 4.3 " }, "defaultSupport4": { "message": "GitHub" }, + "defaultSupport5": { + "message": "Betaflight-Entwickler auf Discord" + }, "initialSetupButtonCalibrateAccel": { "message": "Beschleunigungssensor kalibieren" }, @@ -1306,7 +1321,7 @@ "message": "Hinweis: Stelle sicher, dass dein FC mit dieser Geschwindigkeit arbeiten kann. Prüfe die CPU-Auslastung und die Zykluszeit-Stabilität. Änderungen führen möglicherweise dazu, dass die PIDs neu eingestellt werden müssen. Tipp: Deaktiviere Beschleuningungsmesser und unbenutzte Sensoren für eine bessere FC-Leistung." }, "configurationGPS": { - "message": "GPS" + "message": "GPS-Konfiguration" }, "configurationGPSProtocol": { "message": "Protokoll" @@ -1339,9 +1354,6 @@ "message": "Wenn aktiviert, wird nur beim ersten \"Armen\", nachdem der Akku angeschlossen wurde, der Startpunkt gesetzt. Wenn nicht aktiviert, wird jedes Mal, wenn der Quad \"gearmt\" wird, der Startpunkt aktualisiert.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "Hinweis:: Nicht vergessen den seriellen Anschluss zu konfigurieren (Anschlüsse Tab), wenn GPS benutzt wird." - }, "configurationSerialRX": { "message": "Serieller Empfänger" }, @@ -1453,6 +1465,9 @@ "portsFunction_FRSKY_OSD": { "message": "OSD (FrSky Protokoll)" }, + "portsFunction_VTX_MSP": { + "message": "VTX (MSP + Anzeigeport)" + }, "pidTuningProfileOption": { "message": "Profil $1" }, @@ -1943,6 +1958,9 @@ "pidTuningSliderModeHelp": { "message": "PID Tuning Slider Modus

PID Tuning Slider Modus kann sein:

• AUS - keine Slider, Werte manuell eingeben
• RP - Schieberegler steuert Rollen und Neigung, Yaw Werte manuell eingeben
• RPY - Schieberegler steuert alle PID Achsen

Warnung:Wenn Du vom RP zum RPY Modus gehst, werden die Yaw Einstellungen mit Default-Firmware Werten überschrieben." }, + "receiverHelp": { + "message": "• Überprüfe immer, daß Failsafe richtig funktioniert! Die Einstellungen dazu befinden sich im Failsafe-Reiter und benötigen aktivierten Expertenmodus.
Verwende die neueste Tx-Firmware!
Deaktiviere den Hardware-ADC-Filter im Sender, wenn Du OpenTx oder EdgeTx verwendest.
Grundlegende Einstellungen: Konfiguriere die Empfänger-Einstellungen richtig. Wähle die richtige „Kanalzuordnung“ für Deinen Sender. Prüfe, dass die Roll-, Pitch- und sonstigen Senderbefehle in den Balkengrafiken die korrekten Ausschläge erzeugen. Passe die Endpunkt- oder Bereichswerte des Senders auf ~1000 bis ~2000 an und setze den Mittelwert auf 1500. Weitere Informationen findest du in der Dokumentation." + }, "receiverThrottleMid": { "message": "Gas Mittelwert" }, @@ -2566,6 +2584,9 @@ "motorsRemapDialogRiskNotice": { "message": "Sicherheitshinweis
Entfernen alle Propeller um Verletzungen zu verhindern!
Die Motoren werden sich drehen!" }, + "motorsRemapDialogExplanations": { + "message": "Informationshinweis
Die Motoren laufen einzeln und du kannst wählen, welcher Motor läuft. Der Akku sollte angeschlossen und das richtige ESC-Protokoll sollte ausgewählt werden. Diese Funktion kann nur aktive Motoren neu anordnen. Eine komplexere Neuzuordnung erfordert den CLI-Befehl \"Resource\". Siehe hierzu die Wiki Seite." + }, "motorsRemapDialogSave": { "message": "Speichern" }, @@ -2635,6 +2656,9 @@ "escDshotDirectionDialog-WrongProtocolText": { "message": "Diese Funktion funktioniert nur mit DSHOT ESCs.
Stelle sicher, dass der ESC (electric speed controller) das DSHOT Protokoll unterstützt, wählen dieses Protokoll im $t(tabMotorTesting.message) Fenster aus." }, + "escDshotDirectionDialog-WrongMixerText": { + "message": "Anzahl Motoren ist 0.
Prüfe den aktuellen Mixer auf der Registerkarte $t(tabMotorTesting.message) oder richte einen benutzerdefinierten Mixer über CLI ein. Siehe auch diese Wiki-Seite." + }, "escDshotDirectionDialog-WrongFirmwareText": { "message": "Firmware aktualisieren.
Stelle sicher, dass du die neueste Firmware verwendest: Betaflight 4.3 oder neuer." }, @@ -2911,6 +2935,9 @@ "firmwareFlasherReleaseTarget": { "message": "Ziel:" }, + "firmwareFlasherTargetWikiUrlInfo": { + "message": "Erhalte weitere Informationen über das 'Target' im Betaflight-Wiki (Wiki-URL in der 'Unified Target'-Konfiguration)" + }, "firmwareFlasherReleaseMCU": { "message": "MCU:" }, @@ -3088,6 +3115,9 @@ "firmwareFlasherRecoveryHead": { "message": "Wiederherstellung / abgebrochene Kommunikation" }, + "firmwareFlasherRecoveryText": { + "message": "Bei Verlust der Kommunikation mit Ihrem Board, folge diesen Schritten, um die Kommunikation wiederherzustellen:
  • Spannungsversorgung trennen.
  • Aktiviere 'Keine Neustart-Sequenz', aktiviere 'Full Chip Löschung'.
  • Kontaktiere die BOOT-Pins per Jumper oder halte den BOOT-Button gedrückt.
  • Spannungsversorgung herstellen (Aktivitäts-LED blinkt NICHT, wenn korrekt).
  • Installiere bei Bedarf alle STM32-Treiber und Zadig (siehe USB-Flashen-Abschnitt des Betaflight-Handbuchs).
  • Konfigurator schließen, Konfigurator neu starten.
  • BOOT-Button loslassen, wenn auf dem FC vorhanden.
  • Flashen mit korrekter Firmware (Verwendung der manuellen Baudrate wenn im FC-Handbuch angegeben).
  • Spannungsversorgung trennen
  • BOOT-Jumper entfernen.
  • Spannungsversorgung anschließen (Aktivitäts-LED sollte blinken).
  • Normal verbinden.
" + }, "firmwareFlasherButtonLeave": { "message": "Firmware-Flasher verlassen" }, @@ -3669,7 +3699,7 @@ "description": "Firmware filter sliders restricted message" }, "pidTuningSlidersExpertSettingsDetectedNote": { - "message": "Hinweis: Schieberegler sind deaktiviert, da sich die aktuellen Werte außerhalb des Bereichs der Grundeinstllungen befinden. Zum Expertenmodus wechseln", + "message": "Hinweis: Schieberegler sind deaktiviert, da sich die aktuellen Werte außerhalb des Bereichs der Grundeinstellungen befinden. Wechsle zum Expertenmodus.", "description": "Slider expert settings detected while in non-expert mode" }, "pidTuningSliderLow": { @@ -3986,6 +4016,9 @@ "pidTuningVbatSagCompensation": { "message": "Kompensation des Spannungseinbruches am Akku" }, + "pidTuningVbatSagCompensationHelp": { + "message": "Erzeugt eine konstante Gas-und PID-Performance über den benutzbaren Batteriespannungsbereich durch Erhöhung der Motor-Leistungsvorgabe bei sinkender Batteriespannung.

Die Höhe der Kompensation kann zwischen 0 und 100% variiert werden. Vollständige Kompensation (100%) wird empfohlen.

Mehr Infos: diesen Wiki-Eintrag für weitere Informationen." + }, "pidTuningVbatSagValue": { "message": "%" }, @@ -4064,6 +4097,9 @@ "pidTuningIdleMinRpm": { "message": "Dynamischer Leerlaufwert [*100 U/min]" }, + "pidTuningIdleMinRpmHelp": { + "message": "Dynamischer Leerlauf (Dynamic Idle) verbessert die Kontrolle bei niedrigen Drehzahlen und reduziert das Risiko von Motor-Desyncs.

Es verbessert PID-Autorität, Null-Gas-Stabilität, die Hangtime bei invertiertem Copter und die Motorbremse.

Die Minimaldrehzahl sollte etwa 3000 - 3500 U/min betragen. Für Betaflight 4.2 den DShot Leerlaufwert niedrig setzen, z.B. 1%. Es nicht notwendig, den DShot Idle Wert in Betaflight 4.3 anzupassen.

Siehe diesen Wiki-Eintrag für weitere Informationen." + }, "pidTuningIdleMinRpmDisabled": { "message": "Dynamischer Leerlauf(Idle) ist AUS da DShot Telemetrie AUS ist" }, @@ -4076,6 +4112,9 @@ "pidTuningIntegratedYaw": { "message": "Integriertes Yaw" }, + "pidTuningIntegratedYawCaution": { + "message": "ACHTUNG: Bei Aktivierung dieser Funktion müssen die YAW PID-Werte entsprechend angepasst werden. Mehr Info hier" + }, "pidTuningIntegratedYawHelp": { "message": "Der 'Integrierter Yaw' Wert integriert die Werte P, I und D und erlaubt Yaw den P, I, D etwas zu verändernt ähnlich wie wenn Du Pitch und Roll tunest.

I-Werte sind sehr wenig erforderlich, weil das integrierte P wie I wirkt und integrierte D-Werte wirken wie P.

HINWEIS: Integrierter Yaw erfordert die Verwendung von Absoluter Kontrolle, da I mit dem integrierten Yaw nicht benötigt wird." }, @@ -4083,10 +4122,10 @@ "message": "Abweichender Winkel (Grad) in dem das Board anders eingebaut wurde als vorgesehen (über Kopf, gedreht, usw.) Falls externe Sensoren (Gyro, Acc, Mag) verwendet werden, bitte diese ebenfalls neu anlernen." }, "failsafeFeaturesHelpOld": { - "message": "Die Failsave Einstellungen haben sich geändert. Benutze Betaflight V1.12.0+um auf die verbesserten Einstellungen zuzugreifen." + "message": "Die Failsafe-Einstellungen haben sich geändert. Benutze Betaflight V1.12.0+, um auf die verbesserten Einstellungen zuzugreifen." }, "failsafePaneTitleOld": { - "message": "Empfänger Failsave" + "message": "Empfänger Failsafe" }, "failsafeFeaturesHelpNew": { "message": "Es gibt ein zweistufiges Failsafe-System. Stufe 1 tritt dann ein, wenn die Impulslänge eines Kanals ungültig ist, der Empfänger einen Failsafe übermittelt oder kein Signal vom Empfänger anliegt. Die Kanal-Rückfalleinstellungen werden dann für alle Kanäle gesetzt und ein kurzes Zeitfenster geöffnet, um eine erneute Verbindung zu ermöglichen. Stufe 2 tritt ein, wenn die Fehlerbedingung länger besteht als die eingestellte 'Signalverlustdauer für die Aktivierung der Stufe 2', während der Copter gearmt ist. Alle Känale behalten die in Stufe 1 definierten Werte, mit Ausnahme der in Stufe 2 gesetzten Werte.
Hinweis: Bei der Aktivierung von Stufe 1 werden die Kanal-Rückfalleinstellungen auch auf AUX-Kanäle angewendet, die ungültige Impulsewerte haben." @@ -4124,6 +4163,9 @@ "failsafeDelayHelp": { "message": "Stage 1 Wartezeit für Signalwiederherstellung" }, + "failsafeThrottleLowItem": { + "message": "Failsafe Gas niedrig Verzögerung [seconds]" + }, "failsafeThrottleLowHelp": { "message": "Einfaches disarmen des Fluggerätes, falls das Gas über diese Zeit niedrig war. Dies wird anstatt der Failsafe Prozedur durchgeführt." }, @@ -4555,6 +4597,10 @@ "message": "Schriftart {{fontName}}", "description": "Content of the selector for the OSD Font in the preview" }, + "osdSetupPreviewCheckZoom": { + "message": "Zoom", + "description": "Check to select a bigger display of the OSD preview in small screens" + }, "osdSetupVideoFormatTitle": { "message": "Videoformat" }, @@ -4801,26 +4847,83 @@ "message": "Aux-Kanal-Wert", "description": "One of the elements of the OSD" }, + "osdTextElementSysGoggleVoltage": { + "message": "Spannung der Brille", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysGoggleVoltage": { + "message": "Durch die Brille ausgegeben: Spannung der Brille" + }, "osdTextElementSysVtxVoltage": { "message": "VTX-Spannung", "description": "One of the system elements of the OSD" }, + "osdDescElementSysVtxVoltage": { + "message": "Durch die Brille ausgegeben: VTX-Spannung" + }, "osdTextElementSysBitrate": { "message": "VTX-Bitrate", "description": "One of the system elements of the OSD" }, + "osdDescElementSysBitrate": { + "message": "Durch die Brille ausgegeben: Video-Bitrate" + }, "osdTextElementSysDelay": { "message": "VTX-Verzögerung", "description": "One of the system elements of the OSD" }, + "osdDescElementSysDelay": { + "message": "Durch die Brille ausgegeben: Video-Verzögerung" + }, "osdTextElementSysDistance": { "message": "VTX-Distanz", "description": "One of the system elements of the OSD" }, + "osdDescElementSysDistance": { + "message": "Durch die Brille ausgegeben: Distanz der Videoübertragung" + }, + "osdTextElementSysLQ": { + "message": "Brille-Linkqualität", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysLQ": { + "message": "Durch die Brille ausgegeben: Video-Linkqualität" + }, + "osdTextElementSysGoggleDVR": { + "message": "Status des Brillen-DVR", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysGoggleDVR": { + "message": "Durch die Brille ausgegeben: Status des Brillen-DVR" + }, + "osdTextElementSysVtxDVR": { + "message": "Status des VTX-DVR", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysVtxDVR": { + "message": "Durch die Brille ausgegeben: Status des VTX-DVR" + }, + "osdTextElementSysWarnings": { + "message": "Brille-Systemwarnungen", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysWarnings": { + "message": "Durch die Brille ausgegeben: Videosystem-Warnungen" + }, "osdTextElementSysVtxTemp": { "message": "VTX-Temperatur", "description": "One of the system elements of the OSD" }, + "osdDescElementSysVtxTemp": { + "message": "Durch die Brille ausgegeben: VTX-Temperatur" + }, + "osdTextElementSysFanSpeed": { + "message": "Geschwindigkeit des Brillenlüfters", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysFanSpeed": { + "message": "Durch die Brille ausgegeben: Geschwindigkeit des Brillenlüfters" + }, "osdTextElementCraftName": { "message": "Modellname", "description": "One of the elements of the OSD" @@ -5173,6 +5276,9 @@ "message": "Anzeigename", "description": "One of the elements of the OSD" }, + "osdDescElementDisplayName": { + "message": "Kann auch über die CLI-Variable \"display_name\" gesetzt werden." + }, "osdTextElementPilotName": { "message": "Pilotenname", "description": "One of the elements of the OSD" @@ -5257,6 +5363,20 @@ "osdDescTxUplinkPower": { "message": "Zeigt den Wert der Tx-Leistung (mW oder W). Nützlich, wenn Dynamische Leistung für bei unterstützten Fernsteuerungen aktiviert ist" }, + "osdTextElementReadyMode": { + "message": "Ready Modus", + "description": "When active READY will be displayed until flying" + }, + "osdDescElementReadyMode": { + "message": "Wenn aktiviert, wird READY bis zum Fliegen angezeigt" + }, + "osdTextElementRSNRValue": { + "message": "RSNR-Wert", + "description": "One of the elements of the OSD" + }, + "osdDescElementRSNRValue": { + "message": "RSNR-Wert" + }, "osdTextElementUnknown": { "message": "Unbekannt $1", "description": "One of the elements of the OSD" @@ -5303,6 +5423,9 @@ "message": "Akkunutzung in Wh", "description": "One of the statistics that can be shown at the end of the flight in the OSD" }, + "osdDescStatUsedWh": { + "message": "Genutzte Akkukapazität in Wh" + }, "osdTextStatMaxAltitude": { "message": "Maximale Höhe", "description": "One of the statistics that can be shown at the end of the flight in the OSD" @@ -5450,6 +5573,13 @@ "osdDescStatMinRssiDbm": { "message": "Minimaler RSSI dBm Wert" }, + "osdTextStatMinRSNR": { + "message": "Minimaler RSNR-Wert", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatMinRSNR": { + "message": "Minimaler RSNR-Wert" + }, "osdTextStatUnknown": { "message": "Unbekannt $1", "description": "One of the statistics that can be shown at the end of the flight in the OSD" @@ -5643,6 +5773,13 @@ "osdWarningOverCap": { "message": "Warnt, wenn die verbrauchten mAh das konfigurierte Kapazitätslimit überschreitet" }, + "osdWarningTextRSNR": { + "message": "RSNR", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningRSNR": { + "message": "Warnung, wenn der RSNR-Wert unter den eingestellten Alarmwert fällt" + }, "osdWarningTextUnknown": { "message": "Unbekannt $1" }, @@ -5679,6 +5816,10 @@ "osdButtonSaved": { "message": "Gespeichert" }, + "vtxHelp": { + "message": "Hier können die Werte des Video Transmitter (VTX) konfiguriert werden. Es können die Übertragungswerte, einschließlich der VTX-Tabelle, angezeigt und geändert werden, wenn der Flugcontroller und der VTX dies unterstützen.
Um den VTX einzurichten, folge diesen Schritten:
1. Gehe zudieser Seite;
2. Finde die passende VTX-Konfigurationsdatei für das Land in dem der Copter betrieben wird und lade sie herunter;
3. Klicke unten auf '$t(vtxButtonLoadFile.message)', wähle die VTX-Konfigurationsdatei und lade sie;
4. Überprüfe, ob die Einstellungen korrekt sind;
5. Klicke auf '$t(vtxButtonSave.message)' um die VTX-Einstellungen auf dem Flugcontroller zu speichern.
6. Optional: klicke '$t(vtxButtonSaveLua.message)' um eine Lua-Konfigurationsdatei zu speichern, welche mit den Betaflight Lua-Scripten benutzt werden kann. (Mehr dazu hier.)", + "description": "Introduction message in the VTX tab" + }, "vtxMessageNotSupported": { "message": "Achtung: Dein VTX ist nicht konfiguriert oder nicht unterstützt. Dadurch kannst du die VTX-Werte von hier aus nicht ändern. Dies ist nur möglich, wenn der Flugcontroller mit einem Protokoll wie Tramp oder SmartAudio verbunden ist und in der Registerkarte $t(tabPorts.message) korrekt konfiguriert ist.", "description": "Message to show when the VTX is not supported in the VTX tab" @@ -5731,6 +5872,10 @@ "message": "Tramp", "description": "Text for one of the types of the VTX type in VTX tab" }, + "vtxType_5": { + "message": "MSP", + "description": "Text for one of the types of the VTX type in VTX tab" + }, "vtxType_255": { "message": "Unbekannt", "description": "Text for one of the types of the VTX type in VTX tab" @@ -5891,6 +6036,10 @@ "message": "Fehler beim Speichern der VTX Konfigurationdatei", "description": "Message in the GUI log when the VTX Config file is saved" }, + "vtxSavedLuaFileOk": { + "message": "lua VTX-Konfigurationsdatei gespeichert", + "description": "Message in the GUI log when the lua VTX Config file is saved" + }, "vtxSavedLuaFileKo": { "message": "Fehler beim Speichern der lua VTX-Konfigurationsdatei", "description": "Message in the GUI log when the lua VTX Config file saving has failed" @@ -5935,6 +6084,10 @@ "message": "Speichern", "description": "Save button in the VTX tab" }, + "vtxButtonSaving": { + "message": "Speichern", + "description": "Show state of the Save button in the VTX tab" + }, "vtxButtonSaved": { "message": "Gespeichert", "description": "Saved action button in the VTX tab" @@ -6525,6 +6678,9 @@ "firmwareFlasherBuildMotorProtocols": { "message": "Motor-Protokoll" }, + "firmwareFlasherConfigurationFile": { + "message": "Konfigurationsdatei:" + }, "firmwareFlasherRadioProtocolDescription": { "message": "Wähle das zu verwendende Funkprotokoll. Beachte, dass nur ein Element ausgewählt werden kann." }, diff --git a/locales/es/messages.json b/locales/es/messages.json index 00f4318bda..c9ce41ef21 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -597,7 +597,7 @@ "message": "Contribuir" }, "defaultContributingText": { - "message": "Si quieres ayudar a hacer Betaflight incluso mejor puedes hacerlo de diferentes maneras, incluyendo:
  • usando tu conocimiento de Betaflight para crear o actualizar contenido en nuestra wiki, o respondiendo preguntas de otros usuarios en foros online;
  • contribuyendo con código al firmware y al configurador - nuevas funcionalidades, correcciones, mejoras;
  • probando nuevas funcionalidades y correcciones y comentando resultados;
  • ayudando a otros usuario con los problemas que reportan en nuestro registro de incidencias, y participando en las discusiones sobre peticiones de nuevas funcionalidades;
  • traduciendo Betaflight Configurator a un nuevo idioma, o ayudando a mantener las traducciones existentes.
" + "message": "Si quieres ayudar a hacer Betaflight incluso mejor puedes hacerlo de diferentes maneras, incluyendo:
  • usando tu conocimiento de Betaflight para crear o actualizar contenido en nuestra wiki, o respondiendo preguntas de otros usuarios en foros online;
  • >contribuyendo con código al firmware y al configurador - nuevas funcionalidades, correcciones, mejoras;
  • probando nuevas funcionalidades y correcciones y comentando resultados;
  • ayudando a otros usuario con los problemas que reportan en nuestro registro de incidencias, y participando en las discusiones sobre peticiones de nuevas funcionalidades;
  • traduciendo Betaflight Configurator a un nuevo idioma, o ayudando a mantener las traducciones existentes.
" }, "defaultFacebookText": { "message": "También tenemos un Grupo de Facebook.
Únete a nosotros para tener un lugar donde hablar sobre Betaflight, preguntar sobre configuraciones, o simplemente charlar con otros pilotos." @@ -1318,7 +1318,7 @@ "message": "Nota: ¡Asegúrate de que tu FC es capaz de operar a estas velocidades! Comprueba la CPU y la estabilidad del tiempo por ciclo. Al cambiarlo puede ser necesario reajustar el PID. CONSEJO: Deshabilita el Acelerómetro y otros sensores para obtener más rendimiento." }, "configurationGPS": { - "message": "GPS" + "message": "Configuración del GPS" }, "configurationGPSProtocol": { "message": "Protocolo" @@ -1351,9 +1351,6 @@ "message": "Cuando se activa, sólo el primer armado después de que la batería se conecte será usado como punto origen. Si no se activa, cada vez que la aeronave se arme, el punto origen será actualizado.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "Nota: Recuerda configurar un Puerto Serie (en el apartado Puertos) cuando uses la funcionalidad GPS." - }, "configurationSerialRX": { "message": "Proveedor del Receptor Serie" }, @@ -1959,7 +1956,7 @@ "message": "Modo Deslizador de Ajuste PID

Puede ser:

• Apagado - sin deslizadores, introducir valores manualmente
• RP - los deslizadores controlan sólo Roll y Pitch, introduce los valores de Yaw manualmente
• RPY - los deslizadores controlan todos los valores del PID

Advertencia:Si cambias de modo RP a RPY se sobrescribirán los valores de Yaw con los ajustes del firmware." }, "receiverHelp": { - "message": "• ¡Comprueba siempre que tu Modo de Seguridad funciona correctamente! Los ajustes están en la pestaña Modo de Seguridad, que requiere el Modo Experto.
¡Usa el último firmware de tu Tx!
Desactiva el filtro ADC de hardware en el transmisor si utilizas OpenTx o EdgeTx.
Configuración básica: Configura los ajustes del receptor correctamente. Elige el \"Mapa de Canales\" correcto para tu radio. Comprueba que el Roll, el Pitch y otros gráficos de barras se mueven correctamente. Ajusta los valores extremos o rango del canal en el transmisor a ~1000 hasta ~2000, y establece el punto medio a 1500. Para obtener más información, lee la documentación." + "message": "• ¡Comprueba siempre que tu Modo de Seguridad funciona correctamente! Los ajustes están en la pestaña Modo de Seguridad, que requiere el Modo Experto.
¡Usa el último firmware de tu Tx!
Desactiva el filtro ADC de hardware en el transmisor si utilizas OpenTx o EdgeTx.
Configuración básica: Configura los ajustes del receptor correctamente. Elige el \"Mapa de Canales\" correcto para tu radio. Comprueba que el Roll, el Pitch y otros gráficos de barras se mueven correctamente. Ajusta los valores extremos o rango del canal en el transmisor a ~1000 hasta ~2000, y establece el punto medio a 1500. Para obtener más información, lee la documentación." }, "receiverThrottleMid": { "message": "Acelerador MED" diff --git a/locales/eu/messages.json b/locales/eu/messages.json index 80f3157511..9a2a4de4ab 100644 --- a/locales/eu/messages.json +++ b/locales/eu/messages.json @@ -533,9 +533,6 @@ "defaultContributingHead": { "message": "Hartu parte" }, - "defaultContributingText": { - "message": "Betaflight hobetzen lagundu nahi baduzu, modu askotan lagundu dezakezu, besteak beste:
  • Betaflight buruzko zure ezagutza erabiliz github-en edukia sortzeko edo eguneratzeko gure wiki-an, edo beste erabiltzaile batzuen galderei web foroetan erantzuten;
  • Firmware eta konfiguratzaile kodearekin laguntzen -ezaugarri berriekin, konponketak, hobekuntzak;
  • Funtzio eta konponbide berriak probatzen eta berrikuspena eskainiz;
  • Beste erabiltzaileei arazoak konpontzen laguntzen. eta funtzio eskaerei buruzko eztabaidetan parte hartu;
  • Betaflight Konfiguratzailearen hizkuntza berri batera itzultzen edo dagoeneko itzulpenak mantentzen laguntzen.
" - }, "defaultFacebookText": { "message": "Facebook Talde bat badaukagu.
Egin zaitez jarraitzaile Betafligth-i buruz hitz egiteko leku bat eukitzeko, konfigurazio galderak egiteko edota beste pilotuekin hitz egiteko." }, @@ -1182,9 +1179,6 @@ "configurationLoopTimeHelp": { "message": "Oharra: Ziurtatu zure FC abiadura horietan funtzionatzeko gai dela! Egiaztatu CPU eta Ziklo denboraren egonkortasuna. Aldatzean, beharrezkoa izango da PID berrezartzea. OHARRA: Errendimendu gehiago lortzeko, desgaitu azelerometroa eta bestelako sentsoreak." }, - "configurationGPS": { - "message": "GPSa" - }, "configurationGPSProtocol": { "message": "Protokoloa" }, @@ -1212,9 +1206,6 @@ "message": "Gaituta dagoenean, bateria konektatu ondorengo lehenengo besoa bakarrik erabiliko da etxeko puntu gisarako. Gaituta ez bada, aireontxia armatuta dagoen bakoitzean, etxeko puntua eguneratuko da.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "Oharra: Gogoratu Serial ataka bat konfiguratu (ataka fitxen bidez) GPS funtzioaerabiltzen duzunean." - }, "configurationSerialRX": { "message": "Serie hartzailea hornitzailea" }, diff --git a/locales/fr/messages.json b/locales/fr/messages.json index 73d54cf4c6..fd06e6714c 100644 --- a/locales/fr/messages.json +++ b/locales/fr/messages.json @@ -596,9 +596,6 @@ "defaultContributingHead": { "message": "Participation" }, - "defaultContributingText": { - "message": "Si vous souhaitez contribuer à améliorer Betaflight, vous pouvez aider de nombreuses manières. incluant:
  • en utilisant vos connaissances de Betaflight pour créer ou mettre à jour du contenu sur notre Wiki, ou en répondant aux questions d'autres utilisateurs dans les forums en ligne ;
  • contribuant du code au micrologiciel et au Configurateur - nouvelles fonctionnalités, corrections, améliorations, améliorations ;
  • tester nouvelles fonctionnalités et corrections et fournir des commentaires;
  • aider les autres utilisateurs à résoudre les problèmes qu'ils signalent dans notre outil de suivi de problèmes, et participer aux discussions sur les demandes de fonctionnalités ;
  • En traduisant Betaflight Configurator dans une nouvelle langue, ou contribuant à maintenir les traductions existantes.
" - }, "defaultFacebookText": { "message": "Nous avons également un Groupe Facebook.
\nVenez échanger à propos de Betaflight, posez des questions sur la configuration ou simplement passez du temps avec d'autres pilotes." }, @@ -1318,7 +1315,7 @@ "message": "Note: Assurez vous que votre FC peut fonctionner à ces vitesses ! Vérifiez le CPU. Cela peut demander de re-tuner ses PID. TIP: Désactivez l'accéléromètre et les autres capteurs pour gagner en performance." }, "configurationGPS": { - "message": "GPS" + "message": "Configuration du GPS" }, "configurationGPSProtocol": { "message": "Protocole" @@ -1351,9 +1348,6 @@ "message": "Si activé, le lieu du premier armement après branchement de la batterie sera défini comme point de départ. Si non activé, l'endroit de chaque armement sera défini comme point de départ.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "Note: Noubliez pas de configurer un Port Série (via l'onglet Ports) lorsque vous utilisez la fonction GPS." - }, "configurationSerialRX": { "message": "Type de récepteur série" }, @@ -1958,9 +1952,6 @@ "pidTuningSliderModeHelp": { "message": "Mode curseur de réglage de Pid

Le mode curseur de réglade de pid peut être :

• Désactivé - pas de curseurs, entrer les valeurs manuellement
• RP - les curseurs contrôlent Roll et Pitch uniquement, entrer les valeurs de Yaw manuellement
• RPY - les curseurs contrôlent toutes les valeurs de PID

Avertissement:Passer du mode RP au mode RPY écrasera les paramètres de Yaw avec les paramètres du firmware." }, - "receiverHelp": { - "message": "• Vérifiez toujours que votre Failsafe fonctionne correctement ! Les paramètres sont dans l’onglet Failsafe qui nécessite le Mode Expert.
Utilisez le dernier firmware de votre radiocommande (Tx) !
Désactivez le filtre ADC matériel dans l'émetteur si vous utilisez OpenTx ou EdgeTx.
Configuration de base : Configurez correctement les paramètres du récepteur. Choisissez la bonne ‘carte des chaînes’ pour votre radio. Vérifiez que le rouleau, le Pitch et les autres graphiques à barres se déplacent correctement. Ajustez la valeur du point de terminaison ou de l'intervalle dans l'émetteur à ~1000 à ~2000, et réglez le point milieu à 1500. Pour plus d'informations, lisez la documentation." - }, "receiverThrottleMid": { "message": "Centre Gaz" }, diff --git a/locales/gl/messages.json b/locales/gl/messages.json index 4b21cf498e..47d854190a 100644 --- a/locales/gl/messages.json +++ b/locales/gl/messages.json @@ -578,9 +578,6 @@ "defaultContributingHead": { "message": "Contribuir" }, - "defaultContributingText": { - "message": "Se desexa axudar a que Betaflight sexa aínda mellor, pode axudar de moitos xeitos, incluíndo:
  • usando os seus coñecementos sobre Betaflight para crear ou actualizar contido na nosa Wiki, ou respondendo ás preguntas doutros usuarios nos foros en liña;
  • aportando código ó firmware e ó Configurator - novas características, correccións, melloras;
  • probando novas funcións e correccións e proporcionando comentarios;
  • axudando a outros usuarios a resolver os problemas que denuncian en o noso rastreador de números, e participando en debates sobre solicitudes de características;
  • traducindo Configurador Betaflight a un novo idioma, ou axudando a manter as traducións existentes.
" - }, "defaultFacebookText": { "message": "Tamén temos un Grupo de Facebook.
Únase a nós para obter un lugar onde falar sobre Betaflight, facer preguntas sobre a configuración ou simplemente pasar un rato cos compañeiros pilotos." }, @@ -1275,9 +1272,6 @@ "configurationLoopTimeHelp": { "message": "Nota: Asegúrese de que a súa FC poida funcionar a estas velocidades. Comprobe a estabilidade da CPU e do ciclo. Cambiar isto pode requirir a reordenación de PID. SUXERENCIA: desactivar o acelerómetro e outros sensores para obter máis rendemento." }, - "configurationGPS": { - "message": "GPS" - }, "configurationGPSProtocol": { "message": "Protocolo" }, @@ -1309,9 +1303,6 @@ "message": "Se está activado, só se empregará o primeiro armado despois de conectar a batería como punto de inicio. Se non está activado, cada vez que o quad estea armado, o punto de inicio actualizarase.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": " Nota: non esqueza configurar un porto serie (a través da pestana Ports) cando use a función GPS." - }, "configurationSerialRX": { "message": "Proveedor do Receptor Serie" }, diff --git a/locales/it/messages.json b/locales/it/messages.json index 261af386b2..44d2f46615 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -597,7 +597,7 @@ "message": "Contribuisci" }, "defaultContributingText": { - "message": "Se vuoi aiutare a migliorare Betaflight puoi aiutare in diversi modi, tra cui:
  • Utilizzare la tua conoscenza di Betaflight per creare o aggiornare contenuti sulla nostra Wiki, o rispondere alle domande degli altri utenti nei forum online;
  • Contribuire al codice del firmware e del Configuratore - nuove funzionalità, correzioni, miglioramenti;
  • Testare nuove funzionalità e correzioni e fornire feedback;
  • Aiutando altri utenti a risolvere i problemi segnalati nei nostri issue tracker, e partecipare alle discussioni sulle richieste di features;
  • Tradurre il Betaflight Configurator in una nuova lingua, o aiutando a mantenere le traduzioni esistenti.
" + "message": "Se vuoi aiutare a migliorare Betaflight puoi aiutare in diversi modi, tra cui:
  • Utilizzare la tua conoscenza di Betaflight per creare o aggiornare contenuti sulla nostra Wiki, o rispondere alle domande degli altri utenti nei forum online;
  • Contribuire al codice del firmware e del Configuratore - nuove funzionalità, correzioni, miglioramenti;
  • Testare nuove funzioni e correzioni e fornire feedback;
  • Aiutando altri utenti a risolvere i problemi segnalati nei nostri issue tracker, e partecipare alle discussioni sulle richieste di funzioni;
  • Traducendo il Betaflight Configurator in una nuova lingua o aggiornando le traduzioni esistenti.
" }, "defaultFacebookText": { "message": "Abbiamo anche un gruppo Facebook.
Unisciti a noi per discutere di Betaflight, fare domande riguardo la configurazione, o semplicemente ritrovarti con altri piloti." @@ -1318,7 +1318,7 @@ "message": "Nota: Assicurati che il FC sia in grado di operare a queste velocità! controlla la stabilità della CPU e del tempo di ciclo. La modifica potrebbe richiedere una regolazione dei PID. SUGGERIMENTO: disabilita l'accelerometro e gli altri sensori per avere maggiori prestazioni." }, "configurationGPS": { - "message": "GPS" + "message": "Configurazione GPS" }, "configurationGPSProtocol": { "message": "Protocollo" @@ -1351,9 +1351,6 @@ "message": "Quando abilitato, solo il primo armamento dopo la connessione della batteria verrà utilizzato come punto di partenza. Se non abilitato, ogni volta che il quad viene armato il punto di partenza verrà aggiornato.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "Nota: Ricorda di configurare una Porta Seriale (nella scheda Porte) quando usi un GPS." - }, "configurationSerialRX": { "message": "Provider ricevente seriale" }, @@ -1959,7 +1956,7 @@ "message": "Modalità slider per tuning PID

La modalità slider per tuning PID può essere:

• OFF - no slider, inserisci manualmente i valori
• RP - i cursori controllano solo Roll e Pitch, inserisci manualmente i valori Yaw
• RPY - i cursori controllano tutti i valori PID

Attenzione:Passando dalla modalità RP a RPY sovrascriverà le impostazioni di Yaw con quelle del firmware." }, "receiverHelp": { - "message": "•Controlla sempre che il Failsafe funzioni correttamente! Le impostazioni sono nella scheda del Failsafe, abilita la modalità esperto.
Usa l'ultimo firmware della TX!
Disabilita i filtri hardware ADC nella trasmittente se usi OpenTx o EdgeTx.
Impostazione di base: Configura le impostazioni della ricevente correttamente. Scegli la mappa canali corretta per la tua radio. Controlla che Roll, Pitch ed altre barre grafiche si muovano correttamente. Regola i limiti dei canali e i valori del range nella tua trasmittente da ~1000 a ~2000, e imposta il punto medio su ~1500. Per maggiori informazioni leggi la documentazione." + "message": "•Controllare sempre che il Failsafe funzioni correttamente! Le impostazioni le trovi nella scheda Failsafe, abilitando la modalità esperto.
Usa l'ultimo firmware sulla TX!
Disabilita i filtri hardware ADC sulla trasmittente se usi OpenTx o EdgeTx.
Impostazione di base: Configura la ricevente correttamente. Scegli la mappa canali corretta per la tua radio. Controlla che Roll, Pitch ed altre barre grafiche si muovano correttamente. Regola i limiti dei canali e i valori del range nella tua trasmittente da ~1000 a ~2000, e imposta il punto medio su ~1500. Per maggiori informazioni leggi la documentazione." }, "receiverThrottleMid": { "message": "Gas Medio" @@ -6700,7 +6697,7 @@ "message": "Per gli sviluppatori, puoi aggiungere qualsiasi define necessaria, separata da uno `spazio`, ma senza il prefisso `USE_`, il quale verrà aggiunto automaticamente." }, "firmwareFlasherBuildCustomDefines": { - "message": "Define Personalizzati" + "message": "Funzioni Personalizzate" }, "coreBuild": { "message": "Solo Core" diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 7b1f64d864..e768e09e76 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -86,6 +86,9 @@ "expertMode": { "message": "Expertモード 有効" }, + "expertModeDescription": { + "message": "Expertモードオプションを有効にする" + }, "warningSettings": { "message": "警告を表示" }, @@ -588,13 +591,13 @@ "message": "ハードウェア" }, "defaultWelcomeText": { - "message": "このアプリケーションは、Betaflightを実行可能なハードウェアすべてをサポートします。対応ハードウェア一覧は [ファームフラッシャー] タブをご確認ください。

Betaflight Blackbox Log Viewerをダウンロード

Betaflight TX Lua Scriptsをダウンロード

ファームウェアのソースコードのダウンロード先はこちら

CP210X USBシリアルチップを使用するレガシーハードウェアの場合:
最新のCP210xドライバのダウンロード先はこちら
最新のWindows用ZadigUSBドライバインストーラのダウンロード先はこちら
ImpulseRC Driver Fixerのダウンロード先はこちら" + "message": "このアプリケーションは、Betaflightを実行可能なハードウェアすべてをサポートします。対応ハードウェア一覧は [ファームフラッシャー] タブをご確認ください。

Betaflight Blackbox Log Viewerをダウンロード

Betaflight TX Lua Scriptsをダウンロード

ファームウェアのソースコードのダウンロード先はこちら

CP210X USBシリアルチップを使用するレガシーハードウェアの場合:
最新のCP210Xドライバのダウンロード先はこちら
最新のWindows用ZadigUSBドライバインストーラのダウンロード先はこちら
ImpulseRC Driver Fixerのダウンロード先はこちら" }, "defaultContributingHead": { "message": "開発への協力・貢献" }, "defaultContributingText": { - "message": "Betaflightを今後より良く改善したい場合は、以下を含むさまざまな方法で支援できます:
  • あなたが持つBetaflightナレッジを用いてWikiコンテンツの作成または更新、オンラインフォーラムで他のユーザの質問に回答する;
  • 新機能や修正、改善されたファームウェアとConfiguratorへのコード提供;
  • 新機能と修正、テスト、フィードバックの提供;
  • Issue trackerで他ユーザから報告された問題を解決支援し、新機能リクエストに関する議論に協力;
  • \n
  • またBetaflight Configuratorを未対応な言語に翻訳、または既存翻訳の維持を行いましょう。
" + "message": "Betaflightを今後より良く改善したい場合は、以下を含むさまざまな方法で支援できます:
  • Betaflightに関する知識を活かしてWikiコンテンツの作成または更新、オンラインフォーラムで他ユーザの質問への回答;
  • 新機能や修正、改善されたファームウェアとConfiguratorへのコード提供;
  • 新機能と修正、テスト、フィードバックの提供;
  • Issue trackerで他ユーザから報告された問題を解決支援し、新機能リクエストに関する議論に協力;
  • Betaflight Configuratorの新しい言語への翻訳、または既存翻訳の維持支援.
" }, "defaultFacebookText": { "message": "私たちはFacebookグループも運営しています。
私たちと一緒にBetaflightについて語り合い、設定に関する質問をしたり、パイロット同士で交流してみましょう。" @@ -636,6 +639,9 @@ "defaultDocumentation": { "message": "Betaflightドキュメントは、リリースノートおよびWikiにてご利用いただけます。

" }, + "defaultDocumentation1": { + "message": "Betaflight Wiki はすばらしい情報リソースをこちらで検索・確認することができます。" + }, "defaultDocumentation2": { "message": "ファームウェア リリースノートは、GitHub リリースページのこちらでご確認いただけます。" }, @@ -654,12 +660,18 @@ "defaultSupport1": { "message": "RC Groups スレッド" }, + "defaultSupport2": { + "message": "Betaflight Wiki" + }, "defaultSupport3": { "message": "Joshua Bardwell Betaflight 4.3 動画集" }, "defaultSupport4": { "message": "GitHub" }, + "defaultSupport5": { + "message": "Betaflight devs on Discord" + }, "initialSetupButtonCalibrateAccel": { "message": "水平 キャリブレーション" }, @@ -1306,7 +1318,7 @@ "message": "注: FCがこの速度で動作するか確認してください!CPUとサイクル時間の安定度を確認してください。この変更はPIDの再調整を必要とするかもしれません。TIP: パフォーマンスを上げるためには加速度センサーや他センサーを無効にします。" }, "configurationGPS": { - "message": "GPS" + "message": "GPS 設定" }, "configurationGPSProtocol": { "message": "プロトコル" @@ -1339,9 +1351,6 @@ "message": "有効にすると、バッテリーが接続された後の初回アーム時のみ、ホームポイントとして設定されます。有効でない場合、機体がアームするたびに、ホームポイントが更新されます。", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "注: GPSを使う場合、シリアルポート ([ポート] タブ) の設定を忘れずに行ってください。" - }, "configurationSerialRX": { "message": "シリアル受信プロトコル" }, @@ -1946,6 +1955,9 @@ "pidTuningSliderModeHelp": { "message": "PIDチューニング スライダーモード

PIDチューニング スライダーモードは以下のように使用します:

• OFF - スライダーを使用せず手動で値を入力
• RP - スライダーはロールとピッチのみをコントロールし、ヨーの値は手動で入力
• RPY - スライダーにてすべてのPID値をコントロール

警告:RPモードからRPYモードに切り替えると、ヨーの設定がファームウェアのデフォルト値に上書きされます。" }, + "receiverHelp": { + "message": "• フェイルセーフが正しく動作していることを常に確認してください!設定は『フェイルセーフ』タブにあり、Expertモードの有効が必要です。
最新の送信ファームウェアを使用してください!
• OpenTXまたはEdgeTXを使用している場合は、送信機のハードウェア ADCフィルタを無効にします。
基本セットアップ:『受信機』設定を正しく行ってください。送信機の正しい『チャンネルマップ』を選択します。ロール、ピッチ、その他のスライダーグラフが正しく動作することを確認します。送信機のチャンネル始点・終点または範囲の値を1000以下、2000以上に調整し、中心点を1500に設定します。詳しくはドキュメントをご覧ください。" + }, "receiverThrottleMid": { "message": "スロットルMID" }, @@ -2569,6 +2581,9 @@ "motorsRemapDialogRiskNotice": { "message": "注意事項
怪我を防止するために、すべてのプロペラを取り外してください!
モーターが回転します!" }, + "motorsRemapDialogExplanations": { + "message": "お知らせ
モーターは1つずつ回転し、どのモーターが回転しているかを選択できます。バッテリーを接続し、正しいESCプロトコルを選択してください。このユーティリティは、現在有効となるモーターのみを再配置できます。より複雑な再マッピングは、CLI Resourceコマンドをご利用ください。詳しくはこちらのWikiページをご覧ください。" + }, "motorsRemapDialogSave": { "message": "保存" }, @@ -2638,6 +2653,9 @@ "escDshotDirectionDialog-WrongProtocolText": { "message": "この機能はDSHOT対応ESCのみで動作します。
お使いのESC (electric speed controller) がDSHOTプロトコルに対応していることを確認し $t(tabMotorTesting.message) タブで変更してください。" }, + "escDshotDirectionDialog-WrongMixerText": { + "message": "モーター数は0です。
現在のミキサー設定を $t(tabMotorTesting.message) タブで確認するか、CLIを使ってカスタムミキサーとして設定してください。詳しくはこちらのWikiページをご覧ください。" + }, "escDshotDirectionDialog-WrongFirmwareText": { "message": "ファームウェアを更新します。
最新ファームウェア (Betaflight 4.3以降) を使用していることを確認してください。" }, @@ -3094,6 +3112,9 @@ "firmwareFlasherRecoveryHead": { "message": "リカバリー / 通信ロスト" }, + "firmwareFlasherRecoveryText": { + "message": "FCボードとの通信が切断された場合は、以下の手順に従って通信を回復してください:
  • 電源をオフにします。
  • [再起動シーケンスなし] を有効にし [チップメモリの完全消去] を有効にします。
  • BOOTピンをジャンパさせるか、またはBOOTボタンを長押ししてください。
  • 電源をオンにします。(正しく行われればアクティビティLEDは点滅しません)
  • すべてのSTM32ドライバと、必要あればZadigをインストールします。(Betaflightマニュアルの [USB Flashing] 章を参照)
  • Betaflight Configuratorを一度閉じ、Configuratorを再起動します。
  • FCボードにBOOTボタンがあれば、BOOTボタンを放してください。
  • 正常なファームウェアをフラッシュしてください。(FCのボードのマニュアルに指定されている場合は、手動で伝送速度を調整してください)
  • 電源をオフにします。
  • \n
  • BOOTピンのジャンパを取り外します。
  • 電源をオンにします。(アクティビティLEDが点滅するはずです)
  • 再度、通常通り接続してください。
" + }, "firmwareFlasherButtonLeave": { "message": "ファームフラッシャーより退避" }, @@ -3992,6 +4013,9 @@ "pidTuningVbatSagCompensation": { "message": "Vbat サグ値補正" }, + "pidTuningVbatSagCompensationHelp": { + "message": "バッテリー電圧の低下に応じてモーター出力を増加させることで、使用可能なバッテリー電圧範囲にて一貫したスロットルとPIDパフォーマンスを提供します。

補正量は0~100%の間で変更でき、完全な補正 (100%) を推奨します。

詳しくはこのWikiエントリをご覧ください。" + }, "pidTuningVbatSagValue": { "message": "%" }, @@ -4070,6 +4094,9 @@ "pidTuningIdleMinRpm": { "message": "動的アイドル値 [* 100 RPM]" }, + "pidTuningIdleMinRpmHelp": { + "message": "動的アイドルは、低回転時の制御を改善し、モーター非同期のリスクを低減します。

PID制御、ゼロスロットルの安定性、反転時の滞空時間、モーターブレーキが改善されます。

動的アイドルの最小回転数は、約3000~3500rpmに設定する必要があります。BF4.2の場合、DShotのアイドル値を1%など低めに設定します。BF4.3ではDShotアイドル値を調整する必要はありません。

詳しくはこちらのWiki項目をご覧ください。" + }, "pidTuningIdleMinRpmDisabled": { "message": "Dshotテレメトリー がオフのため動的アイドルはオフとなります" }, @@ -4082,6 +4109,9 @@ "pidTuningIntegratedYaw": { "message": "統合ヨー制御" }, + "pidTuningIntegratedYawCaution": { + "message": "注意: この機能を有効にした場合は、それに応じてヨーのPIDを調整する必要があります。詳しくはこちら" + }, "pidTuningIntegratedYawHelp": { "message": "統合ヨー制御は、ヨーP、I、Dの値を統合し、ピッチとロールを調整するのと同じようにヨーのP、I、D値を調整することができます。

統合されたP値はI値のように、統合されたD値はP値のように作用するため、I値はほとんど必要がなくなります。

備考: 統合ヨー制御ではI値が必要ないため、アブソリュート コントロールを使用する必要があります。" }, @@ -5783,6 +5813,10 @@ "osdButtonSaved": { "message": "保存しました" }, + "vtxHelp": { + "message": "ここで映像伝送用送信機 (VTX) の値を設定します。フライトコントローラとVTXがサポートしている場合、VTXテーブルの値を表示および変更できます。
VTXを設定するには、次の手順を使用します。
1. こちらのページに進みます;
2. 地域およびVTXモデルに適したVTX設定ファイルを見つけダウンロードしてください。
3. 下の『$t(vtxButtonLoadFile.message)』をクリックし、VTX設定ファイルを選択し、ロードしてください;
4. 正しく設定されていることを確認してください;
5. 『$t(vtxButtonSave.message)』をクリックし、フライトコントローラにVTXの設定を保存します。\n
6. オプションで『$t(vtxButtonSaveLua.message)』をクリックして、betaflight Luaスクリプトで使用できるLua設定ファイルを保存します。(こちらを参照)", + "description": "Introduction message in the VTX tab" + }, "vtxMessageNotSupported": { "message": "注目: VTXが設定されていないかサポートされていません。フライトコントローラはTrampやSmartAudio等のプロトコルを使用してVTXと接続しており、必要に応じて、$t(tabPorts.message)タブで設定を修正する必要があります。", "description": "Message to show when the VTX is not supported in the VTX tab" diff --git a/locales/ko/messages.json b/locales/ko/messages.json index 1c410117f1..eb69e151c4 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -597,7 +597,7 @@ "message": "기여하기" }, "defaultContributingText": { - "message": "베타플라이트를 훨씬 더 좋게 만들고 싶다면, 다음과 같은 여러 가지 방법으로 도울 수 있습니다:
  • 베타플라이트에 대한 지식을 활용하여 위키에 대한 내용을 만들거나, 온라인 포럼에서 다른 사용자의 질문에 답변할 수 있습니다;
  • 펌웨어와 컨피규레이터에 대한 코드 - 새로운 기능, 수정, 개선 사항에 코드를 공헌할 수 있습니다;
  • 새로운 기능과 수정을 테스트하고, 피드백을 제공할 수 있습니다;
  • 다른 사용자들이 이슈 트랙커에 보고한 문제를 해결하여 도움을 줄 수 있으며, 기능 요청에 대한 논의에 참여할 수 있습니다;
  • 베타플라이트 컨피규레이터를 새로운 언어로 번역하거나, 기존 번역을 유지하도록 도울 수 있습니다.
    한글번역(교정) 문의: 짱아부지JJangPapa(oto4futur@gmail.com)

" + "message": "베타플라이트를 훨씬 더 좋게 만들고 싶다면, 다음과 같은 여러 가지 방법으로 도울 수 있습니다:
  • 베타플라이트에 대한 지식을 활용하여 위키에 대한 내용을 만들거나, 온라인 포럼에서 다른 사용자의 질문에 답변할 수 있습니다;
  • 펌웨어와 컨피규레이터에 대한 코드 - 새로운 기능, 수정, 개선 사항에 코드를 공헌할 수 있습니다;
  • 새로운 기능과 수정을 테스트하고, 피드백을 제공할 수 있습니다;
  • 다른 사용자들이 이슈 트랙커에 보고한 문제를 해결하여 도움을 줄 수 있으며, 기능 요청에 대한 논의에 참여할 수 있습니다;
  • 베타플라이트 컨피규레이터를 새로운 언어로 번역하거나, 기존 번역을 유지하도록 도울 수 있습니다.
    한글번역(교정) 문의: 짱아부지JJangPapa(oto4futur@gmail.com)

" }, "defaultFacebookText": { "message": "우리는 또한 페이스북 그룹이 있습니다.
우리와 함께 베타플라이트에 대해 이야기하고, 환경설정 질문을 하거나, 동료 파일럿과 어울릴 수 있습니다." @@ -1318,7 +1318,7 @@ "message": "참고: FC가 이러한 속도로 동작할 수 있는지 확인하십시오! CPU 및 사이클 시간의 안정성을 점검하십시오. 이를 변경하면 PID 재조정이 필요할 수 있습니다. 팁: 가속도계 및 기타 센서를 비활성화하여 더 많은 성능을 얻으십시오." }, "configurationGPS": { - "message": "GPS" + "message": "GPS 환경설정" }, "configurationGPSProtocol": { "message": "프로토콜" @@ -1351,9 +1351,6 @@ "message": "활성화되면 배터리를 연결한 후 첫 번째 아밍시에만 홈 포인트로 사용됩니다. 활성화되지 않으면 쿼드가 설정될 때마다 홈 포인트가 업데이트됩니다.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "참고: GPS 기능을 사용할 때는 시리얼 포트(포트 탭을 통해)를 설정하는 것을 잊지 마십시오." - }, "configurationSerialRX": { "message": "시리얼 수신기 공급자" }, @@ -1959,7 +1956,7 @@ "message": "PID 튜닝 슬라이더 모드

PID 튜닝 슬라이더 모드는 다음과 같습니다:

• 끄기 - 슬라이더 없음, 값을 수동으로 입력
• RP - 슬라이더는 롤과 피치만 제어하며, 요 값은 수동으로 입력
• RPY - 슬라이더가 모든 PID 값을 제어

경고:RP에서 RPY 모드로 전환하면, Yaw 설정을 펌웨어 설정으로 덮어씁니다." }, "receiverHelp": { - "message": "•Failsafe가 제대로 작동하는지 항상 확인하십시오! 설정이 페일세이프 탭에 있으므로 전문가 모드가 필요합니다.
최신 Tx 펌웨어를 사용하세요!
• OpenTx 또는 EdgeTx를 사용하는 경우 조종기에서 하드웨어 ADC 필터를 비활성화 하세요.
기본 설정: '수신기' 설정을 올바르게 구성하십시오. 라디오에 적합한 '채널 맵'을 선택하십시오. 롤, 피치 및 기타 막대 그래프가 올바르게 이동하는지 점검합니다. 조종기의 채널 끝점 또는 범위 값을 ~1000 에서 ~2000으로 조정하고, 중간점을 1500으로 설정합니다. 자세한 내용은 설명서를 참조하십시오." + "message": "•Failsafe가 제대로 작동하는지 항상 확인하십시오! 설정이 페일세이프 탭에 있으므로 전문가 모드가 필요합니다.
최신 Tx 펌웨어를 사용하세요!
• OpenTx 또는 EdgeTx를 사용하는 경우 조종기에서 하드웨어 ADC 필터를 비활성화 하세요.
기본 설정: '수신기' 설정을 올바르게 구성하십시오. 라디오에 적합한 '채널 맵'을 선택하십시오. 롤, 피치 및 기타 막대 그래프가 올바르게 이동하는지 점검합니다. 조종기의 채널 끝점 또는 범위 값을 ~1000 에서 ~2000으로 조정하고, 중간점을 1500으로 설정합니다. 자세한 내용은 설명서를 참조하십시오." }, "receiverThrottleMid": { "message": "스로틀 중간값" diff --git a/locales/nl/messages.json b/locales/nl/messages.json index eeead3bfc2..01bfb8a822 100644 --- a/locales/nl/messages.json +++ b/locales/nl/messages.json @@ -568,9 +568,6 @@ "defaultContributingHead": { "message": "Bijdragen" }, - "defaultContributingText": { - "message": "Als u wilt helpen met Betaflight nog beter te maken, kunt u op vele manieren helpen. Bijvoorbeeld:
  • Gebruikt uw kennis van Betaflight om onze wiki aan te vullen Wiki, of beantwoord vragen van andere gebruikers op onze forums;
  • Draag bij aan de code van zowel de firmware als de Configurator;
  • Test nieuwe functies en oplossingen en geef feedback;
  • Help andere gebruikers met hun problemen op te lossen die gemeld worden in onze issuetracker. Neem deel aan discussies over functieverzoeken;
  • Help mee met het vertalen van de Betaflight Configurator, of helpt bij het onderhouden van de bestaande vertalingen.
" - }, "defaultFacebookText": { "message": "We hebben ook een Facebook Groep.
Sluit je aan bij ons om een plek te krijgen waar je over Betaflight kunt praten, stel vragen over configuratie of hang rond met je mede piloten." }, @@ -1217,9 +1214,6 @@ "configurationLoopTimeHelp": { "message": "Let op: zorg ervoor dat uw FC met deze snelheden kan werken! Controleer CPU- en cyclustijdstabiliteit. Als u dit wilt wijzigen moet u mogelijk opnieuw PID re-tuning doen. TIP: Schakel de versnellingsmeter en andere sensoren uit om meer prestaties te behalen." }, - "configurationGPS": { - "message": "GPS" - }, "configurationGPSProtocol": { "message": "Protocol" }, @@ -1247,9 +1241,6 @@ "message": "Wanneer ingeschakeld wordt je startpunt (Home point) bepaald bij de eerste keer \"Armen\" na het inpluggen van je batterij. Als dit niet is ingeschakeld wordt je startpunt bij elke keer dat je \"Armt\" opnieuw bepaald.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "Opmerking: Vergeet niet om een Serial Port (via het tabblad poorten) te configureren wanneer je de GPS functie gebruikt." - }, "configurationSerialRX": { "message": "Seriële Ontvanger Provider" }, diff --git a/locales/pl/messages.json b/locales/pl/messages.json index 009233e2a3..93d73c748d 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -1318,7 +1318,7 @@ "message": "Uwaga: Upewnij się że twój kontroler lotu może działać z wybraną prędkością! Sprawdź CPU i stabilność czasu cyklu. Zmiana tego parametru może wymagać ponownego ustawienia PID. Porada: Wyłącz akcelerometr i inne czujniki aby zyskać na wydajności." }, "configurationGPS": { - "message": "GPS" + "message": "Konfiguracja GPS" }, "configurationGPSProtocol": { "message": "Protokół" @@ -1351,9 +1351,6 @@ "message": "Po włączeniu tej opcji pierwsze uzbrojenie drona po podłączeniu bateri będzie używane na stałe jako punkt początkowy. Jeśli opcja ta nie zostanie aktywowana to za każdym razem, gdy dron zostanie uzbrojony, punkt początkowy zostanie zaktualizowany.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "Uwaga: Pamiętaj, aby skonfigurować port szeregowy (poprzez zakładkę portów) podczas korzystania z funkcji GPS." - }, "configurationSerialRX": { "message": "Rodzaj sygnału odbiornika" }, @@ -1959,7 +1956,7 @@ "message": "Tryb suwaka Pid Tuning

Tryb suwaka Pid Tuning może być:

• WYŁĄCZONE - bez suwaków, wprowadź wartości ręcznie
• RP – suwaki kontrolują tylko Roll i Pitch, wprowadź wartości Yaw ręcznie
• RPY – suwaki kontrolują wszystkie wartości PID

Ostrzeżenie:Przejście z trybu RP do trybu RPY spowoduje nadpisanie ustawień odchylenia z ustawieniami oprogramowania układowego." }, "receiverHelp": { - "message": "• Zawsze sprawdzaj, czy Twój Failsafe działa prawidłowo! Ustawienia znajdują się na karcie Failsafe, która wymaga trybu eksperta.
Użyj najnowszego oprogramowania układowego Tx!
Wyłącz sprzętowy filtr ADC< /a> w nadajniku, jeśli używasz OpenTx lub EdgeTx.
Podstawowa konfiguracja: poprawnie skonfiguruj ustawienia odbiornika. Wybierz odpowiednią „Mapę kanałów” dla swojego radia. Sprawdź, czy wykresy słupkowe Roll, Pitch i inne poruszają się prawidłowo. Ustaw punkt końcowy kanału lub wartości zakresu w nadajniku na ~1000 do ~2000, a punkt środkowy na 1500. Aby uzyskać więcej informacji, przeczytaj
dokumentacja." + "message": "• Zawsze sprawdzaj, czy Twój Failsafe działa prawidłowo! Ustawienia znajdują się w zakładce Failsafe, która wymaga trybu eksperta.
Użyj najnowszego oprogramowania układowego Tx!
Wyłącz sprzętowy filtr ADC< /a> w nadajniku, jeśli używasz OpenTx lub EdgeTx.
Podstawowa konfiguracja: poprawnie skonfiguruj ustawienia odbiornika. Wybierz odpowiednią „Mapę kanałów” dla swojego radia. Sprawdź czy zakres drążków w osi Roll, Pitch oraz Yaw jest prawidłowy. Ustaw zakresy kanałów w nadajniku na ~1000 do ~2000, a punkt środkowy na 1500. Aby uzyskać więcej informacji, przeczytaj
dokumentacja." }, "receiverThrottleMid": { "message": "Przepustnica MID" @@ -3053,10 +3050,10 @@ "message": "Wydania stabilne" }, "firmwareFlasherOptionLabelBuildTypeReleaseCandidate": { - "message": "Wydania stabilne oraz wersje testowe" + "message": "Wydania testowe" }, "firmwareFlasherOptionLabelBuildTypeDevelopment": { - "message": "Deweloperska" + "message": "Wydania deweloperskie" }, "firmwareFlasherOptionLabelBuildTypeAKK3_3": { "message": "3.3 AKK & RDQ VTX Patch" diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 0ea4c87931..42ad74b18b 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -597,7 +597,7 @@ "message": "Contribuir" }, "defaultContributingText": { - "message": "Se quiser ajudar a melhorar o Betaflight pode ajudar de várias maneiras, incluíndo:
  • usando o seu conhecimento de Betaflight para criar ou atualizar conteúdo em a nossa Wiki, ou respondendo a questões de outros utilizadores nos fóruns online;
  • contribuíndo com código para o firmware e Configurador - novas funcionalidades, correções, melhorias;
  • testes a novas funcionalidades e correções e dando feedback;
  • ajudando outros utilizadores a resolver os problemas que reportam no nosso tracker de assuntos, e participando em discussões de pedidos de funcionalidades;
  • traduzindo o Betaflight Configurator numa nova linguagem, ou ajudando a manter traduções existentes.
" + "message": "Se quiser ajudar a tornar o Betaflight ainda melhor pode ajudar de várias maneiras, incluíndo:
  • usando o seu conhecimento do Betaflight para criar ou atualizar conteúdo na nossa Wiki, ou respondendo às questões de outros utlizadores nos nossos fóruns online;
  • contribuíndo com código para o firmware e Configurador - novas funcionalidades, correções, melhorias;
  • testando novas funcionalidades e correções e dando feedback;
  • ajudando outros utilizadores a resolver os problemas que reportam our issue tracker, e participando em discussões de pedidos de funcionalidades;
  • traduzindo o Betaflight Configurator numa nova linguagem, ou ajudando a manter traduções existentes.
" }, "defaultFacebookText": { "message": "Também temos um Grupo do Facebook.
Junte-se a nós para conseguir um lugar para falar sobre Betaflight, fazer perguntas sobre configuração ou simplesmente interagir com outros pilotos." @@ -1318,7 +1318,7 @@ "message": "Nota: Assegure-se que a controladora é capaz de operar a estas velocidades! Verifique a estabilidade da CPU e do tempo de ciclo. Alterar este valor pode requerer uma nova afinação do PID. DICA: Desative o acelerómetro e outros sensores para ganhar mais performance." }, "configurationGPS": { - "message": "GPS" + "message": "Configuração do GPS" }, "configurationGPSProtocol": { "message": "Protocolo" @@ -1351,9 +1351,6 @@ "message": "Quando habilitado, o ponto casa será definido apenas na primeira vez que armar após a bateria ser conectada. Se não estiver habilitado, sempre que o quad for armado, o ponto casa será atualizado.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "Nota: Lembre-se de configurar uma porta serial (via aba de Portas) ao utilizar a funcionalidade de GPS." - }, "configurationSerialRX": { "message": "Fornecedor do receptor Serial" }, @@ -1959,7 +1956,7 @@ "message": "Modo Slider de Ajuste dos Pid

O modo Slider de ajuste Pid pode ser:

• DESLIGADO - sem sliders, insira os valores manualmente
• RP - os sliders ajustam somente o Roll e o Pitch, digite os valores do Yaw manualmente
• RPY - os sliders ajustam todos os valores do PID

Aviso:Indo do modo RP para RPY irão sobrescrever as configurações do Yaw com definições do firmware." }, "receiverHelp": { - "message": "• Verifique sempre que o seu Failsafe está a funcionar corretamente! As definições estão na aba Failsafe, que requer Modo de Perito.
Use o último firmware no seu TX!
Desative o filtro ADC do hardware no rádio se usar OpenTx ou EdgeTx.
Setup Básico: Configure corretamente as definições do 'Recetor'. Escolha o ‘Mapa de Canais’ correto para o seu rádio. Verifique que os gráficos de Roll, Pitch e os outros se movem corretamente. Ajuste os extremos dos canais ou os valores de alcance entre ~1000 e ~2000, e coloque o ponto médio em 1500. Para mais informação, consulte documentation." + "message": "• Verifique sempre se o seu Failsafe está a funcionar corretamente! As definições estão na aba Failsafe, que requer Modo de Perito.
Use o último firmware do Tx!
Desative o filtro de hardware ADC no rádio se usar OpenTx ou EdgeTx.
Setup Básico: Configure as definições do 'Recetor' corretamente. Escolha o ‘Mapa de Canais’ correto para o seu rádio. Verifique que o Roll, Pitch e os outros gráficos de barras se movem corretamente. Ajuste os endpoints dos canais ou faixa de valores no rádio de ~1000 a ~2000, e coloque o ponto médio em 1500. Para mais informação, leia a documentação." }, "receiverThrottleMid": { "message": "MEIO do Acelerador" diff --git a/locales/pt_BR/messages.json b/locales/pt_BR/messages.json index 6139b87e22..46ac6773b4 100644 --- a/locales/pt_BR/messages.json +++ b/locales/pt_BR/messages.json @@ -593,9 +593,6 @@ "defaultContributingHead": { "message": "Contribuir" }, - "defaultContributingText": { - "message": "Se deseja ajudar o Betaflight a ser ainda melhor, você pode ajudar de diversas formas:
  • Use seu conhecimento sobre o Betaflight para criar ou atualizar o conteúdo do nosso Wiki, ou respondendo as dúvidas de outros usuários nos fóruns online.
  • Contribua com o código do firmware e do configurador - Novas funções, correções e melhorias.
  • Testando novas funções e correções e reportando de volta aos desenvolvedores.
  • Ajudando a resolver os problemas que outros usuários relatam em nosso Issue Tracker e participando em discussões de novas funcionalidades.
  • Traduzindo o Betaflight Configurator para um novo idioma ou ajudando a manter as traduções atuais.
" - }, "defaultFacebookText": { "message": "Nós também temos um grupo no Facebook.
Participe dele para ter um lugar para falar sobre o Betaflight, fazer perguntas sobre configurações ou encontrar outros pilotos." }, @@ -1305,9 +1302,6 @@ "configurationLoopTimeHelp": { "message": "Nota: Tenha a certeza de que o controlador é capaz de operar na velocidade selecionada! Verifique a estabilidade do CPU e o tempo de ciclo. Alterar este valor pode requerer uma nova afinação do PID. DICA: Desative o acelerômetro e outros sensores para ganhar mais performance." }, - "configurationGPS": { - "message": "GPS" - }, "configurationGPSProtocol": { "message": "Protocolo" }, @@ -1339,9 +1333,6 @@ "message": "Quando habilitado, a base será definida somente na primeira vez que armar após a bateria ser conectada. Se não estiver habilitado, toda vez que a aeronave for armada, a base será redefinida.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "Nota: Lembre-se de configurar uma porta serial (via aba de Portas) ao utilizar a funcionalidade de GPS." - }, "configurationSerialRX": { "message": "Fornecedor do receptor Serial" }, diff --git a/locales/ru/messages.json b/locales/ru/messages.json index d15a8e633b..cb9a79723c 100644 --- a/locales/ru/messages.json +++ b/locales/ru/messages.json @@ -569,9 +569,6 @@ "defaultContributingHead": { "message": "Содействие" }, - "defaultContributingText": { - "message": "Если Вы хотите сделать Betaflight ещё лучше, Вы можете помочь этому разными способами:
  • используя Ваши знания о Betaflight для создания и обновления документации нашей Wiki, или отвечая на вопросы других пользователей в онлайн форуме;
  • внося свой вклад в код програмного обеспечения (прошивку) и Конфигуратор - новые функционалы, исправления, улучшения;
  • тестируя новые функционалы и исправления и делясь отзывами;
  • помогая другим пользователям решать проблемы, о которых они сообщают на нашем issue tracker'е, и учавствуя в обсуждениях запрашиваемых функционалов;
  • переводом Betaflight Конфигуратора на новые языки, а так же помощью в поддержке уже существующих переводов.
" - }, "defaultFacebookText": { "message": "Также у нас есть группа на Facebook.
Присоединяйтесь к нам, чтобы поговорить о Betaflight, задать вопросы о конфигурации или просто пообщаться с другими пилотами." }, @@ -1239,9 +1236,6 @@ "configurationLoopTimeHelp": { "message": "Примечание: Убедитесь, что Ваш FC способен работать на этих скоростях! Проверьте ЦП и стабильность времени цикла. Эти изменения могут потребовать подстройки PID. Совет: Отключите Акселерометр и другие сенсоры для повышения производительности." }, - "configurationGPS": { - "message": "GPS" - }, "configurationGPSProtocol": { "message": "Протокол" }, @@ -1269,9 +1263,6 @@ "message": "При включении, только первый арм после подключения батареи будет использоваться как домашняя точка. Если выключено - домашняя точка будет обновляться при каждом арме.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "Примечание: Не забудьте настроить GPS-порт (во вкладке \"Порты\") перед тем, как пользоваться настройками GPS." - }, "configurationSerialRX": { "message": "Приемник с последовательным выходом" }, diff --git a/locales/zh_CN/messages.json b/locales/zh_CN/messages.json index 49d9e5c9b9..0f5b6dad22 100644 --- a/locales/zh_CN/messages.json +++ b/locales/zh_CN/messages.json @@ -572,9 +572,6 @@ "defaultContributingHead": { "message": "参与开发" }, - "defaultContributingText": { - "message": "如果你想帮助 Betaflight 变得更好,你可以:
" - }, "defaultFacebookText": { "message": "我们还有一个 Facebook 小组
加入我们来一起讨论 Betaflight,询问配置问题,或者只是和小伙伴们闲聊。" }, @@ -1263,9 +1260,6 @@ "configurationLoopTimeHelp": { "message": "注意:确保你的飞控有能力运行在这些频率上!检查CPU循环时间是否稳定。改变频率可能需要重新调校PID。提示:关闭加速度计和其他传感器可以节省运算资源以获得更高性能。" }, - "configurationGPS": { - "message": "GPS" - }, "configurationGPSProtocol": { "message": "协议" }, @@ -1297,9 +1291,6 @@ "message": "启用后,当接通电池后第一次解锁的地点将被视为返航点。如果未开启,返航点将随每次解锁而更新。", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "注意:使用 GPS 之前需要先在串口页面设置一个串口。" - }, "configurationSerialRX": { "message": "串行数字接收机协议" }, diff --git a/locales/zh_TW/messages.json b/locales/zh_TW/messages.json index 5b2313df96..808faf4e44 100644 --- a/locales/zh_TW/messages.json +++ b/locales/zh_TW/messages.json @@ -515,9 +515,6 @@ "defaultContributingHead": { "message": "參與開發" }, - "defaultContributingText": { - "message": "如果你想幫助 Betaflight 變得更好,你可以:
" - }, "defaultFacebookText": { "message": "我們還有一個 Facebook 小組
加入我們來一起討論 Betaflight,咨詢配置問題,或者只是和小夥伴們閒聊。" }, @@ -1164,9 +1161,6 @@ "configurationLoopTimeHelp": { "message": "注意:確保你的飛控有能力運行在這些頻率上!檢查CPU循環時間是否穩定。改變頻率可能需要重新調校PID。提示:關閉加速度計和其他傳感器可以節省運算資源以或許更高性能。" }, - "configurationGPS": { - "message": "GPS" - }, "configurationGPSProtocol": { "message": "協議" }, @@ -1194,9 +1188,6 @@ "message": "啟用後,當接通電池後第一次解鎖時間的地點將被視為返航點。如果未開啟,返航點將隨每次解鎖而更新。", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, - "configurationGPSHelp": { - "message": "注意:使用 GPS 之前需要先在埠口頁面設置一個串口。" - }, "configurationSerialRX": { "message": "串行數字接收機協議" }, From ad5b94cd2ae510ca0e8a2186aa41addea60ba32b Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 15 Feb 2023 19:34:04 +0100 Subject: [PATCH 026/393] Fix mDNS browser (#3337) Fix MSDN browser --- locales/en/messages.json | 4 ++++ src/js/port_handler.js | 33 +++++++++++++++++++++------------ src/js/tabs/options.js | 12 ++++++++++++ src/tabs/options.html | 6 ++++++ 4 files changed, 43 insertions(+), 12 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 6a6a35c780..dfe2e2f1e0 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -109,6 +109,10 @@ "message": "Show all serial devices (for manufacturers or development)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, + "useMdnsBrowser": { + "message": "Use mDNS Browser Device discovery on network (experimental)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, "showVirtualMode": { "message": "Enable virtual connection mode", "description": "Text for the option to enable or disable the virtual FC" diff --git a/src/js/port_handler.js b/src/js/port_handler.js index 4496777ec0..678f858abe 100644 --- a/src/js/port_handler.js +++ b/src/js/port_handler.js @@ -21,6 +21,7 @@ const PortHandler = new function () { this.dfu_available = false; this.port_available = false; this.showAllSerialDevices = false; + this.useMdnsBrowser = false; this.showVirtualMode = false; }; @@ -40,11 +41,14 @@ PortHandler.initialize = function () { PortHandler.reinitialize = function () { this.initialPorts = false; + if (this.usbCheckLoop) { clearTimeout(this.usbCheckLoop); } + this.showVirtualMode = getConfig('showVirtualMode').showVirtualMode; this.showAllSerialDevices = getConfig('showAllSerialDevices').showAllSerialDevices; + this.useMdnsBrowser = getConfig('useMdnsBrowser').useMdnsBrowser; this.check(); // start listening, check after TIMEOUT_CHECK ms }; @@ -69,18 +73,23 @@ PortHandler.check_serial_devices = function () { const self = this; serial.getDevices(function(cp) { - - let currentPorts = [ - ...cp, - ...(MdnsDiscovery.mdnsBrowser.services?.filter(s => s.txt.vendor === 'elrs' && s.txt.type === 'rx' && s.ready === true) - .map(s => s.addresses.map(a => ({ - path: `tcp://${a}`, - displayName: `${s.txt.target} - ${s.txt.version}`, - fqdn: s.fqdn, - vendorId: 0, - productId: 0, - }))).flat() ?? []), - ].filter(Boolean); + let currentPorts = []; + + if (self.useMdnsBrowser) { + currentPorts = [ + ...cp, + ...(MdnsDiscovery.mdnsBrowser.services?.filter(s => s.txt?.vendor === 'elrs' && s.txt?.type === 'rx' && s.ready === true) + .map(s => s.addresses.map(a => ({ + path: `tcp://${a}`, + displayName: `${s.txt?.target} - ${s.txt?.version}`, + fqdn: s.fqdn, + vendorId: 0, + productId: 0, + }))).flat() ?? []), + ].filter(Boolean); + } else { + currentPorts = cp; + } // auto-select port (only during initialization) if (!self.initialPorts) { diff --git a/src/js/tabs/options.js b/src/js/tabs/options.js index a6ec28691f..93f6f1c13e 100644 --- a/src/js/tabs/options.js +++ b/src/js/tabs/options.js @@ -21,6 +21,7 @@ options.initialize = function (callback) { TABS.options.initAnalyticsOptOut(); TABS.options.initCliAutoComplete(); TABS.options.initShowAllSerialDevices(); + TABS.options.initUseMdnsBrowser(); TABS.options.initShowVirtualMode(); TABS.options.initCordovaForceComputerUI(); TABS.options.initDarkTheme(); @@ -141,6 +142,17 @@ options.initShowVirtualMode = function() { }); }; +options.initUseMdnsBrowser = function() { + const useMdnsBrowserElement = $('div.useMdnsBrowser input'); + const result = getConfig('useMdnsBrowser'); + useMdnsBrowserElement + .prop('checked', !!result.useMdnsBrowser) + .on('change', () => { + setConfig({ useMdnsBrowser: useMdnsBrowserElement.is(':checked') }); + PortHandler.reinitialize(); + }); +}; + options.initCordovaForceComputerUI = function () { if (GUI.isCordova() && cordovaUI.canChangeUI) { const result = getConfig('cordovaForceComputerUI'); diff --git a/src/tabs/options.html b/src/tabs/options.html index 1d93e3247e..6eee661364 100644 --- a/src/tabs/options.html +++ b/src/tabs/options.html @@ -35,6 +35,12 @@
+
+
+ +
+ +
From 6618378e8d2991d20d163dfbf135e4e3a2bda0d0 Mon Sep 17 00:00:00 2001 From: J Blackman Date: Sun, 19 Feb 2023 06:20:18 +1100 Subject: [PATCH 027/393] Simplified configurator version checking (#3346) --- src/js/BuildApi.js | 5 ++ src/js/release_checker.js | 60 --------------------- src/js/utils/checkForConfiguratorUpdates.js | 44 +++++---------- 3 files changed, 19 insertions(+), 90 deletions(-) delete mode 100644 src/js/release_checker.js diff --git a/src/js/BuildApi.js b/src/js/BuildApi.js index 577c9fde31..b4ab14df6f 100644 --- a/src/js/BuildApi.js +++ b/src/js/BuildApi.js @@ -160,4 +160,9 @@ export default class BuildApi { const url = `${this._url}/api/releases/${release}/commits`; this.load(url, onSuccess, onFailure); } + + loadConfiguratorRelease(type, onSuccess, onFailure) { + const url = `${this._url}/api/configurator/releases/${type}`; + this.load(url, onSuccess, onFailure); + } } diff --git a/src/js/release_checker.js b/src/js/release_checker.js deleted file mode 100644 index 14529dfd48..0000000000 --- a/src/js/release_checker.js +++ /dev/null @@ -1,60 +0,0 @@ -import { gui_log } from "./gui_log"; -import { i18n } from "./localization"; -import { get as getStorage, set as setStorage } from "./SessionStorage"; - -const ReleaseChecker = function (releaseName, releaseUrl) { - const self = this; - - self._releaseName = releaseName; - self._releaseDataTag = `${self._releaseName}ReleaseData`; - self._releaseLastUpdateTag = `${self._releaseName}ReleaseLastUpdate`; - self._releaseUrl = releaseUrl; -}; - -ReleaseChecker.prototype.loadReleaseData = function (processFunction) { - const self = this; - const result = getStorage([self._releaseLastUpdateTag, self._releaseDataTag]); - const releaseDataTimestamp = $.now(); - const cacheReleaseData = result[self._releaseDataTag]; - const cachedReleaseLastUpdate = result[self._releaseLastUpdateTag]; - - if (!cacheReleaseData || !cachedReleaseLastUpdate || releaseDataTimestamp - cachedReleaseLastUpdate > 3600 * 1000) { - $.get(self._releaseUrl, function (releaseData) { - gui_log(i18n.getMessage('releaseCheckLoaded',[self._releaseName])); - - const data = {}; - data[self._releaseDataTag] = releaseData; - data[self._releaseLastUpdateTag] = releaseDataTimestamp; - setStorage(data); - - self._processReleaseData(releaseData, processFunction); - }).fail(function (data) { - let message = ''; - if (data['responseJSON']) { - message = data['responseJSON'].message; - } - gui_log(i18n.getMessage('releaseCheckFailed',[self._releaseName,message])); - - self._processReleaseData(cacheReleaseData, processFunction); - }); - } else { - if (cacheReleaseData) { - gui_log(i18n.getMessage('releaseCheckCached',[self._releaseName])); - } - - self._processReleaseData(cacheReleaseData, processFunction); - } -}; - - -ReleaseChecker.prototype._processReleaseData = function (releaseData, processFunction) { - if (releaseData) { - processFunction(releaseData); - } else { - gui_log(i18n.getMessage('releaseCheckNoInfo',[self._releaseName])); - - processFunction(); - } -}; - -export default ReleaseChecker; diff --git a/src/js/utils/checkForConfiguratorUpdates.js b/src/js/utils/checkForConfiguratorUpdates.js index 8bfc1f6500..92bac73d21 100644 --- a/src/js/utils/checkForConfiguratorUpdates.js +++ b/src/js/utils/checkForConfiguratorUpdates.js @@ -1,43 +1,21 @@ -import semver from "semver"; -import ReleaseChecker from "../release_checker"; +import BuildApi from "../BuildApi"; import { get as getConfig } from "../ConfigStorage"; import CONFIGURATOR from "../data_storage"; import { i18n } from "../localization"; import { gui_log } from "../gui_log"; -function notifyOutdatedVersion(releaseData) { - const result = getConfig('checkForConfiguratorUnstableVersions'); - let showUnstableReleases = false; - if (result.checkForConfiguratorUnstableVersions) { - showUnstableReleases = true; - } +function notifyOutdatedVersion(data) { - if (releaseData === undefined) { + if (data === undefined) { console.log('No releaseData'); return false; } - const versions = releaseData.filter(function (version) { - const semVerVersion = semver.parse(version.tag_name); - if (semVerVersion && (showUnstableReleases || semVerVersion.prerelease.length === 0)) { - return version; - } else { - return null; - } - }).sort(function (v1, v2) { - try { - return semver.compare(v2.tag_name, v1.tag_name); - } catch (e) { - return false; - } - }); + if (data.isCurrent === false && data.updatedVersion !== undefined) { - if (versions.length > 0) { - CONFIGURATOR.latestVersion = versions[0].tag_name; - CONFIGURATOR.latestVersionReleaseUrl = versions[0].html_url; - } + CONFIGURATOR.latestVersion = data.UpdatedVersion.Version; + CONFIGURATOR.latestVersionReleaseUrl = data.UpdatedVersion.Url; - if (semver.lt(CONFIGURATOR.version, CONFIGURATOR.latestVersion)) { const message = i18n.getMessage('configuratorUpdateNotice', [CONFIGURATOR.latestVersion, CONFIGURATOR.latestVersionReleaseUrl]); gui_log(message); @@ -60,7 +38,13 @@ function notifyOutdatedVersion(releaseData) { } export function checkForConfiguratorUpdates() { - const releaseChecker = new ReleaseChecker('configurator', 'https://api.github.com/repos/betaflight/betaflight-configurator/releases'); - releaseChecker.loadReleaseData(notifyOutdatedVersion); + const result = getConfig('checkForConfiguratorUnstableVersions'); + let type = "Stable"; + if (result.checkForConfiguratorUnstableVersions) { + type = "Unstable"; + } + + const buildApi = new BuildApi(); + buildApi.loadConfiguratorRelease(type, notifyOutdatedVersion); } From 4b9fab6635fa23ad75eed5d7d902965623ea30c6 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 22 Feb 2023 03:07:34 +0100 Subject: [PATCH 028/393] Fix latest version check (#3349) --- src/js/utils/checkForConfiguratorUpdates.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/js/utils/checkForConfiguratorUpdates.js b/src/js/utils/checkForConfiguratorUpdates.js index 92bac73d21..43bb20b8ee 100644 --- a/src/js/utils/checkForConfiguratorUpdates.js +++ b/src/js/utils/checkForConfiguratorUpdates.js @@ -13,8 +13,8 @@ function notifyOutdatedVersion(data) { if (data.isCurrent === false && data.updatedVersion !== undefined) { - CONFIGURATOR.latestVersion = data.UpdatedVersion.Version; - CONFIGURATOR.latestVersionReleaseUrl = data.UpdatedVersion.Url; + CONFIGURATOR.latestVersion = data.updatedVersion.version; + CONFIGURATOR.latestVersionReleaseUrl = data.updatedVersion.url; const message = i18n.getMessage('configuratorUpdateNotice', [CONFIGURATOR.latestVersion, CONFIGURATOR.latestVersionReleaseUrl]); gui_log(message); From 62f5cecd71fee0d1c7da61be94d922d833a451e2 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 22 Feb 2023 15:35:53 +0100 Subject: [PATCH 029/393] replaceAll-workaround (#3348) --- src/js/main.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/js/main.js b/src/js/main.js index d674b2ed13..11b5635291 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -20,6 +20,12 @@ import { checkForConfiguratorUpdates } from './utils/checkForConfiguratorUpdates import * as THREE from 'three'; import * as d3 from 'd3'; +if (typeof String.prototype.replaceAll === "undefined") { + String.prototype.replaceAll = function(match, replace) { + return this.replace(new RegExp(match, 'g'), () => replace); + }; +} + $(document).ready(function () { useGlobalNodeFunctions(); From 4a31cf21fce491693376857e58c34fca4bda1ce8 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Fri, 24 Feb 2023 17:43:53 +0100 Subject: [PATCH 030/393] Extend submit support ID with problem description field (#3350) --- locales/en/messages.json | 3 +++ src/css/tabs/cli.less | 10 ++++++++++ src/js/tabs/cli.js | 37 +++++++++++++++++++++++++------------ src/tabs/cli.html | 14 ++++++++++++++ 4 files changed, 52 insertions(+), 12 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index dfe2e2f1e0..1a315a6f16 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -555,6 +555,9 @@ "supportWarningDialogText": { "message": "Please confirm data submission to the Betaflight team.

This process will run some commands and submit the output to the build server.

You will then be provided a unique identifier for your data submission.

Please ensure you provide this unique identifier to the Betaflight team when using Discord or opening an issues on Github." }, + "supportWarningDialogInputPlaceHolder": { + "message": "Describe the problem" + }, "releaseCheckLoaded": { "message" : "Loaded release information for $1 from GitHub." }, diff --git a/src/css/tabs/cli.less b/src/css/tabs/cli.less index bceadc1314..49d79b5300 100644 --- a/src/css/tabs/cli.less +++ b/src/css/tabs/cli.less @@ -56,6 +56,16 @@ border: 1px solid var(--subtleAccent); resize: none; } + textarea[name='supportWarningDialogInput'] { + -webkit-box-sizing: border-box; + width: 100%; + margin-top: 8px; + height: 22px; + line-height: 20px; + padding-left: 5px; + border: 1px solid var(--subtleAccent); + resize: none; + } #content-watermark { z-index: 0; } diff --git a/src/js/tabs/cli.js b/src/js/tabs/cli.js index 65d558e038..51bf4ab7bb 100644 --- a/src/js/tabs/cli.js +++ b/src/js/tabs/cli.js @@ -273,17 +273,19 @@ cli.initialize = function (callback) { $('.tab-cli .support').click(function() { - function submitSupportData() { + function submitSupportData(data) { clearHistory(); const api = new BuildApi(); - api.getSupportCommands((commands) => { + + api.getSupportCommands(commands => { + commands = [`###\n# Problem description\n# ${data}\n###`, ...commands]; executeCommands(commands.join('\n')).then(() => { const delay = setInterval(() => { const time = new Date().getTime(); if (self.lastArrival < time - 250) { clearInterval(delay); const text = self.outputHistory; - api.submitSupportData(text, (key) => { + api.submitSupportData(text, key => { writeToOutput(i18n.getMessage('buildServerSupportRequestSubmission', [key])); }); } @@ -292,15 +294,7 @@ cli.initialize = function (callback) { }); } - const dialogSettings = { - title: i18n.getMessage("supportWarningDialogTitle"), - text: i18n.getMessage("supportWarningDialogText"), - buttonYesText: i18n.getMessage("submit"), - buttonNoText: i18n.getMessage("cancel"), - buttonYesCallback: submitSupportData, - }; - - GUI.showYesNoDialog(dialogSettings); + self.supportWarningDialog(submitSupportData); }); // Tab key detection must be on keydown, @@ -561,6 +555,25 @@ cli.send = function (line, callback) { serial.send(bufferOut, callback); }; +cli.supportWarningDialog = function (onAccept) { + const supportWarningDialog = $('.supportWarningDialog')[0]; + const supportWarningDialogTextArea = $('.tab-cli textarea[name="supportWarningDialogInput"]'); + + if (!supportWarningDialog.hasAttribute('open')) { + supportWarningDialog.showModal(); + + $('.cancel').on('click', function() { + supportWarningDialog.close(); + }); + + $('.submit').on('click', function() { + supportWarningDialog.close(); + onAccept(supportWarningDialogTextArea.val()); + supportWarningDialogTextArea.val(''); + }); + } +}; + cli.cleanup = function (callback) { if (TABS.cli.GUI.snippetPreviewWindow) { TABS.cli.GUI.snippetPreviewWindow.destroy(); diff --git a/src/tabs/cli.html b/src/tabs/cli.html index d3ac7fafdc..25f213806c 100644 --- a/src/tabs/cli.html +++ b/src/tabs/cli.html @@ -43,4 +43,18 @@
+ + +

+
+
+
+ +
+
+
+ + +
+
From 76c8d557e2471a5b05955ac7c1096a1d58887c40 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Feb 2023 18:18:09 +0100 Subject: [PATCH 031/393] Update translations (#3351) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 4 ++++ locales/da/messages.json | 12 ++++++++---- locales/de/messages.json | 4 ++++ locales/es/messages.json | 4 ++++ locales/it/messages.json | 4 ++++ locales/ja/messages.json | 8 ++++++-- locales/ko/messages.json | 4 ++++ locales/pl/messages.json | 6 +++++- locales/pt/messages.json | 4 ++++ 9 files changed, 43 insertions(+), 7 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index bb0386799a..d8dc7bbbff 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -106,6 +106,10 @@ "message": "Mostra tots els dispositius sèrie (per a fabricants o desenvolupament)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, + "useMdnsBrowser": { + "message": "Utilitzeu el descobriment de dispositius del navegador mDNS a la xarxa (experimental)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, "showVirtualMode": { "message": "Activa el mode de connexió virtual", "description": "Text for the option to enable or disable the virtual FC" diff --git a/locales/da/messages.json b/locales/da/messages.json index cd748b0fd7..bf2e3abbb3 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -106,6 +106,10 @@ "message": "Vis alle serielle enheder (for producenter eller ved udvikling)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, + "useMdnsBrowser": { + "message": "Brug mDNS Browser Device opdagelse på netværk (eksperimentel)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, "showVirtualMode": { "message": "Aktiver virtuel forbindelse", "description": "Text for the option to enable or disable the virtual FC" @@ -393,7 +397,7 @@ "message": "Adresseindlæsning til valg bytes-sektor mislykkedes med ukendt fejl. Afbryder." }, "stm32NotReadProtected": { - "message": "Læsebeskyttelse inaktiv" + "message": "Skrivebeskyttelse slået fra" }, "stm32ReadProtected": { "message": "Board synes læsbeskyttet. Afbeskytter. Afbryd ikke/fjern ikke stikket!" @@ -555,7 +559,7 @@ "description": "Packet error text shown in the status bar" }, "statusbar_i2c_error": { - "message": "I2C-fejl:", + "message": "I2C fejl:", "description": "CPU load text shown in the status bar" }, "statusbar_cycle_time": { @@ -2729,7 +2733,7 @@ "message": "Vent venligst mens der opbygges autoudfyld cache..." }, "cliEnter": { - "message": "CLI tilstand opdaget" + "message": "CLI tilstand !" }, "cliReboot": { "message": "CLI genstart registreret" @@ -3113,7 +3117,7 @@ "message": "Gendannelse / tabt kommunikation" }, "firmwareFlasherRecoveryText": { - "message": "Hvis du har mistet kommunikationen med din FC, skal du følge disse trin for at gendanne kommunikation:
  • Sluk
  • Aktiver 'Ingen genstartssekvens', aktiver 'Slet alt på chip'.
  • Hold FC BOOT knap nede eller BOOT kontakt sluttet.
  • Tænd (aktivitet LED vil IKKE blinke, hvis det er gjort korrekt).
  • Installer alle STM32 drivere og Zadig om nødvendigt, se evt. Betaflight installation sektion i Betaflight manual (engelsk).
  • Luk konfigurator, Genstart konfigurator.
  • Slip BOOT-knappen eller fjern jumper på FC BOOT kontakt, på din FC.
  • Flash med korrekt firmware (ved hjælp af manuel baud sats, hvis angivet i din FC's manual).
  • Sluk FC.
  • Fjern BOOT jumper.
  • Tænd (aktivitet LED skal blinke).
  • Forbind normalt.
" + "message": "Hvis du har mistet kommunikationen med din FC, skal du følge disse trin for at gendanne kommunikation: " }, "firmwareFlasherButtonLeave": { "message": "Forlad Firmware brænder" diff --git a/locales/de/messages.json b/locales/de/messages.json index 6a1b562b88..0c27422514 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -109,6 +109,10 @@ "message": "Alle seriellen Geräte anzeigen (für Hersteller oder Entwicklung)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, + "useMdnsBrowser": { + "message": "mDNS Browser Geräteerkennung im Netzwerk verwenden (experimentell)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, "showVirtualMode": { "message": "Virtuellen Verbindungsmodus aktivieren", "description": "Text for the option to enable or disable the virtual FC" diff --git a/locales/es/messages.json b/locales/es/messages.json index c9ce41ef21..ae34ac184c 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -106,6 +106,10 @@ "message": "Mostrar todos los dispositivos serie (para fabricantes o desarrollo)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, + "useMdnsBrowser": { + "message": "Usar descubrimiento en la red de dispositivos mDNS (experimental)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, "showVirtualMode": { "message": "Activar modo de conexión virtual", "description": "Text for the option to enable or disable the virtual FC" diff --git a/locales/it/messages.json b/locales/it/messages.json index 44d2f46615..5dedc489f9 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -106,6 +106,10 @@ "message": "Mostra tutti i dispositivi seriali (per produttori o sviluppatori)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, + "useMdnsBrowser": { + "message": "Usa la ricerca in rete del dispositivo con mDNS del browser (sperimentale)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, "showVirtualMode": { "message": "Abilita modalità di connessione virtuale", "description": "Text for the option to enable or disable the virtual FC" diff --git a/locales/ja/messages.json b/locales/ja/messages.json index e768e09e76..11b952aa07 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -106,6 +106,10 @@ "message": "すべてのシリアルデバイスを表示 (ベンダーまたはデベロッパー向け)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, + "useMdnsBrowser": { + "message": "mDNSブラウザを使用したネットワーク上でのデバイス検出 (試験運用)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, "showVirtualMode": { "message": "バーチャル接続モード 有効", "description": "Text for the option to enable or disable the virtual FC" @@ -703,7 +707,7 @@ "message": "ブートローダー / DFU を有効化" }, "initialSetupBackupRestoreHeader": { - "message": "試験的なバックアップとリストア" + "message": "バックアップとリストア (試験運用)" }, "initialSetupBackupRestoreText": { "message": "不測の事態に備え必ず設定のバックアップを行って下さい。CLI設定は自動バックアップされません。- CLIコマンドの [diff all] をご利用下さい。" @@ -6485,7 +6489,7 @@ "description": "Hint text in the presets detailed dialog indication preset is not official but community" }, "presetsExperimental": { - "message": "試験版", + "message": "試験運用", "description": "Hint text in the presets detailed dialog indication preset is not official but experimental" }, "presetsApply": { diff --git a/locales/ko/messages.json b/locales/ko/messages.json index eb69e151c4..af45b533b1 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -106,6 +106,10 @@ "message": "모든 시리얼 기기 보기 (제조사 또는 개발용)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, + "useMdnsBrowser": { + "message": "네트워크에서 mDNS 브라우저 기기 디스커버리를 사용하세오 (실험적인)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, "showVirtualMode": { "message": "가상 연결 모드 활성화", "description": "Text for the option to enable or disable the virtual FC" diff --git a/locales/pl/messages.json b/locales/pl/messages.json index 93d73c748d..81ea3314e9 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -106,6 +106,10 @@ "message": "Pokaż wszystkie urządzenia szeregowe (dla producentów lub deweloperów)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, + "useMdnsBrowser": { + "message": "Użyj wykrywania urządzeń w przeglądarce mDNS w sieci (eksperymentalne)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, "showVirtualMode": { "message": "Włącz tryb połączenia wirtualnego", "description": "Text for the option to enable or disable the virtual FC" @@ -597,7 +601,7 @@ "message": "Współtworzenie" }, "defaultContributingText": { - "message": "Jeśli chcesz pomóc ulepszyć Betaflight, możesz to robić na wiele sposobów:
" + "message": "Jeśli chcesz pomóc ulepszyć Betaflight, możesz to robić na wiele sposobów:
" }, "defaultFacebookText": { "message": "Mamy również grupę na Facebooku.
Dołącz do nas aby porozmawiać o Betaflight, spytać o konfigurację lub po prostu spędzić czas z innymi pilotami." diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 42ad74b18b..6a965808b2 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -106,6 +106,10 @@ "message": "Mostrar todos os dispositivos serial (para fabricantes ou desenvolvimento)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, + "useMdnsBrowser": { + "message": "Usar a descoberta de Dispositivo mDNS Browser na rede (experimental)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, "showVirtualMode": { "message": "Ativar modo de ligação virtual", "description": "Text for the option to enable or disable the virtual FC" From 26cf3eefcefe5fc02188232d8b67a969a8f49039 Mon Sep 17 00:00:00 2001 From: ASDosjani <62965528+ASDosjani@users.noreply.github.com> Date: Mon, 27 Feb 2023 10:51:23 +0100 Subject: [PATCH 032/393] Fix css in gps tab (#3359) css fix --- src/css/tabs/gps.less | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/css/tabs/gps.less b/src/css/tabs/gps.less index 972a3a4d30..e297bb1419 100644 --- a/src/css/tabs/gps.less +++ b/src/css/tabs/gps.less @@ -51,6 +51,9 @@ height: 20px; margin: 0 10px 5px 0; border: 1px solid var(--subtleAccent); + border-radius: 3px; + background: var(--boxBackground); + color: var(--defaultText); } .select { >div { From d15320540076dc44222d7bc22c23bee5d04fe6cb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 11:07:05 +0100 Subject: [PATCH 033/393] Update translations (#3360) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 3 +++ locales/da/messages.json | 11 +++++++---- locales/de/messages.json | 3 +++ locales/es/messages.json | 3 +++ locales/it/messages.json | 3 +++ locales/ja/messages.json | 3 +++ locales/ko/messages.json | 3 +++ locales/pt/messages.json | 3 +++ 8 files changed, 28 insertions(+), 4 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index d8dc7bbbff..fe34941236 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -481,6 +481,9 @@ "supportWarningDialogText": { "message": "Si us plau, confirmeu l'enviament de dades a l'equip de Betaflight.

Aquest procés executarà algunes ordres i enviarà la sortida al servidor de compilació.

A continuació, se us proporcionarà un identificador únic per enviar les vostres dades.

Assegureu-vos de proporcionar aquest identificador únic a l'equip de Betaflight quan feu servir Discord o obriu un problema a Github." }, + "supportWarningDialogInputPlaceHolder": { + "message": "Descriviu el problema" + }, "releaseCheckLoaded": { "message": "Informació de versió per $1 carregada des de GitHub." }, diff --git a/locales/da/messages.json b/locales/da/messages.json index bf2e3abbb3..9fdebe88d5 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -473,6 +473,9 @@ "supportWarningDialogText": { "message": "Bekræft venligst indsendelse af logoplysninger til Betaflight-teamet.

Denne proces vil køre nogle kommandoer og indsende data til release server.

Du vil derefter få en entydig identifikator på din indsendelse af data.

Angiv denne entydige identifikator til Betaflight-teamet, når du bruger Discord eller åbner problemer på Github." }, + "supportWarningDialogInputPlaceHolder": { + "message": "Beskriv problem" + }, "releaseCheckLoaded": { "message": "Indlæst udgivelsesinformation for $1 fra GitHub." }, @@ -2973,7 +2976,7 @@ "message": "Download manuelt." }, "firmwareFlasherTargetWarning": { - "message": "VIGTIGT: Sørg for at brænde med et image som passer til din FC. Brænder du et forkert image til din FC kan du risikere at dårlige ting sker." + "message": "VIGTIGT: Sørg for at bruge et image som passer til din FC. Brænder du et forkert image til din FC, kan du risikere at dårlige ting sker." }, "firmwareFlasherPath": { "message": "Sti:" @@ -3033,7 +3036,7 @@ "message": "Port" }, "firmwareFlasherManualBaud": { - "message": "Manuel baud-rate" + "message": "Manuel baud hastighed" }, "firmwareFlasherManualBaudDescription": { "message": "Manuel valg af baud rate for FC, som ikke understøtter standard hastighed eller forbinder via bluetooth.
Bemærk: Ikke brugt hvis forbundet via USB DFU" @@ -3111,13 +3114,13 @@ "message": "Besked:" }, "firmwareFlasherWarningText": { - "message": "Prøv venligst ikke at brænde ikke-Betaflight hardware med denne firmware brænder.
Du må ikke frakoble FC eller slukke din pc under brænding.

Bemærk: STM32 bootloader er gemt i ROM, som ikke kan ændres.
Bemærk: Auto-Connect er altid deaktiveret, mens du er inde i firmware brænder.
Bemærk: Sørg for at du har en sikkerhedskopi af din FC konfiguration; nogle opgraderinger/nedgraderinger vil slette/ændre din konfiguration.
Bemærk: Hvis du har problemer efter brænding prøv først at frakoble alle kabler fra din FC prøv genstart, genindstaller/opgrader drivere.
Bemærk: Når du brænder FC, som er direkte tilsluttet USB (de fleste nyere FC), sørg for at have læst afsnittet USB Flashing i Betaflight manual og at du har installeret den korrekte software og drivere" + "message": "Undlad venligst ikke at brænde ikke-Betaflight hardware med denne firmware brænder.
Du må ikke frakoble FC eller slukke din pc under brænding.

Bemærk: STM32 bootloader er gemt i ROM, som ikke kan ændres.
Bemærk: Auto-Connect er altid deaktiveret, mens du er inde i firmware brænder.
Bemærk: Sørg for at du har en sikkerhedskopi af din FC konfiguration; nogle opgraderinger/nedgraderinger vil slette/ændre din konfiguration.
Bemærk: Hvis du har problemer efter brænding, prøv først at frakoble alle kabler fra din FC, prøv genstart, prøv at genindstaller/opgrader drivere.
Bemærk: Når du brænder FC, som er direkte tilsluttet USB (de fleste nyere FC), sørg for at have læst afsnittet USB Flashing i Betaflight manual og at du har installeret den korrekte software og drivere" }, "firmwareFlasherRecoveryHead": { "message": "Gendannelse / tabt kommunikation" }, "firmwareFlasherRecoveryText": { - "message": "Hvis du har mistet kommunikationen med din FC, skal du følge disse trin for at gendanne kommunikation:
  • Sluk
  • Aktiver 'Ingen genstartssekvens', aktiver 'Slet alt på chip'.
  • Hold FC BOOT knap nede eller sæt BOOT jumper til sluttet.
  • Tænd (aktivitet LED vil IKKE blinke, hvis det er gjort korrekt).
  • Installer alle STM32 drivere og Zadig om nødvendigt, se evt. Betaflight installation sektion i Betaflight manual (engelsk).
  • Luk konfigurator, Genstart konfigurator.
  • Slip BOOT-knappen eller fjern jumper på FC BOOT kontakt, på din FC.
  • Flash med korrekt firmware (ved hjælp af manuel baud sats, hvis angivet i din FC's manual).
  • Sluk FC.
  • Hvis der er en BOOT jumper, fjern den.
  • Tænd (aktivitet LED skal blinke).
  • Forbind normalt.
" + "message": "Hvis du har mistet kommunikationen med din FC, skal du følge disse trin for at gendanne kommunikation: " }, "firmwareFlasherButtonLeave": { "message": "Forlad Firmware brænder" diff --git a/locales/de/messages.json b/locales/de/messages.json index 0c27422514..018ec55d1b 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -476,6 +476,9 @@ "supportWarningDialogText": { "message": "Bitte bestätigen Sie die Datenübermittlung an das Betaflight-Team.

Dieser Prozess führt einige Befehle aus und sendet die Ausgabe an den Build-Server.

Du erhältst dann eine eindeutige Identifikator (ID) für Ihre Datenübermittlung.

Bitte stelle sicher, dass du diese eindeutige ID dem Betaflight-Team zur Verfügung stellst, wenn du Discord benutzt oder ein Problem auf Github öffnest." }, + "supportWarningDialogInputPlaceHolder": { + "message": "Problembeschreibung " + }, "releaseCheckLoaded": { "message": "Lade Github Information für Version $1." }, diff --git a/locales/es/messages.json b/locales/es/messages.json index ae34ac184c..2175024758 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -473,6 +473,9 @@ "supportWarningDialogText": { "message": "Por favor confirma el envío de datos al equipo Betaflight.

Este proceso ejecutará algunos comandos y enviará la salida al servidor de compilación.

Entonces se te proporcionará un identificador único para tu envío de datos.

Por favor asegúrate de proporcionar este identificador único al equipo de Betaflight cuando uses Discord o abras un problema en Github." }, + "supportWarningDialogInputPlaceHolder": { + "message": "Describe el problema (en inglés)" + }, "releaseCheckLoaded": { "message": "Información de versiones para el $1 cargada desde GitHub." }, diff --git a/locales/it/messages.json b/locales/it/messages.json index 5dedc489f9..6903a1fdb6 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -473,6 +473,9 @@ "supportWarningDialogText": { "message": "Per favore conferma l'invio dei dati al team Betaflight.

Questo processo eseguirà alcuni comandi e invierà l'output al server di compilazione.

Ti sarà fornito un identificatore univoco dell'invio dei tuoi dati.

Assicurati di fornire questo identificatore univoco al team Betaflight quando usi Discord o quando apri un issue su Github." }, + "supportWarningDialogInputPlaceHolder": { + "message": "Descrivi il problema" + }, "releaseCheckLoaded": { "message": "Caricate le informazioni della release per $1 da GitHub." }, diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 11b952aa07..15e8c2cbcd 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -473,6 +473,9 @@ "supportWarningDialogText": { "message": "Betaflight開発チームへのデータ送信を確認してください。

この手順ではいくつかのコマンドを実行し、その出力をビルドサーバへ送信します。

その後、データを提出するための一意の識別子が提供されます。

Discordを使用するときやGitHubでのIssue投稿に、この一意の識別子をBetaflight開発チームに提供するようお願い致します。" }, + "supportWarningDialogInputPlaceHolder": { + "message": "問題についての説明" + }, "releaseCheckLoaded": { "message": "GitHubの $1 よりリリース情報をロードしました。" }, diff --git a/locales/ko/messages.json b/locales/ko/messages.json index af45b533b1..8b7c4ec4ba 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -473,6 +473,9 @@ "supportWarningDialogText": { "message": "베타플라이트 팀에 데이터 제출을 확인하십시오.

이 프로세스는 일부 명령을 실행하고 출력을 빌드 서버에 제출합니다.

그러면 데이터 제출에 대한 고유 식별자가 제공됩니다.

디스코드를 사용하거나 Github에서 문제를 열 때 베타플라이트 팀에 이 고유 식별자를 제공하십시오." }, + "supportWarningDialogInputPlaceHolder": { + "message": "문제를 서술하세요" + }, "releaseCheckLoaded": { "message": "GitHub로부터 $1에 대한 릴리즈 정보를 로드했습니다." }, diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 6a965808b2..431bc12beb 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -473,6 +473,9 @@ "supportWarningDialogText": { "message": "Por favor, confirme a submissão dos dados à equipa do Betaflight

Este processo executará alguns comandos e enviará o output para o servidor de compilação.

Receberá então um identificador exclusivo para a sua submissão de dados.

Por favor, certifique-se de fornecer este identificador único à equipa do Betaflight quando usar o Discord ou abrir uma questão no Github." }, + "supportWarningDialogInputPlaceHolder": { + "message": "Descreva o problema" + }, "releaseCheckLoaded": { "message": "Informações da versão do $1 carregadas do GitHub." }, From b2654be757259c6bcd28fd156502eff3bd136c91 Mon Sep 17 00:00:00 2001 From: Ivan Efimov Date: Mon, 27 Feb 2023 10:47:42 -0600 Subject: [PATCH 034/393] Fix: vtx tab -> vtx type (#3353) --- src/js/utils/VtxDeviceStatus/Rtc6705DeviceStatus.js | 3 --- src/js/utils/VtxDeviceStatus/SmartAudioDeviceStatus.js | 3 --- src/js/utils/VtxDeviceStatus/TrampDeviceStatus.js | 3 --- src/js/utils/VtxDeviceStatus/VtxDeviceStatusFactory.js | 9 +++++++++ src/js/utils/VtxDeviceStatus/VtxMspDeviceStatus.js | 3 --- 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/js/utils/VtxDeviceStatus/Rtc6705DeviceStatus.js b/src/js/utils/VtxDeviceStatus/Rtc6705DeviceStatus.js index 8a5f600196..5607e3a5f2 100644 --- a/src/js/utils/VtxDeviceStatus/Rtc6705DeviceStatus.js +++ b/src/js/utils/VtxDeviceStatus/Rtc6705DeviceStatus.js @@ -1,5 +1,4 @@ import VtxDeviceStatus, { VtxDeviceTypes } from './VtxDeviceStatus'; -import vtxDeviceStatusFactory from './VtxDeviceStatusFactory'; class VtxDeviceStatusRtc6705 extends VtxDeviceStatus { constructor(dataView) @@ -17,6 +16,4 @@ class VtxDeviceStatusRtc6705 extends VtxDeviceStatus { } } -vtxDeviceStatusFactory.registerVtxDeviceStatusClass(VtxDeviceStatusRtc6705); - export default VtxDeviceStatusRtc6705; diff --git a/src/js/utils/VtxDeviceStatus/SmartAudioDeviceStatus.js b/src/js/utils/VtxDeviceStatus/SmartAudioDeviceStatus.js index 280c9dbfbc..f890176af6 100644 --- a/src/js/utils/VtxDeviceStatus/SmartAudioDeviceStatus.js +++ b/src/js/utils/VtxDeviceStatus/SmartAudioDeviceStatus.js @@ -1,5 +1,4 @@ import VtxDeviceStatus, { VtxDeviceTypes } from "./VtxDeviceStatus"; -import vtxDeviceStatusFactory from "./VtxDeviceStatusFactory"; import { i18n } from "../../localization"; class VtxDeviceStatusSmartAudio extends VtxDeviceStatus { @@ -48,6 +47,4 @@ class VtxDeviceStatusSmartAudio extends VtxDeviceStatus { } } -vtxDeviceStatusFactory.registerVtxDeviceStatusClass(VtxDeviceStatusSmartAudio); - export default VtxDeviceStatusSmartAudio; diff --git a/src/js/utils/VtxDeviceStatus/TrampDeviceStatus.js b/src/js/utils/VtxDeviceStatus/TrampDeviceStatus.js index 6de2a893ca..48f2854cf8 100644 --- a/src/js/utils/VtxDeviceStatus/TrampDeviceStatus.js +++ b/src/js/utils/VtxDeviceStatus/TrampDeviceStatus.js @@ -1,5 +1,4 @@ import VtxDeviceStatus, { VtxDeviceTypes } from './VtxDeviceStatus'; -import vtxDeviceStatusFactory from './VtxDeviceStatusFactory'; class VtxDeviceStatusTramp extends VtxDeviceStatus { constructor(dataView) @@ -17,6 +16,4 @@ class VtxDeviceStatusTramp extends VtxDeviceStatus { } } -vtxDeviceStatusFactory.registerVtxDeviceStatusClass(VtxDeviceStatusTramp); - export default VtxDeviceStatusTramp; diff --git a/src/js/utils/VtxDeviceStatus/VtxDeviceStatusFactory.js b/src/js/utils/VtxDeviceStatus/VtxDeviceStatusFactory.js index 30aaacba68..884afd8255 100644 --- a/src/js/utils/VtxDeviceStatus/VtxDeviceStatusFactory.js +++ b/src/js/utils/VtxDeviceStatus/VtxDeviceStatusFactory.js @@ -1,4 +1,8 @@ import VtxDeviceStatus from './VtxDeviceStatus'; +import VtxDeviceStatusSmartAudio from './SmartAudioDeviceStatus'; +import VtxDeviceStatusTramp from './TrampDeviceStatus'; +import VtxDeviceStatusMsp from './VtxMspDeviceStatus'; +import VtxDeviceStatusRtc6705 from './Rtc6705DeviceStatus'; const vtxDeviceStatusFactory = { _vtxDeviceStatusClasses: [], @@ -39,4 +43,9 @@ const vtxDeviceStatusFactory = { }, }; +vtxDeviceStatusFactory.registerVtxDeviceStatusClass(VtxDeviceStatusSmartAudio); +vtxDeviceStatusFactory.registerVtxDeviceStatusClass(VtxDeviceStatusTramp); +vtxDeviceStatusFactory.registerVtxDeviceStatusClass(VtxDeviceStatusMsp); +vtxDeviceStatusFactory.registerVtxDeviceStatusClass(VtxDeviceStatusRtc6705); + export default vtxDeviceStatusFactory; diff --git a/src/js/utils/VtxDeviceStatus/VtxMspDeviceStatus.js b/src/js/utils/VtxDeviceStatus/VtxMspDeviceStatus.js index 7cf6b0f791..0dec8e6551 100644 --- a/src/js/utils/VtxDeviceStatus/VtxMspDeviceStatus.js +++ b/src/js/utils/VtxDeviceStatus/VtxMspDeviceStatus.js @@ -1,4 +1,3 @@ -import vtxDeviceStatusFactory from './VtxDeviceStatusFactory'; import VtxDeviceStatus, { VtxDeviceTypes } from './VtxDeviceStatus'; class VtxDeviceStatusMsp extends VtxDeviceStatus { @@ -17,6 +16,4 @@ class VtxDeviceStatusMsp extends VtxDeviceStatus { } } -vtxDeviceStatusFactory.registerVtxDeviceStatusClass(VtxDeviceStatusMsp); - export default VtxDeviceStatusMsp; From 7f3ba27301c17af74a981068ea1a90a020efaa94 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 28 Feb 2023 00:04:46 +0100 Subject: [PATCH 035/393] Limit groundspeed in UI to 3m/s (#3362) --- src/tabs/failsafe.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tabs/failsafe.html b/src/tabs/failsafe.html index 30c45b972d..f04cb6e26e 100644 --- a/src/tabs/failsafe.html +++ b/src/tabs/failsafe.html @@ -140,7 +140,7 @@
-
From 6abcce226f1547244aec9a02620b08798727a7d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Kiripolszky?= Date: Thu, 2 Mar 2023 18:29:24 +0100 Subject: [PATCH 036/393] Option to automatically open DevTools (#3352) --- locales/en/messages.json | 4 ++++ src/js/data_storage.js | 4 ++++ src/js/main.js | 4 ++++ src/js/tabs/options.js | 14 ++++++++++++++ src/tabs/options.html | 6 ++++++ 5 files changed, 32 insertions(+) diff --git a/locales/en/messages.json b/locales/en/messages.json index 1a315a6f16..b59a6ccd44 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -6822,5 +6822,9 @@ }, "coreBuildModeDescription": { "message": "This option builds a firmware that contains the hardware drivers (and some limited features). It is available to assist in the detection of the hardware on a flight controller, and is provided for that convenience only. Not all features will be available (only hardware) using this option." + }, + "showDevToolsOnStartup": { + "message": "Automatically open DevTools in development mode", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" } } diff --git a/src/js/data_storage.js b/src/js/data_storage.js index c3fdfcd1de..50885d5b55 100644 --- a/src/js/data_storage.js +++ b/src/js/data_storage.js @@ -35,6 +35,10 @@ const CONFIGURATOR = { return `${this.version}`; } }, + + isDevVersion: function() { + return this.version.includes('debug'); + }, }; export default CONFIGURATOR; diff --git a/src/js/main.js b/src/js/main.js index 11b5635291..5259d4de01 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -183,6 +183,10 @@ function startProcess() { GUI.nwGui.Shell.openExternal(url); }); nwWindow.on('close', closeHandler); + const config = getConfig('showDevToolsOnStartup'); + if (CONFIGURATOR.isDevVersion() && !!config.showDevToolsOnStartup) { + nwWindow.showDevTools(); + } } else if (GUI.isCordova()) { window.addEventListener('beforeunload', closeHandler); document.addEventListener('backbutton', function(e) { diff --git a/src/js/tabs/options.js b/src/js/tabs/options.js index 93f6f1c13e..b7e81850d9 100644 --- a/src/js/tabs/options.js +++ b/src/js/tabs/options.js @@ -6,6 +6,7 @@ import CliAutoComplete from '../CliAutoComplete'; import DarkTheme, { setDarkTheme } from '../DarkTheme'; import { checkForConfiguratorUpdates } from '../utils/checkForConfiguratorUpdates'; import { checkSetupAnalytics } from '../Analytics'; +import CONFIGURATOR from '../data_storage'; const options = {}; options.initialize = function (callback) { @@ -25,6 +26,7 @@ options.initialize = function (callback) { TABS.options.initShowVirtualMode(); TABS.options.initCordovaForceComputerUI(); TABS.options.initDarkTheme(); + TABS.options.initShowDevToolsOnStartup(); TABS.options.initShowWarnings(); @@ -185,6 +187,18 @@ options.initDarkTheme = function () { }).change(); }; +options.initShowDevToolsOnStartup = function () { + if (!(CONFIGURATOR.isDevVersion() && GUI.isNWJS())) { + $('div.showDevToolsOnStartup').hide(); + return; + } + const result = getConfig('showDevToolsOnStartup'); + $('div.showDevToolsOnStartup input') + .prop('checked', !!result.showDevToolsOnStartup) + .change(function () { setConfig({ showDevToolsOnStartup: $(this).is(':checked') }); }) + .change(); +}; + // TODO: remove when modules are in place TABS.options = options; export { options }; diff --git a/src/tabs/options.html b/src/tabs/options.html index 6eee661364..6acbc695e7 100644 --- a/src/tabs/options.html +++ b/src/tabs/options.html @@ -61,6 +61,12 @@
+
+
+ +
+ +
From 7fbb0597a3485903514a421f6a3a350655a46a89 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Thu, 2 Mar 2023 18:30:16 +0100 Subject: [PATCH 037/393] Select blackbox debug fields (#3363) --- locales/en/messages.json | 3 ++ src/css/tabs/onboard_logging.less | 22 +++++++++++++ src/js/fc.js | 1 + src/js/msp/MSPHelper.js | 7 ++++ src/js/tabs/onboard_logging.js | 55 +++++++++++++++++++++++++++++-- src/tabs/onboard_logging.html | 4 +++ 6 files changed, 89 insertions(+), 3 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index b59a6ccd44..e6fe2350ac 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -6376,6 +6376,9 @@ "onboardLoggingRateOfLogging": { "message": "Blackbox logging rate" }, + "onboardLoggingDebugFields": { + "message": "Blackbox debug fields" + }, "onboardLoggingDebugMode": { "message": "Blackbox debug mode" }, diff --git a/src/css/tabs/onboard_logging.less b/src/css/tabs/onboard_logging.less index 215559dfd8..3807696268 100644 --- a/src/css/tabs/onboard_logging.less +++ b/src/css/tabs/onboard_logging.less @@ -177,6 +177,28 @@ line-height: 20px; } } + .blackboxDebugFields { + margin-top: 5px; + select { + float: left; + width: 180px; + height: 20px; + margin: 0 10px 5px 0; + border: 1px solid var(--subtleAccent); + border-radius: 3px; + } + span { + &:last-child { + margin-left: 7px; + } + line-height: 20px; + } + } + .ms-choice { + background-color: var(--boxBackground) !important; + color: var(--defaultText) !important; + height: 20px; + } .blackboxDebugMode { select { float: left; diff --git a/src/js/fc.js b/src/js/fc.js index 89d2e267a4..c6fa21e1b6 100644 --- a/src/js/fc.js +++ b/src/js/fc.js @@ -399,6 +399,7 @@ const FC = { blackboxRateDenom: 1, blackboxPDenom: 0, blackboxSampleRate: 0, + blackboxDisabledMask: 0, }; this.TRANSPONDER = { diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 5375c4b63f..3ce793813b 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -1294,6 +1294,9 @@ MspHelper.prototype.process_data = function(dataHandler) { if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { FC.BLACKBOX.blackboxSampleRate = data.readU8(); } + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) { + FC.BLACKBOX.blackboxDisabledMask = data.readU32(); + } break; case MSPCodes.MSP_SET_BLACKBOX_CONFIG: console.log("Blackbox config saved"); @@ -2069,6 +2072,10 @@ MspHelper.prototype.crunch = function(code, modifierCode = undefined) { if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { buffer.push8(FC.BLACKBOX.blackboxSampleRate); } + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) { + buffer.push32(FC.BLACKBOX.blackboxDisabledMask); + } + break; case MSPCodes.MSP_COPY_PROFILE: diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index 9de751cd2a..e4e575bad9 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -115,25 +115,41 @@ onboard_logging.initialize = function (callback) { const deviceSelect = $(".blackboxDevice select"); const loggingRatesSelect = $(".blackboxRate select"); const debugModeSelect = $(".blackboxDebugMode select"); + const debugFieldsSelect = $(".blackboxDebugFields select"); if (FC.BLACKBOX.supported) { - $(".tab-onboard_logging a.save-settings").click(function() { + $(".tab-onboard_logging a.save-settings").on('click', async function() { + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) { + let fieldsMask = 0; + + $(".blackboxDebugFields select option:not(:selected)").each(function() { + fieldsMask |= (1 << $(this).val()); + }); + + FC.BLACKBOX.blackboxDisabledMask = fieldsMask; + } if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { FC.BLACKBOX.blackboxSampleRate = parseInt(loggingRatesSelect.val(), 10); FC.BLACKBOX.blackboxPDenom = parseInt(loggingRatesSelect.val(), 10); } FC.BLACKBOX.blackboxDevice = parseInt(deviceSelect.val(), 10); + + await MSP.promise(MSPCodes.MSP_SET_BLACKBOX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_BLACKBOX_CONFIG)); + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)) { FC.PID_ADVANCED_CONFIG.debugMode = parseInt(debugModeSelect.val()); - MSP.send_message(MSPCodes.MSP_SET_ADVANCED_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_ADVANCED_CONFIG), false, save_to_eeprom); + + await MSP.promise(MSPCodes.MSP_SET_ADVANCED_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_ADVANCED_CONFIG)); } - MSP.send_message(MSPCodes.MSP_SET_BLACKBOX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_BLACKBOX_CONFIG), false, save_to_eeprom); + + save_to_eeprom(); }); } populateLoggingRates(loggingRatesSelect); populateDevices(deviceSelect); populateDebugModes(debugModeSelect); + populateDebugFields(debugFieldsSelect); deviceSelect.change(function() { if ($(this).val() === "0") { @@ -354,6 +370,39 @@ onboard_logging.initialize = function (callback) { } } + function populateDebugFields(debugFieldsSelect) { + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) { + $('.blackboxDebugFields').show(); + + const debugFields = [ + { text: "PID Data" }, + { text: "RC Commands Data" }, + { text: "Setpoint Data" }, + { text: "Battery Data" }, + { text: "Magnetometer Data" }, + { text: "Altitude Data" }, + { text: "RSSI Data" }, + { text: "Gyro Data" }, + { text: "Accelerometer Data" }, + { text: "Debug Log Data" }, + { text: "Motor Data" }, + { text: "GPS Data" }, + ]; + + let fieldsMask = FC.BLACKBOX.blackboxDisabledMask; + + for (let i = 0; i < debugFields.length; i++) { + const enabled = (fieldsMask & (1 << i)) === 0; + debugFieldsSelect.append(new Option(debugFields[i].text, i, false, enabled)); + } + + debugFieldsSelect.sortSelect().multipleSelect(); + + } else { + $('.blackboxDebugFields').hide(); + } + } + function formatFilesizeKilobytes(kilobytes) { if (kilobytes < 1024) { return `${Math.round(kilobytes)}kB`; diff --git a/src/tabs/onboard_logging.html b/src/tabs/onboard_logging.html index 811d9f7089..8b89a8e120 100644 --- a/src/tabs/onboard_logging.html +++ b/src/tabs/onboard_logging.html @@ -31,6 +31,10 @@
+
+ + +
From a4bc6ef01dc73d4082aac6612460ae094736c8af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Kiripolszky?= Date: Thu, 2 Mar 2023 18:32:23 +0100 Subject: [PATCH 038/393] Display heading on GPS Tab (#3355) --- locales/en/messages.json | 5 +++- src/js/VirtualFC.js | 33 ++++++++++++++++++++++++++- src/js/fc.js | 2 +- src/js/tabs/gps.js | 25 +++++++++++++------- src/js/tabs/map.js | 49 ++++++++++++++++++++-------------------- src/tabs/gps.html | 4 ++++ 6 files changed, 82 insertions(+), 36 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index e6fe2350ac..e0dc5ee2a6 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -2482,6 +2482,9 @@ "gpsLon": { "message": "Longitude:" }, + "gpsHeading": { + "message": "Heading:" + }, "gpsSpeed": { "message": "Speed:" }, @@ -4878,7 +4881,7 @@ }, "osdTextElementVTXchannelVariantPower": { "message": "VTX power", - "description": "One of the variants of the VTX channel element of the OSD" + "description": "One of the variants of the VTX channel element of the OSD" }, "osdTextElementVTXchannelVariantFull": { "message": "Band:Channel:Pwr:Pit", diff --git a/src/js/VirtualFC.js b/src/js/VirtualFC.js index 226acad251..04281c8b96 100644 --- a/src/js/VirtualFC.js +++ b/src/js/VirtualFC.js @@ -156,6 +156,8 @@ const VirtualFC = { mag_hardware: 1, }; + virtualFC.SENSOR_DATA = { ...FC.SENSOR_DATA }; + virtualFC.RC = { channels: Array.from({length: 16}), active_channels: 16, @@ -180,8 +182,20 @@ const VirtualFC = { // 11 1111 (pass bitchecks) virtualFC.CONFIG.activeSensors = 63; + + virtualFC.GPS_CONFIG = { + provider: 1, + ublox_sbas: 1, + auto_config: 1, + auto_baud: 0, + home_point_once: 1, + ublox_use_galileo: 1, + }; + + virtualFC.GPS_DATA = sampleGpsData; }, - setupVirtualOSD(){ + + setupVirtualOSD() { const virtualOSD = OSD; virtualOSD.data.video_system = 1; @@ -221,4 +235,21 @@ const VirtualFC = { }, }; +const sampleGpsData = { + "fix": 2, + "numSat": 10, + "lat": 474919409, + "lon": 190539766, + "alt": 0, + "speed": 0, + "ground_course": 1337, + "distanceToHome": 0, + "directionToHome": 0, + "update": 0, + "chn": [0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 6, 6, 6, 6, 6, 6, 6, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], + "svid": [1, 2, 10, 15, 18, 23, 26, 123, 136, 1, 15, 2, 3, 4, 9, 10, 16, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "quality": [3, 95, 95, 95, 95, 95, 95, 23, 23, 1, 31, 20, 31, 23, 20, 17, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "cno": [27, 37, 43, 37, 34, 47, 44, 42, 39, 0, 40, 24, 40, 35, 26, 0, 35, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], +}; + export default VirtualFC; diff --git a/src/js/fc.js b/src/js/fc.js index c6fa21e1b6..2ce489b08f 100644 --- a/src/js/fc.js +++ b/src/js/fc.js @@ -300,7 +300,7 @@ const FC = { speed: 0, ground_course: 0, distanceToHome: 0, - ditectionToHome: 0, + directionToHome: 0, update: 0, chn: [], diff --git a/src/js/tabs/gps.js b/src/js/tabs/gps.js index 3d2807ef68..51bf243141 100644 --- a/src/js/tabs/gps.js +++ b/src/js/tabs/gps.js @@ -21,6 +21,8 @@ gps.initialize = async function (callback) { await MSP.promise(MSPCodes.MSP_GPS_CONFIG); await MSP.promise(MSPCodes.MSP_STATUS); + const hasMag = have_sensor(FC.CONFIG.activeSensors, 'mag'); + load_html(); function load_html() { @@ -52,7 +54,11 @@ gps.initialize = async function (callback) { } function get_gpsvinfo_data() { - MSP.send_message(MSPCodes.MSP_GPS_SV_INFO, false, false, update_ui); + MSP.send_message(MSPCodes.MSP_GPS_SV_INFO, false, false, hasMag ? get_imu_data : update_ui); + } + + function get_imu_data() { + MSP.send_message(MSPCodes.MSP_RAW_IMU, false, false, update_ui); } // To not flicker the divs while the fix is unstable @@ -178,6 +184,8 @@ gps.initialize = async function (callback) { const lat = FC.GPS_DATA.lat / 10000000; const lon = FC.GPS_DATA.lon / 10000000; const url = `https://maps.google.com/?q=${lat},${lon}`; + const heading = hasMag ? Math.atan2(FC.SENSOR_DATA.magnetometer[1], FC.SENSOR_DATA.magnetometer[0]) : undefined; + const headingDeg = heading === undefined ? 0 : heading * 180 / Math.PI; const gnssArray = ['GPS', 'SBAS', 'Galileo', 'BeiDou', 'IMES', 'QZSS', 'Glonass']; const qualityArray = ['gnssQualityNoSignal', 'gnssQualitySearching', 'gnssQualityAcquired', 'gnssQualityUnusable', 'gnssQualityLocked', 'gnssQualityFullyLocked', 'gnssQualityFullyLocked', 'gnssQualityFullyLocked']; @@ -189,6 +197,7 @@ gps.initialize = async function (callback) { $('.GPS_info td.alt').text(`${alt} m`); $('.GPS_info td.lat a').prop('href', url).text(`${lat.toFixed(4)} deg`); $('.GPS_info td.lon a').prop('href', url).text(`${lon.toFixed(4)} deg`); + $('.GPS_info td.heading').text(`${headingDeg.toFixed(4)} deg`); $('.GPS_info td.speed').text(`${FC.GPS_DATA.speed} cm/s`); $('.GPS_info td.sats').text(FC.GPS_DATA.numSat); $('.GPS_info td.distToHome').text(`${FC.GPS_DATA.distanceToHome} m`); @@ -263,6 +272,7 @@ gps.initialize = async function (callback) { action: 'center', lat: lat, lon: lon, + heading: heading, }; frame = document.getElementById('map'); @@ -271,7 +281,9 @@ gps.initialize = async function (callback) { if (FC.GPS_DATA.fix) { gpsWasFixed = true; - frame.contentWindow.postMessage(message, '*'); + if (!!frame.contentWindow) { + frame.contentWindow.postMessage(message, '*'); + } $('#loadmap').show(); $('#waiting').hide(); } else if (!gpsWasFixed) { @@ -279,7 +291,9 @@ gps.initialize = async function (callback) { $('#waiting').show(); } else { message.action = 'nofix'; - frame.contentWindow.postMessage(message, '*'); + if (!!frame.contentWindow) { + frame.contentWindow.postMessage(message, '*'); + } } } else { gpsWasFixed = false; @@ -291,11 +305,6 @@ gps.initialize = async function (callback) { // enable data pulling GUI.interval_add('gps_pull', function gps_update() { - // avoid usage of the GPS commands until a GPS sensor is detected for targets that are compiled without GPS support. - if (!have_sensor(FC.CONFIG.activeSensors, 'gps')) { - //return; - } - get_raw_gps_data(); }, 75, true); diff --git a/src/js/tabs/map.js b/src/js/tabs/map.js index 7c9f0217c6..bc014a9314 100644 --- a/src/js/tabs/map.js +++ b/src/js/tabs/map.js @@ -76,31 +76,30 @@ function initializeMap() { } function processMapEvents(e) { - try { - switch(e.data.action) { - - case 'zoom_in': - mapView.setZoom(mapView.getZoom() + 1); - break; - - case 'zoom_out': - mapView.setZoom(mapView.getZoom() - 1); - break; - - case 'center': - iconFeature.setStyle(iconStyle); - const center = ol.proj.fromLonLat([e.data.lon, e.data.lat]); - mapView.setCenter(center); - iconGeometry.setCoordinates(center); - break; - - case 'nofix': - iconFeature.setStyle(iconStyleNoFix); - break; + switch (e.data.action) { + case 'zoom_in': + mapView.setZoom(mapView.getZoom() + 1); + break; + + case 'zoom_out': + mapView.setZoom(mapView.getZoom() - 1); + break; + + case 'center': + iconFeature.setStyle(iconStyle); + const center = ol.proj.fromLonLat([e.data.lon, e.data.lat]); + mapView.setCenter(center); + const heading = e.data.heading === undefined ? 0 : e.data.heading; + mapView.setRotation(heading); + iconGeometry.setCoordinates(center); + break; + + case 'nofix': + iconFeature.setStyle(iconStyleNoFix); + break; } - - } catch (err) { - console.log(`Map error ${err}`); - } + } catch (err) { + console.error('Map error', err); + } } diff --git a/src/tabs/gps.html b/src/tabs/gps.html index f9e5d33e48..ef94e12d49 100644 --- a/src/tabs/gps.html +++ b/src/tabs/gps.html @@ -100,6 +100,10 @@ 0.0000 deg + + + 0.0000 deg + 0 cm/s From 65d0ab37965b58c7f6e21f6630e1fcb3a766e321 Mon Sep 17 00:00:00 2001 From: J Blackman Date: Fri, 3 Mar 2023 04:37:14 +1100 Subject: [PATCH 039/393] Remove setting of client version in the cloud build request (#3358) Client as a property on the request is now ignored by the API, and the version is taken from the header that is always present. --- src/js/tabs/firmware_flasher.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 311164baa2..4bdf661298 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -856,9 +856,6 @@ firmware_flasher.initialize = function (callback) { target: targetDetail.target, release: targetDetail.release, options: [], - client: { - version: CONFIGURATOR.version, - }, }; const coreBuild = (targetDetail.cloudBuild !== true) || $('input[name="coreBuildModeCheckbox"]').is(':checked'); From 584e672c4d07f17d1901b5dbc85926e346d5f7d9 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Fri, 3 Mar 2023 00:11:20 +0100 Subject: [PATCH 040/393] Expose Cloud Build Options and hide tabs and features (#3332) Expose Cloud Build Options Add cloud build options to auto-detect --- locales/en/messages.json | 3 ++ src/js/BuildApi.js | 12 +++++ src/js/Features.js | 35 ++++++++---- src/js/data_storage.js | 3 +- src/js/fc.js | 2 + src/js/gui.js | 16 ++++-- src/js/msp/MSPCodes.js | 1 + src/js/msp/MSPHelper.js | 3 ++ src/js/serial_backend.js | 53 +++++++++++++++---- src/js/tabs/firmware_flasher.js | 94 +++++++++++++++++++++++++-------- src/js/tabs/ports.js | 36 +++++++------ src/js/utils/updateTabList.js | 63 ++++++---------------- src/tabs/configuration.html | 2 +- 13 files changed, 209 insertions(+), 114 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index e0dc5ee2a6..aab77c48ed 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -549,6 +549,9 @@ "buildServerSupportRequestSubmission": { "message": "
*** Support data submitted ***
Id: $1


# copy ID and provide to the betaflight team." }, + "buildKey": { + "message": "Build Key: $1" + }, "supportWarningDialogTitle": { "message": "Confirm Data Submission" }, diff --git a/src/js/BuildApi.js b/src/js/BuildApi.js index b4ab14df6f..cad2c70995 100644 --- a/src/js/BuildApi.js +++ b/src/js/BuildApi.js @@ -149,6 +149,18 @@ export default class BuildApi { }); } + requestBuildOptions(key, onSuccess, onFailure) { + + const url = `${this._url}/api/builds/${key}/json`; + $.get(url, function (data) { + onSuccess(data); + }).fail(xhr => { + if (onFailure !== undefined) { + onFailure(); + } + }); + } + loadOptions(onSuccess, onFailure) { const url = `${this._url}/api/options`; diff --git a/src/js/Features.js b/src/js/Features.js index 2324a16c86..8f31464b5a 100644 --- a/src/js/Features.js +++ b/src/js/Features.js @@ -1,5 +1,5 @@ import { bit_check, bit_set, bit_clear } from "./bit"; -import { API_VERSION_1_44 } from './data_storage'; +import { API_VERSION_1_44, API_VERSION_1_45 } from './data_storage'; import semver from "semver"; import { tracking } from "./Analytics"; @@ -11,21 +11,22 @@ const Features = function (config) { {bit: 2, group: 'other', name: 'INFLIGHT_ACC_CAL'}, {bit: 3, group: 'rxMode', mode: 'select', name: 'RX_SERIAL'}, {bit: 4, group: 'escMotorStop', name: 'MOTOR_STOP'}, - {bit: 5, group: 'other', name: 'SERVO_TILT', haveTip: true}, + {bit: 5, group: 'other', name: 'SERVO_TILT', haveTip: true, dependsOn: 'SERVOS'}, {bit: 6, group: 'other', name: 'SOFTSERIAL', haveTip: true}, - {bit: 7, group: 'gps', name: 'GPS', haveTip: true}, - {bit: 9, group: 'other', name: 'SONAR'}, - {bit: 10, group: 'telemetry', name: 'TELEMETRY'}, + {bit: 7, group: 'other', name: 'GPS', haveTip: true, dependsOn: 'GPS'}, + {bit: 9, group: 'other', name: 'SONAR', dependsOn: 'RANGEFINDER'}, + {bit: 10, group: 'telemetry', name: 'TELEMETRY', dependsOn: 'TELEMETRY'}, {bit: 12, group: '3D', name: '3D'}, {bit: 13, group: 'rxMode', mode: 'select', name: 'RX_PARALLEL_PWM'}, {bit: 14, group: 'rxMode', mode: 'select', name: 'RX_MSP'}, {bit: 15, group: 'rssi', name: 'RSSI_ADC'}, - {bit: 16, group: 'other', name: 'LED_STRIP'}, - {bit: 17, group: 'other', name: 'DISPLAY', haveTip: true}, - {bit: 18, group: 'other', name: 'OSD'}, - {bit: 20, group: 'other', name: 'CHANNEL_FORWARDING'}, - {bit: 21, group: 'other', name: 'TRANSPONDER', haveTip: true}, + {bit: 16, group: 'other', name: 'LED_STRIP', dependsOn: 'LED_STRIP'}, + {bit: 17, group: 'other', name: 'DISPLAY', haveTip: true, dependsOn: 'DASHBOARD'}, + {bit: 18, group: 'other', name: 'OSD', dependsOn: 'OSD'}, + {bit: 20, group: 'other', name: 'CHANNEL_FORWARDING', dependsOn: 'SERVOS'}, + {bit: 21, group: 'other', name: 'TRANSPONDER', haveTip: true, dependsOn: 'TRANSPONDER'}, {bit: 22, group: 'other', name: 'AIRMODE'}, + {bit: 24, group: 'vtx', name: 'VTX', dependsOn: 'VTX'}, {bit: 25, group: 'rxMode', mode: 'select', name: 'RX_SPI'}, {bit: 27, group: 'escSensor', name: 'ESC_SENSOR'}, {bit: 28, group: 'antiGravity', name: 'ANTI_GRAVITY', haveTip: true, hideName: true}, @@ -37,7 +38,19 @@ const Features = function (config) { ); } - self._features = features.sort((a, b) => a.name.localeCompare(b.name, window.navigator.language, { ignorePunctuation: true })); + self._features = features; + + if (semver.gte(config.apiVersion, API_VERSION_1_45) && config.buildKey.length === 32) { + self._features = []; + + for (const feature of features) { + if (config.buildOptions.some(opt => opt.includes(feature.dependsOn)) || feature.dependsOn === undefined) { + self._features.push(feature); + } + } + } + + self._features.sort((a, b) => a.name.localeCompare(b.name, window.navigator.language, { ignorePunctuation: true })); self._featureMask = 0; self._analyticsChanges = {}; diff --git a/src/js/data_storage.js b/src/js/data_storage.js index 50885d5b55..d167e3d506 100644 --- a/src/js/data_storage.js +++ b/src/js/data_storage.js @@ -6,12 +6,13 @@ export const API_VERSION_1_42 = '1.42.0'; export const API_VERSION_1_43 = '1.43.0'; export const API_VERSION_1_44 = '1.44.0'; export const API_VERSION_1_45 = '1.45.0'; +export const API_VERSION_1_46 = '1.46.0'; const CONFIGURATOR = { // all versions are specified and compared using semantic versioning http://semver.org/ API_VERSION_ACCEPTED: API_VERSION_1_41, API_VERSION_MIN_SUPPORTED_BACKUP_RESTORE: API_VERSION_1_41, - API_VERSION_MAX_SUPPORTED: API_VERSION_1_45, + API_VERSION_MAX_SUPPORTED: API_VERSION_1_46, connectionValid: false, connectionValidCliOnly: false, diff --git a/src/js/fc.js b/src/js/fc.js index 2ce489b08f..b5e811ddcb 100644 --- a/src/js/fc.js +++ b/src/js/fc.js @@ -8,6 +8,8 @@ const INITIAL_CONFIG = { flightControllerVersion: '', version: 0, buildInfo: '', + buildKey: '', + buildOptions: [], multiType: 0, msp_version: 0, // not specified using semantic versioning capability: 0, diff --git a/src/js/gui.js b/src/js/gui.js index c26ac1ac21..49b0372214 100644 --- a/src/js/gui.js +++ b/src/js/gui.js @@ -33,19 +33,16 @@ class GuiControl { 'options', 'help', ]; - this.defaultAllowedFCTabsWhenConnected = [ + + this.defaultAllowedTabsCloudBuild = [ 'setup', 'failsafe', - 'transponder', - 'osd', 'power', 'adjustments', 'auxiliary', 'presets', 'cli', 'configuration', - 'gps', - 'led_strip', 'logging', 'onboard_logging', 'modes', @@ -54,10 +51,19 @@ class GuiControl { 'ports', 'receiver', 'sensors', + ]; + + this.defaultCloudBuildTabOptions = [ + 'gps', + 'led_strip', + 'osd', 'servos', + 'transponder', 'vtx', ]; + this.defaultAllowedFCTabsWhenConnected = [ ...this.defaultAllowedTabsCloudBuild, ...this.defaultCloudBuildTabOptions]; + this.allowedTabs = this.defaultAllowedTabsWhenDisconnected; // check which operating system is user running diff --git a/src/js/msp/MSPCodes.js b/src/js/msp/MSPCodes.js index e4f1f7178f..56d242d647 100644 --- a/src/js/msp/MSPCodes.js +++ b/src/js/msp/MSPCodes.js @@ -202,6 +202,7 @@ const MSPCodes = { CRAFT_NAME: 2, PID_PROFILE_NAME: 3, RATE_PROFILE_NAME: 4, + BUILD_KEY: 5, }; export default MSPCodes; diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 3ce793813b..6104c5afcc 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -851,6 +851,9 @@ MspHelper.prototype.process_data = function(dataHandler) { case MSPCodes.RATE_PROFILE_NAME: FC.CONFIG.rateProfileNames[FC.CONFIG.rateProfile] = self.getText(data); break; + case MSPCodes.BUILD_KEY: + FC.CONFIG.buildKey = self.getText(data); + break; default: console.log('Unsupport text type'); break; diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index 49053baab9..b91ba74dde 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -23,6 +23,7 @@ import { get as getConfig, set as setConfig } from "./ConfigStorage"; import { tracking } from "./Analytics"; import semver from 'semver'; import CryptoES from "crypto-es"; +import BuildApi from "./BuildApi"; let mspHelper; let connectionTimestamp; @@ -458,17 +459,39 @@ function checkReportProblems() { }); } -function processUid() { - MSP.send_message(MSPCodes.MSP_UID, false, false, function () { - const deviceIdentifier = FC.CONFIG.deviceIdentifier; +async function processBuildConfiguration() { + const buildApi = new BuildApi(); - tracking.setFlightControllerData(tracking.DATA.MCU_ID, CryptoES.SHA1(deviceIdentifier)); - tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected'); - connectionTimestamp = Date.now(); - gui_log(i18n.getMessage('uniqueDeviceIdReceived', [deviceIdentifier])); + function onLoadCloudBuild(options) { + FC.CONFIG.buildOptions = options.Request.Options; + processCraftName(); + } + + await MSP.promise(MSPCodes.MSP2_GET_TEXT, mspHelper.crunch(MSPCodes.MSP2_GET_TEXT, MSPCodes.BUILD_KEY)); + if (FC.CONFIG.buildKey.length === 32 && navigator.onLine) { + gui_log(i18n.getMessage('buildKey', FC.CONFIG.buildKey)); + buildApi.requestBuildOptions(FC.CONFIG.buildKey, onLoadCloudBuild, processCraftName); + } else { processCraftName(); - }); + } +} + +async function processUid() { + await MSP.promise(MSPCodes.MSP_UID); + + tracking.setFlightControllerData(tracking.DATA.MCU_ID, CryptoES.SHA1(FC.CONFIG.deviceIdentifier)); + tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected'); + + connectionTimestamp = Date.now(); + + gui_log(i18n.getMessage('uniqueDeviceIdReceived', FC.CONFIG.deviceIdentifier)); + + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) { + processBuildConfiguration(); + } else { + processCraftName(); + } } async function processCraftName() { @@ -494,7 +517,19 @@ function setRtc() { function finishOpen() { CONFIGURATOR.connectionValid = true; - GUI.allowedTabs = GUI.defaultAllowedFCTabsWhenConnected.slice(); + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) && FC.CONFIG.buildKey.length === 32) { + + GUI.allowedTabs = GUI.defaultAllowedTabsCloudBuild; + + for (const tab of GUI.defaultCloudBuildTabOptions) { + if (FC.CONFIG.buildOptions.some(opt => opt.toLowerCase().includes(tab))) { + GUI.allowedTabs.push(tab); + } + } + + } else { + GUI.allowedTabs = GUI.defaultAllowedFCTabsWhenConnected.slice(); + } if (GUI.isCordova()) { UI_PHONES.reset(); diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 4bdf661298..3b826ca290 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -11,7 +11,7 @@ import FC from '../fc'; import MSP from '../msp'; import MSPCodes from '../msp/MSPCodes'; import PortHandler, { usbDevices } from '../port_handler'; -import CONFIGURATOR, { API_VERSION_1_39 } from '../data_storage'; +import CONFIGURATOR, { API_VERSION_1_39, API_VERSION_1_45 } from '../data_storage'; import serial from '../serial'; import STM32DFU from '../protocols/stm32usbdfu'; import { gui_log } from '../gui_log'; @@ -165,11 +165,9 @@ firmware_flasher.initialize = function (callback) { TABS.firmware_flasher.targets = targets; - result = getStorage('selected_board'); - if (result.selected_board) { - const selected = targets.find(t => t.target === result.selected_board); - $('select[name="board"]').val(selected ? result.selected_board : 0).trigger('change'); - } + + // For discussion. Rather remove build configuration and let user use auto-detect. Often I think already had pressed the button. + $('div.build_configuration').slideUp(); } function buildOptionsList(select_e, options) { @@ -399,10 +397,6 @@ firmware_flasher.initialize = function (callback) { } if (!GUI.connect_lock) { - if (target !== '0') { - setStorage({'selected_board': target}); - } - self.selectedBoard = target; console.log('board changed to', target); @@ -535,6 +529,8 @@ firmware_flasher.initialize = function (callback) { function verifyBoard() { if (!$('option:selected', portPickerElement).data().isDFU) { + let mspHelper; + function onFinishClose() { MSP.clearListeners(); } @@ -561,38 +557,91 @@ firmware_flasher.initialize = function (callback) { if (board !== target) { boardSelect.val(board).trigger('change'); } + gui_log(i18n.getMessage(targetAvailable ? 'firmwareFlasherBoardVerificationSuccess' : 'firmwareFlasherBoardVerficationTargetNotAvailable', { boardName: board })); } else { gui_log(i18n.getMessage('firmwareFlasherBoardVerificationFail')); } + onClose(); } - function getBoard() { + function getBoardInfo() { + MSP.send_message(MSPCodes.MSP_BOARD_INFO, false, false, onFinish); + } + + function presetBuildOptions(data) { + const newOptions = []; + + newOptions.generalOptions = []; + newOptions.motorProtocols = []; + newOptions.radioProtocols = []; + newOptions.telemetryProtocols = []; + + for (const option of data.generalOptions) { + option.default = FC.CONFIG.buildOptions.some(opt => opt.includes(option.value)); + newOptions.generalOptions.push(option); + } + + for (const option of data.motorProtocols) { + option.default = FC.CONFIG.buildOptions.some(opt => opt.includes(option.value)); + newOptions.motorProtocols.push(option); + } + + for (const option of data.radioProtocols) { + option.default = FC.CONFIG.buildOptions.some(opt => opt.includes(option.value)); + newOptions.radioProtocols.push(option); + } + + for (const option of data.telemetryProtocols) { + option.default = FC.CONFIG.buildOptions.some(opt => opt.includes(option.value)); + newOptions.telemetryProtocols.push(option); + } + + buildOptions(newOptions); + } + + function getBuildInfo() { + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) && navigator.onLine) { + + function onLoadCloudBuild(options) { + if (FC.CONFIG.buildKey.length === 32) { + FC.CONFIG.buildOptions = options.Request.Options; + self.releaseLoader.loadOptions(presetBuildOptions); + } + getBoardInfo(); + } + + MSP.send_message(MSPCodes.MSP2_GET_TEXT, mspHelper.crunch(MSPCodes.MSP2_GET_TEXT, MSPCodes.BUILD_KEY), false, () => { + self.releaseLoader.requestBuildOptions(FC.CONFIG.buildKey, onLoadCloudBuild, getBoardInfo); + }); + } else { + getBoardInfo(); + } + } + + function detectBoard() { console.log(`Requesting board information`); MSP.send_message(MSPCodes.MSP_API_VERSION, false, false, () => { if (!FC.CONFIG.apiVersion || FC.CONFIG.apiVersion === 'null.null.0') { FC.CONFIG.apiVersion = '0.0.0'; } - console.log(FC.CONFIG.apiVersion); - MSP.send_message(MSPCodes.MSP_UID, false, false, () => { - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_39)) { - MSP.send_message(MSPCodes.MSP_BOARD_INFO, false, false, onFinish); - } else { - console.log('Firmware version not supported for reading board information'); - onClose(); - } - }); + + if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_39)) { + onClose(); // not supported + } else { + MSP.send_message(MSPCodes.MSP_UID, false, false, getBuildInfo); + } }); } function onConnect(openInfo) { if (openInfo) { serial.onReceive.addListener(data => MSP.read(data)); - const mspHelper = new MspHelper(); + mspHelper = new MspHelper(); MSP.listen(mspHelper.process_data.bind(mspHelper)); - getBoard(); + detectBoard(); } else { gui_log(i18n.getMessage('serialPortOpenFail')); } @@ -1219,7 +1268,6 @@ firmware_flasher.showDialogVerifyBoard = function (selected, verified, onAbort, if (!dialogVerifyBoard.hasAttribute('open')) { dialogVerifyBoard.showModal(); $('#dialog-verify-board-abort-confirmbtn').click(function() { - setStorage({'selected_board': FC.CONFIG.boardName}); dialogVerifyBoard.close(); onAbort(); }); diff --git a/src/js/tabs/ports.js b/src/js/tabs/ports.js index 65adca201d..cb98d46e1e 100644 --- a/src/js/tabs/ports.js +++ b/src/js/tabs/ports.js @@ -28,25 +28,16 @@ ports.initialize = function (callback) { { name: 'TELEMETRY_SMARTPORT', groups: ['telemetry'], maxPorts: 1 }, { name: 'RX_SERIAL', groups: ['rx'], maxPorts: 1 }, { name: 'BLACKBOX', groups: ['peripherals'], sharableWith: ['msp'], notSharableWith: ['telemetry'], maxPorts: 1 }, + { name: 'TELEMETRY_LTM', groups: ['telemetry'], sharableWith: ['msp'], notSharableWith: ['peripherals'], maxPorts: 1 }, + { name: 'TELEMETRY_MAVLINK', groups: ['telemetry'], sharableWith: ['msp'], notSharableWith: ['peripherals'], maxPorts: 1 }, + { name: 'IRC_TRAMP', groups: ['peripherals'], maxPorts: 1 }, + { name: 'ESC_SENSOR', groups: ['sensors'], maxPorts: 1 }, + { name: 'TBS_SMARTAUDIO', groups: ['peripherals'], maxPorts: 1 }, + { name: 'TELEMETRY_IBUS', groups: ['telemetry'], maxPorts: 1 }, + { name: 'RUNCAM_DEVICE_CONTROL', groups: ['peripherals'], maxPorts: 1 }, + { name: 'LIDAR_TF', groups: ['peripherals'], maxPorts: 1 }, ]; - const ltmFunctionRule = {name: 'TELEMETRY_LTM', groups: ['telemetry'], sharableWith: ['msp'], notSharableWith: ['peripherals'], maxPorts: 1}; - functionRules.push(ltmFunctionRule); - - const mavlinkFunctionRule = {name: 'TELEMETRY_MAVLINK', groups: ['telemetry'], sharableWith: ['msp'], notSharableWith: ['peripherals'], maxPorts: 1}; - functionRules.push(mavlinkFunctionRule); - - functionRules.push({ name: 'IRC_TRAMP', groups: ['peripherals'], maxPorts: 1 }); - - functionRules.push({ name: 'ESC_SENSOR', groups: ['sensors'], maxPorts: 1 }); - functionRules.push({ name: 'TBS_SMARTAUDIO', groups: ['peripherals'], maxPorts: 1 }); - - functionRules.push({ name: 'TELEMETRY_IBUS', groups: ['telemetry'], maxPorts: 1 }); - - functionRules.push({ name: 'RUNCAM_DEVICE_CONTROL', groups: ['peripherals'], maxPorts: 1 }); - - functionRules.push({ name: 'LIDAR_TF', groups: ['peripherals'], maxPorts: 1 }); - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_43)) { functionRules.push({ name: 'FRSKY_OSD', groups: ['peripherals'], maxPorts: 1 }); } @@ -424,6 +415,7 @@ ports.initialize = function (callback) { let enableBlackbox = false; let enableEsc = false; let enableGps = false; + let enableVtx = false; for (const port of FC.SERIAL_CONFIG.ports) { const func = port.functions; @@ -447,6 +439,10 @@ ports.initialize = function (callback) { if (func.includes('GPS')) { enableGps = true; } + + if (func.includes('IRC_TRAMP') || func.includes('TBS_SMARTAUDIO')) { + enableVtx = true; + } } const featureConfig = FC.FEATURE_CONFIG.features; @@ -479,6 +475,12 @@ ports.initialize = function (callback) { featureConfig.disable('GPS'); } + if (enableVtx) { + featureConfig.enable('VTX'); + } else { + featureConfig.disable('VTX'); + } + mspHelper.sendSerialConfig(save_features); function save_features() { diff --git a/src/js/utils/updateTabList.js b/src/js/utils/updateTabList.js index 84d607e596..28d02285a6 100644 --- a/src/js/utils/updateTabList.js +++ b/src/js/utils/updateTabList.js @@ -1,53 +1,22 @@ import semver from "semver"; -import { API_VERSION_1_42 } from "../data_storage"; +import { API_VERSION_1_42, API_VERSION_1_45 } from "../data_storage"; import FC from "../fc"; -import { isExpertModeEnabled } from "./isExportModeEnabled"; export function updateTabList(features) { - - if (isExpertModeEnabled()) { - $('#tabs ul.mode-connected li.tab_failsafe').show(); - $('#tabs ul.mode-connected li.tab_adjustments').show(); - $('#tabs ul.mode-connected li.tab_servos').show(); - $('#tabs ul.mode-connected li.tab_sensors').show(); - $('#tabs ul.mode-connected li.tab_logging').show(); - } else { - $('#tabs ul.mode-connected li.tab_failsafe').hide(); - $('#tabs ul.mode-connected li.tab_adjustments').hide(); - $('#tabs ul.mode-connected li.tab_servos').hide(); - $('#tabs ul.mode-connected li.tab_sensors').hide(); - $('#tabs ul.mode-connected li.tab_logging').hide(); - } - - if (features.isEnabled('GPS') && isExpertModeEnabled()) { - $('#tabs ul.mode-connected li.tab_gps').show(); - } else { - $('#tabs ul.mode-connected li.tab_gps').hide(); - } - - if (features.isEnabled('LED_STRIP')) { - $('#tabs ul.mode-connected li.tab_led_strip').show(); - } else { - $('#tabs ul.mode-connected li.tab_led_strip').hide(); - } - - if (features.isEnabled('TRANSPONDER')) { - $('#tabs ul.mode-connected li.tab_transponder').show(); - } else { - $('#tabs ul.mode-connected li.tab_transponder').hide(); - } - - if (features.isEnabled('OSD')) { - $('#tabs ul.mode-connected li.tab_osd').show(); - } else { - $('#tabs ul.mode-connected li.tab_osd').hide(); - } - - $('#tabs ul.mode-connected li.tab_power').show(); - - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)) { - $('#tabs ul.mode-connected li.tab_vtx').show(); - } else { - $('#tabs ul.mode-connected li.tab_vtx').hide(); + const isExpertModeEnabled = $('input[name="expertModeCheckbox"]').is(':checked'); + + $('#tabs ul.mode-connected li.tab_failsafe').toggle(isExpertModeEnabled); + $('#tabs ul.mode-connected li.tab_adjustments').toggle(isExpertModeEnabled); + $('#tabs ul.mode-connected li.tab_servos').toggle(isExpertModeEnabled); + $('#tabs ul.mode-connected li.tab_sensors').toggle(isExpertModeEnabled); + $('#tabs ul.mode-connected li.tab_logging').toggle(isExpertModeEnabled); + + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45 || FC.CONFIG.buildKey.length !== 32)) { + $('#tabs ul.mode-connected li.tab_gps').toggle(features.isEnabled('GPS')); + $('#tabs ul.mode-connected li.tab_led_strip').toggle(features.isEnabled('LED_STRIP')); + $('#tabs ul.mode-connected li.tab_servos').toggle(features.isEnabled('CHANNEL_FORWARDING') || features.isEnabled('SERVO_TILT')); + $('#tabs ul.mode-connected li.tab_transponder').toggle(features.isEnabled('TRANSPONDER')); + $('#tabs ul.mode-connected li.tab_osd').toggle(features.isEnabled('OSD')); + $('#tabs ul.mode-connected li.tab_vtx').toggle(features.isEnabled('VTX') && semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)); } } diff --git a/src/tabs/configuration.html b/src/tabs/configuration.html index 94b700ba2c..1591e71415 100644 --- a/src/tabs/configuration.html +++ b/src/tabs/configuration.html @@ -135,7 +135,7 @@ - + From 1f1aef0091bbb500b0621d759a213d80e8a46165 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 22:06:27 +0100 Subject: [PATCH 041/393] Bump minimist from 1.2.0 to 1.2.8 (#3367) Bumps [minimist](https://github.com/minimistjs/minimist) from 1.2.0 to 1.2.8. - [Release notes](https://github.com/minimistjs/minimist/releases) - [Changelog](https://github.com/minimistjs/minimist/blob/main/CHANGELOG.md) - [Commits](https://github.com/minimistjs/minimist/compare/v1.2.0...v1.2.8) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index ee95d591ea..23a9b3e20a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10902,20 +10902,10 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minimist@^1.1.1, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass-collect@^1.0.2: version "1.0.2" From 5b9c0ad3b9bf8adc3b36c662d2b0800b862db5b4 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Thu, 9 Mar 2023 20:38:21 +0100 Subject: [PATCH 042/393] Remove custom defaults (#3361) --- src/js/serial_backend.js | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index b91ba74dde..3a05e9428a 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -10,7 +10,7 @@ import MSP from "./msp"; import MSPCodes from "./msp/MSPCodes"; import PortUsage from "./port_usage"; import PortHandler from "./port_handler"; -import CONFIGURATOR, { API_VERSION_1_45 } from "./data_storage"; +import CONFIGURATOR, { API_VERSION_1_45, API_VERSION_1_46 } from "./data_storage"; import serial from "./serial"; import MdnsDiscovery from "./mdns_discovery"; import UI_PHONES from "./phones_ui"; @@ -187,8 +187,11 @@ function finishClose(finishedCallback) { const connectedTime = Date.now() - connectionTimestamp; tracking.sendTiming(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected', connectedTime); } - // close reset to custom defaults dialog - $('#dialogResetToCustomDefaults')[0].close(); + + if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + // close reset to custom defaults dialog + $('#dialogResetToCustomDefaults')[0].close(); + } tracking.resetFlightControllerData(); @@ -201,6 +204,7 @@ function finishClose(finishedCallback) { GUI.connected_to = false; GUI.allowedTabs = GUI.defaultAllowedTabsWhenDisconnected.slice(); + // close problems dialog $('#dialogReportProblems-closebtn').click(); @@ -363,15 +367,7 @@ function abortConnect() { clicks = false; } -function processBoardInfo() { - tracking.setFlightControllerData(tracking.DATA.BOARD_TYPE, FC.CONFIG.boardIdentifier); - tracking.setFlightControllerData(tracking.DATA.TARGET_NAME, FC.CONFIG.targetName); - tracking.setFlightControllerData(tracking.DATA.BOARD_NAME, FC.CONFIG.boardName); - tracking.setFlightControllerData(tracking.DATA.MANUFACTURER_ID, FC.CONFIG.manufacturerId); - tracking.setFlightControllerData(tracking.DATA.MCU_TYPE, FC.getMcuType()); - - gui_log(i18n.getMessage('boardInfoReceived', [FC.getHardwareName(), FC.CONFIG.boardVersion])); - +function processCustomDefaults() { if (bit_check(FC.CONFIG.targetCapabilities, FC.TARGET_CAPABILITIES_FLAGS.SUPPORTS_CUSTOM_DEFAULTS) && bit_check(FC.CONFIG.targetCapabilities, FC.TARGET_CAPABILITIES_FLAGS.HAS_CUSTOM_DEFAULTS) && FC.CONFIG.configurationState === FC.CONFIGURATION_STATES.DEFAULTS_BARE) { const dialog = $('#dialogResetToCustomDefaults')[0]; @@ -407,6 +403,22 @@ function processBoardInfo() { } } +function processBoardInfo() { + tracking.setFlightControllerData(tracking.DATA.BOARD_TYPE, FC.CONFIG.boardIdentifier); + tracking.setFlightControllerData(tracking.DATA.TARGET_NAME, FC.CONFIG.targetName); + tracking.setFlightControllerData(tracking.DATA.BOARD_NAME, FC.CONFIG.boardName); + tracking.setFlightControllerData(tracking.DATA.MANUFACTURER_ID, FC.CONFIG.manufacturerId); + tracking.setFlightControllerData(tracking.DATA.MCU_TYPE, FC.getMcuType()); + + gui_log(i18n.getMessage('boardInfoReceived', [FC.getHardwareName(), FC.CONFIG.boardVersion])); + + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + checkReportProblems(); + } else { + processCustomDefaults(); + } +} + function checkReportProblems() { const PROBLEM_ANALYTICS_EVENT = 'ProblemFound'; const problemItemTemplate = $('#dialogReportProblems-listItemTemplate'); From 6ef0046a1da5d2d994291494bf1e855ccff84eaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Kiripolszky?= Date: Mon, 13 Mar 2023 16:02:09 +0100 Subject: [PATCH 043/393] Display average RPM on motor tab (#3371) --- src/js/tabs/motors.js | 29 ++++++++++++++++++++--------- src/tabs/motors.html | 4 ++-- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/js/tabs/motors.js b/src/js/tabs/motors.js index 56de21a06e..2164e08c54 100644 --- a/src/js/tabs/motors.js +++ b/src/js/tabs/motors.js @@ -257,11 +257,6 @@ motors.initialize = async function (callback) { if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_42) || !(FC.MOTOR_CONFIG.use_dshot_telemetry || FC.MOTOR_CONFIG.use_esc_sensor)) { $(".motor_testing .telemetry").hide(); - } else { - // Hide telemetry from unused motors (to hide the tooltip in an empty blank space) - for (let i = FC.MOTOR_CONFIG.motor_count; i < FC.MOTOR_DATA.length; i++) { - $(`.motor_testing .telemetry .motor-${i}`).hide(); - } } function setContentButtons(motorsTesting=false) { @@ -1062,6 +1057,11 @@ motors.initialize = async function (callback) { const previousArmState = self.armed; const blockHeight = $('div.m-block:first').height(); const motorValues = getMotorOutputs(); + const MAX_VALUE_SIZE = 6, + AVG_RPM_ROUNDING = 100; + let sumRpm = 0, + isAllMotorValueEqual = motorValues.every((value, _index, arr) => value === arr[0]), + hasTelemetryError = false; for (let i = 0; i < motorValues.length; i++) { const motorValue = motorValues[i]; @@ -1079,8 +1079,7 @@ motors.initialize = async function (callback) { if (i < FC.MOTOR_CONFIG.motor_count && (FC.MOTOR_CONFIG.use_dshot_telemetry || FC.MOTOR_CONFIG.use_esc_sensor)) { - const MAX_INVALID_PERCENT = 100, - MAX_VALUE_SIZE = 6; + const MAX_INVALID_PERCENT = 100; let rpmMotorValue = FC.MOTOR_TELEMETRY_DATA.rpm[i]; @@ -1088,14 +1087,17 @@ motors.initialize = async function (callback) { if (rpmMotorValue > 999999) { rpmMotorValue = `${(rpmMotorValue / 1000000).toFixed(5 - (rpmMotorValue / 1000000).toFixed(0).toString().length)}M`; } - + if (isAllMotorValueEqual) { + sumRpm += Math.round(rpmMotorValue * AVG_RPM_ROUNDING) / AVG_RPM_ROUNDING; + } rpmMotorValue = rpmMotorValue.toString().padStart(MAX_VALUE_SIZE); let telemetryText = i18n.getMessage('motorsRPM', {motorsRpmValue: rpmMotorValue}); if (FC.MOTOR_CONFIG.use_dshot_telemetry) { let invalidPercent = FC.MOTOR_TELEMETRY_DATA.invalidPercent[i]; - let classError = (invalidPercent > MAX_INVALID_PERCENT) ? "warning" : ""; + hasTelemetryError = invalidPercent > MAX_INVALID_PERCENT; + let classError = hasTelemetryError ? "warning" : ""; invalidPercent = (invalidPercent / 100).toFixed(2).toString().padStart(MAX_VALUE_SIZE); telemetryText += `
`; @@ -1116,6 +1118,15 @@ motors.initialize = async function (callback) { } } + if (FC.MOTOR_CONFIG.use_dshot_telemetry && !hasTelemetryError && isAllMotorValueEqual) { + const avgRpm = (Math.round(sumRpm / motorValues.length * AVG_RPM_ROUNDING) / AVG_RPM_ROUNDING).toFixed(0), + avgRpmMotorValue = avgRpm.toString().padStart(MAX_VALUE_SIZE), + message = i18n.getMessage('motorsRPM', { motorsRpmValue: avgRpmMotorValue }); + $(`.motor_testing .telemetry .motor-master`).html(message); + } else { + $(`.motor_testing .telemetry .motor-master`).html(""); + } + //keep the following here so at least we get a visual cue of our motor setup update_arm_status(); diff --git a/src/tabs/motors.html b/src/tabs/motors.html index 3f432e0549..d17fc680c5 100644 --- a/src/tabs/motors.html +++ b/src/tabs/motors.html @@ -235,7 +235,7 @@
- +
@@ -319,7 +319,7 @@
  •  
  •  
  •  
  • -
  •  
  • +
  •  
  • From 6cbbaff24022031e6f5591f92801468e98ec4f2b Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Mon, 13 Mar 2023 20:34:17 +0100 Subject: [PATCH 044/393] GPS icon now reflect fix state (#3377) * GPS icon now reflect fix state * Code moved to sensor_helpers.js * Code moved to sensor_helpers.js * Minor changes --- src/css/main.less | 6 +++++- src/images/icons/sensor_sat_on_no_fix.png | Bin 0 -> 2405 bytes ...r_sat_on.png => sensor_sat_on_with_fix.png} | Bin src/js/msp/MSPHelper.js | 4 ++-- src/js/sensor_helpers.js | 17 ++++++++++++++--- src/js/serial_backend.js | 7 ++++++- 6 files changed, 27 insertions(+), 7 deletions(-) create mode 100755 src/images/icons/sensor_sat_on_no_fix.png rename src/images/icons/{sensor_sat_on.png => sensor_sat_on_with_fix.png} (100%) mode change 100644 => 100755 diff --git a/src/css/main.less b/src/css/main.less index bc8ebfb5ee..e53de65e00 100644 --- a/src/css/main.less +++ b/src/css/main.less @@ -482,7 +482,11 @@ input[type="number"] { } .gpsicon.active { color: #818181; - background-image: url(../images/icons/sensor_sat_on.png); + background-image: url(../images/icons/sensor_sat_on_no_fix.png); +} +.gpsicon.active_fix { + color: #818181; + background-image: url(../images/icons/sensor_sat_on_with_fix.png); } .baroicon.active { color: #818181; diff --git a/src/images/icons/sensor_sat_on_no_fix.png b/src/images/icons/sensor_sat_on_no_fix.png new file mode 100755 index 0000000000000000000000000000000000000000..1f718fc8726fd60b7d31bcf60c2e600785cf0706 GIT binary patch literal 2405 zcmV-r37YnaP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2>MAxK~#8N?VEpW z8)q5EpZ9DxzvB?Msnm3fn;dP^4%ndUpe+c&fR0Vw#QsRKwrrzA41qu}*ytn#QbnbX z2_bYcEtLxMav1uFHC=y$eO&e$`^w-*R;?k`@XzVmj>iqEeUY_UtoM$_ZbFnYB zk?td<_dd^Ea(CZ*-uHc;_padL;^N}s;^N}s;^N}s;^GV=*Q!6^rprQztX21qtW;&B zQ=OKB-5z#VJ%YCtgM^b4a37l>e2{E?%2zKoot$A;)lyOMa)nFd1tajZuddn!RCrr< z<`j<5L5bXzn8Yqz&z`EJB9T{6xJ(p~foFV;7=dy2R25~9yvSgtn5+MWw9bjjRhEhM4zGHj5(g ztgj6>(R{*LluN*}j(LN9;U4hoFS1z_qq}AvEhHRa#GpOWt^SwIMWd{dN4&5HJfArj zJS<|~JJ@BP7X65r@@|$>P|Kczh(;I z5_nJh2%C;l5%CBVP(cB^n;%92B|GP$NZ~9*9mE4?v<5aEqhjI_Bw%nks4MoU@69P- ziNaYdhJY0nk3a#1x&qX;pPK?^U5{wd{|-~$n@SbVLM(wqU`Q)2RmwxfYFmqKKLx3s z2W{vft&7Src9U@ZFysA{Q^FB6L*p!biOrI!xOfB!cyScMLl0`57#%tbcfE{5BOj8V zB3Az7RanN&lBo*u2o~_{z`dB<&L^BDT9UU55K(E67r9w76(93*iL6#*C|nbp`JqQ{ zq?#sl7xT^7h^Utn13N?Q_@H9!Dv7FzJi?Z6`LGcJEL?|E!Vy*Tz5omTTkEzZVpD$+ zs!}UQX*F4Zz<={R;M_=?C-OusObvWJbPWm@WtSsVO}E9Ag>tYu{Gp|H>XcsmsoD5s zaNiO|*=md{%hApzxBKRSgwsWG|MD}#-(#0!RE>Di>(rMqmG~^CCJnR*ihV-jjgJWr zywcyN-T&!>!N-+x@9lQRHVYC?)Fxjyu6Vwzw7}8UW7_q+%MmIr9(GrMbVuTHp;Z!5 z596Lkw58`G(9!lY^)$N+k|`X!XtDHPDBvg9ESa)S7_?lD5q2!HM*S_jAi6yx)pG+q;jfBXImzx>V3IwPPdE!a|2n+BGi;WGW8y{D zs=vbv+eT4>B6UQ+kr?4!CMehjZkh-ITWQ+xkUm_r3BQEvTIK8A#^PJPiQY* zd3xT>5bjoX*@BkqOA*k?G0&ed7bIE@p+mO=swuQXph2A&r0;NR5W z`KEU5TRVpDSDK11_~ke(D`u(6G4U|nIKj;{iXT47O%OFQyL-_0C^*Tml_o>Les*Oe zjeeZTz1V+G|NFaI$JX6&5r0Sa-xXS;G#f>CK@_kptEbq&G4YH^W%h+j*upI^67m&p zen7LR8>$D zZ%j&G@;TF=0j3PAaJ;#kn^Y4d;9zg~7Ku@TBEB}z8#cc-puc4vkOx!1-l6r1KdG^+ zAf|A=;oI@|W=(kW;b?7pxvTRLF|A~c8=?kg0wK+uA?bbXmV=$cMohWJ+?fN`o~N;P zcpf7%N?phrg9g8){R%e%Z!n$S%m<#Ue#r}TF}QtrmuQl+l1?n_e}vIvfQ{{q@KK9;9$#4}=X|9I;O?QZs%V-s$gZ+tSi z*XM&S1w`#GH+PB&Df5W1SM_?BY zZu~t~61mG%ncyC*KqhfqjN(X1#Xm)zA$1t6R$jTQ~phX|Rvo7ETBBmEf_!2j(in2wX1x6rE25p-U1)qaS?+teTYk}gI z!>z|doorSOWf#u^MI_Pu8=eU6tyuy$fR1_IjA+Iv^WbP_^$02I~z}e00000NkvXXu0mjfMxUFY literal 0 HcmV?d00001 diff --git a/src/images/icons/sensor_sat_on.png b/src/images/icons/sensor_sat_on_with_fix.png old mode 100644 new mode 100755 similarity index 100% rename from src/images/icons/sensor_sat_on.png rename to src/images/icons/sensor_sat_on_with_fix.png diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 6104c5afcc..3de999f37d 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -191,7 +191,7 @@ MspHelper.prototype.process_data = function(dataHandler) { FC.CONFIG.mode = data.readU32(); FC.CONFIG.profile = data.readU8(); - sensor_status(FC.CONFIG.activeSensors); + sensor_status(FC.CONFIG.activeSensors, FC.GPS_DATA.fix); break; case MSPCodes.MSP_STATUS_EX: FC.CONFIG.cycleTime = data.readU16(); @@ -213,7 +213,7 @@ MspHelper.prototype.process_data = function(dataHandler) { FC.CONFIG.armingDisableCount = data.readU8(); // Flag count FC.CONFIG.armingDisableFlags = data.readU32(); - sensor_status(FC.CONFIG.activeSensors); + sensor_status(FC.CONFIG.activeSensors, FC.GPS_DATA.fix); break; case MSPCodes.MSP_RAW_IMU: diff --git a/src/js/sensor_helpers.js b/src/js/sensor_helpers.js index 3da219e355..d204aab2d4 100644 --- a/src/js/sensor_helpers.js +++ b/src/js/sensor_helpers.js @@ -19,19 +19,23 @@ export function have_sensor(sensors_detected, sensor_code) { return false; } -export function sensor_status(sensors_detected) { +export function sensor_status(sensors_detected = 0, gps_fix_state = 0) { // initialize variable (if it wasn't) if (!sensor_status.previous_sensors_detected) { sensor_status.previous_sensors_detected = -1; // Otherwise first iteration will not be run if sensors_detected == 0 } + if (!sensor_status.previous_gps_fix_state) { + sensor_status.previous_gps_fix_state = -1; + } // update UI (if necessary) - if (sensor_status.previous_sensors_detected == sensors_detected) { + if (sensor_status.previous_sensors_detected == sensors_detected && sensor_status.previous_gps_fix_state == gps_fix_state) { return; } // set current value sensor_status.previous_sensors_detected = sensors_detected; + sensor_status.previous_gps_fix_state = gps_fix_state; const eSensorStatus = $("div#sensor-status"); @@ -72,10 +76,17 @@ export function sensor_status(sensors_detected) { if (have_sensor(sensors_detected, "gps")) { $(".gps", eSensorStatus).addClass("on"); - $(".gpsicon", eSensorStatus).addClass("active"); + if (gps_fix_state) { + $(".gpsicon", eSensorStatus).removeClass("active"); + $(".gpsicon", eSensorStatus).addClass("active_fix"); + } else { + $(".gpsicon", eSensorStatus).removeClass("active_fix"); + $(".gpsicon", eSensorStatus).addClass("active"); + } } else { $(".gps", eSensorStatus).removeClass("on"); $(".gpsicon", eSensorStatus).removeClass("active"); + $(".gpsicon", eSensorStatus).removeClass("active_fix"); } if (have_sensor(sensors_detected, "sonar")) { diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index 3a05e9428a..9b622e28cc 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -217,7 +217,7 @@ function finishClose(finishedCallback) { $('div.connect_controls div.connect_state').text(i18n.getMessage('connect')); // reset active sensor indicators - sensor_status(0); + sensor_status(); if (wasConnected) { // detach listeners and remove element data @@ -683,6 +683,9 @@ async function update_live_status() { if (GUI.active_tab !== 'cli' && GUI.active_tab !== 'presets') { await MSP.promise(MSPCodes.MSP_BOXNAMES); await getStatus(); + if (have_sensor(FC.CONFIG.activeSensors, 'gps')) { + await MSP.promise(MSPCodes.MSP_RAW_GPS); + } await MSP.promise(MSPCodes.MSP_ANALOG); const active = ((Date.now() - FC.ANALOG.last_received_timestamp) < 300); @@ -723,6 +726,8 @@ async function update_live_status() { } } + sensor_status(FC.CONFIG.activeSensors, FC.GPS_DATA.fix); + $(".linkicon").toggleClass('active', active); statuswrapper.show(); From 9705c1e040ea102fec341ed5537d3e9e8769ee5e Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 14 Mar 2023 22:01:24 +0100 Subject: [PATCH 045/393] Fix-motor-stop (#3379) --- src/js/Features.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/js/Features.js b/src/js/Features.js index 8f31464b5a..00acb23f0f 100644 --- a/src/js/Features.js +++ b/src/js/Features.js @@ -124,7 +124,7 @@ Features.prototype.generateElements = function (featuresElements) { if (listElements.length === 0) { newElements.push($('
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    -
    +
    - - - - - - + + - - + + - - + + - - + +
    0 V
    0 mAh
    0.00 A
    0 %
    @@ -121,51 +139,65 @@
    -
    +
    - - + + - - + + - - + + + + + + - - + + + + + +
    0 V
    0 mAh
    0.00 A
    0 %
    -
    -
    -
    -
    - -
    -
    +
    -
    +
    -
    - -
    -
    - -
    -
    - -
    + + + + + + + + + + + + + + + + + + + + +
    From b21468d41f319daed140dc61cd42e5910b2baa45 Mon Sep 17 00:00:00 2001 From: ASDosjani <62965528+ASDosjani@users.noreply.github.com> Date: Thu, 16 Mar 2023 15:08:59 +0100 Subject: [PATCH 047/393] Add rainbow effect to led strip and cleanup (#3322) * Add rainbow effect and cleanup * reduce indentation --- locales/en/messages.json | 13 ++- src/css/tabs/led_strip.less | 17 ++-- src/js/msp/MSPHelper.js | 162 ++++++++++++++++++++++++++---------- src/js/tabs/led_strip.js | 76 ++++++++--------- src/js/utils/common.js | 1 + src/tabs/led_strip.html | 16 ++-- 6 files changed, 173 insertions(+), 112 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index d861f74305..77c8519c6a 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -3527,17 +3527,16 @@ "message": "LEDs without wire ordering number will not be saved.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Larson scanner" - }, - "ledStripBlinkTitle": { - "message": "Blink" + "ledStripLarsonOverlay": { + "message": "Larson scanner", + "description": "Larson effect switch label on LED Strip tab" }, "ledStripBlinkAlwaysOverlay": { "message": "Blink always" }, - "ledStripBlinkLandingOverlay": { - "message": "Blink on landing" + "ledStripRainbowOverlay": { + "message": "Rainbow", + "description": "Rainbow effect switch label on LED Strip tab" }, "ledStripOverlayTitle": { "message": "Overlay" diff --git a/src/css/tabs/led_strip.less b/src/css/tabs/led_strip.less index 6b281e031c..7f253b1d16 100644 --- a/src/css/tabs/led_strip.less +++ b/src/css/tabs/led_strip.less @@ -150,14 +150,14 @@ margin-left: -9px; } } - .gPoint.function-n { - .overlay-n { + .gPoint.function-y { + .overlay-y { float: left; height: 6px; width: 16px; - background-image: radial-gradient(1px at 8px 50% , blue 0%, blue 2px, rgba(0, 0, 0, 0.3) 3px, rgba(0, 0, 0, 0) 4px); - margin-top: -18px; - margin-left: 16px; + background-image: radial-gradient(1px at 8px 50% , rgb(0, 242, 12) 0%, rgb(0, 242, 12) 0% 2px, rgba(0, 0, 0, 0.3) 3px, rgba(0, 0, 0, 0) 4px); + margin-top: -30px; + margin-left: 4px; } } .gPoint { @@ -232,9 +232,6 @@ .overlays { display: inline-block; } - .blinkers { - display: inline-block; - } .modifiers { display: inline-block; .auxSelect { @@ -384,14 +381,14 @@ } .north { top: -9px; - left: 4px; + left: 5px; border-left: 7px solid transparent; border-right: 7px solid transparent; border-bottom: 7px solid rgba(0,0,0,.8); } .south { bottom: -8px; - left: 4px; + left: 5px; border-left: 7px solid transparent; border-right: 7px solid transparent; border-top: 7px solid rgba(0,0,0,.8); diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 3de999f37d..28a6a9b454 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -8,7 +8,7 @@ import semver from 'semver'; import vtxDeviceStatusFactory from "../utils/VtxDeviceStatus/VtxDeviceStatusFactory"; import MSP from "../msp"; import MSPCodes from "./MSPCodes"; -import { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_44, API_VERSION_1_45 } from '../data_storage'; +import { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_44, API_VERSION_1_45, API_VERSION_1_46 } from '../data_storage'; import EscProtocols from "../utils/EscProtocols"; import huffmanDecodeBuf from "../huffman"; import { defaultHuffmanTree, defaultHuffmanLenIndex } from "../default_huffman_tree"; @@ -20,7 +20,7 @@ import { OSD } from "../tabs/osd"; // Used for LED_STRIP const ledDirectionLetters = ['n', 'e', 's', 'w', 'u', 'd']; // in LSB bit order const ledBaseFunctionLetters = ['c', 'f', 'a', 'l', 's', 'g', 'r']; // in LSB bit -let ledOverlayLetters = ['t', 'o', 'b', 'v', 'i', 'w']; // in LSB bit +let ledOverlayLetters = ['t', 'y', 'o', 'b', 'v', 'i', 'w']; // in LSB bit function MspHelper() { const self = this; @@ -1167,50 +1167,102 @@ MspHelper.prototype.process_data = function(dataHandler) { case MSPCodes.MSP_LED_STRIP_CONFIG: FC.LED_STRIP = []; + let ledCount = (data.byteLength - 2) / 4; + + // The 32 bit config of each LED contains these in LSB: + // +--------------------+--------------------+------------------+------------------+----------------------+-----------+-----------+ + // | Parameters - 3 bit | Directions - 6 bit | Color ID - 4 bit | Overlays - 7 bit | Function ID - 4 bit | X - 4 bit | Y - 4 bit | + // +--------------------+--------------------+------------------+------------------+----------------------+-----------+-----------+ // According to betaflight/src/main/msp/msp.c // API 1.41 - add indicator for advanced profile support and the current profile selection // 0 = basic ledstrip available // 1 = advanced ledstrip available // Following byte is the current LED profile - let ledCount = (data.byteLength - 2) / 4; - for (let i = 0; i < ledCount; i++) { + //Before API_VERSION_1_46 Parameters were 4 bit and Overlays 6 bit + + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + + for (let i = 0; i < ledCount; i++) { - const mask = data.readU32(); + const mask = data.readU32(); - const functionId = (mask >> 8) & 0xF; - const functions = []; - for (let baseFunctionLetterIndex = 0; baseFunctionLetterIndex < ledBaseFunctionLetters.length; baseFunctionLetterIndex++) { - if (functionId == baseFunctionLetterIndex) { - functions.push(ledBaseFunctionLetters[baseFunctionLetterIndex]); - break; + const functionId = (mask >> 8) & 0xF; + const functions = []; + for (let baseFunctionLetterIndex = 0; baseFunctionLetterIndex < ledBaseFunctionLetters.length; baseFunctionLetterIndex++) { + if (functionId == baseFunctionLetterIndex) { + functions.push(ledBaseFunctionLetters[baseFunctionLetterIndex]); + break; + } } - } - const overlayMask = (mask >> 12) & 0x3F; - for (let overlayLetterIndex = 0; overlayLetterIndex < ledOverlayLetters.length; overlayLetterIndex++) { - if (bit_check(overlayMask, overlayLetterIndex)) { - functions.push(ledOverlayLetters[overlayLetterIndex]); + const overlayMask = (mask >> 12) & 0x7F; + for (let overlayLetterIndex = 0; overlayLetterIndex < ledOverlayLetters.length; overlayLetterIndex++) { + if (bit_check(overlayMask, overlayLetterIndex)) { + functions.push(ledOverlayLetters[overlayLetterIndex]); + } } - } - const directionMask = (mask >> 22) & 0x3F; - const directions = []; - for (let directionLetterIndex = 0; directionLetterIndex < ledDirectionLetters.length; directionLetterIndex++) { - if (bit_check(directionMask, directionLetterIndex)) { - directions.push(ledDirectionLetters[directionLetterIndex]); + const directionMask = (mask >> 23) & 0x3F; + const directions = []; + for (let directionLetterIndex = 0; directionLetterIndex < ledDirectionLetters.length; directionLetterIndex++) { + if (bit_check(directionMask, directionLetterIndex)) { + directions.push(ledDirectionLetters[directionLetterIndex]); + } } + const led = { + y: (mask) & 0xF, + x: (mask >> 4) & 0xF, + functions: functions, + color: (mask >> 19) & 0xF, + directions: directions, + parameters: (mask >>> 29) & 0x7, + }; + + FC.LED_STRIP.push(led); } - const led = { - y: (mask) & 0xF, - x: (mask >> 4) & 0xF, - functions: functions, - color: (mask >> 18) & 0xF, - directions: directions, - parameters: (mask >> 28) & 0xF, - }; + } + else { + ledOverlayLetters = ledOverlayLetters.filter(x => x !== 'y'); + + for (let i = 0; i < ledCount; i++) { + + const mask = data.readU32(); + + const functionId = (mask >> 8) & 0xF; + const functions = []; + for (let baseFunctionLetterIndex = 0; baseFunctionLetterIndex < ledBaseFunctionLetters.length; baseFunctionLetterIndex++) { + if (functionId == baseFunctionLetterIndex) { + functions.push(ledBaseFunctionLetters[baseFunctionLetterIndex]); + break; + } + } + + const overlayMask = (mask >> 12) & 0x3F; + for (let overlayLetterIndex = 0; overlayLetterIndex < ledOverlayLetters.length; overlayLetterIndex++) { + if (bit_check(overlayMask, overlayLetterIndex)) { + functions.push(ledOverlayLetters[overlayLetterIndex]); + } + } - FC.LED_STRIP.push(led); + const directionMask = (mask >> 22) & 0x3F; + const directions = []; + for (let directionLetterIndex = 0; directionLetterIndex < ledDirectionLetters.length; directionLetterIndex++) { + if (bit_check(directionMask, directionLetterIndex)) { + directions.push(ledDirectionLetters[directionLetterIndex]); + } + } + const led = { + y: (mask) & 0xF, + x: (mask >> 4) & 0xF, + functions: functions, + color: (mask >> 18) & 0xF, + directions: directions, + parameters: (mask >> 28) & 0xF, + }; + + FC.LED_STRIP.push(led); + } } break; case MSPCodes.MSP_SET_LED_STRIP_CONFIG: @@ -2491,25 +2543,49 @@ MspHelper.prototype.sendLedStripConfig = function(onCompleteCallback) { } } - for (let overlayLetterIndex = 0; overlayLetterIndex < led.functions.length; overlayLetterIndex++) { - const bitIndex = ledOverlayLetters.indexOf(led.functions[overlayLetterIndex]); - if (bitIndex >= 0) { - mask |= bit_set(mask, bitIndex + 12); + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + + for (let overlayLetterIndex = 0; overlayLetterIndex < led.functions.length; overlayLetterIndex++) { + const bitIndex = ledOverlayLetters.indexOf(led.functions[overlayLetterIndex]); + if (bitIndex >= 0) { + mask |= bit_set(mask, bitIndex + 12); + } } - } - mask |= (led.color << 18); + mask |= (led.color << 19); - for (let directionLetterIndex = 0; directionLetterIndex < led.directions.length; directionLetterIndex++) { - const bitIndex = ledDirectionLetters.indexOf(led.directions[directionLetterIndex]); - if (bitIndex >= 0) { - mask |= bit_set(mask, bitIndex + 22); + for (let directionLetterIndex = 0; directionLetterIndex < led.directions.length; directionLetterIndex++) { + const bitIndex = ledDirectionLetters.indexOf(led.directions[directionLetterIndex]); + if (bitIndex >= 0) { + mask |= bit_set(mask, bitIndex + 23); + } } + + mask |= (0 << 29); // parameters + + buffer.push32(mask); } + else { + for (let overlayLetterIndex = 0; overlayLetterIndex < led.functions.length; overlayLetterIndex++) { + const bitIndex = ledOverlayLetters.indexOf(led.functions[overlayLetterIndex]); + if (bitIndex >= 0) { + mask |= bit_set(mask, bitIndex + 12); + } + } + + mask |= (led.color << 18); - mask |= (0 << 28); // parameters + for (let directionLetterIndex = 0; directionLetterIndex < led.directions.length; directionLetterIndex++) { + const bitIndex = ledDirectionLetters.indexOf(led.directions[directionLetterIndex]); + if (bitIndex >= 0) { + mask |= bit_set(mask, bitIndex + 22); + } + } - buffer.push32(mask); + mask |= (0 << 28); // parameters + + buffer.push32(mask); + } // prepare for next iteration ledIndex++; diff --git a/src/js/tabs/led_strip.js b/src/js/tabs/led_strip.js index d0d637f24d..7c2008e38a 100644 --- a/src/js/tabs/led_strip.js +++ b/src/js/tabs/led_strip.js @@ -2,8 +2,10 @@ import { i18n } from "../localization"; import GUI, { TABS } from '../gui'; import { mspHelper } from "../msp/MSPHelper"; import FC from "../fc"; +import semver from 'semver'; import MSP from "../msp"; import MSPCodes from "../msp/MSPCodes"; +import { API_VERSION_1_46 } from '../data_storage'; import { gui_log } from "../gui_log"; const led_strip = { @@ -16,9 +18,13 @@ led_strip.initialize = function (callback, scrollPosition) { let selectedModeColor = null; const functionTag = '.function-'; - TABS.led_strip.functions = ['i', 'w', 'f', 'a', 't', 'r', 'c', 'g', 's', 'b', 'l', 'o', 'n']; + TABS.led_strip.functions = ['i', 'w', 'f', 'a', 't', 'r', 'c', 'g', 's', 'b', 'l', 'o', 'y']; TABS.led_strip.baseFuncs = ['c', 'f', 'a', 'l', 's', 'g', 'r']; - TABS.led_strip.overlays = ['t', 'o', 'b', 'v', 'i', 'w']; + TABS.led_strip.overlays = ['t', 'y', 'o', 'b', 'v', 'i', 'w']; + + if (semver.lt(FC.CONFIG.apiVersion,API_VERSION_1_46)) { + TABS.led_strip.overlays = TABS.led_strip.overlays.filter(x => x !== 'y'); + } TABS.led_strip.wireMode = false; @@ -64,12 +70,12 @@ led_strip.initialize = function (callback, scrollPosition) { const theHTML = []; let theHTMLlength = 0; for (let i = 0; i < 256; i++) { - theHTML[theHTMLlength++] = ('
    UD
    '); + theHTML[theHTMLlength++] = ('
    UD
    '); } $('.mainGrid').html(theHTML.join('')); - $('.tempOutput').click(function() { - $(this).select(); + $('.tempOutput').on('click', function() { + $(this).trigger('select'); }); // Aux channel drop-down @@ -85,11 +91,10 @@ led_strip.initialize = function (callback, scrollPosition) { setModeColor(AuxMode, AuxDir, $('.auxSelect').val()); }); - $('.landingBlinkOverlay').css("visibility", "hidden"); $('.vtxOverlay').show(); // Clear button - $('.funcClear').click(function() { + $('.funcClear').on('click', function() { $('.gPoint').each(function() { if ($(this).is('.ui-selected')) { removeFunctionsAndDirections(this); @@ -102,7 +107,7 @@ led_strip.initialize = function (callback, scrollPosition) { }); // Clear All button - $('.funcClearAll').click(function() { + $('.funcClearAll').on('click', function() { $('.gPoint').each(function() { removeFunctionsAndDirections(this); }); @@ -263,13 +268,13 @@ led_strip.initialize = function (callback, scrollPosition) { }, }); - $('.funcWire').click(function() { + $('.funcWire').on('click', function() { $(this).toggleClass('btnOn'); TABS.led_strip.wireMode = $(this).hasClass('btnOn'); $('.mainGrid').toggleClass('gridWire'); }); - $('.funcWireClearSelect').click(function() { + $('.funcWireClearSelect').on('click', function() { $('.ui-selected').each(function() { const thisWire = $(this).find('.wire'); if (thisWire.html() !== '') { @@ -279,7 +284,7 @@ led_strip.initialize = function (callback, scrollPosition) { }); }); - $('.funcWireClear').click(function() { + $('.funcWireClear').on('click', function() { $('.gPoint .wire').html(''); updateBulkCmd(); }); @@ -444,16 +449,13 @@ led_strip.initialize = function (callback, scrollPosition) { switch (letter) { case 't': + case 'y': case 'o': case 's': if (areModifiersActive(`function-${f}`)) p.addClass(`function-${letter}`); break; case 'b': - case 'n': - if (areBlinkersActive(`function-${f}`)) - p.addClass(`function-${letter}`); - break; case 'i': if (areOverlaysActive(`function-${f}`)) p.addClass(`function-${letter}`); @@ -503,25 +505,9 @@ led_strip.initialize = function (callback, scrollPosition) { } if ($('.ui-selected').length > 0) { - TABS.led_strip.overlays.forEach(function(letter) { if ($(that).is(functionTag + letter)) { - const ret = toggleSwitch(that, letter); - - const cbn = $('.checkbox .function-n'); // blink on landing - const cbb = $('.checkbox .function-b'); // blink - - if (ret) { - if (letter == 'b' && cbn.is(':checked')) { - cbn.prop('checked', false); - cbn.trigger('change'); - toggleSwitch(cbn, 'n'); - } else if (letter == 'n' && cbb.is(':checked')) { - cbb.prop('checked', false); - cbb.trigger('change'); - toggleSwitch(cbb, 'b'); - } - } + toggleSwitch(that, letter); } }); @@ -736,7 +722,9 @@ led_strip.initialize = function (callback, scrollPosition) { case "function-s": case "function-l": case "function-r": + case "function-y": case "function-o": + case "function-b": case "function-g": return true; default: @@ -745,14 +733,16 @@ led_strip.initialize = function (callback, scrollPosition) { return false; } - function areBlinkersActive(activeFunction) { - switch (activeFunction) { - case "function-c": - case "function-a": - case "function-f": - return true; - default: - break; + function isRainbowActive(activeFunction) { + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + switch (activeFunction) { + case "function-c": + case "function-a": + case "function-f": + return true; + default: + break; + } } return false; } @@ -799,7 +789,7 @@ led_strip.initialize = function (callback, scrollPosition) { $('.modifiers').toggle(areModifiersActive(activeFunction)); - $('.blinkers').toggle(areBlinkersActive(activeFunction)); + $('.rainbowOverlay').toggle(isRainbowActive(activeFunction)); $('.warningOverlay').toggle(isWarningActive(activeFunction)); @@ -881,18 +871,18 @@ led_strip.initialize = function (callback, scrollPosition) { function unselectOverlays(letter) { // MSP 1.20 if (letter == 'r' || letter == '') { + unselectOverlay(letter, 'y'); unselectOverlay(letter, 'o'); unselectOverlay(letter, 'b'); - unselectOverlay(letter, 'n'); unselectOverlay(letter, 't'); } if (letter == 'l' || letter == 'g' || letter == 's') { unselectOverlay(letter, 'w'); unselectOverlay(letter, 'v'); unselectOverlay(letter, 't'); + unselectOverlay(letter, 'y'); unselectOverlay(letter, 'o'); unselectOverlay(letter, 'b'); - unselectOverlay(letter, 'n'); } } diff --git a/src/js/utils/common.js b/src/js/utils/common.js index f3a4ec7961..a23331ed32 100644 --- a/src/js/utils/common.js +++ b/src/js/utils/common.js @@ -47,6 +47,7 @@ export function checkChromeRuntimeError() { } const majorFirmwareVersions = { + "1.46": "4.5.*", "1.45": "4.4.*", "1.44": "4.3.*", "1.43": "4.2.*", diff --git a/src/tabs/led_strip.html b/src/tabs/led_strip.html index 51f2f8954f..4a5e0011eb 100644 --- a/src/tabs/led_strip.html +++ b/src/tabs/led_strip.html @@ -77,19 +77,17 @@
    - +
    -
    - -
    - -
    + +
    -
    - - + +
    + +
    From 718aee1f189c6b22ecf18c0585ddad1e7d354546 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 17 Mar 2023 17:10:03 +0100 Subject: [PATCH 048/393] Update translations (#3370) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 13 ++++++++++++ locales/da/messages.json | 19 ++++++++++++++--- locales/de/messages.json | 13 ++++++++++++ locales/es/messages.json | 13 ++++++++++++ locales/it/messages.json | 19 ++++++++++++++--- locales/ja/messages.json | 45 ++++++++++++++++++++++++++-------------- locales/ko/messages.json | 13 ++++++++++++ locales/pt/messages.json | 13 ++++++++++++ 8 files changed, 126 insertions(+), 22 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index fe34941236..fe201ce90e 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -475,6 +475,9 @@ "buildServerSupportRequestSubmission": { "message": "
    *** Dada de suport enviat ***
    Id: $1


    # copia ID i informa al equip de betaflight." }, + "buildKey": { + "message": "Clau de la compilació: $1" + }, "supportWarningDialogTitle": { "message": "Confirma l'enviament de dades" }, @@ -2397,6 +2400,9 @@ "gpsLon": { "message": "Longitud:" }, + "gpsHeading": { + "message": "Encapçalament:" + }, "gpsSpeed": { "message": "Velocitat:" }, @@ -6273,6 +6279,9 @@ "onboardLoggingRateOfLogging": { "message": "Velocitat d'enregistrament de Blackbox" }, + "onboardLoggingDebugFields": { + "message": "Camps de depuració de Blackbox" + }, "onboardLoggingDebugMode": { "message": "Mode de depuració de Blackbox" }, @@ -6719,5 +6728,9 @@ }, "coreBuildModeDescription": { "message": "Aquesta opció crea un microprogramari que conté els controladors de maquinari (i algunes funcions limitades). Està disponible per ajudar en la detecció del maquinari en un controlador de vol i només es proporciona per a aquesta comoditat. No totes les funcions estaran disponibles (només el maquinari) amb aquesta opció." + }, + "showDevToolsOnStartup": { + "message": "Obriu automàticament DevTools en mode de desenvolupament", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" } } diff --git a/locales/da/messages.json b/locales/da/messages.json index 9fdebe88d5..230f5ea315 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -467,6 +467,9 @@ "buildServerSupportRequestSubmission": { "message": "
    *** Logoplysninger sendt ***
    Id: $1


    # medsend kopi af ID ved henvendelser til Betaflight team." }, + "buildKey": { + "message": "Build nøgle: $1" + }, "supportWarningDialogTitle": { "message": "Bekræft indsendelse af log oplysninger" }, @@ -2389,6 +2392,9 @@ "gpsLon": { "message": "Længdegrad:" }, + "gpsHeading": { + "message": "Kurs:" + }, "gpsSpeed": { "message": "Hastighed:" }, @@ -3114,7 +3120,7 @@ "message": "Besked:" }, "firmwareFlasherWarningText": { - "message": "Undlad venligst ikke at brænde ikke-Betaflight hardware med denne firmware brænder.
    Du må ikke frakoble FC eller slukke din pc under brænding.

    Bemærk: STM32 bootloader er gemt i ROM, som ikke kan ændres.
    Bemærk: Auto-Connect er altid deaktiveret, mens du er inde i firmware brænder.
    Bemærk: Sørg for at du har en sikkerhedskopi af din FC konfiguration; nogle opgraderinger/nedgraderinger vil slette/ændre din konfiguration.
    Bemærk: Hvis du har problemer efter brænding, prøv først at frakoble alle kabler fra din FC, prøv genstart, prøv at genindstaller/opgrader drivere.
    Bemærk: Når du brænder FC, som er direkte tilsluttet USB (de fleste nyere FC), sørg for at have læst afsnittet USB Flashing i Betaflight manual og at du har installeret den korrekte software og drivere" + "message": "Du bør ikke brænde ikke-Betaflight / ikke-complient Betaflight hardware med denne firmware brænder.
    Du må ikke frakoble FC eller slukke din pc under brænding.

    Bemærk: STM32 bootloader er gemt i ROM, som ikke kan ændres.
    Bemærk: Auto-Connect er altid deaktiveret, mens du er inde i firmware brænder.
    Bemærk: Sørg for at du har en sikkerhedskopi af din FC konfiguration; nogle opgraderinger/nedgraderinger vil slette/ændre din konfiguration.
    Bemærk: Hvis du har problemer efter brænding, prøv først at frakoble alle kabler fra din FC, prøv genstart, prøv at genindstaller/opgrader drivere.
    Bemærk: Når du brænder FC, som er direkte tilsluttet USB (de fleste nyere FC), sørg for at have læst afsnittet USB Flashing i Betaflight manual og at du har installeret den korrekte software og drivere" }, "firmwareFlasherRecoveryHead": { "message": "Gendannelse / tabt kommunikation" @@ -5607,11 +5613,11 @@ "message": "Vælg den faktor, som styrer tidstagningens varighed/hændelse" }, "osdTimerSourceOptionOnTime": { - "message": "Fra fartøj blev tændt", + "message": "Start ved støm til fartøj", "description": "One of the options for the source timer. This options shows the amount of time has passed since the battery was plugged" }, "osdTimerSourceOptionTotalArmedTime": { - "message": "Aktiveringer fra fartøj blev tændt", + "message": "Start ved fartøj aktivering", "description": "One of the options for the source timer. This options shows the amount of time the craft was armed since the battery was plugged" }, "osdTimerSourceOptionLastArmedTime": { @@ -6265,6 +6271,9 @@ "onboardLoggingRateOfLogging": { "message": "Blackbox lognings hastighed" }, + "onboardLoggingDebugFields": { + "message": "Blackbox debug felter" + }, "onboardLoggingDebugMode": { "message": "Blackbox logger med debug for ..." }, @@ -6711,5 +6720,9 @@ }, "coreBuildModeDescription": { "message": "Dette tilvalg danner en relase som indeholder hardware drivere (og nogle begrænsede funktioner). Den kan anvendes til at detektere hardware på FC og er til rådighed for bekvemmelighed. Ikke alle funktioner vil være tilgængelige (kun hardware) hvis du vælger denne indstilling." + }, + "showDevToolsOnStartup": { + "message": "Åbn automatisk DevTools i udviklingstilstand", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" } } diff --git a/locales/de/messages.json b/locales/de/messages.json index 018ec55d1b..b4b4c593dd 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -470,6 +470,9 @@ "buildServerSupportRequestSubmission": { "message": "
    *** Supportdaten übermittelt ***
    ID: $1


    # ID kopieren und dem Betaflight-Team bereitstellen." }, + "buildKey": { + "message": "Build Key: $1" + }, "supportWarningDialogTitle": { "message": "Datenübermittlung bestätigen" }, @@ -2392,6 +2395,9 @@ "gpsLon": { "message": "Länge:" }, + "gpsHeading": { + "message": "Richtung:" + }, "gpsSpeed": { "message": "Geschwindigkeit" }, @@ -6268,6 +6274,9 @@ "onboardLoggingRateOfLogging": { "message": "Blackbox Log-Geschwindigkeit" }, + "onboardLoggingDebugFields": { + "message": "Blackbox Debug-Felder" + }, "onboardLoggingDebugMode": { "message": "Blackbox Debug Modus" }, @@ -6714,5 +6723,9 @@ }, "coreBuildModeDescription": { "message": "Diese Option erzeugt eine Firmware, die Hardware-Treiber (und einige eingeschränkte Funktionen) enthält. Dies ermöglicht, die Hardware auf einem Flugregler zu erkennen und sollte nur für diesen Zweck verwendet werden. Nicht alle Funktionen werden mit dieser Option verfügbar sein (nur Hardware)." + }, + "showDevToolsOnStartup": { + "message": "Im Entwicklungsmodus automatisch DevTools öffnen", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" } } diff --git a/locales/es/messages.json b/locales/es/messages.json index 2175024758..70fffae6f5 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -467,6 +467,9 @@ "buildServerSupportRequestSubmission": { "message": "
    *** Datos de soporte enviados ***
    Id: $1


    # copiar ID para proporcionar al equipo Betaflight." }, + "buildKey": { + "message": "Clave de compilación: $1" + }, "supportWarningDialogTitle": { "message": "Confirmar envío de datos" }, @@ -2389,6 +2392,9 @@ "gpsLon": { "message": "Longitud:" }, + "gpsHeading": { + "message": "Encabezado:" + }, "gpsSpeed": { "message": "Velocidad:" }, @@ -6265,6 +6271,9 @@ "onboardLoggingRateOfLogging": { "message": "Frecuencia de muestreo" }, + "onboardLoggingDebugFields": { + "message": "Campos de depuración de la Caja Negra" + }, "onboardLoggingDebugMode": { "message": "Modo de depuración de la Caja Negra" }, @@ -6711,5 +6720,9 @@ }, "coreBuildModeDescription": { "message": "Esta opción construye un firmware que contiene los controladores de hardware (y algunas de las funcionalidades). Está disponible para ayudar en la detección del hardware en un controlador de vuelo, y sólo se proporciona para esa finalidad. No estarán disponibles todas las funcionalidades (sólo hardware) usando esta opción." + }, + "showDevToolsOnStartup": { + "message": "Abrir automáticamente las herramientas de desarrollo", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" } } diff --git a/locales/it/messages.json b/locales/it/messages.json index 6903a1fdb6..a5571304cd 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -467,6 +467,9 @@ "buildServerSupportRequestSubmission": { "message": "
    *** Dati per il supporto inviati ***
    Id: $1


    # copia l'ID e forniscilo al team betaflight." }, + "buildKey": { + "message": "Chiave Build: $1" + }, "supportWarningDialogTitle": { "message": "Conferma Invio Dati" }, @@ -1963,7 +1966,7 @@ "message": "Modalità slider per tuning PID

    La modalità slider per tuning PID può essere:

    • OFF - no slider, inserisci manualmente i valori
    • RP - i cursori controllano solo Roll e Pitch, inserisci manualmente i valori Yaw
    • RPY - i cursori controllano tutti i valori PID

    Attenzione:Passando dalla modalità RP a RPY sovrascriverà le impostazioni di Yaw con quelle del firmware." }, "receiverHelp": { - "message": "•Controllare sempre che il Failsafe funzioni correttamente! Le impostazioni le trovi nella scheda Failsafe, abilitando la modalità esperto.
    Usa l'ultimo firmware sulla TX!
    Disabilita i filtri hardware ADC sulla trasmittente se usi OpenTx o EdgeTx.
    Impostazione di base: Configura la ricevente correttamente. Scegli la mappa canali corretta per la tua radio. Controlla che Roll, Pitch ed altre barre grafiche si muovano correttamente. Regola i limiti dei canali e i valori del range nella tua trasmittente da ~1000 a ~2000, e imposta il punto medio su ~1500. Per maggiori informazioni leggi la documentazione." + "message": "• Controllare sempre che il Failsafe funzioni correttamente! Le impostazioni le trovi nella scheda Failsafe, abilitando la modalità esperto.
    Usa l'ultimo firmware sulla TX!
    Disabilita i filtri hardware ADC sulla trasmittente se usi OpenTx o EdgeTx.
    Impostazione di base: Configura la ricevente correttamente. Scegli la mappa canali corretta per la tua radio. Controlla che Roll, Pitch ed altre barre grafiche si muovano correttamente. Regola i limiti dei canali e i valori del range nella tua trasmittente da ~1000 a ~2000, e imposta il punto medio su ~1500. Per maggiori informazioni leggi la documentazione." }, "receiverThrottleMid": { "message": "Gas Medio" @@ -2389,6 +2392,9 @@ "gpsLon": { "message": "Longitudine:" }, + "gpsHeading": { + "message": "Direzione:" + }, "gpsSpeed": { "message": "Velocità:" }, @@ -5298,7 +5304,7 @@ "message": "Frequenza RPM trasmessa dalla telemetria degli ESC" }, "osdTextElementRateProfileName": { - "message": "Profilo: nome profilo di rate", + "message": "Profilo: Nome profilo di rate", "description": "One of the elements of the OSD" }, "osdDescElementRateProfileName": { @@ -5821,7 +5827,7 @@ "message": "Salvato" }, "vtxHelp": { - "message": "Qui puoi configurare i valori della Trasmittente Video (VTX). Puoi visualizzare e modificare i valori di trasmissione, incluse le tabelle della VTX, se il controller di volo e la VTX lo supportano.
    Per impostare la VTX utilizza i seguenti passaggi:
    1. Vai su questa pagina;
    2. Trova il file di configurazione VTX appropriato per il tuo paese e il modello VTX e scaricalo;
    3. Clicca su '$t(vtxButtonLoadFile.message)', seleziona il file di configurazione VTX e caricalo;
    4. Verifica che le impostazioni siano corrette;
    5. Clicca su '$t(vtxButtonSave.message)' per salvare le impostazioni della VTX sul controller del volo.
    6. Se vuoi puoi usare '$t(vtxButtonSaveLua.message)' per salvare un file di configurazione da usare con gli script lua di Betaflight (maggiori informazioni qui.)", + "message": "Qui puoi configurare i valori della Trasmittente Video (VTX). Puoi visualizzare e modificare i valori di trasmissione, incluse le tabelle della VTX, se il controller di volo e la VTX lo supportano.
    Per impostare la VTX utilizza i seguenti passaggi:
    1. Vai su questa pagina;
    2. Trova il file di configurazione VTX appropriato per il tuo paese e il modello VTX e scaricalo;
    3. Clicca su '$t(vtxButtonLoadFile.message)', seleziona il file di configurazione VTX e caricalo;
    4. Verifica che le impostazioni siano corrette;
    5. Clicca su '$t(vtxButtonSave.message)' per salvare le impostazioni della VTX sul controller del volo.
    6. Se vuoi puoi usare '$t(vtxButtonSaveLua.message)' per salvare un file di configurazione da usare con gli script lua di Betaflight (più informazioni qui.)", "description": "Introduction message in the VTX tab" }, "vtxMessageNotSupported": { @@ -6265,6 +6271,9 @@ "onboardLoggingRateOfLogging": { "message": "Frequenza di registrazione della BlackBox" }, + "onboardLoggingDebugFields": { + "message": "Campi di debug Blackbox" + }, "onboardLoggingDebugMode": { "message": "Modalità debug Blackbox" }, @@ -6711,5 +6720,9 @@ }, "coreBuildModeDescription": { "message": "Questa opzione crea un firmware che contiene i driver hardware (e alcune funzioni limitate). È disponibile per assistere il rilevamento dell'hardware su un controllore di volo, ed è fornito solo per quella comodità. Non tutte le funzionalità saranno disponibili (solo hardware) utilizzando questa opzione." + }, + "showDevToolsOnStartup": { + "message": "Apri automaticamente DevTools in modalità sviluppo", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" } } diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 15e8c2cbcd..ad18a11e00 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -280,7 +280,7 @@ "message": "テザーロギング" }, "tabOnboardLogging": { - "message": "ブラックボックス" + "message": "Blackbox" }, "tabAdjustments": { "message": "調整" @@ -467,6 +467,9 @@ "buildServerSupportRequestSubmission": { "message": "
    *** サポートデータを送信しました ***
    Id: $1


    # IDをコピーしてBetaflight開発チームに情報提供してください。" }, + "buildKey": { + "message": "Build Key: $1" + }, "supportWarningDialogTitle": { "message": "データ送信の確認" }, @@ -1271,7 +1274,7 @@ "message": "フライトコントローラがUSBから給電されたときのビープ音 (機体作成時に発報させない場合はオフ)" }, "beeperBLACKBOX_ERASE": { - "message": "ブラックボックスログ消去が完了したときのビープ音" + "message": "Blackboxログの消去が完了したときのビープ音" }, "beeperCRASH_FLIP": { "message": "クラッシュフリップモードを有効にしたときのビープ音" @@ -1455,7 +1458,7 @@ "message": "シリアル受信" }, "portsFunction_BLACKBOX": { - "message": "ブラックボックスログ" + "message": "Blackboxログ" }, "portsFunction_TBS_SMARTAUDIO": { "message": "VTX (TBS SmartAudio)" @@ -2014,7 +2017,7 @@ "message": "初期値" }, "receiverChannelMapTitle": { - "message": "ボックスをクリックする事で、独自のチャンネルマップを定義できます" + "message": "枠内をクリックする事で、独自のチャンネルマップを定義できます" }, "receiverRssiChannel": { "message": "RSSI チャンネル" @@ -2389,6 +2392,9 @@ "gpsLon": { "message": "経度:" }, + "gpsHeading": { + "message": "ヘッディング:" + }, "gpsSpeed": { "message": "速度:" }, @@ -2802,13 +2808,13 @@ "message": "自動的に以前のログファイルをロードしました: $1" }, "blackboxNotSupported": { - "message": "このフライトコントローラのファームウェアは、ブラックボックスによるログをサポートしていません。" + "message": "このフライトコントローラのファームウェアはBlackboxによるログをサポートしていません。" }, "blackboxMaybeSupported": { - "message": "このフライトコントローラのファームウェアは古すぎるか、あるいは [設定] タブでブラックボックス機能が無効になっているため、このタブは使えません。" + "message": "このフライトコントローラのファームウェアは古すぎるか、あるいは [設定] タブでBlackbox機能が無効になっているため、このタブは使えません。" }, "blackboxConfiguration": { - "message": "ブラックボックス設定" + "message": "Blackbox設定" }, "blackboxButtonSave": { "message": "保存して再起動" @@ -2871,7 +2877,7 @@ "message": "データ消去を確認します" }, "dataflashConfirmEraseNote": { - "message": "メモリに保存されているログを含むすべてのデータを消去します。消去には20秒程度必要です。実行しますか?" + "message": "メモリに保存されているBlackboxログを含むすべてのデータを消去します。消去には20秒程度必要です。実行しますか?" }, "dataflashSavingTitle": { "message": "ファイルに保存しています" @@ -5130,11 +5136,11 @@ "message": "ホームポジションまでの距離 (設定に基づいたフィートまたはメートル表示)" }, "osdTextElementNumericalHeading": { - "message": "ヘディング角度値", + "message": "ヘッディング角度値", "description": "One of the elements of the OSD" }, "osdDescElementNumericalHeading": { - "message": "ヘッディング角度値" + "message": "現在のヘッディング角度の読み取り値" }, "osdTextElementNumericalVario": { "message": "垂直スピード値", @@ -5235,11 +5241,11 @@ "message": "モーター毎の出力グラフを表示" }, "osdTextElementLogStatus": { - "message": "ブラックボックス ログステータス", + "message": "Blackboxログの状態", "description": "One of the elements of the OSD" }, "osdDescElementLogStatus": { - "message": "ブラックボックス番号と警告" + "message": "Blackbox番号と警告" }, "osdTextElementFlipArrow": { "message": "Flip after crash 向き", @@ -5442,7 +5448,7 @@ "description": "One of the statistics that can be shown at the end of the flight in the OSD" }, "osdDescStatBlackbox": { - "message": "ブラックボックス合計使用率" + "message": "Blackbox 合計使用率" }, "osdTextStatEndBattery": { "message": "バッテリー終止電圧", @@ -5477,7 +5483,7 @@ "description": "One of the statistics that can be shown at the end of the flight in the OSD" }, "osdDescStatBlackboxLogNumber": { - "message": "飛行後のブラックボックスログ番号" + "message": "飛行後のBlackboxログ番号" }, "osdTextStatTimer1": { "message": "タイマー1", @@ -6260,10 +6266,13 @@ "message": "FPVカメラアングル [degrees]" }, "onboardLoggingBlackbox": { - "message": "ブラックボックス ログデバイス" + "message": "Blackboxログデバイス" }, "onboardLoggingRateOfLogging": { - "message": "ブラックボックス ログレート" + "message": "Blackboxログレート" + }, + "onboardLoggingDebugFields": { + "message": "Blackboxデバッグフィールド" }, "onboardLoggingDebugMode": { "message": "Blackboxデバッグモード" @@ -6711,5 +6720,9 @@ }, "coreBuildModeDescription": { "message": "このオプションは、ハードウェアドライバ (およびいくつかの制限された機能) を含むファームウェアをビルドします。これはフライトコントローラ上のハードウェア検出を支援するために利用可能で、その利便性のためにのみ提供されます。このオプションを使用しても、すべての機能 (ハードウェアのみ) が利用できるわけではありません。" + }, + "showDevToolsOnStartup": { + "message": "開発者向けツールを自動的に開く", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" } } diff --git a/locales/ko/messages.json b/locales/ko/messages.json index 8b7c4ec4ba..28294f841a 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -467,6 +467,9 @@ "buildServerSupportRequestSubmission": { "message": "
    *** 지원 데이터 제출 ***
    Id:$1


    # ID를 복사해서 베타플라이트 팀에 제공하세요." }, + "buildKey": { + "message": "빌드 키: $1" + }, "supportWarningDialogTitle": { "message": "데이터 제출 확인" }, @@ -2389,6 +2392,9 @@ "gpsLon": { "message": "경도:" }, + "gpsHeading": { + "message": "진행방향:" + }, "gpsSpeed": { "message": "속도:" }, @@ -6265,6 +6271,9 @@ "onboardLoggingRateOfLogging": { "message": "블랙박스 로그기록 속도" }, + "onboardLoggingDebugFields": { + "message": "블랙박스 디버그 필드" + }, "onboardLoggingDebugMode": { "message": "블랙박스 디버그 모드" }, @@ -6711,5 +6720,9 @@ }, "coreBuildModeDescription": { "message": "이 옵션은 하드웨어 드라이버 및 일부 제한된 기능을 포함하는 펌웨어를 빌드합니다. 이는 비행 컨트롤러의 하드웨어 감지를 지원하는 데 사용할 수 있으며, 그러한 편의를 위해 제공됩니다. 이 옵션을 사용하면 일부 기능만 사용할 수 있습니다(하드웨어만 해당)." + }, + "showDevToolsOnStartup": { + "message": "개발 모드에서 DevTool 자동 열기", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" } } diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 431bc12beb..225b8caa6e 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -467,6 +467,9 @@ "buildServerSupportRequestSubmission": { "message": "
    *** Dados de suporte enviados ***
    Id: $1


    # copie o ID e forneça-o à equipa do betaflight." }, + "buildKey": { + "message": "Chave de Compilação: $1" + }, "supportWarningDialogTitle": { "message": "Confirmar envio de dados" }, @@ -2389,6 +2392,9 @@ "gpsLon": { "message": "Longitude:" }, + "gpsHeading": { + "message": "Direção:" + }, "gpsSpeed": { "message": "Velocidade:" }, @@ -6265,6 +6271,9 @@ "onboardLoggingRateOfLogging": { "message": "Frequência de log do Blackbox" }, + "onboardLoggingDebugFields": { + "message": "Campos de debug do Blackbox" + }, "onboardLoggingDebugMode": { "message": "Modo de debug do Blackbox" }, @@ -6711,5 +6720,9 @@ }, "coreBuildModeDescription": { "message": "Esta opção cria um firmware que contém os drivers de hardware (e algumas funcionalidades limitadas). Está disponível para ajudar na deteção do hardware de uma controladora de voo, e é fornecida apenas por essa conveniência. Nem todas as funcionalidades estarão disponíveis (apenas hardware) usando esta opção." + }, + "showDevToolsOnStartup": { + "message": "Abrir automaticamente o DevTools no modo de desenvolvimento", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" } } From 23af01b2184e7b7083826b6d88aa12eb3aba5216 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Fri, 17 Mar 2023 23:24:36 +0100 Subject: [PATCH 049/393] Fix gyro_hardware_lpf (#3378) --- src/js/msp/MSPHelper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 28a6a9b454..5e70035dce 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -1988,7 +1988,7 @@ MspHelper.prototype.crunch = function(code, modifierCode = undefined) { .push16(FC.FILTER_CONFIG.gyro_notch2_hz) .push16(FC.FILTER_CONFIG.gyro_notch2_cutoff) .push8(FC.FILTER_CONFIG.dterm_lowpass_type) - .push8(0) // FC.FILTER_CONFIG.gyro_hardware_lpf not used + .push8(FC.FILTER_CONFIG.gyro_hardware_lpf) .push8(0) // gyro_32khz_hardware_lpf not used .push16(FC.FILTER_CONFIG.gyro_lowpass_hz) .push16(FC.FILTER_CONFIG.gyro_lowpass2_hz) From 43e080b81fcfea243e488c5dd0fa1bc2c9464812 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Sat, 18 Mar 2023 00:59:54 +0100 Subject: [PATCH 050/393] Change blackbox debug (#3381) --- locales/en/messages.json | 2 +- src/css/tabs/onboard_logging.less | 3 --- src/js/tabs/onboard_logging.js | 40 ++++++++++--------------------- 3 files changed, 14 insertions(+), 31 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 77c8519c6a..a0e1e3eee1 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -6409,7 +6409,7 @@ "message": "Blackbox logging rate" }, "onboardLoggingDebugFields": { - "message": "Blackbox debug fields" + "message": "Data included" }, "onboardLoggingDebugMode": { "message": "Blackbox debug mode" diff --git a/src/css/tabs/onboard_logging.less b/src/css/tabs/onboard_logging.less index 3807696268..a4a9bda3a6 100644 --- a/src/css/tabs/onboard_logging.less +++ b/src/css/tabs/onboard_logging.less @@ -225,9 +225,6 @@ line-height: 20px; } } - .blackboxDebugModeText { - margin-left: 7px !important; - } .sdcard { padding: 10px; float: left; diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index e4e575bad9..82e46bdafa 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -349,21 +349,7 @@ onboard_logging.initialize = function (callback) { } debugModeSelect.val(FC.PID_ADVANCED_CONFIG.debugMode); - - // Convert to select2 and order alphabetic - debugModeSelect.select2({ - sorter(data) { - return data.sort(function(a, b) { - if (a.text === "NONE" || b.text === i18n.getMessage('onboardLoggingDebugModeUnknown')) { - return -1; - } else if (b.text ==="NONE" || a.text === i18n.getMessage('onboardLoggingDebugModeUnknown')) { - return 1; - } else { - return a.text.localeCompare(b.text); - } - }); - }, - }); + debugModeSelect.sortSelect("NONE"); } else { $('.blackboxDebugMode').hide(); @@ -375,18 +361,18 @@ onboard_logging.initialize = function (callback) { $('.blackboxDebugFields').show(); const debugFields = [ - { text: "PID Data" }, - { text: "RC Commands Data" }, - { text: "Setpoint Data" }, - { text: "Battery Data" }, - { text: "Magnetometer Data" }, - { text: "Altitude Data" }, - { text: "RSSI Data" }, - { text: "Gyro Data" }, - { text: "Accelerometer Data" }, - { text: "Debug Log Data" }, - { text: "Motor Data" }, - { text: "GPS Data" }, + { text: "PID" }, + { text: "RC Commands" }, + { text: "Setpoint" }, + { text: "Battery" }, + { text: "Magnetometer" }, + { text: "Altitude" }, + { text: "RSSI" }, + { text: "Gyro" }, + { text: "Accelerometer" }, + { text: "Debug Log" }, + { text: "Motor" }, + { text: "GPS" }, ]; let fieldsMask = FC.BLACKBOX.blackboxDisabledMask; From e94cb0cd1e09bcb168bfb45fa24f886f62887015 Mon Sep 17 00:00:00 2001 From: J Blackman Date: Sun, 19 Mar 2023 10:46:45 +1100 Subject: [PATCH 051/393] FIX: Adjusting setting of ajax default header as not being passed for version check (#3383) --- src/js/main.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/js/main.js b/src/js/main.js index 5259d4de01..bf98dc9f07 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -80,7 +80,6 @@ function appReady() { cleanupLocalStorage(); i18n.init(function() { - startProcess(); // pass the configurator version as a custom header for every AJAX request. $.ajaxSetup({ @@ -89,6 +88,8 @@ function appReady() { }, }); + startProcess(); + checkSetupAnalytics(function (analyticsService) { analyticsService.sendEvent(analyticsService.EVENT_CATEGORIES.APPLICATION, 'SelectedLanguage', i18n.selectedLanguage); }); From 95f4c6e75dcee7e7497c0d0b557099686e530152 Mon Sep 17 00:00:00 2001 From: J Blackman Date: Tue, 21 Mar 2023 07:11:16 +1100 Subject: [PATCH 052/393] Load available cloud build options when selecting the firmware version to build (#3384) * Load options when selecting the firmware version * Add the release to the request for options when setting defaults based on buildkey. * Adjusting to allow build key to be passed. --- src/js/BuildApi.js | 19 +++++----------- src/js/tabs/firmware_flasher.js | 40 +++++---------------------------- 2 files changed, 12 insertions(+), 47 deletions(-) diff --git a/src/js/BuildApi.js b/src/js/BuildApi.js index cad2c70995..cff0125f7d 100644 --- a/src/js/BuildApi.js +++ b/src/js/BuildApi.js @@ -10,7 +10,6 @@ export default class BuildApi { } load(url, onSuccess, onFailure) { - const dataTag = `${url}_Data`; const cacheLastUpdateTag = `${url}_LastUpdate`; @@ -49,25 +48,21 @@ export default class BuildApi { } loadTargets(callback) { - const url = `${this._url}/api/targets`; this.load(url, callback); } loadTargetReleases(target, callback) { - const url = `${this._url}/api/targets/${target}`; this.load(url, callback); } loadTarget(target, release, onSuccess, onFailure) { - const url = `${this._url}/api/builds/${release}/${target}`; this.load(url, onSuccess, onFailure); } loadTargetHex(path, onSuccess, onFailure) { - const url = `${this._url}${path}`; $.get(url, function (data) { gui_log(i18n.getMessage('buildServerSuccess', [path])); @@ -81,7 +76,6 @@ export default class BuildApi { } getSupportCommands(onSuccess, onFailure) { - const url = `${this._url}/api/support/commands`; $.get(url, function (data) { onSuccess(data); @@ -94,7 +88,6 @@ export default class BuildApi { } submitSupportData(data, onSuccess, onFailure) { - const url = `${this._url}/api/support`; $.ajax({ url: url, @@ -115,7 +108,6 @@ export default class BuildApi { } requestBuild(request, onSuccess, onFailure) { - const url = `${this._url}/api/builds`; $.ajax({ url: url, @@ -136,7 +128,6 @@ export default class BuildApi { } requestBuildStatus(key, onSuccess, onFailure) { - const url = `${this._url}/api/builds/${key}/status`; $.get(url, function (data) { gui_log(i18n.getMessage('buildServerSuccess', [url])); @@ -150,7 +141,6 @@ export default class BuildApi { } requestBuildOptions(key, onSuccess, onFailure) { - const url = `${this._url}/api/builds/${key}/json`; $.get(url, function (data) { onSuccess(data); @@ -161,14 +151,17 @@ export default class BuildApi { }); } - loadOptions(onSuccess, onFailure) { + loadOptions(release, onSuccess, onFailure) { + const url = `${this._url}/api/options/${release}`; + this.load(url, onSuccess, onFailure); + } - const url = `${this._url}/api/options`; + loadOptionsByBuildKey(release, key, onSuccess, onFailure) { + const url = `${this._url}/api/options/${release}/${key}`; this.load(url, onSuccess, onFailure); } loadCommits(release, onSuccess, onFailure) { - const url = `${this._url}/api/releases/${release}/commits`; this.load(url, onSuccess, onFailure); } diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 3b826ca290..e66c6bff32 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -191,8 +191,6 @@ firmware_flasher.initialize = function (callback) { buildOptionsList($('select[name="motorProtocols"]'), data.motorProtocols); } - self.releaseLoader.loadOptions(buildOptions); - let buildTypesToShow; const buildType_e = $('select[name="build_type"]'); function buildBuildTypeOptionsList() { @@ -330,6 +328,12 @@ firmware_flasher.initialize = function (callback) { } self.releaseLoader.loadTarget(target, release, onTargetDetail); + + if (FC.CONFIG.buildKey.length === 32) { + self.releaseLoader.loadOptionsByBuildKey(release, FC.CONFIG.buildKey, buildOptions); + } else { + self.releaseLoader.loadOptions(release, buildOptions); + } } function populateReleases(versions_element, target) { @@ -571,44 +575,12 @@ firmware_flasher.initialize = function (callback) { MSP.send_message(MSPCodes.MSP_BOARD_INFO, false, false, onFinish); } - function presetBuildOptions(data) { - const newOptions = []; - - newOptions.generalOptions = []; - newOptions.motorProtocols = []; - newOptions.radioProtocols = []; - newOptions.telemetryProtocols = []; - - for (const option of data.generalOptions) { - option.default = FC.CONFIG.buildOptions.some(opt => opt.includes(option.value)); - newOptions.generalOptions.push(option); - } - - for (const option of data.motorProtocols) { - option.default = FC.CONFIG.buildOptions.some(opt => opt.includes(option.value)); - newOptions.motorProtocols.push(option); - } - - for (const option of data.radioProtocols) { - option.default = FC.CONFIG.buildOptions.some(opt => opt.includes(option.value)); - newOptions.radioProtocols.push(option); - } - - for (const option of data.telemetryProtocols) { - option.default = FC.CONFIG.buildOptions.some(opt => opt.includes(option.value)); - newOptions.telemetryProtocols.push(option); - } - - buildOptions(newOptions); - } - function getBuildInfo() { if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) && navigator.onLine) { function onLoadCloudBuild(options) { if (FC.CONFIG.buildKey.length === 32) { FC.CONFIG.buildOptions = options.Request.Options; - self.releaseLoader.loadOptions(presetBuildOptions); } getBoardInfo(); } From 35959bbe585f2c32783f69143e3efc38fd99dec1 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 21 Mar 2023 14:42:04 +0100 Subject: [PATCH 053/393] FIX: missing debug modes (#3386) Add missing debug modes --- src/js/tabs/onboard_logging.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index 82e46bdafa..a4e5bc82a7 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -338,6 +338,9 @@ onboard_logging.initialize = function (callback) { {text: "GPS_DOP"}, {text: "FAILSAFE"}, {text: "GYRO_CALIBRATION"}, + {text: "ANGLE_MODE"}, + {text: "ANGLE_TARGET"}, + {text: "CURRENT_ANGLE"}, ]; for (let i = 0; i < FC.PID_ADVANCED_CONFIG.debugModeCount; i++) { From 17c5d5329cfde6bff27c668702237b0dbaa81b41 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 14:57:52 +0100 Subject: [PATCH 054/393] Update translations (#3388) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 44 +++++++++++++++++++++++------- locales/da/messages.json | 54 +++++++++++++++++++++++++++---------- locales/de/messages.json | 15 ----------- locales/es/messages.json | 44 +++++++++++++++++++++++------- locales/eu/messages.json | 12 --------- locales/fr/messages.json | 12 --------- locales/gl/messages.json | 12 --------- locales/it/messages.json | 45 +++++++++++++++++++++++-------- locales/ja/messages.json | 44 +++++++++++++++++++++++------- locales/ko/messages.json | 44 +++++++++++++++++++++++------- locales/nl/messages.json | 12 --------- locales/pl/messages.json | 17 +++++------- locales/pt/messages.json | 44 +++++++++++++++++++++++------- locales/pt_BR/messages.json | 12 --------- locales/ru/messages.json | 12 --------- locales/zh_CN/messages.json | 12 --------- locales/zh_TW/messages.json | 12 --------- 17 files changed, 255 insertions(+), 192 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index fe201ce90e..74a5e7b411 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -784,7 +784,7 @@ "message": "Magnetòmetre" }, "initialSetupInfoHead": { - "message": "Info" + "message": "Informació del sistema" }, "initialSetupBattery": { "message": "Voltatge de bateria:" @@ -807,6 +807,9 @@ "initialSetupRSSI": { "message": "RSSI:" }, + "initialSetupSensorHardware": { + "message": "Sensors:" + }, "initialSetupRSSIValue": { "message": "$1 %" }, @@ -933,6 +936,30 @@ "initialSetupInstrumentsHead": { "message": "Instruments" }, + "initialSetupInfoAPIversion": { + "message": "MSP API:" + }, + "initialSetupInfoBuild": { + "message": "Informació del programari" + }, + "initialSetupInfoBuildDate": { + "message": "Data de compilació:" + }, + "initialSetupInfoBuildInfo": { + "message": "Informació de la compilació:" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "Configuració de la compilació" + }, + "initialSetupInfoBuildInfoLog": { + "message": "Log de la compilació" + }, + "initialSetupInfoBuildOptions": { + "message": "Opcions de compilació:" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "Compilació local - Sense definició" + }, "initialSetupButtonSave": { "message": "Desa" }, @@ -3415,17 +3442,16 @@ "message": "Els LEDs sense nombre d'ordenació no es desaran.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Larson scanner" - }, - "ledStripBlinkTitle": { - "message": "Parpadeja" + "ledStripLarsonOverlay": { + "message": "Escàner Larson", + "description": "Larson effect switch label on LED Strip tab" }, "ledStripBlinkAlwaysOverlay": { "message": "Pampallugues sempre" }, - "ledStripBlinkLandingOverlay": { - "message": "Pampallugues en aterrar" + "ledStripRainbowOverlay": { + "message": "Arc de Sant Martí", + "description": "Rainbow effect switch label on LED Strip tab" }, "ledStripOverlayTitle": { "message": "Overlay" @@ -6280,7 +6306,7 @@ "message": "Velocitat d'enregistrament de Blackbox" }, "onboardLoggingDebugFields": { - "message": "Camps de depuració de Blackbox" + "message": "Dades incloses" }, "onboardLoggingDebugMode": { "message": "Mode de depuració de Blackbox" diff --git a/locales/da/messages.json b/locales/da/messages.json index 230f5ea315..36cfda5843 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -799,6 +799,9 @@ "initialSetupRSSI": { "message": "RSSI:" }, + "initialSetupSensorHardware": { + "message": "Sensorer:" + }, "initialSetupRSSIValue": { "message": "$1 %" }, @@ -925,6 +928,30 @@ "initialSetupInstrumentsHead": { "message": "Instrumenter" }, + "initialSetupInfoAPIversion": { + "message": "MSP API:" + }, + "initialSetupInfoBuild": { + "message": "Firmware info" + }, + "initialSetupInfoBuildDate": { + "message": "Build dato:" + }, + "initialSetupInfoBuildInfo": { + "message": "Build info:" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "Build config" + }, + "initialSetupInfoBuildInfoLog": { + "message": "Build log" + }, + "initialSetupInfoBuildOptions": { + "message": "Build valg:" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "Lokal build - ingen valg" + }, "initialSetupButtonSave": { "message": "Gem" }, @@ -2378,10 +2405,10 @@ "message": "3D-fiksering:" }, "gpsFixTrue": { - "message": "Sand" + "message": "Sand" }, "gpsFixFalse": { - "message": "Falsk" + "message": "Falsk" }, "gpsAltitude": { "message": "Højde:" @@ -3407,17 +3434,16 @@ "message": "LED'er uden ledningsnummer gemmes ikke.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Larson scanner" - }, - "ledStripBlinkTitle": { - "message": "Blink" + "ledStripLarsonOverlay": { + "message": "Larson scanner", + "description": "Larson effect switch label on LED Strip tab" }, "ledStripBlinkAlwaysOverlay": { "message": "Blink altid" }, - "ledStripBlinkLandingOverlay": { - "message": "Blink ved landing" + "ledStripRainbowOverlay": { + "message": "Regnbue", + "description": "Rainbow effect switch label on LED Strip tab" }, "ledStripOverlayTitle": { "message": "Overlag" @@ -5843,7 +5869,7 @@ "description": "Message to show when the configured VTX type does not support factory bands, but one or more of the configured bands are of this type" }, "vtxMessageVerifyTable": { - "message": "Opmærksomhed: Værdierne i VTX-tabellen er blevet indlæst, men endnu ikke gemt i FC. Du skal bekræfte og ændre værdierne for at sikre, at de er gyldige og lovlige i dit land, og tryk derefter på $t(vtxButtonSave.message) knappen for at gemme dem i FC.", + "message": "Opmærksomhed: Værdierne i VTX tabellen er blevet indlæst, men endnu ikke gemt i FC. Du skal bekræfte og ændre værdierne for at sikre, at de er lovlige i dit land, og tryk derefter på $t(vtxButtonSave.message) knappen for at gemme dem i FC.", "description": "Message to show when the VTX Table has been loaded from a external source" }, "vtxFrequencyChannel": { @@ -5999,7 +6025,7 @@ "description": "Help for the number of power levels field of the VTX Table element in the VTX tab" }, "vtxTablePowerLevelsTableHelp": { - "message": "Denne tabel repræsenterer de forskellige værdier af effekt, der kan bruges til VTX. De er opdelt i to:
    - $t(vtxTablePowerLevelsValue.message): hvert effektniveau kræver en værdi, der er defineret af hardwareproducenten. Spørg din producent om den korrekte værdi eller konsulter Betaflight wiki of VTX Tabeller for at få fat i nogle prøver.
    - $t(vtxTablePowerLevelsLabel.message): kan du her sætte den etiket, du ønsker for hver effektniveauværdi. Det kan være tal (25, 200, 600, 1. ), bogstaver (OFF, MIN, MAX) eller en blanding af dem.

    Du skal kun konfigurere de strømniveauer, der er lovlige på dit land.", + "message": "Denne tabel repræsenterer de forskellige værdier af effekt, der kan bruges til VTX. De er opdelt i to:
    - $t(vtxTablePowerLevelsValue.message): hvert effektniveau kræver en værdi, der er defineret af hardwareproducenten. Spørg din producent om den korrekte værdi eller konsulter Betaflight wiki for VTX tabeller for at se nogle eksempler.
    - $t(vtxTablePowerLevelsLabel.message): kan du her sætte den etiket, du ønsker for hver effektniveauværdi. Det kan være tal (25, 200, 600, 1. ), bogstaver (OFF, MIN, MAX) eller en blanding af dem.

    Du skal kun konfigurere de strømniveauer, som er lovlige i dit land.", "description": "Help for the table of power levels (value-label) that appears in the VTX tab" }, "vtxTablePowerLevelsValue": { @@ -6035,7 +6061,7 @@ "description": "Text of one of the titles of the VTX Table element in the VTX tab" }, "vtxTableBandsChannelsTableHelp": { - "message": "Denne tabel repræsenterer alle de frekvenser, der kan bruges til din VTX. Du kan have flere bånd og for hvert bånd skal du konfigurere:
    - $t(vtxTableBandTitleName.message): Navn, som du ønsker at tildele til dette bånd, ligesom BOSCAM_A, FATSHARK eller RACEBAND.
    - $t(vtxTableBandTitleLetter.message): Alias som refererer til båndet.
    - $t(vtxTableBandTitleFactory.message): Dette angiver, om det er et fabrik defineret bånd. Hvis aktiveret sender Betaflight til VTX et bånd og kanalnummer. VTX vil derefter bruge sin indbyggede frekvenstabel og de frekvenser, der er konfigureret her, og kun vise værdien i fx. OSD. Hvis den ikke er aktiveret, sender Betaflight den konfigurede frekvens til VTX.
    - Frekvenser: Frekvenser for dette band.
    Husk at ikke alle frekvenser er lovlige i dit land. Du skal sætte en værdi på nul til hvert frekvensindeks, som du ikke har tilladelse til at anvende i dit land, for at deaktivere.", + "message": "Denne tabel repræsenterer alle de frekvenser, der kan bruges til din VTX. Du kan have flere bånd og for hvert bånd skal du konfigurere:
    - $t(vtxTableBandTitleName.message): Navn, som du ønsker at tildele til dette bånd, ligesom BOSCAM_A, FATSHARK eller RACEBAND.
    - $t(vtxTableBandTitleLetter.message): Alias som refererer til båndet.
    - $t(vtxTableBandTitleFactory.message): Dette angiver, om det er et fabrik defineret bånd. Hvis aktiveret sender Betaflight til VTX et bånd og kanalnummer. VTX vil derefter bruge sin indbyggede frekvenstabel og de frekvenser, der er konfigureret her, og kun vise værdien i fx. OSD. Hvis den ikke er aktiveret, sender Betaflight den konfigurede frekvens til VTX.
    - Frekvenser: Frekvenser for dette band.
    Husk at ikke alle frekvenser er lovlige i dit land. Du skal deaktivere dem ved at sætte værdi til nul for hver frekvensindeks, som ikke er lovlige i dit land.", "description": "Help for the table of bands-channels that appears in the VTX tab" }, "vtxSavedFileOk": { @@ -6272,7 +6298,7 @@ "message": "Blackbox lognings hastighed" }, "onboardLoggingDebugFields": { - "message": "Blackbox debug felter" + "message": "Data medtages" }, "onboardLoggingDebugMode": { "message": "Blackbox logger med debug for ..." @@ -6719,7 +6745,7 @@ "message": "Kun grund komponenter" }, "coreBuildModeDescription": { - "message": "Dette tilvalg danner en relase som indeholder hardware drivere (og nogle begrænsede funktioner). Den kan anvendes til at detektere hardware på FC og er til rådighed for bekvemmelighed. Ikke alle funktioner vil være tilgængelige (kun hardware) hvis du vælger denne indstilling." + "message": "Sætter du dette valg, dannes en relase som indeholder hardware drivere (og nogle begrænsede funktioner). Den kan anvendes til at detektere hardware på FC og er til rådighed for bekvemmelighed. Ikke alle funktioner vil være tilgængelige (kun hardware) hvis du vælger denne indstilling." }, "showDevToolsOnStartup": { "message": "Åbn automatisk DevTools i udviklingstilstand", diff --git a/locales/de/messages.json b/locales/de/messages.json index b4b4c593dd..05c38fc955 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -778,9 +778,6 @@ "initialSetupMagHead": { "message": "Magnetometer" }, - "initialSetupInfoHead": { - "message": "Info" - }, "initialSetupBattery": { "message": "Akku Spannung" }, @@ -3410,18 +3407,9 @@ "message": "LEDs ohne Verkabelungs-Index werden nicht gespeichert.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Larson Scanner" - }, - "ledStripBlinkTitle": { - "message": "Blinken" - }, "ledStripBlinkAlwaysOverlay": { "message": "Immer Blinken" }, - "ledStripBlinkLandingOverlay": { - "message": "Blinken beim Landen" - }, "ledStripOverlayTitle": { "message": "Overlay" }, @@ -6274,9 +6262,6 @@ "onboardLoggingRateOfLogging": { "message": "Blackbox Log-Geschwindigkeit" }, - "onboardLoggingDebugFields": { - "message": "Blackbox Debug-Felder" - }, "onboardLoggingDebugMode": { "message": "Blackbox Debug Modus" }, diff --git a/locales/es/messages.json b/locales/es/messages.json index 70fffae6f5..bbe97b93e0 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -776,7 +776,7 @@ "message": "Magnetómetro" }, "initialSetupInfoHead": { - "message": "Info" + "message": "Información del sistema" }, "initialSetupBattery": { "message": "Voltaje batería:" @@ -799,6 +799,9 @@ "initialSetupRSSI": { "message": "RSSI:" }, + "initialSetupSensorHardware": { + "message": "Sensores:" + }, "initialSetupRSSIValue": { "message": "$1 %" }, @@ -925,6 +928,30 @@ "initialSetupInstrumentsHead": { "message": "Instrumentos" }, + "initialSetupInfoAPIversion": { + "message": "MSP API:" + }, + "initialSetupInfoBuild": { + "message": "Información del firmware" + }, + "initialSetupInfoBuildDate": { + "message": "Fecha de compilación:" + }, + "initialSetupInfoBuildInfo": { + "message": "Información de compilación:" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "Configuración de compilación" + }, + "initialSetupInfoBuildInfoLog": { + "message": "Registro de compilación" + }, + "initialSetupInfoBuildOptions": { + "message": "Opciones de compilación:" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "Compilación local - sin Defines" + }, "initialSetupButtonSave": { "message": "Guardar" }, @@ -3407,17 +3434,16 @@ "message": "No se guardarán los LEDs sin número de orden en el cableado.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Escáner Larson" - }, - "ledStripBlinkTitle": { - "message": "Parpadear" + "ledStripLarsonOverlay": { + "message": "Escáner Larson", + "description": "Larson effect switch label on LED Strip tab" }, "ledStripBlinkAlwaysOverlay": { "message": "Parpadear siempre" }, - "ledStripBlinkLandingOverlay": { - "message": "Parpadear al aterrizar" + "ledStripRainbowOverlay": { + "message": "Arcoiris", + "description": "Rainbow effect switch label on LED Strip tab" }, "ledStripOverlayTitle": { "message": "Superposición" @@ -6272,7 +6298,7 @@ "message": "Frecuencia de muestreo" }, "onboardLoggingDebugFields": { - "message": "Campos de depuración de la Caja Negra" + "message": "Datos incluidos" }, "onboardLoggingDebugMode": { "message": "Modo de depuración de la Caja Negra" diff --git a/locales/eu/messages.json b/locales/eu/messages.json index 9a2a4de4ab..6f932c37a1 100644 --- a/locales/eu/messages.json +++ b/locales/eu/messages.json @@ -663,9 +663,6 @@ "initialSetupMagHead": { "message": "Magnetometroa" }, - "initialSetupInfoHead": { - "message": "Informazioa" - }, "initialSetupBattery": { "message": "Bateriaren tentsioa:" }, @@ -2747,18 +2744,9 @@ "message": "Ez dira kablean zenbakirik gabeko LEDak gordeko.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Larson eskanerra" - }, - "ledStripBlinkTitle": { - "message": "Kliskatu" - }, "ledStripBlinkAlwaysOverlay": { "message": "Beti kliskatu" }, - "ledStripBlinkLandingOverlay": { - "message": "Lurreratzean kliskatu" - }, "ledStripOverlayTitle": { "message": "Gainjarri" }, diff --git a/locales/fr/messages.json b/locales/fr/messages.json index fd06e6714c..f9db6b44a5 100644 --- a/locales/fr/messages.json +++ b/locales/fr/messages.json @@ -762,9 +762,6 @@ "initialSetupMagHead": { "message": "Magnetomètre" }, - "initialSetupInfoHead": { - "message": "Info" - }, "initialSetupBattery": { "message": "Tension de la batterie:" }, @@ -3385,18 +3382,9 @@ "message": "Les LEDs sans numéro ne seront pas sauvegardées.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Scanner Larson" - }, - "ledStripBlinkTitle": { - "message": "Clignotement" - }, "ledStripBlinkAlwaysOverlay": { "message": "clignote en permanence" }, - "ledStripBlinkLandingOverlay": { - "message": "Clignoter lors du décollage" - }, "ledStripOverlayTitle": { "message": "Priorité" }, diff --git a/locales/gl/messages.json b/locales/gl/messages.json index 47d854190a..fe57f10a82 100644 --- a/locales/gl/messages.json +++ b/locales/gl/messages.json @@ -720,9 +720,6 @@ "initialSetupMagHead": { "message": "Magnetómetro" }, - "initialSetupInfoHead": { - "message": "Info" - }, "initialSetupBattery": { "message": "Voltaxe da batería:" }, @@ -3301,18 +3298,9 @@ "message": "Os LED sen número de orde de arame non se gardarán.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Escáner de Larson" - }, - "ledStripBlinkTitle": { - "message": "Parpadeo" - }, "ledStripBlinkAlwaysOverlay": { "message": "Parpadeo continuo" }, - "ledStripBlinkLandingOverlay": { - "message": "Parpadeo ao aterrar" - }, "ledStripOverlayTitle": { "message": "Superposición" }, diff --git a/locales/it/messages.json b/locales/it/messages.json index a5571304cd..98ed926992 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -776,7 +776,7 @@ "message": "Magnetometro" }, "initialSetupInfoHead": { - "message": "Info" + "message": "Informazioni di sistema" }, "initialSetupBattery": { "message": "Tensione Batteria:" @@ -799,6 +799,9 @@ "initialSetupRSSI": { "message": "RSSI:" }, + "initialSetupSensorHardware": { + "message": "Sensori:" + }, "initialSetupRSSIValue": { "message": "$1 %" }, @@ -925,6 +928,30 @@ "initialSetupInstrumentsHead": { "message": "Strumentazione" }, + "initialSetupInfoAPIversion": { + "message": "MSP API:" + }, + "initialSetupInfoBuild": { + "message": "Informazioni firmware" + }, + "initialSetupInfoBuildDate": { + "message": "Data build:" + }, + "initialSetupInfoBuildInfo": { + "message": "Informazioni sulla build:" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "Configurazione Build" + }, + "initialSetupInfoBuildInfoLog": { + "message": "Log Build" + }, + "initialSetupInfoBuildOptions": { + "message": "Opzioni Build:" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "Build locale - Nessuna definizione" + }, "initialSetupButtonSave": { "message": "Salva" }, @@ -3407,17 +3434,16 @@ "message": "LED senza numero di ordinamento non verranno salvati.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Scanner Larson" - }, - "ledStripBlinkTitle": { - "message": "Lampeggia" + "ledStripLarsonOverlay": { + "message": "Scanner Larson", + "description": "Larson effect switch label on LED Strip tab" }, "ledStripBlinkAlwaysOverlay": { "message": "Lampeggia sempre" }, - "ledStripBlinkLandingOverlay": { - "message": "Lampeggia all'atterraggio" + "ledStripRainbowOverlay": { + "message": "Arcobaleno", + "description": "Rainbow effect switch label on LED Strip tab" }, "ledStripOverlayTitle": { "message": "Sovrapposizione" @@ -6271,9 +6297,6 @@ "onboardLoggingRateOfLogging": { "message": "Frequenza di registrazione della BlackBox" }, - "onboardLoggingDebugFields": { - "message": "Campi di debug Blackbox" - }, "onboardLoggingDebugMode": { "message": "Modalità debug Blackbox" }, diff --git a/locales/ja/messages.json b/locales/ja/messages.json index ad18a11e00..eb469650b1 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -776,7 +776,7 @@ "message": "コンパス" }, "initialSetupInfoHead": { - "message": "情報" + "message": "システム情報" }, "initialSetupBattery": { "message": "バッテリー電圧:" @@ -799,6 +799,9 @@ "initialSetupRSSI": { "message": "RSSI:" }, + "initialSetupSensorHardware": { + "message": "センサー:" + }, "initialSetupRSSIValue": { "message": "$1 %" }, @@ -925,6 +928,30 @@ "initialSetupInstrumentsHead": { "message": "計器" }, + "initialSetupInfoAPIversion": { + "message": "MSP API:" + }, + "initialSetupInfoBuild": { + "message": "ファームウェア情報" + }, + "initialSetupInfoBuildDate": { + "message": "ビルド日時:" + }, + "initialSetupInfoBuildInfo": { + "message": "ビルド情報:" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "ビルド設定" + }, + "initialSetupInfoBuildInfoLog": { + "message": "ビルドログ" + }, + "initialSetupInfoBuildOptions": { + "message": "ビルドオプション:" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "ローカルビルド - 定義なし" + }, "initialSetupButtonSave": { "message": "保存" }, @@ -3407,17 +3434,16 @@ "message": "ワイヤーオーダー番号のないLEDは保存されません。", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "ラーソンスキャナー" - }, - "ledStripBlinkTitle": { - "message": "点滅" + "ledStripLarsonOverlay": { + "message": "ラーソンスキャナー", + "description": "Larson effect switch label on LED Strip tab" }, "ledStripBlinkAlwaysOverlay": { "message": "常時点滅" }, - "ledStripBlinkLandingOverlay": { - "message": "着陸時点滅" + "ledStripRainbowOverlay": { + "message": "レインボー", + "description": "Rainbow effect switch label on LED Strip tab" }, "ledStripOverlayTitle": { "message": "オーバーレイ" @@ -6272,7 +6298,7 @@ "message": "Blackboxログレート" }, "onboardLoggingDebugFields": { - "message": "Blackboxデバッグフィールド" + "message": "データ含" }, "onboardLoggingDebugMode": { "message": "Blackboxデバッグモード" diff --git a/locales/ko/messages.json b/locales/ko/messages.json index 28294f841a..396f614f9e 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -776,7 +776,7 @@ "message": "자력계" }, "initialSetupInfoHead": { - "message": "정보" + "message": "시스템 정보" }, "initialSetupBattery": { "message": "배터리 전압:" @@ -799,6 +799,9 @@ "initialSetupRSSI": { "message": "RSSI:" }, + "initialSetupSensorHardware": { + "message": "센서:" + }, "initialSetupRSSIValue": { "message": "$1 %" }, @@ -925,6 +928,30 @@ "initialSetupInstrumentsHead": { "message": "계기" }, + "initialSetupInfoAPIversion": { + "message": "MSP API:" + }, + "initialSetupInfoBuild": { + "message": "펌웨어 정보" + }, + "initialSetupInfoBuildDate": { + "message": "빌드 날짜:" + }, + "initialSetupInfoBuildInfo": { + "message": "빌드 정보:" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "빌드 환경설정" + }, + "initialSetupInfoBuildInfoLog": { + "message": "빌드 로그" + }, + "initialSetupInfoBuildOptions": { + "message": "빌드 옵션:" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "로컬 빌드 - 정의값 없음" + }, "initialSetupButtonSave": { "message": "저장" }, @@ -3407,17 +3434,16 @@ "message": "배선 순서 번호가 없는 LED는 저장되지 않습니다.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "라슨 스캐너" - }, - "ledStripBlinkTitle": { - "message": "깜빡이기" + "ledStripLarsonOverlay": { + "message": "라슨 스캐너", + "description": "Larson effect switch label on LED Strip tab" }, "ledStripBlinkAlwaysOverlay": { "message": "항상 깜빡이기" }, - "ledStripBlinkLandingOverlay": { - "message": "착륙시 깜빡이기" + "ledStripRainbowOverlay": { + "message": "무지개", + "description": "Rainbow effect switch label on LED Strip tab" }, "ledStripOverlayTitle": { "message": "오버레이" @@ -6272,7 +6298,7 @@ "message": "블랙박스 로그기록 속도" }, "onboardLoggingDebugFields": { - "message": "블랙박스 디버그 필드" + "message": "데이터 포함" }, "onboardLoggingDebugMode": { "message": "블랙박스 디버그 모드" diff --git a/locales/nl/messages.json b/locales/nl/messages.json index 01bfb8a822..1ecfb9537e 100644 --- a/locales/nl/messages.json +++ b/locales/nl/messages.json @@ -698,9 +698,6 @@ "initialSetupMagHead": { "message": "Magnetometer" }, - "initialSetupInfoHead": { - "message": "Info" - }, "initialSetupBattery": { "message": "Accuspanning:" }, @@ -2936,18 +2933,9 @@ "message": "LED's zonder volgorde nummer worden niet opgeslagen.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Larson scanner" - }, - "ledStripBlinkTitle": { - "message": "Knipperen" - }, "ledStripBlinkAlwaysOverlay": { "message": "Altijd knipperen" }, - "ledStripBlinkLandingOverlay": { - "message": "Knipperen bij landen" - }, "ledStripOverlayTitle": { "message": "Overlay" }, diff --git a/locales/pl/messages.json b/locales/pl/messages.json index 81ea3314e9..b2b10f560e 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -769,9 +769,6 @@ "initialSetupMagHead": { "message": "Magnetometr" }, - "initialSetupInfoHead": { - "message": "Info" - }, "initialSetupBattery": { "message": "Napięcie baterii:" }, @@ -3398,17 +3395,12 @@ "message": "Diody LED bez numeru porządkowego nie zostaną zapisane.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Skaner Larsona" - }, - "ledStripBlinkTitle": { - "message": "Miganie" - }, "ledStripBlinkAlwaysOverlay": { "message": "Migaj zawsze" }, - "ledStripBlinkLandingOverlay": { - "message": "Miganie przy lądowaniu" + "ledStripRainbowOverlay": { + "message": "Tęczowy", + "description": "Rainbow effect switch label on LED Strip tab" }, "ledStripOverlayTitle": { "message": "Nakładka" @@ -6262,6 +6254,9 @@ "onboardLoggingRateOfLogging": { "message": "Częstotliwość rejestrowania" }, + "onboardLoggingDebugFields": { + "message": "Dane zawarte" + }, "onboardLoggingDebugMode": { "message": "Typ rejestrowanego parametru lotu" }, diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 225b8caa6e..b5285d91c8 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -776,7 +776,7 @@ "message": "Magnetómetro" }, "initialSetupInfoHead": { - "message": "Info" + "message": "Info. do Sistema" }, "initialSetupBattery": { "message": "Voltagem da bateria:" @@ -799,6 +799,9 @@ "initialSetupRSSI": { "message": "RSSI:" }, + "initialSetupSensorHardware": { + "message": "Sensores:" + }, "initialSetupRSSIValue": { "message": "$1 %" }, @@ -925,6 +928,30 @@ "initialSetupInstrumentsHead": { "message": "Instrumentos" }, + "initialSetupInfoAPIversion": { + "message": "MSP API:" + }, + "initialSetupInfoBuild": { + "message": "Info. de Firmware" + }, + "initialSetupInfoBuildDate": { + "message": "Data da Compilação:" + }, + "initialSetupInfoBuildInfo": { + "message": "Info. da Compilação:" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "Config. da Compilação" + }, + "initialSetupInfoBuildInfoLog": { + "message": "Log da Compilação" + }, + "initialSetupInfoBuildOptions": { + "message": "Opções de Compilação:" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "Compilação Local - sem Defines" + }, "initialSetupButtonSave": { "message": "Gravar" }, @@ -3407,17 +3434,16 @@ "message": "LEDs configurados em posições sem número não serão gravados.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Scanner Larson" - }, - "ledStripBlinkTitle": { - "message": "Piscar" + "ledStripLarsonOverlay": { + "message": "Scanner Larson", + "description": "Larson effect switch label on LED Strip tab" }, "ledStripBlinkAlwaysOverlay": { "message": "Piscar sempre" }, - "ledStripBlinkLandingOverlay": { - "message": "Piscar ao aterrar" + "ledStripRainbowOverlay": { + "message": "Arco-íris", + "description": "Rainbow effect switch label on LED Strip tab" }, "ledStripOverlayTitle": { "message": "Sobreposição" @@ -6272,7 +6298,7 @@ "message": "Frequência de log do Blackbox" }, "onboardLoggingDebugFields": { - "message": "Campos de debug do Blackbox" + "message": "Dados incluídos" }, "onboardLoggingDebugMode": { "message": "Modo de debug do Blackbox" diff --git a/locales/pt_BR/messages.json b/locales/pt_BR/messages.json index 46ac6773b4..e68cf8fcde 100644 --- a/locales/pt_BR/messages.json +++ b/locales/pt_BR/messages.json @@ -750,9 +750,6 @@ "initialSetupMagHead": { "message": "Magnetômetro" }, - "initialSetupInfoHead": { - "message": "Informações" - }, "initialSetupBattery": { "message": "Voltagem da bateria:" }, @@ -3361,18 +3358,9 @@ "message": "LEDs configurados em posições sem número não serão salvos.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Scanner Larson" - }, - "ledStripBlinkTitle": { - "message": "Piscar" - }, "ledStripBlinkAlwaysOverlay": { "message": "Sempre Piscar" }, - "ledStripBlinkLandingOverlay": { - "message": "Piscar ao pousar" - }, "ledStripOverlayTitle": { "message": "Sobreposição" }, diff --git a/locales/ru/messages.json b/locales/ru/messages.json index cb9a79723c..3070e43261 100644 --- a/locales/ru/messages.json +++ b/locales/ru/messages.json @@ -699,9 +699,6 @@ "initialSetupMagHead": { "message": "Магнитометр" }, - "initialSetupInfoHead": { - "message": "Показания" - }, "initialSetupBattery": { "message": "Напряжение батареи:" }, @@ -2987,18 +2984,9 @@ "message": "LEDs без обозначения номера цепи не будут сохранены.", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "Ларсон сканер" - }, - "ledStripBlinkTitle": { - "message": "Мигать" - }, "ledStripBlinkAlwaysOverlay": { "message": "Мигания всегда" }, - "ledStripBlinkLandingOverlay": { - "message": "Мигать при посадке" - }, "ledStripOverlayTitle": { "message": "Оверлей" }, diff --git a/locales/zh_CN/messages.json b/locales/zh_CN/messages.json index 0f5b6dad22..1eb1f68e1d 100644 --- a/locales/zh_CN/messages.json +++ b/locales/zh_CN/messages.json @@ -708,9 +708,6 @@ "initialSetupMagHead": { "message": "磁力计" }, - "initialSetupInfoHead": { - "message": "信息" - }, "initialSetupBattery": { "message": "电池电压:" }, @@ -3225,18 +3222,9 @@ "message": "没有布线序号的 LED 不会被保存。", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "左右扫描" - }, - "ledStripBlinkTitle": { - "message": "闪烁" - }, "ledStripBlinkAlwaysOverlay": { "message": "持续闪烁" }, - "ledStripBlinkLandingOverlay": { - "message": "着陆时闪烁" - }, "ledStripOverlayTitle": { "message": "叠加功能" }, diff --git a/locales/zh_TW/messages.json b/locales/zh_TW/messages.json index 808faf4e44..03bacbde50 100644 --- a/locales/zh_TW/messages.json +++ b/locales/zh_TW/messages.json @@ -645,9 +645,6 @@ "initialSetupMagHead": { "message": "磁力計" }, - "initialSetupInfoHead": { - "message": "訊息" - }, "initialSetupBattery": { "message": "電池電壓:" }, @@ -2684,18 +2681,9 @@ "message": "沒有佈線序號的 LED 不會被保存。", "description": "Message in the wiring modes in Led Strip" }, - "ledStripVtxFunction": { - "message": "左右掃描" - }, - "ledStripBlinkTitle": { - "message": "閃爍" - }, "ledStripBlinkAlwaysOverlay": { "message": "持續閃爍" }, - "ledStripBlinkLandingOverlay": { - "message": "著陸時閃爍" - }, "ledStripOverlayTitle": { "message": "疊加" }, From f56ea60d2d75a1783f59d0bd81fbad2bb9af25fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Semr=C3=A1d?= <76877124+VitroidFPV@users.noreply.github.com> Date: Wed, 22 Mar 2023 22:29:11 +0100 Subject: [PATCH 055/393] Fix toggle switch margin in LED tab (#3391) Fix toggle switch margin --- src/css/tabs/led_strip.less | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/css/tabs/led_strip.less b/src/css/tabs/led_strip.less index 7f253b1d16..567f3922fe 100644 --- a/src/css/tabs/led_strip.less +++ b/src/css/tabs/led_strip.less @@ -499,6 +499,9 @@ z-index: 100; border: 1px dotted white; } + .modifiers .switchery, .overlays .switchery { + margin-top: 2px !important; + } } .gridWire { .wire { From e7b057ef98742eab82d0e35ccd76e225024546b2 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Sat, 25 Mar 2023 00:24:52 +0100 Subject: [PATCH 056/393] FIX: feature ESC_SENSOR (#3382) Fix features --- src/js/Features.js | 32 ++++++++++++++++---------------- src/js/tabs/motors.js | 6 +++--- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/js/Features.js b/src/js/Features.js index 00acb23f0f..4a120d8eba 100644 --- a/src/js/Features.js +++ b/src/js/Features.js @@ -109,36 +109,36 @@ Features.prototype.generateElements = function (featuresElements) { const listElements = []; - for (let i = 0; i < self._features.length; i++) { + for (const feature of self._features) { let feature_tip_html = ''; - const rawFeatureName = self._features[i].name; - const featureBit = self._features[i].bit; + const featureName = feature.name; + const featureBit = feature.bit; - if (self._features[i].haveTip) { - feature_tip_html = `
    `; + if (feature.haveTip) { + feature_tip_html = `
    `; } const newElements = []; - if (self._features[i].mode === 'select') { + if (feature.mode === 'select') { if (listElements.length === 0) { newElements.push($('
    From 3fe94b96a7e95800e361ce81a0fbfb7e3c80a35e Mon Sep 17 00:00:00 2001 From: ASDosjani <62965528+ASDosjani@users.noreply.github.com> Date: Thu, 30 Mar 2023 15:15:24 +0200 Subject: [PATCH 058/393] Fix max length of craft name and pilot name (#3396) fix maxlength --- src/tabs/configuration.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tabs/configuration.html b/src/tabs/configuration.html index 1591e71415..9078dc18e7 100644 --- a/src/tabs/configuration.html +++ b/src/tabs/configuration.html @@ -68,13 +68,13 @@
    -
    -
    From c5af8b1a25c09f92841a93650d1ee9890a967ea2 Mon Sep 17 00:00:00 2001 From: ASDosjani <62965528+ASDosjani@users.noreply.github.com> Date: Sat, 1 Apr 2023 21:04:42 +0200 Subject: [PATCH 059/393] Update android build info in README.md (#3398) --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3e482ece1d..e88131167b 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,13 @@ If you prefer to have the application in English or any other language, you can 1. Install node.js (refer to [.nvmrc](./.nvmrc) for required version) 2. Install yarn: `npm install yarn -g` -3. (For Android platform only) Install Java JDK 8, Gradle and Android Studio (Android SDK at least level 19) +3. (For Android platform only) Install Java JDK 8, Gradle and Android Studio (Android SDK at least level 19). On Windows you have to extract Gradle binaries to C:\Gradle and set up some environmental variables. + +| Variable Name | Value | +|---|---| +| ANDROID_HOME | %LOCALAPPDATA%\Android\sdk | +| ANDROID_SDK_ROOT | %LOCALAPPDATA%\Android\sdk | +| Path | %ANDROID_HOME%\tools
    %ANDROID_HOME%\platform-tools
    C:\Gradle\bin | 4. Change to project folder and run `yarn install`. 5. Run `yarn start`. From 08100bafa80278b7a9c278e29b7eae31298a6489 Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Tue, 4 Apr 2023 16:04:48 +0200 Subject: [PATCH 060/393] More info on setup tab 2 (#3385) * add help and minor layout changes * add help and minor layout changes * add help and minor layout changes * Fix layout * add disable / enable logic * small changes --- locales/en/messages.json | 28 +++++++++++++++++--- src/css/main.less | 56 ++++++++++++++++++++++++++++++++++------ src/js/tabs/setup.js | 46 +++++++++++++++++++-------------- src/tabs/setup.html | 4 +++ 4 files changed, 103 insertions(+), 31 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 6680cd1e5b..1e141026ef 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -867,6 +867,10 @@ "initialSetupInfoHead": { "message": "System info" }, + "initialSetupInfoHeadHelp": { + "message": "Shows FC flags for disarming, Battery information, RSSI level and Sensors hardware", + "description": "Message that pops up to describe the System info section" + }, "initialSetupBattery": { "message": "Battery voltage:" }, @@ -1014,32 +1018,50 @@ "initialSetupGPSHead": { "message": "GPS" }, + "initialSetupGPSHeadHelp": { + "message": "Shows GPS info, if proper activated in Ports tab, Configuration Tab and GPS tab", + "description": "Message that pops up to describe the GPS section" + }, "initialSetupInstrumentsHead": { "message": "Instruments" }, + "initialSetupInstrumentsHeadHelp": { + "message": "Shows Heading, Pitch and Roll in instruments", + "description": "Message that pops up to describe the Instruments section" + }, "initialSetupInfoAPIversion": { "message": "MSP API:" }, "initialSetupInfoBuild": { "message": "Firmware info" }, + "initialSetupInfoBuildHelp": { + "message": "Shows information regarding the build of firmware. The Build Config and Bulid Log links to the cloud information found by the Build key", + "description": "Message that pops up to describe the Build / Firmware section" + }, "initialSetupInfoBuildDate": { "message": "Build date:" }, "initialSetupInfoBuildInfo": { "message": "Build info:" }, + "initialSetupInfoBuildInfoKey": { + "message": "Build key" + }, "initialSetupInfoBuildInfoConfig": { - "message": "Build config" + "message": "Config" }, "initialSetupInfoBuildInfoLog": { - "message": "Build log" + "message": "Log" }, "initialSetupInfoBuildOptions": { "message": "Build Options:" }, + "initialSetupInfoBuildOptionsList": { + "message": "Defines used" + }, "initialSetupInfoBuildOptionsEmpty": { - "message": "Local Build - no Defines" + "message": "Local Build - no Defines used" }, "initialSetupButtonSave": { "message": "Save" diff --git a/src/css/main.less b/src/css/main.less index 723948c744..2f8a0a5ee0 100644 --- a/src/css/main.less +++ b/src/css/main.less @@ -628,7 +628,7 @@ input[type="number"] { transition: none; background-image: url(../images/icons/cf_icon_link_grey.svg); } -.armedicon.active { +.armedicon.active {user-select background-image: url(../images/icons/cf_icon_armed_active.svg); } .failsafeicon.active { @@ -1498,7 +1498,6 @@ dialog { color: var(--pushedButton-fontColor); border-radius: 3px; } - .danger-button { -webkit-user-drag: none; margin-top: 8px; @@ -1526,7 +1525,6 @@ dialog { color: #fff; border-radius: 3px; } - .small { width: auto; position: relative; @@ -1731,11 +1729,53 @@ dialog { color: #fff; font-size: 10px; } -.buildKeyInfoClass { - background-color: #ffcc3f; - padding: 2px 5px; - border-radius: 3px; - color: #272727; +.buildInfoBtn { + position: relative; + margin-bottom: 0px; + margin-top: 3px; + margin: 4px; + float: right; + a { + padding: 2px 5px 2px 5px; + text-align: center; + background-color: var(--accent); + border-radius: 4px; + border: 1px solid #dba718; + color: #000; + font-weight: 600; + font-size: 10px; + line-height: 11px; + display: block; + transition: all ease 0.2s; + text-decoration: none; + cursor: pointer; + &:hover { + background-color: var(--hoverButton-background); + color: #000; + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + transition: all ease 0.2s; + text-decoration: none; + } + &:active { + background-color: var(--hoverButton-background); + transition: all ease 0.0s; + box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); + } + } + a.disabled { + background-color: #f1f1f1; + border: 1px solid var(--subtleAccent); + color: #ccc; + } +} +.buildInfoClassOptions { + margin-bottom: 0px; + margin-top: 3px; + float: right; + background-color: grey; + padding: 2px 5px 2px 5px; + border-radius: 4px; + color: #fff; font-size: 10px; } .cf_tooltiptext { diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index f0855b1b3b..55beb615ce 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -338,28 +338,34 @@ setup.initialize = function (callback) { }; const showFirmwareInfo = function() { - MSP.send_message(MSPCodes.MSP_STATUS_EX, false, false, function() { - // Firmware info - msp_api_e.text([FC.CONFIG.apiVersion]); - build_date_e.text([FC.CONFIG.buildInfo]); - if(FC.CONFIG.buildInfo.length > 0) { - const buildRoot = `https://build.betaflight.com/api/builds/${FC.CONFIG.buildKey}`; - const buildConfig = ` - ${i18n.getMessage('initialSetupInfoBuildInfoConfig')}`; - const buildLog = ` - ${i18n.getMessage('initialSetupInfoBuildInfoLog')}`; - build_info_e.html(`${buildConfig}   ${buildLog}`); - } + // Firmware info + msp_api_e.text([FC.CONFIG.apiVersion]); + build_date_e.text([FC.CONFIG.buildInfo]); + + if (FC.CONFIG.buildKey.length > 1) { + const buildRoot = `https://build.betaflight.com/api/builds/${FC.CONFIG.buildKey}`; + const buildConfig = ` + ${i18n.getMessage('initialSetupInfoBuildInfoConfig')}`; + const buildLog = ` + ${i18n.getMessage('initialSetupInfoBuildInfoLog')}`; + build_info_e.html(`${buildConfig}     ${buildLog}`); + $('.build-info a').removeClass('disabled'); + } else { + $('.build-info a').addClass('disabled'); + } - if(FC.CONFIG.buildOptions.length > 0) { - build_opt_e.text = ""; - for (const buildOption of FC.CONFIG.buildOptions) { - build_opt_e.append(buildOption, ' '); - } - } else { - build_opt_e.text(i18n.getMessage('initialSetupInfoBuildOptionsEmpty')); + if (FC.CONFIG.buildOptions.length > 0) { + let buildOptions = ""; + build_opt_e.text = ""; + for (const buildOption of FC.CONFIG.buildOptions) { + buildOptions = `${buildOptions}   ${buildOption}`; } - }); + build_opt_e.html(` + ${i18n.getMessage('initialSetupInfoBuildOptionsList')}`); + } else { + build_opt_e.html(i18n.getMessage('initialSetupInfoBuildOptionsEmpty')); + } }; prepareDisarmFlags(); diff --git a/src/tabs/setup.html b/src/tabs/setup.html index 5c41ffd58a..00aa99d8f3 100644 --- a/src/tabs/setup.html +++ b/src/tabs/setup.html @@ -91,6 +91,7 @@
    +
    @@ -113,6 +114,7 @@
    +
    @@ -140,6 +142,7 @@
    +
    @@ -175,6 +178,7 @@
    +
    From e87ffaa3904cdde2e4a0db6088a05678b562b1cb Mon Sep 17 00:00:00 2001 From: ASDosjani <62965528+ASDosjani@users.noreply.github.com> Date: Tue, 4 Apr 2023 16:46:53 +0200 Subject: [PATCH 061/393] Cleanup + led overlay expansion (#3390) * Cleanup + led overlay expansion * Delete unused class and design fixes * more spacing * Revert #3391 --- src/css/tabs/led_strip.less | 13 ++++++++++--- src/js/msp/MSPHelper.js | 19 ++++++++----------- src/js/tabs/led_strip.js | 13 +++---------- src/tabs/led_strip.html | 18 +++++++++--------- 4 files changed, 30 insertions(+), 33 deletions(-) diff --git a/src/css/tabs/led_strip.less b/src/css/tabs/led_strip.less index 567f3922fe..d25c61df87 100644 --- a/src/css/tabs/led_strip.less +++ b/src/css/tabs/led_strip.less @@ -229,11 +229,21 @@ color: var(--defaultText); } } + .header { + color: #c4c4c4; + font-size: 13px; + font-weight: 600; + } .overlays { display: inline-block; + margin-top: 5px; } .modifiers { display: inline-block; + margin-top: 5px; + .rainbowOverlay { + margin-top: 1px; + } .auxSelect { border: 1px solid var(--subtleAccent); border-radius: 3px; @@ -499,9 +509,6 @@ z-index: 100; border: 1px dotted white; } - .modifiers .switchery, .overlays .switchery { - margin-top: 2px !important; - } } .gridWire { .wire { diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 5e70035dce..cdc0371a26 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -1170,9 +1170,9 @@ MspHelper.prototype.process_data = function(dataHandler) { let ledCount = (data.byteLength - 2) / 4; // The 32 bit config of each LED contains these in LSB: - // +--------------------+--------------------+------------------+------------------+----------------------+-----------+-----------+ - // | Parameters - 3 bit | Directions - 6 bit | Color ID - 4 bit | Overlays - 7 bit | Function ID - 4 bit | X - 4 bit | Y - 4 bit | - // +--------------------+--------------------+------------------+------------------+----------------------+-----------+-----------+ + // +----------------------------------------------------------------------------------------------------------+ + // | Directions - 6 bit | Color ID - 4 bit | Overlays - 10 bit | Function ID - 4 bit | X - 4 bit | Y - 4 bit | + // +----------------------------------------------------------------------------------------------------------+ // According to betaflight/src/main/msp/msp.c // API 1.41 - add indicator for advanced profile support and the current profile selection // 0 = basic ledstrip available @@ -1196,14 +1196,14 @@ MspHelper.prototype.process_data = function(dataHandler) { } } - const overlayMask = (mask >> 12) & 0x7F; + const overlayMask = (mask >> 12) & 0x3FF; for (let overlayLetterIndex = 0; overlayLetterIndex < ledOverlayLetters.length; overlayLetterIndex++) { if (bit_check(overlayMask, overlayLetterIndex)) { functions.push(ledOverlayLetters[overlayLetterIndex]); } } - const directionMask = (mask >> 23) & 0x3F; + const directionMask = (mask >> 26) & 0x3F; const directions = []; for (let directionLetterIndex = 0; directionLetterIndex < ledDirectionLetters.length; directionLetterIndex++) { if (bit_check(directionMask, directionLetterIndex)) { @@ -1214,9 +1214,8 @@ MspHelper.prototype.process_data = function(dataHandler) { y: (mask) & 0xF, x: (mask >> 4) & 0xF, functions: functions, - color: (mask >> 19) & 0xF, + color: (mask >> 22) & 0xF, directions: directions, - parameters: (mask >>> 29) & 0x7, }; FC.LED_STRIP.push(led); @@ -2552,17 +2551,15 @@ MspHelper.prototype.sendLedStripConfig = function(onCompleteCallback) { } } - mask |= (led.color << 19); + mask |= (led.color << 22); for (let directionLetterIndex = 0; directionLetterIndex < led.directions.length; directionLetterIndex++) { const bitIndex = ledDirectionLetters.indexOf(led.directions[directionLetterIndex]); if (bitIndex >= 0) { - mask |= bit_set(mask, bitIndex + 23); + mask |= bit_set(mask, bitIndex + 26); } } - mask |= (0 << 29); // parameters - buffer.push32(mask); } else { diff --git a/src/js/tabs/led_strip.js b/src/js/tabs/led_strip.js index 7c2008e38a..3f2507e76a 100644 --- a/src/js/tabs/led_strip.js +++ b/src/js/tabs/led_strip.js @@ -777,13 +777,6 @@ led_strip.initialize = function (callback, scrollPosition) { const activeFunction = $('select.functionSelect').val(); $('select.functionSelect').addClass(activeFunction); - // >= 20 - // Show GPS (Func) - // Hide RSSI (O/L), Blink (Func) - // Show Battery, RSSI (Func), Larson (O/L), Blink (O/L), Landing (O/L) - $(".extra_functions20").show(); - $(".mode_colors").show(); - // set color modifiers (check-boxes) visibility $('.overlays').toggle(areOverlaysActive(activeFunction)); @@ -795,13 +788,13 @@ led_strip.initialize = function (callback, scrollPosition) { $('.vtxOverlay').toggle(isVtxActive(activeFunction)); - $('.mode_colors').hide(); - // set mode colors visibility - if (activeFunction === "function-f") { $('.mode_colors').show(); } + else { + $('.mode_colors').hide(); + } // set special colors visibility $('.special_colors').show(); diff --git a/src/tabs/led_strip.html b/src/tabs/led_strip.html index 4a5e0011eb..9d8d174871 100644 --- a/src/tabs/led_strip.html +++ b/src/tabs/led_strip.html @@ -38,22 +38,22 @@
    - +
    - +
    -
    +
    -
    +
    -
    +
    - +
    From ab6d58f4be63a33b57d15d478e189ca393815e0b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 4 Apr 2023 17:06:57 +0200 Subject: [PATCH 062/393] Update translations (#3395) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 3 + locales/da/messages.json | 33 +++++---- locales/de/messages.json | 44 ++++++++++++ locales/gl/messages.json | 146 +++++++++++++++++++++++++++++++++++++++ locales/it/messages.json | 6 ++ locales/ja/messages.json | 3 + locales/ko/messages.json | 3 + locales/pl/messages.json | 3 + locales/pt/messages.json | 3 + 9 files changed, 229 insertions(+), 15 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index 74a5e7b411..9a1a40d1c5 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -2818,6 +2818,9 @@ "loggingLogSize": { "message": "Mida del registre:" }, + "loggingLogName": { + "message": "Nom de registre:" + }, "loggingButtonLogFile": { "message": "Escull l'arxiu de log" }, diff --git a/locales/da/messages.json b/locales/da/messages.json index 36cfda5843..48dd11be42 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -2810,6 +2810,9 @@ "loggingLogSize": { "message": "Logstørrelse:" }, + "loggingLogName": { + "message": "Log navn:" + }, "loggingButtonLogFile": { "message": "Vælg logfil" }, @@ -4672,7 +4675,7 @@ "description": "Option for the units system used in the OSD" }, "osdSetupTimersTitle": { - "message": "Tidstagning" + "message": "Tidtagning" }, "osdSetupAlarmsTitle": { "message": "Alarmer" @@ -5141,7 +5144,7 @@ "description": "One of the variants for the Main Battery Usage element of the OSD" }, "osdTextElementArmedTime": { - "message": "Tidstagning: aktiveret tid", + "message": "Tidtagning: aktiveret tid", "description": "One of the elements of the OSD" }, "osdDescElementArmedTime": { @@ -5204,7 +5207,7 @@ "message": "RPM rapporteret af ESC telemetri" }, "osdTextElementRemaningTimeEstimate": { - "message": "Tidstagning: estimeret resterende flyvetid", + "message": "Tidtagning: estimeret resterende flyvetid", "description": "One of the elements of the OSD" }, "osdDescElementRemaningTimeEstimate": { @@ -5225,18 +5228,18 @@ "message": "Aktuelt aktivt justeringsområde indstilling og værdi" }, "osdTextElementTimer1": { - "message": "Tidstagning 1", + "message": "Tidtagning 1", "description": "One of the elements of the OSD" }, "osdDescElementTimer1": { - "message": "Viser værdien af tidstagning 1" + "message": "Viser værdien af tidtagning 1" }, "osdTextElementTimer2": { - "message": "Tidstagning 2", + "message": "Tidtagning 2", "description": "One of the elements of the OSD" }, "osdDescElementTimer2": { - "message": "Viser værdien af tidstagning 2" + "message": "Viser værdien af tidtagning 2" }, "osdTextElementCoreTemperature": { "message": "CPU temperatur", @@ -5512,18 +5515,18 @@ "message": "Lognummer for denne flyrejse Blackbox-log" }, "osdTextStatTimer1": { - "message": "Tidstagning 1", + "message": "Tidtagning 1", "description": "One of the statistics that can be shown at the end of the flight in the OSD" }, "osdDescStatTimer1": { - "message": "Værdi af tidstagning 1 på afkoblingstidspunkt" + "message": "Værdi af tidtagning 1 på afkoblingstidspunkt" }, "osdTextStatTimer2": { - "message": "Tidstagning 2", + "message": "Tidtagning 2", "description": "One of the statistics that can be shown at the end of the flight in the OSD" }, "osdDescStatTimer2": { - "message": "Værdi af tidstagning 2 på afkoblingstidspunkt" + "message": "Værdi af tidtagning 2 på afkoblingstidspunkt" }, "osdTextStatRtcDateTime": { "message": "RTC dato og tidspunkt", @@ -5636,7 +5639,7 @@ "message": "Kilde:" }, "osdTimerSourceTooltip": { - "message": "Vælg den faktor, som styrer tidstagningens varighed/hændelse" + "message": "Vælg den faktor, som styrer tidtagningens varighed/hændelse" }, "osdTimerSourceOptionOnTime": { "message": "Start ved støm til fartøj", @@ -5658,7 +5661,7 @@ "message": "Præcision:" }, "osdTimerPrecisionTooltip": { - "message": "Vælg præcision til præsentation af tidstagning" + "message": "Vælg præcision til præsentation af tidtagning" }, "osdTimerPrecisionOptionSecond": { "message": "Sekunder", @@ -5832,7 +5835,7 @@ "message": "Sætter enhed, som bruges til numeriske udlæsninger." }, "osdSectionHelpTimers": { - "message": "Konfigurer visninger styret med tidstagning" + "message": "Konfigurer visninger styret med tidtagning" }, "osdSectionHelpAlarms": { "message": "Indstil grænser for alarmtilstande til OSD elementer." @@ -6298,7 +6301,7 @@ "message": "Blackbox lognings hastighed" }, "onboardLoggingDebugFields": { - "message": "Data medtages" + "message": "Data som logges" }, "onboardLoggingDebugMode": { "message": "Blackbox logger med debug for ..." diff --git a/locales/de/messages.json b/locales/de/messages.json index 05c38fc955..fe6d00f106 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -778,6 +778,9 @@ "initialSetupMagHead": { "message": "Magnetometer" }, + "initialSetupInfoHead": { + "message": "Systeminfo" + }, "initialSetupBattery": { "message": "Akku Spannung" }, @@ -799,6 +802,9 @@ "initialSetupRSSI": { "message": "RSSI:" }, + "initialSetupSensorHardware": { + "message": "Sensoren:" + }, "initialSetupRSSIValue": { "message": "$1 %" }, @@ -925,6 +931,30 @@ "initialSetupInstrumentsHead": { "message": "Instrumente" }, + "initialSetupInfoAPIversion": { + "message": "MSP API:" + }, + "initialSetupInfoBuild": { + "message": "Firmware-Info" + }, + "initialSetupInfoBuildDate": { + "message": "Erstellungsdatum (build date):" + }, + "initialSetupInfoBuildInfo": { + "message": "Erstellungsinfo (build info):" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "Erstellungskonfiguration (build config)" + }, + "initialSetupInfoBuildInfoLog": { + "message": "Erstellungslog (build log)" + }, + "initialSetupInfoBuildOptions": { + "message": "Erstellungsoptionen (build options):" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "Lokaler Build - keine Definitionen" + }, "initialSetupButtonSave": { "message": "Speichern" }, @@ -2783,6 +2813,9 @@ "loggingLogSize": { "message": "Log Größe:" }, + "loggingLogName": { + "message": "Log-Name:" + }, "loggingButtonLogFile": { "message": "Wähle Log Datei" }, @@ -3407,9 +3440,17 @@ "message": "LEDs ohne Verkabelungs-Index werden nicht gespeichert.", "description": "Message in the wiring modes in Led Strip" }, + "ledStripLarsonOverlay": { + "message": "Larson Scanner", + "description": "Larson effect switch label on LED Strip tab" + }, "ledStripBlinkAlwaysOverlay": { "message": "Immer Blinken" }, + "ledStripRainbowOverlay": { + "message": "Regenbogen", + "description": "Rainbow effect switch label on LED Strip tab" + }, "ledStripOverlayTitle": { "message": "Overlay" }, @@ -6262,6 +6303,9 @@ "onboardLoggingRateOfLogging": { "message": "Blackbox Log-Geschwindigkeit" }, + "onboardLoggingDebugFields": { + "message": "Enthaltene Daten" + }, "onboardLoggingDebugMode": { "message": "Blackbox Debug Modus" }, diff --git a/locales/gl/messages.json b/locales/gl/messages.json index fe57f10a82..cff413fb1e 100644 --- a/locales/gl/messages.json +++ b/locales/gl/messages.json @@ -77,6 +77,9 @@ "cancel": { "message": "Cancelar" }, + "submit": { + "message": "Enviar" + }, "autoConnectEnabled": { "message": "Conexión automática: Activada - O configurador intentase conectarse automaticamente cando un porto novo é detectado" }, @@ -86,6 +89,9 @@ "expertMode": { "message": "Activar Modo Experto" }, + "expertModeDescription": { + "message": "Activar opcións do Modo Experto" + }, "warningSettings": { "message": "Amosar alertas" }, @@ -103,6 +109,10 @@ "message": "Amosar tódolos dispositivos serie (para fabricantes ou desenvolvemento)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, + "useMdnsBrowser": { + "message": "Empregar descubrimento na rede de dispositivos mDNS (experimental)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, "showVirtualMode": { "message": "Activar o modo de conexión virtual", "description": "Text for the option to enable or disable the virtual FC" @@ -448,9 +458,30 @@ "message": "Configurador: {{configuratorVersion}}", "description": "Message that appears in the GUI log panel indicating Configurator version" }, + "buildServerSuccess": { + "message": "Éxito: $1" + }, + "buildServerFailure": { + "message": "Fallo de compilación do servidor: $1 $2" + }, "buildServerUsingCached": { "message": "Usando información construida na caché para $1." }, + "buildServerSupportRequestSubmission": { + "message": "
    *** Datos de apoio enviados ***
    Id: $1


    # copie o ID para proporcionarllo ó equipo de betaflight." + }, + "buildKey": { + "message": "Chave de compilación: $1" + }, + "supportWarningDialogTitle": { + "message": "Confirme o envío de datos" + }, + "supportWarningDialogText": { + "message": "Por favor, confirme o envío de datos ao equipo de Betaflight.

    Este proceso executará algúns comandos e enviará a saída ao servidor de compilación.

    A continuación, proporcionaráselle un identificador único para o envío de datos.

    Asegúrese de proporcionar este identificador único ao equipo de Betaflight cando empregue Discord ou abra un problema en Github." + }, + "supportWarningDialogInputPlaceHolder": { + "message": "Describir o problema" + }, "releaseCheckLoaded": { "message": "Cargada información de versión para $1 dende GitHub." }, @@ -615,6 +646,9 @@ "defaultDocumentation": { "message": "A documentación de Betaflight está dispoñible nas notas da versión e na wiki.

    " }, + "defaultDocumentation1": { + "message": "A wiki de Betaflight é un gran recurso de información, pódese atopar aquí." + }, "defaultDocumentation2": { "message": "As notas de lanzamento para o firmware pódense ler na páxina de lanzamentos de GitHub, aquí." }, @@ -633,12 +667,18 @@ "defaultSupport1": { "message": "Fio RC Groups" }, + "defaultSupport2": { + "message": "Wiki de Betaflight" + }, "defaultSupport3": { "message": "Videos 4.3 Joshua Bardallas Betaflight" }, "defaultSupport4": { "message": "GitHub" }, + "defaultSupport5": { + "message": "Desenvolvedores de Betaflight en Discord" + }, "initialSetupButtonCalibrateAccel": { "message": "Calibrar Acelerómetro" }, @@ -669,9 +709,18 @@ "initialSetupButtonRebootBootloader": { "message": "Activar o cargador de arranque / DFU" }, + "initialSetupBackupRestoreHeader": { + "message": "Copia de seguridade e restauración experimental" + }, "initialSetupRebootBootloaderText": { "message": "Reinicia en modocargador de arranque / DFU ." }, + "initialSetupBackupSuccess": { + "message": "Backup gardado exitosamente" + }, + "initialSetupRestoreSuccess": { + "message": "Configuración restaurada correctamente" + }, "initialSetupButtonResetZaxis": { "message": "Reiniciar eixo Z, offset: 0 º" }, @@ -720,6 +769,9 @@ "initialSetupMagHead": { "message": "Magnetómetro" }, + "initialSetupInfoHead": { + "message": "Información do sistema" + }, "initialSetupBattery": { "message": "Voltaxe da batería:" }, @@ -741,6 +793,9 @@ "initialSetupRSSI": { "message": "RSSI:" }, + "initialSetupSensorHardware": { + "message": "Sensores:" + }, "initialSetupRSSIValue": { "message": "$1 %" }, @@ -867,6 +922,30 @@ "initialSetupInstrumentsHead": { "message": "Instrumentos" }, + "initialSetupInfoAPIversion": { + "message": "MSP API:" + }, + "initialSetupInfoBuild": { + "message": "Información do firmware" + }, + "initialSetupInfoBuildDate": { + "message": "Data de compilación:" + }, + "initialSetupInfoBuildInfo": { + "message": "Información da compilación:" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "Configuración da compilación" + }, + "initialSetupInfoBuildInfoLog": { + "message": "Rexistro da compilación" + }, + "initialSetupInfoBuildOptions": { + "message": "Opcións da compilación:" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "Compilación local - sen definicións" + }, "initialSetupButtonSave": { "message": "Gardar" }, @@ -1269,6 +1348,9 @@ "configurationLoopTimeHelp": { "message": "Nota: Asegúrese de que a súa FC poida funcionar a estas velocidades. Comprobe a estabilidade da CPU e do ciclo. Cambiar isto pode requirir a reordenación de PID. SUXERENCIA: desactivar o acelerómetro e outros sensores para obter máis rendemento." }, + "configurationGPS": { + "message": "Configuración do GPS" + }, "configurationGPSProtocol": { "message": "Protocolo" }, @@ -1438,9 +1520,15 @@ "pidProfileName": { "message": "Nome do perfil PID" }, + "pidProfileNameHelp": { + "message": "Nome do perfil PID que pode describir as condicións coas que se axustou este perfil: batería máis lixeira/pesada, cámara de acción/sen cámara de acción, elevación máis alta, etc." + }, "rateProfileName": { "message": "Nome do perfil Rate" }, + "rateProfileNameHelp": { + "message": "Valora o nome do perfil que pode describir para que tipo de voo serve este perfil: cine, carreira, estilo libre, etc." + }, "pidTuningShowAllPids": { "message": "Mostrar tódolos PID's" }, @@ -1976,6 +2064,9 @@ "receiverButtonBindMessage": { "message": "Solicitude de enlace enviada ao controlador de voo." }, + "receiverButtonBindingPhrase": { + "message": "Frase vinculante" + }, "receiverButtonSticks": { "message": "Sticks de control" }, @@ -2148,6 +2239,12 @@ "adjustmentsFunction21": { "message": "Valor Yaw RC" }, + "adjustmentsFunction22": { + "message": "Axuste Pitch & Roll F" + }, + "adjustmentsFunction23": { + "message": "Transición de Feedforward" + }, "adjustmentsFunction24": { "message": "Axuste da forza do horizonte" }, @@ -2313,6 +2410,9 @@ "gpsLon": { "message": "Lonxitude:" }, + "gpsHeading": { + "message": "Cabeceira:" + }, "gpsSpeed": { "message": "Velocidade:" }, @@ -2581,6 +2681,9 @@ "escDshotDirectionDialog-WrongProtocolText": { "message": "Esta función só funciona con DSHOT ESC.
    Verifique que o ESC (controlador de velocidade eléctrico) admita o protocolo DSHOT e cámbieo na pestana $t(tabMotorTesting.message)." }, + "escDshotDirectionDialog-WrongMixerText": { + "message": "O número de motores é 0.
    Verifique o mesturador actual na pestana $t(tabMotorTesting.message) ou configure un personalizado a través da CLI. Refírese a isto páxina da Wiki." + }, "escDshotDirectionDialog-WrongFirmwareText": { "message": "Actualice o firmware.
    Asegúrese de que está a usar o firmware máis recente: Betaflight 4.3 ou máis recente." }, @@ -2674,6 +2777,9 @@ "cliLoadFromFileBtn": { "message": "Lectura dende arquivo" }, + "cliSupportRequestBtn": { + "message": "Enviar datos de soporte" + }, "cliConfirmSnippetDialogTitle": { "message": "Arquivo cargado {{fileName}}. Revise os comandos cargados" }, @@ -2854,6 +2960,9 @@ "firmwareFlasherReleaseTarget": { "message": "Placa:" }, + "firmwareFlasherTargetWikiUrlInfo": { + "message": "Obtén máis información sobre a controladora na wiki de Betaflight (url wiki atopado na configuración de destino unificado)" + }, "firmwareFlasherReleaseMCU": { "message": "MCU:" }, @@ -2953,6 +3062,9 @@ "firmwareFlasherBaudRate": { "message": "Velocidade de Transmisión" }, + "firmwareFlasherShowDevelopmentReleases": { + "message": "Mostrar versións candidatas" + }, "firmwareFlasherShowDevelopmentReleasesDescription": { "message": "Mostrar versións candidatas ademais de versións estables" }, @@ -3104,6 +3216,9 @@ "firmwareFlasherDetectBoardQuery": { "message": "Consulte a información da placa para preseleccionar firmware adecuado" }, + "unstableFirmwareAcknowledgement": { + "message": "Lin o anterior e asumo a total responsabilidade de instalar un firmware inestable" + }, "unstableFirmwareAcknowledgementFlash": { "message": "Flash" }, @@ -3298,9 +3413,17 @@ "message": "Os LED sen número de orde de arame non se gardarán.", "description": "Message in the wiring modes in Led Strip" }, + "ledStripLarsonOverlay": { + "message": "Escáner Larson", + "description": "Larson effect switch label on LED Strip tab" + }, "ledStripBlinkAlwaysOverlay": { "message": "Parpadeo continuo" }, + "ledStripRainbowOverlay": { + "message": "Arco da vella", + "description": "Rainbow effect switch label on LED Strip tab" + }, "ledStripOverlayTitle": { "message": "Superposición" }, @@ -3779,6 +3902,9 @@ "pidTuningDynamicNotchFilterDisabledWarning": { "message": "Aviso: O filtro de Notch Dinamico está desactivado. Para configuralo e usalo, active a función 'DYNAMIC_FILTER' na sección '$t(configurationFeatures.message)' da pestana '$t(tabConfiguration.message)'. Asegúrese tamén de que o bucle PID sexa polo menos 2 kHz." }, + "pidTuningDynamicNotchFilterNyquistWarning": { + "message": "O filtro de muesca dinámica está desactivado. Para usalo, asegúrese de que a frecuencia do bucle PID estea configurada como mínimo en 2Khz na pestana '$t(tabConfiguration.message)'." + }, "pidTuningDynamicNotchRange": { "message": "Rango de filtro dinámico Notch" }, @@ -3991,6 +4117,9 @@ "pidTuningIntegratedYaw": { "message": "Yaw Integrado" }, + "pidTuningIntegratedYawCaution": { + "message": "PRECAUCIÓN: se habilita esta función, deberá axustar o PID de guiñada en consecuencia. Máis información aquí" + }, "pidTuningIntegratedYawHelp": { "message": "Yaw integrado integra os valores de Yaw P, I e D, permitindo que estes se axusten do mesmo modo que pich e roll

    Necesítase moi pouca I, porque o P integrado actua como I e a D integrada como P.

    Nota: Yaw integrado require uso do control absoluto, xa que non é necesario I con Yaw integrado." }, @@ -4473,6 +4602,10 @@ "message": "Fonte {{fontName}}", "description": "Content of the selector for the OSD Font in the preview" }, + "osdSetupPreviewCheckZoom": { + "message": "Zoom", + "description": "Check to select a bigger display of the OSD preview in small screens" + }, "osdSetupVideoFormatTitle": { "message": "Formato de vídeo" }, @@ -6129,6 +6262,9 @@ "onboardLoggingRateOfLogging": { "message": "Tasa de rexistro da caixa negra" }, + "onboardLoggingDebugFields": { + "message": "Datos incluídos" + }, "onboardLoggingDebugMode": { "message": "Modo de depuración Caixa negra" }, @@ -6546,9 +6682,15 @@ "firmwareFlasherConfigurationFile": { "message": "Nome do arquivo de configuración:" }, + "firmwareFlasherRadioProtocolDescription": { + "message": "Seleccione o protocolo de radio que desexa incluír nesta compilación. Teña en conta que este é un menú despregable, pero quizais só se seleccione un elemento." + }, "firmwareFlasherOptionsDescription": { "message": "Seleccione as opcións xenéricas que desexa incluír nesta compilación. Teña en conta que este é un menú despregable e é posible que se seleccionen varios elementos. Elementos como correccións, p. ex. AKK VTX, están incluídos aquí." }, + "firmwareFlasherMotorProtocolDescription": { + "message": "Seleccione o protocolo de motor (ESC) que desexa incluír nesta compilación. Teña en conta que este é un menú despregable, pero quizais só se seleccione un elemento." + }, "firmwareFlasherCustomDefinesDescription": { "message": "Para os desenvolvedores, vostede pode engadir as definicións que precise, separadas por un \"espazo\", pero sen o prefixo \"USE_\", engadirase automaticamente para vostede." }, @@ -6557,5 +6699,9 @@ }, "coreBuild": { "message": "Só núcleo" + }, + "showDevToolsOnStartup": { + "message": "Abre automaticamente DevTools no modo de desenvolvemento", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" } } diff --git a/locales/it/messages.json b/locales/it/messages.json index 98ed926992..1e98410d0e 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -2810,6 +2810,9 @@ "loggingLogSize": { "message": "Dimensione registro:" }, + "loggingLogName": { + "message": "Nome Log:" + }, "loggingButtonLogFile": { "message": "Seleziona file di registro" }, @@ -6297,6 +6300,9 @@ "onboardLoggingRateOfLogging": { "message": "Frequenza di registrazione della BlackBox" }, + "onboardLoggingDebugFields": { + "message": "Dati inclusi" + }, "onboardLoggingDebugMode": { "message": "Modalità debug Blackbox" }, diff --git a/locales/ja/messages.json b/locales/ja/messages.json index eb469650b1..52a096c740 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -2810,6 +2810,9 @@ "loggingLogSize": { "message": "ログサイズ:" }, + "loggingLogName": { + "message": "ログファイル名:" + }, "loggingButtonLogFile": { "message": "ログファイルの選択" }, diff --git a/locales/ko/messages.json b/locales/ko/messages.json index 396f614f9e..c7a8720ef1 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -2810,6 +2810,9 @@ "loggingLogSize": { "message": "로그 크기:" }, + "loggingLogName": { + "message": "로그 이름" + }, "loggingButtonLogFile": { "message": "로그 파일 선택" }, diff --git a/locales/pl/messages.json b/locales/pl/messages.json index b2b10f560e..626ec15eac 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -2771,6 +2771,9 @@ "loggingLogSize": { "message": "Rozmiar dziennika:" }, + "loggingLogName": { + "message": "Nazwa zdarzenia:" + }, "loggingButtonLogFile": { "message": "Wybierz zapis dziennika" }, diff --git a/locales/pt/messages.json b/locales/pt/messages.json index b5285d91c8..b413264a72 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -2810,6 +2810,9 @@ "loggingLogSize": { "message": "Tamanho do Log:" }, + "loggingLogName": { + "message": "Nome do Log:" + }, "loggingButtonLogFile": { "message": "Selecionar ficheiro de Log" }, From 9db6806b1a0ce04fdafbb953ea08c0253c75208f Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 5 Apr 2023 13:56:22 +0200 Subject: [PATCH 063/393] Fix PID tab (#3399) --- src/js/model.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/model.js b/src/js/model.js index 1b7ecac751..0ca941b99e 100644 --- a/src/js/model.js +++ b/src/js/model.js @@ -149,7 +149,7 @@ Model.prototype.resize = function () { Model.prototype.dispose = function () { if (this.canUseWebGLRenderer()) { - this.renderer.forceContextLoss(); + this.renderer.forceContextLoss = null; this.renderer.dispose(); } }; From 397aba07aaedf4d490e41a9c69247eccd4734dd4 Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Thu, 6 Apr 2023 21:28:39 +0200 Subject: [PATCH 064/393] Add more localization on setup tab (#3402) * changed * Update setup.html Removed typo * Update messages.json --- locales/en/messages.json | 12 ++++++++++++ src/tabs/setup.html | 6 +++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 1e141026ef..ecc7f801c6 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -822,6 +822,18 @@ "initialSetupButtonResetZaxisValue": { "message": "Reset Z axis, offset: $1 deg" }, + "initialSetupHeading": { + "message": "Heading:", + "description": "Heading shown on Setup tab" + }, + "initialSetupPitch": { + "message": "Pitch:", + "description": "Pitch shown on Setup tab" + }, + "initialSetupRoll": { + "message": "Roll:", + "description": "Roll shown on Setup tab" + }, "initialSetupMixerHead": { "message": "Mixer Type" }, diff --git a/src/tabs/setup.html b/src/tabs/setup.html index 00aa99d8f3..ab9ee3dd59 100644 --- a/src/tabs/setup.html +++ b/src/tabs/setup.html @@ -75,11 +75,11 @@
    -
    Heading:
    +
     
    -
    Pitch:
    +
     
    -
    Roll:
    +
     
    From e15cb55e2475c713638b2f366bee1ddcf398acdb Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Thu, 6 Apr 2023 22:22:13 +0200 Subject: [PATCH 065/393] Show CPU core temp on Setup tab (#3403) * add temp * add cpu temperature --- locales/en/messages.json | 3 +++ src/js/fc.js | 2 ++ src/js/msp/MSPHelper.js | 8 ++++++++ src/js/tabs/setup.js | 6 +++++- src/tabs/setup.html | 4 ++++ 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index ecc7f801c6..e623c99239 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -901,6 +901,9 @@ "initialSetupBatteryAValue": { "message": "$1 A" }, + "initialSetupCpuTemp": { + "message": "CPU Temperature:" + }, "initialSetupRSSI": { "message": "RSSI:" }, diff --git a/src/js/fc.js b/src/js/fc.js index b5e811ddcb..d3d8ccc573 100644 --- a/src/js/fc.js +++ b/src/js/fc.js @@ -16,6 +16,7 @@ const INITIAL_CONFIG = { cycleTime: 0, i2cError: 0, cpuload: 0, + cpuTemp: 0, activeSensors: 0, mode: 0, profile: 0, @@ -43,6 +44,7 @@ const INITIAL_CONFIG = { signature: [], mcuTypeId: 255, configurationState: 0, + configStateFlag: 0, sampleRateHz: 0, configurationProblems: 0, hardwareName: '', diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index cdc0371a26..b7841780c7 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -213,6 +213,14 @@ MspHelper.prototype.process_data = function(dataHandler) { FC.CONFIG.armingDisableCount = data.readU8(); // Flag count FC.CONFIG.armingDisableFlags = data.readU32(); + // Read config state flags - bits to indicate the state of the configuration, reboot required, etc. + FC.CONFIG.configStateFlag = data.readU8(); + + // Read CPU temp, from API version 1.46 + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + FC.CONFIG.cpuTemp = data.readU16(); + } + sensor_status(FC.CONFIG.activeSensors, FC.GPS_DATA.fix); break; diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index 55beb615ce..79952d3224 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -9,7 +9,7 @@ import FC from '../fc'; import MSP from '../msp'; import Model from '../model'; import MSPCodes from '../msp/MSPCodes'; -import CONFIGURATOR, { API_VERSION_1_42, API_VERSION_1_43 } from '../data_storage'; +import CONFIGURATOR, { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_46 } from '../data_storage'; import { gui_log } from '../gui_log'; const setup = { @@ -190,6 +190,7 @@ setup.initialize = function (callback) { bat_mah_drawn_e = $('.bat-mah-drawn'), bat_mah_drawing_e = $('.bat-mah-drawing'), rssi_e = $('.rssi'), + cputemp_e = $('.cpu-temp'), arming_disable_flags_e = $('.arming-disable-flags'), gpsFix_e = $('.gpsFix'), gpsSats_e = $('.gpsSats'), @@ -400,6 +401,9 @@ setup.initialize = function (callback) { bat_mah_drawn_e.text(i18n.getMessage('initialSetupBatteryMahValue', [FC.ANALOG.mAhdrawn])); bat_mah_drawing_e.text(i18n.getMessage('initialSetupBatteryAValue', [FC.ANALOG.amperage.toFixed(2)])); rssi_e.text(i18n.getMessage('initialSetupRSSIValue', [((FC.ANALOG.rssi / 1023) * 100).toFixed(0)])); + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + cputemp_e.html(`${FC.CONFIG.cpuTemp.toFixed(0)} ℃`); + } }); } diff --git a/src/tabs/setup.html b/src/tabs/setup.html index ab9ee3dd59..9b1469fb6b 100644 --- a/src/tabs/setup.html +++ b/src/tabs/setup.html @@ -167,6 +167,10 @@
    + + + + From 92484c3c4417b45095afbb4b0daf324e4d79b20a Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Thu, 6 Apr 2023 22:56:18 +0200 Subject: [PATCH 066/393] Fix full chip erase (#3405) --- src/js/tabs/firmware_flasher.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index e66c6bff32..236266c6ce 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -494,7 +494,7 @@ firmware_flasher.initialize = function (callback) { const options = {}; let eraseAll = false; - if ($('input.erase_chip').is(':checked') || expertMode_e.not(':checked')) { + if ($('input.erase_chip').is(':checked') || expertMode_e.is(':not(:checked)')) { options.erase_chip = true; eraseAll = true; From c20d52734360a7794aad0e8bbdfcce4621976b1b Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Fri, 7 Apr 2023 16:10:33 +0200 Subject: [PATCH 067/393] align alignDisarmFlagElements (#3400) * align alignDisarmFlagElements * restore backward comp --- src/js/tabs/setup.js | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index 79952d3224..2c7eb10054 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -209,6 +209,7 @@ setup.initialize = function (callback) { // DISARM FLAGS // We add all the arming/disarming flags available, and show/hide them if needed. + // align with betaflight runtime_config.h armingDisableFlags_e const prepareDisarmFlags = function() { let disarmFlagElements = [ @@ -217,6 +218,8 @@ setup.initialize = function (callback) { 'RX_FAILSAFE', 'BAD_RX_RECOVERY', 'BOXFAILSAFE', + 'RUNAWAY_TAKEOFF', + // 'CRASH_DETECTED', only from API 1.42 'THROTTLE', 'ANGLE', 'BOOT_GRACE_TIME', @@ -225,27 +228,27 @@ setup.initialize = function (callback) { 'CALIBRATING', 'CLI', 'CMS_MENU', - 'OSD_MENU', 'BST', 'MSP', + 'PARALYZE', + 'GPS', + 'RESC', + 'RPMFILTER', + // 'REBOOT_REQUIRED', only from API 1.42 + // 'DSHOT_BITBANG', only from API 1.42 + // 'ACC_CALIBRATION', only from API 1.43 + // 'MOTOR_PROTOCOL', only from API 1.43 + // 'ARM_SWITCH', // Needs to be the last element, since it's always activated if one of the others is active when arming ]; - disarmFlagElements.splice(disarmFlagElements.indexOf('THROTTLE'), 0, 'RUNAWAY_TAKEOFF'); - - disarmFlagElements = disarmFlagElements.concat(['PARALYZE', 'GPS']); - - disarmFlagElements.splice(disarmFlagElements.indexOf('OSD_MENU'), 1); - disarmFlagElements = disarmFlagElements.concat(['RESC']); - disarmFlagElements = disarmFlagElements.concat(['RPMFILTER']); - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)) { - disarmFlagElements.splice(disarmFlagElements.indexOf('THROTTLE'), 0, 'CRASH'); - disarmFlagElements = disarmFlagElements.concat(['REBOOT_REQD', - 'DSHOT_BBANG']); + disarmFlagElements.splice(disarmFlagElements.indexOf('THROTTLE'), 0, 'CRASH_DETECTED'); + disarmFlagElements = disarmFlagElements.concat(['REBOOT_REQUIRED', + 'DSHOT_BITBANG']); } if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_43)) { - disarmFlagElements = disarmFlagElements.concat(['NO_ACC_CAL', 'MOTOR_PROTO']); + disarmFlagElements = disarmFlagElements.concat(['ACC_CALIBRATION', 'MOTOR_PROTOCOL']); } // Always the latest element From 56338c2de6d4f9e7b6a6f0054e3323ab2f3a054d Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Sun, 9 Apr 2023 21:34:05 +0200 Subject: [PATCH 068/393] Add sensor / range finder information at Setup tab (#3410) * Show sonar at setup.js * Changed logic for , seperator * Changed logic for , seperator --- src/js/fc.js | 3 +-- src/js/msp/MSPHelper.js | 3 +++ src/js/tabs/setup.js | 35 +++++++++++++++++++++++++++++------ 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/src/js/fc.js b/src/js/fc.js index d3d8ccc573..fc19d195fe 100644 --- a/src/js/fc.js +++ b/src/js/fc.js @@ -313,7 +313,6 @@ const FC = { cno: [], }; - this.VOLTAGE_METERS = []; this.VOLTAGE_METER_CONFIGS = []; this.CURRENT_METERS = []; @@ -538,6 +537,7 @@ const FC = { acc_hardware: 0, baro_hardware: 0, mag_hardware: 0, + sonar_hardware: 0, }; this.RX_CONFIG = { @@ -767,7 +767,6 @@ const FC = { return name; }, - MCU_TYPES: { 0: "SIMULATOR", 1: "F40X", diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index b7841780c7..63669de20a 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -1170,6 +1170,9 @@ MspHelper.prototype.process_data = function(dataHandler) { FC.SENSOR_CONFIG.acc_hardware = data.readU8(); FC.SENSOR_CONFIG.baro_hardware = data.readU8(); FC.SENSOR_CONFIG.mag_hardware = data.readU8(); + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + FC.SENSOR_CONFIG.sonar_hardware = data.readU8(); + } break; case MSPCodes.MSP_LED_STRIP_CONFIG: diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index 2c7eb10054..c11f0830f2 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -326,19 +326,42 @@ setup.initialize = function (callback) { 'MPU925X_AK8963', ]; + let sonarElements = [ + 'NONE', + 'HCSR04', + 'TFMINI', + 'TF02', + ]; + MSP.send_message(MSPCodes.MSP_SENSOR_CONFIG, false, false, function() { // Sensor info + let appendComma = false; sensor_e.text(''); - if(have_sensor(FC.CONFIG.activeSensors, "acc") && FC.SENSOR_CONFIG.acc_hardware > 1) { - sensor_e.append(i18n.getMessage('sensorStatusAccelShort'), ': ', accElements[[FC.SENSOR_CONFIG.acc_hardware]], ', '); + if (have_sensor(FC.CONFIG.activeSensors, "acc") && FC.SENSOR_CONFIG.acc_hardware > 1) { + sensor_e.append(i18n.getMessage('sensorStatusAccelShort'), ': ', accElements[[FC.SENSOR_CONFIG.acc_hardware]]); + appendComma = true; } - if(have_sensor(FC.CONFIG.activeSensors, "baro") && FC.SENSOR_CONFIG.baro_hardware > 1) { - sensor_e.append(i18n.getMessage('sensorStatusBaroShort'), ': ', baroElements[[FC.SENSOR_CONFIG.baro_hardware]], ', '); + if (have_sensor(FC.CONFIG.activeSensors, "baro") && FC.SENSOR_CONFIG.baro_hardware > 1) { + if (appendComma) { + sensor_e.append(', '); + } + sensor_e.append(i18n.getMessage('sensorStatusBaroShort'), ': ', baroElements[[FC.SENSOR_CONFIG.baro_hardware]]); + appendComma = true; } - if(have_sensor(FC.CONFIG.activeSensors, "mag") && FC.SENSOR_CONFIG.mag_hardware > 1) { + if (have_sensor(FC.CONFIG.activeSensors, "mag") && FC.SENSOR_CONFIG.mag_hardware > 1) { + if (appendComma) { + sensor_e.append(', '); + } sensor_e.append(i18n.getMessage('sensorStatusMagShort'), ': ', magElements[[FC.SENSOR_CONFIG.mag_hardware]]); + appendComma = true; } - }); + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46) && have_sensor(FC.CONFIG.activeSensors, "sonar") && FC.SENSOR_CONFIG.sonar_hardware > 1) { + if (appendComma) { + sensor_e.append(', '); + } + sensor_e.append(i18n.getMessage('sensorStatusSonarShort'), ': ', sonarElements[[FC.SENSOR_CONFIG.sonar_hardware]]); + } +}); }; const showFirmwareInfo = function() { From 5344781de2e9f3800e3a76dbb50b768b0cea3edd Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Mon, 10 Apr 2023 01:42:03 +0200 Subject: [PATCH 069/393] Fix battery status and optimize and fix status pull (#3397) * Fix status * Remove duplicate status requests * Add clearInterval * Cleanup * Remove more duplicate status polling --- src/js/fc.js | 6 +-- src/js/gui.js | 2 +- src/js/msp/MSPHelper.js | 2 +- src/js/serial_backend.js | 83 +++++++++++++++++++------------------- src/js/tabs/adjustments.js | 5 --- src/js/tabs/failsafe.js | 5 --- src/js/tabs/gps.js | 7 ---- src/js/tabs/motors.js | 8 +--- src/js/tabs/pid_tuning.js | 8 ++-- src/js/tabs/receiver.js | 5 --- src/js/tabs/setup.js | 43 +++++++++----------- 11 files changed, 70 insertions(+), 104 deletions(-) diff --git a/src/js/fc.js b/src/js/fc.js index fc19d195fe..28e05bb61c 100644 --- a/src/js/fc.js +++ b/src/js/fc.js @@ -55,7 +55,7 @@ const INITIAL_ANALOG = { mAhdrawn: 0, rssi: 0, amperage: 0, - last_received_timestamp: Date.now(), // FIXME this code lies, it's never been received at this point + last_received_timestamp: 0, }; const INITIAL_BATTERY_CONFIG = { @@ -74,7 +74,7 @@ const FC = { ADJUSTMENT_RANGES: null, ADVANCED_TUNING: null, ADVANCED_TUNING_ACTIVE: null, - ANALOG: {...INITIAL_CONFIG}, + ANALOG: {...INITIAL_ANALOG}, ARMING_CONFIG: null, AUX_CONFIG: null, AUX_CONFIG_IDS: null, @@ -170,7 +170,7 @@ const FC = { // Using `Object.assign` instead of reassigning to // trigger the updates on the Vue side Object.assign(this.CONFIG, INITIAL_CONFIG); - Object.assign(this.ANALOG, INITIAL_CONFIG); + Object.assign(this.ANALOG, INITIAL_ANALOG); Object.assign(this.BATTERY_CONFIG, INITIAL_BATTERY_CONFIG); this.BF_CONFIG = { diff --git a/src/js/gui.js b/src/js/gui.js index 49b0372214..3c085fb8ca 100644 --- a/src/js/gui.js +++ b/src/js/gui.js @@ -219,7 +219,7 @@ class GuiControl { } }, timeout); - this.timeout_array.push(data); // push to primary timeout array + self.timeout_array.push(data); // push to primary timeout array return data; } diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 63669de20a..77109063cf 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -319,7 +319,7 @@ MspHelper.prototype.process_data = function(dataHandler) { FC.ANALOG.rssi = data.readU16(); // 0-1023 FC.ANALOG.amperage = data.read16() / 100; // A FC.ANALOG.voltage = data.readU16() / 100; - FC.ANALOG.last_received_timestamp = Date.now(); + FC.ANALOG.last_received_timestamp = performance.now(); break; case MSPCodes.MSP_VOLTAGE_METERS: FC.VOLTAGE_METERS = []; diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index 9b622e28cc..304c937bb1 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -28,6 +28,7 @@ import BuildApi from "./BuildApi"; let mspHelper; let connectionTimestamp; let clicks = false; +let liveDataRefreshTimerId = false; export function initializeSerialBackend() { GUI.updateManualPortVisibility = function() { @@ -119,7 +120,7 @@ export function initializeSerialBackend() { mspHelper.setArmingEnabled(true, false, onFinishCallback); } } - } + } }); $('div.open_firmware_flasher a.flash').click(function () { @@ -604,9 +605,6 @@ function onConnect() { MSP.send_message(MSPCodes.MSP_FEATURE_CONFIG, false, false); MSP.send_message(MSPCodes.MSP_BATTERY_CONFIG, false, false); - - getStatus(); - MSP.send_message(MSPCodes.MSP_DATAFLASH_SUMMARY, false, false); if (FC.CONFIG.boardType === 0 || FC.CONFIG.boardType === 2) { @@ -647,6 +645,8 @@ function onClosed(result) { const battery = $('#quad-status_wrapper'); battery.hide(); + clearLiveDataRefreshTimer(); + MSP.clearListeners(); CONFIGURATOR.connectionValid = false; @@ -668,27 +668,15 @@ export function read_serial(info) { } } -function startLiveDataRefreshTimer() { - // live data refresh - GUI.timeout_add('data_refresh', update_live_status, 100); -} - -async function getStatus() { - return MSP.promise(MSPCodes.MSP_STATUS_EX); -} - async function update_live_status() { const statuswrapper = $('#quad-status_wrapper'); if (GUI.active_tab !== 'cli' && GUI.active_tab !== 'presets') { - await MSP.promise(MSPCodes.MSP_BOXNAMES); - await getStatus(); - if (have_sensor(FC.CONFIG.activeSensors, 'gps')) { - await MSP.promise(MSPCodes.MSP_RAW_GPS); - } await MSP.promise(MSPCodes.MSP_ANALOG); + await MSP.promise(MSPCodes.MSP_BOXNAMES); + await MSP.promise(MSPCodes.MSP_STATUS_EX); - const active = ((Date.now() - FC.ANALOG.last_received_timestamp) < 300); + const active = (performance.now() - FC.ANALOG.last_received_timestamp) < 300; for (let i = 0; i < FC.AUX_CONFIG.length; i++) { if (FC.AUX_CONFIG[i] === 'ARM') { @@ -699,43 +687,56 @@ async function update_live_status() { } } - if (FC.ANALOG != undefined) { - let nbCells = Math.floor(FC.ANALOG.voltage / FC.BATTERY_CONFIG.vbatmaxcellvoltage) + 1; + let nbCells = Math.floor(FC.ANALOG.voltage / FC.BATTERY_CONFIG.vbatmaxcellvoltage) + 1; - if (FC.ANALOG.voltage == 0) { - nbCells = 1; - } + if (FC.ANALOG.voltage === 0) { + nbCells = 1; + } - const min = FC.BATTERY_CONFIG.vbatmincellvoltage * nbCells; - const max = FC.BATTERY_CONFIG.vbatmaxcellvoltage * nbCells; - const warn = FC.BATTERY_CONFIG.vbatwarningcellvoltage * nbCells; + const min = FC.BATTERY_CONFIG.vbatmincellvoltage * nbCells; + const max = FC.BATTERY_CONFIG.vbatmaxcellvoltage * nbCells; + const warn = FC.BATTERY_CONFIG.vbatwarningcellvoltage * nbCells; - const NO_BATTERY_VOLTAGE_MAXIMUM = 1.8; // Maybe is better to add a call to MSP_BATTERY_STATE but is not available for all versions + const NO_BATTERY_VOLTAGE_MAXIMUM = 1.8; // Maybe is better to add a call to MSP_BATTERY_STATE but is not available for all versions - if (FC.ANALOG.voltage < min && FC.ANALOG.voltage > NO_BATTERY_VOLTAGE_MAXIMUM) { - $(".battery-status").addClass('state-empty').removeClass('state-ok').removeClass('state-warning'); - $(".battery-status").css({ width: "100%" }); - } else { - $(".battery-status").css({ width: `${((FC.ANALOG.voltage - min) / (max - min) * 100)}%` }); + if (FC.ANALOG.voltage < min && FC.ANALOG.voltage > NO_BATTERY_VOLTAGE_MAXIMUM) { + $(".battery-status").addClass('state-empty').removeClass('state-ok').removeClass('state-warning'); + $(".battery-status").css({ width: "100%" }); + } else { + $(".battery-status").css({ width: `${((FC.ANALOG.voltage - min) / (max - min) * 100)}%` }); - if (FC.ANALOG.voltage < warn) { - $(".battery-status").addClass('state-warning').removeClass('state-empty').removeClass('state-ok'); - } else { - $(".battery-status").addClass('state-ok').removeClass('state-warning').removeClass('state-empty'); - } + if (FC.ANALOG.voltage < warn) { + $(".battery-status").addClass('state-warning').removeClass('state-empty').removeClass('state-ok'); + } else { + $(".battery-status").addClass('state-ok').removeClass('state-warning').removeClass('state-empty'); } } + if (have_sensor(FC.CONFIG.activeSensors, 'gps')) { + await MSP.promise(MSPCodes.MSP_RAW_GPS); + } + sensor_status(FC.CONFIG.activeSensors, FC.GPS_DATA.fix); $(".linkicon").toggleClass('active', active); statuswrapper.show(); - GUI.timeout_remove('data_refresh'); - startLiveDataRefreshTimer(); } } +function clearLiveDataRefreshTimer() { + if (liveDataRefreshTimerId) { + clearInterval(liveDataRefreshTimerId); + liveDataRefreshTimerId = false; + } +} + +function startLiveDataRefreshTimer() { + // live data refresh + clearLiveDataRefreshTimer(); + liveDataRefreshTimerId = setInterval(update_live_status, 250); +} + export function reinitializeConnection(callback) { // Close connection gracefully if it still exists. @@ -758,8 +759,8 @@ export function reinitializeConnection(callback) { if (connectionTimestamp !== previousTimeStamp && CONFIGURATOR.connectionValid) { console.log(`Serial connection available after ${attempts / 10} seconds`); clearInterval(reconnect); - getStatus(); gui_log(i18n.getMessage('deviceReady')); + if (callback === typeof('function')) { callback(); } diff --git a/src/js/tabs/adjustments.js b/src/js/tabs/adjustments.js index eb577c05a5..5de1e01dba 100644 --- a/src/js/tabs/adjustments.js +++ b/src/js/tabs/adjustments.js @@ -281,11 +281,6 @@ adjustments.initialize = function (callback) { // enable data pulling GUI.interval_add('aux_data_pull', get_rc_data, 50); - // status data pulled via separate timer with static speed - GUI.interval_add('status_pull', function () { - MSP.send_message(MSPCodes.MSP_STATUS); - }, 250, true); - GUI.content_ready(callback); } }; diff --git a/src/js/tabs/failsafe.js b/src/js/tabs/failsafe.js index b0ba835b78..57c8d59fd1 100644 --- a/src/js/tabs/failsafe.js +++ b/src/js/tabs/failsafe.js @@ -385,11 +385,6 @@ failsafe.initialize = function (callback) { // translate to user-selected language i18n.localizePage(); - // status data pulled via separate timer with static speed - GUI.interval_add('status_pull', function status_pull() { - MSP.send_message(MSPCodes.MSP_STATUS); - }, 250, true); - GUI.content_ready(callback); } }; diff --git a/src/js/tabs/gps.js b/src/js/tabs/gps.js index 51bf243141..0209cc3e75 100644 --- a/src/js/tabs/gps.js +++ b/src/js/tabs/gps.js @@ -19,7 +19,6 @@ gps.initialize = async function (callback) { await MSP.promise(MSPCodes.MSP_FEATURE_CONFIG); await MSP.promise(MSPCodes.MSP_GPS_CONFIG); - await MSP.promise(MSPCodes.MSP_STATUS); const hasMag = have_sensor(FC.CONFIG.activeSensors, 'mag'); @@ -308,12 +307,6 @@ gps.initialize = async function (callback) { get_raw_gps_data(); }, 75, true); - // status data pulled via separate timer with static speed - GUI.interval_add('status_pull', function status_pull() { - MSP.send_message(MSPCodes.MSP_STATUS); - }, 250, true); - - //check for internet connection on load if (navigator.onLine) { console.log('Online'); diff --git a/src/js/tabs/motors.js b/src/js/tabs/motors.js index 35f59eb5b3..532453f93a 100644 --- a/src/js/tabs/motors.js +++ b/src/js/tabs/motors.js @@ -83,7 +83,6 @@ motors.initialize = async function (callback) { GUI.active_tab = 'motors'; - await MSP.promise(MSPCodes.MSP_STATUS); await MSP.promise(MSPCodes.MSP_PID_ADVANCED); await MSP.promise(MSPCodes.MSP_FEATURE_CONFIG); await MSP.promise(MSPCodes.MSP_MIXER_CONFIG); @@ -1023,11 +1022,6 @@ motors.initialize = async function (callback) { // data pulling functions used inside interval timer - function getStatus() { - // status needed for arming flag - MSP.send_message(MSPCodes.MSP_STATUS, false, false, get_motor_data); - } - function get_motor_data() { MSP.send_message(MSPCodes.MSP_MOTOR, false, false, get_motor_telemetry_data); } @@ -1177,7 +1171,7 @@ motors.initialize = async function (callback) { $('a.stop').on('click', () => motorsEnableTestModeElement.prop('checked', false).trigger('change')); // enable Status and Motor data pulling - GUI.interval_add('motor_and_status_pull', getStatus, 50, true); + GUI.interval_add('motor_and_status_pull', get_motor_data, 50, true); setup_motor_output_reordering_dialog(SetupEscDshotDirectionDialogCallback, zeroThrottleValue); diff --git a/src/js/tabs/pid_tuning.js b/src/js/tabs/pid_tuning.js index 6f1b3d1dd7..41781d82d9 100644 --- a/src/js/tabs/pid_tuning.js +++ b/src/js/tabs/pid_tuning.js @@ -54,9 +54,7 @@ pid_tuning.initialize = function (callback) { const FILTER_DEFAULT = FC.getFilterDefaults(); const PID_DEFAULT = FC.getPidDefaults(); - // requesting MSP_STATUS manually because it contains FC.CONFIG.profile - MSP.promise(MSPCodes.MSP_STATUS) - .then(() => MSP.promise(MSPCodes.MSP_PID_CONTROLLER)) + MSP.promise(MSPCodes.MSP_PID_CONTROLLER) .then(() => MSP.promise(MSPCodes.MSP_PIDNAMES)) .then(() => MSP.promise(MSPCodes.MSP_PID)) .then(() => MSP.promise(MSPCodes.MSP_PID_ADVANCED)) @@ -2286,8 +2284,8 @@ pid_tuning.initialize = function (callback) { GUI.interval_add('receiver_pull', self.getReceiverData, 250, true); // status data pulled via separate timer with static speed - GUI.interval_add('status_pull', function status_pull() { - MSP.send_message(MSPCodes.MSP_STATUS_EX, false, false, self.checkUpdateProfile(true)); + GUI.interval_add('update_profile', function update_profile() { + self.checkUpdateProfile(true); }, 500, true); self.analyticsChanges = {}; diff --git a/src/js/tabs/receiver.js b/src/js/tabs/receiver.js index 2c51318951..21501e8389 100644 --- a/src/js/tabs/receiver.js +++ b/src/js/tabs/receiver.js @@ -850,11 +850,6 @@ receiver.initialize = function (callback) { // TODO: Combine two polls together GUI.interval_add('receiver_pull_for_model_preview', tab.getReceiverData, 33, false); - // status data pulled via separate timer with static speed - GUI.interval_add('status_pull', function status_pull() { - MSP.send_message(MSPCodes.MSP_STATUS); - }, 250, true); - GUI.content_ready(callback); } }; diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index c11f0830f2..9fb75af1c8 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -401,36 +401,31 @@ setup.initialize = function (callback) { function get_slow_data() { - MSP.send_message(MSPCodes.MSP_STATUS_EX, false, false, function() { + // Status info is acquired in the background using update_live_status() in serial_backend.js - $('#initialSetupArmingAllowed').toggle(FC.CONFIG.armingDisableFlags == 0); + $('#initialSetupArmingAllowed').toggle(FC.CONFIG.armingDisableFlags === 0); - for (let i = 0; i < FC.CONFIG.armingDisableCount; i++) { - $(`#initialSetupArmingDisableFlags${i}`).css('display',(FC.CONFIG.armingDisableFlags & (1 << i)) == 0 ? 'none':'inline-block'); - } + for (let i = 0; i < FC.CONFIG.armingDisableCount; i++) { + $(`#initialSetupArmingDisableFlags${i}`).css('display',(FC.CONFIG.armingDisableFlags & (1 << i)) === 0 ? 'none':'inline-block'); + } - }); + // System info is acquired in the background using update_live_status() in serial_backend.js - // GPS info - if (have_sensor(FC.CONFIG.activeSensors, 'gps')) { - MSP.send_message(MSPCodes.MSP_RAW_GPS, false, false, function () { - gpsFix_e.html((FC.GPS_DATA.fix) ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse')); - gpsSats_e.text(FC.GPS_DATA.numSat); - gpsLat_e.text(`${(FC.GPS_DATA.lat / 10000000).toFixed(4)} deg`); - gpsLon_e.text(`${(FC.GPS_DATA.lon / 10000000).toFixed(4)} deg`); - }); + bat_voltage_e.text(i18n.getMessage('initialSetupBatteryValue', [FC.ANALOG.voltage])); + bat_mah_drawn_e.text(i18n.getMessage('initialSetupBatteryMahValue', [FC.ANALOG.mAhdrawn])); + bat_mah_drawing_e.text(i18n.getMessage('initialSetupBatteryAValue', [FC.ANALOG.amperage.toFixed(2)])); + rssi_e.text(i18n.getMessage('initialSetupRSSIValue', [((FC.ANALOG.rssi / 1023) * 100).toFixed(0)])); + + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46) && FC.CONFIG.cpuTemp) { + cputemp_e.html(`${FC.CONFIG.cpuTemp.toFixed(0)} ℃`); } - // System info - MSP.send_message(MSPCodes.MSP_ANALOG, false, false, function () { - bat_voltage_e.text(i18n.getMessage('initialSetupBatteryValue', [FC.ANALOG.voltage])); - bat_mah_drawn_e.text(i18n.getMessage('initialSetupBatteryMahValue', [FC.ANALOG.mAhdrawn])); - bat_mah_drawing_e.text(i18n.getMessage('initialSetupBatteryAValue', [FC.ANALOG.amperage.toFixed(2)])); - rssi_e.text(i18n.getMessage('initialSetupRSSIValue', [((FC.ANALOG.rssi / 1023) * 100).toFixed(0)])); - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { - cputemp_e.html(`${FC.CONFIG.cpuTemp.toFixed(0)} ℃`); - } - }); + // GPS info is acquired in the background using update_live_status() in serial_backend.js + + gpsFix_e.html((FC.GPS_DATA.fix) ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse')); + gpsSats_e.text(FC.GPS_DATA.numSat); + gpsLat_e.text(`${(FC.GPS_DATA.lat / 10000000).toFixed(4)} deg`); + gpsLon_e.text(`${(FC.GPS_DATA.lon / 10000000).toFixed(4)} deg`); } function get_fast_data() { From ef40e88e21c9a1c43f593f8ca06b30104b78e513 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Mon, 10 Apr 2023 01:55:24 +0200 Subject: [PATCH 070/393] Move mDNS initialization (#3412) --- src/js/mdns_discovery.js | 6 +++--- src/js/port_handler.js | 4 ++++ src/js/serial_backend.js | 2 -- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/js/mdns_discovery.js b/src/js/mdns_discovery.js index fb8fd0c8f7..4bc62f8393 100644 --- a/src/js/mdns_discovery.js +++ b/src/js/mdns_discovery.js @@ -35,8 +35,7 @@ MdnsDiscovery.initialize = function() { fqdn: `${service.name}._http._tcp.local.`, ready: true, }); - } - else if (action === 'added' && service.name.includes("elrs_rx")) { + } else if (action === 'added' && service.name.includes("elrs_rx")) { //restart zeroconf if service ip doesn't arrive in 1000ms setTimeout(() => { if (self.mdnsBrowser.services.length === 0 || self.mdnsBrowser.services.filter(s => s.fqdn === `${service.name}._http._tcp.local.`)[0].ready === false) { @@ -47,7 +46,8 @@ MdnsDiscovery.initialize = function() { } }); } - reinit(); + + reinit(); } else { const bonjour = require('bonjour')(); diff --git a/src/js/port_handler.js b/src/js/port_handler.js index 678f858abe..b077566e3a 100644 --- a/src/js/port_handler.js +++ b/src/js/port_handler.js @@ -50,6 +50,10 @@ PortHandler.reinitialize = function () { this.showAllSerialDevices = getConfig('showAllSerialDevices').showAllSerialDevices; this.useMdnsBrowser = getConfig('useMdnsBrowser').useMdnsBrowser; + if (this.useMdnsBrowser) { + MdnsDiscovery.initialize(); + } + this.check(); // start listening, check after TIMEOUT_CHECK ms }; diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index 304c937bb1..38a4215632 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -12,7 +12,6 @@ import PortUsage from "./port_usage"; import PortHandler from "./port_handler"; import CONFIGURATOR, { API_VERSION_1_45, API_VERSION_1_46 } from "./data_storage"; import serial from "./serial"; -import MdnsDiscovery from "./mdns_discovery"; import UI_PHONES from "./phones_ui"; import { bit_check } from './bit.js'; import { sensor_status, have_sensor } from "./sensor_helpers"; @@ -171,7 +170,6 @@ export function initializeSerialBackend() { setConfig({'auto_connect': GUI.auto_connect}); }); - MdnsDiscovery.initialize(); PortHandler.initialize(); PortUsage.initialize(); } From 64f31cf65245a0aa90ed4bd7d0a2c045f1bb289a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 10 Apr 2023 13:17:01 +0200 Subject: [PATCH 071/393] Update translations (#3416) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 47 ++++++++++++---- locales/da/messages.json | 105 +++++++++++++++++++++++------------- locales/de/messages.json | 21 +++----- locales/es/messages.json | 58 +++++++++++++++----- locales/eu/messages.json | 12 ++--- locales/fr/messages.json | 12 ++--- locales/gl/messages.json | 100 ++++++++++++++++++++++++++++++---- locales/it/messages.json | 40 ++++++++++---- locales/ja/messages.json | 45 +++++++++++++--- locales/ko/messages.json | 47 ++++++++++++---- locales/nl/messages.json | 12 ++--- locales/pl/messages.json | 12 ++--- locales/pt/messages.json | 44 +++++++++++---- locales/pt_BR/messages.json | 12 ++--- locales/ru/messages.json | 12 ++--- locales/zh_CN/messages.json | 12 ++--- locales/zh_TW/messages.json | 12 ++--- 17 files changed, 436 insertions(+), 167 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index 9a1a40d1c5..5f7544b9ad 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -741,6 +741,16 @@ "initialSetupButtonResetZaxisValue": { "message": "Restableix l'eix Z, offset: $1 graus" }, + "initialSetupHeading": { + "message": "Títol:", + "description": "Heading shown on Setup tab" + }, + "initialSetupPitch": { + "message": "Pitch:" + }, + "initialSetupRoll": { + "message": "Roll:" + }, "initialSetupMixerHead": { "message": "Tipus de Mixer" }, @@ -774,18 +784,16 @@ "initialSetupAccelTrimsHead": { "message": "Trim d'acceleròmetre" }, - "initialSetupPitch": { - "message": "Pitch:" - }, - "initialSetupRoll": { - "message": "Roll:" - }, "initialSetupMagHead": { "message": "Magnetòmetre" }, "initialSetupInfoHead": { "message": "Informació del sistema" }, + "initialSetupInfoHeadHelp": { + "message": "Mostra les banderes FC per al desarmament, la informació de la bateria, el nivell RSSI i el maquinari dels sensors", + "description": "Message that pops up to describe the System info section" + }, "initialSetupBattery": { "message": "Voltatge de bateria:" }, @@ -804,6 +812,9 @@ "initialSetupBatteryAValue": { "message": "$1 A" }, + "initialSetupCpuTemp": { + "message": "Temperatura CPU:" + }, "initialSetupRSSI": { "message": "RSSI:" }, @@ -933,32 +944,50 @@ "initialSetupGPSHead": { "message": "GPS" }, + "initialSetupGPSHeadHelp": { + "message": "Mostra la informació del GPS, si està activada correctament a la pestanya Ports, la pestanya Configuració i la pestanya GPS", + "description": "Message that pops up to describe the GPS section" + }, "initialSetupInstrumentsHead": { "message": "Instruments" }, + "initialSetupInstrumentsHeadHelp": { + "message": "Mostra el sentit, el Pitch i el Roll en els instruments", + "description": "Message that pops up to describe the Instruments section" + }, "initialSetupInfoAPIversion": { "message": "MSP API:" }, "initialSetupInfoBuild": { "message": "Informació del programari" }, + "initialSetupInfoBuildHelp": { + "message": "Mostra informació sobre la creació del microprogramari. La configuració de compilació i el registre de Bulid enllacen a la informació del núvol que troba la clau de compilació", + "description": "Message that pops up to describe the Build / Firmware section" + }, "initialSetupInfoBuildDate": { "message": "Data de compilació:" }, "initialSetupInfoBuildInfo": { "message": "Informació de la compilació:" }, + "initialSetupInfoBuildInfoKey": { + "message": "Clau de compilació" + }, "initialSetupInfoBuildInfoConfig": { - "message": "Configuració de la compilació" + "message": "Configuració" }, "initialSetupInfoBuildInfoLog": { - "message": "Log de la compilació" + "message": "Registre" }, "initialSetupInfoBuildOptions": { "message": "Opcions de compilació:" }, + "initialSetupInfoBuildOptionsList": { + "message": "Defineix utilitzat" + }, "initialSetupInfoBuildOptionsEmpty": { - "message": "Compilació local - Sense definició" + "message": "Compilació local - No es fa servir definició" }, "initialSetupButtonSave": { "message": "Desa" diff --git a/locales/da/messages.json b/locales/da/messages.json index 48dd11be42..a2912eb130 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -78,7 +78,7 @@ "message": "Indsend" }, "autoConnectEnabled": { - "message": "Autotilslut: Aktiveret - Opsæt automatiske tilslutningsforsøg, når ny port registreres" + "message": "Autotilslut er aktiv - tilslutning forsøges automatisk, når ny port registreres" }, "autoConnectDisabled": { "message": "Autotilslut er slået fra - Du skal selv vælge den korrekte serielle port og klikke på knappen \"Tilslut\"" @@ -468,7 +468,7 @@ "message": "
    *** Logoplysninger sendt ***
    Id: $1


    # medsend kopi af ID ved henvendelser til Betaflight team." }, "buildKey": { - "message": "Build nøgle: $1" + "message": "Build ID: $1" }, "supportWarningDialogTitle": { "message": "Bekræft indsendelse af log oplysninger" @@ -528,7 +528,7 @@ "message": "Board: $1, version: $2" }, "buildInfoReceived": { - "message": "Kørende firmware udgivet: $1" + "message": "Anvendt firmware release: $1" }, "fcInfoReceived": { "message": "Flight controller (FC) info, identifikator: $1, version: $2" @@ -733,6 +733,16 @@ "initialSetupButtonResetZaxisValue": { "message": "Nulstil Z-akse, forskydn.: $1 gr" }, + "initialSetupHeading": { + "message": "Kurs:", + "description": "Heading shown on Setup tab" + }, + "initialSetupPitch": { + "message": "Højderor:" + }, + "initialSetupRoll": { + "message": "Krængror:" + }, "initialSetupMixerHead": { "message": "Mixertype" }, @@ -766,18 +776,16 @@ "initialSetupAccelTrimsHead": { "message": "Accelerometer trim" }, - "initialSetupPitch": { - "message": "Højderor:" - }, - "initialSetupRoll": { - "message": "Krængror:" - }, "initialSetupMagHead": { "message": "Magnetometer" }, "initialSetupInfoHead": { "message": "System info" }, + "initialSetupInfoHeadHelp": { + "message": "Viser FC flag som betyder deaktivering. Også batteri information, RSSI niveau og Sensor hardware", + "description": "Message that pops up to describe the System info section" + }, "initialSetupBattery": { "message": "Batteri spænding:" }, @@ -796,6 +804,9 @@ "initialSetupBatteryAValue": { "message": "$1 A" }, + "initialSetupCpuTemp": { + "message": "CPU temperatur:" + }, "initialSetupRSSI": { "message": "RSSI:" }, @@ -925,32 +936,50 @@ "initialSetupGPSHead": { "message": "GPS" }, + "initialSetupGPSHeadHelp": { + "message": "Viser GPS information, hvis indstillet i Porte, Opsætning og GPS fane", + "description": "Message that pops up to describe the GPS section" + }, "initialSetupInstrumentsHead": { "message": "Instrumenter" }, + "initialSetupInstrumentsHeadHelp": { + "message": "Viser kurs, stigning og krængning", + "description": "Message that pops up to describe the Instruments section" + }, "initialSetupInfoAPIversion": { "message": "MSP API:" }, "initialSetupInfoBuild": { "message": "Firmware info" }, + "initialSetupInfoBuildHelp": { + "message": "Viser oplysninger om release. Release Konfiguration og release Log peger til links i skyen via Release ID", + "description": "Message that pops up to describe the Build / Firmware section" + }, "initialSetupInfoBuildDate": { - "message": "Build dato:" + "message": "Release dato:" }, "initialSetupInfoBuildInfo": { - "message": "Build info:" + "message": "Release info:" + }, + "initialSetupInfoBuildInfoKey": { + "message": "Release ID" }, "initialSetupInfoBuildInfoConfig": { - "message": "Build config" + "message": "Konfiguration" }, "initialSetupInfoBuildInfoLog": { - "message": "Build log" + "message": "Log" }, "initialSetupInfoBuildOptions": { - "message": "Build valg:" + "message": "Release valg:" + }, + "initialSetupInfoBuildOptionsList": { + "message": "Defines for release" }, "initialSetupInfoBuildOptionsEmpty": { - "message": "Lokal build - ingen valg" + "message": "Lokal release - ingen Defines anvendt" }, "initialSetupButtonSave": { "message": "Gem" @@ -1013,7 +1042,7 @@ "message": "Her tilvælges GPS til navigation, men du skal først konfigurere en port til GPS i fanen Porte, før aktiveringen kan gemmes." }, "featureSONAR": { - "message": "Sonar" + "message": "Sonar afstandsmåler" }, "featureTELEMETRY": { "message": "Telemetri protokol" @@ -1040,7 +1069,7 @@ "message": "Er denne funktion aktiveret, og er ingen visningsenhed tilsluttet (eller er visningsenheden ikke tændt), vil der være en forsinkelse på ca. 10 sek. ved genstart af FC." }, "featureOSD": { - "message": "On Screen-visning" + "message": "On Screen Display (OSD)" }, "featureCHANNEL_FORWARDING": { "message": "Videresend aux-kanaler til servoudgange" @@ -1094,7 +1123,7 @@ "message": "Telemetri" }, "configurationTelemetryHelp": { - "message": "Telemetri output sendes fra modtager" + "message": "Telemetri data transmitteres til sender" }, "configurationRSSI": { "message": "RSSI (signalstyrke)" @@ -1106,7 +1135,7 @@ "message": "ESC-/Motorfunktioner" }, "configurationFeaturesHelp": { - "message": "Bemærk: Ikke alle kombinationer af funktioner fungerer. Opdager FC firmwaren modstridende kombinationer, deaktiveres de uden videre.
    Bemærk: Opsæt seriel porte inden aktivering af funktioner, som skal benytter portene." + "message": "Bemærk: Ikke alle kombinationer af funktioner fungerer. Opdager FC firmwaren modstridende kombinationer, deaktiveres de uden videre.
    Bemærk: Opsæt porte og andet inden aktivering af funktioner , på fanen Porte." }, "configurationSerialRXHelp": { "message": "• UART til modtageren skal indstilles til ‘Serial Rx’ (i fanen Porte)
    • Vælg den korrekte leverandør protokol i rullemenu" @@ -1352,7 +1381,7 @@ "description": "Value for some options that show the speed of gyro, pid, etc. in kHz" }, "configurationLoopTimeHelp": { - "message": "Benærk: Tjek, at din FC er i stand til at fungere ved disse frekvenser! Tjek CPU- og klokfrekvensstabilitet. Ændring af dette kan kræve PID-genindstilling. TIP: Deaktivér accelerometer og evt. andre sensorer for højere CPU ydeevne." + "message": "Bemærk: Tjek, at din FC er i stand til at fungere ved disse frekvenser! Tjek CPU- og klokfrekvensstabilitet. Ændring kan betyde PID-genindstilling.
    TIP: Deaktivér accelerometer og evt. andre sensorer for højere CPU ydeevne." }, "configurationGPS": { "message": "GPS konfiguration" @@ -1419,7 +1448,7 @@ "message": "Sensor input protokol" }, "portsTelemetryOut": { - "message": "Telemetri output protokol" + "message": "Telemetri protokol" }, "portsPeripherals": { "message": "Tilbehør" @@ -1993,7 +2022,7 @@ "message": "Pid Tuning Slider tilstand

    Pidtuning slider mode kan være:

    • FRA - ingen skydere, indtast værdier manuelt
    • RP - skydere kontrol Roll og Pitch kun, indtast sideror værdier manuelt
    • RPY - skydere styrer alle PID værdier

    Advarsel:At gå fra RP til RPY tilstand vil overskrive sideror indstillinger med firmware indstillinger." }, "receiverHelp": { - "message": "• Kontroller altid, at din konfiguration af fejlsikring fungerer korrekt! Indstillingerne på fanen Fejlsikring kræver Configuration er i Eksperttilstand.
    Brug den seneste Tx firmware!
    Deaktiver hardware-ADC-filteret i senderen, hvis du bruger OpenTx eller EdgeTx.
    Grundlæggende opsætning: Indstil indstillingerne 'Modtager' korrekt. Vælg det korrekte 'Kanalkort' for din radio. Kontroller at krængror, højderor, gas, sideror og andre søjlegrafer bevæger sig korrekt. Justér kanalens endepunkt eller intervalværdier i senderen til ~1000 til ~2000, og sæt midtpunktet til 1500.
    For mere information, læs dokumentationen." + "message": "• Kontroller altid, at din konfiguration af fejlsikring fungerer korrekt ! Indstillingerne på fanen Fejlsikring kræver Configurator er i Eksperttilstand.
    Brug den seneste firmware i din sender / transmitter ! Deaktiver altid ADC filter i senderen, hvis du bruger fx OpenTx eller EdgeTx.
    Grundlæggende opsætning: Indstil indstillingerne 'Modtager' korrekt. Vælg det korrekte 'Kanalkort' for din radio. Kontroller at krængror, højderor, gas, sideror og andre søjlegrafer bevæger sig korrekt. Justér kanalens endepunkt eller intervalværdier i senderen til ~1000 til ~2000, og sæt midtpunktet til 1500.
    For mere information, læs dokumentationen." }, "receiverThrottleMid": { "message": "Gas MID" @@ -2568,15 +2597,15 @@ "description": "Help text for the telemetry values in the motors tab." }, "motorsRPM": { - "message": "R: {{motorsRpmValue}}", + "message": "Rpm: {{motorsRpmValue}}", "description": "To put under the motors in the motors tab. KEEP IT SHORT or not translate. Keep the letters as prefix. Shows the RPM of the motor if telemetry is available." }, "motorsRPMError": { - "message": "F: {{motorsErrorValue}}%", + "message": "Fejl: {{motorsErrorValue}}%", "description": "To put under the motors in the motors tab. KEEP IT SHORT or not translate. Shows the error of motor telemetry if available." }, "motorsESCTemperature": { - "message": "T: {{motorsESCTempValue}}°C", + "message": "Tmp: {{motorsESCTempValue}}°C", "description": "To put under the motors in the motors tab. KEEP IT SHORT or not translate. Shows the ESC temperature if available." }, "motorsMaster": { @@ -2955,7 +2984,7 @@ "message": "Vælg github commit" }, "firmwareFlasherReleaseSummaryHead": { - "message": "Release og build information" + "message": "Release information" }, "firmwareFlasherReleaseManufacturer": { "message": "Producent ID:" @@ -2982,7 +3011,7 @@ "message": "MCU:" }, "firmwareFlasherCloudBuildDetails": { - "message": "Build i skyen - detajler:" + "message": "Release i skyen - detajler:" }, "firmwareFlasherCloudBuildLogUrl": { "message": "Vis log." @@ -3150,7 +3179,7 @@ "message": "Besked:" }, "firmwareFlasherWarningText": { - "message": "Du bør ikke brænde ikke-Betaflight / ikke-complient Betaflight hardware med denne firmware brænder.
    Du må ikke frakoble FC eller slukke din pc under brænding.

    Bemærk: STM32 bootloader er gemt i ROM, som ikke kan ændres.
    Bemærk: Auto-Connect er altid deaktiveret, mens du er inde i firmware brænder.
    Bemærk: Sørg for at du har en sikkerhedskopi af din FC konfiguration; nogle opgraderinger/nedgraderinger vil slette/ændre din konfiguration.
    Bemærk: Hvis du har problemer efter brænding, prøv først at frakoble alle kabler fra din FC, prøv genstart, prøv at genindstaller/opgrader drivere.
    Bemærk: Når du brænder FC, som er direkte tilsluttet USB (de fleste nyere FC), sørg for at have læst afsnittet USB Flashing i Betaflight manual og at du har installeret den korrekte software og drivere" + "message": "Du bør ikke brænde ikke-Betaflight / ikke-complient Betaflight hardware med denne firmware brænder.
    Du må ikke frakoble FC eller slukke din pc under brænding.

    Bemærk: STM32 bootloader er gemt i ROM, som ikke kan ændres.
    Bemærk: Autotilslut er altid deaktiveret, mens du er inde i firmware brænder.
    Bemærk: Sørg for at du har en sikkerhedskopi af din FC konfiguration; nogle opgraderinger/nedgraderinger vil slette/ændre din konfiguration.
    Bemærk: Hvis du har problemer efter brænding, prøv først at frakoble alle kabler fra din FC, prøv genstart, prøv at genindstaller/opgrader drivere.
    Bemærk: Når du brænder FC, som er direkte tilsluttet USB (de fleste nyere FC), sørg for at have læst afsnittet USB Flashing i Betaflight manual og at du har installeret den korrekte software og drivere" }, "firmwareFlasherRecoveryHead": { "message": "Gendannelse / tabt kommunikation" @@ -3244,7 +3273,7 @@ "message": "Jeg har læst ovenstående og Jeg påtager mig det fulde ansvar for at anvende en udviklings firmware release" }, "unstableFirmwareAcknowledgementFlash": { - "message": "Installer firmware" + "message": "Brænd firmware" }, "firmwareFlasherPreviousDevice": { "message": "Detekteret: $1 - tidligere enhed flashes stadig, gentilslut og forsøg igen" @@ -4158,7 +4187,7 @@ "message": "Integreret sideror integrerer sideror P, I og D værdier, der tillader at sideror P, I og D kan tunes lidt, som hvis du tuner højderor og krængror.

    Meget lidt I er påkrævet, fordi den integrerede P fungerer som I, og integreret D fungerer som P.

    BEMÆRK: Integreret sideror kræver brug af Absolut kontrol, da der ikke er brug for I med Integreret sideror." }, "configHelp2": { - "message": "Voldgiftspanelrotation i grader, for at tillade montering det sidelæns / på hovedet / roteret osv. Når du kører eksterne sensorer, skal du bruge sensorindstillingerne (Gyro, Acc, Mag) til at definere sensorpositionen uafhængigt af brætretning. " + "message": "Relativ rotation i grader, for at tillade montering sidelæns / på hovedet / roteret osv. Når du anvender eksterne sensorer, skal du bruge sensorindstillingerne (Gyro, Acc, Mag) til at definere sensorposition uafhængigt af montering. " }, "failsafeFeaturesHelpOld": { "message": "Fejlsikring konfiguration er ændret betydeligt. Brug Betaflight v1.12.0+ for at aktivere det forbedrede konfigurationspanel." @@ -4170,28 +4199,28 @@ "message": "Fejlsikring har to faser.
    \nFase 1
    begynder, når en flykanal har en ugyldig pulslængde, modtageren rapporterer fejlsikret tilstand eller der mangler signal fra modtageren, hvorefter kanalreserveindstillingerne for alle kanaler anvendes, og der ventes et kort øjeblik for at muliggøre gendannelse.
    \nFase 2
    begynder, når fejltilstanden, mens fartøjet er aktiveret, tager længere tid end den opsatte beskyttelsestid, og her forbliver alle kanaler på den anvendte kanalreserveindstilling, medmindre den tilsidesættes af den valgte procedure.
    Bemærk: Inden Fase 1 begynder, anvendes kanalreserveindstillingerne også på individuelle AUX-kanaler, som har ugyldige impulser." }, "failsafePulsrangeTitle": { - "message": "Gyldig Pulse Range-indstillinger" + "message": "Indstilling af gyldigt signal interval" }, "failsafePulsrangeHelp": { - "message": "Pulser kortere end minimum eller længere end maksimum er ugyldige og vil udløse anvendelse af individuelle kanalreserveindstillinger for AUX-kanaler eller effektuering af trin 1 for flykanaler" + "message": "Forsvinder signal fra sender kortere end minimum eller længere end maksimum, udløses fejlsikring for kanaler efter indstilling nedenfor og aktivering af fejlsikring indstilling - trin 1 eller trin 2" }, "failsafeRxMinUsecItem": { - "message": "Minimumslængde" + "message": "Mindste signal" }, "failsafeRxMaxUsecItem": { - "message": "Maskimumslængde" + "message": "Største signal" }, "failsafeChannelFallbackSettingsTitle": { - "message": "Kanal Fallback indstillinger" + "message": "Fejlsikring for kanaler" }, "failsafeChannelFallbackSettingsHelp": { - "message": "Disse indstillinger anvendes på ugyldige individuelle AUX-kanaler eller på alle kanaler, når disse overgår til Trin 1. Bemærk: Værdierne gemmes i trin på 25 mikrosek, så små ændringer forsvinder" + "message": "Disse indstillinger anvendes ved fejlsikring for individuelle kanaler eller på alle kanaler, når disse overgår til fejlsikring Trin 1. Bemærk: Værdierne gemmes i trin på 25 mikrosek, så små ændringer udjævnes" }, "failsafeChannelFallbackSettingsAuto": { - "message": "Auto betyder krængror, højderor og sideror til centrum og gas lav. Hold betyder at den sidste gode modtagne værdi fastholdes" + "message": "Auto betyder krængror, højderor og sideror til centrum og gas lav.
    Hold betyder at den sidste gode modtagne værdi fastholdes" }, "failsafeChannelFallbackSettingsHold": { - "message": "Hold betyder at opretholde den sidste gode værdi modtaget. Sæt betyder, at værdien angivet her vil blive brugt" + "message": "Hold betyder at opretholde den sidste gode værdi modtaget.
    Sæt betyder, at værdien angivet her vil blive brugt" }, "failsafeStageTwoSettingsTitle": { "message": "Trin 2 - Indstillinger" diff --git a/locales/de/messages.json b/locales/de/messages.json index fe6d00f106..c946b07139 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -736,6 +736,12 @@ "initialSetupButtonResetZaxisValue": { "message": "Z Achse zurücksetzen, Abweichung: $1 Grad" }, + "initialSetupPitch": { + "message": "Pitch:" + }, + "initialSetupRoll": { + "message": "Roll:" + }, "initialSetupMixerHead": { "message": "Mixer Typ" }, @@ -769,12 +775,6 @@ "initialSetupAccelTrimsHead": { "message": "Beschleunigungssensor Anpassung" }, - "initialSetupPitch": { - "message": "Pitch:" - }, - "initialSetupRoll": { - "message": "Roll:" - }, "initialSetupMagHead": { "message": "Magnetometer" }, @@ -943,18 +943,9 @@ "initialSetupInfoBuildInfo": { "message": "Erstellungsinfo (build info):" }, - "initialSetupInfoBuildInfoConfig": { - "message": "Erstellungskonfiguration (build config)" - }, - "initialSetupInfoBuildInfoLog": { - "message": "Erstellungslog (build log)" - }, "initialSetupInfoBuildOptions": { "message": "Erstellungsoptionen (build options):" }, - "initialSetupInfoBuildOptionsEmpty": { - "message": "Lokaler Build - keine Definitionen" - }, "initialSetupButtonSave": { "message": "Speichern" }, diff --git a/locales/es/messages.json b/locales/es/messages.json index bbe97b93e0..782c9a02e1 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -733,6 +733,16 @@ "initialSetupButtonResetZaxisValue": { "message": "Reiniciar eje Z, desplazamiento: $1 grad" }, + "initialSetupHeading": { + "message": "Rumbo:", + "description": "Heading shown on Setup tab" + }, + "initialSetupPitch": { + "message": "Pitch:" + }, + "initialSetupRoll": { + "message": "Roll:" + }, "initialSetupMixerHead": { "message": "Tipo Mezclador" }, @@ -766,18 +776,16 @@ "initialSetupAccelTrimsHead": { "message": "Trimados del acelerómetro" }, - "initialSetupPitch": { - "message": "Pitch:" - }, - "initialSetupRoll": { - "message": "Roll:" - }, "initialSetupMagHead": { "message": "Magnetómetro" }, "initialSetupInfoHead": { "message": "Información del sistema" }, + "initialSetupInfoHeadHelp": { + "message": "Muestra motivos de desarme del FC, información de batería, nivel RSSI y sensores de hardware", + "description": "Message that pops up to describe the System info section" + }, "initialSetupBattery": { "message": "Voltaje batería:" }, @@ -796,6 +804,9 @@ "initialSetupBatteryAValue": { "message": "$1 A" }, + "initialSetupCpuTemp": { + "message": "Temperatura de la CPU:" + }, "initialSetupRSSI": { "message": "RSSI:" }, @@ -925,32 +936,50 @@ "initialSetupGPSHead": { "message": "GPS" }, + "initialSetupGPSHeadHelp": { + "message": "Muestra la información del GPS, si está correctamente activado en las pestañas de Puertos, Configuración y GPS", + "description": "Message that pops up to describe the GPS section" + }, "initialSetupInstrumentsHead": { "message": "Instrumentos" }, + "initialSetupInstrumentsHeadHelp": { + "message": "Muestra instrumentos de rumbo, pitch y roll", + "description": "Message that pops up to describe the Instruments section" + }, "initialSetupInfoAPIversion": { "message": "MSP API:" }, "initialSetupInfoBuild": { "message": "Información del firmware" }, + "initialSetupInfoBuildHelp": { + "message": "Muestra información sobre la compilación del firmware. Los enlaces del Registro de Configuración y de Compilación enlazan con la información en la nube encontrada para la clave de compilación", + "description": "Message that pops up to describe the Build / Firmware section" + }, "initialSetupInfoBuildDate": { "message": "Fecha de compilación:" }, "initialSetupInfoBuildInfo": { "message": "Información de compilación:" }, + "initialSetupInfoBuildInfoKey": { + "message": "Clave de compilación" + }, "initialSetupInfoBuildInfoConfig": { - "message": "Configuración de compilación" + "message": "Configuración" }, "initialSetupInfoBuildInfoLog": { - "message": "Registro de compilación" + "message": "Registro" }, "initialSetupInfoBuildOptions": { "message": "Opciones de compilación:" }, + "initialSetupInfoBuildOptionsList": { + "message": "DEFINES usados" + }, "initialSetupInfoBuildOptionsEmpty": { - "message": "Compilación local - sin Defines" + "message": "Compilación local - sin DEFINES" }, "initialSetupButtonSave": { "message": "Guardar" @@ -2420,7 +2449,7 @@ "message": "Longitud:" }, "gpsHeading": { - "message": "Encabezado:" + "message": "Rumbo:" }, "gpsSpeed": { "message": "Velocidad:" @@ -2810,6 +2839,9 @@ "loggingLogSize": { "message": "Tamaño de Archivo:" }, + "loggingLogName": { + "message": "Nombre del registro:" + }, "loggingButtonLogFile": { "message": "Seleccionar Archivo de Registro" }, @@ -3578,7 +3610,7 @@ "message": "Barómetro y Sonar/Altitud" }, "pidTuningMag": { - "message": "Magnetómetro/Dirección" + "message": "Magnetómetro/Rumbo" }, "pidTuningGps": { "message": "Navegación GPS" @@ -5166,7 +5198,7 @@ "description": "One of the elements of the OSD" }, "osdDescElementNumericalHeading": { - "message": "Lectura numérica de la dirección actual en grados" + "message": "Lectura numérica del rumbo actual en grados" }, "osdTextElementNumericalVario": { "message": "Variómetro numérico", @@ -5180,7 +5212,7 @@ "description": "One of the elements of the OSD" }, "osdDescElementCompassBar": { - "message": "Barra gráfica con una brújula mostrando la dirección actual" + "message": "Barra gráfica con una brújula mostrando el rumbo actual" }, "osdTextElementWarnings": { "message": "Avisos", diff --git a/locales/eu/messages.json b/locales/eu/messages.json index 6f932c37a1..77a88eb691 100644 --- a/locales/eu/messages.json +++ b/locales/eu/messages.json @@ -621,6 +621,12 @@ "initialSetupButtonResetZaxisValue": { "message": "Berrezarri Z ardatza, desplazatua: $1 gradu" }, + "initialSetupPitch": { + "message": "Pitch:" + }, + "initialSetupRoll": { + "message": "Roll:" + }, "initialSetupMixerHead": { "message": "Nahaste-mota" }, @@ -654,12 +660,6 @@ "initialSetupAccelTrimsHead": { "message": "Azelerometroaren trimak" }, - "initialSetupPitch": { - "message": "Pitch:" - }, - "initialSetupRoll": { - "message": "Roll:" - }, "initialSetupMagHead": { "message": "Magnetometroa" }, diff --git a/locales/fr/messages.json b/locales/fr/messages.json index f9db6b44a5..aa9d33db8a 100644 --- a/locales/fr/messages.json +++ b/locales/fr/messages.json @@ -720,6 +720,12 @@ "initialSetupButtonResetZaxisValue": { "message": "Réinitialiser l'axe Z, écart: $1 deg" }, + "initialSetupPitch": { + "message": "Pitch:" + }, + "initialSetupRoll": { + "message": "Roll:" + }, "initialSetupMixerHead": { "message": "Type de mixer" }, @@ -753,12 +759,6 @@ "initialSetupAccelTrimsHead": { "message": "Trim accéléromètre" }, - "initialSetupPitch": { - "message": "Pitch:" - }, - "initialSetupRoll": { - "message": "Roll:" - }, "initialSetupMagHead": { "message": "Magnetomètre" }, diff --git a/locales/gl/messages.json b/locales/gl/messages.json index cff413fb1e..60e486a12c 100644 --- a/locales/gl/messages.json +++ b/locales/gl/messages.json @@ -609,12 +609,18 @@ "defaultContributingHead": { "message": "Contribuir" }, + "defaultContributingText": { + "message": "Se quere axudar a mellorar aínda máis Betaflight, pode axudar de moitas maneiras, entre elas:
    • empregando o seu coñecemento de Betaflight para crear ou actualizar contido en na nosa Wiki, ou respondendo ás preguntas doutros usuarios nos foros en liña;
    • contribuindo código ao firmware e ao configurador - novas funcións, correccións, melloras;
    • probas novas funcións e correccións e proporcionar comentarios;
    • axudando a outros usuarios a resolven os problemas dos que informan no no noso rastreador de problemas e participar en discusións sobre solicitudes de funcións;
    • traducindo Betaflight Configurator a un novo idioma ou axudando a manter as traducións existentes.
    " + }, "defaultFacebookText": { "message": "Tamén temos un Grupo de Facebook.
    Únase a nós para obter un lugar onde falar sobre Betaflight, facer preguntas sobre a configuración ou simplemente pasar un rato cos compañeiros pilotos." }, "defaultDiscordText": { "message": "Betaflight Server Discord.
    Comparte a túa experiencia de voo, fala de BetaFlight, axudar a outras persoas ou obter axuda por si mesmo da comunidade." }, + "statisticsDisclaimer": { + "message": "Betaflight Configurator recolle estatísticas de uso anónimas. Por exemplo, estes datos inclúen (pero non están limitados a) o número de lanzamentos, a rexión xeográfica dos usuarios, os tipos de controladores de voo, as versións de firmware, o uso de elementos e pestanas da IU, etc. O resumo destes datos compártese aquí. A recollida realízase para comprender mellor como se está a utilizar Betaflight Configurator, para comprender as tendencias da comunidade e para posibles melloras na IU. Os usuarios poden desactivar a recollida de datos na pestana Opcións." + }, "defaultChangelogHead": { "message": "Configurator - Novidades" }, @@ -712,6 +718,9 @@ "initialSetupBackupRestoreHeader": { "message": "Copia de seguridade e restauración experimental" }, + "initialSetupBackupRestoreText": { + "message": "Fai unha copia de seguridade da súa configuración en caso de accidente, a configuración da CLI non está incluída - use o comando \"diff all\" en CLI para iso." + }, "initialSetupRebootBootloaderText": { "message": "Reinicia en modocargador de arranque / DFU ." }, @@ -727,6 +736,16 @@ "initialSetupButtonResetZaxisValue": { "message": "Reiniciar eixo Z, offset: $1 º" }, + "initialSetupHeading": { + "message": "Título:", + "description": "Heading shown on Setup tab" + }, + "initialSetupPitch": { + "message": "Pitch:" + }, + "initialSetupRoll": { + "message": "Roll:" + }, "initialSetupMixerHead": { "message": "Tipo Mezclador" }, @@ -760,18 +779,16 @@ "initialSetupAccelTrimsHead": { "message": "Acelerómetro trims" }, - "initialSetupPitch": { - "message": "Pitch:" - }, - "initialSetupRoll": { - "message": "Roll:" - }, "initialSetupMagHead": { "message": "Magnetómetro" }, "initialSetupInfoHead": { "message": "Información do sistema" }, + "initialSetupInfoHeadHelp": { + "message": "Mostra avisos da FC para o desarmado, a información da batería, o nivel RSSI e o hardware dos sensores", + "description": "Message that pops up to describe the System info section" + }, "initialSetupBattery": { "message": "Voltaxe da batería:" }, @@ -790,6 +807,9 @@ "initialSetupBatteryAValue": { "message": "$1 A" }, + "initialSetupCpuTemp": { + "message": "Temperatura CPU:" + }, "initialSetupRSSI": { "message": "RSSI:" }, @@ -919,32 +939,50 @@ "initialSetupGPSHead": { "message": "GPS" }, + "initialSetupGPSHeadHelp": { + "message": "Mostra a información do GPS, se está activado correctamente nas pestanas Portos, Configuración e GPS", + "description": "Message that pops up to describe the GPS section" + }, "initialSetupInstrumentsHead": { "message": "Instrumentos" }, + "initialSetupInstrumentsHeadHelp": { + "message": "Mostra Rumbo, Pitch e Roll nos instrumentos", + "description": "Message that pops up to describe the Instruments section" + }, "initialSetupInfoAPIversion": { "message": "MSP API:" }, "initialSetupInfoBuild": { "message": "Información do firmware" }, + "initialSetupInfoBuildHelp": { + "message": "Mostra información sobre a compilación do firmware. A configuración de compilación e o rexistro de Bulid enlazan coa información da nube atopada pola clave de compilación", + "description": "Message that pops up to describe the Build / Firmware section" + }, "initialSetupInfoBuildDate": { "message": "Data de compilación:" }, "initialSetupInfoBuildInfo": { "message": "Información da compilación:" }, + "initialSetupInfoBuildInfoKey": { + "message": "Chave de compilación" + }, "initialSetupInfoBuildInfoConfig": { - "message": "Configuración da compilación" + "message": "Configuración" }, "initialSetupInfoBuildInfoLog": { - "message": "Rexistro da compilación" + "message": "Rexistro" }, "initialSetupInfoBuildOptions": { "message": "Opcións da compilación:" }, + "initialSetupInfoBuildOptionsList": { + "message": "Definicións empregadas" + }, "initialSetupInfoBuildOptionsEmpty": { - "message": "Compilación local - sen definicións" + "message": "Compilación local - non se empregan definicións" }, "initialSetupButtonSave": { "message": "Gardar" @@ -1986,6 +2024,9 @@ "pidTuningSliderModeHelp": { "message": "Modo control deslizante de sintonía de PID

    Control deslizante modo Pidtuning pode ser:

    • OFF - sen controis deslizantes, meter valores manualmente
    • RP - Controis deslizantes so para Roll e Pitch, meter valores manualmente para Yaw
    • RPY - Controis deslizantes para tódolos valores de PID

    AVISO: Pasar de RP a RPY sobreescribirase a configuración de Yaw con configuracións do firmware." }, + "receiverHelp": { + "message": "• Comprobe sempre que o seu Failsafe funciona correctamente. A configuración está na pestana Failsafe, que require o modo experto.
    Utilice o firmware Tx máis recente!
    Desactivar o filtro ADC de hardware< /a> no transmisor se utiliza OpenTx ou EdgeTx.
    Configuración básica: configure a configuración do 'Receptor' correctamente. Escolla o \"Mapa de canles\" correcto para a súa radio. Comprobe que o Roll, Pitch e outros gráficos de barras se moven correctamente. Axuste o punto final da canle ou os valores do intervalo no transmisor entre ~1000 e ~2000 e establece o punto medio en 1500. Para obter máis información, lea o
    documentación." + }, "receiverThrottleMid": { "message": "Throttle MID" }, @@ -2612,6 +2653,9 @@ "motorsRemapDialogRiskNotice": { "message": "Aviso de seguridade
    Retire tódalas hélices para evitar lesións!
    Os motores xirarán" }, + "motorsRemapDialogExplanations": { + "message": "Aviso informativo
    Os motores xirarán un por un e poderá seleccionar que motor está a xirar. A batería debe estar conectada, debe seleccionarse o protocolo ESC correcto. Esta utilidade só pode reorganizar os motores actualmente activos. A reasignación máis complexa require o comando CLI Resource. Consulte esta páxina da Wiki." + }, "motorsRemapDialogSave": { "message": "Gardar" }, @@ -2798,6 +2842,9 @@ "loggingLogSize": { "message": "Tamaño Log:" }, + "loggingLogName": { + "message": "Nome do rexistro:" + }, "loggingButtonLogFile": { "message": "Arquivo de Log seleccionado" }, @@ -3026,6 +3073,9 @@ "firmwareFlasherOnlineSelectBoardDescription": { "message": "Selecciona ou detecta automaticamente a súa placa para ver os lanzamentos de firmware en liña dispoñibles - Seleccione o firmware correcto axeitado para a súa placa." }, + "firmwareFlasherOnlineSelectBoardHint": { + "message": "O configurador de Betaflight admite o flasheo de Unified Targets coas configuracións específicas da placa respectiva nun só paso.

    O concepto de Unified Targets significa que se pode usar o mesmo ficheiro .hex de firmware para todas as placas que utilicen o mesmo MCU.

    Betaflight 4.4 introduce Cloud Build

    Con Cloud Build necesitamos definir as opcións de hardware presentes na súa compilación.

    Para facer as diferentes placas funcionan co mesmo firmware, un ficheiro de configuración específico desprégase xunto co firmware cando se mostra un Unified Target.

    Con Local build podes cargar un ficheiro de configuración de destino unificado ou escoller unha placa antes de cargar un firmware .hex.

    Se atopas problemas ao usar o firmware, considera unirte a Discord ou abre un problema." + }, "firmwareFlasherOnlineSelectFirmwareVersionDescription": { "message": "Elixa a versión de firmware para a súa controladora." }, @@ -3137,6 +3187,9 @@ "firmwareFlasherRecoveryHead": { "message": " Recuperación / comunicación perdida " }, + "firmwareFlasherRecoveryText": { + "message": "Se perdeu a comunicación coa súa placa, sigua estes pasos para restaurar a comunicación:
    • Apagar
    • Active \"Sen secuencia de reinicio\", active \"Borrado completo do chip\".
    • Una os pines de ARRANQUE ou manteña premido o botón de ARRANQUE.
    • Encender (o LED de actividade NON parpadeará se se fai correctamente).
    • Instale todos os controladores STM32 e Zadig se é necesario (consulta Parpadeo USB do manual de Betaflight).
    • Pecha o configurador, reinicia o configurador.
    • Solte o botón BOOT se o teu FC ten un.
    • Flash co firmware correcto (usando a velocidade de transmisión manual se se especifica no manual do teu FC).
    • Apagar.
    • Eliminar o puente de arranque.
    • Acender (o LED de actividade debería parpadear).
    • Conéctese normalmente.
    " + }, "firmwareFlasherButtonLeave": { "message": "Abandoando o Instalador o Firmware" }, @@ -3216,6 +3269,9 @@ "firmwareFlasherDetectBoardQuery": { "message": "Consulte a información da placa para preseleccionar firmware adecuado" }, + "unstableFirmwareAcknowledgementDialog": { + "message": "Está a piques de flashear unha compilación de desenvolvemento do firmware. Estas compilacións son un traballo en curso, e pode ter calquera dos seguintes casos:
    • o firmware non funciona en absoluto;
    • o firmware non se pode voar;
    • Hai problemas de seguranza co firmware, por exemplo, fugas
    • o firmware pode facer que o controlador de voo non responda ou se dane
    Se continúa con flashear este firmware, asume a total responsabilidade do risco de que ocorra calquera dos feitos anteriores. Ademais, recoñece que é necesario realizar probas de banco exhaustivas con accesorios desactivados antes de intentar facer voar este firmware." + }, "unstableFirmwareAcknowledgement": { "message": "Lin o anterior e asumo a total responsabilidade de instalar un firmware inestable" }, @@ -3789,6 +3845,10 @@ "message": "Drift - Wobble:
    I Gains", "description": "I-term slider label" }, + "pidTuningIGainSliderHelp": { + "message": "Aumente ou diminúa I. Un I Máis alto pode mellorar o seguimento en xiros en espiral, órbitas ou comandos de aceleración do 0%. Demasiada I, sobre todo se non hai suficiente P, pode causar tambaleos ou rebote despois de xirar ou rodar ou reducir o acelerador ao 0%.

    como pode ser para manter o seguimento do cuádruple en xiros en espiral, órbitas, etc... pero non tan alto que comece a ver tambaleos ao cortar o acelerador ao 0%.

    Nota:
    Se experimenta un rebote nalgún momento que é fácil de ver, asegúrese de que \"I-term Relax\" estea activado e tente reducir o valor de iterm_relax_cutoff.", + "description": "I-gain Gain tuning slider helpicon message" + }, "pidTuningDMaxGainSlider": { "message": "Amortiguamento dinámico:
    D Max", "description": "D Min slider label" @@ -4027,6 +4087,9 @@ "pidTuningVbatSagCompensation": { "message": "Compensación da caída de tensión" }, + "pidTuningVbatSagCompensationHelp": { + "message": "Ofrece un acelerador e un rendemento PID consistentes no intervalo de tensión útil da batería aumentando a saída do motor a medida que cae a tensión da batería.

    A cantidade de compensación pode variar entre 0 e 100 %. Recoméndase unha compensación total (100 %).

    Visita o obxectivo de esta entrada do wiki para obter máis información." + }, "pidTuningVbatSagValue": { "message": "%" }, @@ -4105,6 +4168,9 @@ "pidTuningIdleMinRpm": { "message": "Valor Dinámico Idle [* 100 RPM]" }, + "pidTuningIdleMinRpmHelp": { + "message": "Dynamic Idle mellora o control a baixas revolucións e reduce o risco de desincronización do motor.

    Mellora a autoridade PID, a estabilidade do acelerador cero, o tempo de suspensión invertido e o freado do motor.

    As rpm mínimas de ralentí dinámico deben establecerse entre 3000 e 3500 rpm. Para 4.2, configure o valor de inactividade de DShot baixo, por exemplo, 1%. Non é necesario axustar o valor de DShot Idle en 4.3.

    Visita esta entrada do wiki< /a> para máis información." + }, "pidTuningIdleMinRpmDisabled": { "message": "Ralentí Dinámico está DESACTIVADO porque a Telemetría Dshot está DESACTIVADA" }, @@ -5821,6 +5887,10 @@ "osdButtonSaved": { "message": "Gardado" }, + "vtxHelp": { + "message": "Aquí pode configurar os valores para o seu transmisor de vídeo (VTX). Pode ver e cambiar os valores de transmisión, incluídas as táboas VTX, se o controlador de voo e o VTX o admiten.
    Para configurar o seu VTX, faga os seguintes pasos:
    1. Vaia a
    esta páxina;
    2. Busque o ficheiro de configuración VTX adecuado para o seu país e o seu modelo VTX e descárgueo;
    3. Faga clic en \"$t(vtxButtonLoadFile.message)\" a continuación, seleccione o ficheiro de configuración VTX e cárgueo;
    4. Verifique que a configuración é correcta;
    5. Faga clic en \"$t(vtxButtonSave.message)\" para almacenar a configuración de VTX no controlador de voo.
    6. Opcionalmente, faga clic en '$t(vtxButtonSaveLua.message)' para gardar un ficheiro de configuración lua que pode usar cos scripts lua de betaflight (Ver máis aquí.)", + "description": "Introduction message in the VTX tab" + }, "vtxMessageNotSupported": { "message": "Atención:O seu VTX non está configurado ou non é compatible. Polo tanto, non pode modificar os valores VTX desde aquí. Isto só será posible se o controlador de voo está unido ó VTX usando algún protocolo como Tramp ou SmartAudio e está configurado correctamente na pestana $t(tabPorts.message) se fose necesario.", "description": "Message to show when the VTX is not supported in the VTX tab" @@ -6298,6 +6368,9 @@ "dialogConfirmResetTitle": { "message": "Confirmar" }, + "dialogConfirmResetNote": { + "message": "AVISO: Está seguro de que quere restablecer TODAS as opcións á configuración predeterminada? Isto non é un \"restablecemento de fábrica\". Pode causar problemas inesperados e pode ser necesario volver a actualizar o firmware para poder conectarse de novo." + }, "dialogConfirmResetConfirm": { "message": "Resetear" }, @@ -6685,12 +6758,18 @@ "firmwareFlasherRadioProtocolDescription": { "message": "Seleccione o protocolo de radio que desexa incluír nesta compilación. Teña en conta que este é un menú despregable, pero quizais só se seleccione un elemento." }, + "firmwareFlasherTelemetryProtocolDescription": { + "message": "Seleccione o protocolo de telemetría que desexa incluír nesta compilación. Teña en conta que este é un menú despregable, pero quizais só se seleccione un elemento. Tamén hai algúns protocolos de telemetría que se activarán, independentemente da súa selección aquí en función do protocolo de radio seleccionado, p. ex. CRSF." + }, "firmwareFlasherOptionsDescription": { "message": "Seleccione as opcións xenéricas que desexa incluír nesta compilación. Teña en conta que este é un menú despregable e é posible que se seleccionen varios elementos. Elementos como correccións, p. ex. AKK VTX, están incluídos aquí." }, "firmwareFlasherMotorProtocolDescription": { "message": "Seleccione o protocolo de motor (ESC) que desexa incluír nesta compilación. Teña en conta que este é un menú despregable, pero quizais só se seleccione un elemento." }, + "firmwareFlasherBranchDescription": { + "message": "Especialmente útil para os desenvolvedores, pode seleccionar un PR combinado, especificar un commit sa ou especificar un PR \"aínda por combinar\" escribindo un # seguido do número de PR, por exemplo. #1234 (esta é a abreviatura da rama 'pull/1234/head')." + }, "firmwareFlasherCustomDefinesDescription": { "message": "Para os desenvolvedores, vostede pode engadir as definicións que precise, separadas por un \"espazo\", pero sen o prefixo \"USE_\", engadirase automaticamente para vostede." }, @@ -6700,6 +6779,9 @@ "coreBuild": { "message": "Só núcleo" }, + "coreBuildModeDescription": { + "message": "Esta opción constrúe un firmware que contén os controladores de hardware (e algunhas funcións limitadas). Está dispoñible para axudar na detección do hardware nun controlador de voo e só se proporciona para esa comodidade. Non todas as funcións estarán dispoñibles (só hardware) usando esta opción." + }, "showDevToolsOnStartup": { "message": "Abre automaticamente DevTools no modo de desenvolvemento", "description": "Text for the option to enable automatic opening of DevTools in debug mode" diff --git a/locales/it/messages.json b/locales/it/messages.json index 1e98410d0e..e8f6360970 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -733,6 +733,12 @@ "initialSetupButtonResetZaxisValue": { "message": "Reset asse Z, offset: $1 gradi" }, + "initialSetupPitch": { + "message": "Pitch:" + }, + "initialSetupRoll": { + "message": "Roll:" + }, "initialSetupMixerHead": { "message": "Tipo Mixer" }, @@ -766,18 +772,16 @@ "initialSetupAccelTrimsHead": { "message": "Trim Accelerometro" }, - "initialSetupPitch": { - "message": "Pitch:" - }, - "initialSetupRoll": { - "message": "Roll:" - }, "initialSetupMagHead": { "message": "Magnetometro" }, "initialSetupInfoHead": { "message": "Informazioni di sistema" }, + "initialSetupInfoHeadHelp": { + "message": "Mostra le spunte FC per il disarmo, informazioni batteria, il livello RSSI e l'hardware dei sensori", + "description": "Message that pops up to describe the System info section" + }, "initialSetupBattery": { "message": "Tensione Batteria:" }, @@ -925,32 +929,50 @@ "initialSetupGPSHead": { "message": "GPS" }, + "initialSetupGPSHeadHelp": { + "message": "Mostra le informazioni GPS, se attivato correttamente nella scheda Porte, Configurazione e GPS", + "description": "Message that pops up to describe the GPS section" + }, "initialSetupInstrumentsHead": { "message": "Strumentazione" }, + "initialSetupInstrumentsHeadHelp": { + "message": "Mostra Direzione, Pitch e Roll negli strumenti", + "description": "Message that pops up to describe the Instruments section" + }, "initialSetupInfoAPIversion": { "message": "MSP API:" }, "initialSetupInfoBuild": { "message": "Informazioni firmware" }, + "initialSetupInfoBuildHelp": { + "message": "Mostra informazioni sulla build del firmware. La Build Config e Build Log sono collegate alle informazioni cloud trovate dalla chiave Build", + "description": "Message that pops up to describe the Build / Firmware section" + }, "initialSetupInfoBuildDate": { "message": "Data build:" }, "initialSetupInfoBuildInfo": { "message": "Informazioni sulla build:" }, + "initialSetupInfoBuildInfoKey": { + "message": "Chiave Build" + }, "initialSetupInfoBuildInfoConfig": { - "message": "Configurazione Build" + "message": "Configurazione" }, "initialSetupInfoBuildInfoLog": { - "message": "Log Build" + "message": "Log" }, "initialSetupInfoBuildOptions": { "message": "Opzioni Build:" }, + "initialSetupInfoBuildOptionsList": { + "message": "Definizioni usate" + }, "initialSetupInfoBuildOptionsEmpty": { - "message": "Build locale - Nessuna definizione" + "message": "Build locale - Nessuna definizione usata" }, "initialSetupButtonSave": { "message": "Salva" diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 52a096c740..1aa5a8db76 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -733,6 +733,16 @@ "initialSetupButtonResetZaxisValue": { "message": "リセット Z 軸、オフセット: $1 度" }, + "initialSetupHeading": { + "message": "ヘッディング:", + "description": "Heading shown on Setup tab" + }, + "initialSetupPitch": { + "message": "ピッチ:" + }, + "initialSetupRoll": { + "message": "ロール:" + }, "initialSetupMixerHead": { "message": "ミキサータイプ" }, @@ -766,18 +776,16 @@ "initialSetupAccelTrimsHead": { "message": "加速度センサー トリム" }, - "initialSetupPitch": { - "message": "ピッチ:" - }, - "initialSetupRoll": { - "message": "ロール:" - }, "initialSetupMagHead": { "message": "コンパス" }, "initialSetupInfoHead": { "message": "システム情報" }, + "initialSetupInfoHeadHelp": { + "message": "ディスアーム時のFCフラグ、バッテリー情報、RSSIレベル、センサーのハードウェアを表示", + "description": "Message that pops up to describe the System info section" + }, "initialSetupBattery": { "message": "バッテリー電圧:" }, @@ -796,6 +804,9 @@ "initialSetupBatteryAValue": { "message": "$1 A" }, + "initialSetupCpuTemp": { + "message": "CPU温度:" + }, "initialSetupRSSI": { "message": "RSSI:" }, @@ -925,30 +936,48 @@ "initialSetupGPSHead": { "message": "GPS" }, + "initialSetupGPSHeadHelp": { + "message": "ポートタブ、設定タブ、GPSタブで有効になっている場合はGPS情報を表示", + "description": "Message that pops up to describe the GPS section" + }, "initialSetupInstrumentsHead": { "message": "計器" }, + "initialSetupInstrumentsHeadHelp": { + "message": "ヘディング、ピッチ、ロールを計器で表示", + "description": "Message that pops up to describe the Instruments section" + }, "initialSetupInfoAPIversion": { "message": "MSP API:" }, "initialSetupInfoBuild": { "message": "ファームウェア情報" }, + "initialSetupInfoBuildHelp": { + "message": "ファームウェアのビルドに関する情報を表示します。ビルド設定とビルドログは、Build keyで見つかったクラウド情報へのリンクです。", + "description": "Message that pops up to describe the Build / Firmware section" + }, "initialSetupInfoBuildDate": { "message": "ビルド日時:" }, "initialSetupInfoBuildInfo": { "message": "ビルド情報:" }, + "initialSetupInfoBuildInfoKey": { + "message": "Build key" + }, "initialSetupInfoBuildInfoConfig": { - "message": "ビルド設定" + "message": "設定" }, "initialSetupInfoBuildInfoLog": { - "message": "ビルドログ" + "message": "ログ" }, "initialSetupInfoBuildOptions": { "message": "ビルドオプション:" }, + "initialSetupInfoBuildOptionsList": { + "message": "使用するものを定義" + }, "initialSetupInfoBuildOptionsEmpty": { "message": "ローカルビルド - 定義なし" }, diff --git a/locales/ko/messages.json b/locales/ko/messages.json index c7a8720ef1..631d47b2a6 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -733,6 +733,16 @@ "initialSetupButtonResetZaxisValue": { "message": "Z 축 초기화, 오프셋: $1 도" }, + "initialSetupHeading": { + "message": "진행방향:", + "description": "Heading shown on Setup tab" + }, + "initialSetupPitch": { + "message": "피치:" + }, + "initialSetupRoll": { + "message": "롤:" + }, "initialSetupMixerHead": { "message": "믹서 형식" }, @@ -766,18 +776,16 @@ "initialSetupAccelTrimsHead": { "message": "가속도계 트림" }, - "initialSetupPitch": { - "message": "피치:" - }, - "initialSetupRoll": { - "message": "롤:" - }, "initialSetupMagHead": { "message": "자력계" }, "initialSetupInfoHead": { "message": "시스템 정보" }, + "initialSetupInfoHeadHelp": { + "message": "디스아밍에 대한 FC 플래그, 배터리 정보, RSSI 레벨 및 센서 하드웨어 표시", + "description": "Message that pops up to describe the System info section" + }, "initialSetupBattery": { "message": "배터리 전압:" }, @@ -796,6 +804,9 @@ "initialSetupBatteryAValue": { "message": "$1 A" }, + "initialSetupCpuTemp": { + "message": "CPU 온도:" + }, "initialSetupRSSI": { "message": "RSSI:" }, @@ -925,32 +936,50 @@ "initialSetupGPSHead": { "message": "GPS" }, + "initialSetupGPSHeadHelp": { + "message": "포트 탭, 환경설정 탭 및 GPS 탭에서 올바르게 활성화된 경우 GPS 정보를 표시합니다", + "description": "Message that pops up to describe the GPS section" + }, "initialSetupInstrumentsHead": { "message": "계기" }, + "initialSetupInstrumentsHeadHelp": { + "message": "계측기의 기체방향, 피치 및 롤 표시", + "description": "Message that pops up to describe the Instruments section" + }, "initialSetupInfoAPIversion": { "message": "MSP API:" }, "initialSetupInfoBuild": { "message": "펌웨어 정보" }, + "initialSetupInfoBuildHelp": { + "message": "펌웨어 빌드에 대한 정보를 표시합니다. 빌드 구성 및 빌드 로그는 빌드 키로 찾은 클라우드 정보에 연결됩니다", + "description": "Message that pops up to describe the Build / Firmware section" + }, "initialSetupInfoBuildDate": { "message": "빌드 날짜:" }, "initialSetupInfoBuildInfo": { "message": "빌드 정보:" }, + "initialSetupInfoBuildInfoKey": { + "message": "빌드 키" + }, "initialSetupInfoBuildInfoConfig": { - "message": "빌드 환경설정" + "message": "설정" }, "initialSetupInfoBuildInfoLog": { - "message": "빌드 로그" + "message": "로그" }, "initialSetupInfoBuildOptions": { "message": "빌드 옵션:" }, + "initialSetupInfoBuildOptionsList": { + "message": "사용된 정의값" + }, "initialSetupInfoBuildOptionsEmpty": { - "message": "로컬 빌드 - 정의값 없음" + "message": "로컬 빌드 - 사용된 정의값 없음" }, "initialSetupButtonSave": { "message": "저장" diff --git a/locales/nl/messages.json b/locales/nl/messages.json index 1ecfb9537e..12ff9161bb 100644 --- a/locales/nl/messages.json +++ b/locales/nl/messages.json @@ -656,6 +656,12 @@ "initialSetupButtonResetZaxisValue": { "message": "Herstel Z axis, verschil $1 graden" }, + "initialSetupPitch": { + "message": "Pitch:" + }, + "initialSetupRoll": { + "message": "Roll:" + }, "initialSetupMixerHead": { "message": "Mixer Type" }, @@ -689,12 +695,6 @@ "initialSetupAccelTrimsHead": { "message": "Versnellingsmeter trims" }, - "initialSetupPitch": { - "message": "Pitch:" - }, - "initialSetupRoll": { - "message": "Roll:" - }, "initialSetupMagHead": { "message": "Magnetometer" }, diff --git a/locales/pl/messages.json b/locales/pl/messages.json index 626ec15eac..2a17ef43c5 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -727,6 +727,12 @@ "initialSetupButtonResetZaxisValue": { "message": "Resetuj oś Z, położenie: $1 stopni" }, + "initialSetupPitch": { + "message": "Pitch:" + }, + "initialSetupRoll": { + "message": "Roll:" + }, "initialSetupMixerHead": { "message": "Typ Modelu" }, @@ -760,12 +766,6 @@ "initialSetupAccelTrimsHead": { "message": "Dostrajanie akcelerometru" }, - "initialSetupPitch": { - "message": "Pitch:" - }, - "initialSetupRoll": { - "message": "Roll:" - }, "initialSetupMagHead": { "message": "Magnetometr" }, diff --git a/locales/pt/messages.json b/locales/pt/messages.json index b413264a72..6e2a97ddbf 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -733,6 +733,16 @@ "initialSetupButtonResetZaxisValue": { "message": "Repor eixo Z, offset: $1 graus" }, + "initialSetupHeading": { + "message": "Direção:", + "description": "Heading shown on Setup tab" + }, + "initialSetupPitch": { + "message": "Pitch:" + }, + "initialSetupRoll": { + "message": "Roll:" + }, "initialSetupMixerHead": { "message": "Tipo de Mixer" }, @@ -766,18 +776,16 @@ "initialSetupAccelTrimsHead": { "message": "Ajustes do acelerómetro" }, - "initialSetupPitch": { - "message": "Pitch:" - }, - "initialSetupRoll": { - "message": "Roll:" - }, "initialSetupMagHead": { "message": "Magnetómetro" }, "initialSetupInfoHead": { "message": "Info. do Sistema" }, + "initialSetupInfoHeadHelp": { + "message": "Mostra bandeiras da FC para desarmar, informações da bateria, nível RSSI e hardware de sensores", + "description": "Message that pops up to describe the System info section" + }, "initialSetupBattery": { "message": "Voltagem da bateria:" }, @@ -925,32 +933,50 @@ "initialSetupGPSHead": { "message": "GPS" }, + "initialSetupGPSHeadHelp": { + "message": "Mostra info do GPS, se ativadas adequadamente nas abas Portas, Configuração e GPS", + "description": "Message that pops up to describe the GPS section" + }, "initialSetupInstrumentsHead": { "message": "Instrumentos" }, + "initialSetupInstrumentsHeadHelp": { + "message": "Mostra Direção, Pitch e Roll nos instrumentos", + "description": "Message that pops up to describe the Instruments section" + }, "initialSetupInfoAPIversion": { "message": "MSP API:" }, "initialSetupInfoBuild": { "message": "Info. de Firmware" }, + "initialSetupInfoBuildHelp": { + "message": "Mostra informações sobre a compilação de firmware. A Configuração de Compilação e o Log de Compilação ligam-se às informações encontradas na nuvem através da chave de Compilação", + "description": "Message that pops up to describe the Build / Firmware section" + }, "initialSetupInfoBuildDate": { "message": "Data da Compilação:" }, "initialSetupInfoBuildInfo": { "message": "Info. da Compilação:" }, + "initialSetupInfoBuildInfoKey": { + "message": "Chave de compilação" + }, "initialSetupInfoBuildInfoConfig": { - "message": "Config. da Compilação" + "message": "Config" }, "initialSetupInfoBuildInfoLog": { - "message": "Log da Compilação" + "message": "Log" }, "initialSetupInfoBuildOptions": { "message": "Opções de Compilação:" }, + "initialSetupInfoBuildOptionsList": { + "message": "Defines usadas" + }, "initialSetupInfoBuildOptionsEmpty": { - "message": "Compilação Local - sem Defines" + "message": "Construção Local - nenhuma define usada" }, "initialSetupButtonSave": { "message": "Gravar" diff --git a/locales/pt_BR/messages.json b/locales/pt_BR/messages.json index e68cf8fcde..7db0b8f5ec 100644 --- a/locales/pt_BR/messages.json +++ b/locales/pt_BR/messages.json @@ -708,6 +708,12 @@ "initialSetupButtonResetZaxisValue": { "message": "Redefinir eixo Z, offset: $1 graus" }, + "initialSetupPitch": { + "message": "Pitch:" + }, + "initialSetupRoll": { + "message": "Roll:" + }, "initialSetupMixerHead": { "message": "Tipo de Mixer" }, @@ -741,12 +747,6 @@ "initialSetupAccelTrimsHead": { "message": "Ajustes do acelerômetro" }, - "initialSetupPitch": { - "message": "Pitch:" - }, - "initialSetupRoll": { - "message": "Roll:" - }, "initialSetupMagHead": { "message": "Magnetômetro" }, diff --git a/locales/ru/messages.json b/locales/ru/messages.json index 3070e43261..6b6fc3c3f1 100644 --- a/locales/ru/messages.json +++ b/locales/ru/messages.json @@ -657,6 +657,12 @@ "initialSetupButtonResetZaxisValue": { "message": "Сбросить ось Z (ось вращения), смещение: $1 град" }, + "initialSetupPitch": { + "message": "Pitch:" + }, + "initialSetupRoll": { + "message": "Roll:" + }, "initialSetupMixerHead": { "message": "Тип микшера" }, @@ -690,12 +696,6 @@ "initialSetupAccelTrimsHead": { "message": "Триммирование акселерометра" }, - "initialSetupPitch": { - "message": "Pitch:" - }, - "initialSetupRoll": { - "message": "Roll:" - }, "initialSetupMagHead": { "message": "Магнитометр" }, diff --git a/locales/zh_CN/messages.json b/locales/zh_CN/messages.json index 1eb1f68e1d..017aea95b5 100644 --- a/locales/zh_CN/messages.json +++ b/locales/zh_CN/messages.json @@ -666,6 +666,12 @@ "initialSetupButtonResetZaxisValue": { "message": "重置 Z 轴,补偿: $1 度" }, + "initialSetupPitch": { + "message": "俯仰:" + }, + "initialSetupRoll": { + "message": "横滚:" + }, "initialSetupMixerHead": { "message": "混控类型" }, @@ -699,12 +705,6 @@ "initialSetupAccelTrimsHead": { "message": "加速度计微调" }, - "initialSetupPitch": { - "message": "俯仰:" - }, - "initialSetupRoll": { - "message": "横滚:" - }, "initialSetupMagHead": { "message": "磁力计" }, diff --git a/locales/zh_TW/messages.json b/locales/zh_TW/messages.json index 03bacbde50..c16b8af931 100644 --- a/locales/zh_TW/messages.json +++ b/locales/zh_TW/messages.json @@ -603,6 +603,12 @@ "initialSetupButtonResetZaxisValue": { "message": "重置 Z 軸,補償: $1 度" }, + "initialSetupPitch": { + "message": "俯仰:" + }, + "initialSetupRoll": { + "message": "橫滾:" + }, "initialSetupMixerHead": { "message": "混控類型" }, @@ -636,12 +642,6 @@ "initialSetupAccelTrimsHead": { "message": "加速度計微調" }, - "initialSetupPitch": { - "message": "俯仰:" - }, - "initialSetupRoll": { - "message": "橫滾:" - }, "initialSetupMagHead": { "message": "磁力計" }, From b04c891a2517a094c24723ba839677c4df782d55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=ADguel=20=C3=81ngel=20Mulero=20Mart=C3=ADnez?= Date: Wed, 12 Apr 2023 15:44:47 +0200 Subject: [PATCH 072/393] crowdin-action: use github action versioning (#3418) Until now the Crowdin action didn't follow the Github actions conventions. Now it does, and this PR uses it. --- .github/workflows/translations-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/translations-pr.yml b/.github/workflows/translations-pr.yml index 8de6a5da95..c7eeda9645 100644 --- a/.github/workflows/translations-pr.yml +++ b/.github/workflows/translations-pr.yml @@ -16,7 +16,7 @@ jobs: uses: actions/checkout@v3 - name: Download Crowdin translations and create PR - uses: crowdin/github-action@1.5.1 + uses: crowdin/github-action@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 1406dc07b4dc91321c30554c8564457fb29d7c94 Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Wed, 12 Apr 2023 16:35:45 +0200 Subject: [PATCH 073/393] More feature tip at Configuration tab (#3413) * More feature tip * haveTip ajusted in feature.js * Review resolved --- locales/en/messages.json | 15 +++++++++++++++ src/js/Features.js | 10 +++++----- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index e623c99239..a15c3eb1ce 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -1141,12 +1141,21 @@ "featureSONAR": { "message": "Sonar" }, + "featureSONARTip": { + "message": "Enable Sonar rangefinder to measure distance to ground in cm" + }, "featureTELEMETRY": { "message": "Telemetry output" }, + "featureTELEMETRYTip": { + "message": "Enable telemetry output to send to transmitter" + }, "feature3D": { "message": "3D mode (for use with reversible ESCs)" }, + "feature3DTip": { + "message": "Enable 3D mode for use with reversible ESCs, configure at Motors tab" + }, "featureRX_PARALLEL_PWM": { "message": "PWM (one wire per channel)" }, @@ -1159,6 +1168,9 @@ "featureLED_STRIP": { "message": "Multi-color RGB LED strip support" }, + "featureLED_STRIPTip": { + "message": "Enable Multi-color RGB LED strip support, configure at LED Strip tab" + }, "featureDISPLAY": { "message": "OLED Screen Display" }, @@ -1168,6 +1180,9 @@ "featureOSD": { "message": "On Screen Display" }, + "featureOSDTip": { + "message": "Enable OSD, configure at OSD tab" + }, "featureCHANNEL_FORWARDING": { "message": "Forward aux channels to servo outputs" }, diff --git a/src/js/Features.js b/src/js/Features.js index 4a120d8eba..89ef051fdd 100644 --- a/src/js/Features.js +++ b/src/js/Features.js @@ -14,15 +14,15 @@ const Features = function (config) { {bit: 5, group: 'other', name: 'SERVO_TILT', haveTip: true, dependsOn: 'SERVOS'}, {bit: 6, group: 'other', name: 'SOFTSERIAL', haveTip: true}, {bit: 7, group: 'other', name: 'GPS', haveTip: true, dependsOn: 'GPS'}, - {bit: 9, group: 'other', name: 'SONAR', dependsOn: 'RANGEFINDER'}, - {bit: 10, group: 'telemetry', name: 'TELEMETRY', dependsOn: 'TELEMETRY'}, - {bit: 12, group: '3D', name: '3D'}, + {bit: 9, group: 'other', name: 'SONAR', haveTip: true, dependsOn: 'RANGEFINDER'}, + {bit: 10, group: 'telemetry', name: 'TELEMETRY', haveTip: true, dependsOn: 'TELEMETRY'}, + {bit: 12, group: '3D', name: '3D', haveTip: true}, {bit: 13, group: 'rxMode', mode: 'select', name: 'RX_PARALLEL_PWM'}, {bit: 14, group: 'rxMode', mode: 'select', name: 'RX_MSP'}, {bit: 15, group: 'rssi', name: 'RSSI_ADC'}, - {bit: 16, group: 'other', name: 'LED_STRIP', dependsOn: 'LED_STRIP'}, + {bit: 16, group: 'other', name: 'LED_STRIP', haveTip: true, dependsOn: 'LED_STRIP'}, {bit: 17, group: 'other', name: 'DISPLAY', haveTip: true, dependsOn: 'DASHBOARD'}, - {bit: 18, group: 'other', name: 'OSD', dependsOn: 'OSD'}, + {bit: 18, group: 'other', name: 'OSD', haveTip: true, dependsOn: 'OSD'}, {bit: 20, group: 'other', name: 'CHANNEL_FORWARDING', dependsOn: 'SERVOS'}, {bit: 21, group: 'other', name: 'TRANSPONDER', haveTip: true, dependsOn: 'TRANSPONDER'}, {bit: 22, group: 'other', name: 'AIRMODE'}, From db97687d17acff185e9281b89a06466886a01fb7 Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Wed, 12 Apr 2023 18:50:45 +0200 Subject: [PATCH 074/393] Show sonar altitude, if sensor exist (#3414) * Show sonar altitude, if sensor exist * Review resolved --- locales/en/messages.json | 10 ++++++++++ src/js/msp/MSPCodes.js | 2 +- src/js/tabs/setup.js | 12 ++++++++++++ src/tabs/setup.html | 16 ++++++++++++++++ 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index a15c3eb1ce..bce8b815b2 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -1037,6 +1037,16 @@ "message": "Shows GPS info, if proper activated in Ports tab, Configuration Tab and GPS tab", "description": "Message that pops up to describe the GPS section" }, + "initialSetupSonarHead": { + "message": "Sonar" + }, + "initialSetupSonarHeadHelp": { + "message": "Shows Sonar info, if proper activated in Configuration Tab", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "Altitude" + }, "initialSetupInstrumentsHead": { "message": "Instruments" }, diff --git a/src/js/msp/MSPCodes.js b/src/js/msp/MSPCodes.js index 56d242d647..02ba9e7baf 100644 --- a/src/js/msp/MSPCodes.js +++ b/src/js/msp/MSPCodes.js @@ -35,7 +35,7 @@ const MSPCodes = { MSP_SET_CF_SERIAL_CONFIG: 55, MSP_VOLTAGE_METER_CONFIG: 56, MSP_SET_VOLTAGE_METER_CONFIG: 57, - MSP_SONAR: 58, + MSP_SONAR: 58, // notice, in firmware named as MSP_SONAR_ALTITUDE MSP_PID_CONTROLLER: 59, MSP_SET_PID_CONTROLLER: 60, MSP_ARMING_CONFIG: 61, diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index 9fb75af1c8..fc19d9a46b 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -199,6 +199,7 @@ setup.initialize = function (callback) { roll_e = $('dd.roll'), pitch_e = $('dd.pitch'), heading_e = $('dd.heading'), + sonar_e = $('.sonarAltitude'), // Sensor info sensor_e = $('.sensor-hw'), // Firmware info @@ -399,6 +400,11 @@ setup.initialize = function (callback) { showSensorInfo(); showFirmwareInfo(); + // Show Sonar info box if sensor exist + if (! have_sensor(FC.CONFIG.activeSensors, 'sonar')) { + $('.sonarBox').hide(); + } + function get_slow_data() { // Status info is acquired in the background using update_live_status() in serial_backend.js @@ -437,6 +443,12 @@ setup.initialize = function (callback) { self.renderModel(); self.updateInstruments(); }); + // get Sonar altitude if sensor exist + if (have_sensor(FC.CONFIG.activeSensors, 'sonar')) { + MSP.send_message(MSPCodes.MSP_SONAR, false, false, function () { + sonar_e.text(`${FC.SENSOR_DATA.sonar.toFixed(1)} cm`); + }); + } } GUI.interval_add('setup_data_pull_fast', get_fast_data, 33, true); // 30 fps diff --git a/src/tabs/setup.html b/src/tabs/setup.html index 9b1469fb6b..0675c6f3e4 100644 --- a/src/tabs/setup.html +++ b/src/tabs/setup.html @@ -139,6 +139,22 @@
    0 %
    0 ℃
    +
    +
    +
    +
    +
    +
    + + + + + + + +
    0.0 cm
    +
    +
    From 9d9edf9266019a0a84d667ed649f64fa5bda73ab Mon Sep 17 00:00:00 2001 From: Richard Benkovsky Date: Sun, 16 Apr 2023 14:57:34 -0700 Subject: [PATCH 075/393] Add a few unit tests for MSP protocol (#3421) * Add a few unit tests for msp protocol * fixup! Add a few unit tests for msp protocol --- test/js/msp.test.js | 71 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 test/js/msp.test.js diff --git a/test/js/msp.test.js b/test/js/msp.test.js new file mode 100644 index 0000000000..16539dd0ea --- /dev/null +++ b/test/js/msp.test.js @@ -0,0 +1,71 @@ +import {describe, expect, it} from "vitest"; +import MSP from "../../src/js/msp"; + +describe("MSP", () => { + describe("encode_message_v1", () => { + it("handles correctly any code and no data", () => { + for (let code = 0; code < 256; code++) { + let encodedMessage = MSP.encode_message_v1(code, false); + expect(new Uint8Array(encodedMessage)).toEqual(new Uint8Array([36, 77, 60, 0, code, code])); + } + }); + it("handles non-empty messages correctly", () => { + let [operationCode, inputDataLengthPadding] = crypto.getRandomValues(new Uint8Array(2)); + + let inputData = crypto.getRandomValues(new Uint8Array(100 + inputDataLengthPadding % 100)); + + let encodedMessage = new Uint8Array(MSP.encode_message_v1(operationCode, inputData)); + + // check that header is in place + expect(encodedMessage.slice(0, 3)).toEqual(new Uint8Array([36, 77, 60])); + + // check that length got encoded as expected + expect(encodedMessage[3]).toEqual(inputData.length); + + // check that operation code is there + expect(encodedMessage[4]).toEqual(operationCode); + + // check that data got encoded as expected + expect(encodedMessage.slice(5, -1)).toEqual(inputData); + + // and that the checksum is valid + let checksum = encodedMessage.slice(3, -1).reduce((acc, curr) => acc ^ curr); + expect(encodedMessage[encodedMessage.length - 1]).toEqual(checksum); + }); + }); + + describe("encode_message_v2", () => { + it("handles correctly any code and no data", () => { + for (let codeLowByte = 0; codeLowByte < 256; codeLowByte++) { + for (let codeHighByte = 0; codeHighByte < 256; codeHighByte++) { + let encodedMessage = MSP.encode_message_v2(codeLowByte + codeHighByte * 256, false).slice(0, -1); + expect(new Uint8Array(encodedMessage)).toEqual(new Uint8Array([36, 88, 60, 0, codeLowByte, codeHighByte, 0, 0])); + } + } + }); + it("handles non-empty messages correctly", () => { + let [lengthLowByte, lengthHighByte] = crypto.getRandomValues(new Uint8Array(2)); + + let inputData = crypto.getRandomValues(new Uint8Array(lengthLowByte + lengthHighByte * 256)); + let [operationCodeLowByte, operationCodeHighByte] = crypto.getRandomValues(new Uint8Array(2)); + + let encodedMessage = new Uint8Array(MSP.encode_message_v2(operationCodeLowByte + 256 * operationCodeHighByte, inputData)); + + // check that header is in place + expect(encodedMessage.slice(0, 3)).toEqual(new Uint8Array([36, 88, 60])); + + expect(encodedMessage[3]).toEqual(0); + + // check that operation code is there + expect(encodedMessage[4]).toEqual(operationCodeLowByte); + expect(encodedMessage[5]).toEqual(operationCodeHighByte); + + // check that length got encoded as expected + expect(encodedMessage[6]).toEqual(lengthLowByte); + expect(encodedMessage[7]).toEqual(lengthHighByte); + + // check that data got encoded as expected + expect(encodedMessage.slice(8, -1)).toEqual(inputData); + }); + }); +}); From 466a71e954c524bafb3b408e632866ebd5d2b818 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 17 Apr 2023 23:44:54 +0200 Subject: [PATCH 076/393] Update translations (#3424) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 25 ++++++++++ locales/da/messages.json | 41 +++++++++++++--- locales/de/messages.json | 63 ++++++++++++++++++++++++ locales/es/messages.json | 25 ++++++++++ locales/it/messages.json | 44 ++++++++++++++--- locales/ja/messages.json | 25 ++++++++++ locales/ko/messages.json | 25 ++++++++++ locales/pl/messages.json | 103 ++++++++++++++++++++++++++++++++++++++- locales/pt/messages.json | 28 +++++++++++ 9 files changed, 364 insertions(+), 15 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index 5f7544b9ad..d766d30ce5 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -948,6 +948,16 @@ "message": "Mostra la informació del GPS, si està activada correctament a la pestanya Ports, la pestanya Configuració i la pestanya GPS", "description": "Message that pops up to describe the GPS section" }, + "initialSetupSonarHead": { + "message": "Sònar" + }, + "initialSetupSonarHeadHelp": { + "message": "Mostra la informació del sonar, si està activat correctament a la pestanya Configuració", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "Altitud" + }, "initialSetupInstrumentsHead": { "message": "Instruments" }, @@ -1052,12 +1062,21 @@ "featureSONAR": { "message": "Sónar" }, + "featureSONARTip": { + "message": "Activa el telèmetre Sonar per mesurar la distància a terra en cm" + }, "featureTELEMETRY": { "message": "Sortida de telemetria" }, + "featureTELEMETRYTip": { + "message": "Habilita la sortida de telemetria per enviar-la al transmissor" + }, "feature3D": { "message": "3D mode (per usar amb ESCs reversibles)" }, + "feature3DTip": { + "message": "Habiliteu el mode 3D per utilitzar-lo amb ESC reversibles, configureu-lo a la pestanya Motors" + }, "featureRX_PARALLEL_PWM": { "message": "PWM (un cable per canal)" }, @@ -1070,6 +1089,9 @@ "featureLED_STRIP": { "message": "Suport per tira RGB LED multi-color" }, + "featureLED_STRIPTip": { + "message": "Activeu el suport de tires LED RGB multicolors, configureu-lo a la pestanya Tira de LED" + }, "featureDISPLAY": { "message": "Pantalla OLED" }, @@ -1079,6 +1101,9 @@ "featureOSD": { "message": "Instruccions a pantalla (OSD)" }, + "featureOSDTip": { + "message": "Habilita OSD, configura a la pestanya OSD" + }, "featureCHANNEL_FORWARDING": { "message": "Enviar canals auxiliars a sortides servo" }, diff --git a/locales/da/messages.json b/locales/da/messages.json index a2912eb130..d21382b65a 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -940,6 +940,16 @@ "message": "Viser GPS information, hvis indstillet i Porte, Opsætning og GPS fane", "description": "Message that pops up to describe the GPS section" }, + "initialSetupSonarHead": { + "message": "Sonar" + }, + "initialSetupSonarHeadHelp": { + "message": "Viser information fra Sonar, hvis den er indstillet rigtigt på fanen Opsætning ", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "Højde" + }, "initialSetupInstrumentsHead": { "message": "Instrumenter" }, @@ -1044,12 +1054,21 @@ "featureSONAR": { "message": "Sonar afstandsmåler" }, + "featureSONARTip": { + "message": "Aktiver Sonar afstandsbestemmer for at måle afstand til overfladen i cm" + }, "featureTELEMETRY": { "message": "Telemetri protokol" }, + "featureTELEMETRYTip": { + "message": "Aktiver for at sende telemetri data til radio sender" + }, "feature3D": { "message": "3D-tilstand (til brug med vendbare ESC'er)" }, + "feature3DTip": { + "message": "Aktiver 3D tilstand til brug med reversible ESC, indstilles på fanen Motorer" + }, "featureRX_PARALLEL_PWM": { "message": "PWM RX-input (en ledning pr. kanal)" }, @@ -1062,6 +1081,9 @@ "featureLED_STRIP": { "message": "Flerfarvet RGB LED-strimmel understøttelse" }, + "featureLED_STRIPTip": { + "message": "Aktiver flerfavet LED strimmel, indstil på fanen LED-strimmel" + }, "featureDISPLAY": { "message": "OLED-skærmvisning" }, @@ -1071,6 +1093,9 @@ "featureOSD": { "message": "On Screen Display (OSD)" }, + "featureOSDTip": { + "message": "Aktiver OSD, indstil på fanen OSD" + }, "featureCHANNEL_FORWARDING": { "message": "Videresend aux-kanaler til servoudgange" }, @@ -2605,7 +2630,7 @@ "description": "To put under the motors in the motors tab. KEEP IT SHORT or not translate. Shows the error of motor telemetry if available." }, "motorsESCTemperature": { - "message": "Tmp: {{motorsESCTempValue}}°C", + "message": "Temp: {{motorsESCTempValue}}°C", "description": "To put under the motors in the motors tab. KEEP IT SHORT or not translate. Shows the ESC temperature if available." }, "motorsMaster": { @@ -3727,7 +3752,7 @@ "description": "Disable or enable D Term Filter Tuning Slider" }, "pidTuningPidSlidersHelp": { - "message": "Skyderne til at justere fartøj flyveegenskaber (PID forstærkning)

    Dæmpning (D forstærkning): Modstår hurtig bevægelse, minimerer P svingning.

    Sporing (P og I forstærkning): Sporer fartøjets reaktionshastighed, hvis den er for høj, kan den forårsage trilling eller resonans.

    Pind svarhastighed (Feedforward): Øger fartøjets reaktionshastighed ved for hurtigere pind bevægelser.

    Drift - Wobble (I forstærkning, ekspert): Fin justering af I.

    Dynamisk D (D Max, ekspert): Indstiller den maksimale værdi, som D kan øges til ved hurtige bevægelser.

    Højderor dæmpning (højderor:krængror D ratio, ekspert): Øger dæmpning af højderor i forhold til krængror.

    Højderor sporing (højderor:krængror P, I og F ratio, ekspert): Øger stabiliserende værdier til højderor i forhold til krængror.

    Master Multiplier (alle forstærkninger, ekspert): Hæver eller sænker alle PID værdier, holder deres indbyrdes forhold konstant.", + "message": "Skyderne til at justere fartøj flyveegenskaber (PID forstærkning)

    Dæmpning (D forstærkning): Modstår hurtig bevægelse, minimerer P svingning.

    Sporing (P og I forstærkning): Sporer fartøjets reaktionshastighed, hvis den er for høj, kan den forårsage rullen eller resonans.

    Pind svarhastighed (Feedforward): Øger fartøjets reaktionshastighed ved for hurtigere pind bevægelser.

    Drift - Wobble (I forstærkning, for ekspert): Fin justering af I.

    Dynamisk D (D Max, for ekspert): Indstiller den maksimale værdi, som D kan øges til ved hurtige bevægelser.

    Højderor dæmpning (højderor:krængror D ratio, for ekspert): Øger dæmpning af højderor i forhold til krængror.

    Højderor sporing (højderor:krængror P, I og F ratio, for ekspert): Øger stabiliserende værdier til højderor i forhold til krængror.

    Generel (påvirker alle forstærkninger, for ekspert): Hæver eller sænker alle PID værdier, holder deres indbyrdes forhold konstant.", "description": "Overall helpicon message for PID tuning sliders" }, "pidTuningSliderWarning": { @@ -3783,11 +3808,11 @@ "description": "Tuning Slider High header" }, "pidTuningMasterSlider": { - "message": "Master multiplikator:", + "message": "Generel multiplikator:", "description": "Master tuning slider label" }, "pidTuningMasterSliderHelp": { - "message": "Øger alle PID parametre ens. Undlad at ændre denne skyder medmindre du løber tør for justering på de andre skydere. Typisk er dette kun nødvendigt for langsomme fartøjer eller ved højt inerti (MoI) fartøjer som X-Class eller cinelifter fartøjer. For meget master forstærkning kan forårsage trilling svingninger eller varme motorer.", + "message": "Øger alle PID parametre ens. Undlad at ændre denne skyder medmindre du løber tør for justering på de andre skydere. Typisk er dette kun nødvendigt for langsomme fartøjer eller ved højt inerti (MoI) fartøjer som X-Class eller cinelifter fartøjer. For meget generel forstærkning kan forårsage rullende svingninger eller varme motorer.", "description": "Master Gain tuning slider helpicon message" }, "pidTuningPDRatioSlider": { @@ -4622,7 +4647,7 @@ "message": "ADVARSEL: Der blev ikke fundet nogen OSD chip. Nogle FC kan ikke aktivere OSD chippen, medmindre de er tilsluttet batteri. Tilslut batteriet, før du tilslutter USB (Husk at fjerne propellerne!)." }, "osdSetupPreviewHelp": { - "message": "Bemærk: OSD forhåndsvisning viser muligvis ikke den skrifttype, der er installeret i FC. Layoutet af individuelle elementer kan se anderledes ud, når ældre versioner af firmwaren bruges - tjek venligst udseendet af din opsætning, fx med dine briller, før du flyver." + "message": "Bemærk: OSD forhåndsvisning viser muligvis ikke den skrifttype, der er installeret i FC. Layoutet af individuelle elementer kan se anderledes ud, afhænigt af din version af firmware, derfor tjek udseendet af din opsætning, fx med dine briller, før du flyver." }, "osdSetupUnsupportedNote1": { "message": "Din FC reagerer ikke på OSD kommandoer. Det betyder sandsynligvis, at den ikke har et integreret BetaFlight OSD." @@ -6013,15 +6038,15 @@ "description": "Text of one of the fields of the VTX tab" }, "vtxPitModeHelp": { - "message": "Når aktiveret, begynder VTX med en meget lav effekt for at lade fartøjet være på startbanen uden at forstyrre andre piloter. Normalt er rækkevidden af denne tilstand mindre end 5m.

    BEMÆRK: Nogle protokoller, som fx. SmartAudio, kan ikke aktivere Pit Mode via software efter power-up.", + "message": "Når aktiveret, begynder VTX med en meget lav effekt for at lade fartøjet være på startbanen uden at forstyrre andre piloter. Normalt er rækkevidden af denne tilstand mindre end 5m.

    BEMÆRK: Nogle protokoller, som fx. SmartAudio, kan ikke aktivere Pit tilstand via software efter power-up.", "description": "Help text for the pit mode field of the VTX tab" }, "vtxPitModeFrequency": { - "message": "Pit tilstand frekvens", + "message": "Kanal i Pit", "description": "Text of one of the fields of the VTX tab" }, "vtxPitModeFrequencyHelp": { - "message": "Frekvens, som sættes ved Pit tilstand", + "message": "Kanal, som anvendes i Pit tilstand", "description": "Help text for the pit mode field of the VTX tab" }, "vtxLowPowerDisarm": { diff --git a/locales/de/messages.json b/locales/de/messages.json index c946b07139..b91174014b 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -736,6 +736,10 @@ "initialSetupButtonResetZaxisValue": { "message": "Z Achse zurücksetzen, Abweichung: $1 Grad" }, + "initialSetupHeading": { + "message": "Richtung:", + "description": "Heading shown on Setup tab" + }, "initialSetupPitch": { "message": "Pitch:" }, @@ -781,6 +785,10 @@ "initialSetupInfoHead": { "message": "Systeminfo" }, + "initialSetupInfoHeadHelp": { + "message": "FC-Flags für Disarming, Akku-Information, RSSI-Level und Sensor-Hardware anzeigen", + "description": "Message that pops up to describe the System info section" + }, "initialSetupBattery": { "message": "Akku Spannung" }, @@ -799,6 +807,9 @@ "initialSetupBatteryAValue": { "message": "$1 A" }, + "initialSetupCpuTemp": { + "message": "CPU-Temperatur:" + }, "initialSetupRSSI": { "message": "RSSI:" }, @@ -928,24 +939,61 @@ "initialSetupGPSHead": { "message": "GPS" }, + "initialSetupGPSHeadHelp": { + "message": "GPS-Informationen anzeigen, falls im Ports-Tab, im Konfiguration-Tab und im GPS-Tab aktiviert", + "description": "Message that pops up to describe the GPS section" + }, + "initialSetupSonarHead": { + "message": "Sonar" + }, + "initialSetupSonarHeadHelp": { + "message": "Sonar-Informationen anzeigen, wenn im Konfigurations-Tab aktiviert", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "Höhe" + }, "initialSetupInstrumentsHead": { "message": "Instrumente" }, + "initialSetupInstrumentsHeadHelp": { + "message": "Richtung, Pitch und Rollen in Instrumenten anzeigen", + "description": "Message that pops up to describe the Instruments section" + }, "initialSetupInfoAPIversion": { "message": "MSP API:" }, "initialSetupInfoBuild": { "message": "Firmware-Info" }, + "initialSetupInfoBuildHelp": { + "message": "Informationen zum Build der Firmware anzeigen. Die Build-Config und Build-Log verweisen zu den Cloud-Informationen des Build-Schlüssels", + "description": "Message that pops up to describe the Build / Firmware section" + }, "initialSetupInfoBuildDate": { "message": "Erstellungsdatum (build date):" }, "initialSetupInfoBuildInfo": { "message": "Erstellungsinfo (build info):" }, + "initialSetupInfoBuildInfoKey": { + "message": "Build Key" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "Konfiguration" + }, + "initialSetupInfoBuildInfoLog": { + "message": "Log" + }, "initialSetupInfoBuildOptions": { "message": "Erstellungsoptionen (build options):" }, + "initialSetupInfoBuildOptionsList": { + "message": "Verwendete Definitionen" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "Lokaler Build - keine Definitionen verwendet" + }, "initialSetupButtonSave": { "message": "Speichern" }, @@ -1009,12 +1057,21 @@ "featureSONAR": { "message": "Sonar" }, + "featureSONARTip": { + "message": "Sonar-Abstandsensor zur Messung der Bodendistanz in cm aktivieren" + }, "featureTELEMETRY": { "message": "Telemetrieübertragung" }, + "featureTELEMETRYTip": { + "message": "Telemetrie-Ausgabe zum Senden an Sender aktivieren" + }, "feature3D": { "message": "3D Modus (für die Benutzung mit umkehrbaren ESC)" }, + "feature3DTip": { + "message": "3D-Modus für die Verwendung mit umkehrbaren ESCs aktivieren; Konfiguration im Motor-Tab" + }, "featureRX_PARALLEL_PWM": { "message": "PWM (ein Draht pro Kanal)" }, @@ -1027,6 +1084,9 @@ "featureLED_STRIP": { "message": "RGB LED Leisten Unterstützung" }, + "featureLED_STRIPTip": { + "message": "Unterstützung für mehrfarbige RGB-LED-Streifen-aktivieren; Konfiguration im LED-Streifen-Tab" + }, "featureDISPLAY": { "message": "OLED Bildschirm Anzeige" }, @@ -1036,6 +1096,9 @@ "featureOSD": { "message": "On Screen Display" }, + "featureOSDTip": { + "message": "OSD aktivieren; Konfiguration im OSD-Tab" + }, "featureCHANNEL_FORWARDING": { "message": "AUX Kanäle als Servo Ausgang weiterleiten" }, diff --git a/locales/es/messages.json b/locales/es/messages.json index 782c9a02e1..8e79e6de7a 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -940,6 +940,16 @@ "message": "Muestra la información del GPS, si está correctamente activado en las pestañas de Puertos, Configuración y GPS", "description": "Message that pops up to describe the GPS section" }, + "initialSetupSonarHead": { + "message": "Sonar" + }, + "initialSetupSonarHeadHelp": { + "message": "Muestra información del Sonar, si se activa correctamente en la pestaña de Configuración", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "Altitud" + }, "initialSetupInstrumentsHead": { "message": "Instrumentos" }, @@ -1044,12 +1054,21 @@ "featureSONAR": { "message": "Sonar" }, + "featureSONARTip": { + "message": "Activa el Sonar para medir distancia al suelo en cm" + }, "featureTELEMETRY": { "message": "Salida de telemetría" }, + "featureTELEMETRYTip": { + "message": "Activar la salida de telemetría para enviarla al transmisor" + }, "feature3D": { "message": "Modo 3D (para usar con ESCs reversibles)" }, + "feature3DTip": { + "message": "Activar modo 3D para usar con ESC reversibles, configurar en pestaña Motores" + }, "featureRX_PARALLEL_PWM": { "message": "PWM (un cable por canal)" }, @@ -1062,6 +1081,9 @@ "featureLED_STRIP": { "message": "Soporte tira LED RGB multi-color" }, + "featureLED_STRIPTip": { + "message": "Activar soporte para tira de LEDs RGB, configurar en la pestaña Tiras LED" + }, "featureDISPLAY": { "message": "Pantalla OLED" }, @@ -1071,6 +1093,9 @@ "featureOSD": { "message": "Visualización en Pantalla" }, + "featureOSDTip": { + "message": "Activar OSD, configurar en la pestaña OSD" + }, "featureCHANNEL_FORWARDING": { "message": "Redirigir canales aux hacia salidas de servo" }, diff --git a/locales/it/messages.json b/locales/it/messages.json index e8f6360970..4972c7c3c8 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -223,7 +223,7 @@ "message": "Opzioni" }, "tabSetup": { - "message": "Setup" + "message": "Impostazioni" }, "tabSetupOSD": { "message": "Impostazioni OSD" @@ -733,6 +733,10 @@ "initialSetupButtonResetZaxisValue": { "message": "Reset asse Z, offset: $1 gradi" }, + "initialSetupHeading": { + "message": "Direzione:", + "description": "Heading shown on Setup tab" + }, "initialSetupPitch": { "message": "Pitch:" }, @@ -800,6 +804,9 @@ "initialSetupBatteryAValue": { "message": "$1 A" }, + "initialSetupCpuTemp": { + "message": "Temperatura CPU:" + }, "initialSetupRSSI": { "message": "RSSI:" }, @@ -933,6 +940,16 @@ "message": "Mostra le informazioni GPS, se attivato correttamente nella scheda Porte, Configurazione e GPS", "description": "Message that pops up to describe the GPS section" }, + "initialSetupSonarHead": { + "message": "Sonar" + }, + "initialSetupSonarHeadHelp": { + "message": "Mostra le informazioni Sonar, se attivato nella scheda di configurazione", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "Altitudine" + }, "initialSetupInstrumentsHead": { "message": "Strumentazione" }, @@ -1037,12 +1054,21 @@ "featureSONAR": { "message": "Sonar" }, + "featureSONARTip": { + "message": "Abilita il Sonar per misurare la distanza dal suolo in cm" + }, "featureTELEMETRY": { "message": "Uscita telemetria" }, + "featureTELEMETRYTip": { + "message": "Abilita la telemetria in uscita da inviare al trasmettitore" + }, "feature3D": { "message": "Modalità 3D (da utilizzare con ESCs reversibili)" }, + "feature3DTip": { + "message": "Abilita la modalità 3D da usare con ESCs reversibili, configura la scheda Motors" + }, "featureRX_PARALLEL_PWM": { "message": "PWM (un cavo per canale)" }, @@ -1055,6 +1081,9 @@ "featureLED_STRIP": { "message": "Supporto per LED RGB Multi-colore" }, + "featureLED_STRIPTip": { + "message": "Abilita il supporto per striscia a LED RGB multicolore, configura la scheda Striscia LED" + }, "featureDISPLAY": { "message": "Display schermo OLED" }, @@ -1064,6 +1093,9 @@ "featureOSD": { "message": "OSD (On Screen Display)" }, + "featureOSDTip": { + "message": "Abilita OSD, configura nella scheda OSD" + }, "featureCHANNEL_FORWARDING": { "message": "Inoltra i canali aux alle uscite dei servi" }, @@ -2701,7 +2733,7 @@ "message": "Rilascia per fermare" }, "escDshotDirectionDialog-Start": { - "message": "Individualmente" + "message": "Singolarmente" }, "escDshotDirectionDialog-StartWizard": { "message": "Procedura guidata" @@ -2722,7 +2754,7 @@ "message": "Aggiorna il firmware.
    Assicurati di utilizzare l'ultimo firmware: Betaflight 4.3 o successivo." }, "escDshotDirectionDialog-WizardActionHint": { - "message": "Fai click sui numeri dei motori individualmente per cambiare direzione di rotazione" + "message": "Fai click sul numero del singolo motore per cambiare direzione di rotazione" }, "escDshotDirectionDialog-WizardActionHintSecondLine": { "message": "Verifica che tutti i motori stiano girando correttamente" @@ -2830,7 +2862,7 @@ "message": "Esempi salvati:" }, "loggingLogSize": { - "message": "Dimensione registro:" + "message": "Dimensione Log:" }, "loggingLogName": { "message": "Nome Log:" @@ -3724,7 +3756,7 @@ "description": "Overall helpicon message for PID tuning sliders" }, "pidTuningSliderWarning": { - "message": "ATTENZIONE: Le posizioni correnti degli slider possono causare flyaway, danni ai motori o funzionamento pericoloso. Procedi con cautela.", + "message": "ATTENZIONE: Le attuali posizioni degli slider possono causare flyaway, danni ai motori o funzionamento pericoloso. Procedi con cautela.", "description": "Warning shown when tuning slider are above safe limits" }, "pidTuningSlidersDisabled": { @@ -6672,7 +6704,7 @@ "description": "A button to show preset sources dialog" }, "presetsSourcesDialogDefaultSourceName": { - "message": "Nuova Sorgente Preset Personalizzata", + "message": "Nuova Sorgente Preset Personalizzati", "description": "A default preset source (repo) name" }, "presetsSourcesDialogSaveSource": { diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 1aa5a8db76..75907d9103 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -940,6 +940,16 @@ "message": "ポートタブ、設定タブ、GPSタブで有効になっている場合はGPS情報を表示", "description": "Message that pops up to describe the GPS section" }, + "initialSetupSonarHead": { + "message": "ソナー" + }, + "initialSetupSonarHeadHelp": { + "message": "【設定】タブで有効化している場合、ソナー情報を表示", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "高度" + }, "initialSetupInstrumentsHead": { "message": "計器" }, @@ -1044,12 +1054,21 @@ "featureSONAR": { "message": "ソナー 超音波距離センサー" }, + "featureSONARTip": { + "message": "ソナー距離計を有効にし、地面までの距離をcm単位で計測" + }, "featureTELEMETRY": { "message": "テレメトリー出力" }, + "featureTELEMETRYTip": { + "message": "送信機へ送るテレメトリー出力を有効" + }, "feature3D": { "message": "3Dモード (ESC逆回転を利用)" }, + "feature3DTip": { + "message": "リバーシブルESCで使用する3Dモードを有効にし【モーター】タブで設定" + }, "featureRX_PARALLEL_PWM": { "message": "PWM (1chあたり1本)" }, @@ -1062,6 +1081,9 @@ "featureLED_STRIP": { "message": "マルチカラーLEDストリップ サポート" }, + "featureLED_STRIPTip": { + "message": "マルチカラーRGB LEDストリップのサポートを有効にし【LEDストリップ】タブで設定" + }, "featureDISPLAY": { "message": "LEDディスプレイ対応" }, @@ -1071,6 +1093,9 @@ "featureOSD": { "message": "オンスクリーンディスプレイ (OSD)" }, + "featureOSDTip": { + "message": "OSDを有効にし【OSD】タブで設定" + }, "featureCHANNEL_FORWARDING": { "message": "AUXチャンネルをサーボ出力に転送" }, diff --git a/locales/ko/messages.json b/locales/ko/messages.json index 631d47b2a6..c28a63bfec 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -940,6 +940,16 @@ "message": "포트 탭, 환경설정 탭 및 GPS 탭에서 올바르게 활성화된 경우 GPS 정보를 표시합니다", "description": "Message that pops up to describe the GPS section" }, + "initialSetupSonarHead": { + "message": "초음파" + }, + "initialSetupSonarHeadHelp": { + "message": "환경설정 탭에서 올바르게 활성화된 경우 초음파센서 정보를 표시합니다", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "고도" + }, "initialSetupInstrumentsHead": { "message": "계기" }, @@ -1044,12 +1054,21 @@ "featureSONAR": { "message": "초음파센서" }, + "featureSONARTip": { + "message": "초음파센서를 활성화해서 cm 단위로 지면까지의 거리를 측정할 수 있습니다" + }, "featureTELEMETRY": { "message": "텔레메트리 출력" }, + "featureTELEMETRYTip": { + "message": "텔레메트리를 활성화하여 결과를 조종기로 보낼 수 있습니다" + }, "feature3D": { "message": "3D 모드 (역회전가능 ESC의 사용을 위한)" }, + "feature3DTip": { + "message": "가역 ESC를 사용하려면 3D 모드를 활성화하고 모터 탭에서 설정하세요" + }, "featureRX_PARALLEL_PWM": { "message": "PWM (채널당 한 개의 선)" }, @@ -1062,6 +1081,9 @@ "featureLED_STRIP": { "message": "멀티-칼라 RGB LED 스트립 지원" }, + "featureLED_STRIPTip": { + "message": "다중색상의 RGB LED 스트립 지원을 활성화하고 LED 스트립 탭에서 설정하세요" + }, "featureDISPLAY": { "message": "OLED 화면 디스플레이" }, @@ -1071,6 +1093,9 @@ "featureOSD": { "message": "OSD(온 스크린 디스플레이)" }, + "featureOSDTip": { + "message": "OSD를 활성화하고 OSD 탭에서 설정하세요" + }, "featureCHANNEL_FORWARDING": { "message": "AUX 채널을 서보 출력으로 사용" }, diff --git a/locales/pl/messages.json b/locales/pl/messages.json index 2a17ef43c5..8a7ef185f9 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -467,12 +467,18 @@ "buildServerSupportRequestSubmission": { "message": "
    *** Przesłano dane wsparcia ***
    Id: $1


    # skopiuj identyfikator i prześlij zespołowi betaflight." }, + "buildKey": { + "message": "Zbuduj klucz: $1" + }, "supportWarningDialogTitle": { "message": "Potwierdź przesłanie danych" }, "supportWarningDialogText": { "message": "Potwierdź przesłanie danych do zespołu Betaflight

    Ten proces uruchomi kilka poleceń i prześle dane wyjściowe na serwer kompilacji.

    Następnie otrzymasz unikalny identyfikator twojego zgłoszenia.

    Upewnij się, że podasz ten unikalny identyfikator zespołowi Betaflight podczas używania Discorda lub otwierania nowego tematu na Githubie." }, + "supportWarningDialogInputPlaceHolder": { + "message": "Opisz problem" + }, "releaseCheckLoaded": { "message": "Załadowano informację o wersji $1 z GitHub'a." }, @@ -727,6 +733,10 @@ "initialSetupButtonResetZaxisValue": { "message": "Resetuj oś Z, położenie: $1 stopni" }, + "initialSetupHeading": { + "message": "Kurs:", + "description": "Heading shown on Setup tab" + }, "initialSetupPitch": { "message": "Pitch:" }, @@ -769,6 +779,13 @@ "initialSetupMagHead": { "message": "Magnetometr" }, + "initialSetupInfoHead": { + "message": "Informacje o systemie" + }, + "initialSetupInfoHeadHelp": { + "message": "Pokazuje flagi FC do rozbrojenia oraz informacje takie jak rodzaj baterii, poziom RSSI oraz rodzaj podłączonych czujników", + "description": "Message that pops up to describe the System info section" + }, "initialSetupBattery": { "message": "Napięcie baterii:" }, @@ -787,9 +804,15 @@ "initialSetupBatteryAValue": { "message": "$1 A" }, + "initialSetupCpuTemp": { + "message": "Temperatura procesora:" + }, "initialSetupRSSI": { "message": "RSSI:" }, + "initialSetupSensorHardware": { + "message": "Czujniki:" + }, "initialSetupRSSIValue": { "message": "$1 %" }, @@ -913,9 +936,61 @@ "initialSetupGPSHead": { "message": "GPS" }, + "initialSetupGPSHeadHelp": { + "message": "Pokazuje informacje GPS, jeśli poprawnie skonfigurowano tę opcję w zakładce Porty, zakładce konfiguracji i zakładce GPS", + "description": "Message that pops up to describe the GPS section" + }, + "initialSetupSonarHead": { + "message": "Sonar" + }, + "initialSetupSonarHeadHelp": { + "message": "Pokazuje informacje na temat sonaru, jeśli poprawnie skonfigurowano ustawienia w zakładce Konfiguracji", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "Wysokość" + }, "initialSetupInstrumentsHead": { "message": "Instrumenty" }, + "initialSetupInstrumentsHeadHelp": { + "message": "Pokazuje kurs, Pitch i Roll na przyrządach", + "description": "Message that pops up to describe the Instruments section" + }, + "initialSetupInfoAPIversion": { + "message": "MSP API:" + }, + "initialSetupInfoBuild": { + "message": "Informacje o firmware" + }, + "initialSetupInfoBuildHelp": { + "message": "Wyświetla informacje dotyczące kompilacji oprogramowania układowego. Konfiguracja kompilacji i dziennik kompilacji pokrywają się z informacjami znalezionymi w chmurze przez klucz kompilacji", + "description": "Message that pops up to describe the Build / Firmware section" + }, + "initialSetupInfoBuildDate": { + "message": "Data kompilacji:" + }, + "initialSetupInfoBuildInfo": { + "message": "Informacje o kompilacji:" + }, + "initialSetupInfoBuildInfoKey": { + "message": "Budowa klucza" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "Konfiguruj" + }, + "initialSetupInfoBuildInfoLog": { + "message": "Log" + }, + "initialSetupInfoBuildOptions": { + "message": "Opcje budowy:" + }, + "initialSetupInfoBuildOptionsList": { + "message": "Użyte definicje" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "Budowa lokalna — brak definicji" + }, "initialSetupButtonSave": { "message": "Zapisz" }, @@ -979,12 +1054,21 @@ "featureSONAR": { "message": "Sonar" }, + "featureSONARTip": { + "message": "Włącz sonar do pomiaru odległości do podłoża" + }, "featureTELEMETRY": { "message": "Wyjście telemetrii" }, + "featureTELEMETRYTip": { + "message": "Włącz wyjście telemetryczne, aby wysyłać dane do nadajnika" + }, "feature3D": { "message": "Tryb 3D (do użytku tylko z ESC pozwalającym odwracanie kierunku)" }, + "feature3DTip": { + "message": "Włącz tryb 3D do użytku z ESC które pozwalają na zmianę kierunku obrotów silnika. Skonfiguruj tę opcję w zakładce Silniki" + }, "featureRX_PARALLEL_PWM": { "message": "PWM (jeden przewód na kanał)" }, @@ -997,6 +1081,9 @@ "featureLED_STRIP": { "message": "Obsługa paska RGB LED" }, + "featureLED_STRIPTip": { + "message": "Włącz obsługę pasków LED w wielu kolorach. Skonfiguruj tę opcję w zakładce Paski LED/RGB" + }, "featureDISPLAY": { "message": "Wyświetlacz OLED" }, @@ -1006,6 +1093,9 @@ "featureOSD": { "message": "OSD" }, + "featureOSDTip": { + "message": "Włącz OSD. Skonfiguruj tę opcję w zakładce OSD" + }, "featureCHANNEL_FORWARDING": { "message": "Prześlij wartość kanału AUX do wyjść serwomechanizmów" }, @@ -2383,6 +2473,9 @@ "gpsLon": { "message": "Długość:" }, + "gpsHeading": { + "message": "Kurs:" + }, "gpsSpeed": { "message": "Prędkość:" }, @@ -3117,7 +3210,7 @@ "message": "Odzyskiwanie / Utracono komunikacje" }, "firmwareFlasherRecoveryText": { - "message": "Jeśli utraciłeś komunikację z płytką kontrolera lotu, wykonaj następujące kroki, aby przywrócić komunikację:
    • Odepnij zasilanie
    • Włącz „Brak sekwencji restartu”, włącz „Pełne kasowanie chipa”.
    • Zepnij styki BOOT lub przytrzymaj przycisk BOOT.
    • Podłącz zasilanie (dioda aktywności NIE będzie migać, jeśli zrobisz to poprawnie).
    • Zainstaluj wszystkie sterowniki STM32 i Zadig, jeśli to konieczne (patrz Flashowanie USB w instrukcji Betaflight).
    • Zamknij konfigurator a następnie uruchom ponownie konfigurator.
    • Zwolnij przycisk BOOT, jeśli Twój kontroler lotu go posiada.
    • Flashuj z poprawnym oprogramowaniem sprzętowym (używając ręcznej szybkości transmisji, jeśli jest to określone w instrukcji FC).
    • Wyłącz.
    • Usuń zworkę BOOT.
    • Włącz (dioda aktywności powinna migać).
    • Połącz normalnie.
    " + "message": "Jeśli utraciłeś komunikację z płytką kontrolera lotu, wykonaj następujące kroki, aby przywrócić komunikację:
    • Odepnij zasilanie
    • Włącz „Nie restartuj”, włącz „Wyczyść pamięć”.
    • Zepnij styki BOOT lub przytrzymaj przycisk BOOT.
    • Podłącz zasilanie (dioda aktywności NIE będzie migać, jeśli zrobisz to poprawnie).
    • Zainstaluj wszystkie sterowniki STM32 i Zadig, jeśli to konieczne (patrz Flashowanie USB w instrukcji Betaflight).
    • Zamknij konfigurator a następnie uruchom ponownie konfigurator.
    • Zwolnij przycisk BOOT, jeśli Twój kontroler lotu go posiada.
    • Flashuj z poprawnym oprogramowaniem sprzętowym (używając ręcznej szybkości transmisji, jeśli jest to określone w instrukcji FC).
    • Wyłącz.
    • Usuń zworkę BOOT.
    • Włącz (dioda aktywności powinna migać).
    • Połącz normalnie.
    " }, "firmwareFlasherButtonLeave": { "message": "Urzyj opcji wgrywania oprogramowania" @@ -3398,6 +3491,10 @@ "message": "Diody LED bez numeru porządkowego nie zostaną zapisane.", "description": "Message in the wiring modes in Led Strip" }, + "ledStripLarsonOverlay": { + "message": "Skaner Larsona", + "description": "Larson effect switch label on LED Strip tab" + }, "ledStripBlinkAlwaysOverlay": { "message": "Migaj zawsze" }, @@ -6706,5 +6803,9 @@ }, "coreBuildModeDescription": { "message": "Ta opcja tworzy oprogramowanie układowe zawierające sterowniki sprzętowe (i niektóre ograniczone funkcje). Jest dostępna, aby pomóc w wykryciu kontrolera lotu i jest udostępniona wyłącznie dla tej wygody. Może sie tak zdarzyć, że nie wszystkie funkcje będą dostępne (na wykrytym kontrolerze lotu) przy użyciu tej opcji." + }, + "showDevToolsOnStartup": { + "message": "Automatycznie otwórz DevTools w trybie deweloperskim", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" } } diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 6e2a97ddbf..b2d2a95822 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -804,6 +804,9 @@ "initialSetupBatteryAValue": { "message": "$1 A" }, + "initialSetupCpuTemp": { + "message": "Temperatura da CPU:" + }, "initialSetupRSSI": { "message": "RSSI:" }, @@ -937,6 +940,16 @@ "message": "Mostra info do GPS, se ativadas adequadamente nas abas Portas, Configuração e GPS", "description": "Message that pops up to describe the GPS section" }, + "initialSetupSonarHead": { + "message": "Sonar" + }, + "initialSetupSonarHeadHelp": { + "message": "Mostra informações do Sonar, se adequadamente ativado na aba Configuração", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "Altitude" + }, "initialSetupInstrumentsHead": { "message": "Instrumentos" }, @@ -1041,12 +1054,21 @@ "featureSONAR": { "message": "Sonar" }, + "featureSONARTip": { + "message": "Ativar o rangefinder do Sonar para medir a distância ao solo em cm" + }, "featureTELEMETRY": { "message": "Saída de telemetria" }, + "featureTELEMETRYTip": { + "message": "Ativar a saída de telemetria a enviar ao transmissor" + }, "feature3D": { "message": "Modo 3D (para uso com ESCs reversíveis)" }, + "feature3DTip": { + "message": "Ativar modo 3D a usar com ESCs reversíveis, configure na aba Motores" + }, "featureRX_PARALLEL_PWM": { "message": "PWM (um fio por canal)" }, @@ -1059,6 +1081,9 @@ "featureLED_STRIP": { "message": "Suporte de fita de LEDs RGB multicor" }, + "featureLED_STRIPTip": { + "message": "Ativar faixa de LED RGB multi-côr, configure na aba Faixa de LED" + }, "featureDISPLAY": { "message": "Tela OLED" }, @@ -1068,6 +1093,9 @@ "featureOSD": { "message": "Informações na Tela (OSD)" }, + "featureOSDTip": { + "message": "Ativar OSD, configure na aba OSD" + }, "featureCHANNEL_FORWARDING": { "message": "Enviar canais AUX para saídas do servo" }, From 61e31e425036382b14a27c3949ee1452cbd658c2 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 19 Apr 2023 00:52:45 +0200 Subject: [PATCH 077/393] Fix no buildkey (#3427) --- src/js/tabs/firmware_flasher.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 236266c6ce..aa71656e31 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -579,14 +579,16 @@ firmware_flasher.initialize = function (callback) { if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) && navigator.onLine) { function onLoadCloudBuild(options) { - if (FC.CONFIG.buildKey.length === 32) { - FC.CONFIG.buildOptions = options.Request.Options; - } + FC.CONFIG.buildOptions = options.Request.Options; getBoardInfo(); } MSP.send_message(MSPCodes.MSP2_GET_TEXT, mspHelper.crunch(MSPCodes.MSP2_GET_TEXT, MSPCodes.BUILD_KEY), false, () => { - self.releaseLoader.requestBuildOptions(FC.CONFIG.buildKey, onLoadCloudBuild, getBoardInfo); + if (FC.CONFIG.buildKey.length === 32) { + self.releaseLoader.requestBuildOptions(FC.CONFIG.buildKey, onLoadCloudBuild, getBoardInfo); + } else { + getBoardInfo(); + } }); } else { getBoardInfo(); From 165735159874441949d6c417dc0226fb1e3f0f9d Mon Sep 17 00:00:00 2001 From: Richard Benkovsky Date: Wed, 19 Apr 2023 12:44:05 -0700 Subject: [PATCH 078/393] Add a few unit tests for MspHelper class (#3425) * Add a few unit tests for MSPHelper * Simplify encode_message_v1 * Simplify MSP_BOARD_INFO handling --- src/js/msp.js | 45 ++++------ src/js/msp/MSPHelper.js | 26 +----- test/js/msp/MSPHelper.test.js | 165 ++++++++++++++++++++++++++++++++++ 3 files changed, 183 insertions(+), 53 deletions(-) create mode 100644 test/js/msp/MSPHelper.test.js diff --git a/src/js/msp.js b/src/js/msp.js index 28d4e3e0f7..5b6cc9d8a3 100644 --- a/src/js/msp.js +++ b/src/js/msp.js @@ -262,41 +262,26 @@ const MSP = { return crc; }, encode_message_v1: function(code, data) { - let bufferOut; + const dataLength = data ? data.length : 0; // always reserve 6 bytes for protocol overhead ! - if (data) { - const size = data.length + 6; - let checksum = 0; - - bufferOut = new ArrayBuffer(size); - let bufView = new Uint8Array(bufferOut); - - bufView[0] = 36; // $ - bufView[1] = 77; // M - bufView[2] = 60; // < - bufView[3] = data.length; - bufView[4] = code; - - checksum = bufView[3] ^ bufView[4]; - - for (let i = 0; i < data.length; i++) { - bufView[i + 5] = data[i]; + const bufferSize = dataLength + 6; + let bufferOut = new ArrayBuffer(bufferSize); + let bufView = new Uint8Array(bufferOut); - checksum ^= bufView[i + 5]; - } + bufView[0] = 36; // $ + bufView[1] = 77; // M + bufView[2] = 60; // < + bufView[3] = dataLength; + bufView[4] = code; - bufView[5 + data.length] = checksum; - } else { - bufferOut = new ArrayBuffer(6); - let bufView = new Uint8Array(bufferOut); + let checksum = bufView[3] ^ bufView[4]; - bufView[0] = 36; // $ - bufView[1] = 77; // M - bufView[2] = 60; // < - bufView[3] = 0; // data length - bufView[4] = code; // code - bufView[5] = bufView[3] ^ bufView[4]; // checksum + for (let i = 0; i < dataLength; i++) { + bufView[i + 5] = data[i]; + checksum ^= bufView[i + 5]; } + + bufView[5 + dataLength] = checksum; return bufferOut; }, encode_message_v2: function (code, data) { diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 77109063cf..4c1ce77700 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -787,35 +787,15 @@ MspHelper.prototype.process_data = function(dataHandler) { } FC.CONFIG.boardVersion = data.readU16(); - FC.CONFIG.boardType = 0; - FC.CONFIG.boardType = data.readU8(); - FC.CONFIG.targetCapabilities = 0; - FC.CONFIG.targetName = ''; - FC.CONFIG.targetCapabilities = data.readU8(); - let length = data.readU8(); - for (let i = 0; i < length; i++) { - FC.CONFIG.targetName += String.fromCharCode(data.readU8()); - } + FC.CONFIG.targetName = this.getText(data); - FC.CONFIG.boardName = ''; - FC.CONFIG.manufacturerId = ''; + FC.CONFIG.boardName = this.getText(data); + FC.CONFIG.manufacturerId = this.getText(data); FC.CONFIG.signature = []; - length = data.readU8(); - - for (let i = 0; i < length; i++) { - FC.CONFIG.boardName += String.fromCharCode(data.readU8()); - } - - length = data.readU8(); - - for (let i = 0; i < length; i++) { - FC.CONFIG.manufacturerId += String.fromCharCode(data.readU8()); - } - for (let i = 0; i < self.SIGNATURE_LENGTH; i++) { FC.CONFIG.signature.push(data.readU8()); } diff --git a/test/js/msp/MSPHelper.test.js b/test/js/msp/MSPHelper.test.js new file mode 100644 index 0000000000..cd21acf634 --- /dev/null +++ b/test/js/msp/MSPHelper.test.js @@ -0,0 +1,165 @@ +import {beforeEach, describe, expect, it} from "vitest"; +import MspHelper from "../../../src/js/msp/MSPHelper"; +import MSPCodes from "../../../src/js/msp/MSPCodes"; +import '../../../src/js/injected_methods'; +import FC from "../../../src/js/fc"; +import {API_VERSION_1_46} from "../../../src/js/data_storage"; + +describe("MspHelper", () => { + const mspHelper = new MspHelper(); + beforeEach(() => { + FC.resetState(); + }); + describe("process_data", () => { + it("refuses to process data with crc-error", () => { + let callbackCalled = false; + + let callbackFunction = (item) => { + callbackCalled = true; + expect(item['crcError']).toEqual(true); + expect(item['command']).toEqual(MSPCodes.MSP_BOARD_INFO); + expect(item['length']).toEqual(0); + }; + + mspHelper.process_data({ + code: MSPCodes.MSP_BOARD_INFO, + dataView: new DataView(new Uint8Array([]).buffer), + crcError: true, + callbacks: [{ + callback: callbackFunction, + callbackOnError: true, + code: MSPCodes.MSP_BOARD_INFO, + }], + }); + + expect(callbackCalled).toEqual(true); + }); + it("handles MSP_API_VERSION correctly", () => { + let randomValues = crypto.getRandomValues(new Uint8Array(3)); + const [mspProtocolVersion, apiVersionMajor, apiVersionMinor] = randomValues; + mspHelper.process_data({ + code: MSPCodes.MSP_API_VERSION, + dataView: new DataView(randomValues.buffer), + crcError: false, + callbacks: [], + }); + + expect(FC.CONFIG.mspProtocolVersion).toEqual(mspProtocolVersion); + expect(FC.CONFIG.apiVersion).toEqual(`${apiVersionMajor}.${apiVersionMinor}.0`); + }); + it("handles MSP_PIDNAMES correctly", () => { + let pidNamesCount = 1 + crypto.getRandomValues(new Uint8Array(1))[0]; + let expectedNames = Array.from({length: pidNamesCount}).map(_ => generateRandomString()); + + let lowLevelData = []; + appendStringToArray(lowLevelData, `${expectedNames.join(';')};`); + + mspHelper.process_data({ + code: MSPCodes.MSP_PIDNAMES, + dataView: new DataView(new Uint8Array(lowLevelData).buffer), + crcError: false, + callbacks: [], + }); + + expect(FC.PID_NAMES).toEqual(expectedNames); + }); + it("handles MSP_MOTOR correctly", () => { + let motorCount = crypto.getRandomValues(new Uint8Array(1))[0] % 8; + let motorBytes = crypto.getRandomValues(new Uint16Array(motorCount)); + + mspHelper.process_data({ + code: MSPCodes.MSP_MOTOR, + dataView: new DataView(new Uint16Array(motorBytes).buffer), + crcError: false, + callbacks: [], + }); + expect(new Uint16Array(FC.MOTOR_DATA).slice(0, motorCount)).toEqual(motorBytes); + expect(FC.MOTOR_DATA.slice(motorCount, 8)).toContain(undefined); + }); + it("handles MSP_BOARD_INFO correctly for API version", () => { + FC.CONFIG.apiVersion = API_VERSION_1_46; + let infoBuffer = []; + + const boardIdentifier = appendStringToArray(infoBuffer, generateRandomString(4)); // set board-identifier + + infoBuffer.push16(0xDEAD); // set board version + infoBuffer.push8(0x12); // set board type + infoBuffer.push8(0x32); // set target capabilities + + const targetName = appendStringToArray(infoBuffer, generateRandomString(), true); // set target name + const boardName = appendStringToArray(infoBuffer, generateRandomString(), true); // set board name + const manufacturerId = appendStringToArray(infoBuffer, generateRandomString(), true); // set board name + const signature = crypto.getRandomValues(new Uint8Array(32)); + + signature.forEach(element => infoBuffer.push8(element)); + infoBuffer.push8(0xFA); // mcu type id + infoBuffer.push8(0xBB); // configuration state + infoBuffer.push16(0xBAAB); // sample rate + infoBuffer.push32(0xDEADBEEF); // configuration problems + + mspHelper.process_data({ + code: MSPCodes.MSP_BOARD_INFO, + dataView: new DataView(new Uint8Array(infoBuffer).buffer), + crcError: false, + callbacks: [], + }); + + expect(FC.CONFIG.boardIdentifier).toEqual(boardIdentifier); + expect(FC.CONFIG.boardVersion).toEqual(0xDEAD); + expect(FC.CONFIG.boardType).toEqual(0x12); + expect(FC.CONFIG.targetCapabilities).toEqual(0x32); + expect(FC.CONFIG.targetName).toEqual(targetName); + expect(FC.CONFIG.boardName).toEqual(boardName); + expect(FC.CONFIG.manufacturerId).toEqual(manufacturerId); + expect(new Uint8Array(FC.CONFIG.signature)).toEqual(signature); + expect(FC.CONFIG.mcuTypeId).toEqual(0xFA); + + expect(FC.CONFIG.configurationState).toEqual(0xBB); + expect(FC.CONFIG.sampleRateHz).toEqual(0xBAAB); + expect(FC.CONFIG.configurationProblems).toEqual(0xDEADBEEF); + }); + }); +}); + +/** + * Appends given string to an array. If required, it will append length of the string by length. + * @param destination array to which we append given string (and length if required) + * @param source string to append to an array + * @param prefixWithLength should we prefix the string by its length in the array + * @returns {*} string that was requested to be inserted to the array + */ +function appendStringToArray(destination, source, prefixWithLength = false) { + const size = source.length; + + if (prefixWithLength) { + destination.push8(source.length); + } + + for (let i = 0; i < size; i++) { + destination.push8(source.charCodeAt(i)); + } + + return source; +} + +/** + * Generates a random string of required length. If required length is -1, it will generate a random string of a random length. + * @param length required random string length. If lower than 0, it will generate a string of random length. + * @returns {string} random string (composed of letters [A-Za-z0-9]) + */ +function generateRandomString(length = -1) { + let result = ''; + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + const charactersLength = characters.length; + + if (length < 0) { + length = crypto.getRandomValues(new Uint8Array(1))[0]; + } + + const signature = crypto.getRandomValues(new Uint8Array(length)); + for (let i = 0; i < length; i++) { + result += characters.charAt(signature[i] % charactersLength); + } + + return result; +} From 8d5533bbd03781f68345532e80ff77ed8910104b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Kiripolszky?= Date: Sat, 22 Apr 2023 21:18:38 +0200 Subject: [PATCH 079/393] Clarify the usage of crash flip arrow (#3428) --- locales/en/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index bce8b815b2..88947f9fed 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -5447,7 +5447,7 @@ "description": "One of the elements of the OSD" }, "osdDescElementFlipArrow": { - "message": "Arrow showing which side motors are up in turtle mode" + "message": "Arrow showing which side motors are up in turtle mode (accelerometer must be enabled)" }, "osdTextElementLinkQuality": { "message": "Link quality", From b523f0a0ac749fa5532f5ecffd4a935b1f548401 Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Thu, 27 Apr 2023 13:23:50 +0200 Subject: [PATCH 080/393] Color for vtx ready status (#3422) * VTX ready change if device get ready * minor change * removed class from translated string * Use of css way * Now use CSS style * reduce size of main.less * xVx --- locales/en/messages.json | 12 ++++++++-- src/css/main.less | 22 ++++++++----------- src/js/tabs/gps.js | 4 +++- src/js/tabs/setup.js | 6 +++-- src/js/tabs/vtx.js | 23 ++++++++++++++------ src/tabs/gps.html | 6 ++--- src/tabs/setup.html | 4 ++-- src/tabs/vtx.html | 47 +++++++++++++++++++--------------------- 8 files changed, 68 insertions(+), 56 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 88947f9fed..fcbfce4729 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -2560,10 +2560,10 @@ "message": "3D Fix:" }, "gpsFixTrue": { - "message": "True" + "message": "True" }, "gpsFixFalse": { - "message": "False" + "message": "False" }, "gpsAltitude": { "message": "Altitude:" @@ -6139,6 +6139,14 @@ "message": "You can select here the frequency for your VTX if it is supported", "description": "Help text for the frequency field of the VTX tab" }, + "vtxReadyTrue": { + "message": "True", + "description": "vtx device are ready" + }, + "vtxReadyFalse": { + "message": "False", + "description": "vtx device are not ready" + }, "vtxDeviceReady": { "message": "Device ready", "description": "Text of one of the fields of the VTX tab" diff --git a/src/css/main.less b/src/css/main.less index 2f8a0a5ee0..d7a6442ff9 100644 --- a/src/css/main.less +++ b/src/css/main.less @@ -1715,19 +1715,15 @@ dialog { height: auto; } } -.fixtrue { - background-color: #56ac1d; - padding: 2px 5px; - border-radius: 3px; - color: #fff; - font-size: 10px; -} -.fixfalse { - background-color: #e60000; - padding: 2px 5px; - border-radius: 3px; - color: #fff; - font-size: 10px; +.colorToggle { + background-color: #e60000; + padding: 2px 5px; + border-radius: 3px; + color: #fff; + font-size: 10px; + &.ready { + background-color: #56ac1d; + } } .buildInfoBtn { position: relative; diff --git a/src/js/tabs/gps.js b/src/js/tabs/gps.js index 0209cc3e75..82ca12a805 100644 --- a/src/js/tabs/gps.js +++ b/src/js/tabs/gps.js @@ -192,7 +192,9 @@ gps.initialize = async function (callback) { const healthyArray = ['gnssHealthyUnknown', 'gnssHealthyHealthy', 'gnssHealthyUnhealthy', 'gnssHealthyUnknown']; let alt = FC.GPS_DATA.alt; - $('.GPS_info td.fix').html((FC.GPS_DATA.fix) ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse')); + $('.GPS_info span.colorToggle').text(FC.GPS_DATA.fix ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse')); + $('.GPS_info span.colorToggle').toggleClass('ready', FC.GPS_DATA.fix != 0); + $('.GPS_info td.alt').text(`${alt} m`); $('.GPS_info td.lat a').prop('href', url).text(`${lat.toFixed(4)} deg`); $('.GPS_info td.lon a').prop('href', url).text(`${lon.toFixed(4)} deg`); diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index fc19d9a46b..fd9b409b53 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -192,7 +192,7 @@ setup.initialize = function (callback) { rssi_e = $('.rssi'), cputemp_e = $('.cpu-temp'), arming_disable_flags_e = $('.arming-disable-flags'), - gpsFix_e = $('.gpsFix'), + gpsFix_e = $('.GPS_info span.colorToggle'), gpsSats_e = $('.gpsSats'), gpsLat_e = $('.gpsLat'), gpsLon_e = $('.gpsLon'), @@ -428,7 +428,9 @@ setup.initialize = function (callback) { // GPS info is acquired in the background using update_live_status() in serial_backend.js - gpsFix_e.html((FC.GPS_DATA.fix) ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse')); + gpsFix_e.text(FC.GPS_DATA.fix ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse')); + gpsFix_e.toggleClass('ready', FC.GPS_DATA.fix != 0); + gpsSats_e.text(FC.GPS_DATA.numSat); gpsLat_e.text(`${(FC.GPS_DATA.lat / 10000000).toFixed(4)} deg`); gpsLon_e.text(`${(FC.GPS_DATA.lon / 10000000).toFixed(4)} deg`); diff --git a/src/js/tabs/vtx.js b/src/js/tabs/vtx.js index 0a01ef5f04..82450c99b5 100644 --- a/src/js/tabs/vtx.js +++ b/src/js/tabs/vtx.js @@ -40,12 +40,22 @@ vtx.isVtxDeviceStatusNotReady = function() vtx.updateVtxDeviceStatus = function() { - MSP.send_message(MSPCodes.MSP2_GET_VTX_DEVICE_STATUS, false, false, vtxDeviceStatusReceived); - function vtxDeviceStatusReceived() { $("#vtx_type_description").text(TABS.vtx.getVtxTypeString()); } + + function vtxDeviceStatusReady() + { + const vtxReady_e = $('.VTX_info span.colorToggle'); + + // update device ready state + vtxReady_e.text(FC.VTX_CONFIG.vtx_device_ready ? i18n.getMessage('vtxReadyTrue') : i18n.getMessage('vtxReadyFalse')); + vtxReady_e.toggleClass('ready', FC.VTX_CONFIG.vtx_device_ready); + } + + MSP.send_message(MSPCodes.MSP2_GET_VTX_DEVICE_STATUS, false, false, vtxDeviceStatusReceived); + MSP.send_message(MSPCodes.MSP_VTX_CONFIG, false, false, vtxDeviceStatusReady); }; vtx.getVtxTypeString = function() @@ -205,7 +215,6 @@ vtx.initialize = function (callback) { // Bands and channels FC.VTX_CONFIG.vtx_table_bands = vtxConfig.vtx_table.bands_list.length; - let maxChannels = 0; TABS.vtx.VTXTABLE_BAND_LIST = []; for (let i = 1; i <= FC.VTX_CONFIG.vtx_table_bands; i++) { @@ -290,14 +299,14 @@ vtx.initialize = function (callback) { $("#vtx_low_power_disarm").val(FC.VTX_CONFIG.vtx_low_power_disarm); // Values of the current values - const yesMessage = i18n.getMessage("yes"); - const noMessage = i18n.getMessage("no"); + const vtxReady_e = $('.VTX_info span.colorToggle'); + vtxReady_e.text(FC.VTX_CONFIG.vtx_device_ready ? i18n.getMessage('vtxReadyTrue') : i18n.getMessage('vtxReadyFalse')); + vtxReady_e.toggleClass('ready', FC.VTX_CONFIG.vtx_device_ready); - $("#vtx_device_ready_description").text(FC.VTX_CONFIG.vtx_device_ready ? yesMessage : noMessage); $("#vtx_type_description").text(self.getVtxTypeString()); $("#vtx_channel_description").text(FC.VTX_CONFIG.vtx_channel); $("#vtx_frequency_description").text(FC.VTX_CONFIG.vtx_frequency); - $("#vtx_pit_mode_description").text(FC.VTX_CONFIG.vtx_pit_mode ? yesMessage : noMessage); + $("#vtx_pit_mode_description").text(FC.VTX_CONFIG.vtx_pit_mode ? i18n.getMessage("Yes") : i18n.getMessage("No")); $("#vtx_pit_mode_frequency_description").text(FC.VTX_CONFIG.vtx_pit_mode_frequency); $("#vtx_low_power_disarm_description").text(i18n.getMessage(`vtxLowPowerDisarmOption_${FC.VTX_CONFIG.vtx_low_power_disarm}`)); diff --git a/src/tabs/gps.html b/src/tabs/gps.html index ef94e12d49..d6b1730fc7 100644 --- a/src/tabs/gps.html +++ b/src/tabs/gps.html @@ -7,7 +7,6 @@
    -
    @@ -77,7 +76,6 @@
    -
    @@ -85,8 +83,8 @@
    - - + + diff --git a/src/tabs/setup.html b/src/tabs/setup.html index 0675c6f3e4..f8d85a1c68 100644 --- a/src/tabs/setup.html +++ b/src/tabs/setup.html @@ -116,12 +116,12 @@
    -
    +
    - + diff --git a/src/tabs/vtx.html b/src/tabs/vtx.html index 5632728d05..41df191c94 100644 --- a/src/tabs/vtx.html +++ b/src/tabs/vtx.html @@ -125,50 +125,47 @@
    -
    - -
    - +
    +
    + + + + + - - - - - + - - + + - + - - + + - - + + - - + + - - + + - - - -
    - + + +
    From 1c4332ae21acad20485a1a982e1582a70e40ec78 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 27 Apr 2023 14:00:31 +0200 Subject: [PATCH 081/393] Update translations (#3431) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 2 +- locales/da/messages.json | 20 ++++++++++---------- locales/de/messages.json | 2 +- locales/es/messages.json | 2 +- locales/eu/messages.json | 3 --- locales/fr/messages.json | 3 --- locales/gl/messages.json | 3 --- locales/it/messages.json | 4 ++-- locales/ja/messages.json | 2 +- locales/ko/messages.json | 2 +- locales/nl/messages.json | 3 --- locales/pl/messages.json | 4 ++-- locales/pt/messages.json | 2 +- locales/pt_BR/messages.json | 3 --- locales/ru/messages.json | 3 --- locales/zh_CN/messages.json | 3 --- locales/zh_TW/messages.json | 3 --- 17 files changed, 20 insertions(+), 44 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index d766d30ce5..91d471f26a 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -5343,7 +5343,7 @@ "description": "One of the elements of the OSD" }, "osdDescElementFlipArrow": { - "message": "Fletxa que mostra quins motors laterals estan dalt en mode tortuga" + "message": "Fletxa que mostra quins motors laterals estan amunt en mode tortuga (l'acceleròmetre ha d'estar habilitat)" }, "osdTextElementLinkQuality": { "message": "Qualitat enllaç", diff --git a/locales/da/messages.json b/locales/da/messages.json index d21382b65a..f9247ef537 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -1358,7 +1358,7 @@ "message": "Bip ved fuldført Blackbox-sletning" }, "beeperCRASH_FLIP": { - "message": "Bip, når crash flip-tistand er aktiv" + "message": "Bip, når \"Vend havereret drone\" er aktiv" }, "beeperCAM_CONNECTION_OPEN": { "message": "Bip, når 5-tasts kamerakontrol tilgås" @@ -2149,7 +2149,7 @@ "message": "Aktivér kontroller" }, "auxiliaryHelp": { - "message": "Opsæt kanal tilstande her vha. en kombination af kanal tilknytninger og/eller kanalområder (kanal områder understøttes fra BF 4.0). Benyt kanal til at definere kanaler og tilhørende kanal områder. En modtagerkanal med en udlæsning mellem et min/maks område, aktiverer tilstanden. Benyt et område for at aktivere en tilstand, når et andet område er aktiveret. Undtagelser: Aktiver(ARM) kan ikke linkes til eller fra en anden tilstand, tilstande kan ikke linkes til andre tilstande, som er opsat med et link (kædede links). Flere områder/links kan benyttes til at aktivere enhver tilstand. Er derdefineret mere end ét område/link for en tilstand, kan hver af dem opsættes til AND eller OR. En tilstand aktiveres, når:
    - ALLE AND områder/links er aktive; ELLER
    - mindst ét OR område/link er aktivt.

    Husk at gemme dine indstillinger med knappen Gem." + "message": "Opsæt kanal tilstande her vha. en kombination af kanal tilknytninger og/eller kanalområder (kanal områder understøttes fra BF 4.0). Benyt Tilknyt kanal til at definere kanaler og tilhørende kanal områder. En modtagerkanal med signal mellem et min/maks område, aktiverer tilstanden. Benyt et område for at aktivere en tilstand, når et andet område er aktiveret. Undtagelser: Aktiver(ARM) kan ikke tilknyttes til eller fra en anden tilstand, tilstande kan ikke tilknyttes til andre tilstande, som er opsat med en tilknytning (kædede tilknytninger). Flere områder/tilknytninger kan benyttes til at aktivere enhver tilstand.
    Er der defineret mere end ét område/tilknytning for en tilstand, kan hver af dem opsættes til OG eller ELLER. En tilstand aktiveres, når:
    - ALLE OG områder/tilknytninger er aktive;
    - ELLER mindst ét ELLER område/tilknytning er aktivt.

    Husk at gemme dine indstillinger med knappen Gem." }, "auxiliaryToggleUnused": { "message": "Skjul ubrugte kanal tilstande" @@ -2459,10 +2459,10 @@ "message": "3D-fiksering:" }, "gpsFixTrue": { - "message": "Sand" + "message": "Sand" }, "gpsFixFalse": { - "message": "Falsk" + "message": "Falsk" }, "gpsAltitude": { "message": "Højde:" @@ -4028,7 +4028,7 @@ "description": "Header text for the RPM Filter group" }, "pidTuningRpmFilterHelp": { - "message": "RPM filtrering er en gruppe af hak filtre på gyro som bruger RPM telemetri data til at fjerne motorstøj med kirurgisk præcision.

    VIGTIGT: ESC skal understøtte todirectional DShot protokollen og værdien af $t(configurationMotorPoles.message) i $t(tabMotorTesting.message) fanen skal være korrekt for at dette filter kan virke.", + "message": "RPM filtrering er en gruppe af hak filtre på gyro som bruger RPM telemetri data til at fjerne motorstøj med kirurgisk præcision.

    VIGTIGT:
    ESC skal understøtte todirectional DShot protokollen og værdien af $t(configurationMotorPoles.message) i $t(tabMotorTesting.message) fanen skal være korrekt for at dette filter kan virke.", "description": "Header text for the RPM Filter group" }, "pidTuningRpmHarmonics": { @@ -5335,7 +5335,7 @@ "description": "One of the elements of the OSD" }, "osdDescElementFlipArrow": { - "message": "Pil, der viser, hvilke motorer der er oppe i skildpadde tilstand" + "message": "Retning med pil som viser de motorer som kan vende havereret drone (accelerometer skal være aktiveret)" }, "osdTextElementLinkQuality": { "message": "Link kvalitet", @@ -5783,11 +5783,11 @@ "message": "Viser en visualisering af biperen (viser som 4 stjerner)" }, "osdWarningTextCrashFlipMode": { - "message": "Crash flip tilstand", + "message": "Vend havereret drone tilstand", "description": "One of the warnings that can be selected to be shown in the OSD" }, "osdWarningCrashFlipMode": { - "message": "Advarer når flip over efter nedbrudstilstand er aktiveret" + "message": "Advarer når \"vend havereret drone\" er aktiveret" }, "osdWarningTextEscFail": { "message": "ESC fejl", @@ -6400,13 +6400,13 @@ "message": "Fortryd" }, "modeCameraWifi": { - "message": "KAMERA WI-FI KNAP" + "message": "KAMERA WI-FI" }, "modeCameraPower": { "message": "KAMERA TÆND/SLUK" }, "modeCameraChangeMode": { - "message": "KAMERA KONFIGURATION TILSTAND" + "message": "KAMERA KONFIGURATION" }, "flashTab": { "message": "Brænd firmware" diff --git a/locales/de/messages.json b/locales/de/messages.json index b91174014b..437ebf4e90 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -5338,7 +5338,7 @@ "description": "One of the elements of the OSD" }, "osdDescElementFlipArrow": { - "message": "Ein Pfeil zeigt, welche Motorseite im Turtle-Modus vom Boden weiter weg ist" + "message": "Pfeil zur Anzeige der Seite der oben befindlichen Motoren im Schildkrötenmodus (Beschleunigungsmesser muss aktiviert sein)" }, "osdTextElementLinkQuality": { "message": "Verbindungsqualität", diff --git a/locales/es/messages.json b/locales/es/messages.json index 8e79e6de7a..4bbdab1486 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -5335,7 +5335,7 @@ "description": "One of the elements of the OSD" }, "osdDescElementFlipArrow": { - "message": "Flecha que indica que lado tiene los motores arriba en modo tortuga" + "message": "Flecha que muestra qué motores están más levantados en modo tortuga (debe estar habilitado el acelerómetro)" }, "osdTextElementLinkQuality": { "message": "RX: RSSI - calidad del enlace", diff --git a/locales/eu/messages.json b/locales/eu/messages.json index 77a88eb691..b5e5bb91d5 100644 --- a/locales/eu/messages.json +++ b/locales/eu/messages.json @@ -4066,9 +4066,6 @@ "message": "Aurrez aurre behera erori ondoren: gezia", "description": "One of the elements of the OSD" }, - "osdDescElementFlipArrow": { - "message": "Gezia, alboko motorrak zein diren dortoka moduan" - }, "osdTextElementLinkQuality": { "message": "Loturaren kalitatea", "description": "One of the elements of the OSD" diff --git a/locales/fr/messages.json b/locales/fr/messages.json index aa9d33db8a..587b7e34d2 100644 --- a/locales/fr/messages.json +++ b/locales/fr/messages.json @@ -5217,9 +5217,6 @@ "message": "Indicateur Flip-after-crash", "description": "One of the elements of the OSD" }, - "osdDescElementFlipArrow": { - "message": "En mode tortue, flèche indiquant quels moteurs seront activés" - }, "osdTextElementLinkQuality": { "message": "Qualité du lien", "description": "One of the elements of the OSD" diff --git a/locales/gl/messages.json b/locales/gl/messages.json index 60e486a12c..1a2fc96198 100644 --- a/locales/gl/messages.json +++ b/locales/gl/messages.json @@ -5312,9 +5312,6 @@ "message": "Flip despois da frecha do accidente", "description": "One of the elements of the OSD" }, - "osdDescElementFlipArrow": { - "message": "Flecha que indica que lado ten os motores arriba en modo tartaruga" - }, "osdTextElementLinkQuality": { "message": "Calidade de ligazón", "description": "One of the elements of the OSD" diff --git a/locales/it/messages.json b/locales/it/messages.json index 4972c7c3c8..cd58d700f7 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -29,7 +29,7 @@ "message": "Avviso" }, "dontShowAgain": { - "message": "Non mostrare in futuro" + "message": "Non mostrare più" }, "operationNotSupported": { "message": "Questa operazione non è supportata dal tuo hardware." @@ -5335,7 +5335,7 @@ "description": "One of the elements of the OSD" }, "osdDescElementFlipArrow": { - "message": "Freccia che mostra quali motori sono in alto in modalità tartaruga" + "message": "La freccia mostra quale dei motori laterali sono in modalità tartaruga (accelerometro deve essere abilitato)" }, "osdTextElementLinkQuality": { "message": "Qualità Link", diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 75907d9103..33664d12f7 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -5335,7 +5335,7 @@ "description": "One of the elements of the OSD" }, "osdDescElementFlipArrow": { - "message": "タートルモードでどのモーターが起動しているかを示す矢印" + "message": "タートルモードにて両端のモーターが起動していることを示す矢印 (加速度センサーを有効にする必要があります)" }, "osdTextElementLinkQuality": { "message": "リンク品質", diff --git a/locales/ko/messages.json b/locales/ko/messages.json index c28a63bfec..b3742d9b00 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -5335,7 +5335,7 @@ "description": "One of the elements of the OSD" }, "osdDescElementFlipArrow": { - "message": "터틀 모드에서 어떤 모터가 올라가는지를 보여주는 화살표" + "message": "터틀 모드에서 어느 사이드 모터가 올라가는지를 보여주는 화살표 (가속도계는 필히 활성화되어야 함)" }, "osdTextElementLinkQuality": { "message": "링크 품질(LQ)", diff --git a/locales/nl/messages.json b/locales/nl/messages.json index 12ff9161bb..8354b5cc1c 100644 --- a/locales/nl/messages.json +++ b/locales/nl/messages.json @@ -4308,9 +4308,6 @@ "message": "Flip na crash pijl", "description": "One of the elements of the OSD" }, - "osdDescElementFlipArrow": { - "message": "Pijl die laat zien welke kant de motoren hoger liggen in turtle modus" - }, "osdTextElementLinkQuality": { "message": "Kwaliteit van de verbinding", "description": "One of the elements of the OSD" diff --git a/locales/pl/messages.json b/locales/pl/messages.json index 8a7ef185f9..af1127484c 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -3207,7 +3207,7 @@ "message": "Postępuj według wytycznych nie próbuj wgrywać oprogramowania innego niż Betaflight za pomocą tego oprogramowania.
    Oraz nie odłączaj płytki lub nie wyłączaj komputera podczas flashowania.

    Uwaga: bootloader STM32 jest przechowywany w ROM-ie dlatego nie może być blokowany.
    Uwaga: Automatyczne połączenie jest zawsze wyłączone, gdy jesteś w trybie wgrywania oprogramowania.
    Uwaga: upewnij się, że masz kopię zapasową; niektóre aktualizacje mogą usunąć twoją konfigurację.
    Uwaga: jeśli masz problem z wgrywaniem oprogramowania spróbuj odłączyć wszystkie kable od kontrolera lotu następnie spróbuj ponownie uruchomić komputer oraz zaktualizować sterowniki.
    Uwaga: Podczas wgrywania oprogramowania do płytek bezpośrednio podłączonych do gniazd USB (większość nowszych płytek) upewnij się, że przeczytałeś sekcję Wgrywanie oprogramowania w instrukcji Betaflight i zainstalowałeś odpowiednie oprogramowanie i sterowniki" }, "firmwareFlasherRecoveryHead": { - "message": "Odzyskiwanie / Utracono komunikacje" + "message": "Odzyskiwanie utraconej komunikacji" }, "firmwareFlasherRecoveryText": { "message": "Jeśli utraciłeś komunikację z płytką kontrolera lotu, wykonaj następujące kroki, aby przywrócić komunikację:
    • Odepnij zasilanie
    • Włącz „Nie restartuj”, włącz „Wyczyść pamięć”.
    • Zepnij styki BOOT lub przytrzymaj przycisk BOOT.
    • Podłącz zasilanie (dioda aktywności NIE będzie migać, jeśli zrobisz to poprawnie).
    • Zainstaluj wszystkie sterowniki STM32 i Zadig, jeśli to konieczne (patrz Flashowanie USB w instrukcji Betaflight).
    • Zamknij konfigurator a następnie uruchom ponownie konfigurator.
    • Zwolnij przycisk BOOT, jeśli Twój kontroler lotu go posiada.
    • Flashuj z poprawnym oprogramowaniem sprzętowym (używając ręcznej szybkości transmisji, jeśli jest to określone w instrukcji FC).
    • Wyłącz.
    • Usuń zworkę BOOT.
    • Włącz (dioda aktywności powinna migać).
    • Połącz normalnie.
    " @@ -5335,7 +5335,7 @@ "description": "One of the elements of the OSD" }, "osdDescElementFlipArrow": { - "message": "Strzałka pokazuje, które silniki mogą być użyte w trybie turtle" + "message": "Strzałka pokazująca, które silniki boczne są w trybie żółwia (akcelerometr musi być włączony)" }, "osdTextElementLinkQuality": { "message": "Jakość połączenia", diff --git a/locales/pt/messages.json b/locales/pt/messages.json index b2d2a95822..605b094a58 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -5335,7 +5335,7 @@ "description": "One of the elements of the OSD" }, "osdDescElementFlipArrow": { - "message": "Seta que indica quais motores estão afastados do chão no modo 'virar após queda' (Turtle mode)" + "message": "Seta que mostra que motores laterais estão em cima no modo turtle (acelerómetro tem de estar ativado)" }, "osdTextElementLinkQuality": { "message": "Qualidade do Link", diff --git a/locales/pt_BR/messages.json b/locales/pt_BR/messages.json index 7db0b8f5ec..1a11c7c18a 100644 --- a/locales/pt_BR/messages.json +++ b/locales/pt_BR/messages.json @@ -5180,9 +5180,6 @@ "message": "Seta para virar após queda", "description": "One of the elements of the OSD" }, - "osdDescElementFlipArrow": { - "message": "Seta que indica quais motores estão afastados do chão no modo 'virar após queda' (Turtle mode)" - }, "osdTextElementLinkQuality": { "message": "Qualidade da conexão", "description": "One of the elements of the OSD" diff --git a/locales/ru/messages.json b/locales/ru/messages.json index 6b6fc3c3f1..caefffca84 100644 --- a/locales/ru/messages.json +++ b/locales/ru/messages.json @@ -4440,9 +4440,6 @@ "message": "Направление переворота после падения", "description": "One of the elements of the OSD" }, - "osdDescElementFlipArrow": { - "message": "Стрелка показывает в какой стороне двигатели в режиме черепахи" - }, "osdTextElementLinkQuality": { "message": "Качество подключения", "description": "One of the elements of the OSD" diff --git a/locales/zh_CN/messages.json b/locales/zh_CN/messages.json index 017aea95b5..f52311db90 100644 --- a/locales/zh_CN/messages.json +++ b/locales/zh_CN/messages.json @@ -4891,9 +4891,6 @@ "message": "反乌龟箭头", "description": "One of the elements of the OSD" }, - "osdDescElementFlipArrow": { - "message": "在反乌龟模式中,箭头指示哪边的电机朝上" - }, "osdTextElementLinkQuality": { "message": "连接质量", "description": "One of the elements of the OSD" diff --git a/locales/zh_TW/messages.json b/locales/zh_TW/messages.json index c16b8af931..6c2c41e14e 100644 --- a/locales/zh_TW/messages.json +++ b/locales/zh_TW/messages.json @@ -3993,9 +3993,6 @@ "message": "反烏龜箭頭", "description": "One of the elements of the OSD" }, - "osdDescElementFlipArrow": { - "message": "在反烏龜模式中,箭頭指示哪邊的電機朝上" - }, "osdTextElementLinkQuality": { "message": "連接質量", "description": "One of the elements of the OSD" From 51af4da42cf20470b388a6c701c0895efd827268 Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Thu, 27 Apr 2023 23:23:27 +0200 Subject: [PATCH 082/393] Add help to modes at Mode tab (#3430) * Add help to modes * Use camelize --- locales/en/messages.json | 120 +++++++++++++++++++++++++++++++++++++++ src/js/tabs/auxiliary.js | 10 +++- src/tabs/auxiliary.html | 1 + 3 files changed, 129 insertions(+), 2 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index fcbfce4729..e0c9585dac 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -2286,6 +2286,126 @@ "auxiliaryModeLogicAND": { "message": "AND" }, + "auxiliaryHelpMode_ARM": { + "message": "Enables motors and flight stabilisation", + "description": "Help text to ARM mode" + }, + "auxiliaryHelpMode_ANGLE": { + "message": "In this auto-leveled mode the roll and pitch channels control the angle between the relevant axis and the vertical, achieving leveled flight just by leaving the sticks centered", + "description": "Help text to ANGLE mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "This hybrid mode works exactly like the ANGLE mode with centered roll and pitch sticks (thus enabling auto-leveled flight), then gradually behaves more and more like the default RATE mode as the sticks are moved away from the center position", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_MAG": { + "message": "Heading lock to Magnetometer direction", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_HEADFREE": { + "message": "In this mode, the \"head\" of the multicopter is always pointing to the same direction as when the feature was activated. This means that when the multicopter rotates around the Z axis (yaw), the controls will always respond according the same \"head\" direction.
    With this mode it is easier to control the multicopter, even fly it with the physical head towards you since the controls always respond the same. This is a friendly mode to new users of multicopters and can prevent losing the control when you don't know the head direction", + "description": "Help text to HEADFREE mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Pass roll, yaw, and pitch directly from rx to servos in airplane mix", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_FAILSAFE": { + "message": "Enter failsafe stage 2 manually", + "description": "Help text to FAILSAFE mode" + }, + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Enable 'GPS Rescue' to return the craft to the location where it was last armed", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "Heading Adjust - Sets a new yaw origin for HEADFREE mode", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_BEEPER": { + "message": "Enable beeping - useful for locating a crashed aircraft", + "description": "Help text to BEEPER mode" + }, + "auxiliaryHelpMode_LEDLOW": { + "message": "Switch off LED_STRIP output", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Enable/Disable On-Screen-Display", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Enable telemetry via switch", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_BLACKBOX": { + "message": "Enable BlackBox logging", + "description": "Help text to BLACKBOX mode" + }, + "auxiliaryHelpMode_AIRMODE": { + "message": "In the standard mixer / mode, when the roll, pitch and yaw gets calculated and saturates a motor, all motors will be reduced equally. When a motor goes below minimum it gets clipped off. Say you had your throttle just above minimum and tried to pull a quick roll - since two motors can't go any lower, you essentially get half the power (half of your PID gain). If your inputs would have asked for more than a 100% difference between the high and low motors, the low motors would get clipped, breaking the symmetry of the motor balance by unevenly reducing the gain", + "description": "Help text to AIRMODE mode" + }, + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Apply yaw rotation relative to a FPV camera mounted at a preset angle", + "description": "Help text to FPV ANGLE MIX mode" + }, + "auxiliaryHelpMode_CAMERACONTROL1": { + "message": "Use to toggle customized CAMERA CONTROL 1. Check in vendor manual", + "description": "Help text to customized CAMERA CONTROL 1 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL2": { + "message": "Use to toggle customized CAMERA CONTROL 2. Check in vendor manual", + "description": "Help text to customized CAMERA CONTROL 2 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL3": { + "message": "Use to toggle customized CAMERA CONTROL 3. Check in vendor manual", + "description": "Help text to customized CAMERA CONTROL 3 mode" + }, + "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { + "message": "Reverse the motors to flip over an upside down craft after a crash (DShot required)", + "description": "Help text to FLIP OVER AFTER CRASH mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "When arming, wait for this switch to be activated before actually arming", + "description": "Help text to PREARM mode" + }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "Use a number of beeps to indicate the number of GPS satellites found", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Switch the VTX into pit mode (low output power, if supported)", + "description": "Help text to VTX PIT MODE mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Permanently disable a crashed craft until it is power cycled", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Enable 'acro trainer' angle limiting in acro mode", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Disable the control of VTX settings through the OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "Race start assistance system", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_STICKCONTROLDISABLE": { + "message": "Disable/enable stick command", + "description": "Help text to STICK CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Disable/enable beeper including warning, status and BEEPER mode", + "description": "Help text to BEEPERMUTE mode" + }, + "auxiliaryHelpMode_READY": { + "message": "Added in BF4.4, you can now show 'READY' in the OSD using a switch. This is a niche improvement for racing situations where all pilot video feeds are on one central screen. The pilot can flick a switch to indicate that they are ready to fly, and the word READY appears on their OSD. The race director can then tell if all pilots are ready by looking at the central screen. On arming, the READY text disappears", + "description": "Help text to READY mode" + }, "adjustmentsHelp": { "message": "Configure adjustment switches. See the 'in-flight adjustments' section of the manual for details. The changes that adjustment functions make are not saved automatically." }, diff --git a/src/js/tabs/auxiliary.js b/src/js/tabs/auxiliary.js index a0c766d692..671948b29a 100644 --- a/src/js/tabs/auxiliary.js +++ b/src/js/tabs/auxiliary.js @@ -9,6 +9,7 @@ import MSPCodes from '../msp/MSPCodes'; import adjustBoxNameIfPeripheralWithModeID from '../peripherals'; import { gui_log } from '../gui_log'; import { getTextWidth } from '../utils/common'; +import inflection from "inflection"; const auxiliary = {}; @@ -53,10 +54,15 @@ auxiliary.initialize = function (callback) { let modeName = FC.AUX_CONFIG[modeIndex]; // Adjust the name of the box if a peripheral is selected - modeName = adjustBoxNameIfPeripheralWithModeID(modeId, modeName); + const modeNameAjusted = adjustBoxNameIfPeripheralWithModeID(modeId, modeName); + // Camlize modeName + const modeNameCamel = inflection.camelize(modeName.replace(/\s+/g, '')); $(newMode).attr('id', `mode-${modeIndex}`); - $(newMode).find('.name').text(modeName); + $(newMode).find('.name').text(modeNameAjusted); + + // add help to mode + $(newMode).find('.helpicon').attr('i18n_title', `auxiliaryHelpMode_${modeNameCamel}`); $(newMode).data('index', modeIndex); $(newMode).data('id', modeId); diff --git a/src/tabs/auxiliary.html b/src/tabs/auxiliary.html index ef85391266..96ec1fdbe9 100644 --- a/src/tabs/auxiliary.html +++ b/src/tabs/auxiliary.html @@ -27,6 +27,7 @@
    +

    From 44fd3af527c1378f2698b237939cb6beb730b15a Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 3 May 2023 17:53:55 +0200 Subject: [PATCH 083/393] Fix missing tooltip messages (#3435) --- locales/en/messages.json | 44 +++++++++++++++++++++++++++++----------- src/tabs/auxiliary.html | 2 +- 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index e0c9585dac..6c824af0f0 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -946,9 +946,9 @@ "message": "Runway Takeoff Prevention has been triggered", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Disarmed via crash detection", - "description": "Message that pops up to describe the CRASH arming disable flag" + "initialSetupArmingDisableFlagsTooltipCRASH_DETECTED": { + "message": "Crash detection is active", + "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Throttle channel is too high", @@ -970,9 +970,9 @@ "message": "System load is too high for safe flight", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "Sensor calibration is still ongoing", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" + "initialSetupArmingDisableFlagsTooltipACC_CALIBRATION": { + "message": "Accelerometer calibration is still ongoing", + "description": "Message that pops up to describe the ACC_CALIBRATION arming disable flag" }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI is active", @@ -1010,19 +1010,19 @@ "message": "RPM-based filtering is enabled but one or more ESC's are not supplying valid DSHOT telemetry. Check that the ESC's are capable of and have the required firmware installed to support bidirectional DSHOT telemetry.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { + "initialSetupArmingDisableFlagsTooltipREBOOT_REQUIRED": { "message": "A configuration change requires a reboot", "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { + "initialSetupArmingDisableFlagsTooltipDSHOT_BITBANG": { "message": "Bitbanged DSHOT is not working properly and the motors can't be controlled. Likely caused by a timer conflict with other features enabled on the flight controller.", "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { + "initialSetupArmingDisableFlagsTooltipNO_ACC_CALIBRATION": { "message": "The accelerometer has not been calibrated and features are enabled that rely on it. Calibrate the accelerometer.", "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { + "initialSetupArmingDisableFlagsTooltipMOTOR_PROTOCOL": { "message": "There is no motor output protocol selected", "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" }, @@ -2342,6 +2342,10 @@ "message": "Enable BlackBox logging", "description": "Help text to BLACKBOX mode" }, + "auxiliaryHelpMode_BLACKBOXERASE": { + "message": "Erase BlackBox log", + "description": "Help text to BLACKBOX ERASE mode" + }, "auxiliaryHelpMode_AIRMODE": { "message": "In the standard mixer / mode, when the roll, pitch and yaw gets calculated and saturates a motor, all motors will be reduced equally. When a motor goes below minimum it gets clipped off. Say you had your throttle just above minimum and tried to pull a quick roll - since two motors can't go any lower, you essentially get half the power (half of your PID gain). If your inputs would have asked for more than a 100% difference between the high and low motors, the low motors would get clipped, breaking the symmetry of the motor balance by unevenly reducing the gain", "description": "Help text to AIRMODE mode" @@ -2362,6 +2366,22 @@ "message": "Use to toggle customized CAMERA CONTROL 3. Check in vendor manual", "description": "Help text to customized CAMERA CONTROL 3 mode" }, + "auxiliaryHelpMode_USER1": { + "message": "Use to toggle customized USER1. Check in vendor manual", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Use to toggle customized USER2. Check in vendor manual", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Use to toggle customized USER3. Check in vendor manual", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Use to toggle customized USER4. Check in vendor manual", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Reverse the motors to flip over an upside down craft after a crash (DShot required)", "description": "Help text to FLIP OVER AFTER CRASH mode" @@ -2394,9 +2414,9 @@ "message": "Race start assistance system", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCONTROLDISABLE": { + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { "message": "Disable/enable stick command", - "description": "Help text to STICK CONTROL DISABLE mode" + "description": "Help text to STICK COMMANDS DISABLE mode" }, "auxiliaryHelpMode_BEEPERMUTE": { "message": "Disable/enable beeper including warning, status and BEEPER mode", diff --git a/src/tabs/auxiliary.html b/src/tabs/auxiliary.html index 96ec1fdbe9..260208f034 100644 --- a/src/tabs/auxiliary.html +++ b/src/tabs/auxiliary.html @@ -27,7 +27,7 @@
    -
    +

    From 67ce2ec7c781e4e28d710cf75676044532701651 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 3 May 2023 18:51:11 +0200 Subject: [PATCH 084/393] Update translations (#3434) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 132 +++++++++++++++++++++++++++++++- locales/da/messages.json | 134 +++++++++++++++++++++++++++++++- locales/de/messages.json | 6 -- locales/es/messages.json | 132 +++++++++++++++++++++++++++++++- locales/eu/messages.json | 6 -- locales/fr/messages.json | 6 -- locales/gl/messages.json | 6 -- locales/it/messages.json | 132 +++++++++++++++++++++++++++++++- locales/ja/messages.json | 132 +++++++++++++++++++++++++++++++- locales/ko/messages.json | 148 +++++++++++++++++++++++++++++++++--- locales/nl/messages.json | 6 -- locales/pl/messages.json | 132 +++++++++++++++++++++++++++++++- locales/pt/messages.json | 20 ++++- locales/pt_BR/messages.json | 6 -- locales/ru/messages.json | 6 -- locales/zh_CN/messages.json | 6 -- locales/zh_TW/messages.json | 6 -- 17 files changed, 937 insertions(+), 79 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index 91d471f26a..6ee61e53dd 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -2193,6 +2193,126 @@ "auxiliaryModeLogicAND": { "message": "AND" }, + "auxiliaryHelpMode_ARM": { + "message": "Permet l'estabilització de motors i vol", + "description": "Help text to ARM mode" + }, + "auxiliaryHelpMode_ANGLE": { + "message": "En aquest mode d'anivellació automàtica, els canals de balanceig i cabeceig controlen l'angle entre l'eix rellevant i la vertical, aconseguint un vol anivellat només deixant els sticks centrats", + "description": "Help text to ANGLE mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "Aquest mode híbrid funciona exactament com el mode ANGLE amb els sticks centrats de gir i de pas (per tant, permeten el vol autonivellat), i gradualment es comporta cada cop més com el mode RATE predeterminat a mesura que els sticks s'allunyen de la posició central", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_MAG": { + "message": "Bloqueig de direcció cap a la direcció del magnetòmetre", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_HEADFREE": { + "message": "En aquest mode, el \"cap\" del multicopter sempre apunta a la mateixa direcció que quan es va activar la funció. Això vol dir que quan el multicopter gira al voltant de l'eix Z (guiada), els controls sempre respondran segons la mateixa direcció del \"cap\".
    Amb aquest mode és més fàcil controlar el multicopter, fins i tot volar-lo amb el cap físic cap a tu ja que els controls sempre responen igual. Aquest és un mode amigable per als nous usuaris de multicopters i pot evitar perdre el control quan no coneixeu la direcció del cap", + "description": "Help text to HEADFREE mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Pasa el roll, yaw i el pitch directament des de rx als servos al mix del multicopter", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_FAILSAFE": { + "message": "Introduïu el Failsafe 2 manualment", + "description": "Help text to FAILSAFE mode" + }, + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Habilita el \"Rescat GPS\" per tornar el multicopter a la ubicació on es va armar per última vegada", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "Ajust de cap: estableix un nou origen de yaw per al mode HEADFREE", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_BEEPER": { + "message": "Habilita el bip: útil per localitzar un multicopter estavellat", + "description": "Help text to BEEPER mode" + }, + "auxiliaryHelpMode_LEDLOW": { + "message": "Desactiva la sortida del LED_STRIP", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Activa/desactiva la visualització en pantalla, OSD", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Activa la telemetria mitjançant l'interruptor", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_BLACKBOX": { + "message": "Activa el registre del BlackBox", + "description": "Help text to BLACKBOX mode" + }, + "auxiliaryHelpMode_AIRMODE": { + "message": "En el mode de mesclador estàndard, quan es calculen el roll, el pitch i el yaw i saturen un motor, tots els motors es reduiran per igual. Quan un motor baixa per sota del mínim es talla. Diguem que teníeu l'accelerador just per sobre del mínim i vau intentar tirar un gir ràpid; com que dos motors no poden baixar, bàsicament obteniu la meitat de la potència (la meitat del vostre guany PID). Si les vostres entrades haurien demanat més d'una diferència del 100% entre els motors alts i baixos, els motors baixos es retallarien, trencant la simetria de l'equilibri del motor reduint de manera desigual el guany.", + "description": "Help text to AIRMODE mode" + }, + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Aplica la rotació de yaw en relació a una càmera FPV muntada en un angle preestablert", + "description": "Help text to FPV ANGLE MIX mode" + }, + "auxiliaryHelpMode_CAMERACONTROL1": { + "message": "Utilitzeu-lo per canviar el control personalitzat de la càmera 1. Consulteu el manual del proveïdor", + "description": "Help text to customized CAMERA CONTROL 1 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL2": { + "message": "Utilitzeu-lo per canviar el control personalitzat de la càmera 2. Consulteu el manual del proveïdor", + "description": "Help text to customized CAMERA CONTROL 2 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL3": { + "message": "Utilitzeu-lo per canviar el control personalitzat de la càmera 3. Consulteu el manual del proveïdor", + "description": "Help text to customized CAMERA CONTROL 3 mode" + }, + "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { + "message": "Inverteix els motors per capgirar el multicopter cap per avall després d'un xoc (cal DShot)", + "description": "Help text to FLIP OVER AFTER CRASH mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "Quan s'arma, espereu que aquest interruptor s'activi abans d'armar-lo", + "description": "Help text to PREARM mode" + }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "Utilitza un nombre de bips per indicar el nombre de satèl·lits GPS trobats", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Canvia el VTX al mode PIT (potència de sortida baixa, si és compatible)", + "description": "Help text to VTX PIT MODE mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Desactiva permanentment el multicopter accidentat fins que s'apaga", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Activa la limitació d'angle \"acro trainer\" en mode acro", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Desactiva el control de la configuració de VTX mitjançant l'OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "Sistema d'assistència a l'inici de cursa", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_STICKCONTROLDISABLE": { + "message": "Desactiva/activa les ordres dels sticks", + "description": "Help text to STICK CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Desactiva/activa el beeper inclòs l'avís, l'estat i el mode BEEPER", + "description": "Help text to BEEPERMUTE mode" + }, + "auxiliaryHelpMode_READY": { + "message": "Afegit a BF4.4, ara podeu mostrar \"READY\" a l'OSD mitjançant un interruptor. Aquesta és una millora de nínxol per a situacions de cursa on tots els canals de vídeo pilot es troben en una pantalla central. El pilot pot accionar un interruptor per indicar que està preparat per volar i la paraula READY apareix al seu OSD. Aleshores, el director de cursa pot saber si tots els pilots estan preparats mirant la pantalla central. En armar-se, el text READY desapareix", + "description": "Help text to READY mode" + }, "adjustmentsHelp": { "message": "Configureu els interruptors d'ajust. Consulteu la secció \"Ajustaments de vol\" del manual per obtenir-ne més detalls. Els canvis que realitzen les funcions d'ajust no es guarden automàticament. Hi ha 4 ranures (slots). Cada interruptor utilitzat per fer ajustaments simultanis requereix l'ús exclusiu d'una ranura." }, @@ -2467,10 +2587,10 @@ "message": "3D Fix:" }, "gpsFixTrue": { - "message": "True" + "message": "Cert" }, "gpsFixFalse": { - "message": "False" + "message": "Fals" }, "gpsAltitude": { "message": "Altitud:" @@ -6029,6 +6149,14 @@ "message": "Pots seleccionar la freqüència del teu VTX si es troba suportat", "description": "Help text for the frequency field of the VTX tab" }, + "vtxReadyTrue": { + "message": "Cert", + "description": "vtx device are ready" + }, + "vtxReadyFalse": { + "message": "Fals", + "description": "vtx device are not ready" + }, "vtxDeviceReady": { "message": "Dispositiu preparat", "description": "Text of one of the fields of the VTX tab" diff --git a/locales/da/messages.json b/locales/da/messages.json index f9247ef537..a2354645f6 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -689,10 +689,10 @@ "message": "Anbring FC/drone på en plan og ret overflade, fortsæt kalibreringen, tjek at overfladen/FC/dronen ikke bevæges under kalibreringen" }, "initialSetupButtonCalibrateMag": { - "message": "Kalibrering af Magnetometer (kompas)" + "message": "Kalibrering af Magnetometer / kompas" }, "initialSetupCalibrateMagText": { - "message": "Bevæg indenfor 30 sek. multirotoren mindst 360 grader i alle dens rotationsakser" + "message": "Bevæg indenfor 30 sek. dronen 360 grader i alle dens rotationsakser" }, "initialSetupButtonCalibratingText": { "message": "Kalibrerér..." @@ -1211,7 +1211,7 @@ "message": "ACCEL-justering" }, "configurationSensorAlignmentMag": { - "message": "Magnetometer (kompas) justering" + "message": "Justering af Magnetometer / kompas" }, "configurationSensorAlignmentDefaultOption": { "message": "Standard" @@ -2185,6 +2185,126 @@ "auxiliaryModeLogicAND": { "message": "OG" }, + "auxiliaryHelpMode_ARM": { + "message": "Aktiver / deaktiver drone", + "description": "Help text to ARM mode" + }, + "auxiliaryHelpMode_ANGLE": { + "message": "I denne auto-nivelleret tilstand styrer krængror og højderor vinklen mellem den relevante akse og den lodrette akse, for at udjævne flyning ved blot at lade pindende være centreret", + "description": "Help text to ANGLE mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "Denne hybrid tilstand fungerer præcis som ANGLE tilstand med centreret krængror og højderor pind (dermed muliggør auto-nivelleret flyvning), når pind flyttes væk fra center position, går styring mere og mere mod ACRO tilstand", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_MAG": { + "message": "Lås kurs i kompas retning", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_HEADFREE": { + "message": "I denne tilstand pegerkursen for dronen altid i samme retning som da funktionen blev aktiveret. Det betyder, at når dronen roterer rundt om Z-aksen (sideror), vil kontrollerne altid reagere mod samme kurs.
    Med denne tilstand er det nemmere at styre dronen, fx kan du flyve med kursen mod dig, da kontrollerne altid reagerer omgående. Dette er en venlig tilstand til nye brugere af droner og kan forhindre du mister kontrollen, hvis du ikke kender dronens kurs", + "description": "Help text to HEADFREE mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Gennemstiller krængeror, sideror og højderor fra radio sender direkte til servo", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_FAILSAFE": { + "message": "Aktiver mauelt fejlsikring trin 2", + "description": "Help text to FAILSAFE mode" + }, + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Aktiver 'GPS redning' for at returnere fartøjet til det sted, hvor det sidst var aktiveret (Home)", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "Kurs korrektion - indstiller ny sideror værdi for HEADFREE tilstand", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_BEEPER": { + "message": "Aktiver bippen - nyttigt til at lokalisere en nedstyrtet drone", + "description": "Help text to BEEPER mode" + }, + "auxiliaryHelpMode_LEDLOW": { + "message": "Sluk/tænf for LED lys", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Aktiver/deaktiver On-Screen-Display - OSD", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Aktiver telemetri via kontakt", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_BLACKBOX": { + "message": "Aktiver Blackbox logning", + "description": "Help text to BLACKBOX mode" + }, + "auxiliaryHelpMode_AIRMODE": { + "message": "I standard mixer tilstand, når krængror, højderor og sideror beregnes og styrer en motor, vil alle motorer blive ændret ens. Når en motor går under minimum, bliver styring reduceret. Fx hvis du har din gas lige over minimum og forsøger en hurtig krængning - da to motorer ikke kan gå under minimum, vil du hovedsagelig kun få halvdelen af kraften (halvdelen af din PID værdi). Hvis dit input ville have bedt om mere end 100% forskel mellem de høje og lave motores hastighed ville de de langsomm motorer blive reduceret og symmetrien i motorens balance vil blive brudt", + "description": "Help text to AIRMODE mode" + }, + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Styrer sideror bevægelse i forhold til et FPV-kamera monteret i en forud indstillet vinkel", + "description": "Help text to FPV ANGLE MIX mode" + }, + "auxiliaryHelpMode_CAMERACONTROL1": { + "message": "Brug til at skifte leverandør bestemte CAMERA CONTROL 1. Se i leverandørs manual", + "description": "Help text to customized CAMERA CONTROL 1 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL2": { + "message": "Brug til at skifte leverandør bestemte CAMERA CONTROL 2. Se i leverandørs manual", + "description": "Help text to customized CAMERA CONTROL 2 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL3": { + "message": "Brug til at skifte leverandør bestemte CAMERA CONTROL 3. Se i leverandørs manual", + "description": "Help text to customized CAMERA CONTROL 3 mode" + }, + "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { + "message": "Vender motor retning for at vende en styrtet drone (kun ved DShot protokol)", + "description": "Help text to FLIP OVER AFTER CRASH mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "Ved aktivering, skal denne kontakt også aktiveres, før dronen reelt er klar til flyvning = helt aktiveret", + "description": "Help text to PREARM mode" + }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "Fortæl med antal bip, hvormange GPS satellitter som er fundet", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Skift VTX til pit mode (lav udgangseffekt), skal være understøttet af VTX", + "description": "Help text to VTX PIT MODE mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Deaktiver permanent en styrtet drone. For at aktivere skal strøm slukkes helt", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Aktiver ACRO træner vinkelbegrænsning i ACRO tilstand", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Deaktiver kontrol af VTX indstillinger via OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "Ræs assistance system", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_STICKCONTROLDISABLE": { + "message": "Deaktiver/aktiver pind kommando", + "description": "Help text to STICK CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Deaktiver / aktiver bippen, heruder advarsler, status og anden bippen.", + "description": "Help text to BEEPERMUTE mode" + }, + "auxiliaryHelpMode_READY": { + "message": "Tilføjet i BF4.4, så du kan vise 'KLAR' i OSD ved hjælp af en kontakt. Dette er en forbedring til ræs, hvor alle piloters video vises på en central skærm. Piloten kan vippe en kontakt for at indikere, at han er klar til at flyve, og ordet READY vises på deres OSD. Løbsinstruktøren kan derefter se om alle piloter er klar, ved at se på den centrale skærm. Ved aktivering forsvinder READY teksten", + "description": "Help text to READY mode" + }, "adjustmentsHelp": { "message": "Opsætning af kanal justeringer. Se 'in-flight adjustments' delen af manualen for detaljer. Ændringer gemmes Ikke automatisk." }, @@ -6021,6 +6141,14 @@ "message": "Her kan du vælge frekvensen for din VTX, hvis den er understøttet", "description": "Help text for the frequency field of the VTX tab" }, + "vtxReadyTrue": { + "message": "Ja", + "description": "vtx device are ready" + }, + "vtxReadyFalse": { + "message": "Nej", + "description": "vtx device are not ready" + }, "vtxDeviceReady": { "message": "Enheden er klar", "description": "Text of one of the fields of the VTX tab" diff --git a/locales/de/messages.json b/locales/de/messages.json index 437ebf4e90..88e7580167 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -2461,12 +2461,6 @@ "gps3dFix": { "message": "3D Position" }, - "gpsFixTrue": { - "message": "wahr" - }, - "gpsFixFalse": { - "message": "falsch" - }, "gpsAltitude": { "message": "Höhe:" }, diff --git a/locales/es/messages.json b/locales/es/messages.json index 4bbdab1486..7c9d90004c 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -2185,6 +2185,126 @@ "auxiliaryModeLogicAND": { "message": "Y" }, + "auxiliaryHelpMode_ARM": { + "message": "Activa los motores y la estabilización de vuelo", + "description": "Help text to ARM mode" + }, + "auxiliaryHelpMode_ANGLE": { + "message": "En este modo de nivelación automática, los canales de roll y pitch controlan el ángulo entre el eje relevante y el vertical, consiguiendo un vuelo nivelado simplemente dejando los mandos centrados", + "description": "Help text to ANGLE mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "Este modo híbrido funciona exactamente como el modo ANGLE cuando las palancas de roll y pitch están centradas (habilitando así el vuelo con nivelado automático), y luego gradualmente se comporta cada vez más como el modo RATE/ACRO predeterminado a medida que los mandos se mueven lejos de la posición central", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_MAG": { + "message": "El rumbo se fija con la dirección del Magnetómetro", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_HEADFREE": { + "message": "En este modo, la \"cabeza\" del multicoptero siempre apunta a la misma dirección que cuando se activó la función. Esto significa que cuando el multicoptero gira alrededor del eje Z (yaw), los controles siempre responderán de acuerdo con la misma dirección de \"cabeza\".
    Con este modo es más fácil controlar el multicoptero, incluso volarlo con la cabeza apuntando físicamente hacia tí ya que los controles siempre responden igual. Este es un modo amigable para los nuevos usuarios de multicopteros y puede prevenir la pérdida del control cuando no se conoce la dirección principal", + "description": "Help text to HEADFREE mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Pasar roll y pitch directamente desde el rx a servos para mezclas de aviones", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_FAILSAFE": { + "message": "Entra en modo de seguridad etapa 2 manualmente", + "description": "Help text to FAILSAFE mode" + }, + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Activar 'GPS Rescate' para devolver la aeronave a la ubicación donde fue armada por última vez", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "Ajuste de rumbo - Establece un nuevo origen de yaw para el modo HEADFREE", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_BEEPER": { + "message": "Activar pitidos - útil para localizar una aeronave estrellada", + "description": "Help text to BEEPER mode" + }, + "auxiliaryHelpMode_LEDLOW": { + "message": "Apagar la salida de LED_STRIP", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Encender/Apagar la visualización en pantalla (OSD)", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Activar telemetría vía interruptor", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_BLACKBOX": { + "message": "Activar registro de Caja Negra", + "description": "Help text to BLACKBOX mode" + }, + "auxiliaryHelpMode_AIRMODE": { + "message": "En el mezclador / modo estándar, cuando el roll, el pitch y el yaw se calculan y saturan un motor, todos los motores se reducen por igual. Cuando un motor va por debajo del mínimo se recorta. Si tenías tu acelerador justo por encima del mínimo y tratas de hacer un roll rápido - ya que dos motores no pueden bajar, obtienes esencialmente la mitad de la potencia (la mitad de la ganancia de tu PID). Si tus comandos hubieran pedido más de un 100% de diferencia entre los motores altos y bajos, los motores bajos se recortarían, rompiendo la simetría del balance del motor al reducir la ganancia desigualmente", + "description": "Help text to AIRMODE mode" + }, + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Aplicar rotación de yaw relativa a una cámara FPV montada en un ángulo predefinido", + "description": "Help text to FPV ANGLE MIX mode" + }, + "auxiliaryHelpMode_CAMERACONTROL1": { + "message": "Utilizado para activar el CAMERA CONTROL 1 personalizado. Comprobar el manual del proveedor", + "description": "Help text to customized CAMERA CONTROL 1 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL2": { + "message": "Utilizado para activar el CAMERA CONTROL 2 personalizado. Comprobar el manual del proveedor", + "description": "Help text to customized CAMERA CONTROL 2 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL3": { + "message": "Utilizado para activar el CAMERA CONTROL 3 personalizado. Comprobar el manual del proveedor", + "description": "Help text to customized CAMERA CONTROL 3 mode" + }, + "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { + "message": "Invierte los motores para voltear una aeronave que está boca abajo después de un accidente (DShot requerido)", + "description": "Help text to FLIP OVER AFTER CRASH mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "Al intentar armar, se necesita que este interruptor esté activado antes de armar. Se suele asignar a un interruptor temporal del mando", + "description": "Help text to PREARM mode" + }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "Usa un número de pitidos para indicar cuantos satélites GPS se han encontrado", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Cambia el VTX a modo Pit (potencia de salida baja, si es compatible)", + "description": "Help text to VTX PIT MODE mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Desactiva permanentemente una nave accidentada hasta que desenchufe y enchufe de nuevo", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Habilitar la limitación del ángulo 'entrenador acro' en modo acro", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Desactiva el control de ajustes del VTX a través del OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "Sistema de asistencia de inicio de carrera", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_STICKCONTROLDISABLE": { + "message": "Desactivar/activar comandos con los mandos", + "description": "Help text to STICK CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Desactivar/activar pitidos incluyendo advertencias, estado y modo BEEPER", + "description": "Help text to BEEPERMUTE mode" + }, + "auxiliaryHelpMode_READY": { + "message": "Añadido en BF4.4, ahora puedes mostrar 'READY' en el OSD usando un interruptor. Esta es una bonita mejora para situaciones de carrera en las que todos los videos de pilotos están en una pantalla central. El piloto puede usar un interruptor para indicar que están listos para volar, y la palabra READY aparece en su OSD. El director de carrera puede entonces saber si todos los pilotos están preparados mirando a la pantalla central. Al armar, el texto READY desaparece", + "description": "Help text to READY mode" + }, "adjustmentsHelp": { "message": "Configura interruptores para correcciones. Mira el apartado 'in-flight adjustments' del manual para detalles. Las correcciones realizadas no se guardan automáticamente." }, @@ -2459,10 +2579,10 @@ "message": "Posición 3D:" }, "gpsFixTrue": { - "message": "Verdadero" + "message": "Verdadero" }, "gpsFixFalse": { - "message": "Falso" + "message": "False" }, "gpsAltitude": { "message": "Altitud:" @@ -6021,6 +6141,14 @@ "message": "Aquí puedes seleccionar la frecuencia para tu VTX", "description": "Help text for the frequency field of the VTX tab" }, + "vtxReadyTrue": { + "message": "Verdadero", + "description": "vtx device are ready" + }, + "vtxReadyFalse": { + "message": "False", + "description": "vtx device are not ready" + }, "vtxDeviceReady": { "message": "Dispositivo listo", "description": "Text of one of the fields of the VTX tab" diff --git a/locales/eu/messages.json b/locales/eu/messages.json index b5e5bb91d5..bcc4fc6c3d 100644 --- a/locales/eu/messages.json +++ b/locales/eu/messages.json @@ -1952,12 +1952,6 @@ "gps3dFix": { "message": "3D zuzenketa:" }, - "gpsFixTrue": { - "message": "Egia" - }, - "gpsFixFalse": { - "message": "Gezurra" - }, "gpsAltitude": { "message": "Altuera:" }, diff --git a/locales/fr/messages.json b/locales/fr/messages.json index 587b7e34d2..a09b6b91af 100644 --- a/locales/fr/messages.json +++ b/locales/fr/messages.json @@ -2355,12 +2355,6 @@ "gps3dFix": { "message": "Accroche:" }, - "gpsFixTrue": { - "message": "Oui" - }, - "gpsFixFalse": { - "message": "Non" - }, "gpsAltitude": { "message": "Altitude:" }, diff --git a/locales/gl/messages.json b/locales/gl/messages.json index 1a2fc96198..47ed5b73d9 100644 --- a/locales/gl/messages.json +++ b/locales/gl/messages.json @@ -2436,12 +2436,6 @@ "gps3dFix": { "message": "Corrección 3D:" }, - "gpsFixTrue": { - "message": "Aplicada" - }, - "gpsFixFalse": { - "message": "Falso" - }, "gpsAltitude": { "message": "Altura:" }, diff --git a/locales/it/messages.json b/locales/it/messages.json index cd58d700f7..a95eb5d8cd 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -2185,6 +2185,126 @@ "auxiliaryModeLogicAND": { "message": "E" }, + "auxiliaryHelpMode_ARM": { + "message": "Abilita la stabilizzazione motori e volo", + "description": "Help text to ARM mode" + }, + "auxiliaryHelpMode_ANGLE": { + "message": "In questa modalità di livellamento automatico i canali di roll e pitch controllano l'angolo tra i rilevanti assi e la verticale, ottenendo un volo livellato lasciando gli stick centrati", + "description": "Help text to ANGLE mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "Questa modalità ibrida funziona esattamente come la modalità ANGLE con gli stick roll e pitch centrati (abilitando così il volo livellato), poi gradualmente si comporta sempre di più come la modalità RATE appena gli stick si allontanano dalla posizione centrale", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_MAG": { + "message": "Direzione fissata come da Magnetometro", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_HEADFREE": { + "message": "In questa modalità, la \"testa\" del multirotore punta sempre alla stessa direzione di quando la funzione è stata attivata. Ciò significa che quando il multirotore ruota attorno all'asse Z (yaw), i comandi risponderanno sempre in base alla direzione della \"testa\".
    Con questa modalità è più facile controllare il multirotore, anche volare con la testa fisica verso di voi poiché i comandi rispondono sempre lo stesso. Questa è una modalità per i nuovi utenti di multirotore e può evitare di perdere il controllo quando non si conosce la direzione della testa", + "description": "Help text to HEADFREE mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Passa roll, yaw, e pitch direttamente da rx ai servo in aereo mix", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_FAILSAFE": { + "message": "Vai in failsafe fase 2 manualmente", + "description": "Help text to FAILSAFE mode" + }, + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Abilita 'GPS Rescue' per ritornare alla posizione dove è stato armato l'ultima volta", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "Correzione Direzione - Imposta una nuovo yaw per la modalità HEADFREE", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_BEEPER": { + "message": "Abilita beep - utile per localizzare un aeromobile perso", + "description": "Help text to BEEPER mode" + }, + "auxiliaryHelpMode_LEDLOW": { + "message": "Disattiva uscita LED_STRIP", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Abilita/Disabilita On-Screen-Display", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Abilita telemetria tramite interruttore", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_BLACKBOX": { + "message": "Abilita log BlackBox", + "description": "Help text to BLACKBOX mode" + }, + "auxiliaryHelpMode_AIRMODE": { + "message": "In un mixer / modalità standard, quando roll, pitch e yaw sono calcolati e saturano un motore, tutti i motori saranno ridotti allo stesso modo. Quando un motore va sotto il minimo, viene interrotto. Pensate di avere l'acceleratore appena sopra il minimo e cercate di fare un roll veloce - poiché due motori non possono andare più lenti, si ottiene in pratica metà della potenza (metà del PID gain). Se i vostri comandi avessero richiesto una differenza maggiore del 100% tra i motori veloci e lenti, i motori lenti verrebbero interrotti, rompendo la simmetria del bilanciamento dei motori riducendo in modo non uniforme il guadagno", + "description": "Help text to AIRMODE mode" + }, + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Applica la rotazione yaw rispetto a una telecamera FPV montata con un angolo prefissato", + "description": "Help text to FPV ANGLE MIX mode" + }, + "auxiliaryHelpMode_CAMERACONTROL1": { + "message": "Usa l'interruttore personalizzato CAMERA CONTROL 1. Controllare il manuale del fornitore", + "description": "Help text to customized CAMERA CONTROL 1 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL2": { + "message": "Usa l'interruttore personalizzato CAMERA CONTROL 2. Controllare il manuale del fornitore", + "description": "Help text to customized CAMERA CONTROL 2 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL3": { + "message": "Usa l'interruttore personalizzato CAMERA CONTROL 3. Controllare il manuale del fornitore", + "description": "Help text to customized CAMERA CONTROL 3 mode" + }, + "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { + "message": "Inverte i motori per ribaltare un modello dopo un crash (DShot richiesto)", + "description": "Help text to FLIP OVER AFTER CRASH mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "Durante l'armamento, aspetta che questo interruttore sia attivato prima dell'effettivo armamento", + "description": "Help text to PREARM mode" + }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "Usa un numero di beep per indicare il numero di satelliti GPS trovati", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Cambia la VTX in modalità pit (bassa potenza in uscita, se supportata)", + "description": "Help text to VTX PIT MODE mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Disabilita un modello crashato fino ad un riavvio", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Abilita 'acro trainer' angle limitandolo in modalità acro", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Disabilita il controllo delle impostazioni VTX tramite l'OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "Sistema d'assistenza avvio Race", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_STICKCONTROLDISABLE": { + "message": "Disabilita/abilita comando stick", + "description": "Help text to STICK CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Disabilita/abilita beeper inclusi gli avvisi, stato e modalità BEEPER", + "description": "Help text to BEEPERMUTE mode" + }, + "auxiliaryHelpMode_READY": { + "message": "Aggiunto in BF4.4, puoi visualizzare 'READY' in OSD usando un interruttore. Questo è un miglioramento in situazioni di race in cui tutti i feed video pilota sono su uno schermo centrale. Il pilota può lanciare un interruttore per indicare che sono pronti a volare, e la parola READY appare sul loro OSD. Il direttore di gara può poi dire se tutti i piloti sono pronti guardando lo schermo centrale", + "description": "Help text to READY mode" + }, "adjustmentsHelp": { "message": "Configura gli interruttori di regolazione. Vedi la sezione 'regolazioni in volo' del manuale per i dettagli. Le modifiche apportate dalle funzioni di regolazione non vengono salvate automaticamente. Ci sono 4 slot. Ogni interruttore utilizzato per apportare modifiche simultanee richiede l'uso esclusivo di uno slot." }, @@ -2459,10 +2579,10 @@ "message": "Fix 3D:" }, "gpsFixTrue": { - "message": "Vero" + "message": "Vero" }, "gpsFixFalse": { - "message": "Falso" + "message": "Falso" }, "gpsAltitude": { "message": "Altitudine:" @@ -6021,6 +6141,14 @@ "message": "Puoi selezionare qui la frequenza per la tua VTX se è supportata", "description": "Help text for the frequency field of the VTX tab" }, + "vtxReadyTrue": { + "message": "Vero", + "description": "vtx device are ready" + }, + "vtxReadyFalse": { + "message": "Falso", + "description": "vtx device are not ready" + }, "vtxDeviceReady": { "message": "Dispositivo pronto", "description": "Text of one of the fields of the VTX tab" diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 33664d12f7..89f4cb6caa 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -2185,6 +2185,126 @@ "auxiliaryModeLogicAND": { "message": "AND" }, + "auxiliaryHelpMode_ARM": { + "message": "モーター&フライトスタビライゼーションを有効にします", + "description": "Help text to ARM mode" + }, + "auxiliaryHelpMode_ANGLE": { + "message": "このオートレベルモードでは、ロールとピッチのチャンネルが関連する軸と垂直の間の角度を制御し、スティックを中心に配置することで水平飛行を実現します。", + "description": "Help text to ANGLE mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "このハイブリッドモードは、ロールとピッチのスティックを中央に配置するとアングルモードと同じように動作し(オートレベル飛行が可能)、スティックを中央から遠ざけていくと、徐々にレートモードのように動作するようになります。", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_MAG": { + "message": "コンパス方向へヘッディングを固定します", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_HEADFREE": { + "message": "このモードでは、マルチコプターの『ヘッド』は機能が有効化されたとき同じ方向を常に指すこととなります。つまり、マルチコプターがZ軸を中心に回転 (ヨー) すると、常に同じ『ヘッド』の方向に従って反応することになります。
    このモードでは、マルチコプターの操作が容易になり、常に同じ反応を示すため、物理的な『ヘッド』を自分の方に向けた状態で飛行させることも可能です。このモードはマルチコプターを初めて使う人にとって扱いやすいモードで、ヘッドの方向がわからないときに起きてしまうコントロール不能状態を防ぐことができます。", + "description": "Help text to HEADFREE mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "ロール、ヨー、ピッチのRX信号から直接サーボへ固定翼機MIX信号へ渡します", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_FAILSAFE": { + "message": "フェイルセーフ ステージ2へ手動で切り替えます", + "description": "Help text to FAILSAFE mode" + }, + "auxiliaryHelpMode_GPSRESCUE": { + "message": "『GPSレスキュー』を有効にし、最後に離陸した地点に機体を帰還させます", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "ヘッディング調整 - ヘッドフリーモードの新しいヨー基準点を設定します", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_BEEPER": { + "message": "ビープ音を有効にします - 墜落した機体の位置を特定するのに役立ちます", + "description": "Help text to BEEPER mode" + }, + "auxiliaryHelpMode_LEDLOW": { + "message": "LEDストリップ出力をOFFにします", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "OSD表示を有効 / 無効にします", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "スイッチを使いテレメトリーを有効にします", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_BLACKBOX": { + "message": "BlackBoxログを有効にします", + "description": "Help text to BLACKBOX mode" + }, + "auxiliaryHelpMode_AIRMODE": { + "message": "標準のミキサー / モードでは、ロール、ピッチ、ヨーが計算上モーターの強度が飽和状態となると、すべてのモーターが均等に回転が減少します。モーターが最小値を下回ると切り捨て状態となります。例えば、スロットルを最小値より少し上にしてクイックロールをしようとした場合、2つのモーターはそれ以上回転を下げることができないので、実質的に半分のパワー (PID強度の半分) を得ることになります。もし、入力が高回転モーターと低回転モーターの間に100%以上の差を求めたとしたら、低回転モーターは回転が切り捨てられ、強度を不均一に減少させることとなってしまいモーターバランスの対称性を破綻させてしまうでしょう。", + "description": "Help text to AIRMODE mode" + }, + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "装着するFPVカメラのプリセット角度に対してヨー回転をかけるよう適用します", + "description": "Help text to FPV ANGLE MIX mode" + }, + "auxiliaryHelpMode_CAMERACONTROL1": { + "message": "カスタマイズ切り替えのためカメラコントロール1を使用します。メーカーのマニュアルをご確認ください。", + "description": "Help text to customized CAMERA CONTROL 1 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL2": { + "message": "カスタマイズ切り替えのためカメラコントロール2を使用します。メーカーのマニュアルをご確認ください。", + "description": "Help text to customized CAMERA CONTROL 2 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL3": { + "message": "カスタマイズ切り替えのためカメラコントロール3を使用します。メーカーのマニュアルをご確認ください。", + "description": "Help text to customized CAMERA CONTROL 3 mode" + }, + "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { + "message": "モーターを逆回転させクラッシュ後に逆さまになった機体をひっくり返します (要DShot)", + "description": "Help text to FLIP OVER AFTER CRASH mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "アーミング時、実際にこのスイッチが有効になるのを待ってからアームします", + "description": "Help text to PREARM mode" + }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "ビープ回数で、捕捉したGPS衛星数を示します", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "VTXをピットモードへ切り替えます (サポートされる場合は低出力)", + "description": "Help text to VTX PIT MODE mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "クラッシュした機体をバッテリーが切れるまで永久に使用不可とします", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "アクロモードにて『アクロ トレーナー』角度制限を有効にします", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "OSD経由でVTX設定の制御を無効にします", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "レーススタート アシスタントシステム", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_STICKCONTROLDISABLE": { + "message": "スティックコマンドを無効 / 有効にします", + "description": "Help text to STICK CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "警告、ステータス、BEEPERモードを含むビープ音を無効 / 有効にします", + "description": "Help text to BEEPERMUTE mode" + }, + "auxiliaryHelpMode_READY": { + "message": "BF4.4の追加機能として、スイッチを使ってOSD上に【READY】を表示させることができるようになりました。これは、すべてのパイロットのFPV映像が1つの中央スクリーンにあるようなレースの観戦状況において、ニッチな改善内容となります。パイロットがスイッチを押し飛行の準備ができたことを示すと、OSDに【READY】という文字が表示されます。レース運営者は、中央のスクリーンを見てすべてのパイロットが準備できているかどうかを判断することができます。アーミングすると【READY】の文字列が消えます。", + "description": "Help text to READY mode" + }, "adjustmentsHelp": { "message": "調整スイッチを設定します。詳細については、マニュアルの『in-flight adjustment(飛行調整)』の項目を参照してください。『調整』機能による変更は自動的には保存されません。" }, @@ -2459,10 +2579,10 @@ "message": "3次元測位" }, "gpsFixTrue": { - "message": "正常" + "message": "成功" }, "gpsFixFalse": { - "message": "不良" + "message": "失敗" }, "gpsAltitude": { "message": "高度:" @@ -6021,6 +6141,14 @@ "message": "サポートされている場合、VTX周波数をここで選択します", "description": "Help text for the frequency field of the VTX tab" }, + "vtxReadyTrue": { + "message": "成功", + "description": "vtx device are ready" + }, + "vtxReadyFalse": { + "message": "失敗", + "description": "vtx device are not ready" + }, "vtxDeviceReady": { "message": "デバイス 準備完了", "description": "Text of one of the fields of the VTX tab" diff --git a/locales/ko/messages.json b/locales/ko/messages.json index b3742d9b00..b6d4bd0189 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -902,11 +902,11 @@ "description": "Message that pops up to describe the PARALYZE arming disable flag" }, "initialSetupArmingDisableFlagsTooltipGPS": { - "message": "GPS 구조 모드가 구성 되어 있지만 위성의 필요한 수가 고정되지 않았습니다", + "message": "GPS 레스큐 모드가 구성 되어 있지만 위성의 필요한 수가 고정되지 않았습니다", "description": "Message that pops up to describe the GPS arming disable flag" }, "initialSetupArmingDisableFlagsTooltipRESC": { - "message": "'GPS 구조' 스위치가 작동중입니다", + "message": "'GPS 레스큐' 스위치가 작동중입니다", "description": "Message that pops up to describe the RESC arming disable flag" }, "initialSetupArmingDisableFlagsTooltipRPMFILTER": { @@ -2185,6 +2185,126 @@ "auxiliaryModeLogicAND": { "message": "AND" }, + "auxiliaryHelpMode_ARM": { + "message": "모터 및 비행 안정화 활성화", + "description": "Help text to ARM mode" + }, + "auxiliaryHelpMode_ANGLE": { + "message": "이 자동 레벨 모드에서 롤 및 피치 채널은 관련 축과 수직 사이의 각도를 제어하여 스틱을 중앙에 두는 것만으로 수평 비행을 달성합니다", + "description": "Help text to ANGLE mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "이 하이브리드 모드는 중앙 롤 및 피치 스틱이 있는 앵글 모드와 정확히 작동하며(따라서 자동 레벨 비행이 가능함), 스틱이 중앙 위치에서 멀어질수록 점차 기본 레이트 모드와 비슷하게 작동합니다", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_MAG": { + "message": "자기계 방향으로 향하는 헤딩 잠금", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_HEADFREE": { + "message": "이 모드에서 멀티콥터의 \"헤드\"는 기능이 활성화되었을 때와 항상 같은 방향을 가리킵니다. 즉, 멀티콥터가 Z축(요)을 중심으로 회전할 때 컨트롤은 항상 동일한 \"헤드\" 방향에 따라 응답합니다.
    이 모드를 사용하면 멀티콥터를 제어하는 것이 더 쉬워집니다. 컨트롤이 항상 동일하게 반응하기 때문에 물리적인 헤드를 사용하여 멀티콥터를 사용자 쪽으로 비행할 수 있습니다. 이 모드는 멀티콥터의 새로운 사용자에게 친숙한 모드이며 헤드 방향을 모를 때 컨트롤이 손실되는 것을 방지할 수 있습니다", + "description": "Help text to HEADFREE mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "비행기 믹스에서 롤, 요, 피치를 rx에서 서보로 직접 전달", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_FAILSAFE": { + "message": "페일세이프 단계 2를 수동으로 입력", + "description": "Help text to FAILSAFE mode" + }, + "auxiliaryHelpMode_GPSRESCUE": { + "message": "'GPS 레스큐'를 활성화하면 기체가 마지막으로 아밍한 장소로 복귀합니다", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "헤딩 조정 - 헤드프리 모드에서 새 요 방향 설정", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_BEEPER": { + "message": "비프음 활성화 - 추락한 기체를 찾는 데 유용합니다", + "description": "Help text to BEEPER mode" + }, + "auxiliaryHelpMode_LEDLOW": { + "message": "LED_스트립 출력 끄기", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "온-스크린-디스플레이 활성/비활성", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "스위치를 통한 텔레메트리 활성화", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_BLACKBOX": { + "message": "블랙박스 로깅 활성화", + "description": "Help text to BLACKBOX mode" + }, + "auxiliaryHelpMode_AIRMODE": { + "message": "표준 믹서/모드에서 롤, 피치 및 요가 계산되고 모터가 포화되면 모든 모터가 동일하게 감소합니다. 모터가 최저치 이하로 떨어지면 모터 출력이 잘립니다. 스로틀이 최저치를 약간 상회하고 빠른 롤을 당기려고 했다고 가정해 보십시오. 두 개의 모터가 더 이상 내려갈 수 없기 때문에 기본적으로 전력의 절반(PID 이득의 절반)을 얻을 수 있습니다. 입력에 하이 모터와 로우 모터 간의 차이가 100% 이상 필요한 경우 로우 모터가 잘리고 이득이 불균일하게 감소하여 모터 밸런스의 대칭이 깨집니다", + "description": "Help text to AIRMODE mode" + }, + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "사전 설정된 각도로 장착된 FPV 카메라를 기준으로 요 회전 적용", + "description": "Help text to FPV ANGLE MIX mode" + }, + "auxiliaryHelpMode_CAMERACONTROL1": { + "message": "사용자 정의 카메라 제어 1을 사용하세요. 공급자 매뉴얼을 확인하세요", + "description": "Help text to customized CAMERA CONTROL 1 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL2": { + "message": "사용자 정의 카메라 제어 2를 사용하세요. 공급자 매뉴얼을 확인하세요", + "description": "Help text to customized CAMERA CONTROL 2 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL3": { + "message": "사용자 정의 카메라 제어 3를 사용하세요. 공급자 매뉴얼을 확인하세요", + "description": "Help text to customized CAMERA CONTROL 3 mode" + }, + "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { + "message": "충돌 후 모터를 반대로 돌려 뒤집기 (디샷 요구됨)", + "description": "Help text to FLIP OVER AFTER CRASH mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "아밍을 실행할 때, 실제 아밍하기 전에 이 스위치가 활성화될 때까지 기다립니다", + "description": "Help text to PREARM mode" + }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "비프음의 수를 사용하여 발견된 GPS위성 수를 지시합니다.", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "VTX를 피트모드로 전환합니다 (지원시 저전력 모드로 진입)", + "description": "Help text to VTX PIT MODE mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "충돌한 기체의 전원을 껐다가 켤 때까지 영구적으로 비활성화합니다", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "'아크로 트레이너'를 활성화하면 아크로 모드에서 앵글을 제한합니다", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "OSD를 통한 VTX 제어 설정을 비활성화합니다", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "레이스 스타트 지원 시스템", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_STICKCONTROLDISABLE": { + "message": "스틱 명령 비활성/활성화", + "description": "Help text to STICK CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "경고, 상태 및 비퍼 모드를 포함한 비퍼음 비활성화/활성화", + "description": "Help text to BEEPERMUTE mode" + }, + "auxiliaryHelpMode_READY": { + "message": "BF4.4에 추가된 사항으로 이제 스위치를 사용하여 OSD에서 'READY'를 표시할 수 있습니다. 이것은 모든 파일럿 비디오 피드가 하나의 중앙 화면에 있는 레이싱 상황에 적합한 틈새 개선입니다. 조종자는 스위치를 깜박여 비행 준비가 되었음을 표시할 수 있으며, OSD에 READY라는 단어가 나타납니다. 그런 다음 경기 감독은 중앙 화면을 보고 모든 조종사가 준비되었는지 알 수 있습니다. 아밍할 때 READY 텍스트가 사라집니다", + "description": "Help text to READY mode" + }, "adjustmentsHelp": { "message": "조정 스위치를 설정하세요. 자세한 내용은 매뉴얼의 '비행중 조정' 섹션을 참조하십시오. 조정 기능의 변경 사항은 자동으로 저장되지 않습니다." }, @@ -2459,10 +2579,10 @@ "message": "3D 고정:" }, "gpsFixTrue": { - "message": "" + "message": "참" }, "gpsFixFalse": { - "message": "거짓" + "message": "거짓" }, "gpsAltitude": { "message": "고도:" @@ -4281,7 +4401,7 @@ "message": "추락" }, "failsafeProcedureItemSelect4": { - "message": "GPS 구조" + "message": "GPS 레스큐" }, "failsafeGpsRescueItemAngle": { "message": "각도" @@ -4320,7 +4440,7 @@ "message": "최소위성수" }, "failsafeGpsRescueItemAllowArmingWithoutFix": { - "message": "고정없이 아밍 허용 - 경고: GPS 구조 사용 불가" + "message": "고정없이 아밍 허용 - 경고: GPS 레스큐 사용 불가" }, "failsafeGpsRescueItemAltitudeMode": { "message": "고도 모드" @@ -5825,18 +5945,18 @@ "message": "론치 제어 모드가 활성화되면 경고합니다" }, "osdWarningTextGpsRescueUnavailable": { - "message": "GPS 구조 사용불가", + "message": "GPS 레스큐 사용불가", "description": "One of the warnings that can be selected to be shown in the OSD" }, "osdWarningGpsRescueUnavailable": { - "message": "GPS 구조가 사용할 수 없을 때 및 활성화할 수 없을 때 경고합니다" + "message": "GPS 레스큐가 사용할 수 없을 때 및 활성화할 수 없을 때 경고합니다" }, "osdWarningTextGpsRescueDisabled": { - "message": "GPS 구조 비활성화됨", + "message": "GPS 레스큐 비활성화됨", "description": "One of the warnings that can be selected to be shown in the OSD" }, "osdWarningGpsRescueDisabled": { - "message": "GPS 구조를 사용하지 않도록 설정하는 경우 경고합니다" + "message": "GPS 레스큐를 사용하지 않도록 설정하는 경우 경고합니다" }, "osdWarningTextRSSI": { "message": "RSSI", @@ -6021,6 +6141,14 @@ "message": "여기서 지원될 경우 당신의 VTX에 대한 주파수를 선택할 수 있습니다.", "description": "Help text for the frequency field of the VTX tab" }, + "vtxReadyTrue": { + "message": "참", + "description": "vtx device are ready" + }, + "vtxReadyFalse": { + "message": "거짓", + "description": "vtx device are not ready" + }, "vtxDeviceReady": { "message": "디바이스 준비", "description": "Text of one of the fields of the VTX tab" diff --git a/locales/nl/messages.json b/locales/nl/messages.json index 8354b5cc1c..9fde872e28 100644 --- a/locales/nl/messages.json +++ b/locales/nl/messages.json @@ -2027,12 +2027,6 @@ "gps3dFix": { "message": "3D Fix:" }, - "gpsFixTrue": { - "message": "Waar" - }, - "gpsFixFalse": { - "message": "Onwaar" - }, "gpsAltitude": { "message": "Hoogte:" }, diff --git a/locales/pl/messages.json b/locales/pl/messages.json index af1127484c..3f02657421 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -2185,6 +2185,126 @@ "auxiliaryModeLogicAND": { "message": "Oraz" }, + "auxiliaryHelpMode_ARM": { + "message": "Włącza silniki i stabilizację lotu", + "description": "Help text to ARM mode" + }, + "auxiliaryHelpMode_ANGLE": { + "message": "W tym trybie automatycznego poziomowania kanały przechyłu i pochylenia kontrolują kąt między odpowiednią osią a pionem, aby osiągnąć poziomy lot po prostu pozostaw drążek w pozycji środkowej", + "description": "Help text to ANGLE mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "Ten tryb hybrydowy działa dokładnie tak samo jak tryb ANGLE z wyśrodkowanym drążkiem przechyłu i pochylenia (umożliwiając w ten sposób lot z automatycznym poziomowaniem), a następnie, gdy drążek jest odchylany coraz bardziej od pozycji środkowej zachowuje się coraz bardziej jak domyślny tryb RATE", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_MAG": { + "message": "Zablokuj kurs w kierunku magnetometru", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_HEADFREE": { + "message": "W trybie \"head\" multikopter jest zawsze skierowany w tym samym kierunku, w którym wychylenie drążków.
    W tym trybie łatwiej jest sterować multikopterem, a nawet latać nim przodem skierowanym w twoją stronę ponieważ elementy sterujące zawsze reagują tak samo jak wychylenie drążków. Jest to tryb przyjazny dla nowych użytkowników multikopterów i może zapobiec utracie kontroli, gdy nie znasz kierunku lotu", + "description": "Help text to HEADFREE mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Przekazuj przechylenie, odchylenie i wychylenie bezpośrednio z rx do serwomechanizmów w miksie samolotowym", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_FAILSAFE": { + "message": "Wejdź ręcznie w drugi etap Failsafe", + "description": "Help text to FAILSAFE mode" + }, + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Włącz „GPS Rescue”, aby statek powietrzny wrócił do miejsca, w którym był ostatnio uzbrojony", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "Heading Adjust – Ustawia nowy początek odchylenia dla trybu HEADFREE", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_BEEPER": { + "message": "Włącz sygnał dźwiękowy-przydatne do lokalizowania zaginionego statku powietrznego", + "description": "Help text to BEEPER mode" + }, + "auxiliaryHelpMode_LEDLOW": { + "message": "Wyłącz wyjście PASKA_LED RGB", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Włącz/wyłącz wyświetlanie na ekranie", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Włącz telemetrię za pomocą przełącznika", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_BLACKBOX": { + "message": "Włącz rejestrator parametrów lotu BlackBox", + "description": "Help text to BLACKBOX mode" + }, + "auxiliaryHelpMode_AIRMODE": { + "message": "W standardowym trybie miksera /, gdy przechylenie, nachylenie i odchylenie zostaną obliczone i nasycą silnik, wszystkie silniki zostaną jednakowo zredukowane. Kiedy silnik spada poniżej minimum, zostaje odcięty. Powiedzmy, że miałeś przepustnicę nieco powyżej minimum i próbowałeś szybko przechylić - ponieważ dwa silniki nie mogą zejść niżej, zasadniczo uzyskujesz połowę mocy (połowę wzmocnienia PID). Jeśli twoje dane wejściowe wymagałyby więcej niż 100% różnicy między wysokimi i niskimi silnikami, niskie silniki zostałyby obcięte, łamiąc symetrię równowagi silnika poprzez nierównomierne zmniejszenie wzmocnienia", + "description": "Help text to AIRMODE mode" + }, + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Zastosuj obrót odchylenia względem kamery FPV zamontowanej pod zadanym kątem", + "description": "Help text to FPV ANGLE MIX mode" + }, + "auxiliaryHelpMode_CAMERACONTROL1": { + "message": "Służy do niestandardowego przełączania STEROWANIA KAMERĄ 1. Sprawdź w instrukcji dostawcy", + "description": "Help text to customized CAMERA CONTROL 1 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL2": { + "message": "Służy do niestandardowego przełączania STEROWANIA KAMERĄ 2. Sprawdź w instrukcji dostawcy", + "description": "Help text to customized CAMERA CONTROL 2 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL3": { + "message": "Służy do niestandardowego przełączania STEROWANIA KAMERĄ 3. Sprawdź w instrukcji dostawcy", + "description": "Help text to customized CAMERA CONTROL 3 mode" + }, + "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { + "message": "Odwróć kierunek obrotu silników, aby przewrócić statek powietrzny do góry nogami po zderzeniu (wymagany DShot)", + "description": "Help text to FLIP OVER AFTER CRASH mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "Podczas uzbrajania potrzebna jest aktywacja tego przełącznika przed faktycznym uzbrojeniem", + "description": "Help text to PREARM mode" + }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "Użyj kilku sygnałów dźwiękowych, aby wskazać liczbę znalezionych satelitów GPS", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Przełącz VTX w tryb pit mode (niska moc wyjściowa, jeśli jest obsługiwana)", + "description": "Help text to VTX PIT MODE mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Trwale unieruchamiaj rozbity statek powietrzny, dopóki nie zostanie ponownie włączony", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Włącz ograniczenie kąta „acro trainer” w trybie acro", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Wyłącz kontrolę ustawień VTX poprzez OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "System wspomagania startu w wyścigu", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_STICKCONTROLDISABLE": { + "message": "Wyłącz/włącz polecenie drążka", + "description": "Help text to STICK CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Wyłącz/włącz sygnał dźwiękowy, w tym ostrzeżenie, stan i tryb BEEPER", + "description": "Help text to BEEPERMUTE mode" + }, + "auxiliaryHelpMode_READY": { + "message": "Dodano w BF4.4, możesz teraz wyświetlać „READY” w OSD za pomocą przełącznika. Jest to niszowe ulepszenie w sytuacjach wyścigowych, w których wszystkie pilotowe kanały wideo są wyświetlane na jednym centralnym ekranie. Pilot może przesunąć przełącznik, aby wskazać, że jest gotowy do lotu, a na jego OSD pojawi się słowo READY. Dyrektor wyścigu może wtedy stwierdzić, czy wszyscy piloci są gotowi, patrząc na centralny ekran. Po uzbrojeniu napis READY znika", + "description": "Help text to READY mode" + }, "adjustmentsHelp": { "message": "Skonfiguruj przełączniki regulacji. Szczegółowe informacje można znaleźć w sekcji „Korekty podczas lotu”. Zmiany wprowadzone przez funkcje regulacji nie są zapisywane automatycznie." }, @@ -2459,10 +2579,10 @@ "message": "Fix 3D:" }, "gpsFixTrue": { - "message": "Poprawny" + "message": "Ok" }, "gpsFixFalse": { - "message": "Błąd" + "message": "Błąd" }, "gpsAltitude": { "message": "Wysokość:" @@ -6021,6 +6141,14 @@ "message": "Możesz tutaj wybrać częstotliwość dla swojego VTX, jeśli jest obsługiwana", "description": "Help text for the frequency field of the VTX tab" }, + "vtxReadyTrue": { + "message": "Ok", + "description": "vtx device are ready" + }, + "vtxReadyFalse": { + "message": "Błąd", + "description": "vtx device are not ready" + }, "vtxDeviceReady": { "message": "Urządzenie gotowe", "description": "Text of one of the fields of the VTX tab" diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 605b094a58..08a3b4410b 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -2185,6 +2185,14 @@ "auxiliaryModeLogicAND": { "message": "AND" }, + "auxiliaryHelpMode_ARM": { + "message": "Habilita os motores e a estabilização de voo", + "description": "Help text to ARM mode" + }, + "auxiliaryHelpMode_ANGLE": { + "message": "Neste modo auto-nivelado, os canais do roll e do pitch controlam o ângulo entre o eixo relevante e o vertical, alcançando vôo nivelado apenas deixando os sticks centrados", + "description": "Help text to ANGLE mode" + }, "adjustmentsHelp": { "message": "Configure os switches de ajuste. Veja a secção 'in-flight adjustments' do manual para detalhes. As alterações que as funções de ajuste fazem não são gravadas automaticamente." }, @@ -2459,10 +2467,10 @@ "message": "Fix 3D:" }, "gpsFixTrue": { - "message": "Verdadeiro" + "message": "Verdadeiro" }, "gpsFixFalse": { - "message": "Falso" + "message": "Falso" }, "gpsAltitude": { "message": "Altitude:" @@ -6021,6 +6029,14 @@ "message": "Pode selecionar aqui a frequência para o seu VTX, se fôr suportado.", "description": "Help text for the frequency field of the VTX tab" }, + "vtxReadyTrue": { + "message": "Verdadeiro", + "description": "vtx device are ready" + }, + "vtxReadyFalse": { + "message": "Falso", + "description": "vtx device are not ready" + }, "vtxDeviceReady": { "message": "Dispositivo pronto", "description": "Text of one of the fields of the VTX tab" diff --git a/locales/pt_BR/messages.json b/locales/pt_BR/messages.json index 1a11c7c18a..f97229be2b 100644 --- a/locales/pt_BR/messages.json +++ b/locales/pt_BR/messages.json @@ -2340,12 +2340,6 @@ "gps3dFix": { "message": "Posição 3D:" }, - "gpsFixTrue": { - "message": "Verdadeiro" - }, - "gpsFixFalse": { - "message": "Falso" - }, "gpsAltitude": { "message": "Altitude:" }, diff --git a/locales/ru/messages.json b/locales/ru/messages.json index caefffca84..89a980959f 100644 --- a/locales/ru/messages.json +++ b/locales/ru/messages.json @@ -2066,12 +2066,6 @@ "gps3dFix": { "message": "3D фикс.:" }, - "gpsFixTrue": { - "message": "Да" - }, - "gpsFixFalse": { - "message": "Нет" - }, "gpsAltitude": { "message": "Высота:" }, diff --git a/locales/zh_CN/messages.json b/locales/zh_CN/messages.json index f52311db90..d9c406061a 100644 --- a/locales/zh_CN/messages.json +++ b/locales/zh_CN/messages.json @@ -2261,12 +2261,6 @@ "gps3dFix": { "message": "3D 定位:" }, - "gpsFixTrue": { - "message": "定位成功" - }, - "gpsFixFalse": { - "message": "定位失败" - }, "gpsAltitude": { "message": "高度:" }, diff --git a/locales/zh_TW/messages.json b/locales/zh_TW/messages.json index 6c2c41e14e..958f5cb6ad 100644 --- a/locales/zh_TW/messages.json +++ b/locales/zh_TW/messages.json @@ -1931,12 +1931,6 @@ "gps3dFix": { "message": "3D 定位…" }, - "gpsFixTrue": { - "message": "定位成功" - }, - "gpsFixFalse": { - "message": "定位失敗" - }, "gpsAltitude": { "message": "高度:" }, From 07a352a941dd9951596a0b173c42e0de96a857db Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Sat, 6 May 2023 21:12:18 +0200 Subject: [PATCH 085/393] Improve MSP handling (#3415) * Improve MSP * Only retain last duplicate MSP command in queue * For MSP V1 we skip requests that are already in the queue * Implement MULTIPLE_MSP * Revert * Give FC time to react to new settings * Reduce timeout to 200ms * Add new mspHelper for EEPROM write * Reduce MIN_TIMEOUT --- src/js/msp.js | 35 +++++++++++++++------------------- src/js/msp/MSPHelper.js | 11 +++++++++++ src/js/protocols/stm32.js | 14 +++++++------- src/js/tabs/auxiliary.js | 2 +- src/js/tabs/configuration.js | 3 +-- src/js/tabs/gps.js | 3 +-- src/js/tabs/led_strip.js | 2 +- src/js/tabs/motors.js | 6 ++++-- src/js/tabs/onboard_logging.js | 2 +- src/js/tabs/ports.js | 15 +++++---------- src/js/tabs/power.js | 2 +- src/js/tabs/servos.js | 2 +- src/js/tabs/vtx.js | 2 +- 13 files changed, 50 insertions(+), 49 deletions(-) diff --git a/src/js/msp.js b/src/js/msp.js index 5b6cc9d8a3..13ac6460e5 100644 --- a/src/js/msp.js +++ b/src/js/msp.js @@ -52,9 +52,9 @@ const MSP = { packet_error: 0, unsupported: 0, - MIN_TIMEOUT: 250, + MIN_TIMEOUT: 50, MAX_TIMEOUT: 2000, - timeout: 250, + timeout: 200, last_received_timestamp: null, listeners: [], @@ -305,46 +305,41 @@ const MSP = { return bufferOut; }, send_message: function (code, data, callback_sent, callback_msp, doCallbackOnError) { - if (CONFIGURATOR.virtualMode) { + if (code === undefined || !serial.connectionId || CONFIGURATOR.virtualMode) { if (callback_msp) { callback_msp(); } return false; } - if (code === undefined || !serial.connectionId) { - return false; + // Check if request already exists in the queue + let requestExists = false; + for (const instance of MSP.callbacks) { + if (instance.code === code) { + requestExists = true; + + break; + } } const bufferOut = code <= 254 ? this.encode_message_v1(code, data) : this.encode_message_v2(code, data); + const obj = { 'code': code, 'requestBuffer': bufferOut, - 'callback': callback_msp ? callback_msp : false, - 'timer': false, + 'callback': callback_msp, 'callbackOnError': doCallbackOnError, 'start': performance.now(), }; - let requestExists = false; - - for (const instance of MSP.callbacks) { - if (instance.code === code) { - // request already exist, we will just attach - requestExists = true; - break; - } - } - if (!requestExists) { - obj.timer = setInterval(function () { - console.warn(`MSP: data request timed-out: ${code} ID: ${serial.connectionId} TAB: ${GUI.active_tab} TIMEOUT: ${MSP.timeout} QUEUE: ${MSP.callbacks.length}`); + obj.timer = setTimeout(function () { + console.warn(`MSP: data request timed-out: ${code} ID: ${serial.connectionId} TAB: ${GUI.active_tab} TIMEOUT: ${MSP.timeout} QUEUE: ${MSP.callbacks.length} (${MSP.callbacks.map(function (e) { return e.code; })})`); serial.send(bufferOut, function (_sendInfo) { obj.stop = performance.now(); const executionTime = Math.round(obj.stop - obj.start); MSP.timeout = Math.max(MSP.MIN_TIMEOUT, Math.min(executionTime, MSP.MAX_TIMEOUT)); }); - }, MSP.timeout); } diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 4c1ce77700..37a2428c0e 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -2729,6 +2729,17 @@ MspHelper.prototype.sendSerialConfig = function(callback) { MSP.send_message(mspCode, mspHelper.crunch(mspCode), false, callback); }; +MspHelper.prototype.writeConfiguration = function(callback) { + setTimeout(function() { + MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function() { + gui_log(i18n.getMessage('configurationEepromSaved')); + console.log('Configuration saved to EEPROM'); + if (callback) { + callback(); + } + }); + }, 100); // 100ms delay before sending MSP_EEPROM_WRITE to ensure that all settings have been received +}; let mspHelper; // This is temporary, till things are moved diff --git a/src/js/protocols/stm32.js b/src/js/protocols/stm32.js index d43ea40655..2f252ce472 100644 --- a/src/js/protocols/stm32.js +++ b/src/js/protocols/stm32.js @@ -205,13 +205,13 @@ STM32_protocol.prototype.connect = function (port, baud, hex, options, callback) function reboot() { const buffer = []; buffer.push8(rebootMode); - MSP.send_message(MSPCodes.MSP_SET_REBOOT, buffer, () => { - - // if firmware doesn't flush MSP/serial send buffers and gracefully shutdown VCP connections we won't get a reply, so don't wait for it. - - self.msp_connector.disconnect(disconnectionResult => onDisconnect(disconnectionResult)); - - }, () => console.log('Reboot request received by device')); + setTimeout(() => { + MSP.send_message(MSPCodes.MSP_SET_REBOOT, buffer, () => { + // if firmware doesn't flush MSP/serial send buffers and gracefully shutdown VCP connections we won't get a reply, so don't wait for it. + self.msp_connector.disconnect(disconnectionResult => onDisconnect(disconnectionResult)); + console.log('Reboot request received by device'); + }); + }, 100); } function onAbort() { diff --git a/src/js/tabs/auxiliary.js b/src/js/tabs/auxiliary.js index 671948b29a..b2d5b0f916 100644 --- a/src/js/tabs/auxiliary.js +++ b/src/js/tabs/auxiliary.js @@ -403,7 +403,7 @@ auxiliary.initialize = function (callback) { mspHelper.sendModeRanges(save_to_eeprom); function save_to_eeprom() { - MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () { + mspHelper.writeConfiguration(function () { gui_log(i18n.getMessage('auxiliaryEepromSaved')); }); } diff --git a/src/js/tabs/configuration.js b/src/js/tabs/configuration.js index 13318db078..ead4887e43 100644 --- a/src/js/tabs/configuration.js +++ b/src/js/tabs/configuration.js @@ -453,8 +453,7 @@ configuration.initialize = function (callback) { .then(() => semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) ? MSP.promise(MSPCodes.MSP2_SET_TEXT, mspHelper.crunch(MSPCodes.MSP2_SET_TEXT, MSPCodes.PILOT_NAME)) : Promise.resolve(true)) .then(() => MSP.promise(MSPCodes.MSP_SET_RX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_RX_CONFIG))) - .then(() => MSP.promise(MSPCodes.MSP_EEPROM_WRITE)) - .then(() => reboot()); + .then(() => mspHelper.writeConfiguration(reboot)); } function reboot() { diff --git a/src/js/tabs/gps.js b/src/js/tabs/gps.js index 82ca12a805..b8b1387352 100644 --- a/src/js/tabs/gps.js +++ b/src/js/tabs/gps.js @@ -352,8 +352,7 @@ gps.initialize = async function (callback) { async function saveConfiguration() { await MSP.promise(MSPCodes.MSP_SET_FEATURE_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_FEATURE_CONFIG)); await MSP.promise(MSPCodes.MSP_SET_GPS_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_GPS_CONFIG)); - await MSP.promise(MSPCodes.MSP_EEPROM_WRITE); - reboot(); + await mspHelper.writeConfiguration(reboot); } function reboot() { diff --git a/src/js/tabs/led_strip.js b/src/js/tabs/led_strip.js index 3f2507e76a..e83d0bc4cb 100644 --- a/src/js/tabs/led_strip.js +++ b/src/js/tabs/led_strip.js @@ -567,7 +567,7 @@ led_strip.initialize = function (callback, scrollPosition) { } function save_to_eeprom() { - MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function() { + mspHelper.writeConfiguration(function() { gui_log(i18n.getMessage('ledStripEepromSaved')); }); } diff --git a/src/js/tabs/motors.js b/src/js/tabs/motors.js index 532453f93a..4d2235d542 100644 --- a/src/js/tabs/motors.js +++ b/src/js/tabs/motors.js @@ -1132,6 +1132,8 @@ motors.initialize = async function (callback) { } $('a.save').on('click', async function() { + GUI.interval_kill_all(['motor_and_status_pull','motors_power_data_pull_slow']); + // gather data that doesn't have automatic change event bound FC.MOTOR_CONFIG.minthrottle = parseInt($('input[name="minthrottle"]').val()); FC.MOTOR_CONFIG.maxthrottle = parseInt($('input[name="maxthrottle"]').val()); @@ -1156,16 +1158,16 @@ motors.initialize = async function (callback) { await MSP.promise(MSPCodes.MSP_SET_MOTOR_3D_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_MOTOR_3D_CONFIG)); await MSP.promise(MSPCodes.MSP_SET_ADVANCED_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_ADVANCED_CONFIG)); await MSP.promise(MSPCodes.MSP_SET_ARMING_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_ARMING_CONFIG)); + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)) { await MSP.promise(MSPCodes.MSP_SET_FILTER_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_FILTER_CONFIG)); } - await MSP.promise(MSPCodes.MSP_EEPROM_WRITE); tracking.sendSaveAndChangeEvents(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges, 'motors'); self.analyticsChanges = {}; self.configHasChanged = false; - reboot(); + mspHelper.writeConfiguration(reboot); }); $('a.stop').on('click', () => motorsEnableTestModeElement.prop('checked', false).trigger('change')); diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index a4e5bc82a7..6f48a50ee4 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -59,7 +59,7 @@ onboard_logging.initialize = function (callback) { } function save_to_eeprom() { - MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, reboot); + mspHelper.writeConfiguration(reboot); } function reboot() { diff --git a/src/js/tabs/ports.js b/src/js/tabs/ports.js index cb98d46e1e..f5f8b8de57 100644 --- a/src/js/tabs/ports.js +++ b/src/js/tabs/ports.js @@ -9,7 +9,6 @@ import MSP from '../msp'; import MSPCodes from '../msp/MSPCodes'; import { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_45 } from '../data_storage'; import BOARD from '../boards'; -import { gui_log } from '../gui_log'; const ports = { analyticsChanges: {}, @@ -357,7 +356,7 @@ ports.initialize = function (callback) { GUI.content_ready(callback); } - function on_save_handler() { + function on_save_handler() { tracking.sendSaveAndChangeEvents(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, self.analyticsChanges, 'ports'); self.analyticsChanges = {}; @@ -488,14 +487,10 @@ ports.initialize = function (callback) { } function save_to_eeprom() { - MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, on_saved_handler); - } - - function on_saved_handler() { - gui_log(i18n.getMessage('configurationEepromSaved')); - - GUI.tab_switch_cleanup(function() { - MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection); + mspHelper.writeConfiguration(function() { + GUI.tab_switch_cleanup(function() { + MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection); + }); }); } } diff --git a/src/js/tabs/power.js b/src/js/tabs/power.js index 4e9979558e..d468f717e6 100644 --- a/src/js/tabs/power.js +++ b/src/js/tabs/power.js @@ -500,7 +500,7 @@ power.initialize = function (callback) { } function save_to_eeprom() { - MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, save_completed); + mspHelper.writeConfiguration(save_completed); } function save_completed() { diff --git a/src/js/tabs/servos.js b/src/js/tabs/servos.js index ef89206c19..880a9d23b6 100644 --- a/src/js/tabs/servos.js +++ b/src/js/tabs/servos.js @@ -139,7 +139,7 @@ servos.initialize = function (callback) { function save_to_eeprom() { if (save_configuration_to_eeprom) { - MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () { + mspHelper.writeConfiguration(function () { gui_log(i18n.getMessage('servosEepromSave')); }); } diff --git a/src/js/tabs/vtx.js b/src/js/tabs/vtx.js index 82450c99b5..f9bed36891 100644 --- a/src/js/tabs/vtx.js +++ b/src/js/tabs/vtx.js @@ -903,7 +903,7 @@ vtx.initialize = function (callback) { } function save_to_eeprom() { - MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, save_completed); + mspHelper.writeConfiguration(save_completed); } function save_completed() { From 506194ba25ac5eb6e648ba3cb3c293de85cbd5dc Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Sat, 6 May 2023 21:25:15 +0200 Subject: [PATCH 086/393] Fix mixer (#3442) --- src/js/model.js | 52 ++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/js/model.js b/src/js/model.js index 0ca941b99e..554cff6c44 100644 --- a/src/js/model.js +++ b/src/js/model.js @@ -3,33 +3,33 @@ import * as THREE from 'three'; // generate mixer export const mixerList = [ - { name: 'Tricopter', pos: 3, model: 'tricopter', image: 'tri', motors: 3, servos: true }, - { name: 'Quad +', pos: 2, model: 'quad_x', image: 'quad_p', motors: 4, servos: false }, - { name: 'Quad X', pos: 0, model: 'quad_x', image: 'quad_x', motors: 4, servos: false }, - { name: 'Bicopter', pos: 16, model: 'custom', image: 'bicopter', motors: 2, servos: true }, - { name: 'Gimbal', pos: 4, model: 'custom', image: 'custom', motors: 0, servos: true }, - { name: 'Y6', pos: 20, model: 'y6', image: 'y6', motors: 6, servos: false }, - { name: 'Hex +', pos: 5, model: 'hex_plus', image: 'hex_p', motors: 6, servos: false }, - { name: 'Flying Wing', pos: 10, model: 'custom', image: 'flying_wing', motors: 1, servos: true }, - { name: 'Y4', pos: 19, model: 'y4', image: 'y4', motors: 4, servos: false }, - { name: 'Hex X', pos: 6, model: 'hex_x', image: 'hex_x', motors: 6, servos: false }, - { name: 'Octo X8', pos: 21, model: 'custom', image: 'octo_x8', motors: 8, servos: false }, + { name: 'Tricopter', pos: 0, model: 'tricopter', image: 'tri', motors: 3, servos: true }, + { name: 'Quad +', pos: 1, model: 'quad_x', image: 'quad_p', motors: 4, servos: false }, + { name: 'Quad X', pos: 2, model: 'quad_x', image: 'quad_x', motors: 4, servos: false }, + { name: 'Bicopter', pos: 3, model: 'custom', image: 'bicopter', motors: 2, servos: true }, + { name: 'Gimbal', pos: 4, model: 'custom', image: 'custom', motors: 0, servos: true }, + { name: 'Y6', pos: 5, model: 'y6', image: 'y6', motors: 6, servos: false }, + { name: 'Hex +', pos: 6, model: 'hex_plus', image: 'hex_p', motors: 6, servos: false }, + { name: 'Flying Wing', pos: 7, model: 'custom', image: 'flying_wing', motors: 1, servos: true }, + { name: 'Y4', pos: 8, model: 'y4', image: 'y4', motors: 4, servos: false }, + { name: 'Hex X', pos: 9, model: 'hex_x', image: 'hex_x', motors: 6, servos: false }, + { name: 'Octo X8', pos: 10, model: 'custom', image: 'octo_x8', motors: 8, servos: false }, + { name: 'Octo Flat +', pos: 11, model: 'custom', image: 'octo_flat_p', motors: 8, servos: false }, + { name: 'Octo Flat X', pos: 12, model: 'custom', image: 'octo_flat_x', motors: 8, servos: false }, + { name: 'Airplane', pos: 13, model: 'custom', image: 'airplane', motors: 1, servos: true }, + { name: 'Heli 120', pos: 14, model: 'custom', image: 'custom', motors: 1, servos: true }, + { name: 'Heli 90', pos: 15, model: 'custom', image: 'custom', motors: 0, servos: true }, + { name: 'V-tail Quad', pos: 16, model: 'quad_vtail', image: 'vtail_quad', motors: 4, servos: false }, + { name: 'Hex H', pos: 17, model: 'custom', image: 'custom', motors: 6, servos: false }, + { name: 'PPM to SERVO', pos: 18, model: 'custom', image: 'custom', motors: 0, servos: true }, + { name: 'Dualcopter', pos: 19, model: 'custom', image: 'custom', motors: 2, servos: true }, + { name: 'Singlecopter', pos: 20, model: 'custom', image: 'custom', motors: 1, servos: true }, + { name: 'A-tail Quad', pos: 21, model: 'quad_atail', image: 'atail_quad', motors: 4, servos: false }, + { name: 'Custom', pos: 22, model: 'custom', image: 'custom', motors: 0, servos: false }, + { name: 'Custom Airplane', pos: 23, model: 'custom', image: 'custom', motors: 2, servos: true }, + { name: 'Custom Tricopter', pos: 24, model: 'custom', image: 'custom', motors: 3, servos: true }, + { name: 'Quad X 1234', pos: 25, model: 'quad_x', image: 'quad_x_1234', motors: 4, servos: false }, { name: 'Octo X8 +', pos: 26, model: 'custom', image: 'custom', motors: 8, servos: false }, - { name: 'Octo Flat +', pos: 8, model: 'custom', image: 'octo_flat_p', motors: 8, servos: false }, - { name: 'Octo Flat X', pos: 9, model: 'custom', image: 'octo_flat_x', motors: 8, servos: false }, - { name: 'Airplane', pos: 11, model: 'custom', image: 'airplane', motors: 1, servos: true }, - { name: 'Heli 120', pos: 12, model: 'custom', image: 'custom', motors: 1, servos: true }, - { name: 'Heli 90', pos: 13, model: 'custom', image: 'custom', motors: 0, servos: true }, - { name: 'V-tail Quad', pos: 17, model: 'quad_vtail', image: 'vtail_quad', motors: 4, servos: false }, - { name: 'Hex H', pos: 7, model: 'custom', image: 'custom', motors: 6, servos: false }, - { name: 'PPM to SERVO', pos: 22, model: 'custom', image: 'custom', motors: 0, servos: true }, - { name: 'Dualcopter', pos: 15, model: 'custom', image: 'custom', motors: 2, servos: true }, - { name: 'Singlecopter', pos: 14, model: 'custom', image: 'custom', motors: 1, servos: true }, - { name: 'A-tail Quad', pos: 18, model: 'quad_atail', image: 'atail_quad', motors: 4, servos: false }, - { name: 'Custom', pos: 23, model: 'custom', image: 'custom', motors: 0, servos: false }, - { name: 'Custom Airplane', pos: 24, model: 'custom', image: 'custom', motors: 2, servos: true }, - { name: 'Custom Tricopter', pos: 25, model: 'custom', image: 'custom', motors: 3, servos: true }, - { name: 'Quad X 1234', pos: 1, model: 'quad_x', image: 'quad_x_1234', motors: 4, servos: false }, ]; // 3D model From 5235c5c812292d66c1508d6fca3f8bffdba94c3c Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Sun, 7 May 2023 19:10:29 +0200 Subject: [PATCH 087/393] Add DSHOT_TELEMETRY_COUNTS debug mode (#3439) Adds DSHOT_TELEMETRY_COUNTS debug mode --- src/js/tabs/onboard_logging.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index 6f48a50ee4..aaff69d806 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -341,6 +341,7 @@ onboard_logging.initialize = function (callback) { {text: "ANGLE_MODE"}, {text: "ANGLE_TARGET"}, {text: "CURRENT_ANGLE"}, + {text: "DSHOT_TELEMETRY_COUNTS"}, ]; for (let i = 0; i < FC.PID_ADVANCED_CONFIG.debugModeCount; i++) { From 5c3951626aa9e74ce7d2f5f6d524dc1eb99bb40f Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 9 May 2023 16:43:42 +0200 Subject: [PATCH 088/393] Fix: tooltip (#3445) Fix tooltip --- locales/en/messages.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/locales/en/messages.json b/locales/en/messages.json index 6c824af0f0..fb64335469 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -950,6 +950,10 @@ "message": "Crash detection is active", "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipCALIBRATING": { + "message": "The craft is currently calibrating", + "description": "Message that pops up to describe the CALIBRATING arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Throttle channel is too high", "description": "Message that pops up to describe the THROTTLE arming disable flag" From e789d97baaf89a82fa8c0e1bdfcc407945abd95b Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 9 May 2023 17:33:49 +0200 Subject: [PATCH 089/393] Fix: arm status [icon] (#3438) Fix status --- src/css/main.less | 4 +--- src/js/sensor_helpers.js | 8 ++------ src/js/serial_backend.js | 41 +++++++++++++++++----------------------- src/js/tabs/motors.js | 2 +- src/js/tabs/setup.js | 6 +++--- 5 files changed, 24 insertions(+), 37 deletions(-) diff --git a/src/css/main.less b/src/css/main.less index d7a6442ff9..bad0c51028 100644 --- a/src/css/main.less +++ b/src/css/main.less @@ -628,7 +628,7 @@ input[type="number"] { transition: none; background-image: url(../images/icons/cf_icon_link_grey.svg); } -.armedicon.active {user-select +.armedicon.active { background-image: url(../images/icons/cf_icon_armed_active.svg); } .failsafeicon.active { @@ -1727,8 +1727,6 @@ dialog { } .buildInfoBtn { position: relative; - margin-bottom: 0px; - margin-top: 3px; margin: 4px; float: right; a { diff --git a/src/js/sensor_helpers.js b/src/js/sensor_helpers.js index d204aab2d4..a4efe92619 100644 --- a/src/js/sensor_helpers.js +++ b/src/js/sensor_helpers.js @@ -1,4 +1,3 @@ -import FC from './fc'; import { bit_check } from './bit'; export function have_sensor(sensors_detected, sensor_code) { @@ -29,7 +28,7 @@ export function sensor_status(sensors_detected = 0, gps_fix_state = 0) { } // update UI (if necessary) - if (sensor_status.previous_sensors_detected == sensors_detected && sensor_status.previous_gps_fix_state == gps_fix_state) { + if (sensor_status.previous_sensors_detected === sensors_detected && sensor_status.previous_gps_fix_state === gps_fix_state) { return; } @@ -47,10 +46,7 @@ export function sensor_status(sensors_detected = 0, gps_fix_state = 0) { $(".accicon", eSensorStatus).removeClass("active"); } - if ( - (FC.CONFIG.boardType == 0 || FC.CONFIG.boardType == 2) && - have_sensor(sensors_detected, "gyro") - ) { + if (have_sensor(sensors_detected, "gyro")) { $(".gyro", eSensorStatus).addClass("on"); $(".gyroicon", eSensorStatus).addClass("active"); } else { diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index 38a4215632..2dcbc52cc2 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -671,30 +671,11 @@ async function update_live_status() { if (GUI.active_tab !== 'cli' && GUI.active_tab !== 'presets') { await MSP.promise(MSPCodes.MSP_ANALOG); - await MSP.promise(MSPCodes.MSP_BOXNAMES); - await MSP.promise(MSPCodes.MSP_STATUS_EX); - - const active = (performance.now() - FC.ANALOG.last_received_timestamp) < 300; - - for (let i = 0; i < FC.AUX_CONFIG.length; i++) { - if (FC.AUX_CONFIG[i] === 'ARM') { - $(".armedicon").toggleClass('active', bit_check(FC.CONFIG.mode, i)); - } - if (FC.AUX_CONFIG[i] === 'FAILSAFE') { - $(".failsafeicon").toggleClass('active', bit_check(FC.CONFIG.mode, i)); - } - } - - let nbCells = Math.floor(FC.ANALOG.voltage / FC.BATTERY_CONFIG.vbatmaxcellvoltage) + 1; - - if (FC.ANALOG.voltage === 0) { - nbCells = 1; - } + const nbCells = FC.ANALOG.voltage === 0 ? 1 : Math.floor(FC.ANALOG.voltage / FC.BATTERY_CONFIG.vbatmaxcellvoltage) + 1; const min = FC.BATTERY_CONFIG.vbatmincellvoltage * nbCells; const max = FC.BATTERY_CONFIG.vbatmaxcellvoltage * nbCells; const warn = FC.BATTERY_CONFIG.vbatwarningcellvoltage * nbCells; - const NO_BATTERY_VOLTAGE_MAXIMUM = 1.8; // Maybe is better to add a call to MSP_BATTERY_STATE but is not available for all versions if (FC.ANALOG.voltage < min && FC.ANALOG.voltage > NO_BATTERY_VOLTAGE_MAXIMUM) { @@ -710,14 +691,26 @@ async function update_live_status() { } } + await MSP.promise(MSPCodes.MSP_BOXNAMES); + await MSP.promise(MSPCodes.MSP_STATUS_EX); + + const active = (performance.now() - FC.ANALOG.last_received_timestamp) < 300; + $(".linkicon").toggleClass('active', active); + + for (let i = 0; i < FC.AUX_CONFIG.length; i++) { + if (FC.AUX_CONFIG[i] === 'ARM') { + $(".armedicon").toggleClass('active', bit_check(FC.CONFIG.mode, i)); + } + if (FC.AUX_CONFIG[i] === 'FAILSAFE') { + $(".failsafeicon").toggleClass('active', bit_check(FC.CONFIG.mode, i)); + } + } + if (have_sensor(FC.CONFIG.activeSensors, 'gps')) { await MSP.promise(MSPCodes.MSP_RAW_GPS); + sensor_status(FC.CONFIG.activeSensors, FC.GPS_DATA.fix); } - sensor_status(FC.CONFIG.activeSensors, FC.GPS_DATA.fix); - - $(".linkicon").toggleClass('active', active); - statuswrapper.show(); } } diff --git a/src/js/tabs/motors.js b/src/js/tabs/motors.js index 4d2235d542..dc146339d2 100644 --- a/src/js/tabs/motors.js +++ b/src/js/tabs/motors.js @@ -252,7 +252,7 @@ motors.initialize = async function (callback) { const motorsEnableTestModeElement = $('#motorsEnableTestMode'); self.analyticsChanges = {}; - motorsEnableTestModeElement.prop('checked', false).trigger('change'); + motorsEnableTestModeElement.prop('checked', self.armed); if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_42) || !(FC.MOTOR_CONFIG.use_dshot_telemetry || FC.MOTOR_CONFIG.use_esc_sensor)) { $(".motor_testing .telemetry").hide(); diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index fd9b409b53..b664f27301 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -24,7 +24,7 @@ setup.initialize = function (callback) { } function load_status() { - MSP.send_message(MSPCodes.MSP_STATUS, false, false, load_mixer_config); + MSP.send_message(MSPCodes.MSP_STATUS_EX, false, false, load_mixer_config); } function load_mixer_config() { @@ -362,7 +362,7 @@ setup.initialize = function (callback) { } sensor_e.append(i18n.getMessage('sensorStatusSonarShort'), ': ', sonarElements[[FC.SENSOR_CONFIG.sonar_hardware]]); } -}); + }); }; const showFirmwareInfo = function() { @@ -401,7 +401,7 @@ setup.initialize = function (callback) { showFirmwareInfo(); // Show Sonar info box if sensor exist - if (! have_sensor(FC.CONFIG.activeSensors, 'sonar')) { + if (!have_sensor(FC.CONFIG.activeSensors, 'sonar')) { $('.sonarBox').hide(); } From a27c8ceb05fec4851b4ef3bc1017e7261a638514 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 9 May 2023 17:46:20 +0200 Subject: [PATCH 090/393] Update translations (#3446) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 44 +++++++--- locales/da/messages.json | 62 +++++++++----- locales/de/messages.json | 24 ------ locales/es/messages.json | 46 ++++++++--- locales/eu/messages.json | 24 ------ locales/fr/messages.json | 24 ------ locales/gl/messages.json | 24 ------ locales/it/messages.json | 62 +++++++++----- locales/ja/messages.json | 54 +++++++++---- locales/ko/messages.json | 28 ------- locales/nl/messages.json | 24 ------ locales/pl/messages.json | 54 +++++++++---- locales/pt/messages.json | 156 +++++++++++++++++++++++++++++++++--- locales/pt_BR/messages.json | 24 ------ locales/ru/messages.json | 24 ------ locales/zh_CN/messages.json | 24 ------ locales/zh_TW/messages.json | 24 ------ 17 files changed, 365 insertions(+), 357 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index 6ee61e53dd..faec432a0e 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -857,9 +857,9 @@ "message": "La prevenció de l'enlairament s'ha desencadenat", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Desarmat per detecció de accident", - "description": "Message that pops up to describe the CRASH arming disable flag" + "initialSetupArmingDisableFlagsTooltipCRASH_DETECTED": { + "message": "La detecció de caiguda està activa", + "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "El canal accelerador està massa alt", @@ -881,9 +881,9 @@ "message": "La càrrega del sistema és massa elevada per a un vol segur", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "La calibració del sensor continua en marxa", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" + "initialSetupArmingDisableFlagsTooltipACC_CALIBRATION": { + "message": "La calibració de l'acceleròmetre encara està en curs", + "description": "Message that pops up to describe the ACC_CALIBRATION arming disable flag" }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI està actiu", @@ -921,19 +921,19 @@ "message": "El filtratge basat en RPM està habilitat, però un o més ESC no subministren telemetria vàlida DSHOT. Comproveu que els sistemes ESC siguin capaços i tinguin instal·lat el programari necessari per suportar la telemetria bidireccional DSHOT.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { + "initialSetupArmingDisableFlagsTooltipREBOOT_REQUIRED": { "message": "Un canvi de configuració requereix reiniciar", "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { + "initialSetupArmingDisableFlagsTooltipDSHOT_BITBANG": { "message": "El DSHOT bitbanged no funciona correctament i no es poden controlar els motors. Probablement causat per un conflicte de temporitzador amb altres funcions activades al controlador de vol.", "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { + "initialSetupArmingDisableFlagsTooltipNO_ACC_CALIBRATION": { "message": "L'acceleròmetre no s'ha calibrat i estan habilitades funcions que es basen en ell. Calibrar l’acceleròmetre.", "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { + "initialSetupArmingDisableFlagsTooltipMOTOR_PROTOCOL": { "message": "No s'ha seleccionat cap protocol de sortida del motor", "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" }, @@ -2249,6 +2249,10 @@ "message": "Activa el registre del BlackBox", "description": "Help text to BLACKBOX mode" }, + "auxiliaryHelpMode_BLACKBOXERASE": { + "message": "Esborra el registre de BlackBox", + "description": "Help text to BLACKBOX ERASE mode" + }, "auxiliaryHelpMode_AIRMODE": { "message": "En el mode de mesclador estàndard, quan es calculen el roll, el pitch i el yaw i saturen un motor, tots els motors es reduiran per igual. Quan un motor baixa per sota del mínim es talla. Diguem que teníeu l'accelerador just per sobre del mínim i vau intentar tirar un gir ràpid; com que dos motors no poden baixar, bàsicament obteniu la meitat de la potència (la meitat del vostre guany PID). Si les vostres entrades haurien demanat més d'una diferència del 100% entre els motors alts i baixos, els motors baixos es retallarien, trencant la simetria de l'equilibri del motor reduint de manera desigual el guany.", "description": "Help text to AIRMODE mode" @@ -2269,6 +2273,22 @@ "message": "Utilitzeu-lo per canviar el control personalitzat de la càmera 3. Consulteu el manual del proveïdor", "description": "Help text to customized CAMERA CONTROL 3 mode" }, + "auxiliaryHelpMode_USER1": { + "message": "Utilitzeu-lo per canviar el control personalitzat del Usuari 1. Consulteu el manual del proveïdor", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Utilitzeu-lo per canviar el control personalitzat del Usuari 2. Consulteu el manual del proveïdor", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Utilitzeu-lo per canviar el control personalitzat del Usuari 3. Consulteu el manual del proveïdor", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Utilitzeu-lo per canviar el control personalitzat del Usuari 4. Consulteu el manual del proveïdor", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Inverteix els motors per capgirar el multicopter cap per avall després d'un xoc (cal DShot)", "description": "Help text to FLIP OVER AFTER CRASH mode" @@ -2301,9 +2321,9 @@ "message": "Sistema d'assistència a l'inici de cursa", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCONTROLDISABLE": { + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { "message": "Desactiva/activa les ordres dels sticks", - "description": "Help text to STICK CONTROL DISABLE mode" + "description": "Help text to STICK COMMANDS DISABLE mode" }, "auxiliaryHelpMode_BEEPERMUTE": { "message": "Desactiva/activa el beeper inclòs l'avís, l'estat i el mode BEEPER", diff --git a/locales/da/messages.json b/locales/da/messages.json index a2354645f6..3fb7cd0420 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -849,9 +849,9 @@ "message": "Runway Takeoff-beskyttelse er blevet udløst", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Deaktiveret via havaridetektering", - "description": "Message that pops up to describe the CRASH arming disable flag" + "initialSetupArmingDisableFlagsTooltipCRASH_DETECTED": { + "message": "Nedstyrtet drone er aktiv", + "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Gas kanalværdi er for høj", @@ -873,9 +873,9 @@ "message": "Systembelastning for høj til sikker flyvning", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "Sensorkalibrering er stadig i gang", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" + "initialSetupArmingDisableFlagsTooltipACC_CALIBRATION": { + "message": "Accelerometerkalibrering er stadig i gang", + "description": "Message that pops up to describe the ACC_CALIBRATION arming disable flag" }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI er aktiv", @@ -913,19 +913,19 @@ "message": "RPM eller omdrejnings-baseret filtrering er aktiv, men èn eller flere esc'ere sender ikke gyldige DShot telemetri data. Tjek at esc'erne har den nødvendige firmware for at kunne køre to-vejs DShot telemetri.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { + "initialSetupArmingDisableFlagsTooltipREBOOT_REQUIRED": { "message": "Ændringer i opsætning kræver en genstart", "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "Bitbanged / kommunikation med DSHOT fungerer ikke korrekt og motorerne kan ikke kontrolleres. Sandsynligvis forårsaget af en timer konflikt med andre funktioner aktiveret på FC.", + "initialSetupArmingDisableFlagsTooltipDSHOT_BITBANG": { + "message": "Motor protokol (DSHOT) melder fejl, fungerer ikke korrekt og motorere er ikke i kontrol. Sandsynligvis på grund af en timer konflikt med andre funktioner aktiveret i FC.", "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "Accelerometeret er ikke kalibreret og der er ændret opsætninger som kræver kalibriering. Kalibrer accelerometret.", + "initialSetupArmingDisableFlagsTooltipNO_ACC_CALIBRATION": { + "message": "Accelerometeret er ikke kalibreret og funktioner er ændret, der er afhængige af det. Kalibrer accelerometret.", "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { + "initialSetupArmingDisableFlagsTooltipMOTOR_PROTOCOL": { "message": "Der er ikke valgt en protokol til motor kontrol", "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" }, @@ -1358,7 +1358,7 @@ "message": "Bip ved fuldført Blackbox-sletning" }, "beeperCRASH_FLIP": { - "message": "Bip, når \"Vend havereret drone\" er aktiv" + "message": "Bip, når \"Vend styrtet drone\" er aktiv" }, "beeperCAM_CONNECTION_OPEN": { "message": "Bip, når 5-tasts kamerakontrol tilgås" @@ -2222,11 +2222,11 @@ "description": "Help text to HEAD ADJ mode" }, "auxiliaryHelpMode_BEEPER": { - "message": "Aktiver bippen - nyttigt til at lokalisere en nedstyrtet drone", + "message": "Aktiver bippen - nyttigt til at lokalisere en styrtet drone", "description": "Help text to BEEPER mode" }, "auxiliaryHelpMode_LEDLOW": { - "message": "Sluk/tænf for LED lys", + "message": "Tænd eller sluk for LED lys", "description": "Help text to LEDLOW mode" }, "auxiliaryHelpMode_OSDDISABLE": { @@ -2241,6 +2241,10 @@ "message": "Aktiver Blackbox logning", "description": "Help text to BLACKBOX mode" }, + "auxiliaryHelpMode_BLACKBOXERASE": { + "message": "Slet BlackBox log", + "description": "Help text to BLACKBOX ERASE mode" + }, "auxiliaryHelpMode_AIRMODE": { "message": "I standard mixer tilstand, når krængror, højderor og sideror beregnes og styrer en motor, vil alle motorer blive ændret ens. Når en motor går under minimum, bliver styring reduceret. Fx hvis du har din gas lige over minimum og forsøger en hurtig krængning - da to motorer ikke kan gå under minimum, vil du hovedsagelig kun få halvdelen af kraften (halvdelen af din PID værdi). Hvis dit input ville have bedt om mere end 100% forskel mellem de høje og lave motores hastighed ville de de langsomm motorer blive reduceret og symmetrien i motorens balance vil blive brudt", "description": "Help text to AIRMODE mode" @@ -2261,6 +2265,22 @@ "message": "Brug til at skifte leverandør bestemte CAMERA CONTROL 3. Se i leverandørs manual", "description": "Help text to customized CAMERA CONTROL 3 mode" }, + "auxiliaryHelpMode_USER1": { + "message": "Brug til at skifte brugerdefineret USER1. Se i leverandør manual", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Brug til at skifte brugerdefineret USER2. Se i leverandør manual", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Brug til at skifte brugerdefineret USER3. Se i leverandør manual", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Brug til at skifte brugerdefineret USER4. Se i leverandør manual", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Vender motor retning for at vende en styrtet drone (kun ved DShot protokol)", "description": "Help text to FLIP OVER AFTER CRASH mode" @@ -2293,9 +2313,9 @@ "message": "Ræs assistance system", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCONTROLDISABLE": { - "message": "Deaktiver/aktiver pind kommando", - "description": "Help text to STICK CONTROL DISABLE mode" + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "Deaktiver/aktiver pind kommandoer", + "description": "Help text to STICK COMMANDS DISABLE mode" }, "auxiliaryHelpMode_BEEPERMUTE": { "message": "Deaktiver / aktiver bippen, heruder advarsler, status og anden bippen.", @@ -4479,7 +4499,7 @@ "message": "Trin som startes ved, når aktivering sker fra AUX knap" }, "failsafeSwitchModeHelp": { - "message": "Denne indstilling afgør, hvad der sker, når fejlsikring via AUX-knappen:
    Trin 1 aktiverer Trin 1 fejlsikring, der er nyttig til at simulere den nøjagtige fejlsikringsadfærd ved signaltab.
    Trin 2 overspringer Trin 1 og aktiverer omgående Trin 2-proceduren
    SLUK, der straks afkobler (fartøjet havarerer)" + "message": "Denne indstilling afgør, hvad der sker, når fejlsikring via AUX-knappen:
    Trin 1 aktiverer Trin 1 fejlsikring, der er nyttig til at simulere den nøjagtige fejlsikringsadfærd ved signaltab.
    Trin 2 overspringer Trin 1 og aktiverer omgående Trin 2-proceduren
    SLUK, der straks afkobler (dronen styrter ned)" }, "failsafeSwitchOptionStage1": { "message": "Trin 1" @@ -5903,11 +5923,11 @@ "message": "Viser en visualisering af biperen (viser som 4 stjerner)" }, "osdWarningTextCrashFlipMode": { - "message": "Vend havereret drone tilstand", + "message": "Vend styrtet drone tilstand", "description": "One of the warnings that can be selected to be shown in the OSD" }, "osdWarningCrashFlipMode": { - "message": "Advarer når \"vend havereret drone\" er aktiveret" + "message": "Advarer når \"vend styrtet drone\" er aktiveret" }, "osdWarningTextEscFail": { "message": "ESC fejl", diff --git a/locales/de/messages.json b/locales/de/messages.json index 88e7580167..48dc9e1959 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -852,10 +852,6 @@ "message": "Versehentlicher Start erkannt und unterbunden", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Durch Absturzerkennung disarmt", - "description": "Message that pops up to describe the CRASH arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Gaskanal ist zu hoch", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -876,10 +872,6 @@ "message": "Systemauslastung zu hoch für einen sicheren Flug", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "Sensorkalibrierung noch nicht abgeschlossen", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "Kommandozeile ist aktiv", "description": "Message that pops up to describe the CLI arming disable flag" @@ -916,22 +908,6 @@ "message": "Die RPM-basierte Filterung ist aktiviert, aber ein oder mehrere ESCs liefern keine gültige DSHOT-Telemetrie. Prüfe, ob die ESCs kompatibel sind und die erforderliche Firmware installiert haben, um bidirektionale DSHOT-Telemetrie zu unterstützen.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { - "message": "Eine Konfigurationsänderung erfordert einen Neustart", - "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "Bitbanged DSHOT funktioniert nicht richtig und die Motoren können nicht gesteuert werden. Wahrscheinlich wird das durch einen Timer-Konflikt mit anderen Funktionen, die auf dem Flugcontroller aktiviert sind, verursacht.", - "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "Der Beschleunigungssensor wurde nicht kalibriert und Funktionen sind aktiviert, die davon abhängen. Kalibrieren Sie den Beschleunigungssensor.", - "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { - "message": "Es ist kein Motorausgabeprotokoll ausgewählt", - "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "Einer der anderen 'Disarm-Flags' ist aktiv während des Armings", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" diff --git a/locales/es/messages.json b/locales/es/messages.json index 7c9d90004c..fd617b4fbb 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -849,9 +849,9 @@ "message": "La Protección de Despegue Incontrolado se ha activado", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Desarmado por detección de colisión", - "description": "Message that pops up to describe the CRASH arming disable flag" + "initialSetupArmingDisableFlagsTooltipCRASH_DETECTED": { + "message": "Detección de colisión activado", + "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "El canal del acelerador está demasiado alto", @@ -873,9 +873,9 @@ "message": "La carga del sistema es demasiado alta para un vuelo seguro", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "La calibración de los sensores está todavía en marcha", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" + "initialSetupArmingDisableFlagsTooltipACC_CALIBRATION": { + "message": "La calibración del acelerómetro está todavía en proceso", + "description": "Message that pops up to describe the ACC_CALIBRATION arming disable flag" }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "Está activo el CLI", @@ -913,20 +913,20 @@ "message": "El filtro basado en RPM está activado pero uno o más ESCs no están proporcionando telemetría DSHOT válida. Comprueba que los ESCs son compatibles y tienen el firmware necesario instalado para soportar telemetría bidireccional DSHOT.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { + "initialSetupArmingDisableFlagsTooltipREBOOT_REQUIRED": { "message": "Un cambio en la configuración requiere reiniciar", "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { + "initialSetupArmingDisableFlagsTooltipDSHOT_BITBANG": { "message": "Bitbanging DSHOT no está funcionando correctamente y los motores no pueden ser controlados. Probablemente causado por algún conflicto en un timer con otras funcionalidades activadas del controlador de vuelo.", "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { + "initialSetupArmingDisableFlagsTooltipNO_ACC_CALIBRATION": { "message": "El acelerómetro no ha sido calibrado y hay funcionalidades que lo necesitan. Calibra el acelerómetro.", "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { - "message": "No hay ningún protocolo de salida del motor seleccionado", + "initialSetupArmingDisableFlagsTooltipMOTOR_PROTOCOL": { + "message": "No hay ningún protocolo de salida para los motores seleccionado", "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { @@ -2241,6 +2241,10 @@ "message": "Activar registro de Caja Negra", "description": "Help text to BLACKBOX mode" }, + "auxiliaryHelpMode_BLACKBOXERASE": { + "message": "Borrar registro de Caja Negra", + "description": "Help text to BLACKBOX ERASE mode" + }, "auxiliaryHelpMode_AIRMODE": { "message": "En el mezclador / modo estándar, cuando el roll, el pitch y el yaw se calculan y saturan un motor, todos los motores se reducen por igual. Cuando un motor va por debajo del mínimo se recorta. Si tenías tu acelerador justo por encima del mínimo y tratas de hacer un roll rápido - ya que dos motores no pueden bajar, obtienes esencialmente la mitad de la potencia (la mitad de la ganancia de tu PID). Si tus comandos hubieran pedido más de un 100% de diferencia entre los motores altos y bajos, los motores bajos se recortarían, rompiendo la simetría del balance del motor al reducir la ganancia desigualmente", "description": "Help text to AIRMODE mode" @@ -2261,6 +2265,22 @@ "message": "Utilizado para activar el CAMERA CONTROL 3 personalizado. Comprobar el manual del proveedor", "description": "Help text to customized CAMERA CONTROL 3 mode" }, + "auxiliaryHelpMode_USER1": { + "message": "Utilizado para activar el USER1 personalizado. Comprobar el manual del proveedor", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Utilizado para activar el USER2 personalizado. Comprobar el manual del proveedor", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Utilizado para activar el USER3 personalizado. Comprobar el manual del proveedor", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Utilizado para activar el USER4 personalizado. Comprobar el manual del proveedor", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Invierte los motores para voltear una aeronave que está boca abajo después de un accidente (DShot requerido)", "description": "Help text to FLIP OVER AFTER CRASH mode" @@ -2293,9 +2313,9 @@ "message": "Sistema de asistencia de inicio de carrera", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCONTROLDISABLE": { + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { "message": "Desactivar/activar comandos con los mandos", - "description": "Help text to STICK CONTROL DISABLE mode" + "description": "Help text to STICK COMMANDS DISABLE mode" }, "auxiliaryHelpMode_BEEPERMUTE": { "message": "Desactivar/activar pitidos incluyendo advertencias, estado y modo BEEPER", diff --git a/locales/eu/messages.json b/locales/eu/messages.json index bcc4fc6c3d..8088086bec 100644 --- a/locales/eu/messages.json +++ b/locales/eu/messages.json @@ -720,10 +720,6 @@ "message": "Runway Takeoff prevention piztu da", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Desarmatu egin da istripuen detekzioaren bidez", - "description": "Message that pops up to describe the CRASH arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Throttle kanala oso altua dago", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -744,10 +740,6 @@ "message": "Sistemaren karga handiegia da hegaldi seguruetarako", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "Sentsoreen kalibrazioa martxan dago", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI aktiboa", "description": "Message that pops up to describe the CLI arming disable flag" @@ -784,22 +776,6 @@ "message": "RPM iragazkia gaituta dago, baina ESC bat edo gehiago ez dira DSHOT telemetria baliozkoak hornitzen. Egiaztatu ESC- ak gai direla eta beharrezko firmware instalatua DSHOT telemetria bidirekzionala laguntzeko.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { - "message": "Konfigurazio aldaketeen ondoren berrabiarazi behar da", - "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "DSHOT bitbanged ez da behar bezala funtzionatzen eta motorrak ezin dira kontrolatu. Litekeena da hegaldiaren kontroladorean gaitutako beste funtzio batzuekin tenporizadore baten gatazka.", - "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "Azelerometroa ez da kalibratu eta hori behar duten ezaugarriak dituzu. Azelerometroa kalibratu.", - "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { - "message": "Ez da motorra irteeraren protokoloa hautatu", - "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "Desarmatzeko beste banderietako bat gaituta zegoen armatzerakoan", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" diff --git a/locales/fr/messages.json b/locales/fr/messages.json index a09b6b91af..ac11b25b8b 100644 --- a/locales/fr/messages.json +++ b/locales/fr/messages.json @@ -819,10 +819,6 @@ "message": "La prévention au décollage intempestif a été activée", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Désarmé via la détection d'un crash", - "description": "Message that pops up to describe the CRASH arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Voie des gaz est trop élevée", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -843,10 +839,6 @@ "message": "La charge CPU est trop élevée pour voler en sécurité", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "L'étalonnage des capteurs est toujours en cours", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "Ligne de Commande active", "description": "Message that pops up to describe the CLI arming disable flag" @@ -883,22 +875,6 @@ "message": "Le filtrage basé sur RPM est activé mais un ou plusieurs ESC ne fournissent pas de télémétrie DSHOT valide. Vérifiez que les ESC sont capables et ont le firmware requis installé pour supporter la télémétrie DSHOT bidirectionnelle.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { - "message": "Une modification de configuration nécessite un redémarrage", - "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "Le DSHOT Bitbanged ne fonctionne pas correctement. Les moteurs ne peuvent pas être contrôlés, probablement à cause un conflit de timer avec d'autres fonctionnalités activées sur le contrôleur de vol.", - "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "L'accéléromètre n'a pas été calibré, et certaines fonctionnalités actives en ont besoin. Calibrez l'accéléromètre.", - "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { - "message": "Aucun protocole de sortie de moteur sélectionné", - "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "Un des autres drapeaux désarmés est actif lors de l'armement", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" diff --git a/locales/gl/messages.json b/locales/gl/messages.json index 47ed5b73d9..74c3d71cb2 100644 --- a/locales/gl/messages.json +++ b/locales/gl/messages.json @@ -852,10 +852,6 @@ "message": "Activouse a protección de despegue incontrolado", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Desarmado mediante a detección de colisión", - "description": "Message that pops up to describe the CRASH arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "A canle do acelerador é demasiado alto", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -876,10 +872,6 @@ "message": "A carga do sistema é demasiado alta para un voo seguro", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "A calibración do sensor aínda está en curso", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI está activo", "description": "Message that pops up to describe the CLI arming disable flag" @@ -916,22 +908,6 @@ "message": "O filtrado baseado en RPM está activado, pero un ou máis ESC non están a proporcionar unha telemetría DSHOT válida. Comprobe que os ESC son capaces de instalar e posúen o firmware necesario para soportar a telemetría bidireccional DSHOT.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { - "message": "Un cambio na configuración require un reinicio", - "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "Bitbanged DSHOT non está funcionando correctamente e os motores non se poden controlar. Probablemente esté causado por un conflito temporal con outras funcións habilitadas no controlador de voo.", - "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "Non se calibrou o acelerómetro e están habilitadas funcións que dependen del. Calibre o acelerómetro.", - "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { - "message": "Non hai ningún protocolo de saída do motor seleccionado", - "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "Unha das outras sinais de desarmado está activa ao armar", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" diff --git a/locales/it/messages.json b/locales/it/messages.json index a95eb5d8cd..ccd7b1a9c1 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -424,7 +424,7 @@ "message": "Firmware diversi da Betaflight non sono supportati, ad eccezione della modalità CLI." }, "firmwareUpgradeRequired": { - "message": "La versione del firmware installata sul dispositivo necessita di un aggiornamento. Usa il CLI per effettuare un backup prima dell'aggiornamento. La procedura è disponibile nella documentazione.
    In alternativa puoi scaricare una versione precedente del configuratore." + "message": "La versione del firmware installato sul dispositivo necessita un aggiornamento. Usa il CLI per effettuare un backup prima dell'aggiornamento. La procedura è disponibile nella documentazione.
    In alternativa puoi scaricare una versione precedente del configuratore." }, "resetToCustomDefaultsDialog": { "message": "Ci sono impostazioni di fabbrica personalizzate disponibili per questa scheda. Di solito una scheda non funzionerà a dovere a meno che le impostazioni personalizzate non siano applicate.
    Vuoi applicare le impostazioni personalizzate di questa scheda?" @@ -849,9 +849,9 @@ "message": "La prevenzione del decollo fuori controllo è entrata in funzione", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Disarmato per rilevamento collisione", - "description": "Message that pops up to describe the CRASH arming disable flag" + "initialSetupArmingDisableFlagsTooltipCRASH_DETECTED": { + "message": "Rilevamento crash attivo", + "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Canale gas troppo alto", @@ -873,9 +873,9 @@ "message": "Il carico del processore è troppo elevato per un volo in sicurezza", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "Calibrazione sensori ancora in corso", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" + "initialSetupArmingDisableFlagsTooltipACC_CALIBRATION": { + "message": "Calibrazione accelerometro in corso", + "description": "Message that pops up to describe the ACC_CALIBRATION arming disable flag" }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI attivo", @@ -913,20 +913,20 @@ "message": "Il filtraggio basato su RPM è abilitato ma uno o più ESC non forniscono una telemetria DSHOT valida. Verificare che gli ESC siano in grado di installare il firmware richiesto per supportare la telemetria DSHOT bidirezionale.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { + "initialSetupArmingDisableFlagsTooltipREBOOT_REQUIRED": { "message": "Un cambio configurazione richiede un riavvio", "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "Il DSHOT Bitbanged non funziona correttamente e i motori non possono essere controllati. Probabilmente è un conflitto del timer con altre funzioni attivate sul controllore di volo.", + "initialSetupArmingDisableFlagsTooltipDSHOT_BITBANG": { + "message": "Il DSHOT Bitbanged non è corretto e i motori non possono essere controllati. La probabile causa è un conflitto del timer con altre funzioni attive sul controllore di volo.", "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "L'accelerometro non è stato calibrato ma sono abilitate delle funzioni che dipendono da esso. Calibra l'accelerometro.", + "initialSetupArmingDisableFlagsTooltipNO_ACC_CALIBRATION": { + "message": "L'accelerometro non è stato calibrato e delle funzioni che lo usano sono abilitate. Calibra l'accelerometro.", "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { - "message": "Non è stato selezionato un protocollo di output dei motori", + "initialSetupArmingDisableFlagsTooltipMOTOR_PROTOCOL": { + "message": "Nessun protocollo di output dei motori selezionato", "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { @@ -2241,6 +2241,10 @@ "message": "Abilita log BlackBox", "description": "Help text to BLACKBOX mode" }, + "auxiliaryHelpMode_BLACKBOXERASE": { + "message": "Cancella il log BlackBox", + "description": "Help text to BLACKBOX ERASE mode" + }, "auxiliaryHelpMode_AIRMODE": { "message": "In un mixer / modalità standard, quando roll, pitch e yaw sono calcolati e saturano un motore, tutti i motori saranno ridotti allo stesso modo. Quando un motore va sotto il minimo, viene interrotto. Pensate di avere l'acceleratore appena sopra il minimo e cercate di fare un roll veloce - poiché due motori non possono andare più lenti, si ottiene in pratica metà della potenza (metà del PID gain). Se i vostri comandi avessero richiesto una differenza maggiore del 100% tra i motori veloci e lenti, i motori lenti verrebbero interrotti, rompendo la simmetria del bilanciamento dei motori riducendo in modo non uniforme il guadagno", "description": "Help text to AIRMODE mode" @@ -2250,17 +2254,33 @@ "description": "Help text to FPV ANGLE MIX mode" }, "auxiliaryHelpMode_CAMERACONTROL1": { - "message": "Usa l'interruttore personalizzato CAMERA CONTROL 1. Controllare il manuale del fornitore", + "message": "Usa l'interruttore personalizzato CAMERA CONTROL 1. Controlla il manuale del fornitore", "description": "Help text to customized CAMERA CONTROL 1 mode" }, "auxiliaryHelpMode_CAMERACONTROL2": { - "message": "Usa l'interruttore personalizzato CAMERA CONTROL 2. Controllare il manuale del fornitore", + "message": "Usa l'interruttore personalizzato CAMERA CONTROL 2. Controlla il manuale del fornitore", "description": "Help text to customized CAMERA CONTROL 2 mode" }, "auxiliaryHelpMode_CAMERACONTROL3": { - "message": "Usa l'interruttore personalizzato CAMERA CONTROL 3. Controllare il manuale del fornitore", + "message": "Usa l'interruttore personalizzato CAMERA CONTROL 3. Controlla il manuale del fornitore", "description": "Help text to customized CAMERA CONTROL 3 mode" }, + "auxiliaryHelpMode_USER1": { + "message": "Usa l'interruttore personalizzato USER1. Controlla il manuale del fornitore", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Usa l'interruttore personalizzato USER2. Controlla il manuale del fornitore", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Usa l'interruttore personalizzato USER3. Controlla il manuale del fornitore", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Usa l'interruttore personalizzato USER4. Controlla il manuale del fornitore", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Inverte i motori per ribaltare un modello dopo un crash (DShot richiesto)", "description": "Help text to FLIP OVER AFTER CRASH mode" @@ -2293,9 +2313,9 @@ "message": "Sistema d'assistenza avvio Race", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCONTROLDISABLE": { - "message": "Disabilita/abilita comando stick", - "description": "Help text to STICK CONTROL DISABLE mode" + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "Disabilita/abilita comandi stick", + "description": "Help text to STICK COMMANDS DISABLE mode" }, "auxiliaryHelpMode_BEEPERMUTE": { "message": "Disabilita/abilita beeper inclusi gli avvisi, stato e modalità BEEPER", @@ -6537,7 +6557,7 @@ "message": "MODALITÀ CAMBIO CAMERA" }, "flashTab": { - "message": "Aggiornamento Firmware" + "message": "Aggiorna Firmware" }, "cliAutoComplete": { "message": "Autocompletamento avanzato della CLI" diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 89f4cb6caa..cfff2cc750 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -445,7 +445,7 @@ "message": "モーター出力プロトコルが選択されていません。
    『$t(tabMotorTesting.message)』タブの『$t(configurationEscFeatures.message)』で、ESCに適したモーター出力プロトコルを選択してください。
    $t(escProtocolDisabledMessage.message)" }, "reportProblemsDialogACC_NEEDS_CALIBRATION": { - "message": "加速度センサーは有効になっていますがキャリブレーションされていません。
    加速度センサーを使用する場合は『$t(tabSetup.message)』タブの『$t(initialSetupButtonCalibrateAccel.message)』の指示に従ってください。加速度センサーを必要とする機能 (オートレベルモード、GPSレスキュー等) が有効になっている場合、加速度センサーのキャリブレーションが完了するまで機体のアームは有効になりません。
    加速度センサーを使用しない場合は『$t(tabConfiguration.message)』タブの『$t(configurationSystem.message)』で無効にすることを推奨します。" + "message": "加速度センサーは有効になっていますが水平キャリブレーションされていません。
    加速度センサーを使用する場合は『$t(tabSetup.message)』タブの『$t(initialSetupButtonCalibrateAccel.message)』の指示に従ってください。加速度センサーを必要とする機能 (オートレベルモード、GPSレスキュー等) が有効になっている場合、加速度センサーの水平キャリブレーションが完了するまで機体のアームは有効になりません。
    加速度センサーを使用しない場合は『$t(tabConfiguration.message)』タブの『$t(configurationSystem.message)』で無効にすることを推奨します。" }, "infoVersionOs": { "message": "OS: {{operatingSystem}}", @@ -849,9 +849,9 @@ "message": "暴走離陸防止機能が実行されました", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "クラッシュ検出によるディスアーム", - "description": "Message that pops up to describe the CRASH arming disable flag" + "initialSetupArmingDisableFlagsTooltipCRASH_DETECTED": { + "message": "クラッシュ検出が有効です", + "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "スロットルチャンネルが高すぎます", @@ -873,9 +873,9 @@ "message": "安全な飛行にはシステム負荷が高すぎます", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "センサーキャリブレーションがまだ実行中です", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" + "initialSetupArmingDisableFlagsTooltipACC_CALIBRATION": { + "message": "水平キャリブレーションがまだ実行中です", + "description": "Message that pops up to describe the ACC_CALIBRATION arming disable flag" }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI コマンドラインが有効です", @@ -913,19 +913,19 @@ "message": "RPMベースのフィルタリングは有効ですが、1つ以上のESCが有効なDSHOTテレメトリー情報を提供していません。ESCがDSHOT双方向テレメトリーをサポートするために必要なファームウェアがインストールされていることを確認してください。", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { + "initialSetupArmingDisableFlagsTooltipREBOOT_REQUIRED": { "message": "設定を変更するには再起動が必要です", "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { + "initialSetupArmingDisableFlagsTooltipDSHOT_BITBANG": { "message": "Bitbanged DSHOTが正常に動作せず、モーターを制御できません。おそらくフライトコントローラで有効になっている他機能とタイマーとの競合が原因かと思われます。", "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "加速度センサーはキャリブレーションされていませんが、依存する機能が有効になっています。加速度センサーをキャリブレーションしてください。", + "initialSetupArmingDisableFlagsTooltipNO_ACC_CALIBRATION": { + "message": "水平キャリブレーションされていませんが、依存する機能が有効になっています。水平キャリブレーションを実行してください。", "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { + "initialSetupArmingDisableFlagsTooltipMOTOR_PROTOCOL": { "message": "モーター出力プロトコルが選択されていません", "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" }, @@ -2241,6 +2241,10 @@ "message": "BlackBoxログを有効にします", "description": "Help text to BLACKBOX mode" }, + "auxiliaryHelpMode_BLACKBOXERASE": { + "message": "BlackBoxログを消去します", + "description": "Help text to BLACKBOX ERASE mode" + }, "auxiliaryHelpMode_AIRMODE": { "message": "標準のミキサー / モードでは、ロール、ピッチ、ヨーが計算上モーターの強度が飽和状態となると、すべてのモーターが均等に回転が減少します。モーターが最小値を下回ると切り捨て状態となります。例えば、スロットルを最小値より少し上にしてクイックロールをしようとした場合、2つのモーターはそれ以上回転を下げることができないので、実質的に半分のパワー (PID強度の半分) を得ることになります。もし、入力が高回転モーターと低回転モーターの間に100%以上の差を求めたとしたら、低回転モーターは回転が切り捨てられ、強度を不均一に減少させることとなってしまいモーターバランスの対称性を破綻させてしまうでしょう。", "description": "Help text to AIRMODE mode" @@ -2250,17 +2254,33 @@ "description": "Help text to FPV ANGLE MIX mode" }, "auxiliaryHelpMode_CAMERACONTROL1": { - "message": "カスタマイズ切り替えのためカメラコントロール1を使用します。メーカーのマニュアルをご確認ください。", + "message": "カスタマイズ切り替えのためCAMERA CONTROL 1を使用します。メーカーのマニュアルをご確認ください。", "description": "Help text to customized CAMERA CONTROL 1 mode" }, "auxiliaryHelpMode_CAMERACONTROL2": { - "message": "カスタマイズ切り替えのためカメラコントロール2を使用します。メーカーのマニュアルをご確認ください。", + "message": "カスタマイズ切り替えのためCAMERA CONTROL 2を使用します。メーカーのマニュアルをご確認ください。", "description": "Help text to customized CAMERA CONTROL 2 mode" }, "auxiliaryHelpMode_CAMERACONTROL3": { - "message": "カスタマイズ切り替えのためカメラコントロール3を使用します。メーカーのマニュアルをご確認ください。", + "message": "カスタマイズ切り替えのためCAMERA CONTROL 3を使用します。メーカーのマニュアルをご確認ください。", "description": "Help text to customized CAMERA CONTROL 3 mode" }, + "auxiliaryHelpMode_USER1": { + "message": "カスタマイズ切り替えのためUSER1を使用します。メーカーのマニュアルをご確認ください。", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "カスタマイズ切り替えのためUSER2を使用します。メーカーのマニュアルをご確認ください。", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "カスタマイズ切り替えのためUSER3を使用します。メーカーのマニュアルをご確認ください。", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "カスタマイズ切り替えのためUSER4を使用します。メーカーのマニュアルをご確認ください。", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "モーターを逆回転させクラッシュ後に逆さまになった機体をひっくり返します (要DShot)", "description": "Help text to FLIP OVER AFTER CRASH mode" @@ -2293,9 +2313,9 @@ "message": "レーススタート アシスタントシステム", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCONTROLDISABLE": { + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { "message": "スティックコマンドを無効 / 有効にします", - "description": "Help text to STICK CONTROL DISABLE mode" + "description": "Help text to STICK COMMANDS DISABLE mode" }, "auxiliaryHelpMode_BEEPERMUTE": { "message": "警告、ステータス、BEEPERモードを含むビープ音を無効 / 有効にします", diff --git a/locales/ko/messages.json b/locales/ko/messages.json index b6d4bd0189..46b581f211 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -849,10 +849,6 @@ "message": "폭주이륙방지가 실행되고 있습니다", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "충돌 감지를 통해 디스아밍됨", - "description": "Message that pops up to describe the CRASH arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "스로틀이 너무 높습니다", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -873,10 +869,6 @@ "message": "시스템 부하가 안전한 비행을 하기에 너무 높습니다", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "센서 교정이 여전히 진행 중입니다", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI가 사용 중입니다", "description": "Message that pops up to describe the CLI arming disable flag" @@ -913,22 +905,6 @@ "message": "RPM-기반 필터링이 활성화되었지만 하나 이상의 ESC가 유효한 DSHOT 텔레메트리를 공급하지 않습니다. ESC가 양방향 DSHOT 텔레메트리를 공급하기 위해 필요한 펌웨어가 적용가능한지와 설치되었는지를 확인하십시요.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { - "message": "환경설정 변경은 재부팅을 필요로합니다.", - "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "비트뱅(Bitbang)된 DSHOT이 제대로 작동하지 않아 모터를 제어할 수 없습니다. 비행 컨트롤러에서 활성화된 다른 기능과의 타이머 충돌로 인해 발생할 수 있습니다.", - "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "가속도계가 교정되지 않았으며 그에 의존하는 기능들이 활성화되어 있습니다. 가속도계를 교정하십시오.", - "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { - "message": "선택된 모터 출력 프로토콜이 없습니다", - "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "다른 디스암 플래그 중 하나가 아밍시 활성화 중입니다", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" @@ -2293,10 +2269,6 @@ "message": "레이스 스타트 지원 시스템", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCONTROLDISABLE": { - "message": "스틱 명령 비활성/활성화", - "description": "Help text to STICK CONTROL DISABLE mode" - }, "auxiliaryHelpMode_BEEPERMUTE": { "message": "경고, 상태 및 비퍼 모드를 포함한 비퍼음 비활성화/활성화", "description": "Help text to BEEPERMUTE mode" diff --git a/locales/nl/messages.json b/locales/nl/messages.json index 9fde872e28..51063dbe96 100644 --- a/locales/nl/messages.json +++ b/locales/nl/messages.json @@ -755,10 +755,6 @@ "message": "Runway Takeoff preventie is geactiveerd", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Uitgeschakeld via crash detectie", - "description": "Message that pops up to describe the CRASH arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Throttle kanaal is te hoog", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -779,10 +775,6 @@ "message": "Systeembelasting is te hoog voor een veilige vlucht", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "Sensor kalibratie is nog steeds bezig", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI is actief", "description": "Message that pops up to describe the CLI arming disable flag" @@ -819,22 +811,6 @@ "message": "RPM-gebaseerde filtering is ingeschakeld, maar één of meerdere ESC's leveren geen geldige DSHOT telemetry aan. Controleer of de ESC's de vereiste firmware geïnstalleerd hebben om zo bidirectionele DSHOT telemetry te ondersteunen.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { - "message": "Een configuratie wijziging vereist een herstart", - "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "Bitbanged DSHOT werkt niet correct. De motoren kunnen niet worden gecontroleerd. Waarschijnlijk wordt dit veroorzaakt door een timer conflict van andere functies die zijn ingeschakeld op de vluchtcontroller.", - "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "De versnellingsmeter is niet gekalibreerd. Er zijn functies ingeschakeld die hierop vertrouwen. Kalibreer de versnellingsmeter.", - "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { - "message": "Er is geen motoruitgangsprotocol geselecteerd", - "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "Een van de andere disarm flags is actief bij arming", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" diff --git a/locales/pl/messages.json b/locales/pl/messages.json index 3f02657421..b76104dff1 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -415,7 +415,7 @@ "message": "Nie udało się uruchomić procedury odbezpieczania" }, "noConfigurationReceived": { - "message": "Nie otrzymano konfiguracji przez 10 sekund, komunikacja zawiodła." + "message": "Nie udało się połączyć przez 10 sekund, komunikacja zawiodła" }, "firmwareVersionNotSupported": { "message": "Ta wersja oprogramowania kontrolera nie jest wspierana. Proszę uaktualnij oprogramowaniedo wersji, która wspiera API $1, lub wyższej. Użyj CLI, aby zgrać bieżącą konfigurację. Opis zgrywania/przywrócenia konfiguracji opisany jest w dokumentacji.
    Możesz nieże pobrać starszą wersję konfiguratora, jeżeli nie chcesz aktualizować oprogramowania kontrolera lotu." @@ -849,9 +849,9 @@ "message": "Uaktywniono zabezpieczenie przed niekontrolowanym startem", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Rozbrojony przez wykrycie wypadku", - "description": "Message that pops up to describe the CRASH arming disable flag" + "initialSetupArmingDisableFlagsTooltipCRASH_DETECTED": { + "message": "Wykrywanie awarii jest aktywne", + "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Kanał przepustnicy ma zbyt wysoką wartość", @@ -873,9 +873,9 @@ "message": "Obciążenie systemu jest zbyt wysokie, aby zapewnić bezpieczny lot", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "Kalibracja czujnika nadal trwa", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" + "initialSetupArmingDisableFlagsTooltipACC_CALIBRATION": { + "message": "Trwa kalibracja akcelerometru", + "description": "Message that pops up to describe the ACC_CALIBRATION arming disable flag" }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "Wiersz poleceń - aktywny", @@ -913,19 +913,19 @@ "message": "Filtrowanie w oparciu o RPM jest włączone ale jedno lub więcej ESC nie dostarcza odpowiedniego sygnału telemetrii DSHOT. Sprawdź czy ESC są odpowiednie i mają zainstalowane wymagane oprogramowanie wspierające dwukierunkową telemetrię DSHOT.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { - "message": "Zmiana w konfiguracji wymaga ponownego uruchomienia", + "initialSetupArmingDisableFlagsTooltipREBOOT_REQUIRED": { + "message": "Zmiana konfiguracji wymaga ponownego uruchomienia", "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "Komunikacja DSHOT nie działa poprawnie i nie można kontrolować silników. Prawdopodobnie jest to spowodowane przez konflikt z innymi funkcjami włączonymi w kontrolerze lotu.", + "initialSetupArmingDisableFlagsTooltipDSHOT_BITBANG": { + "message": "Protokół DSHOT nie działa prawidłowo i nie można sterować silnikami. Prawdopodobnie jest to spowodowane konfliktem z innymi funkcjami włączonymi na kontrolerze lotu.", "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "Akcelerometr nie został skalibrowany i są włączone funkcje, które na nim polegają. Skalibruj akcelerometr.", + "initialSetupArmingDisableFlagsTooltipNO_ACC_CALIBRATION": { + "message": "Akcelerometr nie został skalibrowany, a są włączone funkcje, które na nim polegają. Skalibruj akcelerometr.", "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { + "initialSetupArmingDisableFlagsTooltipMOTOR_PROTOCOL": { "message": "Nie ma wybranego protokołu sterowania silnika", "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" }, @@ -2241,6 +2241,10 @@ "message": "Włącz rejestrator parametrów lotu BlackBox", "description": "Help text to BLACKBOX mode" }, + "auxiliaryHelpMode_BLACKBOXERASE": { + "message": "Wyczyść dziennik BlackBox", + "description": "Help text to BLACKBOX ERASE mode" + }, "auxiliaryHelpMode_AIRMODE": { "message": "W standardowym trybie miksera /, gdy przechylenie, nachylenie i odchylenie zostaną obliczone i nasycą silnik, wszystkie silniki zostaną jednakowo zredukowane. Kiedy silnik spada poniżej minimum, zostaje odcięty. Powiedzmy, że miałeś przepustnicę nieco powyżej minimum i próbowałeś szybko przechylić - ponieważ dwa silniki nie mogą zejść niżej, zasadniczo uzyskujesz połowę mocy (połowę wzmocnienia PID). Jeśli twoje dane wejściowe wymagałyby więcej niż 100% różnicy między wysokimi i niskimi silnikami, niskie silniki zostałyby obcięte, łamiąc symetrię równowagi silnika poprzez nierównomierne zmniejszenie wzmocnienia", "description": "Help text to AIRMODE mode" @@ -2261,6 +2265,22 @@ "message": "Służy do niestandardowego przełączania STEROWANIA KAMERĄ 3. Sprawdź w instrukcji dostawcy", "description": "Help text to customized CAMERA CONTROL 3 mode" }, + "auxiliaryHelpMode_USER1": { + "message": "Używaj, aby przełączyć na profil niestandardowy USER1. Sprawdź w instrukcji dostawcy", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Używaj, aby przełączyć na profil niestandardowy USER2. Sprawdź w instrukcji dostawcy", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Używaj, aby przełączyć na profil niestandardowy USER3. Sprawdź w instrukcji dostawcy", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Używaj, aby przełączyć na profil niestandardowy USER3. Sprawdź w instrukcji dostawcy", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Odwróć kierunek obrotu silników, aby przewrócić statek powietrzny do góry nogami po zderzeniu (wymagany DShot)", "description": "Help text to FLIP OVER AFTER CRASH mode" @@ -2293,9 +2313,9 @@ "message": "System wspomagania startu w wyścigu", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCONTROLDISABLE": { - "message": "Wyłącz/włącz polecenie drążka", - "description": "Help text to STICK CONTROL DISABLE mode" + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "Wyłącz/włącz polecenia z drążka", + "description": "Help text to STICK COMMANDS DISABLE mode" }, "auxiliaryHelpMode_BEEPERMUTE": { "message": "Wyłącz/włącz sygnał dźwiękowy, w tym ostrzeżenie, stan i tryb BEEPER", diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 08a3b4410b..413f30686f 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -849,9 +849,9 @@ "message": "A Prevenção Contra Descolagem Acidental foi acionada", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Desarmado por deteção de queda", - "description": "Message that pops up to describe the CRASH arming disable flag" + "initialSetupArmingDisableFlagsTooltipCRASH_DETECTED": { + "message": "Deteção de colisão está ativa", + "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "O valor do canal do acelerador está muito alto", @@ -873,9 +873,9 @@ "message": "A carga da CPU está acima do limite permitido para um voo seguro", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "A calibração dos sensores ainda está em curso", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" + "initialSetupArmingDisableFlagsTooltipACC_CALIBRATION": { + "message": "Calibração do acelerómetro ainda em curso", + "description": "Message that pops up to describe the ACC_CALIBRATION arming disable flag" }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "Linha de comandos (CLI) está ativa", @@ -913,19 +913,19 @@ "message": "Filtragem baseada em RPM está habilitada, mas um ou mais ESCs não estão a fornecer telemetria DSHOT. Verifique se os ESCs são capazes disso e se o firmware necessário está instalado para suportar telemetria DSHOT bidirecional.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { - "message": "Uma alteração de configuração necessita de uma reinicialização", + "initialSetupArmingDisableFlagsTooltipREBOOT_REQUIRED": { + "message": "Uma alteração de configuração requer uma reinicialização", "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "O DSHOT Bitbanged não está a funcionar corretamente e os motores não podem ser controlados. Provavelmente causado por um conflito do relógio com outras funcionalidades ativadas na controladora de voo.", + "initialSetupArmingDisableFlagsTooltipDSHOT_BITBANG": { + "message": "O DSHOT Bitbanged não está a funcionar corretamente e os motores não podem ser controlados. Provavelmente devido a um conflito do relógio com outras funcionalidades ativadas na controladora de voo.", "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { + "initialSetupArmingDisableFlagsTooltipNO_ACC_CALIBRATION": { "message": "O acelerómetro não foi calibrado e estão ligadas funcionalidades que dependem dele. Calibre o acelerómetro.", "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { + "initialSetupArmingDisableFlagsTooltipMOTOR_PROTOCOL": { "message": "Não há nenhum protocolo de saída de motor selecionado", "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" }, @@ -2193,6 +2193,138 @@ "message": "Neste modo auto-nivelado, os canais do roll e do pitch controlam o ângulo entre o eixo relevante e o vertical, alcançando vôo nivelado apenas deixando os sticks centrados", "description": "Help text to ANGLE mode" }, + "auxiliaryHelpMode_HORIZON": { + "message": "Este modo híbrido funciona exatamente como o modo ANGLE com sticks de roll e pitch centrados (assim permitindo voo autonivelado), depois comporta-se gradualmente cada vez mais como o modo RATE padrão, à medida que os sticks são afastados da posição central", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_MAG": { + "message": "Bloqueio à direção do Magnetómetro", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_HEADFREE": { + "message": "Neste modo, a \"cabeça\" do multicóptero está sempre a apontar na mesma direção de quando a funcionalidade foi ativada. Isto significa que quando o multicóptero gira em torno do eixo Z (yaw), os controlos sempre responderão de acordo com a mesma direção da \"cabeça\".
    Com este modo é mais fácil controlar o multicóptero, mesmo voando com a cabeça física na sua direção, já que os controlos respondem sempre igual. Este é um modo amigável para novos utilizadores de multicópteros e pode evitar perder o controlo quando não sabe a direção da cabeça", + "description": "Help text to HEADFREE mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Transmite roll, yaw, and pitch diretamente do rx para os servos em mistura de avião", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_FAILSAFE": { + "message": "Iniciar etapa 2 do failsafe manualmente", + "description": "Help text to FAILSAFE mode" + }, + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Ativar 'GPS Rescue' para retornar a nave ao local onde foi armada pela última vez", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "Ajuste de Direção - Define uma nova origem yaw para o modo HEADFREE", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_BEEPER": { + "message": "Ativar o beeper - útil para localizar uma aeronave caída", + "description": "Help text to BEEPER mode" + }, + "auxiliaryHelpMode_LEDLOW": { + "message": "Desligar saída LED_STRIP", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Ativar/Desativar On-Screen-Display", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Ativar telemetria via switch", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_BLACKBOX": { + "message": "Ativar registo BlackBox", + "description": "Help text to BLACKBOX mode" + }, + "auxiliaryHelpMode_BLACKBOXERASE": { + "message": "Apagar log do BlackBox", + "description": "Help text to BLACKBOX ERASE mode" + }, + "auxiliaryHelpMode_AIRMODE": { + "message": "No modo / mistura padrão, quando o roll, pitch e yaw são calculados e saturam um motor, todos os motores serão reduzidos igualmente. Quando um motor vai abaixo do mínimo, ele é cortado. Se tiver o acelerador logo acima do mínimo e tentou puxar uma rolagem rápidafazer um roll rápido - uma vez que 2 motores não podem ir mais abaixo, essencialmente terá metada da potência (metade do ganho do PID). Se os seus inputs pedirem mais do que a diferença de 100% entre motores altos e baixos, os motores baixos serão cortados, quebrando a simetria do equilíbrio motor através da redução desigual o ganho", + "description": "Help text to AIRMODE mode" + }, + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Aplicar rotação de yaw em relação a uma câmera FPV montada com um ângulo predefinido", + "description": "Help text to FPV ANGLE MIX mode" + }, + "auxiliaryHelpMode_CAMERACONTROL1": { + "message": "Use para alternar CAMERA CONTROL 1 personalizado. Verifique o manual do fornecedor", + "description": "Help text to customized CAMERA CONTROL 1 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL2": { + "message": "Use para alternar CAMERA CONTROL 2 personalizado. Verifique o manual do fornecedor", + "description": "Help text to customized CAMERA CONTROL 2 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL3": { + "message": "Use para alternar CAMERA CONTROL 3 personalizado. Verifique o manual do fornecedor", + "description": "Help text to customized CAMERA CONTROL 3 mode" + }, + "auxiliaryHelpMode_USER1": { + "message": "Use para alternar o USER1 personalizado. Verifique o manual do fornecedor", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Use para alternar o USER2 personalizado. Verifique o manual do fornecedor", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Use para alternar o USER3 personalizado. Verifique o manual do fornecedor", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Use para alternar o USER4 personalizado. Verifique o manual do fornecedor", + "description": "Help text to customized USER4 mode" + }, + "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { + "message": "Inverta os motores para sair de uma posição invertida após um acidente (Dshot necessário)", + "description": "Help text to FLIP OVER AFTER CRASH mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "Quando armar, espere que este switch seja ativado antes de efetivamente armar", + "description": "Help text to PREARM mode" + }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "Use o número de beeps para indicar o número de satélites GPS encontrados", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Mudar o VTX para modo pit (baixa emissão de energia, se suportado)", + "description": "Help text to VTX PIT MODE mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Desativar permanentemente uma aeronave caída até que seja reiniciada", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Ativar limitação do ângulo 'acro trainer' em modo acro", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Desativar o controlo das configurações do VTX através do OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "Sistema de assistência de início de corrida", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "Desativar/ativar comando do stick", + "description": "Help text to STICK COMMANDS DISABLE mode" + }, + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Desativar/ativar o beeper incluíndo aviso, estado e modo BEEPER", + "description": "Help text to BEEPERMUTE mode" + }, + "auxiliaryHelpMode_READY": { + "message": "Adicionado no BF4.4, pode agora mostrar 'READY' no OSD usando um interruptor. Esta é uma melhoria de nicho para situações de corrida onde todos os feeds de vídeos dos pilotos estão num monitor central. O piloto pode ativar um switch para indicar que está pronto para voar, e a palavra READY aparece no seu OSD. O diretor de corrida pode então saber se todos os pilotos estão prontos ao olhar para a tela central. Quando arma, o texto READY desaparece", + "description": "Help text to READY mode" + }, "adjustmentsHelp": { "message": "Configure os switches de ajuste. Veja a secção 'in-flight adjustments' do manual para detalhes. As alterações que as funções de ajuste fazem não são gravadas automaticamente." }, diff --git a/locales/pt_BR/messages.json b/locales/pt_BR/messages.json index f97229be2b..13aaced992 100644 --- a/locales/pt_BR/messages.json +++ b/locales/pt_BR/messages.json @@ -807,10 +807,6 @@ "message": "A prevenção contra decolagem acidental foi acionada", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Desarmado por detecção de queda", - "description": "Message that pops up to describe the CRASH arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "O Valor do canal do Acelerador está muito alto", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -831,10 +827,6 @@ "message": "A carga da CPU está acima do limite permitido para um voo seguro", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "Os sensores ainda estão sendo calibrados", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "Linha de comandos (CLI) está ativa", "description": "Message that pops up to describe the CLI arming disable flag" @@ -871,22 +863,6 @@ "message": "Filtragem baseada em RPM está habilitada, mas um ou mais ESCs não estão fornecendo telemetria DSHOT. Verifique se os ESCs são capazes e se o firmware necessário está instalado para suportar telemetria DSHOT bidirecional.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { - "message": "Uma das alterações de configuração requer uma reinicialização", - "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "O DSHOT Bitbanged não está funcionando corretamente e os motores não podem ser controlados. Isto provavelmente foi causado por um conflito de timer com outras funcionalidades habilitadas no controlador de voo.", - "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "O acelerômetro não foi calibrado e os recursos habilitados dependem dele. Calibre o acelerômetro.", - "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { - "message": "Nenhum protocolo de saída do motor foi selecionado", - "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "O Switch de armar não está em uma posição segura", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" diff --git a/locales/ru/messages.json b/locales/ru/messages.json index 89a980959f..e55781ae7f 100644 --- a/locales/ru/messages.json +++ b/locales/ru/messages.json @@ -756,10 +756,6 @@ "message": "Взлет с полосы переключен", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "Отключен из-за обнаружения аварии", - "description": "Message that pops up to describe the CRASH arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Канал газа слишком высок", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -780,10 +776,6 @@ "message": "Системная нагрузка слишком высока для полета", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "Калибровка датчика все еще продолжается", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "Интерфейс командной строки активен", "description": "Message that pops up to describe the CLI arming disable flag" @@ -820,22 +812,6 @@ "message": "Фильтрация на основе RPM включена, но один или более регуляторов моторов не выдают верную DSHOT телеметрию. Проверьте, что регуляторы имеют поддержку двусторонней DSHOT телеметрии и установлена необходимая прошивка для её поддержки.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { - "message": "Изменения в конфигурации требуют перезагрузки", - "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "Bitbanged DSHOT не работает должным образом, и двигатели не могут управляться. Скорее всего, из-за конфликта таймера с другими функциями, включенными в контроллере полета.", - "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "Акселерометр не откалиброван, но функции, которые зависят от него, включены. Откалибруйте акселерометр.", - "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { - "message": "Протокол управления двигателями не выбран", - "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "Один из других флагов дизарм активен при арминге", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" diff --git a/locales/zh_CN/messages.json b/locales/zh_CN/messages.json index d9c406061a..2376c4b7fd 100644 --- a/locales/zh_CN/messages.json +++ b/locales/zh_CN/messages.json @@ -765,10 +765,6 @@ "message": "已触发预防起飞失控", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "检测到坠机事故", - "description": "Message that pops up to describe the CRASH arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "油门通道值过高", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -789,10 +785,6 @@ "message": "系统负载过高, 无法安全飞行", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "传感器校准仍在进行中", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI (命令行) 已激活", "description": "Message that pops up to describe the CLI arming disable flag" @@ -829,22 +821,6 @@ "message": "基于转速的滤波器已开启,但一个或多个电调未发送有效的 DSHOT 回传数据。请确认电调支持 DSHOT 回传功能并且已刷入支持双向 DSHOT 回传的固件。", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { - "message": "配置更改需要重启", - "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "Bitbanged Dshot 无法正常工作,无法正常控制电机。可能是由于在飞控上启用了其他功能造成了定时器冲突。", - "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "已启用了使用加速度计的功能,但加速度计未校准。请校准加速度计。", - "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { - "message": "尚未选择电机输出协议", - "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "解锁时有一个阻止解锁的标志处于活跃状态", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" diff --git a/locales/zh_TW/messages.json b/locales/zh_TW/messages.json index 958f5cb6ad..d4339bf489 100644 --- a/locales/zh_TW/messages.json +++ b/locales/zh_TW/messages.json @@ -702,10 +702,6 @@ "message": "已觸發預防起飛失控", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCRASH": { - "message": "檢測到墜機事故", - "description": "Message that pops up to describe the CRASH arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "油門通道值過高", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -726,10 +722,6 @@ "message": "系統負載過高, 無法安全飛行", "description": "Message that pops up to describe the LOAD arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipCALIBRATING": { - "message": "傳感器校準仍在進行中", - "description": "Message that pops up to describe the CALIBRATING arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI (命令列) 已激活", "description": "Message that pops up to describe the CLI arming disable flag" @@ -766,22 +758,6 @@ "message": "基於轉速的濾波器已開啟,但一個或多個電調未發送有效的 DSHOT 回傳數據。請確認電調支援 DSHOT 回傳功能並且已刷入支援雙向 DSHOT 回傳的固件。", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, - "initialSetupArmingDisableFlagsTooltipREBOOT_REQD": { - "message": "配置更改需要重啟", - "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipDSHOT_BBANG": { - "message": "Bitbanged Dshot 無法正常工作,無法正常控制電機。可能是由於在飛控上啟用了其他功能造成了定時器衝突。", - "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipNO_ACC_CAL": { - "message": "已啟用了使用加速度計的功能,但加速度計未校準。請校準加速度計。", - "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" - }, - "initialSetupArmingDisableFlagsTooltipMOTOR_PROTO": { - "message": "尚未選擇電機輸出協議", - "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" - }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "解鎖時有一個阻止解鎖的標誌處於活躍狀態", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" From c5ddfa4555349080e251fc06bf6693c2b99a0870 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 10 May 2023 22:33:53 +0200 Subject: [PATCH 091/393] Refactor: writeConfiguration (#3444) * Refactor writeConfiguration * Fix after review --- locales/en/messages.json | 9 --------- src/js/msp/MSPHelper.js | 10 ++++++++-- src/js/tabs/auxiliary.js | 5 +---- src/js/tabs/configuration.js | 18 ++---------------- src/js/tabs/failsafe.js | 16 +--------------- src/js/tabs/gps.js | 22 ++++------------------ src/js/tabs/led_strip.js | 5 +---- src/js/tabs/motors.js | 9 +-------- src/js/tabs/onboard_logging.js | 15 +-------------- src/js/tabs/power.js | 5 +---- src/js/tabs/receiver.js | 12 +----------- src/js/tabs/transponder.js | 10 +--------- src/js/tabs/vtx.js | 4 +--- 13 files changed, 23 insertions(+), 117 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index fb64335469..ad6f198520 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -2278,9 +2278,6 @@ "auxiliaryButtonSave": { "message": "Save" }, - "auxiliaryEepromSaved": { - "message": "EEPROM saved" - }, "auxiliaryAutoChannelSelect": { "message": "AUTO" }, @@ -2643,9 +2640,6 @@ "transponderDataInvalid": { "message": "Transponder data is invalid" }, - "transponderEepromSaved": { - "message": "EEPROM saved" - }, "servosFirmwareUpgradeRequired": { "message": "Servos requires firmware >= 1.10.0. and target support." }, @@ -3582,9 +3576,6 @@ "message": "Clear ALL", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM saved" - }, "ledStripVtxOverlay": { "message": "VTX (uses vtx frequency to assign color)" }, diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 37a2428c0e..80286a229d 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -14,8 +14,9 @@ import huffmanDecodeBuf from "../huffman"; import { defaultHuffmanTree, defaultHuffmanLenIndex } from "../default_huffman_tree"; import { updateTabList } from "../utils/updateTabList"; import { showErrorDialog } from "../utils/showErrorDialog"; -import { TABS } from "../gui"; +import GUI, { TABS } from "../gui"; import { OSD } from "../tabs/osd"; +import { reinitializeConnection } from "../serial_backend"; // Used for LED_STRIP const ledDirectionLetters = ['n', 'e', 's', 'w', 'u', 'd']; // in LSB bit order @@ -2729,11 +2730,16 @@ MspHelper.prototype.sendSerialConfig = function(callback) { MSP.send_message(mspCode, mspHelper.crunch(mspCode), false, callback); }; -MspHelper.prototype.writeConfiguration = function(callback) { +MspHelper.prototype.writeConfiguration = function(reboot, callback) { setTimeout(function() { MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function() { gui_log(i18n.getMessage('configurationEepromSaved')); console.log('Configuration saved to EEPROM'); + if (reboot) { + GUI.tab_switch_cleanup(function() { + MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection); + }); + } if (callback) { callback(); } diff --git a/src/js/tabs/auxiliary.js b/src/js/tabs/auxiliary.js index b2d5b0f916..8b63a6223a 100644 --- a/src/js/tabs/auxiliary.js +++ b/src/js/tabs/auxiliary.js @@ -7,7 +7,6 @@ import FC from '../fc'; import MSP from '../msp'; import MSPCodes from '../msp/MSPCodes'; import adjustBoxNameIfPeripheralWithModeID from '../peripherals'; -import { gui_log } from '../gui_log'; import { getTextWidth } from '../utils/common'; import inflection from "inflection"; @@ -403,9 +402,7 @@ auxiliary.initialize = function (callback) { mspHelper.sendModeRanges(save_to_eeprom); function save_to_eeprom() { - mspHelper.writeConfiguration(function () { - gui_log(i18n.getMessage('auxiliaryEepromSaved')); - }); + mspHelper.writeConfiguration(false); } }); diff --git a/src/js/tabs/configuration.js b/src/js/tabs/configuration.js index ead4887e43..6b1335acd9 100644 --- a/src/js/tabs/configuration.js +++ b/src/js/tabs/configuration.js @@ -2,13 +2,11 @@ import semver from 'semver'; import { i18n } from '../localization'; import GUI, { TABS } from '../gui'; import { tracking } from "../Analytics"; -import { reinitializeConnection } from '../serial_backend'; import { mspHelper } from '../msp/MSPHelper'; import FC from '../fc'; import MSP from '../msp'; import MSPCodes from '../msp/MSPCodes'; import { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_45 } from '../data_storage'; -import { gui_log } from '../gui_log'; import { updateTabList } from '../utils/updateTabList'; const configuration = { @@ -431,10 +429,6 @@ configuration.initialize = function (callback) { FC.CONFIG.name = $('input[name="craftName"]').val().trim(); } - function save_serial_config() { - mspHelper.sendSerialConfig(save_config); - } - function save_config() { Promise .resolve(true) @@ -453,18 +447,10 @@ configuration.initialize = function (callback) { .then(() => semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) ? MSP.promise(MSPCodes.MSP2_SET_TEXT, mspHelper.crunch(MSPCodes.MSP2_SET_TEXT, MSPCodes.PILOT_NAME)) : Promise.resolve(true)) .then(() => MSP.promise(MSPCodes.MSP_SET_RX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_RX_CONFIG))) - .then(() => mspHelper.writeConfiguration(reboot)); - } - - function reboot() { - gui_log(i18n.getMessage('configurationEepromSaved')); - - GUI.tab_switch_cleanup(function() { - MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection); - }); + .then(() => mspHelper.writeConfiguration(true)); } - save_serial_config(); + mspHelper.sendSerialConfig(save_config); }); // status data pulled via separate timer with static speed diff --git a/src/js/tabs/failsafe.js b/src/js/tabs/failsafe.js index 57c8d59fd1..e1710b69d5 100644 --- a/src/js/tabs/failsafe.js +++ b/src/js/tabs/failsafe.js @@ -1,13 +1,11 @@ import { i18n } from "../localization"; import GUI, { TABS } from '../gui'; -import { reinitializeConnection } from "../serial_backend"; import { mspHelper } from "../msp/MSPHelper"; import MSP from "../msp"; import FC from "../fc"; import MSPCodes from "../msp/MSPCodes"; import adjustBoxNameIfPeripheralWithModeID from "../peripherals"; import { API_VERSION_1_43, API_VERSION_1_44, API_VERSION_1_45 } from "../data_storage"; -import { gui_log } from "../gui_log"; import semver from 'semver'; const failsafe = {}; @@ -364,19 +362,7 @@ failsafe.initialize = function (callback) { } function save_gps_rescue() { - MSP.send_message(MSPCodes.MSP_SET_GPS_RESCUE, mspHelper.crunch(MSPCodes.MSP_SET_GPS_RESCUE), false, save_to_eeprom); - } - - function save_to_eeprom() { - MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, reboot); - } - - function reboot() { - gui_log(i18n.getMessage('configurationEepromSaved')); - - GUI.tab_switch_cleanup(function() { - MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection); - }); + MSP.send_message(MSPCodes.MSP_SET_GPS_RESCUE, mspHelper.crunch(MSPCodes.MSP_SET_GPS_RESCUE), false, mspHelper.writeConfiguration(true)); } MSP.send_message(MSPCodes.MSP_SET_RX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_RX_CONFIG), false, save_failssafe_config); diff --git a/src/js/tabs/gps.js b/src/js/tabs/gps.js index b8b1387352..dcf422009d 100644 --- a/src/js/tabs/gps.js +++ b/src/js/tabs/gps.js @@ -5,10 +5,8 @@ import GUI, { TABS } from '../gui'; import FC from '../fc'; import MSP from "../msp"; import MSPCodes from "../msp/MSPCodes"; -import { gui_log } from '../gui_log'; import { have_sensor } from "../sensor_helpers"; import { mspHelper } from '../msp/MSPHelper'; -import { reinitializeConnection } from '../serial_backend'; import { updateTabList } from '../utils/updateTabList'; const gps = {}; @@ -344,26 +342,14 @@ gps.initialize = async function (callback) { frame.contentWindow.postMessage(message, '*'); }); - $('a.save').on('click', function() { + $('a.save').on('click', async function() { // fill some data FC.GPS_CONFIG.auto_baud = $('input[name="gps_auto_baud"]').is(':checked') ? 1 : 0; FC.GPS_CONFIG.auto_config = $('input[name="gps_auto_config"]').is(':checked') ? 1 : 0; - async function saveConfiguration() { - await MSP.promise(MSPCodes.MSP_SET_FEATURE_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_FEATURE_CONFIG)); - await MSP.promise(MSPCodes.MSP_SET_GPS_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_GPS_CONFIG)); - await mspHelper.writeConfiguration(reboot); - } - - function reboot() { - gui_log(i18n.getMessage('configurationEepromSaved')); - - GUI.tab_switch_cleanup(function() { - MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection); - }); - } - - saveConfiguration(); + await MSP.promise(MSPCodes.MSP_SET_FEATURE_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_FEATURE_CONFIG)); + await MSP.promise(MSPCodes.MSP_SET_GPS_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_GPS_CONFIG)); + mspHelper.writeConfiguration(true); }); GUI.content_ready(callback); diff --git a/src/js/tabs/led_strip.js b/src/js/tabs/led_strip.js index e83d0bc4cb..4d2df99d94 100644 --- a/src/js/tabs/led_strip.js +++ b/src/js/tabs/led_strip.js @@ -6,7 +6,6 @@ import semver from 'semver'; import MSP from "../msp"; import MSPCodes from "../msp/MSPCodes"; import { API_VERSION_1_46 } from '../data_storage'; -import { gui_log } from "../gui_log"; const led_strip = { wireMode: false, @@ -567,9 +566,7 @@ led_strip.initialize = function (callback, scrollPosition) { } function save_to_eeprom() { - mspHelper.writeConfiguration(function() { - gui_log(i18n.getMessage('ledStripEepromSaved')); - }); + mspHelper.writeConfiguration(false); } }); diff --git a/src/js/tabs/motors.js b/src/js/tabs/motors.js index dc146339d2..84c5143205 100644 --- a/src/js/tabs/motors.js +++ b/src/js/tabs/motors.js @@ -6,7 +6,6 @@ import MotorOutputReorderComponent from "../../components/MotorOutputReordering/ import EscDshotDirectionComponent from "../../components/EscDshotDirection/EscDshotDirectionComponent"; import DshotCommand from "../../js/utils/DshotCommand.js"; import { tracking } from "../Analytics"; -import { reinitializeConnection } from "../serial_backend"; import { bit_check } from "../bit"; import { mspHelper } from "../msp/MSPHelper"; import FC from "../fc"; @@ -15,7 +14,6 @@ import { mixerList } from "../model"; import MSPCodes from "../msp/MSPCodes"; import { API_VERSION_1_42, API_VERSION_1_44 } from "../data_storage"; import EscProtocols from "../utils/EscProtocols"; -import { gui_log } from "../gui_log"; import { updateTabList } from "../utils/updateTabList"; import { isInt, getMixerImageSrc } from "../utils/common"; import semver from 'semver'; @@ -1167,7 +1165,7 @@ motors.initialize = async function (callback) { self.analyticsChanges = {}; self.configHasChanged = false; - mspHelper.writeConfiguration(reboot); + mspHelper.writeConfiguration(true); }); $('a.stop').on('click', () => motorsEnableTestModeElement.prop('checked', false).trigger('change')); @@ -1188,11 +1186,6 @@ motors.initialize = async function (callback) { content_ready(); } - function reboot() { - gui_log(i18n.getMessage('configurationEepromSaved')); - MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection); - } - function showDialogMixerReset(message) { const dialogMixerReset = $('#dialog-mixer-reset')[0]; diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index aaff69d806..441a674502 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -1,7 +1,6 @@ import { i18n } from "../localization"; import GUI, { TABS } from '../gui'; import { tracking } from "../Analytics"; -import { reinitializeConnection } from "../serial_backend"; import { mspHelper } from "../msp/MSPHelper"; import FC from "../fc"; import MSP from "../msp"; @@ -58,18 +57,6 @@ onboard_logging.initialize = function (callback) { return gcd(b, a % b); } - function save_to_eeprom() { - mspHelper.writeConfiguration(reboot); - } - - function reboot() { - gui_log(i18n.getMessage('configurationEepromSaved')); - - GUI.tab_switch_cleanup(function() { - MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection); - }); - } - function load_html() { $('#content').load("./tabs/onboard_logging.html", function() { // translate to user-selected language @@ -142,7 +129,7 @@ onboard_logging.initialize = function (callback) { await MSP.promise(MSPCodes.MSP_SET_ADVANCED_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_ADVANCED_CONFIG)); } - save_to_eeprom(); + mspHelper.writeConfiguration(true); }); } diff --git a/src/js/tabs/power.js b/src/js/tabs/power.js index d468f717e6..b19727d909 100644 --- a/src/js/tabs/power.js +++ b/src/js/tabs/power.js @@ -5,7 +5,6 @@ import { mspHelper } from '../msp/MSPHelper'; import FC from '../fc'; import MSP from '../msp'; import MSPCodes from '../msp/MSPCodes'; -import { gui_log } from '../gui_log'; import jBox from 'jbox'; const power = { @@ -500,12 +499,10 @@ power.initialize = function (callback) { } function save_to_eeprom() { - mspHelper.writeConfiguration(save_completed); + mspHelper.writeConfiguration(false, save_completed); } function save_completed() { - gui_log(i18n.getMessage('configurationEepromSaved')); - TABS.power.initialize(); } diff --git a/src/js/tabs/receiver.js b/src/js/tabs/receiver.js index 21501e8389..ecdb2b4171 100644 --- a/src/js/tabs/receiver.js +++ b/src/js/tabs/receiver.js @@ -2,7 +2,6 @@ import { i18n } from "../localization"; import GUI, { TABS } from '../gui'; import { get as getConfig, set as setConfig } from '../ConfigStorage'; import { tracking } from "../Analytics"; -import { reinitializeConnection } from "../serial_backend"; import { bit_check } from "../bit"; import { mspHelper } from "../msp/MSPHelper"; import FC from "../fc"; @@ -520,16 +519,7 @@ receiver.initialize = function (callback) { } function save_to_eeprom() { - MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, reboot); - } - - function reboot() { - gui_log(i18n.getMessage('configurationEepromSaved')); - if (boot) { - GUI.tab_switch_cleanup(function() { - MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection); - }); - } + mspHelper.writeConfiguration(boot); } tracking.sendSaveAndChangeEvents(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, tab.analyticsChanges, 'receiver'); diff --git a/src/js/tabs/transponder.js b/src/js/tabs/transponder.js index ccedf61347..073d18ce35 100644 --- a/src/js/tabs/transponder.js +++ b/src/js/tabs/transponder.js @@ -1,6 +1,5 @@ import { i18n } from "../localization"; import GUI, { TABS } from '../gui'; -import { reinitializeConnection } from "../serial_backend"; import { mspHelper } from '../msp/MSPHelper'; import FC from "../fc"; import MSP from "../msp"; @@ -302,14 +301,7 @@ transponder.initialize = function(callback) { } function save_to_eeprom() { - MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function() { - gui_log(i18n.getMessage('transponderEepromSaved')); - if ( $(_this).hasClass('reboot') ) { - GUI.tab_switch_cleanup(function() { - MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection); - }); - } - }); + mspHelper.writeConfiguration($(_this).hasClass('reboot')); } if (FC.TRANSPONDER.provider !== "0" && FC.TRANSPONDER.data.length !== FC.TRANSPONDER.providers.find(function(provider) { diff --git a/src/js/tabs/vtx.js b/src/js/tabs/vtx.js index f9bed36891..7bc805a8cf 100644 --- a/src/js/tabs/vtx.js +++ b/src/js/tabs/vtx.js @@ -903,12 +903,10 @@ vtx.initialize = function (callback) { } function save_to_eeprom() { - mspHelper.writeConfiguration(save_completed); + mspHelper.writeConfiguration(false, save_completed); } function save_completed() { - gui_log(i18n.getMessage('configurationEepromSaved')); - TABS.vtx.vtxTableSavePending = false; const saveButton = $("#save_button"); From 99730ef531c906c3506c36c125ee2420090640b6 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Fri, 12 May 2023 21:44:01 +0200 Subject: [PATCH 092/393] Fix invalid version (#3449) --- src/js/serial_backend.js | 48 +++++++++++++++++++-------------- src/js/tabs/firmware_flasher.js | 22 ++++++++------- 2 files changed, 40 insertions(+), 30 deletions(-) diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index 2dcbc52cc2..deff37baf8 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -239,6 +239,26 @@ function setConnectionTimeout() { }, 10000); } +function abortConnection() { + GUI.timeout_remove('connecting'); // kill connecting timer + + GUI.connected_to = false; + GUI.connecting_to = false; + + tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'SerialPortFailed'); + + gui_log(i18n.getMessage('serialPortOpenFail')); + + $('div#connectbutton div.connect_state').text(i18n.getMessage('connect')); + $('div#connectbutton a.connect').removeClass('active'); + + // unlock port select & baud + $('div#port-picker #port, div#port-picker #baud, div#port-picker #delay').prop('disabled', false); + + // reset data + clicks = false; +} + function onOpen(openInfo) { if (openInfo) { CONFIGURATOR.virtualMode = false; @@ -275,12 +295,16 @@ function onOpen(openInfo) { console.log(`Requesting configuration data`); MSP.send_message(MSPCodes.MSP_API_VERSION, false, false, function () { - tracking.setFlightControllerData(tracking.DATA.API_VERSION, FC.CONFIG.apiVersion); + gui_log(i18n.getMessage('apiVersionReceived', FC.CONFIG.apiVersion)); - gui_log(i18n.getMessage('apiVersionReceived', [FC.CONFIG.apiVersion])); + if (FC.CONFIG.apiVersion.includes('null')) { + abortConnection(); + return; + } - if (semver.gte(FC.CONFIG.apiVersion, CONFIGURATOR.API_VERSION_ACCEPTED)) { + tracking.setFlightControllerData(tracking.DATA.API_VERSION, FC.CONFIG.apiVersion); + if (semver.gte(FC.CONFIG.apiVersion, CONFIGURATOR.API_VERSION_ACCEPTED)) { MSP.send_message(MSPCodes.MSP_FC_VARIANT, false, false, function () { tracking.setFlightControllerData(tracking.DATA.FIRMWARE_TYPE, FC.CONFIG.flightControllerIdentifier); if (FC.CONFIG.flightControllerIdentifier === 'BTFL') { @@ -329,12 +353,7 @@ function onOpen(openInfo) { } }); } else { - tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'SerialPortFailed'); - - console.log('Failed to open serial port'); - gui_log(i18n.getMessage('serialPortOpenFail')); - - abortConnect(); + abortConnection(); } } @@ -355,17 +374,6 @@ function onOpenVirtual() { updateTabList(FC.FEATURE_CONFIG.features); } -function abortConnect() { - $('div#connectbutton div.connect_state').text(i18n.getMessage('connect')); - $('div#connectbutton a.connect').removeClass('active'); - - // unlock port select & baud - $('div#port-picker #port, div#port-picker #baud, div#port-picker #delay').prop('disabled', false); - - // reset data - clicks = false; -} - function processCustomDefaults() { if (bit_check(FC.CONFIG.targetCapabilities, FC.TARGET_CAPABILITIES_FLAGS.SUPPORTS_CUSTOM_DEFAULTS) && bit_check(FC.CONFIG.targetCapabilities, FC.TARGET_CAPABILITIES_FLAGS.HAS_CUSTOM_DEFAULTS) && FC.CONFIG.configurationState === FC.CONFIGURATION_STATES.DEFAULTS_BARE) { const dialog = $('#dialogResetToCustomDefaults')[0]; diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index aa71656e31..4620037602 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -539,7 +539,11 @@ firmware_flasher.initialize = function (callback) { MSP.clearListeners(); } - function onClose() { + function onClose(success) { + if (!success) { + gui_log(i18n.getMessage('firmwareFlasherBoardVerificationFailed')); + } + serial.disconnect(onFinishClose); MSP.disconnect_cleanup(); } @@ -564,11 +568,10 @@ firmware_flasher.initialize = function (callback) { gui_log(i18n.getMessage(targetAvailable ? 'firmwareFlasherBoardVerificationSuccess' : 'firmwareFlasherBoardVerficationTargetNotAvailable', { boardName: board })); + onClose(true); } else { - gui_log(i18n.getMessage('firmwareFlasherBoardVerificationFail')); + onClose(false); } - - onClose(); } function getBoardInfo() { @@ -598,12 +601,11 @@ firmware_flasher.initialize = function (callback) { function detectBoard() { console.log(`Requesting board information`); MSP.send_message(MSPCodes.MSP_API_VERSION, false, false, () => { - if (!FC.CONFIG.apiVersion || FC.CONFIG.apiVersion === 'null.null.0') { - FC.CONFIG.apiVersion = '0.0.0'; - } - - if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_39)) { - onClose(); // not supported + if (!FC.CONFIG.apiVersion || FC.CONFIG.apiVersion.includes('null')) { + gui_log(i18n.getMessage('apiVersionReceived', FC.CONFIG.apiVersion)); + onClose(false); // not supported + } else if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_39)) { + onClose(false); // not supported } else { MSP.send_message(MSPCodes.MSP_UID, false, false, getBuildInfo); } From 9e99716558be51b648efdb7a6a64f1d9e0186c1d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 25 May 2023 00:35:35 +0200 Subject: [PATCH 093/393] Update translations (#3452) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 13 ++++--------- locales/da/messages.json | 15 +++++---------- locales/de/messages.json | 9 --------- locales/es/messages.json | 13 ++++--------- locales/eu/messages.json | 9 --------- locales/fr/messages.json | 9 --------- locales/gl/messages.json | 9 --------- locales/it/messages.json | 13 ++++--------- locales/ja/messages.json | 13 ++++--------- locales/ko/messages.json | 13 ++++--------- locales/nl/messages.json | 9 --------- locales/pl/messages.json | 13 ++++--------- locales/pt/messages.json | 13 ++++--------- locales/pt_BR/messages.json | 9 --------- locales/ru/messages.json | 9 --------- locales/zh_CN/messages.json | 9 --------- locales/zh_TW/messages.json | 9 --------- 17 files changed, 33 insertions(+), 154 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index faec432a0e..5e7e58a176 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -861,6 +861,10 @@ "message": "La detecció de caiguda està activa", "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipCALIBRATING": { + "message": "L'embarcació s'està calibrant", + "description": "Message that pops up to describe the CALIBRATING arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "El canal accelerador està massa alt", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -2181,9 +2185,6 @@ "auxiliaryButtonSave": { "message": "Desa" }, - "auxiliaryEepromSaved": { - "message": "EEPROM desada" - }, "auxiliaryAutoChannelSelect": { "message": "AUTO" }, @@ -2546,9 +2547,6 @@ "transponderDataInvalid": { "message": "Les dades del transponder són invalides" }, - "transponderEepromSaved": { - "message": "EEPROM desada" - }, "servosFirmwareUpgradeRequired": { "message": "Els servos requereixen un firmware >=1.10.0 i suport de la controladora." }, @@ -3485,9 +3483,6 @@ "message": "Neteja-ho tot", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM desada" - }, "ledStripVtxOverlay": { "message": "VTX (fa servir la frequència de l'VTX per a assignar el color)" }, diff --git a/locales/da/messages.json b/locales/da/messages.json index 3fb7cd0420..a0d04a0ce6 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -853,6 +853,10 @@ "message": "Nedstyrtet drone er aktiv", "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipCALIBRATING": { + "message": "Dronen kalibrerer sig i øjeblikket", + "description": "Message that pops up to describe the CALIBRATING arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Gas kanalværdi er for høj", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -2173,9 +2177,6 @@ "auxiliaryButtonSave": { "message": "Gem" }, - "auxiliaryEepromSaved": { - "message": "Konfiguration gemt i EEPROM" - }, "auxiliaryAutoChannelSelect": { "message": "AUTO" }, @@ -2194,7 +2195,7 @@ "description": "Help text to ANGLE mode" }, "auxiliaryHelpMode_HORIZON": { - "message": "Denne hybrid tilstand fungerer præcis som ANGLE tilstand med centreret krængror og højderor pind (dermed muliggør auto-nivelleret flyvning), når pind flyttes væk fra center position, går styring mere og mere mod ACRO tilstand", + "message": "Denne hybrid tilstand fungerer præcis som ANGLE tilstand med centreret krængror og højderor pind (dermed muliggør auto-nivelleret flyvning).
    Når pind flyttes væk fra center position, går styring mere og mere mod ACRO tilstand", "description": "Help text to HORIZON mode" }, "auxiliaryHelpMode_MAG": { @@ -2538,9 +2539,6 @@ "transponderDataInvalid": { "message": "Transponderdata er ugyldig" }, - "transponderEepromSaved": { - "message": "Konfiguration gemt i EEPROM" - }, "servosFirmwareUpgradeRequired": { "message": "Servoer kræver firmware version >= 1.10.0 og understøttelse af FC" }, @@ -3477,9 +3475,6 @@ "message": "Slet ALT", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "Konfiguration gemt i EEPROM" - }, "ledStripVtxOverlay": { "message": "VTX (bruger vtx-frekvens til at bestemme farve)" }, diff --git a/locales/de/messages.json b/locales/de/messages.json index 48dc9e1959..4cf5680a24 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -2152,9 +2152,6 @@ "auxiliaryButtonSave": { "message": "Speichern" }, - "auxiliaryEepromSaved": { - "message": "EEPROM gespeichert" - }, "auxiliaryAutoChannelSelect": { "message": "AUTO" }, @@ -2377,9 +2374,6 @@ "transponderDataInvalid": { "message": "Transponder Data ist ungültig" }, - "transponderEepromSaved": { - "message": "EEPROM gespeichert" - }, "servosFirmwareUpgradeRequired": { "message": "Servos brauchen Firmware >= 1.10.0 und Target Unterstützung" }, @@ -3310,9 +3304,6 @@ "message": "ALLES löschen", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM gespeichert" - }, "ledStripVtxOverlay": { "message": "Videosender (nutzt die Frequenz zur Farbzuweisung)" }, diff --git a/locales/es/messages.json b/locales/es/messages.json index fd617b4fbb..4cdfe6cd48 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -853,6 +853,10 @@ "message": "Detección de colisión activado", "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipCALIBRATING": { + "message": "La aeronave se está calibrando", + "description": "Message that pops up to describe the CALIBRATING arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "El canal del acelerador está demasiado alto", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -2173,9 +2177,6 @@ "auxiliaryButtonSave": { "message": "Guardar" }, - "auxiliaryEepromSaved": { - "message": "EEPROM guardada" - }, "auxiliaryAutoChannelSelect": { "message": "AUTO" }, @@ -2538,9 +2539,6 @@ "transponderDataInvalid": { "message": "Los datos del transpondedor no son válidos" }, - "transponderEepromSaved": { - "message": "EEPROM guardada" - }, "servosFirmwareUpgradeRequired": { "message": "Servos requieren firmware >= 1.10.0 y que la placa lo soporte." }, @@ -3477,9 +3475,6 @@ "message": "Bor. TODO", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM guardada" - }, "ledStripVtxOverlay": { "message": "VTX (usa la frecuencia VTX para asignar color)" }, diff --git a/locales/eu/messages.json b/locales/eu/messages.json index 8088086bec..bf44e2879c 100644 --- a/locales/eu/messages.json +++ b/locales/eu/messages.json @@ -1649,9 +1649,6 @@ "auxiliaryButtonSave": { "message": "Gorde" }, - "auxiliaryEepromSaved": { - "message": "EEPROM gorde" - }, "auxiliaryAutoChannelSelect": { "message": "AUTO" }, @@ -1868,9 +1865,6 @@ "transponderDataInvalid": { "message": "Transpondedore datuak baliogabeak dira" }, - "transponderEepromSaved": { - "message": "EEPROM gorde" - }, "servosFirmwareUpgradeRequired": { "message": "Serboek >=1.10.0. firmwarea eta kontroladoreak onartzea behar du." }, @@ -2560,9 +2554,6 @@ "message": "GUZTIA Garbitu", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM gorde" - }, "ledStripVtxOverlay": { "message": "VTX (vtx maiztasuna erabiltzen du kolorea esleitzeko)" }, diff --git a/locales/fr/messages.json b/locales/fr/messages.json index ac11b25b8b..8aa36d847f 100644 --- a/locales/fr/messages.json +++ b/locales/fr/messages.json @@ -2046,9 +2046,6 @@ "auxiliaryButtonSave": { "message": "Enregistrer" }, - "auxiliaryEepromSaved": { - "message": "EEPROM enregistrée" - }, "auxiliaryAutoChannelSelect": { "message": "AUTOMATIQUE" }, @@ -2271,9 +2268,6 @@ "transponderDataInvalid": { "message": "Les données du transpondeur sont invalides" }, - "transponderEepromSaved": { - "message": "EEPROM enregistrée" - }, "servosFirmwareUpgradeRequired": { "message": "Utiliser les servos nécessite un firmware >= 1.10.0. et une carte compatible." }, @@ -3198,9 +3192,6 @@ "message": "Tout effacer", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM sauvegardée" - }, "ledStripVtxOverlay": { "message": "VTX (couleur selon la fréquence vtx)" }, diff --git a/locales/gl/messages.json b/locales/gl/messages.json index 74c3d71cb2..fa914fcd8c 100644 --- a/locales/gl/messages.json +++ b/locales/gl/messages.json @@ -2127,9 +2127,6 @@ "auxiliaryButtonSave": { "message": "Gardar" }, - "auxiliaryEepromSaved": { - "message": "EEPROM gardada" - }, "auxiliaryAutoChannelSelect": { "message": "AUTO" }, @@ -2352,9 +2349,6 @@ "transponderDataInvalid": { "message": "Os datos do transpondedor non son válidos" }, - "transponderEepromSaved": { - "message": "EEPROM gardada" - }, "servosFirmwareUpgradeRequired": { "message": "O servos necesitan como mínimo o firmware >= 1.10.0. e soporte para esa placa." }, @@ -3285,9 +3279,6 @@ "message": "Borrar todo", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM gardada" - }, "ledStripVtxOverlay": { "message": "VTX (usa a frecuencia VTX para asinar a cor)" }, diff --git a/locales/it/messages.json b/locales/it/messages.json index ccd7b1a9c1..8887924e14 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -853,6 +853,10 @@ "message": "Rilevamento crash attivo", "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipCALIBRATING": { + "message": "Il modello è in calibrazione", + "description": "Message that pops up to describe the CALIBRATING arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Canale gas troppo alto", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -2173,9 +2177,6 @@ "auxiliaryButtonSave": { "message": "Salva" }, - "auxiliaryEepromSaved": { - "message": "EEPROM salvata" - }, "auxiliaryAutoChannelSelect": { "message": "AUTO" }, @@ -2538,9 +2539,6 @@ "transponderDataInvalid": { "message": "I dati del transponder non sono validi" }, - "transponderEepromSaved": { - "message": "EEPROM salvata" - }, "servosFirmwareUpgradeRequired": { "message": "I servi richiedono il firmware >= 1.10.0. ed il supporto del target." }, @@ -3477,9 +3475,6 @@ "message": "Cancella tutto", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM salvata" - }, "ledStripVtxOverlay": { "message": "VTX (usa la frequenza della VTX per assegnare il colore)" }, diff --git a/locales/ja/messages.json b/locales/ja/messages.json index cfff2cc750..d5714e66ed 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -853,6 +853,10 @@ "message": "クラッシュ検出が有効です", "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipCALIBRATING": { + "message": "機体は現在キャリブレーション中です", + "description": "Message that pops up to describe the CALIBRATING arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "スロットルチャンネルが高すぎます", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -2173,9 +2177,6 @@ "auxiliaryButtonSave": { "message": "保存" }, - "auxiliaryEepromSaved": { - "message": "EEPROM 保存しました" - }, "auxiliaryAutoChannelSelect": { "message": "自動" }, @@ -2538,9 +2539,6 @@ "transponderDataInvalid": { "message": "トランスポンダーデータが 無効です。" }, - "transponderEepromSaved": { - "message": "EEPROM 保存しました" - }, "servosFirmwareUpgradeRequired": { "message": "サーボの利用はBetaflight Configurator 1.10.0か、それ以上が必要であり、サポートするファームウェアが必要です。" }, @@ -3477,9 +3475,6 @@ "message": "全消去", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM 保存しました" - }, "ledStripVtxOverlay": { "message": "VTX (周波数毎にカラー割り当て)" }, diff --git a/locales/ko/messages.json b/locales/ko/messages.json index 46b581f211..b67d797bad 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -849,6 +849,10 @@ "message": "폭주이륙방지가 실행되고 있습니다", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipCALIBRATING": { + "message": "기체가 현재 캘리브레이션 중입니다", + "description": "Message that pops up to describe the CALIBRATING arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "스로틀이 너무 높습니다", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -2149,9 +2153,6 @@ "auxiliaryButtonSave": { "message": "저장" }, - "auxiliaryEepromSaved": { - "message": "EEPROM 저장됨" - }, "auxiliaryAutoChannelSelect": { "message": "자동" }, @@ -2490,9 +2491,6 @@ "transponderDataInvalid": { "message": "트랜스폰더 데이터가 유효하지 않음" }, - "transponderEepromSaved": { - "message": "EEPROM 저장됨" - }, "servosFirmwareUpgradeRequired": { "message": "서보는 펌웨어 >= 1.10.0.와 타겟 지원이 필요합니다." }, @@ -3429,9 +3427,6 @@ "message": "모두 지우기", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM 저장됨" - }, "ledStripVtxOverlay": { "message": "VTX (VTX 주파수를 사용하여 색상 지정)" }, diff --git a/locales/nl/messages.json b/locales/nl/messages.json index 51063dbe96..1c4eff82e1 100644 --- a/locales/nl/messages.json +++ b/locales/nl/messages.json @@ -1724,9 +1724,6 @@ "auxiliaryButtonSave": { "message": "Opslaan" }, - "auxiliaryEepromSaved": { - "message": "EEPROM opgeslagen" - }, "auxiliaryAutoChannelSelect": { "message": "AUTO" }, @@ -1943,9 +1940,6 @@ "transponderDataInvalid": { "message": "Transponder data is ongeldig" }, - "transponderEepromSaved": { - "message": "EEPROM opgeslagen" - }, "servosFirmwareUpgradeRequired": { "message": "Servos vereisen firmware >= 1.10.0. en doel ondersteuning." }, @@ -2749,9 +2743,6 @@ "message": "Wis alles", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM opgeslagen" - }, "ledStripVtxOverlay": { "message": "VTX (maakt gebruik van vtx frequentie om kleur toe te kennen)" }, diff --git a/locales/pl/messages.json b/locales/pl/messages.json index b76104dff1..a0818e1c5c 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -853,6 +853,10 @@ "message": "Wykrywanie awarii jest aktywne", "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipCALIBRATING": { + "message": "Jednostka jest obecnie w trakcie kalibracji", + "description": "Message that pops up to describe the CALIBRATING arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "Kanał przepustnicy ma zbyt wysoką wartość", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -2173,9 +2177,6 @@ "auxiliaryButtonSave": { "message": "Zapisz" }, - "auxiliaryEepromSaved": { - "message": "EEPROM zapisano" - }, "auxiliaryAutoChannelSelect": { "message": "AUTO" }, @@ -2538,9 +2539,6 @@ "transponderDataInvalid": { "message": "Dane transpondera są nieprawidłowe" }, - "transponderEepromSaved": { - "message": "EEPROM zapisana" - }, "servosFirmwareUpgradeRequired": { "message": "Serwomechanizmy wymagają oprogramowania wewnętrznego >= 1.10.0. 1.10.0. i wsparcia producenta." }, @@ -3477,9 +3475,6 @@ "message": "Wyczyść wszystko", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM zapisana" - }, "ledStripVtxOverlay": { "message": "VTX(użyj częstotliwości vtx do przypisania koloru)" }, diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 413f30686f..fea1138368 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -853,6 +853,10 @@ "message": "Deteção de colisão está ativa", "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipCALIBRATING": { + "message": "O aparelho está atualmente a calibrar", + "description": "Message that pops up to describe the CALIBRATING arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "O valor do canal do acelerador está muito alto", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -2173,9 +2177,6 @@ "auxiliaryButtonSave": { "message": "Gravar" }, - "auxiliaryEepromSaved": { - "message": "EEPROM gravar" - }, "auxiliaryAutoChannelSelect": { "message": "AUTO" }, @@ -2538,9 +2539,6 @@ "transponderDataInvalid": { "message": "Dados do transponder são inválidos" }, - "transponderEepromSaved": { - "message": "EEPROM gravada" - }, "servosFirmwareUpgradeRequired": { "message": "Servos requerem o firmware >= 1.10.0. e suporte do destino." }, @@ -3477,9 +3475,6 @@ "message": "Limpar TODOS", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM gravada" - }, "ledStripVtxOverlay": { "message": "VTX (usa a frequência do VTX para controlar a cor)" }, diff --git a/locales/pt_BR/messages.json b/locales/pt_BR/messages.json index 13aaced992..ad5f2b4666 100644 --- a/locales/pt_BR/messages.json +++ b/locales/pt_BR/messages.json @@ -2031,9 +2031,6 @@ "auxiliaryButtonSave": { "message": "Salvar" }, - "auxiliaryEepromSaved": { - "message": "EEPROM salvo" - }, "auxiliaryAutoChannelSelect": { "message": "AUTO" }, @@ -2256,9 +2253,6 @@ "transponderDataInvalid": { "message": "Dados do transponder são inválidos" }, - "transponderEepromSaved": { - "message": "EEPROM salvo" - }, "servosFirmwareUpgradeRequired": { "message": "Servos requerem o firmware >= 1.10.0. e suporte do destino." }, @@ -3174,9 +3168,6 @@ "message": "Limpar TODOS", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM salvo" - }, "ledStripVtxOverlay": { "message": "VTX (use a frequência do VTX para controlar a cor)" }, diff --git a/locales/ru/messages.json b/locales/ru/messages.json index e55781ae7f..67ae67d057 100644 --- a/locales/ru/messages.json +++ b/locales/ru/messages.json @@ -1763,9 +1763,6 @@ "auxiliaryButtonSave": { "message": "Сохранить" }, - "auxiliaryEepromSaved": { - "message": "EEPROM сохранён" - }, "auxiliaryAutoChannelSelect": { "message": "АВТО" }, @@ -1982,9 +1979,6 @@ "transponderDataInvalid": { "message": "Информация с транспондера не правильная" }, - "transponderEepromSaved": { - "message": "EEPROM сохранён" - }, "servosFirmwareUpgradeRequired": { "message": "Сервы требуют firmware >= 1.10.0. и целевую поддержку." }, @@ -2800,9 +2794,6 @@ "message": "Очистить ВСЕ", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM сохранён" - }, "ledStripVtxOverlay": { "message": "VTX (использует vtx частоты для присвоения цвета)" }, diff --git a/locales/zh_CN/messages.json b/locales/zh_CN/messages.json index 2376c4b7fd..11e6691f29 100644 --- a/locales/zh_CN/messages.json +++ b/locales/zh_CN/messages.json @@ -1958,9 +1958,6 @@ "auxiliaryButtonSave": { "message": "保存" }, - "auxiliaryEepromSaved": { - "message": "EEPROM 已保存" - }, "auxiliaryAutoChannelSelect": { "message": "自动" }, @@ -2177,9 +2174,6 @@ "transponderDataInvalid": { "message": "收发器数据无效" }, - "transponderEepromSaved": { - "message": "EEPROM 已保存" - }, "servosFirmwareUpgradeRequired": { "message": "舵机功能支持要求固件版本大于1.10.0 且飞控支持" }, @@ -3038,9 +3032,6 @@ "message": "全部清除", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM 已保存" - }, "ledStripVtxOverlay": { "message": "图传(颜色根据图传频率而变化)" }, diff --git a/locales/zh_TW/messages.json b/locales/zh_TW/messages.json index d4339bf489..a38c94938d 100644 --- a/locales/zh_TW/messages.json +++ b/locales/zh_TW/messages.json @@ -1628,9 +1628,6 @@ "auxiliaryButtonSave": { "message": "保存" }, - "auxiliaryEepromSaved": { - "message": "EEPROM 已保存" - }, "auxiliaryAutoChannelSelect": { "message": "自動" }, @@ -1847,9 +1844,6 @@ "transponderDataInvalid": { "message": "收發器數據 無效" }, - "transponderEepromSaved": { - "message": "EEPROM 已保存" - }, "servosFirmwareUpgradeRequired": { "message": "舵機功能要求固件版本大於1.10.0 且飛控支援" }, @@ -2497,9 +2491,6 @@ "message": "全部清除", "description": "In the LED STRIP, clear all leds" }, - "ledStripEepromSaved": { - "message": "EEPROM 已保存" - }, "ledStripVtxOverlay": { "message": "圖傳(顏色根據圖傳頻率而變化)" }, From a7ad57842b5552e259eed12937b272aa1b24f540 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 30 May 2023 00:23:21 +0200 Subject: [PATCH 094/393] Update translations (#3463) Co-authored-by: Crowdin Bot --- locales/it/messages.json | 4 ++-- locales/ko/messages.json | 48 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/locales/it/messages.json b/locales/it/messages.json index 8887924e14..862541cc64 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -38,7 +38,7 @@ "message": "La memoria di archiviazione non è pronta. In caso di scheda SD, assicurati che sia riconosciuta correttamente dal controllore di volo." }, "options_title": { - "message": "Opzioni applicazione" + "message": "Opzioni Applicazione" }, "connect": { "message": "Connetti" @@ -78,7 +78,7 @@ "message": "Invia" }, "autoConnectEnabled": { - "message": "Connessione automatica: Abilitata - Il configuratore proverà a connettersi automaticamente quando sarà rilevata una nuova porta" + "message": "Connessione automatica: Abilitata - Il configuratore si connette automaticamente quando rileva una nuova porta" }, "autoConnectDisabled": { "message": "Connessione automatica: Disabilitata - E' necessario selezionare la porta seriale e fare click su \"Connetti\"" diff --git a/locales/ko/messages.json b/locales/ko/messages.json index b67d797bad..addc31c0b0 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -849,6 +849,10 @@ "message": "폭주이륙방지가 실행되고 있습니다", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipCRASH_DETECTED": { + "message": "충돌 감지가 활성화되어 있습니다", + "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipCALIBRATING": { "message": "기체가 현재 캘리브레이션 중입니다", "description": "Message that pops up to describe the CALIBRATING arming disable flag" @@ -873,6 +877,10 @@ "message": "시스템 부하가 안전한 비행을 하기에 너무 높습니다", "description": "Message that pops up to describe the LOAD arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipACC_CALIBRATION": { + "message": "가속도계 교정이 여전히 진행 중입니다", + "description": "Message that pops up to describe the ACC_CALIBRATION arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI가 사용 중입니다", "description": "Message that pops up to describe the CLI arming disable flag" @@ -909,6 +917,22 @@ "message": "RPM-기반 필터링이 활성화되었지만 하나 이상의 ESC가 유효한 DSHOT 텔레메트리를 공급하지 않습니다. ESC가 양방향 DSHOT 텔레메트리를 공급하기 위해 필요한 펌웨어가 적용가능한지와 설치되었는지를 확인하십시요.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipREBOOT_REQUIRED": { + "message": "환경설정 변경은 재부팅을 필요로합니다.", + "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipDSHOT_BITBANG": { + "message": "비트뱅(Bitbang)된 DSHOT이 제대로 작동하지 않아 모터를 제어할 수 없습니다. 비행 컨트롤러에서 활성화된 다른 기능과의 타이머 충돌로 인해 발생할 수 있습니다.", + "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipNO_ACC_CALIBRATION": { + "message": "가속도계가 교정되지 않았으며 그에 의존하는 기능들이 활성화되어 있습니다. 가속도계를 교정하십시오.", + "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipMOTOR_PROTOCOL": { + "message": "선택된 모터 출력 프로토콜이 없습니다", + "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "다른 디스암 플래그 중 하나가 아밍시 활성화 중입니다", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" @@ -2218,6 +2242,10 @@ "message": "블랙박스 로깅 활성화", "description": "Help text to BLACKBOX mode" }, + "auxiliaryHelpMode_BLACKBOXERASE": { + "message": "블랙박스 로그 지우기", + "description": "Help text to BLACKBOX ERASE mode" + }, "auxiliaryHelpMode_AIRMODE": { "message": "표준 믹서/모드에서 롤, 피치 및 요가 계산되고 모터가 포화되면 모든 모터가 동일하게 감소합니다. 모터가 최저치 이하로 떨어지면 모터 출력이 잘립니다. 스로틀이 최저치를 약간 상회하고 빠른 롤을 당기려고 했다고 가정해 보십시오. 두 개의 모터가 더 이상 내려갈 수 없기 때문에 기본적으로 전력의 절반(PID 이득의 절반)을 얻을 수 있습니다. 입력에 하이 모터와 로우 모터 간의 차이가 100% 이상 필요한 경우 로우 모터가 잘리고 이득이 불균일하게 감소하여 모터 밸런스의 대칭이 깨집니다", "description": "Help text to AIRMODE mode" @@ -2238,6 +2266,22 @@ "message": "사용자 정의 카메라 제어 3를 사용하세요. 공급자 매뉴얼을 확인하세요", "description": "Help text to customized CAMERA CONTROL 3 mode" }, + "auxiliaryHelpMode_USER1": { + "message": "사용자 정의된 사용자1을 사용하세요. 공급자 매뉴얼을 확인하세요", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "사용자 정의된 사용자2를 사용하세요. 공급자 매뉴얼을 확인하세요", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "사용자 정의된 사용자3을 사용하세요. 공급자 매뉴얼을 확인하세요", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "사용자 정의된 사용자4를 사용하세요. 공급자 매뉴얼을 확인하세요", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "충돌 후 모터를 반대로 돌려 뒤집기 (디샷 요구됨)", "description": "Help text to FLIP OVER AFTER CRASH mode" @@ -2270,6 +2314,10 @@ "message": "레이스 스타트 지원 시스템", "description": "Help text to LAUNCH CONTROL mode" }, + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "스틱 명령 비활성/활성화", + "description": "Help text to STICK COMMANDS DISABLE mode" + }, "auxiliaryHelpMode_BEEPERMUTE": { "message": "경고, 상태 및 비퍼 모드를 포함한 비퍼음 비활성화/활성화", "description": "Help text to BEEPERMUTE mode" From f1d7a9b3568fe842e09ad28563c43085cee38efe Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Wed, 31 May 2023 23:09:04 +0200 Subject: [PATCH 095/393] Bump multipleSelect to 1.6.0 (#3465) * Bump to 1.6.0 * Update yarn.lock --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b42593052f..a379e574a8 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "lodash.debounce": "^4.0.8", "marked": "^4.1.1", "multicast-dns": "^7.2.5", - "multiple-select": "^1.5.2", + "multiple-select": "^1.6.0", "nw-vue-devtools-prebuilt": "^0.0.10", "select2": "^4.0.13", "semver-min": "^0.7.2", diff --git a/yarn.lock b/yarn.lock index 23a9b3e20a..b0ef58b61d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11102,10 +11102,10 @@ multipipe@^0.1.2: dependencies: duplexer2 "0.0.2" -multiple-select@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/multiple-select/-/multiple-select-1.5.2.tgz#a7290785fc10fa4b9f26d2a92937effc63648bc8" - integrity sha512-sTNNRrjnTtB1b1+HTKcjQ/mjWY7Gvigo9F3C/3oTQCTFEpYzwaRYFPRAOu2SogfA1hEfyJTXjyS1VAbanJMsmA== +multiple-select@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/multiple-select/-/multiple-select-1.6.0.tgz#7e2e7771f45671f014d15a662055c9ff72984a88" + integrity sha512-DnBvhl189r5NuLQa6bxsvl62ArMJVi7YDx7hjiW5ZX5agiZyiPZIzzanlsFtm4yLvR0KMwfG0TDrixJ8RNa8eg== murmur-32@^0.1.0: version "0.1.0" From 84a0d6b9d9b036ebee45367f6d0dddfef09ff0a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=ADguel=20=C3=81ngel=20Mulero=20Mart=C3=ADnez?= Date: Thu, 1 Jun 2023 01:02:21 +0200 Subject: [PATCH 096/393] Downgrade nw-builder to version 3.8.3 (#3462) Since version 3.8.4, nw-builder has a dependency with nw-install, that is not available at this moment. Downgrade to 3.8.3 since it is available again or we migrate to version 4.x.x. --- package.json | 2 +- yarn.lock | 548 ++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 473 insertions(+), 77 deletions(-) diff --git a/package.json b/package.json index a379e574a8..b6f91928c0 100644 --- a/package.json +++ b/package.json @@ -113,7 +113,7 @@ "gulp-yarn": "^3.0.0", "gulp-zip": "^5.1.0", "husky": "^4.3.0", - "nw-builder": "^3.8.6", + "nw-builder": "3.8.3", "os": "^0.1.2", "postcss": "^8.4.17", "rollup": "^3.9.0", diff --git a/yarn.lock b/yarn.lock index b0ef58b61d..f48ad3e6a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1806,6 +1806,27 @@ dependencies: deepmerge "^2.0.0" +"@pnpm/config.env-replace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" + integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== + +"@pnpm/network.ca-file@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" + integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== + dependencies: + graceful-fs "4.2.10" + +"@pnpm/npm-conf@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.0.tgz#221b4cfcde745d5f8928c25f391e5cc9d405b345" + integrity sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g== + dependencies: + "@pnpm/config.env-replace" "^1.1.0" + "@pnpm/network.ca-file" "^1.0.1" + config-chain "^1.1.11" + "@quanle94/innosetup@^6.0.2": version "6.0.2" resolved "https://registry.yarnpkg.com/@quanle94/innosetup/-/innosetup-6.0.2.tgz#b678b67240486302a08e3469151faca2c29f80ab" @@ -1859,6 +1880,11 @@ estree-walker "^2.0.2" picomatch "^2.3.1" +"@sindresorhus/is@^5.2.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.3.0.tgz#0ec9264cf54a527671d990eb874e030b55b70dcc" + integrity sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw== + "@storybook/addon-actions@6.5.12", "@storybook/addon-actions@^6.5.12": version "6.5.12" resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.5.12.tgz#9d2bf3bffa41cf4f92c7220c8f6e3a3f5da55019" @@ -2644,6 +2670,13 @@ vue-docgen-loader "^1.5.0" webpack ">=4.0.0 <6.0.0" +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== + dependencies: + defer-to-connect "^2.0.1" + "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -2760,6 +2793,11 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== +"@types/http-cache-semantics@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + "@types/is-function@^1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/is-function/-/is-function-1.0.1.tgz#2d024eace950c836d9e3335a66b97960ae41d022" @@ -3504,7 +3542,7 @@ align-text@^0.1.1, align-text@^0.1.3: longest "^1.0.1" repeat-string "^1.5.2" -ansi-align@^3.0.0: +ansi-align@^3.0.0, ansi-align@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== @@ -3565,6 +3603,11 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" @@ -3597,6 +3640,11 @@ ansi-styles@^4.1.0: "@types/color-name" "^1.1.1" color-convert "^2.0.1" +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + ansi-to-html@^0.6.11: version "0.6.15" resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.15.tgz#ac6ad4798a00f6aa045535d7f6a9cb9294eebea7" @@ -4346,6 +4394,20 @@ boxen@^5.1.2: widest-line "^3.1.0" wrap-ansi "^7.0.0" +boxen@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.0.tgz#ba10a9ef4e73a9e220105b5f8c07a56d359a4cb4" + integrity sha512-ScG8CDo8dj7McqCZ5hz4dIBp20xj4unQ2lXIDa7ff6RcZElCpuNzutdwzKVvRikfNjm7CFAlR3HJHcoHkDOExQ== + dependencies: + ansi-align "^3.0.1" + camelcase "^7.0.1" + chalk "^5.2.0" + cli-boxes "^3.0.0" + string-width "^5.1.2" + type-fest "^2.13.0" + widest-line "^4.0.1" + wrap-ansi "^8.1.0" + bplist-creator@~0.0.3: version "0.0.8" resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.8.tgz#56b2a6e79e9aec3fc33bf831d09347d73794e79c" @@ -4658,6 +4720,24 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^10.2.8: + version "10.2.10" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.10.tgz#1785984a9a4ddec8dd01792232cca474be49a8af" + integrity sha512-v6WB+Epm/qO4Hdlio/sfUn69r5Shgh39SsE9DSd4bIezP0mblOlObI+I0kUEM7J0JFc+I7pSeMeYaOYtX1N/VQ== + dependencies: + "@types/http-cache-semantics" "^4.0.1" + get-stream "^6.0.1" + http-cache-semantics "^4.1.1" + keyv "^4.5.2" + mimic-response "^4.0.0" + normalize-url "^8.0.0" + responselike "^3.0.0" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -4722,6 +4802,11 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== +camelcase@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" + integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== + caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001317: version "1.0.30001332" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" @@ -4840,6 +4925,11 @@ chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.0.1, chalk@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" @@ -4931,6 +5021,11 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^3.2.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -4973,6 +5068,11 @@ cli-boxes@^2.2.1: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== +cli-boxes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" + integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -4980,13 +5080,6 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-progress@3.11.2: - version "3.11.2" - resolved "https://registry.yarnpkg.com/cli-progress/-/cli-progress-3.11.2.tgz#f8c89bd157e74f3f2c43bcfb3505670b4d48fc77" - integrity sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA== - dependencies: - string-width "^4.2.3" - cli-table3@^0.6.1: version "0.6.2" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" @@ -5019,15 +5112,6 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - cliui@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" @@ -5238,7 +5322,7 @@ concat-stream@^1.5.0, concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -config-chain@^1.1.13: +config-chain@^1.1.11, config-chain@^1.1.13: version "1.1.13" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== @@ -5246,6 +5330,17 @@ config-chain@^1.1.13: ini "^1.3.4" proto-list "~1.2.1" +configstore@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" + integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== + dependencies: + dot-prop "^6.0.1" + graceful-fs "^4.2.6" + unique-string "^3.0.0" + write-file-atomic "^3.0.3" + xdg-basedir "^5.0.1" + console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -5598,6 +5693,13 @@ crypto-es@^1.2.7: resolved "https://registry.yarnpkg.com/crypto-es/-/crypto-es-1.2.7.tgz#754a6d52319a94fb4eb1f119297f17196b360f88" integrity sha512-UUqiVJ2gUuZFmbFsKmud3uuLcNP2+Opt+5ysmljycFCyhA0+T16XJmo1ev/t5kMChMqWh7IEvURNCqsg+SjZGQ== +crypto-random-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" + integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== + dependencies: + type-fest "^1.0.1" + css-loader@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" @@ -6036,6 +6138,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -6106,6 +6215,11 @@ default-resolution@^2.0.0: resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= +defer-to-connect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" @@ -6399,6 +6513,13 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + dotenv-expand@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" @@ -6463,6 +6584,11 @@ each-props@^1.3.2: is-plain-object "^2.0.1" object.defaults "^1.1.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -6526,6 +6652,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -6809,6 +6940,11 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escape-goat@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" + integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -7197,7 +7333,7 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@2.0.1: +extract-zip@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== @@ -7578,6 +7714,11 @@ fork-ts-checker-webpack-plugin@^6.0.4: semver "^7.3.2" tapable "^1.0.0" +form-data-encoder@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" + integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== + form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -7908,7 +8049,7 @@ get-stream@^5.2.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -8028,6 +8169,13 @@ glob@^8.0.3: minimatch "^5.0.1" once "^1.3.0" +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -8131,6 +8279,23 @@ glogg@^1.0.0: dependencies: sparkles "^1.0.0" +got@^12.1.0: + version "12.6.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" + integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^10.2.8" + decompress-response "^6.0.0" + form-data-encoder "^2.1.2" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + got@^6.3.0: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" @@ -8157,20 +8322,25 @@ graceful-fs-extra@^2.0.0: graceful-ncp "^3.0.0" proxyquire "^1.4.0" +graceful-fs@4.2.10, graceful-fs@^4.1.15, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.3: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== -graceful-fs@^4.1.15, graceful-fs@^4.2.4, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +graceful-fs@^4.2.6: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graceful-ncp@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/graceful-ncp/-/graceful-ncp-3.0.0.tgz#5805ea25585ef984cccaa8086a3c530ee4128a8a" - integrity sha1-WAXqJVhe+YTMyqgIajxTDuQSioo= + integrity sha512-G6QJTyxiW0lO0njYNx3572+d4BbsxvfayjndnP4cDTjQss+yK5f/p5+DjOBo1gk561ULfKo9nrdtSP6rQyQZJA== dependencies: graceful-fs "^4.1.4" ncp "^2.0.0" @@ -8487,6 +8657,11 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" +has-yarn@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" + integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== + has@^1.0.1, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -8672,7 +8847,7 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" -http-cache-semantics@^4.1.0: +http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== @@ -8715,6 +8890,14 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +http2-wrapper@^2.1.10: + version "2.2.0" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" + integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -8879,6 +9062,11 @@ import-fresh@^3.1.0: parent-module "^1.0.0" resolve-from "^4.0.0" +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + imul@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/imul/-/imul-1.0.1.tgz#9d5867161e8b3de96c2c38d5dc7cb102f35e2ac9" @@ -8939,6 +9127,11 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + ini@^1.3.4, ini@~1.3.0: version "1.3.7" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" @@ -9152,6 +9345,13 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + is-core-module@^2.2.0: version "2.5.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" @@ -9321,6 +9521,14 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + is-lambda@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" @@ -9362,6 +9570,11 @@ is-negative-zero@^2.0.2: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-npm@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" + integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== + is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -9386,6 +9599,11 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + is-object@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" @@ -9593,6 +9811,11 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +is-yarn-global@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" + integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -9898,6 +10121,11 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -10021,6 +10249,13 @@ just-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= +keyv@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" + integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== + dependencies: + json-buffer "3.0.1" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -10070,6 +10305,13 @@ last-run@^1.1.0: default-resolution "^2.0.0" es6-weak-map "^2.0.1" +latest-version@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" + integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== + dependencies: + package-json "^8.1.0" + lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" @@ -10469,6 +10711,11 @@ lowercase-keys@^1.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + lru-cache@^4.1.2, lru-cache@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -10871,6 +11118,16 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -11008,6 +11265,11 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mkdirp-classic@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + mkdirp@^0.5.1, mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -11403,6 +11665,11 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= +normalize-url@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" + integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== + now-and-later@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" @@ -11534,17 +11801,18 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -nw-builder@^3.8.6: - version "3.8.6" - resolved "https://registry.yarnpkg.com/nw-builder/-/nw-builder-3.8.6.tgz#1331633001a2ac1e81926d1cf7f1a9eec9dd6a67" - integrity sha512-PVdQDnsosKXNk1ZEiasE/OBUoCte0F+ghAEJC2brda4MiKhocAMHTerKiJiMUHgkPVVoEKGaGNyGOAdCa/5vdA== +nw-builder@3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/nw-builder/-/nw-builder-3.8.3.tgz#9a21f171b672e3b35c6da3fee97259dc3a5fe36f" + integrity sha512-IIzj9UIHx3Ct/VaElmqXF/CTRJcstmMydJ6NhGzpkwKOAuNzCE2iQ8ceGVRT8USZ36JjH/D289j7ZK4L0mtyWw== dependencies: archiver "^5.3.1" deprecate "^1.1.1" + extract-zip "^2.0.1" graceful-fs-extra "^2.0.0" + graceful-ncp "^3.0.0" inherits "^2.0.4" lodash "^4.17.21" - nw-install "^0.3.4" plist "^3.0.5" progress "^2.0.3" rcedit "^3.0.1" @@ -11553,21 +11821,13 @@ nw-builder@^3.8.6: rimraf "^3.0.2" semver "^7.3.7" simple-glob "^0.2.0" + tar-fs "^2.1.1" temp "^0.9.4" thenify "^3.3.1" + update-notifier "^6.0.2" winresourcer "^0.9.0" yargs "^17.5.1" -nw-install@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/nw-install/-/nw-install-0.3.4.tgz#242755bc124f4dc8829af0ed8c9d8c9bac72fd80" - integrity sha512-yx0wfMX5+CuTeyenjXIT9EzTi4Lv/tq5uVN+HorCkZDhDKbjsjztxtIbPD/8NoKXZWcxiqyphX/V8hk2OP642A== - dependencies: - cli-progress "3.11.2" - extract-zip "2.0.1" - tar "6.1.11" - yargs "17.5.1" - nw-vue-devtools-prebuilt@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/nw-vue-devtools-prebuilt/-/nw-vue-devtools-prebuilt-0.0.10.tgz#02c6286433178706db7084d18a663698cdbe3f56" @@ -11860,6 +12120,11 @@ p-all@^2.1.0: dependencies: p-map "^2.0.0" +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + p-event@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" @@ -11952,6 +12217,16 @@ p-try@^2.0.0, p-try@^2.1.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-json@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.0.tgz#2a22806f1ed7c786c8e6ff26cfe20003bf4c6850" + integrity sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg== + dependencies: + got "^12.1.0" + registry-auth-token "^5.0.1" + registry-url "^6.0.0" + semver "^7.3.7" + pacote@^11.1.11: version "11.3.5" resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.3.5.tgz#73cf1fc3772b533f575e39efa96c50be8c3dc9d2" @@ -12989,6 +13264,13 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +pupa@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" + integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== + dependencies: + escape-goat "^4.0.0" + q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -13021,6 +13303,11 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + ramda@^0.21.0: version "0.21.0" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" @@ -13072,7 +13359,7 @@ raw-loader@^4.0.2: loader-utils "^2.0.0" schema-utils "^3.0.0" -rc@^1.2.7: +rc@1.2.8, rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -13349,6 +13636,20 @@ regexpu-core@^5.0.1: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" +registry-auth-token@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" + integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== + dependencies: + "@pnpm/npm-conf" "^2.1.0" + +registry-url@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" + integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== + dependencies: + rc "1.2.8" + regjsgen@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" @@ -13558,6 +13859,11 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= +resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" @@ -13626,6 +13932,13 @@ resolve@~1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -13902,6 +14215,13 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= +semver-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" + integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== + dependencies: + semver "^7.3.5" + semver-greatest-satisfied-range@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" @@ -13951,9 +14271,9 @@ semver@^7.3.2: lru-cache "^6.0.0" semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + version "7.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== dependencies: lru-cache "^6.0.0" @@ -14505,6 +14825,15 @@ string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + "string.prototype.matchall@^4.0.0 || ^3.0.1": version "4.0.7" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" @@ -14628,6 +14957,13 @@ strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + strip-bom-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" @@ -14818,6 +15154,16 @@ tar-fs@^1.8.1: pump "^1.0.0" tar-stream "^1.1.2" +tar-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + tar-stream@^1.1.2: version "1.6.2" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" @@ -14831,7 +15177,7 @@ tar-stream@^1.1.2: to-buffer "^1.1.1" xtend "^4.0.0" -tar-stream@^2.2.0: +tar-stream@^2.1.4, tar-stream@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== @@ -14842,18 +15188,6 @@ tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@6.1.11, tar@^6.1.11: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - tar@^4: version "4.4.19" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" @@ -14879,6 +15213,18 @@ tar@^6.0.2, tar@^6.1.0: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^6.1.11: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + targz@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/targz/-/targz-1.0.1.tgz#8f76a523694cdedfbb5d60a4076ff6eeecc5398f" @@ -15337,6 +15683,16 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^1.0.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^2.13.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -15522,6 +15878,13 @@ unique-stream@^2.0.2: json-stable-stringify-without-jsonify "^1.0.1" through2-filter "^3.0.0" +unique-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" + integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== + dependencies: + crypto-random-string "^4.0.0" + unist-builder@2.0.3, unist-builder@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" @@ -15660,6 +16023,26 @@ update-browserslist-db@^1.0.9: escalade "^3.1.1" picocolors "^1.0.0" +update-notifier@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" + integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== + dependencies: + boxen "^7.0.0" + chalk "^5.0.1" + configstore "^6.0.0" + has-yarn "^3.0.0" + import-lazy "^4.0.0" + is-ci "^3.0.1" + is-installed-globally "^0.4.0" + is-npm "^6.0.0" + is-yarn-global "^0.4.0" + latest-version "^7.0.0" + pupa "^3.1.0" + semver "^7.3.7" + semver-diff "^4.0.0" + xdg-basedir "^5.1.0" + upper-case@^1.0.3: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" @@ -16357,6 +16740,13 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== + dependencies: + string-width "^5.0.1" + window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" @@ -16440,6 +16830,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -16481,6 +16880,11 @@ x-default-browser@^0.4.0: optionalDependencies: default-browser-id "^1.0.4" +xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" + integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== + xml-name-validator@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" @@ -16551,11 +16955,16 @@ yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@>=5.0.0-security.0, yargs-parser@^21.0.0: +yargs-parser@>=5.0.0-security.0: version "21.0.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs-parser@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.1.tgz#7ede329c1d8cdbbe209bd25cdb990e9b1ebbb394" @@ -16564,23 +16973,10 @@ yargs-parser@^5.0.0: camelcase "^3.0.0" object.assign "^4.1.0" -yargs@17.5.1: - version "17.5.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" - integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" - yargs@^17.5.1: - version "17.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c" - integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g== + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" escalade "^3.1.1" @@ -16588,7 +16984,7 @@ yargs@^17.5.1: require-directory "^2.1.1" string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^21.0.0" + yargs-parser "^21.1.1" yargs@^7.1.0: version "7.1.0" From af7f97bc5558f917969e047875d80b9e7cd9f52c Mon Sep 17 00:00:00 2001 From: J Blackman Date: Mon, 5 Jun 2023 19:49:04 +1000 Subject: [PATCH 097/393] Removing unused git_info section (#3467) --- src/css/tabs/firmware_flasher.less | 22 ---------------------- src/css/tabs/osd.less | 22 ---------------------- src/js/tabs/firmware_flasher.js | 3 --- src/tabs/firmware_flasher.html | 10 ---------- 4 files changed, 57 deletions(-) diff --git a/src/css/tabs/firmware_flasher.less b/src/css/tabs/firmware_flasher.less index e0511cc5fa..cb6641a7cc 100644 --- a/src/css/tabs/firmware_flasher.less +++ b/src/css/tabs/firmware_flasher.less @@ -166,28 +166,6 @@ } } } - .git_info { - display: none; - margin-bottom: 10px; - border: 1px solid var(--subtleAccent); - .title { - line-height: 20px; - text-align: center; - font-weight: bold; - color: white; - border-bottom: 1px solid var(--subtleAccent); - background-color: #3f4241; - } - p { - padding: 5px; - a { - font-weight: bold; - &:hover { - text-decoration: underline; - } - } - } - } .default_btn { margin: 1px 7px 0 0; width: fit-content; diff --git a/src/css/tabs/osd.less b/src/css/tabs/osd.less index 9777939183..ad117da697 100644 --- a/src/css/tabs/osd.less +++ b/src/css/tabs/osd.less @@ -110,28 +110,6 @@ padding: 5px; } } - .git_info { - display: none; - margin-bottom: 10px; - border: 1px solid var(--subtleAccent); - .title { - line-height: 20px; - text-align: center; - font-weight: bold; - color: white; - border-bottom: 1px solid var(--subtleAccent); - background-color: #3f4241; - } - p { - padding: 5px; - a { - font-weight: bold; - &:hover { - text-decoration: underline; - } - } - } - } .btn { .disabled { cursor: default; diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 4620037602..b352111486 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -407,7 +407,6 @@ firmware_flasher.initialize = function (callback) { self.flashingMessage(i18n.getMessage('firmwareFlasherLoadFirmwareFile'), self.FLASH_MESSAGE_TYPES.NEUTRAL) .flashProgress(0); - $('div.git_info').slideUp(); $('div.release_info').slideUp(); $('div.build_configuration').slideUp(); @@ -772,8 +771,6 @@ firmware_flasher.initialize = function (callback) { return; } - // hide github info (if it exists) - $('div.git_info').slideUp(); $('div.build_configuration').slideUp(); chrome.fileSystem.getDisplayPath(fileEntry, function (path) { diff --git a/src/tabs/firmware_flasher.html b/src/tabs/firmware_flasher.html index f2321c45b2..d5f1b1e283 100644 --- a/src/tabs/firmware_flasher.html +++ b/src/tabs/firmware_flasher.html @@ -138,16 +138,6 @@
    -
    -
    -

    - -
    -
    -
    - -

    -
    From 0e4224e006b94585a6b26c2c79611e1cd4432fcb Mon Sep 17 00:00:00 2001 From: J Blackman Date: Tue, 6 Jun 2023 09:06:35 +1000 Subject: [PATCH 098/393] Add sponsor tile to firmware flashing tab (#3468) * Add sponsor tile to firmware flashing tab * Adding sponsorship logos locally for efficiency (can still be disabled by API). * Small fixes to load content --- src/css/main.less | 6 + src/images/sponsors/dogcom.svg | 857 ++++++++++++++++++++++++++++ src/images/sponsors/hqprop.svg | 23 + src/images/sponsors/radiomaster.svg | 38 ++ src/js/BuildApi.js | 5 + src/js/tabs/firmware_flasher.js | 19 + src/tabs/firmware_flasher.html | 2 + 7 files changed, 950 insertions(+) create mode 100644 src/images/sponsors/dogcom.svg create mode 100644 src/images/sponsors/hqprop.svg create mode 100644 src/images/sponsors/radiomaster.svg diff --git a/src/css/main.less b/src/css/main.less index bad0c51028..87c4897305 100644 --- a/src/css/main.less +++ b/src/css/main.less @@ -1155,6 +1155,12 @@ dialog { font-weight: 300; margin-bottom: 15px; } +.tab_sponsor { + display: none; + height: 50px; + max-height: 50px; + margin: 0 auto 10px auto +} .note { background-color: #fff7cd; border: 1px solid #ffe55f; diff --git a/src/images/sponsors/dogcom.svg b/src/images/sponsors/dogcom.svg new file mode 100644 index 0000000000..304286f3c9 --- /dev/null +++ b/src/images/sponsors/dogcom.svg @@ -0,0 +1,857 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/sponsors/hqprop.svg b/src/images/sponsors/hqprop.svg new file mode 100644 index 0000000000..9c6074e23b --- /dev/null +++ b/src/images/sponsors/hqprop.svg @@ -0,0 +1,23 @@ + + + + + + + diff --git a/src/images/sponsors/radiomaster.svg b/src/images/sponsors/radiomaster.svg new file mode 100644 index 0000000000..b6bed10a5b --- /dev/null +++ b/src/images/sponsors/radiomaster.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/js/BuildApi.js b/src/js/BuildApi.js index cff0125f7d..ba40d941d3 100644 --- a/src/js/BuildApi.js +++ b/src/js/BuildApi.js @@ -170,4 +170,9 @@ export default class BuildApi { const url = `${this._url}/api/configurator/releases/${type}`; this.load(url, onSuccess, onFailure); } + + loadSponsorTile(onSuccess, onFailure) { + const url = `${this._url}/api/configurator/sponsors`; + this.load(url, onSuccess, onFailure); + } } diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index b352111486..aa97836e78 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -47,6 +47,23 @@ firmware_flasher.initialize = function (callback) { function onDocumentLoad() { + function loadSponsor() { + if (!navigator.onLine) { + return; + } + + self.releaseLoader.loadSponsorTile( + (content) => { + if (content) { + $('div.tab_sponsor').html(content); + $('div.tab_sponsor').show(); + } else { + $('div.tab_sponsor').hide(); + } + }, + ); + } + function parseHex(str, callback) { // parsing hex in different thread const worker = new Worker('./js/workers/hex_parser.js'); @@ -254,6 +271,8 @@ firmware_flasher.initialize = function (callback) { // translate to user-selected language i18n.localizePage(); + loadSponsor(); + buildType_e.change(function() { tracking.setFirmwareData(tracking.DATA.FIRMWARE_CHANNEL, $('option:selected', this).text()); diff --git a/src/tabs/firmware_flasher.html b/src/tabs/firmware_flasher.html index d5f1b1e283..acf8788e92 100644 --- a/src/tabs/firmware_flasher.html +++ b/src/tabs/firmware_flasher.html @@ -4,6 +4,8 @@
    +
    +
    From 494567086bb31685caa014eaaa8140ecc7518564 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 17:40:07 +0200 Subject: [PATCH 099/393] Bump vite from 4.0.4 to 4.0.5 (#3471) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.0.4 to 4.0.5. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.0.5/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.0.5/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 99 ++++++---------------------------------------------- 2 files changed, 11 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index b6f91928c0..acdce02e90 100644 --- a/package.json +++ b/package.json @@ -125,7 +125,7 @@ "temp": "^0.9.4", "through2": "^4.0.2", "vinyl-source-stream": "^2.0.0", - "vite": "^4.0.4", + "vite": "^4.0.5", "vitest": "^0.27.1", "vue-loader": "^15.9.8", "vue-template-compiler": "^2.7.10", diff --git a/yarn.lock b/yarn.lock index f48ad3e6a0..9f3a26ee49 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4892,7 +4892,7 @@ chalk@^1.0.0, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -9352,13 +9352,6 @@ is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" - integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== - dependencies: - has "^1.0.3" - is-core-module@^2.5.0: version "2.9.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" @@ -9366,13 +9359,6 @@ is-core-module@^2.5.0: dependencies: has "^1.0.3" -is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== - dependencies: - has "^1.0.3" - is-core-module@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" @@ -12419,7 +12405,7 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -12775,16 +12761,7 @@ postcss@^6.0.1: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.14: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^7.0.16, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: +postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: version "7.0.39" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== @@ -12792,25 +12769,7 @@ postcss@^7.0.16, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0 picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.1.10: - version "8.4.12" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.12.tgz#1e7de78733b28970fa4743f7da6f3763648b1905" - integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg== - dependencies: - nanoid "^3.3.1" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@^8.4.14, postcss@^8.4.17: - version "8.4.17" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.17.tgz#f87863ec7cd353f81f7ab2dec5d67d861bbb1be5" - integrity sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -postcss@^8.4.20: +postcss@^8.1.10, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.20: version "8.4.21" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== @@ -13894,31 +13853,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.4.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - -resolve@^1.14.2, resolve@^1.19.0, resolve@^1.3.2: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.15.1: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resolve@^1.22.1: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.19.0, resolve@^1.22.1, resolve@^1.3.2, resolve@^1.4.0: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -14025,20 +13960,13 @@ rollup-pluginutils@^2.8.2: dependencies: estree-walker "^0.6.1" -rollup@^3.7.0: +rollup@^3.7.0, rollup@^3.9.0: version "3.10.0" resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.10.0.tgz#6eb19196d8b3b375ca651cb78261faac48e24cd6" integrity sha512-JmRYz44NjC1MjVF2VKxc0M1a97vn+cDxeqWmnwyAF4FvpjK8YFdHpaqvQB+3IxCvX05vJxKZkoMDU8TShhmJVA== optionalDependencies: fsevents "~2.3.2" -rollup@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.9.0.tgz#0ff7ab7cd71ce3a6ab140c5cf661f2b35eb6aab8" - integrity sha512-nGGylpmblyjTpF4lEUPgmOw6OVxRvnI6Iuuh6Lz4O/X66cVOX1XJSsqP1YamxQ+mPuFE7qJxLFDSCk8rNv5dDw== - optionalDependencies: - fsevents "~2.3.2" - rpm-builder@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/rpm-builder/-/rpm-builder-1.2.1.tgz#94655088266ec213f474efec0a9d9034404d0331" @@ -15068,13 +14996,6 @@ supports-color@^5.3.0, supports-color@^5.4.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -16319,10 +16240,10 @@ vite-node@0.27.1: source-map-support "^0.5.21" vite "^3.0.0 || ^4.0.0" -"vite@^3.0.0 || ^4.0.0", vite@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.0.4.tgz#4612ce0b47bbb233a887a54a4ae0c6e240a0da31" - integrity sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw== +"vite@^3.0.0 || ^4.0.0", vite@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.0.5.tgz#634f0bd1edf8bb8468ed42a1c3fd938c67d2f94b" + integrity sha512-7m87RC+caiAxG+8j3jObveRLqaWA/neAdCat6JAZwMkSWqFHOvg8MYe5fAQxVBRAuKAQ1S6XDh3CBQuLNbY33w== dependencies: esbuild "^0.16.3" postcss "^8.4.20" From 655fb93d64bc3af0d4339275f7b1aaf12f7d1c9c Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 6 Jun 2023 23:06:09 +0200 Subject: [PATCH 100/393] use-select2 (#3470) --- src/css/tabs/onboard_logging.less | 3 +++ src/js/tabs/onboard_logging.js | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/css/tabs/onboard_logging.less b/src/css/tabs/onboard_logging.less index a4a9bda3a6..3807696268 100644 --- a/src/css/tabs/onboard_logging.less +++ b/src/css/tabs/onboard_logging.less @@ -225,6 +225,9 @@ line-height: 20px; } } + .blackboxDebugModeText { + margin-left: 7px !important; + } .sdcard { padding: 10px; float: left; diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index 441a674502..aacdf6156f 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -339,9 +339,10 @@ onboard_logging.initialize = function (callback) { } } - debugModeSelect.val(FC.PID_ADVANCED_CONFIG.debugMode); - debugModeSelect.sortSelect("NONE"); - + debugModeSelect + .val(FC.PID_ADVANCED_CONFIG.debugMode) + .select2() + .sortSelect("NONE"); } else { $('.blackboxDebugMode').hide(); } From 43f155836a033232c5454adf80ada3b86dea6b07 Mon Sep 17 00:00:00 2001 From: J Blackman Date: Wed, 7 Jun 2023 14:34:19 +1000 Subject: [PATCH 101/393] Updated Dogcom logo for better light mode support. (#3472) * Updated dogcom logo (for better light mode support). * Invertable class removed inadvertently * Missed `sponsor-img` class. * Use underscore to stay inline with current standard --- src/css/dark-theme.less | 3 + src/css/main.less | 3 + src/images/sponsors/dogcom.svg | 1605 +++++++++++++++----------------- 3 files changed, 759 insertions(+), 852 deletions(-) diff --git a/src/css/dark-theme.less b/src/css/dark-theme.less index fe30ba5e14..ee4e3de671 100644 --- a/src/css/dark-theme.less +++ b/src/css/dark-theme.less @@ -941,3 +941,6 @@ progress[value] { } } } +.invertable { + filter: invert(1) +} diff --git a/src/css/main.less b/src/css/main.less index 87c4897305..3b1b6f8ceb 100644 --- a/src/css/main.less +++ b/src/css/main.less @@ -1161,6 +1161,9 @@ dialog { max-height: 50px; margin: 0 auto 10px auto } +.img_sponsor { + height: 100% +} .note { background-color: #fff7cd; border: 1px solid #ffe55f; diff --git a/src/images/sponsors/dogcom.svg b/src/images/sponsors/dogcom.svg index 304286f3c9..0824d154c4 100644 --- a/src/images/sponsors/dogcom.svg +++ b/src/images/sponsors/dogcom.svg @@ -2,856 +2,757 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 991956cb297e3a402ec6645ccc4cc2ffa2abbb0f Mon Sep 17 00:00:00 2001 From: nerdCopter <56646290+nerdCopter@users.noreply.github.com> Date: Tue, 13 Jun 2023 12:40:01 -0500 Subject: [PATCH 102/393] fix language variable name firmwareFlasherBoardVerificationFail (#3481) --- src/js/tabs/firmware_flasher.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index aa97836e78..9fce958a4f 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -559,7 +559,7 @@ firmware_flasher.initialize = function (callback) { function onClose(success) { if (!success) { - gui_log(i18n.getMessage('firmwareFlasherBoardVerificationFailed')); + gui_log(i18n.getMessage('firmwareFlasherBoardVerificationFail')); } serial.disconnect(onFinishClose); From e36ecd9f872fb303377888e5bc30eda61af57451 Mon Sep 17 00:00:00 2001 From: J Blackman Date: Wed, 14 Jun 2023 08:45:21 +1000 Subject: [PATCH 103/393] Tabs to spaces in less files, and renaming logo files (cf to bf). (#3473) --- src/css/dark-theme.less | 1564 +++--- src/css/main.less | 4254 ++++++++--------- src/css/main_cordova.less | 170 +- src/css/select2_custom.less | 56 +- src/css/switchery_custom.less | 102 +- .../{cf_logo_black.svg => bf_logo_black.svg} | 2 +- .../{cf_logo_white.svg => bf_logo_white.svg} | 0 ...ttings_black.svg => bf_settings_black.svg} | 2 +- ...ttings_white.svg => bf_settings_white.svg} | 2 +- src/tabs/landing.html | 2 +- 10 files changed, 3077 insertions(+), 3077 deletions(-) rename src/images/{cf_logo_black.svg => bf_logo_black.svg} (99%) rename src/images/{cf_logo_white.svg => bf_logo_white.svg} (100%) rename src/images/{CF_settings_black.svg => bf_settings_black.svg} (98%) rename src/images/{CF_settings_white.svg => bf_settings_white.svg} (98%) diff --git a/src/css/dark-theme.less b/src/css/dark-theme.less index ee4e3de671..f0399b2aba 100644 --- a/src/css/dark-theme.less +++ b/src/css/dark-theme.less @@ -21,926 +21,926 @@ --accentBorder: #bf8606; } .background_paper { - background-image: url(../images/paper-dark.png); + background-image: url(../images/paper-dark.png); } body { - color: white; + color: white; } &::backdrop { - background-image: none; - background-color: rgba(0, 0, 0, 0.5); + background-image: none; + background-color: rgba(0, 0, 0, 0.5); } #options-window { - background-color: #393b3a; + background-color: #393b3a; } #content { - background-color: #393b3a; + background-color: #393b3a; } #content.logopen { - background-color: #393b3a; + background-color: #393b3a; } /* NOTE: need to think on how to load the dark theme with vue */ #status-bar { - background-color: #414443 !important; - >* { - ~* { - border-left: 1px solid #9c9c9c; - } - } + background-color: #414443 !important; + >* { + ~* { + border-left: 1px solid #9c9c9c; + } + } } dialog { - background-color: #3a3d3c; - color: white; - border: 1px solid #ffbb2a; + background-color: #3a3d3c; + color: white; + border: 1px solid #ffbb2a; } .note { - background-color: #4e4e4e; - color: white; + background-color: #4e4e4e; + color: white; } .content_toolbar { - background-color: #555857; - .btn { - a { - border: 1px solid #ffbb2a; - } - a.disabled { - border: 1px solid #ffbb2a; - } - } + background-color: #555857; + .btn { + a { + border: 1px solid #ffbb2a; + } + a.disabled { + border: 1px solid #ffbb2a; + } + } } .gui_box { - border: 1px solid #4d4d4d; - background-color: #393b3a; + border: 1px solid #4d4d4d; + background-color: #393b3a; } .gui_warning { - background: #393b3a; + background: #393b3a; } .gui_note { - background: #393b3a; - .gui_box_titlebar { - color: black; - } + background: #393b3a; + .gui_box_titlebar { + color: black; + } } .grey { - background-color: #414443; + background-color: #414443; } .gui_box_bottombar { - background-color: #393b3a; + background-color: #393b3a; } .fixed_band { - background-color: #393b3a; + background-color: #393b3a; } .default_btn { - a.disabled { - background-color: #393b3a; - border: 1px solid #ffbb2a; - } + a.disabled { + background-color: #393b3a; + border: 1px solid #ffbb2a; + } } .small { - a { - border: 1px solid #ffbb2a; - } + a { + border: 1px solid #ffbb2a; + } } .standard_input { - background: var(--boxBackground); - color: white; + background: var(--boxBackground); + color: white; } #quad-status_wrapper { - color: #393b3a; + color: #393b3a; } button { - border: 1px solid #ffbb2a; - background-color: #ffbb2a; - color: black; + border: 1px solid #ffbb2a; + background-color: #ffbb2a; + color: black; } .helpicon { - background-image: url(../images/icons/cf_icon_info_white.svg); - opacity: 0.3; + background-image: url(../images/icons/cf_icon_info_white.svg); + opacity: 0.3; } .cf { - .helpicon { - background-image: url(../images/icons/cf_icon_info_grey.svg); - opacity: 0.4; - &:hover { - background-image: url(../images/icons/cf_icon_info_grey.svg); - opacity: 1; - } - } + .helpicon { + background-image: url(../images/icons/cf_icon_info_grey.svg); + opacity: 0.4; + &:hover { + background-image: url(../images/icons/cf_icon_info_grey.svg); + opacity: 1; + } + } } .gui_box_titlebar { - .helpicon { - background-image: url(../images/icons/cf_icon_info_grey.svg); - } + .helpicon { + background-image: url(../images/icons/cf_icon_info_grey.svg); + } } .cf_table { - td { - border-style: solid; - } - tr { - &:last-child { - td { - border-style: unset; - } - } - } + td { + border-style: solid; + } + tr { + &:last-child { + td { + border-style: unset; + } + } + } } .noUi-pips { - color: var(--mutedText); + color: var(--mutedText); } .jBox-container { - background: #393b3a; - color: white; + background: #393b3a; + color: white; } .jBox-Modal { - .jBox-title { - background: #393b3a; - border-bottom: 1px solid #9c9c9c; - text-shadow: 0 1px 1px #ffffff; - color: white; - } + .jBox-title { + background: #393b3a; + border-bottom: 1px solid #9c9c9c; + text-shadow: 0 1px 1px #ffffff; + color: white; + } } .jBox-Confirm { - .jBox-title { - background: #393b3a; - border-bottom: 1px solid #9c9c9c; - text-shadow: 0 1px 1px #ffffff; - color: white; - } + .jBox-title { + background: #393b3a; + border-bottom: 1px solid #9c9c9c; + text-shadow: 0 1px 1px #ffffff; + color: white; + } } .jBox-pointer { - &:after { - background: #393b3a; - } + &:after { + background: #393b3a; + } } .tab-adjustments { - .adjustment { - &:nth-child(odd) { - background-color: #2f2f2f; - } - select { - background-color: #3a3a3a; - color: white; - } - } - .adjustments { - background-color: #393b3a; - td { - border-top: 1px solid #00000000; - border-bottom: 1px solid #00000000; - } - } + .adjustment { + &:nth-child(odd) { + background-color: #2f2f2f; + } + select { + background-color: #3a3a3a; + color: white; + } + } + .adjustments { + background-color: #393b3a; + td { + border-top: 1px solid #00000000; + border-bottom: 1px solid #00000000; + } + } } .tab-auxiliary { - .toolbox { - color: white; - } - .mode { - background-color: #393b3a; - .info { - background-color: #9e9e9e; - color: white; - } - } - .ranges { - border-bottom: 5px solid #8a8a8a; - background-color: #676767; - } - .range { - background-color: #484848; - .channel { - background-color: #3a3a3a; - color: white; - } - } - .link { - background-color: #484848; - } - .buttons { - a { - background-color: #333333; - color: white; - &:hover { - background-color: var(--hoverButton-background); - } - } - } + .toolbox { + color: white; + } + .mode { + background-color: #393b3a; + .info { + background-color: #9e9e9e; + color: white; + } + } + .ranges { + border-bottom: 5px solid #8a8a8a; + background-color: #676767; + } + .range { + background-color: #484848; + .channel { + background-color: #3a3a3a; + color: white; + } + } + .link { + background-color: #484848; + } + .buttons { + a { + background-color: #333333; + color: white; + &:hover { + background-color: var(--hoverButton-background); + } + } + } } .logic { - background-color: #3a3a3a; - color: white; + background-color: #3a3a3a; + color: white; } .linkedTo { - background-color: #3a3a3a; - color: white; + background-color: #3a3a3a; + color: white; } .tab-cli { - textarea[name='commands'] { - &::placeholder { - color: silver; - } - background: black; - color: white; - } + textarea[name='commands'] { + &::placeholder { + color: silver; + } + background: black; + color: white; + } } .cli-textcomplete-dropdown { - background-color: #393b3a; - a { - color: white; - } - .active { - background-color: var(--quietHeader); - } + background-color: #393b3a; + a { + color: white; + } + .active { + background-color: var(--quietHeader); + } } .tab-configuration { - .gui_box { - span { - color: white; - } - } - input { - background-color: #3a3a3a; - color: white; - } - select { - background-color: #3a3a3a; - color: white; - } + .gui_box { + span { + color: white; + } + } + input { + background-color: #3a3a3a; + color: white; + } + select { + background-color: #3a3a3a; + color: white; + } } .tab-failsafe { - .number { - input { - background-color: #3a3a3a; - color: white; - &:disabled { - background-color: #393b3a; - color: grey; - } - } - } - .radioarea { - background-color: #393b3a; - } - .gui_box { - span { - color: white; - } - } - .stage1 { - select { - background-color: #3a3a3a; - color: white; - } - } - .modename { - background-color: #393b3a; - } - .switchMode { - background-color: #3a3a3a; - color: white; - } - .pro1 { - background-image: url(../images/icons/cf_failsafe_procedure1-dark.svg); - } - .pro2 { - background-image: url(../images/icons/cf_failsafe_procedure2-dark.svg); - } - .pro4 { - background-image: url(../images/icons/cf_failsafe_procedure4-dark.svg); - } + .number { + input { + background-color: #3a3a3a; + color: white; + &:disabled { + background-color: #393b3a; + color: grey; + } + } + } + .radioarea { + background-color: #393b3a; + } + .gui_box { + span { + color: white; + } + } + .stage1 { + select { + background-color: #3a3a3a; + color: white; + } + } + .modename { + background-color: #393b3a; + } + .switchMode { + background-color: #3a3a3a; + color: white; + } + .pro1 { + background-image: url(../images/icons/cf_failsafe_procedure1-dark.svg); + } + .pro2 { + background-image: url(../images/icons/cf_failsafe_procedure2-dark.svg); + } + .pro4 { + background-image: url(../images/icons/cf_failsafe_procedure4-dark.svg); + } } .btn { - .disabled { - background-color: #393b3a; - } + .disabled { + background-color: #393b3a; + } } .tab-firmware_flasher { - .build_configuration { - .select2 { - color: #424242; - .selection { - .select2-selection { - background-color: #575757; - } - } - } - input { - background-color: #3a3a3a; - color: white; - } - select { - background-color: #424242; - color: white; - } - } - .options { - select { - background-color: #3a3a3a; - color: white; - } - .description { - color: #b9b9b9; - } - .manual_baud_rate { - select { - background-color: #3a3a3a; - color: white; - } - } - } - .release_info { - .target { - color: white; - } - .buildProgress { - border: 1px solid var(--subtleAccent); - border-radius: 2px; - } - } - .cf_table { - td { - border-bottom: solid 1px #4f4f4f; - } - } + .build_configuration { + .select2 { + color: #424242; + .selection { + .select2-selection { + background-color: #575757; + } + } + } + input { + background-color: #3a3a3a; + color: white; + } + select { + background-color: #424242; + color: white; + } + } + .options { + select { + background-color: #3a3a3a; + color: white; + } + .description { + color: #b9b9b9; + } + .manual_baud_rate { + select { + background-color: #3a3a3a; + color: white; + } + } + } + .release_info { + .target { + color: white; + } + .buildProgress { + border: 1px solid var(--subtleAccent); + border-radius: 2px; + } + } + .cf_table { + td { + border-bottom: solid 1px #4f4f4f; + } + } } .tab-gps { - .GPS_info { - .head { - background-color: #393b3a; - } - } - .GPS_signal_strength { - .head { - background-color: #393b3a; - } - } - #loadmap { - .controls { - background-color: #393b3a; - a { - background-color: #393b3a; - &:hover { - background-color: var(--hoverButton-background); - } - &:active { - background-color: #393b3a; - } - } - } - } + .GPS_info { + .head { + background-color: #393b3a; + } + } + .GPS_signal_strength { + .head { + background-color: #393b3a; + } + } + #loadmap { + .controls { + background-color: #393b3a; + a { + background-color: #393b3a; + &:hover { + background-color: var(--hoverButton-background); + } + &:active { + background-color: #393b3a; + } + } + } + } } progress[value] { - &::-webkit-progress-bar { - background-color: #393b3a; - } + &::-webkit-progress-bar { + background-color: #393b3a; + } } .tab-landing { - .content_top { - background-color: #00000000; - } - .content_mid { - background-color: #3e3e3e; - .text3 { - .wrap2 { - background: #5f5f5f; - } - } - } - .logowrapper { - img { - content: url(../images/cf_logo_black.svg); - } - } + .content_top { + background-color: #00000000; + } + .content_mid { + background-color: #3e3e3e; + .text3 { + .wrap2 { + background: #5f5f5f; + } + } + } + .logowrapper { + img { + content: url(../images/bf_logo_black.svg); + } + } } .tab-led-strip { - .section { - color: #c4c4c4; - } - .mainGrid { - background-color: #4e4e4e; - } - button { - background-color: #6b6b6b; - color: white; - &:hover { - border: 1px solid #ffffff; - background-color: #393b3a; - } - } - .gridSections { - border: none; - .block { - border: none; - } - } + .section { + color: #c4c4c4; + } + .mainGrid { + background-color: #4e4e4e; + } + button { + background-color: #6b6b6b; + color: white; + &:hover { + border: 1px solid #ffffff; + background-color: #393b3a; + } + } + .gridSections { + border: none; + .block { + border: none; + } + } } .tab-logging { - .speed { - background-color: #3a3a3a; - color: white; - } + .speed { + background-color: #3a3a3a; + color: white; + } } .tab-motors { - .gui_box { - span { - color: white; - } - } - input { - background-color: #3a3a3a; - color: white; - } - select { - background-color: #3a3a3a; - color: white; - } - .plot_control { - background-color: #393b3a; - select { - background-color: #3a3a3a; - color: white; - } - } - .motorblock { - background-color: #393b3a; - } - .m-block { - background-color: #393b3a; - .label { - color: white; - } - .meter-bar { - background-color: #393b3a; - } - } - .motor_testing { - .notice { - background-color: #4e4e4e; - } - } - text { - fill: white; - } + .gui_box { + span { + color: white; + } + } + input { + background-color: #3a3a3a; + color: white; + } + select { + background-color: #3a3a3a; + color: white; + } + .plot_control { + background-color: #393b3a; + select { + background-color: #3a3a3a; + color: white; + } + } + .motorblock { + background-color: #393b3a; + } + .m-block { + background-color: #393b3a; + .label { + color: white; + } + .meter-bar { + background-color: #393b3a; + } + } + .motor_testing { + .notice { + background-color: #4e4e4e; + } + } + text { + fill: white; + } } .tab-onboard_logging { - .regular-button.disabled { - background-color: #393b3a; - } - .dataflash-contents { - background-color: #393b3a; - } - .sdcard-contents { - background-color: #393b3a; - } - .dataflash-used { - background-color: #848484; - } - .sdcard-other { - background-color: #848484; - } - progress { - &::-webkit-progress-bar { - background-color: #393b3a; - } - } - .blackboxRate { - select { - background-color: #3a3a3a; - color: white; - } - } - .blackboxDebugMode { - select { - background-color: #3a3a3a; - color: white; - } - } - .blackboxDevice { - select { - background-color: #3a3a3a; - color: white; - } - } - .sdcard-icon { - background-color: #393b3a; - } + .regular-button.disabled { + background-color: #393b3a; + } + .dataflash-contents { + background-color: #393b3a; + } + .sdcard-contents { + background-color: #393b3a; + } + .dataflash-used { + background-color: #848484; + } + .sdcard-other { + background-color: #848484; + } + progress { + &::-webkit-progress-bar { + background-color: #393b3a; + } + } + .blackboxRate { + select { + background-color: #3a3a3a; + color: white; + } + } + .blackboxDebugMode { + select { + background-color: #3a3a3a; + color: white; + } + } + .blackboxDevice { + select { + background-color: #3a3a3a; + color: white; + } + } + .sdcard-icon { + background-color: #393b3a; + } } .tab-osd { - .display-layout { - input.position { - border-bottom: 1px solid red; - } - } - .preview { - background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), url(../images/osd-bg-1.jpg); - background-size: cover; - } - input[type='checkbox'] { - &:after { - line-height: 1.5em; - content: none; - display: inline-block; - width: 12px; - height: 12px; - margin-top: -1px; - margin-left: -1px; - border: 1px solid #404040; - border-radius: 0.25em; - background: #4d4d4d; - } - &:checked { - &:after { - background: #ffbb00; - border: 1px solid #404040; - } - } - } + .display-layout { + input.position { + border-bottom: 1px solid red; + } + } + .preview { + background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), url(../images/osd-bg-1.jpg); + background-size: cover; + } + input[type='checkbox'] { + &:after { + line-height: 1.5em; + content: none; + display: inline-block; + width: 12px; + height: 12px; + margin-top: -1px; + margin-left: -1px; + border: 1px solid #404040; + border-radius: 0.25em; + background: #4d4d4d; + } + &:checked { + &:after { + background: #ffbb00; + border: 1px solid #404040; + } + } + } } .tab-pid_tuning { - .profile { - .helpicon { - background-image: url(../images/icons/cf_icon_info_grey.svg); - opacity: 0.4; - &:hover { - opacity: 1; - } - } - select { - background-color: #3a3a3a; - color: white; - } - } - .rate_profile { - .helpicon { - background-image: url(../images/icons/cf_icon_info_grey.svg); - opacity: 0.4; - &:hover { - opacity: 1; - } - } - select { - background-color: #3a3a3a; - color: white; - } - } - .pid_titlebar { - .helpicon { - background-image: url(../images/icons/cf_icon_info_grey.svg); - opacity: 0.4; - &:hover { - opacity: 1; - } - } - .wide_header { - border-top-left-radius: 3px; - border-top-right-radius: 3px; - } - } - .throttle_limit { - th { - background-color: #393b3a; - border-bottom: 1px solid #5e5e5e; - } - } - .cf { - tr { - background-color: #414443; - } - th { - background-color: var(--quietHeader); - color: white; - } - input { - background-color: #3a3a3a; - color: white; - &:disabled { - color: rgb(105, 105, 105); - background-color: #2d2d2d; - } - } - select { - background-color: #3a3a3a; - color: white; - &:disabled { - color: rgb(105, 105, 105); - background-color: #2d2d2d; - } - } - .rates_logo_bg { - background-color: #ffffff33; - } - } - table.compensation { - .suboption { - select { - background-color: #3a3a3a; - color: white; - } - } - tr { - border-bottom: 1px solid #6b6b6b; - } - } - table { - input { - background-color: #3a3a3a; - color: white; - } - select { - text-align-last: right; - background-color: #3a3a3a; - color: white; - } - } - .tab-container { - >div { - background-color: #535655; - border-right: 1px solid #393b3a; - } - } - .number { - input { - background-color: #3a3a3a; - color: white; - } - } - .gui_box { - span { - color: white; - } - } - .bottomarea { - background-color: #393b3a; - } - .regular-button.disabled { - background-color: #393b3a; - } - .sliderLabels { - th { - background: #414443; - color: white; - } - } - input { - &:disabled { - color: rgb(105, 105, 105); - background-color: #2d2d2d; - } - } - select { - &:disabled { - color: rgb(105, 105, 105); - background-color: #2d2d2d; - } - } - .slidersWarning { - background: #542415; - } + .profile { + .helpicon { + background-image: url(../images/icons/cf_icon_info_grey.svg); + opacity: 0.4; + &:hover { + opacity: 1; + } + } + select { + background-color: #3a3a3a; + color: white; + } + } + .rate_profile { + .helpicon { + background-image: url(../images/icons/cf_icon_info_grey.svg); + opacity: 0.4; + &:hover { + opacity: 1; + } + } + select { + background-color: #3a3a3a; + color: white; + } + } + .pid_titlebar { + .helpicon { + background-image: url(../images/icons/cf_icon_info_grey.svg); + opacity: 0.4; + &:hover { + opacity: 1; + } + } + .wide_header { + border-top-left-radius: 3px; + border-top-right-radius: 3px; + } + } + .throttle_limit { + th { + background-color: #393b3a; + border-bottom: 1px solid #5e5e5e; + } + } + .cf { + tr { + background-color: #414443; + } + th { + background-color: var(--quietHeader); + color: white; + } + input { + background-color: #3a3a3a; + color: white; + &:disabled { + color: rgb(105, 105, 105); + background-color: #2d2d2d; + } + } + select { + background-color: #3a3a3a; + color: white; + &:disabled { + color: rgb(105, 105, 105); + background-color: #2d2d2d; + } + } + .rates_logo_bg { + background-color: #ffffff33; + } + } + table.compensation { + .suboption { + select { + background-color: #3a3a3a; + color: white; + } + } + tr { + border-bottom: 1px solid #6b6b6b; + } + } + table { + input { + background-color: #3a3a3a; + color: white; + } + select { + text-align-last: right; + background-color: #3a3a3a; + color: white; + } + } + .tab-container { + >div { + background-color: #535655; + border-right: 1px solid #393b3a; + } + } + .number { + input { + background-color: #3a3a3a; + color: white; + } + } + .gui_box { + span { + color: white; + } + } + .bottomarea { + background-color: #393b3a; + } + .regular-button.disabled { + background-color: #393b3a; + } + .sliderLabels { + th { + background: #414443; + color: white; + } + } + input { + &:disabled { + color: rgb(105, 105, 105); + background-color: #2d2d2d; + } + } + select { + &:disabled { + color: rgb(105, 105, 105); + background-color: #2d2d2d; + } + } + .slidersWarning { + background: #542415; + } } .inputBackground { - background-color: #3a3a3a; - color: white; + background-color: #3a3a3a; + color: white; } .fancy.header { - background-color: #393b3a; + background-color: #393b3a; } .pid_roll { - background-color: #A00000; + background-color: #A00000; } .pid_pitch { - background-color: #00A000; + background-color: #00A000; } .pid_yaw { - background-color: #0000A0; + background-color: #0000A0; } .pid_mode { - background-color: #3c3c3c; - border-bottom: 1px solid #3c3c3c; - color: white; + background-color: #3c3c3c; + border-bottom: 1px solid #3c3c3c; + color: white; } .pid_titlebar { - background-color: #393b3a; + background-color: #393b3a; } .tabarea { - background: #393b3a; + background: #393b3a; } .tab-ports { - table { - td { - &:first-child { - border-left: none; - } - &:last-child { - border-right: none; - } - border-bottom: 1px solid #575757; - border-left: 1px solid #575757; - border-right: 1px solid #575757; - } - } - .ports { - tr { - &:last-child { - border-bottom: none; - td { - border-bottom: none; - } - } - } - } + table { + td { + &:first-child { + border-left: none; + } + &:last-child { + border-right: none; + } + border-bottom: 1px solid #575757; + border-left: 1px solid #575757; + border-right: 1px solid #575757; + } + } + .ports { + tr { + &:last-child { + border-bottom: none; + td { + border-bottom: none; + } + } + } + } } .tab-power { - .number { - input { - background-color: #3a3a3a; - color: white; - } - } - .battery-configuration { - select { - background-color: #3a3a3a; - color: white; - } - } + .number { + input { + background-color: #3a3a3a; + color: white; + } + } + .battery-configuration { + select { + background-color: #3a3a3a; + color: white; + } + } } .tab-receiver { - .gui_box { - span { - color: white; - } - } - input { - background-color: #3a3a3a; - color: white; - } - select { - background-color: #3a3a3a; - color: white; - } - .bars { - .meter-bar { - background-color: #393b3a; - .label { - color: white; - } - } - } - .tunings { - background-color: #393b3a; - table { - td { - background: #414443; - } - tr { - &:nth-child(odd) { - background-color: #393b3a; - } - } - input { - background-color: #3a3a3a; - color: white; - } - } - } - .rssi_channel_wrapper { - background-color: #414443; - border-bottom: 1px solid #4d4d4d; - border-right: 1px solid #4d4d4d; - } - .rcmap_wrapper { - background-color: #414443; - border-left: 1px solid #4d4d4d; - border-bottom: 1px solid #4d4d4d; - } - .hybrid_element { - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; - input { - background-color: #3a3a3a; - color: white; - } - } - .plot_control { - background-color: #2f2f2f; - } - text { - fill: white; - } + .gui_box { + span { + color: white; + } + } + input { + background-color: #3a3a3a; + color: white; + } + select { + background-color: #3a3a3a; + color: white; + } + .bars { + .meter-bar { + background-color: #393b3a; + .label { + color: white; + } + } + } + .tunings { + background-color: #393b3a; + table { + td { + background: #414443; + } + tr { + &:nth-child(odd) { + background-color: #393b3a; + } + } + input { + background-color: #3a3a3a; + color: white; + } + } + } + .rssi_channel_wrapper { + background-color: #414443; + border-bottom: 1px solid #4d4d4d; + border-right: 1px solid #4d4d4d; + } + .rcmap_wrapper { + background-color: #414443; + border-left: 1px solid #4d4d4d; + border-bottom: 1px solid #4d4d4d; + } + .hybrid_element { + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + input { + background-color: #3a3a3a; + color: white; + } + } + .plot_control { + background-color: #2f2f2f; + } + text { + fill: white; + } } .tab-sensors { - .plot_control { - background-color: #2f2f2f; - select { - background-color: #3a3a3a; - color: white; - } - } - text { - fill: white; - } + .plot_control { + background-color: #2f2f2f; + select { + background-color: #3a3a3a; + color: white; + } + } + text { + fill: white; + } } .tab-servos { - table { - th { - background: #828885; - } - tr { - &:nth-child(even) { - background-color: #2f2f2f; - } - } - .main { - background-color: #393b3a; - } - input[type="number"] { - background-color: #3a3a3a; - color: white; - } - } - .direction { - .rate { - background-color: #3a3a3a; - color: white; - } - } - .servoblock { - background-color: #393b3a; - color: white; - } - .m-block { - .label { - color: white; - } - .meter-bar { - background-color: #393b3a; - } - } + table { + th { + background: #828885; + } + tr { + &:nth-child(even) { + background-color: #2f2f2f; + } + } + .main { + background-color: #393b3a; + } + input[type="number"] { + background-color: #3a3a3a; + color: white; + } + } + .direction { + .rate { + background-color: #3a3a3a; + color: white; + } + } + .servoblock { + background-color: #393b3a; + color: white; + } + .m-block { + .label { + color: white; + } + .meter-bar { + background-color: #393b3a; + } + } } .tab-setup { - #interactive_block { - background-color: #393b3a; - a.reset { - color: white; - background-color: #575757; - &:hover { - background-color: #393b3a; - } - } - } - .attitude_info { - color: white; - } + #interactive_block { + background-color: #393b3a; + a.reset { + color: white; + background-color: #575757; + &:hover { + background-color: #393b3a; + } + } + } + .attitude_info { + color: white; + } } .tab-transponder { - .text { - .disabled { - background-color: #393b3a; - } - } - .gui_box { - span { - color: white; - } - } + .text { + .disabled { + background-color: #393b3a; + } + } + .gui_box { + span { + color: white; + } + } } .select2-container { - .select2-selection--single { - .select2-selection__rendered { - background-color: #3a3a3a !important; - } - } + .select2-selection--single { + .select2-selection__rendered { + background-color: #3a3a3a !important; + } + } } .select2-selection__arrow { - b { - border-bottom: 1.5px solid white !important; - border-right: 1.5px solid white !important; - } + b { + border-bottom: 1.5px solid white !important; + border-right: 1.5px solid white !important; + } } .select2-search--dropdown { - background-color: #3a3a3a !important; - .select2-search__field { - border: 1px solid var(--subtleAccent) !important; - background-color: #3a3a3a !important; - color: white !important; - } + background-color: #3a3a3a !important; + .select2-search__field { + border: 1px solid var(--subtleAccent) !important; + background-color: #3a3a3a !important; + color: white !important; + } } .select2-results { - >.select2-results__options { - background-color: #3a3a3a !important; - } + >.select2-results__options { + background-color: #3a3a3a !important; + } } .ms-drop { - ul { - >li.hide-radio { - &:focus { - background-color: var(--subtleAccent); - } - &:hover { - background-color: var(--subtleAccent); - } - } - } + ul { + >li.hide-radio { + &:focus { + background-color: var(--subtleAccent); + } + &:hover { + background-color: var(--subtleAccent); + } + } + } } .invertable { - filter: invert(1) + filter: invert(1) } diff --git a/src/css/main.less b/src/css/main.less index 3b1b6f8ceb..e7f02b0d10 100644 --- a/src/css/main.less +++ b/src/css/main.less @@ -1,1728 +1,1728 @@ * { - margin: 0; - padding: 0; - border: 0; - list-style: none; - outline: none; - user-select: none; - -webkit-user-drag: none; - -webkit-app-region: no-drag; + margin: 0; + padding: 0; + border: 0; + list-style: none; + outline: none; + user-select: none; + -webkit-user-drag: none; + -webkit-app-region: no-drag; } *[draggable="true"] { - -webkit-user-drag: element; + -webkit-user-drag: element; } html { - height: 100%; + height: 100%; } body { - height: 100%; - font-family: 'Open Sans', 'Segoe UI', Tahoma, sans-serif; - font-size: 12px; - color: #303030; - background-color: #3d3f3e; - margin: 0; - padding: 0; - overflow: hidden; + height: 100%; + font-family: 'Open Sans', 'Segoe UI', Tahoma, sans-serif; + font-size: 12px; + color: #303030; + background-color: #3d3f3e; + margin: 0; + padding: 0; + overflow: hidden; } &::backdrop { - background-image: none; - background-color: rgba(1, 1, 1, 0.5); + background-image: none; + background-color: rgba(1, 1, 1, 0.5); } a { - text-decoration: none; - color: var(--linkText); - font-weight: bold; - &:hover { - text-decoration: none; - } + text-decoration: none; + color: var(--linkText); + font-weight: bold; + &:hover { + text-decoration: none; + } } a.disabled { - pointer-events: none; - cursor: default; - color: #999; + pointer-events: none; + cursor: default; + color: #999; } .background_paper { - background-size: 100%; - background-image: url(../images/paper.png); - background-position: center; + background-size: 100%; + background-image: url(../images/paper.png); + background-position: center; } .standard_input { - padding-left: 3px; - height: 20px; - line-height: 20px; - text-align: left; - border-radius: 3px; - font-size: 12px; - font-weight: normal; - border: 1px solid var(--subtleAccent); - background: var(--boxBackground); + padding-left: 3px; + height: 20px; + line-height: 20px; + text-align: left; + border-radius: 3px; + font-size: 12px; + font-weight: normal; + border: 1px solid var(--subtleAccent); + background: var(--boxBackground); } .helpicon { - float: right; - margin-top: 7px; - margin-right: 7px; - display: block; - height: 14px; - width: 14px; - opacity: 0.2; - background-image: url(../images/icons/cf_icon_info_grey.svg); - background-size: contain; - background-position: center; - transition: none; - &:hover { - opacity: 0.9; - background-image: url(../images/icons/cf_icon_info_green.svg); - transition: none; - } + float: right; + margin-top: 7px; + margin-right: 7px; + display: block; + height: 14px; + width: 14px; + opacity: 0.2; + background-image: url(../images/icons/cf_icon_info_grey.svg); + background-size: contain; + background-position: center; + transition: none; + &:hover { + opacity: 0.9; + background-image: url(../images/icons/cf_icon_info_green.svg); + transition: none; + } } .cf_doc_version_bt { - a { - padding: 1px 9px 1px 9px; - margin-top: -45px; - background-color: var(--accent); - border-radius: 3px; - border: 1px solid #e8b423; - color: #000; - float: right; - font-weight: bold; - font-size: 10px; - line-height: 17px; - text-shadow: 0 1px rgba(255, 255, 255, 0.25); - text-transform: uppercase; - letter-spacing: 0.03em; - display: block; - &:hover { - background-color: #fecb3f; - transition: all ease 0.2s; - } - } + a { + padding: 1px 9px 1px 9px; + margin-top: -45px; + background-color: var(--accent); + border-radius: 3px; + border: 1px solid #e8b423; + color: #000; + float: right; + font-weight: bold; + font-size: 10px; + line-height: 17px; + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + text-transform: uppercase; + letter-spacing: 0.03em; + display: block; + &:hover { + background-color: #fecb3f; + transition: all ease 0.2s; + } + } } input[type="number"] { - &::-webkit-inner-spin-button { - opacity: 1; - margin-left: 5px; - } + &::-webkit-inner-spin-button { + opacity: 1; + margin-left: 5px; + } } .clear-both { - clear: both; + clear: both; } .left { - float: left; + float: left; } .right { - float: right; + float: right; } .margin-top { - margin-top: 20px; + margin-top: 20px; } .margin-bottom { - margin-bottom: 20px; + margin-bottom: 20px; } .message-positive { - color: var(--accent) !important; + color: var(--accent) !important; } .message-negative { - color: var(--error) !important; - font-weight: bold !important; + color: var(--error) !important; + font-weight: bold !important; } .message-negative-italic { - color: var(--error) !important; - font-weight: bold !important; - font-style: italic; + color: var(--error) !important; + font-weight: bold !important; + font-style: italic; } #main-wrapper { - padding: 0; - height: 100%; + padding: 0; + height: 100%; } #background { - background: rgba(0, 0, 0, 0.5); - position: fixed; - z-index: 1500; - top: 0; - left: 0; - right: 0; - bottom: 0; - display: none; + background: rgba(0, 0, 0, 0.5); + position: fixed; + z-index: 1500; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: none; } #side_menu_swipe { - display: none; - position: fixed; - top: 0; - left: 0; - width: 15px; - height: 100%; - z-index: 1999; + display: none; + position: fixed; + top: 0; + left: 0; + width: 15px; + height: 100%; + z-index: 1999; } .headerbar { - height: 115px; - background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.15)); - display: flex; - align-items: center; - padding: 0 15px; + height: 115px; + background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.15)); + display: flex; + align-items: center; + padding: 0 15px; } #menu_btn { - display: none; - width: 24px; - height: 24px; - font-size: 20px; - color: #ffffff; - line-height: 24px; - text-align: center; - margin-right: 15px; + display: none; + width: 24px; + height: 24px; + font-size: 20px; + color: #ffffff; + line-height: 24px; + text-align: center; + margin-right: 15px; } #reveal_btn { - display: none; - width: 24px; - height: 24px; - font-size: 20px; - color: #ffffff; - line-height: 24px; - text-align: center; - margin-left: 15px; + display: none; + width: 24px; + height: 24px; + font-size: 20px; + color: #ffffff; + line-height: 24px; + text-align: center; + margin-left: 15px; } #port-picker { - display: flex; - align-items: center; - margin-left: auto; - .auto_connect { - color: var(--subtleAccent); - } + display: flex; + align-items: center; + margin-left: auto; + .auto_connect { + color: var(--subtleAccent); + } } #portsinput { - width: 220px; - margin-right: 15px; - .dropdown { - margin-bottom: 5px; - } + width: 220px; + margin-right: 15px; + .dropdown { + margin-bottom: 5px; + } } #auto-connect-and-baud { - float: right; + float: right; } #auto-connect-switch { - width: 110px; - float: left; - margin-top: 4px; - margin-left: 5px; - margin-right: 20px; + width: 110px; + float: left; + margin-top: 4px; + margin-left: 5px; + margin-right: 20px; } #baudselect { - width: 80px; - float: right; - margin-right: 2px; + width: 80px; + float: right; + margin-right: 2px; } .gray { - color: var(--subtleAccent); + color: var(--subtleAccent); } #firmware-virtual-option { - height: 76px; - width: 180px; - margin-right: 15px; - margin-top: 16px; - display: none; + height: 76px; + width: 180px; + margin-right: 15px; + margin-top: 16px; + display: none; } #port-override-option { - height: 76px; - margin-top: 24px; - margin-right: 15px; - label { - background-color: #2b2b2b; - border-radius: 3px; - padding: 3px; - color: var(--subtleAccent); - } + height: 76px; + margin-top: 24px; + margin-right: 15px; + label { + background-color: #2b2b2b; + border-radius: 3px; + padding: 3px; + color: var(--subtleAccent); + } } #port-override { - background-color: rgba(0, 0, 0, 0.1); - color: #888888; - width: 140px; - margin-left: 2px; - padding: 1px; - border-radius: 3px; - height: 15px; - font-size: 12px; + background-color: rgba(0, 0, 0, 0.1); + color: #888888; + width: 140px; + margin-left: 2px; + padding: 1px; + border-radius: 3px; + height: 15px; + font-size: 12px; } #header_btns { - display: flex; - align-items: center; + display: flex; + align-items: center; } .open_firmware_flasher { - position: relative; - width: 80px; - text-align: center; - height: 84px; + position: relative; + width: 80px; + text-align: center; + height: 84px; } .connect_controls { - position: relative; - width: 80px; - text-align: center; - height: 84px; + position: relative; + width: 80px; + text-align: center; + height: 84px; } .firmware_b { - width: 52px; - margin: 0 14px; - height: 52px; - a.flash { - background-color: var(--accent); - border: 1px solid #dba718; - background-repeat: no-repeat; - height: 50px; - width: 50px; - border-radius: 100px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35); - float: left; - transition: none; - background-image: url(../images/icons/cf_icon_flasher_white.svg); - background-size: 30px; - background-position: center 10px; - &:hover { - background-color: #ffcc3f; - } - } - a.flash.disabled { - background-color: #808080; - pointer-events: none; - cursor: default; - } - a.flash.active { - background-color: #e60000; - border: 1px solid #fe0000; - transition: none; - background-image: url(../images/icons/cf_icon_flasher_white.svg); - &:hover { - background-color: #f21212; - } - } + width: 52px; + margin: 0 14px; + height: 52px; + a.flash { + background-color: var(--accent); + border: 1px solid #dba718; + background-repeat: no-repeat; + height: 50px; + width: 50px; + border-radius: 100px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35); + float: left; + transition: none; + background-image: url(../images/icons/cf_icon_flasher_white.svg); + background-size: 30px; + background-position: center 10px; + &:hover { + background-color: #ffcc3f; + } + } + a.flash.disabled { + background-color: #808080; + pointer-events: none; + cursor: default; + } + a.flash.active { + background-color: #e60000; + border: 1px solid #fe0000; + transition: none; + background-image: url(../images/icons/cf_icon_flasher_white.svg); + &:hover { + background-color: #f21212; + } + } } .connect_b { - width: 52px; - margin: 0 14px; - height: 52px; - a.connect { - background-color: var(--accent); - border: 1px solid #dba718; - background-repeat: no-repeat; - height: 50px; - width: 50px; - border-radius: 100px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35); - float: left; - transition: none; - background-image: url(../images/icons/cf_icon_usb2_white.svg); - background-size: 44px; - background-position: center 6px; - &:hover { - background-color: #ffcc3f; - } - } - a.connect.disabled { - background-color: #808080; - pointer-events: none; - cursor: default; - } - a.connect.active { - background-color: #e60000; - border: 1px solid #fe0000; - transition: none; - background-image: url(../images/icons/cf_icon_usb1_white.svg); - &:hover { - background-color: #f21212; - } - } + width: 52px; + margin: 0 14px; + height: 52px; + a.connect { + background-color: var(--accent); + border: 1px solid #dba718; + background-repeat: no-repeat; + height: 50px; + width: 50px; + border-radius: 100px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35); + float: left; + transition: none; + background-image: url(../images/icons/cf_icon_usb2_white.svg); + background-size: 44px; + background-position: center 6px; + &:hover { + background-color: #ffcc3f; + } + } + a.connect.disabled { + background-color: #808080; + pointer-events: none; + cursor: default; + } + a.connect.active { + background-color: #e60000; + border: 1px solid #fe0000; + transition: none; + background-image: url(../images/icons/cf_icon_usb1_white.svg); + &:hover { + background-color: #f21212; + } + } } .flash_state { - color: #fff; - font-size: 12px; - font-weight: normal; - text-shadow: 0 1px rgba(0, 0, 0, 0.25); - padding: 0 10px; + color: #fff; + font-size: 12px; + font-weight: normal; + text-shadow: 0 1px rgba(0, 0, 0, 0.25); + padding: 0 10px; } .connect_state { - color: #fff; - font-size: 12px; - font-weight: normal; - text-shadow: 0 1px rgba(0, 0, 0, 0.25); - padding: 0 10px; + color: #fff; + font-size: 12px; + font-weight: normal; + text-shadow: 0 1px rgba(0, 0, 0, 0.25); + padding: 0 10px; } .header-wrapper { - display: flex; - .mode-connected { - display: none; - } + display: flex; + .mode-connected { + display: none; + } } #sensor-status { - margin-right: 10px; - line-height: 2px; - height: 67px; - border-radius: 5px; - border: 1px solid #272727; - box-shadow: 0 2px 0 rgba(92, 92, 92, 0.5); - background-color: #434343; - background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.55)); - >ul { - display: flex; - } - li { - float: left; - height: 67px; - width: 33px; - line-height: 18px; - text-align: center; - border-top: 1px solid #373737; - border-bottom: 1px solid #1a1a1a; - border-left: 1px solid #373737; - border-right: 1px solid #222222; - background-color: #434343; - background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.45)); - padding-left: 5px; - padding-right: 5px; - text-shadow: 0 1px rgba(0, 0, 0, 1.0); - &:last-child { - border-right: 0 solid #c0c0c0; - border-top-right-radius: 5px; - border-bottom-right-radius: 5px; - } - &:first-child { - border-left: 0 solid #c0c0c0; - border-top-left-radius: 5px; - border-bottom-left-radius: 5px; - } - } - div { - white-space: nowrap; - overflow: hidden; - } - .on { - background-color: #434343; - background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.45)); - } + margin-right: 10px; + line-height: 2px; + height: 67px; + border-radius: 5px; + border: 1px solid #272727; + box-shadow: 0 2px 0 rgba(92, 92, 92, 0.5); + background-color: #434343; + background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.55)); + >ul { + display: flex; + } + li { + float: left; + height: 67px; + width: 33px; + line-height: 18px; + text-align: center; + border-top: 1px solid #373737; + border-bottom: 1px solid #1a1a1a; + border-left: 1px solid #373737; + border-right: 1px solid #222222; + background-color: #434343; + background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.45)); + padding-left: 5px; + padding-right: 5px; + text-shadow: 0 1px rgba(0, 0, 0, 1.0); + &:last-child { + border-right: 0 solid #c0c0c0; + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; + } + &:first-child { + border-left: 0 solid #c0c0c0; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + } + } + div { + white-space: nowrap; + overflow: hidden; + } + .on { + background-color: #434343; + background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.45)); + } } .gyroicon { - background-repeat: no-repeat; - height: 30px; - margin-top: 3px; - width: 100%; - padding-top: 40px; - color: #4f4f4f; - text-align: center; - background-image: url(../images/icons/sensor_gyro_off.png); - background-size: 43px; - background-position: top; + background-repeat: no-repeat; + height: 30px; + margin-top: 3px; + width: 100%; + padding-top: 40px; + color: #4f4f4f; + text-align: center; + background-image: url(../images/icons/sensor_gyro_off.png); + background-size: 43px; + background-position: top; } .accicon { - background-repeat: no-repeat; - height: 30px; - margin-top: 3px; - width: 100%; - padding-top: 40px; - color: #4f4f4f; - text-align: center; - background-image: url(../images/icons/sensor_acc_off.png); - background-size: 40px; - background-position: -5px 2px; + background-repeat: no-repeat; + height: 30px; + margin-top: 3px; + width: 100%; + padding-top: 40px; + color: #4f4f4f; + text-align: center; + background-image: url(../images/icons/sensor_acc_off.png); + background-size: 40px; + background-position: -5px 2px; } .magicon { - background-repeat: no-repeat; - height: 30px; - margin-top: 3px; - width: 100%; - padding-top: 40px; - color: #4f4f4f; - text-align: center; - background-image: url(../images/icons/sensor_mag_off.png); - background-size: 42px; - background-position: -5px 2px; + background-repeat: no-repeat; + height: 30px; + margin-top: 3px; + width: 100%; + padding-top: 40px; + color: #4f4f4f; + text-align: center; + background-image: url(../images/icons/sensor_mag_off.png); + background-size: 42px; + background-position: -5px 2px; } .gpsicon { - background-repeat: no-repeat; - height: 30px; - margin-top: 3px; - width: 100%; - padding-top: 40px; - color: #4f4f4f; - text-align: center; - background-image: url(../images/icons/sensor_sat_off.png); - background-size: 42px; - background-position: -5px 2px; + background-repeat: no-repeat; + height: 30px; + margin-top: 3px; + width: 100%; + padding-top: 40px; + color: #4f4f4f; + text-align: center; + background-image: url(../images/icons/sensor_sat_off.png); + background-size: 42px; + background-position: -5px 2px; } .baroicon { - background-repeat: no-repeat; - height: 30px; - margin-top: 3px; - width: 100%; - padding-top: 40px; - color: #4f4f4f; - text-align: center; - background-image: url(../images/icons/sensor_baro_off.png); - background-size: 40px; - background-position: -5px 2px; + background-repeat: no-repeat; + height: 30px; + margin-top: 3px; + width: 100%; + padding-top: 40px; + color: #4f4f4f; + text-align: center; + background-image: url(../images/icons/sensor_baro_off.png); + background-size: 40px; + background-position: -5px 2px; } .sonaricon { - background-repeat: no-repeat; - height: 30px; - margin-top: 3px; - width: 100%; - padding-top: 40px; - color: #4f4f4f; - text-align: center; - background-image: url(../images/icons/sensor_sonar_off.png); - background-size: 41px; - background-position: -4px 1px; + background-repeat: no-repeat; + height: 30px; + margin-top: 3px; + width: 100%; + padding-top: 40px; + color: #4f4f4f; + text-align: center; + background-image: url(../images/icons/sensor_sonar_off.png); + background-size: 41px; + background-position: -4px 1px; } .gyroicon.active { - color: #818181; - background-image: url(../images/icons/sensor_gyro_on.png); + color: #818181; + background-image: url(../images/icons/sensor_gyro_on.png); } .accicon.active { - color: #818181; - background-image: url(../images/icons/sensor_acc_on.png); + color: #818181; + background-image: url(../images/icons/sensor_acc_on.png); } .magicon.active { - color: #818181; - background-image: url(../images/icons/sensor_mag_on.png); + color: #818181; + background-image: url(../images/icons/sensor_mag_on.png); } .gpsicon.active { - color: #818181; - background-image: url(../images/icons/sensor_sat_on_no_fix.png); + color: #818181; + background-image: url(../images/icons/sensor_sat_on_no_fix.png); } .gpsicon.active_fix { - color: #818181; - background-image: url(../images/icons/sensor_sat_on_with_fix.png); + color: #818181; + background-image: url(../images/icons/sensor_sat_on_with_fix.png); } .baroicon.active { - color: #818181; - background-image: url(../images/icons/sensor_baro_on.png); + color: #818181; + background-image: url(../images/icons/sensor_baro_on.png); } .sonaricon.active { - color: #818181; - background-image: url(../images/icons/sensor_sonar_on.png); + color: #818181; + background-image: url(../images/icons/sensor_sonar_on.png); } #dataflash_wrapper_global { - color: white; - font-size: 10px; - width: 125px; - margin-right: 5px; - line-height: 12px; - height: 33px; - border-radius: 5px; - border: 1px solid #272727; - box-shadow: 0 1px 0 rgba(92, 92, 92, 0.5); - background-color: #434343; - background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.55)); - padding-top: 5px; - display: none; - text-shadow: 0 1px rgba(0, 0, 0, 1.0); + color: white; + font-size: 10px; + width: 125px; + margin-right: 5px; + line-height: 12px; + height: 33px; + border-radius: 5px; + border: 1px solid #272727; + box-shadow: 0 1px 0 rgba(92, 92, 92, 0.5); + background-color: #434343; + background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.55)); + padding-top: 5px; + display: none; + text-shadow: 0 1px rgba(0, 0, 0, 1.0); } .dataflash-contents_global { - margin-top: 18px; - border: 1px solid #4A4A4A; - background-color: #4A4A4A; - display: flex; - flex-direction: row; - flex-wrap: nowrap; - justify-content: flex-start; - border-radius: 3px; - margin-left: 5px; - margin-right: 5px; - .notsupported_global { - display: none; - } - li { - height: 5px; - position: relative; - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.20); - border-radius: 2px; - div { - position: absolute; - top: -18px; - margin-top: 0; - left: 0; - right: 0; - width: 120px; - text-align: left; - color: silver; - } - } - progress { - &::-webkit-progress-bar { - height: 8px; - background-color: #eee; - } - } + margin-top: 18px; + border: 1px solid #4A4A4A; + background-color: #4A4A4A; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: flex-start; + border-radius: 3px; + margin-left: 5px; + margin-right: 5px; + .notsupported_global { + display: none; + } + li { + height: 5px; + position: relative; + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.20); + border-radius: 2px; + div { + position: absolute; + top: -18px; + margin-top: 0; + left: 0; + right: 0; + width: 120px; + text-align: left; + color: silver; + } + } + progress { + &::-webkit-progress-bar { + height: 8px; + background-color: #eee; + } + } } .dataflash-free_global { - background-color: var(--accent); - border-radius: 4px; + background-color: var(--accent); + border-radius: 4px; } .dataflash-contents { - progress { - &::-webkit-progress-value { - background-color: #bcf; - } - } + progress { + &::-webkit-progress-value { + background-color: #bcf; + } + } } .noflash_global { - display: none; - color: #868686; - text-align: center; - text-shadow: 0 1px rgba(0, 0, 0, 1.0); - margin-top: 2px; + display: none; + color: #868686; + text-align: center; + text-shadow: 0 1px rgba(0, 0, 0, 1.0); + margin-top: 2px; } #expertMode { - color: var(--subtleAccent); - margin-top: 27px; - width: 125px; - float: right; - margin-right: 0; - line-height: 12px; + color: var(--subtleAccent); + margin-top: 27px; + width: 125px; + float: right; + margin-right: 0; + line-height: 12px; } #quad-status_wrapper { - display: none; - color: white; - font-size: 10px; - min-width: 90px; - margin-right: 10px; - line-height: 12px; - height: 67px; - border-radius: 5px; - border: 1px solid #272727; - box-shadow: 0 1px 0 rgba(92, 92, 92, 0.5); - background-color: #434343; - background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.55)); - text-shadow: 0 1px rgba(0, 0, 0, 1.0); - white-space: nowrap; + display: none; + color: white; + font-size: 10px; + min-width: 90px; + margin-right: 10px; + line-height: 12px; + height: 67px; + border-radius: 5px; + border: 1px solid #272727; + box-shadow: 0 1px 0 rgba(92, 92, 92, 0.5); + background-color: #434343; + background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.55)); + text-shadow: 0 1px rgba(0, 0, 0, 1.0); + white-space: nowrap; } .armedicon { - margin-left: 8px; - margin-right: 8px; - margin-top: 6px; - height: 18px; - width: 18px; - opacity: 0.8; - background-size: contain; - background-position: center; - transition: none; - background-image: url(../images/icons/cf_icon_armed_grey.svg); + margin-left: 8px; + margin-right: 8px; + margin-top: 6px; + height: 18px; + width: 18px; + opacity: 0.8; + background-size: contain; + background-position: center; + transition: none; + background-image: url(../images/icons/cf_icon_armed_grey.svg); } .failsafeicon { - margin-left: 8px; - margin-right: 8px; - margin-top: 6px; - height: 18px; - width: 18px; - opacity: 0.8; - background-size: contain; - background-position: center; - transition: none; - background-image: url(../images/icons/cf_icon_failsafe_grey.svg); + margin-left: 8px; + margin-right: 8px; + margin-top: 6px; + height: 18px; + width: 18px; + opacity: 0.8; + background-size: contain; + background-position: center; + transition: none; + background-image: url(../images/icons/cf_icon_failsafe_grey.svg); } .linkicon { - margin-left: 8px; - margin-right: 8px; - margin-top: 6px; - height: 18px; - width: 18px; - opacity: 0.8; - background-size: contain; - background-position: center; - transition: none; - background-image: url(../images/icons/cf_icon_link_grey.svg); + margin-left: 8px; + margin-right: 8px; + margin-top: 6px; + height: 18px; + width: 18px; + opacity: 0.8; + background-size: contain; + background-position: center; + transition: none; + background-image: url(../images/icons/cf_icon_link_grey.svg); } .armedicon.active { - background-image: url(../images/icons/cf_icon_armed_active.svg); + background-image: url(../images/icons/cf_icon_armed_active.svg); } .failsafeicon.active { - background-image: url(../images/icons/cf_icon_failsafe_active.svg); + background-image: url(../images/icons/cf_icon_failsafe_active.svg); } .linkicon.active { - background-image: url(../images/icons/cf_icon_link_active.svg); + background-image: url(../images/icons/cf_icon_link_active.svg); } #log { - background-color: #242424; - color: rgba(255, 255, 255, 0.60); - line-height: 21px; - height: 27px; - overflow-y: hidden; - transition: all 0.2s; - .wrapper { - padding: 5px 5px 4px 10px; - position: relative; - bottom: 0; - >* { - user-select: text; - >* { - user-select: text; - } - } - } - a { - font-weight: normal; - color: #ffbb00; - &:hover { - text-decoration: underline; - } - } + background-color: #242424; + color: rgba(255, 255, 255, 0.60); + line-height: 21px; + height: 27px; + overflow-y: hidden; + transition: all 0.2s; + .wrapper { + padding: 5px 5px 4px 10px; + position: relative; + bottom: 0; + >* { + user-select: text; + >* { + user-select: text; + } + } + } + a { + font-weight: normal; + color: #ffbb00; + &:hover { + text-decoration: underline; + } + } } #log.active { - overflow-y: auto; - box-shadow: inset 0 0 15px #000000; - height: 111px; + overflow-y: auto; + box-shadow: inset 0 0 15px #000000; + height: 111px; } #scrollicon { - position: fixed; - right: 10px; - top: 113px; - height: 27px; - width: 27px; - background-repeat: no-repeat; - background-image: url(../images/icons/scroll.svg); - opacity: 0.0; - transition: all ease 0.2s; + position: fixed; + right: 10px; + top: 113px; + height: 27px; + width: 27px; + background-repeat: no-repeat; + background-image: url(../images/icons/scroll.svg); + opacity: 0.0; + transition: all ease 0.2s; } #scrollicon.active { - height: 88px; - margin-top: 13px; - margin-right: 20px; - width: 88px; - opacity: 0.15; + height: 88px; + margin-top: 13px; + margin-right: 20px; + width: 88px; + opacity: 0.15; } .logswitch { - position: absolute; - right: 20px; - padding: 2px; - z-index: 10; - a { - color: #656565 !important; - transition: all 0.2s; - &:hover { - color: #959595 !important; - text-decoration: none !important; - } - } + position: absolute; + right: 20px; + padding: 2px; + z-index: 10; + a { + color: #656565 !important; + transition: all 0.2s; + &:hover { + color: #959595 !important; + text-decoration: none !important; + } + } } #tab-content-container { - display: flex; - height: calc(100% - 162px); - align-items: stretch; - transition: all 0.2s; + display: flex; + height: calc(100% - 162px); + align-items: stretch; + transition: all 0.2s; } #tab-content-container.logopen { - height: calc(100% - 247px); + height: calc(100% - 247px); } .tab_container { - transition: all 0.2s; - width: 200px; - border-right: 4px solid var(--accent); - background-color: #2e2e2e; - overflow: auto; + transition: all 0.2s; + width: 200px; + border-right: 4px solid var(--accent); + background-color: #2e2e2e; + overflow: auto; } #content { - transition: all 0.2s; - overflow-x: hidden; - overflow-y: auto; - background-color: white; - -webkit-transform: rotateX(0deg); - width: calc(100% - 202px); + transition: all 0.2s; + overflow-x: hidden; + overflow-y: auto; + background-color: white; + -webkit-transform: rotateX(0deg); + width: calc(100% - 202px); } .tab_container.logopen { - overflow-x: hidden; - overflow-y: auto; + overflow-x: hidden; + overflow-y: auto; } #tabs { - font-size: 13px; - ul.mode-connected { - display: none; - } - ul.mode-connected-cli { - display: none; - } - li { - border-bottom: 1px solid rgba(0, 0, 0, 0.30); - &:first-child { - border-top: 0; - } - &:last-child { - border-bottom: 0; - } - a { - font-weight: normal; - padding-left: 33px; - padding-top: 5px; - padding-bottom: 3px; - background-color: transparent; - color: #999999; - height: 23px; - display: block; - text-shadow: 0 1px rgba(0, 0, 0, 0.45); - transition: none; - border-top: solid 1px rgba(255, 255, 255, 0.05); - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - &:hover { - text-decoration: none; - background-color: rgba(128, 128, 128, 0.50); - color: #fff; - } - } - } - li.active { - color: #fff; - transition: none; - a { - background-color: var(--accent); - color: #000; - transition: none; - text-shadow: 0 1px rgba(255, 255, 255, 0.45); - &:hover { - cursor: default; - background-color: var(--accent); - } - } - } + font-size: 13px; + ul.mode-connected { + display: none; + } + ul.mode-connected-cli { + display: none; + } + li { + border-bottom: 1px solid rgba(0, 0, 0, 0.30); + &:first-child { + border-top: 0; + } + &:last-child { + border-bottom: 0; + } + a { + font-weight: normal; + padding-left: 33px; + padding-top: 5px; + padding-bottom: 3px; + background-color: transparent; + color: #999999; + height: 23px; + display: block; + text-shadow: 0 1px rgba(0, 0, 0, 0.45); + transition: none; + border-top: solid 1px rgba(255, 255, 255, 0.05); + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + &:hover { + text-decoration: none; + background-color: rgba(128, 128, 128, 0.50); + color: #fff; + } + } + } + li.active { + color: #fff; + transition: none; + a { + background-color: var(--accent); + color: #000; + transition: none; + text-shadow: 0 1px rgba(255, 255, 255, 0.45); + &:hover { + cursor: default; + background-color: var(--accent); + } + } + } } .tabicon { - background-repeat: no-repeat; - background-size: 15px; - background-position: 13px 7px; + background-repeat: no-repeat; + background-size: 15px; + background-position: 13px 7px; } .ic_setup { - background-image: url(../images/icons/cf_icon_setup_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_setup_white.svg); - } + background-image: url(../images/icons/cf_icon_setup_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_setup_white.svg); + } } li.active { - .ic_setup { - background-image: url(../images/icons/cf_icon_setup_white.svg); - } - .ic_ports { - background-image: url(../images/icons/cf_icon_ports_white.svg); - } - .ic_config { - background-image: url(../images/icons/cf_icon_config_white.svg); - } - .ic_pid { - background-image: url(../images/icons/cf_icon_pid_white.svg); - } - .ic_rx { - background-image: url(../images/icons/cf_icon_rx_white.svg); - } - .ic_modes { - background-image: url(../images/icons/cf_icon_modes_white.svg); - } - .ic_adjust { - background-image: url(../images/icons/cf_icon_adjust_white.svg); - } - .ic_servo { - background-image: url(../images/icons/cf_icon_servo_white.svg); - } - .ic_gps { - background-image: url(../images/icons/cf_icon_gps_white.svg); - } - .ic_led { - background-image: url(../images/icons/cf_icon_led_white.svg); - } - .ic_sensors { - background-image: url(../images/icons/cf_icon_sensors_white.svg); - } - .ic_log { - background-image: url(../images/icons/cf_icon_log_white.svg); - } - .ic_data { - background-image: url(../images/icons/cf_icon_data_white.svg); - } - .ic_cli { - background-image: url(../images/icons/cf_icon_cli_white.svg); - } - .ic_motor { - background-image: url(../images/icons/cf_icon_motor_white.svg); - } - .ic_welcome { - background-image: url(../images/icons/cf_icon_welcome_white.svg); - } - .ic_help { - background-image: url(../images/icons/cf_icon_help_white.svg); - } - .ic_flasher { - background-image: url(../images/icons/cf_icon_flasher_white.svg); - } - .ic_transponder { - background-image: url(../images/icons/cf_icon_transponder_white.svg); - } - .ic_osd { - background-image: url(../images/icons/icon_osd_white.svg); - } - .ic_vtx { - background-image: url(../images/icons/cf_icon_vtx_white.svg); - } - .ic_power { - background-image: url(../images/icons/cf_icon_power_white.svg); - } - .ic_failsafe { - background-image: url(../images/icons/cf_icon_failsafe_white.svg); - } - .ic_backup { - background-image: url(../images/icons/cf_icon_backup_white.svg); - } - .ic_wizard { - background-image: url(../images/icons/cf_icon_wizard_white.svg); - } - .ic_advanced { - background-image: url(../images/icons/cf_icon_advanced_white.svg); - } - .ic_mission { - background-image: url(../images/icons/cf_icon_mission_white.svg); - } + .ic_setup { + background-image: url(../images/icons/cf_icon_setup_white.svg); + } + .ic_ports { + background-image: url(../images/icons/cf_icon_ports_white.svg); + } + .ic_config { + background-image: url(../images/icons/cf_icon_config_white.svg); + } + .ic_pid { + background-image: url(../images/icons/cf_icon_pid_white.svg); + } + .ic_rx { + background-image: url(../images/icons/cf_icon_rx_white.svg); + } + .ic_modes { + background-image: url(../images/icons/cf_icon_modes_white.svg); + } + .ic_adjust { + background-image: url(../images/icons/cf_icon_adjust_white.svg); + } + .ic_servo { + background-image: url(../images/icons/cf_icon_servo_white.svg); + } + .ic_gps { + background-image: url(../images/icons/cf_icon_gps_white.svg); + } + .ic_led { + background-image: url(../images/icons/cf_icon_led_white.svg); + } + .ic_sensors { + background-image: url(../images/icons/cf_icon_sensors_white.svg); + } + .ic_log { + background-image: url(../images/icons/cf_icon_log_white.svg); + } + .ic_data { + background-image: url(../images/icons/cf_icon_data_white.svg); + } + .ic_cli { + background-image: url(../images/icons/cf_icon_cli_white.svg); + } + .ic_motor { + background-image: url(../images/icons/cf_icon_motor_white.svg); + } + .ic_welcome { + background-image: url(../images/icons/cf_icon_welcome_white.svg); + } + .ic_help { + background-image: url(../images/icons/cf_icon_help_white.svg); + } + .ic_flasher { + background-image: url(../images/icons/cf_icon_flasher_white.svg); + } + .ic_transponder { + background-image: url(../images/icons/cf_icon_transponder_white.svg); + } + .ic_osd { + background-image: url(../images/icons/icon_osd_white.svg); + } + .ic_vtx { + background-image: url(../images/icons/cf_icon_vtx_white.svg); + } + .ic_power { + background-image: url(../images/icons/cf_icon_power_white.svg); + } + .ic_failsafe { + background-image: url(../images/icons/cf_icon_failsafe_white.svg); + } + .ic_backup { + background-image: url(../images/icons/cf_icon_backup_white.svg); + } + .ic_wizard { + background-image: url(../images/icons/cf_icon_wizard_white.svg); + } + .ic_advanced { + background-image: url(../images/icons/cf_icon_advanced_white.svg); + } + .ic_mission { + background-image: url(../images/icons/cf_icon_mission_white.svg); + } } .ic_ports { - background-image: url(../images/icons/cf_icon_ports_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_ports_white.svg); - } + background-image: url(../images/icons/cf_icon_ports_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_ports_white.svg); + } } .ic_config { - background-image: url(../images/icons/cf_icon_config_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_config_white.svg); - } + background-image: url(../images/icons/cf_icon_config_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_config_white.svg); + } } .ic_pid { - background-image: url(../images/icons/cf_icon_pid_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_pid_white.svg); - } + background-image: url(../images/icons/cf_icon_pid_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_pid_white.svg); + } } .ic_rx { - background-image: url(../images/icons/cf_icon_rx_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_rx_white.svg); - } + background-image: url(../images/icons/cf_icon_rx_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_rx_white.svg); + } } .ic_modes { - background-image: url(../images/icons/cf_icon_modes_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_modes_white.svg); - } + background-image: url(../images/icons/cf_icon_modes_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_modes_white.svg); + } } .ic_adjust { - background-image: url(../images/icons/cf_icon_adjust_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_adjust_white.svg); - } + background-image: url(../images/icons/cf_icon_adjust_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_adjust_white.svg); + } } .ic_servo { - background-image: url(../images/icons/cf_icon_servo_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_servo_white.svg); - } + background-image: url(../images/icons/cf_icon_servo_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_servo_white.svg); + } } .ic_gps { - background-image: url(../images/icons/cf_icon_gps_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_gps_white.svg); - } + background-image: url(../images/icons/cf_icon_gps_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_gps_white.svg); + } } .ic_led { - background-image: url(../images/icons/cf_icon_led_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_led_white.svg); - } + background-image: url(../images/icons/cf_icon_led_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_led_white.svg); + } } .ic_sensors { - background-image: url(../images/icons/cf_icon_sensors_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_sensors_white.svg); - } + background-image: url(../images/icons/cf_icon_sensors_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_sensors_white.svg); + } } .ic_log { - background-image: url(../images/icons/cf_icon_log_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_log_white.svg); - } + background-image: url(../images/icons/cf_icon_log_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_log_white.svg); + } } .ic_data { - background-image: url(../images/icons/cf_icon_data_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_data_white.svg); - } + background-image: url(../images/icons/cf_icon_data_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_data_white.svg); + } } .ic_cli { - background-image: url(../images/icons/cf_icon_cli_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_cli_white.svg); - } + background-image: url(../images/icons/cf_icon_cli_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_cli_white.svg); + } } .ic_motor { - background-image: url(../images/icons/cf_icon_motor_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_motor_white.svg); - } + background-image: url(../images/icons/cf_icon_motor_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_motor_white.svg); + } } .ic_welcome { - background-image: url(../images/icons/cf_icon_welcome_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_welcome_white.svg); - } + background-image: url(../images/icons/cf_icon_welcome_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_welcome_white.svg); + } } .ic_help { - background-image: url(../images/icons/cf_icon_help_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_help_white.svg); - } + background-image: url(../images/icons/cf_icon_help_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_help_white.svg); + } } .ic_flasher { - background-image: url(../images/icons/cf_icon_flasher_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_flasher_white.svg); - } + background-image: url(../images/icons/cf_icon_flasher_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_flasher_white.svg); + } } .ic_transponder { - background-image: url(../images/icons/cf_icon_transponder_grey.svg); - background-position-y: 2px; - &:hover { - background-image: url(../images/icons/cf_icon_transponder_white.svg); - } + background-image: url(../images/icons/cf_icon_transponder_grey.svg); + background-position-y: 2px; + &:hover { + background-image: url(../images/icons/cf_icon_transponder_white.svg); + } } .ic_osd { - background-image: url(../images/icons/icon_osd.svg); - background-position-y: 4px; - &:hover { - background-image: url(../images/icons/icon_osd_white.svg); - } + background-image: url(../images/icons/icon_osd.svg); + background-position-y: 4px; + &:hover { + background-image: url(../images/icons/icon_osd_white.svg); + } } .ic_vtx { - background-image: url(../images/icons/cf_icon_vtx_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_vtx_white.svg); - } + background-image: url(../images/icons/cf_icon_vtx_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_vtx_white.svg); + } } .ic_power { - background-image: url(../images/icons/cf_icon_power_grey.svg); - background-position-y: 9px; - &:hover { - background-image: url(../images/icons/cf_icon_power_white.svg); - } + background-image: url(../images/icons/cf_icon_power_grey.svg); + background-position-y: 9px; + &:hover { + background-image: url(../images/icons/cf_icon_power_white.svg); + } } .ic_failsafe { - background-image: url(../images/icons/cf_icon_failsafe_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_failsafe_white.svg); - } + background-image: url(../images/icons/cf_icon_failsafe_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_failsafe_white.svg); + } } .ic_backup { - background-image: url(../images/icons/cf_icon_backup_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_backup_white.svg); - } + background-image: url(../images/icons/cf_icon_backup_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_backup_white.svg); + } } .ic_wizzard { - background-image: url(../images/icons/cf_icon_wizard_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_wizard_white.svg); - } + background-image: url(../images/icons/cf_icon_wizard_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_wizard_white.svg); + } } .ic_advanced { - background-image: url(../images/icons/cf_icon_advanced_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_advanced_white.svg); - } + background-image: url(../images/icons/cf_icon_advanced_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_advanced_white.svg); + } } .ic_mission { - background-image: url(../images/icons/cf_icon_mission_grey.svg); - &:hover { - background-image: url(../images/icons/cf_icon_mission_white.svg); - } + background-image: url(../images/icons/cf_icon_mission_grey.svg); + &:hover { + background-image: url(../images/icons/cf_icon_mission_white.svg); + } } #cache { - display: none; + display: none; } .data-loading { - width: 100%; - height: 100%; - background-image: url(../images/loading-spin.svg); - background-repeat: no-repeat; - background-position: center 45%; - p { - position: relative; - top: calc(45% + 45px); - text-align: center; - font-weight: bold; - } + width: 100%; + height: 100%; + background-image: url(../images/loading-spin.svg); + background-repeat: no-repeat; + background-position: center 45%; + p { + position: relative; + top: calc(45% + 45px); + text-align: center; + font-weight: bold; + } } dialog { - background-color: white; - padding: 1em; - height: fit-content; - margin: auto auto; - position: absolute; - width: 50%; - border-radius: 3px; - border: 1px solid silver; - .dialog_toolbar { - .btn { - a { - margin-top: 0; - margin-bottom: 0; - margin-right: 20px; - background-color: var(--accent); - border-radius: 3px; - border: 1px solid #dba718; - color: #000; - float: left; - font-weight: bold; - font-size: 12px; - text-shadow: 0 1px rgba(255, 255, 255, 0.25); - display: block; - cursor: pointer; - transition: all ease 0.2s; - padding: 0 9px; - line-height: 28px; - &:hover { - background-color: var(--hoverButton-background); - transition: all ease 0.2s; - } - &:active { - background-color: var(--accent); - transition: all ease 0.0s; - box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); - } - } - a.disabled { - cursor: default; - color: #fff; - background-color: #AFAFAF; - border: 1px solid #AFAFAF; - pointer-events: none; - text-shadow: none; - opacity: 0.5; - } - } - } + background-color: white; + padding: 1em; + height: fit-content; + margin: auto auto; + position: absolute; + width: 50%; + border-radius: 3px; + border: 1px solid silver; + .dialog_toolbar { + .btn { + a { + margin-top: 0; + margin-bottom: 0; + margin-right: 20px; + background-color: var(--accent); + border-radius: 3px; + border: 1px solid #dba718; + color: #000; + float: left; + font-weight: bold; + font-size: 12px; + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + display: block; + cursor: pointer; + transition: all ease 0.2s; + padding: 0 9px; + line-height: 28px; + &:hover { + background-color: var(--hoverButton-background); + transition: all ease 0.2s; + } + &:active { + background-color: var(--accent); + transition: all ease 0.0s; + box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); + } + } + a.disabled { + cursor: default; + color: #fff; + background-color: #AFAFAF; + border: 1px solid #AFAFAF; + pointer-events: none; + text-shadow: none; + opacity: 0.5; + } + } + } } .dialogYesNo { - .dialogYesNoContent { - margin-bottom: 12px; - margin-top: 12px; - white-space: pre-line; - } - .dialogYesNo-yesButton { - margin: 0px; - margin-right: 12px; - } - .dialogYesNo-noButton { - margin: 0px; - } - width: fit-content; - max-width: 400px; + .dialogYesNoContent { + margin-bottom: 12px; + margin-top: 12px; + white-space: pre-line; + } + .dialogYesNo-yesButton { + margin: 0px; + margin-right: 12px; + } + .dialogYesNo-noButton { + margin: 0px; + } + width: fit-content; + max-width: 400px; } .dialogWait { - width: fit-content; - max-width: 500px; - min-width: 300px; - .data-loading { - margin-top: 16px; - margin-bottom: 16px; - margin-left: auto; - margin-right: auto; - width: 100px; - height: 100px; - } - .dialogWaitTitle { - margin-left: auto; - margin-right: auto; - margin-bottom: 16px; - width: fit-content; - } + width: fit-content; + max-width: 500px; + min-width: 300px; + .data-loading { + margin-top: 16px; + margin-bottom: 16px; + margin-left: auto; + margin-right: auto; + width: 100px; + height: 100px; + } + .dialogWaitTitle { + margin-left: auto; + margin-right: auto; + margin-bottom: 16px; + width: fit-content; + } } .dialogInformation { - .dialogInformationContent { - margin-bottom: 12px; - margin-top: 12px; - white-space: pre-line; - } - .dialogInformation-confirmButton { - margin: 0px; - } - width: fit-content; - max-width: 400px; + .dialogInformationContent { + margin-bottom: 12px; + margin-top: 12px; + white-space: pre-line; + } + .dialogInformation-confirmButton { + margin: 0px; + } + width: fit-content; + max-width: 400px; } .tab_title { - border-bottom: 1px solid var(--accent); - font-size: 20px; - line-height: 24px; - height: 30px; - font-weight: 300; - margin-bottom: 15px; + border-bottom: 1px solid var(--accent); + font-size: 20px; + line-height: 24px; + height: 30px; + font-weight: 300; + margin-bottom: 15px; } .tab_sponsor { - display: none; - height: 50px; - max-height: 50px; - margin: 0 auto 10px auto + display: none; + height: 50px; + max-height: 50px; + margin: 0 auto 10px auto } .img_sponsor { - height: 100% + height: 100% } .note { - background-color: #fff7cd; - border: 1px solid #ffe55f; - margin-bottom: 10px; - margin-top: 0; - border-radius: 3px; - font-size: 11px; - font-weight: normal; - padding: 5px 7px 5px 7px; + background-color: #fff7cd; + border: 1px solid #ffe55f; + margin-bottom: 10px; + margin-top: 0; + border-radius: 3px; + font-size: 11px; + font-weight: normal; + padding: 5px 7px 5px 7px; } .tab_wrapper { - padding: 20px 15px 15px 15px; + padding: 20px 15px 15px 15px; } .content_wrapper { - padding: 20px 20px 20px 19px; - position: relative; + padding: 20px 20px 20px 19px; + position: relative; } .content_toolbar { - width: 100%; - height: 30px; - background-color: #EFEFEF; - box-shadow: rgba(0, 0, 0, 0.10) 0 -3px 8px; - padding: 10px 0; - overflow: hidden; - border-top: 1px solid var(--subtleAccent); - .btn { - a { - margin-top: 0; - margin-bottom: 0; - margin-right: 20px; - background-color: var(--accent); - border-radius: 3px; - border: 1px solid #dba718; - color: #000; - float: right; - font-weight: bold; - font-size: 12px; - text-shadow: 0 1px rgba(255, 255, 255, 0.25); - display: block; - cursor: pointer; - transition: all ease 0.2s; - padding: 0 9px; - line-height: 28px; - user-select: none; - &:hover { - background-color: var(--hoverButton-background); - transition: all ease 0.2s; - } - &:active { - background-color: var(--accent); - transition: all ease 0.0s; - box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); - } - } - a.disabled { - cursor: default; - color: #fff; - background-color: #AFAFAF; - border: 1px solid #AFAFAF; - pointer-events: none; - text-shadow: none; - opacity: 0.5; - } - } + width: 100%; + height: 30px; + background-color: #EFEFEF; + box-shadow: rgba(0, 0, 0, 0.10) 0 -3px 8px; + padding: 10px 0; + overflow: hidden; + border-top: 1px solid var(--subtleAccent); + .btn { + a { + margin-top: 0; + margin-bottom: 0; + margin-right: 20px; + background-color: var(--accent); + border-radius: 3px; + border: 1px solid #dba718; + color: #000; + float: right; + font-weight: bold; + font-size: 12px; + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + display: block; + cursor: pointer; + transition: all ease 0.2s; + padding: 0 9px; + line-height: 28px; + user-select: none; + &:hover { + background-color: var(--hoverButton-background); + transition: all ease 0.2s; + } + &:active { + background-color: var(--accent); + transition: all ease 0.0s; + box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); + } + } + a.disabled { + cursor: default; + color: #fff; + background-color: #AFAFAF; + border: 1px solid #AFAFAF; + pointer-events: none; + text-shadow: none; + opacity: 0.5; + } + } } .toolbar_scroll_bottom { - .content_wrapper { - height: 100%; - margin: 0 0 -50px; - } + .content_wrapper { + height: 100%; + margin: 0 0 -50px; + } } .toolbar_fixed_bottom { - .content_wrapper { - height: calc(100% - 90px); - overflow-y: auto; - position: initial; - } - .content_toolbar { - display: flex; - flex-wrap: wrap; - position: absolute; - bottom: 0; - left: 0; - z-index: 2000; - div { - &:first-child { - margin-left: auto; - } - } - div[style='display: none;'] { - &:first-child { - visibility: hidden; - display: block !important; - } - } - } - .content_toolbar.xs-compressed { - flex-direction: row-reverse; - div { - &:first-child { - margin-left: 0; - } - &:last-child { - margin-left: auto; - } - } - } + .content_wrapper { + height: calc(100% - 90px); + overflow-y: auto; + position: initial; + } + .content_toolbar { + display: flex; + flex-wrap: wrap; + position: absolute; + bottom: 0; + left: 0; + z-index: 2000; + div { + &:first-child { + margin-left: auto; + } + } + div[style='display: none;'] { + &:first-child { + visibility: hidden; + display: block !important; + } + } + } + .content_toolbar.xs-compressed { + flex-direction: row-reverse; + div { + &:first-child { + margin-left: 0; + } + &:last-child { + margin-left: auto; + } + } + } } .toolbar_expand_btn { - display: none; - position: absolute; - bottom: 15px; - left: 15px; - width: 20px; - height: 20px; - font-size: 20px; - line-height: 20px; - text-align: center; - z-index: 2000; + display: none; + position: absolute; + bottom: 15px; + left: 15px; + width: 20px; + height: 20px; + font-size: 20px; + line-height: 20px; + text-align: center; + z-index: 2000; } .cf_column { - min-height: 20px; - margin-bottom: 0; + min-height: 20px; + margin-bottom: 0; } .full { - float: left; - width: 100%; + float: left; + width: 100%; } .half { - float: left; - width: 50%; + float: left; + width: 50%; } .third_left { - float: left; - width: 33%; + float: left; + width: 33%; } .third_center { - display: inline-block; - width: 34%; + display: inline-block; + width: 34%; } .third_right { - float: right; - width: 33%; + float: right; + width: 33%; } .fourth { - float: left; - width: 25%; + float: left; + width: 25%; } .threefourth_right { - float: right; - width: 75%; + float: right; + width: 75%; } .threefourth_left { - float: left; - width: 75%; + float: left; + width: 75%; } .twothird { - float: left; - width: 67%; + float: left; + width: 67%; } .spacer { - padding-left: 7px; - padding-right: 7px; - width: calc(100% - 14px); - float: left; + padding-left: 7px; + padding-right: 7px; + width: calc(100% - 14px); + float: left; } .spacer_left { - padding-left: 15px; - float: left; - width: calc(100% - 15px); + padding-left: 15px; + float: left; + width: calc(100% - 15px); } .spacer_right { - padding-right: 15px; - width: calc(100% - 15px); - float: left; + padding-right: 15px; + width: calc(100% - 15px); + float: left; } .gui_box { - border: 1px solid #ccc; - border-radius: 4px; - background-color: #FFFFFF; - float: left; - width: calc(100% - 2px); - margin-bottom: 10px; + border: 1px solid #ccc; + border-radius: 4px; + background-color: #FFFFFF; + float: left; + width: calc(100% - 2px); + margin-bottom: 10px; } .gui_warning { - background: #ffdddd; - .gui_box_titlebar { - background-color: #dc0000; - background-image: linear-gradient(-45deg, rgba(255, 255, 255, .3) 10%, transparent 10%, transparent 20%, rgba(255, 255, 255, .3) 20%, rgba(255, 255, 255, .3) 30%, transparent 30%, transparent 40%, rgba(255, 255, 255, .3) 40%, rgba(255, 255, 255, .3) 50%, transparent 50%, transparent 60%, rgba(255, 255, 255, .3) 60%, rgba(255, 255, 255, .3) 70%, transparent 70%, transparent 80%, rgba(255, 255, 255, .3) 80%, rgba(255, 255, 255, .3) 90%, transparent 90%, transparent 100%, rgba(255, 255, 255, .4) 100%, transparent); - color: white; - } + background: #ffdddd; + .gui_box_titlebar { + background-color: #dc0000; + background-image: linear-gradient(-45deg, rgba(255, 255, 255, .3) 10%, transparent 10%, transparent 20%, rgba(255, 255, 255, .3) 20%, rgba(255, 255, 255, .3) 30%, transparent 30%, transparent 40%, rgba(255, 255, 255, .3) 40%, rgba(255, 255, 255, .3) 50%, transparent 50%, transparent 60%, rgba(255, 255, 255, .3) 60%, rgba(255, 255, 255, .3) 70%, transparent 70%, transparent 80%, rgba(255, 255, 255, .3) 80%, rgba(255, 255, 255, .3) 90%, transparent 90%, transparent 100%, rgba(255, 255, 255, .4) 100%, transparent); + color: white; + } } .gui_note { - background: #fff6de; - .gui_box_titlebar { - background-color: var(--accent); - background-image: linear-gradient(-45deg, rgba(255, 255, 255, .3) 10%, transparent 10%, transparent 20%, rgba(255, 255, 255, .3) 20%, rgba(255, 255, 255, .3) 30%, transparent 30%, transparent 40%, rgba(255, 255, 255, .3) 40%, rgba(255, 255, 255, .3) 50%, transparent 50%, transparent 60%, rgba(255, 255, 255, .3) 60%, rgba(255, 255, 255, .3) 70%, transparent 70%, transparent 80%, rgba(255, 255, 255, .3) 80%, rgba(255, 255, 255, .3) 90%, transparent 90%, transparent 100%, rgba(255, 255, 255, .4) 100%, transparent); - color: white; - } + background: #fff6de; + .gui_box_titlebar { + background-color: var(--accent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, .3) 10%, transparent 10%, transparent 20%, rgba(255, 255, 255, .3) 20%, rgba(255, 255, 255, .3) 30%, transparent 30%, transparent 40%, rgba(255, 255, 255, .3) 40%, rgba(255, 255, 255, .3) 50%, transparent 50%, transparent 60%, rgba(255, 255, 255, .3) 60%, rgba(255, 255, 255, .3) 70%, transparent 70%, transparent 80%, rgba(255, 255, 255, .3) 80%, rgba(255, 255, 255, .3) 90%, transparent 90%, transparent 100%, rgba(255, 255, 255, .4) 100%, transparent); + color: white; + } } .grey { - background-color: #f9f9f9; + background-color: #f9f9f9; } .gui_box_titlebar { - background-color: var(--quietHeader); - color: var(--quietText); - border-radius: 3px 3px 0 0; - font-size: 13px; - width: 100%; - height: 27px; - padding-bottom: 0; - float: left; - margin-bottom: 7px; - font-weight: 600; - .switchery { - margin-top: -3px; - } + background-color: var(--quietHeader); + color: var(--quietText); + border-radius: 3px 3px 0 0; + font-size: 13px; + width: 100%; + height: 27px; + padding-bottom: 0; + float: left; + margin-bottom: 7px; + font-weight: 600; + .switchery { + margin-top: -3px; + } } .gui_box_bottombar { - background-color: #e4e4e4; - border-radius: 0 0 3px 3px; - font-size: 13px; - width: 100%; - height: 27px; - padding-top: 0; - float: left; - font-weight: 600; + background-color: #e4e4e4; + border-radius: 0 0 3px 3px; + font-size: 13px; + width: 100%; + height: 27px; + padding-top: 0; + float: left; + font-weight: 600; } .spacer_box { - padding: 10px; - margin-bottom: 3px; + padding: 10px; + margin-bottom: 3px; } .spacer_box_title { - padding-left: 10px; - padding-right: 10px; - padding-top: 4px; - margin-bottom: 0; - float: left; + padding-left: 10px; + padding-right: 10px; + padding-top: 4px; + margin-bottom: 0; + float: left; } .fixed_band { - position: relative; - height: 50px; - background-color: #e4e4e4; - width: calc(100% + 40px); - margin-left: -20px; - box-shadow: rgba(0, 0, 0, 0.00) 0 -3px 8px; - bottom: 0; - margin-bottom: 0; - .save_btn { - a { - margin-top: 9px; - margin-bottom: 0; - margin-right: 20px; - background-color: var(--accent); - border-radius: 3px; - border: 1px solid #dba718; - color: #000; - float: right; - font-weight: bold; - font-size: 12px; - text-shadow: 0 1px rgba(0, 0, 0, 0.25); - display: block; - cursor: pointer; - transition: all ease 0.2s; - padding: 0 9px; - line-height: 28px; - &:hover { - background-color: var(--hoverButton-background); - transition: all ease 0.2s; - } - } - } + position: relative; + height: 50px; + background-color: #e4e4e4; + width: calc(100% + 40px); + margin-left: -20px; + box-shadow: rgba(0, 0, 0, 0.00) 0 -3px 8px; + bottom: 0; + margin-bottom: 0; + .save_btn { + a { + margin-top: 9px; + margin-bottom: 0; + margin-right: 20px; + background-color: var(--accent); + border-radius: 3px; + border: 1px solid #dba718; + color: #000; + float: right; + font-weight: bold; + font-size: 12px; + text-shadow: 0 1px rgba(0, 0, 0, 0.25); + display: block; + cursor: pointer; + transition: all ease 0.2s; + padding: 0 9px; + line-height: 28px; + &:hover { + background-color: var(--hoverButton-background); + transition: all ease 0.2s; + } + } + } } .default_btn { - width: 100%; - position: relative; - margin-bottom: 10px; - margin-top: 0; - float: left; - a { - padding: 5px 0 5px 0; - text-align: center; - background-color: var(--accent); - border-radius: 4px; - border: 1px solid #dba718; - color: #000; - font-weight: 600; - font-size: 12px; - line-height: 13px; - display: block; - transition: all ease 0.2s; - text-decoration: none; - cursor: pointer; - &:hover { - background-color: var(--hoverButton-background); - color: #000; - text-shadow: 0 1px rgba(255, 255, 255, 0.25); - transition: all ease 0.2s; - text-decoration: none; - } - &:active { - background-color: var(--hoverButton-background); - transition: all ease 0.0s; - box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); - } - } - a.disabled { - background-color: #f1f1f1; - border: 1px solid var(--subtleAccent); - color: #ccc; - } + width: 100%; + position: relative; + margin-bottom: 10px; + margin-top: 0; + float: left; + a { + padding: 5px 0 5px 0; + text-align: center; + background-color: var(--accent); + border-radius: 4px; + border: 1px solid #dba718; + color: #000; + font-weight: 600; + font-size: 12px; + line-height: 13px; + display: block; + transition: all ease 0.2s; + text-decoration: none; + cursor: pointer; + &:hover { + background-color: var(--hoverButton-background); + color: #000; + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + transition: all ease 0.2s; + text-decoration: none; + } + &:active { + background-color: var(--hoverButton-background); + transition: all ease 0.0s; + box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); + } + } + a.disabled { + background-color: #f1f1f1; + border: 1px solid var(--subtleAccent); + color: #ccc; + } } .margin-top5 { - margin-top: 5px; + margin-top: 5px; } .regular-button { - -webkit-user-drag: none; - margin-top: 8px; - margin-bottom: 8px; - margin-right: 10px; - background-color: var(--accent); - border-radius: 3px; - border: 1px solid #dba718; - color: #000; - font-weight: bold; - font-size: 12px; - text-shadow: 0 1px rgba(255, 255, 255, 0.25); - display: inline-block; - cursor: pointer; - transition: all ease 0.2s; - padding: 0 9px; - line-height: 28px; - user-select: none; - &:hover { - background-color: var(--hoverButton-background); - } + -webkit-user-drag: none; + margin-top: 8px; + margin-bottom: 8px; + margin-right: 10px; + background-color: var(--accent); + border-radius: 3px; + border: 1px solid #dba718; + color: #000; + font-weight: bold; + font-size: 12px; + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + display: inline-block; + cursor: pointer; + transition: all ease 0.2s; + padding: 0 9px; + line-height: 28px; + user-select: none; + &:hover { + background-color: var(--hoverButton-background); + } } .regular-button.pushed { - background-color: var(--pushedButton-background); - color: var(--pushedButton-fontColor); - border-radius: 3px; + background-color: var(--pushedButton-background); + color: var(--pushedButton-fontColor); + border-radius: 3px; } .danger-button { - -webkit-user-drag: none; - margin-top: 8px; - margin-bottom: 8px; - margin-right: 10px; - background-color: #e60000; - border-radius: 3px; - border: 1px solid #fe0000; - color: #fff; - font-weight: bold; - font-size: 12px; - text-shadow: 0 1px rgba(255, 255, 255, 0.25); - display: inline-block; - cursor: pointer; - transition: all ease 0.2s; - padding: 0 9px; - line-height: 28px; - user-select: none; - &:hover { - background-color: #f21212; - } + -webkit-user-drag: none; + margin-top: 8px; + margin-bottom: 8px; + margin-right: 10px; + background-color: #e60000; + border-radius: 3px; + border: 1px solid #fe0000; + color: #fff; + font-weight: bold; + font-size: 12px; + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + display: inline-block; + cursor: pointer; + transition: all ease 0.2s; + padding: 0 9px; + line-height: 28px; + user-select: none; + &:hover { + background-color: #f21212; + } } .danger-button.pushed { - background-color: #ff1b1b; - color: #fff; - border-radius: 3px; + background-color: #ff1b1b; + color: #fff; + border-radius: 3px; } .small { - width: auto; - position: relative; - margin-bottom: 7px; - margin-top: 0; - margin-right: 5px; - float: left; - a { - padding: 3px 4px 4px 4px; - text-align: center; - text-shadow: 0 1px rgba(0, 0, 0, 0.25); - background-color: #acacac; - border-radius: 3px; - border: 1px solid #949494; - color: #fff; - font-weight: 600; - font-size: 11px; - line-height: 11px; - display: block; - transition: all ease 0.2s; - &:hover { - background-color: var(--accent); - color: #000; - text-shadow: 0 1px rgba(255, 255, 255, 0.25); - border: 1px solid var(--accent); - transition: all ease 0.2s; - } - &:active { - background-color: #878787; - transition: all ease 0.0s; - box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); - } - } + width: auto; + position: relative; + margin-bottom: 7px; + margin-top: 0; + margin-right: 5px; + float: left; + a { + padding: 3px 4px 4px 4px; + text-align: center; + text-shadow: 0 1px rgba(0, 0, 0, 0.25); + background-color: #acacac; + border-radius: 3px; + border: 1px solid #949494; + color: #fff; + font-weight: 600; + font-size: 11px; + line-height: 11px; + display: block; + transition: all ease 0.2s; + &:hover { + background-color: var(--accent); + color: #000; + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + border: 1px solid var(--accent); + transition: all ease 0.2s; + } + &:active { + background-color: #878787; + transition: all ease 0.0s; + box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); + } + } } .green { - a { - background-color: var(--accent); - text-shadow: 0 1px rgba(255, 255, 255, 0.25); - color: #000; - border: 1px solid #dba718; - transition: all ease 0.2s; - &:hover { - background-color: #ffcc3f; - border: 1px solid #dba718; - text-shadow: 0 1px rgba(255, 255, 255, 0.25); - color: #000; - transition: all ease 0.2s; - } - } + a { + background-color: var(--accent); + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + color: #000; + border: 1px solid #dba718; + transition: all ease 0.2s; + &:hover { + background-color: #ffcc3f; + border: 1px solid #dba718; + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + color: #000; + transition: all ease 0.2s; + } + } } .cf_table { - margin-bottom: 5px; - float: left; - margin-top: -5px; - font-size: 11px; - width: 100%; - td { - border: 0; - padding-top: 2px; - padding-bottom: 5px; - &:last-child { - text-align: right; - } - } - tr { - &:not(:last-child) { - td { - border-bottom: dotted 1px var(--subtleAccent); - } - } - &:last-child { - td { - border: none; - } - } - } + margin-bottom: 5px; + float: left; + margin-top: -5px; + font-size: 11px; + width: 100%; + td { + border: 0; + padding-top: 2px; + padding-bottom: 5px; + &:last-child { + text-align: right; + } + } + tr { + &:not(:last-child) { + td { + border-bottom: dotted 1px var(--subtleAccent); + } + } + &:last-child { + td { + border: none; + } + } + } } .third { - width: 33%; + width: 33%; } .gps_false { - background-color: #FF0004; - padding: 1px 7px 2px 7px; - border-radius: 3px; - color: #FFFFFF; - font-size: 11px; - margin-left: 3px; + background-color: #FF0004; + padding: 1px 7px 2px 7px; + border-radius: 3px; + color: #FFFFFF; + font-size: 11px; + margin-left: 3px; } .gps_true { - background-color: var(--accent); - padding: 1px 7px 2px 7px; - border-radius: 3px; - color: #FFFFFF; - font-size: 11px; - margin-left: 3px; + background-color: var(--accent); + padding: 1px 7px 2px 7px; + border-radius: 3px; + color: #FFFFFF; + font-size: 11px; + margin-left: 3px; } .tab-setup { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-landing { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-adjustments { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-auxiliary { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-cli { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-configuration { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-failsafe { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-firmware_flasher { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-gps { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-help { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-led-strip { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-logging { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-modes { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-motors { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-pid_tuning { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-ports { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-receiver { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-sensors { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-servos { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-osd { - height: 100%; - position: relative; + height: 100%; + position: relative; } .tab-power { - height: 100%; - position: relative; + height: 100%; + position: relative; } .properties { - width: 800px; - dl { - width: 200px; - } - dd { - width: 400px; - height: auto; - } + width: 800px; + dl { + width: 200px; + } + dd { + width: 400px; + height: auto; + } } .colorToggle { background-color: #e60000; @@ -1730,887 +1730,887 @@ dialog { border-radius: 3px; color: #fff; font-size: 10px; - &.ready { - background-color: #56ac1d; - } + &.ready { + background-color: #56ac1d; + } } .buildInfoBtn { - position: relative; - margin: 4px; - float: right; - a { - padding: 2px 5px 2px 5px; - text-align: center; - background-color: var(--accent); - border-radius: 4px; - border: 1px solid #dba718; - color: #000; - font-weight: 600; - font-size: 10px; - line-height: 11px; - display: block; - transition: all ease 0.2s; - text-decoration: none; - cursor: pointer; - &:hover { - background-color: var(--hoverButton-background); - color: #000; - text-shadow: 0 1px rgba(255, 255, 255, 0.25); - transition: all ease 0.2s; - text-decoration: none; - } - &:active { - background-color: var(--hoverButton-background); - transition: all ease 0.0s; - box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); - } - } - a.disabled { - background-color: #f1f1f1; - border: 1px solid var(--subtleAccent); - color: #ccc; - } + position: relative; + margin: 4px; + float: right; + a { + padding: 2px 5px 2px 5px; + text-align: center; + background-color: var(--accent); + border-radius: 4px; + border: 1px solid #dba718; + color: #000; + font-weight: 600; + font-size: 10px; + line-height: 11px; + display: block; + transition: all ease 0.2s; + text-decoration: none; + cursor: pointer; + &:hover { + background-color: var(--hoverButton-background); + color: #000; + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + transition: all ease 0.2s; + text-decoration: none; + } + &:active { + background-color: var(--hoverButton-background); + transition: all ease 0.0s; + box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); + } + } + a.disabled { + background-color: #f1f1f1; + border: 1px solid var(--subtleAccent); + color: #ccc; + } } .buildInfoClassOptions { - margin-bottom: 0px; - margin-top: 3px; - float: right; - background-color: grey; - padding: 2px 5px 2px 5px; - border-radius: 4px; - color: #fff; - font-size: 10px; + margin-bottom: 0px; + margin-top: 3px; + float: right; + background-color: grey; + padding: 2px 5px 2px 5px; + border-radius: 4px; + color: #fff; + font-size: 10px; } .cf_tooltiptext { - display: none; + display: none; } .bottomStatusIcons { - display: flex; - justify-content: space-between; - background-color: #272727; - height: 31px; - margin-top: 2px; - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; + display: flex; + justify-content: space-between; + background-color: #272727; + height: 31px; + margin-top: 2px; + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; } button { - padding: .5em .75em; - border-radius: 4px; - background-color: #ccc; - color: #666; - border: 1px solid var(--subtleAccent); - font-weight: 600; - font-size: 10pt; - cursor: pointer; + padding: .5em .75em; + border-radius: 4px; + background-color: #ccc; + color: #666; + border: 1px solid var(--subtleAccent); + font-weight: 600; + font-size: 10pt; + cursor: pointer; } button.active { - background-color: var(--accent); - border: 1px solid #dba718; - color: #000; + background-color: var(--accent); + border: 1px solid #dba718; + color: #000; } .jBox-Tooltip { - max-width: 180px; + max-width: 180px; } .jBox-Widetip { - max-width: 300px; + max-width: 300px; } .hidden { - display: none; + display: none; } .darkgrey_box { - background-color: #575757; - color: white; + background-color: #575757; + color: white; } .topBorderLine { - border-top: 1px solid var(--subtleAccent); - padding-top: 5px; + border-top: 1px solid var(--subtleAccent); + padding-top: 5px; } .jBox-container { - background: #fff; - border: 1px solid var(--accent); - font-size: 11px; - line-height: 13px; - color: #525352; + background: #fff; + border: 1px solid var(--accent); + font-size: 11px; + line-height: 13px; + color: #525352; } .jBox-content { - padding: 4px 5px; + padding: 4px 5px; } .jBox-Modal { - .jBox-content { - padding: 10px 15px; - } + .jBox-content { + padding: 10px 15px; + } } .jBox-pointer-top { - width: 22px; - height: 10px; + width: 22px; + height: 10px; } .jBox-pointer-bottom { - width: 22px; - height: 10px; + width: 22px; + height: 10px; } .jBox-pointer-left { - width: 10px; - height: 20px; + width: 10px; + height: 20px; } .jBox-pointer-right { - width: 10px; - height: 20px; + width: 10px; + height: 20px; } .jBox-pointer { - &:after { - width: 10px; - height: 9px; - border: 1px solid var(--accent); - } + &:after { + width: 10px; + height: 9px; + border: 1px solid var(--accent); + } } #dialogResetToCustomDefaults-content { - margin-top: 10px; - margin-bottom: 10px; + margin-top: 10px; + margin-bottom: 10px; } #dialogReportProblems-header { - margin-top: 10px; - margin-bottom: 5px; + margin-top: 10px; + margin-bottom: 5px; } .dialogReportProblems-listItem { - list-style: circle; - margin-left: 20px; - margin-bottom: 5px; + list-style: circle; + margin-left: 20px; + margin-bottom: 5px; } #dialogReportProblems-footer { - margin-bottom: 10px; + margin-bottom: 10px; } .noUi-target { - background: var(--alternativeBackground); - border-color: var(--subtleAccent); - box-shadow: none; + background: var(--alternativeBackground); + border-color: var(--subtleAccent); + box-shadow: none; } .noUi-handle { - background: var(--sideBackground); - border-color: var(--subtleAccent); - box-shadow: none; - &:before { - background-color: var(--subtleAccent); - } - &:after { - background-color: var(--subtleAccent); - } + background: var(--sideBackground); + border-color: var(--subtleAccent); + box-shadow: none; + &:before { + background-color: var(--subtleAccent); + } + &:after { + background-color: var(--subtleAccent); + } } .noUi-background { - background: var(--alternativeBackground); - box-shadow: none; + background: var(--alternativeBackground); + box-shadow: none; } .noUi-connect { - box-shadow: none; + box-shadow: none; } .grid-row { - width: 100%; - display: flex; - flex-wrap: wrap; - justify-content: space-between; - box-sizing: border-box; + width: 100%; + display: flex; + flex-wrap: wrap; + justify-content: space-between; + box-sizing: border-box; } .grid-col { - margin-left: 7px; - margin-right: 7px; - &:first-child { - margin-left: 0; - } - &:last-child { - margin-right: 0; - } + margin-left: 7px; + margin-right: 7px; + &:first-child { + margin-left: 0; + } + &:last-child { + margin-right: 0; + } } .grid-col.col1 { - width: calc(8.33% - 14px); - &:first-child { - width: calc(8.33% - 7px); - } - &:last-child { - width: calc(8.33% - 7px); - } + width: calc(8.33% - 14px); + &:first-child { + width: calc(8.33% - 7px); + } + &:last-child { + width: calc(8.33% - 7px); + } } .grid-col.col2 { - width: calc(16.67% - 14px); - &:first-child { - width: calc(16.67% - 7px); - } - &:last-child { - width: calc(16.67% - 7px); - } + width: calc(16.67% - 14px); + &:first-child { + width: calc(16.67% - 7px); + } + &:last-child { + width: calc(16.67% - 7px); + } } .grid-col.col3 { - width: calc(25% - 14px); - &:first-child { - width: calc(25% - 7px); - } - &:last-child { - width: calc(25% - 7px); - } + width: calc(25% - 14px); + &:first-child { + width: calc(25% - 7px); + } + &:last-child { + width: calc(25% - 7px); + } } .grid-col.col4 { - width: calc(33.33% - 14px); - &:first-child { - width: calc(33.33% - 7px); - } - &:last-child { - width: calc(33.33% - 7px); - } + width: calc(33.33% - 14px); + &:first-child { + width: calc(33.33% - 7px); + } + &:last-child { + width: calc(33.33% - 7px); + } } .grid-col.col5 { - width: calc(41.67% - 14px); - &:first-child { - width: calc(41.67% - 7px); - } - &:last-child { - width: calc(41.67% - 7px); - } + width: calc(41.67% - 14px); + &:first-child { + width: calc(41.67% - 7px); + } + &:last-child { + width: calc(41.67% - 7px); + } } .grid-col.col6 { - width: calc(50% - 14px); - &:first-child { - width: calc(50% - 7px); - } - &:last-child { - width: calc(50% - 7px); - } + width: calc(50% - 14px); + &:first-child { + width: calc(50% - 7px); + } + &:last-child { + width: calc(50% - 7px); + } } .grid-col.col7 { - width: calc(58.33% - 14px); - &:first-child { - width: calc(58.33% - 7px); - } - &:last-child { - width: calc(58.33% - 7px); - } + width: calc(58.33% - 14px); + &:first-child { + width: calc(58.33% - 7px); + } + &:last-child { + width: calc(58.33% - 7px); + } } .grid-col.col8 { - width: calc(66.67% - 14px); - &:first-child { - width: calc(66.67% - 7px); - } - &:last-child { - width: calc(66.67% - 7px); - } + width: calc(66.67% - 14px); + &:first-child { + width: calc(66.67% - 7px); + } + &:last-child { + width: calc(66.67% - 7px); + } } .grid-col.col9 { - width: calc(75% - 14px); - &:first-child { - width: calc(75% - 7px); - } - &:last-child { - width: calc(75% - 7px); - } + width: calc(75% - 14px); + &:first-child { + width: calc(75% - 7px); + } + &:last-child { + width: calc(75% - 7px); + } } .grid-col.col10 { - width: calc(83.33% - 14px); - &:first-child { - width: calc(83.33% - 7px); - } - &:last-child { - width: calc(83.33% - 7px); - } + width: calc(83.33% - 14px); + &:first-child { + width: calc(83.33% - 7px); + } + &:last-child { + width: calc(83.33% - 7px); + } } .grid-col.col11 { - width: calc(91.67% - 14px); - &:first-child { - width: calc(91.67% - 7px); - } - &:last-child { - width: calc(91.67% - 7px); - } + width: calc(91.67% - 14px); + &:first-child { + width: calc(91.67% - 7px); + } + &:last-child { + width: calc(91.67% - 7px); + } } .grid-col.col12 { - width: calc(100% - 14px); - &:first-child { - width: calc(100% - 7px); - } - &:last-child { - width: calc(100% - 7px); - } + width: calc(100% - 14px); + &:first-child { + width: calc(100% - 7px); + } + &:last-child { + width: calc(100% - 7px); + } } @media all and (max-width: 575px) { - #side_menu_swipe { - display: block; - } - .visible-on-desktop-only { - display: none !important; - } - .headerbar { - height: 56px; - background: rgba(0, 0, 0, 0.15); - flex-wrap: wrap; - align-content: flex-start; - padding-top: 12px; - box-sizing: border-box; - transition: all 0.2s; - } - .headerbar.expand { - height: 154px; - } - .headerbar.expand2 { - height: 118px; - } - #menu_btn { - display: block; - order: 1; - } - #reveal_btn { - display: block; - order: 4; - } - #header_btns { - margin-left: auto; - order: 3; - } - .open_firmware_flasher { - width: 31px; - height: 31px; - margin-left: 15px; - } - .connect_controls { - width: 31px; - height: 31px; - margin-left: 15px; - } - .firmware_b { - margin: 0; - zoom: 0.6; - } - .connect_b { - margin: 0; - zoom: 0.6; - } - #port-picker { - display: none !important; - order: 5; - justify-content: space-between; - margin-top: 15px; - transition: all 0.2s; - } - .header-wrapper { - display: none !important; - order: 5; - zoom: 62%; - justify-content: space-around; - } - .flash_state { - display: none !important; - } - .connect_state { - display: none !important; - } - #port-picker.reveal { - display: flex !important; - width: 100%; - margin-left: 0; - } - #port-override-option { - flex-grow: 1; - } - #portsinput { - flex-grow: 1; - margin-right: 0; - } - #port-override { - width: calc(100% - 40px); - } - .header-wrapper.reveal { - display: flex !important; - width: 100%; - margin-top: 24px; - } - #dataflash_wrapper_global { - margin-right: 0; - } - #sensor-status { - margin-right: 0; - } - #quad-status_wrapper { - margin-right: 0; - } - #log.active { - box-shadow: none; - } - .logswitch { - background-color: #242424; - } - #scrollicon { - display: none; - } - #tab-content-container { - height: calc(100% - 83px); - } - #tab-content-container.logopen { - height: calc(100% - 167px); - } - #tab-content-container.header_expanded { - height: calc(100% - 181px); - } - #tab-content-container.header_expanded2 { - height: calc(100% - 145px); - } - #tab-content-container.logopen.header_expanded { - height: calc(100% - 265px); - } - #tab-content-container.logopen.header_expanded2 { - height: calc(100% - 229px); - } - .tab_container { - position: fixed; - z-index: 2000; - top: 0; - left: -304px; - bottom: 0; - width: 300px !important; - transition: all 0.3s; - } - .tab_container.reveal { - left: 0; - } - #content { - width: 100% !important; - } - dialog { - position: fixed; - width: calc(100% - 2em - 2px) !important; - max-width: unset; - height: auto !important; - bottom: 0; - top: 56px; - border-radius: unset; - border: none; - overflow: auto; - } - .toolbar_fixed_bottom { - .content_toolbar.xs-compressed { - padding-left: 60px; - box-sizing: border-box; - height: 50px; - div { - margin-bottom: 10px; - } - } - .content_toolbar.xs-compressed.expanded { - padding-left: 15px; - padding-bottom: 0; - height: auto; - } - .content_toolbar { - justify-content: flex-end; - div { - padding-bottom: 8px; - } - } - } - .toolbar_expand_btn { - display: block; - } - .content_toolbar { - height: auto; - padding: 8px 0 0; - } - .sm { - display: none !important; - } - .md { - display: none !important; - } - .lg { - display: none !important; - } - .xl { - display: none !important; - } - .grid-col.col1 { - width: 100% !important; - margin-left: 0 !important; - margin-right: 0 !important; - } - .grid-col.col2 { - width: 100% !important; - margin-left: 0 !important; - margin-right: 0 !important; - } - .grid-col.col3 { - width: 100% !important; - margin-left: 0 !important; - margin-right: 0 !important; - } - .grid-col.col4 { - width: 100% !important; - margin-left: 0 !important; - margin-right: 0 !important; - } - .grid-col.col5 { - width: 100% !important; - margin-left: 0 !important; - margin-right: 0 !important; - } - .grid-col.col6 { - width: 100% !important; - margin-left: 0 !important; - margin-right: 0 !important; - } - .grid-col.col7 { - width: 100% !important; - margin-left: 0 !important; - margin-right: 0 !important; - } - .grid-col.col8 { - width: 100% !important; - margin-left: 0 !important; - margin-right: 0 !important; - } - .grid-col.col9 { - width: 100% !important; - margin-left: 0 !important; - margin-right: 0 !important; - } - .grid-col.col10 { - width: 100% !important; - margin-left: 0 !important; - margin-right: 0 !important; - } - .grid-col.col11 { - width: 100% !important; - margin-left: 0 !important; - margin-right: 0 !important; - } - .grid-col.col12 { - width: 100% !important; - margin-left: 0 !important; - margin-right: 0 !important; - } + #side_menu_swipe { + display: block; + } + .visible-on-desktop-only { + display: none !important; + } + .headerbar { + height: 56px; + background: rgba(0, 0, 0, 0.15); + flex-wrap: wrap; + align-content: flex-start; + padding-top: 12px; + box-sizing: border-box; + transition: all 0.2s; + } + .headerbar.expand { + height: 154px; + } + .headerbar.expand2 { + height: 118px; + } + #menu_btn { + display: block; + order: 1; + } + #reveal_btn { + display: block; + order: 4; + } + #header_btns { + margin-left: auto; + order: 3; + } + .open_firmware_flasher { + width: 31px; + height: 31px; + margin-left: 15px; + } + .connect_controls { + width: 31px; + height: 31px; + margin-left: 15px; + } + .firmware_b { + margin: 0; + zoom: 0.6; + } + .connect_b { + margin: 0; + zoom: 0.6; + } + #port-picker { + display: none !important; + order: 5; + justify-content: space-between; + margin-top: 15px; + transition: all 0.2s; + } + .header-wrapper { + display: none !important; + order: 5; + zoom: 62%; + justify-content: space-around; + } + .flash_state { + display: none !important; + } + .connect_state { + display: none !important; + } + #port-picker.reveal { + display: flex !important; + width: 100%; + margin-left: 0; + } + #port-override-option { + flex-grow: 1; + } + #portsinput { + flex-grow: 1; + margin-right: 0; + } + #port-override { + width: calc(100% - 40px); + } + .header-wrapper.reveal { + display: flex !important; + width: 100%; + margin-top: 24px; + } + #dataflash_wrapper_global { + margin-right: 0; + } + #sensor-status { + margin-right: 0; + } + #quad-status_wrapper { + margin-right: 0; + } + #log.active { + box-shadow: none; + } + .logswitch { + background-color: #242424; + } + #scrollicon { + display: none; + } + #tab-content-container { + height: calc(100% - 83px); + } + #tab-content-container.logopen { + height: calc(100% - 167px); + } + #tab-content-container.header_expanded { + height: calc(100% - 181px); + } + #tab-content-container.header_expanded2 { + height: calc(100% - 145px); + } + #tab-content-container.logopen.header_expanded { + height: calc(100% - 265px); + } + #tab-content-container.logopen.header_expanded2 { + height: calc(100% - 229px); + } + .tab_container { + position: fixed; + z-index: 2000; + top: 0; + left: -304px; + bottom: 0; + width: 300px !important; + transition: all 0.3s; + } + .tab_container.reveal { + left: 0; + } + #content { + width: 100% !important; + } + dialog { + position: fixed; + width: calc(100% - 2em - 2px) !important; + max-width: unset; + height: auto !important; + bottom: 0; + top: 56px; + border-radius: unset; + border: none; + overflow: auto; + } + .toolbar_fixed_bottom { + .content_toolbar.xs-compressed { + padding-left: 60px; + box-sizing: border-box; + height: 50px; + div { + margin-bottom: 10px; + } + } + .content_toolbar.xs-compressed.expanded { + padding-left: 15px; + padding-bottom: 0; + height: auto; + } + .content_toolbar { + justify-content: flex-end; + div { + padding-bottom: 8px; + } + } + } + .toolbar_expand_btn { + display: block; + } + .content_toolbar { + height: auto; + padding: 8px 0 0; + } + .sm { + display: none !important; + } + .md { + display: none !important; + } + .lg { + display: none !important; + } + .xl { + display: none !important; + } + .grid-col.col1 { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + .grid-col.col2 { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + .grid-col.col3 { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + .grid-col.col4 { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + .grid-col.col5 { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + .grid-col.col6 { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + .grid-col.col7 { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + .grid-col.col8 { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + .grid-col.col9 { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + .grid-col.col10 { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + .grid-col.col11 { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } + .grid-col.col12 { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; + } } @media all and (min-width: 1125px) { - .open_firmware_flasher { - width: 100px; - } - .connect_controls { - width: 100px; - } - .firmware_b { - margin: 0 24px; - } - .connect_b { - margin: 0 24px; - } - #sensor-status { - margin-right: 20px; - } - #dataflash_wrapper_global { - margin-right: 10px; - } - #quad-status_wrapper { - margin-right: 20px; - } + .open_firmware_flasher { + width: 100px; + } + .connect_controls { + width: 100px; + } + .firmware_b { + margin: 0 24px; + } + .connect_b { + margin: 0 24px; + } + #sensor-status { + margin-right: 20px; + } + #dataflash_wrapper_global { + margin-right: 10px; + } + #quad-status_wrapper { + margin-right: 20px; + } } @media not all and (max-width: 575px) { - .visible-on-phone-only { - display: none !important; - } + .visible-on-phone-only { + display: none !important; + } } @media only screen and (max-height: 750px) { - .tab_container { - overflow-x: hidden; - overflow-y: auto; - } + .tab_container { + overflow-x: hidden; + overflow-y: auto; + } } @media only screen and (max-device-height: 750px) { - .tab_container { - overflow-x: hidden; - overflow-y: auto; - } + .tab_container { + overflow-x: hidden; + overflow-y: auto; + } } @media only screen and (max-width: 1055px) { - #tabs { - li { - a { - font-weight: normal; - font-size: 12px; - padding-left: 60px; - padding-top: 6px; - padding-bottom: 2px; - content: ""; - text-shadow: none; - transition: none; - text-overflow: clip; - white-space: nowrap; - overflow: hidden; - } - } - } - .tab_container { - width: 42px; - } - #content { - width: calc(100% - 42px); - } - .content_wrapper { - padding: 15px 15px 15px 14px; - } - .tab_title { - font-size: 16px; - line-height: 18px; - font-weight: 300; - margin-bottom: 10px; - height: 22px; - } - .cf_doc_version_bt { - a { - padding: 1px 5px 1px 5px; - margin-top: -35px; - font-size: 9px; - line-height: 15px; - } - } - .cf_table { - td { - padding-top: 2px; - padding-bottom: 2px; - } - } - .default_btn { - margin-bottom: 10px; - } - .gui_box .gui_box_titlebar { - font-size: 12px; - height: 24px; - padding-bottom: 0; - margin-bottom: 5px; - float: left; - .switchery { - margin-top: -3px; - } - .helpicon { - margin-top: 1px; - } - } - .spacer_box_title { - padding-left: 10px; - padding-right: 10px; - padding-top: 3px; - margin-bottom: 0; - float: left; - } - input { - font-size: 11px !important; - } - .helpicon { - float: right; - margin-top: 5px; - margin-right: 7px; - height: 14px; - width: 14px; - transition: none; - } - .gps_false { - padding: 0 3px 0 3px; - font-size: 10px; - } - .gps_true { - padding: 0 3px 0 3px; - font-size: 10px; - } - .content_toolbar { - .btn { - a { - margin-right: 15px; - } - } - } - .toolbar_fixed_bottom { - .content_wrapper { - height: calc(100% - 81px); - overflow-y: auto; - position: initial; - } - } + #tabs { + li { + a { + font-weight: normal; + font-size: 12px; + padding-left: 60px; + padding-top: 6px; + padding-bottom: 2px; + content: ""; + text-shadow: none; + transition: none; + text-overflow: clip; + white-space: nowrap; + overflow: hidden; + } + } + } + .tab_container { + width: 42px; + } + #content { + width: calc(100% - 42px); + } + .content_wrapper { + padding: 15px 15px 15px 14px; + } + .tab_title { + font-size: 16px; + line-height: 18px; + font-weight: 300; + margin-bottom: 10px; + height: 22px; + } + .cf_doc_version_bt { + a { + padding: 1px 5px 1px 5px; + margin-top: -35px; + font-size: 9px; + line-height: 15px; + } + } + .cf_table { + td { + padding-top: 2px; + padding-bottom: 2px; + } + } + .default_btn { + margin-bottom: 10px; + } + .gui_box .gui_box_titlebar { + font-size: 12px; + height: 24px; + padding-bottom: 0; + margin-bottom: 5px; + float: left; + .switchery { + margin-top: -3px; + } + .helpicon { + margin-top: 1px; + } + } + .spacer_box_title { + padding-left: 10px; + padding-right: 10px; + padding-top: 3px; + margin-bottom: 0; + float: left; + } + input { + font-size: 11px !important; + } + .helpicon { + float: right; + margin-top: 5px; + margin-right: 7px; + height: 14px; + width: 14px; + transition: none; + } + .gps_false { + padding: 0 3px 0 3px; + font-size: 10px; + } + .gps_true { + padding: 0 3px 0 3px; + font-size: 10px; + } + .content_toolbar { + .btn { + a { + margin-right: 15px; + } + } + } + .toolbar_fixed_bottom { + .content_wrapper { + height: calc(100% - 81px); + overflow-y: auto; + position: initial; + } + } } @media only screen and (max-device-width: 1055px) { - #tabs { - li { - a { - font-weight: normal; - font-size: 12px; - padding-left: 60px; - padding-top: 6px; - padding-bottom: 2px; - content: ""; - text-shadow: none; - transition: none; - text-overflow: clip; - white-space: nowrap; - overflow: hidden; - } - } - } - .tab_container { - width: 42px; - } - #content { - width: calc(100% - 42px); - } - .content_wrapper { - padding: 15px 15px 15px 14px; - } - .tab_title { - font-size: 16px; - line-height: 18px; - font-weight: 300; - margin-bottom: 10px; - height: 22px; - } - .cf_doc_version_bt { - a { - padding: 1px 5px 1px 5px; - margin-top: -35px; - font-size: 9px; - line-height: 15px; - } - } - .cf_table { - td { - padding-top: 2px; - padding-bottom: 2px; - } - } - .default_btn { - margin-bottom: 10px; - } - .gui_box_titlebar { - font-size: 12px; - height: 24px; - padding-bottom: 0; - margin-bottom: 5px; - float: left; - .switchery { - margin-top: -3px; - } - } - .spacer_box_title { - padding-left: 10px; - padding-right: 10px; - padding-top: 3px; - margin-bottom: 0; - float: left; - } - input { - font-size: 11px !important; - } - .helpicon { - float: right; - margin-top: 5px; - margin-right: 7px; - height: 14px; - width: 14px; - transition: none; - } - .gps_false { - padding: 0 3px 0 3px; - font-size: 10px; - } - .gps_true { - padding: 0 3px 0 3px; - font-size: 10px; - } - .content_toolbar { - .btn { - a { - margin-right: 15px; - } - } - } - .toolbar_fixed_bottom { - .content_wrapper { - height: calc(100% - 81px); - overflow-y: auto; - position: initial; - } - } + #tabs { + li { + a { + font-weight: normal; + font-size: 12px; + padding-left: 60px; + padding-top: 6px; + padding-bottom: 2px; + content: ""; + text-shadow: none; + transition: none; + text-overflow: clip; + white-space: nowrap; + overflow: hidden; + } + } + } + .tab_container { + width: 42px; + } + #content { + width: calc(100% - 42px); + } + .content_wrapper { + padding: 15px 15px 15px 14px; + } + .tab_title { + font-size: 16px; + line-height: 18px; + font-weight: 300; + margin-bottom: 10px; + height: 22px; + } + .cf_doc_version_bt { + a { + padding: 1px 5px 1px 5px; + margin-top: -35px; + font-size: 9px; + line-height: 15px; + } + } + .cf_table { + td { + padding-top: 2px; + padding-bottom: 2px; + } + } + .default_btn { + margin-bottom: 10px; + } + .gui_box_titlebar { + font-size: 12px; + height: 24px; + padding-bottom: 0; + margin-bottom: 5px; + float: left; + .switchery { + margin-top: -3px; + } + } + .spacer_box_title { + padding-left: 10px; + padding-right: 10px; + padding-top: 3px; + margin-bottom: 0; + float: left; + } + input { + font-size: 11px !important; + } + .helpicon { + float: right; + margin-top: 5px; + margin-right: 7px; + height: 14px; + width: 14px; + transition: none; + } + .gps_false { + padding: 0 3px 0 3px; + font-size: 10px; + } + .gps_true { + padding: 0 3px 0 3px; + font-size: 10px; + } + .content_toolbar { + .btn { + a { + margin-right: 15px; + } + } + } + .toolbar_fixed_bottom { + .content_wrapper { + height: calc(100% - 81px); + overflow-y: auto; + position: initial; + } + } } @media all and (min-width: 576px) and (max-width: 767px) { - .xs { - display: none !important; - } - .md { - display: none !important; - } - .lg { - display: none !important; - } - .xl { - display: none !important; - } + .xs { + display: none !important; + } + .md { + display: none !important; + } + .lg { + display: none !important; + } + .xl { + display: none !important; + } } @media all and (min-width: 768px) and (max-width: 991px) { - .xs { - display: none !important; - } - .sm { - display: none !important; - } - .lg { - display: none !important; - } - .xl { - display: none !important; - } + .xs { + display: none !important; + } + .sm { + display: none !important; + } + .lg { + display: none !important; + } + .xl { + display: none !important; + } } @media all and (min-width: 992px) and (max-width: 1139px) { - .xs { - display: none !important; - } - .sm { - display: none !important; - } - .md { - display: none !important; - } - .xl { - display: none !important; - } + .xs { + display: none !important; + } + .sm { + display: none !important; + } + .md { + display: none !important; + } + .xl { + display: none !important; + } } @media all and (min-width: 1140px) { - .xs { - display: none !important; - } - .sm { - display: none !important; - } - .md { - display: none !important; - } - .lg { - display: none !important; - } + .xs { + display: none !important; + } + .sm { + display: none !important; + } + .md { + display: none !important; + } + .lg { + display: none !important; + } } @media all and (min-width: 576px) { - .sm-max { - display: none !important; - } + .sm-max { + display: none !important; + } } @media all and (min-width: 768px) { - .md-max { - display: none !important; - } + .md-max { + display: none !important; + } } @media all and (min-width: 992px) { - .lg-max { - display: none !important; - } + .lg-max { + display: none !important; + } } @media all and (max-width: 1139px) { - .lg-min { - display: none !important; - } + .lg-min { + display: none !important; + } } @media all and (max-width: 991px) { - .md-min { - display: none !important; - } + .md-min { + display: none !important; + } } @media all and (max-width: 767px) { - .sm-min { - display: none !important; - } + .sm-min { + display: none !important; + } } diff --git a/src/css/main_cordova.less b/src/css/main_cordova.less index 0afb17ca4d..126b3a633d 100644 --- a/src/css/main_cordova.less +++ b/src/css/main_cordova.less @@ -1,109 +1,109 @@ * { - box-sizing: border-box; - margin: 0; - padding: 0; + box-sizing: border-box; + margin: 0; + padding: 0; } html { - width: 100%; - height: 100%; + width: 100%; + height: 100%; } body { - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - font-family: 'Open Sans', 'Segoe UI', Tahoma, sans-serif; - font-size: 12px; - color: #303030; - background-color: #3d3f3e; + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + font-family: 'Open Sans', 'Segoe UI', Tahoma, sans-serif; + font-size: 12px; + color: #303030; + background-color: #3d3f3e; } #loading { - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - background: #ffffff; - p { - font-weight: bold; - margin-top: 20px; - } + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background: #ffffff; + p { + font-weight: bold; + margin-top: 20px; + } } #webview_troubleshooting { - width: 100%; - height: 100%; - display: none; - background: #ffffff; - padding: 20px; + width: 100%; + height: 100%; + display: none; + background: #ffffff; + padding: 20px; } #headerbar { - display: flex; - align-items: center; - justify-content: center; - height: 56px; - padding: 0 20px; - background: rgba(0, 0, 0, 0.15); - img { - height: 20px; - } + display: flex; + align-items: center; + justify-content: center; + height: 56px; + padding: 0 20px; + background: rgba(0, 0, 0, 0.15); + img { + height: 20px; + } } #webview_apps { - list-style: inside; + list-style: inside; } #webview_step_btn1 { - margin-top: 10px; + margin-top: 10px; } #webview_step_btn2 { - margin-top: 10px; - display: none; + margin-top: 10px; + display: none; } .box { - border: 1px solid #ccc; - border-radius: 4px; - width: 100%; - margin-bottom: 20px; - background-color: #f9f9f9; - overflow: hidden; - .box_titlebar { - width: 100%; - background-color: #828885; - color: #ffffff; - font-size: 13px; - height: 27px; - line-height: 27px; - font-weight: 600; - padding: 0 10px; - } - .box_titlebar.warning { - background-color: #ffbb00; - } - .box_body { - padding: 10px; - } + border: 1px solid #ccc; + border-radius: 4px; + width: 100%; + margin-bottom: 20px; + background-color: #f9f9f9; + overflow: hidden; + .box_titlebar { + width: 100%; + background-color: #828885; + color: #ffffff; + font-size: 13px; + height: 27px; + line-height: 27px; + font-weight: 600; + padding: 0 10px; + } + .box_titlebar.warning { + background-color: #ffbb00; + } + .box_body { + padding: 10px; + } } .divider { - margin: 10px 0 9px 0; - border-top: 1px solid #ccc; + margin: 10px 0 9px 0; + border-top: 1px solid #ccc; } .btn { - padding: 5px; - text-align: center; - background-color: #ffbb00; - border-radius: 4px; - border: 1px solid #dba718; - color: #ffffff; - font-weight: 600; - font-size: 12px; - line-height: 13px; - transition: all ease 0.2s; - &:hover { - background-color: #ffcc3f; - text-shadow: 0 1px rgba(255, 255, 255, 0.25); - } - &:focus { - outline: none; - background-color: #ffcc3f; - box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); - } + padding: 5px; + text-align: center; + background-color: #ffbb00; + border-radius: 4px; + border: 1px solid #dba718; + color: #ffffff; + font-weight: 600; + font-size: 12px; + line-height: 13px; + transition: all ease 0.2s; + &:hover { + background-color: #ffcc3f; + text-shadow: 0 1px rgba(255, 255, 255, 0.25); + } + &:focus { + outline: none; + background-color: #ffcc3f; + box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); + } } diff --git a/src/css/select2_custom.less b/src/css/select2_custom.less index 0fc39e5924..4901c76349 100644 --- a/src/css/select2_custom.less +++ b/src/css/select2_custom.less @@ -1,39 +1,39 @@ /* Select 2 replacement styles */ .select2 { - font-family: Arial, Helvetica, sans-serif; - font-weight: 400; - font-size: 13.3333px; + font-family: Arial, Helvetica, sans-serif; + font-weight: 400; + font-size: 13.3333px; } .select2-selection__rendered { - line-height: 18px !important; - padding-left: 4px !important; - color: var(--defaultText) !important; - border-radius: 2px !important; + line-height: 18px !important; + padding-left: 4px !important; + color: var(--defaultText) !important; + border-radius: 2px !important; } .select2-container { - .select2-selection--single { - height: 20px !important; - border-radius: 3px !important; - border: 1px solid var(--subtleAccent) !important; - cursor: default !important; - } + .select2-selection--single { + height: 20px !important; + border-radius: 3px !important; + border: 1px solid var(--subtleAccent) !important; + cursor: default !important; + } } .select2-selection__arrow { - height: 19px !important; - top: 0 !important; - b { - height: 5px !important; - width: 5px !important; - margin-left: -2px !important; - margin-top: -5px !important; - border: none !important; - border-bottom: 1.5px solid black !important; - border-right: 1.5px solid black !important; - transform: rotateZ(45deg); - } + height: 19px !important; + top: 0 !important; + b { + height: 5px !important; + width: 5px !important; + margin-left: -2px !important; + margin-top: -5px !important; + border: none !important; + border-bottom: 1.5px solid black !important; + border-right: 1.5px solid black !important; + transform: rotateZ(45deg); + } } .select2-dropdown { - border: 0.5px solid var(--subtleAccent) !important; - border-top: none !important; - border-radius: 2px !important; + border: 0.5px solid var(--subtleAccent) !important; + border-top: none !important; + border-radius: 2px !important; } diff --git a/src/css/switchery_custom.less b/src/css/switchery_custom.less index 385d7fe4d7..6f818b0971 100644 --- a/src/css/switchery_custom.less +++ b/src/css/switchery_custom.less @@ -1,60 +1,60 @@ /* Switchery sizes. */ .switchery { - height: 14px; - width: 45px; - z-index: 1000; - opacity: 1 !important; - -moz-user-select: none; - -khtml-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - box-sizing: content-box; - background-clip: content-box; - >small { - height: 14px; - width: 14px; - } + height: 14px; + width: 45px; + z-index: 1000; + opacity: 1 !important; + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + box-sizing: content-box; + background-clip: content-box; + >small { + height: 14px; + width: 14px; + } } .switcherymid { - background-color: #fff; - border: 1px solid #fff; - border-radius: 20px; - cursor: pointer; - display: inline-block; - height: 14px; - position: relative; - vertical-align: middle; - width: 35px; - -moz-user-select: none; - -khtml-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - box-sizing: content-box; - background-clip: content-box; - >small { - background: #fff; - border-radius: 100%; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); - height: 14px; - position: absolute; - top: 0; - width: 14px; - } + background-color: #fff; + border: 1px solid #fff; + border-radius: 20px; + cursor: pointer; + display: inline-block; + height: 14px; + position: relative; + vertical-align: middle; + width: 35px; + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + box-sizing: content-box; + background-clip: content-box; + >small { + background: #fff; + border-radius: 100%; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); + height: 14px; + position: absolute; + top: 0; + width: 14px; + } } .switchery-small { - border: none !important; - height: 10px; - width: 20px; - margin-top: -3px; - margin-right: 3px; - >small { - height: 10px; - width: 10px; - } + border: none !important; + height: 10px; + width: 20px; + margin-top: -3px; + margin-right: 3px; + >small { + height: 10px; + width: 10px; + } } .switchery-disabled { - pointer-events: none; - opacity: 0.3; + pointer-events: none; + opacity: 0.3; } diff --git a/src/images/cf_logo_black.svg b/src/images/bf_logo_black.svg similarity index 99% rename from src/images/cf_logo_black.svg rename to src/images/bf_logo_black.svg index 62d535cd85..dcbc0f0562 100644 --- a/src/images/cf_logo_black.svg +++ b/src/images/bf_logo_black.svg @@ -16,7 +16,7 @@ viewBox="-70 61.5 141.7 18.2" style="enable-background:new -70 61.5 141.7 18.2;" xml:space="preserve" - sodipodi:docname="cf_logo_white.svg" + sodipodi:docname="bf_logo_white.svg" inkscape:version="0.92.4 (5da689c313, 2019-01-14)">image/svg+xml -CF_Settings_Icon +bf_settings_black diff --git a/src/images/CF_settings_white.svg b/src/images/bf_settings_white.svg similarity index 98% rename from src/images/CF_settings_white.svg rename to src/images/bf_settings_white.svg index 97afaab4d0..4e7b426c70 100644 --- a/src/images/CF_settings_white.svg +++ b/src/images/bf_settings_white.svg @@ -4,7 +4,7 @@ id="svg5730" sodipodi:docname="ic_settings_24px.svg" inkscape:version="0.48.5 r10040" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 141.7 141.7" enable-background="new 0 0 141.7 141.7" xml:space="preserve"> -CF_Settings_Icon +bf_settings_white diff --git a/src/tabs/landing.html b/src/tabs/landing.html index 498348c3df..d3b1741973 100644 --- a/src/tabs/landing.html +++ b/src/tabs/landing.html @@ -2,7 +2,7 @@
    - +
    From 2b8dff26b8548e7813d0c91ffe8ade0f64888a7f Mon Sep 17 00:00:00 2001 From: J Blackman Date: Wed, 14 Jun 2023 08:45:35 +1000 Subject: [PATCH 104/393] Adding sponsor program images (for future use). (#3477) --- src/images/sponsors/bf_hardware_seal_dark.svg | 160 ++++++++++++++++++ .../sponsors/bf_hardware_seal_light.svg | 160 ++++++++++++++++++ src/images/sponsors/bf_partner_dark.svg | 79 +++++++++ src/images/sponsors/bf_partner_light.svg | 73 ++++++++ 4 files changed, 472 insertions(+) create mode 100644 src/images/sponsors/bf_hardware_seal_dark.svg create mode 100644 src/images/sponsors/bf_hardware_seal_light.svg create mode 100644 src/images/sponsors/bf_partner_dark.svg create mode 100644 src/images/sponsors/bf_partner_light.svg diff --git a/src/images/sponsors/bf_hardware_seal_dark.svg b/src/images/sponsors/bf_hardware_seal_dark.svg new file mode 100644 index 0000000000..324a486122 --- /dev/null +++ b/src/images/sponsors/bf_hardware_seal_dark.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/sponsors/bf_hardware_seal_light.svg b/src/images/sponsors/bf_hardware_seal_light.svg new file mode 100644 index 0000000000..39687d4ef6 --- /dev/null +++ b/src/images/sponsors/bf_hardware_seal_light.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/sponsors/bf_partner_dark.svg b/src/images/sponsors/bf_partner_dark.svg new file mode 100644 index 0000000000..10ddb90947 --- /dev/null +++ b/src/images/sponsors/bf_partner_dark.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/sponsors/bf_partner_light.svg b/src/images/sponsors/bf_partner_light.svg new file mode 100644 index 0000000000..c70d5b0edf --- /dev/null +++ b/src/images/sponsors/bf_partner_light.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 791751a860e83839d4fc2147297ea40209e6117d Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 14 Jun 2023 00:54:04 +0200 Subject: [PATCH 105/393] Fix offline behavior (#3480) * Fix offline behaviour * Fix message on setup tab when offline --- locales/en/messages.json | 3 +++ src/js/Features.js | 2 +- src/js/serial_backend.js | 2 +- src/js/tabs/cli.js | 4 +++- src/js/tabs/firmware_flasher.js | 2 +- src/js/tabs/setup.js | 7 ++++--- src/js/utils/updateTabList.js | 19 ++++++------------- 7 files changed, 19 insertions(+), 20 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index ad6f198520..5211f0ef1c 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -1092,6 +1092,9 @@ "initialSetupInfoBuildOptionsEmpty": { "message": "Local Build - no Defines used" }, + "initialSetupNotOnline": { + "message": "Server unavailable" + }, "initialSetupButtonSave": { "message": "Save" }, diff --git a/src/js/Features.js b/src/js/Features.js index 89ef051fdd..9c8aa68531 100644 --- a/src/js/Features.js +++ b/src/js/Features.js @@ -40,7 +40,7 @@ const Features = function (config) { self._features = features; - if (semver.gte(config.apiVersion, API_VERSION_1_45) && config.buildKey.length === 32) { + if (semver.gte(config.apiVersion, API_VERSION_1_45) && config.buildOptions.length) { self._features = []; for (const feature of features) { diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index deff37baf8..2004143d5d 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -536,7 +536,7 @@ function setRtc() { function finishOpen() { CONFIGURATOR.connectionValid = true; - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) && FC.CONFIG.buildKey.length === 32) { + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) && FC.CONFIG.buildOptions.length) { GUI.allowedTabs = GUI.defaultAllowedTabsCloudBuild; diff --git a/src/js/tabs/cli.js b/src/js/tabs/cli.js index 51bf4ab7bb..bf7ce4b54d 100644 --- a/src/js/tabs/cli.js +++ b/src/js/tabs/cli.js @@ -271,7 +271,9 @@ cli.initialize = function (callback) { }); }); - $('.tab-cli .support').click(function() { + $('.tab-cli .support') + .toggle(navigator.onLine) + .on('click', function() { function submitSupportData(data) { clearHistory(); diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 9fce958a4f..52b0153cc0 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -348,7 +348,7 @@ firmware_flasher.initialize = function (callback) { self.releaseLoader.loadTarget(target, release, onTargetDetail); - if (FC.CONFIG.buildKey.length === 32) { + if (FC.CONFIG.buildKey.length === 32 && navigator.onLine) { self.releaseLoader.loadOptionsByBuildKey(release, FC.CONFIG.buildKey, buildOptions); } else { self.releaseLoader.loadOptions(release, buildOptions); diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index b664f27301..571e6138b7 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -370,7 +370,7 @@ setup.initialize = function (callback) { msp_api_e.text([FC.CONFIG.apiVersion]); build_date_e.text([FC.CONFIG.buildInfo]); - if (FC.CONFIG.buildKey.length > 1) { + if (FC.CONFIG.buildKey.length === 32) { const buildRoot = `https://build.betaflight.com/api/builds/${FC.CONFIG.buildKey}`; const buildConfig = ` ${i18n.getMessage('initialSetupInfoBuildInfoConfig')}`; @@ -382,9 +382,10 @@ setup.initialize = function (callback) { $('.build-info a').addClass('disabled'); } - if (FC.CONFIG.buildOptions.length > 0) { + if (FC.CONFIG.buildOptions.length) { let buildOptions = ""; build_opt_e.text = ""; + for (const buildOption of FC.CONFIG.buildOptions) { buildOptions = `${buildOptions}   ${buildOption}`; } @@ -392,7 +393,7 @@ setup.initialize = function (callback) { title="${i18n.getMessage('initialSetupInfoBuildOptions')}${buildOptions}"> ${i18n.getMessage('initialSetupInfoBuildOptionsList')}`); } else { - build_opt_e.html(i18n.getMessage('initialSetupInfoBuildOptionsEmpty')); + build_opt_e.html(i18n.getMessage(navigator.onLine ? 'initialSetupInfoBuildOptionsEmpty' : 'initialSetupNotOnline')); } }; diff --git a/src/js/utils/updateTabList.js b/src/js/utils/updateTabList.js index 28d02285a6..e7a81e7f78 100644 --- a/src/js/utils/updateTabList.js +++ b/src/js/utils/updateTabList.js @@ -1,22 +1,15 @@ -import semver from "semver"; -import { API_VERSION_1_42, API_VERSION_1_45 } from "../data_storage"; -import FC from "../fc"; - export function updateTabList(features) { const isExpertModeEnabled = $('input[name="expertModeCheckbox"]').is(':checked'); $('#tabs ul.mode-connected li.tab_failsafe').toggle(isExpertModeEnabled); $('#tabs ul.mode-connected li.tab_adjustments').toggle(isExpertModeEnabled); - $('#tabs ul.mode-connected li.tab_servos').toggle(isExpertModeEnabled); $('#tabs ul.mode-connected li.tab_sensors').toggle(isExpertModeEnabled); $('#tabs ul.mode-connected li.tab_logging').toggle(isExpertModeEnabled); - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45 || FC.CONFIG.buildKey.length !== 32)) { - $('#tabs ul.mode-connected li.tab_gps').toggle(features.isEnabled('GPS')); - $('#tabs ul.mode-connected li.tab_led_strip').toggle(features.isEnabled('LED_STRIP')); - $('#tabs ul.mode-connected li.tab_servos').toggle(features.isEnabled('CHANNEL_FORWARDING') || features.isEnabled('SERVO_TILT')); - $('#tabs ul.mode-connected li.tab_transponder').toggle(features.isEnabled('TRANSPONDER')); - $('#tabs ul.mode-connected li.tab_osd').toggle(features.isEnabled('OSD')); - $('#tabs ul.mode-connected li.tab_vtx').toggle(features.isEnabled('VTX') && semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)); - } + $('#tabs ul.mode-connected li.tab_servos').toggle(features.isEnabled('CHANNEL_FORWARDING') || features.isEnabled('SERVO_TILT')); + $('#tabs ul.mode-connected li.tab_gps').toggle(features.isEnabled('GPS')); + $('#tabs ul.mode-connected li.tab_led_strip').toggle(features.isEnabled('LED_STRIP')); + $('#tabs ul.mode-connected li.tab_transponder').toggle(features.isEnabled('TRANSPONDER')); + $('#tabs ul.mode-connected li.tab_osd').toggle(features.isEnabled('OSD')); + $('#tabs ul.mode-connected li.tab_vtx').toggle(features.isEnabled('VTX')); } From 5621658c97d0b49500c682720e32a96d4e0bd69f Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 14 Jun 2023 01:12:53 +0200 Subject: [PATCH 106/393] Backup config on flash (#3459) * Backup config on flash * add dialog * Fix connection issue when flashing for second time * Optimize connection flow --- locales/en/messages.json | 16 +++ src/js/port_handler.js | 2 +- src/js/tabs/firmware_flasher.js | 198 +++++++++++++++++++++++++++++- src/js/utils/generate_filename.js | 28 ++--- 4 files changed, 218 insertions(+), 26 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 5211f0ef1c..b3314f047d 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -3545,6 +3545,22 @@ "firmwareFlasherPreviousDevice": { "message": "Detected: $1 - previous device still flashing, please replug to try again" }, + "firmwareFlasherRemindBackupTitle": { + "message": "Wipe out settings", + "description": "Warning message title before actual flashing takes place" + }, + "firmwareFlasherRemindBackup": { + "message": "Flashing new firmware will wipe out all settings. We strongly recommend to save a backup before continuing.", + "description": "Warning message before actual flashing takes place" + }, + "firmwareFlasherBackup": { + "message": "Create Backup", + "description": "Create a backup before actual flashing takes place" + }, + "firmwareFlasherBackupIgnore": { + "message": "Ignore the risk", + "description": "Ignore creating a backup before actual flashing takes place" + }, "ledStripHelp": { "message": "The flight controller can control colors and effects of individual LEDs on a strip.
    Configure LEDs on the grid, configure wiring order then attach LEDs on your aircraft according to grid positions. LEDs without wire ordering number will not be saved.
    Double-click on a color to edit the HSV values." }, diff --git a/src/js/port_handler.js b/src/js/port_handler.js index b077566e3a..bf4cae7d28 100644 --- a/src/js/port_handler.js +++ b/src/js/port_handler.js @@ -216,7 +216,7 @@ PortHandler.detectPort = function(currentPorts) { self.port_available = true; // Signal board verification - if (GUI.active_tab === 'firmware_flasher') { + if (GUI.active_tab === 'firmware_flasher' && TABS.firmware_flasher.allowBoardDetection) { TABS.firmware_flasher.boardNeedsVerification = true; } diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 52b0153cc0..66275b98f9 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -17,6 +17,7 @@ import STM32DFU from '../protocols/stm32usbdfu'; import { gui_log } from '../gui_log'; import semver from 'semver'; import { checkChromeRuntimeError } from '../utils/common'; +import { generateFilename } from '../utils/generate_filename'; const firmware_flasher = { targets: null, @@ -24,6 +25,7 @@ const firmware_flasher = { localFirmwareLoaded: false, selectedBoard: undefined, boardNeedsVerification: false, + allowBoardDetection: true, intel_hex: undefined, // standard intel hex in string format parsed_hex: undefined, // parsed raw hex in array format isConfigLocal: false, // Set to true if the user loads one locally @@ -597,7 +599,7 @@ firmware_flasher.initialize = function (callback) { } function getBuildInfo() { - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) && navigator.onLine) { + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) && navigator.onLine && FC.CONFIG.flightControllerIdentifier === 'BTFL') { function onLoadCloudBuild(options) { FC.CONFIG.buildOptions = options.Request.Options; @@ -625,7 +627,7 @@ firmware_flasher.initialize = function (callback) { } else if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_39)) { onClose(false); // not supported } else { - MSP.send_message(MSPCodes.MSP_UID, false, false, getBuildInfo); + MSP.send_message(MSPCodes.MSP_FC_VARIANT, false, false, getBuildInfo); } }); } @@ -1025,11 +1027,30 @@ firmware_flasher.initialize = function (callback) { }).trigger('change'); $('a.flash_firmware').click(function () { + if (!$(this).hasClass('disabled')) { - if (self.developmentFirmwareLoaded) { - checkShowAcknowledgementDialog(); + function goFlashing() { + if (self.developmentFirmwareLoaded) { + checkShowAcknowledgementDialog(); + } else { + startFlashing(); + } + } + + // Backup not available in DFU mode + if (!$('option:selected', portPickerElement).data().isDFU) { + GUI.showYesNoDialog( + { + title: i18n.getMessage('firmwareFlasherRemindBackupTitle'), + text: i18n.getMessage('firmwareFlasherRemindBackup'), + buttonYesText: i18n.getMessage('firmwareFlasherBackup'), + buttonNoText: i18n.getMessage('firmwareFlasherBackupIgnore'), + buttonYesCallback: () => firmware_flasher.backupConfig(goFlashing), + buttonNoCallback: goFlashing, + }, + ); } else { - startFlashing(); + goFlashing(); } } }); @@ -1216,6 +1237,173 @@ firmware_flasher.initialize = function (callback) { }); }; +firmware_flasher.backupConfig = function (callback) { + let mspHelper; + let cliBuffer = ''; + let catchOutputCallback = null; + + function readOutput(callback) { + catchOutputCallback = callback; + } + + function writeOutput(text) { + if (catchOutputCallback) { + catchOutputCallback(text); + } + } + + function readSerial(readInfo) { + const data = new Uint8Array(readInfo.data); + + for (const charCode of data) { + const currentChar = String.fromCharCode(charCode); + + switch (charCode) { + case 10: + if (GUI.operating_system === "Windows") { + writeOutput(cliBuffer); + cliBuffer = ''; + } + break; + case 13: + if (GUI.operating_system !== "Windows") { + writeOutput(cliBuffer); + cliBuffer = ''; + } + break; + default: + cliBuffer += currentChar; + } + } + } + + function activateCliMode() { + return new Promise(resolve => { + const bufferOut = new ArrayBuffer(1); + const bufView = new Uint8Array(bufferOut); + + cliBuffer = ''; + bufView[0] = 0x23; + + serial.send(bufferOut); + + GUI.timeout_add('enter_cli_mode_done', () => { + resolve(); + }, 500); + }); + } + + function sendSerial(line, callback) { + const bufferOut = new ArrayBuffer(line.length); + const bufView = new Uint8Array(bufferOut); + + for (let cKey = 0; cKey < line.length; cKey++) { + bufView[cKey] = line.charCodeAt(cKey); + } + + serial.send(bufferOut, callback); + } + + function sendCommand(line, callback) { + sendSerial(`${line}\n`, callback); + } + + function readCommand() { + let timeStamp = performance.now(); + const output = []; + const commandInterval = "COMMAND_INTERVAL"; + + readOutput(str => { + timeStamp = performance.now(); + output.push(str); + }); + + sendCommand("diff all defaults"); + + return new Promise(resolve => { + GUI.interval_add(commandInterval, () => { + const currentTime = performance.now(); + if (currentTime - timeStamp > 500) { + catchOutputCallback = null; + GUI.interval_remove(commandInterval); + resolve(output); + } + }, 500, false); + }); + } + + function onFinishClose() { + MSP.clearListeners(); + + // Include timeout in count + let count = 15; + // Allow reboot after CLI exit + const waitOnReboot = () => { + const disconnect = setInterval(function() { + if (PortHandler.port_available) { + console.log(`Connection ready for flashing in ${count / 10} seconds`); + clearInterval(disconnect); + // Re-activate auto-detection. (Seems not be needed) :) + TABS.firmware_flasher.allowBoardDetection = true; + callback(); + } + count++; + }, 100); + }; + + // PortHandler has a 500ms timer - so triple for safety + setTimeout(waitOnReboot, 1500); + } + + function onClose() { + serial.disconnect(onFinishClose); + MSP.disconnect_cleanup(); + } + + function onSaveConfig() { + // Prevent auto-detect after CLI reset + TABS.firmware_flasher.allowBoardDetection = false; + + activateCliMode() + .then(readCommand) + .then(output => { + const prefix = 'cli_backup'; + const suffix = 'txt'; + const text = output.join("\n"); + const filename = generateFilename(prefix, suffix); + + return GUI.saveToTextFileDialog(text, filename, suffix); + }) + .then(() => sendCommand("exit", onClose)); + } + + function onConnect(openInfo) { + if (openInfo) { + mspHelper = new MspHelper(); + serial.onReceive.addListener(readSerial); + MSP.listen(mspHelper.process_data.bind(mspHelper)); + + onSaveConfig(); + } else { + gui_log(i18n.getMessage('serialPortOpenFail')); + + if (callback) { + callback(); + } + } + } + + const portPickerElement = $('div#port-picker #port'); + const port = String(portPickerElement.val()); + + if (port !== '0') { + const baud = parseInt($('#flash_manual_baud_rate').val()) || 115200; + serial.connect(port, {bitrate: baud}, onConnect); + } else { + gui_log(i18n.getMessage('firmwareFlasherNoPortSelected')); + } +}; + firmware_flasher.cleanup = function (callback) { PortHandler.flush_callbacks(); diff --git a/src/js/utils/generate_filename.js b/src/js/utils/generate_filename.js index f3cb8dfeea..57314141d6 100644 --- a/src/js/utils/generate_filename.js +++ b/src/js/utils/generate_filename.js @@ -14,29 +14,17 @@ function zeroPad(value, width) { export function generateFilename(prefix, suffix) { const date = new Date(); - let filename = prefix; + const yyyymmdd = `${date.getFullYear()}${zeroPad(date.getMonth() + 1, 2)}${zeroPad(date.getDate(), 2)}`; + const hhmmss = `${zeroPad(date.getHours(), 2)}${zeroPad(date.getMinutes(), 2)}${zeroPad(date.getSeconds(), 2)}`; + + let filename = `${FC.CONFIG.flightControllerIdentifier || 'UNKNOWN'}_${prefix}_${yyyymmdd}_${hhmmss}`; if (FC.CONFIG) { - if (FC.CONFIG.flightControllerIdentifier) { - filename = `${FC.CONFIG.flightControllerIdentifier}_${filename}`; - } - const craftName = semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) - ? FC.CONFIG.craftName - : FC.CONFIG.name; - if (craftName.trim() !== "") { - filename = `${filename}_${craftName.trim().replace(" ", "_")}`; - } - } + const craftName = semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) ? FC.CONFIG.craftName : FC.CONFIG.name; + const boardName = FC.CONFIG.boardName || craftName.trim().replace(" ", "_"); - const yyyymmdd = `${date.getFullYear()}${zeroPad( - date.getMonth() + 1, - 2, - )}${zeroPad(date.getDate(), 2)}`; - const hhmmss = `${zeroPad(date.getHours(), 2)}${zeroPad( - date.getMinutes(), - 2, - )}${zeroPad(date.getSeconds(), 2)}`; - filename = `${filename}_${yyyymmdd}_${hhmmss}`; + filename = `${filename}_${boardName}`; + } return `${filename}.${suffix}`; } From e683231cce4f6afffa9962059d91b59a732e9961 Mon Sep 17 00:00:00 2001 From: Ivan Efimov Date: Thu, 15 Jun 2023 11:16:36 -0500 Subject: [PATCH 107/393] Flasher tab: remember last user selected radio protocol (#3475) --- src/js/tabs/firmware_flasher.js | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 66275b98f9..2720e5c348 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -66,6 +66,10 @@ firmware_flasher.initialize = function (callback) { ); } + function buildKeyExists() { + return FC.CONFIG.buildKey.length === 32; + } + function parseHex(str, callback) { // parsing hex in different thread const worker = new Worker('./js/workers/hex_parser.js'); @@ -208,6 +212,19 @@ firmware_flasher.initialize = function (callback) { buildOptionsList($('select[name="telemetryProtocols"]'), data.telemetryProtocols); buildOptionsList($('select[name="options"]'), data.generalOptions); buildOptionsList($('select[name="motorProtocols"]'), data.motorProtocols); + if (!buildKeyExists()) { + preselectRadioProtocolFromStorage(); + } + } + + function preselectRadioProtocolFromStorage() { + const storedRadioProtocol = getConfig("ffRadioProtocol").ffRadioProtocol; + if (storedRadioProtocol) { + const valueExistsInSelect = $('select[name="radioProtocols"] option').filter(function (i, o) {return o.value === storedRadioProtocol;}).length !== 0; + if (valueExistsInSelect) { + $('select[name="radioProtocols"]').val(storedRadioProtocol); + } + } } let buildTypesToShow; @@ -350,7 +367,7 @@ firmware_flasher.initialize = function (callback) { self.releaseLoader.loadTarget(target, release, onTargetDetail); - if (FC.CONFIG.buildKey.length === 32 && navigator.onLine) { + if (buildKeyExists() && navigator.onLine) { self.releaseLoader.loadOptionsByBuildKey(release, FC.CONFIG.buildKey, buildOptions); } else { self.releaseLoader.loadOptions(release, buildOptions); @@ -411,6 +428,13 @@ firmware_flasher.initialize = function (callback) { $('select[name="options"]').select2({ closeOnSelect: false }); $('select[name="commits"]').select2({ tags: true }); + $('select[name="radioProtocols"]').on("select2:select", function() { + const selectedProtocol = $('select[name="radioProtocols"] option:selected').first().val(); + if (selectedProtocol) { + setConfig({"ffRadioProtocol" : selectedProtocol}); + } + }); + $('select[name="board"]').change(function() { $("a.load_remote_file").addClass('disabled'); let target = $(this).val(); @@ -607,7 +631,7 @@ firmware_flasher.initialize = function (callback) { } MSP.send_message(MSPCodes.MSP2_GET_TEXT, mspHelper.crunch(MSPCodes.MSP2_GET_TEXT, MSPCodes.BUILD_KEY), false, () => { - if (FC.CONFIG.buildKey.length === 32) { + if (buildKeyExists()) { self.releaseLoader.requestBuildOptions(FC.CONFIG.buildKey, onLoadCloudBuild, getBoardInfo); } else { getBoardInfo(); From b769a43d9ad4ae6ef3967515266c398cd82cbc3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=ADguel=20=C3=81ngel=20Mulero=20Mart=C3=ADnez?= Date: Sat, 17 Jun 2023 11:54:17 +0200 Subject: [PATCH 108/393] Fix MSP rx sticks window (#3482) --- gulpfile.js | 1 + locales/en/messages.json | 3 +- src/css/tabs/receiver_msp.less | 2 +- src/js/tabs/receiver_msp.js | 126 ++++++++++++++++----------------- src/tabs/receiver_msp.html | 24 ++++--- 5 files changed, 79 insertions(+), 77 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 59a45df20c..39e7a1d752 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -404,6 +404,7 @@ function dist_rollup() { 'js/main_cordova': 'src/js/main_cordova.js', 'js/utils/common': 'src/js/utils/common.js', 'js/main': 'src/js/main.js', + 'js/tabs/receiver_msp': 'src/js/tabs/receiver_msp.js', }, plugins: [ alias({ diff --git a/locales/en/messages.json b/locales/en/messages.json index b3314f047d..1697431ad1 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -2239,7 +2239,8 @@ "message": "Binding phrase" }, "receiverButtonSticks": { - "message": "Control sticks" + "message": "Radio Emulator", + "description": "Button that opens a window with a radio emulator on the receiver tab. Actually only enabled for MSP protocol" }, "receiverDataRefreshed": { "message": "RC Tuning data refreshed" diff --git a/src/css/tabs/receiver_msp.less b/src/css/tabs/receiver_msp.less index 6b8de086a3..6cd8808636 100644 --- a/src/css/tabs/receiver_msp.less +++ b/src/css/tabs/receiver_msp.less @@ -97,7 +97,7 @@ a { position: absolute; left: 50%; transform: translate(-50%); - margin-top: 0px; + margin-top: 20px; margin-bottom: 0px; margin-left: 0px; background-color: var(--accent); diff --git a/src/js/tabs/receiver_msp.js b/src/js/tabs/receiver_msp.js index 69a8e095df..b510a3d08c 100644 --- a/src/js/tabs/receiver_msp.js +++ b/src/js/tabs/receiver_msp.js @@ -1,5 +1,4 @@ import windowWatcherUtil from "../utils/window_watchers"; -import { i18n } from "../localization"; const css_dark = [ '/css/dark-theme.css', @@ -43,10 +42,6 @@ let gimbalElems; let sliderElems; let enableTX = false; -// NOTE: import should be enough right? -// This is a hack to get the i18n var of the parent, but the localizePage not works -// const i18n = opener.i18n; - const watchers = { darkTheme: (val) => { if (val) { @@ -57,17 +52,6 @@ const watchers = { }, }; -$(document).ready(function () { - $('[i18n]:not(.i18n-replaced)').each(function() { - const element = $(this); - - element.html(i18n.getMessage(element.attr('i18n'))); - element.addClass('i18n-replaced'); - }); - - windowWatcherUtil.bindWatchers(window, watchers); -}); - function transmitChannels() { const channelValues = [0, 0, 0, 0, 0, 0, 0, 0]; @@ -107,10 +91,10 @@ function updateControlPositions() { gimbalSize = $(gimbalElem).width(), stickElem = $(".control-stick", gimbalElem); - if (gimbal[0] == stickName) { + if (gimbal[0] === stickName) { stickElem.css('top', `${(1.0 - channelValueToStickPortion(stickValue)) * gimbalSize}px`); break; - } else if (gimbal[1] == stickName) { + } else if (gimbal[1] === stickName) { stickElem.css('left', `${channelValueToStickPortion(stickValue) * gimbalSize}px`); break; } @@ -129,6 +113,15 @@ function handleGimbalMouseDrag(e) { updateControlPositions(); } +function localizePage() { + $('[i18n]:not(.i18n-replaced)').each(function() { + const element = $(this); + + element.html(i18n.getMessage(element.attr('i18n'))); + element.addClass('i18n-replaced'); + }); +} + function localizeAxisNames() { for (const gimbalIndex in gimbals) { const gimbal = gimbalElems.get(gimbalIndex); @@ -150,65 +143,70 @@ function applyNormalTheme() { css_dark.forEach((el) => $(`link[href="${el}"]`).prop('disabled', true)); } -$(document).ready(function() { - $(".button-enable .btn").click(function() { - const shrinkHeight = $(".warning").height(); +$(".button-enable .btn").on("click", function() { + const shrinkHeight = $(".warning").height(); - $(".warning").slideUp("short", function() { - chrome.app.window.current().innerBounds.minHeight -= shrinkHeight; - chrome.app.window.current().innerBounds.height -= shrinkHeight; - chrome.app.window.current().innerBounds.maxHeight -= shrinkHeight; - }); - - enableTX = true; + $(".warning").slideUp("short", function() { + chrome.app.window.current().innerBounds.minHeight -= shrinkHeight; + chrome.app.window.current().innerBounds.height -= shrinkHeight; + chrome.app.window.current().innerBounds.maxHeight -= shrinkHeight; }); - gimbalElems = $(".control-gimbal"); - sliderElems = $(".control-slider"); + enableTX = true; +}); - gimbalElems.each(function(gimbalIndex) { - $(this).on('mousedown', {gimbalIndex: gimbalIndex}, function(e) { - if (e.which == 1) { // Only move sticks on left mouse button - handleGimbalMouseDrag(e); +gimbalElems = $(".control-gimbal"); +sliderElems = $(".control-slider"); - $(window).on('mousemove', {gimbalIndex: gimbalIndex}, handleGimbalMouseDrag); - } - }); +gimbalElems.each(function(gimbalIndex) { + $(this).on('mousedown', {gimbalIndex: gimbalIndex}, function(e) { + if (e.button === 0) { // Only move sticks on left mouse button + handleGimbalMouseDrag(e); + + $(window).on('mousemove', {gimbalIndex: gimbalIndex}, handleGimbalMouseDrag); + } }); +}); - $(".slider", sliderElems).each(function(sliderIndex) { - const initialValue = stickValues[`Aux${sliderIndex + 1}`]; +$(".slider", sliderElems).each(function(sliderIndex) { + const initialValue = stickValues[`Aux${sliderIndex + 1}`]; - $(this) - .noUiSlider({ - start: initialValue, - range: { - min: CHANNEL_MIN_VALUE, - max: CHANNEL_MAX_VALUE, - }, - }).on('slide change set', function(e, value) { - value = Math.round(parseFloat(value)); + $(this) + .noUiSlider({ + start: initialValue, + range: { + min: CHANNEL_MIN_VALUE, + max: CHANNEL_MAX_VALUE, + }, + }).on('slide change set', function(e, value) { + value = Math.round(parseFloat(value)); - stickValues[`Aux${(sliderIndex + 1)}`] = value; + stickValues[`Aux${(sliderIndex + 1)}`] = value; - $(".tooltip", this).text(value); - }); + $(".tooltip", this).text(value); + }); - $(this).append('
    '); + $(this).append('
    '); - $(".tooltip", this).text(initialValue); - }); + $(".tooltip", this).text(initialValue); +}); - /* - * Mouseup handler needs to be bound to the window in order to receive mouseup if mouse leaves window. - */ - $(window).mouseup(function(e) { - $(this).off('mousemove', handleGimbalMouseDrag); - }); +/* + * Mouseup handler needs to be bound to the window in order to receive mouseup if mouse leaves window. + */ +$(window).on("mouseup", function(e) { + $(this).off('mousemove', handleGimbalMouseDrag); +}); - localizeAxisNames(); +windowWatcherUtil.bindWatchers(window, watchers); - updateControlPositions(); +// This is a hack to get the i18n var of the parent, but the i18n.localizePage not works +// It seems than when node opens a new window, the module "context" is different, so the i18n var is not initialized +const i18n = opener.i18n; - setInterval(transmitChannels, 50); -}); +localizePage(); +localizeAxisNames(); + +updateControlPositions(); + +setInterval(transmitChannels, 50); diff --git a/src/tabs/receiver_msp.html b/src/tabs/receiver_msp.html index 8bed265316..4cfb7f5f40 100644 --- a/src/tabs/receiver_msp.html +++ b/src/tabs/receiver_msp.html @@ -1,20 +1,22 @@ + - - - - + + + + + - - + - - + + - - + + + - +
    From 89b1bb9f804f3366069b8e9a43b285cf2ee2418a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 19 Jun 2023 11:25:46 +0200 Subject: [PATCH 109/393] Update translations (#3487) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 22 +++++++++++++++++- locales/da/messages.json | 46 ++++++++++++++++++++++++++----------- locales/de/messages.json | 3 --- locales/es/messages.json | 22 +++++++++++++++++- locales/eu/messages.json | 3 --- locales/fr/messages.json | 3 --- locales/gl/messages.json | 3 --- locales/it/messages.json | 3 --- locales/ja/messages.json | 3 --- locales/ko/messages.json | 22 +++++++++++++++++- locales/nl/messages.json | 3 --- locales/pl/messages.json | 24 +++++++++++++++++-- locales/pt/messages.json | 22 +++++++++++++++++- locales/pt_BR/messages.json | 3 --- locales/ru/messages.json | 3 --- locales/zh_CN/messages.json | 3 --- locales/zh_TW/messages.json | 3 --- 17 files changed, 139 insertions(+), 52 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index 5e7e58a176..f567b1cd5e 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -1003,6 +1003,9 @@ "initialSetupInfoBuildOptionsEmpty": { "message": "Compilació local - No es fa servir definició" }, + "initialSetupNotOnline": { + "message": "Servidor no disponible" + }, "initialSetupButtonSave": { "message": "Desa" }, @@ -2143,7 +2146,8 @@ "message": "Frase vinculant" }, "receiverButtonSticks": { - "message": "Sticks de control" + "message": "Simulador de radio", + "description": "Button that opens a window with a radio emulator on the receiver tab. Actually only enabled for MSP protocol" }, "receiverDataRefreshed": { "message": "Dades RC Tuning actualitzades" @@ -3449,6 +3453,22 @@ "firmwareFlasherPreviousDevice": { "message": "Detectat: $1 - el dispositiu anterior encara es flasheja, torna a conectar per reintentar" }, + "firmwareFlasherRemindBackupTitle": { + "message": "Esborrar els ajustos", + "description": "Warning message title before actual flashing takes place" + }, + "firmwareFlasherRemindBackup": { + "message": "Flashejar el nou microprogramari esborrarà tota la configuració. Us recomanem que deseu una còpia de seguretat abans de continuar.", + "description": "Warning message before actual flashing takes place" + }, + "firmwareFlasherBackup": { + "message": "Crear còpia de seguretat", + "description": "Create a backup before actual flashing takes place" + }, + "firmwareFlasherBackupIgnore": { + "message": "Ignora el risc", + "description": "Ignore creating a backup before actual flashing takes place" + }, "ledStripHelp": { "message": "La controladora pot controlar colors i efectes d'una tira de LEDs individualment.
    Configura els LEDs a la graella i configura l'ordre del cablejat. Els LEDs que no tinguin ordre no es desaran.
    Fes doble clic a un color per editar el valor HSV." }, diff --git a/locales/da/messages.json b/locales/da/messages.json index a0d04a0ce6..77627b7248 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -625,7 +625,7 @@ "message": "Brænd firmware" }, "defaultDonateHead": { - "message": "Open Source/Donations meddelelse" + "message": "Vedrørende Open Source og støtte med donation" }, "defaultDonateText": { "message": "

    Betaflight er open source programmel til opsætning af flight controller (FC) som er tilgængelig uden beregning, for alle brugere, men også uden garanti.

    Hvis du fandt Betaflight eller Betaflight-Configurator nyttig, så overvej venligst at støtte udviklingen ved en donation.

    " @@ -995,6 +995,9 @@ "initialSetupInfoBuildOptionsEmpty": { "message": "Lokal release - ingen Defines anvendt" }, + "initialSetupNotOnline": { + "message": "Serveren kan ikke kontaktes" + }, "initialSetupButtonSave": { "message": "Gem" }, @@ -1032,7 +1035,7 @@ "message": "Nivellieringskalibrering under flyvning" }, "featureRX_SERIAL": { - "message": "Seriel (via UART)" + "message": "Seriel (UART styring)" }, "featureMOTOR_STOP": { "message": "Rotér ikke motorerer, når aktiveret" @@ -1077,7 +1080,7 @@ "message": "PWM RX-input (en ledning pr. kanal)" }, "featureRX_MSP": { - "message": "MSP RX-input (styring via MSP-port)" + "message": "MSP RX-input (MSP styring)" }, "featureRSSI_ADC": { "message": "Analog RSSI-input" @@ -1439,18 +1442,18 @@ "description": "Help text for the option to use Galileo in the GPS configuration" }, "configurationGPSHomeOnce": { - "message": "Sæt hjempunkt 1. gang", + "message": "Sæt Hjem position når strøm tilsluttes", "description": "Option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, "configurationGPSHomeOnceHelp": { - "message": "Når valgt, vil kun den første aktivering efter batteriet er tilsluttet blive brugt som startpunkt. Hvis det ikke er aktiveret, opdateres hjempunkt, hver gang fartøj aktiveres.", + "message": "Når valgt, vil kun den første aktivering efter batteriet er tilsluttet blive brugt som Hjem position. Hvis indstilling ikke er valgt, opdateres Hjem position, hver gang fartøj aktiveres.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, "configurationSerialRX": { - "message": "Leverandør protokol til seriel modtagelse" + "message": "Leverandør af seriel protokol" }, "configurationSpiRX": { - "message": "SPI-busmodtagerleverandør" + "message": "Leverandør af SPI modtager bus" }, "configurationEepromSaved": { "message": "Konfiguration gemt i EEPROM" @@ -2135,7 +2138,8 @@ "message": "Forbind fase" }, "receiverButtonSticks": { - "message": "Styrpinde" + "message": "Radio emulering", + "description": "Button that opens a window with a radio emulator on the receiver tab. Actually only enabled for MSP protocol" }, "receiverDataRefreshed": { "message": "RC tuningdata opfrisket" @@ -2621,7 +2625,7 @@ "message": "Antal satelitter:" }, "gpsDistToHome": { - "message": "Afstand til Hjem:" + "message": "Hjem afstand:" }, "gpsSignalStrHead": { "message": "GPS signalstyrke" @@ -3441,6 +3445,22 @@ "firmwareFlasherPreviousDevice": { "message": "Detekteret: $1 - tidligere enhed flashes stadig, gentilslut og forsøg igen" }, + "firmwareFlasherRemindBackupTitle": { + "message": "Slet alle indstillinger", + "description": "Warning message title before actual flashing takes place" + }, + "firmwareFlasherRemindBackup": { + "message": "Brændning af firmware vil slette alle indstillinger. Vi anbefaler kraftigt at der gemmes en sikkerhedskopi, før fortsættelse.", + "description": "Warning message before actual flashing takes place" + }, + "firmwareFlasherBackup": { + "message": "Opret backup", + "description": "Create a backup before actual flashing takes place" + }, + "firmwareFlasherBackupIgnore": { + "message": "Ignorer risiko", + "description": "Ignore creating a backup before actual flashing takes place" + }, "ledStripHelp": { "message": "Flight controlleren kan styre farver og effekter på individuelle LED'er på en strimmel.
    Opsæt LED'er i gitteret, opsæt ledningsrækkefølge og forbnd så LED'erne på dit fly jf. gitterpositionerne. LED'er uden ledningsnummer vil ikke blive gemt.
    Dobbeltklik på en farve for at redigere HSV-værdierne." }, @@ -5019,11 +5039,11 @@ "message": "Aktiverings meddelelse" }, "osdTextElementDisarmed": { - "message": "Deaktiveret", + "message": "Meddelse hvis Deaktiveret", "description": "One of the elements of the OSD" }, "osdDescElementDisarmed": { - "message": "Afkoblings meddelelse" + "message": "Vis meddelelse hvis deaktiveret" }, "osdTextElementCrosshairs": { "message": "Sigtekorn", @@ -5347,11 +5367,11 @@ "message": "Pil der viser retning til Hjem position" }, "osdTextElementHomeDistance": { - "message": "Afstand til Hjem", + "message": "Hjem afstand", "description": "One of the elements of the OSD" }, "osdDescElementHomeDistance": { - "message": "Afstand til Hjem position (målt den valgte enhed for FC - Enheder)" + "message": "Afstand til Hjem position (bestemt med værdi i den valgte enhed for FC - Enheder)" }, "osdTextElementNumericalHeading": { "message": "Numerisk overskrift", diff --git a/locales/de/messages.json b/locales/de/messages.json index 4cf5680a24..b7c4873b87 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -2109,9 +2109,6 @@ "receiverButtonBindingPhrase": { "message": "Schlüsselbegriff (binding phrase)" }, - "receiverButtonSticks": { - "message": "Kontroll Sticks" - }, "receiverDataRefreshed": { "message": "RC Einstellungen neu geladen" }, diff --git a/locales/es/messages.json b/locales/es/messages.json index 4cdfe6cd48..9a8e52a711 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -995,6 +995,9 @@ "initialSetupInfoBuildOptionsEmpty": { "message": "Compilación local - sin DEFINES" }, + "initialSetupNotOnline": { + "message": "Servidor no disponible" + }, "initialSetupButtonSave": { "message": "Guardar" }, @@ -2135,7 +2138,8 @@ "message": "Frase de enlace" }, "receiverButtonSticks": { - "message": "Palancas de control" + "message": "Emulador de Radio", + "description": "Button that opens a window with a radio emulator on the receiver tab. Actually only enabled for MSP protocol" }, "receiverDataRefreshed": { "message": "Datos de Ajustes de RC actualizados" @@ -3441,6 +3445,22 @@ "firmwareFlasherPreviousDevice": { "message": "Detectado: $1 - dispositivo anterior todavía en instalación, por favor vuelve a conectar para volver a intentarlo" }, + "firmwareFlasherRemindBackupTitle": { + "message": "Borrado de configuración", + "description": "Warning message title before actual flashing takes place" + }, + "firmwareFlasherRemindBackup": { + "message": "Instalar un nuevo firmware borrará todas las configuraciones. Recomendamos guardar una copia de seguridad antes de continuar.", + "description": "Warning message before actual flashing takes place" + }, + "firmwareFlasherBackup": { + "message": "Crear copia de seguridad", + "description": "Create a backup before actual flashing takes place" + }, + "firmwareFlasherBackupIgnore": { + "message": "Ignorar este riesgo", + "description": "Ignore creating a backup before actual flashing takes place" + }, "ledStripHelp": { "message": "El controlador de vuelo puede controlar colores y efectos de LEDs individuales de una tira.
    Configura LEDs en la rejilla, configura el orden del cableado y añade LEDs a tu aeronave de acuerdo a las posiciones de la rejilla. LEDs sin número de orden de cableado no se guardarán.
    Doble-pulsación en un color para editar los valores HSV." }, diff --git a/locales/eu/messages.json b/locales/eu/messages.json index bf44e2879c..54ffce9e3e 100644 --- a/locales/eu/messages.json +++ b/locales/eu/messages.json @@ -1609,9 +1609,6 @@ "receiverButtonBindMessage": { "message": "Lotu eskaera hegaldi-kontroladoreari bidalita." }, - "receiverButtonSticks": { - "message": "Kontrol palankak" - }, "receiverDataRefreshed": { "message": "RC sintonizatzeko datuak berritu" }, diff --git a/locales/fr/messages.json b/locales/fr/messages.json index 8aa36d847f..49adc2c6ca 100644 --- a/locales/fr/messages.json +++ b/locales/fr/messages.json @@ -2003,9 +2003,6 @@ "receiverButtonBindingPhrase": { "message": "Phrase de Bind" }, - "receiverButtonSticks": { - "message": "Contrôle des manches" - }, "receiverDataRefreshed": { "message": "Données de réglage de la Radio Commande actualisées " }, diff --git a/locales/gl/messages.json b/locales/gl/messages.json index fa914fcd8c..cd67c92e4b 100644 --- a/locales/gl/messages.json +++ b/locales/gl/messages.json @@ -2084,9 +2084,6 @@ "receiverButtonBindingPhrase": { "message": "Frase vinculante" }, - "receiverButtonSticks": { - "message": "Sticks de control" - }, "receiverDataRefreshed": { "message": "Datos de Axustes de RC actualizados" }, diff --git a/locales/it/messages.json b/locales/it/messages.json index 862541cc64..55f944909b 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -2134,9 +2134,6 @@ "receiverButtonBindingPhrase": { "message": "Frase per associare" }, - "receiverButtonSticks": { - "message": "Stick di comando" - }, "receiverDataRefreshed": { "message": "Dati di messa a punto RC aggiornati" }, diff --git a/locales/ja/messages.json b/locales/ja/messages.json index d5714e66ed..0643252c5a 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -2134,9 +2134,6 @@ "receiverButtonBindingPhrase": { "message": "バインドフレーズ" }, - "receiverButtonSticks": { - "message": "コントロールスティック" - }, "receiverDataRefreshed": { "message": "RCチューニングデータ 更新しました" }, diff --git a/locales/ko/messages.json b/locales/ko/messages.json index addc31c0b0..7d2f3e32a9 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -995,6 +995,9 @@ "initialSetupInfoBuildOptionsEmpty": { "message": "로컬 빌드 - 사용된 정의값 없음" }, + "initialSetupNotOnline": { + "message": "서버를 이용할 수 없음" + }, "initialSetupButtonSave": { "message": "저장" }, @@ -2135,7 +2138,8 @@ "message": "바인딩 구문" }, "receiverButtonSticks": { - "message": "제어 스틱" + "message": "라디오 에뮬레이터", + "description": "Button that opens a window with a radio emulator on the receiver tab. Actually only enabled for MSP protocol" }, "receiverDataRefreshed": { "message": "RC 튜닝 데이터 새로 고쳐짐" @@ -3441,6 +3445,22 @@ "firmwareFlasherPreviousDevice": { "message": "감지됨: $1 - 이전 기기가 여전히 플래시중입니다. 다시 연결하여 재시도하세요." }, + "firmwareFlasherRemindBackupTitle": { + "message": "설정 삭제", + "description": "Warning message title before actual flashing takes place" + }, + "firmwareFlasherRemindBackup": { + "message": "새 펌웨어를 업데이트하면 모든 설정이 지워집니다. 계속하기 전에 백업을 저장하는 것이 좋습니다.", + "description": "Warning message before actual flashing takes place" + }, + "firmwareFlasherBackup": { + "message": "백업 생성", + "description": "Create a backup before actual flashing takes place" + }, + "firmwareFlasherBackupIgnore": { + "message": "위험 무시", + "description": "Ignore creating a backup before actual flashing takes place" + }, "ledStripHelp": { "message": "비행 컨트롤러는 스트립에서 개별 LED의 색상과 효과를 제어할 수 있습니다.
    그리드에서 LED를 구성하고, 배선 순서를 구성한 다음 그리드 위치에 따라 기체에 LED를 부착하십시오. 배선 순서 번호가 없는 LED는 저장되지 않습니다.
    HSV 값을 편집하려면 색상을 더블클릭하십시오." }, diff --git a/locales/nl/messages.json b/locales/nl/messages.json index 1c4eff82e1..09371627b7 100644 --- a/locales/nl/messages.json +++ b/locales/nl/messages.json @@ -1684,9 +1684,6 @@ "receiverButtonBindMessage": { "message": "Koppel verzoek verzonden naar de vlucht controller." }, - "receiverButtonSticks": { - "message": "Controle sticks" - }, "receiverDataRefreshed": { "message": "RC Tuning data vernieuwd" }, diff --git a/locales/pl/messages.json b/locales/pl/messages.json index a0818e1c5c..0a0cef7779 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -995,6 +995,9 @@ "initialSetupInfoBuildOptionsEmpty": { "message": "Budowa lokalna — brak definicji" }, + "initialSetupNotOnline": { + "message": "Serwer niedostępny" + }, "initialSetupButtonSave": { "message": "Zapisz" }, @@ -2135,7 +2138,8 @@ "message": "Wiążąca fraza" }, "receiverButtonSticks": { - "message": "Kontrola drążkiem" + "message": "Emulator radiowy", + "description": "Button that opens a window with a radio emulator on the receiver tab. Actually only enabled for MSP protocol" }, "receiverDataRefreshed": { "message": "Dane dostrajania RC odświeżone" @@ -3441,6 +3445,22 @@ "firmwareFlasherPreviousDevice": { "message": "Wykryto: $1 - urządzenie nie odpowiada, podłącz się ponownie, aby spróbować ponownie" }, + "firmwareFlasherRemindBackupTitle": { + "message": "Wyczyść ustawienia", + "description": "Warning message title before actual flashing takes place" + }, + "firmwareFlasherRemindBackup": { + "message": "Wgrywanie nowego oprogramowania usunie wszystkie ustawienia. Zdecydowanie zalecamy zapisanie kopii zapasowej przed kontynuacją.", + "description": "Warning message before actual flashing takes place" + }, + "firmwareFlasherBackup": { + "message": "Utwórz kopię zapasową", + "description": "Create a backup before actual flashing takes place" + }, + "firmwareFlasherBackupIgnore": { + "message": "Ignoruj ryzyko", + "description": "Ignore creating a backup before actual flashing takes place" + }, "ledStripHelp": { "message": "Kontroler lotu może kontrolować kolory i efekty poszczególnych diod LED na pasku.
    Konfiguruj diody LED na siatce, skonfiguruj kolejność okablowania, a następnie podłącz diody LED w twoim modelu zgodnie z pozycjami na siatce. Diody LED bez numeru porządkowego nie zostaną zapisane.
    Kliknij dwukrotnie kolor, aby edytować wartości HSV." }, @@ -4485,7 +4505,7 @@ "message": "Przełącznik Failsafe (konfiguracja Failsafe w zakładce Tryby)" }, "failsafeKillSwitchHelp": { - "message": "Zaznacz tę opcję, aby ustawić przełącznik odpowiedzialny za failsafe (Zakładka Tryby). Będziesz go mugł użyć to testowania funkcji awaryjnego lądowania. Uwaga: Uzbrojenie silników jest niemożliwe gdy przełącznik odpowiedzialny za funkcje failsafe jest w pozycji włączonej" + "message": "Zaznacz tę opcję, aby ustawić przełącznik odpowiedzialny za failsafe (Zakładka Tryby). Będziesz go mógł użyć tego testowania funkcji awaryjnego lądowania. Uwaga: Uzbrojenie silników jest niemożliwe, gdy przełącznik odpowiedzialny za funkcje failsafe jest w pozycji włączonej" }, "failsafeSwitchTitle": { "message": "Przełącznik Failsafe" diff --git a/locales/pt/messages.json b/locales/pt/messages.json index fea1138368..5c2a1e8cdb 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -995,6 +995,9 @@ "initialSetupInfoBuildOptionsEmpty": { "message": "Construção Local - nenhuma define usada" }, + "initialSetupNotOnline": { + "message": "Servidor indisponível" + }, "initialSetupButtonSave": { "message": "Gravar" }, @@ -2135,7 +2138,8 @@ "message": "Frase de Bind" }, "receiverButtonSticks": { - "message": "Sticks de controlo" + "message": "Emulador de Rádio", + "description": "Button that opens a window with a radio emulator on the receiver tab. Actually only enabled for MSP protocol" }, "receiverDataRefreshed": { "message": "Dados de afinação do RC atualizados" @@ -3441,6 +3445,22 @@ "firmwareFlasherPreviousDevice": { "message": "Detetado: $1 - o dispositivo anterior ainda está a flashar, reconecte para tentar novamente" }, + "firmwareFlasherRemindBackupTitle": { + "message": "Apagar definições", + "description": "Warning message title before actual flashing takes place" + }, + "firmwareFlasherRemindBackup": { + "message": "Instalar um novo firmware apagará todas as definições. Recomendamos que faça um backup antes de continuar.", + "description": "Warning message before actual flashing takes place" + }, + "firmwareFlasherBackup": { + "message": "Criar Backup", + "description": "Create a backup before actual flashing takes place" + }, + "firmwareFlasherBackupIgnore": { + "message": "Ignorar o risco", + "description": "Ignore creating a backup before actual flashing takes place" + }, "ledStripHelp": { "message": "A controladora de voo pode controlar as cores e efeitos individuais de LEDs numa faixa.
    Configure LEDs na grade, configure a ordem das soldas e depois conecte os LEDs na sua aeronave de acordo com as posições na grade. LEDs configurados em posições sem número não serão gravados.
    Faça duplo clique numa cor para editar os valores HSV." }, diff --git a/locales/pt_BR/messages.json b/locales/pt_BR/messages.json index ad5f2b4666..1617c4572c 100644 --- a/locales/pt_BR/messages.json +++ b/locales/pt_BR/messages.json @@ -1988,9 +1988,6 @@ "receiverButtonBindMessage": { "message": "Solicitação de vinculo enviado ao controlador de voo." }, - "receiverButtonSticks": { - "message": "Controle Virtual" - }, "receiverDataRefreshed": { "message": "Dados de afinação do RC atualizados" }, diff --git a/locales/ru/messages.json b/locales/ru/messages.json index 67ae67d057..16d2168aca 100644 --- a/locales/ru/messages.json +++ b/locales/ru/messages.json @@ -1720,9 +1720,6 @@ "receiverButtonBindMessage": { "message": "Запрос на привязку отправлен контроллеру полета." }, - "receiverButtonSticks": { - "message": "Стики управления" - }, "receiverDataRefreshed": { "message": "Данные PID обновлены" }, diff --git a/locales/zh_CN/messages.json b/locales/zh_CN/messages.json index 11e6691f29..f6530e0061 100644 --- a/locales/zh_CN/messages.json +++ b/locales/zh_CN/messages.json @@ -1915,9 +1915,6 @@ "receiverButtonBindMessage": { "message": "对频请求已发送到飞行控制器。" }, - "receiverButtonSticks": { - "message": "控制摇杆" - }, "receiverDataRefreshed": { "message": "RC 调整数据 已刷新" }, diff --git a/locales/zh_TW/messages.json b/locales/zh_TW/messages.json index a38c94938d..efd9c5d6cd 100644 --- a/locales/zh_TW/messages.json +++ b/locales/zh_TW/messages.json @@ -1588,9 +1588,6 @@ "receiverButtonBindMessage": { "message": "對頻請求已發送到飛行控制器。" }, - "receiverButtonSticks": { - "message": "控制搖桿" - }, "receiverDataRefreshed": { "message": "RC 調整數據已刷新" }, From 50554c1a803b7afa4fe6a376659837a49ab72ecf Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Tue, 20 Jun 2023 15:00:40 +0200 Subject: [PATCH 110/393] When use magnetometer, add North symbol to GPS position icon (#3484) * Add North when use magnetometer * Update src/js/tabs/map.js Co-authored-by: Mark Haslinghuis --------- Co-authored-by: Mark Haslinghuis --- locales/en/messages.json | 4 +++ package.json | 1 + src/images/icons/cf_icon_position_mag.png | Bin 0 -> 6398 bytes src/js/tabs/gps.js | 20 ++++++++------- src/js/tabs/map.js | 30 +++++++++++++++++----- src/js/tabs/setup.js | 5 ++-- 6 files changed, 42 insertions(+), 18 deletions(-) create mode 100755 src/images/icons/cf_icon_position_mag.png diff --git a/locales/en/messages.json b/locales/en/messages.json index 1697431ad1..3ae750aa35 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -2707,6 +2707,10 @@ "gpsFixFalse": { "message": "False" }, + "gpsPositionUnit": { + "message": "deg", + "description": "Unit for GPS position." + }, "gpsAltitude": { "message": "Altitude:" }, diff --git a/package.json b/package.json index acdce02e90..3824630a6b 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "/js/libraries/openlayers/ol.css", "/js/libraries/openlayers/ol.js", "/images/icons/cf_icon_position.png", + "/images/icons/cf_icon_position_mag.png", "/images/icons/cf_icon_position_nofix.png" ] } diff --git a/src/images/icons/cf_icon_position_mag.png b/src/images/icons/cf_icon_position_mag.png new file mode 100755 index 0000000000000000000000000000000000000000..7d11b96dd7345fa97ee546d61914fedef0853ab8 GIT binary patch literal 6398 zcmbVR2Q*yW+8(`^=n;g`5~GY!f~bQi(TONg#>^;TikT6e=!A$6Wr9T11VQvpicSa; zqDMrOAX>DDJHC>2@4xQ<-}T>FYoD{vKF@yM=PmnP>#T`0GtpzB=cNY#089q@Iu@im z;&jkbldjnLR4dYr4y$jA2LKq@PX`&`VHOVnK)LQ=WkawrHd29OP|`32#sw+uhr*K3 z0D!879~K7pL=psDkZvAmHQ+{58&J>#p$5FJU<@|KY9rk}^aF56%K#HAcz`Ed83EK# z7gY6AArYXE1el;7$_tHG@lyl-!K*@=pDxP)1^<8$Jk@|&rv?RWjLihKF*u~4vNTu< z4hG8#UQ(8ZgCSsf7l@=F1Pqar0YhZK%2HrO6^NpWti0e~KOo5*4&ka|p>yRgW27fF zpgVzpRgsbL_4SqZm6OKc++<{xm6cC9AP^}MLJIGXCcylp(0Jj$8FY|%IL-r0@W7x2 zPZ?n@7$1TfkR#S>fR#B6h8F^tD=oV!U!0g6$az=cc#q#mMjR7msSwGaNPrq!1&@X{?i7e z4vc_Q1D~`;TA* zT*VcGL%~Q6d!S%$NEs~J4Ji0Kj4Ij~FAR=kn50hb4;9A7Dh6mg0fvSn4Rq9iB%h@{ zJP;(Y^72R}S6L~93&ceVhLl&5Qbx$SNWqmLF0S%&a!N{&KfNIB*TKMjPBZ)We#HNC zzbVdxbhKbz|25C)fjcb;6@3ppDOvu1od`>$_g^zF55YgGKm`Urt!_0S{4}jd1n{qA zkN-LXf71H8BT1zHN4o!n;W4fRUlV*nf)71 zY6Pd#-z|vr@Vkj2(WK6WBekfkBX>9ez+P*hqh;lnwU!->2_(vYL`|D@1-hm3Rd z`(htXAg9Bk@!W+w7G3i{c5e0Io~y+-RgPM|^^xl9UGu;G?NLEmQBfCqnIG6#R#aLC znHQp^1xB)xcV8Bwq@xRqY;H4h6`S7cDi3rFXbfx=m+P_Vs4E7^O`D!H9v!H+jeT8? z)4O)9OfYbcf8|_#xZe#Sk-ntMqn7~fVMw&yAUPK~{x+L4buomChc01gfS$`xLU7583>y|(_$CcjpsNd{#w8Q5pMKpCAx>re)= zje6Sa_U5Lc1TNY6JMEdrn{F;W`ggQ8+0h72@^fKliS#ivF|2WgiU3{P74iNr8JP{6 zIbMJ(4Q&kzJd#Yd5yev(UqXP6X)RgA_RuEw6-J_X{>^3Kr-m->=VD4X*%c8Yb7c7f zY1V!a6}U|efgH=m<2HR^y6_?u@frIBWj|u3%-WZ``bwd~!fb_zaLI9`r84_{H=}cq zBB5(nPslHF@FvCKx^g@siF};(sRvE>>MwufBbFl7xKG}9yk^b>Tt8+?XrR~<>uU&R z8frZ!T^3_@^$xDf1IG;wk)4Zjrl?NW{!GK#ykKOa`a~dykyv*Y49O#ryHV)HS)m;W z6Z=T)0Q+1Ig(x7b>NYohk?vmb9(^?$?`sMVr5saZm?1Zd7z(srFLAab%r=bW9LNPK zFHRJMLn02o6b&#pY8A>a(6xV_piFS0A5&*CWXW=3O1~7r_5ePknt_!uvLzeo(`3?~ ze7gX-M%6h(Hxeq99rDZAeM0a}c#>?$MWbLNT1(FQpA8LsmKVCKwm81CtP3ceSsqI& zF7VH}(XLntd09aRc4NwE?-8##!^iMk`$~UU^7Y81JQl6`*Eb%`guT8qSGe~wg`wzC zG@8NE$xp36$Z~=|_`=QBEIoXBSP9Vyt){mDI2&8}pvn6xb$kAoT&i7+ZqN6{o+W9! z3ybtQM?5!dXp~>W=5cu27uiam)I9=Ws0WOu0vyv9U5(Nw1F2U+WyZ1yp%P!xH@jUD z$b{Ho8^>jKt1Rk=%u5?*^6v@gly zlNq$W5#H{vtd|Z?HC-@Hu03|B^xRRsUy%1bpn*##BDT3F4wrTC`ut@NM9dDGMGb-r z>oa_-kpC&qua(DlGpX-gk^qr$p|q+yjLM|-nCz$0g^ixLgn9F4fb#9NL)-&L-%9T( zKws9FSB9jI6xVOEx40x(EudIEyO&;ZRl=0U;wjU0=qI|_l z1N3P+7=4U@Ma=>woB- z2p!+^>{T@L-Fp3Dxw^TqMkI4hdz{{9Jhy3?`8Qi`BXmIBk{gtN`VB|$V2HYcwhREKdaabO&)hFk-R5sJHCTZbKPBdmTG64 zzL5SSm1Q1o5|p#del(wpzk7aY6dj;|2z{ny!`nMAP+qICX!EirS-$aQTvzS{_3i5^ zC`LU0lqDrs7nfB)KZ}T7wAj-d(FwQW97Hg&T60-W&UmA$K z5FDXsJ6a1;e_S!Sqc0`3_h9GXaLPeaV3|2^62MS|Zr5~M3mB~TS_Lc<4ZQFpZY+ek+}C3-B#Xj8*(2FWhSQ(cNtgW39TD_j;nzf zEG0`qX|vLSdG&z$2(jMwY`C>4Y%cd~)}CCFuZ`^&^)dm|?^H5K)s8)pFf}QSH7Zs4xc-na ziA~ATR*Of;G&1rX!<$i~!?*{dN4$|0hqLFb!7c)w(UXX~V?^$SsWX@2S$Gvp5vvm; zzK+&ab5V4C{YcUH_6Luq-}pA4RemwM&1wNmlQ>?jl;FM#4XFeU)@E|a(tM95eWUuU{NbVrVZHxIzaQFj<9WL8ZQUV^?9^ern@y? zGBc#0Wz($Z?dyxkm1E7iawDc9C+)?x70S|d4m(k}KYMkB)%MxE#m*G6ho-2JXBpgxM?3%Pb>W&0AYS|sM-=s$ED6+=;jc5%z7kmQaL{-8ke|} z8p(gnWo%cmrRd3OZ1)zI{-jw|L#a*V!-D6nb_JxR;mN&hZcExqcVOH2frQ`jN2{n` z>%1D9>aX>6zU}eF-=ZSgdZ}T?L?yUU+Sk%DE`gWp-$u-jcS#Nzu4;MD2&2WjlR1y}aiR>Anb!Jb}l3~$=o<B11 z6|vGPLwRkM=iBk3W@hB?zLYKwras*~c33qS@D=eQ3hVS+_us1(dC~Jpk#n>6IEN- z^#)TUXYB>;o|K#P%OtLklu%eh`g15h9MxSru{h$&%i=#;WTwPjD$+BOU&G#Kd`=UFa<=tlE z+B?F4$Vw$Ou9pKi@|Kr#@u&BkCI+_lFaY zpWDa!_PQpjbRixi0ZIPQ#q^T);{6zdJpal}N!}#J%pZU!X$t&mJM6QcUOXPC+~Mo* z8EJFNNkb;yyZxD%*=3?-BB7&G6qvck*Ss&g$X`0>&tm|tRT#SC?l^B`8&3`qtD_-J(wAM#j(gf0Pjluxmgi)l56u@PbMsWfU@B)O)=M9j(i{9Cfd*dnb5`J!P2PGPe z@C%b`g(#r&8P$ctzs5S$K4#V+Yd#{rcA_*D;$A_O_*(@klU{T|1D% ziiLb_-;Oi&{b7@x#CuRYjQ?pheRImE{ynwX2FOyz#j)@_6pAjV2i)sP-}%Ch2_C*` zS+Xo)Ou^?^RSsKQrnb|U*D~peQ!Dy#z3{_?1A2*;tiEN1L5kxR^|{HDk{CT5_0S!p zZ$K}|aPAv-;AM>tRflqva-L=flG;h<@2EE8UcwpijQ*N||!!LUY>4;8Ml3!c)F5-;Kn{m9F6>GJGets}mizXLg zbN;aTqE+`Kgn9fc$kO5DmrE^ccxYD?FLa>IJ1CsWBmV1G?@7s?7RQkCu>+LwSl4Cuq6d!eIBjSE?)&kS#FVBqcDqyO8*hOB9 z!Wcd8QaX^|I_$Md;k>n;bS)CVSNe%(x+|}+&sw-txF}}hVs&dQvA;FiwC^7N&VpRv z3ws`=Zy-zGqMNx1-6~L$sO2B&+j`-5&(T!!xGb+x8D%5Od;*L(#Q4yuWIU(v0^#X&Fhe1)*5NQ;nm!0ON_~^@sdJs4q?IZZY7!}p{tt%DXS$;EjL%bg+gU4>qW?K zw>Jzp1^1EVPOy4DI%F*hR$b510#Z~CBZ#l-{BAjP7^pMWoIi;GZF9t9C*$r09{$X5 zn=1-qneXnd@P}xpxyQmsy^0rRgEhSB6MxP(v9U}N9mixijrTCWYL3XrUGv1}i?8)9zTw@)R=x)eD3{E{R>64+b zh5gwS#*e14Pf~&kkjPk@)wI)0%*Fe}en%f%CXwPkVrEX~^@3WnU zhF8OXq28~iF_)jcuTi+5yKvoyGWafyVp`0M-d3Eug>oeGBweMpwgnTMj8v5yi^t6$ z#vEJ7MZfdktWR%mV6vA`Id5$>V{kX2|B&u7;+NVk2pjcnCeL^$PHYa_4 T#Wdvf9|{9q6P+@sbND|15b%FS literal 0 HcmV?d00001 diff --git a/src/js/tabs/gps.js b/src/js/tabs/gps.js index dcf422009d..e72fba8334 100644 --- a/src/js/tabs/gps.js +++ b/src/js/tabs/gps.js @@ -193,10 +193,11 @@ gps.initialize = async function (callback) { $('.GPS_info span.colorToggle').text(FC.GPS_DATA.fix ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse')); $('.GPS_info span.colorToggle').toggleClass('ready', FC.GPS_DATA.fix != 0); + const gspUnitText = i18n.getMessage('gpsPositionUnit'); $('.GPS_info td.alt').text(`${alt} m`); - $('.GPS_info td.lat a').prop('href', url).text(`${lat.toFixed(4)} deg`); - $('.GPS_info td.lon a').prop('href', url).text(`${lon.toFixed(4)} deg`); - $('.GPS_info td.heading').text(`${headingDeg.toFixed(4)} deg`); + $('.GPS_info td.lat a').prop('href', url).text(`${lat.toFixed(4)} ${gspUnitText}`); + $('.GPS_info td.lon a').prop('href', url).text(`${lon.toFixed(4)} ${gspUnitText}`); + $('.GPS_info td.heading').text(`${headingDeg.toFixed(4)} ${gspUnitText}`); $('.GPS_info td.speed').text(`${FC.GPS_DATA.speed} cm/s`); $('.GPS_info td.sats').text(FC.GPS_DATA.numSat); $('.GPS_info td.distToHome').text(`${FC.GPS_DATA.distanceToHome} m`); @@ -279,15 +280,16 @@ gps.initialize = async function (callback) { $('#connect').hide(); if (FC.GPS_DATA.fix) { - gpsWasFixed = true; + gpsWasFixed = true; + message.action = hasMag ? 'centerMag' : 'center'; if (!!frame.contentWindow) { - frame.contentWindow.postMessage(message, '*'); + frame.contentWindow.postMessage(message, '*'); } - $('#loadmap').show(); - $('#waiting').hide(); + $('#loadmap').show(); + $('#waiting').hide(); } else if (!gpsWasFixed) { - $('#loadmap').hide(); - $('#waiting').show(); + $('#loadmap').hide(); + $('#waiting').show(); } else { message.action = 'nofix'; if (!!frame.contentWindow) { diff --git a/src/js/tabs/map.js b/src/js/tabs/map.js index bc014a9314..5d36b0a349 100644 --- a/src/js/tabs/map.js +++ b/src/js/tabs/map.js @@ -1,13 +1,16 @@ + const DEFAULT_ZOOM = 16, DEFAULT_LON = 0, DEFAULT_LAT = 0, - ICON_IMAGE = '/images/icons/cf_icon_position.png', + ICON_IMAGE_GPS = '/images/icons/cf_icon_position.png', + ICON_IMAGE_MAG = '/images/icons/cf_icon_position_mag.png', ICON_IMAGE_NOFIX = '/images/icons/cf_icon_position_nofix.png'; let iconGeometry, map, mapView, - iconStyle, + iconStyleGPS, + iconStyleMag, iconStyleNoFix, iconFeature; @@ -33,11 +36,18 @@ function initializeMap() { controls: [], }); - const icon = new ol.style.Icon(({ + const iconGPS = new ol.style.Icon(({ + anchor: [0.5, 1], + opacity: 1, + scale: 0.5, + src: ICON_IMAGE_GPS, + })); + + const iconMag = new ol.style.Icon(({ anchor: [0.5, 1], opacity: 1, scale: 0.5, - src: ICON_IMAGE, + src: ICON_IMAGE_MAG, })); const iconNoFix = new ol.style.Icon(({ @@ -47,8 +57,12 @@ function initializeMap() { src: ICON_IMAGE_NOFIX, })); - iconStyle = new ol.style.Style({ - image: icon, + iconStyleGPS = new ol.style.Style({ + image: iconGPS, + }); + + iconStyleMag = new ol.style.Style({ + image: iconMag, }); iconStyleNoFix = new ol.style.Style({ @@ -60,7 +74,7 @@ function initializeMap() { geometry: iconGeometry, }); - iconFeature.setStyle(iconStyle); + iconFeature.setStyle(iconStyleGPS); const vectorSource = new ol.source.Vector({ features: [iconFeature], @@ -87,6 +101,8 @@ function processMapEvents(e) { break; case 'center': + case 'centerMag': + const iconStyle = e.data.action == 'centerMag' ? iconStyleMag : iconStyleGPS; iconFeature.setStyle(iconStyle); const center = ol.proj.fromLonLat([e.data.lon, e.data.lat]); mapView.setCenter(center); diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index 571e6138b7..9ff6b7b6ba 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -432,9 +432,10 @@ setup.initialize = function (callback) { gpsFix_e.text(FC.GPS_DATA.fix ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse')); gpsFix_e.toggleClass('ready', FC.GPS_DATA.fix != 0); + const gspUnitText = i18n.getMessage('gpsPositionUnit'); gpsSats_e.text(FC.GPS_DATA.numSat); - gpsLat_e.text(`${(FC.GPS_DATA.lat / 10000000).toFixed(4)} deg`); - gpsLon_e.text(`${(FC.GPS_DATA.lon / 10000000).toFixed(4)} deg`); + gpsLat_e.text(`${(FC.GPS_DATA.lat / 10000000).toFixed(4)} ${gspUnitText}`); + gpsLon_e.text(`${(FC.GPS_DATA.lon / 10000000).toFixed(4)} ${gspUnitText}`); } function get_fast_data() { From 34ec89a8ce4f02e2c8baf542e898c0abfc198724 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 20 Jun 2023 22:53:34 +0200 Subject: [PATCH 111/393] Add RPM debugField (#3489) Complements https://github.com/betaflight/betaflight/pull/12823 --- src/js/tabs/onboard_logging.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index aacdf6156f..073da33f64 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -365,6 +365,7 @@ onboard_logging.initialize = function (callback) { { text: "Debug Log" }, { text: "Motor" }, { text: "GPS" }, + { text: "RPM" }, ]; let fieldsMask = FC.BLACKBOX.blackboxDisabledMask; From 4adf43657c1515f5b3464f192f96e7b15d5dbdc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=ADguel=20=C3=81ngel=20Mulero=20Mart=C3=ADnez?= Date: Wed, 21 Jun 2023 20:26:17 +0200 Subject: [PATCH 112/393] Upgrade stale action to v8 (#3474) --- .github/workflows/stale.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml index d65af0d062..90b72b5c35 100644 --- a/.github/workflows/stale.yaml +++ b/.github/workflows/stale.yaml @@ -10,7 +10,7 @@ jobs: name: 'Check and close stale issues' runs-on: ubuntu-22.04 steps: - - uses: actions/stale@v4 + - uses: actions/stale@v8 with: repo-token: ${{ secrets.GITHUB_TOKEN }} operations-per-run: 30 From b328324b61e37e23e5b3a1bbd159fe8cd153257c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=ADguel=20=C3=81ngel=20Mulero=20Mart=C3=ADnez?= Date: Wed, 21 Jun 2023 20:35:10 +0200 Subject: [PATCH 113/393] Cancel previous execution of PR github action (#3483) --- .github/workflows/pr.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index c207e7e47b..2fcdcd4a14 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -6,6 +6,10 @@ on: - master - '*-maintenance' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number }} + cancel-in-progress: true + jobs: ci: name: CI From ad9b29e6b6bc549b0f200a1b0fce13003b837b34 Mon Sep 17 00:00:00 2001 From: Richard Benkovsky Date: Wed, 21 Jun 2023 11:49:18 -0700 Subject: [PATCH 114/393] Add support for multiple presets repositories to be active at once (#3476) * Add support for multiple presets repositories to be active at once * Code-style changes to src/tabs/presets/presets.js Co-authored-by: Mark Haslinghuis * Code-review changes * Show presets repo name only when non-official repos are enabled * Code-review changes * Trim preset title not to overlap icons --------- Co-authored-by: Mark Haslinghuis --- locales/en/messages.json | 12 +++ .../DetailedDialog/PresetsDetailedDialog.js | 9 +- src/tabs/presets/FavoritePresets.js | 12 +-- src/tabs/presets/PickedPreset.js | 3 +- .../PresetsRepoIndexed/PresetsGithubRepo.js | 4 +- .../PresetsRepoIndexed/PresetsRepoIndexed.js | 12 ++- .../PresetsRepoIndexed/PresetsWebsiteRepo.js | 4 +- .../presets/SourcesDialog/SourcePanel.html | 1 + src/tabs/presets/SourcesDialog/SourcePanel.js | 15 +++ .../presets/SourcesDialog/SourcesDialog.js | 47 ++++----- .../presets/TitlePanel/PresetTitlePanel.css | 22 ++++- .../presets/TitlePanel/PresetTitlePanel.js | 18 +++- .../TitlePanel/PresetTitlePanelBody.html | 9 ++ src/tabs/presets/presets.html | 1 + src/tabs/presets/presets.js | 95 ++++++++++++------- 15 files changed, 186 insertions(+), 78 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 3ae750aa35..6699fdc99a 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -6857,6 +6857,10 @@ "message": "Keywords:", "description": "Hint text in the presets detailed dialog" }, + "presetsSourceRepository": { + "message": "Source:", + "description": "Text prefixing user defined name of the preset repository containing a preset" + }, "presetsVersions": { "message": "Firmware:", "description": "Hint text in the presets detailed dialog" @@ -7005,6 +7009,10 @@ "message": "Make Active", "description": "Presets tab, sources dialog, button to make selected source active" }, + "presetsSourcesDialogMakeSourceDisable": { + "message": "Make disabled", + "description": "Presets tab, sources dialog, button to make selected source disabled" + }, "presetsSourcesDialogDeleteSource": { "message": "Delete", "description": "Presets tab, sources dialog, button to delete selected source" @@ -7013,6 +7021,10 @@ "message": "WARNING! A third party preset source is selected.", "description": "Warning message that shows up when a third party preset source is selected" }, + "presetsFailedToLoadRepositories": { + "message": "WARNING! Failed to load following repositories: {{repos}}", + "description": "Warning message that shows up when we fail to load some repositories" + }, "presetsWarningBackup": { "message": "Please make sure you backup your current configuration ('$t(presetsBackupSave.message)' button or via CLI if the button is disabled) before picking and applying presets. Otherwise there is no way to return to previous configuration after applying presets.", "description": "Warning message that shows up at the top of the presets tab" diff --git a/src/tabs/presets/DetailedDialog/PresetsDetailedDialog.js b/src/tabs/presets/DetailedDialog/PresetsDetailedDialog.js index 0795b4a9a6..c657096002 100644 --- a/src/tabs/presets/DetailedDialog/PresetsDetailedDialog.js +++ b/src/tabs/presets/DetailedDialog/PresetsDetailedDialog.js @@ -26,9 +26,10 @@ export default class PresetsDetailedDialog { }); } - open(preset, presetsRepo) { + open(preset, presetsRepo, showPresetRepoName) { this._presetsRepo = presetsRepo; this._preset = preset; + this._showPresetRepoName = showPresetRepoName; this._setLoadingState(true); this._domDialog[0].showModal(); this._optionsShowedAtLeastOnce = false; @@ -78,8 +79,8 @@ export default class PresetsDetailedDialog { } this._titlePanel.empty(); - const titlePanel = new PresetTitlePanel(this._titlePanel, this._preset, false, - () => this._setLoadingState(false), this._favoritePresets); + const titlePanel = new PresetTitlePanel(this._titlePanel, this._preset, this._presetsRepo, false, + this._showPresetRepoName, () => this._setLoadingState(false), this._favoritePresets); titlePanel.load(); this._loadOptionsSelect(); this._updateFinalCliText(); @@ -263,7 +264,7 @@ export default class PresetsDetailedDialog { _pickPreset() { const cliStrings = this._getFinalCliText(); - const pickedPreset = new PickedPreset(this._preset, cliStrings); + const pickedPreset = new PickedPreset(this._preset, cliStrings, this._presetsRepo); this._pickedPresetList.push(pickedPreset); this._onPresetPickedCallback?.(); this._isPresetPickedOnClose = true; diff --git a/src/tabs/presets/FavoritePresets.js b/src/tabs/presets/FavoritePresets.js index b4ce87a007..4a3f62a774 100644 --- a/src/tabs/presets/FavoritePresets.js +++ b/src/tabs/presets/FavoritePresets.js @@ -75,19 +75,19 @@ class FavoritePresetsClass { this._favoritePresetsData = new FavoritePresetsData(); } - add(preset) { - const favoritePreset = this._favoritePresetsData.add(preset.fullPath); + add(preset, repo) { + const favoritePreset = this._favoritePresetsData.add(repo.getPresetOnlineLink(preset)); preset.lastPickDate = favoritePreset.lastPickDate; } - delete(preset) { - this._favoritePresetsData.delete(preset.fullPath); + delete(preset, repo) { + this._favoritePresetsData.delete(repo.getPresetOnlineLink(preset)); preset.lastPickDate = undefined; } - addLastPickDate(presets) { + addLastPickDate(presets, repo) { for (let preset of presets) { - let favoritePreset = this._favoritePresetsData.findPreset(preset.fullPath); + let favoritePreset = this._favoritePresetsData.findPreset(repo.getPresetOnlineLink(preset)); if (favoritePreset) { preset.lastPickDate = favoritePreset.lastPickDate; diff --git a/src/tabs/presets/PickedPreset.js b/src/tabs/presets/PickedPreset.js index 96b197e00e..19adde352f 100644 --- a/src/tabs/presets/PickedPreset.js +++ b/src/tabs/presets/PickedPreset.js @@ -1,8 +1,9 @@ export default class PickedPreset { - constructor(preset, presetCli) + constructor(preset, presetCli, presetRepo) { this.preset = preset; this.presetCli = presetCli; + this.presetRepo = presetRepo; } } diff --git a/src/tabs/presets/PresetsRepoIndexed/PresetsGithubRepo.js b/src/tabs/presets/PresetsRepoIndexed/PresetsGithubRepo.js index e34057846e..4ad36bc32d 100644 --- a/src/tabs/presets/PresetsRepoIndexed/PresetsGithubRepo.js +++ b/src/tabs/presets/PresetsRepoIndexed/PresetsGithubRepo.js @@ -1,7 +1,7 @@ import PresetsRepoIndexed from "./PresetsRepoIndexed"; export default class PresetsGithubRepo extends PresetsRepoIndexed { - constructor(urlRepo, branch) { + constructor(urlRepo, branch, official, name) { let correctUrlRepo = urlRepo.trim(); if (!correctUrlRepo.endsWith("/")) { @@ -21,6 +21,6 @@ export default class PresetsGithubRepo extends PresetsRepoIndexed { const urlRaw = `https://raw.githubusercontent.com${correctUrlRepo.slice("https://github.com".length)}${correctBranch}/`; const urlViewOnline = `${correctUrlRepo}blob/${correctBranch}/`; - super(urlRaw, urlViewOnline); + super(urlRaw, urlViewOnline, official, name); } } diff --git a/src/tabs/presets/PresetsRepoIndexed/PresetsRepoIndexed.js b/src/tabs/presets/PresetsRepoIndexed/PresetsRepoIndexed.js index 4455d0d8b9..1b0f0207f0 100644 --- a/src/tabs/presets/PresetsRepoIndexed/PresetsRepoIndexed.js +++ b/src/tabs/presets/PresetsRepoIndexed/PresetsRepoIndexed.js @@ -1,16 +1,26 @@ import PresetParser from "./PresetParser"; export default class PresetsRepoIndexed { - constructor(urlRaw, urlViewOnline) { + constructor(urlRaw, urlViewOnline, official, name) { this._urlRaw = urlRaw; this._urlViewOnline = urlViewOnline; this._index = null; + this._name = name; + this._official = official; } get index() { return this._index; } + get official() { + return this._official; + } + + get name() { + return this._name; + } + loadIndex() { return fetch(`${this._urlRaw}index.json`, {cache: "no-cache"}) .then(res => res.json()) diff --git a/src/tabs/presets/PresetsRepoIndexed/PresetsWebsiteRepo.js b/src/tabs/presets/PresetsRepoIndexed/PresetsWebsiteRepo.js index 28388cd6ef..c9d8a089d6 100644 --- a/src/tabs/presets/PresetsRepoIndexed/PresetsWebsiteRepo.js +++ b/src/tabs/presets/PresetsRepoIndexed/PresetsWebsiteRepo.js @@ -1,7 +1,7 @@ import PresetsRepoIndexed from "./PresetsRepoIndexed"; export default class PresetsWebsiteRepo extends PresetsRepoIndexed { - constructor(url) { + constructor(url, official, name) { let correctUrl = url.trim(); if (!correctUrl.endsWith("/")) { @@ -11,6 +11,6 @@ export default class PresetsWebsiteRepo extends PresetsRepoIndexed { const urlRaw = correctUrl; const urlViewOnline = correctUrl; - super(urlRaw, urlViewOnline); + super(urlRaw, urlViewOnline, official, name); } } diff --git a/src/tabs/presets/SourcesDialog/SourcePanel.html b/src/tabs/presets/SourcesDialog/SourcePanel.html index 72b275c811..4193097a65 100644 --- a/src/tabs/presets/SourcesDialog/SourcePanel.html +++ b/src/tabs/presets/SourcesDialog/SourcePanel.html @@ -21,6 +21,7 @@
    + diff --git a/src/tabs/presets/SourcesDialog/SourcePanel.js b/src/tabs/presets/SourcesDialog/SourcePanel.js index a930b8a56f..273a62d97e 100644 --- a/src/tabs/presets/SourcesDialog/SourcePanel.js +++ b/src/tabs/presets/SourcesDialog/SourcePanel.js @@ -47,6 +47,12 @@ export default class SourcePanel { this._onActivateCallback = onActivateCallback; } + setOnDeactivateCallback(onDeactivateCallback) { + // callback with this (SourcePanel) argument + // so that consumer knew which panel was clicked on + this._onDeactivateCallback = onDeactivateCallback; + } + setOnSaveCallback(onSaveCallback) { // callback with this (SourcePanel) argument // so that consumer knew which panel was clicked on @@ -65,6 +71,7 @@ export default class SourcePanel { this._active = isActive; this._domDivSelectedIndicator.toggle(this._active); this._domButtonActivate.toggle(!isActive); + this._domButtonDeactivate.toggle(isActive); } _setUiOfficial() { @@ -120,6 +127,7 @@ export default class SourcePanel { this._domButtonReset.on("click", () => this._onResetButtonClick()); this._domButtonDelete.on("click", () => this._onDeleteButtonClick()); this._domButtonActivate.on("click", () => this._onActivateButtonClick()); + this._domButtonDeactivate.on("click", () => this._onDeactivateButtonClick()); this._domEditName.on("input", () => this._onInputChange()); this._domEditUrl.on("input", () => this._onInputChange()); @@ -168,6 +176,12 @@ export default class SourcePanel { this._onActivateCallback?.(this); } + _onDeactivateButtonClick() { + this._onSaveButtonClick(); + this.setActive(false); + this._onDeactivateCallback?.(this); + } + _setIsSaved(isSaved) { if (isSaved) { this._domButtonSave.addClass(GUI.buttonDisabledClass); @@ -190,6 +204,7 @@ export default class SourcePanel { this._domButtonSave = this._domWrapperDiv.find(".presets_source_panel_save"); this._domButtonReset = this._domWrapperDiv.find(".presets_source_panel_reset"); this._domButtonActivate = this._domWrapperDiv.find(".presets_source_panel_activate"); + this._domButtonDeactivate = this._domWrapperDiv.find(".presets_source_panel_deactivate"); this._domButtonDelete = this._domWrapperDiv.find(".presets_source_panel_delete"); this._domDivGithubBranch = this._domWrapperDiv.find(".presets_source_panel_editing_github_branch"); this._domDivNoEditingName = this._domWrapperDiv.find(".presets_source_panel_no_editing_name"); diff --git a/src/tabs/presets/SourcesDialog/SourcesDialog.js b/src/tabs/presets/SourcesDialog/SourcesDialog.js index bf9679d5ff..671b484636 100644 --- a/src/tabs/presets/SourcesDialog/SourcesDialog.js +++ b/src/tabs/presets/SourcesDialog/SourcesDialog.js @@ -9,7 +9,7 @@ export default class PresetsSourcesDialog { this._sourceSelectedPromiseResolve = null; this._sourcesPanels = []; this._sources = []; - this._activeSourceIndex = 0; + this._activeSourceIndexes = [0]; } load() { @@ -28,20 +28,20 @@ export default class PresetsSourcesDialog { return new Promise(resolve => this._sourceSelectedPromiseResolve = resolve); } - getActivePresetSource() { - return this._sources[this._activeSourceIndex]; + getActivePresetSources() { + return this._activeSourceIndexes.map(index => this._sources[index]); } - get isOfficialActive() { - return this._activeSourceIndex === 0; + get isThirdPartyActive() { + return this.getActivePresetSources().filter(source => !source.official).length > 0; } _initializeSources() { this._sources = this._readSourcesFromStorage(); - this._activeSourceIndex = this._readActiveSourceIndexFromStorage(this._sources.length); + this._activeSourceIndexes = this._readActiveSourceIndexFromStorage(this._sources.length); for (let i = 0; i < this._sources.length; i++) { - const isActive = this._activeSourceIndex === i; + const isActive = this._activeSourceIndexes.includes(i); this._addNewSourcePanel(this._sources[i], isActive, false); } } @@ -67,15 +67,8 @@ export default class PresetsSourcesDialog { } _readActiveSourceIndexFromStorage(sourcesCount) { - const obj = getConfig('PresetSourcesActiveIndex'); - const index = Number(obj.PresetSourcesActiveIndex); - let result = 0; - - if (index && Number.isInteger(index) && index < sourcesCount) { - result = index; - } - - return result; + const obj = getConfig('PresetSourcesActiveIndexes'); + return obj.PresetSourcesActiveIndexes || [0]; } _createOfficialSource() { @@ -117,6 +110,7 @@ export default class PresetsSourcesDialog { sourcePanel.setOnSelectedCallback(selectedPanel => this._onSourcePanelSelected(selectedPanel)); sourcePanel.setOnDeleteCallback(selectedPanel => this._onSourcePanelDeleted(selectedPanel)); sourcePanel.setOnActivateCallback(selectedPanel => this._onSourcePanelActivated(selectedPanel)); + sourcePanel.setOnDeactivateCallback(selectedPanel => this._onSourcePanelDeactivated(selectedPanel)); sourcePanel.setOnSaveCallback(() => this._onSourcePanelSaved()); sourcePanel.setActive(isActive); if (isSelected) { @@ -140,18 +134,18 @@ export default class PresetsSourcesDialog { _readPanels() { this._sources = []; - this._activeSourceIndex = 0; - for(let i = 0; i < this._sourcesPanels.length; i++) { + this._activeSourceIndexes = []; + for (let i = 0; i < this._sourcesPanels.length; i++) { this._sources.push(this._sourcesPanels[i].presetSource); if (this._sourcesPanels[i].active) { - this._activeSourceIndex = i; + this._activeSourceIndexes.push(i); } } } _saveSources() { setConfig({'PresetSources': this._sources}); - setConfig({'PresetSourcesActiveIndex': this._activeSourceIndex}); + setConfig({'PresetSourcesActiveIndexes': this._activeSourceIndexes}); } _updateSourcesFromPanels() { @@ -183,15 +177,22 @@ export default class PresetsSourcesDialog { _onSourcePanelActivated(selectedPanel) { for (const panel of this._sourcesPanels) { - if (panel !== selectedPanel) { - panel.setActive(false); - } else { + if (panel === selectedPanel) { panel.setActive(true); } } this._updateSourcesFromPanels(); } + _onSourcePanelDeactivated(selectedPanel) { + for (const panel of this._sourcesPanels) { + if (panel === selectedPanel) { + panel.setActive(false); + } + } + this._updateSourcesFromPanels(); + } + _readDom() { this._domButtonAddNew = $("#presets_sources_dialog_add_new"); this._domButtonClose = $("#presets_sources_dialog_close"); diff --git a/src/tabs/presets/TitlePanel/PresetTitlePanel.css b/src/tabs/presets/TitlePanel/PresetTitlePanel.css index e9481d12d5..65a320e849 100644 --- a/src/tabs/presets/TitlePanel/PresetTitlePanel.css +++ b/src/tabs/presets/TitlePanel/PresetTitlePanel.css @@ -20,7 +20,7 @@ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; - width: calc(100% - 30px); + width: calc(100% - 60px); } .preset_title_panel_star { @@ -37,6 +37,20 @@ top: -5px; } +.preset_title_panel_betaflight_official { + background-image: url(../../../images/icons/cf_icon_welcome_orange.svg); + width: 25px; + height: 25px; + background-size: cover; + border-radius: 5px; + padding: 5px; + background-origin: content-box; + background-repeat: no-repeat; + position: absolute; + right: 26px; + top: -5px; +} + .preset_title_panel_category { color: var(--mutedText); font-weight: bold; @@ -75,6 +89,12 @@ text-overflow: ellipsis; } +.preset_title_panel_repository_text { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + .presets_title_panel_table { table-layout: fixed; width: 100%; diff --git a/src/tabs/presets/TitlePanel/PresetTitlePanel.js b/src/tabs/presets/TitlePanel/PresetTitlePanel.js index 373fdcb71c..a74efd723d 100644 --- a/src/tabs/presets/TitlePanel/PresetTitlePanel.js +++ b/src/tabs/presets/TitlePanel/PresetTitlePanel.js @@ -2,13 +2,15 @@ import { i18n } from "../../../js/localization"; export default class PresetTitlePanel { - constructor(parentDiv, preset, clickable, onLoadedCallback, favoritePresets) + constructor(parentDiv, preset, presetRepo, clickable, showPresetRepoName, onLoadedCallback, favoritePresets) { PresetTitlePanel.s_panelCounter ++; this._parentDiv = parentDiv; this._onLoadedCallback = onLoadedCallback; this._domId = `preset_title_panel_${PresetTitlePanel.s_panelCounter}`; this._preset = preset; + this._presetRepo = presetRepo; + this._showPresetRepoName = showPresetRepoName; this._clickable = clickable; this._favoritePresets = favoritePresets; @@ -68,7 +70,7 @@ export default class PresetTitlePanel } _showPresetsDetailedDialog(presetsDetailedDialog, presetsRepo) { - presetsDetailedDialog.open(this._preset, presetsRepo).then(isPresetPicked => { + presetsDetailedDialog.open(this._preset, presetsRepo, this._showPresetRepoName).then(isPresetPicked => { if (isPresetPicked) { const color = this._domWrapperDiv.css( "background-color" ); this._domWrapperDiv.css('background-color', 'green'); @@ -103,11 +105,16 @@ export default class PresetTitlePanel this._domTitle.prop("title", this._preset.title); this._domAuthor.text(this._preset.author); this._domVersions.text(this._preset.firmware_version?.join("; ")); + this._domSourceRepository.text(this._presetRepo.name); + this._domSourceRepositoryRow.toggle(this._showPresetRepoName); + this._domKeywords.text(this._preset.keywords?.join("; ")); this._domKeywords.prop("title", this._preset.keywords?.join("; ")); this._domStatusOfficial.toggle(this._preset.status === "OFFICIAL"); this._domStatusCommunity.toggle(this._preset.status === "COMMUNITY"); this._domStatusExperimental.toggle(this._preset.status === "EXPERIMENTAL"); + this._domOfficialSourceIcon.toggle(this._presetRepo.official); + this.setPicked(this._preset.isPicked); this._setupStar(); @@ -128,10 +135,13 @@ export default class PresetTitlePanel this._domCategory = this._domWrapperDiv.find('.preset_title_panel_category'); this._domAuthor = this._domWrapperDiv.find('.preset_title_panel_author_text'); this._domKeywords = this._domWrapperDiv.find('.preset_title_panel_keywords_text'); + this._domSourceRepository = this._domWrapperDiv.find('.preset_title_panel_repository_text'); + this._domSourceRepositoryRow = this._domWrapperDiv.find('.preset_title_panel_repository_row'); this._domVersions = this._domWrapperDiv.find('.preset_title_panel_versions_text'); this._domStatusOfficial = this._domWrapperDiv.find('.preset_title_panel_status_official'); this._domStatusCommunity = this._domWrapperDiv.find('.preset_title_panel_status_community'); this._domStatusExperimental = this._domWrapperDiv.find('.preset_title_panel_status_experimental'); + this._domOfficialSourceIcon = this._domWrapperDiv.find('.preset_title_panel_betaflight_official'); } _setupStar() { @@ -145,9 +155,9 @@ export default class PresetTitlePanel _processStarClick() { if (this._preset.lastPickDate) { - this._favoritePresets.delete(this._preset); + this._favoritePresets.delete(this._preset, this._presetRepo); } else { - this._favoritePresets.add(this._preset); + this._favoritePresets.add(this._preset, this._presetRepo); } this._favoritePresets.saveToStorage(); diff --git a/src/tabs/presets/TitlePanel/PresetTitlePanelBody.html b/src/tabs/presets/TitlePanel/PresetTitlePanelBody.html index 7dd031ba20..132959c380 100644 --- a/src/tabs/presets/TitlePanel/PresetTitlePanelBody.html +++ b/src/tabs/presets/TitlePanel/PresetTitlePanelBody.html @@ -1,4 +1,5 @@
    +
    @@ -40,6 +41,14 @@ + + + + + + + +
    diff --git a/src/tabs/presets/presets.html b/src/tabs/presets/presets.html index 97c2ff9bac..5b5873cfa2 100644 --- a/src/tabs/presets/presets.html +++ b/src/tabs/presets/presets.html @@ -17,6 +17,7 @@
    +
    Don't show again diff --git a/src/tabs/presets/presets.js b/src/tabs/presets/presets.js index f731bbfd98..79a9d8a69f 100644 --- a/src/tabs/presets/presets.js +++ b/src/tabs/presets/presets.js @@ -17,7 +17,7 @@ import PresetsSourcesDialog from './SourcesDialog/SourcesDialog'; import PresetSource from './SourcesDialog/PresetSource'; const presets = { - presetsRepo: null, + presetsRepo: [], cliEngine: null, pickedPresetList: [], majorVersion: 1, @@ -65,6 +65,7 @@ presets.readDom = function() { this._domButtonPresetSources = $(".presets_sources_show"); this._domWarningNotOfficialSource = $(".presets_warning_not_official_source"); + this._domWarningFailedToLoadRepositories = $(".presets_failed_to_load_repositories"); this._domWarningBackup = $(".presets_warning_backup"); this._domButtonHideBackupWarning = $(".presets_warning_backup_button_hide"); @@ -116,8 +117,10 @@ presets.onSaveClick = function() { }; presets.markPickedPresetsAsFavorites = function() { - for(const pickedPreset of this.pickedPresetList) { - favoritePresets.add(pickedPreset.preset); + for (const pickedPreset of this.pickedPresetList) { + if (pickedPreset.presetRepo !== undefined){ + favoritePresets.add(pickedPreset.preset, pickedPreset.presetRepo); + } } favoritePresets.saveToStorage(); @@ -134,7 +137,7 @@ presets.setupMenuButtons = function() { this._domButtonCancel.on("click", () => { - for(const pickedPreset of this.pickedPresetList) { + for (const pickedPreset of this.pickedPresetList) { pickedPreset.preset.isPicked = false; } @@ -268,7 +271,7 @@ presets.onLoadConfigClick = function() { .then(text => { if (text) { const cliStrings = text.split("\n"); - const pickedPreset = new PickedPreset({title: "user configuration"}, cliStrings); + const pickedPreset = new PickedPreset({title: "user configuration"}, cliStrings, undefined); this.pickedPresetList.push(pickedPreset); this.onSaveClick(); } @@ -316,23 +319,32 @@ presets.reload = function() { }; presets.tryLoadPresets = function() { - const presetSource = this.presetsSourcesDialog.getActivePresetSource(); + const presetSources = this.presetsSourcesDialog.getActivePresetSources(); - if (PresetSource.isUrlGithubRepo(presetSource.url)) { - this.presetsRepo = new PresetsGithubRepo(presetSource.url, presetSource.gitHubBranch); - } else { - this.presetsRepo = new PresetsWebsiteRepo(presetSource.url); - } + this.presetsRepo = presetSources.map(source => { + if (PresetSource.isUrlGithubRepo(source.url)) { + return new PresetsGithubRepo(source.url, source.gitHubBranch, source.official, source.name); + } else { + return new PresetsWebsiteRepo(source.url, source.official, source.name); + } + }); this._divMainContent.toggle(false); this._divGlobalLoadingError.toggle(false); this._divGlobalLoading.toggle(true); - this._domWarningNotOfficialSource.toggle(!this.presetsSourcesDialog.isOfficialActive); + this._domWarningNotOfficialSource.toggle(this.presetsSourcesDialog.isThirdPartyActive); + + const failedToLoad = []; - this.presetsRepo.loadIndex() - .then(() => this.checkPresetSourceVersion()) + Promise.all(this.presetsRepo.map(p => p.loadIndex().catch((reason => failedToLoad.push(p))))) + .then(() => { + this._domWarningFailedToLoadRepositories.toggle(failedToLoad.length > 0); + this._domWarningFailedToLoadRepositories.html(i18n.getMessage("presetsFailedToLoadRepositories", {"repos": failedToLoad.map(repo => repo.name).join("; ")})); + this.presetsRepo = this.presetsRepo.filter(repo => !failedToLoad.includes(repo)); + return this.checkPresetSourceVersion(); + }) .then(() => { - favoritePresets.addLastPickDate(this.presetsRepo.index.presets); + this.presetsRepo.forEach(p => favoritePresets.addLastPickDate(p.index.presets, p)); this.prepareFilterFields(); this._divGlobalLoading.toggle(false); this._divMainContent.toggle(true); @@ -365,11 +377,12 @@ presets.checkPresetSourceVersion = function() { const self = this; return new Promise((resolve, reject) => { - if (self.majorVersion === self.presetsRepo.index.majorVersion) { + const differentMajorVersionsRepos = self.presetsRepo.filter(pr => self.majorVersion !== pr.index.majorVersion); + if (differentMajorVersionsRepos.length === 0) { resolve(); } else { const versionRequired = `${self.majorVersion}.X`; - const versionSource = `${self.presetsRepo.index.majorVersion}.${self.presetsRepo.index.minorVersion}`; + const versionSource = `${differentMajorVersionsRepos[0].index.majorVersion}.${differentMajorVersionsRepos[0].index.minorVersion}`; const dialogSettings = { title: i18n.getMessage("presetsWarningDialogTitle"), @@ -377,7 +390,7 @@ presets.checkPresetSourceVersion = function() { buttonYesText: i18n.getMessage("yes"), buttonNoText: i18n.getMessage("no"), buttonYesCallback: () => resolve(), - buttonNoCallback: () => reject("Prset source version mismatch"), + buttonNoCallback: () => reject("Preset source version mismatch"), }; GUI.showYesNoDialog(dialogSettings); @@ -385,13 +398,21 @@ presets.checkPresetSourceVersion = function() { }); }; +function getUniqueValues(objects, extractor) { + let values = objects.map(extractor); + let uniqueValues = [...values.reduce((a, b) => new Set([...a, ...b]), new Set())]; + return uniqueValues.sort((a, b) => a.localeCompare(b, undefined, {sensitivity: 'base'})); +} + presets.prepareFilterFields = function() { this._freezeSearch = true; - this.prepareFilterSelectField(this._selectCategory, this.presetsRepo.index.uniqueValues.category, 3); - this.prepareFilterSelectField(this._selectKeyword, this.presetsRepo.index.uniqueValues.keywords, 3); - this.prepareFilterSelectField(this._selectAuthor, this.presetsRepo.index.uniqueValues.author, 1); - this.prepareFilterSelectField(this._selectFirmwareVersion, this.presetsRepo.index.uniqueValues.firmware_version, 2); - this.prepareFilterSelectField(this._selectStatus, this.presetsRepo.index.settings.PresetStatusEnum, 2); + + this.prepareFilterSelectField(this._selectCategory, getUniqueValues(this.presetsRepo, x => x.index.uniqueValues.category), 3); + this.prepareFilterSelectField(this._selectKeyword, getUniqueValues(this.presetsRepo, x => x.index.uniqueValues.keywords), 3); + this.prepareFilterSelectField(this._selectAuthor, getUniqueValues(this.presetsRepo, x => x.index.uniqueValues.author), 1); + this.prepareFilterSelectField(this._selectFirmwareVersion, getUniqueValues(this.presetsRepo, x => x.index.uniqueValues.firmware_version), 2); + this.prepareFilterSelectField(this._selectStatus, getUniqueValues(this.presetsRepo, x => x.index.settings.PresetStatusEnum), 2); + this.multipleSelectComponentScrollFix().then(() => { this.preselectFilterFields(); this._inputTextFilter.on('input', () => this.updateSearchResults()); @@ -404,9 +425,11 @@ presets.preselectFilterFields = function() { const currentVersion = FC.CONFIG.flightControllerVersion; const selectedVersions = []; - for(const bfVersion of this.presetsRepo.index.uniqueValues.firmware_version) { - if (currentVersion.startsWith(bfVersion)) { - selectedVersions.push(bfVersion); + for (const repo of this.presetsRepo) { + for (const bfVersion of repo.index.uniqueValues.firmware_version) { + if (currentVersion.startsWith(bfVersion)) { + selectedVersions.push(bfVersion); + } } } @@ -474,25 +497,29 @@ presets.displayPresets = function(fitPresets) { this._domListNoFound.toggle(fitPresets.length === 0); fitPresets.forEach(preset => { - const presetPanel = new PresetTitlePanel(this._divPresetList, preset, true, undefined, favoritePresets); + const presetPanel = new PresetTitlePanel(this._divPresetList, preset[0], preset[1], true, this.presetsSourcesDialog.isThirdPartyActive, favoritePresets); presetPanel.load(); this._presetPanels.push(presetPanel); - presetPanel.subscribeClick(this.presetsDetailedDialog, this.presetsRepo); + presetPanel.subscribeClick(this.presetsDetailedDialog, preset[1]); }); this._domListTooManyFound.appendTo(this._divPresetList); }; + presets.getFitPresets = function(searchParams) { const result = []; - - for(const preset of this.presetsRepo.index.presets) { - if(this.isPresetFitSearch(preset, searchParams)) { - result.push(preset); + const seenHashes = new Set(); + for (const repo of this.presetsRepo){ + for (const preset of repo.index.presets) { + if (this.isPresetFitSearch(preset, searchParams) && !seenHashes.has(preset.hash)) { + result.push([preset, repo]); + seenHashes.add(preset.hash); + } } } - result.sort((a, b) => this.presetSearchPriorityComparer(a,b)); + result.sort((a, b) => this.presetSearchPriorityComparer(a[0], b[0])); return result; }; @@ -653,7 +680,7 @@ presets.cleanup = function(callback) { presets.resetInitialValues = function() { CONFIGURATOR.cliEngineActive = false; CONFIGURATOR.cliEngineValid = false; - TABS.presets.presetsRepo = null; + TABS.presets.presetsRepo = []; TABS.presets.pickedPresetList.length = 0; this._domProgressDialog.close(); }; From d143d42b4de1cb9f8812311780611b129055323e Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Wed, 21 Jun 2023 21:27:39 +0200 Subject: [PATCH 115/393] Add help text to sections on GPS tab (#3485) * Add help text to sections on GPS tab * Update locales/en/messages.json Co-authored-by: Mark Haslinghuis --------- Co-authored-by: Mark Haslinghuis --- locales/en/messages.json | 16 ++++++++++++++++ src/tabs/gps.html | 4 ++++ 2 files changed, 20 insertions(+) mode change 100644 => 100755 locales/en/messages.json mode change 100644 => 100755 src/tabs/gps.html diff --git a/locales/en/messages.json b/locales/en/messages.json old mode 100644 new mode 100755 index 6699fdc99a..3f9db1aa9e --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -1518,6 +1518,10 @@ "configurationGPS": { "message": "GPS Configuration" }, + "configurationGPSHelp": { + "message": "Setup protocol for GPS device (remember to setup port in Port tab), use Auto baud (or setup speed at Port tab) and other configuration", + "description": "Help text GPS configuration" + }, "configurationGPSProtocol": { "message": "Protocol" }, @@ -2689,9 +2693,17 @@ "gpsHead": { "message": "GPS" }, + "gpsHeadHelp": { + "message": "Show various information releated to GPS. Heading are only shown when Magnetometer are in use", + "description": "Help text for gpsHead" + }, "gpsMapHead": { "message": "Current GPS location" }, + "gpsMapHeadHelp": { + "message": "Show GPS location on the map. Use mouse scroll button to zoom in and out.
    The location icon shows the north direction when the magnetometer is in use", + "description": "Help text for gpsHeadMap" + }, "gpsMapMessage1": { "message": "Please check your internet connection" }, @@ -2735,6 +2747,10 @@ "gpsSignalStrHead": { "message": "GPS Signal Strength" }, + "gpsSignalStrHeadHelp": { + "message": "Show signal strength, quality and status for each discovered GPS source", + "description": "Help text for gpsSignalStrHead" + }, "gpsSignalStr": { "message": "Signal Strength" }, diff --git a/src/tabs/gps.html b/src/tabs/gps.html old mode 100644 new mode 100755 index d6b1730fc7..9068812902 --- a/src/tabs/gps.html +++ b/src/tabs/gps.html @@ -10,6 +10,7 @@
    +
    @@ -66,6 +67,7 @@
    +
    @@ -79,6 +81,7 @@
    +
    @@ -121,6 +124,7 @@
    +
    From 1c06352745739acb600a61759c34a09cf910a35b Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 27 Jun 2023 10:43:57 +0200 Subject: [PATCH 116/393] Fix cli reconnect tab (#3494) --- src/js/tabs/cli.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/js/tabs/cli.js b/src/js/tabs/cli.js index bf7ce4b54d..7d94fe5718 100644 --- a/src/js/tabs/cli.js +++ b/src/js/tabs/cli.js @@ -593,14 +593,14 @@ cli.cleanup = function (callback) { // (another approach is however much more complicated): // we can setup an interval asking for data lets say every 200ms, when data arrives, callback will be triggered and tab switched // we could probably implement this someday - if (callback) { - callback(); - } - - CONFIGURATOR.cliActive = false; - CONFIGURATOR.cliValid = false; + reinitializeConnection(function () { + GUI.timeout_add('tab_change_callback', callback, 500); + }); }); + CONFIGURATOR.cliActive = false; + CONFIGURATOR.cliValid = false; + CliAutoComplete.cleanup(); $(CliAutoComplete).off(); }; From 256355201fd49d6939df7a52a8fdc8caec72bd07 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 27 Jun 2023 10:55:16 +0200 Subject: [PATCH 117/393] Fix API version (#3495) --- src/js/tabs/firmware_flasher.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 2720e5c348..5f22bfa7b9 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -645,8 +645,8 @@ firmware_flasher.initialize = function (callback) { function detectBoard() { console.log(`Requesting board information`); MSP.send_message(MSPCodes.MSP_API_VERSION, false, false, () => { - if (!FC.CONFIG.apiVersion || FC.CONFIG.apiVersion.includes('null')) { - gui_log(i18n.getMessage('apiVersionReceived', FC.CONFIG.apiVersion)); + gui_log(i18n.getMessage('apiVersionReceived', FC.CONFIG.apiVersion)); + if (FC.CONFIG.apiVersion.includes('null')) { onClose(false); // not supported } else if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_39)) { onClose(false); // not supported From fdb8c6b19c20491bc6b7bd21eee6819a58430812 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 27 Jun 2023 11:00:35 +0200 Subject: [PATCH 118/393] Fix OSD stat elements (#3498) --- locales/en/messages.json | 14 ++++++++++++++ src/js/tabs/osd.js | 19 ++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 3f9db1aa9e..f4fa2aa431 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -5961,6 +5961,20 @@ "osdDescStatMinRSNR": { "message": "Minimum RSNR value" }, + "osdTextStatBest3ConsecLaps": { + "message": "Best 3 consecutive laps", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBest3ConsecLaps": { + "message": "Best 3 consecutive laps" + }, + "osdTextStatBestLap": { + "message": "Best lap", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBestLap": { + "message": "Best lap" + }, "osdTextStatUnknown": { "message": "Unknown $1", "description": "One of the statistics that can be shown at the end of the flight in the OSD" diff --git a/src/js/tabs/osd.js b/src/js/tabs/osd.js index 04926a3c54..6bff175b74 100644 --- a/src/js/tabs/osd.js +++ b/src/js/tabs/osd.js @@ -7,7 +7,7 @@ import FC from "../fc"; import MSP from "../msp"; import MSPCodes from "../msp/MSPCodes"; import PortHandler from "../port_handler"; -import CONFIGURATOR, { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_44, API_VERSION_1_45 } from "../data_storage"; +import CONFIGURATOR, { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_44, API_VERSION_1_45, API_VERSION_1_46 } from "../data_storage"; import LogoManager from "../LogoManager"; import { gui_log } from "../gui_log"; import semver from "semver"; @@ -1682,6 +1682,16 @@ OSD.constants = { text: 'osdTextStatMinRSNR', desc: 'osdDescStatMinRSNR', }, + STAT_BEST_3_CONSEC_LAPS : { + name: 'STAT_BEST_3_CONSEC_LAPS', + text: 'osdTextStatBest3ConsecLaps', + desc: 'osdDescStatBest3ConsecLaps', + }, + STAT_BEST_LAP : { + name: 'STAT_BEST_LAP', + text: 'osdTextStatBestLap', + desc: 'osdDescStatBestLap', + }, }, ALL_WARNINGS: { ARMING_DISABLED: { @@ -1979,6 +1989,13 @@ OSD.chooseFields = function() { ]); } + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + OSD.constants.STATISTIC_FIELDS = OSD.constants.STATISTIC_FIELDS.concat([ + F.STAT_BEST_3_CONSEC_LAPS, + F.STAT_BEST_LAP, + ]); + } + // Choose warnings // Nothing much to do here, I'm preempting there being new warnings F = OSD.constants.ALL_WARNINGS; From 351388985197a91728e51e8a907a4c707cb8d950 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 27 Jun 2023 15:07:16 +0200 Subject: [PATCH 119/393] Update translations (#3499) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 32 ++++++++++++++++++++++ locales/da/messages.json | 32 ++++++++++++++++++++++ locales/es/messages.json | 32 ++++++++++++++++++++++ locales/it/messages.json | 59 ++++++++++++++++++++++++++++++++++++++-- locales/ja/messages.json | 55 +++++++++++++++++++++++++++++++++++++ locales/ko/messages.json | 16 +++++++++++ locales/pl/messages.json | 16 +++++++++++ locales/pt/messages.json | 32 ++++++++++++++++++++++ 8 files changed, 272 insertions(+), 2 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index f567b1cd5e..86ec37831e 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -1426,6 +1426,10 @@ "configurationGPS": { "message": "Configuració GPS" }, + "configurationGPSHelp": { + "message": "Configureu el protocol per al dispositiu GPS (recordeu configurar el port a la pestanya Port), utilitzeu el baud automàtic (o configureu la velocitat a la pestanya Port) i altres configuracions", + "description": "Help text GPS configuration" + }, "configurationGPSProtocol": { "message": "Protocol" }, @@ -2596,9 +2600,17 @@ "gpsHead": { "message": "GPS" }, + "gpsHeadHelp": { + "message": "Mostra informació diversa relacionada amb el GPS. Els títols només es mostren quan el magnetòmetre està en ús", + "description": "Help text for gpsHead" + }, "gpsMapHead": { "message": "Ubicació actual del GPS" }, + "gpsMapHeadHelp": { + "message": "Mostra la ubicació GPS al mapa. Utilitzeu el botó de desplaçament per apropar i allunyar.
    La icona d'ubicació mostra la direcció nord quan el magnetòmetre està en ús", + "description": "Help text for gpsHeadMap" + }, "gpsMapMessage1": { "message": "Si us plau, revisa la connexió a Internet" }, @@ -2614,6 +2626,10 @@ "gpsFixFalse": { "message": "Fals" }, + "gpsPositionUnit": { + "message": "grau/s", + "description": "Unit for GPS position." + }, "gpsAltitude": { "message": "Altitud:" }, @@ -2638,6 +2654,10 @@ "gpsSignalStrHead": { "message": "Potència senyal GPS" }, + "gpsSignalStrHeadHelp": { + "message": "Mostra la intensitat del senyal, la qualitat i l'estat de cada font GPS descoberta", + "description": "Help text for gpsSignalStrHead" + }, "gpsSignalStr": { "message": "Potència Senyal" }, @@ -6742,6 +6762,10 @@ "message": "Paraules claus:", "description": "Hint text in the presets detailed dialog" }, + "presetsSourceRepository": { + "message": "Font:", + "description": "Text prefixing user defined name of the preset repository containing a preset" + }, "presetsVersions": { "message": "Programari:", "description": "Hint text in the presets detailed dialog" @@ -6890,6 +6914,10 @@ "message": "Activa", "description": "Presets tab, sources dialog, button to make selected source active" }, + "presetsSourcesDialogMakeSourceDisable": { + "message": "Fer desactivat", + "description": "Presets tab, sources dialog, button to make selected source disabled" + }, "presetsSourcesDialogDeleteSource": { "message": "Eliminar", "description": "Presets tab, sources dialog, button to delete selected source" @@ -6898,6 +6926,10 @@ "message": "ADVERTIMENT! S'ha seleccionat una font de preajustos predeterminada de tercers.", "description": "Warning message that shows up when a third party preset source is selected" }, + "presetsFailedToLoadRepositories": { + "message": "ADVERTIMENT! No s'han pogut carregar els repositoris següents: {{repos}}", + "description": "Warning message that shows up when we fail to load some repositories" + }, "presetsWarningBackup": { "message": "Assegureu-vos de fer una còpia de seguretat de la vostra configuració actual (botó '$t(presetsBackupSave.message)' o mitjançant CLI si el botó està desactivat) abans d'escollir i aplicar els valors predefinits. En cas contrari, no hi ha manera de tornar a la configuració anterior després d'aplicar els valors predefinits.", "description": "Warning message that shows up at the top of the presets tab" diff --git a/locales/da/messages.json b/locales/da/messages.json index 77627b7248..cbaaa1deb4 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -1418,6 +1418,10 @@ "configurationGPS": { "message": "GPS konfiguration" }, + "configurationGPSHelp": { + "message": "Indstilling af GPS protokol (husk at indstille port i Porte menu), brug auto baud (eller indstil hastighed i Porte menu) og andre muligheder.", + "description": "Help text GPS configuration" + }, "configurationGPSProtocol": { "message": "Protokol" }, @@ -2588,9 +2592,17 @@ "gpsHead": { "message": "GPS status" }, + "gpsHeadHelp": { + "message": "Angiver forskellig GPS information. Kurs vises kun hvis kompas anvendes.", + "description": "Help text for gpsHead" + }, "gpsMapHead": { "message": "Aktuel GPS position" }, + "gpsMapHeadHelp": { + "message": "Angiver GPS prosition på kortet, rul med muse hjul for at zoome ind/ud eller tryk på +/-.
    Positions ikon viser retning for Nord, når kompas er i anvendelse.", + "description": "Help text for gpsHeadMap" + }, "gpsMapMessage1": { "message": "Tjek Internetforbindelsen" }, @@ -2606,6 +2618,10 @@ "gpsFixFalse": { "message": "Falsk" }, + "gpsPositionUnit": { + "message": "grad", + "description": "Unit for GPS position." + }, "gpsAltitude": { "message": "Højde:" }, @@ -2630,6 +2646,10 @@ "gpsSignalStrHead": { "message": "GPS signalstyrke" }, + "gpsSignalStrHeadHelp": { + "message": "Angiver signal styrke, kvalitet og status for hver opdaget GPS station.", + "description": "Help text for gpsSignalStrHead" + }, "gpsSignalStr": { "message": "Signalstyrke" }, @@ -6734,6 +6754,10 @@ "message": "Søgeord:", "description": "Hint text in the presets detailed dialog" }, + "presetsSourceRepository": { + "message": "Kilde:", + "description": "Text prefixing user defined name of the preset repository containing a preset" + }, "presetsVersions": { "message": "Firmware version:", "description": "Hint text in the presets detailed dialog" @@ -6882,6 +6906,10 @@ "message": "Gør Aktiv", "description": "Presets tab, sources dialog, button to make selected source active" }, + "presetsSourcesDialogMakeSourceDisable": { + "message": "Deaktiver !", + "description": "Presets tab, sources dialog, button to make selected source disabled" + }, "presetsSourcesDialogDeleteSource": { "message": "Slet", "description": "Presets tab, sources dialog, button to delete selected source" @@ -6890,6 +6918,10 @@ "message": "ADVARSEL! En tredjeparts kilde for predefineret opsætning er valgt.", "description": "Warning message that shows up when a third party preset source is selected" }, + "presetsFailedToLoadRepositories": { + "message": "ADVARSEL! Kunne ikke indlæse disse bibiloteker: {{repos}}", + "description": "Warning message that shows up when we fail to load some repositories" + }, "presetsWarningBackup": { "message": "Kontroller, at du sikkerhedskopierer din nuværende konfiguration ('$t(presetsBackupSave.message)' knap eller via CLI, hvis knappen er deaktiveret) før du vælger og anvender predefineret opsætning. Uden sikkerhedskopi er der ingen måde til at vende tilbage til din tidligere konfiguration efter indlæsning af predefineret opsætning.", "description": "Warning message that shows up at the top of the presets tab" diff --git a/locales/es/messages.json b/locales/es/messages.json index 9a8e52a711..1f248ffbff 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -1418,6 +1418,10 @@ "configurationGPS": { "message": "Configuración del GPS" }, + "configurationGPSHelp": { + "message": "Configura el protocolo para el dispositivo GPS (recuerda configurar el puerto en la pestaña Puertos), activa Velocidad automática (o configura la velocidad en la pestaña Puertos) y otras configuraciones", + "description": "Help text GPS configuration" + }, "configurationGPSProtocol": { "message": "Protocolo" }, @@ -2588,9 +2592,17 @@ "gpsHead": { "message": "GPS" }, + "gpsHeadHelp": { + "message": "Muestra información variada relacionada con el GPS. El rumbo sólo se muestra cuando se utiliza un Magnetómetro", + "description": "Help text for gpsHead" + }, "gpsMapHead": { "message": "Localización GPS actual" }, + "gpsMapHeadHelp": { + "message": "Muestra ubicación GPS en el mapa. Utiliza la rueda de desplazamiento del ratón para acercar o alejar el zoom.
    El icono de la ubicación muestra la dirección norte cuando el magnetómetro está en uso", + "description": "Help text for gpsHeadMap" + }, "gpsMapMessage1": { "message": "Por favor verifica tu conexión a internet" }, @@ -2606,6 +2618,10 @@ "gpsFixFalse": { "message": "False" }, + "gpsPositionUnit": { + "message": "grados", + "description": "Unit for GPS position." + }, "gpsAltitude": { "message": "Altitud:" }, @@ -2630,6 +2646,10 @@ "gpsSignalStrHead": { "message": "Fuerza Señal GPS" }, + "gpsSignalStrHeadHelp": { + "message": "Muestra la fuerza de la señal, calidad y estado para cada fuente GPS descubierta", + "description": "Help text for gpsSignalStrHead" + }, "gpsSignalStr": { "message": "Fuerza de la Señal" }, @@ -6734,6 +6754,10 @@ "message": "Palabras clave:", "description": "Hint text in the presets detailed dialog" }, + "presetsSourceRepository": { + "message": "Origen:", + "description": "Text prefixing user defined name of the preset repository containing a preset" + }, "presetsVersions": { "message": "Firmware:", "description": "Hint text in the presets detailed dialog" @@ -6882,6 +6906,10 @@ "message": "Marcar como activo", "description": "Presets tab, sources dialog, button to make selected source active" }, + "presetsSourcesDialogMakeSourceDisable": { + "message": "Deshabilitar", + "description": "Presets tab, sources dialog, button to make selected source disabled" + }, "presetsSourcesDialogDeleteSource": { "message": "Borrar", "description": "Presets tab, sources dialog, button to delete selected source" @@ -6890,6 +6918,10 @@ "message": "¡ATENCIÓN!Se ha seleccionado una fuente de preajustes de terceros.", "description": "Warning message that shows up when a third party preset source is selected" }, + "presetsFailedToLoadRepositories": { + "message": "¡ATENCIÓN! Error al cargar los siguientes repositorios: {{repos}}", + "description": "Warning message that shows up when we fail to load some repositories" + }, "presetsWarningBackup": { "message": "Por favor, asegúrate de hacer una copia de seguridad de tu configuración actual (botón '$t(presetsBackupSave.message)' o vía CLI si el botón está desactivado) antes de seleccionar y aplicar preajustes. De lo contrario, no hay forma de volver a la configuración anterior después de aplicar preajustes.", "description": "Warning message that shows up at the top of the presets tab" diff --git a/locales/it/messages.json b/locales/it/messages.json index 55f944909b..f15940b93f 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -84,10 +84,10 @@ "message": "Connessione automatica: Disabilitata - E' necessario selezionare la porta seriale e fare click su \"Connetti\"" }, "expertMode": { - "message": "Abilita modalità esperto" + "message": "Abilita Modalità Esperto" }, "expertModeDescription": { - "message": "Abilita Modalità Esperto" + "message": "Abilita opzione Modalità Esperto" }, "warningSettings": { "message": "Mostra avvisi" @@ -995,6 +995,9 @@ "initialSetupInfoBuildOptionsEmpty": { "message": "Build locale - Nessuna definizione usata" }, + "initialSetupNotOnline": { + "message": "Server non disponibile" + }, "initialSetupButtonSave": { "message": "Salva" }, @@ -1415,6 +1418,10 @@ "configurationGPS": { "message": "Configurazione GPS" }, + "configurationGPSHelp": { + "message": "Imposta il protocollo per il dispositivo GPS (ricorda di configurare la porta nella scheda Porte), usa Auto (o setta la velocità nella scheda Porta) e altre configurazioni", + "description": "Help text GPS configuration" + }, "configurationGPSProtocol": { "message": "Protocollo" }, @@ -2134,6 +2141,10 @@ "receiverButtonBindingPhrase": { "message": "Frase per associare" }, + "receiverButtonSticks": { + "message": "Emulatore Radio", + "description": "Button that opens a window with a radio emulator on the receiver tab. Actually only enabled for MSP protocol" + }, "receiverDataRefreshed": { "message": "Dati di messa a punto RC aggiornati" }, @@ -2581,9 +2592,17 @@ "gpsHead": { "message": "GPS" }, + "gpsHeadHelp": { + "message": "Mostra varie informazioni del GPS. La direzione viene mostrata solo se il Magnetometro è in uso", + "description": "Help text for gpsHead" + }, "gpsMapHead": { "message": "Posizione GPS attuale" }, + "gpsMapHeadHelp": { + "message": "Mostra la posizione GPS sulla mappa. Usa lo scorrimento del mouse per ingrandire e rimpicciolire.
    L'icona della posizione mostra la direzione nord se il magnetometro è in uso", + "description": "Help text for gpsHeadMap" + }, "gpsMapMessage1": { "message": "Per favore controlla la tua connessione Internet" }, @@ -2599,6 +2618,10 @@ "gpsFixFalse": { "message": "Falso" }, + "gpsPositionUnit": { + "message": "gradi", + "description": "Unit for GPS position." + }, "gpsAltitude": { "message": "Altitudine:" }, @@ -2623,6 +2646,10 @@ "gpsSignalStrHead": { "message": "Potenza del segnale GPS" }, + "gpsSignalStrHeadHelp": { + "message": "Mostra la potenza, qualità e stato del segnale per ogni satellite GPS rilevato", + "description": "Help text for gpsSignalStrHead" + }, "gpsSignalStr": { "message": "Potenza del segnale" }, @@ -3438,6 +3465,22 @@ "firmwareFlasherPreviousDevice": { "message": "Rilevato: $1 - è ancora in corso il flashing del dispositivo precedente, ti preghiamo di ricollegarlo per riprovare" }, + "firmwareFlasherRemindBackupTitle": { + "message": "Cancella le impostazioni", + "description": "Warning message title before actual flashing takes place" + }, + "firmwareFlasherRemindBackup": { + "message": "Con il flash di un nuovo firmware si cancellano tutte le impostazioni. È consigliato fare un backup prima di continuare.", + "description": "Warning message before actual flashing takes place" + }, + "firmwareFlasherBackup": { + "message": "Crea Backup", + "description": "Create a backup before actual flashing takes place" + }, + "firmwareFlasherBackupIgnore": { + "message": "Ignora il rischio", + "description": "Ignore creating a backup before actual flashing takes place" + }, "ledStripHelp": { "message": "il Controlllore di volo è un grado di controllare il colore e gli effetti di ogni singolo LED su una striscia.
    Configura i LED sulla griglia, configura l'ordine del cablaggio e poi posiziona i LED sul tuo mezzo seguendo la posizione sulla griglia. I LED senza numero di posizione sulla griglia non saranno salvati.
    Fai doppio click su un colore per modificare i valori di HSV" }, @@ -6711,6 +6754,10 @@ "message": "Parole Chiave:", "description": "Hint text in the presets detailed dialog" }, + "presetsSourceRepository": { + "message": "Fonte:", + "description": "Text prefixing user defined name of the preset repository containing a preset" + }, "presetsVersions": { "message": "Firmware:", "description": "Hint text in the presets detailed dialog" @@ -6859,6 +6906,10 @@ "message": "Attiva", "description": "Presets tab, sources dialog, button to make selected source active" }, + "presetsSourcesDialogMakeSourceDisable": { + "message": "Disabilita", + "description": "Presets tab, sources dialog, button to make selected source disabled" + }, "presetsSourcesDialogDeleteSource": { "message": "Elimina", "description": "Presets tab, sources dialog, button to delete selected source" @@ -6867,6 +6918,10 @@ "message": "ATTENZIONE! È selezionata una sorgente di preset di terze parti.", "description": "Warning message that shows up when a third party preset source is selected" }, + "presetsFailedToLoadRepositories": { + "message": "ATTENZIONE! Impossibile caricare i seguenti repositori: {{repos}}", + "description": "Warning message that shows up when we fail to load some repositories" + }, "presetsWarningBackup": { "message": "Assicurati di fare un backup della configurazione attuale (pulsante '$t(presetsBackupSave.message)' o tramite CLI se il pulsante è disabilitato) prima di scegliere e applicare un preset. In caso contrario dopo l'applicazione dei preset non ci sarà nessun modo per tornare alla configurazione precedente.", "description": "Warning message that shows up at the top of the presets tab" diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 0643252c5a..2bcc4946ca 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -995,6 +995,9 @@ "initialSetupInfoBuildOptionsEmpty": { "message": "ローカルビルド - 定義なし" }, + "initialSetupNotOnline": { + "message": "サーバーが利用できません" + }, "initialSetupButtonSave": { "message": "保存" }, @@ -1415,6 +1418,10 @@ "configurationGPS": { "message": "GPS 設定" }, + "configurationGPSHelp": { + "message": "GPSデバイスのプロトコルを設定し (【ポート】タブでポート設定することを忘れずに)、オートボー (または【ポート】タブで速度を設定) を使用し、その他の設定を行います。", + "description": "Help text GPS configuration" + }, "configurationGPSProtocol": { "message": "プロトコル" }, @@ -2134,6 +2141,10 @@ "receiverButtonBindingPhrase": { "message": "バインドフレーズ" }, + "receiverButtonSticks": { + "message": "送信機エミュレーター", + "description": "Button that opens a window with a radio emulator on the receiver tab. Actually only enabled for MSP protocol" + }, "receiverDataRefreshed": { "message": "RCチューニングデータ 更新しました" }, @@ -2581,9 +2592,17 @@ "gpsHead": { "message": "GPS" }, + "gpsHeadHelp": { + "message": "GPSに関連する様々な情報を表示します。方位はコンパス使用時のみ表示されます。", + "description": "Help text for gpsHead" + }, "gpsMapHead": { "message": "現在のGPS測位" }, + "gpsMapHeadHelp": { + "message": "地図上にGPS位置を表示します。マウスのスクロールボタンで拡大・縮小できます。
    コンパスが使用されている場合、位置アイコンは北の方位を示します。", + "description": "Help text for gpsHeadMap" + }, "gpsMapMessage1": { "message": "インターネット接続を確認してください" }, @@ -2599,6 +2618,10 @@ "gpsFixFalse": { "message": "失敗" }, + "gpsPositionUnit": { + "message": "度", + "description": "Unit for GPS position." + }, "gpsAltitude": { "message": "高度:" }, @@ -2623,6 +2646,10 @@ "gpsSignalStrHead": { "message": "GPS強度" }, + "gpsSignalStrHeadHelp": { + "message": "検出された各GPS情報の信号強度、品質、ステータスを表示", + "description": "Help text for gpsSignalStrHead" + }, "gpsSignalStr": { "message": "電波強度:" }, @@ -3438,6 +3465,22 @@ "firmwareFlasherPreviousDevice": { "message": "検出: $1 - 以前のデバイスがまだ書き込まれています。再接続してもう一度お試しください。" }, + "firmwareFlasherRemindBackupTitle": { + "message": "設定を消去", + "description": "Warning message title before actual flashing takes place" + }, + "firmwareFlasherRemindBackup": { + "message": "新しいファームウェアをフラッシュすると、すべての設定が消去されます。続行する前にバックアップとして保存することを強く推奨します。", + "description": "Warning message before actual flashing takes place" + }, + "firmwareFlasherBackup": { + "message": "バックアップを作成", + "description": "Create a backup before actual flashing takes place" + }, + "firmwareFlasherBackupIgnore": { + "message": "リスクを無視", + "description": "Ignore creating a backup before actual flashing takes place" + }, "ledStripHelp": { "message": "フライトコントローラは、個々のLEDストリップの色や効果を制御できます。
    グリッド上にLEDを配置、配線順序を設定し、グリッド位置に従って機体にLEDを取り付けます。 ワイヤーオーダー番号のないLEDは保存されません。
    HSV値を編集するには、色を選択、ダブルクリックします。" }, @@ -6711,6 +6754,10 @@ "message": "キーワード:", "description": "Hint text in the presets detailed dialog" }, + "presetsSourceRepository": { + "message": "ソース:", + "description": "Text prefixing user defined name of the preset repository containing a preset" + }, "presetsVersions": { "message": "ファームウェア:", "description": "Hint text in the presets detailed dialog" @@ -6859,6 +6906,10 @@ "message": "有効にする", "description": "Presets tab, sources dialog, button to make selected source active" }, + "presetsSourcesDialogMakeSourceDisable": { + "message": "使用不可にする", + "description": "Presets tab, sources dialog, button to make selected source disabled" + }, "presetsSourcesDialogDeleteSource": { "message": "削除", "description": "Presets tab, sources dialog, button to delete selected source" @@ -6867,6 +6918,10 @@ "message": "警告! サードパーティのプリセットソースが選択されています。", "description": "Warning message that shows up when a third party preset source is selected" }, + "presetsFailedToLoadRepositories": { + "message": "警告!以下のリポジトリの読み込みに失敗しました: {{repos}}", + "description": "Warning message that shows up when we fail to load some repositories" + }, "presetsWarningBackup": { "message": "プリセットを選択して適用する前に、必ず現在の設定をバックアップしてください。(『$t(presetsBackupSave.message)』ボタン、またはボタンが無効になっている場合はCLI経由にて) バックアップしていない場合、プリセットを適用した後に以前の設定に戻すことができません。", "description": "Warning message that shows up at the top of the presets tab" diff --git a/locales/ko/messages.json b/locales/ko/messages.json index 7d2f3e32a9..ea3be2ecef 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -2606,6 +2606,10 @@ "gpsFixFalse": { "message": "거짓" }, + "gpsPositionUnit": { + "message": "도", + "description": "Unit for GPS position." + }, "gpsAltitude": { "message": "고도:" }, @@ -6734,6 +6738,10 @@ "message": "키워드:", "description": "Hint text in the presets detailed dialog" }, + "presetsSourceRepository": { + "message": "소스:", + "description": "Text prefixing user defined name of the preset repository containing a preset" + }, "presetsVersions": { "message": "펌웨어:", "description": "Hint text in the presets detailed dialog" @@ -6882,6 +6890,10 @@ "message": "활성화", "description": "Presets tab, sources dialog, button to make selected source active" }, + "presetsSourcesDialogMakeSourceDisable": { + "message": "생성이 비활성화됨", + "description": "Presets tab, sources dialog, button to make selected source disabled" + }, "presetsSourcesDialogDeleteSource": { "message": "삭제", "description": "Presets tab, sources dialog, button to delete selected source" @@ -6890,6 +6902,10 @@ "message": "경고! 제3자 프리셋 소스가 선택되었습니다.", "description": "Warning message that shows up when a third party preset source is selected" }, + "presetsFailedToLoadRepositories": { + "message": "경고! 다음 저장소를 로드하지 못했습니다: {{repos}}", + "description": "Warning message that shows up when we fail to load some repositories" + }, "presetsWarningBackup": { "message": "프리셋을 선택하고 적용하기 전에 현재 환경설정('$t(presetsBackupSave.message)'버튼 또는 버튼이 비활성화된 경우 CLI를 통해)을 백업하십시오. 그렇지 않으면 프리셋을 적용한 후 이전 환경설정으로 돌아갈 수 없습니다.", "description": "Warning message that shows up at the top of the presets tab" diff --git a/locales/pl/messages.json b/locales/pl/messages.json index 0a0cef7779..9bf1fb5a0e 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -2606,6 +2606,10 @@ "gpsFixFalse": { "message": "Błąd" }, + "gpsPositionUnit": { + "message": "stopni", + "description": "Unit for GPS position." + }, "gpsAltitude": { "message": "Wysokość:" }, @@ -6734,6 +6738,10 @@ "message": "Słowa kluczowe:", "description": "Hint text in the presets detailed dialog" }, + "presetsSourceRepository": { + "message": "Źródło:", + "description": "Text prefixing user defined name of the preset repository containing a preset" + }, "presetsVersions": { "message": "Firmware:", "description": "Hint text in the presets detailed dialog" @@ -6882,6 +6890,10 @@ "message": "Aktywuj", "description": "Presets tab, sources dialog, button to make selected source active" }, + "presetsSourcesDialogMakeSourceDisable": { + "message": "Wyłączono", + "description": "Presets tab, sources dialog, button to make selected source disabled" + }, "presetsSourcesDialogDeleteSource": { "message": "Usuń", "description": "Presets tab, sources dialog, button to delete selected source" @@ -6890,6 +6902,10 @@ "message": "OSTRZEŻENIE! Wybrano gotowe źródło innej firmy.", "description": "Warning message that shows up when a third party preset source is selected" }, + "presetsFailedToLoadRepositories": { + "message": "OSTRZEŻENIE! Nie udało się załadować następujących repozytoriów: {{repos}}", + "description": "Warning message that shows up when we fail to load some repositories" + }, "presetsWarningBackup": { "message": "Upewnij się, że wykonałeś kopię zapasową bieżącej konfiguracji przyciskiem ('$t(presetsBackupSave.message)' lub za pośrednictwem interfejsu wiersza polecenia, jeśli przycisk jest wyłączony) przed wybraniem i zastosowaniem ustawień wstępnych. W przeciwnym razie nie ma możliwości powrotu do poprzedniej konfiguracji po zastosowaniu ustawień wstępnych.", "description": "Warning message that shows up at the top of the presets tab" diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 5c2a1e8cdb..283943241f 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -1418,6 +1418,10 @@ "configurationGPS": { "message": "Configuração do GPS" }, + "configurationGPSHelp": { + "message": "Configura o protocolo para o dispositivo GPS (lembre-se de configurar a porta na aba Porta), usar o Auto baud (ou defina a velocidade de configuração na aba Porta) e outras configurações", + "description": "Help text GPS configuration" + }, "configurationGPSProtocol": { "message": "Protocolo" }, @@ -2588,9 +2592,17 @@ "gpsHead": { "message": "GPS" }, + "gpsHeadHelp": { + "message": "Mostra várias informações relacionadas com o GPS. Direção só é exibida quando o Magnetómetro está em uso", + "description": "Help text for gpsHead" + }, "gpsMapHead": { "message": "Localização GPS atual" }, + "gpsMapHeadHelp": { + "message": "Mostra a localização do GPS no mapa. Use o botão de scroll do rato para ampliar e reduzir.
    O ícone de localização mostra a direção do norte quando o magnetómetro está em uso", + "description": "Help text for gpsHeadMap" + }, "gpsMapMessage1": { "message": "Verifique a sua ligação de internet" }, @@ -2606,6 +2618,10 @@ "gpsFixFalse": { "message": "Falso" }, + "gpsPositionUnit": { + "message": "graus", + "description": "Unit for GPS position." + }, "gpsAltitude": { "message": "Altitude:" }, @@ -2630,6 +2646,10 @@ "gpsSignalStrHead": { "message": "Força do Sinal GPS" }, + "gpsSignalStrHeadHelp": { + "message": "Mostra a força, qualidade e estado do sinal para cada fonte do GPS descoberta", + "description": "Help text for gpsSignalStrHead" + }, "gpsSignalStr": { "message": "Força do Sinal" }, @@ -6734,6 +6754,10 @@ "message": "Palavras-chave:", "description": "Hint text in the presets detailed dialog" }, + "presetsSourceRepository": { + "message": "Fonte:", + "description": "Text prefixing user defined name of the preset repository containing a preset" + }, "presetsVersions": { "message": "Firmware:", "description": "Hint text in the presets detailed dialog" @@ -6882,6 +6906,10 @@ "message": "Tornar Ativo", "description": "Presets tab, sources dialog, button to make selected source active" }, + "presetsSourcesDialogMakeSourceDisable": { + "message": "Tornar desabilitada", + "description": "Presets tab, sources dialog, button to make selected source disabled" + }, "presetsSourcesDialogDeleteSource": { "message": "Apagar", "description": "Presets tab, sources dialog, button to delete selected source" @@ -6890,6 +6918,10 @@ "message": "AVISO! Uma origem de predefinições de terceiros está selecionada.", "description": "Warning message that shows up when a third party preset source is selected" }, + "presetsFailedToLoadRepositories": { + "message": "AVISO! Falha ao carregar os seguintes repositórios: {{repos}}", + "description": "Warning message that shows up when we fail to load some repositories" + }, "presetsWarningBackup": { "message": "Por favor, certifique-se de gravar a sua configuração atual ('$t(presetsBackupSave.message)' no botão ou via CLI se o botão estiver desativado) antes de escolher e aplicar as predefinições. Caso contrário, não há como voltar à configuração anterior após a aplicação das predefinições.", "description": "Warning message that shows up at the top of the presets tab" From c582fc24532cb73d887828039467eff7f2274ea8 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 27 Jun 2023 16:30:51 +0200 Subject: [PATCH 120/393] Fix loading of preset title panel callback (#3496) --- src/tabs/presets/TitlePanel/PresetTitlePanel.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tabs/presets/TitlePanel/PresetTitlePanel.js b/src/tabs/presets/TitlePanel/PresetTitlePanel.js index a74efd723d..ec5d3673c5 100644 --- a/src/tabs/presets/TitlePanel/PresetTitlePanel.js +++ b/src/tabs/presets/TitlePanel/PresetTitlePanel.js @@ -125,7 +125,10 @@ export default class PresetTitlePanel i18n.localizePage(); this._domWrapperDiv.toggle(true); - this._onLoadedCallback?.(); + + if (typeof this._onLoadedCallback === 'function') { + this._onLoadedCallback(); + } } _readDom() From 25447aef55cfbe522f9410d2230baf611eff49ee Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 27 Jun 2023 16:44:51 +0200 Subject: [PATCH 121/393] Fix pit mode frequency (#3497) --- src/js/tabs/vtx.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/tabs/vtx.js b/src/js/tabs/vtx.js index 7bc805a8cf..2193bb8935 100644 --- a/src/js/tabs/vtx.js +++ b/src/js/tabs/vtx.js @@ -947,6 +947,7 @@ vtx.initialize = function (callback) { } FC.VTX_CONFIG.vtx_power = parseInt($("#vtx_power").val()); FC.VTX_CONFIG.vtx_pit_mode = $("#vtx_pit_mode").prop('checked'); + FC.VTX_CONFIG.vtx_pit_mode_frequency = parseInt($("#vtx_pit_mode_frequency").val()); FC.VTX_CONFIG.vtx_low_power_disarm = parseInt($("#vtx_low_power_disarm").val()); FC.VTX_CONFIG.vtx_table_clear = true; From 532a6720470e2f8b42842de9030499fe0c5a917c Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Mon, 3 Jul 2023 10:50:43 +0200 Subject: [PATCH 122/393] Concat longitude and latitude and add location url on Setup tab (#3491) --- locales/en/messages.json | 6 ------ src/js/tabs/setup.js | 13 ++++++------- src/tabs/setup.html | 8 ++------ 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index f4fa2aa431..a603603aa5 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -2726,12 +2726,6 @@ "gpsAltitude": { "message": "Altitude:" }, - "gpsLat": { - "message": "Latitude:" - }, - "gpsLon": { - "message": "Longitude:" - }, "gpsHeading": { "message": "Heading:" }, diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index 9ff6b7b6ba..340c099b40 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -194,8 +194,6 @@ setup.initialize = function (callback) { arming_disable_flags_e = $('.arming-disable-flags'), gpsFix_e = $('.GPS_info span.colorToggle'), gpsSats_e = $('.gpsSats'), - gpsLat_e = $('.gpsLat'), - gpsLon_e = $('.gpsLon'), roll_e = $('dd.roll'), pitch_e = $('dd.pitch'), heading_e = $('dd.heading'), @@ -428,14 +426,15 @@ setup.initialize = function (callback) { } // GPS info is acquired in the background using update_live_status() in serial_backend.js - gpsFix_e.text(FC.GPS_DATA.fix ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse')); gpsFix_e.toggleClass('ready', FC.GPS_DATA.fix != 0); - - const gspUnitText = i18n.getMessage('gpsPositionUnit'); gpsSats_e.text(FC.GPS_DATA.numSat); - gpsLat_e.text(`${(FC.GPS_DATA.lat / 10000000).toFixed(4)} ${gspUnitText}`); - gpsLon_e.text(`${(FC.GPS_DATA.lon / 10000000).toFixed(4)} ${gspUnitText}`); + + const lat = FC.GPS_DATA.lat / 10000000; + const lon = FC.GPS_DATA.lon / 10000000; + const url = `https://maps.google.com/?q=${lat},${lon}`; + const gpsUnitText = i18n.getMessage('gpsPositionUnit'); + $('.GPS_info td.latLon a').prop('href', url).text(`${lat.toFixed(4)} ${gpsUnitText} / ${lon.toFixed(4)} ${gpsUnitText}`); } function get_fast_data() { diff --git a/src/tabs/setup.html b/src/tabs/setup.html index f8d85a1c68..a1b500dd39 100644 --- a/src/tabs/setup.html +++ b/src/tabs/setup.html @@ -128,12 +128,8 @@
    - - - - - - + +
    0.0000 deg
    From 471eed0b74567786ad2adf5c785d16d10839b51d Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Mon, 3 Jul 2023 10:51:24 +0200 Subject: [PATCH 123/393] Add debug disable field for unfiltered gyro (#3492) --- src/js/tabs/onboard_logging.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index 073da33f64..606266416f 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -366,6 +366,7 @@ onboard_logging.initialize = function (callback) { { text: "Motor" }, { text: "GPS" }, { text: "RPM" }, + { text: "Unfiltered Gyro"}, ]; let fieldsMask = FC.BLACKBOX.blackboxDisabledMask; From 9b9e5bf99ec45e0b9ec234d7b170c2427905b9fd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 3 Jul 2023 11:27:27 +0200 Subject: [PATCH 124/393] Update translations (#3502) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 14 ++++++++++++++ locales/es/messages.json | 14 ++++++++++++++ locales/it/messages.json | 14 ++++++++++++++ locales/ja/messages.json | 14 ++++++++++++++ locales/ko/messages.json | 30 ++++++++++++++++++++++++++++++ locales/pl/messages.json | 14 ++++++++++++++ locales/pt/messages.json | 14 ++++++++++++++ 7 files changed, 114 insertions(+) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index 86ec37831e..c93388589d 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -5856,6 +5856,20 @@ "osdDescStatMinRSNR": { "message": "Valor mínim RSNR" }, + "osdTextStatBest3ConsecLaps": { + "message": "Les tres millors voltes consecutives", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBest3ConsecLaps": { + "message": "Les tres millors voltes consecutives" + }, + "osdTextStatBestLap": { + "message": "Millor volta", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBestLap": { + "message": "Millor volta" + }, "osdTextStatUnknown": { "message": "Desconegut $1", "description": "One of the statistics that can be shown at the end of the flight in the OSD" diff --git a/locales/es/messages.json b/locales/es/messages.json index 1f248ffbff..bed1f338ae 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -5848,6 +5848,20 @@ "osdDescStatMinRSNR": { "message": "Mínimo valor del RSNR" }, + "osdTextStatBest3ConsecLaps": { + "message": "Mejores tres vueltas consecutivas", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBest3ConsecLaps": { + "message": "Mejores tres vueltas consecutivas" + }, + "osdTextStatBestLap": { + "message": "Mejor vuelta", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBestLap": { + "message": "Mejor vuelta" + }, "osdTextStatUnknown": { "message": "Desconocido $1", "description": "One of the statistics that can be shown at the end of the flight in the OSD" diff --git a/locales/it/messages.json b/locales/it/messages.json index f15940b93f..51aa4f9781 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -5848,6 +5848,20 @@ "osdDescStatMinRSNR": { "message": "Valore minimo RSNR" }, + "osdTextStatBest3ConsecLaps": { + "message": "Migliori 3 giri consecutivi", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBest3ConsecLaps": { + "message": "Migliori 3 giri consecutivi" + }, + "osdTextStatBestLap": { + "message": "Miglior Giro", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBestLap": { + "message": "Miglior Giro" + }, "osdTextStatUnknown": { "message": "Sconosciuto $1", "description": "One of the statistics that can be shown at the end of the flight in the OSD" diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 2bcc4946ca..8cfd291d58 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -5848,6 +5848,20 @@ "osdDescStatMinRSNR": { "message": "最小RSNR値" }, + "osdTextStatBest3ConsecLaps": { + "message": "Best 3 consecutive laps", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBest3ConsecLaps": { + "message": "Best 3 consecutive laps" + }, + "osdTextStatBestLap": { + "message": "Best lap", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBestLap": { + "message": "Best lap" + }, "osdTextStatUnknown": { "message": "不明 $1", "description": "One of the statistics that can be shown at the end of the flight in the OSD" diff --git a/locales/ko/messages.json b/locales/ko/messages.json index ea3be2ecef..26ce561e3c 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -1418,6 +1418,10 @@ "configurationGPS": { "message": "GPS 환경설정" }, + "configurationGPSHelp": { + "message": "GPS 장치에 대한 설정 프로토콜(포트 탭에서 포트 설정 기억), 오토 바우드(또는 포트 탭에서 속도 설정) 및 기타 구성", + "description": "Help text GPS configuration" + }, "configurationGPSProtocol": { "message": "프로토콜" }, @@ -2588,9 +2592,17 @@ "gpsHead": { "message": "GPS" }, + "gpsHeadHelp": { + "message": "GPS와 관련된 다양한 정보를 표시합니다. 자기계를 사용하는 경우에만 제목이 표시됩니다", + "description": "Help text for gpsHead" + }, "gpsMapHead": { "message": "현재 GPS 위치" }, + "gpsMapHeadHelp": { + "message": "지도에 GPS 위치를 표시합니다. 마우스를 스크롤하여 줌인과 아웃을 사용하세요.
    위치 아이콘은 자기계가 사용중일 때 북쪽 방향을 표시합니다", + "description": "Help text for gpsHeadMap" + }, "gpsMapMessage1": { "message": "인터넷 연결 상태를 확인하십시오." }, @@ -2634,6 +2646,10 @@ "gpsSignalStrHead": { "message": "GPS 신호 강도" }, + "gpsSignalStrHeadHelp": { + "message": "각 발견된 GPS 소스의 신호 세기, 품질과 상태를 표시합니다", + "description": "Help text for gpsSignalStrHead" + }, "gpsSignalStr": { "message": "신호 강도" }, @@ -5832,6 +5848,20 @@ "osdDescStatMinRSNR": { "message": "최소 RSNR 수치" }, + "osdTextStatBest3ConsecLaps": { + "message": "베스트 3 연속 랩", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBest3ConsecLaps": { + "message": "베스트 3 연속 랩" + }, + "osdTextStatBestLap": { + "message": "베스트 랩", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBestLap": { + "message": "베스트 랩" + }, "osdTextStatUnknown": { "message": "알 수 없음 $1", "description": "One of the statistics that can be shown at the end of the flight in the OSD" diff --git a/locales/pl/messages.json b/locales/pl/messages.json index 9bf1fb5a0e..a1a94d4cce 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -5832,6 +5832,20 @@ "osdDescStatMinRSNR": { "message": "Minimalna wartość RSNR" }, + "osdTextStatBest3ConsecLaps": { + "message": "Najlepsze 3 kolejne okrążenia", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBest3ConsecLaps": { + "message": "Najlepsze 3 kolejne okrążenia" + }, + "osdTextStatBestLap": { + "message": "Najlepsze okrążenie", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBestLap": { + "message": "Najlepsze okrążenie" + }, "osdTextStatUnknown": { "message": "Nieznane $1", "description": "One of the statistics that can be shown at the end of the flight in the OSD" diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 283943241f..f6d908cd45 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -5848,6 +5848,20 @@ "osdDescStatMinRSNR": { "message": "Valor mínimo RSNR" }, + "osdTextStatBest3ConsecLaps": { + "message": "Melhores 3 voltas consecutivas", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBest3ConsecLaps": { + "message": "Melhores 3 voltas consecutivas" + }, + "osdTextStatBestLap": { + "message": "Melhor volta", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBestLap": { + "message": "Melhor volta" + }, "osdTextStatUnknown": { "message": "$1 desconhecido", "description": "One of the statistics that can be shown at the end of the flight in the OSD" From ea02a48c076b7d38182851c6dad36cfafa53c3b4 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Mon, 10 Jul 2023 15:47:36 +0200 Subject: [PATCH 125/393] Enable video transmitter tab (#3505) --- src/js/Features.js | 8 +++++++- src/js/gui.js | 4 ++-- src/js/serial_backend.js | 5 +++-- src/js/tabs/ports.js | 11 ----------- src/js/utils/updateTabList.js | 11 ++++++++++- 5 files changed, 22 insertions(+), 17 deletions(-) diff --git a/src/js/Features.js b/src/js/Features.js index 9c8aa68531..3b39d20729 100644 --- a/src/js/Features.js +++ b/src/js/Features.js @@ -1,5 +1,5 @@ import { bit_check, bit_set, bit_clear } from "./bit"; -import { API_VERSION_1_44, API_VERSION_1_45 } from './data_storage'; +import { API_VERSION_1_44, API_VERSION_1_45, API_VERSION_1_46 } from './data_storage'; import semver from "semver"; import { tracking } from "./Analytics"; @@ -40,6 +40,7 @@ const Features = function (config) { self._features = features; + // Filter features based on build options if (semver.gte(config.apiVersion, API_VERSION_1_45) && config.buildOptions.length) { self._features = []; @@ -50,6 +51,11 @@ const Features = function (config) { } } + // Enable vtx feature if not already enabled in firmware. This is needed for the vtx tab to show up. + if (semver.gte(config.apiVersion, API_VERSION_1_46) && config.buildOptions.some(opt => opt.includes('VTX'))) { + self.enable('VTX'); + } + self._features.sort((a, b) => a.name.localeCompare(b.name, window.navigator.language, { ignorePunctuation: true })); self._featureMask = 0; diff --git a/src/js/gui.js b/src/js/gui.js index 3c085fb8ca..b07d6d1c1a 100644 --- a/src/js/gui.js +++ b/src/js/gui.js @@ -34,7 +34,7 @@ class GuiControl { 'help', ]; - this.defaultAllowedTabsCloudBuild = [ + this.defaultAllowedTabs = [ 'setup', 'failsafe', 'power', @@ -62,7 +62,7 @@ class GuiControl { 'vtx', ]; - this.defaultAllowedFCTabsWhenConnected = [ ...this.defaultAllowedTabsCloudBuild, ...this.defaultCloudBuildTabOptions]; + this.defaultAllowedFCTabsWhenConnected = [ ...this.defaultAllowedTabs, ...this.defaultCloudBuildTabOptions]; this.allowedTabs = this.defaultAllowedTabsWhenDisconnected; diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index 2004143d5d..e8f15a2112 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -536,9 +536,10 @@ function setRtc() { function finishOpen() { CONFIGURATOR.connectionValid = true; + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) && FC.CONFIG.buildOptions.length) { - GUI.allowedTabs = GUI.defaultAllowedTabsCloudBuild; + GUI.allowedTabs = Array.from(GUI.defaultAllowedTabs); for (const tab of GUI.defaultCloudBuildTabOptions) { if (FC.CONFIG.buildOptions.some(opt => opt.toLowerCase().includes(tab))) { @@ -547,7 +548,7 @@ function finishOpen() { } } else { - GUI.allowedTabs = GUI.defaultAllowedFCTabsWhenConnected.slice(); + GUI.allowedTabs = Array.from(GUI.defaultAllowedFCTabsWhenConnected); } if (GUI.isCordova()) { diff --git a/src/js/tabs/ports.js b/src/js/tabs/ports.js index f5f8b8de57..e0583b4d89 100644 --- a/src/js/tabs/ports.js +++ b/src/js/tabs/ports.js @@ -414,7 +414,6 @@ ports.initialize = function (callback) { let enableBlackbox = false; let enableEsc = false; let enableGps = false; - let enableVtx = false; for (const port of FC.SERIAL_CONFIG.ports) { const func = port.functions; @@ -438,10 +437,6 @@ ports.initialize = function (callback) { if (func.includes('GPS')) { enableGps = true; } - - if (func.includes('IRC_TRAMP') || func.includes('TBS_SMARTAUDIO')) { - enableVtx = true; - } } const featureConfig = FC.FEATURE_CONFIG.features; @@ -474,12 +469,6 @@ ports.initialize = function (callback) { featureConfig.disable('GPS'); } - if (enableVtx) { - featureConfig.enable('VTX'); - } else { - featureConfig.disable('VTX'); - } - mspHelper.sendSerialConfig(save_features); function save_features() { diff --git a/src/js/utils/updateTabList.js b/src/js/utils/updateTabList.js index e7a81e7f78..0bf3e9924c 100644 --- a/src/js/utils/updateTabList.js +++ b/src/js/utils/updateTabList.js @@ -1,3 +1,7 @@ +import semver from "semver"; +import { API_VERSION_1_42, API_VERSION_1_46 } from "../data_storage"; +import FC from "../fc"; + export function updateTabList(features) { const isExpertModeEnabled = $('input[name="expertModeCheckbox"]').is(':checked'); @@ -11,5 +15,10 @@ export function updateTabList(features) { $('#tabs ul.mode-connected li.tab_led_strip').toggle(features.isEnabled('LED_STRIP')); $('#tabs ul.mode-connected li.tab_transponder').toggle(features.isEnabled('TRANSPONDER')); $('#tabs ul.mode-connected li.tab_osd').toggle(features.isEnabled('OSD')); - $('#tabs ul.mode-connected li.tab_vtx').toggle(features.isEnabled('VTX')); + + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + $('#tabs ul.mode-connected li.tab_vtx').toggle(features.isEnabled('VTX')); + } else { + $('#tabs ul.mode-connected li.tab_vtx').toggle(semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)); + } } From ca42c4a9455879ee220f5ade78969e20b787e411 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jul 2023 16:10:58 +0200 Subject: [PATCH 126/393] Bump semver from 5.7.1 to 5.7.2 (#3510) Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2. - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2) --- updated-dependencies: - dependency-name: semver dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 36 +++++++++++------------------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9f3a26ee49..d5267f611e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14170,9 +14170,9 @@ semver-regex@^2.0.0: integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@7.0.0: version "7.0.0" @@ -14180,28 +14180,14 @@ semver@7.0.0: integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.1.1, semver@^7.1.3, semver@^7.3.4, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.2: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - -semver@^7.3.7: - version "7.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" - integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" From 5bdb030e1fdbb227371e2740e014fb30802f37ee Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 11 Jul 2023 16:37:59 +0200 Subject: [PATCH 127/393] Update translations (#3508) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 6 ------ locales/da/messages.json | 22 +++++++++++++++------- locales/de/messages.json | 6 ------ locales/es/messages.json | 6 ------ locales/eu/messages.json | 6 ------ locales/fr/messages.json | 6 ------ locales/gl/messages.json | 6 ------ locales/it/messages.json | 6 ------ locales/ja/messages.json | 6 ------ locales/ko/messages.json | 6 ------ locales/nl/messages.json | 6 ------ locales/pl/messages.json | 6 ------ locales/pt/messages.json | 6 ------ locales/pt_BR/messages.json | 6 ------ locales/ru/messages.json | 6 ------ locales/zh_CN/messages.json | 6 ------ locales/zh_TW/messages.json | 6 ------ 17 files changed, 15 insertions(+), 103 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index c93388589d..2eaf7738a1 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -2633,12 +2633,6 @@ "gpsAltitude": { "message": "Altitud:" }, - "gpsLat": { - "message": "Latitud:" - }, - "gpsLon": { - "message": "Longitud:" - }, "gpsHeading": { "message": "Encapçalament:" }, diff --git a/locales/da/messages.json b/locales/da/messages.json index cbaaa1deb4..3017de9797 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -2625,12 +2625,6 @@ "gpsAltitude": { "message": "Højde:" }, - "gpsLat": { - "message": "Breddegrad:" - }, - "gpsLon": { - "message": "Længdegrad:" - }, "gpsHeading": { "message": "Kurs:" }, @@ -5848,6 +5842,20 @@ "osdDescStatMinRSNR": { "message": "Minimum RSNR værdi" }, + "osdTextStatBest3ConsecLaps": { + "message": "Bedst af 3 efterfølgende omgange", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBest3ConsecLaps": { + "message": "Bedst af 3 efterfølgende omgange" + }, + "osdTextStatBestLap": { + "message": "Bedste omgang", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBestLap": { + "message": "Bedste omgang" + }, "osdTextStatUnknown": { "message": "Ukendt $1", "description": "One of the statistics that can be shown at the end of the flight in the OSD" @@ -5958,7 +5966,7 @@ "message": "Viser en visualisering af biperen (viser som 4 stjerner)" }, "osdWarningTextCrashFlipMode": { - "message": "Vend styrtet drone tilstand", + "message": "Vend styrtet drone advarsel", "description": "One of the warnings that can be selected to be shown in the OSD" }, "osdWarningCrashFlipMode": { diff --git a/locales/de/messages.json b/locales/de/messages.json index b7c4873b87..1708d0b35c 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -2431,12 +2431,6 @@ "gpsAltitude": { "message": "Höhe:" }, - "gpsLat": { - "message": "Breite:" - }, - "gpsLon": { - "message": "Länge:" - }, "gpsHeading": { "message": "Richtung:" }, diff --git a/locales/es/messages.json b/locales/es/messages.json index bed1f338ae..1e5a6d7351 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -2625,12 +2625,6 @@ "gpsAltitude": { "message": "Altitud:" }, - "gpsLat": { - "message": "Latitud:" - }, - "gpsLon": { - "message": "Longitud:" - }, "gpsHeading": { "message": "Rumbo:" }, diff --git a/locales/eu/messages.json b/locales/eu/messages.json index 54ffce9e3e..cf2f882d56 100644 --- a/locales/eu/messages.json +++ b/locales/eu/messages.json @@ -1922,12 +1922,6 @@ "gpsAltitude": { "message": "Altuera:" }, - "gpsLat": { - "message": "Latitudea:" - }, - "gpsLon": { - "message": "Luzera:" - }, "gpsSpeed": { "message": "Abiadura:" }, diff --git a/locales/fr/messages.json b/locales/fr/messages.json index 49adc2c6ca..57303485fc 100644 --- a/locales/fr/messages.json +++ b/locales/fr/messages.json @@ -2325,12 +2325,6 @@ "gpsAltitude": { "message": "Altitude:" }, - "gpsLat": { - "message": "Latitude:" - }, - "gpsLon": { - "message": "Longitude:" - }, "gpsSpeed": { "message": "Vitesse:" }, diff --git a/locales/gl/messages.json b/locales/gl/messages.json index cd67c92e4b..02eb2c40b9 100644 --- a/locales/gl/messages.json +++ b/locales/gl/messages.json @@ -2406,12 +2406,6 @@ "gpsAltitude": { "message": "Altura:" }, - "gpsLat": { - "message": "Latitude:" - }, - "gpsLon": { - "message": "Lonxitude:" - }, "gpsHeading": { "message": "Cabeceira:" }, diff --git a/locales/it/messages.json b/locales/it/messages.json index 51aa4f9781..c8b358eed8 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -2625,12 +2625,6 @@ "gpsAltitude": { "message": "Altitudine:" }, - "gpsLat": { - "message": "Latitudine:" - }, - "gpsLon": { - "message": "Longitudine:" - }, "gpsHeading": { "message": "Direzione:" }, diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 8cfd291d58..37e0f1b826 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -2625,12 +2625,6 @@ "gpsAltitude": { "message": "高度:" }, - "gpsLat": { - "message": "緯度:" - }, - "gpsLon": { - "message": "経度:" - }, "gpsHeading": { "message": "ヘッディング:" }, diff --git a/locales/ko/messages.json b/locales/ko/messages.json index 26ce561e3c..f817a426d4 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -2625,12 +2625,6 @@ "gpsAltitude": { "message": "고도:" }, - "gpsLat": { - "message": "위도:" - }, - "gpsLon": { - "message": "경도:" - }, "gpsHeading": { "message": "진행방향:" }, diff --git a/locales/nl/messages.json b/locales/nl/messages.json index 09371627b7..51fb6d6166 100644 --- a/locales/nl/messages.json +++ b/locales/nl/messages.json @@ -1997,12 +1997,6 @@ "gpsAltitude": { "message": "Hoogte:" }, - "gpsLat": { - "message": "Breedtegraad:" - }, - "gpsLon": { - "message": "Lengtegraad:" - }, "gpsSpeed": { "message": "Snelheid:" }, diff --git a/locales/pl/messages.json b/locales/pl/messages.json index a1a94d4cce..bed1b7104d 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -2613,12 +2613,6 @@ "gpsAltitude": { "message": "Wysokość:" }, - "gpsLat": { - "message": "Szerokość:" - }, - "gpsLon": { - "message": "Długość:" - }, "gpsHeading": { "message": "Kurs:" }, diff --git a/locales/pt/messages.json b/locales/pt/messages.json index f6d908cd45..811267c4f5 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -2625,12 +2625,6 @@ "gpsAltitude": { "message": "Altitude:" }, - "gpsLat": { - "message": "Latitude:" - }, - "gpsLon": { - "message": "Longitude:" - }, "gpsHeading": { "message": "Direção:" }, diff --git a/locales/pt_BR/messages.json b/locales/pt_BR/messages.json index 1617c4572c..7fb1b8f8cf 100644 --- a/locales/pt_BR/messages.json +++ b/locales/pt_BR/messages.json @@ -2310,12 +2310,6 @@ "gpsAltitude": { "message": "Altitude:" }, - "gpsLat": { - "message": "Latitude:" - }, - "gpsLon": { - "message": "Longitude:" - }, "gpsSpeed": { "message": "Velocidade:" }, diff --git a/locales/ru/messages.json b/locales/ru/messages.json index 16d2168aca..4ffb3898f1 100644 --- a/locales/ru/messages.json +++ b/locales/ru/messages.json @@ -2036,12 +2036,6 @@ "gpsAltitude": { "message": "Высота:" }, - "gpsLat": { - "message": "Широта:" - }, - "gpsLon": { - "message": "Долгота:" - }, "gpsSpeed": { "message": "Скорость:" }, diff --git a/locales/zh_CN/messages.json b/locales/zh_CN/messages.json index f6530e0061..dcaf74e487 100644 --- a/locales/zh_CN/messages.json +++ b/locales/zh_CN/messages.json @@ -2231,12 +2231,6 @@ "gpsAltitude": { "message": "高度:" }, - "gpsLat": { - "message": "纬度:" - }, - "gpsLon": { - "message": "经度:" - }, "gpsSpeed": { "message": "速度:" }, diff --git a/locales/zh_TW/messages.json b/locales/zh_TW/messages.json index efd9c5d6cd..933461047b 100644 --- a/locales/zh_TW/messages.json +++ b/locales/zh_TW/messages.json @@ -1901,12 +1901,6 @@ "gpsAltitude": { "message": "高度:" }, - "gpsLat": { - "message": "緯度:" - }, - "gpsLon": { - "message": "經度:" - }, "gpsSpeed": { "message": "速度:" }, From 4d42a8f81c2d717af4568a52079bff749d66a49f Mon Sep 17 00:00:00 2001 From: Emil Date: Tue, 11 Jul 2023 21:06:57 +0300 Subject: [PATCH 128/393] Create data flash vue component (#3509) * dataflash component vue * using css vars * fix indicator for free space * fix typos * formatting --- .../data-flash/DataFlash.stories.js | 16 +++ src/components/data-flash/DataFlash.vue | 118 ++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 src/components/data-flash/DataFlash.stories.js create mode 100644 src/components/data-flash/DataFlash.vue diff --git a/src/components/data-flash/DataFlash.stories.js b/src/components/data-flash/DataFlash.stories.js new file mode 100644 index 0000000000..aa76690f1e --- /dev/null +++ b/src/components/data-flash/DataFlash.stories.js @@ -0,0 +1,16 @@ +import DataFlash from "./DataFlash"; + +// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export +export default { + title: "Default flash", + component: DataFlash, +}; + +// More on component templates: https://storybook.js.org/docs/vue/writing-stories/introduction#using-args +const Template = (_args, { argTypes }) => ({ + props: Object.keys(argTypes), + components: { DataFlash }, + template: '', +}); + +export const Primary = Template.bind({}); diff --git a/src/components/data-flash/DataFlash.vue b/src/components/data-flash/DataFlash.vue new file mode 100644 index 0000000000..411123feb7 --- /dev/null +++ b/src/components/data-flash/DataFlash.vue @@ -0,0 +1,118 @@ + + + + From 9a1a18b5b9586befe1c0f38752e4a4acec7e17cb Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 18 Jul 2023 13:32:11 +0200 Subject: [PATCH 129/393] Cleanup old code (#3507) Cleanup old firmware code --- src/js/tabs/osd.js | 46 +++++++++++++++++----------------------------- 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/src/js/tabs/osd.js b/src/js/tabs/osd.js index 6bff175b74..b12c2d49af 100644 --- a/src/js/tabs/osd.js +++ b/src/js/tabs/osd.js @@ -2099,25 +2099,19 @@ OSD.msp = { OSD.updateDisplaySize(); - if (semver.gte(FC.CONFIG.apiVersion, "1.21.0")) { - // size * y + x - const xpos = ((bits >> 5) & 0x0020) | (bits & 0x001F); - const ypos = (bits >> 5) & 0x001F; + // size * y + x + const xpos = ((bits >> 5) & 0x0020) | (bits & 0x001F); + const ypos = (bits >> 5) & 0x001F; - displayItem.position = positionable ? OSD.data.displaySize.x * ypos + xpos : defaultPosition; + displayItem.position = positionable ? OSD.data.displaySize.x * ypos + xpos : defaultPosition; - displayItem.isVisible = []; - for (let osd_profile = 0; osd_profile < OSD.getNumberOfProfiles(); osd_profile++) { - displayItem.isVisible[osd_profile] = (bits & (OSD.constants.VISIBLE << osd_profile)) !== 0; - } - - displayItem.variant = (bits & OSD.constants.VARIANTS) >> 14; - - } else { - displayItem.position = (bits === -1) ? defaultPosition : bits; - displayItem.isVisible = [bits !== -1]; + displayItem.isVisible = []; + for (let osd_profile = 0; osd_profile < OSD.getNumberOfProfiles(); osd_profile++) { + displayItem.isVisible[osd_profile] = (bits & (OSD.constants.VISIBLE << osd_profile)) !== 0; } + displayItem.variant = (bits & OSD.constants.VARIANTS) >> 14; + return displayItem; }, timer(bits) { @@ -2134,21 +2128,15 @@ OSD.msp = { const position = displayItem.position; const variant = displayItem.variant; - if (semver.gte(FC.CONFIG.apiVersion, "1.21.0")) { - - let packed_visible = 0; - for (let osd_profile = 0; osd_profile < OSD.getNumberOfProfiles(); osd_profile++) { - packed_visible |= isVisible[osd_profile] ? OSD.constants.VISIBLE << osd_profile : 0; - } - const variantSelected = (variant << 14); - const xpos = position % OSD.data.displaySize.x; - const ypos = (position - xpos) / OSD.data.displaySize.x; - - return packed_visible | variantSelected | ((ypos & 0x001F) << 5) | ((xpos & 0x0020) << 5) | (xpos & 0x001F); - } else { - const realPosition = position === -1 ? 0 : position; - return isVisible[0] ? realPosition : -1; + let packed_visible = 0; + for (let osd_profile = 0; osd_profile < OSD.getNumberOfProfiles(); osd_profile++) { + packed_visible |= isVisible[osd_profile] ? OSD.constants.VISIBLE << osd_profile : 0; } + const variantSelected = (variant << 14); + const xpos = position % OSD.data.displaySize.x; + const ypos = (position - xpos) / OSD.data.displaySize.x; + + return packed_visible | variantSelected | ((ypos & 0x001F) << 5) | ((xpos & 0x0020) << 5) | (xpos & 0x001F); }, timer(timer) { return (timer.src & 0x0F) | ((timer.precision & 0x0F) << 4) | ((timer.alarm & 0xFF) << 8); From dfd12cd90d09215abb781b248c5c85d64cfe0cef Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 18 Jul 2023 13:48:26 +0200 Subject: [PATCH 130/393] Fix missing GPS Laptimer OSD elements (#3506) --- locales/en/messages.json | 21 +++++++++++++++++++++ src/js/tabs/osd.js | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/locales/en/messages.json b/locales/en/messages.json index a603603aa5..4372c5e8b8 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -5298,6 +5298,27 @@ "osdDescElementSysFanSpeed": { "message": "Goggle fan speed rendered by the goggles" }, + "osdTextElementLapTimeCurrent": { + "message": "GPS lap time current", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeCurrent": { + "message": "Current GPS lap time" + }, + "osdTextElementLapTimePrevious": { + "message": "GPS lap time previous", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimePrevious": { + "message": "Previous GPS lap time" + }, + "osdTextElementLapTimeBest3": { + "message": "GPS lap time best 3", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeBest": { + "message": "Best GPS lap time" + }, "osdTextElementCraftName": { "message": "Craft name", "description": "One of the elements of the OSD" diff --git a/src/js/tabs/osd.js b/src/js/tabs/osd.js index b12c2d49af..e374fad07f 100644 --- a/src/js/tabs/osd.js +++ b/src/js/tabs/osd.js @@ -1508,6 +1508,33 @@ OSD.loadDisplayFields = function() { positionable: true, preview: `F${FONT.symbol(SYM.TEMPERATURE)}5`, }, + GPS_LAP_TIME_CURRENT: { + name: 'GPS_LAP_TIME_CURRENT', + text: 'osdTextElementLapTimeCurrent', + desc: 'osdDescElementLapTimeCurrent', + defaultPosition: -1, + draw_order: 540, + positionable: true, + preview: '1:23.456', + }, + GPS_LAP_TIME_PREVIOUS: { + name: 'GPS_LAP_TIME_PREVIOUS', + text: 'osdTextElementLapTimePrevious', + desc: 'osdDescElementLapTimePrevious', + defaultPosition: -1, + draw_order: 545, + positionable: true, + preview: '1:23.456', + }, + GPS_LAP_TIME_BEST3: { + name: 'GPS_LAP_TIME_BEST3', + text: 'osdTextElementLapTimeBest3', + desc: 'osdDescElementLapTimeBest3', + defaultPosition: -1, + draw_order: 550, + positionable: true, + preview: '1:23.456', + }, }; }; @@ -1937,6 +1964,14 @@ OSD.chooseFields = function() { ]); } + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + OSD.constants.DISPLAY_FIELDS = OSD.constants.DISPLAY_FIELDS.concat([ + F.GPS_LAP_TIME_CURRENT, + F.GPS_LAP_TIME_PREVIOUS, + F.GPS_LAP_TIME_BEST3, + ]); + } + // Choose statistic fields // Nothing much to do here, I'm preempting there being new statistics F = OSD.constants.ALL_STATISTIC_FIELDS; From 664e6722a8cd2eb13dec50a1a8399f60bdc07623 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 18 Jul 2023 15:27:24 +0200 Subject: [PATCH 131/393] Bump NWJS to v0.77.0 (#3511) --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index 39e7a1d752..b22e7c51bd 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -46,7 +46,7 @@ const NODE_ENV = process.env.NODE_ENV || 'production'; const NAME_REGEX = /-/g; const nwBuilderOptions = { - version: '0.72.0', + version: '0.77.0', files: `${DIST_DIR}**/*`, macIcns: './src/images/bf_icon.icns', macPlist: { 'CFBundleDisplayName': 'Betaflight Configurator'}, From edd34a1624249c3db0774ef44cd77dbccc002bb8 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 18 Jul 2023 15:53:05 +0200 Subject: [PATCH 132/393] Fix intermittent connect failure (#3515) --- src/js/serial_backend.js | 2 +- src/js/tabs/firmware_flasher.js | 8 ++++---- src/js/tabs/ports.js | 10 ++-------- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index e8f15a2112..d15b0eb54b 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -761,7 +761,7 @@ export function reinitializeConnection(callback) { clearInterval(reconnect); gui_log(i18n.getMessage('deviceReady')); - if (callback === typeof('function')) { + if (typeof callback === 'function') { callback(); } } else { diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 5f22bfa7b9..ed2cfd7d60 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -11,7 +11,7 @@ import FC from '../fc'; import MSP from '../msp'; import MSPCodes from '../msp/MSPCodes'; import PortHandler, { usbDevices } from '../port_handler'; -import CONFIGURATOR, { API_VERSION_1_39, API_VERSION_1_45 } from '../data_storage'; +import { API_VERSION_1_39, API_VERSION_1_45 } from '../data_storage'; import serial from '../serial'; import STM32DFU from '../protocols/stm32usbdfu'; import { gui_log } from '../gui_log'; @@ -581,6 +581,7 @@ firmware_flasher.initialize = function (callback) { function onFinishClose() { MSP.clearListeners(); + MSP.disconnect_cleanup(); } function onClose(success) { @@ -589,7 +590,6 @@ firmware_flasher.initialize = function (callback) { } serial.disconnect(onFinishClose); - MSP.disconnect_cleanup(); } function onFinish() { @@ -646,6 +646,7 @@ firmware_flasher.initialize = function (callback) { console.log(`Requesting board information`); MSP.send_message(MSPCodes.MSP_API_VERSION, false, false, () => { gui_log(i18n.getMessage('apiVersionReceived', FC.CONFIG.apiVersion)); + if (FC.CONFIG.apiVersion.includes('null')) { onClose(false); // not supported } else if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_39)) { @@ -684,8 +685,7 @@ firmware_flasher.initialize = function (callback) { if (!(serial.connected || serial.connectionId)) { serial.connect(port, {bitrate: baud}, onConnect); } else { - console.warn('Attempting to connect while there still is a connection', serial.connected, serial.connectionId); - serial.disconnect(); + console.warn('Attempting to connect while there still is a connection', serial.connected, serial.connectionId, serial.openCanceled); } } else { console.log('Releases not loaded yet'); diff --git a/src/js/tabs/ports.js b/src/js/tabs/ports.js index e0583b4d89..60924aadb0 100644 --- a/src/js/tabs/ports.js +++ b/src/js/tabs/ports.js @@ -2,7 +2,6 @@ import semver from 'semver'; import { i18n } from "../localization"; import GUI, { TABS } from '../gui'; import { tracking } from "../Analytics"; -import { reinitializeConnection } from '../serial_backend'; import { mspHelper } from '../msp/MSPHelper'; import FC from '../fc'; import MSP from '../msp'; @@ -296,8 +295,7 @@ ports.initialize = function (callback) { const pheripheralsSelectElement = $('select[name="function-peripherals"]'); pheripheralsSelectElement.on('change', function() { - let vtxControlSelected = undefined; - let mspControlSelected = undefined; + let vtxControlSelected, mspControlSelected; pheripheralsSelectElement.each(function(index, element) { const value = $(element).val(); @@ -476,11 +474,7 @@ ports.initialize = function (callback) { } function save_to_eeprom() { - mspHelper.writeConfiguration(function() { - GUI.tab_switch_cleanup(function() { - MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitializeConnection); - }); - }); + mspHelper.writeConfiguration(true); } } }; From 2ebaa330f29e37fba1286f84a0e2d79926445410 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Jul 2023 23:47:48 +0200 Subject: [PATCH 133/393] Bump word-wrap from 1.2.3 to 1.2.4 (#3517) Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4. - [Release notes](https://github.com/jonschlinkert/word-wrap/releases) - [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4) --- updated-dependencies: - dependency-name: word-wrap dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d5267f611e..4469d33371 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16692,9 +16692,9 @@ with@^7.0.0: babel-walk "3.0.0-canary-5" word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f" + integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA== wordwrap@0.0.2: version "0.0.2" From 4c54f3c05769160e9db8f24dc9090b49edd10175 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Fri, 21 Jul 2023 23:28:28 +0200 Subject: [PATCH 134/393] Revert hiding VTX tab (#3512) --- src/js/Features.js | 8 +------- src/js/gui.js | 2 +- src/js/utils/updateTabList.js | 10 ---------- 3 files changed, 2 insertions(+), 18 deletions(-) diff --git a/src/js/Features.js b/src/js/Features.js index 3b39d20729..ee2011da25 100644 --- a/src/js/Features.js +++ b/src/js/Features.js @@ -1,5 +1,5 @@ import { bit_check, bit_set, bit_clear } from "./bit"; -import { API_VERSION_1_44, API_VERSION_1_45, API_VERSION_1_46 } from './data_storage'; +import { API_VERSION_1_44, API_VERSION_1_45 } from './data_storage'; import semver from "semver"; import { tracking } from "./Analytics"; @@ -26,7 +26,6 @@ const Features = function (config) { {bit: 20, group: 'other', name: 'CHANNEL_FORWARDING', dependsOn: 'SERVOS'}, {bit: 21, group: 'other', name: 'TRANSPONDER', haveTip: true, dependsOn: 'TRANSPONDER'}, {bit: 22, group: 'other', name: 'AIRMODE'}, - {bit: 24, group: 'vtx', name: 'VTX', dependsOn: 'VTX'}, {bit: 25, group: 'rxMode', mode: 'select', name: 'RX_SPI'}, {bit: 27, group: 'escSensor', name: 'ESC_SENSOR'}, {bit: 28, group: 'antiGravity', name: 'ANTI_GRAVITY', haveTip: true, hideName: true}, @@ -51,11 +50,6 @@ const Features = function (config) { } } - // Enable vtx feature if not already enabled in firmware. This is needed for the vtx tab to show up. - if (semver.gte(config.apiVersion, API_VERSION_1_46) && config.buildOptions.some(opt => opt.includes('VTX'))) { - self.enable('VTX'); - } - self._features.sort((a, b) => a.name.localeCompare(b.name, window.navigator.language, { ignorePunctuation: true })); self._featureMask = 0; diff --git a/src/js/gui.js b/src/js/gui.js index b07d6d1c1a..2e063dfab0 100644 --- a/src/js/gui.js +++ b/src/js/gui.js @@ -51,6 +51,7 @@ class GuiControl { 'ports', 'receiver', 'sensors', + 'vtx', ]; this.defaultCloudBuildTabOptions = [ @@ -59,7 +60,6 @@ class GuiControl { 'osd', 'servos', 'transponder', - 'vtx', ]; this.defaultAllowedFCTabsWhenConnected = [ ...this.defaultAllowedTabs, ...this.defaultCloudBuildTabOptions]; diff --git a/src/js/utils/updateTabList.js b/src/js/utils/updateTabList.js index 0bf3e9924c..ca384bc4f3 100644 --- a/src/js/utils/updateTabList.js +++ b/src/js/utils/updateTabList.js @@ -1,7 +1,3 @@ -import semver from "semver"; -import { API_VERSION_1_42, API_VERSION_1_46 } from "../data_storage"; -import FC from "../fc"; - export function updateTabList(features) { const isExpertModeEnabled = $('input[name="expertModeCheckbox"]').is(':checked'); @@ -15,10 +11,4 @@ export function updateTabList(features) { $('#tabs ul.mode-connected li.tab_led_strip').toggle(features.isEnabled('LED_STRIP')); $('#tabs ul.mode-connected li.tab_transponder').toggle(features.isEnabled('TRANSPONDER')); $('#tabs ul.mode-connected li.tab_osd').toggle(features.isEnabled('OSD')); - - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { - $('#tabs ul.mode-connected li.tab_vtx').toggle(features.isEnabled('VTX')); - } else { - $('#tabs ul.mode-connected li.tab_vtx').toggle(semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)); - } } From d1cb74e37f7d9afa25b47f1b5f313c063b44620f Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Sun, 23 Jul 2023 19:12:54 +0200 Subject: [PATCH 135/393] Fix GPS waiting info margin (#3525) * Fix GPS waiting info margin * Add colors to GPS Signal Strenght info --- src/css/tabs/gps.less | 11 ++++++++++- src/js/tabs/gps.js | 27 ++++++++++++++++++++++++--- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/css/tabs/gps.less b/src/css/tabs/gps.less index e297bb1419..1cf67c6c06 100644 --- a/src/css/tabs/gps.less +++ b/src/css/tabs/gps.less @@ -139,7 +139,7 @@ float: left; width: 100%; .info { - margin-top: 50%; + margin-top: 30%; } } #loadmap { @@ -212,6 +212,15 @@ progress[value] { box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.25) inset; } } +@media only screen and (max-width: 1455px) { + .tab-gps { + #waiting { + .info { + margin-top: 50%; + } + } + } +} @media only screen and (max-width: 1055px) { .tab-gps { iframe { diff --git a/src/js/tabs/gps.js b/src/js/tabs/gps.js index e72fba8334..f4deef2c15 100644 --- a/src/js/tabs/gps.js +++ b/src/js/tabs/gps.js @@ -259,9 +259,30 @@ gps.initialize = async function (callback) { } else { rowContent += `${FC.GPS_DATA.svid[i]}`; rowContent += ``; - const quality = i18n.getMessage(qualityArray[FC.GPS_DATA.quality[i] & 0x7]); - const used = i18n.getMessage(usedArray[(FC.GPS_DATA.quality[i] & 0x8) >> 3]); - const healthy = i18n.getMessage(healthyArray[(FC.GPS_DATA.quality[i] & 0x30) >> 4]); + + let quality = i18n.getMessage(qualityArray[FC.GPS_DATA.quality[i] & 0x7]); + let used = i18n.getMessage(usedArray[(FC.GPS_DATA.quality[i] & 0x8) >> 3]); + let healthy = i18n.getMessage(healthyArray[(FC.GPS_DATA.quality[i] & 0x30) >> 4]); + + // Add color to the text + if (quality.startsWith('fully locked')) { + quality = `${quality}`; + } else { + quality = `${quality}`; + } + + if (used.startsWith('used')) { + used = `${used}`; + } else { + used = `${used}`; + } + + if (healthy.startsWith('healthy')) { + healthy = `${healthy}`; + } else { + healthy = `${healthy}`; + } + rowContent += `${quality} | ${used} | ${healthy}`; } eSsTable.append(`${rowContent}`); From 62a9cde6d14816323bc9b7dd4e336b45004c4b8a Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Mon, 24 Jul 2023 11:50:42 +0200 Subject: [PATCH 136/393] Add all 8 debug values in sensors tab and only show active debugs (#3522) * Add all 8 debug values in sensors tab * Make debug columns dynamic * Do it for all debug columns * Use semver to decide initial column count * Some improvements from NerdCopter --- src/js/fc.js | 2 +- src/js/msp/MSPHelper.js | 2 +- src/js/tabs/onboard_logging.js | 2 + src/js/tabs/sensors.js | 41 +++++--- src/tabs/sensors.html | 183 ++++++++++++++++++++++----------- 5 files changed, 154 insertions(+), 76 deletions(-) diff --git a/src/js/fc.js b/src/js/fc.js index 28e05bb61c..2dcc0f2cb3 100644 --- a/src/js/fc.js +++ b/src/js/fc.js @@ -280,7 +280,7 @@ const FC = { altitude: 0, sonar: 0, kinematics: [0.0, 0.0, 0.0], - debug: [0, 0, 0, 0], + debug: [0, 0, 0, 0, 0, 0, 0, 0], }; this.MOTOR_DATA = Array.from({length: 8}); diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 80286a229d..9e369c3dd6 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -668,7 +668,7 @@ MspHelper.prototype.process_data = function(dataHandler) { console.log('Voltage config saved'); break; case MSPCodes.MSP_DEBUG: - for (let i = 0; i < 4; i++) { + for (let i = 0; i < 8; i++) { FC.SENSOR_DATA.debug[i] = data.read16(); } break; diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index 606266416f..0d80a03b00 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -320,6 +320,7 @@ onboard_logging.initialize = function (callback) { {text: "GPS_RESCUE_VELOCITY"}, {text: "GPS_RESCUE_HEADING"}, {text: "GPS_RESCUE_TRACKING"}, + {text: "GPS_UNIT_CONNECTION"}, {text: "ATTITUDE"}, {text: "VTX_MSP"}, {text: "GPS_DOP"}, @@ -329,6 +330,7 @@ onboard_logging.initialize = function (callback) { {text: "ANGLE_TARGET"}, {text: "CURRENT_ANGLE"}, {text: "DSHOT_TELEMETRY_COUNTS"}, + {text: "RPM_LIMIT"}, ]; for (let i = 0; i < FC.PID_ADVANCED_CONFIG.debugModeCount; i++) { diff --git a/src/js/tabs/sensors.js b/src/js/tabs/sensors.js index ae5c73f596..96652c7fdc 100644 --- a/src/js/tabs/sensors.js +++ b/src/js/tabs/sensors.js @@ -7,6 +7,8 @@ import MSP from "../msp"; import MSPCodes from "../msp/MSPCodes"; import serial from "../serial"; import * as d3 from 'd3'; +import semver from 'semver'; +import { API_VERSION_1_46 } from "../data_storage"; const sensors = {}; sensors.initialize = function (callback) { @@ -15,6 +17,8 @@ sensors.initialize = function (callback) { GUI.active_tab = 'sensors'; } + sensors.debugColumns = semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46) ? 8 : 4; + function initSensorData(){ for (let i = 0; i < 3; i++) { FC.SENSOR_DATA.accelerometer[i] = 0; @@ -22,6 +26,9 @@ sensors.initialize = function (callback) { FC.SENSOR_DATA.magnetometer[i] = 0; FC.SENSOR_DATA.sonar = 0; FC.SENSOR_DATA.altitude = 0; + } + + for (let i = 0; i < sensors.debugColumns; i++) { FC.SENSOR_DATA.debug[i] = 0; } } @@ -178,6 +185,10 @@ sensors.initialize = function (callback) { function plot_debug(enable) { if (enable) { $('.wrapper.debug').show(); + for (let i = 0; i < 8; i++) { + $(`svg#debug${i}`).hide(); + $(`div.plot_control.debug${i}`).hide(); + } } else { $('.wrapper.debug').hide(); } @@ -261,24 +272,22 @@ sensors.initialize = function (callback) { mag_data = initDataArray(3), altitude_data = initDataArray(1), sonar_data = initDataArray(1), - debug_data = [ - initDataArray(1), - initDataArray(1), - initDataArray(1), - initDataArray(1), - ]; + debug_data = []; + + for (let i = 0; i < sensors.debugColumns; i++) { + debug_data.push(initDataArray(1)); + } let gyroHelpers = initGraphHelpers('#gyro', samples_gyro_i, [-2000, 2000]); let accelHelpers = initGraphHelpers('#accel', samples_accel_i, [-2, 2]); let magHelpers = initGraphHelpers('#mag', samples_mag_i, [-1, 1]); const altitudeHelpers = initGraphHelpers('#altitude', samples_altitude_i); const sonarHelpers = initGraphHelpers('#sonar', samples_sonar_i); - const debugHelpers = [ - initGraphHelpers('#debug1', samples_debug_i), - initGraphHelpers('#debug2', samples_debug_i), - initGraphHelpers('#debug3', samples_debug_i), - initGraphHelpers('#debug4', samples_debug_i), - ]; + const debugHelpers = []; + + for (let i = 0; i < sensors.debugColumns; i++) { + debugHelpers.push(initGraphHelpers(`#debug${i}`, samples_debug_i)); + } const raw_data_text_ements = { x: [], @@ -417,9 +426,15 @@ sensors.initialize = function (callback) { } function update_debug_graphs() { - for (let i = 0; i < 4; i++) { + for (let i = 0; i < sensors.debugColumns; i++) { updateGraphHelperSize(debugHelpers[i]); + // enable/disable graphs based on debug values + if (FC.SENSOR_DATA.debug[i]) { + $(`svg#debug${i}`).show(); + $(`div.plot_control.debug${i}`).show(); + } + addSampleToData(debug_data[i], samples_debug_i, [FC.SENSOR_DATA.debug[i]]); drawGraph(debugHelpers[i], debug_data[i], samples_debug_i); raw_data_text_ements.x[5 + i].text(FC.SENSOR_DATA.debug[i]); diff --git a/src/tabs/sensors.html b/src/tabs/sensors.html index 0efab46c40..0900564544 100644 --- a/src/tabs/sensors.html +++ b/src/tabs/sensors.html @@ -66,12 +66,12 @@
    - - - - - - + + + + + +
    @@ -111,12 +111,12 @@
    - - - - - - + + + + + +
    @@ -156,12 +156,12 @@
    - - - - - - + + + + + +
    @@ -193,12 +193,12 @@
    - - - - - - + + + + + +
    @@ -226,18 +226,19 @@
    - - - - - - + + + + + +
    +
    -
    +
    0
    @@ -258,58 +259,118 @@
    0
    - - - - - - - + + + + + + +
    -
    +
    1
    X:
    blue
    - - - - - - - + + + + + + +
    -
    +
    2
    X:
    0
    - - - - - - - + + + + + + +
    -
    +
    3
    X:
    0
    + + + + + + + +
    +
    +
    4
    +
    +
    X:
    +
    0
    +
    +
    - - - - - - + + + + + + +
    +
    +
    5
    +
    +
    X:
    +
    0
    +
    +
    + + + + + + + +
    +
    +
    6
    +
    +
    X:
    +
    0
    +
    +
    + + + + + + + +
    +
    +
    7
    +
    +
    X:
    +
    0
    +
    +
    + + + + + + +
    From ee7c174ade842d11a5c697b71015ea0268231c1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=ADguel=20=C3=81ngel=20Mulero=20Mart=C3=ADnez?= Date: Sat, 29 Jul 2023 14:09:11 +0200 Subject: [PATCH 137/393] Add Ukrainian translation (#3529) --- .github/workflows/translations-pr.yml | 2 +- assets/windows/installer.iss | 1 + locales/en/messages.json | 6 +- locales/uk/messages.json | 7035 +++++++++++++++++++++++++ src/js/localization.js | 2 +- 5 files changed, 7043 insertions(+), 3 deletions(-) create mode 100644 locales/uk/messages.json diff --git a/.github/workflows/translations-pr.yml b/.github/workflows/translations-pr.yml index c7eeda9645..d62baba8c8 100644 --- a/.github/workflows/translations-pr.yml +++ b/.github/workflows/translations-pr.yml @@ -29,7 +29,7 @@ jobs: upload_translations: false download_translations: true - download_translations_args: '-l ca -l da -l de -l es-ES -l eu -l fr -l gl -l it -l ja -l ko -l nl -l pt-PT -l pt-BR -l pl -l ru -l zh-CN -l zh-TW' + download_translations_args: '-l ca -l da -l de -l es-ES -l eu -l fr -l gl -l it -l ja -l ko -l nl -l pt-PT -l pt-BR -l pl -l ru -l uk -l zh-CN -l zh-TW' localization_branch_name: update_translations_crowdin push_translations: true commit_message: 'Update translations' diff --git a/assets/windows/installer.iss b/assets/windows/installer.iss index 498dc069f8..71e713abbb 100644 --- a/assets/windows/installer.iss +++ b/assets/windows/installer.iss @@ -49,6 +49,7 @@ Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl" Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl" Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl" Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl" +Name: "uk"; MessagesFile: "compiler:Languages\Ukrainian.isl" ; Not official. Sometimes not updated to latest version (strings missing) Name: "ga"; MessagesFile: "unofficial_inno_languages\Galician.isl" Name: "eu"; MessagesFile: "unofficial_inno_languages\Basque.isl" diff --git a/locales/en/messages.json b/locales/en/messages.json index 4372c5e8b8..7c2845807c 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -194,7 +194,11 @@ "description": "Don't translate!!!" }, "language_ru": { - "message": "\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A", + "message": "\u0420\u0443\u0441\u0441\u043A\u0438\u0439", + "description": "Don't translate!!!" + }, + "language_uk": { + "message": "\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430", "description": "Don't translate!!!" }, "language_zh_CN": { diff --git a/locales/uk/messages.json b/locales/uk/messages.json new file mode 100644 index 0000000000..422c5cf95e --- /dev/null +++ b/locales/uk/messages.json @@ -0,0 +1,7035 @@ +{ + "yes": { + "message": "Так", + "description": "General Yes message to be used across the application" + }, + "no": { + "message": "Ні", + "description": "General No message to be used across the application" + }, + "on": { + "message": "Увімкнути" + }, + "off": { + "message": "Вимкнути" + }, + "auto": { + "message": "Авто" + }, + "error": { + "message": "Помилка: {{errorMessage}}" + }, + "errorTitle": { + "message": "Помилка" + }, + "warningTitle": { + "message": "Попередження" + }, + "noticeTitle": { + "message": "Зверніть увагу" + }, + "dontShowAgain": { + "message": "Не показувати знову" + }, + "operationNotSupported": { + "message": "Операція не підтримується пристроєм." + }, + "storageDeviceNotReady": { + "message": "Пристрій зберігання не готовий. У разі використання мікроSD-карти, переконайтеся, що пристрій правильно розпізнає польотний контролер" + }, + "options_title": { + "message": "Параметри додатку" + }, + "connect": { + "message": "З'єднати" + }, + "connecting": { + "message": "З'єднання" + }, + "disconnect": { + "message": "Роз'єднати" + }, + "portsSelectManual": { + "message": "Ручний вибір" + }, + "portsSelectVirtual": { + "message": "Віртуальний режим (експериментальний)", + "description": "Configure a Virtual Flight Controller without the need of a physical FC." + }, + "virtualMSPVersion": { + "message": "Версія віртуальної прошивки" + }, + "portOverrideText": { + "message": "Порт:" + }, + "autoConnect": { + "message": "Автоматичне підключення" + }, + "close": { + "message": "Закрити" + }, + "OK": { + "message": "ОК" + }, + "cancel": { + "message": "Відмінити" + }, + "submit": { + "message": "Надіслати" + }, + "autoConnectEnabled": { + "message": "Автопідключення: Увімкнено - конфігуратор автоматично здійснює підключення при виявленні нового порту" + }, + "autoConnectDisabled": { + "message": "Автопідключення: Вимкнено - Користувач повинен вибрати правильний серійний порт та натиснути \"Підключитись\"" + }, + "expertMode": { + "message": "Увімкнути режим експерта" + }, + "expertModeDescription": { + "message": "Увімкнути налаштування режиму експерта" + }, + "warningSettings": { + "message": "Показувати попередження" + }, + "rememberLastTab": { + "message": "Повторне відкриття останньої вкладки при підключенні" + }, + "analyticsOptOut": { + "message": "Відмовитися від анонімного збору даних статистики" + }, + "connectionTimeout": { + "message": "Встановіть затримку підключення, щоб дозволити довшу ініціалізацію після підключення пристрою або перезавантаження", + "description": "Change timeout on auto-connect and reboot so the bus has more time to initialize after being detected by the system" + }, + "showAllSerialDevices": { + "message": "Показати всі послідовні пристрої (для виробників або розробки)", + "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" + }, + "useMdnsBrowser": { + "message": "Використовувати виявлення пристроїв mDNS у мережі (експериментально)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, + "showVirtualMode": { + "message": "Включити режим віртуального з'єднання", + "description": "Text for the option to enable or disable the virtual FC" + }, + "cordovaForceComputerUI": { + "message": "Використовуйте інтерфейс комп’ютера замість інтерфейсу телефона" + }, + "language_changed": { + "message": "Мова змінена" + }, + "language_choice_message": { + "message": "Змінити мову:", + "description": "Try and be brief" + }, + "language_default": { + "message": "Системна за замовчуванням" + }, + "language_default_pretty": { + "message": " за замовчуванням ($t(detectedLanguage))" + }, + "sensorDataFlashNotFound": { + "message": "Чіп пам'яті
    не знайдено", + "description": "Text of the dataflash image in the header of the page." + }, + "sensorDataFlashFreeSpace": { + "message": "Доступна пам'ять", + "description": "Text of the dataflash image in the header of the page." + }, + "sensorStatusGyro": { + "message": "Гіроскоп" + }, + "sensorStatusGyroShort": { + "message": "Гіроскоп", + "description": "Text of the image in the top sensors icons. Please keep it short." + }, + "sensorStatusAccel": { + "message": "Акселерометр" + }, + "sensorStatusAccelShort": { + "message": "акселерометр", + "description": "Text of the image in the top sensors icons. Please keep it short." + }, + "sensorStatusMag": { + "message": "Магнітометр" + }, + "sensorStatusMagShort": { + "message": "Компас", + "description": "Text of the image in the top sensors icons. Please keep it short." + }, + "sensorStatusBaro": { + "message": "Барометр" + }, + "sensorStatusBaroShort": { + "message": "Барометер", + "description": "Text of the image in the top sensors icons. Please keep it short." + }, + "sensorStatusGPS": { + "message": "GPS" + }, + "sensorStatusGPSShort": { + "message": "GPS", + "description": "Text of the image in the top sensors icons. Please keep it short." + }, + "sensorStatusSonar": { + "message": "Сонар / Далекомір" + }, + "sensorStatusSonarShort": { + "message": "Сонар", + "description": "Text of the image in the top sensors icons. Please keep it short." + }, + "checkForConfiguratorUnstableVersions": { + "message": "Показувати сповіщення про оновлення для нестабільних версій конфігуратора" + }, + "configuratorUpdateNotice": { + "message": "Ви використовуєте застарілу версію Betaflight Configurator.
    $t(configuratorUpdateHelp.message)" + }, + "configuratorUpdateHelp": { + "message": "Використання новішої версії прошивки із застарілою версією конфігуратора означає, що зміна деяких налаштувань призведе до пошкодження конфігурації прошивки та непрацездатності апарата. Крім того, деякі функції прошивки можна буде налаштувати лише в Командному Рядку.
    Betaflight Configurator версія $1 доступна для онлайн завантаження, будь ласка, відвідайте цю сторінку для завантаження та встановлення крайньої версії з виправленнями та покращеннями.
    Будь ласка, закрийте вікно конфігуратора перед оновленням." + }, + "configuratorUpdateWebsite": { + "message": "Перейти на сайт з Релізами" + }, + "deviceRebooting": { + "message": "Пристрій - перезавантажується" + }, + "deviceRebooting_flashBootloader": { + "message": "Пристрій - Перезавантажується до FLASH BOOTLOADER" + }, + "deviceRebooting_romBootloader": { + "message": "Пристрій - Перезавантажується до ROM BOOTLOADER" + }, + "deviceReady": { + "message": "Пристрій - Готовий" + }, + "tabFirmwareFlasher": { + "message": "Програматор" + }, + "tabLanding": { + "message": "Вітальна сторінка" + }, + "tabChangelog": { + "message": "Журнал змін" + }, + "tabPrivacyPolicy": { + "message": "Політика конфіденційності" + }, + "tabHelp": { + "message": "Документація та підтримка" + }, + "tabOptions": { + "message": "Опції" + }, + "tabSetup": { + "message": "Налаштування" + }, + "tabSetupOSD": { + "message": "Налаштування наекранного меню" + }, + "tabConfiguration": { + "message": "Конфігурація" + }, + "tabPorts": { + "message": "Порти" + }, + "tabPidTuning": { + "message": "Налаштування PID" + }, + "tabReceiver": { + "message": "Приймач" + }, + "tabModeSelection": { + "message": "Вибір режиму" + }, + "tabServos": { + "message": "Сервоприводи" + }, + "tabFailsafe": { + "message": "Безаварійність" + }, + "tabTransponder": { + "message": "Транспондер перегонів" + }, + "tabOsd": { + "message": "Наекранне меню" + }, + "tabVtx": { + "message": "Відеопередавач" + }, + "tabPower": { + "message": "Живлення та акумулятор" + }, + "tabGPS": { + "message": "GPS" + }, + "tabMotorTesting": { + "message": "Двигуни" + }, + "tabLedStrip": { + "message": "LED стрічка" + }, + "tabRawSensorData": { + "message": "Датчики" + }, + "tabCLI": { + "message": "Командний рядок" + }, + "tabLogging": { + "message": "Журналювання через кабель" + }, + "tabOnboardLogging": { + "message": "Чорна скриня" + }, + "tabAdjustments": { + "message": "Регулювання" + }, + "tabAuxiliary": { + "message": "Режими" + }, + "logActionHide": { + "message": "Приховати журнал подій" + }, + "logActionShow": { + "message": "Показати журнал подій" + }, + "serialErrorFrameError": { + "message": "Помилка послідовного підключення: погане кадрування" + }, + "serialErrorParityError": { + "message": "Помилка послідовного підключення: помилка парності" + }, + "serialPortOpened": { + "message": "Послідовний порт успішно відкрито з ID: $1" + }, + "serialPortOpenFail": { + "message": "Не вдалося відкрити послідовний порт" + }, + "serialPortClosedOk": { + "message": "Послідовний порт успішно закрито" + }, + "serialPortClosedFail": { + "message": "Не вдалося закрити послідовний порт" + }, + "serialUnrecoverable": { + "message": "Невиправний збій послідовного підключення, від'єднання..." + }, + "serialPortLoading": { + "message": "Завантаження..." + }, + "usbDeviceOpened": { + "message": "USB пристрій успішно відкрито з ID: $1" + }, + "usbDeviceOpenFail": { + "message": "Не вдалося відкрити USB пристрій!" + }, + "usbDeviceClosed": { + "message": "USB пристрій успішно закрито" + }, + "usbDeviceCloseFail": { + "message": "Не вдалося закрити USB пристрій" + }, + "usbDeviceUdevNotice": { + "message": "Чи udev правила правильно встановлені? Перегляньте документацію для інструкцій" + }, + "stm32UsbDfuNotFound": { + "message": "USB DFU не знайдено" + }, + "stm32RebootingToBootloader": { + "message": "Ініціюється перезавантаження до завантажувача..." + }, + "stm32RebootingToBootloaderFailed": { + "message": "Перезавантаження пристрою до завантажувача: НЕВДАЧА" + }, + "stm32TimedOut": { + "message": "STM32 - сплинув час очікування, програмування: НЕВДАЧА" + }, + "stm32WrongResponse": { + "message": "Помилка зв’язку STM32, неправильна відповідь, очікується: $1 (0x$2) отримано: $3 (0x$4)" + }, + "stm32ContactingBootloader": { + "message": "Встановлення зв'язку з завантажувачем ..." + }, + "stm32ContactingBootloaderFailed": { + "message": "Помилка зв’язку із завантажувачем" + }, + "stm32ResponseBootloaderFailed": { + "message": "Немає відповіді від завантажувача, програмування: НЕВДАЧА" + }, + "stm32GlobalEraseExtended": { + "message": "Виконання глобального стирання чіпа (через розширене стирання)..." + }, + "stm32LocalEraseExtended": { + "message": "Виконання локального стирання (через розширене стирання)..." + }, + "stm32GlobalErase": { + "message": "Виконання глобального стирання чіпа..." + }, + "stm32LocalErase": { + "message": "Виконання локального стирання..." + }, + "stm32InvalidHex": { + "message": "Недійсний hex" + }, + "stm32Erase": { + "message": "Видалення ..." + }, + "stm32Flashing": { + "message": "Прошивання ..." + }, + "stm32Verifying": { + "message": "Перевірка..." + }, + "stm32ProgrammingSuccessful": { + "message": "Програмування: УСПІШНО" + }, + "stm32ProgrammingFailed": { + "message": "Програмування: ПОМИЛКА" + }, + "stm32AddressLoadFailed": { + "message": "Не вдалось завантажити адресу для сектора байтів конфігурації STM32. Швидше за все через захист від читання." + }, + "stm32AddressLoadSuccess": { + "message": "Завантаження адреси для сектора байтів конфігурації виконано успішно." + }, + "stm32AddressLoadUnknown": { + "message": "Невдале завантаження адреси для сектора опційних байтів через невідому помилку. Скасування." + }, + "stm32NotReadProtected": { + "message": "Захист від читання не активний" + }, + "stm32ReadProtected": { + "message": "Схоже, плата захищена від читання. Зняття захисту. Не роз'єднуйте/не відключайте!" + }, + "stm32UnprotectSuccessful": { + "message": "Захист знято." + }, + "stm32UnprotectUnplug": { + "message": "НЕОБХІДНА ДІЯ: від’єднайте та знову під’єднайте польотний контролер в режимі DFU, щоб спробувати прошити ще раз!" + }, + "stm32UnprotectFailed": { + "message": "Не вдалося зняти захист плати" + }, + "stm32UnprotectInitFailed": { + "message": "Не вдалося запустити процес зняття захисту" + }, + "noConfigurationReceived": { + "message": "Конфігурація не отримана протягом 10 секунд, зв’язок невдалий" + }, + "firmwareVersionNotSupported": { + "message": "Ця версія прошивки не підтримується. Будь ласка, оновіть прошивку до версії з підтримкою API $1 або новішої. Використовуйте командний рядок для резервного копіювання перед прошивкою. Процедуру резервного копіювання/відновлення через командний рядок знайдете в документації.
    Або завантажте та використовуйте стару версію конфігуратора, якщо не готові до оновлення." + }, + "firmwareTypeNotSupported": { + "message": "Прошивка не Betaflight не підтримується, окрім режиму командного рядка." + }, + "firmwareUpgradeRequired": { + "message": "Прошивку цього пристрою потрібно оновити до новішої версії. Використовуйте командний рядок для резервного копіювання перед прошивкою. Процедуру резервного копіювання/відновлення через командний рядок знайдете в документації.
    Або завантажте та використовуйте стару версію конфігуратора, якщо не готові до оновлення." + }, + "resetToCustomDefaultsDialog": { + "message": "Для цієї плати доступні спеціальні параметри за замовчуванням. Як правило, плата не працюватиме належним чином, якщо не будуть застосовані спеціальні параметри за замовчуванням.
    Застосувати спеціальні параметри за замовчуванням для цієї плати?" + }, + "resetToCustomDefaultsAccept": { + "message": "Застосувати спеціальні параметри за замовчуванням" + }, + "reportProblemsDialogHeader": { + "message": "Виявлено наступні проблеми з конфігуратором:" + }, + "reportProblemsDialogFooter": { + "message": "Будь ласка, виправте ці проблеми, перш ніж спробуєте злетіти своїм апаратом." + }, + "reportProblemsDialogAPI_VERSION_MAX_SUPPORTED": { + "message": "Версія конфігуратора, який ви використовуєте ($3), старіша за прошивку, яку ви використовуєте ($4).
    $t(configuratorUpdateHelp.message)" + }, + "reportProblemsDialogMOTOR_PROTOCOL_DISABLED": { + "message": "Протокол вихідного сигналу двигуна не вибрано.
    Будь ласка, виберіть протокол виводу двигуна, відповідний до вашого електронного контролера швидкості ESC '$t(configurationEscFeatures.message)' на '$t(tabMotorTesting.message)' вкладці.
    $t(escProtocolDisabledMessage.message)" + }, + "reportProblemsDialogACC_NEEDS_CALIBRATION": { + "message": "акселерометр увімкнено, але він не відкалібрований.
    Якщо плануєте використовувати акселерометр, будь ласка, дотримуйтесь інструкцій для '$t(initialSetupButtonCalibrateAccel.message)' на вкладці$t(tabSetup.message)'. Якщо будь-яка функція, що потребує акселерометра (режим автоматичного вирівнювання, GPS порятунок, ...) увімкнена, взведення апарата буде відключено, доки акселерометр не буде відкалібровано.
    Якщо не плануєте використовувати акселерометр, рекомендується вимкнути його '$t(configurationSystem.message)' на вкладці '$t(tabConfiguration.message)'." + }, + "infoVersionOs": { + "message": "ОС: {{operatingSystem}}", + "description": "Message that appears in the GUI log panel indicating operating system" + }, + "infoVersionConfigurator": { + "message": "Конфігуратор: {{configuratorVersion}}", + "description": "Message that appears in the GUI log panel indicating Configurator version" + }, + "buildServerSuccess": { + "message": "Успішно: $1" + }, + "buildServerFailure": { + "message": "Помилка сервера збірки: $1 $2" + }, + "buildServerUsingCached": { + "message": "Використання кешованої інформації збірки для $1." + }, + "buildServerSupportRequestSubmission": { + "message": "
    *** Дані підтримки надіслано***
    Id: $1


    # скопіюйте ID і надайте команді betaflight." + }, + "buildKey": { + "message": "Ключ збірки: $1" + }, + "supportWarningDialogTitle": { + "message": "Підтвердити надсилання даних" + }, + "supportWarningDialogText": { + "message": "Будь ласка, підтвердьте надсилання даних команді Betaflight.

    Цей процес запустить деякі команди та надішле результат на сервер збірки.

    Після цього вам буде надано унікальний ідентифікатор для передачі даних.

    Будь ласка, переконайтеся, що ви надали цей унікальний ідентифікатор команді Betaflight, коли використовуєте Discord або відкриваєте проблеми на Github." + }, + "supportWarningDialogInputPlaceHolder": { + "message": "Опишіть проблему" + }, + "releaseCheckLoaded": { + "message": "Завантажено інформацію про випуск $1 з GitHub." + }, + "releaseCheckFailed": { + "message": "GitHub запит для $1 випусків невдалий, використовуємо інформацію з кеша. Причина: $2" + }, + "releaseCheckCached": { + "message": "Використовуються кешовані дані про випуски для $1 релізів." + }, + "releaseCheckNoInfo": { + "message": "Немає інформації про реліз $1." + }, + "tabSwitchConnectionRequired": { + "message": "Необхідно під'єднатися, перш ніж ви зможете переглянути будь-яку з вкладок." + }, + "tabSwitchWaitForOperation": { + "message": "Ви не можете зробити це зараз, будь ласка, зачекайте на завершення поточної операції..." + }, + "tabSwitchUpgradeRequired": { + "message": "Вам потрібно оновити свою прошивку до останньої версії Betaflight, перш ніж ви зможете використовувати $1 вкладку." + }, + "firmwareVersion": { + "message": "Версія прошивки: $1" + }, + "apiVersionReceived": { + "message": "MultiWii API версія: $1" + }, + "uniqueDeviceIdReceived": { + "message": "Унікальний ID пристрою: 0x$1" + }, + "craftNameReceived": { + "message": "Ім'я пристрою: $1" + }, + "armingDisabled": { + "message": "Взведення заблоковано" + }, + "armingEnabled": { + "message": "Взведення дозволено" + }, + "runawayTakeoffPreventionDisabled": { + "message": "Запобігання некерованому зльоту тимчасово вимкнено" + }, + "runawayTakeoffPreventionEnabled": { + "message": "Запобігання некерованому зльоту ввімкнене" + }, + "boardInfoReceived": { + "message": "Плата: $1, версія: $2" + }, + "buildInfoReceived": { + "message": "Запущена прошивка випущена: $1" + }, + "fcInfoReceived": { + "message": "Інформація про польотний контролер, ідентифікатор: $1, версія: $2" + }, + "versionLabelTarget": { + "message": "Цільовий пристрій" + }, + "versionLabelFirmware": { + "message": "Прошивка" + }, + "versionLabelConfigurator": { + "message": "Конфігуратор" + }, + "notifications_app_just_updated_to_version": { + "message": "Застосунок оновлено до версії: $1" + }, + "notifications_click_here_to_start_app": { + "message": "Натисніть тут, щоб запустити програму" + }, + "statusbar_port_utilization": { + "message": "Використання порту:", + "description": "Port utilization text shown in the status bar" + }, + "statusbar_usage_download": { + "message": "D:", + "description": "References 'Download' in the status bar, port utilization. Keep one character long if possible" + }, + "statusbar_usage_upload": { + "message": "U:", + "description": "References 'Upload' in the status bar, port utilization. Keep one character long if possible" + }, + "statusbar_packet_error": { + "message": "Помилка пакета:", + "description": "Packet error text shown in the status bar" + }, + "statusbar_i2c_error": { + "message": "Помилка I2C:", + "description": "CPU load text shown in the status bar" + }, + "statusbar_cycle_time": { + "message": "Час циклу:", + "description": "Cycle time text shown in the status bar" + }, + "statusbar_cpu_load": { + "message": "Завантаження ЦП:", + "description": "CPU load text shown in the status bar" + }, + "dfu_connect_message": { + "message": "Будь ласка, використовуйте програматор для доступу до пристроїв DFU" + }, + "dfu_erased_kilobytes": { + "message": "Стирання $1 kB флешпам'яті успішне" + }, + "dfu_device_flash_info": { + "message": "Виявлено пристрій із загальним розміром флешпам’яті $1 KiB" + }, + "dfu_hex_address_errors": { + "message": "Образ прошивки містить адреси, не знайдені на цільовому пристрої" + }, + "dfu_error_image_size": { + "message": "Помилка: Образ більший, ніж доступна флешпам'ять на чіпі! Образ: $1 KiB, обмеження = $2 KiB" + }, + "eeprom_saved_ok": { + "message": "EEPROM збережено" + }, + "defaultWelcomeIntro": { + "message": "Ласкаво просимо до Betaflight конфігуратора - програми, призначеної для спрощення оновлення, конфігурації та налаштування вашого польотного контролера." + }, + "defaultWelcomeHead": { + "message": "Апаратне забезпечення" + }, + "defaultWelcomeText": { + "message": "Застосунок підтримує все обладнання, яке може запускати Betaflight. Перегляньте вкладку програматора, щоб отримати повний список обладнання.

    Завантажити Betaflight Blackbox Log Viewer

    Завантажити Betaflight TX Lua Scripts

    Вихідний код застосунка можна завантажити тут

    Для застарілого обладнання з контролером CP210x USB:
    Останні CP210x Драйвери можна завантажити тут
    Останній Zadig для встановлення USB-драйвера Windows можна завантажити тут
    ImpulseRC Driver Fixer можна завантажити тут" + }, + "defaultContributingHead": { + "message": "Сприяння" + }, + "defaultContributingText": { + "message": "Якщо хочете допомогти зробити Betaflight ще кращим, є різні способи, зокрема:
    • використовуючи свої знання про Betaflight щоб створювати, або оновлювати вміст на нашій Wiki, або відповідати на запитання інших користувачів на онлайн-форумах;
    • додаванням коду до застосунка та конфігуратора - нові функції, виправлення, покращення;
    • тестуючи нові функції та виправлення даючи зворотній зв'язок;
    • допомагаючи іншим користувачам вирішити проблеми, про які вони повідомляють в нашій системі відслідковування помилок, та беручі участь в обговореннях запитів щодо функціоналу;
    • перекладом Betaflight Конфігуратора на нову мову, або допомагаючи підтримувати існуючі переклади.
    " + }, + "defaultFacebookText": { + "message": "Ми також маємо групу на Facebook.
    Приєднуйтесь до нас, щоб мати можливість обговорювати Betaflight, ставити запитання щодо налаштування, або просто спілкуватись зі своїми колегами-пілотами." + }, + "defaultDiscordText": { + "message": "Сервер Betaflight на Discord.
    Діліться своїм досвідом польотів, обговорюйте Betaflight, допомагайте іншим або отримуйте допомогу від спільноти." + }, + "statisticsDisclaimer": { + "message": "Конфігуратор Betaflight збирає анонімну статистику використання. Наприклад, ці дані включають (але не обмежуються) кількість запусків, географічний регіон користувачів, типи контролерів польоту, версії прошивок, використання елементів і вкладок інтерфейсу тощо. Зведена інформація про ці дані наведена тут. Збір інформації здійснюється для кращого розуміння того, як використовується конфігуратор Betaflight, а також для виявлення тенденцій у спільноті та можливого вдосконалення інтерфейсу. Користувачі можуть відмовитися від збору даних на вкладці \"Опції\"." + }, + "defaultChangelogHead": { + "message": "Конфігуратор - Список змін" + }, + "defaultButtonFirmwareFlasher": { + "message": "Програматор" + }, + "defaultDonateHead": { + "message": "Відкритий код / Повідомлення про пожертву" + }, + "defaultDonateText": { + "message": "

    Betaflight - це програмне забезпечення для польотного контролера, яке є відкритим кодом і доступне безкоштовно без гарантії для всіх користувачів.

    Якщо вважаєте, що Betaflight або Betaflight Конфігуратор були корисними для вас, будь ласка, розгляньте можливість підтримати їх розробку пожертвуванням.

    " + }, + "defaultDonateBottom": { + "message": "

    Якщо хочете сприяти фінансово на постійній основі, можете розглянути можливість стати нашим патроном на $t(patreonLink.message).

    " + }, + "patreonLink": { + "message": "Patreon", + "description": "Patreon is name, and should not require translation" + }, + "defaultDonate": { + "message": "Підтримати проект" + }, + "defaultSponsorsHead": { + "message": "Спонсори" + }, + "defaultDocumentationHead": { + "message": "Документація / Посібник" + }, + "defaultDocumentation": { + "message": "Документація Betaflight доступна в примітках до випуску та wiki.

    " + }, + "defaultDocumentation1": { + "message": "Wiki Betaflight - відмінний ресурс для отримання інформації, знайти можна за посиланням тут." + }, + "defaultDocumentation2": { + "message": "Нотатки до випусків прошивок можна прочитати на сторінці випусків на GitHub, тут." + }, + "defaultSupportHead": { + "message": "Підтримка" + }, + "defaultSupportSubline1": { + "message": "Джерела підтримки" + }, + "defaultSupportSubline2": { + "message": "Розробник" + }, + "defaultSupport": { + "message": "Для отримання підтримки, будь ласка, спочатку перегляньте форуми та wiki, або зверніться до свого постачальника.

    " + }, + "defaultSupport1": { + "message": "RC Groups тред" + }, + "defaultSupport2": { + "message": "Betaflight Wiki" + }, + "defaultSupport3": { + "message": "Відео від Joshua Bardwell по Betaflight 4.3 " + }, + "defaultSupport4": { + "message": "GitHub" + }, + "defaultSupport5": { + "message": "Розробники Betaflight в Discord" + }, + "initialSetupButtonCalibrateAccel": { + "message": "Відкалібрувати акселерометр" + }, + "initialSetupCalibrateAccelText": { + "message": "Розмістіть плату або раму на рівній поверхні, розпочніть калібрування, переконайтеся, що платформа не рухається протягом періоду калібрування" + }, + "initialSetupButtonCalibrateMag": { + "message": "Калібрувати Магнітометр" + }, + "initialSetupCalibrateMagText": { + "message": "Покрутіть мультиротор принаймні 360 градусів по всіх 3-х осях обертання, у вас є 30 секунд, щоб виконати це завдання" + }, + "initialSetupButtonCalibratingText": { + "message": "Калібрування..." + }, + "initialSetupButtonReset": { + "message": "Скинути налаштування" + }, + "initialSetupResetText": { + "message": "Відновити налаштування до значень за замовчуванням" + }, + "initialSetupButtonBackup": { + "message": "Резервне копіювання JSON" + }, + "initialSetupButtonRestore": { + "message": "Відновлення JSON" + }, + "initialSetupButtonRebootBootloader": { + "message": "Активувати завантажувач / DFU" + }, + "initialSetupBackupRestoreHeader": { + "message": "Експериментальне резервне копіювання та відновлення" + }, + "initialSetupBackupRestoreText": { + "message": "Зробіть резервну копію вашої конфігурації на випадок аварії, налаштування командного рядка не включені - для цього використовуйте команду 'diff all' в командному рядку." + }, + "initialSetupRebootBootloaderText": { + "message": "Перезапустити в режим завантажувача / DFU." + }, + "initialSetupBackupSuccess": { + "message": "Резервне копіювання збережене успішно" + }, + "initialSetupRestoreSuccess": { + "message": "Конфігурацію відновлено успішно" + }, + "initialSetupButtonResetZaxis": { + "message": "Скинути вісь Z, зміщення: 0 градусів" + }, + "initialSetupButtonResetZaxisValue": { + "message": "Скинути вісь Z, зміщення: $1 градус" + }, + "initialSetupHeading": { + "message": "Курс:", + "description": "Heading shown on Setup tab" + }, + "initialSetupPitch": { + "message": "Тангаж:" + }, + "initialSetupRoll": { + "message": "Крен:" + }, + "initialSetupMixerHead": { + "message": "Тип Мікшеру" + }, + "initialSetupThrottleHead": { + "message": "Налаштування тяги" + }, + "initialSetupMinimum": { + "message": "Мінімум:" + }, + "initialSetupMaximum": { + "message": "Максимум:" + }, + "initialSetupFailsafe": { + "message": "Безаварійність:" + }, + "initialSetupMinCommand": { + "message": "МінКоманда:" + }, + "initialSetupBatteryHead": { + "message": "Акумулятор" + }, + "initialSetupMinCellV": { + "message": "Мін. напруга комірки:" + }, + "initialSetupMaxCellV": { + "message": "Макс. напруга комірки:" + }, + "initialSetupVoltageScale": { + "message": "Масштаб напруги:" + }, + "initialSetupAccelTrimsHead": { + "message": "Коригування акселерометра" + }, + "initialSetupMagHead": { + "message": "Магнітометр" + }, + "initialSetupInfoHead": { + "message": "Інформація про систему" + }, + "initialSetupInfoHeadHelp": { + "message": "Показує позначки польотного контролера для охолощення, інформації про батарею, рівень індикатора рівня потужності отриманого сигналу RSSI та сенсори", + "description": "Message that pops up to describe the System info section" + }, + "initialSetupBattery": { + "message": "Напруга акумулятора:" + }, + "initialSetupBatteryValue": { + "message": "$1 В" + }, + "initialSetupDrawn": { + "message": "Спожита ємність:" + }, + "initialSetupDrawing": { + "message": "Поточне струмоспоживання:" + }, + "initialSetupBatteryMahValue": { + "message": "$1 мАг" + }, + "initialSetupBatteryAValue": { + "message": "$1 A" + }, + "initialSetupCpuTemp": { + "message": "Температура процесора:" + }, + "initialSetupRSSI": { + "message": "RSSI: " + }, + "initialSetupSensorHardware": { + "message": "Датчики:" + }, + "initialSetupRSSIValue": { + "message": "$1 %" + }, + "initialSetupArmingDisableFlags": { + "message": "Позначки заборони взведення:" + }, + "initialSetupArmingAllowed": { + "message": "Взведення дозволено" + }, + "initialSetupArmingDisableFlagsTooltip": { + "message": "Список позначок, котрі вказують, чому взведення наразі не дозволено. Наведіть курсор на позначку, або зверніться до Wiki (сторінка \"Arming Sequence & Safety\") для додаткової інформації." + }, + "initialSetupArmingDisableFlagsTooltipNO_GYRO": { + "message": "Гіроскоп не виявлено", + "description": "Message that pops up to describe the NO_GYRO arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipFAILSAFE": { + "message": "Безаварійність активовано", + "description": "Message that pops up to describe the FAILSAFE arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipRX_FAILSAFE": { + "message": "Не виявлено правильного сигналу приймача", + "description": "Message that pops up to describe the RX_FAILSAFE arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipBAD_RX_RECOVERY": { + "message": "Ваш приймач щойно відновив зв'язок після безаварійності, але перемикач взведення ввімкнено", + "description": "Message that pops up to describe the BAD_RX_RECOVERY arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipBOXFAILSAFE": { + "message": "Перемикач «FAILSAFE» був активований", + "description": "Message that pops up to describe the BOXFAILSAFE arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipRUNAWAY_TAKEOFF": { + "message": "Спрацювало запобігання некерованому зльоту", + "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipCRASH_DETECTED": { + "message": "Виявлення аварій активовано", + "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipCALIBRATING": { + "message": "Відбувається калібрування", + "description": "Message that pops up to describe the CALIBRATING arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipTHROTTLE": { + "message": "Канал тяги занадто високий", + "description": "Message that pops up to describe the THROTTLE arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipANGLE": { + "message": "Апарат не вирівняний (достатньо)", + "description": "Message that pops up to describe the ANGLE arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipBOOT_GRACE_TIME": { + "message": "Взведення зашвидке після ввімкнення", + "description": "Message that pops up to describe the BOOT_GRACE_TIME arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipNOPREARM": { + "message": "Перемикач попереднього взведення не активовано, або не перемикався після охолощення", + "description": "Message that pops up to describe the NOPREARM arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipLOAD": { + "message": "Системне завантаження занадто високе для безпечного польоту", + "description": "Message that pops up to describe the LOAD arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipACC_CALIBRATION": { + "message": "Калібрування акселерометра ще триває", + "description": "Message that pops up to describe the ACC_CALIBRATION arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipCLI": { + "message": "Командний рядок активний", + "description": "Message that pops up to describe the CLI arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipCMS_MENU": { + "message": "CMS (меню налаштувань) активовано - через OSD або інший дисплей -", + "description": "Message that pops up to describe the CMS_MENU arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipOSD_MENU": { + "message": "Наекранне меню активне", + "description": "Message that pops up to describe the OSD_MENU arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipBST": { + "message": "Телеметричний пристрій Black Sheep (наприклад, TBS Core Pro) охолощений і запобігає взведенню", + "description": "Message that pops up to describe the BST arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipMSP": { + "message": "MSP підключення активне, ймовірно, за допомогою цього конфігуратора Betaflight", + "description": "Message that pops up to describe the MSP arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipPARALYZE": { + "message": "Увімкнено режим паралічу", + "description": "Message that pops up to describe the PARALYZE arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipGPS": { + "message": "Режим GPS-порятунку налаштовано, але було знайдено необхідну кількість супутників", + "description": "Message that pops up to describe the GPS arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipRESC": { + "message": "Активувався перемикач \"GPS-порятунок\"", + "description": "Message that pops up to describe the RESC arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipRPMFILTER": { + "message": "RPM фільтрування увімкнено, але один або декілька електронних контролерів швидкості ESC не надають дійсну DSHOT телеметрію. Перевірте, чи ESC підтримує там має необхідну прошивку для двонаправленої DSHOT телеметрії.", + "description": "Message that pops up to describe the RPMFILTER arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipREBOOT_REQUIRED": { + "message": "Зміна конфігурації потребує перезавантаження", + "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipDSHOT_BITBANG": { + "message": "Bitbanged DSHOT не працює належним чином, і двигунами неможливо керувати. Ймовірно, це викликано конфліктом таймера з іншими функціями, увімкненими на польотному контролері.", + "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipNO_ACC_CALIBRATION": { + "message": "Акселерометр не відкалібровано, є увімкнені функції котрі залежать від нього. Відкалібруйте акселерометр.", + "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipMOTOR_PROTOCOL": { + "message": "Не вибрано протокол виводу для двигунів", + "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { + "message": "Одна з інших позначок охлощення активна під час взведення", + "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" + }, + "initialSetupGPSHead": { + "message": "GPS" + }, + "initialSetupGPSHeadHelp": { + "message": "Показує інформацію про GPS, якщо належним чином активовано на вкладках Порти, Конфігурація та GPS", + "description": "Message that pops up to describe the GPS section" + }, + "initialSetupSonarHead": { + "message": "Сонар" + }, + "initialSetupSonarHeadHelp": { + "message": "Показує інформацію про сонар, якщо він належним чином активований у вкладці Конфігурація", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "Висота" + }, + "initialSetupInstrumentsHead": { + "message": "Інструменти" + }, + "initialSetupInstrumentsHeadHelp": { + "message": "Показує курс, тангаж і крен в інструментах", + "description": "Message that pops up to describe the Instruments section" + }, + "initialSetupInfoAPIversion": { + "message": "MSP API:" + }, + "initialSetupInfoBuild": { + "message": "Інформація прошивки" + }, + "initialSetupInfoBuildHelp": { + "message": "Показує інформацію про збірку прошивки. Конфігурація збірки та журнал збірки посилаються на інформацію з хмари, знайдену за допомогою ключа збірки", + "description": "Message that pops up to describe the Build / Firmware section" + }, + "initialSetupInfoBuildDate": { + "message": "Дата збірки:" + }, + "initialSetupInfoBuildInfo": { + "message": "Інформація про збірку:" + }, + "initialSetupInfoBuildInfoKey": { + "message": "Ключ збірки" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "Конфігурація" + }, + "initialSetupInfoBuildInfoLog": { + "message": "Журнал" + }, + "initialSetupInfoBuildOptions": { + "message": "Параметри збірки:" + }, + "initialSetupInfoBuildOptionsList": { + "message": "Використані директиви препроцесора" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "Локальна збірка - без директив препроцесору" + }, + "initialSetupNotOnline": { + "message": "Сервер недоступний" + }, + "initialSetupButtonSave": { + "message": "Зберегти" + }, + "initialSetupModel": { + "message": "Модель: $1" + }, + "initialSetupAttitude": { + "message": "$1 °" + }, + "initialSetupAccelCalibStarted": { + "message": "Калібрування акселерометра розпочалося" + }, + "initialSetupAccelCalibEnded": { + "message": "Калібрування акселерометра завершено" + }, + "initialSetupMagCalibStarted": { + "message": "Калібрування магнітометра розпочалося" + }, + "initialSetupMagCalibEnded": { + "message": "Калібрування магнітометра завершено" + }, + "initialSetupSettingsRestored": { + "message": "Налаштування відновлені до значень за замовчуванням" + }, + "initialSetupEepromSaved": { + "message": "EEPROM збережено" + }, + "featureNone": { + "message": "<Оберіть одне>" + }, + "featureRX_PPM": { + "message": "PPM/CPPM (одним кабелем)" + }, + "featureINFLIGHT_ACC_CAL": { + "message": "Калібрування під час польоту" + }, + "featureRX_SERIAL": { + "message": "Serial (через UART)" + }, + "featureMOTOR_STOP": { + "message": "Не обертати мотори коли взведений" + }, + "featureSERVO_TILT": { + "message": "Сервоприводний підвіс" + }, + "featureSERVO_TILTTip": { + "message": "Ця функція дозволяє режим CAMSTAB, який можна використовувати для утримання стабільної позиції до двох осей за допомогою акселерометра" + }, + "featureSOFTSERIAL": { + "message": "Увімкнути послідовні порти на основі CPU" + }, + "featureSOFTSERIALTip": { + "message": "Після включення налаштуйте порти у вкладці Порти." + }, + "featureGPS": { + "message": "GPS для навігації та телеметрії" + }, + "featureGPSTip": { + "message": "Спочатку налаштуйте порт" + }, + "featureSONAR": { + "message": "Сонар" + }, + "featureSONARTip": { + "message": "Увімкнути далекомір сонара для вимірювання відстані до землі в см" + }, + "featureTELEMETRY": { + "message": "Вивід телеметрії" + }, + "featureTELEMETRYTip": { + "message": "Увімкнути надсилання телеметрії на передавач" + }, + "feature3D": { + "message": "3D-режим (для використання з реверсивними ESC)" + }, + "feature3DTip": { + "message": "Увімкнути 3D-режим для використання з реверсивними електронними контролерами швидкості, налаштуйте на вкладці Двигуни" + }, + "featureRX_PARALLEL_PWM": { + "message": "PWM (один дріт на канал)" + }, + "featureRX_MSP": { + "message": "MSP (керування через порт MSP)" + }, + "featureRSSI_ADC": { + "message": "Аналоговий RSSI вхід" + }, + "featureLED_STRIP": { + "message": "Підтримка багатоколірної RGB LED стрічки" + }, + "featureLED_STRIPTip": { + "message": "Увімкнути підтримку багатоколірної LED стрічки RGB, налаштуйте на вкладці LED стрічка" + }, + "featureDISPLAY": { + "message": "OLED Дисплей" + }, + "featureDISPLAYTip": { + "message": "Якщо ця функція увімкнена, і жоден пристрій відображення не підключений (або пристрій відображення не увімкнено), то при кожному перезавантаженні польотного контролера буде затримка приблизно на 10 секунд." + }, + "featureOSD": { + "message": "Наекранне меню" + }, + "featureOSDTip": { + "message": "Увімкнути наекранне меню, налаштуйте на вкладці Наекранне меню" + }, + "featureCHANNEL_FORWARDING": { + "message": "Перенаправляти AUX канали на серво виходи" + }, + "featureTRANSPONDER": { + "message": "Перегоновий транспондер" + }, + "featureTRANSPONDERTip": { + "message": "Налаштуйте на вкладці Перегоновий транспондер після включення." + }, + "featureAIRMODE": { + "message": "Увімкнути AIR режим перманентно" + }, + "featureRX_SPI": { + "message": "SPI Rx (напр., вбудований Rx)" + }, + "featureESC_SENSOR": { + "message": "Використовуйте KISS/BLHeli_32 ESC телеметрію через окремий кабель" + }, + "featureANTI_GRAVITY": { + "message": "Постійно увімкнена" + }, + "featureANTI_GRAVITYTip": { + "message": "Якщо це вимкнено, режим «АНТИГРАВІТАЦІЯ» можна використовувати для ввімкнення Антигравітації за допомогою перемикача." + }, + "featureDYNAMIC_FILTER": { + "message": "Динамічна фільтрація гіроскопа" + }, + "configurationFeatureEnabled": { + "message": "Увімкнено" + }, + "configurationFeatureName": { + "message": "Функція" + }, + "configurationFeatureDescription": { + "message": "Опис" + }, + "configurationMixer": { + "message": "Мікшер" + }, + "configurationFeatures": { + "message": "Інші функції" + }, + "configurationReceiver": { + "message": "Приймач" + }, + "configurationReceiverMode": { + "message": "Режим приймача" + }, + "configurationTelemetry": { + "message": "Телеметрія" + }, + "configurationTelemetryHelp": { + "message": "Виведення телеметрії з приймача" + }, + "configurationRSSI": { + "message": "RSSI (Сила сигналу)" + }, + "configurationRSSIHelp": { + "message": "Індикатор рівня потужності отриманого сигналу (RSSI) - це вимірювання рівня сигналу, і він дуже зручний, щоб ви знали, коли ваше повітряне судно виходить за межі діапазону або зазнає радіочастотних перешкод." + }, + "configurationEscFeatures": { + "message": "Функції ESC/двигуна" + }, + "configurationFeaturesHelp": { + "message": "Примітка: Не всі комбінації функцій є дійсними. Коли прошивка польотного контролера виявляє недійсні комбінації, конфліктуючі функції будуть вимкнені.
    Примітка: Налаштуйте серійні порти перед активацією функцій, які будуть використовувати ці порти." + }, + "configurationSerialRXHelp": { + "message": "• UART для приймача має бути встановлено на «Послідовний Rx» (на вкладці Порти)
    • Виберіть правильний формат даних у випадаючому списку нижче:" + }, + "configurationSpiRxHelp": { + "message": "Примітка: Провайдер SPI RX працюватиме, лише якщо необхідне обладнання є на платі або підключене до шини SPI." + }, + "configurationOtherFeaturesHelp": { + "message": "Примітка: Не всі функції підтримуються всіма польотними контролерами. Якщо ви включили певну функцію і після натискання кнопки «Зберегти та перезавантажити» вона вимкнулася, це означає, що ця функція не підтримується вашою платою." + }, + "configurationBoardAlignment": { + "message": "Вирівнювання плати та датчиків" + }, + "configurationBoardAlignmentRoll": { + "message": "Крен, градусів" + }, + "configurationBoardAlignmentPitch": { + "message": "Тангаж, градусів" + }, + "configurationBoardAlignmentYaw": { + "message": "Рискання, градусів" + }, + "configurationSensorAlignmentGyro": { + "message": "Вирівнювання гіроскопа" + }, + "configurationSensorGyroToUse": { + "message": "Гіроскоп/Акселерометр" + }, + "configurationSensorGyroToUseNotFound": { + "message": "Попередження: Не знайдено жодного гіроскопа/акселерометра" + }, + "configurationSensorGyroToUseFirst": { + "message": "Перший" + }, + "configurationSensorGyroToUseSecond": { + "message": "Другий" + }, + "configurationSensorGyroToUseBoth": { + "message": "Обидва" + }, + "configurationSensorAlignmentGyro1": { + "message": "Перший гіроскоп" + }, + "configurationSensorAlignmentGyro2": { + "message": "Другий гіроскоп" + }, + "configurationSensorAlignmentAcc": { + "message": "Вирівнювання акселерометра" + }, + "configurationSensorAlignmentMag": { + "message": "Вирівнювання магнітометра" + }, + "configurationSensorAlignmentDefaultOption": { + "message": "За замовчуванням" + }, + "configurationAccelTrims": { + "message": "Корекція акселерометра" + }, + "configurationAccelTrimRoll": { + "message": "Корекція акселерометра по крену" + }, + "configurationAccelTrimPitch": { + "message": "Корекція акселерометра по тангажу" + }, + "configurationArming": { + "message": "Взведення" + }, + "configurationArmingHelp": { + "message": "Для деяких опцій взведення може знадобитися ввімкнений акселерометр" + }, + "configurationReverseMotorSwitch": { + "message": "Напрямок двигуна змінено на протилежний" + }, + "configurationReverseMotorSwitchHelp": { + "message": "Ця опція налаштовує мікшер очікувати, що двигун буде обертатись в протилежний бік і пропелери будуть орієнтовані відповідно. Попередження: Це не змінює напрямок руху двигуна. Для цього скористайтеся інструментом конфігурації для вашого електронного контролера швидкості (анг. - ESC) або переключіть дроти між ESC та двигуном. Також переконайтеся, що з вимкненими пропелерами ваші двигуни обертаються у напрямках, показаних на схемі вище, перш ніж намагатися взвести." + }, + "configurationAutoDisarmDelay": { + "message": "Охолостити двигуни після заданої затримки [seconds] (Потребує функцію MOTOR_STOP)" + }, + "configurationDisarmKillSwitch": { + "message": "Охолостити двигуни незалежно від значення тяги (Коли ARM налаштовано у вкладці Режими через AUX-канал)" + }, + "configurationDisarmKillSwitchHelp": { + "message": "Взведення завжди заборонено, коли тага не мінімальна. Будьте обережні, оскільки ви можете випадково охолостити перемикачем під час польоту, коли ця опція увімкнена." + }, + "configurationDigitalIdlePercent": { + "message": "% тяги на холостому ходу (статичний)" + }, + "configurationDigitalIdlePercentDisabled": { + "message": "Динамічний холостий хід активний на {{dynamicIdle}} об/хв. Дивіться вкладку налаштування PID." + }, + "configurationDigitalIdlePercentHelp": { + "message": "Значення \"Відсоток тяги холостого ходу (статичний)\" - це відсоток від максимальної тяги, який надсилається до ESC, коли тяга знаходиться в мінімальному положенні і апарат взведений.

    Збільште це значення, щоб отримати більшу швидкість на холостому ходу та уникнути десинхронізації. Занадто високе значення - апарат відчувається плаваючим. Занадто низьке значення - двигуни можуть розсинхронізуватися або повільно запускатися.

    У 4.3, коли активовано режим динамічного холостого ходу, статичне значення холостого ходу ігнорується, оскільки значення холостого ходу постійно регулюється для підтримки налаштованих мінімальних обертів на найповільнішому двигуні." + }, + "configurationMotorPoles": { + "message": "Полюси двигуна", + "description": "One of the fields of the ESC/Motor configuration" + }, + "configurationMotorPolesLong": { + "message": "$t(configurationMotorPoles.message) (кількість магнітів на корпусі двигуна)", + "description": "One of the fields of the ESC/Motor configuration" + }, + "configurationMotorPolesHelp": { + "message": "Кількість полюсів - це кількість магнітів на дзвоні двигуна. НЕ рахуйте статори, де розташовані обмотки. 5-дюймові двигуни зазвичай мають 14 магнітів, 3-дюймові або менші часто мають 12 магнітів.", + "description": "Help text for the Motor poles field of the ESC/Motor configuration" + }, + "configurationThrottleMinimum": { + "message": "Мінімальна тяга (найнижче значення ESC коли заживлено)" + }, + "configurationThrottleMinimumHelp": { + "message": "Це значення \"холостого ходу\", яке надсилається до ESC, коли апарат взведений, а стік тяги знаходиться в мінімальному положенні. Збільште значення, щоб отримати більшу швидкість на холостому ходу. Також збільшуйте значення у випадку десинхронізації!" + }, + "configurationThrottleMaximum": { + "message": "Максимальна тяга (найвище значення ESC коли взведений)" + }, + "configurationThrottleMinimumCommand": { + "message": "Мінімальна команда (значення ESC коли охолощений)" + }, + "configurationThrottleMinimumCommandHelp": { + "message": "Це значення, яке надсилається на ESC, коли апарат охолощено. Встановіть значення, при якому двигуни зупиняються (1000 для більшості ESC)." + }, + "configurationEscProtocolDisabled": { + "message": "Будь ласка, виберіть протокол виходу двигуна, що відповідає вашим ESC. $t(escProtocolDisabledMessage.message)" + }, + "escProtocolDisabledMessage": { + "message": "Попередження: Вибір протоколу виходу двигуна, який не підтримується вашими ESC, може призвести до того, що ESC запустить двигуни, щойно буде підключено акумулятор. Тому завжди знімайте пропелери перед першим підключенням акумулятора після зміни протоколу виходу двигуна." + }, + "configurationDshotBeeper": { + "message": "Конфігурація Dshot маячка" + }, + "configurationUseDshotBeeper": { + "message": "Використовуйте Dshot маячок (використовуйте двигуни, щоб видавати звукові сигнали коли охолощений)" + }, + "configurationDshotBeaconTone": { + "message": "Тон маячка" + }, + "configurationDshotBeaconHelp": { + "message": "Dshot маячок використовує ESC і двигуни для створення звуку. Це означає, що маячок Dshot не можна використовувати, коли двигуни обертаються. У Betaflight 3.4 і новіших версіях, коли взведення відбувається при активному Dshot маячку, після останнього звукового сигналу Dshot маячка є затримка у 2 секунди, перш ніж апарат буде взведено. Це зроблено для того, щоб функціонал Dshot маячка не заважав командам Dshot, що надсилаються під час взведення.
    Попередження: Оскільки Dshot маячок пропускає струм через двигуни, коли він активний, це може призвести до надмірного виділення тепла та пошкодження двигунів та/або ESC, якщо потужність маячка встановлена занадто високою. Використовуйте BLHeli Configurator або BLHeli Suite для налаштування та тестування потужності маяка." + }, + "configurationBeeper": { + "message": "Конфігурація звукового сигналу" + }, + "beeperGYRO_CALIBRATED": { + "message": "Звуковий сигнал, коли гіроскоп відкалібровано" + }, + "beeperRX_LOST": { + "message": "Звуковий сигнал, коли передавач вимкнено або втрачено сигнал (повторюється, доки проблема не вирішиться)" + }, + "beeperRX_LOST_LANDING": { + "message": "Звуковий сигнал SOS при взведенні з вимкненим приймачем або при втраті сигналу (автопосадка/автоохолощення)" + }, + "beeperDISARMING": { + "message": "Звуковий сигнал під час охолощення польотного контролера" + }, + "beeperARMING": { + "message": "Звуковий сигнал під час взведення польотного контролера" + }, + "beeperARMING_GPS_FIX": { + "message": "Спеціальний звуковий сигнал коли при взведенні плати GPS вже отримав координати" + }, + "beeperBAT_CRIT_LOW": { + "message": "Триваліший попереджувальний звуковий сигнал, коли акумулятор критично розряджений (повторюється)" + }, + "beeperBAT_LOW": { + "message": "Попереджувальні звукові сигнали коли рівень заряду батареї низький (повторюються)" + }, + "beeperGPS_STATUS": { + "message": "Кількість звукових сигналів вказує на кількість знайдених GPS-супутників" + }, + "beeperRX_SET": { + "message": "Звуковий сигнал, коли допоміжний канал налаштовано на подачу звукового сигналу" + }, + "beeperACC_CALIBRATION": { + "message": "Калібрування акселерометра в польоті завершено успішно" + }, + "beeperACC_CALIBRATION_FAIL": { + "message": "Калібрування акселерометра в польоті не вдалося" + }, + "beeperREADY_BEEP": { + "message": "Звучить сигнал, коли GPS отримав координати і готовий до роботи" + }, + "beeperDISARM_REPEAT": { + "message": "Звуковий сигнал лунає, коли стіки знаходяться в положенні охолощення" + }, + "beeperARMED": { + "message": "Попереджувальний звуковий сигнал, коли плата взведена з вимкненими двигунами на холостому ходу (повторюється, доки плата не буде охолощена або не буде збільшено тягу)" + }, + "beeperSYSTEM_INIT": { + "message": "Звуковий сигнал ініціалізації після заживлення плати" + }, + "beeperUSB": { + "message": "Звуковий сигнал, коли польотний контролер живиться від USB. Вимкніть цю опцію, якщо не хочете, щоб звуковий сигнал був увімкнений, коли ви працюєте з дроном на столі" + }, + "beeperBLACKBOX_ERASE": { + "message": "Звуковий сигнал після завершення стирання чорної скриньки" + }, + "beeperCRASH_FLIP": { + "message": "Звуковий сигнал, коли активний режим аварійного перевертання" + }, + "beeperCAM_CONNECTION_OPEN": { + "message": "Звуковий сигнал коли під'єднано камеру з 5-клавішним керуванням" + }, + "beeperCAM_CONNECTION_CLOSE": { + "message": "Звуковий сигнал коли від'єднано камеру з 5-клавішним керуванням" + }, + "beeperRC_SMOOTHING_INIT_FAIL": { + "message": "Звуковий сигнал при взведенні, коли згладжування команд пульта не ініціалізувало фільтри" + }, + "configuration3d": { + "message": "3D Функції ESC/двигуна" + }, + "configuration3dDeadbandLow": { + "message": "Нижня зона нечутливості 3D" + }, + "configuration3dDeadbandHigh": { + "message": "Верхня зона нечутливості 3D" + }, + "configuration3dNeutral": { + "message": "Нейтраль 3D" + }, + "configuration3dDeadbandThrottle": { + "message": "Мертва зона тяги в 3D" + }, + "configurationSystem": { + "message": "Конфігурація системи" + }, + "configurationLoopTime": { + "message": "Час циклу польотного контролера" + }, + "configurationCalculatedCyclesSec": { + "message": "Цикли/сек [Hz]" + }, + "configurationSpeedGyroNoGyro": { + "message": "Немає гіроскопа", + "description": "When no gyro is configured this appears in place of the speed of the gyro in kHz" + }, + "configurationSpeedPidNoGyro": { + "message": "Гіроскоп / {{value}}", + "description": "When no gyro is configured this appears in place of the speed of the PID in kHz. Try to keep it short." + }, + "configurationKHzUnitLabel": { + "message": "{{value}} kHz", + "description": "Value for some options that show the speed of gyro, pid, etc. in kHz" + }, + "configurationLoopTimeHelp": { + "message": "Примітка: Переконайтеся, що ваш FC може працювати на цих швидкостях! Перевірте стабільність ЦП та часу циклу. Зміна цих параметрів може вимагати переналаштування PID. Порада: Вимкніть акселерометр та інші датчики, щоб отримати більшу продуктивність." + }, + "configurationGPS": { + "message": "Конфігурація GPS" + }, + "configurationGPSHelp": { + "message": "Налаштуйте протокол для пристрою GPS (не забудьте налаштувати порт на вкладці «Порти»), використовуйте автоматичні налаштування (або вкажіть швидкість на вкладці «Порти») та інші параметри", + "description": "Help text GPS configuration" + }, + "configurationGPSProtocol": { + "message": "Протокол" + }, + "configurationGPSBaudrate": { + "message": "Швидкість передачі даних" + }, + "configurationGPSubxSbas": { + "message": "Тип наземної допомоги" + }, + "configurationGPSAutoBaud": { + "message": "Автоматична швидкість" + }, + "configurationGPSAutoConfig": { + "message": "Автоконфігурація" + }, + "configurationGPSGalileo": { + "message": "Використовувати Galileo", + "description": "Option to use Galileo in the GPS configuration" + }, + "configurationGPSGalileoHelp": { + "message": "Якщо цю функцію увімкнено, GPS-модуль також відстежує супутникову систему Galileo, що зазвичай призводить до збільшення кількості доступних супутників. У Betaflight 4.2.x або більш ранніх версіях ця функція також вимикає систему доповнення QZSS.", + "description": "Help text for the option to use Galileo in the GPS configuration" + }, + "configurationGPSHomeOnce": { + "message": "Встановити домашню точку один раз", + "description": "Option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" + }, + "configurationGPSHomeOnceHelp": { + "message": "Якщо увімкнено, лише перше взведення після підключення батареї буде використовуватися як домашня точка. Якщо не ввімкнено, щоразу, коли квадрокоптер взводиться, домашня точка буде оновлюватися.", + "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" + }, + "configurationSerialRX": { + "message": "Постачальник послідовного приймача" + }, + "configurationSpiRX": { + "message": "Постачальник приймача на шині SPI" + }, + "configurationEepromSaved": { + "message": "EEPROM збережено" + }, + "configurationButtonSave": { + "message": "Зберегти та перезавантажити" + }, + "dialogDynFiltersChangeTitle": { + "message": "Зміна значення динамічного режекторного фільтра" + }, + "dialogDynFiltersChangeNote": { + "message": "УВАГА: Ця зміна увімкне/вимкне фільтрацію RPM, збільшивши/зменшивши затримку/ефективність фільтрації.

    Скинути динамічні режекторні фільтри до рекомендованих значень?" + }, + "portsIdentifier": { + "message": "Ідентифікатор" + }, + "portsConfiguration": { + "message": "Конфігурація/MSP" + }, + "portsSerialRx": { + "message": "Послідовний Rx" + }, + "portsSensorIn": { + "message": "Вхід датчика" + }, + "portsTelemetryOut": { + "message": "Вихід телеметрії" + }, + "portsPeripherals": { + "message": "Периферія" + }, + "portsHelp": { + "message": "Примітка: не всі комбінації є допустимими. Коли прошивка польотного контролера виявляє це, конфігурація послідовного порту буде скинута." + }, + "portsVtxTableNotSet": { + "message": "ПОПЕРЕДЖЕННЯ: Таблицю відеопередавача було налаштовано неправильно, а без неї керування відеопередавачем буде неможливим. Будь ласка, налаштуйте таблицю відеопередавача у вкладці $t(tabVtx.message)." + }, + "portsMSPHelp": { + "message": "Примітка: НЕ вимикайте MSP на першому послідовному порту, якщо не знаєте, що робите. Якщо ви це зробите, можливо, вам доведеться перепрошити та стерти конфігурацію." + }, + "portsFirmwareUpgradeRequired": { + "message": "Потрібно оновити прошивку. Конфігурації послідовного порту прошивки < 1.8.0 не підтримується." + }, + "portsButtonSave": { + "message": "Зберегти та перезавантажити" + }, + "portsTelemetryDisabled": { + "message": "Вимкнено" + }, + "portsFunction_MSP": { + "message": "MSP" + }, + "portsFunction_GPS": { + "message": "GPS" + }, + "portsFunction_TELEMETRY_FRSKY": { + "message": "FrSky" + }, + "portsFunction_TELEMETRY_HOTT": { + "message": "HoTT" + }, + "portsFunction_TELEMETRY_LTM": { + "message": "LTM" + }, + "portsFunction_TELEMETRY_MAVLINK": { + "message": "MAVLink" + }, + "portsFunction_TELEMETRY_MSP": { + "message": "MSP" + }, + "portsFunction_TELEMETRY_SMARTPORT": { + "message": "SmartPort" + }, + "portsFunction_TELEMETRY_IBUS": { + "message": "iBUS" + }, + "portsFunction_TELEMETRY_JETIXBUS": { + "message": "JETIXBUS" + }, + "portsFunction_TELEMETRY_CRSF": { + "message": "CRSF" + }, + "portsFunction_TELEMETRY_SRXL": { + "message": "SRXL" + }, + "portsFunction_ESC_SENSOR": { + "message": "ESC" + }, + "portsFunction_RX_SERIAL": { + "message": "Serial RX" + }, + "portsFunction_BLACKBOX": { + "message": "Журналювання чорної скриньки" + }, + "portsFunction_TBS_SMARTAUDIO": { + "message": "VTX (TBS SmartAudio)" + }, + "portsFunction_IRC_TRAMP": { + "message": "VTX (IRC Tramp)" + }, + "portsFunction_RUNCAM_DEVICE_CONTROL": { + "message": "Камера (RunCam Protocol)" + }, + "portsFunction_FRSKY_OSD": { + "message": "Наекранне меню (FrSky)" + }, + "portsFunction_VTX_MSP": { + "message": "VTX (MSP + Displayport)" + }, + "pidTuningProfileOption": { + "message": "Профіль $1" + }, + "pidTuningRateProfileOption": { + "message": "Rateprofile $1" + }, + "portsFunction_LIDAR_TF": { + "message": "Benewake LIDAR" + }, + "pidTuningUpgradeFirmwareToChangePidController": { + "message": "Зміна контролера PID вимкнена - це можна змінити через командний рядок. Ви маєте прошивку з версією API $1, але для цієї функціональності потрібна версія $2." + }, + "pidTuningSubTabPid": { + "message": "Налаштування профілю PID" + }, + "pidTuningSubTabRates": { + "message": "Налаштування Rateprofile" + }, + "pidTuningSubTabFilter": { + "message": "Налаштування фільтру" + }, + "pidProfileName": { + "message": "Назва профілю PID" + }, + "pidProfileNameHelp": { + "message": "Назва PID-профілю, яка може описувати, для яких умов цей профіль було налаштовано: легший/важчий акумулятор, екшн-камера/без екшн-камери, більша висота над рівнем моря тощо." + }, + "rateProfileName": { + "message": "Назва Rate-профілю" + }, + "rateProfileNameHelp": { + "message": "Назва Rate-профілю де можна описати, для якого типу польотів призначений цей профіль: кіно, перегони, фрістайл тощо." + }, + "pidTuningShowAllPids": { + "message": "Показати всі PID" + }, + "pidTuningHideUnusedPids": { + "message": "Приховати невикористані PID" + }, + "pidTuningNonProfilePidSettings": { + "message": "Налаштування контролера PID, незалежні від профілю" + }, + "pidTuningAntiGravity": { + "message": "Антигравітація" + }, + "pidTuningAntiGravityMode": { + "message": "Режим", + "description": "Anti Gravity mode selection parameter" + }, + "pidTuningAntiGravityModeOptionSmooth": { + "message": "Плавний", + "description": "One of the modes of anti gravity" + }, + "pidTuningAntiGravityModeOptionStep": { + "message": "Сходинками", + "description": "One of the modes of anti gravity" + }, + "pidTuningAntiGravityGain": { + "message": "Підсилення", + "description": "Anti Gravity Gain Parameter" + }, + "pidTuningAntiGravityGainHelp": { + "message": "Підвищення І-коефіцієнта і збільшення П-коефіцієнта під час швидкої зміни тяги.

    8.0 означає приблизно 8-кратне підвищення І-коефіцієнта", + "description": "Anti Gravity Gain Parameter Help Icon" + }, + "pidTuningAntiGravityThres": { + "message": "Поріг", + "description": "Anti Gravity Threshold Parameter" + }, + "pidTuningAntiGravityHelp": { + "message": "Антигравітація підсилює значення I (і, у версії 4.3, також P) під час швидких змін тяги, збільшуючи стійкість положення висоти під час швидких збільшень тяги.

    Високі значення коефіцієнтів можуть покращити стійкість машин з низькою керованістю або тих, що мають зміщений центр тяжіння." + }, + "pidTuningDMin": { + "message": "Диференціальна", + "description": "Table header of the D Min feature in the PIDs tab" + }, + "pidTuningDMinDisabledNote": { + "message": "Примітка: Функцію Д Макс вимкнено, а її параметри приховано. Для використання Д Макс, будь ласка, увімкніть її у $t(pidTuningPidSettings.message)." + }, + "pidTuningDMinFeatureTitle": { + "message": "Налаштування динамічного демпфування / Д Макс", + "description": "Title for the options panel for the D Max feature" + }, + "pidTuningDMaxSettingTitle": { + "message": "Динамічне
    Демпфування", + "description": "Sidebar title for the options panel for the D Max feature" + }, + "pidTuningDMinGain": { + "message": "Посилення", + "description": "Gain of the D Max feature" + }, + "pidTuningDMaxGainHelp": { + "message": "Посилення Д Макс збільшує чутливість системи, що збільшує Д, коли квадрокоптер швидко повертається або тремтить у потоці повітря від пропелерів (propwash).

    Вищі значення посилення підвищують Д швидше, ніж нижчі значення, піднімаючи Д ближче до Д Макс. Значення 40 або навіть 50 можуть працювати добре для чистих фрістайл-збірок.

    Нижчі значення не піднімають Д до Д Макс, окрім швидких рухів, і можуть бути кращими для гоночних налаштувань, зменшуючи запізнення Д.

    ПОПЕРЕДЖЕННЯ: Одне зі значень Посилення або Випередження повинно бути встановлене вище 20, інакше Д-коефіцієнт не збільшуватиметься, як це потрібно. Встановлення обох параметрів на нуль заблокує значення Д на базовому рівні.", + "description": "D Max feature helpicon message" + }, + "pidTuningDMinAdvance": { + "message": "Випередження", + "description": "Advance of the D Max feature" + }, + "pidTuningDMaxAdvanceHelp": { + "message": "\"Випередження Д Макс\" додає чутливість до коефіцієнта посилення при швидкому переміщенні стіків.

    Випередження не реагує на гіроскоп або propwash. Воно діє раніше, ніж коефіцієнт посилення, і іноді корисне для квадрокоптерів з низькою керованістю, які мають тенденцію реагувати з великою затримкою на початку маневру.

    Зазвичай його краще залишити на нулі.

    ПОПЕРЕДЖЕННЯ: Або Випередження, або Посилення повинні бути встановлені вище, приблизно 20, інакше Д не буде збільшуватися належним чином. Встановлення обох параметрів на нуль зафіксує Д на базовому значенні.", + "description": "D Max feature helpicon message" + }, + "pidTuningDMinFeatureHelp": { + "message": "Д Макс збільшує Д під час швидких рухів гіроскопа та/або стіків.

    Коефіцієнт \"Посилення\" збільшує Д, коли квадрокоптер швидко повертається або трясеться в потоці повітря пропелерів (propwash). Зазвичай потрібне тільки \"Посилення\".

    Коефіцієнт \"Випередження\" збільшує Д до Д Макс під час рухів стіками. Зазвичай він не потрібен і повинен бути встановлений на нуль. Випередження може бути корисним для квадрокоптерів з низькою керованістю, які мають тенденцію до сильного перельоту.

    Вищі значення Посилення (наприклад, 40) можуть бути більш придатними для фрістайлу, оскільки легше піднімають Д.

    ПОПЕРЕДЖЕННЯ: Одне з Посилення або Випередження повинно бути встановлене вище, приблизно 20, інакше Д не буде збільшуватися належним чином. Встановлення обох параметрів на нуль зафіксує Д на базовому значенні.", + "description": "D Max feature helpicon message" + }, + "pidTuningDMinHelp": { + "message": "Базове демпфування БУДЬ-ЯКОГО руху апарата.

    Протидіє руху, спричиненому командами стіків або зовнішніми впливами (наприклад, турбулентністю пропелера або поривами вітру).

    Вищі коефіцієнти підсилення D Min забезпечують більшу стабільність і зменшують перельот.

    D посилює шум (збільшує від 10 до 100 разів). Це може призвести до перегорання двигунів, якщо коефіцієнт підсилення занадто високий або D погано відфільтрований.

    Компонент D трохи схожий на амортизатор у вашому автомобілі.", + "description": "Derivative helpicon message on PID table titlebar" + }, + "pidTuningPidSettings": { + "message": "Налаштування PID контролера" + }, + "pidTuningMotorSettings": { + "message": "Налаштування тяги та моторів" + }, + "pidTuningMiscSettings": { + "message": "Інші налаштування" + }, + "receiverRcSmoothing": { + "message": "Згладжування команд пульта" + }, + "receiverRcSmoothingAuto": { + "message": "Автоматичний" + }, + "receiverRcSmoothingManual": { + "message": "Ручний" + }, + "receiverRcSmoothingAutoFactor": { + "message": "Автоматичний коефіцієнт", + "description": "Auto Factor parameter for RC smoothing" + }, + "receiverRcSmoothingAutoFactorHelp": { + "message": "Налаштовує обчислення автоматичного коефіцієнта, за замовчуванням 10 - це співвідношення коефіцієнта до затримки. Збільшення цього значення призведе до більшого згладжування команд від пульта, водночас збільшуючи затримку. Це може бути корисно для ненадійних з'єднань з пультом або для кінематографічного польоту.
    Будьте обережні з числами, що наближаються до 50, затримка на вході стане помітною.
    Використайте команду в командному рядку rc_smoothing_info при увімкнених TX і RX, щоб побачити автоматично розраховані значення відсікання згладжування.", + "description": "Auto Factor parameter help message" + }, + "receiverRcSmoothingAutoFactorHelp2": { + "message": "Налаштовує автоматичне згладжування команд пульта. Значення за замовчуванням - 30. Вищі значення згладжують команди пульта більше - наприклад, 60 для HD фрістайлу або 90-120 для кінематографічного польоту. Примітка: Значення понад 50 спричиняють помітну затримку команд стіків. Менші значення, наприклад, 20-25, передають більше сигналів керування пульта в сигнали мотора, трохи збільшуючи нагрів моторів, але трохи зменшують затримку реакції на команди стіків. Це може бути корисно для перегонів.", + "description": "Auto Factor parameter help message" + }, + "receiverRcFeedforwardTypeSelect": { + "message": "Тип відсікання упередження" + }, + "receiverRcSetpointTypeSelect": { + "message": "Тип відсікання заданого значення" + }, + "receiverRcSmoothingInterpolation": { + "message": "Інтерполяція" + }, + "receiverRcSmoothingFilter": { + "message": "Фільтр" + }, + "receiverRcSmoothingTypeHelp": { + "message": "Тип згладжування команд пульта" + }, + "rcSmoothingSetpointCutoffHelp": { + "message": "Частота відсікання в Гц, що використовується фільтром заданого значення. Використання нижчих значень призведе до більш плавних вхідних сигналів і більше підходить для повільних протоколів приймачів. Більшості користувачів слід залишити цей параметр на 0, що відповідає значенню \"Автоматичний\"." + }, + "rcSmoothingFeedforwardCutoffHelp": { + "message": "Частота відсікання в Гц, що використовується фільтром упередження. Використання нижчих значень призведе до більш плавних вхідних сигналів і більше підходить для повільних протоколів приймачів. Більшості користувачів слід залишити цей параметр на 0, що відповідає значенню \"Автоматичний\"." + }, + "rcSmoothingChannelsSmoothedHelp": { + "message": "Згладжування каналів застосовується до" + }, + "rcSmoothingFeedforwardTypeHelp": { + "message": "Тип методу фільтрації, який використовується для упередження. Починаючи з версії 4.2 рекомендується використовувати значення за замовчуванням \"Автоматичний\". Для 4.1 та ранніх версій більшість користувачів мають використовувати значення за замовчуванням \"BIQUAD\", оскільки воно забезпечує хороший баланс між згладжуванням та затримкою. \"PT1\" дещо зменшує затримку, але забезпечує менше згладжування." + }, + "rcSmoothingSetpointTypeHelp": { + "message": "Тип методу фільтрації, що використовується для заданого значення. Більшість користувачів мають використовувати значення за замовчуванням \"BIQUAD\", оскільки воно забезпечує хороший баланс між згладжуванням і затримкою. \"PT1\" дещо зменшує затримку, але забезпечує менше згладжування." + }, + "receiverRcSmoothingSetpointManual": { + "message": "Дозволяє вибрати, чи буде частота відсікання фільтра заданого значення автоматично розраховуватися (рекомендовано) або вибиратися користувачем вручну. Використання режиму \"Ручний\" не рекомендується для таких протоколів приймачів, як Crossfire, які можуть змінюватися в польоті." + }, + "receiverRcSmoothingFeedforwardManual": { + "message": "Дозволяє вибрати, чи буде частота відсікання фільтра упередження (анг. - feedforward) автоматично розраховуватися (рекомендовано) або вибиратися користувачем вручну. Використання режиму \"Ручний\" не рекомендується для таких протоколів приймачів, як Crossfire, які можуть змінювати частоту у польоті." + }, + "receiverRcSmoothingSetpointHz": { + "message": "Частота відсікання заданого значення" + }, + "receiverRcSmoothingFeedforwardCutoff": { + "message": "Частота відсікання упередження" + }, + "receiverRcSetpointType": { + "message": "Тип фільтру заданого значення" + }, + "receiverRcFeedforwardType": { + "message": "Тип фільтру упередження" + }, + "receiverRcSmoothingFeedforwardTypeOff": { + "message": "Вимкнено" + }, + "receiverRcSmoothingFeedforwardTypeAuto": { + "message": "Автоматично" + }, + "receiverRcSmoothingChannel": { + "message": "Згладжені канали" + }, + "receiverRcInterpolation": { + "message": "Інтерполяція пульта" + }, + "receiverRcInterpolationHelp": { + "message": "Системи радіокерування (пульт+передавач+приймач) не такі швидкі, як PID контури. Це означає, що PID-контур має прогалини в потоці інформації від пульта. Ця опція дозволяє інтерполяцію входу пульта під час проміжків часу, коли не надходять кадри від пульта. Ця опція також забезпечує чистішу поведінку P і D, оскільки немає стрибкоподібних коливань на вході керування." + }, + "receiverRcInterpolationIntervalHelp": { + "message": "Інтервал інтерполяції для ручного режиму RC інтерполяції в мілісекундах" + }, + "receiverRcInterpolationOff": { + "message": "Вимкнено" + }, + "receiverRcSmoothingType": { + "message": "Тип згладжування" + }, + "receiverRcInterpolationDefault": { + "message": "Попереднє налаштування" + }, + "receiverRcInterpolationAuto": { + "message": "Автоматичний" + }, + "receiverRcInterpolationManual": { + "message": "Ручний" + }, + "receiverRcInterpolationInterval": { + "message": "Інтервал інтерполяції RC [ms]" + }, + "receiverRcSmoothingMode": { + "message": "Режим згладжування" + }, + "pidTuningDtermSetpointTransition": { + "message": "Перехід заданого значення D" + }, + "pidTuningDtermSetpoint": { + "message": "Вага заданого значення D" + }, + "pidTuningDtermSetpointTransitionHelp": { + "message": "Цим параметром можна зменшити вагу заданого значення D біля центру стіків, що призводить до більш плавних фліпів і обертів.
    Значення представляє точку відхилення стіка: 0 - стік в центрі, 1 - повне відхилення. Коли стік знаходиться вище цієї точки, вага заданої точки D залишається постійною на своєму налаштованому значенні. Коли стік знаходиться нижче цієї точки, вага заданої точки D зменшується пропорційно, досягаючи 0 у позиції центру стіка.
    Значення 1 дає максимальний ефект згладжування, тоді як значення 0 тримає вагу заданої точки D фіксованою на своєму налаштованому значенні на всьому діапазоні стіка." + }, + "pidTuningDtermSetpointHelp": { + "message": "Цей параметр визначає ефект прискорення стіку у диференційній складовій.
    Значення 0 відповідає старому Вимірювальному методу, де D відстежує лише гіроскоп, тоді як значення 1 відповідає старому Помилковому методу з рівним співвідношенням відстеження гіроскопа та стіку.
    Менше значення відповідає повільнішому/м'якшому відгуку стіка, тоді як більше значення забезпечує більший відгук на прискорення стіка.
    Зауважте, що інтерполяцію команд пульта рекомендується увімкнути з більшими значеннями, щоб запобігти появі шуму при натисканні на стік керування." + }, + "pidTuningDtermSetpointTransitionWarning": { + "message": "$t(warningTitle.message): Використання переходу D заданого значення більше 0 і менше 0,1 вкрай не рекомендується. Це може призвести до нестабільності та зниження чутливості стіків, коли вони перетинають центральну точку." + }, + "pidTuningFeedforwardGroup": { + "message": "Упередження" + }, + "pidTuningFeedforwardGroupHelp": { + "message": "Упередження (анг. - Feedforward) регулює реакцію стіка.

    Ці опції дають змогу налаштувати його так, щоб забезпечити будь-яку реакцію стіка - від чіткої, миттєвої для перегонів до м'якої і плавної для кінематографічних / HD цілей." + }, + "pidTuningFeedforwardJitter": { + "message": "Зменшувач тремтіння" + }, + "pidTuningFeedforwardJitterHelp": { + "message": "Зменшувач тремтіння, зменшує упередження при повільному русі стіків, незалежно від їх положення.

    Це забезпечує плавний політ без тремтіння при виконанні плавних повільних дуг, але забезпечує повне упередження без затримок при швидкому русі стіків. Перехід не потрібен і повинен бути встановлений на нуль, коли зменшувач тремтіння активний.

    За замовчуванням 7. Вищі значення, наприклад, 10-12, добре підходять для кінематографічного або HD-фрістайлу, 5 може бути краще для перегонів з швидкими RC-каналами." + }, + "pidTuningFeedforwardSmoothFactor": { + "message": "Згладжування" + }, + "pidTuningFeedforwardSmoothnessHelp": { + "message": "Згладжування упередження необхідне для послаблення шуму в результатах дії упередження.

    Найменше значення, яке дає рівну траекторію, є найкращим.

    Значення за замовчуванням 25 добре підходить для RC-каналів 50-150 Гц. Для RC-каналів 250 Гц використовуйте 40-50. Для каналів 500 Гц використовуйте 60-65." + }, + "pidTuningFeedforwardAveraging": { + "message": "Усереднення" + }, + "pidTuningFeedforwardAveragingHelp": { + "message": "Усереднення упередження (анг. Feed forward) бере середнє значення останніх 2 або 3 кроків упередження. Це згладжує результат дії упередження, але додає деяку затримку.

    Це найбільш ефективно, коли в сигналі є послідовне тремтіння вгору/вниз, що часто трапляється з швидшими RC-каналами.

    2-точкове усереднення потрібне для каналів 500 Гц і шумних 250 Гц, або для кінематографічного / HD польоту. Crossfire (до CRSFShot) потребує 3-точкового усереднення в режимі 150 Гц." + }, + "pidTuningOptionOff": { + "message": "ВИМК" + }, + "pidTuningOptionOn": { + "message": "УВІМК" + }, + "pidTuningFeedforwardAveragingOption2Point": { + "message": "На основі 2 точок" + }, + "pidTuningFeedforwardAveragingOption3Point": { + "message": "На основі 3-ох точок" + }, + "pidTuningFeedforwardAveragingOption4Point": { + "message": "На основі 4-ох точок" + }, + "pidTuningFeedforwardBoost": { + "message": "Підвищення" + }, + "pidTuningFeedforwardBoostHelp": { + "message": "Підвищувач або бустер \"упередження\" додає додаткове збільшення у відповідь на прискорення або сповільнення стіка.

    Це мінімізує затримку гіроскопа, яка виникає внаслідок затримки прискорення двигуна, та зменшує перельот при сильній затримці двигунів.

    Стандартне підсилення підходить для більшості налаштувань. Гонщики можуть забажати трохи збільшити його. Підсилювач упередження можна налаштувати при уважному аналізі журналів." + }, + "pidTuningFeedforwardMaxRateLimit": { + "message": "Ліміт макс. коефіцієнта" + }, + "pidTuningFeedforwardMaxRateLimitHelp": { + "message": "Скорочує упередження, коли стіки рухаються до максимального відхилення, щоб мінімізувати перельот на початку сальто або оберту.

    Під час закінчення сальто чи оберту не виконує жодних дій. Менші значення призводять до того, що загасання починається раніше.

    Зазвичай це значення не потребує змін. Найвище значення, що забезпечує прийнятний перельот на початку обертів чи сальто, є найкращим." + }, + "pidTuningFeedforwardTransition": { + "message": "Перехід" + }, + "pidTuningFeedforwardTransitionHelp": { + "message": "Лінійно зменшує \"упередження\", коли стіки близькі до центру.

    У версії 4.2 та раніше, можна використовувати \"transition\" (перехід), щоб забезпечити більш плавні відповіді стіків навколо центрального положення.

    У версії 4.3 не рекомендується використовувати \"transition\" (перехід), оскільки він був \"замінений\" функцією зниження тремтіння (jitter reduction function).

    Значення 0 вимикає перехід. Значення 0.3 знижує упередження до нуля, коли стіки знаходяться у центральному положенні, але збільшує його до повного, коли важелі відхиляються від центру на >30%." + }, + "pidTuningProportional": { + "message": "Пропорційна" + }, + "pidTuningProportionalHelp": { + "message": "Наскільки точно апарат слідкує за стіками (за заданим значенням - анг. Setpoint).

    Вищі значення (підсилення) забезпечують більш точне слідкування, але можуть спричинити перельот, якщо вони занадто великі відносно D, і можуть викликати коливання при повній потужності під час поворотів. Подумайте про P як про пружину в автомобілі.", + "description": "Proportional Term helpicon message on PID table titlebar" + }, + "pidTuningIntegral": { + "message": "Інтегральна" + }, + "pidTuningIntegralHelp": { + "message": "Компенсує малі відхилення, які залишаються.

    Подібно до P, але накопичується поступово та повільно, поки помилка не дорівнює нулю. Важливо для довгострокових зміщень, таких як зміщений центр мас, або постійних зовнішніх впливів, таких як вітер.

    Вищі значення надають більш точне слідкування, особливо під час поворотів, але можуть зробити літаючий апарат більш жорстким.

    Може викликати повільні коливання в системах з низькою керованістю або якщо внесок I великий відносно P.", + "description": "Integral Term helpicon message on PID table titlebar" + }, + "pidTuningDerivative": { + "message": "Диференціальна" + }, + "pidTuningDMax": { + "message": "Д Макс." + }, + "pidTuningDMaxHelp": { + "message": "Забезпечує сильніше демпфування для швидких маневрів, які в іншому випадку можуть призвести до перельоту.

    Дозволяє використовувати значення D нижче звичайного мінімального, що допомагає зберігати мотори прохолоднішими і забезпечує швидше виходження на криву, але збільшує D для контролю перельотів в перевертаннях або швидких змінах напрямку.

    Найкорисніше для гонщиків, шумних моделей або систем з низькою керованістю.", + "description": "D Max Term helpicon message on PID table titlebar" + }, + "pidTuningDerivativeHelp": { + "message": "Контролює силу демпфування для БУДЬ-ЯКОГО руху судна. Для рухів стіків, D-коефіцієнт демпфує команди. Для зовнішнього впливу (проп-вош або пориви вітру) D-коефіцієнт демпфує зовнішній вплив.

    Вищі значення коефіцієнта D забезпечують більше демпфування і зменшують перельот від P-коефіцієнта та упередження (Feed Forward).
    Проте, D-коефіцієнт ДУЖЕ чутливий до високочастотних вібрацій гіроскопа (шум збільшується від 10 до 100 разів).

    Високочастотний шум може призвести до нагрівання моторів і їх виходу з ладу, якщо D-коефіцієнти занадто високі або шум гіроскопа не фільтрується належним чином (див. вкладку \"Фільтри\").

    Подумайте про D-коефіцієнт як про амортизатор на вашому автомобілі, але з негативною властивістю підсилювати високочастотний шум гіроскопа.", + "description": "Derivative Term helpicon message on PID table titlebar" + }, + "pidTuningFeedforward": { + "message": "Упередження" + }, + "pidTuningFeedforwardHelp": { + "message": "Упередження - додатковий фактор впливу, що походить виключно від вхідного сигналу джойстика, який допомагає швидко перевести літальний апарат відповідно до швидких рухів стіків.

    Упередження (анг - Feedforward (FF)) не може спричинити коливання, дозволяє використовувати менше значення P для подібної реакції на джойстик, а також компенсує природню протидію D до вхідних сигналів джойстика.

    Низькі або нульові значення призведуть до більш плавної, але більш затриманої реакції на вхідні сигнали стіків.", + "description": "Feedforward Term helpicon message on PID table titlebar" + }, + "pidTuningMaxRateWarning": { + "message": "Попередження: дуже високі швидкості можуть призвести до десинхронізації через швидкі уповільнення." + }, + "pidTuningRcRate": { + "message": "RC коефіцієнт" + }, + "pidTuningMaxVel": { + "message": "Макс. кутова швидкість [⁰/с]" + }, + "pidTuningRate": { + "message": "Коефіцієнт" + }, + "pidTuningSuperRate": { + "message": "Супер коефіцієнт" + }, + "pidTuningRatesPreview": { + "message": "Попередній перегляд коефіцієнтів" + }, + "pidTuningRatesTuningHelp": { + "message": "Коефіцієнти та експоненційність: Визначте відчуття стіків на основі цих параметрів. Використовуйте графік і живу 3D-модель, щоб знайти свої улюблені значення коефіцієнтів." + }, + "pidTuningRcExpo": { + "message": "RC Експонента" + }, + "pidTuningTPAMode": { + "message": "TPA Режим" + }, + "pidTuningTPA": { + "message": "TPA" + }, + "pidTuningTPARate": { + "message": "Коефіцієнт TRA" + }, + "pidTuningTPABreakPoint": { + "message": "TRA точка зупинки" + }, + "pidTuningTPAPD": { + "message": "ПД" + }, + "pidTuningTPAD": { + "message": "Д" + }, + "pidTuningThrottleCurvePreview": { + "message": "Перегляд кривої тяги" + }, + "pidTuningThrottleLimitType": { + "message": "Ліміт тяги" + }, + "pidTuningThrottleLimitPercent": { + "message": "Ліміт тяги %" + }, + "pidTuningThrottleLimitTypeOff": { + "message": "ВИМК" + }, + "pidTuningThrottleLimitTypeScale": { + "message": "ШКАЛА" + }, + "pidTuningThrottleLimitTypeClip": { + "message": "ВІДСІКАННЯ" + }, + "pidTuningThrottleLimitTypeTip": { + "message": "Оберіть тип обмеження тяги. OFF вимикає функцію, SCALE трансформує діапазон тяги від 0 до обраного відсотка використовуючи повний діапазон переміщення стіка, CLIP встановлює максимальний відсоток тяги, а переміщення стіка вище цього значення не матиме додаткового ефекту" + }, + "pidTuningThrottleLimitPercentTip": { + "message": "Встановіть бажаний відсоток обмеження тяги. При встановленні на 100%, функція вимикається." + }, + "pidTuningFilter": { + "message": "Фільтр" + }, + "pidTuningFilterFrequency": { + "message": "Частота" + }, + "pidTuningRatesCurve": { + "message": "Попередній перегляд коефіцієнтів" + }, + "throttle": { + "message": "Тяга" + }, + "pidTuningButtonSave": { + "message": "Зберегти" + }, + "pidTuningButtonRefresh": { + "message": "Оновити" + }, + "pidTuningProfileHead": { + "message": "Профіль" + }, + "pidTuningControllerHead": { + "message": "PID контролер" + }, + "pidTuningCopyProfile": { + "message": "Копіювати профіль" + }, + "pidTuningCopyRateProfile": { + "message": "Копіювати rateprofile" + }, + "dialogCopyProfileText": { + "message": "Копіювати значення з поточного профілю до" + }, + "dialogCopyRateProfileText": { + "message": "Копіювати значення з поточного rateprofile до" + }, + "dialogCopyProfileTitle": { + "message": "Копіювати значення профілю" + }, + "dialogCopyProfileNote": { + "message": "Усі значення в профілі призначення буде витерто та перезаписано" + }, + "dialogCopyProfileConfirm": { + "message": "Копіювати" + }, + "dialogCopyProfileClose": { + "message": "Скасувати" + }, + "pidTuningResetPidProfile": { + "message": "Скинути цей профіль" + }, + "pidTuningPidProfileReset": { + "message": "Завантажені значення за замовчуванням для поточного профілю ПІД." + }, + "pidTuningReceivedProfile": { + "message": "Польотний контролер встановив профіль: $1" + }, + "pidTuningReceivedRateProfile": { + "message": "Польотний контролер встановив Rateprofile: $1" + }, + "pidTuningLoadedProfile": { + "message": "Завантажено профіль: $1" + }, + "pidTuningLoadedRateProfile": { + "message": "Завантажено профіль коефіцієнтів: $1" + }, + "pidTuningDataRefreshed": { + "message": "Дані ПІД оновлено" + }, + "pidTuningEepromSaved": { + "message": "EEPROM збережено" + }, + "tuningHelp": { + "message": "Поради з налаштування
    ВАЖЛИВО: Під час перших польотів важливо перевірити температуру моторів. Чим вище значення фільтра, тим краще він може літати, але ви також отримаєте більше шуму в мотори.
    Оптимальним є значення за замовчуванням 100 Гц, але, для більш шумних збірок, можна спробувати знизити фільтр D-коефіцієнта до 50 Гц і, можливо, також фільтр гіроскопа." + }, + "tuningHelpSliders": { + "message": "Використовуйте повзунки, щоб налаштувати фільтри. Повзунки мають бути вимкнені, щоб вносити зміни вручну.
    Переміщення повзунків праворуч дає вищі граничні значення та може покращити завихрення від пропелерів при різких стрибках потужності (propwash), але пропускатиме більше шуму до моторів, що зробить їх гарячішими.
    Найбільш чисті збірки із фільтрацією обертів добре себе поводять, коли повзунок низьких частот гіроскопа пересунутий сильно праворуч, або якщо активний лише другий фільтр низький частот і повзунки посередині.
    УВАГА: Будьте ДУЖЕ обережні, пересуваючи повзунки Д праворуч! Перевіряйте температуру двигуна після кожної зміни!
    Примітка: Зміна профілів призведе лише до змін параметрів фільтра Д-складової (D-Term). Параметри фільтра гіроскопа лишаються однаковими для всіх профілів.", + "description": "Filter tuning subtab note" + }, + "filterWarning": { + "message": "Попередження: Кількість фільтрації, яку ви використовуєте, є надто низькою і небезпечною. Це може призвести до ускладнення керування апаратом та неконтрольованого польоту. Настійно рекомендується включити принаймні один з фільтрів Динамічний фільтр низьких частот гіроскопа або Фільтр низьких частот гіроскопа 1, та принаймні один з фільтрів D-коефіцієнта: динамічний низьких частот або низьких частот 1." + }, + "pidTuningSliderPidsMode": { + "message": "Режим:", + "description": "Pidtuning slider mode can be OFF, RP or RPY" + }, + "pidTuningSliderModeHelp": { + "message": "Режим налаштування повзунків PID

    Режим налаштування повзунків PID може бути:

    • ВИМК - без повзунків, введення значення вручну
    • RP - повзунки керують лише Креном та Тангажем, значення Рискання вводиться вручну
    • RPY - повзунки керують усіма значеннями PID

    Увага: Перехід з режиму RP до режиму RPY перезаписує налаштування Рискання на налаштування прошивки." + }, + "receiverHelp": { + "message": "• Завжди перевіряйте, чи працює Безварійність належним чином! Налаштування знаходяться на вкладці Безаварійність, яка вимагає експертного режиму.
    Використовуйте останню версію прошивки Tx!
    Вимкніть апаратний фільтр ADC у передавачі, якщо ви використовуєте OpenTx або EdgeTx.
    Базові налаштування: Правильно налаштуйте параметри \"Приймача\". Виберіть правильну \"Схему каналів\" для вашого радіо. Перевірте, чи правильно рухаються гістограми крену, тангажу та інші. Налаштуйте значення кінцевої точки каналу або діапазону в передавачі на ~1000 - ~2000 і встановіть середню точку на 1500. Для отримання додаткової інформації прочитайте документацію." + }, + "receiverThrottleMid": { + "message": "Середня точка тяги" + }, + "receiverThrottleExpo": { + "message": "Експоненційність тяги" + }, + "receiverStickMin": { + "message": "Поріг мін. значення стіка" + }, + "receiverHelpStickMin": { + "message": "Максимальне значення (в мкс) для розпізнавання стіка як такого, що знаходиться в низькому (низ-верх) або в лівому(ліво-право) положенні для вводу команд (MIN_CHECK)." + }, + "receiverStickCenter": { + "message": "Центр стіка" + }, + "receiverHelpStickCenter": { + "message": "Значення (в мкс) використовується для визначення, чи знаходиться стік в центрі (MID_RC)." + }, + "receiverStickMax": { + "message": "Поріг макс. значення стіка" + }, + "receiverHelpStickMax": { + "message": "Максимальне значення (в мкс) для розпізнавання стіка як такого, що знаходиться в високому (низ-верх) або в правому(ліво-право) положенні для вводу команд (MAX_CHECK)." + }, + "receiverDeadband": { + "message": "Мертва зона пульта" + }, + "receiverHelpDeadband": { + "message": "Ці значення (у мкс) показують, наскільки мають відрізнятись вхідні дані від пульта, перш ніж вони будуть вважатись дійсними. Для передавачів з джитером на виходах це значення можна збільшити, якщо вхідні сигнали тремтять/посмикуються без рухів стіками." + }, + "receiverYawDeadband": { + "message": "Мертва зона рискання" + }, + "receiverHelpYawDeadband": { + "message": "Ці значення (у мікросекундах) показують, наскільки можуть відрізнятись сигнали від пульта, перш ніж вони будуть вважатись дійсними. Для передавачів з тремтінням (джитером) на виходах це значення можна збільшити, якщо вхідні сигнали RC смикаються в простої. Це налаштування стосується тільки руху за рисканням." + }, + "recevier3dDeadbandThrottle": { + "message": "Мертва зона тяги в реж. 3D" + }, + "receiverHelp3dDeadbandThrottle": { + "message": "Це ширини імпульсів в мікросекундах. Для розширення нейтральної зони, збільште значення. Це налаштування лише для тяги в режимі 3D." + }, + "receiverChannelMap": { + "message": "Схема каналів" + }, + "receiverChannelDefaultOption": { + "message": "За замовчуванням" + }, + "receiverChannelMapTitle": { + "message": "Ви можете визначити власну схему каналів, натиснувши в цьому полі" + }, + "receiverRssiChannel": { + "message": "Канал RSSI" + }, + "receiverRssiChannelDisabledOption": { + "message": "Вимкнено" + }, + "receiverRefreshRateTitle": { + "message": "Частота оновлення графіків" + }, + "receiverResetRefreshRate": { + "message": "Скинути" + }, + "receiverResetRefreshRateTitle": { + "message": "Скинути частоту оновлення" + }, + "receiverButtonSave": { + "message": "Зберегти" + }, + "receiverButtonRefresh": { + "message": "Оновити" + }, + "receiverButtonBind": { + "message": "Прив'язати приймач" + }, + "receiverButtonBindMessage": { + "message": "Запит на біндування відправлено на польотний контролер." + }, + "receiverButtonBindingPhrase": { + "message": "Кодова фраза для з'єднання" + }, + "receiverButtonSticks": { + "message": "Емулятор радіо", + "description": "Button that opens a window with a radio emulator on the receiver tab. Actually only enabled for MSP protocol" + }, + "receiverDataRefreshed": { + "message": "Дані для тюнінгу пульта оновлено" + }, + "receiverEepromSaved": { + "message": "EEPROM збережено" + }, + "receiverModelPreview": { + "message": "Попередній перегляд" + }, + "receiverMspWarningText": { + "message": "Ці стіки дозволяють взвести Betaflight та тестувати без наявності передавача чи приймача. Однак ця функція не призначена для польоту, тому пропелери не мають бути підключеними.

    Ця функція не гарантує надійного керування вашим апаратом. Якщо пропелери залишити, це може призвести до серйозних травм." + }, + "receiverMspEnableButton": { + "message": "Увімкнути керування" + }, + "auxiliaryHelp": { + "message": "Налаштуйте режими тут, використовуючи комбінацію діапазонів і/або посилань на інші режими (посилання підтримуються в BF 4.0 і пізніших версіях). Використовуйте діапазони, щоб налаштувати перемикачі на вашому передавачі та відповідні призначення режимів. Канал приймача, який отримує показання в діапазоні між мін./макс., активує режим. Використовуйте посилання, щоб активувати режим, коли активовано інший режим. Винятки: ARM(взведення) не можна зв’язати з іншими режимами, режими не можна зв’язати з іншими режимами, налаштованими за допомогою посилання (ланцюгові посилання не підтримуються). Для активації будь-якого режиму можна використовувати кілька діапазонів/посилань. Якщо для режиму визначено більше одного діапазону/посилання, для кожного з них можна встановити логіку AND(логічне І) або OR(логічне АБО). Режим буде активовано, коли:
    - ВСІ AND(І) діапазони/посилання активні; АБО
    - принаймні один діапазон/посилання OR(АБО) активний.

    Не забудьте зберегти свої налаштування за допомогою кнопки «Зберегти»." + }, + "auxiliaryToggleUnused": { + "message": "Сховати невикористані режими" + }, + "auxiliaryMin": { + "message": "Мін." + }, + "auxiliaryMax": { + "message": "Макс." + }, + "auxiliaryDisabled": { + "message": "(ВИМКНЕНО)", + "descripton": "Text to add to the ARM mode (maybe others in the future) in the MODES TAB when it has been disabled for some external reason" + }, + "auxiliaryAddRange": { + "message": "Додати діапазон" + }, + "auxiliaryAddLink": { + "message": "Додати посилання" + }, + "auxiliaryButtonSave": { + "message": "Зберегти" + }, + "auxiliaryAutoChannelSelect": { + "message": "АВТО" + }, + "auxiliaryModeLogicOR": { + "message": "АБО" + }, + "auxiliaryModeLogicAND": { + "message": "ТА" + }, + "auxiliaryHelpMode_ARM": { + "message": "Взведення: запускає мотори і стабілізацію", + "description": "Help text to ARM mode" + }, + "auxiliaryHelpMode_ANGLE": { + "message": "В цьому режимі автоматичного вирівнювання, канали крену і тангажа контролюють кут між потрібною віссю і вертикаллю, забезпечуючи вирівнювання при центруванні стіків", + "description": "Help text to ANGLE mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "Цей гібридний режим працює точно як режим \"Кут\" (ANGLE) при відцентрованих стіках нахилу і тангажа (таким чином виходить самовирівнювання дрона), але потім поступово починає працювати більше і більше як режим за замовчуванням RATE/ACRO коли стіки відхиляються далі від центрального положення", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_MAG": { + "message": "Фіксація поточного курсу за допомогою компаса", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_HEADFREE": { + "message": "У цьому режимі \"голова\" коптера завжди повернута в ту саму сторону, в яку він був спрямований під час активації функції. Це означає, що коли коптер обертається навколо вісі Z (поворот), управління завжди реагує і тримає коптер в тому самому початковому напрямку.
    З цим режимом легше керувати дроном, навіть літати з фізичною головою у вашому напрямку, оскільки управління завжди реагує однаково. Це дружній режим для нових користувачів дронів та може запобігти втраті контролю, коли ви не знаєте куди направлений дрон", + "description": "Help text to HEADFREE mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Передавати крен, рискання та тангаж безпосередньо з приймача до сервоприводів у мікшері літака (режим PASSTHRU)", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_FAILSAFE": { + "message": "Перейти вручну в етап 2 безаварійності", + "description": "Help text to FAILSAFE mode" + }, + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Увімкніть режим \"GPS порятунок\" щоб повернути повітряне судно на місце, де воно було взведене в останній раз", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "Змінити курс - встановлює новий курс для режиму HEADFREE", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_BEEPER": { + "message": "Включити пищання - корисно для пошуку розбитого дрона", + "description": "Help text to BEEPER mode" + }, + "auxiliaryHelpMode_LEDLOW": { + "message": "Вимкнути вивід LED_STRIP", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Включити/виключити наекранне меню", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Увімкнути телеметрію за допомогою перемикача", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_BLACKBOX": { + "message": "Увімкнути ведення журналу Чорної скрині", + "description": "Help text to BLACKBOX mode" + }, + "auxiliaryHelpMode_BLACKBOXERASE": { + "message": "Очистити журнал Чорної скрині", + "description": "Help text to BLACKBOX ERASE mode" + }, + "auxiliaryHelpMode_AIRMODE": { + "message": "У стандартному міксері / режимі, коли обчислюються крен, тангаж і рискання, і якщо який-небудь мотор перевищує максимальне значення, всі мотори будуть однаково зменшені. Коли мотор опускається нижче мінімального значення, він обрізається. Наприклад, якщо рівень тяги був навколо мінімуму і ви спробували різко зробити крен, тоді, оскільки два мотора не можуть піти ще нижче, підсилення фактично зменшиться наполовину (половина ваших значень PID). Якщо ваші команди просили більше, ніж 100% різниці між високими та низькими моторами, низькі мотори будуть обрізані, порушуючи симетрію балансу моторів шляхом нерівного зменшення підсилення", + "description": "Help text to AIRMODE mode" + }, + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Застосуйте поворот-рискання відносно FPV-камери, змонтованої під попередньо заданим кутом", + "description": "Help text to FPV ANGLE MIX mode" + }, + "auxiliaryHelpMode_CAMERACONTROL1": { + "message": "Використовуйте щоб увімкнути режим CAMERA CONTROL 1. Перевірте в посібнику виробника", + "description": "Help text to customized CAMERA CONTROL 1 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL2": { + "message": "Використовуйте щоб увімкнути режим CAMERA CONTROL 2. Перевірте в посібнику виробника", + "description": "Help text to customized CAMERA CONTROL 2 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL3": { + "message": "Використовуйте щоб увімкнути режим CAMERA CONTROL 3. Перевірте в посібнику виробника", + "description": "Help text to customized CAMERA CONTROL 3 mode" + }, + "auxiliaryHelpMode_USER1": { + "message": "Використовуйте щоб увімкнути налаштування USER1. Перевірте в посібнику виробника", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Використовуйте щоб увімкнути налаштування USER2. Перевірте в посібнику виробника", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Використовуйте щоб увімкнути налаштування USER3. Перевірте в посібнику виробника", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Використовуйте щоб увімкнути налаштування USER4. Перевірте в посібнику виробника", + "description": "Help text to customized USER4 mode" + }, + "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { + "message": "Розвернути рух моторів в протилежний бік щоб перевернути судно після аварії (потрібен DShot)", + "description": "Help text to FLIP OVER AFTER CRASH mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "При взведенні, очікувати активацію цього перемикача перед фактичним взведенням", + "description": "Help text to PREARM mode" + }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "Використовуйте звукові сигнали, кількість вказує на кількість знайдених супутників GPS", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Перемкнути відеопередавач у режим ями (низька вихідна потужність, якщо підтримується)", + "description": "Help text to VTX PIT MODE mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Режим ПАРАЛІЗУ. Вимикає модель, що розбилась, поки не буде перепідключено живлення", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Увімкнути «акротренажер» - обмеження кута в акро режимі", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Вимкнути керування налаштуваннями відеопередавача через наекранне меню", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "Система допомоги під час старту на гонках", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "Виключити/включити команди стіками", + "description": "Help text to STICK COMMANDS DISABLE mode" + }, + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Вимкнути/увімкнути звуковий сигнал, включаючи попередження, статус і режим BEEPER", + "description": "Help text to BEEPERMUTE mode" + }, + "auxiliaryHelpMode_READY": { + "message": "Додано у BF4.4, тепер ви можете показувати 'READY' (ГОТОВИЙ) в наекранному меню за допомогою перемикача. Це нішеве вдосконалення для гоночних ситуацій, коли всі відеоканали пілотів відображаються на одному центральному екрані. Пілот може натиснути перемикач, щоб вказати, що він готовий до польоту, і на його екранному меню з’явиться слово READY. Тоді директор перегонів може визначити, чи всі пілоти готові, подивившись на центральний екран. При взведенні дрону, текст READY зникає", + "description": "Help text to READY mode" + }, + "adjustmentsHelp": { + "message": "Налаштувати перемикачі регулювання. Додаткову інформацію дивіться у розділі посібника «Коригування під час польоту». Зміни, внесені функціями налаштування, не зберігаються автоматично." + }, + "adjustmentSlotsHelp": { + "message": "Є 4 слоти. Кожен перемикач, який використовується для одночасного регулювання, вимагає ексклюзивного використання слота." + }, + "adjustmentsExamples": { + "message": "Приклади:" + }, + "adjustmentsExample1": { + "message": "Використовуйте трипозиційний перемикач на AUX1 для вибору між Тангаж/Крен P, I і D і ще один трипозиційний перемикач на AUX2 для збільшення або зменшення значення при утримуванні в верхньому або нижньому положенні." + }, + "adjustmentsExample2": { + "message": "Використовуйте трипозиційний перемикач на AUX4, щоб увімкнути вибір профілю частоти за допомогою того самого трьохпозиційного перемикача на тому ж каналі." + }, + "adjustmentsColumnEnable": { + "message": "Якщо увімкнено" + }, + "adjustmentsColumnUsingSlot": { + "message": "використовуючи слот" + }, + "adjustmentsColumnWhenChannel": { + "message": "коли канал" + }, + "adjustmentsColumnIsInRange": { + "message": "є в діапазоні" + }, + "adjustmentsColumnThenApplyFunction": { + "message": "значить застосуй" + }, + "adjustmentsColumnViaChannel": { + "message": "через канал" + }, + "adjustmentsSlot0": { + "message": "Слот 1" + }, + "adjustmentsSlot1": { + "message": "Слот 2" + }, + "adjustmentsSlot2": { + "message": "Слот 3" + }, + "adjustmentsSlot3": { + "message": "Слот 4" + }, + "adjustmentsMin": { + "message": "Мін." + }, + "adjustmentsMax": { + "message": "Макс." + }, + "adjustmentsFunction0": { + "message": "Без змін" + }, + "adjustmentsFunction1": { + "message": "Корекція коефіцієнтів пульта(RC)" + }, + "adjustmentsFunction2": { + "message": "Корекція експоненційності пульта(RC)" + }, + "adjustmentsFunction3": { + "message": "Корекція експоненційності тяги" + }, + "adjustmentsFunction4": { + "message": "Регулювання коефіцієнтів тангажу та крену" + }, + "adjustmentsFunction5": { + "message": "Коригування коефіцієнта рискання" + }, + "adjustmentsFunction6": { + "message": "Регулювання P тангажу та крену" + }, + "adjustmentsFunction7": { + "message": "Регулювання І тангажа та крену" + }, + "adjustmentsFunction8": { + "message": "Регулювання Д тангажа та крену" + }, + "adjustmentsFunction9": { + "message": "Коригування П рискання" + }, + "adjustmentsFunction10": { + "message": "Коригування I рискання" + }, + "adjustmentsFunction11": { + "message": "Коригування Д рискання" + }, + "adjustmentsFunction12": { + "message": "Вибір профілю коефіцієнтів" + }, + "adjustmentsFunction13": { + "message": "Коефіцієнт тангажа" + }, + "adjustmentsFunction14": { + "message": "Коефіцієнт крену" + }, + "adjustmentsFunction15": { + "message": "Коригування П тангажа" + }, + "adjustmentsFunction16": { + "message": "Коригування I тангажа" + }, + "adjustmentsFunction17": { + "message": "Коригування Д тангажа" + }, + "adjustmentsFunction18": { + "message": "Коригування П крену" + }, + "adjustmentsFunction19": { + "message": "Коригування І крену" + }, + "adjustmentsFunction20": { + "message": "Коригування Д крену" + }, + "adjustmentsFunction21": { + "message": "RC коефіцієнт рискання" + }, + "adjustmentsFunction22": { + "message": "Коригування У тангажу і крену" + }, + "adjustmentsFunction23": { + "message": "Перехід упередження" + }, + "adjustmentsFunction24": { + "message": "Регулювання сили в режимі Горизонт" + }, + "adjustmentsFunction25": { + "message": "Вибір PID-аудіо" + }, + "adjustmentsFunction26": { + "message": "Коригування F тангажа" + }, + "adjustmentsFunction27": { + "message": "Коригування F крену" + }, + "adjustmentsFunction28": { + "message": "Коригування F рискання" + }, + "adjustmentsFunction29": { + "message": "Вибір профілю наекранного меню" + }, + "adjustmentsFunction30": { + "message": "Вибір профілю LED" + }, + "adjustmentsSave": { + "message": "Зберегти" + }, + "adjustmentsEepromSaved": { + "message": "EEPROM збережено" + }, + "transponderNotSupported": { + "message": "Прошивка вашого польотного контролера не підтримує функцію транспондера." + }, + "transponderInformation": { + "message": "Системи транспондерів дозволяють організаторам гонок вимірювати час кола. Транспондер встановлюється на вашу модель літального апарату, і коли ваш апарат проходить через пункт вимірювання часу, приймач на трасі реєструє ваш код і записує час вашого кола. При встановленні інфрачервоного транспондера вам слід переконатися, що він спрямований від вашого літального апарату в напрямку приймачів на трасі і що світловий промінь не перекривається рамою, батарейними ремінцями, кабелями, пропелерами і т.д." + }, + "transponderConfigurationType": { + "message": "Тип транспондера" + }, + "transponderType0": { + "message": "Відсутній" + }, + "transponderType1": { + "message": "iLap" + }, + "transponderType2": { + "message": "aRCiTimer" + }, + "transponderType3": { + "message": "ERLT" + }, + "transponderConfiguration1": { + "message": "Конфігурація iLap" + }, + "transponderConfiguration2": { + "message": "Конфігурація aRCiTimer" + }, + "transponderConfiguration3": { + "message": "Конфігурація ERLT" + }, + "transponderData1": { + "message": "Дані" + }, + "transponderData2": { + "message": "ID транспондера" + }, + "transponderData3": { + "message": "ID транспондера" + }, + "transponderDataHelp1": { + "message": "Шістнадцяткові символи лише 0-9, A-F" + }, + "transponderHelp1": { + "message": "Налаштуйте свій код транспондера тут. Примітка. Тільки дійсні коди будуть розпізнаватися системами хронометражу перегонів. Дійсні коди транспондерів можна отримати на сайті Seriously Pro." + }, + "transponderHelp2": { + "message": "Для отримання додаткової інформації, відвідайте сайт aRCiTimer" + }, + "transponderDataHelp3": { + "message": "Оберіть ERLT ID 0-63" + }, + "transponderHelp3": { + "message": "Щоб дізнатися більше, відвідайте сайт EasyRaceLapTimer" + }, + "transponderButtonSave": { + "message": "Зберегти" + }, + "transponderButtonSaveReboot": { + "message": "Зберегти й перезавантажити" + }, + "transponderDataInvalid": { + "message": "Дані транспондера недійсні" + }, + "servosFirmwareUpgradeRequired": { + "message": "Сервоприводи потребують прошивки >= 1.10.0. та підтримки цільовим пристроєм." + }, + "servosChangeDirection": { + "message": "Змінити напрямок у TX для збігу" + }, + "servosName": { + "message": "Назва" + }, + "servosMid": { + "message": "Середина" + }, + "servosMin": { + "message": "Мін." + }, + "servosMax": { + "message": "Макс." + }, + "servosAngleAtMin": { + "message": "Кут при мін." + }, + "servosAngleAtMax": { + "message": "Кут при макс." + }, + "servosDirectionAndRate": { + "message": "Напрямок і швидкість" + }, + "servosLiveMode": { + "message": "Включити \"живий режим\"" + }, + "servosButtonSave": { + "message": "Зберегти" + }, + "servosNormal": { + "message": "Нормальний" + }, + "servosReverse": { + "message": "Зворотний" + }, + "servosEepromSave": { + "message": "EEPROM збережено" + }, + "gpsHead": { + "message": "GPS" + }, + "gpsHeadHelp": { + "message": "Показати різну інформацію, пов'язану з GPS. Курс показуються лише тоді, коли використовується компас", + "description": "Help text for gpsHead" + }, + "gpsMapHead": { + "message": "Поточне GPS-розташування" + }, + "gpsMapHeadHelp": { + "message": "Показати місцезнаходження GPS на мапі. Використовуйте колесо прокрутки миші для збільшення та зменшення масштабу.
    Значок місцезнаходження показує напрямок на північ якщо використовується компас", + "description": "Help text for gpsHeadMap" + }, + "gpsMapMessage1": { + "message": "Перевірте інтернет-з'єднання" + }, + "gpsMapMessage2": { + "message": "Очікуємо 3D координати GPS…" + }, + "gps3dFix": { + "message": "3D місцезнаходження:" + }, + "gpsFixTrue": { + "message": "Так" + }, + "gpsFixFalse": { + "message": "Ні" + }, + "gpsPositionUnit": { + "message": "°", + "description": "Unit for GPS position." + }, + "gpsAltitude": { + "message": "Висота:" + }, + "gpsHeading": { + "message": "Курс:" + }, + "gpsSpeed": { + "message": "Швидкість:" + }, + "gpsSats": { + "message": "Супутників:" + }, + "gpsDistToHome": { + "message": "Відс. до точки зльоту:" + }, + "gpsSignalStrHead": { + "message": "Рівень сигналу GPS" + }, + "gpsSignalStrHeadHelp": { + "message": "Показувати рівень сигналу, якість та статус для кожного знайденого джерела GPS", + "description": "Help text for gpsSignalStrHead" + }, + "gpsSignalStr": { + "message": "Рівень сигналу" + }, + "gpsSignalGnssId": { + "message": "Gnss ID" + }, + "gpsSignalSatId": { + "message": "ID супутника" + }, + "gpsSignalStatusQly": { + "message": "Стан / Якість" + }, + "gnssQualityNoSignal": { + "message": "немає сигналу" + }, + "gnssQualitySearching": { + "message": "пошук" + }, + "gnssQualityAcquired": { + "message": "отримано код" + }, + "gnssQualityUnusable": { + "message": "непридатний" + }, + "gnssQualityLocked": { + "message": "фікс. частоти" + }, + "gnssQualityFullyLocked": { + "message": "отримано час" + }, + "gnssUsedUnused": { + "message": "не використовується" + }, + "gnssUsedUsed": { + "message": "використовується" + }, + "gnssHealthyUnknown": { + "message": "невідомо" + }, + "gnssHealthyHealthy": { + "message": "здоровий" + }, + "gnssHealthyUnhealthy": { + "message": "нездоровий" + }, + "motorsVoltage": { + "message": "Напруга:" + }, + "motorsADrawing": { + "message": "Струм:" + }, + "motorsmAhDrawn": { + "message": "Струм спож.:" + }, + "motorsVoltageValue": { + "message": "$1 В" + }, + "motorsADrawingValue": { + "message": "$1 А" + }, + "motorsmAhDrawnValue": { + "message": "$1 мА·год" + }, + "motorsText": { + "message": "Двигуни" + }, + "motorNumber1": { + "message": "Двигун - 1" + }, + "motorNumber2": { + "message": "Двигун - 2" + }, + "motorNumber3": { + "message": "Двигун - 3" + }, + "motorNumber4": { + "message": "Двигун - 4" + }, + "motorNumber5": { + "message": "Двигун - 5" + }, + "motorNumber6": { + "message": "Двигун - 6" + }, + "motorNumber7": { + "message": "Двигун - 7" + }, + "motorNumber8": { + "message": "Двигун - 8" + }, + "servosText": { + "message": "Сервоприводи" + }, + "servoNumber1": { + "message": "Сервопривід - 1" + }, + "servoNumber2": { + "message": "Сервопривід - 2" + }, + "servoNumber3": { + "message": "Сервопривід - 3" + }, + "servoNumber4": { + "message": "Сервопривід - 4" + }, + "servoNumber5": { + "message": "Сервопривід - 5" + }, + "servoNumber6": { + "message": "Сервопривід - 6" + }, + "servoNumber7": { + "message": "Сервопривід - 7" + }, + "servoNumber8": { + "message": "Сервопривід - 8" + }, + "motorsResetMaximumButton": { + "message": "Скинути" + }, + "motorsResetMaximum": { + "message": "Скинути максимальні значення (накопичені за час спостереження)" + }, + "motorsSensorGyroSelect": { + "message": "гіроскоп" + }, + "motorsSensorAccelSelect": { + "message": "акселерометр" + }, + "motorsTelemetryHelp": { + "message": "Ці цифри показують телеметричну інформацію, отриману від електронних контролерів швидкості (ESC), якщо вона доступна. Це може показувати фактичну швидкість двигунів (в об/хв), частоту помилок телеметричного зв’язку та температуру електронних контролерів швидкості.", + "description": "Help text for the telemetry values in the motors tab." + }, + "motorsRPM": { + "message": "R: {{motorsRpmValue}}", + "description": "To put under the motors in the motors tab. KEEP IT SHORT or not translate. Keep the letters as prefix. Shows the RPM of the motor if telemetry is available." + }, + "motorsRPMError": { + "message": "E: {{motorsErrorValue}}%", + "description": "To put under the motors in the motors tab. KEEP IT SHORT or not translate. Shows the error of motor telemetry if available." + }, + "motorsESCTemperature": { + "message": "T: {{motorsESCTempValue}}°C", + "description": "To put under the motors in the motors tab. KEEP IT SHORT or not translate. Shows the ESC temperature if available." + }, + "motorsMaster": { + "message": "Майстер" + }, + "motorsNotice": { + "message": "Режим тестування мотору / Попередження про взведення:
    Переміщення повзунків або взведення дрона з передавача призведе до того, що мотори розкрутяться.
    Щоб запобігти травмам зніміть всі пропелери перед використанням цієї функції.
    Увімкнення режиму тестування мотору також тимчасово вимкне функцію запобігання зльоту, щоб вона не зняла дрона з взеденого стану під час стендового випробування без пропелерів.
    " + }, + "motorsEnableControl": { + "message": "Я розумію ризики, пропелери знято - активувати контроль над двигуном та взведення, і вимкнути запобігання зльоту." + }, + "motorsDialogMixerReset": { + "message": "Виявлено проблему з режимом мікшера

    Модель {{mixerName}} потребує {{mixerMotors}} ресурсів мотора, а поточна конфігурація прошивки надає {{outputs}} придатних для використання в вибраному режимі.

    Якщо використовується власний режим змішувача, вам необхідно визначити власний mmix перед зміною режиму змішувача.

    Будь ласка, перевірте вашу конфігурацію та додайте необхідні ресурси мотора." + }, + "motorsDialogSettingsChanged": { + "message": "Виявлені зміни конфігурації.

    Режим тестування мотора вимкнено, поки налаштування не будуть збережені." + }, + "motorsDialogSettingsChangedOk": { + "message": "Гаразд" + }, + "motorOutputReorderDialogClose": { + "message": "Скасувати" + }, + "motorOutputReorderDialogAgree": { + "message": "Почати" + }, + "motorsRemapDialogTitle": { + "message": "Перевпорядкувати мотори" + }, + "motorOutputReorderDialogOpen": { + "message": "Перевпорядкувати мотори" + }, + "motorOutputReorderDialogSelectSpinningMotor": { + "message": "Натисніть на двигун, що обертається..." + }, + "motorOutputReorderDialogRemapIsDone": { + "message": "Готово! Перевірте порядок обертання моторів, натиснувши на зображення." + }, + "motorsRemapDialogUnderstandRisks": { + "message": "Я розумію ризики,
    пропелери знято." + }, + "motorsRemapDialogRiskNotice": { + "message": "Повідомлення про небезпеку
    Зніміть усі пропелери, щоб запобігти травмам!
    Мотори будуть розкручуватися!" + }, + "motorsRemapDialogExplanations": { + "message": "Інформаційне повідомлення
    Мотори будуть запускатися по одному, і ви зможете вибрати, який саме мотор запускається. Акумулятор повинен бути підключений, та вибрано правильний протокол ESC. Ця утиліта може тільки переназначати активні в даний момент мотори. Для більш складного переназначення необхідно використовувати команду Resource в командному рядку. Зверніться до цієї сторінки Wiki." + }, + "motorsRemapDialogSave": { + "message": "Зберегти" + }, + "motorsRemapDialogStartOver": { + "message": "Почати спочатку" + }, + "motorsButtonReset": { + "message": "Скинути" + }, + "motorsButtonSave": { + "message": "Зберегти й перезавантажити" + }, + "escDshotDirectionDialog-Title": { + "message": "Напрямок обертання мотора - Увага: переконайтесь що пропелери знято!" + }, + "escDshotDirectionDialog-SelectMotor": { + "message": "Виберіть один або всі мотори" + }, + "escDshotDirectionDialog-SelectMotorSafety": { + "message": "Мотори будуть обертатись при виборі!" + }, + "escDshotDirectionDialog-RiskNotice": { + "message": "Попередження про небезпеку
    Зніміть всі пропелери, щоб уникнути травм!
    Мотори запустяться негайно після вибору!" + }, + "escDshotDirectionDialog-UnderstandRisks": { + "message": "Я розумію ризики,
    всі пропелери знято." + }, + "escDshotDirectionDialog-InformationNotice": { + "message": "Інформаційне повідомлення
    Для зміни напрямків моторів, батарея має бути підключена, а також має бути вибрано правильний протокол електронного контролера швидкості(ESC ) у вкладці $t(tabMotorTesting.message). Зверніть увагу, що не всі ESC з підтримкою Dshot працюватимуть з цим діалогом. Перевірте прошивку вашого ESC." + }, + "escDshotDirectionDialog-NormalInformationNotice": { + "message": "Задайте напрямок обертання моторів, обираючи й спостерігаючи обертання кожного мотора окремо." + }, + "escDshotDirectionDialog-WizardInformationNotice": { + "message": "Скидає всі налаштування напрямків обертання моторів, а потім дозволяє користувачеві вибирати, котрі з них розвернути у зворотному напрямку." + }, + "escDshotDirectionDialog-Open": { + "message": "Напрямок обертання" + }, + "escDshotDirectionDialog-CommandNormal": { + "message": "Нормальний" + }, + "escDshotDirectionDialog-CommandReverse": { + "message": "Зворотний" + }, + "escDshotDirectionDialog-CommandSpin": { + "message": "Тест мотора" + }, + "escDshotDirectionDialog-ReleaseButtonToStop": { + "message": "Відпустіть кнопку щоб зупинити" + }, + "escDshotDirectionDialog-ReleaseToStop": { + "message": "Відпустіть для зупинки" + }, + "escDshotDirectionDialog-Start": { + "message": "По одному" + }, + "escDshotDirectionDialog-StartWizard": { + "message": "Майстер налаштувань" + }, + "escDshotDirectionDialog-SetDirectionHint": { + "message": "Змінити напрямок обертання виділених моторів" + }, + "escDshotDirectionDialog-SetDirectionHintSafety": { + "message": "Мотори почнуть обертатись при виборі напрямку!" + }, + "escDshotDirectionDialog-WrongProtocolText": { + "message": "Функція працює тільки з DSHOT електронними контролерами швидкості.
    Переконайтеся, що ваш електронний контролер швидкості (ESC) підтримує протокол DSHOT і змініть його на $t(tabMotorTesting.message) вкладці." + }, + "escDshotDirectionDialog-WrongMixerText": { + "message": "Кількість моторів дорівнює 0.
    Перевірте поточний мікшер на вкладці $t(tabMotorTesting.message) або налаштуйте свій власний за допомогою командного рядку (CLI). Подивіться цю сторінку Вікі для додаткової інформації." + }, + "escDshotDirectionDialog-WrongFirmwareText": { + "message": "Оновіть прошивку.
    Переконайтеся, що ви використовуєте останню версію прошивки: Betaflight 4.3 або новішу." + }, + "escDshotDirectionDialog-WizardActionHint": { + "message": "Натисніть на номери двигунів, щоб змінити напрямок обертання" + }, + "escDshotDirectionDialog-WizardActionHintSecondLine": { + "message": "Перевірте що всі мотори обертаються правильно" + }, + "escDshotDirectionDialog-SpinWizard": { + "message": "Запустити / прокрутити мотори" + }, + "escDshotDirectionDialog-StopWizard": { + "message": "Зупинити мотори" + }, + "sensorsInfo": { + "message": "Майте на увазі, що використання швидких періодів оновлення і відображення декількох графіків одночасно вимагає багато ресурсів і спричиняє швидке розрядження батареї, якщо ви використовуєте ноутбук.
    Ми рекомендуємо відображати графіки лише для датчиків, які вас цікавлять, використовуючи розумні періоди оновлення." + }, + "sensorsRefresh": { + "message": "Оновити:" + }, + "sensorsScale": { + "message": "Масштаб:" + }, + "sensorsGyroSelect": { + "message": "Гіроскоп" + }, + "sensorsAccelSelect": { + "message": "Акселерометр" + }, + "sensorsMagSelect": { + "message": "Магнітометр" + }, + "sensorsAltitudeSelect": { + "message": "Висотомір" + }, + "sensorsSonarSelect": { + "message": "Сонар" + }, + "sensorsDebugSelect": { + "message": "Інформація для налагоджування" + }, + "sensorsGyroTitle": { + "message": "Гіроскоп - градуси/сек." + }, + "sensorsAccelTitle": { + "message": "Акселерометр - градуси" + }, + "sensorsMagTitle": { + "message": "Магнетометр - Гауси" + }, + "sensorsAltitudeTitle": { + "message": "Висота - метри" + }, + "sensorsAltitudeHint": { + "message": "Висота обчислюється шляхом поєднання виводу барометра (якщо він доступний) з висотою, отриманою з GPS (якщо він доступний). Якщо підключено GPS і GPS отримав координати, буде відображена абсолютна висота над рівнем моря, коли система розармлена. При взведенні буде відображатися висота відносно позиції, де було здійснено взведення." + }, + "sensorsSonarTitle": { + "message": "Сонар - сантиметри" + }, + "sensorsDebugTitle": { + "message": "Інформація для налагоджування" + }, + "cliInfo": { + "message": "Примітка: Вихід із вкладки командного рядка, або натискання кнопки Від'єднання автоматично надішле \"вихід\" на плату. У найновіших прошивках це призведе до перезапуску контролера, і незбережені зміни буде втрачено.

    Попередження: Деякі команди у командному рядку можуть призвести до надсилання довільних сигналів на вихідні виводи двигунів. Це може призвести до розкручування двигунів, якщо підключено батарею. Тому наполегливо рекомендується переконатися, що акумулятор не підключено, перш ніж вводити команди у командний рядок." + }, + "cliInputPlaceholder": { + "message": "Напишіть свою команду тут. Натисніть Tab для Автодоповнення." + }, + "cliInputPlaceholderBuilding": { + "message": "Зачекайте, поки створюється кеш Автодоповнення..." + }, + "cliEnter": { + "message": "Виявлено режим CLI" + }, + "cliReboot": { + "message": "Виявлено перезавантаження з CLI" + }, + "cliSaveToFileBtn": { + "message": "Зберегти до файлу" + }, + "cliClearOutputHistoryBtn": { + "message": "Очистити історію виводу" + }, + "cliCopyToClipboardBtn": { + "message": "Скопіювати до буферу обміну" + }, + "cliCopySuccessful": { + "message": "Скопійовано!" + }, + "cliLoadFromFileBtn": { + "message": "Завантажити з файлу" + }, + "cliSupportRequestBtn": { + "message": "Надіслати дані в підтримку" + }, + "cliConfirmSnippetDialogTitle": { + "message": "Завантажено файл {{fileName}}. Перегляньте завантажені команди" + }, + "cliConfirmSnippetNote": { + "message": "Примітка: Ви можете переглядати та редагувати команди перед виконанням." + }, + "cliConfirmSnippetBtn": { + "message": "Виконати" + }, + "loggingNote": { + "message": "Дані будуть зберігатися лише в цій вкладці, вихід з вкладки призведе до скасування запису, а програма повернеться до свого звичайного стану \"конфігуратора\".
    Ви можете вибрати загальний період оновлення, дані будуть записуватися в журнальний файл кожну 1 секунду з міркувань швидкодії." + }, + "loggingSamplesSaved": { + "message": "Зразків збережено:" + }, + "loggingLogSize": { + "message": "Розмір журналу:" + }, + "loggingLogName": { + "message": "Ім'я журналу:" + }, + "loggingButtonLogFile": { + "message": "Виберіть файл журналу" + }, + "loggingStart": { + "message": "Почати Логування" + }, + "loggingStop": { + "message": "Зупинити ведення журналу" + }, + "loggingBack": { + "message": "Вийти з журналу / Від'єднатися" + }, + "loggingErrorNotConnected": { + "message": "Спочатку вам потрібно підключитися" + }, + "loggingErrorLogFile": { + "message": "Будь ласка, оберіть файл журналу" + }, + "loggingErrorOneProperty": { + "message": "Будь ласка, оберіть принаймні одну властивість для логування" + }, + "loggingAutomaticallyRetained": { + "message": "Автоматично завантажений попередній файл журналу: $1" + }, + "blackboxNotSupported": { + "message": "Прошивка польотного контролера не підтримує журнал Чорного Ящика." + }, + "blackboxMaybeSupported": { + "message": "Прошивка польотного контролера занадто стара, щоб підтримувати цю вкладку, або функція \"Чорна скриня\" вимкнена на вкладці \"Налаштування\"." + }, + "blackboxConfiguration": { + "message": "Конфігурація чорної скрині" + }, + "blackboxButtonSave": { + "message": "Зберегти й перезавантажити" + }, + "blackboxLoggingNone": { + "message": "Без логування" + }, + "blackboxLoggingFlash": { + "message": "Флешпам'ять польотника" + }, + "blackboxLoggingSdCard": { + "message": "SD-картка" + }, + "blackboxLoggingSerial": { + "message": "Послідовний порт" + }, + "serialLoggingSupportedNote": { + "message": "Ви можете записувати дані на зовнішній пристрій для логування (наприклад, OpenLager) за допомогою серійного порту. Налаштуйте порт на вкладці \"Порти\"." + }, + "sdcardNote": { + "message": "Журнали польоту можна записувати на карту пам'яті, вбудовану у слот для SD-карт у вашому польотному контролері." + }, + "dataflashUsedSpace": { + "message": "Викоростанний простір" + }, + "dataflashFreeSpace": { + "message": "Вільний простір" + }, + "dataflashUnavSpace": { + "message": "Недоступний простір" + }, + "dataflashLogsSpace": { + "message": "Вільне місце для журналів" + }, + "dataflashNote": { + "message": "Журнали польоту можна записувати на вбудований чіп пам'яті у вашому польотному контролері." + }, + "dataflashNotPresentNote": { + "message": "У вашому польотному контролері відсутній сумісний чіп пам'яті для зберігання даних." + }, + "dataflashFirmwareUpgradeRequired": { + "message": "Для використання Dataflash необхідна прошивка >= 1.8.0." + }, + "dataflashButtonSaveFile": { + "message": "Зберегти флеш-пам'ять в файл..." + }, + "dataflashButtonSaveFileDeprecated": { + "message": "Збереження флеш-пам'яті у файл... (не підтримується)" + }, + "dataflashSavetoFileNote": { + "message": "Збереження прямо в файл з флешпам'яті працює повільно та має природну вразливість до помилок та пошкодження файлів.
    У деяких випадках, це може спрацювати для невеликих файлів, але цей підхід не підтримується, і запити на підтримку щодо цього будуть закриті без коментарів - замість цього використовуйте режим масового сховища - Mass Storage mode." + }, + "dataflashSaveFileDepreciationHint": { + "message": "Цей метод є повільним і має властивості, які спричиняють похибки або пошкодження файлів, оскільки саме з'єднання MSP має внутріні, фундаментальні обмеження, які не роблять його придатним для передачі файлів. Він може працювати лише для невеликих файлів журналів. Якщо передача файлів не вдасться, використовуючи цей метод, не створюйте запитів в підтримку. Рекомендований метод - використовувати '$t(onboardLoggingRebootMscText.message)' (нижче), щоб активувати режим масового сховища та отримати доступ до вашого польотного контролера як до пристрою зберігання для завантаження файлів журналів." + }, + "dataflashButtonErase": { + "message": "Стерти флешпамять" + }, + "dataflashConfirmEraseTitle": { + "message": "Підтвердьте стирання флеш-пам’яті контролера" + }, + "dataflashConfirmEraseNote": { + "message": "Це призведе до видалення журналів чорної скрині або інших даних, що містяться у флеш-пам’яті. Це має зайняти близько 20 секунд, ви впевнені?" + }, + "dataflashSavingTitle": { + "message": "Збереження вмісту вбудованої в контролер флеш-пам'яті в файл" + }, + "dataflashSavingNote": { + "message": "Збереження може зайняти кілька хвилин, зачекайте." + }, + "dataflashSavingNoteAfter": { + "message": "Збереження завершено! Натисніть „Гаразд“, щоб продовжити." + }, + "dataflashButtonSaveCancel": { + "message": "Скасувати" + }, + "dataflashButtonSaveDismiss": { + "message": "Гаразд" + }, + "dataflashButtonEraseConfirm": { + "message": "Так, стерти флеш-пам’ять" + }, + "dataflashButtonEraseCancel": { + "message": "Скасувати" + }, + "dataflashFileWriteFailed": { + "message": "Не вдалося записати у вибраний файл. Чи в порядку дозволи для цієї папки?" + }, + "sdcardStatusNoCard": { + "message": "SD-карту не вставлено" + }, + "sdcardStatusReboot": { + "message": "Критична помилка
    Перезавантажте, щоб повторити" + }, + "sdcardStatusReady": { + "message": "Карта готова" + }, + "sdcardStatusStarting": { + "message": "Карта запускається..." + }, + "sdcardStatusFileSystem": { + "message": "Запускається файлова система..." + }, + "sdcardStatusUnknown": { + "message": "Невідомий стан $1" + }, + "firmwareFlasherBranch": { + "message": "Виберіть коміт" + }, + "firmwareFlasherReleaseSummaryHead": { + "message": "Інформація про реліз і збірку" + }, + "firmwareFlasherReleaseManufacturer": { + "message": "ID виробника:" + }, + "firmwareFlasherReleaseVersion": { + "message": "Версія:" + }, + "firmwareFlasherReleaseVersionUrl": { + "message": "Відвідайте сторінку релізу." + }, + "firmwareFlasherReleaseNotes": { + "message": "Примітки до випуску:" + }, + "firmwareFlasherReleaseDate": { + "message": "Дата:" + }, + "firmwareFlasherReleaseTarget": { + "message": "Цільовий пристрій:" + }, + "firmwareFlasherTargetWikiUrlInfo": { + "message": "Дізнайтесь більше інформації про цільовий пристрій на вікі Betaflight (wiki-адресу можна знайти в уніфікованій цільовій конфігурації)" + }, + "firmwareFlasherReleaseMCU": { + "message": "Мікроконтролер:" + }, + "firmwareFlasherCloudBuildDetails": { + "message": "Деталі хмарної збірки:" + }, + "firmwareFlasherCloudBuildLogUrl": { + "message": "Показати журнал." + }, + "firmwareFlasherCloudBuildStatus": { + "message": "Стан:" + }, + "firmwareFlasherCloudBuildPending": { + "message": "очікується" + }, + "firmwareFlasherCloudBuildProcessing": { + "message": "обробляється" + }, + "firmwareFlasherCloudBuildSuccessCached": { + "message": "успішно (з кешу)" + }, + "firmwareFlasherCloudBuildSuccess": { + "message": "успішно" + }, + "firmwareFlasherCloudBuildTimedOut": { + "message": "час вийшов (спробуйте ще раз)" + }, + "firmwareFlasherCloudBuildFailed": { + "message": "не вдалося (перевірте журнал)" + }, + "firmwareFlasherReleaseFileUrl": { + "message": "Звантажити вручну." + }, + "firmwareFlasherTargetWarning": { + "message": "ВАЖЛИВО: Переконайтеся, що ви прошиваєте файл, що відповідає вашому цільовому пристрою. Прошивка мікропрограми до невідповідного цільового пристрою може призвести до поганих наслідків." + }, + "firmwareFlasherPath": { + "message": "Шлях:" + }, + "firmwareFlasherSize": { + "message": "Розмір:" + }, + "firmwareFlasherStatus": { + "message": "Стан:" + }, + "firmwareFlasherProgress": { + "message": "Перебіг:" + }, + "firmwareFlasherLoadFirmwareFile": { + "message": "Будь ласка, завантажте файл прошивки" + }, + "firmwareFlasherLoadedConfig": { + "message": "Ціль завантажено. Будь ласка, завантажте файл прошивки" + }, + "firmwareFlasherNoReboot": { + "message": "Польотник уже в режимі завантажувача" + }, + "firmwareFlasherOnlineSelectBuildType": { + "message": "Виберіть тип збірки, щоб побачити доступні плати." + }, + "firmwareFlasherOnlineSelectBoardDescription": { + "message": "Виберіть або автоматично визначте вашу плату, щоб побачити доступні онлайн версії прошивок - Виберіть відповідне програмне забезпечення для вашої плати." + }, + "firmwareFlasherOnlineSelectBoardHint": { + "message": "Конфігуратор Betaflight підтримує прошивання уніфікованих цільових пристроїв разом з відповідними платоспецифічними налаштуваннями за один крок.

    Концепція уніфікованих цільових пристроїв означає, що один і той же файл прошивки .hex можна використовувати для всіх плат, які використовують той самий мікроконтролер (MCU).

    У версії Betaflight 4.4 додається Хмарна Збірка (Cloud Build).

    З Хмарною Збіркою (Cloud Build) нам потрібно описати опції обладнання, наявного у вашій збірці.

    Щоб різні плати працювали з однією і тією ж прошивкою, при прошиванні уніфікованої цільової прошивки, специфічний файл конфігурації розміщується поряд з прошивкою.

    При локальній збірці, ви можете завантажити файл конфігурації уніфікованого цільового пристрою або вибрати плату перед завантаженням файлу прошивки .hex.

    Якщо у вас виникають проблеми з використанням прошивки, рекомендуємо приєднатися до Discord або повідомити про проблему." + }, + "firmwareFlasherOnlineSelectFirmwareVersionDescription": { + "message": "Оберіть версію прошивки для вашої плати." + }, + "firmwareFlasherNoRebootDescription": { + "message": "Увімкніть, якщо ваш польотний контролер вже знаходиться в режимі завантажувача. Наприклад, якщо ви під'єднали до живлення свій польотник з закороченими виводами завантажувача, або затиснувши кнопку BOOT у вашому польотному контролері." + }, + "firmwareFlasherFlashOnConnect": { + "message": "Прошити при підключенні" + }, + "firmwareFlasherFlashOnConnectDescription": { + "message": "Намагатись прошити плату автоматично (сигналом виступає поява нового послідовного порту)." + }, + "firmwareFlasherFullChipErase": { + "message": "Повністю очистити мікроконтролер" + }, + "firmwareFlasherFullChipEraseDescription": { + "message": "Очистить всі дані конфігурації, які зараз зберігаються на платі." + }, + "firmwareFlasherFlashDevelopmentFirmware": { + "message": "Використовувати прошивку, що в стадії розробки" + }, + "firmwareFlasherFlashDevelopmentFirmwareDescription": { + "message": "Встановити найсвіжішу (неперевірену) прошивку, що зараз є в стані розробки." + }, + "firmwareFlasherManualPort": { + "message": "Порт" + }, + "firmwareFlasherManualBaud": { + "message": "Задати вручну швидкість передачі даних" + }, + "firmwareFlasherManualBaudDescription": { + "message": "Ручний вибір швидкості передачі даних для контролерів, які не підтримують стандартну швидкість або для прошивки за допомогою bluetooth.
    Примітка. Не використовується при прошивці через USB DFU (Device Firmware Upgrade Mode)" + }, + "firmwareFlasherBaudRate": { + "message": "Швидкість передачі" + }, + "firmwareFlasherShowDevelopmentReleases": { + "message": "Показувати кандидатів на реліз" + }, + "firmwareFlasherShowDevelopmentReleasesDescription": { + "message": "Показувати кандидатів на реліз на додачу до стабільних релізів" + }, + "firmwareFlasherOptionLoading": { + "message": "Завантаження ..." + }, + "firmwareFlasherOptionLabelBuildTypeRelease": { + "message": "Релізи" + }, + "firmwareFlasherOptionLabelBuildTypeReleaseCandidate": { + "message": "Релізи та кандидати на реліз" + }, + "firmwareFlasherOptionLabelBuildTypeDevelopment": { + "message": "В розробці" + }, + "firmwareFlasherOptionLabelBuildTypeAKK3_3": { + "message": "3.3 AKK & RDQ VTX Патч" + }, + "firmwareFlasherOptionLabelBuildTypeAKK3_4": { + "message": "3.4 AKK & RDQ VTX Патч" + }, + "firmwareFlasherOptionLabelSelectFirmware": { + "message": "Виберіть прошивку / плату" + }, + "firmwareFlasherOptionLabelSelectBoard": { + "message": "Оберіть плату" + }, + "firmwareFlasherOptionLabelSelectFirmwareVersion": { + "message": "Оберіть версію прошивки" + }, + "firmwareFlasherOptionLabelSelectFirmwareVersionFor": { + "message": "Оберіть версію прошивки для" + }, + "firmwareFlasherButtonLoadLocal": { + "message": "Завантажити прошивку локально" + }, + "firmwareFlasherButtonLoadOnline": { + "message": "Завантажити прошивку онлайн" + }, + "firmwareFlasherButtonDownloading": { + "message": "Завантаження..." + }, + "firmwareFlasherExitDfu": { + "message": "Вийти з режиму DFU" + }, + "firmwareFlasherFlashFirmware": { + "message": "Прошити прошивку" + }, + "firmwareFlasherGithubInfoHead": { + "message": "GitHub дані про прошивку" + }, + "firmwareFlasherCommiter": { + "message": "Автор:" + }, + "firmwareFlasherDate": { + "message": "Дата:" + }, + "firmwareFlasherHash": { + "message": "Хеш:" + }, + "firmwareFlasherUrl": { + "message": "Перейдіть на GitHub, щоб переглянути цей коміт..." + }, + "firmwareFlasherMessage": { + "message": "Повідомлення:" + }, + "firmwareFlasherWarningText": { + "message": "Будь ласка, не намагайтесь прошивати не Betaflight обладнання за допомогою цього прошивальника.
    Не відключайте плату та не вимикайте комп'ютер під час прошивки.

    Примітка: Завантажувач (bootloader) STM32 зберігається в ПЗУ, і його неможливо пошкодити.
    Примітка: Автоматичне підключення завжди вимкнене, поки ви знаходитесь в прошивальнику.
    Примітка: Переконайтесь, що у вас є резервна копія, оскільки деякі оновлення/пониження версії зітруть вашу конфігурацію.
    Примітка: Якщо у вас виникають проблеми з прошиванням, спробуйте спочатку від'єднати всі кабелі з вашої плати польотного контролера, перезавантажити комп'ютер та оновити драйвери.
    Примітка: При прошивці плат, які мають пряме підключення USB роз'ємів (більшість новіших плат), переконайтесь, що ви прочитали розділ USB Flashing у посібнику Betaflight та встановили правильне програмне забезпечення та драйвери" + }, + "firmwareFlasherRecoveryHead": { + "message": "Відновлення / Втрата зв'язку" + }, + "firmwareFlasherRecoveryText": { + "message": "Якщо зв’язок із платою втрачено, виконайте такі кроки, щоб відновити зв’язок:

    • Вимкніть живлення.
    • Увімкніть «Польотник уже в режимі завантажувача», увімкніть «Повністю очистити мікроконтролер».
    • Замкніть контакти BOOT або утримуйте кнопку BOOT.
    • Увімкніть живлення (індикатор активності НЕ блимає, якщо все зроблено правильно).
    • Установіть усі драйвери STM32 і Zadig, якщо потрібно (див. Прошивання через USB у посібнику Betaflight).
    • Закрийте конфігуратор, перезапустіть конфігуратор.
    • Відпустіть кнопку BOOT, якщо вона є на вашому польотнику.
    • Прошийте правильною прошивкою (з використанням ручної швидкості передачі даних, якщо вказано у посібнику коритувача до вашого польотного контролера).
    • Вимкніть живлення.
    • Зніміть перемичку BOOT.
    • Увімкніть живлення (світлодіод активності має блимати).
    • Підключіться нормально.
    " + }, + "firmwareFlasherButtonLeave": { + "message": "Вийти з програматора" + }, + "firmwareFlasherFirmwareNotLoaded": { + "message": "Прошивка не завантажена" + }, + "firmwareFlasherFirmwareLocalLoaded": { + "message": "Завантажено локальну прошивку: {{filename}} ({{bytes}} байт)" + }, + "firmwareFlasherFirmwareOnlineLoaded": { + "message": "Завантажено онлайн прошивку: {{filename}} ({{bytes}} байт)" + }, + "firmwareFlasherHexCorrupted": { + "message": "Схоже, бінарний файл пошкоджено" + }, + "firmwareFlasherConfigCorrupted": { + "message": "Конфігураційний файл пошкоджений, лише ASCII символи (символи 0-255) є допустимими при прошивці", + "description": "shown in the progress bar at the bottom, be brief" + }, + "firmwareFlasherConfigCorruptedLogMessage": { + "message": "Конфігураційний файл пошкоджений, ASCII символи приймаються (символи 0-255). Символи за межами цього діапазону, дозволені лише в якості коментарів", + "description": "shown in the log, more wordy" + }, + "firmwareFlasherRemoteFirmwareLoaded": { + "message": "Віддалена прошивка завантажена, готова до прошивки" + }, + "firmwareFlasherFailedToLoadOnlineFirmware": { + "message": "Не вдалося завантажити віддалену прошивку" + }, + "firmwareFlasherFailedToLoadUnifiedConfig": { + "message": "Не вдалося завантажити віддалений конфігураційний файл для {{remote_file}}" + }, + "firmwareFlasherLegacyLabel": { + "message": "{{target}} (старий варіант)", + "description": "If we have a Unified target and a old style target available, we are labeling the older one" + }, + "firmwareFlasherNoFirmwareSelected": { + "message": "Не вибрано прошивку для завантаження" + }, + "firmwareFlasherNoValidPort": { + "message": "Будь ласка, виберіть правильний послідовний порт" + }, + "firmwareFlasherWritePermissions": { + "message": "Ви не маєте дозволу на запис цього файлу" + }, + "firmwareFlasherFlashTrigger": { + "message": "Виявлено: $1 - запускаємо прошивку під час підключення" + }, + "firmwareFlasherVerifyBoard": { + "message": "

    Неспівпадіння прошивки


    Підключена плата - {{verified_board}}, тоді як ви обрали {{selected_board}}.

    Бажаєте продовжити прошивку?", + "description": "Make a quick connection to read firmware target and never flash a wrong target again" + }, + "firmwareFlasherBoardVerificationSuccess": { + "message": "Конфігуратор успішно виявив і перевірив плату: {{boardName}}", + "description": "Board verification has succeeded." + }, + "firmwareFlasherBoardVerficationTargetNotAvailable": { + "message": "Конфігуратор виявив плату: {{boardName}}, але не було знайдено офіційної цільової прошивки Betaflight", + "description": "Board verification has succeeded, but the target is not available as offical Betaflight target." + }, + "firmwareFlasherBoardVerificationFail": { + "message": "Конфігуратор не зміг перевірити плату. Якщо це не працює, спробуйте повільно перемкнути вкладку щоб повторити, зробіть нове USB-підключення або підключіться спочатку, якщо ви могли забути застосувати спеціальні параметри за замовчуванням (custom defaults)", + "description": "Sometimes MSP values cannot be read from firmware correctly" + }, + "firmwareFlasherButtonAbort": { + "message": "Перервати" + }, + "firmwareFlasherButtonContinue": { + "message": "Продовжити" + }, + "firmwareFlasherDetectBoardButton": { + "message": "Автовизначення" + }, + "firmwareFlasherDetectBoardDescriptionHint": { + "message": "Автоматичне виявлення працює тільки коли пристрій не перебуває в режимі DFU та коли зв'язок MSP працює. Іноді доводиться спробувати підключитися кілька разів або навіть перепідключити USB. Спробуйте спочатку підключитися як зазвичай, можливо ви забули застосувати налаштування за замовчуванням (custom defaults). Після прошивання перезавантажтеся - відключіть та знову підключіть USB." + }, + "firmwareFlasherDetectBoardQuery": { + "message": "Отримати інформацію з плати для попереднього вибору правильної прошивки" + }, + "unstableFirmwareAcknowledgementDialog": { + "message": "Ви збираєтесь прошити розробницьку версію прошивки. Ця версія знаходяться в процесі розробки, і може мати будь-яку з наступних проблем:
    • прошивка взагалі не працює;
    • прошивка не придатна для польоту;
    • є проблеми з безпекою пов'язані з прошивкою, наприклад, самовільні польоти;
    • прошивка може призвести до того, що польотний контролер стане несправним або буде пошкоджений
    Якщо продовжите процес прошивки цієї версії прошивки, ви несете повну відповідальність за ризик, пов'язаний з будь-якою з цих проблем. Крім того, ви погоджуєтесь на те, що необхідно провести ретельні тестування на столі без пропелерів перед будь-якою спробою польоту з цією прошивкою." + }, + "unstableFirmwareAcknowledgement": { + "message": "Я прочитав вищезазначене і беру на себе повну відповідальність за перепрошивку нестабільного програмного забезпечення" + }, + "unstableFirmwareAcknowledgementFlash": { + "message": "Прошити" + }, + "firmwareFlasherPreviousDevice": { + "message": "Виявлено: $1 - попередній пристрій все ще прошивається, будь ласка, перепідключіться, щоб спробувати знову" + }, + "firmwareFlasherRemindBackupTitle": { + "message": "Очистити налаштування", + "description": "Warning message title before actual flashing takes place" + }, + "firmwareFlasherRemindBackup": { + "message": "Прошивка нового програмного забезпечення знищить всі налаштування. Ми наполегливо рекомендуємо зберегти резервну копію, перш ніж продовжувати.", + "description": "Warning message before actual flashing takes place" + }, + "firmwareFlasherBackup": { + "message": "Створити резервну копію", + "description": "Create a backup before actual flashing takes place" + }, + "firmwareFlasherBackupIgnore": { + "message": "Ігнорувати ризик", + "description": "Ignore creating a backup before actual flashing takes place" + }, + "ledStripHelp": { + "message": "Польотний контролер може керувати кольорами та ефектами окремих світлодіодів в смузі.
    Налаштуйте світлодіоди на сітці, налаштуйте порядок підключення дротів, а потім закріпіть світлодіоди на вашому літальному апараті відповідно до позицій на сітці. Світлодіоди без порядового номера не будуть збережені.
    Подвійний клік на кольорі дозволяє редагувати значення HSV - Hue - Saturation - Value." + }, + "ledStripButtonSave": { + "message": "Зберегти" + }, + "ledStripColorSetupTitle": { + "message": "Налаштування кольору", + "description": "Color setup title of the led strip" + }, + "ledStripH": { + "message": "H", + "description": "Abbreviation of Hue in HSV (Hue, Saturation, Brightness) color model" + }, + "ledStripS": { + "message": "S", + "description": "Abbreviation of Saturation in HSV (Hue, Saturation, Brightness) color model" + }, + "ledStripV": { + "message": "V", + "description": "Abbreviation of Brightness in HSV (Hue, Saturation, Brightness) color model" + }, + "ledStripRemainingText": { + "message": "Залишилось", + "description": "In the LED STRIP, text next the counter of leds remaining" + }, + "ledStripClearSelectedButton": { + "message": "Очистити вибрані", + "description": "In the LED STRIP, clear selected leds" + }, + "ledStripClearAllButton": { + "message": "Очистити все", + "description": "In the LED STRIP, clear all leds" + }, + "ledStripVtxOverlay": { + "message": "VTX (використовує частоту відеопередавача, щоб призначити колір)" + }, + "ledStripFunctionSection": { + "message": "Функції LED" + }, + "ledStripFunctionTitle": { + "message": "Функція" + }, + "ledStripFunctionNoneOption": { + "message": "Відсутні", + "description": "One of the modes of the Led Strip" + }, + "ledStripFunctionColorOption": { + "message": "Колір", + "description": "One of the modes of the Led Strip" + }, + "ledStripFunctionModesOption": { + "message": "Режими & Орієнтація", + "description": "One of the modes of the Led Strip" + }, + "ledStripFunctionArmOption": { + "message": "Статус взведення", + "description": "One of the modes of the Led Strip" + }, + "ledStripFunctionBatteryOption": { + "message": "Батарея", + "description": "One of the modes of the Led Strip" + }, + "ledStripFunctionRSSIOption": { + "message": "RSSI", + "description": "One of the modes of the Led Strip" + }, + "ledStripFunctionGPSOption": { + "message": "GPS", + "description": "One of the modes of the Led Strip" + }, + "ledStripFunctionRingOption": { + "message": "Кільце", + "description": "One of the modes of the Led Strip" + }, + "ledStripColorModifierTitle": { + "message": "Модифікатор кольору" + }, + "ledStripModeColorsTitle": { + "message": "Кольори режимів" + }, + "ledStripModeColorsModeOrientation": { + "message": "Орієнтація", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModeColorsModeHeadfree": { + "message": "Headfree", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModeColorsModeHorizon": { + "message": "Горизонт", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModeColorsModeAngle": { + "message": "Кут", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModeColorsModeMag": { + "message": "Компас (Mag)", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModeColorsModeBaro": { + "message": "Барометр", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripDirN": { + "message": "Північ", + "description": "North direction in Color Mode in Led Strip" + }, + "ledStripDirE": { + "message": "Схід", + "description": "East direction in Color Mode in Led Strip" + }, + "ledStripDirS": { + "message": "Південь", + "description": "South direction in Color Mode in Led Strip" + }, + "ledStripDirW": { + "message": "Захід", + "description": "West direction in Color Mode in Led Strip" + }, + "ledStripDirU": { + "message": "Вверх", + "description": "Up direction in Color Mode in Led Strip" + }, + "ledStripDirD": { + "message": "Вниз", + "description": "Down direction in Color Mode in Led Strip" + }, + "ledStripModesOrientationTitle": { + "message": "Орієнтація світлодіодів ('Режими та орієнтація') та колір", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModesSpecialColorsTitle": { + "message": "Спеціальні кольори", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModeColorsModeDisarmed": { + "message": "Охолощений", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModeColorsModeArmed": { + "message": "Взведений", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModeColorsModeAnimation": { + "message": "Анімація", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModeColorsModeBlinkBg": { + "message": "Блимати фоном", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModeColorsModeGPSNoSats": { + "message": "GPS: нема супутників", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModeColorsModeGPSNoLock": { + "message": "GPS: координати недоступні", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripModeColorsModeGPSLocked": { + "message": "GPS: координати отримано", + "description": "One of the modes in Color Mode in Led Strip" + }, + "ledStripWiring": { + "message": "Схема підключення стрічки", + "description": "One of the modes in Led Strip" + }, + "ledStripWiringMode": { + "message": "Режим упорядковування стрічки", + "description": "One of the wiring modes in Led Strip" + }, + "ledStripWiringClearControl": { + "message": "Очистити виділене", + "description": "Control button in the wiring modes in Led Strip" + }, + "ledStripWiringClearAllControl": { + "message": "Очистити ВСІ підключення", + "description": "Control button in the wiring modes in Led Strip" + }, + "ledStripWiringMessage": { + "message": "Світлодіоди без порядкового номера підключення не будуть збережені.", + "description": "Message in the wiring modes in Led Strip" + }, + "ledStripLarsonOverlay": { + "message": "Лінія Ларсона", + "description": "Larson effect switch label on LED Strip tab" + }, + "ledStripBlinkAlwaysOverlay": { + "message": "Блимати завжди" + }, + "ledStripRainbowOverlay": { + "message": "Веселка", + "description": "Rainbow effect switch label on LED Strip tab" + }, + "ledStripOverlayTitle": { + "message": "Накладання" + }, + "ledStripWarningsOverlay": { + "message": "Попередження" + }, + "ledStripIndecatorOverlay": { + "message": "Індикатор (використовує позицію в матриці)" + }, + "colorBlack": { + "message": "чорний" + }, + "colorWhite": { + "message": "білий" + }, + "colorRed": { + "message": "червоний" + }, + "colorOrange": { + "message": "помаранчевий" + }, + "colorYellow": { + "message": "жовтий" + }, + "colorLimeGreen": { + "message": "світло-зелений" + }, + "colorGreen": { + "message": "green" + }, + "colorMintGreen": { + "message": "м’ятно-зелений" + }, + "colorCyan": { + "message": "блакитний" + }, + "colorLightBlue": { + "message": "світло-синій" + }, + "colorBlue": { + "message": "синій" + }, + "colorDarkViolet": { + "message": "темно-фіолетовий" + }, + "colorMagenta": { + "message": "пурпуровий" + }, + "colorDeepPink": { + "message": "глибокий рожевий" + }, + "controlAxisRoll": { + "message": "Крен [A]" + }, + "controlAxisPitch": { + "message": "Тангаж [E]" + }, + "controlAxisYaw": { + "message": "Рискання [R]" + }, + "controlAxisThrottle": { + "message": "Тяга [T]" + }, + "controlAxisAux1": { + "message": "AUX 1" + }, + "controlAxisAux2": { + "message": "AUX 2" + }, + "controlAxisAux3": { + "message": "AUX 3" + }, + "controlAxisAux4": { + "message": "AUX 4" + }, + "controlAxisAux5": { + "message": "AUX 5" + }, + "controlAxisAux6": { + "message": "AUX 6" + }, + "controlAxisAux7": { + "message": "AUX 7" + }, + "controlAxisAux8": { + "message": "AUX 8" + }, + "controlAxisAux9": { + "message": "AUX 9" + }, + "controlAxisAux10": { + "message": "AUX 10" + }, + "controlAxisAux11": { + "message": "AUX 11" + }, + "controlAxisAux12": { + "message": "AUX 12" + }, + "controlAxisAux13": { + "message": "AUX 13" + }, + "controlAxisAux14": { + "message": "AUX 14" + }, + "controlAxisAux15": { + "message": "AUX 15" + }, + "controlAxisAux16": { + "message": "AUX 16" + }, + "pidTuningBasic": { + "message": "Базові/Акро" + }, + "pidTuningYawJumpPrevention": { + "message": "Запобігання стрибкам за рисканням" + }, + "pidTuningYawJumpPreventionHelp": { + "message": "Не дає апарату підскочити вгору в кінці повороту за рисканням. Більше число дає більше згладжування в кінці повороту (працює як старий yaw D, який не був справжнім D-регулятором як на інших осях)" + }, + "pidTuningRcExpoPower": { + "message": "Потужність RC Експо" + }, + "pidTuningRcExpoPowerHelp": { + "message": "Експонента, яка використовується під час обчислення RC Експо. У версіях Betaflight до 3.0 значення зафіксовано на 3." + }, + "pidTuningLevel": { + "message": "Кут/Горизонт" + }, + "pidTuningAltitude": { + "message": "Висота з барометра та сонара" + }, + "pidTuningMag": { + "message": "Компас/Курс" + }, + "pidTuningGps": { + "message": "Навігація GPS" + }, + "pidTuningStrength": { + "message": "Рівень" + }, + "pidTuningTransition": { + "message": "Перехід" + }, + "pidTuningHorizon": { + "message": "Горизонт" + }, + "pidTuningAngle": { + "message": "Кут" + }, + "pidTuningLevelAngleLimit": { + "message": "Обмеження нахилу" + }, + "pidTuningLevelSensitivity": { + "message": "Чутливість" + }, + "pidTuningLevelHelp": { + "message": "Нижче наведені значення змінюють поведінку режимів польоту КУТ(ANGLE) та ГОРИЗОНТ(HORIZON). Різні PID-регулятори обробляють значення по-різному. Будь ласка, перевірте документацію." + }, + "pidTuningMotorOutputLimit": { + "message": "Ліміт потужності мотора" + }, + "pidTuningMotorLimit": { + "message": "Коефіцієнт перерахунку [%]" + }, + "pidTuningMotorLimitHelp": { + "message": "Зменшення у відсотках сигналу приводу для кожного двигуна.

    Зменшує струм через електронні регулятори швидкості і нагрів двигуна при використанні акумуляторів з більшою кількістю елементів на двигунах з високою кількістью обертів на вольт.

    При використанні батареї 6S на судні з двигунами, пропелерами і налаштуваннями для 4S, спробуйте 66%; використовуючи акумулятор 4S на судні, призначеному для 3S, спробуйте 75%.

    Переконайтеся, що всі ваші компоненти витримують напругу акумулятора, який ви використовуєте." + }, + "pidTuningCellCount": { + "message": "Кількість комірок - для автоматичного переключення профілю" + }, + "pidTuningCellCountHelp": { + "message": "Автоматично активує перший профіль, у якого кількість елементів дорівнює кількості елементів підключеної батареї.

    • Переключити: Завжди переключатися на профіль з відповідною кількістю елементів, якщо він є.
    • Вимкнути: Вимкнути автоматичне перемикання профілів
    • 1S-8S: Вибрати кількість елементів для використання цим профілем
    " + }, + "pidTuningCellCountChange": { + "message": "Переключити", + "description": "Switch profile if there are no profiles matching cell count" + }, + "pidTuningCellCountStay": { + "message": "Вимкнути", + "description": "Disable cell count for this profile" + }, + "pidTuningCellCount1S": { + "message": "1S" + }, + "pidTuningCellCount2S": { + "message": "2S" + }, + "pidTuningCellCount3S": { + "message": "3S" + }, + "pidTuningCellCount4S": { + "message": "4S" + }, + "pidTuningCellCount5S": { + "message": "5S" + }, + "pidTuningCellCount6S": { + "message": "6S" + }, + "pidTuningCellCount7S": { + "message": "7S" + }, + "pidTuningCellCount8S": { + "message": "8S" + }, + "pidTuningNonProfileFilterSettings": { + "message": "Незалежні від профілю налаштування фільтра" + }, + "pidTuningFilterSlidersHelp": { + "message": "Ці повзунки регулюють фільтри гіроскопа та Д-коефіцієнта.

    Для більшої фільтрації:
    - повзунки ліворуч
    - менші граничні частоти.

    Потужніше фільтрування лишає двигуни прохолодними, усуваючи більше шуму, але більше затримуює сигнал гіроскопа та може погіршити завихрення пропелерів (propwash) або викликати резонансні коливання. Менш чутливі квадрокоптери, наприклад X-Class, найкраще працюють із сильнішою фільтрацією.

    Для меншої фільтрації:
    - Повзунки вправо
    - Вищі граничні частоти

    Менша фільтрація зменшує затримку сигналу гіроскопа та часто покращує завихрення пропелерів (propwash). Переміщення фільтра низьких частот гіроскопа вправо зазвичай є нормальним, але переміщення D-фільтра вправо зазвичай не потрібно, і це може легко призвести до сильного нагрівання моторів.", + "description": "Overall helpicon message for filter tuning sliders" + }, + "pidTuningSliderLowFiltering": { + "message": "Менше фільтрації", + "description": "Filter tuning slider low header" + }, + "pidTuningSliderDefaultFiltering": { + "message": "Фільтрація за замовчуванням", + "description": "Filter tuning slider default header" + }, + "pidTuningSliderHighFiltering": { + "message": "Більше фільтрації", + "description": "Filter tuning slider high header" + }, + "pidTuningGyroFilterSlider": { + "message": "Множник фільтра гіроскопа:", + "description": "Gyro filter tuning slider label" + }, + "pidTuningGyroFilterSliderHelp": { + "message": "Змінює межу фільтра низьких частот гіроскопа.

    Переміщення повзунка ліворуч забезпечує сильнішу фільтрацію гіроскопа (нижчу частоту відсікання).

    Переміщення повзунка праворуч зменшує фільтрацію гіроскопа ( вища частота відсікання).

    Пересуваючи повзунок праворуч, щоб покращити обробку завихрень пропелера (propwash), БУДЬТЕ ОБЕРЕЖНІ, щоб не стати занадто радикальним. Ви створите більше шуму в P і D регуляторах і можете отримати некеровані відлітання або перегорання двигунів.

    Можливо, вам доведеться перемістити повзунок ліворуч, якщо у вас проблеми з резонансом рами, погані підшипники, побиті попелери, гарячі двигуни тощо.

    Фільтрація гіроскопа застосовується перед, і додатково до фільтрації D-коефіцієнта.", + "description": "Gyro filter tuning slider helpicon message" + }, + "pidTuningGyroSliderEnabled": { + "message": "Використовуйте повзунок гіроскопа", + "description": "Disable or enable Gyro Filter Tuning Slider" + }, + "pidTuningDTermFilterSlider": { + "message": "Множник фільтра D-коефіцієнта:", + "description": "D Term filter tuning slider label" + }, + "pidTuningDTermFilterSliderHelp": { + "message": "Змінює частоту зрізу фільтра нижніх частот D-коефіцієнта.

    Переміщення повзунка ліворуч забезпечує сильнішу D-фільтрацію (нижчу частоту зрізу).

    Переміщення повзунка праворуч зменшує фільтрацію (вища частота зрізу).

    D-коефіцієнт є найбільш чутливим до шуму та резонансу елементом ПІД-регулятора. Він може посилювати високочастотний шум у 10-100 разів. Ось чому пороги D-фільтра набагато нижчі, ніж у фільтра гіроскопа.

    Фільтрація D-коефіцієнта застосовується після та на додачу до фільтрації даних гіроскопа. Фільтрація D за замовчуванням є оптимальною для більшості квадрокоптерів і рідко потребує змін.

    Переміщення цього повзунка ліворуч зменшує нагрів двигуна в шумних квадрокоптерів з високим значенням D-коефіцієнта, але ми можемо спостерігати більше завихрень пропелерів (propwash) і резонансні коливання, пов'язані з дією великої D-складової.

    Переміщення повзунка вправо не рекомендується, але це може покращити propwash на чистих від шумів збірках. Це може спричинити скрегіт двигуна під час взведення, раптові резонанси під час польоту та серйозний перегрів двигуна.", + "description": "D Term filter tuning slider helpicon message" + }, + "pidTuningDTermSliderEnabled": { + "message": "Використовуйте повзунок D-коефіцієнта", + "description": "Disable or enable D Term Filter Tuning Slider" + }, + "pidTuningPidSlidersHelp": { + "message": "Слайдери для налаштування характеристик польоту квадрокоптера (PID-коефіцієнти)

    Демпфування (D коефіцієнт): Запобігає швидким рухам, мінімізує коливання P.

    Відслідковування (P та I коефіцієнти): Збільшує відгук квадрокоптера, якщо значення занадто високе, може спричинити тремтіння або коливання.

    Відгук на рух стіків (Упередження або Feed Forward): Підвищує відгук квадрокоптера на швидкі рухи стіками.

    Дрейф - Коливання (I коефіцієнт, експертний): Точна настройка I.

    Динамічний D (D макс., експертний): Встановлює максимальне значення, до якого D може бути збільшено під час швидких рухів.

    Демпфер тангажа (D співвідношення тангажа по відношенню до нахилу, експертний): Збільшує кількість затухання для тангажа по відношенню до нахилу.

    Стабілізація тангажа (для тангажа, співвідношення P, I та F, експертний): Підвищує стабільність тангажа відносно крену.

    Майстер-множник (всі коефіцієнти, експертний): Підвищує або знижує всі PID-коефіцієнти, зберігаючи їх пропорції незмінними.", + "description": "Overall helpicon message for PID tuning sliders" + }, + "pidTuningSliderWarning": { + "message": "УВАГА: Поточне положення повзунків може спричинити самовільні польоти, пошкодження двигунів або небезпечну поведінку апарата. Будь ласка, будьте обережні під час подальших дій.", + "description": "Warning shown when tuning slider are above safe limits" + }, + "pidTuningSlidersDisabled": { + "message": "Примітка: Повзунки вимкнено, оскільки значення було змінено вручну. Натискання кнопки «$t(pidTuningSliderEnableButton.message)» знову активує повзунки. Це призведе до скидання значень, а всі незбережені зміни буде втрачено.", + "description": "Tuning sliders disabled note when manual changes are detected" + }, + "pidTuningGyroSliderDisabled": { + "message": "Примітка: Повзунок гіроскопа вимкнено, оскільки значення було змінено вручну. Натискання кнопки «$t(pidTuningGyroSliderEnableButton.message)» знову активує їх. Це призведе до скидання значень, а всі незбережені зміни буде втрачено.", + "description": "Gyro Tuning sliders disabled note when manual changes are detected" + }, + "pidTuningDTermSliderDisabled": { + "message": "Примітка: Повзунок Д-коефіцієнта вимкнено, оскільки значення було змінено вручну. Натискання кнопки «$t(pidTuningDTermSliderEnableButton.message)» знову активує їх. Це призведе до скидання значень, а всі незбережені зміни буде втрачено.", + "description": "DTerm Tuning sliders disabled note when manual changes are detected" + }, + "pidTuningPidSlidersDisabled": { + "message": "Примітка: Повзунки вимкнено. Натискання '$t(pidTuningSliderEnableButton.message)', змінить значення ПІД коефіцієнтів, щоб вони співпадали з попередньо збереженими позиціями повзунків.", + "description": "Tuning sliders disabled note" + }, + "pidTuningSliderEnableButton": { + "message": "Увімкнути повзунки", + "description": "Button label for enabling sliders" + }, + "pidTuningSlidersNonExpertMode": { + "message": "Примітка: Діапазон повзунків обмежено, оскільки ви не в експертному режимі. Цей діапазон повинен підходити для більшості збірок і новачків.", + "description": "Sliders restricted message" + }, + "pidTuningPidSlidersNonExpertMode": { + "message": "Примітка: Доступ до повзунка і діапазон обмежено, оскільки ви не в експертному режимі. Базовий режим повинен підходити для початківців і більшості збірок.", + "description": "Firmware Pid sliders restricted message" + }, + "pidTuningFilterSlidersNonExpertMode": { + "message": "Примітка: Діапазон повзунків обмежено, оскільки ви не в експертному режимі. Цей діапазон повинен підходити для більшості збірок і новачків.", + "description": "Firmware filter sliders restricted message" + }, + "pidTuningSlidersExpertSettingsDetectedNote": { + "message": "Примітка: Повзунок(и) вимкнено, оскільки поточні значення виходять за межі діапазону налаштування базового режиму. Щоб внести зміни, перейдіть у режим експерта", + "description": "Slider expert settings detected while in non-expert mode" + }, + "pidTuningSliderLow": { + "message": "Низький", + "description": "Tuning Slider Low header" + }, + "pidTuningSliderDefault": { + "message": "За замовчуванням", + "description": "Tuning Slider Default header" + }, + "pidTuningSliderHigh": { + "message": "Високий", + "description": "Tuning Slider High header" + }, + "pidTuningMasterSlider": { + "message": "Головний множник:", + "description": "Master tuning slider label" + }, + "pidTuningMasterSliderHelp": { + "message": "Збільшує всі параметри PID однаково. Не змінюйте цей повзунок, якщо у вас не закінчаться налаштування на інших повзунках. Зазвичай це потрібно лише для квадрокоптерів із низькою керованістю або високим моментом інерції (MoI), як-от X-Class або cinelifter. Занадто велике головне посилення може спричинити тремтячі коливання або перегрів двигунів.", + "description": "Master Gain tuning slider helpicon message" + }, + "pidTuningPDRatioSlider": { + "message": "Баланс ПД:", + "description": "PD balance tuning slider label" + }, + "pidTuningPDRatioSliderHelp": { + "message": "Змінює Д та Д Макс. Відносно високе значення Д зменшить відгук на рухи стіків, може перегрівати мотори, але допоможе контролювати коливання, спричинені П-коефіцієнтом та покращить коливання, спричинені завихренням пропелерів (propwash).

    Відносно низьке значення D-коефіцієнта забезпечить швидкий відгук на рух стіків, але може погіршити propwash та реакцію на зовнішні сили (вітер).", + "description": "D_term tuning slider helpicon message" + }, + "pidTuningPDGainSlider": { + "message": "Підсилення П та Д:", + "description": "P and D Gain tuning slider label" + }, + "pidTuningPDGainSliderHelp": { + "message": "Зниження значень підсилення П та Д призведе до більш прохолодних моторів, але також збільшить коливання через завихрення від пропелерів при різких стрибках потужності (анг - propwash). Надто низьке значення може зробити квадрокоптер нестабільним.

    Коефіцієнти П та Д співпрацюють для зменшення propwash.

    Вищі значення збільшать нагрівання моторів і можуть збільшити коливання під час рівномірного прямого польоту через вищі значення підсилення Д коефіцієнта.", + "description": "P and D gain tuning slider helpicon message" + }, + "pidTuningResponseSliderLegacy": { + "message": "Підсилення реакції на стіки:", + "description": "Response tuning slider label" + }, + "pidTuningResponseSliderLegacyHelp": { + "message": "Нижчі значення Упередження (анг. - FF, Feedforward) погіршать реакцію стіків і можуть призвести до повільного відскоку наприкінці фліпа або ролла через те, що квадрокоптер недостатньо швидко реагує на команди стіків, а Інтегральний коефіцієнт накопичується і викликає \"відскок І-коефіцієнта\".

    Вищі значення Упередження, навпаки, забезпечать швидку реакцію стіків на гострі рухи. Занадто великі значення Упередження (FF, Feedforward) можуть викликати перельоти і швидкі відскоки на кінці фліпа або ролла.

    Примітка:
    Функція «I-term Relax» може зупинити накопичення І-коефіцієнту при рухах стійків для квадрокоптерів з низькою керованістю або при використанні низьких значень коефіцієнта підсилення реакції на стіки.", + "description": "Stick response gain tuning slider helpicon message" + }, + "pidTuningDGainSlider": { + "message": "Демпфування:
    Д-коефіцієнт", + "description": "D Gain (Damping) tuning slider label" + }, + "pidTuningDGainSliderHelp": { + "message": "Відносно високий Д-коефіцієнт послаблює чутливість стіків та може нагрівати двигуни, але це повинно допомогти контролювати швидкі коливання та покращити завихрення від пропелерів при різких стрибках потужності - propwash.

    Відносно низький Д-коефіцієнт дає швидшу реакцію на рух стіків, але послабить боротьбу з propwash і реакцією на зовнішні сили (вітер).", + "description": "D gain balance tuning slider helpicon message" + }, + "pidTuningPIGainSlider": { + "message": "Слідування:
    Коефіцієнти П та І", + "description": "P and I Gain (Stability) tuning slider label" + }, + "pidTuningPIGainSliderHelp": { + "message": "Збільшіть ползунок \"Слідування\" (анг. - Tracking), щоб покращити реакцію квадрокоптера на ваші команди та зовнішні впливи, покращує курсову стійкість в будь-яких умовах.

    Низькі значення \"Слідування\" (Tracking) можуть призводити до частого тремтіння та відхилення квадрокоптера від курсу під час виконання команд стіків і під час propwash. Високе значення Слідування може спричинити коливання та швидкі відскоки (це може бути складно помітити, але його можна почути). Занадто велике значення \"Слідування\" може призвести до коливань та перегріву моторів.", + "description": "P and I gain tuning slider helpicon message" + }, + "pidTuningResponseSlider": { + "message": "Відповідь на стіки:
    Підсилення упередження", + "description": "Response tuning slider label" + }, + "pidTuningResponseSliderHelp": { + "message": "Нижча реакція на стіки збільшить час затримки рухів квадріка на команди та може призвести до повільного відскоку в кінці фліпа чи рола.

    Вища реакція стіків забезпечить швидкішу реакцію дрона на різкі рухи стіків. Надмірна реакція стіків може спричинити перельот наприкінці фліпа чи рола.

    Примітка:
    «Послаблення І-коефіцієнта» може зменшити відскок для дронів із низькою керованістю або якщо використовується низькі посилення реакцій стіків.", + "description": "Stick response gain tuning slider helpicon message" + }, + "pidTuningIGainSlider": { + "message": "Дрейф - коливання:
    I коефіц.", + "description": "I-term slider label" + }, + "pidTuningIGainSliderHelp": { + "message": "Збільшує або зменшує I. Більше значення I може покращити слідування в спіральних поворотах, орбітах або командах на 0% тязі. Занадто багато I, особливо з недостатньою кількістю P, може спричинити коливання або відскок після сальто/перекатів або при зниженні газу до 0%.

    Зазвичай ви хочете, щоб повзунок «Дрейф – коливання» був якомога вище, щоб підтримувати слідування квадрокоптера в спіральних поворотах, орбітах тощо... але не настільки, щоб ви почали бачити коливання при зниженні тяги до 0%.

    Примітка:
    Якщо у будь-який момент ви відчуваєте відскок, який легко побачити, переконайтеся, що \"послаблення I коефіцієнта\" (анг - I-term Relax) увімкнено, і спробуйте зменшити значення відсікання iterm_relax_cutoff.", + "description": "I-gain Gain tuning slider helpicon message" + }, + "pidTuningDMaxGainSlider": { + "message": "Динамічне демпфування:
    Д Макс.", + "description": "D Min slider label" + }, + "pidTuningDMaxGainSliderHelp": { + "message": "Збільшує Д Макс., максимальну величину, до якої Д-коефіцієнт може збільшитися під час швидших рухів.

    Для гоночних квадрокоптерів, де головний повзунок демпфування встановлено на низький рівень, щоб мінімізувати нагрівання двигуна, переміщення цього повзунка праворуч покращить контроль перельотів при швидких змінах напрямку.

    Для HD або кінематографічних квадрокоптерів, найкраще вирішити нестабільність при польоті вперед, перемістивши повзунок демпфування (а не повзунок динамічного демпфування) правіше. Перевірте нагрівання двигуна та прислухайтеся до дивних шумів під час швидких рухів стіками після того, як перемістили повзунок вправо.

    Для фрістайл-дронів, особливо важких збірок, переміщення цього повзунка правіше може допомогти контролювати перельот під час фліпів і ролів.

    Примітка:
    Загалом перельот під час фліпів і ролів відбувається через недостатній рівень «Послаблення І-Коефіцієнта» або десинхронізацію двигуна, або високу інерційність (так зване моторне насичення - коли мотори не можуть видати більше потужності для більш точної реакції). Якщо ви виявите, що переміщення повзунка \"Буст Демпфування\" праворуч не покращує перельот після фліпа чи рола, поверніть його в нормальне положення та знайдіть причину перельотів або тремтіння.", + "description": "D_min slider helpicon message" + }, + "pidTuningRollPitchRatioSlider": { + "message": "Демпфування тангажу:
    Тангаж:Крен D", + "description": "Pitch-Roll Ratio slider label" + }, + "pidTuningRollPitchRatioSliderHelp": { + "message": "Збільшує демпфування (D) ЛИШЕ на осі тангажу, тобто для тангажу відносно крену. Допомагає контролювати специфічні перельоти або відскок назад.

    Квадрокоптери з \"важчим\" моментом інерції на осі тангажа, як правило, потребують більшого демпфування (оскільки тангаж має більшу інерцію і накопичує більше імпульсу).

    Спочатку налаштуйте майстер-повзунки \"Демпфування\" та/або \"Відстеження\", доки не отримаєте хорошу поведінку осі крену. Потім використовуйте повзунки тангажу (збільшення або зменшення), щоб точно налаштувати вісь тангажу, не впливаючи на крен.", + "description": "Pitch-Roll Ratio tuning slider helpicon message" + }, + "pidTuningPitchPIGainSlider": { + "message": "Відстеження тангажа:
    співвідношення тангаж:крен П, І та У", + "description": "Pitch P & I slider label" + }, + "pidTuningPitchPIGainSliderHelp": { + "message": "Збільшує силу Слідування ЛИШЕ на осі тангажа, змінюючи значення коефіцієнтів P та I тангажа відносно коефіцієнтів крену. Дозволяє сильніше стежити за віссю тангажа відносно крену.

    Збільшити для стабілізації при тангажних тремтіннях (носа) під час різких змін тангажа або різких скидань тяги. Також подумайте про підвищення антигравітації.

    Спочатку налаштуйте головні повзунки «Демпфування» і/або «Слідування», доки не отримаєте хорошу поведінку осі крену. Потім використовуйте повзунки Тангаж (збільшення або зменшення), щоб точно налаштувати вісь Тангажа, не впливаючи на крен.", + "description": "Pitch P & I Gain tuning slider helpicon message" + }, + "pidTuningGyroLowpassFiltersGroup": { + "message": "Фільтри нижніх частот гіроскопа" + }, + "pidTuningGyroLowpassType": { + "message": "Тип фільтра нижніх частот гіроскопа 1" + }, + "pidTuningGyroLowpass": { + "message": "Фільтр нижніх частот гіроскопа 1" + }, + "pidTuningGyroLowpassHelp": { + "message": "Перший із двох фільтрів низьких частот гіроскопа.

    Використання фільтра НЧ гіроскопа 1 у динамічному режимі було важливим з попереднім кодом динамічного вузькосмугового блокуючого фільтра. НЧ фільтр гіроскопа 1 зазвичай можна повністю вимкнути у прошивці 4.3, коли використовується фільтрація RPM, за винятком випадків, коли гіроскоп не має внутрішньої апаратної фільтрації.

    У динамічному режимі, фільтрація буде сильнішою на низькій тязі, при збільшенні тяги буде зменшенням фільтрації та зменшення затримки. Перехід від низької до високої частоти відсікання відбудеться раніше, коли тяга збільшується, при вищих значеннями низькочастотної експоненційної кривої гіроскопа.

    У статичному режимі частота зрізу є фіксованою.

    Тип фільтра за замовчуванням - PT1. Фільтрація вищого порядку потрібна рідко.", + "description": "Help icon for the Gyro Lowpass 1 Filter" + }, + "pidTuningGyroLowpassMode": { + "message": "Режим" + }, + "pidTuningLowpassStatic": { + "message": "СТАТИЧНИЙ" + }, + "pidTuningLowpassDynamic": { + "message": "ДИНАМІЧНИЙ" + }, + "pidTuningLowpassFilterType": { + "message": "Тип фільтра" + }, + "pidTuningGyroLowpassDyn": { + "message": "Динамічний фільтр нижніх частот гіроскопа" + }, + "pidTuningMinCutoffFrequency": { + "message": "Мін. частота зрізу [Hz]" + }, + "pidTuningMaxCutoffFrequency": { + "message": "Макс. частота зрізу [Hz]" + }, + "pidTuningGyroLowpassDynType": { + "message": "Фільтр нижніх частот гіроскопа 1, динамічний тип" + }, + "pidTuningGyroLowpass2": { + "message": "Фільтр нижніх частот гіроскопа 2" + }, + "pidTuningGyroLowpass2Help": { + "message": "Другий із двох фільтрів низьких частот гіроскопа.

    Цей фільтр працює в циклі гіроскопа, фільтруючи сигнал перед тим, як він потрапить у цикл ПІД. Фільтр завжди знаходиться в статичному режимі (з фіксованою частотою зрізу).

    Якщо частота циклу ПІД менша за частоту циклу гіроскопа, наприклад, цикл ПІД 4тис при частоті циклу гіроскопа 8тис, цей фільтр слід лишити, щоб запобігти проблеми з аліасингом через зменшення частоти 8тис->4тис.

    Використання тільки одного низькочастотного фільтра гіроскопа 2, налаштованого десь між 500-1000 Гц, добре працює для Betaflight 4.3 або новішої версії, для чистих збірок з активним фільтром RPM і, як мінімум, D-фільтром за замовчуванням.", + "description": "Gyro lowpass filter helpicon message" + }, + "pidTuningGyroLowpassFilterHelp": { + "message": "Фільтр низьких частот гіроскопа зменшує високочастотний шум щоб тримати шум подалі від циклу ПІД. Існує два фільтри для показань гіроскопа, обидва налаштовуються окремо й активні за замовчуванням.

    При фільтрації RPM, повзунок гіроскопа може часто бути зміщеним трохи правіше, або, у якості альтернативи, один статичний фільтр низьких частот гіроскопа на 500Гц може бути достатнім.

    Дрон буде мати менше завихрень (propwash) з меншою кількістю затримок на фільтрацію.

    Завжди перевіряйте перегрів моторів коли зміщуєте повзунки вправо. При мінімальній фільтрації даних від гіроскопу, важливо мати достатньо Д фільтрації (більші значення Д-коефіцієнту)! Будьте обережні!", + "description": "Gyro lowpass filter helpicon message" + }, + "pidTuningDTermLowpassFilterHelp": { + "message": "Низькочастотні фільтри для D-коефіцієнта приглушують шуми вищої частоти та резонанси, які в протилежному випадку могли б підсилитися за допомогою коефіцієнта D.

    Існують два фільтри D, і їх вплив є адитивним. Обидва необхідні практично для всіх квадрокоптерів, хоча один фільтр PT2 може бути використаний замість двох фільтрів PT1.

    Загалом, квадрокоптер буде краще літати та матиме менше propwash, коли його налаштовано з мінімальною затримкою фільтрації (повзунки вправо, вищі значення зрізу). Однак, зокрема у випадку фільтрів D, повзунки справа можуть суттєво збільшити ризик перегріву моторів.

    Важливо мати достатньо фільтрації D, оскільки без неї можуть легко згоріти мотори - будьте обережні!", + "description": "D-term lowpass filter helpicon message" + }, + "pidTuningGyroNotchFiltersGroup": { + "message": "Вузькосмуговий режекторний фільтр гіроскопа" + }, + "pidTuningGyroNotchFilter": { + "message": "Вузькосмуговий режекторний фільтр гіроскопа 1" + }, + "pidTuningGyroNotchFilterHelp": { + "message": "Застосовує статичний (сталої частоти) режектроний фільтр до гіроскопа на вказаній центральній частоті.

    Це може бути корисним для ізольованих резонансів на сталій частоті, які впливають як на параметр P, так і на параметр D.

    Щоб фільтр приносив користь, резонансна частота повинна залишатися постійною в усьому діапазоні регулятора тяги.

    Ширина зрізу визначається зрізовою частотою. Зрізова частота зазвичай повинна бути встановлена між 10% та 40% нижче центральної частоти. Використовуйте найтісніший діапазон фільтра, що контролює резонанс. Уникайте встановлення зрізових фільтрів нижче 100 Гц, крім випадків спеціальних обставин.

    Статичні зрізові фільтри рідко потрібні у версії 4.3." + }, + "pidTuningGyroNotchFilter2": { + "message": "Вузькосмуговий режекторний фільтр гіроскопа 2" + }, + "pidTuningGyroNotchFilter2Help": { + "message": "Застосовує другий статичний (постійної частоти) режекторний фільтр до сигналу гіроскопа.

    Це рідко потрібно і повинно використовуватися тільки як останній варіант для боротьби з другою фіксованою резонансною частотою, яка не може бути контрольована іншими способами." + }, + "pidTuningCenterFrequency": { + "message": "Центральна частота [Hz]" + }, + "pidTuningCutoffFrequency": { + "message": "Частота зрізу [Hz]" + }, + "pidTuningNotchFilterHelp": { + "message": "Режекторний фільтр — це симетричний, вузький, високочастотний фільтр із значенням центру і значенням зрізу у якості параметрів.

    Частота центру — це центральна частота фільтра. Значення зрізу вказує на нижню частоту, на якій послаблення сингалу -3 дБ.

    Наприклад, зріз фільтра 160 з центром 260 створює широкий спектральний зріз з діапазоном -3 дБ від 160 до 360 Гц та найбільшим послабленням навколо 260 Гц.", + "description": "Notch filter helpicon message" + }, + "pidTuningDynamicNotchFilterGroup": { + "message": "Динамічний вузькосмуговий режекторний фільтр" + }, + "pidTuningDynamicNotchFilterHelp": { + "message": "Динамічний режекторний фільтр відслідковує піки шуму моторів та розташовує зрізові фільтри на цих частотах, незалежно для кожної осі." + }, + "pidTuningMultiDynamicNotchFilterHelp": { + "message": "Динамічний режекторний фільтр (нотч-фільтр) відстежує пікові частоти шуму гіроскопа та розміщує від одного до п’яти режекторних фільтрів із центром на цих частотах на кожній осі." + }, + "pidTuningDynamicNotchFilterDisabledWarning": { + "message": "Примітка: динамічний вузькосмуговий фільтр вимкнено. Щоб налаштувати та використовувати його, увімкніть функцію «DYNAMIC_FILTER» у розділі «$t(configurationFeatures.message)» вкладки «$t(tabConfiguration.message)». Також переконайтеся, що частота циклу PID становить принаймні 2 кГц." + }, + "pidTuningDynamicNotchFilterNyquistWarning": { + "message": "Динамічний вузькосмуговий фільтр вимкнено. Щоб використовувати його, переконайтеся, що частота циклу PID встановлена принаймні на рівні 2 кГц на вкладці '$t(tabConfiguration.message)'." + }, + "pidTuningDynamicNotchRange": { + "message": "Діапазон динамічного режекторного фільтру" + }, + "pidTuningDynamicNotchWidthPercent": { + "message": "Відсоток ширини динамічного зрізу" + }, + "pidTuningDynamicNotchQ": { + "message": "Добротність (Q factor)" + }, + "pidTuningDynamicNotchMinHz": { + "message": "Найнижча частота [Hz]" + }, + "pidTuningDynamicNotchMaxHz": { + "message": "Найвища частота [Hz]" + }, + "pidTuningDynamicNotchCount": { + "message": "Кількість зрізових фільтрів" + }, + "pidTuningDynamicNotchRangeHelp": { + "message": "Динамічний фільтр зрізу має три діапазони частот, в яких він може працювати: НИЗЬКИЙ (80-330 Гц) для квадрокоптерів з нижчою швидкістю обертання, наприклад, 6+ дюймів, СЕРЕДНІЙ (140-550 Гц) для звичайного квадрокоптера розміром 5 дюймів і ВИСОКИЙ (230-800 Гц) для дуже швидкого квадрокоптера розміром 2.5-3 дюйма. Опція \"АВТО\" вибирає діапазон залежно від значення максимальної частоти зрізу фільтра динамічного нижньочастотного фільтра гіроскопа 1." + }, + "pidTuningDynamicNotchWidthPercentHelp": { + "message": "Це встановлює ширину між двома динамічними зрізовими фільтрами. Якщо встановити його на значення 0, це вимкне другий динамічний зрізовий фільтр і зменшить затримку фільтра, однак це може призвести до підвищення температури двигунів." + }, + "pidTuningDynamicNotchQHelp": { + "message": "Добротність впливає на ширину динамічних зрізових фільтрів. Високе значення робить їх вужчими і точнішими, а низьке значення робить їх ширшими і більшими. Дуже низьке значення суттєво збільшить затримку фільтра." + }, + "pidTuningDynamicNotchMinHzHelp": { + "message": "Встановіть це на найнижчу частоту вхідного шуму, яку потрібно контролювати динамічним зрізом." + }, + "pidTuningDynamicNotchMaxHzHelp": { + "message": "Встановіть його на найвищу частоту вхідного шуму, яку потрібно контролювати динамічним зрізом." + }, + "pidTuningDynamicNotchCountHelp": { + "message": "Встановлює кількість динамічних зрізових фільтрів на кожній осі. З включеним фільтром обертів на хвилину (RPM), рекомендується встановити значення 1 або 2. Без RPM-фільтру гіроскопа, рекомендується встановити значення 4 або 5. Нижчі значення зменшать затримку на фільтрацію, але можуть збільшити температуру моторів." + }, + "pidTuningRpmFilterGroup": { + "message": "Фільтр гіроскопа з урахуванням об/хв моторів", + "description": "Header text for the RPM Filter group" + }, + "pidTuningRpmFilterHelp": { + "message": "Фільтрація на основі частоти обертання моторів - це набір динамічних режекторних фільтрів для даних від гіроскопа, який використовує дані телеметрії ESC для точного видалення шуму моторів.

    ВАЖЛИВО: Регулятор швидкості (ESC) повинен підтримувати двосторонній протокол DShot, а значення $t(configurationMotorPoles.message) на вкладці $t(tabMotorTesting.message) повинне бути правильним, щоб цей фільтр працював.", + "description": "Header text for the RPM Filter group" + }, + "pidTuningRpmHarmonics": { + "message": "Кількість гармонік у RPM-фільтрі гіроскопа", + "description": "Text for one of the parameters of the RPM Filter" + }, + "pidTuningRpmHarmonicsHelp": { + "message": "Кількість гармонік на кожний двигун. Значення 3 (рекомендоване для більшості квадрокоптерів) створить 3 режекторні фільтри на кожний двигун для кожної осі, загалом 36 зрізів. По одному на основну частоту кожного двигуна та на дві гармоніки, на частотах кратних базовій.", + "description": "Help text for one of the parameters of the RPM Filter" + }, + "pidTuningRpmMinHz": { + "message": "Мінімальна частота RPM-фільтра гіроскопа [Hz]", + "description": "Text for one of the parameters of the RPM Filter" + }, + "pidTuningRpmMinHzHelp": { + "message": "Мінімальна частота, яка буде використовуватися RPM-фільтром гіроскопа.", + "description": "Help text for one of the parameters of the RPM Filter" + }, + "pidTuningFilterSettings": { + "message": "Налаштування фільтра, залежні від профілю" + }, + "pidTuningDTermLowpass": { + "message": "Фільтр нижніх частот Д-коефіцієнта 1" + }, + "pidTuningDTermLowpassHelp": { + "message": "Перший із двох фільтрів низьких частот Д-коефіцієнта.

    У динамічному режимі фільтрація буде сильнішою на малій тязі, з меншою фільтрацією і меншою затримкою при збільшенні тяги. Це допомагає контролювати скрегіт двигуна або самовільні польоти під час заживлення, одночасно зменшуючи затримку та завихрення від пропелерів при різких стрибках потужності після зльоту. Перехід від низького до високого зрізу відбудеться раніше, коли тягу буде збільшено, з більш високими значеннями експозиції низьких частот Д-коефіцієнта.

    У статичному режимі частота зрізу є фіксованою. Це не рекомендовано для D-фільтрації.

    Тип фільтра за замовчуванням — PT1, хоча деякі користувачі використовують тут лише один динамічний фільтр Biquad без другого PT1.

    Зміни, які призводять до зменшення D-фільтрації, можуть спричинити серйозний перегрів двигуна або самовільні вильоти під час взведення.", + "description": "Help icon for the DTerm Lowpass 1 Filter" + }, + "pidTuningDTermLowpassMode": { + "message": "Режим" + }, + "pidTuningDTermLowpass2": { + "message": "Фільтр нижніх частот Д-коефіцієнта 2" + }, + "pidTuningDTermLowpass2Help": { + "message": "Другий з двох фільтрів низьких частот Д-коефіцієнта.

    Цей фільтр завжди працює в статичному режимі (з фіксованим відсіченням). Для D-фільтрації потрібні принаймні два фільтри низьких частот PT1 або один фільтр другого порядку.

    Зазвичай це обмеження встановлюється на найвище значення динамічного діапазону низьких частот 1. Це забезпечує контроль шуму другого порядку вище цієї частоти.

    Зміни, які призводять до зменшення D-фільтрації, можуть спричинити серйозний перегрів двигуна або самовільні вильоти під час взведення.", + "description": "Help icon for the DTerm Lowpass 2 Filter" + }, + "pidTuningDTermLowpassFiltersGroup": { + "message": "Низькочастотні фільтри Д-коефіцієнта" + }, + "pidTuningDTermLowpassType": { + "message": "Тип фільтра" + }, + "pidTuningStaticCutoffFrequency": { + "message": "Статична частота зрізу [Hz]" + }, + "pidTuningDTermLowpass2Type": { + "message": "Тип фільтра" + }, + "pidTuningDTermLowpassDyn": { + "message": "Динамічний фільтр нижніх частот D-коефіцієнта" + }, + "pidTuningDTermLowpassDynExpo": { + "message": "Динамічна експоненційна крива" + }, + "pidTuningDTermLowpassDynType": { + "message": "Тип динамічного фільтру" + }, + "pidTuningDTermNotchFiltersGroup": { + "message": "Режекторний фільтр D-коефіцієнта" + }, + "pidTuningDTermNotchFiltersGroupHelp": { + "message": "Застосовує статичний (фіксованої частоти) зрізовий фільтр до даних D-коефіцієнта на вказаній центральній частоті.

    Ширина зрізу визначається зрізовою частотою.

    Це може бути корисним для ізольованих, постійних резонансів, які посилюються параметром D.

    Зберігайте зріз якомога ближче до центральної частоти. Уникайте встановлення зрізових фільтрів нижче 100 Гц, крім випадків з низькими обертами двигуна." + }, + "pidTuningYawLowpassFiltersGroup": { + "message": "Фільтр низьких частот рискання" + }, + "pidTuningYawLowpassFiltersGroupHelp": { + "message": "Застосовує фільтр PT1 на вказаній частоті відсікання для даних гіроскопа по вісі рискання." + }, + "pidTuningVbatPidCompensation": { + "message": "ПІД компенсація напруги батареї" + }, + "pidTuningVbatPidCompensationHelp": { + "message": "Збільшує значення PID для компенсації, коли напруга батареї знижується. Це дозволяє зберігати більш сталі характеристики протягом усього польоту. Кількість компенсації, яка застосовується, розраховується на основі значення $t(powerBatteryMaximum.message), встановленого на вкладці $t(tabPower.message), тому переконайтеся, що це значення встановлене правильно." + }, + "pidTuningVbatSagCompensation": { + "message": "Компенсація падіння напруги батареї" + }, + "pidTuningVbatSagCompensationHelp": { + "message": "Забезпечує стабільність тяги та характеристик PID у діапазоні корисної напруги батареї, збільшуючи потужність моторів, коли напруга батареї падає.

    Ступінь компенсації може варіюватися від 0 до 100%. Рекомендується повна компенсація (100%).

    Відвідайте цей вікі-запис, щоб дізнатися більше." + }, + "pidTuningVbatSagValue": { + "message": "%" + }, + "pidTuningThrustLinearization": { + "message": "Лінеаризація тяги" + }, + "pidTuningThrustLinearizationHelp": { + "message": "Зменшує інерційність при збільшенні тяги та чутливість.

    Особливо корисно для вупів і 48k електронних регуліторів швидкості (анг. - ESC). Не має жодного ефекту при вищих значеннях тяги.

    Ступінь компенсації може варіюватися від 0 до 150%. Зазвичай достатньо 30-40%." + }, + "pidTuningThrustLinearValue": { + "message": "%" + }, + "pidTuningItermRotation": { + "message": "Обертання І-коефіцієнта" + }, + "pidTuningItermRotationHelp": { + "message": "Правильно обертає поточний вектор I-коефіцієнта відносно інших осей, коли квадрокоптер обертається при безперервному рисканні під час кренів, а також при виконанні воронок та інших трюків. Дуже цінується акропілотами LOS." + }, + "pidTuningSmartFeedforward": { + "message": "Розумне упередження" + }, + "pidTuningSmartFeedforwardHelp": { + "message": "Знижує вплив Упередження в PID. Коли одночасно активні P і F(Упередження), використовується лише більший з них, щоб уникнути перельотів без необхідності підвищення значення D-коефіцієнта, а також знижує ефект чутливості, створений коефіцієнтом упередження при його додаванні до P-коефіцієнта." + }, + "pidTuningItermRelax": { + "message": "Послаблення І-коефіцієнта" + }, + "pidTuningItermRelaxHelp": { + "message": "Пригнічує накопичення I-коефіцієнта при швидких рухах, зменшуючи відскок в кінці ролів, фліпів та інших швидких рухів.

    Режим Setpoint реагує на згладжені дані про положення стіків і найкраще працює для чутливих квадрокоптерів.

    Режим Gyro може бути корисним для дуже повільно реагуючих квадрокоптерів.

    Зазвичай послаблення I-коефіцієнта не слід застосовувати для рискання." + }, + "pidTuningItermRelaxAxes": { + "message": "Вісі", + "description": "Iterm Relax Axes selection" + }, + "pidTuningOptionRP": { + "message": "Кр+Тан" + }, + "pidTuningOptionRPY": { + "message": "Кр+Тан+Р" + }, + "pidTuningItermRelaxAxesOptionRPInc": { + "message": "Кр+Тан (тільки приріст)" + }, + "pidTuningItermRelaxAxesOptionRPYInc": { + "message": "Кр+Тан+Р (тільки приріст)" + }, + "pidTuningItermRelaxType": { + "message": "Тип", + "description": "Iterm Relax Type selection" + }, + "pidTuningItermRelaxTypeOptionGyro": { + "message": "Гіроскоп" + }, + "pidTuningItermRelaxTypeOptionSetpoint": { + "message": "Задане значення" + }, + "pidTuningItermRelaxCutoff": { + "message": "Відсікання", + "description": "Cutoff value of the I Term Relax" + }, + "pidTuningItermRelaxCutoffHelp": { + "message": "Нижчі значення означають сильніше пригнічення відскоку після фліпів і ролів в квадрокоптерах з високою інерційністю. Вищі значення підвищують високу точність повороту для перегонів.

    Установіть 30-40 для перегонів, 15 для легкокерованих фрістайл моделей, 10 для важких квадрокоптерів фрістайл, 3-5 для X-класу." + }, + "pidTuningAbsoluteControlGain": { + "message": "Абсолютний контроль" + }, + "pidTuningAbsoluteControlGainHelp": { + "message": "Ця функція вирішує деякі основні проблеми $t(pidTuningItermRotation.message) і може замінити її у певний момент. Вона накопичує абсолютну похибку гіроскопа у координатах квадрокоптера і підмішує пропорційну поправку до заданого значення.

    Повинен бути увімкнений AirMode і $t(pidTuningItermRelax.message) (для $t(pidTuningOptionRP.message)). У поєднанні з $t(pidTuningIntegratedYaw.message) ви можете встановити $t(pidTuningItermRelax.message) увімкненим для $t(pidTuningOptionRPY.message)." + }, + "pidTuningThrottleBoost": { + "message": "Підвищення тяги" + }, + "pidTuningThrottleBoostHelp": { + "message": "Тимчасово підвищує тягу при швидких рухах стіку тяги, що забезпечує більш негайну реакцію на підвищення тяги." + }, + "pidTuningIdleMinRpm": { + "message": "Значення динамічного холостого ходу [* 100 об/хв]" + }, + "pidTuningIdleMinRpmHelp": { + "message": "Динамічний холостий хід покращує керування при низьких оборотах і зменшує ризик десинхронізації моторів.

    Це покращує вплив ПІД-регулювання, стабільність при нульовій тязі, час виконання фігур коли дрон в перевернутому стані та гальмування моторами.

    Мінімальна кількість обертів для динамічного холостого ходу повинна бути приблизно 3000 - 3500 об/хв. Для версії 4.2 встановіть низьке значення холостого ходу DShot, наприклад, 1%. У версії 4.3 змінювати значення холостого ходу DShot не потрібно.

    Для додаткової інформації, відвідайте цю сторінку вікі." + }, + "pidTuningIdleMinRpmDisabled": { + "message": "Динамічний холостий хід вимкнено, оскільки Dshot телеметрія вимкнена" + }, + "pidTuningAcroTrainerAngleLimit": { + "message": "Обмеження кута для Acro Trainer" + }, + "pidTuningAcroTrainerAngleLimitHelp": { + "message": "Допомагає пілотам вивчити польоти в режимі \"акро\" шляхом обмеження кута, який квадрокоптер може досягти. Дійсні обмеження становлять від 10 до 80 градусів. Цей режим повинен бути активований за допомогою перемикача на вкладці $t(tabAuxiliary.message)." + }, + "pidTuningIntegratedYaw": { + "message": "Інтегроване рискання" + }, + "pidTuningIntegratedYawCaution": { + "message": "УВАГА: якщо ввімкнете цю функцію, необхідно налаштувати PID рискання відповідно. Більше інформації тут" + }, + "pidTuningIntegratedYawHelp": { + "message": "Інтегроване рискання, інтегрує значення P, I та D рискання, дозволяючи налаштовувати значення P, I та D для рискання, подібно до того, як налаштовують тангаж та крен.

    Потрібен дуже малий I, оскільки інтегрований P діє подібно до I, а інтегрований D - до P.

    ПРИМІТКА: для застосування інтегрованого рискання потрібно використовувати Absolute Control, оскільки при інтегрованому рисканні не потрібний I." + }, + "configHelp2": { + "message": "Довільний поворот плати на кут у градусах дозволяє встановити її боком / догори дригом / поверненою. При використанні зовнішніх датчиків, використовуйте корекцію датчиків (гіроскоп, акселерометр, компас) для визначення положення датчиків незалежно від орієнтації плати. " + }, + "failsafeFeaturesHelpOld": { + "message": "Конфігурація безаварійності (failsafe) зазнала значних змін. Використовуйте Betaflight v1.12.0+, щоб увімкнути вдосконалену панель налаштувань." + }, + "failsafePaneTitleOld": { + "message": "Безаварійність приймача" + }, + "failsafeFeaturesHelpNew": { + "message": "Безаварійність має два етапи. Етап 1 спрацьовує, коли канал має недійсну довжину імпульсів, приймач повідомляє про перехід у режим безаварійності або коли зовсім немає сигналу від приймача, налаштування переходу на аварійний режим застосовуються до усіх каналів і надається короткий проміжок часу для відновлення. Етап 2 спрацьовує, коли стан помилки займає більше часу, ніж налаштований час спрацьовування, коли судно взведене, усі канали залишатимуться на застосованих аварійних налаштуваннях, якщо це не буде скасовано вибраною процедурою.
    Примітка: перед активацією етапу 1, налаштування аварійних значень каналів також застосовуються до окремих каналів AUX, які мають неправильні довжини імпульсів." + }, + "failsafePulsrangeTitle": { + "message": "Дійсні налаштування діапазону імпульсу" + }, + "failsafePulsrangeHelp": { + "message": "Імпульси, коротші за мінімальний або довші за максимальний, є недійсними та ініціюють застосування індивідуальних резервних налаштувань каналу для каналів AUX або перехід до етапу 1 для каналів польоту" + }, + "failsafeRxMinUsecItem": { + "message": "Мінімальна довжина" + }, + "failsafeRxMaxUsecItem": { + "message": "Максимальна довжина" + }, + "failsafeChannelFallbackSettingsTitle": { + "message": "Налаштування резервних каналів" + }, + "failsafeChannelFallbackSettingsHelp": { + "message": "Ці налаштування застосовуються до недійсних окремих каналів AUX або до всіх каналів під час переходу до етапу 1. Примітка: значення зберігаються з кроком 25 мкс, тому невеликі зміни зникають" + }, + "failsafeChannelFallbackSettingsAuto": { + "message": "Авто означає, що крен, тангаж і рискання по центру і тяга низька. Утримання означає збереження останнього, отриманого хорошого значення" + }, + "failsafeChannelFallbackSettingsHold": { + "message": "Hold означає збереження останнього прийнятного значення. Set означає, що використовуватиметься вказане тут значення" + }, + "failsafeStageTwoSettingsTitle": { + "message": "Етап 2 - Налаштування" + }, + "failsafeDelayItem": { + "message": "Час затримки після втрати сигналу перед активацією другого етапу безаварійності [seconds]" + }, + "failsafeDelayHelp": { + "message": "Час очікування на відновлення в першому етапі" + }, + "failsafeThrottleLowItem": { + "message": "Затримка перед вимиканням при низькій тязі [seconds]" + }, + "failsafeThrottleLowHelp": { + "message": "Просто розармте літальний апарат замість виконання обраної процедури безаварійності, якщо тяга була низька протягом цього часу" + }, + "failsafeThrottleItem": { + "message": "Значення тяги, яке використовується під час посадки" + }, + "failsafeOffDelayItem": { + "message": "Затримка вимкнення моторів під час безаварійності [seconds]" + }, + "failsafeOffDelayHelp": { + "message": "Час у режимі приземлення, поки мотори не будуть вимкнені і дрон не буде розармлений" + }, + "failsafeSubTitle1": { + "message": "Етап 2 - Процедура безаварійності" + }, + "failsafeProcedureItemSelect1": { + "message": "Приземлитись" + }, + "failsafeProcedureItemSelect2": { + "message": "Впасти" + }, + "failsafeProcedureItemSelect4": { + "message": "GPS порятунок" + }, + "failsafeGpsRescueItemAngle": { + "message": "Кут" + }, + "failsafeGpsRescueItemInitialAltitude": { + "message": "Початкова висота (метри)" + }, + "failsafeGpsRescueItemDescentDistance": { + "message": "Відстань для спуску (метри)" + }, + "failsafeGpsRescueItemMinDth": { + "message": "Мінімальна відстань до точки зльоту (метри)" + }, + "failsafeGpsRescueItemMinDthHelp": { + "message": "Мінімальна відстань до точки зльоту, потрібна для активації функції GPS порятунок" + }, + "failsafeGpsRescueItemGroundSpeed": { + "message": "Швидкість на землі (м/с)" + }, + "failsafeGpsRescueItemThrottleMin": { + "message": "Мінімум тяги" + }, + "failsafeGpsRescueItemThrottleMax": { + "message": "Максимум тяги" + }, + "failsafeGpsRescueItemThrottleHover": { + "message": "Тяга зависання" + }, + "failsafeGpsRescueItemAscendRate": { + "message": "Швидкість підйому (м/с)" + }, + "failsafeGpsRescueItemDescendRate": { + "message": "Швидкість зниження (м/с)" + }, + "failsafeGpsRescueItemMinSats": { + "message": "Мінімум супутників" + }, + "failsafeGpsRescueItemAllowArmingWithoutFix": { + "message": "Дозволити взведення без отримання координат GPS - УВАГА: функція \"GPS порятунок\" буде недоступна" + }, + "failsafeGpsRescueItemAltitudeMode": { + "message": "Режим висоти" + }, + "failsafeGpsRescueItemAltitudeModeMaxAlt": { + "message": "Максимальна висота" + }, + "failsafeGpsRescueItemAltitudeModeFixedAlt": { + "message": "Фіксована висота" + }, + "failsafeGpsRescueItemAltitudeModeCurrentAlt": { + "message": "Поточна висота" + }, + "failsafeGpsRescueItemSanityChecks": { + "message": "Перевірки придатності" + }, + "failsafeGpsRescueItemSanityChecksOff": { + "message": "Вимкнено" + }, + "failsafeGpsRescueItemSanityChecksOn": { + "message": "Увімкнено" + }, + "failsafeGpsRescueItemSanityChecksFSOnly": { + "message": "Тільки безаварійність" + }, + "failsafeKillSwitchItem": { + "message": "Кнопка аварійного відключення (налаштуйте режим Безаварійності на вкладці режимів)" + }, + "failsafeKillSwitchHelp": { + "message": "Встановіть цю опцію, щоб зробити перемикач безаварійності (на вкладці режимів) у якості тумблера відключення дрона, обходячи обрану процедуру безаварійності. Примітка: Ввімкнений перемикач безаварійного вбивання дрона блокує взведення" + }, + "failsafeSwitchTitle": { + "message": "Перемикач безаварійності" + }, + "failsafeSwitchModeItem": { + "message": "Перемикач дії безаварійності" + }, + "failsafeSwitchModeHelp": { + "message": "Ця опція визначає, що станеться, коли активується режим безаварійності (анг. - Failsafe) через AUX перемикач:
    \nЕтап 1 - активує перший етап аварійного режиму. Це корисно, якщо ви хочете симулювати точну поведінку безаварійності при втраті сигналу.
    \nЕтап 2 - пропускає перший етап і відразу активує процедуру другого етапа.
    \nВбити - миттєво розармлює (ваш апарат упаде)" + }, + "failsafeSwitchOptionStage1": { + "message": "Етап 1" + }, + "failsafeSwitchOptionStage2": { + "message": "Етап 2" + }, + "failsafeSwitchOptionKill": { + "message": "Вбити" + }, + "powerButtonSave": { + "message": "Зберегти" + }, + "powerFirmwareUpgradeRequired": { + "message": "Необхідно оновити прошивку. Налаштування батареї/струму/напруги з використанням API < 1.33.0 (Betaflight release <= 3.17) не підтримуються." + }, + "powerBatteryVoltageMeterSource": { + "message": "Джерело вимірювання напруги" + }, + "powerBatteryVoltageMeterTypeNone": { + "message": "Відсутнє" + }, + "powerBatteryVoltageMeterTypeAdc": { + "message": "Вбудований АЦП" + }, + "powerBatteryVoltageMeterTypeEsc": { + "message": "Датчик з ESC" + }, + "powerBatteryCurrentMeterSource": { + "message": "Джерело вимірювання сили струму" + }, + "powerBatteryCurrentMeterTypeNone": { + "message": "Відсутнє" + }, + "powerBatteryCurrentMeterTypeAdc": { + "message": "Вбудований АЦП" + }, + "powerBatteryCurrentMeterTypeVirtual": { + "message": "Вітруальне" + }, + "powerBatteryCurrentMeterTypeEsc": { + "message": "Датчик з ESC" + }, + "powerBatteryCurrentMeterTypeMsp": { + "message": "Датчик MSP/OSD Slave" + }, + "powerBatteryMinimum": { + "message": "Мін. напруга комірки" + }, + "powerBatteryMaximum": { + "message": "Макс. напруга комірки" + }, + "powerBatteryWarning": { + "message": "Попередження про напругу комірки" + }, + "powerCalibrationManagerButton": { + "message": "Калібрування" + }, + "powerCalibrationManagerTitle": { + "message": "Менеджер калібрування" + }, + "powerCalibrationManagerHelp": { + "message": "Для калібрування використовуйте мультиметр для вимірювання фактичної напруги / струму на вашому судні (з підключеною батареєю) і введіть значення нижче. Потім, з тією ж батареєю, все ще підключеною, натисніть [Calibrate]." + }, + "powerCalibrationManagerNote": { + "message": "Примітка: Перед калібруванням масштабу переконайтесь, що правильно встановлено дільник і множник для напруги та зсув для струму.
    Поки значення залишаються 0, калібрування не буде застосовано.
    Не забудьте зняти пропелери перед підключенням батареї!" + }, + "powerCalibrationManagerWarning": { + "message": "Увага: Батарея не підключена або джерела вимірювань напруги та струму не налаштовані правильно. Переконайтеся, що значення напруги та/або струму більше 0. В іншому випадку ви не зможете провести калібрування за допомогою цього інструменту." + }, + "powerCalibrationManagerSourceNote": { + "message": "Увага: Джерела напруги та/або струму були змінені, але не збережені. Перед тим, як пробувати калібрувати, встановіть правильні джерела вимірювань та збережіть їх." + }, + "powerCalibrationManagerConfirmationTitle": { + "message": "Підтвердження менеджеру калібрування" + }, + "powerCalibrationSave": { + "message": "Калібрувати" + }, + "powerCalibrationApply": { + "message": "Застосувати калібрування" + }, + "powerCalibrationDiscard": { + "message": "Відмінити калібрування" + }, + "powerCalibrationConfirmHelp": { + "message": "Нові відкалібровані масштаби показані тут.
    Застосування їх встановить масштаби, але не збереже їх.

    Після збереження переконайтесь, що нові значення напруги та струму правильні.
    " + }, + "powerVoltageHead": { + "message": "Вольтметр" + }, + "powerVoltageWarning": { + "message": "Увага: Значення обмежені 25.5 В." + }, + "powerVoltageValue": { + "message": "$1 В" + }, + "powerVoltageCalibration": { + "message": "Вимірювана напруга" + }, + "powerVoltageCalibratedScale": { + "message": "Відкалібрований масштаб напруги:" + }, + "powerVoltageId10": { + "message": "Акумулятор" + }, + "powerVoltageId20": { + "message": "5В" + }, + "powerVoltageId30": { + "message": "9В" + }, + "powerVoltageId40": { + "message": "12В" + }, + "powerVoltageId50": { + "message": "ESC разом" + }, + "powerVoltageId60": { + "message": "ESC мотора 1" + }, + "powerVoltageId61": { + "message": "ESC мотора 2" + }, + "powerVoltageId62": { + "message": "ESC мотора 3" + }, + "powerVoltageId63": { + "message": "ESC мотора 4" + }, + "powerVoltageId64": { + "message": "ESC мотора 5" + }, + "powerVoltageId65": { + "message": "ESC мотора 6" + }, + "powerVoltageId66": { + "message": "ESC мотора 7" + }, + "powerVoltageId67": { + "message": "ESC мотора 8" + }, + "powerVoltageId68": { + "message": "ESC мотора 9" + }, + "powerVoltageId69": { + "message": "ESC мотора 10" + }, + "powerVoltageId70": { + "message": "ESC мотора 11" + }, + "powerVoltageId71": { + "message": "ESC мотора 12" + }, + "powerVoltageId80": { + "message": "Комірка 1" + }, + "powerVoltageId81": { + "message": "Комірка 2" + }, + "powerVoltageId82": { + "message": "Комірка 3" + }, + "powerVoltageId83": { + "message": "Комірка 4" + }, + "powerVoltageId84": { + "message": "Комірка 5" + }, + "powerVoltageId85": { + "message": "Комірка 6" + }, + "powerVoltageScale": { + "message": "Масштаб" + }, + "powerVoltageDivider": { + "message": "Значення дільника" + }, + "powerVoltageMultiplier": { + "message": "Значення множника" + }, + "powerAmperageHead": { + "message": "Амперметр" + }, + "powerAmperageWarning": { + "message": "Увага: Значення обмежені 63.5 А." + }, + "powerAmperageValue": { + "message": "$1 А" + }, + "powerAmperageId10": { + "message": "Акумулятор" + }, + "powerAmperageId50": { + "message": "ESC разом" + }, + "powerAmperageId60": { + "message": "ESC мотора 1" + }, + "powerAmperageId61": { + "message": "ESC мотора 2" + }, + "powerAmperageId62": { + "message": "ESC мотора 3" + }, + "powerAmperageId63": { + "message": "ESC мотора 4" + }, + "powerAmperageId64": { + "message": "ESC мотора 5" + }, + "powerAmperageId65": { + "message": "ESC мотора 6" + }, + "powerAmperageId66": { + "message": "ESC мотора 7" + }, + "powerAmperageId67": { + "message": "ESC мотора 8" + }, + "powerAmperageId68": { + "message": "ESC мотора 9" + }, + "powerAmperageId69": { + "message": "ESC мотора 10" + }, + "powerAmperageId70": { + "message": "ESC мотора 11" + }, + "powerAmperageId71": { + "message": "ESC мотора 12" + }, + "powerAmperageId80": { + "message": "Вітруальне" + }, + "powerAmperageId90": { + "message": "Multiwii Serial Protocol" + }, + "powerMahValue": { + "message": "$1 мАг" + }, + "powerAmperageScale": { + "message": "Масштаб [1/10та мВ/А]" + }, + "powerAmperageOffset": { + "message": "Зсув [mA]" + }, + "powerAmperageCalibration": { + "message": "Виміряний струм" + }, + "powerAmperageCalibratedScale": { + "message": "Відкалібрований масштаб струму:" + }, + "powerBatteryHead": { + "message": "Батарея" + }, + "powerStateHead": { + "message": "Стан живлення" + }, + "powerBatteryConnected": { + "message": "Підключено" + }, + "powerBatteryConnectedValueYes": { + "message": "Так (Комірок: $1)" + }, + "powerBatteryConnectedValueNo": { + "message": "Ні" + }, + "powerBatteryVoltage": { + "message": "Напруга" + }, + "powerBatteryCurrentDrawn": { + "message": "Використано мАг" + }, + "powerBatteryAmperage": { + "message": "Струм" + }, + "powerBatteryCapacity": { + "message": "Ємність (мАг)" + }, + "osdSetupTitle": { + "message": "Наекранне меню" + }, + "osdSetupNoOsdChipDetectWarning": { + "message": "ПОПЕРЕДЖЕННЯ: чіп наекранного меню не виявлено. Деякі польотні контролери не можуть належним чином живити мікросхему наекранного меню, якщо не підключити живлення від батареї. Будь ласка, підключіть батарею перед підключенням USB (ПРОПЕЛЕРИ ЗНЯТИ!)." + }, + "osdSetupPreviewHelp": { + "message": "Примітка. Попередній перегляд наекранного меню може не показувати фактичний шрифт, який установлено на польотному контролері. Компонування окремих елементів може мати інший вигляд, якщо використовуються старіші версії прошивки - перед польотом перевірте вигляд через окуляри." + }, + "osdSetupUnsupportedNote1": { + "message": "Ваш польотний контролер не відповідає на команди наекранного меню. Це, ймовірно, означає, що він не має інтегрованого BetaFlight OSD." + }, + "osdSetupUnsupportedNote2": { + "message": "Зауважте, що деякі польотні контролери мають вбудований MinimOSD, який може бути прошито та налаштовано за допомогою scarab-osd, однак MinimOSD не можна налаштувати за допомогою цього інтерфейса." + }, + "osdSetupProfilesTitle": { + "message": "Номер профілю OSD", + "description": "Description of the header of the OSD elements column associated to each profile" + }, + "osdSetupElementsTitle": { + "message": "Елементи" + }, + "osdSetupPreviewTitle": { + "message": "Перетягніть елементи, щоб змінити позицію", + "description": "Indicates in the preview window of the OSD that the user can drag the elements to reorder them" + }, + "osdSetupPreviewSelectProfileTitle": { + "message": "Переглянути", + "description": "Label of the selector for the OSD Profile in the preview. KEEP IT SHORT!!!" + }, + "osdSetupPreviewForTitle": { + "message": "Зміна профілю або шрифту тут НЕ змінить профіль або шрифт у польотному контролері, лише вплине на вікно попереднього перегляду. Якщо ви хочете налаштувати їх, ви повинні скористатися опцією «$t(osdSetupSelectedProfileTitle.message)» або кнопкою «$t(osdSetupFontManager.message)» відповідно.", + "description": "Help content for the OSD profile and font PREVIEW" + }, + "osdSetupSelectedProfileTitle": { + "message": "Активний профіль наекранного меню", + "description": "Title of the box to select the current active OSD profile" + }, + "osdSetupSelectedProfileLabel": { + "message": "Поточний:", + "description": "Label for the selection of the curren active OSD profile" + }, + "osdSetupPreviewSelectProfileElement": { + "message": "Профіль OSD {{profileNumber}}", + "description": "Content of the selector for the OSD Profile in the preview" + }, + "osdSetupPreviewSelectFontElement": { + "message": "Шрифт {{fontName}}", + "description": "Content of the selector for the OSD Font in the preview" + }, + "osdSetupPreviewCheckZoom": { + "message": "Масштабування", + "description": "Check to select a bigger display of the OSD preview in small screens" + }, + "osdSetupVideoFormatTitle": { + "message": "Формат відео" + }, + "osdSetupVideoFormatOptionAuto": { + "message": "Автоматичний", + "description": "Option for the video format in the OSD" + }, + "osdSetupVideoFormatOptionPal": { + "message": "PAL", + "description": "Option for the video format in the OSD" + }, + "osdSetupVideoFormatOptionNtsc": { + "message": "NTSC", + "description": "Option for the video format in the OSD" + }, + "osdSetupVideoFormatOptionHd": { + "message": "HD", + "description": "Option for the video format in the OSD" + }, + "osdSetupUnitsTitle": { + "message": "Одиниці виміру" + }, + "osdSetupUnitsOptionImperial": { + "message": "Імперські", + "description": "Option for the units system used in the OSD" + }, + "osdSetupUnitsOptionMetric": { + "message": "Метричні", + "description": "Option for the units system used in the OSD" + }, + "osdSetupUnitsOptionBritish": { + "message": "Британські", + "description": "Option for the units system used in the OSD" + }, + "osdSetupTimersTitle": { + "message": "Таймери" + }, + "osdSetupAlarmsTitle": { + "message": "Сигналізація" + }, + "osdSetupStatsTitle": { + "message": "Післяпольотна статистика" + }, + "osdSetupVtxTitle": { + "message": "Налаштування відеопередавача" + }, + "osdSetupCraftNameTitle": { + "message": "Назва повітряного судна" + }, + "osdSetupWarningsTitle": { + "message": "Попередження" + }, + "osdSetupFontPresets": { + "message": "Пресети шрифту:" + }, + "osdSetupFontPresetsSelector": { + "message": "Вибрати пресети шрифту:" + }, + "osdSetupFontPresetsSelectorCustomOption": { + "message": "Доданий користувачем шрифт", + "description": "Option to show as selected when the user selects a custom local font" + }, + "osdSetupFontPresetsSelectorOr": { + "message": "або" + }, + "osdSetupOpenFont": { + "message": "Відкрити файл шрифту" + }, + "osdSetupCustomLogoTitle": { + "message": "Логотип завантаження:" + }, + "osdSetupCustomLogoOpenImageButton": { + "message": "Оберіть власне зображення…" + }, + "osdSetupCustomLogoInfoTitle": { + "message": "Власне зображення:" + }, + "osdSetupCustomLogoInfoImageSize": { + "message": "Розмір повинен бути $t(logoWidthPx)×$t(logoHeightPx) пікселів" + }, + "osdSetupCustomLogoInfoColorMap": { + "message": "Має містити зелені, чорні та білі пікселі" + }, + "osdSetupCustomLogoInfoUploadHint": { + "message": "Натисніть $t(osdSetupUploadFont.message) щоб зберегти користувацький логотип" + }, + "osdSetupCustomLogoImageSizeError": { + "message": "Неправильний розмір зображення: {{width}}×{{height}} (очікується $t(logoWidthPx)×$t(logoHeightPx))" + }, + "osdSetupCustomLogoColorMapError": { + "message": "Зображення містить неприпустимий піксель: rgb({{valueR}}, {{valueG}}, {{valueB}}) у координатах {{posX}}×{{posY}}" + }, + "osdSetupUploadFont": { + "message": "Вивантажити шрифт" + }, + "osdSetupUploadingFont": { + "message": "Завантаження..." + }, + "osdSetupUploadingFontEnd": { + "message": "Завантажено всі {{length}} символів до наекранного меню" + }, + "osdSetupSave": { + "message": "Зберегти" + }, + "osdSetupFontManager": { + "message": "Менеджер шрифтів" + }, + "osdSetupUncheckAll": { + "message": "Зняти всі відмітки" + }, + "osdSetupHead": { + "message": "Інформація" + }, + "osdSetupVideoMode": { + "message": "Режим відео" + }, + "osdSetupCameraConnected": { + "message": "Камеру підключено" + }, + "osdSetupResetText": { + "message": "Скинути OSD до стандартних" + }, + "osdSetupButtonReset": { + "message": "Скинути налаштування" + }, + "osdTextElementMainBattVoltage": { + "message": "Напруга акумулятора", + "description": "One of the elements of the OSD" + }, + "osdDescElementMainBattVoltage": { + "message": "Миттєва напруга основної батареї (блимає, коли нижче порогового значення)" + }, + "osdTextElementRssiValue": { + "message": "Значення RSSI", + "description": "One of the elements of the OSD" + }, + "osdDescElementRssiValue": { + "message": "Миттєве значення RSSI (блимає, якщо нижче порогового значення)" + }, + "osdTextElementTimer": { + "message": "Таймер", + "description": "One of the elements of the OSD" + }, + "osdDescElementTimer": { + "message": "Таймер польоту" + }, + "osdTextElementThrottlePosition": { + "message": "Позиція тяги", + "description": "One of the elements of the OSD" + }, + "osdDescElementThrottlePosition": { + "message": "Поточне значення каналу тяги" + }, + "osdTextElementCpuLoad": { + "message": "Завантаження ЦП", + "description": "One of the elements of the OSD" + }, + "osdDescElementCpuLoad": { + "message": "Поточне навантаження процесора" + }, + "osdTextElementVtxChannel": { + "message": "Канал відеопередавача", + "description": "One of the elements of the OSD" + }, + "osdDescElementVtxChannel": { + "message": "Поточний канал відеопередавача і потужність" + }, + "osdTextElementVTXchannelVariantPower": { + "message": "Потужність відеопередавача", + "description": "One of the variants of the VTX channel element of the OSD" + }, + "osdTextElementVTXchannelVariantFull": { + "message": "Діап.:Кан.:Потуж.:Яма", + "description": "One of the variants of the VTX channel element of the OSD" + }, + "osdTextElementVoltageWarning": { + "message": "Попередження про напругу акумулятора", + "description": "One of the elements of the OSD" + }, + "osdDescElementVoltageWarning": { + "message": "Показує попередження, коли напруга нижче порогового значення" + }, + "osdTextElementArmed": { + "message": "Взведений", + "description": "One of the elements of the OSD" + }, + "osdDescElementArmed": { + "message": "Текстове відображення взведення" + }, + "osdTextElementDisarmed": { + "message": "Охолощений", + "description": "One of the elements of the OSD" + }, + "osdDescElementDisarmed": { + "message": "Текстове повідомлення, що дрон охолощений" + }, + "osdTextElementCrosshairs": { + "message": "Приціл (перехрестя)", + "description": "One of the elements of the OSD" + }, + "osdDescElementCrosshairs": { + "message": "Перехрестя по центру екрану" + }, + "osdTextElementArtificialHorizon": { + "message": "Штучний горизонт", + "description": "One of the elements of the OSD" + }, + "osdDescElementArtificialHorizon": { + "message": "Графічний індикатор штучного горизонту" + }, + "osdTextElementHorizonSidebars": { + "message": "Бічні панелі штучного горизонту", + "description": "One of the elements of the OSD" + }, + "osdDescElementHorizonSidebars": { + "message": "Бічні панелі навколо індикатору штучного горизонту" + }, + "osdTextElementCurrentDraw": { + "message": "Струм споживання", + "description": "One of the elements of the OSD" + }, + "osdDescElementCurrentDraw": { + "message": "Миттєве споживання струму акумулятора" + }, + "osdTextElementMahDrawn": { + "message": "Спожита ємність батареї, мАг", + "description": "One of the elements of the OSD" + }, + "osdDescElementMahDrawn": { + "message": "Загальна використана ємність акумулятора" + }, + "osdTextElementWhDrawn": { + "message": "Спожита ємність батареї, Втг", + "description": "One of the elements of the OSD" + }, + "osdDescElementWhDrawn": { + "message": "Загальна використана ємність акумулятора у ват-годинах" + }, + "osdDescElementAuxValue": { + "message": "Відображення каналу AUX приймача", + "description": "Displays a receiver AUX channel see PR 10789" + }, + "osdTextElementAuxValue": { + "message": "Значення Aux", + "description": "One of the elements of the OSD" + }, + "osdTextElementSysGoggleVoltage": { + "message": "Напруга окулярів", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysGoggleVoltage": { + "message": "Напруга окулярів, видається окулярами" + }, + "osdTextElementSysVtxVoltage": { + "message": "Напруга відеопередавача", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysVtxVoltage": { + "message": "Напруга відеопередавача, що показується окулярами" + }, + "osdTextElementSysBitrate": { + "message": "Бітрейт відеопередавача", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysBitrate": { + "message": "Бітрейт відео, відтворюваного окулярами" + }, + "osdTextElementSysDelay": { + "message": "Затримка відеопередавача", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysDelay": { + "message": "Затримка відео, відтворена окулярами" + }, + "osdTextElementSysDistance": { + "message": "Відстань відеопередавача", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysDistance": { + "message": "Відстань передачі відео, відображена окулярами" + }, + "osdTextElementSysLQ": { + "message": "Якість каналу окулярів", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysLQ": { + "message": "Якість відеозв'язку, відтворена окулярами" + }, + "osdTextElementSysGoggleDVR": { + "message": "Статус відеореєстратора окулярів", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysGoggleDVR": { + "message": "Статус відеореєстратору окулярів, відображений окулярами" + }, + "osdTextElementSysVtxDVR": { + "message": "Статус DVR відеопередавача", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysVtxDVR": { + "message": "Статус відеореєстратора відеопередавача, відображений окулярами" + }, + "osdTextElementSysWarnings": { + "message": "Застереження системи окулярів", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysWarnings": { + "message": "Відеосистемні попередження, що видаються окулярами" + }, + "osdTextElementSysVtxTemp": { + "message": "Температура відеопередавача", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysVtxTemp": { + "message": "Температура відеопередавача, яку видають окуляри" + }, + "osdTextElementSysFanSpeed": { + "message": "Швидкість вентилятора окулярів", + "description": "One of the system elements of the OSD" + }, + "osdDescElementSysFanSpeed": { + "message": "Швидкість вентилятора окулярів, що відображається окулярами" + }, + "osdTextElementLapTimeCurrent": { + "message": "Час поточного кола за GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeCurrent": { + "message": "Час поточного кола за даними GPS" + }, + "osdTextElementLapTimePrevious": { + "message": "Час попереднього кола за GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimePrevious": { + "message": "Час попереднього кола за даними GPS" + }, + "osdTextElementLapTimeBest3": { + "message": "Час кращих 3 за GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeBest": { + "message": "Найкращий час кола за GPS" + }, + "osdTextElementCraftName": { + "message": "Назва повітряного судна", + "description": "One of the elements of the OSD" + }, + "osdDescElementCraftName": { + "message": "Ім’я судна, встановлене на вкладці Конфігурація.
    Також можна встановити за допомогою змінної CLI «craft_name»." + }, + "osdTextElementAltitude": { + "message": "Висота", + "description": "One of the elements of the OSD" + }, + "osdDescElementAltitude": { + "message": "Поточна висота (блимає, коли вище порогового значення)" + }, + "osdTextElementAltitudeVariant1Decimal": { + "message": "З 1 розрядом після коми", + "description": "One of the variants of the altitude element of the OSD" + }, + "osdTextElementAltitudeVariantNoDecimal": { + "message": "Без десятих", + "description": "One of the variants of the altitude element of the OSD" + }, + "osdTextElementOnTime": { + "message": "Від підключення батареї", + "description": "One of the elements of the OSD" + }, + "osdDescElementOnTime": { + "message": "Загальний час від моменту підключення батареї" + }, + "osdTextElementFlyTime": { + "message": "Час польоту", + "description": "One of the elements of the OSD" + }, + "osdDescElementFlyTime": { + "message": "Загальний час скільки судно було у взведеному стані протягом поточного циклу живлення (блимає, якщо вище порогового значення)" + }, + "osdTextElementFlyMode": { + "message": "Режим польоту", + "description": "One of the elements of the OSD" + }, + "osdDescElementFlyMode": { + "message": "Поточний режим польоту" + }, + "osdTextElementGPSSpeed": { + "message": "Швидкість GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementGPSSpeed": { + "message": "Швидкість на основі GPS" + }, + "osdTextElementGPSSats": { + "message": "Кількість супутників GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementGPSSats": { + "message": "Кількість супутників, що забезпечили визначення координат GPS" + }, + "osdTextElementGPSLon": { + "message": "Довгота за GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementGPSLon": { + "message": "GPS-координата довготи" + }, + "osdTextElementGPSLat": { + "message": "Широта за GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementGPSLat": { + "message": "GPS координата широти" + }, + "osdTextElementGPSVariant7Decimals": { + "message": "З 7 розрядами після коми", + "description": "One of the variants for the GPS element of the OSD" + }, + "osdTextElementGPSVariant4Decimals": { + "message": "З 4 розрядами після коми", + "description": "One of the variants for the GPS element of the OSD" + }, + "osdTextElementGPSVariantDegMinSec": { + "message": "Використовуючи градуси, хвилини і секунди", + "description": "One of the variants for the GPS element of the OSD" + }, + "osdTextElementGPSVariantOpenLocation": { + "message": "Відкритий код розташування (OLC)", + "description": "One of the variants for the GPS element of the OSD" + }, + "osdTextElementDebug": { + "message": "Інформація для налагоджування", + "description": "One of the elements of the OSD" + }, + "osdDescElementDebug": { + "message": "Змінні налагодження" + }, + "osdTextElementPIDRoll": { + "message": "PID крену", + "description": "One of the elements of the OSD" + }, + "osdDescElementPIDRoll": { + "message": "Коефіцієнти PID осі крену" + }, + "osdTextElementPIDPitch": { + "message": "PID тангажа", + "description": "One of the elements of the OSD" + }, + "osdDescElementPIDPitch": { + "message": "Коефіцієнт PID осі тангажа" + }, + "osdTextElementPIDYaw": { + "message": "PID рискання", + "description": "One of the elements of the OSD" + }, + "osdDescElementPIDYaw": { + "message": "Коефіцієнт PID вісі рискання" + }, + "osdTextElementPower": { + "message": "Миттєве споживання", + "description": "One of the elements of the OSD" + }, + "osdDescElementPower": { + "message": "Миттєве споживання електроенергії" + }, + "osdTextElementPIDRateProfile": { + "message": "Профіль: PID та коефіцієнт", + "description": "One of the elements of the OSD" + }, + "osdDescElementPIDRateProfile": { + "message": "Числове відображення активних профілів PID та коефіцієнтів" + }, + "osdTextElementBatteryWarning": { + "message": "Попередження акумулятора", + "description": "One of the elements of the OSD" + }, + "osdDescElementBatteryWarning": { + "message": "Попереджає, коли напруга акумулятора падає нижче порогового значення" + }, + "osdTextElementAvgCellVoltage": { + "message": "Середня напруга комірки батареї", + "description": "One of the elements of the OSD" + }, + "osdDescElementAvgCellVoltage": { + "message": "Середня напруга комірки (загальна напруга поділена на кількість елементів)" + }, + "osdTextElementPitchAngle": { + "message": "Кут тангажа", + "description": "One of the elements of the OSD" + }, + "osdDescElementPitchAngle": { + "message": "Значення кута тангажа в градусах" + }, + "osdTextElementRollAngle": { + "message": "Кут крену", + "description": "One of the elements of the OSD" + }, + "osdDescElementRollAngle": { + "message": "Значення кута крену в градусах" + }, + "osdTextElementMainBattUsage": { + "message": "Використання батареї", + "description": "One of the elements of the OSD" + }, + "osdDescElementMainBattUsage": { + "message": "Графічне представлення використання місткості акумулятора" + }, + "osdTextElementMainBattUsageVariantGraphrRemain": { + "message": "Зобразити залишок", + "description": "One of the variants for the Main Battery Usage element of the OSD" + }, + "osdTextElementMainBattUsageVariantGraphUsage": { + "message": "Зобразити використане", + "description": "One of the variants for the Main Battery Usage element of the OSD" + }, + "osdTextElementMainBattUsageVariantValueRemain": { + "message": "Залишок в %", + "description": "One of the variants for the Main Battery Usage element of the OSD" + }, + "osdTextElementMainBattUsageVariantValueUsage": { + "message": "Використано у %", + "description": "One of the variants for the Main Battery Usage element of the OSD" + }, + "osdTextElementArmedTime": { + "message": "Таймер: всього взведений", + "description": "One of the elements of the OSD" + }, + "osdDescElementArmedTime": { + "message": "Час з моменту останнього взведення" + }, + "osdTextElementHomeDirection": { + "message": "Напрямок точки зльоту", + "description": "One of the elements of the OSD" + }, + "osdDescElementHomeDirection": { + "message": "Стрілка, що показує напрямок до точки зльоту" + }, + "osdTextElementHomeDistance": { + "message": "Відстань до точки зльоту", + "description": "One of the elements of the OSD" + }, + "osdDescElementHomeDistance": { + "message": "Відстань до точки зльоту (у футах або метрах залежно від налаштувань системи вимірювання)" + }, + "osdTextElementNumericalHeading": { + "message": "Числове значення курсу", + "description": "One of the elements of the OSD" + }, + "osdDescElementNumericalHeading": { + "message": "Числове відображення поточного курсу в градусах" + }, + "osdTextElementNumericalVario": { + "message": "Числове значення варіометра", + "description": "One of the elements of the OSD" + }, + "osdDescElementNumericalVario": { + "message": "Числове відображення вертикальної швидкості (у футах або метрах на основі налаштувань системи вимірювання)" + }, + "osdTextElementCompassBar": { + "message": "Панель компаса", + "description": "One of the elements of the OSD" + }, + "osdDescElementCompassBar": { + "message": "Графічна панель компаса, що показує поточний курс" + }, + "osdTextElementWarnings": { + "message": "Попередження", + "description": "One of the elements of the OSD" + }, + "osdDescElementWarnings": { + "message": "Попередження (наприклад, про низький рівень заряду батареї), попередження (наприклад, про причини невзведення, критично низький заряд батареї) і візуальний звуковий сигнал (4 миготливі зірочки)." + }, + "osdTextElementEscTemperature": { + "message": "Температура ESC", + "description": "One of the elements of the OSD" + }, + "osdDescElementEscTemperature": { + "message": "Температура з телеметрії ESC" + }, + "osdTextElementEscRpm": { + "message": "ESC об/хв ", + "description": "One of the elements of the OSD" + }, + "osdDescElementEscRpm": { + "message": "Оберти/хв з телеметрії ESC" + }, + "osdTextElementRemaningTimeEstimate": { + "message": "Таймер: оцінка часу, що залишився", + "description": "One of the elements of the OSD" + }, + "osdDescElementRemaningTimeEstimate": { + "message": "Приблизний час польоту, що залишився" + }, + "osdTextElementRtcDateTime": { + "message": "Дата й час з джерела RTC", + "description": "One of the elements of the OSD" + }, + "osdDescElementRtcDateTime": { + "message": "Дата / час з годинника реального часу" + }, + "osdTextElementAdjustmentRange": { + "message": "Діапазон поправок", + "description": "One of the elements of the OSD" + }, + "osdDescElementAdjustmentRange": { + "message": "Наразі чинний діапазон поправок та значення" + }, + "osdTextElementTimer1": { + "message": "Таймер 1", + "description": "One of the elements of the OSD" + }, + "osdDescElementTimer1": { + "message": "Показує величину таймера 1" + }, + "osdTextElementTimer2": { + "message": "Таймер 2", + "description": "One of the elements of the OSD" + }, + "osdDescElementTimer2": { + "message": "Показує величину таймера 2" + }, + "osdTextElementCoreTemperature": { + "message": "Температура процесора", + "description": "One of the elements of the OSD" + }, + "osdDescElementCoreTemperature": { + "message": "Температура ядра мікроконтролера STM32" + }, + "osdTextAntiGravity": { + "message": "Антигравітація", + "description": "One of the elements of the OSD" + }, + "osdDescAntiGravity": { + "message": "Вмикає індикатор коли антигравітація активна" + }, + "osdTextGForce": { + "message": "Перевантаження", + "description": "One of the elements of the OSD" + }, + "osdDescGForce": { + "message": "Показує, яке перевантаження діє на судно в даний момент" + }, + "osdTextElementMotorDiag": { + "message": "Діагностика моторів", + "description": "One of the elements of the OSD" + }, + "osdDescElementMotorDiag": { + "message": "Показує графік виходу кожного мотора" + }, + "osdTextElementLogStatus": { + "message": "Стан журналу чорної скрині", + "description": "One of the elements of the OSD" + }, + "osdDescElementLogStatus": { + "message": "Номер і попередження Чорної скрині" + }, + "osdTextElementFlipArrow": { + "message": "Стрілка \"перевернути після аварії\"", + "description": "One of the elements of the OSD" + }, + "osdDescElementFlipArrow": { + "message": "Стрілка показує які побічні мотори в черепашковому режимі (необхідно включити акселерометр)" + }, + "osdTextElementLinkQuality": { + "message": "Якість зв'язку", + "description": "One of the elements of the OSD" + }, + "osdDescElementLinkQuality": { + "message": "Альтернативний індикатор «якості зв’язку» на основі втрати кадрів — використовуйте з обережністю" + }, + "osdTextElementFlightDist": { + "message": "Відстань польоту", + "description": "One of the elements of the OSD" + }, + "osdDescElementFlightDist": { + "message": "Відстань, пройдена під час цього польоту." + }, + "osdTextElementStickOverlayLeft": { + "message": "Показувати положення лівого стіка", + "description": "One of the elements of the OSD" + }, + "osdDescElementStickOverlayLeft": { + "message": "Показувати положення лівого стіка на OSD." + }, + "osdTextElementStickOverlayRight": { + "message": "Показувати положення правого стіка", + "description": "One of the elements of the OSD" + }, + "osdDescElementStickOverlayRight": { + "message": "Показувати положення правого стіка на OSD." + }, + "osdTextElementDisplayName": { + "message": "Показувати ім'я", + "description": "One of the elements of the OSD" + }, + "osdDescElementDisplayName": { + "message": "Також можна встановити через змінну командного рядка \"display_name“." + }, + "osdTextElementPilotName": { + "message": "Ім'я пілота", + "description": "One of the elements of the OSD" + }, + "osdDescElementPilotName": { + "message": "Ім’я пілота, встановлене на вкладці Конфігурація.
    Також можна встановити за допомогою змінної командного рядка «pilot_name»." + }, + "osdTextElementEscRpmFreq": { + "message": "Частота ESC, об/хв", + "description": "One of the elements of the OSD" + }, + "osdDescElementEscRpmFreq": { + "message": "Частота обертів на основі телеметрії ESC" + }, + "osdTextElementRateProfileName": { + "message": "Профіль: назва профілю коефіцієнтів", + "description": "One of the elements of the OSD" + }, + "osdDescElementRateProfileName": { + "message": "Показує назву поточного профілю коефіцієнтів" + }, + "osdTextElementPidProfileName": { + "message": "Профіль: назва профілю PID", + "description": "One of the elements of the OSD" + }, + "osdDescElementPidProfileName": { + "message": "Показує назву поточного профілю PID" + }, + "osdTextElementOsdProfileName": { + "message": "Профіль: назва профілю OSD", + "description": "One of the elements of the OSD" + }, + "osdDescElementOsdProfileName": { + "message": "Назва профілю наекранного меню, як встановлена в змінних CLI \"osd_profile_1_name\", \"osd_profile_2_name\" і \"osd_profile_3_name\"" + }, + "osdTextElementRssiDbmValue": { + "message": "Значення RSSI в дБм", + "description": "One of the elements of the OSD" + }, + "osdDescElementRssiDbmValue": { + "message": "Значення індикатора рівня потужності отриманого сигналу в дБм, якщо доступне" + }, + "osdTextElementRcChannels": { + "message": "Канали пульта", + "description": "One of the elements of the OSD" + }, + "osdDescElementRcChannels": { + "message": "Показати не більше 4 значень каналів. Канали мають бути визначені змінною CLI 'osd_rcchannels'" + }, + "osdTextElementCameraFrame": { + "message": "Рамка камери", + "description": "One of the elements of the OSD" + }, + "osdDescElementCameraFrame": { + "message": "Додає регульований елемент у вигляді контуру, призначений для представлення поля зору HD-камери пілота для візуального кадрування.

    Ви можете налаштувати ширину та висоту в CLI за допомогою «osd_camera_frame_width» і «osd_camera_frame_height»" + }, + "osdTextElementEfficiency": { + "message": "Ефективність акумулятора", + "description": "One of the elements of the OSD" + }, + "osdDescElementEfficiency": { + "message": "Миттєве споживання заряду акумулятора в мАг/відстань. (Потребує наявності даних GPS)" + }, + "osdTextTotalFlights": { + "message": "Усього польотів", + "description": "One of the elements of the OSD" + }, + "osdDescTotalFlights": { + "message": "Приблизна загальна кількість польотів" + }, + "osdTextElementUpDownReference": { + "message": "Вгору (тангаж 90 градусів)/вниз (тангаж -90 градусів) референсне значення", + "description": "OSD Symbol to show when pitch is approaching vertical (90 deg, U) and D for nose down (-90 deg, D)" + }, + "osdDescUpDownReference": { + "message": "Символ наекранного меню, щоб показати, коли тангаж наближається до вертикального (90 градусів, U) і D коли ніс направлений вниз (-90 град, D)" + }, + "osdTextElementTxUplinkPower": { + "message": "Потужність вихідного сигналу передавача", + "description": "One of the elements of the OSD" + }, + "osdDescTxUplinkPower": { + "message": "Показує значення потужності передавача (мВт або Вт). Корисно, коли для радіомодулів що це підтримують увімкнена Динамічна потужність" + }, + "osdTextElementReadyMode": { + "message": "Режим ГОТОВИЙ", + "description": "When active READY will be displayed until flying" + }, + "osdDescElementReadyMode": { + "message": "Коли активовано, буде показуватись READY (ГОТОВИЙ) в наекранному меню до зльоту" + }, + "osdTextElementRSNRValue": { + "message": "Значення RSNR", + "description": "One of the elements of the OSD" + }, + "osdDescElementRSNRValue": { + "message": "Значення співвідношення сигнал/шум RSNR " + }, + "osdTextElementUnknown": { + "message": "Невідомо $1", + "description": "One of the elements of the OSD" + }, + "osdDescElementUnknown": { + "message": "Невідомий елемент (подробиці будуть додані в майбутньому релізі)" + }, + "osdTextStatMaxSpeed": { + "message": "Максимальна швидкість", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatMaxSpeed": { + "message": "Максимальна записана швидкість" + }, + "osdTextStatMinBattery": { + "message": "Мінімальна напруга батареї", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatMinBattery": { + "message": "Мінімальна зареєстрована напруга основної батареї" + }, + "osdTextStatMinRssi": { + "message": "Мінімум RSSI", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatMinRssi": { + "message": "Мінімальний записаний RSSI" + }, + "osdTextStatMaxCurrent": { + "message": "Максимальний струм споживання", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatMaxCurrent": { + "message": "Максимальне зареєстроване споживання струму" + }, + "osdTextStatUsedMah": { + "message": "Використано батареї мАг", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatUsedMah": { + "message": "Скільки було використано батареї" + }, + "osdTextStatUsedWh": { + "message": "Використано батареї Втг", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatUsedWh": { + "message": "Скільки було використано батареї в Втг" + }, + "osdTextStatMaxAltitude": { + "message": "Максимальна висота", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatMaxAltitude": { + "message": "Максимальна записана висота" + }, + "osdTextStatBlackbox": { + "message": "Використання чорної скриньки", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBlackbox": { + "message": "Відсоток від загального використання пам'яті чорної скриньки" + }, + "osdTextStatEndBattery": { + "message": "Напруга батареї вкінці", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatEndBattery": { + "message": "Напруга акумулятора на момент кінця польоту, коли судно стає охолощеним" + }, + "osdTextStatFlyTime": { + "message": "Загальний час польоту", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatFlyTime": { + "message": "Загальний час роботи судна в режимі взведений на поточному циклі живлення" + }, + "osdTextStatArmedTime": { + "message": "Час польоту з останнього зведення", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatArmedTime": { + "message": "Час з моменту останнього взведення" + }, + "osdTextStatMaxDistance": { + "message": "Максимальна відстань до точки зльоту", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatMaxDistance": { + "message": "Максимальна відстань від точки зльоту" + }, + "osdTextStatBlackboxLogNumber": { + "message": "Номер лога чорної скрині", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBlackboxLogNumber": { + "message": "Номер запису цього польоту в журналі Чорної скрині" + }, + "osdTextStatTimer1": { + "message": "Таймер 1", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatTimer1": { + "message": "Значення таймера 1 на момент охолощення" + }, + "osdTextStatTimer2": { + "message": "Таймер 2", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatTimer2": { + "message": "Значення таймера 2 на момент охолощення" + }, + "osdTextStatRtcDateTime": { + "message": "Дата й час з джерела RTC", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatRtcDateTime": { + "message": "Дата й час від джерела реального часу" + }, + "osdTextStatBattery": { + "message": "Напруга акумулятора", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBattery": { + "message": "Напруга батареї в реальному часі" + }, + "osdTextStatGForce": { + "message": "Максимальне перевантаження", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatGForce": { + "message": "Максимальне перевантаження, яке діяло на повітряне судно" + }, + "osdTextStatEscTemperature": { + "message": "Максимальна температура ESC", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatEscTemperature": { + "message": "Максимальна температура електронного контролера швидкості ESC" + }, + "osdTextStatEscRpm": { + "message": "Максимальне число об/хв ESC", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatEscRpm": { + "message": "Максимальне значення об/хв ESC" + }, + "osdTextStatMinLinkQuality": { + "message": "Мінімальна якість зв'язку", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatMinLinkQuality": { + "message": "Мінімум альтернативного показника для «якості зв’язку» на основі втрати кадрів" + }, + "osdTextStatFlightDistance": { + "message": "Відстань польоту", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatFlightDistance": { + "message": "Загальна відстань пройдена під час польоту" + }, + "osdTextStatMaxFFT": { + "message": "Частота максимальних вібрацій", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatMaxFFT": { + "message": "Частота максимальних вібрацій, на основі аналізу даних з гіроскопа" + }, + "osdTextStatTotalFlights": { + "message": "Загальна кількість польотів", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatTotalFlights": { + "message": "Загальна кількість польотів" + }, + "osdTextStatTotalFlightTime": { + "message": "Загальний час польоту", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatTotalFlightTime": { + "message": "Загальний час, проведений в польоті" + }, + "osdTextStatTotalFlightDistance": { + "message": "Загальна відстань польоту", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatTotalFlightDistance": { + "message": "Загальна пройдена відстань" + }, + "osdTextStatMinRssiDbm": { + "message": "Мінімум RSSI дБм", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatMinRssiDbm": { + "message": "Мінімальне значення RSSI dBm" + }, + "osdTextStatMinRSNR": { + "message": "Мінімальне значення RSSI дБм", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatMinRSNR": { + "message": "Мінімальне значення RSSI" + }, + "osdTextStatBest3ConsecLaps": { + "message": "Найкращі 3 послідовних кола", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBest3ConsecLaps": { + "message": "Найкращі 3 послідовних кола" + }, + "osdTextStatBestLap": { + "message": "Найкраще коло", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBestLap": { + "message": "Найкраще коло" + }, + "osdTextStatUnknown": { + "message": "Невідомо $1", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatUnknown": { + "message": "Невідома статистика (подробиці будуть додані в майбутньому релізу)" + }, + "osdDescribeFontVersion1": { + "message": "Версія шрифту: 1 (Betaflight 4.0 або старіша)" + }, + "osdDescribeFontVersion2": { + "message": "Версія шрифту: 2 (Betaflight 4.1 або новіший)" + }, + "osdDescribeFontVersionCUSTOM": { + "message": "Версія шрифту: надано користувачем" + }, + "osdTimerSource": { + "message": "Джерело:" + }, + "osdTimerSourceTooltip": { + "message": "Виберіть джерело таймера, оберіть подію від якої починає свій відлік таймер" + }, + "osdTimerSourceOptionOnTime": { + "message": "Підключення LiPo", + "description": "One of the options for the source timer. This options shows the amount of time has passed since the battery was plugged" + }, + "osdTimerSourceOptionTotalArmedTime": { + "message": "Всього взведений", + "description": "One of the options for the source timer. This options shows the amount of time the craft was armed since the battery was plugged" + }, + "osdTimerSourceOptionLastArmedTime": { + "message": "Останнє взведення", + "description": "One of the options for the source timer. This options shows the amount of time the craft was armed the latest time" + }, + "osdTimerSourceOptionOnArmTime": { + "message": "Увімк./взведення", + "description": "One of the options for the source timer. This option shows On time when craft is disarmed, and Armed time when armed" + }, + "osdTimerPrecision": { + "message": "Точність:" + }, + "osdTimerPrecisionTooltip": { + "message": "Виберіть точність таймера, це визначає, з якою точністю повідомляється час" + }, + "osdTimerPrecisionOptionSecond": { + "message": "Секунди", + "description": "Selectable option for the precision of the timer in the OSD" + }, + "osdTimerPrecisionOptionHundredth": { + "message": "Сотні", + "description": "Selectable option for the precision of the timer in the OSD" + }, + "osdTimerPrecisionOptionTenth": { + "message": "Десятки", + "description": "Selectable option for the precision of the timer in the OSD" + }, + "osdTimerAlarm": { + "message": "Сигналізація:" + }, + "osdTimerAlarmTooltip": { + "message": "Виберіть порогове значення сигналу таймера в хвилинах, коли час перевищить це значення, елемент наекранного меню заблимає, встановлення значення в 0 вимикає сповіщення" + }, + "osdTimerAlarmOptionRssi": { + "message": "RSSI", + "description": "Text of the RSSI alarm" + }, + "osdTimerAlarmOptionCapacity": { + "message": "Ємність", + "description": "Text of the capacity alarm" + }, + "osdTimerAlarmOptionAltitude": { + "message": "Висота", + "description": "Text of the altitude alarm" + }, + "osdWarningTextArmingDisabled": { + "message": "Взведення заборонене", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningArmingDisabled": { + "message": "Повідомляє про найбільш серйозну причину, що заважає взведенню" + }, + "osdWarningTextBatteryNotFull": { + "message": "Акумулятор не повний", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningBatteryNotFull": { + "message": "Попереджає про підключення не повністю зарядженої батареї" + }, + "osdWarningTextBatteryWarning": { + "message": "Попередження акумулятора", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningBatteryWarning": { + "message": "Попереджає, коли напруга акумулятора падає нижче порогового значення" + }, + "osdWarningTextBatteryCritical": { + "message": "Критичний заряд акумулятора", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningBatteryCritical": { + "message": "Попереджає, коли напруга акумулятора падає нижче мінімальної середньої напруги елемента" + }, + "osdWarningTextVisualBeeper": { + "message": "Візуалізація звукового сигналу", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningVisualBeeper": { + "message": "Показує візуалізацію звукового сигналу (відображається як 4 зірочки)" + }, + "osdWarningTextCrashFlipMode": { + "message": "Режим аварійного перевертання", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningCrashFlipMode": { + "message": "Попереджає коли режим перевертання після аварії активований" + }, + "osdWarningTextEscFail": { + "message": "Збій в роботі ESC", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningEscFail": { + "message": "Перераховує список електронних контролерів швидкості/моторів, які вийшли з ладу (оберти на хвилину або температура виходять за межі встановлених порогових значень)" + }, + "osdWarningTextCoreTemperature": { + "message": "Температура процесора", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningCoreTemperature": { + "message": "Попереджає, коли температура мікроконтролера/процесора перевищує налаштований поріг" + }, + "osdWarningTextRcSmoothingFailure": { + "message": "Помилка згладжування пульта", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningRcSmoothingFailure": { + "message": "Попереджає, коли згладжування сигналів пульта зазнало невдачі при ініціалізації" + }, + "osdWarningTextFailsafe": { + "message": "Безаварійність", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningFailsafe": { + "message": "Попереджає коли включається режим безаварійності" + }, + "osdWarningTextLaunchControl": { + "message": "Керування запуском", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningLaunchControl": { + "message": "Попереджає коли Керування запуском активовано" + }, + "osdWarningTextGpsRescueUnavailable": { + "message": "«GPS порятунок» недоступний", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningGpsRescueUnavailable": { + "message": "Попередження: GPS порятунок недоступний і не може бути активований" + }, + "osdWarningTextGpsRescueDisabled": { + "message": "«GPS порятунок» вимкнено", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningGpsRescueDisabled": { + "message": "Попереджає коли GPS порятунок вимкнено" + }, + "osdWarningTextRSSI": { + "message": "RSSI", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningRSSI": { + "message": "Попереджає коли індикатор рівня потужності отриманого сигналу менше порогового значення" + }, + "osdWarningTextLinkQuality": { + "message": "Якість зв'язку", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningLinkQuality": { + "message": "Попереджає коли якість зв'язку менше порогового значення" + }, + "osdWarningTextRssiDbm": { + "message": "RSSI дБм", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningRssiDbm": { + "message": "Попереджає коли індикатор рівня потужності отриманого сигналу в дБм менше порогового значення" + }, + "osdWarningTextOverCap": { + "message": "Перевищення ємності акумулятора", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningOverCap": { + "message": "Попереджає, коли спожита енергія в мАг перевищує налаштований ліміт ємності" + }, + "osdWarningTextRSNR": { + "message": "Співвідношення сигнал/шум", + "description": "One of the warnings that can be selected to be shown in the OSD" + }, + "osdWarningRSNR": { + "message": "Попереджає коли співвідношення сигнал/шум нижче порогового рівня" + }, + "osdWarningTextUnknown": { + "message": "Невідомо $1" + }, + "osdWarningUnknown": { + "message": "Невідоме попередження (подробиці з'являться у майбутньому релізі)" + }, + "osdSectionHelpElements": { + "message": "Увімкнути або вимкнути елементи наекранного меню." + }, + "osdSectionHelpVideoMode": { + "message": "Встановіть очікуваний відеорежим камери (зазвичай його можна залишити на АВТО, якщо у вас виникнуть труднощі, встановіть його відповідно до вихідного сигналу камери)." + }, + "osdSectionHelpUnits": { + "message": "Встановлює систему одиниць, що буде використана для показу числових значень." + }, + "osdSectionHelpTimers": { + "message": "Налаштуйте таймери польоту." + }, + "osdSectionHelpAlarms": { + "message": "Встановіть порогові значення для елементів, що призводять до попередження на наекранному меню." + }, + "osdSectionHelpStats": { + "message": "Встановіть значення, що зображаються на екрані післяпольотної статистики." + }, + "osdSectionHelpWarnings": { + "message": "Увімкнути або вимкнути попередження, які відображаються в елементі ПОПЕРЕДЖЕННЯ." + }, + "osdSettingsSaved": { + "message": "Налаштування OSD збережено" + }, + "osdWritePermissions": { + "message": "Ви не маєте дозволу на запис цього файлу" + }, + "osdButtonSaved": { + "message": "Збережено" + }, + "vtxHelp": { + "message": "Тут ви можете налаштувати параметри свого відеопередавача (VTX). Ви можете переглядати та змінювати параметри відеопередачі, включаючи таблиці відеопередавача (VTX), якщо польотний контролер та відеопередавач це підтримують.
    Щоб налаштувати відеопередавач, виконайте такі дії:
    1. Перейдіть на цю сторінку;
    2. Знайдіть відповідний файл конфігурації відеопередавача для вашої країни та моделі відеопередавача і завантажте його;
    3. Натисніть '$t(vtxButtonLoadFile.message)' нижче, оберіть файл конфігурації відеопередавача та завантажте його в Betaflight;
    4. Переконайтеся, що налаштування правильні;
    5. Натисніть «$t(vtxButtonSave.message)», щоб зберегти налаштування відеопередавача в польотному контролері.
    6. За бажанням, натисніть «$t(vtxButtonSaveLua.message)», щоб зберегти файл конфігурації lua, який можна використовувати разом зі сценаріями betaflight lua (докладніше тут.)", + "description": "Introduction message in the VTX tab" + }, + "vtxMessageNotSupported": { + "message": "Увага: Ваш відеопередавач не налаштований або не підтримується. Тому ви не можете змінити значення відеопередавача звідси. Це буде можливо лише за умови, якщо польотний контролер під’єднано до відеопередавача за допомогою певного протоколу, як-от Tramp або SmartAudio, і його було правильно налаштовано на вкладці $t(tabPorts.message).", + "description": "Message to show when the VTX is not supported in the VTX tab" + }, + "vtxMessageTableNotConfigured": { + "message": "Увага: Вам потрібно СПОЧАТКУ налаштувати та зберегти таблицю відеопередавача внизу, перш ніж ви зможете використовувати поля $t(vtxSelectedMode.message).", + "description": "Message to show when the VTX is not supported in the VTX tab" + }, + "vtxMessageFactoryBandsNotSupported": { + "message": "Увага: Вибраний тип відеопередавача не підтримує «фабричні» налаштування для діапазонів, але деякі з ваших діапазонів мають таке налаштування. Натисніть \"$t(vtxButtonSave.message)\", щоб виправити це.", + "description": "Message to show when the configured VTX type does not support factory bands, but one or more of the configured bands are of this type" + }, + "vtxMessageVerifyTable": { + "message": "Увага: Значення таблиці відеопередавача завантажено, але все ще не збережено на польотному контролері. Ви повинні перевірити та змінити значення, щоб впевнитись, що вони дійсні та законні у вашій країні, а потім натиснути кнопку $t(vtxButtonSave.message), щоб зберегти їх на польотному контролері.", + "description": "Message to show when the VTX Table has been loaded from a external source" + }, + "vtxFrequencyChannel": { + "message": "Введіть частоту безпосередньо", + "description": "Text of one of the fields of the VTX tab" + }, + "vtxFrequencyChannelHelp": { + "message": "Якщо ви ввімкнете це, Конфігуратор дозволить вам вибрати частоту замість звичного діапазону/каналу. Щоб це спрацювало, ваш відеопередавач має підтримувати цю функцію.", + "description": "Help text for the frequency or channel select field of the VTX tab" + }, + "vtxSelectedMode": { + "message": "Обраний режим", + "description": "Title for the actual mode header of the VTX" + }, + "vtxActualState": { + "message": "Поточне значення", + "description": "Title for the actual values header of the VTX" + }, + "vtxType": { + "message": "Тип відеопередавача", + "description": "Text of one of the fields of the VTX tab" + }, + "vtxType_0": { + "message": "Не підтримується", + "description": "Text for one of the types of the VTX type in VTX tab" + }, + "vtxType_1": { + "message": "RTC607", + "description": "Text for one of the types of the VTX type in VTX tab" + }, + "vtxType_3": { + "message": "SmartAudio", + "description": "Text for one of the types of the VTX type in VTX tab" + }, + "vtxType_4": { + "message": "Tramp", + "description": "Text for one of the types of the VTX type in VTX tab" + }, + "vtxType_5": { + "message": "MSP", + "description": "Text for one of the types of the VTX type in VTX tab" + }, + "vtxType_255": { + "message": "Невідомий", + "description": "Text for one of the types of the VTX type in VTX tab" + }, + "vtxBand": { + "message": "Діапазон", + "description": "Text of one of the fields of the VTX tab" + }, + "vtxBandHelp": { + "message": "Тут ви можете вибрати діапазон для свого відеопередавача", + "description": "Help text for the band field of the VTX tab" + }, + "vtxBand_0": { + "message": "Відсутній", + "description": "Text of one of the options for the band field of the VTX tab" + }, + "vtxBand_X": { + "message": "Діапазон {{bandName}}", + "description": "Text of one of the options for the band field of the VTX tab" + }, + "vtxChannel_0": { + "message": "Відсутній", + "description": "Text of one of the options for the channel field of the VTX tab" + }, + "vtxChannel_X": { + "message": "Канал {{channelName}}", + "description": "Text of one of the options for the channel field of the VTX tab" + }, + "vtxPower_0": { + "message": "Відсутня", + "description": "Text of one of the options for the power field of the VTX tab" + }, + "vtxPower_X": { + "message": "Рівень {{powerLevel}}", + "description": "Text of one of the options for the power field of the VTX tab" + }, + "vtxChannel": { + "message": "Канал", + "description": "Text of one of the fields of the VTX tab" + }, + "vtxChannelHelp": { + "message": "Тут ви можете обрати канал для свого відеопередавача", + "description": "Help text for the channel field of the VTX tab" + }, + "vtxFrequency": { + "message": "Частота", + "description": "Text of one of the fields of the VTX tab" + }, + "vtxFrequencyHelp": { + "message": "Тут ви можете обрати частоту для свого відеопередавача, якщо це підтримується", + "description": "Help text for the frequency field of the VTX tab" + }, + "vtxReadyTrue": { + "message": "Так", + "description": "vtx device are ready" + }, + "vtxReadyFalse": { + "message": "False", + "description": "vtx device are not ready" + }, + "vtxDeviceReady": { + "message": "Пристрій готовий", + "description": "Text of one of the fields of the VTX tab" + }, + "vtxPower": { + "message": "Потужність", + "description": "Text of one of the fields of the VTX tab" + }, + "vtxPowerHelp": { + "message": "Це потужність, вибрана для відеопередавача. Її можна змінити, якщо ввімкнено $t(vtxPitMode.message) або $t(vtxLowPowerDisarm.message)", + "description": "Help text for the power field of the VTX tab" + }, + "vtxPitMode": { + "message": "Режим ями", + "description": "Text of one of the fields of the VTX tab" + }, + "vtxPitModeHelp": { + "message": "Коли ввімкнено, відеопередавач переходить у режим дуже низької потужності, щоб дозволити квадрокоптеру передавати відеосигнал, не заважаючи іншим пілотам. Зазвичай, радіус дії цього режиму становить менше 5 м.

    ПРИМІТКА: Деякі протоколи, наприклад SmartAudio, не можуть увімкнути режим ями через програмне забезпечення після подачі живлення.", + "description": "Help text for the pit mode field of the VTX tab" + }, + "vtxPitModeFrequency": { + "message": "Частота режиму ями", + "description": "Text of one of the fields of the VTX tab" + }, + "vtxPitModeFrequencyHelp": { + "message": "Частота, на яку переходить відеопередавач при активації режиму ями.", + "description": "Help text for the pit mode field of the VTX tab" + }, + "vtxLowPowerDisarm": { + "message": "Низька потужність коли охолощений", + "description": "Text of one of the fields of the VTX tab" + }, + "vtxLowPowerDisarmHelp": { + "message": "Коли ввімкнено, відеопередавач використовує найнижчу доступну потужність, коли дрон охолощений (за винятком випадків, коли спрацювала \"безаварійність\" Failsafe).", + "description": "Help text for the low power disarm field of the VTX tab" + }, + "vtxLowPowerDisarmOption_0": { + "message": "Вимкнено", + "description": "One of the options for the Low Power Disarm mode of the VTX" + }, + "vtxLowPowerDisarmOption_1": { + "message": "Увімкнено", + "description": "One of the options for the Low Power Disarm mode of the VTX" + }, + "vtxLowPowerDisarmOption_2": { + "message": "Увімкнено до першого взведення", + "description": "One of the options for the Low Power Disarm mode of the VTX" + }, + "vtxTable": { + "message": "Таблиця відеопередавача", + "description": "Text of the header of the VTX Table element in the VTX tab" + }, + "vtxTablePowerLevels": { + "message": "Кількість рівнів потужності", + "description": "Text of one of the fields of the VTX Table element in the VTX tab" + }, + "vtxTablePowerLevelsHelp": { + "message": "Визначає кількість рівнів потужності, які підтримує ваш відеопередавач", + "description": "Help for the number of power levels field of the VTX Table element in the VTX tab" + }, + "vtxTablePowerLevelsTableHelp": { + "message": "У цій таблиці представлено різні значення потужності, які можна використовувати для відеопередавача. Вони розділені на два рядки, перший задає значення потужності, другий - як потужність буде позначатись:
    - $t(vtxTablePowerLevelsValue.message): для кожного рівня потужності потрібне значення, визначене виробником обладнання. Зверніться до свого виробника щодо правильного значення або зверніться до вікі Betaflight таблиць відеопередавача, щоб взяти звідти кілька зразків.
    - $t(vtxTablePowerLevelsLabel.message): ви можете розмістити тут потрібну позначку для кожного значення рівня потужності. Це можуть бути числові значення (25, 200, 600, 1.2), літери (OFF, MIN, MAX) або їх суміш.

    Ви повинні налаштувати лише ті рівні потужності, які дозволені у вашій країні.", + "description": "Help for the table of power levels (value-label) that appears in the VTX tab" + }, + "vtxTablePowerLevelsValue": { + "message": "Значення", + "description": "Text of one of the fields of the VTX Table element in the VTX tab" + }, + "vtxTablePowerLevelsLabel": { + "message": "Позначка", + "description": "Text of one of the fields of the VTX Table element in the VTX tab" + }, + "vtxTableBands": { + "message": "Кількість діапазонів", + "description": "Text of one of the fields of the VTX Table element in the VTX tab" + }, + "vtxTableChannels": { + "message": "Кількість каналів на діапазон", + "description": "Text of one of the fields of the VTX Table element in the VTX tab" + }, + "vtxTableBandsChannelsHelp": { + "message": "Це визначає кількість діапазонів і кількість каналів для кожного діапазону, які ви хочете для свого відеопередавача.", + "description": "Help for the number of bands and channels field of the VTX Table element in the VTX tab" + }, + "vtxTableBandTitleName": { + "message": "Назва", + "description": "Text of one of the titles of the VTX Table element in the VTX tab" + }, + "vtxTableBandTitleLetter": { + "message": "Літера", + "description": "Text of one of the titles of the VTX Table element in the VTX tab" + }, + "vtxTableBandTitleFactory": { + "message": "Фабрична
    назва", + "description": "Text of one of the titles of the VTX Table element in the VTX tab" + }, + "vtxTableBandsChannelsTableHelp": { + "message": "У цій таблиці представлено всі частоти, які можна використовувати для вашого відеопередавача. Ви можете мати кілька діапазонів і для кожного діапазону ви повинні налаштувати:
    - $t(vtxTableBandTitleName.message): Назва, яку ви хочете призначити цьому діапазону, як-от BOSCAM_A, FATSHARK або RACEBAND.< br>- $t(vtxTableBandTitleLetter.message): Коротка літера, яка посилається на діапазон.
    - $t(vtxTableBandTitleFactory.message): Це вказує, чи це фабричний діапазон. Якщо ввімкнено, Betaflight надсилає до відеопередавача номер діапазону та каналу. Тоді відеопередавач використовуватиме свою вбудовану таблицю частот, а налаштовані тут частоти призначені лише для відображення значення в наекранному меню та інших місцях. Якщо його не ввімкнути, Betaflight надішле на VTX справжню частоту, налаштовану тут.
    - Частоти: частоти для цього діапазону.

    Пам’ятайте, що не всі частоти є законними у вашій країні. Ви повинні встановити нульове значення для кожного індексу частоти, який вам заборонено використовувати, щоб вимкнути його.", + "description": "Help for the table of bands-channels that appears in the VTX tab" + }, + "vtxSavedFileOk": { + "message": "Файл конфігурації відеопередавача збережено", + "description": "Message in the GUI log when the VTX Config file is saved" + }, + "vtxSavedFileKo": { + "message": "Помилка під час збереження файлу конфігурації відеопередавача", + "description": "Message in the GUI log when the VTX Config file is saved" + }, + "vtxSavedLuaFileOk": { + "message": "lua файл налаштувань відеопередавача збережено", + "description": "Message in the GUI log when the lua VTX Config file is saved" + }, + "vtxSavedLuaFileKo": { + "message": "Помилка під час збереження lua файлу налаштувань відеопередавача", + "description": "Message in the GUI log when the lua VTX Config file saving has failed" + }, + "vtxLoadFileOk": { + "message": "Файл конфігурації відеопередавача (VTX) завантажено", + "description": "Message in the GUI log when the VTX Config file is loaded" + }, + "vtxLoadFileKo": { + "message": "Помилка під час завантаження файлу конфігурації відеопередавача", + "description": "Message in the GUI log when the VTX Config file is loaded" + }, + "vtxLoadClipboardOk": { + "message": "Конфігурація відеопередавачазавантажена з буфера обміну", + "description": "Message in the GUI log when the VTX Config file is pasted from clipboard" + }, + "vtxLoadClipboardKo": { + "message": "Помилка під час завантаження конфігурації відеопередавача з буфера обміну. Можливо, зміст не є правильним", + "description": "Message in the GUI log when the VTX Config file is pasted from clipboard" + }, + "vtxButtonSaveFile": { + "message": "Зберегти до файлу", + "description": "Save to file button in the VTX tab" + }, + "vtxButtonSaveLua": { + "message": "Зберегти сценарій Lua", + "description": "Save Lua script button in the VTX tab" + }, + "vtxLuaFileHelp": { + "message": "Кнопка «$t(vtxButtonSaveLua.message)» дозволить вам зберегти файл mcuid.lua, що містить конфігурацію таблиці відеопередавача, яку можна використовувати з Сценаріями Betaflight Lua на пульті.

    Версії 1.6.0 і вище можуть використовувати файл як є, але для старіших версій сценаріїв Lua, файл слід перейменувати відповідно до назви моделі передавача (TX).", + "description": "Tooltip message for the Save Lua script button in the VTX tab" + }, + "vtxButtonLoadFile": { + "message": "Завантажити з файлу", + "description": "Load to file button in the VTX tab" + }, + "vtxButtonLoadClipboard": { + "message": "Завантажити з буфера обміну", + "description": "Paste from clipboard button in the VTX tab" + }, + "vtxButtonSave": { + "message": "Зберегти", + "description": "Save button in the VTX tab" + }, + "vtxButtonSaving": { + "message": "Збереження", + "description": "Show state of the Save button in the VTX tab" + }, + "vtxButtonSaved": { + "message": "Збережено", + "description": "Saved action button in the VTX tab" + }, + "vtxSmartAudioUnlocked": { + "message": "{{version}} розблоковано", + "description": "Indicates if SA device is unlocked" + }, + "mainHelpArmed": { + "message": "Взведення мотора" + }, + "mainHelpFailsafe": { + "message": "Режим безаварійності" + }, + "mainHelpLink": { + "message": "Статус послідовного порту" + }, + "configurationEscProtocol": { + "message": "Протокол ESC/мотора" + }, + "configurationEscProtocolHelp": { + "message": "Виберіть протокол для вашого мотора.
    Переконайтеся, що протокол підтримується вашим електронним регулятором швидкості, цю інформацію можна знайти на веб-сайті виробника.
    Будьте обережні з використанням DSHOT900 та DSHOT1200, оскільки їх підтримують не всі ESC!" + }, + "configurationEscProtocolHelpNoDSHOT1200": { + "message": "Виберіть свій протокол керування моторами.
    Переконайтеся, що ваш електронний контролер швидкості ESC підтримує протокол, ця інформація має бути на веб-сайті виробника." + }, + "configurationunsyndePwm": { + "message": "Швидкість ШІМ мотора Відокремлена від швидкості PID" + }, + "configurationUnsyncedPWMFreq": { + "message": "Частота ШІМ мотора" + }, + "configurationDshotBidir": { + "message": "Двонаправлений DShot (потребує підтримки прошивкою ESC)", + "description": "Feature for the ESC/Motor" + }, + "configurationDshotBidirHelp": { + "message": "Відправляє в польотний контролер дані з електронного контролера швидкості ESC через телеметрію DShot. Є необхідною умовою для фільтрації RPM і динамічного холостого ходу.

    Примітка: вимагає сумісного ESC з підходящою прошивкою, н-д JESC, Jazzmac, BLHeli-32.", + "description": "Description of the Bidirectional DShot feature of the ESC/Motor" + }, + "configurationGyroSyncDenom": { + "message": "Частота оновлень гіроскопа" + }, + "configurationPidProcessDenom": { + "message": "Частота циклу PID" + }, + "configurationPidProcessDenomHelp": { + "message": "Максимальна частота для циклу PID обмежується максимальною частотою оновлень, які можуть надіслати вибраний протокол електронного регулятора швидкості / мотора." + }, + "configurationGyroUse32kHz": { + "message": "Увімкнути частоту дискретизації гіроскопа 32 кГц" + }, + "configurationGyroUse32kHzHelp": { + "message": "Частота оновлення гіроскопа 32 кГц можлива лише за підтримки мікросхемою гіроскопа (наразі MPU6500, MPU9250, та ICM20xxx, при підключенні через SPI). Якщо у вас є сумніви, перегляньте специфікацію для вашої плати." + }, + "configurationAccHardware": { + "message": "Акселерометр" + }, + "configurationBaroHardware": { + "message": "Барометр (якщо підтримується)" + }, + "configurationMagHardware": { + "message": "Магнітометр (якщо підтримується)" + }, + "configurationSmallAngle": { + "message": "Макс. кут взведення [degrees]" + }, + "configurationSmallAngleHelp": { + "message": "Судно не буде взведено, якщо нахил перевищує вказану кількість градусів. Ця умова діє тільки у випадку, якщо акселерометр включений. Встановлення значення 180 фактично відключить перевірку" + }, + "configurationBatteryVoltage": { + "message": "Напруга акумулятора" + }, + "configurationBatteryCurrent": { + "message": "Струм споживання" + }, + "configurationBatteryMeterType": { + "message": "Тип вимірювача батареї" + }, + "configurationBatteryMinimum": { + "message": "Мін. напруга комірки" + }, + "configurationBatteryMaximum": { + "message": "Макс. напруга комірки" + }, + "configurationBatteryWarning": { + "message": "Попередження про напругу комірки" + }, + "configurationBatteryScale": { + "message": "Маштаб напруги" + }, + "configurationCurrentMeterType": { + "message": "Тип вимірювача струму" + }, + "configurationCurrent": { + "message": "Датчик струму" + }, + "configurationCurrentScale": { + "message": "Масштабувати вихідну напругу в міліампери [1/10та мВ/А]" + }, + "configurationCurrentOffset": { + "message": "Зсув у мілівольтових кроках" + }, + "configurationBatteryMultiwiiCurrent": { + "message": "Увімкнути підтримку застарілого Multiwii MSP у якості джерела інформації про струм" + }, + "pidTuningProfile": { + "message": "Профіль" + }, + "pidTuningProfileTip": { + "message": "В польотному контролері можна зберігати до 3 (до 2 для деяких контролерів) різних профілів PID. Профілі PID включають налаштування PID, задане значення Д та налаштування режимів Кут/Горизонт на цій вкладці. Під час польоту на місцевості, можна використовувати прості команди зі стіків (див. онлайн інструкції) для перемикання між профілями." + }, + "pidTuningRateProfile": { + "message": "Rateprofile" + }, + "pidTuningRateProfileTip": { + "message": "До 3-х різних профілів коефіцієнтів може бути збережено на польотному контролері. Ці профілі включають налаштування \"RC Коефіцієнт\", \"Коефіцієнт\", \"RC Експонента\", \"Тяга\" та \"TPA\". Переключення між профілями коефіцієнтів можливе під час польоту, налаштувавши перемикач з 3 положеннями для \"Вибору профілю коефіцієнтів\" на вкладці \"Налаштування\"." + }, + "pidTuningRateSetup": { + "message": "Базові/Акро коефіцієнти" + }, + "pidTuningRateSetupHelp": { + "message": "Настроюйте ці значення для встановлення своїх коефіцієнтів. Використовуйте RC коефіцієнт для загального збільшення максимальної швидкості руху, використовуйте Супер Коефіцієнт для більших коефіцієнтів у кінці ходу стіків, а також використовуйте RC Експо для забезпечення більш плавного відчуття стіків близько до центрального положення.", + "description": "Rate table helpicon message" + }, + "pidTuningDelta": { + "message": "Метод похідних" + }, + "pidTuningDeltaError": { + "message": "Помилка" + }, + "pidTuningDeltaMeasurement": { + "message": "Вимірювання" + }, + "pidTuningDeltaTip": { + "message": "Похідна від помилки забезпечує більш пряму реакцію на рух стіків та переважно використовується в гонках.

    Похідна від вимірювання забезпечує більш плавну реакцію на рух стіків, що більш корисно для фрістайлу" + }, + "pidTuningPidControllerTip": { + "message": "Старий алгоритм обчислення порівняно з Betaflight (зплаваючою комою): Масштабування PID і логіка PID абсолютно однакові. Переналаштування не обов'язкове. Старий алгоритм — це старий betaflight, яке є базовим PID контролером на основі цілочисельної математики. PID контролер Betaflight використовує математику з плаваючою комою та має багато нових функцій, спеціально розроблених для багатороторних застосувань
    Плаваюча кома проти цілочисельних операцій: Масштабування PID та логіка PID абсолютно однакові. Перенастроювати не потрібно. Плати F1 не мають вбудованого прискорювача обчислень з плаваючою комою, і математика з плаваючою комою збільшує навантаження на ЦП, а цілочисельна математика підвищить продуктивність, але математика з плаваючою комою може отримати трохи більшу точність." + }, + "pidTuningFilterTip": { + "message": "М'який фільтр гіроскопа: Фільтр низьких частот для гіроскопа. Використовуйте менше значення для більшої фільтрації.
    Фільтр Д-коефіцієнта: Фільтр низьких частот для D-коефіцієнта. Може впливати на налаштування D. Використовуйте менше значення для кращої фільтрації.
    Фільтр рискання: Фільтрує вихідний сигнал рискання. Може допомогти на установках із зашумленою віссю рискання." + }, + "pidTuningRatesTip": { + "message": "Грайтесь з коефіцієнтами та дивіться, як це впливає на криву реакції на стіки" + }, + "configurationCamera": { + "message": "Камера" + }, + "configurationPersonalization": { + "message": "Персоналізація" + }, + "craftName": { + "message": "Ім'я судна" + }, + "configurationCraftNameHelp": { + "message": "Може відображатися в журналах, іменах файлів резервних копій та наекранному меню.
    Можна встановити за допомогою змінної CLI craft_name." + }, + "configurationPilotName": { + "message": "Ім'я пілота" + }, + "configurationPilotNameHelp": { + "message": "Може відображатися в наекранному меню.
    Можна встановити за допомогою змінної CLI pilot_name." + }, + "configurationFpvCamAngleDegrees": { + "message": "Кут нахилу FPV камери [degrees]" + }, + "onboardLoggingBlackbox": { + "message": "Пристрій для запису журналу" + }, + "onboardLoggingRateOfLogging": { + "message": "Частота записів в чорну скриню" + }, + "onboardLoggingDebugFields": { + "message": "Дані, що включені" + }, + "onboardLoggingDebugMode": { + "message": "Режим налагодження" + }, + "onboardLoggingDebugModeUnknown": { + "message": "НЕВІДОМО" + }, + "onboardLoggingSerialLogger": { + "message": "Зовнішній послідовний пристрій для логування" + }, + "onboardLoggingFlashLogger": { + "message": "Вбудований чіп пам'яті" + }, + "onboardLoggingEraseInProgress": { + "message": "Виконується видалення, зачекайте..." + }, + "onboardLoggingOnboardSDCard": { + "message": "Вбудована SD карта" + }, + "onboardLoggingMsc": { + "message": "Режим накопичувача" + }, + "onboardLoggingMscNote": { + "message": "Перезавантажтеся в режим накопичувача (MSC). Після активації бортова флеш-пам’ять або SD-карта на контролері польоту буде розпізнано комп’ютером як запам’ятовуючий пристрій і дозволить вам завантажити файли журналу. Щоб вийти з режиму накопичувача, від'єднайте польотний контролер від комп'ютера та перезавантажте його." + }, + "onboardLoggingRebootMscText": { + "message": "Активуйте режим накопичувача" + }, + "onboardLoggingMscNotReady": { + "message": "Режим накопичувача не можна активувати, оскільки пристрій зберігання даних не готовий." + }, + "dialogConfirmResetTitle": { + "message": "Підтвердити" + }, + "dialogConfirmResetNote": { + "message": "УВАГА: Ви впевнені, що хочете скинути УСІ налаштування до налаштувань за замовчуванням? Це не є \"скидання до заводських налаштувань\". Це може призвести до непередбачуваних проблем, і, можливо, доведеться знову прошивати пристрій, щоб знову під'єднатися до нього." + }, + "dialogConfirmResetConfirm": { + "message": "Скинути" + }, + "dialogConfirmResetClose": { + "message": "Відмінити" + }, + "modeCameraWifi": { + "message": "КНОПКА WI-FI КАМЕРИ" + }, + "modeCameraPower": { + "message": "КНОПКА ЖИВЛЕННЯ КАМЕРИ" + }, + "modeCameraChangeMode": { + "message": "РЕЖИМ ЗМІНИ КАМЕРИ" + }, + "flashTab": { + "message": "Оновити прошивку" + }, + "cliAutoComplete": { + "message": "Просунуте автодоповнення CLI" + }, + "darkTheme": { + "message": "Увімкнути темну тему" + }, + "pidTuningRatesType": { + "message": "Тип коефіцієнтів" + }, + "pidTuningRatesTypeTip": { + "message": "Зміна типу коефіцієнтів змінить криву коефіцієнтів та спосіб її налаштування" + }, + "pidTuningRcRateRaceflight": { + "message": "Коефіцієнт" + }, + "pidTuningRcExpoRaceflight": { + "message": "Експо" + }, + "pidTuningRateRaceflight": { + "message": "Акро+" + }, + "pidTuningRcExpoKISS": { + "message": "Крива RC" + }, + "pidTuningRateQuickRates": { + "message": "Макс. Коефіцієнт" + }, + "pidTuningRcRateActual": { + "message": "Чутливість центру" + }, + "dialogRatesTypeTitle": { + "message": "Зміна типу коефіцієнтів реагування" + }, + "dialogRatesTypeNote": { + "message": "УВАГА: Ви змінюєте тип коефіцієнтів. Якщо ви зміните тип коефіцієнтів, ваші коефіцієнти будуть встановлені в значення кривої за замовчуванням." + }, + "dialogRatesTypeConfirm": { + "message": "Змінити" + }, + "gpsSbasAutoDetect": { + "message": "Автовизначення", + "description": "One of the options selectable for the GPS SBAS system" + }, + "gpsSbasEuropeanEGNOS": { + "message": "Європейський EGNOS", + "description": "One of the options selectable for the GPS SBAS system" + }, + "gpsSbasNorthAmericanWAAS": { + "message": "Північноамериканський WAAS", + "description": "One of the options selectable for the GPS SBAS system" + }, + "gpsSbasJapaneseMSAS": { + "message": "Японський MSAS", + "description": "One of the options selectable for the GPS SBAS system" + }, + "gpsSbasIndianGAGAN": { + "message": "Індійський GAGAN", + "description": "One of the options selectable for the GPS SBAS system" + }, + "gpsSbasNone": { + "message": "Відсутній", + "description": "One of the options selectable for the GPS SBAS system" + }, + "dialogFileNameTitle": { + "message": "Назва файлу" + }, + "dialogFileNameDescription": { + "message": "Файл буде збережений в папці 'Android/data/betaflight-configurator/{{folder}}' на вашому внутрішньому сховищі." + }, + "dialogFileAlreadyExistsTitle": { + "message": "Такий файл вже існує!" + }, + "dialogFileAlreadyExistsDescription": { + "message": "Перезаписати?" + }, + "cordovaCheckingWebview": { + "message": "Перевірка застосунків webview..." + }, + "cordovaIncompatibleWebview": { + "message": "Несумісний webview" + }, + "cordovaWebviewTroubleshootingMsg": { + "message": "Вам необхідно оновити webview вашого пристрою для використання конфігуратора." + }, + "cordovaWebviewTroubleshootingMsg2": { + "message": "Нижче наведений інструмент допоможе вам встановити новий webview або оновити вже встановлений webview." + }, + "cordovaAvailableWebviews": { + "message": "Доступні програми webview на вашому пристрої" + }, + "cordovaWebviewInstall": { + "message": "Встановлення програми {{app}} може вирішити цю проблему сумісності." + }, + "cordovaWebviewInstallBtn": { + "message": "Встановити з Google Play Store" + }, + "cordovaWebviewUninstall": { + "message": "Видалення програми {{app}} може вирішити цю проблему сумісності. Якщо ви не можете видалити її, спробуйте вимкнути її в налаштуваннях." + }, + "cordovaWebviewUninstallBtn1": { + "message": "Видалити з Google Play Store" + }, + "cordovaWebviewUninstallBtn2": { + "message": "Видалити / вимкнути в налаштуваннях" + }, + "cordovaWebviewUpdate": { + "message": "Оновлення програми {{app}} може вирішити цю проблему сумісності." + }, + "cordovaWebviewUpdateBtn": { + "message": "Оновлення з магазину Google Play" + }, + "cordovaWebviewEnable": { + "message": "Перейдіть на вкладку інформації про ваш пристрій в налаштуваннях та натисніть 10 разів по номеру збірки, щоб увімкнути \"Параметри розробника\". Після цього знайдіть і перейдіть у параметри розробника та виберіть {{app}} як постачальника веб-перегляду." + }, + "cordovaWebviewEnableBtn": { + "message": "Відкрити налаштування" + }, + "cordovaWebviewIncompatible": { + "message": "Схоже, пристрій не є сумісним. Спробуйте пошукати інші способи оновити свій webview" + }, + "cordovaNoWebview": { + "message": "Не встановлено жодних програм webview" + }, + "cordovaWebviewUsed": { + "message": "використовується" + }, + "cordovaExitAppTitle": { + "message": "Підтвердження" + }, + "cordovaExitAppMessage": { + "message": "Ви дійсно хочете закрити конфігуратор?" + }, + "dropDownSelectAll": { + "message": "[Вибрати все/зняти виділення]", + "description": "Select all item in the drop down/multiple select" + }, + "dropDownFilterDisabled": { + "message": "Оберіть...", + "description": "Text indicating nothing is selected in the drop down/multiple select (filter disabled)" + }, + "dropDownAll": { + "message": "Всі", + "description": "Text indicating everything is selected in the drop down/multiple select" + }, + "tabPresets": { + "message": "Попередні налаштування", + "description": "Presets tab title" + }, + "presetsReload": { + "message": "Перезавантажити", + "description": "Text on the reload button that appears when there in an error loading presets index" + }, + "presetsAuthor": { + "message": "Автор:", + "description": "Hint text in the presets detailed dialog" + }, + "presetsKeywords": { + "message": "Ключові слова:", + "description": "Hint text in the presets detailed dialog" + }, + "presetsSourceRepository": { + "message": "Джерело:", + "description": "Text prefixing user defined name of the preset repository containing a preset" + }, + "presetsVersions": { + "message": "Прошивка:", + "description": "Hint text in the presets detailed dialog" + }, + "presetsOfficial": { + "message": "Офіційні", + "description": "Hint text in the presets detailed dialog indication preset is official" + }, + "presetsCommunity": { + "message": "Спільнота", + "description": "Hint text in the presets detailed dialog indication preset is not official but community" + }, + "presetsExperimental": { + "message": "Експериментальні", + "description": "Hint text in the presets detailed dialog indication preset is not official but experimental" + }, + "presetsApply": { + "message": "Обрати", + "description": "Button to pick a preset" + }, + "presetsViewOnline": { + "message": "Переглянути онлайн…", + "description": "Link text for opening preset file online" + }, + "presetsOpenDiscussion": { + "message": "Обговорення…", + "description": "Link text for opening preset discussion" + }, + "presetsShowCli": { + "message": "Показати CLI", + "description": "Button to show CLI code of a preset" + }, + "presetsHideCli": { + "message": "Приховати CLI", + "description": "Button to hide CLI code of a preset" + }, + "presetsOptions": { + "message": "Опції", + "description": "Text label for Options drop down select" + }, + "presetsFilterCategory": { + "message": "Категорії", + "description": "UI filter name" + }, + "presetsFilterKeyword": { + "message": "Ключові слова", + "description": "UI filter name" + }, + "presetsFilterAuthor": { + "message": "Автори", + "description": "UI filter name" + }, + "presetsFilterFirmware": { + "message": "Прошивки", + "description": "UI filter name" + }, + "presetsFilterStatus": { + "message": "Стан", + "description": "UI filter name - official/community/experimental" + }, + "presetsLoadError": { + "message": "Помилка при завантаженні попередніх налаштувань з Інтернету", + "description": "Error report when failed to load presets index or a specific preset" + }, + "presetsButtonSave": { + "message": "Зберегти й перезавантажити", + "description": "A button that saves all appied presets - analog to 'save' command in CLI" + }, + "presetsButtonCancel": { + "message": "Скасувати", + "description": "A button that restarts FC without saving appied presets - analog to 'exit' command in CLI" + }, + "presetsApplyingPresets": { + "message": "Застосування конфігурації...", + "description": "First label in the progress dialog when applying configuration (presets or user config)" + }, + "presetsPleaseWait": { + "message": "Будь ласка, зачекайте.", + "description": "Second label in the progress dialog when applying presets" + }, + "presetsCliErrorsWaring": { + "message": "УВАГА!
    Конфігурація була застосована з помилками інтерфейсу командного рядка CLI.", + "description": "Text to show when there are CLI errors after applying presets or user configuration" + }, + "presetsSaveAnyway": { + "message": "Усе одно зберегти", + "description": "Save anyway button on the CLI errors presets dialog" + }, + "presetsWarningDialogTitle": { + "message": "ПОПЕРЕДЖЕННЯ!", + "description": "Warning title in the warning dialog in the presets" + }, + "presetsWarningDialogYesButton": { + "message": "Погоджуюсь", + "description": "Agree button in the presets warning dialog" + }, + "presetsWarningDialogNoButton": { + "message": "Скасувати", + "description": "Cancel button in the presets warning dialog" + }, + "presetsWiki": { + "message": "Wiki пресетів", + "description": "Button to open Presets Wiki link" + }, + "presetsBackupSave": { + "message": "Зберегти резервну копію", + "description": "Button to backup current configuration to file" + }, + "presetsBackupLoad": { + "message": "Завантажити резервну копію", + "description": "Button to load backup from the file" + }, + "presetsLoadingDumpAll": { + "message": "Завантаження поточної конфігурації з польотного контролера", + "description": "Title for the waiting dialog when loading dump all into a file" + }, + "dumpAllNotSavedWarning": { + "message": "Сталася помилка під час збереження поточної конфігурації", + "description": "Message appears on presets tab when saving current diff all into a file has failed" + }, + "presetSources": { + "message": "Джерела попередніх налаштувань", + "description": "A button to show preset sources dialog" + }, + "presetsSourcesDialogTitle": { + "message": "Джерела попередніх налаштувань", + "description": "A button to show preset sources dialog" + }, + "presetsSourcesDialogAddNew": { + "message": "Додати нове джерело", + "description": "A button to show preset sources dialog" + }, + "presetsSourcesDialogDefaultSourceName": { + "message": "Нове власне джерело пресетів", + "description": "A default preset source (repo) name" + }, + "presetsSourcesDialogSaveSource": { + "message": "Зберегти", + "description": "Presets tab, sources dialog, button to save new or editable source" + }, + "presetsSourcesDialogResetSource": { + "message": "Скинути", + "description": "Presets tab, sources dialog, button to reset source after modifications" + }, + "presetsSourcesDialogMakeSourceActive": { + "message": "Активувати", + "description": "Presets tab, sources dialog, button to make selected source active" + }, + "presetsSourcesDialogMakeSourceDisable": { + "message": "Зробити вимкненим", + "description": "Presets tab, sources dialog, button to make selected source disabled" + }, + "presetsSourcesDialogDeleteSource": { + "message": "Видалити", + "description": "Presets tab, sources dialog, button to delete selected source" + }, + "presetsWarningNotOfficialSource": { + "message": "УВАГА! Вибрано джерело попередніх налаштувань від третіх осіб / неофіційне джерело.", + "description": "Warning message that shows up when a third party preset source is selected" + }, + "presetsFailedToLoadRepositories": { + "message": "УВАГА! Не вдалося завантажити наступні репозиторії: {{repos}}", + "description": "Warning message that shows up when we fail to load some repositories" + }, + "presetsWarningBackup": { + "message": "Будь ласка, переконайтесь що ви зробили резервну копію існуючих налаштувань (кнопкою '$t(presetsBackupSave.message)' або за допомогою командного рядка CLI, якщо кнопка виключена) перед тим, як вибирати чи застосовувати попередні налаштування. Інакше, після застосування пресетів, повернутись до попередньої конфігурації буде неможливо.", + "description": "Warning message that shows up at the top of the presets tab" + }, + "presets_sources_dialog_warning": { + "message": "УВАГА! Використання попередніх налаштувань від третіх сторін може бути небезпечним.
    Переконайтеся, що ви додаєте та використовуєте лише надійні джерела. Шкідливі або погані джерела порушать конфігурацію безпілотників і можуть потенційно зашкодити пристроям.", + "description": "Warning message that shows up at the top of the preset sources dialog" + }, + "presetsWarningWrongVersionConfirmation": { + "message": "Обрані попередні налаштування вимагають версії прошивки $1.
    Поточна версія прошивки - $2", + "description": "Warning message that shows up at the top of the preset sources dialog" + }, + "presetsNoPresetsFound": { + "message": "Для заданих параметрів пошуку, попередні налаштування не знайдено", + "description": "Message that apprears on presets tab if no presets were found" + }, + "presetsTooManyPresetsFound": { + "message": "Досягнуто максимального ліміта кількості показаних пресетів", + "description": "Message that apprears on presets tab if too many presets found" + }, + "presetsOptionsPlaceholder": { + "message": "УВАГА! Перегляньте список опцій", + "description": "Placeholder for the options list dropdown" + }, + "presetsVersionMismatch": { + "message": "Розбіжність версії джерела попередніх налаштувань.
    Необхідна версія: {{versionRequired}}
    Версія джерела: {{versionSource}}
    Використання цього попередніх налаштувань може бути небезпечним.
    Бажаєте продовжити?", + "description": "Placeholder for the options list dropdown" + }, + "presetsReviewOptionsWarning": { + "message": "Будь ласка, перегляньте список опцій перед вибором цього набору попередніх налаштувань.", + "description": "Dialog text to prompt user to review options for the preset" + }, + "firmwareFlasherBuildConfigurationHead": { + "message": "Конфігурація збірки" + }, + "firmwareFlasherBuildOptions": { + "message": "Інші параметри" + }, + "firmwareFlasherBuildRadioProtocols": { + "message": "Радіопротокол" + }, + "firmwareFlasherBuildTelemetryProtocols": { + "message": "Протокол телеметрії" + }, + "firmwareFlasherBuildMotorProtocols": { + "message": "Протокол моторів" + }, + "firmwareFlasherConfigurationFile": { + "message": "Назва файлу конфігурації:" + }, + "firmwareFlasherRadioProtocolDescription": { + "message": "Виберіть радіопротокол, який ви хочете включити у цю збірку. Зверніть увагу, що це випадаючий список, але можна вибрати лише один елемент." + }, + "firmwareFlasherTelemetryProtocolDescription": { + "message": "Виберіть протокол телеметрії, який ви хотіли б включити у цю збірку. Зауважте, що це випадаючий список, але можна вибрати лише один елемент. Також деякі протоколи телеметрії будуть увімкнені автоматично, незалежно від вашого вибору тут, якщо вони потрібні для радіообміну, наприклад, CRSF." + }, + "firmwareFlasherOptionsDescription": { + "message": "Оберіть загальні опції, які б ви хотіли включили до цієї збірки. Зауважте, що це випадаючий список, і можна вибрати декілька елементів. Такі речі як виправлення, наприклад, відеопередавача AKK, знаходяться в цьому списку." + }, + "firmwareFlasherMotorProtocolDescription": { + "message": "Виберіть протокол керування моторами (електронними контролерами швидкості), який ви хотіли б додати до цієї збірки. Зверніть увагу, що в випадаючому меню можна вибрати лише один елемент." + }, + "firmwareFlasherBranchDescription": { + "message": "Особливо корисно для розробників, ви можете вибрати запит на злиття (merged pull request), вказати коміт SHA або вказати \"ще не злитий\" запит на злиття, ввівши знак \"#\" за яким слідує номер запиту на злиття, наприклад #1234 (це стислий запис для гілки 'pull/1234/head')." + }, + "firmwareFlasherCustomDefinesDescription": { + "message": "Для розробників, ви можете додавати будь-які визначення, які вам потрібні, розділені пробілами, але без префіксу `USE_`, він буде доданий автоматично для вас." + }, + "firmwareFlasherBuildCustomDefines": { + "message": "Користувацькі #define" + }, + "coreBuild": { + "message": "Лише ядро" + }, + "coreBuildModeDescription": { + "message": "Ця опція збирає прошивку, яка містить драйвери апаратного забезпечення (та деякі обмежені функції). Вона доступна для допомоги виявлення апаратних засобів у польотному контролері і надається лише для зручності. При виборі цієї опції, не всі функції будуть доступні (тільки апаратні засоби)." + }, + "showDevToolsOnStartup": { + "message": "Автоматично відкривати інструменти розробника в режимі розробки", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" + } +} diff --git a/src/js/localization.js b/src/js/localization.js index 9afefdad33..0cba8a0a36 100644 --- a/src/js/localization.js +++ b/src/js/localization.js @@ -10,7 +10,7 @@ const i18n = {}; window.i18n = i18n; -const languagesAvailables = ['ca', 'da', 'de', 'en', 'es', 'eu', 'fr', 'gl', 'it', 'ja', 'ko', 'nl', 'pt', 'pt_BR', 'pl', 'ru', 'zh_CN', 'zh_TW']; +const languagesAvailables = ['ca', 'da', 'de', 'en', 'es', 'eu', 'fr', 'gl', 'it', 'ja', 'ko', 'nl', 'pt', 'pt_BR', 'pl', 'ru', 'uk', 'zh_CN', 'zh_TW']; const languageFallback = { 'pt': ['pt_BR', 'en'], From 1a4a3a5d808442e888c90318a34a406c079a9902 Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Sat, 29 Jul 2023 22:01:28 +0200 Subject: [PATCH 138/393] AUX modes updated in help tips and virtuelFC, also sort of LinkedTo option list at Mode tab (#3519) * Add all modes found in betaflight msp/msp_box.c * Add more description as found at betaflight.com modes tab * Sort LinkedTo * Update VirtualFC.js AIRMODE are "AIR MODE" --- locales/en/messages.json | 204 ++++++++++++++++++++++++--------------- src/js/VirtualFC.js | 9 +- src/js/tabs/auxiliary.js | 3 + 3 files changed, 134 insertions(+), 82 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 7c2845807c..9e58f179ad 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -2299,57 +2299,45 @@ "auxiliaryModeLogicAND": { "message": "AND" }, + "auxiliaryHelpMode_3D": { + "message": "Enables reversible motor direction to provide negative thrust and allow inverted flight. Throttle becomes -100 to +100 instead of 0 to 100", + "description": "Help text to 3D mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Flight mode which limits craft angle when flying in acro mode", + "description": "Help text to ACRO TRAINER mode" + }, "auxiliaryHelpMode_ARM": { - "message": "Enables motors and flight stabilisation", + "message": "Enables motor output and allows the craft to fly", "description": "Help text to ARM mode" }, "auxiliaryHelpMode_ANGLE": { "message": "In this auto-leveled mode the roll and pitch channels control the angle between the relevant axis and the vertical, achieving leveled flight just by leaving the sticks centered", "description": "Help text to ANGLE mode" }, - "auxiliaryHelpMode_HORIZON": { - "message": "This hybrid mode works exactly like the ANGLE mode with centered roll and pitch sticks (thus enabling auto-leveled flight), then gradually behaves more and more like the default RATE mode as the sticks are moved away from the center position", - "description": "Help text to HORIZON mode" - }, - "auxiliaryHelpMode_MAG": { - "message": "Heading lock to Magnetometer direction", - "description": "Help text to MAG mode" + "auxiliaryHelpMode_ANTIGRAVITY": { + "message": "Flight mode increases P and I term during fast throttle movements to improve stick tracking and avoid nose drift on fast throttle changes", + "description": "Help text to ANTIGRAVITY mode" }, - "auxiliaryHelpMode_HEADFREE": { - "message": "In this mode, the \"head\" of the multicopter is always pointing to the same direction as when the feature was activated. This means that when the multicopter rotates around the Z axis (yaw), the controls will always respond according the same \"head\" direction.
    With this mode it is easier to control the multicopter, even fly it with the physical head towards you since the controls always respond the same. This is a friendly mode to new users of multicopters and can prevent losing the control when you don't know the head direction", - "description": "Help text to HEADFREE mode" - }, - "auxiliaryHelpMode_PASSTHRU": { - "message": "Pass roll, yaw, and pitch directly from rx to servos in airplane mix", - "description": "Help text to PASSTHRU mode" - }, - "auxiliaryHelpMode_FAILSAFE": { - "message": "Enter failsafe stage 2 manually", - "description": "Help text to FAILSAFE mode" - }, - "auxiliaryHelpMode_GPSRESCUE": { - "message": "Enable 'GPS Rescue' to return the craft to the location where it was last armed", - "description": "Help text to GPS RESCUE mode" - }, - "auxiliaryHelpMode_HEADADJ": { - "message": "Heading Adjust - Sets a new yaw origin for HEADFREE mode", - "description": "Help text to HEAD ADJ mode" + "auxiliaryHelpMode_AIRMODE": { + "message": "In the standard mixer / mode, when the roll, pitch and yaw gets calculated and saturates a motor, all motors will be reduced equally. When a motor goes below minimum it gets clipped off. Say you had your throttle just above minimum and tried to pull a quick roll - since two motors can't go any lower, you essentially get half the power (half of your PID gain). If your inputs would have asked for more than a 100% difference between the high and low motors, the low motors would get clipped, breaking the symmetry of the motor balance by unevenly reducing the gain", + "description": "Help text to AIRMODE mode" }, "auxiliaryHelpMode_BEEPER": { "message": "Enable beeping - useful for locating a crashed aircraft", "description": "Help text to BEEPER mode" }, - "auxiliaryHelpMode_LEDLOW": { - "message": "Switch off LED_STRIP output", - "description": "Help text to LEDLOW mode" + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Disable/enable beeper including warning, status and BEEPER mode", + "description": "Help text to BEEPERMUTE mode" }, - "auxiliaryHelpMode_OSDDISABLE": { - "message": "Enable/Disable On-Screen-Display", - "description": "Help text to OSD mode" + "auxiliaryHelpMode_BEEPERON": { + "message": "Enable BEEPER ON mode", + "description": "Help text to BEEPER ON mode" }, - "auxiliaryHelpMode_TELEMETRY": { - "message": "Enable telemetry via switch", - "description": "Help text to TELEMETRY mode" + "auxiliaryHelpMode_BEEPGPSSATELLITECOUNT": { + "message": "Enable BEEP GPS SATELLITE COUNT modee", + "description": "Help text to BEEP GPS SATELLITE COUNT mode" }, "auxiliaryHelpMode_BLACKBOX": { "message": "Enable BlackBox logging", @@ -2359,13 +2347,13 @@ "message": "Erase BlackBox log", "description": "Help text to BLACKBOX ERASE mode" }, - "auxiliaryHelpMode_AIRMODE": { - "message": "In the standard mixer / mode, when the roll, pitch and yaw gets calculated and saturates a motor, all motors will be reduced equally. When a motor goes below minimum it gets clipped off. Say you had your throttle just above minimum and tried to pull a quick roll - since two motors can't go any lower, you essentially get half the power (half of your PID gain). If your inputs would have asked for more than a 100% difference between the high and low motors, the low motors would get clipped, breaking the symmetry of the motor balance by unevenly reducing the gain", - "description": "Help text to AIRMODE mode" + "auxiliaryHelpMode_BOXPREARM": { + "message": "Enables BOXPREARM mode", + "description": "Help text to BOXPREARM mode" }, - "auxiliaryHelpMode_FPVANGLEMIX": { - "message": "Apply yaw rotation relative to a FPV camera mounted at a preset angle", - "description": "Help text to FPV ANGLE MIX mode" + "auxiliaryHelpMode_CALIB": { + "message": "Start in-flight calibration", + "description": "Help text to CALIB mode" }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "Use to toggle customized CAMERA CONTROL 1. Check in vendor manual", @@ -2379,66 +2367,126 @@ "message": "Use to toggle customized CAMERA CONTROL 3. Check in vendor manual", "description": "Help text to customized CAMERA CONTROL 3 mode" }, - "auxiliaryHelpMode_USER1": { - "message": "Use to toggle customized USER1. Check in vendor manual", - "description": "Help text to customized USER1 mode" - }, - "auxiliaryHelpMode_USER2": { - "message": "Use to toggle customized USER2. Check in vendor manual", - "description": "Help text to customized USER2 mode" - }, - "auxiliaryHelpMode_USER3": { - "message": "Use to toggle customized USER3. Check in vendor manual", - "description": "Help text to customized USER3 mode" + "auxiliaryHelpMode_CAMSTAB": { + "message": "Enables Camera Stabilisation mode", + "description": "Help text to CAMSTAB mode" }, - "auxiliaryHelpMode_USER4": { - "message": "Use to toggle customized USER4. Check in vendor manual", - "description": "Help text to customized USER4 mode" + "auxiliaryHelpMode_FAILSAFE": { + "message": "Enter failsafe stage 2 manually", + "description": "Help text to FAILSAFE mode" }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Reverse the motors to flip over an upside down craft after a crash (DShot required)", "description": "Help text to FLIP OVER AFTER CRASH mode" }, - "auxiliaryHelpMode_PREARM": { - "message": "When arming, wait for this switch to be activated before actually arming", - "description": "Help text to PREARM mode" + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Apply yaw rotation relative to a FPV camera mounted at a preset angle", + "description": "Help text to FPV ANGLE MIX mode" }, "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { - "message": "Use a number of beeps to indicate the number of GPS satellites found", + "message": "Use to indicate the number of GPS satellites found by beeping this number of times", "description": "Help text to GPS BEEP SATELLITE COUNT mode" }, - "auxiliaryHelpMode_VTXPITMODE": { - "message": "Switch the VTX into pit mode (low output power, if supported)", - "description": "Help text to VTX PIT MODE mode" + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Enable 'GPS Rescue' to return the craft to the location where it was last armed", + "description": "Help text to GPS RESCUE mode" }, - "auxiliaryHelpMode_PARALYZE": { - "message": "Permanently disable a crashed craft until it is power cycled", - "description": "Help text to PARALYZE mode" + "auxiliaryHelpMode_HEADADJ": { + "message": "Heading Adjust - Sets a new yaw origin for HEADFREE mode", + "description": "Help text to HEAD ADJ mode" }, - "auxiliaryHelpMode_ACROTRAINER": { - "message": "Enable 'acro trainer' angle limiting in acro mode", - "description": "Help text to ACRO TRAINER mode" + "auxiliaryHelpMode_HEADFREE": { + "message": "Flight mode where yaw is aligned with an external frame of reference (often where the pilot is facing) instead of the craft's. Designed for beginners but rarely used, advise ANGLE mode", + "description": "Help text to HEADFREE mode" }, - "auxiliaryHelpMode_VTXCONTROLDISABLE": { - "message": "Disable the control of VTX settings through the OSD", - "description": "Help text to VTX CONTROL DISABLE mode" + "auxiliaryHelpMode_HORIZON": { + "message": "This hybrid mode works exactly like the ANGLE mode with centered roll and pitch sticks (thus enabling auto-leveled flight), then gradually behaves more and more like the default RATE mode as the sticks are moved away from the center position", + "description": "Help text to HORIZON mode" }, "auxiliaryHelpMode_LAUNCHCONTROL": { "message": "Race start assistance system", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { - "message": "Disable/enable stick command", - "description": "Help text to STICK COMMANDS DISABLE mode" + "auxiliaryHelpMode_LEDLOW": { + "message": "Switch off LED STRIP output", + "description": "Help text to LEDLOW mode" }, - "auxiliaryHelpMode_BEEPERMUTE": { - "message": "Disable/enable beeper including warning, status and BEEPER mode", - "description": "Help text to BEEPERMUTE mode" + "auxiliaryHelpMode_MAG": { + "message": "Heading lock to Magnetometer direction (compass control)", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_MSPOVERRIDE": { + "message": "Enable MSP Override mode", + "description": "Help text to MSP OVERRIDE mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Enable/Disable On-Screen-Display", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Pass roll, yaw, and pitch directly from rx to servos in airplane mix", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Permanently disable a crashed craft until it is power cycled", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_PIDAUDIO": { + "message": "Use to toggle PIDAUDIO", + "description": "Help text to PIDAUDIO mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "When arming, wait for this switch to be activated before actually arming", + "description": "Help text to PREARM mode" }, "auxiliaryHelpMode_READY": { "message": "Added in BF4.4, you can now show 'READY' in the OSD using a switch. This is a niche improvement for racing situations where all pilot video feeds are on one central screen. The pilot can flick a switch to indicate that they are ready to fly, and the word READY appears on their OSD. The race director can then tell if all pilots are ready by looking at the central screen. On arming, the READY text disappears", "description": "Help text to READY mode" }, + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "Disable/enable stick command", + "description": "Help text to STICK COMMANDS DISABLE mode" + }, + "auxiliaryHelpMode_SERVO1": { + "message": "Use to toggle SERVO1", + "description": "Help text to SERVO1 mode" + }, + "auxiliaryHelpMode_SERVO2": { + "message": "Use to toggle SERVO2", + "description": "Help text to SERVO2 mode" + }, + "auxiliaryHelpMode_SERVO3": { + "message": "Use to toggle SERVO3", + "description": "Help text to SERVO3 mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Enable telemetry via switch", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_USER1": { + "message": "Use to toggle customized USER1. Controls arbitrary output via PINIO", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Use to toggle customized USER2. Controls arbitrary output via PINIO", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Use to toggle customized USER3. Controls arbitrary output via PINIO", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Use to toggle customized USER4. Controls arbitrary output via PINIO", + "description": "Help text to customized USER4 mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Disable the control of VTX settings through the OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Switch the VTX into pit mode (low output power, if supported)", + "description": "Help text to VTX PIT MODE mode" + }, "adjustmentsHelp": { "message": "Configure adjustment switches. See the 'in-flight adjustments' section of the manual for details. The changes that adjustment functions make are not saved automatically." }, diff --git a/src/js/VirtualFC.js b/src/js/VirtualFC.js index 04281c8b96..ef11818891 100644 --- a/src/js/VirtualFC.js +++ b/src/js/VirtualFC.js @@ -166,12 +166,13 @@ const VirtualFC = { virtualFC.RC.channels[i] = 1500; } - // from https://betaflight.com/docs/development/Modes + // from https://betaflight.com/docs/development/Modes or msp/msp_box.c virtualFC.AUX_CONFIG = ["ARM","ANGLE","HORIZON","ANTI GRAVITY","MAG","HEADFREE","HEADADJ","CAMSTAB","PASSTHRU","BEEPERON","LEDLOW","CALIB", - "OSD","TELEMETRY","SERVO1","SERVO2","SERVO3","BLACKBOX","FAILSAFE","AIRMODE","3D","FPV ANGLE MIX","BLACKBOX ERASE","CAMERA CONTROL 1", + "OSD","TELEMETRY","SERVO1","SERVO2","SERVO3","BLACKBOX","FAILSAFE","AIR MODE","3D","FPV ANGLE MIX","BLACKBOX ERASE","CAMERA CONTROL 1", "CAMERA CONTROL 2","CAMERA CONTROL 3","FLIP OVER AFTER CRASH","BOXPREARM","BEEP GPS SATELLITE COUNT","VTX PIT MODE","USER1","USER2", - "USER3","USER4","PID AUDIO","PARALYZE","GPS RESCUE","ACRO TRAINER","DISABLE VTX CONTROL","LAUNCH CONTROL"]; - FC.AUX_CONFIG_IDS = [0,1,2,4,5,6,7,8,12,13,15,17,19,20,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49]; + "USER3","USER4","PID AUDIO","PARALYZE","GPS RESCUE","ACRO TRAINER","DISABLE VTX CONTROL","LAUNCH CONTROL", "MSP OVERRIDE", "STICK COMMANDS DISABLE", + "BEEPER MUTE", "READY"]; + FC.AUX_CONFIG_IDS = [0,1,2,4,5,6,7,8,12,13,15,17,19,20,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53]; for (let i = 0; i < 16; i++) { virtualFC.RXFAIL_CONFIG[i] = { diff --git a/src/js/tabs/auxiliary.js b/src/js/tabs/auxiliary.js index 8b63a6223a..3e2756ea78 100644 --- a/src/js/tabs/auxiliary.js +++ b/src/js/tabs/auxiliary.js @@ -142,6 +142,9 @@ auxiliary.initialize = function (callback) { linkList.append(linkOption); } + // sort linkedTo options, empty option on top + linkList.sortSelect(); + linkOptionTemplate.val(0); configureLogicList(linkTemplate); From 4087f0cfbac253180cfb807e38a3265a3421c140 Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Sun, 30 Jul 2023 13:11:17 +0200 Subject: [PATCH 139/393] GPS tab with same design for lat / lon as on Setup tab (#3516) Small design change --- locales/en/messages.json | 7 ++++++- src/js/tabs/gps.js | 3 +-- src/tabs/gps.html | 20 ++++++++------------ 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 9e58f179ad..0c2d11dafc 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -2778,6 +2778,10 @@ "gpsAltitude": { "message": "Altitude:" }, + "gpsLatLon": { + "message": "Current Latitude / Longitude:", + "description": "Show GPS position - Latitude / Longitude" + }, "gpsHeading": { "message": "Heading:" }, @@ -2785,7 +2789,8 @@ "message": "Speed:" }, "gpsSats": { - "message": "Sats:" + "message": "Number of Satellites:", + "description": "Show number of fixed GPS Satellites" }, "gpsDistToHome": { "message": "Dist to Home:" diff --git a/src/js/tabs/gps.js b/src/js/tabs/gps.js index f4deef2c15..734d34d752 100644 --- a/src/js/tabs/gps.js +++ b/src/js/tabs/gps.js @@ -195,8 +195,7 @@ gps.initialize = async function (callback) { const gspUnitText = i18n.getMessage('gpsPositionUnit'); $('.GPS_info td.alt').text(`${alt} m`); - $('.GPS_info td.lat a').prop('href', url).text(`${lat.toFixed(4)} ${gspUnitText}`); - $('.GPS_info td.lon a').prop('href', url).text(`${lon.toFixed(4)} ${gspUnitText}`); + $('.GPS_info td.latLon a').prop('href', url).text(`${lat.toFixed(4)} deg / ${lon.toFixed(4)} deg`); $('.GPS_info td.heading').text(`${headingDeg.toFixed(4)} ${gspUnitText}`); $('.GPS_info td.speed').text(`${FC.GPS_DATA.speed} cm/s`); $('.GPS_info td.sats').text(FC.GPS_DATA.numSat); diff --git a/src/tabs/gps.html b/src/tabs/gps.html index 9068812902..58318f627e 100755 --- a/src/tabs/gps.html +++ b/src/tabs/gps.html @@ -90,30 +90,26 @@ - - 0 m + + 0 - - 0.0000 deg + + 0 m - - 0.0000 deg + + 0 cm/s 0.0000 deg - - 0 cm/s + + 0.0000 deg - - 0 - - From 15265b37147f963281364bdb0c3dba599876a39d Mon Sep 17 00:00:00 2001 From: Emil Date: Mon, 31 Jul 2023 01:48:16 +0300 Subject: [PATCH 140/393] Quad status (#3533) * BottomStatus Vue component * refactor sugestions --- .../quad-status/BottomStatusIcons.stories.js | 16 +++ .../quad-status/BottomStatusIcons.vue | 123 ++++++++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 src/components/quad-status/BottomStatusIcons.stories.js create mode 100644 src/components/quad-status/BottomStatusIcons.vue diff --git a/src/components/quad-status/BottomStatusIcons.stories.js b/src/components/quad-status/BottomStatusIcons.stories.js new file mode 100644 index 0000000000..e8ff2a35aa --- /dev/null +++ b/src/components/quad-status/BottomStatusIcons.stories.js @@ -0,0 +1,16 @@ +import BottomStatusIcons from "./BottomStatusIcons"; + +// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export +export default { + title: "Bottom status icons", + component: BottomStatusIcons, +}; + +// More on component templates: https://storybook.js.org/docs/vue/writing-stories/introduction#using-args +const Template = (_args, { argTypes }) => ({ + props: Object.keys(argTypes), + components: { BottomStatusIcons }, + template: '', +}); + +export const Primary = Template.bind({}); diff --git a/src/components/quad-status/BottomStatusIcons.vue b/src/components/quad-status/BottomStatusIcons.vue new file mode 100644 index 0000000000..516c7ee628 --- /dev/null +++ b/src/components/quad-status/BottomStatusIcons.vue @@ -0,0 +1,123 @@ + + + + + From 507bf8f6b0e08d003e83ea79a1e95d29f294dee8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 1 Aug 2023 11:16:56 +0200 Subject: [PATCH 141/393] Update translations (#3526) Co-authored-by: Crowdin Bot --- locales/ca/messages.json | 232 ++++++++++++++------- locales/da/messages.json | 200 ++++++++++-------- locales/de/messages.json | 3 - locales/es/messages.json | 232 ++++++++++++++------- locales/eu/messages.json | 3 - locales/fr/messages.json | 3 - locales/gl/messages.json | 263 ++++++++++++++++++++++- locales/it/messages.json | 228 ++++++++++++-------- locales/ja/messages.json | 178 ++++++++-------- locales/ko/messages.json | 232 ++++++++++++++------- locales/nl/messages.json | 3 - locales/pl/messages.json | 143 +++++-------- locales/pt/messages.json | 168 +++++++-------- locales/pt_BR/messages.json | 403 +++++++++++++++++++++++++++++++++++- locales/ru/messages.json | 3 - locales/uk/messages.json | 175 ++++++++-------- locales/zh_CN/messages.json | 3 - locales/zh_TW/messages.json | 3 - 18 files changed, 1684 insertions(+), 791 deletions(-) diff --git a/locales/ca/messages.json b/locales/ca/messages.json index 2eaf7738a1..8c4e968ce1 100644 --- a/locales/ca/messages.json +++ b/locales/ca/messages.json @@ -2202,57 +2202,45 @@ "auxiliaryModeLogicAND": { "message": "AND" }, + "auxiliaryHelpMode_3D": { + "message": "Permet la direcció reversible del motor per proporcionar una empenta negativa i permetre el vol invertit. L'accelerador es converteix en -100 a +100 en lloc de 0 a 100", + "description": "Help text to 3D mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Mode de vol que limita l'angle del dron quan es vola en mode acro", + "description": "Help text to ACRO TRAINER mode" + }, "auxiliaryHelpMode_ARM": { - "message": "Permet l'estabilització de motors i vol", + "message": "Permet la sortida del motor i permet que el dron voli", "description": "Help text to ARM mode" }, "auxiliaryHelpMode_ANGLE": { "message": "En aquest mode d'anivellació automàtica, els canals de balanceig i cabeceig controlen l'angle entre l'eix rellevant i la vertical, aconseguint un vol anivellat només deixant els sticks centrats", "description": "Help text to ANGLE mode" }, - "auxiliaryHelpMode_HORIZON": { - "message": "Aquest mode híbrid funciona exactament com el mode ANGLE amb els sticks centrats de gir i de pas (per tant, permeten el vol autonivellat), i gradualment es comporta cada cop més com el mode RATE predeterminat a mesura que els sticks s'allunyen de la posició central", - "description": "Help text to HORIZON mode" - }, - "auxiliaryHelpMode_MAG": { - "message": "Bloqueig de direcció cap a la direcció del magnetòmetre", - "description": "Help text to MAG mode" - }, - "auxiliaryHelpMode_HEADFREE": { - "message": "En aquest mode, el \"cap\" del multicopter sempre apunta a la mateixa direcció que quan es va activar la funció. Això vol dir que quan el multicopter gira al voltant de l'eix Z (guiada), els controls sempre respondran segons la mateixa direcció del \"cap\".
    Amb aquest mode és més fàcil controlar el multicopter, fins i tot volar-lo amb el cap físic cap a tu ja que els controls sempre responen igual. Aquest és un mode amigable per als nous usuaris de multicopters i pot evitar perdre el control quan no coneixeu la direcció del cap", - "description": "Help text to HEADFREE mode" - }, - "auxiliaryHelpMode_PASSTHRU": { - "message": "Pasa el roll, yaw i el pitch directament des de rx als servos al mix del multicopter", - "description": "Help text to PASSTHRU mode" - }, - "auxiliaryHelpMode_FAILSAFE": { - "message": "Introduïu el Failsafe 2 manualment", - "description": "Help text to FAILSAFE mode" - }, - "auxiliaryHelpMode_GPSRESCUE": { - "message": "Habilita el \"Rescat GPS\" per tornar el multicopter a la ubicació on es va armar per última vegada", - "description": "Help text to GPS RESCUE mode" + "auxiliaryHelpMode_ANTIGRAVITY": { + "message": "El mode de vol augmenta el termini P i I durant els moviments ràpids de l'accelerador per millorar el seguiment del pal i evitar la deriva del nas en els canvis ràpids de l'accelerador", + "description": "Help text to ANTIGRAVITY mode" }, - "auxiliaryHelpMode_HEADADJ": { - "message": "Ajust de cap: estableix un nou origen de yaw per al mode HEADFREE", - "description": "Help text to HEAD ADJ mode" + "auxiliaryHelpMode_AIRMODE": { + "message": "En el mode de mesclador estàndard, quan es calculen el roll, el pitch i el yaw i saturen un motor, tots els motors es reduiran per igual. Quan un motor baixa per sota del mínim es talla. Diguem que teníeu l'accelerador just per sobre del mínim i vau intentar tirar un gir ràpid; com que dos motors no poden baixar, bàsicament obteniu la meitat de la potència (la meitat del vostre guany PID). Si les vostres entrades haurien demanat més d'una diferència del 100% entre els motors alts i baixos, els motors baixos es retallarien, trencant la simetria de l'equilibri del motor reduint de manera desigual el guany.", + "description": "Help text to AIRMODE mode" }, "auxiliaryHelpMode_BEEPER": { "message": "Habilita el bip: útil per localitzar un multicopter estavellat", "description": "Help text to BEEPER mode" }, - "auxiliaryHelpMode_LEDLOW": { - "message": "Desactiva la sortida del LED_STRIP", - "description": "Help text to LEDLOW mode" + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Desactiva/activa el beeper inclòs l'avís, l'estat i el mode BEEPER", + "description": "Help text to BEEPERMUTE mode" }, - "auxiliaryHelpMode_OSDDISABLE": { - "message": "Activa/desactiva la visualització en pantalla, OSD", - "description": "Help text to OSD mode" + "auxiliaryHelpMode_BEEPERON": { + "message": "Activa el mode BEEPER ON", + "description": "Help text to BEEPER ON mode" }, - "auxiliaryHelpMode_TELEMETRY": { - "message": "Activa la telemetria mitjançant l'interruptor", - "description": "Help text to TELEMETRY mode" + "auxiliaryHelpMode_BEEPGPSSATELLITECOUNT": { + "message": "Activa el mode BEEP GPS SATELLITE COUNT", + "description": "Help text to BEEP GPS SATELLITE COUNT mode" }, "auxiliaryHelpMode_BLACKBOX": { "message": "Activa el registre del BlackBox", @@ -2262,13 +2250,13 @@ "message": "Esborra el registre de BlackBox", "description": "Help text to BLACKBOX ERASE mode" }, - "auxiliaryHelpMode_AIRMODE": { - "message": "En el mode de mesclador estàndard, quan es calculen el roll, el pitch i el yaw i saturen un motor, tots els motors es reduiran per igual. Quan un motor baixa per sota del mínim es talla. Diguem que teníeu l'accelerador just per sobre del mínim i vau intentar tirar un gir ràpid; com que dos motors no poden baixar, bàsicament obteniu la meitat de la potència (la meitat del vostre guany PID). Si les vostres entrades haurien demanat més d'una diferència del 100% entre els motors alts i baixos, els motors baixos es retallarien, trencant la simetria de l'equilibri del motor reduint de manera desigual el guany.", - "description": "Help text to AIRMODE mode" + "auxiliaryHelpMode_BOXPREARM": { + "message": "Habilita el mode BOXPREARM", + "description": "Help text to BOXPREARM mode" }, - "auxiliaryHelpMode_FPVANGLEMIX": { - "message": "Aplica la rotació de yaw en relació a una càmera FPV muntada en un angle preestablert", - "description": "Help text to FPV ANGLE MIX mode" + "auxiliaryHelpMode_CALIB": { + "message": "Inicieu la calibració en vol", + "description": "Help text to CALIB mode" }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "Utilitzeu-lo per canviar el control personalitzat de la càmera 1. Consulteu el manual del proveïdor", @@ -2282,66 +2270,126 @@ "message": "Utilitzeu-lo per canviar el control personalitzat de la càmera 3. Consulteu el manual del proveïdor", "description": "Help text to customized CAMERA CONTROL 3 mode" }, - "auxiliaryHelpMode_USER1": { - "message": "Utilitzeu-lo per canviar el control personalitzat del Usuari 1. Consulteu el manual del proveïdor", - "description": "Help text to customized USER1 mode" - }, - "auxiliaryHelpMode_USER2": { - "message": "Utilitzeu-lo per canviar el control personalitzat del Usuari 2. Consulteu el manual del proveïdor", - "description": "Help text to customized USER2 mode" - }, - "auxiliaryHelpMode_USER3": { - "message": "Utilitzeu-lo per canviar el control personalitzat del Usuari 3. Consulteu el manual del proveïdor", - "description": "Help text to customized USER3 mode" + "auxiliaryHelpMode_CAMSTAB": { + "message": "Activa el mode d'estabilització de la càmera", + "description": "Help text to CAMSTAB mode" }, - "auxiliaryHelpMode_USER4": { - "message": "Utilitzeu-lo per canviar el control personalitzat del Usuari 4. Consulteu el manual del proveïdor", - "description": "Help text to customized USER4 mode" + "auxiliaryHelpMode_FAILSAFE": { + "message": "Introduïu el Failsafe 2 manualment", + "description": "Help text to FAILSAFE mode" }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Inverteix els motors per capgirar el multicopter cap per avall després d'un xoc (cal DShot)", "description": "Help text to FLIP OVER AFTER CRASH mode" }, - "auxiliaryHelpMode_PREARM": { - "message": "Quan s'arma, espereu que aquest interruptor s'activi abans d'armar-lo", - "description": "Help text to PREARM mode" + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Aplica la rotació de yaw en relació a una càmera FPV muntada en un angle preestablert", + "description": "Help text to FPV ANGLE MIX mode" }, "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { - "message": "Utilitza un nombre de bips per indicar el nombre de satèl·lits GPS trobats", + "message": "Utilitzeu-lo per indicar el nombre de satèl·lits GPS trobats emetent aquest nombre de vegades", "description": "Help text to GPS BEEP SATELLITE COUNT mode" }, - "auxiliaryHelpMode_VTXPITMODE": { - "message": "Canvia el VTX al mode PIT (potència de sortida baixa, si és compatible)", - "description": "Help text to VTX PIT MODE mode" + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Habilita el \"Rescat GPS\" per tornar el multicopter a la ubicació on es va armar per última vegada", + "description": "Help text to GPS RESCUE mode" }, - "auxiliaryHelpMode_PARALYZE": { - "message": "Desactiva permanentment el multicopter accidentat fins que s'apaga", - "description": "Help text to PARALYZE mode" + "auxiliaryHelpMode_HEADADJ": { + "message": "Ajust de cap: estableix un nou origen de yaw per al mode HEADFREE", + "description": "Help text to HEAD ADJ mode" }, - "auxiliaryHelpMode_ACROTRAINER": { - "message": "Activa la limitació d'angle \"acro trainer\" en mode acro", - "description": "Help text to ACRO TRAINER mode" + "auxiliaryHelpMode_HEADFREE": { + "message": "Mode de vol on la guiñada s'alinea amb un marc de referència extern (sovint cap a on el pilot està de cara) en lloc del de l'embarcació. Dissenyat per a principiants però poc utilitzat, aconsella el mode ANGLE", + "description": "Help text to HEADFREE mode" }, - "auxiliaryHelpMode_VTXCONTROLDISABLE": { - "message": "Desactiva el control de la configuració de VTX mitjançant l'OSD", - "description": "Help text to VTX CONTROL DISABLE mode" + "auxiliaryHelpMode_HORIZON": { + "message": "Aquest mode híbrid funciona exactament com el mode ANGLE amb els sticks centrats de gir i de pas (per tant, permeten el vol autonivellat), i gradualment es comporta cada cop més com el mode RATE predeterminat a mesura que els sticks s'allunyen de la posició central", + "description": "Help text to HORIZON mode" }, "auxiliaryHelpMode_LAUNCHCONTROL": { "message": "Sistema d'assistència a l'inici de cursa", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { - "message": "Desactiva/activa les ordres dels sticks", - "description": "Help text to STICK COMMANDS DISABLE mode" + "auxiliaryHelpMode_LEDLOW": { + "message": "Desactiva la sortida LED STRIP", + "description": "Help text to LEDLOW mode" }, - "auxiliaryHelpMode_BEEPERMUTE": { - "message": "Desactiva/activa el beeper inclòs l'avís, l'estat i el mode BEEPER", - "description": "Help text to BEEPERMUTE mode" + "auxiliaryHelpMode_MAG": { + "message": "Bloqueig de direcció a la direcció del magnetòmetre (control de la brúixola)", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_MSPOVERRIDE": { + "message": "Activa el mode d'anul·lació de MSP", + "description": "Help text to MSP OVERRIDE mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Activa/desactiva la visualització en pantalla, OSD", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Pasa el roll, yaw i el pitch directament des de rx als servos al mix del multicopter", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Desactiva permanentment el multicopter accidentat fins que s'apaga", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_PIDAUDIO": { + "message": "Utilitzeu-lo per canviar PIDAUDIO", + "description": "Help text to PIDAUDIO mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "Quan s'arma, espereu que aquest interruptor s'activi abans d'armar-lo", + "description": "Help text to PREARM mode" }, "auxiliaryHelpMode_READY": { "message": "Afegit a BF4.4, ara podeu mostrar \"READY\" a l'OSD mitjançant un interruptor. Aquesta és una millora de nínxol per a situacions de cursa on tots els canals de vídeo pilot es troben en una pantalla central. El pilot pot accionar un interruptor per indicar que està preparat per volar i la paraula READY apareix al seu OSD. Aleshores, el director de cursa pot saber si tots els pilots estan preparats mirant la pantalla central. En armar-se, el text READY desapareix", "description": "Help text to READY mode" }, + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "Desactiva/activa les ordres dels sticks", + "description": "Help text to STICK COMMANDS DISABLE mode" + }, + "auxiliaryHelpMode_SERVO1": { + "message": "Utilitzeu-lo per canviar SERVO1", + "description": "Help text to SERVO1 mode" + }, + "auxiliaryHelpMode_SERVO2": { + "message": "Utilitzeu-lo per canviar SERVO2", + "description": "Help text to SERVO2 mode" + }, + "auxiliaryHelpMode_SERVO3": { + "message": "Utilitzeu-lo per canviar SERVO3", + "description": "Help text to SERVO3 mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Activa la telemetria mitjançant l'interruptor", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_USER1": { + "message": "Utilitzeu-lo per canviar USER1 personalitzat. Controla la sortida arbitrària mitjançant PINIO", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Utilitzeu-lo per canviar USER2 personalitzat. Controla la sortida arbitrària mitjançant PINIO", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Utilitzeu-lo per canviar USER3 personalitzat. Controla la sortida arbitrària mitjançant PINIO", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Utilitzeu-lo per canviar USER4 personalitzat. Controla la sortida arbitrària mitjançant PINIO", + "description": "Help text to customized USER4 mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Desactiva el control de la configuració de VTX mitjançant l'OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Canvia el VTX al mode PIT (potència de sortida baixa, si és compatible)", + "description": "Help text to VTX PIT MODE mode" + }, "adjustmentsHelp": { "message": "Configureu els interruptors d'ajust. Consulteu la secció \"Ajustaments de vol\" del manual per obtenir-ne més detalls. Els canvis que realitzen les funcions d'ajust no es guarden automàticament. Hi ha 4 ranures (slots). Cada interruptor utilitzat per fer ajustaments simultanis requereix l'ús exclusiu d'una ranura." }, @@ -2633,6 +2681,10 @@ "gpsAltitude": { "message": "Altitud:" }, + "gpsLatLon": { + "message": "Latitud/Longitud actuals:", + "description": "Show GPS position - Latitude / Longitude" + }, "gpsHeading": { "message": "Encapçalament:" }, @@ -2640,7 +2692,8 @@ "message": "Velocitat:" }, "gpsSats": { - "message": "Sats:" + "message": "Nombre de satèl·lits:", + "description": "Show number of fixed GPS Satellites" }, "gpsDistToHome": { "message": "Dist a casa:" @@ -5194,6 +5247,27 @@ "osdDescElementSysFanSpeed": { "message": "Velocitat del ventilador proporcionat per les ulleres" }, + "osdTextElementLapTimeCurrent": { + "message": "Temps de volta GPS actual", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeCurrent": { + "message": "Temps de volta actual del GPS" + }, + "osdTextElementLapTimePrevious": { + "message": "Temps de volta GPS anterior", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimePrevious": { + "message": "Temps de volta GPS anterior" + }, + "osdTextElementLapTimeBest3": { + "message": "Millor temps de 3 voltas GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeBest": { + "message": "Millor temps de volta per GPS" + }, "osdTextElementCraftName": { "message": "Nom de l'aeronau", "description": "One of the elements of the OSD" diff --git a/locales/da/messages.json b/locales/da/messages.json index 3017de9797..4b916e1c20 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -41,13 +41,13 @@ "message": "Program indstillinger" }, "connect": { - "message": "Tilslut" + "message": "Tilslut konfigurering" }, "connecting": { "message": "Tilslutter" }, "disconnect": { - "message": "Afbryd" + "message": "Afbryd konfigurering" }, "portsSelectManual": { "message": "Manuelt valg" @@ -84,7 +84,7 @@ "message": "Autotilslut er slået fra - Du skal selv vælge den korrekte serielle port og klikke på knappen \"Tilslut\"" }, "expertMode": { - "message": "Aktiver ekspert tilstand" + "message": "Ekspert tilstand" }, "expertModeDescription": { "message": "Vis valg for ekspert tilstand" @@ -286,7 +286,7 @@ "message": "Kanal justeringer" }, "tabAuxiliary": { - "message": "Kanal tilstande" + "message": "Kanaler" }, "logActionHide": { "message": "Skjul log" @@ -2161,10 +2161,10 @@ "message": "Aktivér kontroller" }, "auxiliaryHelp": { - "message": "Opsæt kanal tilstande her vha. en kombination af kanal tilknytninger og/eller kanalområder (kanal områder understøttes fra BF 4.0). Benyt Tilknyt kanal til at definere kanaler og tilhørende kanal områder. En modtagerkanal med signal mellem et min/maks område, aktiverer tilstanden. Benyt et område for at aktivere en tilstand, når et andet område er aktiveret. Undtagelser: Aktiver(ARM) kan ikke tilknyttes til eller fra en anden tilstand, tilstande kan ikke tilknyttes til andre tilstande, som er opsat med en tilknytning (kædede tilknytninger). Flere områder/tilknytninger kan benyttes til at aktivere enhver tilstand.
    Er der defineret mere end ét område/tilknytning for en tilstand, kan hver af dem opsættes til OG eller ELLER. En tilstand aktiveres, når:
    - ALLE OG områder/tilknytninger er aktive;
    - ELLER mindst ét ELLER område/tilknytning er aktivt.

    Husk at gemme dine indstillinger med knappen Gem." + "message": "Opsæt kanal tilstande her vha. en kombination af kanal tilknytninger og/eller kanalområder (kanal områder understøttes fra BF 4.0).
    Benyt Tilknyt kanal til at definere kanaler og tilhørende kanal områder. En modtagerkanal med signal mellem et min/maks område, aktiverer tilstanden. Benyt et Tilknyt kanal område for at aktivere en tilstand, når et andet område er aktiveret.
    Undtagelser: Aktiver(ARM) kan ikke tilknyttes til eller fra en anden tilstand, tilstande kan ikke tilknyttes til andre tilstande, som er opsat med en tilknytning (kædede tilknytninger). Flere områder/tilknytninger kan benyttes til at aktivere enhver tilstand.
    Er der defineret mere end ét område/tilknytning for en tilstand, kan hver af dem opsættes til OG eller ELLER. En tilstand aktiveres, når:
    - ALLE OG områder/tilknytninger er aktive;
    - ELLER mindst ét ELLER område/tilknytning er aktivt.
    Husk at gemme dine indstillinger med knappen Gem." }, "auxiliaryToggleUnused": { - "message": "Skjul ubrugte kanal tilstande" + "message": "Skjul ubrugte kanaler" }, "auxiliaryMin": { "message": "Min" @@ -2195,56 +2195,24 @@ "message": "OG" }, "auxiliaryHelpMode_ARM": { - "message": "Aktiver / deaktiver drone", + "message": "Aktiverer motorer og aktiverer at fartøj kan flyve", "description": "Help text to ARM mode" }, "auxiliaryHelpMode_ANGLE": { "message": "I denne auto-nivelleret tilstand styrer krængror og højderor vinklen mellem den relevante akse og den lodrette akse, for at udjævne flyning ved blot at lade pindende være centreret", "description": "Help text to ANGLE mode" }, - "auxiliaryHelpMode_HORIZON": { - "message": "Denne hybrid tilstand fungerer præcis som ANGLE tilstand med centreret krængror og højderor pind (dermed muliggør auto-nivelleret flyvning).
    Når pind flyttes væk fra center position, går styring mere og mere mod ACRO tilstand", - "description": "Help text to HORIZON mode" - }, - "auxiliaryHelpMode_MAG": { - "message": "Lås kurs i kompas retning", - "description": "Help text to MAG mode" - }, - "auxiliaryHelpMode_HEADFREE": { - "message": "I denne tilstand pegerkursen for dronen altid i samme retning som da funktionen blev aktiveret. Det betyder, at når dronen roterer rundt om Z-aksen (sideror), vil kontrollerne altid reagere mod samme kurs.
    Med denne tilstand er det nemmere at styre dronen, fx kan du flyve med kursen mod dig, da kontrollerne altid reagerer omgående. Dette er en venlig tilstand til nye brugere af droner og kan forhindre du mister kontrollen, hvis du ikke kender dronens kurs", - "description": "Help text to HEADFREE mode" - }, - "auxiliaryHelpMode_PASSTHRU": { - "message": "Gennemstiller krængeror, sideror og højderor fra radio sender direkte til servo", - "description": "Help text to PASSTHRU mode" - }, - "auxiliaryHelpMode_FAILSAFE": { - "message": "Aktiver mauelt fejlsikring trin 2", - "description": "Help text to FAILSAFE mode" - }, - "auxiliaryHelpMode_GPSRESCUE": { - "message": "Aktiver 'GPS redning' for at returnere fartøjet til det sted, hvor det sidst var aktiveret (Home)", - "description": "Help text to GPS RESCUE mode" - }, - "auxiliaryHelpMode_HEADADJ": { - "message": "Kurs korrektion - indstiller ny sideror værdi for HEADFREE tilstand", - "description": "Help text to HEAD ADJ mode" + "auxiliaryHelpMode_AIRMODE": { + "message": "I standard mixer tilstand, når krængror, højderor og sideror beregnes og styrer en motor, vil alle motorer blive ændret ens. Når en motor går under minimum, bliver styring reduceret. Fx hvis du har din gas lige over minimum og forsøger en hurtig krængning - da to motorer ikke kan gå under minimum, vil du hovedsagelig kun få halvdelen af kraften (halvdelen af din PID værdi). Hvis dit input ville have bedt om mere end 100% forskel mellem de høje og lave motores hastighed ville de de langsomm motorer blive reduceret og symmetrien i motorens balance vil blive brudt", + "description": "Help text to AIRMODE mode" }, "auxiliaryHelpMode_BEEPER": { "message": "Aktiver bippen - nyttigt til at lokalisere en styrtet drone", "description": "Help text to BEEPER mode" }, - "auxiliaryHelpMode_LEDLOW": { - "message": "Tænd eller sluk for LED lys", - "description": "Help text to LEDLOW mode" - }, - "auxiliaryHelpMode_OSDDISABLE": { - "message": "Aktiver/deaktiver On-Screen-Display - OSD", - "description": "Help text to OSD mode" - }, - "auxiliaryHelpMode_TELEMETRY": { - "message": "Aktiver telemetri via kontakt", - "description": "Help text to TELEMETRY mode" + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Deaktiver / aktiver bippen, heruder advarsler, status og anden bippen.", + "description": "Help text to BEEPERMUTE mode" }, "auxiliaryHelpMode_BLACKBOX": { "message": "Aktiver Blackbox logning", @@ -2254,13 +2222,9 @@ "message": "Slet BlackBox log", "description": "Help text to BLACKBOX ERASE mode" }, - "auxiliaryHelpMode_AIRMODE": { - "message": "I standard mixer tilstand, når krængror, højderor og sideror beregnes og styrer en motor, vil alle motorer blive ændret ens. Når en motor går under minimum, bliver styring reduceret. Fx hvis du har din gas lige over minimum og forsøger en hurtig krængning - da to motorer ikke kan gå under minimum, vil du hovedsagelig kun få halvdelen af kraften (halvdelen af din PID værdi). Hvis dit input ville have bedt om mere end 100% forskel mellem de høje og lave motores hastighed ville de de langsomm motorer blive reduceret og symmetrien i motorens balance vil blive brudt", - "description": "Help text to AIRMODE mode" - }, - "auxiliaryHelpMode_FPVANGLEMIX": { - "message": "Styrer sideror bevægelse i forhold til et FPV-kamera monteret i en forud indstillet vinkel", - "description": "Help text to FPV ANGLE MIX mode" + "auxiliaryHelpMode_CALIB": { + "message": "Start kalibrering under flyvning", + "description": "Help text to CALIB mode" }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "Brug til at skifte leverandør bestemte CAMERA CONTROL 1. Se i leverandørs manual", @@ -2274,65 +2238,93 @@ "message": "Brug til at skifte leverandør bestemte CAMERA CONTROL 3. Se i leverandørs manual", "description": "Help text to customized CAMERA CONTROL 3 mode" }, - "auxiliaryHelpMode_USER1": { - "message": "Brug til at skifte brugerdefineret USER1. Se i leverandør manual", - "description": "Help text to customized USER1 mode" - }, - "auxiliaryHelpMode_USER2": { - "message": "Brug til at skifte brugerdefineret USER2. Se i leverandør manual", - "description": "Help text to customized USER2 mode" - }, - "auxiliaryHelpMode_USER3": { - "message": "Brug til at skifte brugerdefineret USER3. Se i leverandør manual", - "description": "Help text to customized USER3 mode" - }, - "auxiliaryHelpMode_USER4": { - "message": "Brug til at skifte brugerdefineret USER4. Se i leverandør manual", - "description": "Help text to customized USER4 mode" + "auxiliaryHelpMode_FAILSAFE": { + "message": "Aktiver mauelt fejlsikring trin 2", + "description": "Help text to FAILSAFE mode" }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Vender motor retning for at vende en styrtet drone (kun ved DShot protokol)", "description": "Help text to FLIP OVER AFTER CRASH mode" }, - "auxiliaryHelpMode_PREARM": { - "message": "Ved aktivering, skal denne kontakt også aktiveres, før dronen reelt er klar til flyvning = helt aktiveret", - "description": "Help text to PREARM mode" + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Styrer sideror bevægelse i forhold til et FPV-kamera monteret i en forud indstillet vinkel", + "description": "Help text to FPV ANGLE MIX mode" }, "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { - "message": "Fortæl med antal bip, hvormange GPS satellitter som er fundet", + "message": "Angiver antallet af GPS-satellitter, der er fundet ved at bippe dette antal gange", "description": "Help text to GPS BEEP SATELLITE COUNT mode" }, - "auxiliaryHelpMode_VTXPITMODE": { - "message": "Skift VTX til pit mode (lav udgangseffekt), skal være understøttet af VTX", - "description": "Help text to VTX PIT MODE mode" + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Aktiver 'GPS redning' for at returnere fartøjet til det sted, hvor det sidst var aktiveret (Home)", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "Kurs korrektion - indstiller ny sideror værdi for HEADFREE tilstand", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "Denne hybrid tilstand fungerer præcis som ANGLE tilstand med centreret krængror og højderor pind (dermed muliggør auto-nivelleret flyvning).
    Når pind flyttes væk fra center position, går styring mere og mere mod ACRO tilstand", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "Ræs assistance system", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_LEDLOW": { + "message": "Tænd eller sluk for LED lys", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Aktiver/deaktiver On-Screen-Display - OSD", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Gennemstiller krængeror, sideror og højderor fra radio sender direkte til servo", + "description": "Help text to PASSTHRU mode" }, "auxiliaryHelpMode_PARALYZE": { "message": "Deaktiver permanent en styrtet drone. For at aktivere skal strøm slukkes helt", "description": "Help text to PARALYZE mode" }, - "auxiliaryHelpMode_ACROTRAINER": { - "message": "Aktiver ACRO træner vinkelbegrænsning i ACRO tilstand", - "description": "Help text to ACRO TRAINER mode" + "auxiliaryHelpMode_PIDAUDIO": { + "message": "Tænd eller sluk for PIDAUDIO", + "description": "Help text to PIDAUDIO mode" }, - "auxiliaryHelpMode_VTXCONTROLDISABLE": { - "message": "Deaktiver kontrol af VTX indstillinger via OSD", - "description": "Help text to VTX CONTROL DISABLE mode" + "auxiliaryHelpMode_PREARM": { + "message": "Ved aktivering, skal denne kontakt også aktiveres, før dronen reelt er klar til flyvning = helt aktiveret", + "description": "Help text to PREARM mode" }, - "auxiliaryHelpMode_LAUNCHCONTROL": { - "message": "Ræs assistance system", - "description": "Help text to LAUNCH CONTROL mode" + "auxiliaryHelpMode_READY": { + "message": "Tilføjet i BF4.4, så du kan vise 'KLAR' i OSD ved hjælp af en kontakt. Dette er en forbedring til ræs, hvor alle piloters video vises på en central skærm. Piloten kan vippe en kontakt for at indikere, at han er klar til at flyve, og ordet READY vises på deres OSD. Løbsinstruktøren kan derefter se om alle piloter er klar, ved at se på den centrale skærm. Ved aktivering forsvinder READY teksten", + "description": "Help text to READY mode" }, "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { "message": "Deaktiver/aktiver pind kommandoer", "description": "Help text to STICK COMMANDS DISABLE mode" }, - "auxiliaryHelpMode_BEEPERMUTE": { - "message": "Deaktiver / aktiver bippen, heruder advarsler, status og anden bippen.", - "description": "Help text to BEEPERMUTE mode" + "auxiliaryHelpMode_SERVO1": { + "message": "Tænd eller sluk for SERVO 1", + "description": "Help text to SERVO1 mode" }, - "auxiliaryHelpMode_READY": { - "message": "Tilføjet i BF4.4, så du kan vise 'KLAR' i OSD ved hjælp af en kontakt. Dette er en forbedring til ræs, hvor alle piloters video vises på en central skærm. Piloten kan vippe en kontakt for at indikere, at han er klar til at flyve, og ordet READY vises på deres OSD. Løbsinstruktøren kan derefter se om alle piloter er klar, ved at se på den centrale skærm. Ved aktivering forsvinder READY teksten", - "description": "Help text to READY mode" + "auxiliaryHelpMode_SERVO2": { + "message": "Tænd eller sluk for SERVO 2", + "description": "Help text to SERVO2 mode" + }, + "auxiliaryHelpMode_SERVO3": { + "message": "Tænd eller sluk for SERVO 3", + "description": "Help text to SERVO3 mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Aktiver telemetri via kontakt", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Deaktiver kontrol af VTX indstillinger via OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Skift VTX til pit mode (lav udgangseffekt), skal være understøttet af VTX", + "description": "Help text to VTX PIT MODE mode" }, "adjustmentsHelp": { "message": "Opsætning af kanal justeringer. Se 'in-flight adjustments' delen af manualen for detaljer. Ændringer gemmes Ikke automatisk." @@ -2600,7 +2592,7 @@ "message": "Aktuel GPS position" }, "gpsMapHeadHelp": { - "message": "Angiver GPS prosition på kortet, rul med muse hjul for at zoome ind/ud eller tryk på +/-.
    Positions ikon viser retning for Nord, når kompas er i anvendelse.", + "message": "Angiver GPS prosition på kortet, rul med muse hjul for at zoome ind/ud eller tryk på +/-.
    Positions ikon viser retning for Nord, når kompas anvendes.", "description": "Help text for gpsHeadMap" }, "gpsMapMessage1": { @@ -2625,6 +2617,10 @@ "gpsAltitude": { "message": "Højde:" }, + "gpsLatLon": { + "message": "Nuværende breddegrad / længdegrad:", + "description": "Show GPS position - Latitude / Longitude" + }, "gpsHeading": { "message": "Kurs:" }, @@ -2632,7 +2628,8 @@ "message": "Hastighed:" }, "gpsSats": { - "message": "Antal satelitter:" + "message": "Antal satelitter:", + "description": "Show number of fixed GPS Satellites" }, "gpsDistToHome": { "message": "Hjem afstand:" @@ -5186,6 +5183,27 @@ "osdDescElementSysFanSpeed": { "message": "Videobrille blæser hastighed ændret af videobrille" }, + "osdTextElementLapTimeCurrent": { + "message": "GPS omgangstid aktuelt", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeCurrent": { + "message": "Angiver aktuel GPS omgangstid" + }, + "osdTextElementLapTimePrevious": { + "message": "GPS forrige omgangstid", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimePrevious": { + "message": "Angiver forrige GPS omgangstid" + }, + "osdTextElementLapTimeBest3": { + "message": "GPS omgangstid bedst af 3 omgange", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeBest": { + "message": "Angiver bedste GPS omgangstid" + }, "osdTextElementCraftName": { "message": "Navn: Fartøj", "description": "One of the elements of the OSD" diff --git a/locales/de/messages.json b/locales/de/messages.json index 1708d0b35c..9cadeb5f5f 100644 --- a/locales/de/messages.json +++ b/locales/de/messages.json @@ -2437,9 +2437,6 @@ "gpsSpeed": { "message": "Geschwindigkeit" }, - "gpsSats": { - "message": "Satelliten:" - }, "gpsDistToHome": { "message": "Entfernung zu Start:" }, diff --git a/locales/es/messages.json b/locales/es/messages.json index 1e5a6d7351..89d713471a 100644 --- a/locales/es/messages.json +++ b/locales/es/messages.json @@ -2194,57 +2194,45 @@ "auxiliaryModeLogicAND": { "message": "Y" }, + "auxiliaryHelpMode_3D": { + "message": "Activa la dirección del motor reversible para proporcionar acelerador negativo y permitir el vuelo invertido. El acelerador se convierte en -100 a +100 en lugar de 0 a 100", + "description": "Help text to 3D mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Modo de vuelo que limita el ángulo de la aeronave al volar en modo acro", + "description": "Help text to ACRO TRAINER mode" + }, "auxiliaryHelpMode_ARM": { - "message": "Activa los motores y la estabilización de vuelo", + "message": "Activa la salida del motor y permite que la aeronave vuele", "description": "Help text to ARM mode" }, "auxiliaryHelpMode_ANGLE": { "message": "En este modo de nivelación automática, los canales de roll y pitch controlan el ángulo entre el eje relevante y el vertical, consiguiendo un vuelo nivelado simplemente dejando los mandos centrados", "description": "Help text to ANGLE mode" }, - "auxiliaryHelpMode_HORIZON": { - "message": "Este modo híbrido funciona exactamente como el modo ANGLE cuando las palancas de roll y pitch están centradas (habilitando así el vuelo con nivelado automático), y luego gradualmente se comporta cada vez más como el modo RATE/ACRO predeterminado a medida que los mandos se mueven lejos de la posición central", - "description": "Help text to HORIZON mode" - }, - "auxiliaryHelpMode_MAG": { - "message": "El rumbo se fija con la dirección del Magnetómetro", - "description": "Help text to MAG mode" - }, - "auxiliaryHelpMode_HEADFREE": { - "message": "En este modo, la \"cabeza\" del multicoptero siempre apunta a la misma dirección que cuando se activó la función. Esto significa que cuando el multicoptero gira alrededor del eje Z (yaw), los controles siempre responderán de acuerdo con la misma dirección de \"cabeza\".
    Con este modo es más fácil controlar el multicoptero, incluso volarlo con la cabeza apuntando físicamente hacia tí ya que los controles siempre responden igual. Este es un modo amigable para los nuevos usuarios de multicopteros y puede prevenir la pérdida del control cuando no se conoce la dirección principal", - "description": "Help text to HEADFREE mode" - }, - "auxiliaryHelpMode_PASSTHRU": { - "message": "Pasar roll y pitch directamente desde el rx a servos para mezclas de aviones", - "description": "Help text to PASSTHRU mode" - }, - "auxiliaryHelpMode_FAILSAFE": { - "message": "Entra en modo de seguridad etapa 2 manualmente", - "description": "Help text to FAILSAFE mode" - }, - "auxiliaryHelpMode_GPSRESCUE": { - "message": "Activar 'GPS Rescate' para devolver la aeronave a la ubicación donde fue armada por última vez", - "description": "Help text to GPS RESCUE mode" + "auxiliaryHelpMode_ANTIGRAVITY": { + "message": "Este modo de vuelo aumenta los términos P e I durante los movimientos rápidos de acelerador para mejorar el seguimiento de los mandos y evitar derivar movimientos de morro en los cambios de acelerador rápido", + "description": "Help text to ANTIGRAVITY mode" }, - "auxiliaryHelpMode_HEADADJ": { - "message": "Ajuste de rumbo - Establece un nuevo origen de yaw para el modo HEADFREE", - "description": "Help text to HEAD ADJ mode" + "auxiliaryHelpMode_AIRMODE": { + "message": "En el mezclador / modo estándar, cuando el roll, el pitch y el yaw se calculan y saturan un motor, todos los motores se reducen por igual. Cuando un motor va por debajo del mínimo se recorta. Si tenías tu acelerador justo por encima del mínimo y tratas de hacer un roll rápido - ya que dos motores no pueden bajar, obtienes esencialmente la mitad de la potencia (la mitad de la ganancia de tu PID). Si tus comandos hubieran pedido más de un 100% de diferencia entre los motores altos y bajos, los motores bajos se recortarían, rompiendo la simetría del balance del motor al reducir la ganancia desigualmente", + "description": "Help text to AIRMODE mode" }, "auxiliaryHelpMode_BEEPER": { "message": "Activar pitidos - útil para localizar una aeronave estrellada", "description": "Help text to BEEPER mode" }, - "auxiliaryHelpMode_LEDLOW": { - "message": "Apagar la salida de LED_STRIP", - "description": "Help text to LEDLOW mode" + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Desactivar/activar pitidos incluyendo advertencias, estado y modo BEEPER", + "description": "Help text to BEEPERMUTE mode" }, - "auxiliaryHelpMode_OSDDISABLE": { - "message": "Encender/Apagar la visualización en pantalla (OSD)", - "description": "Help text to OSD mode" + "auxiliaryHelpMode_BEEPERON": { + "message": "Activar modo aviso acústico", + "description": "Help text to BEEPER ON mode" }, - "auxiliaryHelpMode_TELEMETRY": { - "message": "Activar telemetría vía interruptor", - "description": "Help text to TELEMETRY mode" + "auxiliaryHelpMode_BEEPGPSSATELLITECOUNT": { + "message": "Activar modo de aviso acústico de número de satélites", + "description": "Help text to BEEP GPS SATELLITE COUNT mode" }, "auxiliaryHelpMode_BLACKBOX": { "message": "Activar registro de Caja Negra", @@ -2254,13 +2242,13 @@ "message": "Borrar registro de Caja Negra", "description": "Help text to BLACKBOX ERASE mode" }, - "auxiliaryHelpMode_AIRMODE": { - "message": "En el mezclador / modo estándar, cuando el roll, el pitch y el yaw se calculan y saturan un motor, todos los motores se reducen por igual. Cuando un motor va por debajo del mínimo se recorta. Si tenías tu acelerador justo por encima del mínimo y tratas de hacer un roll rápido - ya que dos motores no pueden bajar, obtienes esencialmente la mitad de la potencia (la mitad de la ganancia de tu PID). Si tus comandos hubieran pedido más de un 100% de diferencia entre los motores altos y bajos, los motores bajos se recortarían, rompiendo la simetría del balance del motor al reducir la ganancia desigualmente", - "description": "Help text to AIRMODE mode" + "auxiliaryHelpMode_BOXPREARM": { + "message": "Activar modo de pre-armado", + "description": "Help text to BOXPREARM mode" }, - "auxiliaryHelpMode_FPVANGLEMIX": { - "message": "Aplicar rotación de yaw relativa a una cámara FPV montada en un ángulo predefinido", - "description": "Help text to FPV ANGLE MIX mode" + "auxiliaryHelpMode_CALIB": { + "message": "Iniciar calibración en vuelo", + "description": "Help text to CALIB mode" }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "Utilizado para activar el CAMERA CONTROL 1 personalizado. Comprobar el manual del proveedor", @@ -2274,66 +2262,126 @@ "message": "Utilizado para activar el CAMERA CONTROL 3 personalizado. Comprobar el manual del proveedor", "description": "Help text to customized CAMERA CONTROL 3 mode" }, - "auxiliaryHelpMode_USER1": { - "message": "Utilizado para activar el USER1 personalizado. Comprobar el manual del proveedor", - "description": "Help text to customized USER1 mode" - }, - "auxiliaryHelpMode_USER2": { - "message": "Utilizado para activar el USER2 personalizado. Comprobar el manual del proveedor", - "description": "Help text to customized USER2 mode" - }, - "auxiliaryHelpMode_USER3": { - "message": "Utilizado para activar el USER3 personalizado. Comprobar el manual del proveedor", - "description": "Help text to customized USER3 mode" + "auxiliaryHelpMode_CAMSTAB": { + "message": "Activar modo de estabilización de cámara", + "description": "Help text to CAMSTAB mode" }, - "auxiliaryHelpMode_USER4": { - "message": "Utilizado para activar el USER4 personalizado. Comprobar el manual del proveedor", - "description": "Help text to customized USER4 mode" + "auxiliaryHelpMode_FAILSAFE": { + "message": "Entra en modo de seguridad etapa 2 manualmente", + "description": "Help text to FAILSAFE mode" }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Invierte los motores para voltear una aeronave que está boca abajo después de un accidente (DShot requerido)", "description": "Help text to FLIP OVER AFTER CRASH mode" }, - "auxiliaryHelpMode_PREARM": { - "message": "Al intentar armar, se necesita que este interruptor esté activado antes de armar. Se suele asignar a un interruptor temporal del mando", - "description": "Help text to PREARM mode" + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Aplicar rotación de yaw relativa a una cámara FPV montada en un ángulo predefinido", + "description": "Help text to FPV ANGLE MIX mode" }, "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { - "message": "Usa un número de pitidos para indicar cuantos satélites GPS se han encontrado", + "message": "Usado para indicar el número de satélites GPS encontrados emitiendo un aviso ese número de veces", "description": "Help text to GPS BEEP SATELLITE COUNT mode" }, - "auxiliaryHelpMode_VTXPITMODE": { - "message": "Cambia el VTX a modo Pit (potencia de salida baja, si es compatible)", - "description": "Help text to VTX PIT MODE mode" + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Activar 'GPS Rescate' para devolver la aeronave a la ubicación donde fue armada por última vez", + "description": "Help text to GPS RESCUE mode" }, - "auxiliaryHelpMode_PARALYZE": { - "message": "Desactiva permanentemente una nave accidentada hasta que desenchufe y enchufe de nuevo", - "description": "Help text to PARALYZE mode" + "auxiliaryHelpMode_HEADADJ": { + "message": "Ajuste de rumbo - Establece un nuevo origen de yaw para el modo HEADFREE", + "description": "Help text to HEAD ADJ mode" }, - "auxiliaryHelpMode_ACROTRAINER": { - "message": "Habilitar la limitación del ángulo 'entrenador acro' en modo acro", - "description": "Help text to ACRO TRAINER mode" + "auxiliaryHelpMode_HEADFREE": { + "message": "Modo de vuelo en el que el yaw está alineado con un marco de referencia externo (a menudo hacia donde mira el piloto) en lugar del de la aeronave. Diseñado para principiantes pero poco usado, mejor usar sólo el modo ANGLE", + "description": "Help text to HEADFREE mode" }, - "auxiliaryHelpMode_VTXCONTROLDISABLE": { - "message": "Desactiva el control de ajustes del VTX a través del OSD", - "description": "Help text to VTX CONTROL DISABLE mode" + "auxiliaryHelpMode_HORIZON": { + "message": "Este modo híbrido funciona exactamente como el modo ANGLE cuando las palancas de roll y pitch están centradas (habilitando así el vuelo con nivelado automático), y luego gradualmente se comporta cada vez más como el modo RATE/ACRO predeterminado a medida que los mandos se mueven lejos de la posición central", + "description": "Help text to HORIZON mode" }, "auxiliaryHelpMode_LAUNCHCONTROL": { "message": "Sistema de asistencia de inicio de carrera", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { - "message": "Desactivar/activar comandos con los mandos", - "description": "Help text to STICK COMMANDS DISABLE mode" + "auxiliaryHelpMode_LEDLOW": { + "message": "Apagar la salida de la tira de LEDs", + "description": "Help text to LEDLOW mode" }, - "auxiliaryHelpMode_BEEPERMUTE": { - "message": "Desactivar/activar pitidos incluyendo advertencias, estado y modo BEEPER", - "description": "Help text to BEEPERMUTE mode" + "auxiliaryHelpMode_MAG": { + "message": "Bloqueo de cabeza según la dirección del magnetómetro (control por brújula)", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_MSPOVERRIDE": { + "message": "Activar modo de invalidar MSP", + "description": "Help text to MSP OVERRIDE mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Encender/Apagar la visualización en pantalla (OSD)", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Pasar roll y pitch directamente desde el rx a servos para mezclas de aviones", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Desactiva permanentemente una nave accidentada hasta que desenchufe y enchufe de nuevo", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_PIDAUDIO": { + "message": "Usar para activar PIDAUDIO", + "description": "Help text to PIDAUDIO mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "Al intentar armar, se necesita que este interruptor esté activado antes de armar. Se suele asignar a un interruptor temporal del mando", + "description": "Help text to PREARM mode" }, "auxiliaryHelpMode_READY": { "message": "Añadido en BF4.4, ahora puedes mostrar 'READY' en el OSD usando un interruptor. Esta es una bonita mejora para situaciones de carrera en las que todos los videos de pilotos están en una pantalla central. El piloto puede usar un interruptor para indicar que están listos para volar, y la palabra READY aparece en su OSD. El director de carrera puede entonces saber si todos los pilotos están preparados mirando a la pantalla central. Al armar, el texto READY desaparece", "description": "Help text to READY mode" }, + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "Desactivar/activar comandos con los mandos", + "description": "Help text to STICK COMMANDS DISABLE mode" + }, + "auxiliaryHelpMode_SERVO1": { + "message": "Usar para activar SERVO1", + "description": "Help text to SERVO1 mode" + }, + "auxiliaryHelpMode_SERVO2": { + "message": "Usar para activar SERVO2", + "description": "Help text to SERVO2 mode" + }, + "auxiliaryHelpMode_SERVO3": { + "message": "Usar para activar SERVO3", + "description": "Help text to SERVO3 mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Activar telemetría vía interruptor", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_USER1": { + "message": "Usar para activar USER1 personalizado. Controla salida arbitraria a través de PINIO", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Usar para activar USER2 personalizado. Controla salida arbitraria a través de PINIO", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Usar para activar USER3 personalizado. Controla salida arbitraria a través de PINIO", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Usar para activar USER4 personalizado. Controla salida arbitraria a través de PINIO", + "description": "Help text to customized USER4 mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Desactiva el control de ajustes del VTX a través del OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Cambia el VTX a modo Pit (potencia de salida baja, si es compatible)", + "description": "Help text to VTX PIT MODE mode" + }, "adjustmentsHelp": { "message": "Configura interruptores para correcciones. Mira el apartado 'in-flight adjustments' del manual para detalles. Las correcciones realizadas no se guardan automáticamente." }, @@ -2625,6 +2673,10 @@ "gpsAltitude": { "message": "Altitud:" }, + "gpsLatLon": { + "message": "Latitud / Longitud actual:", + "description": "Show GPS position - Latitude / Longitude" + }, "gpsHeading": { "message": "Rumbo:" }, @@ -2632,7 +2684,8 @@ "message": "Velocidad:" }, "gpsSats": { - "message": "Satélites:" + "message": "Número de satélites:", + "description": "Show number of fixed GPS Satellites" }, "gpsDistToHome": { "message": "Dist. a Casa:" @@ -5186,6 +5239,27 @@ "osdDescElementSysFanSpeed": { "message": "Velocidad del ventilador mostrada por las gafas" }, + "osdTextElementLapTimeCurrent": { + "message": "GPS: tiempo de vuelta actual", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeCurrent": { + "message": "Muestra el tiempo actual de vuelta según el GPS" + }, + "osdTextElementLapTimePrevious": { + "message": "GPS: tiempo de vuelta anterior", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimePrevious": { + "message": "Muestra el tiempo de la vuelta anterior a la actual, según el GPS" + }, + "osdTextElementLapTimeBest3": { + "message": "GPS: mejor 3 vueltas GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeBest": { + "message": "Muestra las mejores vueltas según el GPS" + }, "osdTextElementCraftName": { "message": "Identificador: nombre de la aeronave", "description": "One of the elements of the OSD" diff --git a/locales/eu/messages.json b/locales/eu/messages.json index cf2f882d56..d9afddb9cc 100644 --- a/locales/eu/messages.json +++ b/locales/eu/messages.json @@ -1925,9 +1925,6 @@ "gpsSpeed": { "message": "Abiadura:" }, - "gpsSats": { - "message": "Sateliteak:" - }, "gpsDistToHome": { "message": "Dist. Etxera:" }, diff --git a/locales/fr/messages.json b/locales/fr/messages.json index 57303485fc..cde5684e30 100644 --- a/locales/fr/messages.json +++ b/locales/fr/messages.json @@ -2328,9 +2328,6 @@ "gpsSpeed": { "message": "Vitesse:" }, - "gpsSats": { - "message": "Satellites:" - }, "gpsDistToHome": { "message": "Distance du point de décollage:" }, diff --git a/locales/gl/messages.json b/locales/gl/messages.json index 02eb2c40b9..8e18a0037c 100644 --- a/locales/gl/messages.json +++ b/locales/gl/messages.json @@ -852,6 +852,14 @@ "message": "Activouse a protección de despegue incontrolado", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipCRASH_DETECTED": { + "message": "A detección de fallos está activa", + "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipCALIBRATING": { + "message": "O quad estase calibrando", + "description": "Message that pops up to describe the CALIBRATING arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "A canle do acelerador é demasiado alto", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -872,6 +880,10 @@ "message": "A carga do sistema é demasiado alta para un voo seguro", "description": "Message that pops up to describe the LOAD arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipACC_CALIBRATION": { + "message": "A calibración do acelerómetro aínda está en curso", + "description": "Message that pops up to describe the ACC_CALIBRATION arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "CLI está activo", "description": "Message that pops up to describe the CLI arming disable flag" @@ -908,6 +920,22 @@ "message": "O filtrado baseado en RPM está activado, pero un ou máis ESC non están a proporcionar unha telemetría DSHOT válida. Comprobe que os ESC son capaces de instalar e posúen o firmware necesario para soportar a telemetría bidireccional DSHOT.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipREBOOT_REQUIRED": { + "message": "Un cambio de configuración require un reinicio", + "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipDSHOT_BITBANG": { + "message": "Big-bang DSHOT non funciona correctamente e os motores non se poden controlar. Probablemente causado por un conflito do temporizador con outras funcións activadas no controlador de voo.", + "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipNO_ACC_CALIBRATION": { + "message": "O acelerómetro non foi calibrado e habilitáronse funcións que dependen del. Calibrar o acelerómetro.", + "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipMOTOR_PROTOCOL": { + "message": "Non hai ningún protocolo de saída do motor seleccionado", + "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "Unha das outras sinais de desarmado está activa ao armar", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" @@ -919,6 +947,16 @@ "message": "Mostra a información do GPS, se está activado correctamente nas pestanas Portos, Configuración e GPS", "description": "Message that pops up to describe the GPS section" }, + "initialSetupSonarHead": { + "message": "Sonar" + }, + "initialSetupSonarHeadHelp": { + "message": "Mostra a información do sonar, se está activado correctamente na pestana Configuración", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "Altitude" + }, "initialSetupInstrumentsHead": { "message": "Instrumentos" }, @@ -960,6 +998,9 @@ "initialSetupInfoBuildOptionsEmpty": { "message": "Compilación local - non se empregan definicións" }, + "initialSetupNotOnline": { + "message": "Servidor non dispoñible" + }, "initialSetupButtonSave": { "message": "Gardar" }, @@ -1023,12 +1064,21 @@ "featureSONAR": { "message": "Sonar" }, + "featureSONARTip": { + "message": "Activa o telémetro Sonar para medir a distancia ao chan en cm" + }, "featureTELEMETRY": { "message": "Saída de telemetría" }, + "featureTELEMETRYTip": { + "message": "Activa a saída de telemetría para enviar ao transmisor" + }, "feature3D": { "message": "Modo 3D (para utilizar con ESCs reversibles)" }, + "feature3DTip": { + "message": "Activa o modo 3D para usar con ESC reversibles, configure na pestana Motores" + }, "featureRX_PARALLEL_PWM": { "message": "PWM (un cable por canal)" }, @@ -1041,6 +1091,9 @@ "featureLED_STRIP": { "message": "Soporte para LED RGB multicolor" }, + "featureLED_STRIPTip": { + "message": "Activa a compatibilidade con tiras LED RGB multicolores, configure na pestana Tira LED" + }, "featureDISPLAY": { "message": "Pantalla OLED" }, @@ -1050,6 +1103,9 @@ "featureOSD": { "message": "On Screen Display" }, + "featureOSDTip": { + "message": "Activar OSD, configurar na pestana OSD" + }, "featureCHANNEL_FORWARDING": { "message": "Enviar os canles aux ás saídas de servos." }, @@ -1365,6 +1421,10 @@ "configurationGPS": { "message": "Configuración do GPS" }, + "configurationGPSHelp": { + "message": "Configurar o protocolo para o dispositivo GPS (lembre configurar o porto na pestana Porto), usar o baudio automático (ou configurar a velocidade na pestana Porto) e outra configuración", + "description": "Help text GPS configuration" + }, "configurationGPSProtocol": { "message": "Protocolo" }, @@ -2084,6 +2144,10 @@ "receiverButtonBindingPhrase": { "message": "Frase vinculante" }, + "receiverButtonSticks": { + "message": "Emulador de Radio", + "description": "Button that opens a window with a radio emulator on the receiver tab. Actually only enabled for MSP protocol" + }, "receiverDataRefreshed": { "message": "Datos de Axustes de RC actualizados" }, @@ -2133,6 +2197,106 @@ "auxiliaryModeLogicAND": { "message": "E" }, + "auxiliaryHelpMode_ANGLE": { + "message": "Neste modo de nivelación automática, as canles de roll e pitch controlan o ángulo entre o eixe relevante e o vertical, logrando un voo nivelado só deixando os sticks centrados", + "description": "Help text to ANGLE mode" + }, + "auxiliaryHelpMode_AIRMODE": { + "message": "No modo mesturador estándar, cando se calcula o balance, o cabeceo e o guiñada e satura un motor, tódolos motores reduciranse por igual. Cando un motor vai por debaixo do mínimo, córtase. Digamos que tivese o acelerador xusto por encima do mínimo e intentou un roll rápido; xa que dous motores non poden baixar, obtén esencialmente a metade da potencia (a metade da súa ganancia PID). Se as súas entradas solicitasen máis dun 100% de diferenza entre os motores altos e baixos, os motores baixos quedarían cortados, rompendo a simetría do equilibrio do motor reducindo a ganancia de forma desigual", + "description": "Help text to AIRMODE mode" + }, + "auxiliaryHelpMode_BEEPER": { + "message": "Activar pitidos - útil para localizar un avión accidentado", + "description": "Help text to BEEPER mode" + }, + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Desactivar/activar pitidos, incluíndo avisos, estado e modo BEEPER", + "description": "Help text to BEEPERMUTE mode" + }, + "auxiliaryHelpMode_BLACKBOX": { + "message": "Activa o rexistro da Caixa Negra", + "description": "Help text to BLACKBOX mode" + }, + "auxiliaryHelpMode_BLACKBOXERASE": { + "message": "Borrar rxgistro da Caixa Negra", + "description": "Help text to BLACKBOX ERASE mode" + }, + "auxiliaryHelpMode_CAMERACONTROL1": { + "message": "Use para alternar o CONTROL personalizado da CÁMARA 1. Consulte o manual do provedor", + "description": "Help text to customized CAMERA CONTROL 1 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL2": { + "message": "Utilíceo para alternar o CONTROL DA CÁMARA personalizado 2. Consulte o manual do vendedor", + "description": "Help text to customized CAMERA CONTROL 2 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL3": { + "message": "Use para alternar o CONTROL DA CÁMARA personalizado 3. Consulte o manual do vendedor", + "description": "Help text to customized CAMERA CONTROL 3 mode" + }, + "auxiliaryHelpMode_FAILSAFE": { + "message": "Entra manualmente a fase 2 a proba de fallos", + "description": "Help text to FAILSAFE mode" + }, + "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { + "message": "Inverte os motores para envorcar unha embarcación ao revés despois dun accidente (requírese DShot)", + "description": "Help text to FLIP OVER AFTER CRASH mode" + }, + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Aplique a rotación de guiñada en relación a unha cámara FPV montada nun ángulo preestablecido", + "description": "Help text to FPV ANGLE MIX mode" + }, + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Activa o 'GPS Rescue' para voltar a aeronave ao lugar onde foi armada por última vez", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "Axuste de rumbo - Establece unha nova orixe de yaw para o modo HEADFREE", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "Este modo híbrido funciona exactamente igual que o modo ANGLE cos sticks de roll e pitch centrados (permitindo así o voo autonivelado), despois compórtase gradualmente máis e máis como o modo RATE predeterminado a medida que os paus se afastan da posición central", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "Sistema de asistencia ao inicio de carreira", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Activar/Desactivar a visualización en pantalla", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Pasar roll, yaw e pitch directamente dende rx aos servos na mestura do avión", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Desactiva permanentemente unha aeronave accidentada ata que se apague", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "Ao armar, agarde a que este interruptor se active antes de armar", + "description": "Help text to PREARM mode" + }, + "auxiliaryHelpMode_READY": { + "message": "Engadido en BF4.4, agora pódese mostrar \"LISTO\" no OSD mediante un interruptor. Esta é unha boa mellora para situacións de carreira nas que todas as fontes de vídeo do piloto están nunha pantalla central. O piloto pode premer un interruptor para indicar que está listo para voar e a palabra LISTO aparece no seu OSD. O director da carreira pode dicir se todos os pilotos están preparados mirando a pantalla central. Ao armar, o texto LISTO desaparece", + "description": "Help text to READY mode" + }, + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "Desactivar/activar comandos cos stick", + "description": "Help text to STICK COMMANDS DISABLE mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Activa a telemetría mediante o interruptor", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Desactive o control da configuración de VTX a través do OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Cambia o VTX ao modo pit (potencia de saída baixa, se é compatible)", + "description": "Help text to VTX PIT MODE mode" + }, "adjustmentsHelp": { "message": "Configure os interruptores de axuste. Vexa a sección de \"axustes en voo\" do manual para obter máis detalles. Os cambios que fan as funcións de axuste non se gardan automaticamente." }, @@ -2391,9 +2555,17 @@ "gpsHead": { "message": "GPS" }, + "gpsHeadHelp": { + "message": "Mostrar información diversa relacionada co GPS. Os títulos só se mostran cando o magnetómetro está en uso", + "description": "Help text for gpsHead" + }, "gpsMapHead": { "message": "Localización GPS actual" }, + "gpsMapHeadHelp": { + "message": "Mostrar a localización GPS no mapa. Usa o botón de desprazamento do rato para achegar e afastar o zoom.
    A icona de localización mostra a dirección norte cando o magnetómetro está en uso", + "description": "Help text for gpsHeadMap" + }, "gpsMapMessage1": { "message": "Por favor comprove a súa conexión a internet" }, @@ -2403,6 +2575,16 @@ "gps3dFix": { "message": "Corrección 3D:" }, + "gpsFixTrue": { + "message": "Verdadeiro" + }, + "gpsFixFalse": { + "message": "Falso" + }, + "gpsPositionUnit": { + "message": "grao", + "description": "Unit for GPS position." + }, "gpsAltitude": { "message": "Altura:" }, @@ -2412,15 +2594,16 @@ "gpsSpeed": { "message": "Velocidade:" }, - "gpsSats": { - "message": "Satélites:" - }, "gpsDistToHome": { "message": "Distancia a casa:" }, "gpsSignalStrHead": { "message": "Forza de sinal GPS" }, + "gpsSignalStrHeadHelp": { + "message": "Mostra a intensidade do sinal, a calidade e o estado de cada fonte GPS descuberta", + "description": "Help text for gpsSignalStrHead" + }, "gpsSignalStr": { "message": "Forza de sinal" }, @@ -3236,6 +3419,22 @@ "firmwareFlasherPreviousDevice": { "message": "Detectado: $1 - dispositivo anterior todavía en instalación, por favor volva conectalo para volver intentalo" }, + "firmwareFlasherRemindBackupTitle": { + "message": "Borrar a configuración", + "description": "Warning message title before actual flashing takes place" + }, + "firmwareFlasherRemindBackup": { + "message": "Instalar novo firmware eliminará todas as configuracións. Recomendamos encarecidamente gardar unha copia de seguranza antes de continuar.", + "description": "Warning message before actual flashing takes place" + }, + "firmwareFlasherBackup": { + "message": "Crear unha copia de seguridade", + "description": "Create a backup before actual flashing takes place" + }, + "firmwareFlasherBackupIgnore": { + "message": "Ignora o risco", + "description": "Ignore creating a backup before actual flashing takes place" + }, "ledStripHelp": { "message": "O controlador de voo pode controlar cores e efectos dos LEDs individuais duna tira.
    Configure LEDs, configure a orde do cableado e engada LEDs a súa aeronave acordo coas posiciones da reixa. LEDs sen número de orden do cableado non se gardarán.
    Doble-pulsación nun cor para editar os valores HSV." }, @@ -4947,6 +5146,27 @@ "osdDescElementSysFanSpeed": { "message": "Velocidade do ventilador das lentes mostrado polas lentes" }, + "osdTextElementLapTimeCurrent": { + "message": "Tempo de volta GPS actual", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeCurrent": { + "message": "Tempo de volta actual do GPS" + }, + "osdTextElementLapTimePrevious": { + "message": "Tempo de volta GPS anterior", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimePrevious": { + "message": "Tempo de volta GPS anterior" + }, + "osdTextElementLapTimeBest3": { + "message": "Mellor tempo de 3 voltas por GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeBest": { + "message": "Mellor tempo de volta por GPS" + }, "osdTextElementCraftName": { "message": "Nome da aeronave", "description": "One of the elements of the OSD" @@ -5264,6 +5484,9 @@ "message": "Flip despois da frecha do accidente", "description": "One of the elements of the OSD" }, + "osdDescElementFlipArrow": { + "message": "Frecha que indica que motores laterais están arriba no modo tartaruga (o acelerómetro debe estar activado)" + }, "osdTextElementLinkQuality": { "message": "Calidade de ligazón", "description": "One of the elements of the OSD" @@ -5600,6 +5823,20 @@ "osdDescStatMinRSNR": { "message": "Valor mínimo RSNR" }, + "osdTextStatBest3ConsecLaps": { + "message": "Mellores 3 voltas consecutivas", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBest3ConsecLaps": { + "message": "Mellores 3 voltas consecutivas" + }, + "osdTextStatBestLap": { + "message": "Mellor volta", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBestLap": { + "message": "Mellor volta" + }, "osdTextStatUnknown": { "message": "Descoñecido $1", "description": "One of the statistics that can be shown at the end of the flight in the OSD" @@ -5948,6 +6185,14 @@ "message": "Aquí pode seleccionar a frecuencia para o seu VTX se é compatible", "description": "Help text for the frequency field of the VTX tab" }, + "vtxReadyTrue": { + "message": "Verdadeiro", + "description": "vtx device are ready" + }, + "vtxReadyFalse": { + "message": "Falso", + "description": "vtx device are not ready" + }, "vtxDeviceReady": { "message": "Dispositivo Preparado", "description": "Text of one of the fields of the VTX tab" @@ -6498,6 +6743,10 @@ "message": "Palabras Clave:", "description": "Hint text in the presets detailed dialog" }, + "presetsSourceRepository": { + "message": "Orixe:", + "description": "Text prefixing user defined name of the preset repository containing a preset" + }, "presetsVersions": { "message": "Firmware:", "description": "Hint text in the presets detailed dialog" @@ -6646,6 +6895,10 @@ "message": "Activar", "description": "Presets tab, sources dialog, button to make selected source active" }, + "presetsSourcesDialogMakeSourceDisable": { + "message": "Desactivar", + "description": "Presets tab, sources dialog, button to make selected source disabled" + }, "presetsSourcesDialogDeleteSource": { "message": "Eliminar", "description": "Presets tab, sources dialog, button to delete selected source" @@ -6654,6 +6907,10 @@ "message": "AVISO! Seleccionada unha fonte predefinida de terceiros.", "description": "Warning message that shows up when a third party preset source is selected" }, + "presetsFailedToLoadRepositories": { + "message": "ADVERTENCIA! Produciuse un erro ao cargar os seguintes supositorios: {{repos}}", + "description": "Warning message that shows up when we fail to load some repositories" + }, "presetsWarningBackup": { "message": "Por favor, asegúrese de facer unha copia de seguridade da súa configuración actual ('$t(presetsBackupSave.message)' botón ou vía CLI se o botón está desactivado) antes seleccionando e aplicando presets. En caso contrario, non hai ningunha forma de volver á configuración anterior despois de aplicar presets.", "description": "Warning message that shows up at the top of the presets tab" diff --git a/locales/it/messages.json b/locales/it/messages.json index c8b358eed8..6c25948705 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -2194,57 +2194,45 @@ "auxiliaryModeLogicAND": { "message": "E" }, + "auxiliaryHelpMode_3D": { + "message": "Abilita il cambio di direzione del motore per fornire spinta negativa e consentire il volo invertito. L'acceleratore diventa da -100 a +100 anziché da 0 a 100", + "description": "Help text to 3D mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Modalità di volo che limita l'angolo del modello quando si vola in modalità acro", + "description": "Help text to ACRO TRAINER mode" + }, "auxiliaryHelpMode_ARM": { - "message": "Abilita la stabilizzazione motori e volo", + "message": "Abilita i motori e consente al modello di volare", "description": "Help text to ARM mode" }, "auxiliaryHelpMode_ANGLE": { "message": "In questa modalità di livellamento automatico i canali di roll e pitch controllano l'angolo tra i rilevanti assi e la verticale, ottenendo un volo livellato lasciando gli stick centrati", "description": "Help text to ANGLE mode" }, - "auxiliaryHelpMode_HORIZON": { - "message": "Questa modalità ibrida funziona esattamente come la modalità ANGLE con gli stick roll e pitch centrati (abilitando così il volo livellato), poi gradualmente si comporta sempre di più come la modalità RATE appena gli stick si allontanano dalla posizione centrale", - "description": "Help text to HORIZON mode" - }, - "auxiliaryHelpMode_MAG": { - "message": "Direzione fissata come da Magnetometro", - "description": "Help text to MAG mode" - }, - "auxiliaryHelpMode_HEADFREE": { - "message": "In questa modalità, la \"testa\" del multirotore punta sempre alla stessa direzione di quando la funzione è stata attivata. Ciò significa che quando il multirotore ruota attorno all'asse Z (yaw), i comandi risponderanno sempre in base alla direzione della \"testa\".
    Con questa modalità è più facile controllare il multirotore, anche volare con la testa fisica verso di voi poiché i comandi rispondono sempre lo stesso. Questa è una modalità per i nuovi utenti di multirotore e può evitare di perdere il controllo quando non si conosce la direzione della testa", - "description": "Help text to HEADFREE mode" - }, - "auxiliaryHelpMode_PASSTHRU": { - "message": "Passa roll, yaw, e pitch direttamente da rx ai servo in aereo mix", - "description": "Help text to PASSTHRU mode" - }, - "auxiliaryHelpMode_FAILSAFE": { - "message": "Vai in failsafe fase 2 manualmente", - "description": "Help text to FAILSAFE mode" - }, - "auxiliaryHelpMode_GPSRESCUE": { - "message": "Abilita 'GPS Rescue' per ritornare alla posizione dove è stato armato l'ultima volta", - "description": "Help text to GPS RESCUE mode" + "auxiliaryHelpMode_ANTIGRAVITY": { + "message": "La modalità di volo aumenta il termine P e I durante i movimenti veloci dell' acceleratore per seguire meglio il movimento dello stick ed evitare sbandamenti del muso sui cambi rapidi dell'acceleratore", + "description": "Help text to ANTIGRAVITY mode" }, - "auxiliaryHelpMode_HEADADJ": { - "message": "Correzione Direzione - Imposta una nuovo yaw per la modalità HEADFREE", - "description": "Help text to HEAD ADJ mode" + "auxiliaryHelpMode_AIRMODE": { + "message": "In un mixer / modalità standard, quando roll, pitch e yaw sono calcolati e saturano un motore, tutti i motori saranno ridotti allo stesso modo. Quando un motore va sotto il minimo, viene interrotto. Pensate di avere l'acceleratore appena sopra il minimo e cercate di fare un roll veloce - poiché due motori non possono andare più lenti, si ottiene in pratica metà della potenza (metà del PID gain). Se i vostri comandi avessero richiesto una differenza maggiore del 100% tra i motori veloci e lenti, i motori lenti verrebbero interrotti, rompendo la simmetria del bilanciamento dei motori riducendo in modo non uniforme il guadagno", + "description": "Help text to AIRMODE mode" }, "auxiliaryHelpMode_BEEPER": { "message": "Abilita beep - utile per localizzare un aeromobile perso", "description": "Help text to BEEPER mode" }, - "auxiliaryHelpMode_LEDLOW": { - "message": "Disattiva uscita LED_STRIP", - "description": "Help text to LEDLOW mode" + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Disabilita/abilita beeper inclusi gli avvisi, stato e modalità BEEPER", + "description": "Help text to BEEPERMUTE mode" }, - "auxiliaryHelpMode_OSDDISABLE": { - "message": "Abilita/Disabilita On-Screen-Display", - "description": "Help text to OSD mode" + "auxiliaryHelpMode_BEEPERON": { + "message": "Abilita la modalità BEEPER ON", + "description": "Help text to BEEPER ON mode" }, - "auxiliaryHelpMode_TELEMETRY": { - "message": "Abilita telemetria tramite interruttore", - "description": "Help text to TELEMETRY mode" + "auxiliaryHelpMode_BEEPGPSSATELLITECOUNT": { + "message": "Abilita la modalità BEEP per il conteggio dei satelliti GPS", + "description": "Help text to BEEP GPS SATELLITE COUNT mode" }, "auxiliaryHelpMode_BLACKBOX": { "message": "Abilita log BlackBox", @@ -2254,13 +2242,13 @@ "message": "Cancella il log BlackBox", "description": "Help text to BLACKBOX ERASE mode" }, - "auxiliaryHelpMode_AIRMODE": { - "message": "In un mixer / modalità standard, quando roll, pitch e yaw sono calcolati e saturano un motore, tutti i motori saranno ridotti allo stesso modo. Quando un motore va sotto il minimo, viene interrotto. Pensate di avere l'acceleratore appena sopra il minimo e cercate di fare un roll veloce - poiché due motori non possono andare più lenti, si ottiene in pratica metà della potenza (metà del PID gain). Se i vostri comandi avessero richiesto una differenza maggiore del 100% tra i motori veloci e lenti, i motori lenti verrebbero interrotti, rompendo la simmetria del bilanciamento dei motori riducendo in modo non uniforme il guadagno", - "description": "Help text to AIRMODE mode" + "auxiliaryHelpMode_BOXPREARM": { + "message": "Abilita la modalità BOXPREARM", + "description": "Help text to BOXPREARM mode" }, - "auxiliaryHelpMode_FPVANGLEMIX": { - "message": "Applica la rotazione yaw rispetto a una telecamera FPV montata con un angolo prefissato", - "description": "Help text to FPV ANGLE MIX mode" + "auxiliaryHelpMode_CALIB": { + "message": "Avvia calibrazione in volo", + "description": "Help text to CALIB mode" }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "Usa l'interruttore personalizzato CAMERA CONTROL 1. Controlla il manuale del fornitore", @@ -2274,66 +2262,126 @@ "message": "Usa l'interruttore personalizzato CAMERA CONTROL 3. Controlla il manuale del fornitore", "description": "Help text to customized CAMERA CONTROL 3 mode" }, - "auxiliaryHelpMode_USER1": { - "message": "Usa l'interruttore personalizzato USER1. Controlla il manuale del fornitore", - "description": "Help text to customized USER1 mode" - }, - "auxiliaryHelpMode_USER2": { - "message": "Usa l'interruttore personalizzato USER2. Controlla il manuale del fornitore", - "description": "Help text to customized USER2 mode" - }, - "auxiliaryHelpMode_USER3": { - "message": "Usa l'interruttore personalizzato USER3. Controlla il manuale del fornitore", - "description": "Help text to customized USER3 mode" + "auxiliaryHelpMode_CAMSTAB": { + "message": "Abilita la stabilizzazione della fotocamera", + "description": "Help text to CAMSTAB mode" }, - "auxiliaryHelpMode_USER4": { - "message": "Usa l'interruttore personalizzato USER4. Controlla il manuale del fornitore", - "description": "Help text to customized USER4 mode" + "auxiliaryHelpMode_FAILSAFE": { + "message": "Vai in failsafe fase 2 manualmente", + "description": "Help text to FAILSAFE mode" }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Inverte i motori per ribaltare un modello dopo un crash (DShot richiesto)", "description": "Help text to FLIP OVER AFTER CRASH mode" }, - "auxiliaryHelpMode_PREARM": { - "message": "Durante l'armamento, aspetta che questo interruttore sia attivato prima dell'effettivo armamento", - "description": "Help text to PREARM mode" + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Applica la rotazione yaw rispetto a una telecamera FPV montata con un angolo prefissato", + "description": "Help text to FPV ANGLE MIX mode" }, "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { - "message": "Usa un numero di beep per indicare il numero di satelliti GPS trovati", + "message": "Usato per indicare il numero di satelliti GPS trovati con un beep", "description": "Help text to GPS BEEP SATELLITE COUNT mode" }, - "auxiliaryHelpMode_VTXPITMODE": { - "message": "Cambia la VTX in modalità pit (bassa potenza in uscita, se supportata)", - "description": "Help text to VTX PIT MODE mode" + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Abilita 'GPS Rescue' per ritornare alla posizione dove è stato armato l'ultima volta", + "description": "Help text to GPS RESCUE mode" }, - "auxiliaryHelpMode_PARALYZE": { - "message": "Disabilita un modello crashato fino ad un riavvio", - "description": "Help text to PARALYZE mode" + "auxiliaryHelpMode_HEADADJ": { + "message": "Correzione Direzione - Imposta una nuovo yaw per la modalità HEADFREE", + "description": "Help text to HEAD ADJ mode" }, - "auxiliaryHelpMode_ACROTRAINER": { - "message": "Abilita 'acro trainer' angle limitandolo in modalità acro", - "description": "Help text to ACRO TRAINER mode" + "auxiliaryHelpMode_HEADFREE": { + "message": "Modalità di volo in cui l'imbardata è allineata con un telaio come riferimento (spesso che guarda il pilota) invece del modello. Progettato per principianti ma raramente utilizzato, si consiglia la modalità ANGLE", + "description": "Help text to HEADFREE mode" }, - "auxiliaryHelpMode_VTXCONTROLDISABLE": { - "message": "Disabilita il controllo delle impostazioni VTX tramite l'OSD", - "description": "Help text to VTX CONTROL DISABLE mode" + "auxiliaryHelpMode_HORIZON": { + "message": "Questa modalità ibrida funziona esattamente come la modalità ANGLE con gli stick roll e pitch centrati (abilitando così il volo livellato), poi gradualmente si comporta sempre di più come la modalità RATE appena gli stick si allontanano dalla posizione centrale", + "description": "Help text to HORIZON mode" }, "auxiliaryHelpMode_LAUNCHCONTROL": { "message": "Sistema d'assistenza avvio Race", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { - "message": "Disabilita/abilita comandi stick", - "description": "Help text to STICK COMMANDS DISABLE mode" + "auxiliaryHelpMode_LEDLOW": { + "message": "Spegni LED STRIP", + "description": "Help text to LEDLOW mode" }, - "auxiliaryHelpMode_BEEPERMUTE": { - "message": "Disabilita/abilita beeper inclusi gli avvisi, stato e modalità BEEPER", - "description": "Help text to BEEPERMUTE mode" + "auxiliaryHelpMode_MAG": { + "message": "Blocca la direzione come indicata dal Magnetometro (controllo bussola)", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_MSPOVERRIDE": { + "message": "Abilita la modalità di sovrascrittura MSP", + "description": "Help text to MSP OVERRIDE mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Abilita/Disabilita On-Screen-Display", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Passa roll, yaw, e pitch direttamente da rx ai servo in aereo mix", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Disabilita un modello crashato fino ad un riavvio", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_PIDAUDIO": { + "message": "Usa per attivare/disattivare PIDAUDIO", + "description": "Help text to PIDAUDIO mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "Durante l'armamento, aspetta che questo interruttore sia attivato prima dell'effettivo armamento", + "description": "Help text to PREARM mode" }, "auxiliaryHelpMode_READY": { "message": "Aggiunto in BF4.4, puoi visualizzare 'READY' in OSD usando un interruttore. Questo è un miglioramento in situazioni di race in cui tutti i feed video pilota sono su uno schermo centrale. Il pilota può lanciare un interruttore per indicare che sono pronti a volare, e la parola READY appare sul loro OSD. Il direttore di gara può poi dire se tutti i piloti sono pronti guardando lo schermo centrale", "description": "Help text to READY mode" }, + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "Disabilita/abilita comandi stick", + "description": "Help text to STICK COMMANDS DISABLE mode" + }, + "auxiliaryHelpMode_SERVO1": { + "message": "Usa per attivare/disattivare SERVO1", + "description": "Help text to SERVO1 mode" + }, + "auxiliaryHelpMode_SERVO2": { + "message": "Usa per attivare/disattivare SERVO2", + "description": "Help text to SERVO2 mode" + }, + "auxiliaryHelpMode_SERVO3": { + "message": "Usa per attivare/disattivare SERVO3", + "description": "Help text to SERVO3 mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Abilita telemetria tramite interruttore", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_USER1": { + "message": "Usa per attivare/disattivare l'USER1 personalizzato. Controlla l'output arbitrario tramite PINIO", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Usa per attivare/disattivare l'USER2 personalizzato. Controlla l'output arbitrario tramite PINIO", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Usa per attivare/disattivare l'USER3 personalizzato. Controlla l'output arbitrario tramite PINIO", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Usa per attivare/disattivare l'USER4 personalizzato. Controlla l'output arbitrario tramite PINIO", + "description": "Help text to customized USER4 mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Disabilita il controllo delle impostazioni VTX tramite l'OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Cambia la VTX in modalità pit (bassa potenza in uscita, se supportata)", + "description": "Help text to VTX PIT MODE mode" + }, "adjustmentsHelp": { "message": "Configura gli interruttori di regolazione. Vedi la sezione 'regolazioni in volo' del manuale per i dettagli. Le modifiche apportate dalle funzioni di regolazione non vengono salvate automaticamente. Ci sono 4 slot. Ogni interruttore utilizzato per apportare modifiche simultanee richiede l'uso esclusivo di uno slot." }, @@ -2631,9 +2679,6 @@ "gpsSpeed": { "message": "Velocità:" }, - "gpsSats": { - "message": "Satelliti:" - }, "gpsDistToHome": { "message": "Distanza dal punto di partenza:" }, @@ -5186,6 +5231,27 @@ "osdDescElementSysFanSpeed": { "message": "Velocità ventole dei goggle in uscita dai goggles" }, + "osdTextElementLapTimeCurrent": { + "message": "Tempo del giro GPS corrente", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeCurrent": { + "message": "Tempo del giro GPS attuale" + }, + "osdTextElementLapTimePrevious": { + "message": "Tempo del giro GPS precedente", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimePrevious": { + "message": "Tempo del giro GPS precedente" + }, + "osdTextElementLapTimeBest3": { + "message": "Migliori 3 tempi del giro GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeBest": { + "message": "Miglior tempo del giro GPS" + }, "osdTextElementCraftName": { "message": "Nome Modello", "description": "One of the elements of the OSD" diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 37e0f1b826..2858eb0eab 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -2194,57 +2194,25 @@ "auxiliaryModeLogicAND": { "message": "AND" }, - "auxiliaryHelpMode_ARM": { - "message": "モーター&フライトスタビライゼーションを有効にします", - "description": "Help text to ARM mode" - }, "auxiliaryHelpMode_ANGLE": { "message": "このオートレベルモードでは、ロールとピッチのチャンネルが関連する軸と垂直の間の角度を制御し、スティックを中心に配置することで水平飛行を実現します。", "description": "Help text to ANGLE mode" }, - "auxiliaryHelpMode_HORIZON": { - "message": "このハイブリッドモードは、ロールとピッチのスティックを中央に配置するとアングルモードと同じように動作し(オートレベル飛行が可能)、スティックを中央から遠ざけていくと、徐々にレートモードのように動作するようになります。", - "description": "Help text to HORIZON mode" - }, - "auxiliaryHelpMode_MAG": { - "message": "コンパス方向へヘッディングを固定します", - "description": "Help text to MAG mode" - }, - "auxiliaryHelpMode_HEADFREE": { - "message": "このモードでは、マルチコプターの『ヘッド』は機能が有効化されたとき同じ方向を常に指すこととなります。つまり、マルチコプターがZ軸を中心に回転 (ヨー) すると、常に同じ『ヘッド』の方向に従って反応することになります。
    このモードでは、マルチコプターの操作が容易になり、常に同じ反応を示すため、物理的な『ヘッド』を自分の方に向けた状態で飛行させることも可能です。このモードはマルチコプターを初めて使う人にとって扱いやすいモードで、ヘッドの方向がわからないときに起きてしまうコントロール不能状態を防ぐことができます。", - "description": "Help text to HEADFREE mode" - }, - "auxiliaryHelpMode_PASSTHRU": { - "message": "ロール、ヨー、ピッチのRX信号から直接サーボへ固定翼機MIX信号へ渡します", - "description": "Help text to PASSTHRU mode" - }, - "auxiliaryHelpMode_FAILSAFE": { - "message": "フェイルセーフ ステージ2へ手動で切り替えます", - "description": "Help text to FAILSAFE mode" - }, - "auxiliaryHelpMode_GPSRESCUE": { - "message": "『GPSレスキュー』を有効にし、最後に離陸した地点に機体を帰還させます", - "description": "Help text to GPS RESCUE mode" - }, - "auxiliaryHelpMode_HEADADJ": { - "message": "ヘッディング調整 - ヘッドフリーモードの新しいヨー基準点を設定します", - "description": "Help text to HEAD ADJ mode" + "auxiliaryHelpMode_AIRMODE": { + "message": "標準のミキサー / モードでは、ロール、ピッチ、ヨーが計算上モーターの強度が飽和状態となると、すべてのモーターが均等に回転が減少します。モーターが最小値を下回ると切り捨て状態となります。例えば、スロットルを最小値より少し上にしてクイックロールをしようとした場合、2つのモーターはそれ以上回転を下げることができないので、実質的に半分のパワー (PID強度の半分) を得ることになります。もし、入力が高回転モーターと低回転モーターの間に100%以上の差を求めたとしたら、低回転モーターは回転が切り捨てられ、強度を不均一に減少させることとなってしまいモーターバランスの対称性を破綻させてしまうでしょう。", + "description": "Help text to AIRMODE mode" }, "auxiliaryHelpMode_BEEPER": { "message": "ビープ音を有効にします - 墜落した機体の位置を特定するのに役立ちます", "description": "Help text to BEEPER mode" }, - "auxiliaryHelpMode_LEDLOW": { - "message": "LEDストリップ出力をOFFにします", - "description": "Help text to LEDLOW mode" - }, - "auxiliaryHelpMode_OSDDISABLE": { - "message": "OSD表示を有効 / 無効にします", - "description": "Help text to OSD mode" + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "警告、ステータス、BEEPERモードを含むビープ音を無効 / 有効にします", + "description": "Help text to BEEPERMUTE mode" }, - "auxiliaryHelpMode_TELEMETRY": { - "message": "スイッチを使いテレメトリーを有効にします", - "description": "Help text to TELEMETRY mode" + "auxiliaryHelpMode_BEEPERON": { + "message": "BEPPER ONモードを有効にします", + "description": "Help text to BEEPER ON mode" }, "auxiliaryHelpMode_BLACKBOX": { "message": "BlackBoxログを有効にします", @@ -2254,13 +2222,9 @@ "message": "BlackBoxログを消去します", "description": "Help text to BLACKBOX ERASE mode" }, - "auxiliaryHelpMode_AIRMODE": { - "message": "標準のミキサー / モードでは、ロール、ピッチ、ヨーが計算上モーターの強度が飽和状態となると、すべてのモーターが均等に回転が減少します。モーターが最小値を下回ると切り捨て状態となります。例えば、スロットルを最小値より少し上にしてクイックロールをしようとした場合、2つのモーターはそれ以上回転を下げることができないので、実質的に半分のパワー (PID強度の半分) を得ることになります。もし、入力が高回転モーターと低回転モーターの間に100%以上の差を求めたとしたら、低回転モーターは回転が切り捨てられ、強度を不均一に減少させることとなってしまいモーターバランスの対称性を破綻させてしまうでしょう。", - "description": "Help text to AIRMODE mode" - }, - "auxiliaryHelpMode_FPVANGLEMIX": { - "message": "装着するFPVカメラのプリセット角度に対してヨー回転をかけるよう適用します", - "description": "Help text to FPV ANGLE MIX mode" + "auxiliaryHelpMode_BOXPREARM": { + "message": "BOX PREARMモードを有効にします", + "description": "Help text to BOXPREARM mode" }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "カスタマイズ切り替えのためCAMERA CONTROL 1を使用します。メーカーのマニュアルをご確認ください。", @@ -2274,65 +2238,81 @@ "message": "カスタマイズ切り替えのためCAMERA CONTROL 3を使用します。メーカーのマニュアルをご確認ください。", "description": "Help text to customized CAMERA CONTROL 3 mode" }, - "auxiliaryHelpMode_USER1": { - "message": "カスタマイズ切り替えのためUSER1を使用します。メーカーのマニュアルをご確認ください。", - "description": "Help text to customized USER1 mode" - }, - "auxiliaryHelpMode_USER2": { - "message": "カスタマイズ切り替えのためUSER2を使用します。メーカーのマニュアルをご確認ください。", - "description": "Help text to customized USER2 mode" + "auxiliaryHelpMode_CAMSTAB": { + "message": "カメラ スタビライザーモードを有効にします", + "description": "Help text to CAMSTAB mode" }, - "auxiliaryHelpMode_USER3": { - "message": "カスタマイズ切り替えのためUSER3を使用します。メーカーのマニュアルをご確認ください。", - "description": "Help text to customized USER3 mode" - }, - "auxiliaryHelpMode_USER4": { - "message": "カスタマイズ切り替えのためUSER4を使用します。メーカーのマニュアルをご確認ください。", - "description": "Help text to customized USER4 mode" + "auxiliaryHelpMode_FAILSAFE": { + "message": "フェイルセーフ ステージ2へ手動で切り替えます", + "description": "Help text to FAILSAFE mode" }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "モーターを逆回転させクラッシュ後に逆さまになった機体をひっくり返します (要DShot)", "description": "Help text to FLIP OVER AFTER CRASH mode" }, - "auxiliaryHelpMode_PREARM": { - "message": "アーミング時、実際にこのスイッチが有効になるのを待ってからアームします", - "description": "Help text to PREARM mode" + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "装着するFPVカメラのプリセット角度に対してヨー回転をかけるよう適用します", + "description": "Help text to FPV ANGLE MIX mode" }, - "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { - "message": "ビープ回数で、捕捉したGPS衛星数を示します", - "description": "Help text to GPS BEEP SATELLITE COUNT mode" + "auxiliaryHelpMode_GPSRESCUE": { + "message": "『GPSレスキュー』を有効にし、最後に離陸した地点に機体を帰還させます", + "description": "Help text to GPS RESCUE mode" }, - "auxiliaryHelpMode_VTXPITMODE": { - "message": "VTXをピットモードへ切り替えます (サポートされる場合は低出力)", - "description": "Help text to VTX PIT MODE mode" + "auxiliaryHelpMode_HEADADJ": { + "message": "ヘッディング調整 - ヘッドフリーモードの新しいヨー基準点を設定します", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "このハイブリッドモードは、ロールとピッチのスティックを中央に配置するとアングルモードと同じように動作し(オートレベル飛行が可能)、スティックを中央から遠ざけていくと、徐々にレートモードのように動作するようになります。", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "レーススタート アシスタントシステム", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_LEDLOW": { + "message": "LEDストリップ出力をOFFにします", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_MSPOVERRIDE": { + "message": "MSP上書きモードを有効にします", + "description": "Help text to MSP OVERRIDE mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "OSD表示を有効 / 無効にします", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "ロール、ヨー、ピッチのRX信号から直接サーボへ固定翼機MIX信号へ渡します", + "description": "Help text to PASSTHRU mode" }, "auxiliaryHelpMode_PARALYZE": { "message": "クラッシュした機体をバッテリーが切れるまで永久に使用不可とします", "description": "Help text to PARALYZE mode" }, - "auxiliaryHelpMode_ACROTRAINER": { - "message": "アクロモードにて『アクロ トレーナー』角度制限を有効にします", - "description": "Help text to ACRO TRAINER mode" - }, - "auxiliaryHelpMode_VTXCONTROLDISABLE": { - "message": "OSD経由でVTX設定の制御を無効にします", - "description": "Help text to VTX CONTROL DISABLE mode" + "auxiliaryHelpMode_PREARM": { + "message": "アーミング時、実際にこのスイッチが有効になるのを待ってからアームします", + "description": "Help text to PREARM mode" }, - "auxiliaryHelpMode_LAUNCHCONTROL": { - "message": "レーススタート アシスタントシステム", - "description": "Help text to LAUNCH CONTROL mode" + "auxiliaryHelpMode_READY": { + "message": "BF4.4の追加機能として、スイッチを使ってOSD上に【READY】を表示させることができるようになりました。これは、すべてのパイロットのFPV映像が1つの中央スクリーンにあるようなレースの観戦状況において、ニッチな改善内容となります。パイロットがスイッチを押し飛行の準備ができたことを示すと、OSDに【READY】という文字が表示されます。レース運営者は、中央のスクリーンを見てすべてのパイロットが準備できているかどうかを判断することができます。アーミングすると【READY】の文字列が消えます。", + "description": "Help text to READY mode" }, "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { "message": "スティックコマンドを無効 / 有効にします", "description": "Help text to STICK COMMANDS DISABLE mode" }, - "auxiliaryHelpMode_BEEPERMUTE": { - "message": "警告、ステータス、BEEPERモードを含むビープ音を無効 / 有効にします", - "description": "Help text to BEEPERMUTE mode" + "auxiliaryHelpMode_TELEMETRY": { + "message": "スイッチを使いテレメトリーを有効にします", + "description": "Help text to TELEMETRY mode" }, - "auxiliaryHelpMode_READY": { - "message": "BF4.4の追加機能として、スイッチを使ってOSD上に【READY】を表示させることができるようになりました。これは、すべてのパイロットのFPV映像が1つの中央スクリーンにあるようなレースの観戦状況において、ニッチな改善内容となります。パイロットがスイッチを押し飛行の準備ができたことを示すと、OSDに【READY】という文字が表示されます。レース運営者は、中央のスクリーンを見てすべてのパイロットが準備できているかどうかを判断することができます。アーミングすると【READY】の文字列が消えます。", - "description": "Help text to READY mode" + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "OSD経由でVTX設定の制御を無効にします", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "VTXをピットモードへ切り替えます (サポートされる場合は低出力)", + "description": "Help text to VTX PIT MODE mode" }, "adjustmentsHelp": { "message": "調整スイッチを設定します。詳細については、マニュアルの『in-flight adjustment(飛行調整)』の項目を参照してください。『調整』機能による変更は自動的には保存されません。" @@ -2631,9 +2611,6 @@ "gpsSpeed": { "message": "速度:" }, - "gpsSats": { - "message": "衛星数:" - }, "gpsDistToHome": { "message": "ホームまでの距離:" }, @@ -5186,6 +5163,27 @@ "osdDescElementSysFanSpeed": { "message": "ゴーグルで表示されるゴーグル FAN速度" }, + "osdTextElementLapTimeCurrent": { + "message": "GPSラップタイム 現在", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeCurrent": { + "message": "現在のGPSラップタイム" + }, + "osdTextElementLapTimePrevious": { + "message": "GPSラップタイム 前回", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimePrevious": { + "message": "前回のGPSラップタイム" + }, + "osdTextElementLapTimeBest3": { + "message": "GPSラップタイム ベスト3", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeBest": { + "message": "GPSラップタイム ベスト" + }, "osdTextElementCraftName": { "message": "機体名", "description": "One of the elements of the OSD" diff --git a/locales/ko/messages.json b/locales/ko/messages.json index f817a426d4..7b181cea12 100644 --- a/locales/ko/messages.json +++ b/locales/ko/messages.json @@ -2194,57 +2194,45 @@ "auxiliaryModeLogicAND": { "message": "AND" }, + "auxiliaryHelpMode_3D": { + "message": "가역적 모터 방향이 음의 추력을 제공하고 배면비행을 허용합니다. 스로틀은 0~100이 아닌 -100~+100이 됩니다", + "description": "Help text to 3D mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "아크로 모드에서 비행할때 기체 앵글을 제한하는 비행 모드", + "description": "Help text to ACRO TRAINER mode" + }, "auxiliaryHelpMode_ARM": { - "message": "모터 및 비행 안정화 활성화", + "message": "모터 출력을 활성화하고 기체가 비행할 수 있도록 합니다", "description": "Help text to ARM mode" }, "auxiliaryHelpMode_ANGLE": { "message": "이 자동 레벨 모드에서 롤 및 피치 채널은 관련 축과 수직 사이의 각도를 제어하여 스틱을 중앙에 두는 것만으로 수평 비행을 달성합니다", "description": "Help text to ANGLE mode" }, - "auxiliaryHelpMode_HORIZON": { - "message": "이 하이브리드 모드는 중앙 롤 및 피치 스틱이 있는 앵글 모드와 정확히 작동하며(따라서 자동 레벨 비행이 가능함), 스틱이 중앙 위치에서 멀어질수록 점차 기본 레이트 모드와 비슷하게 작동합니다", - "description": "Help text to HORIZON mode" - }, - "auxiliaryHelpMode_MAG": { - "message": "자기계 방향으로 향하는 헤딩 잠금", - "description": "Help text to MAG mode" - }, - "auxiliaryHelpMode_HEADFREE": { - "message": "이 모드에서 멀티콥터의 \"헤드\"는 기능이 활성화되었을 때와 항상 같은 방향을 가리킵니다. 즉, 멀티콥터가 Z축(요)을 중심으로 회전할 때 컨트롤은 항상 동일한 \"헤드\" 방향에 따라 응답합니다.
    이 모드를 사용하면 멀티콥터를 제어하는 것이 더 쉬워집니다. 컨트롤이 항상 동일하게 반응하기 때문에 물리적인 헤드를 사용하여 멀티콥터를 사용자 쪽으로 비행할 수 있습니다. 이 모드는 멀티콥터의 새로운 사용자에게 친숙한 모드이며 헤드 방향을 모를 때 컨트롤이 손실되는 것을 방지할 수 있습니다", - "description": "Help text to HEADFREE mode" - }, - "auxiliaryHelpMode_PASSTHRU": { - "message": "비행기 믹스에서 롤, 요, 피치를 rx에서 서보로 직접 전달", - "description": "Help text to PASSTHRU mode" - }, - "auxiliaryHelpMode_FAILSAFE": { - "message": "페일세이프 단계 2를 수동으로 입력", - "description": "Help text to FAILSAFE mode" - }, - "auxiliaryHelpMode_GPSRESCUE": { - "message": "'GPS 레스큐'를 활성화하면 기체가 마지막으로 아밍한 장소로 복귀합니다", - "description": "Help text to GPS RESCUE mode" + "auxiliaryHelpMode_ANTIGRAVITY": { + "message": "빠른 스로틀 이동 중에 P 및 I 텀을 증가시켜 스틱 추적을 개선하고 빠른 스로틀 변경 시 노즈 드리프트를 방지하는 비행 모드", + "description": "Help text to ANTIGRAVITY mode" }, - "auxiliaryHelpMode_HEADADJ": { - "message": "헤딩 조정 - 헤드프리 모드에서 새 요 방향 설정", - "description": "Help text to HEAD ADJ mode" + "auxiliaryHelpMode_AIRMODE": { + "message": "표준 믹서/모드에서 롤, 피치 및 요가 계산되고 모터가 포화되면 모든 모터가 동일하게 감소합니다. 모터가 최저치 이하로 떨어지면 모터 출력이 잘립니다. 스로틀이 최저치를 약간 상회하고 빠른 롤을 당기려고 했다고 가정해 보십시오. 두 개의 모터가 더 이상 내려갈 수 없기 때문에 기본적으로 전력의 절반(PID 이득의 절반)을 얻을 수 있습니다. 입력에 하이 모터와 로우 모터 간의 차이가 100% 이상 필요한 경우 로우 모터가 잘리고 이득이 불균일하게 감소하여 모터 밸런스의 대칭이 깨집니다", + "description": "Help text to AIRMODE mode" }, "auxiliaryHelpMode_BEEPER": { "message": "비프음 활성화 - 추락한 기체를 찾는 데 유용합니다", "description": "Help text to BEEPER mode" }, - "auxiliaryHelpMode_LEDLOW": { - "message": "LED_스트립 출력 끄기", - "description": "Help text to LEDLOW mode" + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "경고, 상태 및 비퍼 모드를 포함한 비퍼음 비활성화/활성화", + "description": "Help text to BEEPERMUTE mode" }, - "auxiliaryHelpMode_OSDDISABLE": { - "message": "온-스크린-디스플레이 활성/비활성", - "description": "Help text to OSD mode" + "auxiliaryHelpMode_BEEPERON": { + "message": "비퍼 ON 모드 활성화", + "description": "Help text to BEEPER ON mode" }, - "auxiliaryHelpMode_TELEMETRY": { - "message": "스위치를 통한 텔레메트리 활성화", - "description": "Help text to TELEMETRY mode" + "auxiliaryHelpMode_BEEPGPSSATELLITECOUNT": { + "message": "비프 GPS 위성 수 모드 활성화", + "description": "Help text to BEEP GPS SATELLITE COUNT mode" }, "auxiliaryHelpMode_BLACKBOX": { "message": "블랙박스 로깅 활성화", @@ -2254,13 +2242,13 @@ "message": "블랙박스 로그 지우기", "description": "Help text to BLACKBOX ERASE mode" }, - "auxiliaryHelpMode_AIRMODE": { - "message": "표준 믹서/모드에서 롤, 피치 및 요가 계산되고 모터가 포화되면 모든 모터가 동일하게 감소합니다. 모터가 최저치 이하로 떨어지면 모터 출력이 잘립니다. 스로틀이 최저치를 약간 상회하고 빠른 롤을 당기려고 했다고 가정해 보십시오. 두 개의 모터가 더 이상 내려갈 수 없기 때문에 기본적으로 전력의 절반(PID 이득의 절반)을 얻을 수 있습니다. 입력에 하이 모터와 로우 모터 간의 차이가 100% 이상 필요한 경우 로우 모터가 잘리고 이득이 불균일하게 감소하여 모터 밸런스의 대칭이 깨집니다", - "description": "Help text to AIRMODE mode" + "auxiliaryHelpMode_BOXPREARM": { + "message": "BOXPREARM 모드 활성화", + "description": "Help text to BOXPREARM mode" }, - "auxiliaryHelpMode_FPVANGLEMIX": { - "message": "사전 설정된 각도로 장착된 FPV 카메라를 기준으로 요 회전 적용", - "description": "Help text to FPV ANGLE MIX mode" + "auxiliaryHelpMode_CALIB": { + "message": "비행중 교정 시작", + "description": "Help text to CALIB mode" }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "사용자 정의 카메라 제어 1을 사용하세요. 공급자 매뉴얼을 확인하세요", @@ -2274,66 +2262,126 @@ "message": "사용자 정의 카메라 제어 3를 사용하세요. 공급자 매뉴얼을 확인하세요", "description": "Help text to customized CAMERA CONTROL 3 mode" }, - "auxiliaryHelpMode_USER1": { - "message": "사용자 정의된 사용자1을 사용하세요. 공급자 매뉴얼을 확인하세요", - "description": "Help text to customized USER1 mode" - }, - "auxiliaryHelpMode_USER2": { - "message": "사용자 정의된 사용자2를 사용하세요. 공급자 매뉴얼을 확인하세요", - "description": "Help text to customized USER2 mode" - }, - "auxiliaryHelpMode_USER3": { - "message": "사용자 정의된 사용자3을 사용하세요. 공급자 매뉴얼을 확인하세요", - "description": "Help text to customized USER3 mode" + "auxiliaryHelpMode_CAMSTAB": { + "message": "카메라 안정화 모드 활성화", + "description": "Help text to CAMSTAB mode" }, - "auxiliaryHelpMode_USER4": { - "message": "사용자 정의된 사용자4를 사용하세요. 공급자 매뉴얼을 확인하세요", - "description": "Help text to customized USER4 mode" + "auxiliaryHelpMode_FAILSAFE": { + "message": "페일세이프 단계 2를 수동으로 입력", + "description": "Help text to FAILSAFE mode" }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "충돌 후 모터를 반대로 돌려 뒤집기 (디샷 요구됨)", "description": "Help text to FLIP OVER AFTER CRASH mode" }, - "auxiliaryHelpMode_PREARM": { - "message": "아밍을 실행할 때, 실제 아밍하기 전에 이 스위치가 활성화될 때까지 기다립니다", - "description": "Help text to PREARM mode" + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "사전 설정된 각도로 장착된 FPV 카메라를 기준으로 요 회전 적용", + "description": "Help text to FPV ANGLE MIX mode" }, "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { - "message": "비프음의 수를 사용하여 발견된 GPS위성 수를 지시합니다.", + "message": "이 횟수만큼 삐삐 소리를 내어 발견된 GPS 위성의 수를 지시합니다", "description": "Help text to GPS BEEP SATELLITE COUNT mode" }, - "auxiliaryHelpMode_VTXPITMODE": { - "message": "VTX를 피트모드로 전환합니다 (지원시 저전력 모드로 진입)", - "description": "Help text to VTX PIT MODE mode" + "auxiliaryHelpMode_GPSRESCUE": { + "message": "'GPS 레스큐'를 활성화하면 기체가 마지막으로 아밍한 장소로 복귀합니다", + "description": "Help text to GPS RESCUE mode" }, - "auxiliaryHelpMode_PARALYZE": { - "message": "충돌한 기체의 전원을 껐다가 켤 때까지 영구적으로 비활성화합니다", - "description": "Help text to PARALYZE mode" + "auxiliaryHelpMode_HEADADJ": { + "message": "헤딩 조정 - 헤드프리 모드에서 새 요 방향 설정", + "description": "Help text to HEAD ADJ mode" }, - "auxiliaryHelpMode_ACROTRAINER": { - "message": "'아크로 트레이너'를 활성화하면 아크로 모드에서 앵글을 제한합니다", - "description": "Help text to ACRO TRAINER mode" + "auxiliaryHelpMode_HEADFREE": { + "message": "요가 기체 대신 외부 기준 프레임(종종 조종사가 향하는 곳)과 정렬되는 비행 모드. 초보자를 위해 설계되었지만 거의 사용하지 않으며, ANGLE 모드를 추천합니다", + "description": "Help text to HEADFREE mode" }, - "auxiliaryHelpMode_VTXCONTROLDISABLE": { - "message": "OSD를 통한 VTX 제어 설정을 비활성화합니다", - "description": "Help text to VTX CONTROL DISABLE mode" + "auxiliaryHelpMode_HORIZON": { + "message": "이 하이브리드 모드는 중앙 롤 및 피치 스틱이 있는 앵글 모드와 정확히 작동하며(따라서 자동 레벨 비행이 가능함), 스틱이 중앙 위치에서 멀어질수록 점차 기본 레이트 모드와 비슷하게 작동합니다", + "description": "Help text to HORIZON mode" }, "auxiliaryHelpMode_LAUNCHCONTROL": { "message": "레이스 스타트 지원 시스템", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { - "message": "스틱 명령 비활성/활성화", - "description": "Help text to STICK COMMANDS DISABLE mode" + "auxiliaryHelpMode_LEDLOW": { + "message": "LED 스트립 출력 끄기", + "description": "Help text to LEDLOW mode" }, - "auxiliaryHelpMode_BEEPERMUTE": { - "message": "경고, 상태 및 비퍼 모드를 포함한 비퍼음 비활성화/활성화", - "description": "Help text to BEEPERMUTE mode" + "auxiliaryHelpMode_MAG": { + "message": "자기계 방향으로 향하는 헤딩 잠금(나침반 컨트롤)", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_MSPOVERRIDE": { + "message": "MSP 오버라이드 모드 활성화", + "description": "Help text to MSP OVERRIDE mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "온-스크린-디스플레이 활성/비활성", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "비행기 믹스에서 롤, 요, 피치를 rx에서 서보로 직접 전달", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "충돌한 기체의 전원을 껐다가 켤 때까지 영구적으로 비활성화합니다", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_PIDAUDIO": { + "message": "PIDAUDIO을 전환할 때 사용", + "description": "Help text to PIDAUDIO mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "아밍을 실행할 때, 실제 아밍하기 전에 이 스위치가 활성화될 때까지 기다립니다", + "description": "Help text to PREARM mode" }, "auxiliaryHelpMode_READY": { "message": "BF4.4에 추가된 사항으로 이제 스위치를 사용하여 OSD에서 'READY'를 표시할 수 있습니다. 이것은 모든 파일럿 비디오 피드가 하나의 중앙 화면에 있는 레이싱 상황에 적합한 틈새 개선입니다. 조종자는 스위치를 깜박여 비행 준비가 되었음을 표시할 수 있으며, OSD에 READY라는 단어가 나타납니다. 그런 다음 경기 감독은 중앙 화면을 보고 모든 조종사가 준비되었는지 알 수 있습니다. 아밍할 때 READY 텍스트가 사라집니다", "description": "Help text to READY mode" }, + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "스틱 명령 비활성/활성화", + "description": "Help text to STICK COMMANDS DISABLE mode" + }, + "auxiliaryHelpMode_SERVO1": { + "message": "서보1을 전환할 때 사용", + "description": "Help text to SERVO1 mode" + }, + "auxiliaryHelpMode_SERVO2": { + "message": "서보2를 전환할 때 사용", + "description": "Help text to SERVO2 mode" + }, + "auxiliaryHelpMode_SERVO3": { + "message": "서보3을 전환할 때 사용", + "description": "Help text to SERVO3 mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "스위치를 통한 텔레메트리 활성화", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_USER1": { + "message": "사용자 정의된 USER1을 전환합니다. PINIO를 통해 임의 출력을 제어합니다", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "사용자 정의된 USER2를 전환합니다. PINIO를 통해 임의 출력을 제어합니다", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "사용자 정의된 USER3을 전환합니다. PINIO를 통해 임의 출력을 제어합니다", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "사용자 정의된 USER4를 전환합니다. PINIO를 통해 임의 출력을 제어합니다", + "description": "Help text to customized USER4 mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "OSD를 통한 VTX 제어 설정을 비활성화합니다", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "VTX를 피트모드로 전환합니다 (지원시 저전력 모드로 진입)", + "description": "Help text to VTX PIT MODE mode" + }, "adjustmentsHelp": { "message": "조정 스위치를 설정하세요. 자세한 내용은 매뉴얼의 '비행중 조정' 섹션을 참조하십시오. 조정 기능의 변경 사항은 자동으로 저장되지 않습니다." }, @@ -2625,6 +2673,10 @@ "gpsAltitude": { "message": "고도:" }, + "gpsLatLon": { + "message": "현재 위도 / 경도:", + "description": "Show GPS position - Latitude / Longitude" + }, "gpsHeading": { "message": "진행방향:" }, @@ -2632,7 +2684,8 @@ "message": "속도:" }, "gpsSats": { - "message": "상태:" + "message": "위성 수:", + "description": "Show number of fixed GPS Satellites" }, "gpsDistToHome": { "message": "홈까지 거리:" @@ -5186,6 +5239,27 @@ "osdDescElementSysFanSpeed": { "message": "고글에 의해 제시된 고글 팬 속도" }, + "osdTextElementLapTimeCurrent": { + "message": "GPS 랩타임 현재", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeCurrent": { + "message": "현재 GPS 랩타임" + }, + "osdTextElementLapTimePrevious": { + "message": "GPS 랩타임 이전", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimePrevious": { + "message": "이전 GPS 랩타임" + }, + "osdTextElementLapTimeBest3": { + "message": "GPS 랩타임 베스트 3", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeBest": { + "message": "베스트 GPS 랩타임" + }, "osdTextElementCraftName": { "message": "기체 이름", "description": "One of the elements of the OSD" diff --git a/locales/nl/messages.json b/locales/nl/messages.json index 51fb6d6166..37fe89d045 100644 --- a/locales/nl/messages.json +++ b/locales/nl/messages.json @@ -2000,9 +2000,6 @@ "gpsSpeed": { "message": "Snelheid:" }, - "gpsSats": { - "message": "Satelieten:" - }, "gpsDistToHome": { "message": "Afst naar Home:" }, diff --git a/locales/pl/messages.json b/locales/pl/messages.json index bed1b7104d..4f0db05dbe 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -2190,57 +2190,21 @@ "auxiliaryModeLogicAND": { "message": "Oraz" }, - "auxiliaryHelpMode_ARM": { - "message": "Włącza silniki i stabilizację lotu", - "description": "Help text to ARM mode" - }, "auxiliaryHelpMode_ANGLE": { "message": "W tym trybie automatycznego poziomowania kanały przechyłu i pochylenia kontrolują kąt między odpowiednią osią a pionem, aby osiągnąć poziomy lot po prostu pozostaw drążek w pozycji środkowej", "description": "Help text to ANGLE mode" }, - "auxiliaryHelpMode_HORIZON": { - "message": "Ten tryb hybrydowy działa dokładnie tak samo jak tryb ANGLE z wyśrodkowanym drążkiem przechyłu i pochylenia (umożliwiając w ten sposób lot z automatycznym poziomowaniem), a następnie, gdy drążek jest odchylany coraz bardziej od pozycji środkowej zachowuje się coraz bardziej jak domyślny tryb RATE", - "description": "Help text to HORIZON mode" - }, - "auxiliaryHelpMode_MAG": { - "message": "Zablokuj kurs w kierunku magnetometru", - "description": "Help text to MAG mode" - }, - "auxiliaryHelpMode_HEADFREE": { - "message": "W trybie \"head\" multikopter jest zawsze skierowany w tym samym kierunku, w którym wychylenie drążków.
    W tym trybie łatwiej jest sterować multikopterem, a nawet latać nim przodem skierowanym w twoją stronę ponieważ elementy sterujące zawsze reagują tak samo jak wychylenie drążków. Jest to tryb przyjazny dla nowych użytkowników multikopterów i może zapobiec utracie kontroli, gdy nie znasz kierunku lotu", - "description": "Help text to HEADFREE mode" - }, - "auxiliaryHelpMode_PASSTHRU": { - "message": "Przekazuj przechylenie, odchylenie i wychylenie bezpośrednio z rx do serwomechanizmów w miksie samolotowym", - "description": "Help text to PASSTHRU mode" - }, - "auxiliaryHelpMode_FAILSAFE": { - "message": "Wejdź ręcznie w drugi etap Failsafe", - "description": "Help text to FAILSAFE mode" - }, - "auxiliaryHelpMode_GPSRESCUE": { - "message": "Włącz „GPS Rescue”, aby statek powietrzny wrócił do miejsca, w którym był ostatnio uzbrojony", - "description": "Help text to GPS RESCUE mode" - }, - "auxiliaryHelpMode_HEADADJ": { - "message": "Heading Adjust – Ustawia nowy początek odchylenia dla trybu HEADFREE", - "description": "Help text to HEAD ADJ mode" + "auxiliaryHelpMode_AIRMODE": { + "message": "W standardowym trybie miksera /, gdy przechylenie, nachylenie i odchylenie zostaną obliczone i nasycą silnik, wszystkie silniki zostaną jednakowo zredukowane. Kiedy silnik spada poniżej minimum, zostaje odcięty. Powiedzmy, że miałeś przepustnicę nieco powyżej minimum i próbowałeś szybko przechylić - ponieważ dwa silniki nie mogą zejść niżej, zasadniczo uzyskujesz połowę mocy (połowę wzmocnienia PID). Jeśli twoje dane wejściowe wymagałyby więcej niż 100% różnicy między wysokimi i niskimi silnikami, niskie silniki zostałyby obcięte, łamiąc symetrię równowagi silnika poprzez nierównomierne zmniejszenie wzmocnienia", + "description": "Help text to AIRMODE mode" }, "auxiliaryHelpMode_BEEPER": { "message": "Włącz sygnał dźwiękowy-przydatne do lokalizowania zaginionego statku powietrznego", "description": "Help text to BEEPER mode" }, - "auxiliaryHelpMode_LEDLOW": { - "message": "Wyłącz wyjście PASKA_LED RGB", - "description": "Help text to LEDLOW mode" - }, - "auxiliaryHelpMode_OSDDISABLE": { - "message": "Włącz/wyłącz wyświetlanie na ekranie", - "description": "Help text to OSD mode" - }, - "auxiliaryHelpMode_TELEMETRY": { - "message": "Włącz telemetrię za pomocą przełącznika", - "description": "Help text to TELEMETRY mode" + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Wyłącz/włącz sygnał dźwiękowy, w tym ostrzeżenie, stan i tryb BEEPER", + "description": "Help text to BEEPERMUTE mode" }, "auxiliaryHelpMode_BLACKBOX": { "message": "Włącz rejestrator parametrów lotu BlackBox", @@ -2250,14 +2214,6 @@ "message": "Wyczyść dziennik BlackBox", "description": "Help text to BLACKBOX ERASE mode" }, - "auxiliaryHelpMode_AIRMODE": { - "message": "W standardowym trybie miksera /, gdy przechylenie, nachylenie i odchylenie zostaną obliczone i nasycą silnik, wszystkie silniki zostaną jednakowo zredukowane. Kiedy silnik spada poniżej minimum, zostaje odcięty. Powiedzmy, że miałeś przepustnicę nieco powyżej minimum i próbowałeś szybko przechylić - ponieważ dwa silniki nie mogą zejść niżej, zasadniczo uzyskujesz połowę mocy (połowę wzmocnienia PID). Jeśli twoje dane wejściowe wymagałyby więcej niż 100% różnicy między wysokimi i niskimi silnikami, niskie silniki zostałyby obcięte, łamiąc symetrię równowagi silnika poprzez nierównomierne zmniejszenie wzmocnienia", - "description": "Help text to AIRMODE mode" - }, - "auxiliaryHelpMode_FPVANGLEMIX": { - "message": "Zastosuj obrót odchylenia względem kamery FPV zamontowanej pod zadanym kątem", - "description": "Help text to FPV ANGLE MIX mode" - }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "Służy do niestandardowego przełączania STEROWANIA KAMERĄ 1. Sprawdź w instrukcji dostawcy", "description": "Help text to customized CAMERA CONTROL 1 mode" @@ -2270,65 +2226,69 @@ "message": "Służy do niestandardowego przełączania STEROWANIA KAMERĄ 3. Sprawdź w instrukcji dostawcy", "description": "Help text to customized CAMERA CONTROL 3 mode" }, - "auxiliaryHelpMode_USER1": { - "message": "Używaj, aby przełączyć na profil niestandardowy USER1. Sprawdź w instrukcji dostawcy", - "description": "Help text to customized USER1 mode" - }, - "auxiliaryHelpMode_USER2": { - "message": "Używaj, aby przełączyć na profil niestandardowy USER2. Sprawdź w instrukcji dostawcy", - "description": "Help text to customized USER2 mode" - }, - "auxiliaryHelpMode_USER3": { - "message": "Używaj, aby przełączyć na profil niestandardowy USER3. Sprawdź w instrukcji dostawcy", - "description": "Help text to customized USER3 mode" - }, - "auxiliaryHelpMode_USER4": { - "message": "Używaj, aby przełączyć na profil niestandardowy USER3. Sprawdź w instrukcji dostawcy", - "description": "Help text to customized USER4 mode" + "auxiliaryHelpMode_FAILSAFE": { + "message": "Wejdź ręcznie w drugi etap Failsafe", + "description": "Help text to FAILSAFE mode" }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Odwróć kierunek obrotu silników, aby przewrócić statek powietrzny do góry nogami po zderzeniu (wymagany DShot)", "description": "Help text to FLIP OVER AFTER CRASH mode" }, - "auxiliaryHelpMode_PREARM": { - "message": "Podczas uzbrajania potrzebna jest aktywacja tego przełącznika przed faktycznym uzbrojeniem", - "description": "Help text to PREARM mode" + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Zastosuj obrót odchylenia względem kamery FPV zamontowanej pod zadanym kątem", + "description": "Help text to FPV ANGLE MIX mode" }, - "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { - "message": "Użyj kilku sygnałów dźwiękowych, aby wskazać liczbę znalezionych satelitów GPS", - "description": "Help text to GPS BEEP SATELLITE COUNT mode" + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Włącz „GPS Rescue”, aby statek powietrzny wrócił do miejsca, w którym był ostatnio uzbrojony", + "description": "Help text to GPS RESCUE mode" }, - "auxiliaryHelpMode_VTXPITMODE": { - "message": "Przełącz VTX w tryb pit mode (niska moc wyjściowa, jeśli jest obsługiwana)", - "description": "Help text to VTX PIT MODE mode" + "auxiliaryHelpMode_HEADADJ": { + "message": "Heading Adjust – Ustawia nowy początek odchylenia dla trybu HEADFREE", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "Ten tryb hybrydowy działa dokładnie tak samo jak tryb ANGLE z wyśrodkowanym drążkiem przechyłu i pochylenia (umożliwiając w ten sposób lot z automatycznym poziomowaniem), a następnie, gdy drążek jest odchylany coraz bardziej od pozycji środkowej zachowuje się coraz bardziej jak domyślny tryb RATE", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "System wspomagania startu w wyścigu", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Włącz/wyłącz wyświetlanie na ekranie", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Przekazuj przechylenie, odchylenie i wychylenie bezpośrednio z rx do serwomechanizmów w miksie samolotowym", + "description": "Help text to PASSTHRU mode" }, "auxiliaryHelpMode_PARALYZE": { "message": "Trwale unieruchamiaj rozbity statek powietrzny, dopóki nie zostanie ponownie włączony", "description": "Help text to PARALYZE mode" }, - "auxiliaryHelpMode_ACROTRAINER": { - "message": "Włącz ograniczenie kąta „acro trainer” w trybie acro", - "description": "Help text to ACRO TRAINER mode" - }, - "auxiliaryHelpMode_VTXCONTROLDISABLE": { - "message": "Wyłącz kontrolę ustawień VTX poprzez OSD", - "description": "Help text to VTX CONTROL DISABLE mode" + "auxiliaryHelpMode_PREARM": { + "message": "Podczas uzbrajania potrzebna jest aktywacja tego przełącznika przed faktycznym uzbrojeniem", + "description": "Help text to PREARM mode" }, - "auxiliaryHelpMode_LAUNCHCONTROL": { - "message": "System wspomagania startu w wyścigu", - "description": "Help text to LAUNCH CONTROL mode" + "auxiliaryHelpMode_READY": { + "message": "Dodano w BF4.4, możesz teraz wyświetlać „READY” w OSD za pomocą przełącznika. Jest to niszowe ulepszenie w sytuacjach wyścigowych, w których wszystkie pilotowe kanały wideo są wyświetlane na jednym centralnym ekranie. Pilot może przesunąć przełącznik, aby wskazać, że jest gotowy do lotu, a na jego OSD pojawi się słowo READY. Dyrektor wyścigu może wtedy stwierdzić, czy wszyscy piloci są gotowi, patrząc na centralny ekran. Po uzbrojeniu napis READY znika", + "description": "Help text to READY mode" }, "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { "message": "Wyłącz/włącz polecenia z drążka", "description": "Help text to STICK COMMANDS DISABLE mode" }, - "auxiliaryHelpMode_BEEPERMUTE": { - "message": "Wyłącz/włącz sygnał dźwiękowy, w tym ostrzeżenie, stan i tryb BEEPER", - "description": "Help text to BEEPERMUTE mode" + "auxiliaryHelpMode_TELEMETRY": { + "message": "Włącz telemetrię za pomocą przełącznika", + "description": "Help text to TELEMETRY mode" }, - "auxiliaryHelpMode_READY": { - "message": "Dodano w BF4.4, możesz teraz wyświetlać „READY” w OSD za pomocą przełącznika. Jest to niszowe ulepszenie w sytuacjach wyścigowych, w których wszystkie pilotowe kanały wideo są wyświetlane na jednym centralnym ekranie. Pilot może przesunąć przełącznik, aby wskazać, że jest gotowy do lotu, a na jego OSD pojawi się słowo READY. Dyrektor wyścigu może wtedy stwierdzić, czy wszyscy piloci są gotowi, patrząc na centralny ekran. Po uzbrojeniu napis READY znika", - "description": "Help text to READY mode" + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Wyłącz kontrolę ustawień VTX poprzez OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Przełącz VTX w tryb pit mode (niska moc wyjściowa, jeśli jest obsługiwana)", + "description": "Help text to VTX PIT MODE mode" }, "adjustmentsHelp": { "message": "Skonfiguruj przełączniki regulacji. Szczegółowe informacje można znaleźć w sekcji „Korekty podczas lotu”. Zmiany wprowadzone przez funkcje regulacji nie są zapisywane automatycznie." @@ -2619,9 +2579,6 @@ "gpsSpeed": { "message": "Prędkość:" }, - "gpsSats": { - "message": "Satelity:" - }, "gpsDistToHome": { "message": "Dystans do Domu:" }, diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 811267c4f5..00899a53d6 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -2194,57 +2194,21 @@ "auxiliaryModeLogicAND": { "message": "AND" }, - "auxiliaryHelpMode_ARM": { - "message": "Habilita os motores e a estabilização de voo", - "description": "Help text to ARM mode" - }, "auxiliaryHelpMode_ANGLE": { "message": "Neste modo auto-nivelado, os canais do roll e do pitch controlam o ângulo entre o eixo relevante e o vertical, alcançando vôo nivelado apenas deixando os sticks centrados", "description": "Help text to ANGLE mode" }, - "auxiliaryHelpMode_HORIZON": { - "message": "Este modo híbrido funciona exatamente como o modo ANGLE com sticks de roll e pitch centrados (assim permitindo voo autonivelado), depois comporta-se gradualmente cada vez mais como o modo RATE padrão, à medida que os sticks são afastados da posição central", - "description": "Help text to HORIZON mode" - }, - "auxiliaryHelpMode_MAG": { - "message": "Bloqueio à direção do Magnetómetro", - "description": "Help text to MAG mode" - }, - "auxiliaryHelpMode_HEADFREE": { - "message": "Neste modo, a \"cabeça\" do multicóptero está sempre a apontar na mesma direção de quando a funcionalidade foi ativada. Isto significa que quando o multicóptero gira em torno do eixo Z (yaw), os controlos sempre responderão de acordo com a mesma direção da \"cabeça\".
    Com este modo é mais fácil controlar o multicóptero, mesmo voando com a cabeça física na sua direção, já que os controlos respondem sempre igual. Este é um modo amigável para novos utilizadores de multicópteros e pode evitar perder o controlo quando não sabe a direção da cabeça", - "description": "Help text to HEADFREE mode" - }, - "auxiliaryHelpMode_PASSTHRU": { - "message": "Transmite roll, yaw, and pitch diretamente do rx para os servos em mistura de avião", - "description": "Help text to PASSTHRU mode" - }, - "auxiliaryHelpMode_FAILSAFE": { - "message": "Iniciar etapa 2 do failsafe manualmente", - "description": "Help text to FAILSAFE mode" - }, - "auxiliaryHelpMode_GPSRESCUE": { - "message": "Ativar 'GPS Rescue' para retornar a nave ao local onde foi armada pela última vez", - "description": "Help text to GPS RESCUE mode" - }, - "auxiliaryHelpMode_HEADADJ": { - "message": "Ajuste de Direção - Define uma nova origem yaw para o modo HEADFREE", - "description": "Help text to HEAD ADJ mode" + "auxiliaryHelpMode_AIRMODE": { + "message": "No modo / mistura padrão, quando o roll, pitch e yaw são calculados e saturam um motor, todos os motores serão reduzidos igualmente. Quando um motor vai abaixo do mínimo, ele é cortado. Se tiver o acelerador logo acima do mínimo e tentou puxar uma rolagem rápidafazer um roll rápido - uma vez que 2 motores não podem ir mais abaixo, essencialmente terá metada da potência (metade do ganho do PID). Se os seus inputs pedirem mais do que a diferença de 100% entre motores altos e baixos, os motores baixos serão cortados, quebrando a simetria do equilíbrio motor através da redução desigual o ganho", + "description": "Help text to AIRMODE mode" }, "auxiliaryHelpMode_BEEPER": { "message": "Ativar o beeper - útil para localizar uma aeronave caída", "description": "Help text to BEEPER mode" }, - "auxiliaryHelpMode_LEDLOW": { - "message": "Desligar saída LED_STRIP", - "description": "Help text to LEDLOW mode" - }, - "auxiliaryHelpMode_OSDDISABLE": { - "message": "Ativar/Desativar On-Screen-Display", - "description": "Help text to OSD mode" - }, - "auxiliaryHelpMode_TELEMETRY": { - "message": "Ativar telemetria via switch", - "description": "Help text to TELEMETRY mode" + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Desativar/ativar o beeper incluíndo aviso, estado e modo BEEPER", + "description": "Help text to BEEPERMUTE mode" }, "auxiliaryHelpMode_BLACKBOX": { "message": "Ativar registo BlackBox", @@ -2254,14 +2218,6 @@ "message": "Apagar log do BlackBox", "description": "Help text to BLACKBOX ERASE mode" }, - "auxiliaryHelpMode_AIRMODE": { - "message": "No modo / mistura padrão, quando o roll, pitch e yaw são calculados e saturam um motor, todos os motores serão reduzidos igualmente. Quando um motor vai abaixo do mínimo, ele é cortado. Se tiver o acelerador logo acima do mínimo e tentou puxar uma rolagem rápidafazer um roll rápido - uma vez que 2 motores não podem ir mais abaixo, essencialmente terá metada da potência (metade do ganho do PID). Se os seus inputs pedirem mais do que a diferença de 100% entre motores altos e baixos, os motores baixos serão cortados, quebrando a simetria do equilíbrio motor através da redução desigual o ganho", - "description": "Help text to AIRMODE mode" - }, - "auxiliaryHelpMode_FPVANGLEMIX": { - "message": "Aplicar rotação de yaw em relação a uma câmera FPV montada com um ângulo predefinido", - "description": "Help text to FPV ANGLE MIX mode" - }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "Use para alternar CAMERA CONTROL 1 personalizado. Verifique o manual do fornecedor", "description": "Help text to customized CAMERA CONTROL 1 mode" @@ -2274,65 +2230,69 @@ "message": "Use para alternar CAMERA CONTROL 3 personalizado. Verifique o manual do fornecedor", "description": "Help text to customized CAMERA CONTROL 3 mode" }, - "auxiliaryHelpMode_USER1": { - "message": "Use para alternar o USER1 personalizado. Verifique o manual do fornecedor", - "description": "Help text to customized USER1 mode" - }, - "auxiliaryHelpMode_USER2": { - "message": "Use para alternar o USER2 personalizado. Verifique o manual do fornecedor", - "description": "Help text to customized USER2 mode" - }, - "auxiliaryHelpMode_USER3": { - "message": "Use para alternar o USER3 personalizado. Verifique o manual do fornecedor", - "description": "Help text to customized USER3 mode" - }, - "auxiliaryHelpMode_USER4": { - "message": "Use para alternar o USER4 personalizado. Verifique o manual do fornecedor", - "description": "Help text to customized USER4 mode" + "auxiliaryHelpMode_FAILSAFE": { + "message": "Iniciar etapa 2 do failsafe manualmente", + "description": "Help text to FAILSAFE mode" }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Inverta os motores para sair de uma posição invertida após um acidente (Dshot necessário)", "description": "Help text to FLIP OVER AFTER CRASH mode" }, - "auxiliaryHelpMode_PREARM": { - "message": "Quando armar, espere que este switch seja ativado antes de efetivamente armar", - "description": "Help text to PREARM mode" + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Aplicar rotação de yaw em relação a uma câmera FPV montada com um ângulo predefinido", + "description": "Help text to FPV ANGLE MIX mode" }, - "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { - "message": "Use o número de beeps para indicar o número de satélites GPS encontrados", - "description": "Help text to GPS BEEP SATELLITE COUNT mode" + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Ativar 'GPS Rescue' para retornar a nave ao local onde foi armada pela última vez", + "description": "Help text to GPS RESCUE mode" }, - "auxiliaryHelpMode_VTXPITMODE": { - "message": "Mudar o VTX para modo pit (baixa emissão de energia, se suportado)", - "description": "Help text to VTX PIT MODE mode" + "auxiliaryHelpMode_HEADADJ": { + "message": "Ajuste de Direção - Define uma nova origem yaw para o modo HEADFREE", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "Este modo híbrido funciona exatamente como o modo ANGLE com sticks de roll e pitch centrados (assim permitindo voo autonivelado), depois comporta-se gradualmente cada vez mais como o modo RATE padrão, à medida que os sticks são afastados da posição central", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "Sistema de assistência de início de corrida", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Ativar/Desativar On-Screen-Display", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Transmite roll, yaw, and pitch diretamente do rx para os servos em mistura de avião", + "description": "Help text to PASSTHRU mode" }, "auxiliaryHelpMode_PARALYZE": { "message": "Desativar permanentemente uma aeronave caída até que seja reiniciada", "description": "Help text to PARALYZE mode" }, - "auxiliaryHelpMode_ACROTRAINER": { - "message": "Ativar limitação do ângulo 'acro trainer' em modo acro", - "description": "Help text to ACRO TRAINER mode" - }, - "auxiliaryHelpMode_VTXCONTROLDISABLE": { - "message": "Desativar o controlo das configurações do VTX através do OSD", - "description": "Help text to VTX CONTROL DISABLE mode" + "auxiliaryHelpMode_PREARM": { + "message": "Quando armar, espere que este switch seja ativado antes de efetivamente armar", + "description": "Help text to PREARM mode" }, - "auxiliaryHelpMode_LAUNCHCONTROL": { - "message": "Sistema de assistência de início de corrida", - "description": "Help text to LAUNCH CONTROL mode" + "auxiliaryHelpMode_READY": { + "message": "Adicionado no BF4.4, pode agora mostrar 'READY' no OSD usando um interruptor. Esta é uma melhoria de nicho para situações de corrida onde todos os feeds de vídeos dos pilotos estão num monitor central. O piloto pode ativar um switch para indicar que está pronto para voar, e a palavra READY aparece no seu OSD. O diretor de corrida pode então saber se todos os pilotos estão prontos ao olhar para a tela central. Quando arma, o texto READY desaparece", + "description": "Help text to READY mode" }, "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { "message": "Desativar/ativar comando do stick", "description": "Help text to STICK COMMANDS DISABLE mode" }, - "auxiliaryHelpMode_BEEPERMUTE": { - "message": "Desativar/ativar o beeper incluíndo aviso, estado e modo BEEPER", - "description": "Help text to BEEPERMUTE mode" + "auxiliaryHelpMode_TELEMETRY": { + "message": "Ativar telemetria via switch", + "description": "Help text to TELEMETRY mode" }, - "auxiliaryHelpMode_READY": { - "message": "Adicionado no BF4.4, pode agora mostrar 'READY' no OSD usando um interruptor. Esta é uma melhoria de nicho para situações de corrida onde todos os feeds de vídeos dos pilotos estão num monitor central. O piloto pode ativar um switch para indicar que está pronto para voar, e a palavra READY aparece no seu OSD. O diretor de corrida pode então saber se todos os pilotos estão prontos ao olhar para a tela central. Quando arma, o texto READY desaparece", - "description": "Help text to READY mode" + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Desativar o controlo das configurações do VTX através do OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Mudar o VTX para modo pit (baixa emissão de energia, se suportado)", + "description": "Help text to VTX PIT MODE mode" }, "adjustmentsHelp": { "message": "Configure os switches de ajuste. Veja a secção 'in-flight adjustments' do manual para detalhes. As alterações que as funções de ajuste fazem não são gravadas automaticamente." @@ -2625,6 +2585,10 @@ "gpsAltitude": { "message": "Altitude:" }, + "gpsLatLon": { + "message": "Latitude /Longitude atual:", + "description": "Show GPS position - Latitude / Longitude" + }, "gpsHeading": { "message": "Direção:" }, @@ -2632,7 +2596,8 @@ "message": "Velocidade:" }, "gpsSats": { - "message": "Satélites:" + "message": "Número de Satélites:", + "description": "Show number of fixed GPS Satellites" }, "gpsDistToHome": { "message": "Distância para Casa:" @@ -5186,6 +5151,27 @@ "osdDescElementSysFanSpeed": { "message": "Velocidade da ventoinha dos óculos renderizada pelos óculos" }, + "osdTextElementLapTimeCurrent": { + "message": "Tempo GPS da volta atual", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeCurrent": { + "message": "Tempo GPS da volta atual" + }, + "osdTextElementLapTimePrevious": { + "message": "Tempo GPS da volta anterior", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimePrevious": { + "message": "Tempo GPS da volta anterior" + }, + "osdTextElementLapTimeBest3": { + "message": "Tempo GPS da melhor de 3 voltas", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeBest": { + "message": "Melhor tempo de volta GPS" + }, "osdTextElementCraftName": { "message": "Nome do aparelho", "description": "One of the elements of the OSD" diff --git a/locales/pt_BR/messages.json b/locales/pt_BR/messages.json index 7fb1b8f8cf..caf67c40a9 100644 --- a/locales/pt_BR/messages.json +++ b/locales/pt_BR/messages.json @@ -86,6 +86,9 @@ "expertMode": { "message": "Modo avançado" }, + "expertModeDescription": { + "message": "Ativar opções do Modo Avançado" + }, "warningSettings": { "message": "Exibir Avisos" }, @@ -103,6 +106,10 @@ "message": "Mostrar todos os dispositivos de comunicação serial (para fabricantes ou desenvolvimento)", "description": "Do not filter serial devices using VID/PID values (for manufacturers or development)" }, + "useMdnsBrowser": { + "message": "Usar a descoberta de dispositivo mDNS no navegador (experimental)", + "description": "Enable mDNS Browser Device discovery in PortHandler (experimental)" + }, "showVirtualMode": { "message": "Ativar modo de conexão virtual", "description": "Text for the option to enable or disable the virtual FC" @@ -460,12 +467,18 @@ "buildServerSupportRequestSubmission": { "message": "
    *** Dados de suporte enviados ***
    Id: $1


    # copie o ID e envie para a equipe do betaflight." }, + "buildKey": { + "message": "Chave de build: $1" + }, "supportWarningDialogTitle": { "message": "Confirmar envio de dados" }, "supportWarningDialogText": { "message": "Por favor, confirme a submissão dos dados à equipe do Betaflight

    Este processo executará alguns comandos e enviará a saída para o servidor de compilação.

    Você receberá um ID exclusivo para a seus de dados.

    Por favor, envie este ID à equipe do Betaflight através do Discord ou como uma issue no Github." }, + "supportWarningDialogInputPlaceHolder": { + "message": "Descreva o problema" + }, "releaseCheckLoaded": { "message": "Informações da versão do $1 carregadas do GitHub." }, @@ -593,6 +606,9 @@ "defaultContributingHead": { "message": "Contribuir" }, + "defaultContributingText": { + "message": "Se deseja ajudar o Betaflight a ser ainda melhor, você pode ajudar de diversas formas:
    • Use seu conhecimento sobre o Betaflight para criar ou atualizar o conteúdo do nosso Wiki, ou respondendo as dúvidas de outros usuários nos fóruns online.
    • Contribua com o código do Betaflight Firmware e Configurator - Novas funções, correções e melhorias.
    • Testando novas funções e correções e reportando de volta aos desenvolvedores.
    • Ajudando a resolver os problemas que outros usuários relatam em nosso Issue Tracker e participando em discussões de novas funcionalidades.
    • Traduzindo o Betaflight Configurator para um novo idioma ou ajudando a manter as traduções atuais.
    " + }, "defaultFacebookText": { "message": "Nós também temos um grupo no Facebook.
    Participe dele para ter um lugar para falar sobre o Betaflight, fazer perguntas sobre configurações ou encontrar outros pilotos." }, @@ -633,6 +649,9 @@ "defaultDocumentation": { "message": "A documentação do Betaflight está disponível nas notas de lançamento e no wiki.

    " }, + "defaultDocumentation1": { + "message": "O wiki do Betaflight é um grande recurso para obter informações, ele pode ser encontrado aqui." + }, "defaultDocumentation2": { "message": "As notas de lançamento para o firmware podem ser lidas na página de versões do Github, aqui." }, @@ -651,12 +670,18 @@ "defaultSupport1": { "message": "Tópico no RC Groups" }, + "defaultSupport2": { + "message": "Betaflight Wiki" + }, "defaultSupport3": { "message": "Vídeos do Betaflight 4.3 por Joshua Bardwell" }, "defaultSupport4": { "message": "GitHub" }, + "defaultSupport5": { + "message": "Desenvolvedores do Betaflight no Discord" + }, "initialSetupButtonCalibrateAccel": { "message": "Calibrar Acelerômetro" }, @@ -708,6 +733,10 @@ "initialSetupButtonResetZaxisValue": { "message": "Redefinir eixo Z, offset: $1 graus" }, + "initialSetupHeading": { + "message": "Direção:", + "description": "Heading shown on Setup tab" + }, "initialSetupPitch": { "message": "Pitch:" }, @@ -750,6 +779,13 @@ "initialSetupMagHead": { "message": "Magnetômetro" }, + "initialSetupInfoHead": { + "message": "Informações do sistema" + }, + "initialSetupInfoHeadHelp": { + "message": "Mostra sinalizadores FC para desarmar, informações da bateria, nível RSSI e hardware dos sensores", + "description": "Message that pops up to describe the System info section" + }, "initialSetupBattery": { "message": "Voltagem da bateria:" }, @@ -768,9 +804,15 @@ "initialSetupBatteryAValue": { "message": "$1 A" }, + "initialSetupCpuTemp": { + "message": "Temperatura da CPU:" + }, "initialSetupRSSI": { "message": "RSSI:" }, + "initialSetupSensorHardware": { + "message": "Sensores:" + }, "initialSetupRSSIValue": { "message": "$1 %" }, @@ -807,6 +849,14 @@ "message": "A prevenção contra decolagem acidental foi acionada", "description": "Message that pops up to describe the RUNAWAY_TAKEOFF arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipCRASH_DETECTED": { + "message": "Detecção de colisão está ativa", + "description": "Message that pops up to describe the CRASH_DETECTED arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipCALIBRATING": { + "message": "Calibrando a aeronave...", + "description": "Message that pops up to describe the CALIBRATING arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipTHROTTLE": { "message": "O Valor do canal do Acelerador está muito alto", "description": "Message that pops up to describe the THROTTLE arming disable flag" @@ -827,6 +877,10 @@ "message": "A carga da CPU está acima do limite permitido para um voo seguro", "description": "Message that pops up to describe the LOAD arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipACC_CALIBRATION": { + "message": "A calibração do acelerômetro ainda está em andamento", + "description": "Message that pops up to describe the ACC_CALIBRATION arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipCLI": { "message": "Linha de comandos (CLI) está ativa", "description": "Message that pops up to describe the CLI arming disable flag" @@ -863,6 +917,22 @@ "message": "Filtragem baseada em RPM está habilitada, mas um ou mais ESCs não estão fornecendo telemetria DSHOT. Verifique se os ESCs são capazes e se o firmware necessário está instalado para suportar telemetria DSHOT bidirecional.", "description": "Message that pops up to describe the RPMFILTER arming disable flag" }, + "initialSetupArmingDisableFlagsTooltipREBOOT_REQUIRED": { + "message": "Uma das alterações de configuração requer uma reinicialização", + "description": "Message that pops up to describe the REBOOT_REQD arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipDSHOT_BITBANG": { + "message": "Bitbanged DSHOT não está funcionando corretamente e os motores não podem ser controlados. Provavelmente causado por um conflito de temporizador com outros recursos ativados no controlador de voo.", + "description": "Message that pops up to describe the DSHOT_BBANG arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipNO_ACC_CALIBRATION": { + "message": "O acelerômetro não foi calibrado e recursos que dependem dele estão ativados. Calibre o acelerômetro.", + "description": "Message that pops up to describe the NO_ACC_CAL arming disable flag" + }, + "initialSetupArmingDisableFlagsTooltipMOTOR_PROTOCOL": { + "message": "Nenhum protocolo de saída do motor foi selecionado", + "description": "Message that pops up to describe the MOTOR_PROTO arming disable flag" + }, "initialSetupArmingDisableFlagsTooltipARM_SWITCH": { "message": "O Switch de armar não está em uma posição segura", "description": "Message that pops up to describe the ARM_SWITCH arming disable flag" @@ -870,9 +940,64 @@ "initialSetupGPSHead": { "message": "GPS" }, + "initialSetupGPSHeadHelp": { + "message": "Mostra informações de GPS, se ativado adequadamente na aba Portas, Configurações e GPS", + "description": "Message that pops up to describe the GPS section" + }, + "initialSetupSonarHead": { + "message": "Sonar" + }, + "initialSetupSonarHeadHelp": { + "message": "Mostra informações do Sonar, se ativado adequadamente na aba Configurações", + "description": "Message that pops up to describe the Sonar section" + }, + "initialSetupAltitudeSonar": { + "message": "Altitude" + }, "initialSetupInstrumentsHead": { "message": "Instrumentos" }, + "initialSetupInstrumentsHeadHelp": { + "message": "Mostra Direção, Pitch e Roll nos instrumentos", + "description": "Message that pops up to describe the Instruments section" + }, + "initialSetupInfoAPIversion": { + "message": "MSP API:" + }, + "initialSetupInfoBuild": { + "message": "Informação de firmware" + }, + "initialSetupInfoBuildHelp": { + "message": "Mostra informações sobre a compilação do firmware. A Configuração de compilação e o Log de compilação apontam as informações encontradas na nuvem através da chave de compilação", + "description": "Message that pops up to describe the Build / Firmware section" + }, + "initialSetupInfoBuildDate": { + "message": "Data de compilação:" + }, + "initialSetupInfoBuildInfo": { + "message": "Informações da compilação:" + }, + "initialSetupInfoBuildInfoKey": { + "message": "Chave de compilação" + }, + "initialSetupInfoBuildInfoConfig": { + "message": "Configuração" + }, + "initialSetupInfoBuildInfoLog": { + "message": "Log" + }, + "initialSetupInfoBuildOptions": { + "message": "Opções de Compilação:" + }, + "initialSetupInfoBuildOptionsList": { + "message": "Defines usadas" + }, + "initialSetupInfoBuildOptionsEmpty": { + "message": "Compilação Local - nenhum define utilizado" + }, + "initialSetupNotOnline": { + "message": "Servidor indisponível" + }, "initialSetupButtonSave": { "message": "Salvar" }, @@ -936,12 +1061,21 @@ "featureSONAR": { "message": "Sonar" }, + "featureSONARTip": { + "message": "Ativar o sonar para medir a distância do solo em centimetros" + }, "featureTELEMETRY": { "message": "Saída de telemetria" }, + "featureTELEMETRYTip": { + "message": "Ativar saída de telemetria para enviar ao transmissor" + }, "feature3D": { "message": "Modo 3D (para uso com ESCs reversíveis)" }, + "feature3DTip": { + "message": "Ativar o modo 3D para uso com ESCs reversíveis, configure na aba Motores" + }, "featureRX_PARALLEL_PWM": { "message": "PWM (um fio por canal)" }, @@ -954,6 +1088,9 @@ "featureLED_STRIP": { "message": "Suporte de fita de LEDs RGB multicor" }, + "featureLED_STRIPTip": { + "message": "Habilitar o suporte a faixas de LED RGB multicolorida, configure na aba Faixa de LED" + }, "featureDISPLAY": { "message": "Tela OLED" }, @@ -963,6 +1100,9 @@ "featureOSD": { "message": "Informações na Tela (OSD)" }, + "featureOSDTip": { + "message": "Habilitar OSD, configurar na aba OSD" + }, "featureCHANNEL_FORWARDING": { "message": "Enviar canais AUX para saídas do servo" }, @@ -1275,6 +1415,13 @@ "configurationLoopTimeHelp": { "message": "Nota: Tenha a certeza de que o controlador é capaz de operar na velocidade selecionada! Verifique a estabilidade do CPU e o tempo de ciclo. Alterar este valor pode requerer uma nova afinação do PID. DICA: Desative o acelerômetro e outros sensores para ganhar mais performance." }, + "configurationGPS": { + "message": "Configuração do GPS" + }, + "configurationGPSHelp": { + "message": "Configure o protocolo para o dispositivo GPS (lembre-se também de o configurar na aba Porta), use o Baud Rate automático (ou configure a velocidade na aba Porta) entre outras configurações", + "description": "Help text GPS configuration" + }, "configurationGPSProtocol": { "message": "Protocolo" }, @@ -1910,6 +2057,9 @@ "pidTuningSliderModeHelp": { "message": "Modo do Slider de Ajuste dos PID

    O modos podem ser:

    • DESLIGADO - sem sliders, insira os valores manualmente
    • RP - os sliders ajustam somente o Roll e o Pitch, digite os valores do Yaw manualmente
    • RPY - os sliders ajustam todos os valores do PID

    Aviso:Alterar do modo RP para RPY irá substituir as configurações do Yaw com os padrões do firmware." }, + "receiverHelp": { + "message": "• Verifique sempre se o Failsafe está funcionando corretamente! As definições estão na aba Failsafe, que requer o modo avançado.
    Use o firmware do rádio mais recente!
    Desative o filtro ADC no hardware do rádio se estiver usando OpenTx ou EdgeTx.
    Configuração básica: Configure as definições do 'receptor' corretamente. Escolha o 'Mapa de canais' correto para o seu rádio. Verifique que o Roll, Pitch e as outras barras do gráfico se movem corretamente. Ajuste os pontos extremos dos canais no rádio de ~1000 até ~2000, com o ponto médio em 1500. Para mais informação, leia a documentação." + }, "receiverThrottleMid": { "message": "MEIO do Acelerador" }, @@ -1988,6 +2138,13 @@ "receiverButtonBindMessage": { "message": "Solicitação de vinculo enviado ao controlador de voo." }, + "receiverButtonBindingPhrase": { + "message": "Chave secreta" + }, + "receiverButtonSticks": { + "message": "Emulador de Rádio", + "description": "Button that opens a window with a radio emulator on the receiver tab. Actually only enabled for MSP protocol" + }, "receiverDataRefreshed": { "message": "Dados de afinação do RC atualizados" }, @@ -2037,6 +2194,106 @@ "auxiliaryModeLogicAND": { "message": "AND" }, + "auxiliaryHelpMode_ANGLE": { + "message": "Neste modo de nivelamento automático, os canais de roll e pitch controlam o ângulo entre o eixo relevante e o vertical, alcançando um vôo nivelado ao deixar os sticks centralizados", + "description": "Help text to ANGLE mode" + }, + "auxiliaryHelpMode_AIRMODE": { + "message": "No padrão do mixer / modo, quando o roll, pitch e yaw são calculados e saturam um motor, todos os motores serão reduzidos igualmente. Quando um motor fica mais lentro do que o mínimo, ele é cortado. Digamos que você esteja com o acelerador um pouco acima do mínimo e então tenta fazer uma rolagem rápida - já que dois dos motores não podem ficar mais lentos, você essencialmente obtém metade da potência (metade do seu ganho de PID). Se os movimentos precisam de mais de 100% de diferença entre os motores mais rapidos e os mais lentos, os motores lentos serão cortados, quebrando a simetria e equilíbrio do motor, reduzindo desigualmente o ganho", + "description": "Help text to AIRMODE mode" + }, + "auxiliaryHelpMode_BEEPER": { + "message": "Ativar o beeper - útil para localizar uma aeronave caída", + "description": "Help text to BEEPER mode" + }, + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Ativar/desativar beep, incluindo avisos, estado e modo BEEPER", + "description": "Help text to BEEPERMUTE mode" + }, + "auxiliaryHelpMode_BLACKBOX": { + "message": "Ativar registro BlackBox", + "description": "Help text to BLACKBOX mode" + }, + "auxiliaryHelpMode_BLACKBOXERASE": { + "message": "Apagar log do BlackBox", + "description": "Help text to BLACKBOX ERASE mode" + }, + "auxiliaryHelpMode_CAMERACONTROL1": { + "message": "Use para alternar o CONTROLE DE CAMERA 1 personalizado. Verifique o manual do fornecedor", + "description": "Help text to customized CAMERA CONTROL 1 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL2": { + "message": "Use para alternar o CONTROLE DE CAMERA 2 personalizado. Verifique o manual do fornecedor", + "description": "Help text to customized CAMERA CONTROL 2 mode" + }, + "auxiliaryHelpMode_CAMERACONTROL3": { + "message": "Use para alternar o CONTROLE DE CAMERA 3 personalizado. Verifique o manual do fornecedor", + "description": "Help text to customized CAMERA CONTROL 3 mode" + }, + "auxiliaryHelpMode_FAILSAFE": { + "message": "Entrar na etapa 2 do failsafe manualmente", + "description": "Help text to FAILSAFE mode" + }, + "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { + "message": "Inverter os motores para desvirar uma aeronave de ponta cabeça após um acidente (é necessário o DShot)", + "description": "Help text to FLIP OVER AFTER CRASH mode" + }, + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Aplique rotação de yaw em relação a uma câmera FPV montada em um ângulo específico", + "description": "Help text to FPV ANGLE MIX mode" + }, + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Habilite 'Resgate com GPS' para retornar a aeronave ao local onde foi armada pela última vez", + "description": "Help text to GPS RESCUE mode" + }, + "auxiliaryHelpMode_HEADADJ": { + "message": "Ajuste de Direção - Define uma nova origem yaw para o modo HEADFREE", + "description": "Help text to HEAD ADJ mode" + }, + "auxiliaryHelpMode_HORIZON": { + "message": "Este modo híbrido funciona exatamente como o modo ANGLE quando os sticks de roll e pitch estão centralizados (permitindo assim o voo nivelado automaticamente), e gradualmente se comportam cada vez mais como o modo RATE conforme os sticks são movidos para longe da posição central", + "description": "Help text to HORIZON mode" + }, + "auxiliaryHelpMode_LAUNCHCONTROL": { + "message": "Sistema de assistência de início de corrida", + "description": "Help text to LAUNCH CONTROL mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Ativar/Desativar OSD", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Passe o roll, yaw e pitch diretamente do receptor para os servos motores quando o mix está em modo avião", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Desativar permanentemente uma aeronave caída até que seja desligada e ligada novamente", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "Durante a armação, aguarde a esta opção estar ativa antes de armar pra valer", + "description": "Help text to PREARM mode" + }, + "auxiliaryHelpMode_READY": { + "message": "Adicionado no BF4.4, agora você pode exibir 'READY' no OSD usando um switch. Esta é uma melhoria de específica para situações de corrida em que todos as transmissões de vídeo dos pilotos estão em uma tela central. O piloto pode apertar um botão para indicar que está pronto para voar e a palavra 'READY' aparece em seu OSD. O diretor de corrida pode então observar se todos os pilotos estão prontos olhando para a tela central. Ao armar, o texto desaparece", + "description": "Help text to READY mode" + }, + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "Ativar/Desativar comandos do stick", + "description": "Help text to STICK COMMANDS DISABLE mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Ativar telemetria via switch", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Desative o controle das configurações do VTX por meio do OSD", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Mudar o VTX para modo de pit (força de transmissão minima, se suportado)", + "description": "Help text to VTX PIT MODE mode" + }, "adjustmentsHelp": { "message": "Configure os switches de ajuste. Veja a seção 'in-flight adjustments' do manual para detalhes. As alterações que as funções de ajuste fazem não são salvas automaticamente." }, @@ -2295,9 +2552,17 @@ "gpsHead": { "message": "GPS" }, + "gpsHeadHelp": { + "message": "Mostra várias informações relacionadas ao GPS. A direção somente é mostrado quando o magnetômetro está em uso", + "description": "Help text for gpsHead" + }, "gpsMapHead": { "message": "Localização GPS atual" }, + "gpsMapHeadHelp": { + "message": "Mostra a localização do GPS no mapa. Use a roda do mouse para aumentar ou diminuir o zoom.
    O ícone de localização mostra a direção norte quando o magnetômetro está em uso", + "description": "Help text for gpsHeadMap" + }, "gpsMapMessage1": { "message": "Verifique sua conexão com a internet" }, @@ -2307,21 +2572,35 @@ "gps3dFix": { "message": "Posição 3D:" }, + "gpsFixTrue": { + "message": "Ok" + }, + "gpsFixFalse": { + "message": "Não" + }, + "gpsPositionUnit": { + "message": "graus", + "description": "Unit for GPS position." + }, "gpsAltitude": { "message": "Altitude:" }, + "gpsHeading": { + "message": "Direção:" + }, "gpsSpeed": { "message": "Velocidade:" }, - "gpsSats": { - "message": "Status:" - }, "gpsDistToHome": { "message": "Distância até a base:" }, "gpsSignalStrHead": { "message": "Força do sinal GPS" }, + "gpsSignalStrHeadHelp": { + "message": "Mostre a intensidade, qualidade e status do sinal para cada fonte de GPS descoberta", + "description": "Help text for gpsSignalStrHead" + }, "gpsSignalStr": { "message": "Força do Sinal" }, @@ -2509,6 +2788,9 @@ "motorsRemapDialogRiskNotice": { "message": "Aviso de segurança
    Remova todas as hélices para evitar ferimentos!
    Os motores irão girar!" }, + "motorsRemapDialogExplanations": { + "message": "Aviso
    Os motores irão girar um a um e você poderá selecionar qual o motor que está girando. A bateria deve estar conectada, o protocolo ESC correto deve estar selecionado. Este utilitário só pode reordenar os motores atualmente ativos. Um mapeamento mais complexo requer configurações pela Linha de Comandos (CLI). Consulte esta página Wiki." + }, "motorsRemapDialogSave": { "message": "Salvar" }, @@ -2578,6 +2860,9 @@ "escDshotDirectionDialog-WrongProtocolText": { "message": "Isto somente funciona com ESCs com DSHOT.
    Verifique que seu ESC (controlador eletrônico de velocidade) têm suporte ao protocolo DSHOT e então selecione esse protocolo na aba $t(tabMotorTesting.message)." }, + "escDshotDirectionDialog-WrongMixerText": { + "message": "Número de motores é 0.
    Verifique o Mixer atual na aba $t(tabMotorTesting.message) ou configure um personalizado através do CLI. Consulte esta página Wiki." + }, "escDshotDirectionDialog-WrongFirmwareText": { "message": "Atualize o firmware.
    Certifique-se de que você está utilizando o firmware Betaflight 4.3 ou mais recente." }, @@ -2692,6 +2977,9 @@ "loggingLogSize": { "message": "Tamanho do Log:" }, + "loggingLogName": { + "message": "Nome do Log:" + }, "loggingButtonLogFile": { "message": "Selecionar arquivo de Log" }, @@ -3034,6 +3322,9 @@ "firmwareFlasherRecoveryHead": { "message": "Recuperação / Comunicação perdida" }, + "firmwareFlasherRecoveryText": { + "message": "Se você perdeu a comunicação com sua placa, siga estas instruções para restaurar a comunicação:
    • Desligue a placa
    • Ative a opção 'Sem sequencia de reinicialização' e 'Formatar chip'.
    • Conecte os pinos BOOT ou segure o botão BOOT.
    • Ligue a placa (O LED de atividade NÃO irá piscar se realizado corretamente).
    • Instale todos os drivers STM32 e Zadig se necessário (veja a sessão USB Flashing do manual do Betaflight).
    • Feche o Configurador, reinicie o Configurador.
    • Solte o botão BOOT se seu FC tem um.
    • Atualize o Firmware correto (usando o Baud rate manual se especificado no manual do seu FC).
    • Desligue a placa.
    • Desconecte os pinos do BOOT.
    • Ligue a placa (O LED de atividade deve piscar).
    • Conecte normalmente.
    " + }, "firmwareFlasherButtonLeave": { "message": "Sair do atualizador de Firmware" }, @@ -3125,6 +3416,22 @@ "firmwareFlasherPreviousDevice": { "message": "Detectado: $1 - o dispositivo anterior ainda está sendo atualizado, reconecte para tentar novamente" }, + "firmwareFlasherRemindBackupTitle": { + "message": "Apagar configurações", + "description": "Warning message title before actual flashing takes place" + }, + "firmwareFlasherRemindBackup": { + "message": "Instalar um novo firmware irá apagar todas as configurações. Recomendamos que você salve um backup antes de continuar.", + "description": "Warning message before actual flashing takes place" + }, + "firmwareFlasherBackup": { + "message": "Criar Backup", + "description": "Create a backup before actual flashing takes place" + }, + "firmwareFlasherBackupIgnore": { + "message": "Ignorar", + "description": "Ignore creating a backup before actual flashing takes place" + }, "ledStripHelp": { "message": "O controlador de voo pode controlar as cores e efeitos individuais de LEDs em uma faixa.
    Configure LEDs na grade, configure a ordem das soldas e então conecte os LEDs na sua aeronave de acordo com as posições na grade. LEDs configurados em posições sem número não serão salvos.
    Dê um duplo clique em uma cor para alterar os valores HSV." }, @@ -3310,9 +3617,17 @@ "message": "LEDs configurados em posições sem número não serão salvos.", "description": "Message in the wiring modes in Led Strip" }, + "ledStripLarsonOverlay": { + "message": "Scanner Larson", + "description": "Larson effect switch label on LED Strip tab" + }, "ledStripBlinkAlwaysOverlay": { "message": "Sempre Piscar" }, + "ledStripRainbowOverlay": { + "message": "Arco-íris", + "description": "Rainbow effect switch label on LED Strip tab" + }, "ledStripOverlayTitle": { "message": "Sobreposição" }, @@ -3920,6 +4235,9 @@ "pidTuningVbatSagCompensation": { "message": "Compensar Bateria Fraca" }, + "pidTuningVbatSagCompensationHelp": { + "message": "Proporciona uma aceleração e desempenho do PID consistente enquanto estiver com a voltagem da bateria acima do valor minimo, aumentando o potência de saída do motor de conforme a voltagem da bateria diminui.

    O valor de compensação pode variar entre 0% a 100% - É recomendada a compensação total de 100%.

    Visite esta pagina do wiki para mais informações." + }, "pidTuningVbatSagValue": { "message": "%" }, @@ -3998,6 +4316,9 @@ "pidTuningIdleMinRpm": { "message": "Valor Ocioso Dinâmico [* 100 RPM]" }, + "pidTuningIdleMinRpmHelp": { + "message": "O Modo Ocioso Dinâmico melhora o controle em rpm baixos e reduz o risco de dessincronização dos motores.

    Melhora a autoridade do PID, estabilidade com acelerador em zero, tempo invertido no ar, e a frenagem do motor.

    Recomendamos que min rpm do modo Ocioso Dinâmico seja definido entre 3000 a 3500 rpm. Na versão 4.2, defina o valor Ocioso do DShot baixo, por exemplo, 1%. Não há necessidade de ajustar o valor do DShot Ocioso na versão 4.3.

    Visite esta pagina do wiki para mais informações." + }, "pidTuningIdleMinRpmDisabled": { "message": "O Modo Ocioso Dinâmico está DESLIGADO porque a Telemetria Dshot está DESLIGADA" }, @@ -4010,6 +4331,9 @@ "pidTuningIntegratedYaw": { "message": "Yaw Integrado" }, + "pidTuningIntegratedYawCaution": { + "message": "CUIDADO: Ao habilitar esta função, você deve ajustar o PID do YAW de acordo. Mais informações aqui" + }, "pidTuningIntegratedYawHelp": { "message": "Yaw Integrado integra os valores dos termos P, I e D do yaw, permitindo que sejam configurados da mesma maneira de como se configura o PID do pitch e roll.

    É necessário muito pouco I, porque o P integrado atua como I, e o D integrado atua como P.

    NOTA: O Yaw Integrado requer o uso de Controle Absoluto, uma vez que nenhum I é necessário com Yaw Integrado." }, @@ -4492,6 +4816,10 @@ "message": "Fonte {{fontName}}", "description": "Content of the selector for the OSD Font in the preview" }, + "osdSetupPreviewCheckZoom": { + "message": "Zoom", + "description": "Check to select a bigger display of the OSD preview in small screens" + }, "osdSetupVideoFormatTitle": { "message": "Formato do Video" }, @@ -4815,6 +5143,27 @@ "osdDescElementSysFanSpeed": { "message": "Velocidade do ventilador renderizada pelos óculos" }, + "osdTextElementLapTimeCurrent": { + "message": "Tempo GPS da volta atual", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeCurrent": { + "message": "Tempo GPS da volta atual" + }, + "osdTextElementLapTimePrevious": { + "message": "Tempo GPS da volta anterior", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimePrevious": { + "message": "Tempo GPS da volta anterior" + }, + "osdTextElementLapTimeBest3": { + "message": "Tempo GPS da melhor das 3 voltas", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeBest": { + "message": "Melhor tempo de volta GPS" + }, "osdTextElementCraftName": { "message": "Nome da aeronave", "description": "One of the elements of the OSD" @@ -5132,6 +5481,9 @@ "message": "Seta para virar após queda", "description": "One of the elements of the OSD" }, + "osdDescElementFlipArrow": { + "message": "Seta que indica quais motores estão afastados do chão no modo 'virar após queda' (O acelerômetro deve estar ativado)" + }, "osdTextElementLinkQuality": { "message": "Qualidade da conexão", "description": "One of the elements of the OSD" @@ -5468,6 +5820,20 @@ "osdDescStatMinRSNR": { "message": "Valor mínimo de RSNR" }, + "osdTextStatBest3ConsecLaps": { + "message": "Melhor de 3 voltas consecutivas", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBest3ConsecLaps": { + "message": "Melhor de 3 voltas consecutivas" + }, + "osdTextStatBestLap": { + "message": "Melhor volta", + "description": "One of the statistics that can be shown at the end of the flight in the OSD" + }, + "osdDescStatBestLap": { + "message": "Melhor volta" + }, "osdTextStatUnknown": { "message": "$1 desconhecido", "description": "One of the statistics that can be shown at the end of the flight in the OSD" @@ -5704,6 +6070,10 @@ "osdButtonSaved": { "message": "Salvo" }, + "vtxHelp": { + "message": "Aqui é possível configurar os valores para o seu transmissor de vídeo (VTX). É possível visualizar e alterar os valores de transmissão, incluindo as tabelas do VTX, se o controlador e o VTX tiverem suporte.
    Para configurar seu VTX, siga os seguintes passos:
    1. Vá até esta página
    2. Encontre o arquivo de configuração apropriado para o seu país e modelo de VTX e faça o download.
    3. Clique no botão '$t(vtxButtonLoadFile.message)' abaixo, selecione o arquivo de configuração do VTX e carregue
    4. Verifique que as configurações estão corretas
    5. Clique no botão '$t(vtxButtonSave.message)' para salvar as configurações do VTX em sua controladora de voo (FC).
    6. Opcional: Clique em '$t(vtxButtonSaveLua.message)' para salvar as configurações em um arquivo lua que você pode utilizar com os scripts lua do betaflight (Veja mais informações aqui.)", + "description": "Introduction message in the VTX tab" + }, "vtxMessageNotSupported": { "message": "Atenção: O VTX não está configurado ou não é compatível. Não é possível modificar os valores por aqui. Isto somente é possível se o controlador de voo está conectado ao VTX utilizando um protocolo como Tramp ou SmartAudio e está corretamente configurado na aba $t(tabPorts.message).", "description": "Message to show when the VTX is not supported in the VTX tab" @@ -5812,6 +6182,14 @@ "message": "Se suportado, selecione a frequência do VTX", "description": "Help text for the frequency field of the VTX tab" }, + "vtxReadyTrue": { + "message": "Ok", + "description": "vtx device are ready" + }, + "vtxReadyFalse": { + "message": "Não", + "description": "vtx device are not ready" + }, "vtxDeviceReady": { "message": "Dispositivo pronto", "description": "Text of one of the fields of the VTX tab" @@ -6145,6 +6523,9 @@ "onboardLoggingRateOfLogging": { "message": "Frequência de log do Blackbox" }, + "onboardLoggingDebugFields": { + "message": "Dados incluídos" + }, "onboardLoggingDebugMode": { "message": "Modo de debug do Blackbox" }, @@ -6359,6 +6740,10 @@ "message": "Palavras-chave:", "description": "Hint text in the presets detailed dialog" }, + "presetsSourceRepository": { + "message": "Origem:", + "description": "Text prefixing user defined name of the preset repository containing a preset" + }, "presetsVersions": { "message": "Firmware:", "description": "Hint text in the presets detailed dialog" @@ -6507,6 +6892,10 @@ "message": "Tornar Ativo", "description": "Presets tab, sources dialog, button to make selected source active" }, + "presetsSourcesDialogMakeSourceDisable": { + "message": "Desativar", + "description": "Presets tab, sources dialog, button to make selected source disabled" + }, "presetsSourcesDialogDeleteSource": { "message": "Remover", "description": "Presets tab, sources dialog, button to delete selected source" @@ -6515,6 +6904,10 @@ "message": "AVISO! Uma fonte de predefinições de terceiros está selecionada.", "description": "Warning message that shows up when a third party preset source is selected" }, + "presetsFailedToLoadRepositories": { + "message": "AVISO! Falha ao carregar os seguintes repositórios: {{repos}}", + "description": "Warning message that shows up when we fail to load some repositories" + }, "presetsWarningBackup": { "message": "Por favor, certifique-se de fazer um backup de sua configuração atual (botão '$t(presetsBackupSave.message)' ou via CLI se o botão estiver desabilitado) antes de escolher e aplicar predefinições. Caso contrário, não há como voltar à configuração anterior após a aplicação das predefinições.", "description": "Warning message that shows up at the top of the presets tab" @@ -6591,5 +6984,9 @@ }, "coreBuildModeDescription": { "message": "Esta opção cria um firmware que contém os drivers de hardware e alguns recursos limitados. Esta opção serve para ajudar na detecção de hardware de um controlador de voo e é disponível apenas por conveniência. Usando esta opção, apenas recursos de hardware estarão disponíveis." + }, + "showDevToolsOnStartup": { + "message": "Abrir automaticamente o DevTools no modo de desenvolvimento", + "description": "Text for the option to enable automatic opening of DevTools in debug mode" } } diff --git a/locales/ru/messages.json b/locales/ru/messages.json index 4ffb3898f1..8b2d00b90c 100644 --- a/locales/ru/messages.json +++ b/locales/ru/messages.json @@ -2039,9 +2039,6 @@ "gpsSpeed": { "message": "Скорость:" }, - "gpsSats": { - "message": "Спутники:" - }, "gpsDistToHome": { "message": "Расст. до дома:" }, diff --git a/locales/uk/messages.json b/locales/uk/messages.json index 422c5cf95e..8b29346b3b 100644 --- a/locales/uk/messages.json +++ b/locales/uk/messages.json @@ -2194,57 +2194,45 @@ "auxiliaryModeLogicAND": { "message": "ТА" }, + "auxiliaryHelpMode_3D": { + "message": "Включає реверсивний напрямок обертання моторів, щоб забезпечити негативну тягу та дозволити перевернутий політ. Тяга стає від -100 до +100 замість 0 до 100", + "description": "Help text to 3D mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Режим польоту, який обмежує кут нахилу судна під час польоту в акро режимі", + "description": "Help text to ACRO TRAINER mode" + }, "auxiliaryHelpMode_ARM": { - "message": "Взведення: запускає мотори і стабілізацію", + "message": "Включає подачу потужності на мотори та дозволяє судну літати", "description": "Help text to ARM mode" }, "auxiliaryHelpMode_ANGLE": { "message": "В цьому режимі автоматичного вирівнювання, канали крену і тангажа контролюють кут між потрібною віссю і вертикаллю, забезпечуючи вирівнювання при центруванні стіків", "description": "Help text to ANGLE mode" }, - "auxiliaryHelpMode_HORIZON": { - "message": "Цей гібридний режим працює точно як режим \"Кут\" (ANGLE) при відцентрованих стіках нахилу і тангажа (таким чином виходить самовирівнювання дрона), але потім поступово починає працювати більше і більше як режим за замовчуванням RATE/ACRO коли стіки відхиляються далі від центрального положення", - "description": "Help text to HORIZON mode" - }, - "auxiliaryHelpMode_MAG": { - "message": "Фіксація поточного курсу за допомогою компаса", - "description": "Help text to MAG mode" - }, - "auxiliaryHelpMode_HEADFREE": { - "message": "У цьому режимі \"голова\" коптера завжди повернута в ту саму сторону, в яку він був спрямований під час активації функції. Це означає, що коли коптер обертається навколо вісі Z (поворот), управління завжди реагує і тримає коптер в тому самому початковому напрямку.
    З цим режимом легше керувати дроном, навіть літати з фізичною головою у вашому напрямку, оскільки управління завжди реагує однаково. Це дружній режим для нових користувачів дронів та може запобігти втраті контролю, коли ви не знаєте куди направлений дрон", - "description": "Help text to HEADFREE mode" - }, - "auxiliaryHelpMode_PASSTHRU": { - "message": "Передавати крен, рискання та тангаж безпосередньо з приймача до сервоприводів у мікшері літака (режим PASSTHRU)", - "description": "Help text to PASSTHRU mode" - }, - "auxiliaryHelpMode_FAILSAFE": { - "message": "Перейти вручну в етап 2 безаварійності", - "description": "Help text to FAILSAFE mode" - }, - "auxiliaryHelpMode_GPSRESCUE": { - "message": "Увімкніть режим \"GPS порятунок\" щоб повернути повітряне судно на місце, де воно було взведене в останній раз", - "description": "Help text to GPS RESCUE mode" + "auxiliaryHelpMode_ANTIGRAVITY": { + "message": "Режим польоту збільшує значення P та I під час швидких рухів стіком тяги, щоб покращити відстеження стіків та уникнути дрейфу носа під час швидких змін тяги", + "description": "Help text to ANTIGRAVITY mode" }, - "auxiliaryHelpMode_HEADADJ": { - "message": "Змінити курс - встановлює новий курс для режиму HEADFREE", - "description": "Help text to HEAD ADJ mode" + "auxiliaryHelpMode_AIRMODE": { + "message": "У стандартному міксері / режимі, коли обчислюються крен, тангаж і рискання, і якщо який-небудь мотор перевищує максимальне значення, всі мотори будуть однаково зменшені. Коли мотор опускається нижче мінімального значення, він обрізається. Наприклад, якщо рівень тяги був навколо мінімуму і ви спробували різко зробити крен, тоді, оскільки два мотора не можуть піти ще нижче, підсилення фактично зменшиться наполовину (половина ваших значень PID). Якщо ваші команди просили більше, ніж 100% різниці між високими та низькими моторами, низькі мотори будуть обрізані, порушуючи симетрію балансу моторів шляхом нерівного зменшення підсилення", + "description": "Help text to AIRMODE mode" }, "auxiliaryHelpMode_BEEPER": { "message": "Включити пищання - корисно для пошуку розбитого дрона", "description": "Help text to BEEPER mode" }, - "auxiliaryHelpMode_LEDLOW": { - "message": "Вимкнути вивід LED_STRIP", - "description": "Help text to LEDLOW mode" + "auxiliaryHelpMode_BEEPERMUTE": { + "message": "Вимкнути/увімкнути звуковий сигнал, включаючи попередження, статус і режим BEEPER", + "description": "Help text to BEEPERMUTE mode" }, - "auxiliaryHelpMode_OSDDISABLE": { - "message": "Включити/виключити наекранне меню", - "description": "Help text to OSD mode" + "auxiliaryHelpMode_BEEPERON": { + "message": "Включити режим BEEPER ON", + "description": "Help text to BEEPER ON mode" }, - "auxiliaryHelpMode_TELEMETRY": { - "message": "Увімкнути телеметрію за допомогою перемикача", - "description": "Help text to TELEMETRY mode" + "auxiliaryHelpMode_BEEPGPSSATELLITECOUNT": { + "message": "Включити режим \"пищати кількість супутників GPS\"", + "description": "Help text to BEEP GPS SATELLITE COUNT mode" }, "auxiliaryHelpMode_BLACKBOX": { "message": "Увімкнути ведення журналу Чорної скрині", @@ -2254,13 +2242,13 @@ "message": "Очистити журнал Чорної скрині", "description": "Help text to BLACKBOX ERASE mode" }, - "auxiliaryHelpMode_AIRMODE": { - "message": "У стандартному міксері / режимі, коли обчислюються крен, тангаж і рискання, і якщо який-небудь мотор перевищує максимальне значення, всі мотори будуть однаково зменшені. Коли мотор опускається нижче мінімального значення, він обрізається. Наприклад, якщо рівень тяги був навколо мінімуму і ви спробували різко зробити крен, тоді, оскільки два мотора не можуть піти ще нижче, підсилення фактично зменшиться наполовину (половина ваших значень PID). Якщо ваші команди просили більше, ніж 100% різниці між високими та низькими моторами, низькі мотори будуть обрізані, порушуючи симетрію балансу моторів шляхом нерівного зменшення підсилення", - "description": "Help text to AIRMODE mode" + "auxiliaryHelpMode_BOXPREARM": { + "message": "Включає режим BOXPREARM", + "description": "Help text to BOXPREARM mode" }, - "auxiliaryHelpMode_FPVANGLEMIX": { - "message": "Застосуйте поворот-рискання відносно FPV-камери, змонтованої під попередньо заданим кутом", - "description": "Help text to FPV ANGLE MIX mode" + "auxiliaryHelpMode_CALIB": { + "message": "Почати калібрування під час польоту", + "description": "Help text to CALIB mode" }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "Використовуйте щоб увімкнути режим CAMERA CONTROL 1. Перевірте в посібнику виробника", @@ -2274,66 +2262,94 @@ "message": "Використовуйте щоб увімкнути режим CAMERA CONTROL 3. Перевірте в посібнику виробника", "description": "Help text to customized CAMERA CONTROL 3 mode" }, - "auxiliaryHelpMode_USER1": { - "message": "Використовуйте щоб увімкнути налаштування USER1. Перевірте в посібнику виробника", - "description": "Help text to customized USER1 mode" + "auxiliaryHelpMode_CAMSTAB": { + "message": "Включає режим стабілізації камери", + "description": "Help text to CAMSTAB mode" }, - "auxiliaryHelpMode_USER2": { - "message": "Використовуйте щоб увімкнути налаштування USER2. Перевірте в посібнику виробника", - "description": "Help text to customized USER2 mode" - }, - "auxiliaryHelpMode_USER3": { - "message": "Використовуйте щоб увімкнути налаштування USER3. Перевірте в посібнику виробника", - "description": "Help text to customized USER3 mode" - }, - "auxiliaryHelpMode_USER4": { - "message": "Використовуйте щоб увімкнути налаштування USER4. Перевірте в посібнику виробника", - "description": "Help text to customized USER4 mode" + "auxiliaryHelpMode_FAILSAFE": { + "message": "Перейти вручну в етап 2 безаварійності", + "description": "Help text to FAILSAFE mode" }, "auxiliaryHelpMode_FLIPOVERAFTERCRASH": { "message": "Розвернути рух моторів в протилежний бік щоб перевернути судно після аварії (потрібен DShot)", "description": "Help text to FLIP OVER AFTER CRASH mode" }, - "auxiliaryHelpMode_PREARM": { - "message": "При взведенні, очікувати активацію цього перемикача перед фактичним взведенням", - "description": "Help text to PREARM mode" + "auxiliaryHelpMode_FPVANGLEMIX": { + "message": "Застосуйте поворот-рискання відносно FPV-камери, змонтованої під попередньо заданим кутом", + "description": "Help text to FPV ANGLE MIX mode" }, "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { - "message": "Використовуйте звукові сигнали, кількість вказує на кількість знайдених супутників GPS", + "message": "Показує кількість знайдених супутників GPS, подаючи звуковий сигнал таку ж кількість разів", "description": "Help text to GPS BEEP SATELLITE COUNT mode" }, - "auxiliaryHelpMode_VTXPITMODE": { - "message": "Перемкнути відеопередавач у режим ями (низька вихідна потужність, якщо підтримується)", - "description": "Help text to VTX PIT MODE mode" + "auxiliaryHelpMode_GPSRESCUE": { + "message": "Увімкніть режим \"GPS порятунок\" щоб повернути повітряне судно на місце, де воно було взведене в останній раз", + "description": "Help text to GPS RESCUE mode" }, - "auxiliaryHelpMode_PARALYZE": { - "message": "Режим ПАРАЛІЗУ. Вимикає модель, що розбилась, поки не буде перепідключено живлення", - "description": "Help text to PARALYZE mode" + "auxiliaryHelpMode_HEADADJ": { + "message": "Змінити курс - встановлює новий курс для режиму HEADFREE", + "description": "Help text to HEAD ADJ mode" }, - "auxiliaryHelpMode_ACROTRAINER": { - "message": "Увімкнути «акротренажер» - обмеження кута в акро режимі", - "description": "Help text to ACRO TRAINER mode" + "auxiliaryHelpMode_HEADFREE": { + "message": "Режим польоту, коли рискання узгоджується із зовнішньою системою відліку (часто куди пілот дивиться обличчям), а не з судном. Призначений для початківців, але використовується рідко, радимо режим ANGLE", + "description": "Help text to HEADFREE mode" }, - "auxiliaryHelpMode_VTXCONTROLDISABLE": { - "message": "Вимкнути керування налаштуваннями відеопередавача через наекранне меню", - "description": "Help text to VTX CONTROL DISABLE mode" + "auxiliaryHelpMode_HORIZON": { + "message": "Цей гібридний режим працює точно як режим \"Кут\" (ANGLE) при відцентрованих стіках нахилу і тангажа (таким чином виходить самовирівнювання дрона), але потім поступово починає працювати більше і більше як режим за замовчуванням RATE/ACRO коли стіки відхиляються далі від центрального положення", + "description": "Help text to HORIZON mode" }, "auxiliaryHelpMode_LAUNCHCONTROL": { "message": "Система допомоги під час старту на гонках", "description": "Help text to LAUNCH CONTROL mode" }, - "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { - "message": "Виключити/включити команди стіками", - "description": "Help text to STICK COMMANDS DISABLE mode" + "auxiliaryHelpMode_LEDLOW": { + "message": "Вимкнути LED стрічку", + "description": "Help text to LEDLOW mode" }, - "auxiliaryHelpMode_BEEPERMUTE": { - "message": "Вимкнути/увімкнути звуковий сигнал, включаючи попередження, статус і режим BEEPER", - "description": "Help text to BEEPERMUTE mode" + "auxiliaryHelpMode_MAG": { + "message": "Блокування курсу за магнітометром (контроль компаса)", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_MSPOVERRIDE": { + "message": "Включити режим MSP Override", + "description": "Help text to MSP OVERRIDE mode" + }, + "auxiliaryHelpMode_OSDDISABLE": { + "message": "Включити/виключити наекранне меню", + "description": "Help text to OSD mode" + }, + "auxiliaryHelpMode_PASSTHRU": { + "message": "Передавати крен, рискання та тангаж безпосередньо з приймача до сервоприводів у мікшері літака (режим PASSTHRU)", + "description": "Help text to PASSTHRU mode" + }, + "auxiliaryHelpMode_PARALYZE": { + "message": "Режим ПАРАЛІЗУ. Вимикає модель, що розбилась, поки не буде перепідключено живлення", + "description": "Help text to PARALYZE mode" + }, + "auxiliaryHelpMode_PREARM": { + "message": "При взведенні, очікувати активацію цього перемикача перед фактичним взведенням", + "description": "Help text to PREARM mode" }, "auxiliaryHelpMode_READY": { "message": "Додано у BF4.4, тепер ви можете показувати 'READY' (ГОТОВИЙ) в наекранному меню за допомогою перемикача. Це нішеве вдосконалення для гоночних ситуацій, коли всі відеоканали пілотів відображаються на одному центральному екрані. Пілот може натиснути перемикач, щоб вказати, що він готовий до польоту, і на його екранному меню з’явиться слово READY. Тоді директор перегонів може визначити, чи всі пілоти готові, подивившись на центральний екран. При взведенні дрону, текст READY зникає", "description": "Help text to READY mode" }, + "auxiliaryHelpMode_STICKCOMMANDSDISABLE": { + "message": "Виключити/включити команди стіками", + "description": "Help text to STICK COMMANDS DISABLE mode" + }, + "auxiliaryHelpMode_TELEMETRY": { + "message": "Увімкнути телеметрію за допомогою перемикача", + "description": "Help text to TELEMETRY mode" + }, + "auxiliaryHelpMode_VTXCONTROLDISABLE": { + "message": "Вимкнути керування налаштуваннями відеопередавача через наекранне меню", + "description": "Help text to VTX CONTROL DISABLE mode" + }, + "auxiliaryHelpMode_VTXPITMODE": { + "message": "Перемкнути відеопередавач у режим ями (низька вихідна потужність, якщо підтримується)", + "description": "Help text to VTX PIT MODE mode" + }, "adjustmentsHelp": { "message": "Налаштувати перемикачі регулювання. Додаткову інформацію дивіться у розділі посібника «Коригування під час польоту». Зміни, внесені функціями налаштування, не зберігаються автоматично." }, @@ -2631,9 +2647,6 @@ "gpsSpeed": { "message": "Швидкість:" }, - "gpsSats": { - "message": "Супутників:" - }, "gpsDistToHome": { "message": "Відс. до точки зльоту:" }, diff --git a/locales/zh_CN/messages.json b/locales/zh_CN/messages.json index dcaf74e487..56a9daaa63 100644 --- a/locales/zh_CN/messages.json +++ b/locales/zh_CN/messages.json @@ -2234,9 +2234,6 @@ "gpsSpeed": { "message": "速度:" }, - "gpsSats": { - "message": "卫星数:" - }, "gpsDistToHome": { "message": "离起飞位置距离:" }, diff --git a/locales/zh_TW/messages.json b/locales/zh_TW/messages.json index 933461047b..47e6f09dfe 100644 --- a/locales/zh_TW/messages.json +++ b/locales/zh_TW/messages.json @@ -1904,9 +1904,6 @@ "gpsSpeed": { "message": "速度:" }, - "gpsSats": { - "message": "衛星數:" - }, "gpsDistToHome": { "message": "離起飛位置距離:" }, From 4f15d4c281af6b4481cc95016931f7fccc21f1d9 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 1 Aug 2023 20:16:56 +0200 Subject: [PATCH 142/393] Fix missing icon and false positive found (virustotal) (#3534) Revert NWjs update --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index b22e7c51bd..39e7a1d752 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -46,7 +46,7 @@ const NODE_ENV = process.env.NODE_ENV || 'production'; const NAME_REGEX = /-/g; const nwBuilderOptions = { - version: '0.77.0', + version: '0.72.0', files: `${DIST_DIR}**/*`, macIcns: './src/images/bf_icon.icns', macPlist: { 'CFBundleDisplayName': 'Betaflight Configurator'}, From 92a87486211229d8a3f81bb60f41ef90136df623 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Tue, 1 Aug 2023 20:36:30 +0200 Subject: [PATCH 143/393] Fix hidden debug (#3530) * Fix hidden debug * Remove commented out code --- src/js/tabs/sensors.js | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/js/tabs/sensors.js b/src/js/tabs/sensors.js index 96652c7fdc..1637783e22 100644 --- a/src/js/tabs/sensors.js +++ b/src/js/tabs/sensors.js @@ -17,8 +17,6 @@ sensors.initialize = function (callback) { GUI.active_tab = 'sensors'; } - sensors.debugColumns = semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46) ? 8 : 4; - function initSensorData(){ for (let i = 0; i < 3; i++) { FC.SENSOR_DATA.accelerometer[i] = 0; @@ -185,10 +183,6 @@ sensors.initialize = function (callback) { function plot_debug(enable) { if (enable) { $('.wrapper.debug').show(); - for (let i = 0; i < 8; i++) { - $(`svg#debug${i}`).hide(); - $(`div.plot_control.debug${i}`).hide(); - } } else { $('.wrapper.debug').hide(); } @@ -257,6 +251,17 @@ sensors.initialize = function (callback) { setConfig({'graphs_enabled': _checkboxes}); }); + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + sensors.debugColumns = 8; + } else { + sensors.debugColumns = 4; + + for (let i = 4; i < 8; i++) { + $(`svg#debug${i}`).hide(); + $(`div.plot_control.debug${i}`).hide(); + } + } + // Always start with default/empty sensor data array, clean slate all initSensorData(); @@ -428,13 +433,6 @@ sensors.initialize = function (callback) { function update_debug_graphs() { for (let i = 0; i < sensors.debugColumns; i++) { updateGraphHelperSize(debugHelpers[i]); - - // enable/disable graphs based on debug values - if (FC.SENSOR_DATA.debug[i]) { - $(`svg#debug${i}`).show(); - $(`div.plot_control.debug${i}`).show(); - } - addSampleToData(debug_data[i], samples_debug_i, [FC.SENSOR_DATA.debug[i]]); drawGraph(debugHelpers[i], debug_data[i], samples_debug_i); raw_data_text_ements.x[5 + i].text(FC.SENSOR_DATA.debug[i]); From 26e78ed97abcf1f751fe683947affccb7dfc9d22 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Wed, 2 Aug 2023 22:12:28 +0200 Subject: [PATCH 144/393] Fix VTX ready status (#3538) * Fix VTX ready status * i18n is case-sensitive * Cannot replicate * Remove initial status --- src/js/tabs/vtx.js | 39 ++++++++++++++------------------------- src/tabs/vtx.html | 2 +- 2 files changed, 15 insertions(+), 26 deletions(-) diff --git a/src/js/tabs/vtx.js b/src/js/tabs/vtx.js index 2193bb8935..daf91d9654 100644 --- a/src/js/tabs/vtx.js +++ b/src/js/tabs/vtx.js @@ -27,39 +27,30 @@ const vtx = { analyticsChanges: {}, updating: true, env: new djv(), - get _DEVICE_STATUS_UPDATE_INTERVAL_NAME() { - return "vtx_device_status_request"; - }, }; -vtx.isVtxDeviceStatusNotReady = function() -{ +vtx.isVtxDeviceStatusReady = function() { const isReady = (null !== FC.VTX_DEVICE_STATUS) && (FC.VTX_DEVICE_STATUS.deviceIsReady); - return !isReady; + + return !!isReady; }; -vtx.updateVtxDeviceStatus = function() -{ - function vtxDeviceStatusReceived() - { +vtx.updateVtxDeviceStatus = function() { + function vtxDeviceStatusReceived() { $("#vtx_type_description").text(TABS.vtx.getVtxTypeString()); - } - function vtxDeviceStatusReady() - { const vtxReady_e = $('.VTX_info span.colorToggle'); + const isReady = vtx.isVtxDeviceStatusReady(); // update device ready state - vtxReady_e.text(FC.VTX_CONFIG.vtx_device_ready ? i18n.getMessage('vtxReadyTrue') : i18n.getMessage('vtxReadyFalse')); - vtxReady_e.toggleClass('ready', FC.VTX_CONFIG.vtx_device_ready); + vtxReady_e.text(isReady ? i18n.getMessage('vtxReadyTrue') : i18n.getMessage('vtxReadyFalse')); + vtxReady_e.toggleClass('ready', isReady); } MSP.send_message(MSPCodes.MSP2_GET_VTX_DEVICE_STATUS, false, false, vtxDeviceStatusReceived); - MSP.send_message(MSPCodes.MSP_VTX_CONFIG, false, false, vtxDeviceStatusReady); }; -vtx.getVtxTypeString = function() -{ +vtx.getVtxTypeString = function() { let result = i18n.getMessage(`vtxType_${FC.VTX_CONFIG.vtx_type}`); const isSmartAudio = VtxDeviceTypes.VTXDEV_SMARTAUDIO === FC.VTX_CONFIG.vtx_type; @@ -118,11 +109,7 @@ vtx.initialize = function (callback) { function vtxConfigReceived() { if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { - GUI.interval_add_condition(self._DEVICE_STATUS_UPDATE_INTERVAL_NAME, - TABS.vtx.updateVtxDeviceStatus, - 1000, false, - TABS.vtx.isVtxDeviceStatusNotReady, - ); + vtx.intervalId = setInterval(vtx.updateVtxDeviceStatus, 1000); } vtxtable_bands(); @@ -306,7 +293,7 @@ vtx.initialize = function (callback) { $("#vtx_type_description").text(self.getVtxTypeString()); $("#vtx_channel_description").text(FC.VTX_CONFIG.vtx_channel); $("#vtx_frequency_description").text(FC.VTX_CONFIG.vtx_frequency); - $("#vtx_pit_mode_description").text(FC.VTX_CONFIG.vtx_pit_mode ? i18n.getMessage("Yes") : i18n.getMessage("No")); + $("#vtx_pit_mode_description").text(FC.VTX_CONFIG.vtx_pit_mode ? i18n.getMessage("yes") : i18n.getMessage("no")); $("#vtx_pit_mode_frequency_description").text(FC.VTX_CONFIG.vtx_pit_mode_frequency); $("#vtx_low_power_disarm_description").text(i18n.getMessage(`vtxLowPowerDisarmOption_${FC.VTX_CONFIG.vtx_low_power_disarm}`)); @@ -915,6 +902,8 @@ vtx.initialize = function (callback) { saveButton.html(i18n.getMessage('vtxButtonSaving')).addClass('disabled'); + clearInterval(TABS.vtx.intervalId); + // Allow firmware to make relevant changes before initialization setTimeout(() => { saveButton.html(i18n.getMessage('vtxButtonSaved')); @@ -1048,7 +1037,7 @@ vtx.cleanup = function (callback) { this.VTXTABLE_BAND_LIST = []; this.VTXTABLE_POWERLEVEL_LIST = []; - GUI.interval_remove(this._DEVICE_STATUS_UPDATE_INTERVAL_NAME); + clearInterval(this.intervalId); if (callback) { callback(); diff --git a/src/tabs/vtx.html b/src/tabs/vtx.html index 41df191c94..8e8a44da96 100644 --- a/src/tabs/vtx.html +++ b/src/tabs/vtx.html @@ -130,7 +130,7 @@ - + From 4204281f46157006236382617e6e3c98e0fe5012 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Thu, 3 Aug 2023 02:25:45 +0200 Subject: [PATCH 145/393] GPS updates (#3527) * Remove auto_baud * Change debug to GPS_CONNECTION * Adjust signal strength scale --- src/css/tabs/gps.less | 8 ++++---- src/js/tabs/gps.js | 17 ++++++++++------- src/js/tabs/onboard_logging.js | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/css/tabs/gps.less b/src/css/tabs/gps.less index 1cf67c6c06..9e66242a9a 100644 --- a/src/css/tabs/gps.less +++ b/src/css/tabs/gps.less @@ -23,7 +23,7 @@ background-color: #ececec; } } - progress { + meter { width: 100%; border-radius: 3px; } @@ -199,14 +199,14 @@ float: left; } } -progress[value] { - &::-webkit-progress-bar { +meter[value] { + &::-webkit-meter-bar { background-color: #d2d2d2; border-radius: 2px; box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.95); box-shadow: 0 0 3px rgba(0, 0, 0, 0.25) inset; } - &::-webkit-progress-value { + &::-webkit-meter-value { background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, .15), rgba(0, 0, 0, .15)), -webkit-linear-gradient(left, #ffbb00, #ffbb00); border-radius: 2px; box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.25) inset; diff --git a/src/js/tabs/gps.js b/src/js/tabs/gps.js index 734d34d752..bd0f3560be 100644 --- a/src/js/tabs/gps.js +++ b/src/js/tabs/gps.js @@ -1,6 +1,6 @@ import { i18n } from "../localization"; import semver from 'semver'; -import { API_VERSION_1_43 } from '../data_storage'; +import { API_VERSION_1_43, API_VERSION_1_46 } from '../data_storage'; import GUI, { TABS } from '../gui'; import FC from '../fc'; import MSP from "../msp"; @@ -132,7 +132,10 @@ gps.initialize = async function (callback) { }).val(FC.GPS_CONFIG.provider).change(); - gpsAutoBaudElement.prop('checked', FC.GPS_CONFIG.auto_baud === 1); + // auto_baud is no longer used in API 1.46 + if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + gpsAutoBaudElement.prop('checked', FC.GPS_CONFIG.auto_baud === 1); + } gpsAutoConfigElement.on('change', function () { const checked = $(this).is(":checked"); @@ -146,7 +149,7 @@ gps.initialize = async function (callback) { const enableSbasVisible = checked && ubloxSelected; gpsUbloxSbasGroup.toggle(enableSbasVisible); - gpsAutoBaudGroup.toggle(ubloxSelected || mspSelected); + gpsAutoBaudGroup.toggle((ubloxSelected || mspSelected) && semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_46)); gpsAutoConfigGroup.toggle(ubloxSelected || mspSelected); }).prop('checked', FC.GPS_CONFIG.auto_config === 1).trigger('change'); @@ -221,7 +224,7 @@ gps.initialize = async function (callback) { - ${FC.GPS_DATA.svid[i]} - + ${FC.GPS_DATA.quality[i]} `); @@ -232,7 +235,7 @@ gps.initialize = async function (callback) { - - - + `); @@ -253,11 +256,11 @@ gps.initialize = async function (callback) { if (FC.GPS_DATA.chn[i] >= 7) { rowContent += '-'; - rowContent += ``; + rowContent += ``; rowContent += ` `; } else { rowContent += `${FC.GPS_DATA.svid[i]}`; - rowContent += ``; + rowContent += ``; let quality = i18n.getMessage(qualityArray[FC.GPS_DATA.quality[i] & 0x7]); let used = i18n.getMessage(usedArray[(FC.GPS_DATA.quality[i] & 0x8) >> 3]); diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index 0d80a03b00..f80d879aca 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -320,7 +320,7 @@ onboard_logging.initialize = function (callback) { {text: "GPS_RESCUE_VELOCITY"}, {text: "GPS_RESCUE_HEADING"}, {text: "GPS_RESCUE_TRACKING"}, - {text: "GPS_UNIT_CONNECTION"}, + {text: "GPS_CONNECTION"}, {text: "ATTITUDE"}, {text: "VTX_MSP"}, {text: "GPS_DOP"}, From 058ab5b38a9f56f074ffc0994cb7935269bc4b20 Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Sun, 6 Aug 2023 16:35:22 +0200 Subject: [PATCH 146/393] Fix wiki (#3537) * fix board wiki url * fix board wiki url * fix board wiki url * Update src/js/utils/common.js Co-authored-by: Mark Haslinghuis * Update src/js/utils/common.js Co-authored-by: Mark Haslinghuis * Update src/js/tabs/firmware_flasher.js Co-authored-by: Mark Haslinghuis --------- Co-authored-by: Mark Haslinghuis --- src/js/tabs/firmware_flasher.js | 11 ++++++++--- src/js/utils/common.js | 8 ++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index ed2cfd7d60..38d673aea5 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -16,7 +16,7 @@ import serial from '../serial'; import STM32DFU from '../protocols/stm32usbdfu'; import { gui_log } from '../gui_log'; import semver from 'semver'; -import { checkChromeRuntimeError } from '../utils/common'; +import { checkChromeRuntimeError, urlExists } from '../utils/common'; import { generateFilename } from '../utils/generate_filename'; const firmware_flasher = { @@ -107,10 +107,15 @@ firmware_flasher.initialize = function (callback) { $('div.release_info #targetMCU').text(summary.mcu); $('div.release_info .configFilename').text(self.isConfigLocal ? self.configFilename : "[default]"); - // Wiki link to url found in unified target configuration or if not defined to general wiki url + // Wiki link: #wiki found in unified target configuration, if board description exist or generel board missing + let urlWiki = 'https://betaflight.com/docs/wiki/boards/missing'; // generel board missing + const urlBoard = `https://betaflight.com/docs/wiki/boards/${summary.target}`; // board description + if (urlExists(urlBoard)) { + urlWiki = urlBoard; + } const targetWiki = $('#targetWikiInfoUrl'); targetWiki.html(`   [Wiki]`); - targetWiki.attr("href", summary.wiki === undefined ? "https://betaflight.com/docs/wiki/" : summary.wiki); + targetWiki.attr("href", urlWiki); if (summary.cloudBuild) { $('div.release_info #cloudTargetInfo').show(); diff --git a/src/js/utils/common.js b/src/js/utils/common.js index a23331ed32..11e0ac7007 100644 --- a/src/js/utils/common.js +++ b/src/js/utils/common.js @@ -91,6 +91,14 @@ export function getTextWidth(text) { return Math.ceil(context.measureText(text).width); } +export function urlExists(url) { + let http = new XMLHttpRequest (); + + http.open('HEAD', url, false); + http.send(); + return http.status !== 404; +} + /** * Returns jquery sorted option list with optional value staying on top of the list. * From ef4ff17c7e6177febe38da81c3eebb97a36e21a7 Mon Sep 17 00:00:00 2001 From: Emil Date: Sun, 6 Aug 2023 21:30:53 +0300 Subject: [PATCH 147/393] feat: add sensor status vue component (#3539) --- .../sensor-status/SensorStatus.stories.js | 15 + src/components/sensor-status/SensorStatus.vue | 308 ++++++++++++++++++ 2 files changed, 323 insertions(+) create mode 100644 src/components/sensor-status/SensorStatus.stories.js create mode 100644 src/components/sensor-status/SensorStatus.vue diff --git a/src/components/sensor-status/SensorStatus.stories.js b/src/components/sensor-status/SensorStatus.stories.js new file mode 100644 index 0000000000..ed3989e9ba --- /dev/null +++ b/src/components/sensor-status/SensorStatus.stories.js @@ -0,0 +1,15 @@ +import SensorStatus from "./SensorStatus"; + +// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export +export default { + title: "Sensor status", + component: SensorStatus, +}; + +const Template = (_args, {argTypes}) => ({ + props: Object.keys(argTypes), + components: { SensorStatus }, + template: '', +}); + +export const Primary = Template.bind({}); diff --git a/src/components/sensor-status/SensorStatus.vue b/src/components/sensor-status/SensorStatus.vue new file mode 100644 index 0000000000..dc9a0b322a --- /dev/null +++ b/src/components/sensor-status/SensorStatus.vue @@ -0,0 +1,308 @@ + + + + + From 55fabf2c49737bc54099407f3fe56913bfa6d681 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 10:31:00 +0200 Subject: [PATCH 148/393] Update translations (#3541) Co-authored-by: Crowdin Bot --- locales/da/messages.json | 20 ++++++ locales/it/messages.json | 8 +++ locales/ja/messages.json | 80 ++++++++++++++++++++- locales/pl/messages.json | 149 ++++++++++++++++++++++++++++++++++++--- locales/uk/messages.json | 40 +++++++++++ 5 files changed, 287 insertions(+), 10 deletions(-) diff --git a/locales/da/messages.json b/locales/da/messages.json index 4b916e1c20..3a9db6f2fc 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -2274,6 +2274,10 @@ "message": "Tænd eller sluk for LED lys", "description": "Help text to LEDLOW mode" }, + "auxiliaryHelpMode_MAG": { + "message": "Aktiverer låsning af kurs på aktuel kompasretning", + "description": "Help text to MAG mode" + }, "auxiliaryHelpMode_OSDDISABLE": { "message": "Aktiver/deaktiver On-Screen-Display - OSD", "description": "Help text to OSD mode" @@ -2318,6 +2322,22 @@ "message": "Aktiver telemetri via kontakt", "description": "Help text to TELEMETRY mode" }, + "auxiliaryHelpMode_USER1": { + "message": "Skifter brugerdefineret USER1. Styrer via PINIO", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Skifter brugerdefineret USER2. Styrer via PINIO", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Skifter brugerdefineret USER3. Styrer via PINIO", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Skifter brugerdefineret USER4. Styrer via PINIO", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_VTXCONTROLDISABLE": { "message": "Deaktiver kontrol af VTX indstillinger via OSD", "description": "Help text to VTX CONTROL DISABLE mode" diff --git a/locales/it/messages.json b/locales/it/messages.json index 6c25948705..4f0ef003ce 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -2673,12 +2673,20 @@ "gpsAltitude": { "message": "Altitudine:" }, + "gpsLatLon": { + "message": "Latitudine / Longitudine Attuale:", + "description": "Show GPS position - Latitude / Longitude" + }, "gpsHeading": { "message": "Direzione:" }, "gpsSpeed": { "message": "Velocità:" }, + "gpsSats": { + "message": "Numero di satelliti:", + "description": "Show number of fixed GPS Satellites" + }, "gpsDistToHome": { "message": "Distanza dal punto di partenza:" }, diff --git a/locales/ja/messages.json b/locales/ja/messages.json index 2858eb0eab..49bd70557b 100644 --- a/locales/ja/messages.json +++ b/locales/ja/messages.json @@ -2194,10 +2194,26 @@ "auxiliaryModeLogicAND": { "message": "AND" }, + "auxiliaryHelpMode_3D": { + "message": "モーターを反転させることで、マイナス推力を発生させ、倒立飛行を可能にします。スロットルは 0 ~ +100 ではなく -100 ~ +100 となります。", + "description": "Help text to 3D mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "アクロモードでの飛行時、機体角度を制限するフライトモード", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_ARM": { + "message": "モーター出力を有効にし飛行を可能とします", + "description": "Help text to ARM mode" + }, "auxiliaryHelpMode_ANGLE": { "message": "このオートレベルモードでは、ロールとピッチのチャンネルが関連する軸と垂直の間の角度を制御し、スティックを中心に配置することで水平飛行を実現します。", "description": "Help text to ANGLE mode" }, + "auxiliaryHelpMode_ANTIGRAVITY": { + "message": "フライトモードは、スロットルのすばやい操作時にP値とI値とを増加させ、スティック追従性を向上させ、スロットルのすばやい操作時におけるノーズドリフトを回避します。", + "description": "Help text to ANTIGRAVITY mode" + }, "auxiliaryHelpMode_AIRMODE": { "message": "標準のミキサー / モードでは、ロール、ピッチ、ヨーが計算上モーターの強度が飽和状態となると、すべてのモーターが均等に回転が減少します。モーターが最小値を下回ると切り捨て状態となります。例えば、スロットルを最小値より少し上にしてクイックロールをしようとした場合、2つのモーターはそれ以上回転を下げることができないので、実質的に半分のパワー (PID強度の半分) を得ることになります。もし、入力が高回転モーターと低回転モーターの間に100%以上の差を求めたとしたら、低回転モーターは回転が切り捨てられ、強度を不均一に減少させることとなってしまいモーターバランスの対称性を破綻させてしまうでしょう。", "description": "Help text to AIRMODE mode" @@ -2214,6 +2230,10 @@ "message": "BEPPER ONモードを有効にします", "description": "Help text to BEEPER ON mode" }, + "auxiliaryHelpMode_BEEPGPSSATELLITECOUNT": { + "message": "ビープGPS衛星カウントモードを有効にします", + "description": "Help text to BEEP GPS SATELLITE COUNT mode" + }, "auxiliaryHelpMode_BLACKBOX": { "message": "BlackBoxログを有効にします", "description": "Help text to BLACKBOX mode" @@ -2226,6 +2246,10 @@ "message": "BOX PREARMモードを有効にします", "description": "Help text to BOXPREARM mode" }, + "auxiliaryHelpMode_CALIB": { + "message": "飛行中のキャリブレーションを開始します", + "description": "Help text to CALIB mode" + }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "カスタマイズ切り替えのためCAMERA CONTROL 1を使用します。メーカーのマニュアルをご確認ください。", "description": "Help text to customized CAMERA CONTROL 1 mode" @@ -2254,6 +2278,10 @@ "message": "装着するFPVカメラのプリセット角度に対してヨー回転をかけるよう適用します", "description": "Help text to FPV ANGLE MIX mode" }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "捕捉しているGPS衛星の数だけビープ音を鳴らします", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, "auxiliaryHelpMode_GPSRESCUE": { "message": "『GPSレスキュー』を有効にし、最後に離陸した地点に機体を帰還させます", "description": "Help text to GPS RESCUE mode" @@ -2262,6 +2290,10 @@ "message": "ヘッディング調整 - ヘッドフリーモードの新しいヨー基準点を設定します", "description": "Help text to HEAD ADJ mode" }, + "auxiliaryHelpMode_HEADFREE": { + "message": "ヨーを機体の軸ではなく、外部の軸 (多くの場合パイロットが向いている方向) に合わせるフライトモードです。初心者のために用意されていますが、ほとんど使用されていません。", + "description": "Help text to HEADFREE mode" + }, "auxiliaryHelpMode_HORIZON": { "message": "このハイブリッドモードは、ロールとピッチのスティックを中央に配置するとアングルモードと同じように動作し(オートレベル飛行が可能)、スティックを中央から遠ざけていくと、徐々にレートモードのように動作するようになります。", "description": "Help text to HORIZON mode" @@ -2274,6 +2306,10 @@ "message": "LEDストリップ出力をOFFにします", "description": "Help text to LEDLOW mode" }, + "auxiliaryHelpMode_MAG": { + "message": "コンパスで示した方向へのヘッディングロック (コンパス制御)", + "description": "Help text to MAG mode" + }, "auxiliaryHelpMode_MSPOVERRIDE": { "message": "MSP上書きモードを有効にします", "description": "Help text to MSP OVERRIDE mode" @@ -2290,6 +2326,10 @@ "message": "クラッシュした機体をバッテリーが切れるまで永久に使用不可とします", "description": "Help text to PARALYZE mode" }, + "auxiliaryHelpMode_PIDAUDIO": { + "message": "PIDAUDIOを切り替えます", + "description": "Help text to PIDAUDIO mode" + }, "auxiliaryHelpMode_PREARM": { "message": "アーミング時、実際にこのスイッチが有効になるのを待ってからアームします", "description": "Help text to PREARM mode" @@ -2302,10 +2342,38 @@ "message": "スティックコマンドを無効 / 有効にします", "description": "Help text to STICK COMMANDS DISABLE mode" }, + "auxiliaryHelpMode_SERVO1": { + "message": "SERVO1を切り替えます", + "description": "Help text to SERVO1 mode" + }, + "auxiliaryHelpMode_SERVO2": { + "message": "SERVO2を切り替えます", + "description": "Help text to SERVO2 mode" + }, + "auxiliaryHelpMode_SERVO3": { + "message": "SERVO3を切り替えます", + "description": "Help text to SERVO3 mode" + }, "auxiliaryHelpMode_TELEMETRY": { "message": "スイッチを使いテレメトリーを有効にします", "description": "Help text to TELEMETRY mode" }, + "auxiliaryHelpMode_USER1": { + "message": "カスタマイズした USER1 を切り替えます。PINIO経由で任意の出力を制御します。", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "カスタマイズした USER2 を切り替えます。PINIO経由で任意の出力を制御します。", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "カスタマイズした USER3 を切り替えます。PINIO経由で任意の出力を制御します。", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "カスタマイズした USER4 を切り替えます。PINIO経由で任意の出力を制御します。", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_VTXCONTROLDISABLE": { "message": "OSD経由でVTX設定の制御を無効にします", "description": "Help text to VTX CONTROL DISABLE mode" @@ -2605,12 +2673,20 @@ "gpsAltitude": { "message": "高度:" }, + "gpsLatLon": { + "message": "現在の 緯度 / 経度:", + "description": "Show GPS position - Latitude / Longitude" + }, "gpsHeading": { "message": "ヘッディング:" }, "gpsSpeed": { "message": "速度:" }, + "gpsSats": { + "message": "衛星捕捉数:", + "description": "Show number of fixed GPS Satellites" + }, "gpsDistToHome": { "message": "ホームまでの距離:" }, @@ -3805,7 +3881,7 @@ "message": "感度" }, "pidTuningLevelHelp": { - "message": "以下の値は、アングルとホライゾンの飛行モードの動作を変更します。それぞれのPIDコントローラは異なる値を処理します。 ドキュメントを確認してください。" + "message": "以下の値は、アングルとホライゾンのフライトモードの動作を変更します。それぞれのPIDコントローラは異なる値を処理します。 ドキュメントを確認してください。" }, "pidTuningMotorOutputLimit": { "message": "モーター出力リミット" @@ -5221,7 +5297,7 @@ "message": "アーム後の経過時間 (アラーム値を超えると点滅)" }, "osdTextElementFlyMode": { - "message": "フライトモード", + "message": "飛行モード (Fly)", "description": "One of the elements of the OSD" }, "osdDescElementFlyMode": { diff --git a/locales/pl/messages.json b/locales/pl/messages.json index 4f0db05dbe..8d40be2944 100644 --- a/locales/pl/messages.json +++ b/locales/pl/messages.json @@ -442,7 +442,7 @@ "message": "wersja konfiguratora, której używasz ($3) jest starsza niż oprogramowanie, którego używasz ($4).
    $t(configuratorUpdateHelp.message)" }, "reportProblemsDialogMOTOR_PROTOCOL_DISABLED": { - "message": "nie wybrano protokołu sterowania silnikami.
    Wybierz protokół sterowania odpowiedni dla twoich ESC w '$t(configurationEscFeatures.message)' karcie '$t(tabMotorTesting.message)'.
    $t(escProtocolDisabledMessage.message)" + "message": "nie wybrano protokołu sterowania silnikami.
    Wybierz protokół sterowania odpowiedni dla twoich ESC wybierając '$t(configurationEscFeatures.message)' w zakładce '$t(tabMotorTesting.message)'.
    $t(escProtocolDisabledMessage.message)" }, "reportProblemsDialogACC_NEEDS_CALIBRATION": { "message": "akcelerometr jest włączony, ale nie jest skalibrowany. Jeśli planujesz użyć akcelerometru, proszę postąpić zgodnie z instrukcją dla '$t(initialSetupButtonCalibrateAccel.message)' w zakładce '$t(tabSetup.message)'. Jeśli jakakolwiek funkcja wymagająca akcelerometru (tryb automatycznego poziomowania, automatyczny powrót do domu na podstawie GPS, . .) jest włączona, uzbrojenie jednostki latającej będzie niemożliwe aż do chwili gdy akcelerometr zostanie skalibrowany. Jeśli nie planujesz używać akcelerometru, zaleca się wyłączenie go w '$t(configurationSystem.message)' w zakładce '$t(tabConfiguration.message)'." @@ -601,7 +601,7 @@ "message": "Sprzęt" }, "defaultWelcomeText": { - "message": "Aplikacja obsługuje cały sprzęt, na którym można uruchomić Betaflight. Pełna lista sprzętu znajduje się w zakładce Wgraj oprogramowanie.

    Pobierz przeglądarkę logów Betaflight Blackbox

    Pobierz skrypty Betaflight TX Lua

    Kod źródłowy oprogramowania układowego można pobrać ze strony tutaj

    Dla starszego sprzętu korzystającego z portu szeregowego USB CP210x:
    Najnowsze sterowniki CP210x można pobrać z tutaj
    Najnowszą instalację sterownika USB Zadig dla systemu Windows można pobrać ze strony tutaj
    Impul seRC Driver Fixer można pobrać tutaj" + "message": "Aplikacja obsługuje cały sprzęt, na którym można uruchomić Betaflight. Pełna lista sprzętu znajduje się w zakładce Wgraj oprogramowanie.

    Pobierz przeglądarkę logów Betaflight Blackbox

    Pobierz skrypty Betaflight TX Lua

    Kod źródłowy oprogramowania układowego można pobrać ze strony tutaj

    Dla starszego sprzętu korzystającego z portu szeregowego USB CP210x:
    Najnowsze sterowniki CP210x można pobrać ze strony tutaj
    Najnowszą instalację sterownika USB Zadig dla systemu Windows można pobrać ze strony tutaj
    Impul seRC Driver Fixer można pobrać ze strony tutaj" }, "defaultContributingHead": { "message": "Współtworzenie" @@ -628,7 +628,7 @@ "message": "Open Source / Informacja o darowiznach" }, "defaultDonateText": { - "message": "

    Betaflight to oprogramowanie kontrolera lotu które jest na licencji open source i jest dostępne za darmo dla wszystkich użytkowników.

    Jeśli używasz Betaflight lub Konfiguratora Betaflight oraz uważasz je za przydatne, rozważ wsparcie jego rozwoju poprzez darowiznę.

    " + "message": "

    Betaflight to oprogramowanie kontrolera lotu jest na licencji open source i jest dostępne za darmo dla wszystkich użytkowników.

    Jeśli używasz oprogramowania Betaflight oraz uważasz je za przydatne, rozważ wsparcie jego rozwoju poprzez darowiznę.

    " }, "defaultDonateBottom": { "message": "

    Jeśli chcesz wspierać nas finansowo na bieżąco, powinieneś rozważyć możliwość zostania naszym sponsorem $t(patreonLink.message)

    " @@ -686,7 +686,7 @@ "message": "Kalibracja akcelerometru" }, "initialSetupCalibrateAccelText": { - "message": "Połóż kontroler lotu lub ramę na płaskiej powierzchni i kontynuuj kalibrację. Zwróć uwagę by kontroler lub rama nie ruszały się podczas trwania kalibracji" + "message": "Połóż kontroler lotu lub drona na płaskiej powierzchni i kontynuuj kalibrację. Zwróć uwagę by płytka kontrolera lotu nie ruszała się podczas trwania kalibracji" }, "initialSetupButtonCalibrateMag": { "message": "Kalibracja magnetometru" @@ -1293,7 +1293,7 @@ "message": "Proszę wybrać protokół sterujący silnikiem odpowiedni dla ESC. $t(escProtocolDisabledMessage.message)" }, "escProtocolDisabledMessage": { - "message": "Uwaga: Wybranie protokołu sterowania silnika, który nie jest obsługiwany przez ESC, może doprowadzić do niekontrolowanego wysterowania silnika przez ESC. Silnik może wystartować samoczynnie jak tylko bateria zostanie podłączona. Z tego powodu zawsze upewnij się, że nie ma zamontowanych śmigieł przy pierwszym podłączeniu baterii po zmianie protokołu sterującego silnikami." + "message": "Uwaga: Wybranie protokołu sterowania silnika, który nie jest obsługiwany przez twoje ESC , może doprowadzić do niekontrolowanego uruchomienia silnika. Po podłaczeniu bateri silnik może wystartować samoczynnie dlatego zawsze upewnij się, że nie ma zamontowanych śmigieł przy pierwszym podłączeniu baterii po zmianie protokołu sterującego silnikami." }, "configurationDshotBeeper": { "message": "Konfiguracja sygnału radiowego Dshot" @@ -1418,6 +1418,10 @@ "configurationGPS": { "message": "Konfiguracja GPS" }, + "configurationGPSHelp": { + "message": "Skonfiguruj protokół dla urządzenia GPS (pamiętaj, aby skonfigurować odpowiedni UART w zakładce Pory), użyj Automatycznej prędkości odświeżania lub wybierz inną prędkość, którą obsługuje twój GPS", + "description": "Help text GPS configuration" + }, "configurationGPSProtocol": { "message": "Protokół" }, @@ -2190,10 +2194,26 @@ "auxiliaryModeLogicAND": { "message": "Oraz" }, + "auxiliaryHelpMode_3D": { + "message": "Umożliwia odwracalny kierunek silnika, aby zapewnić ujemny ciąg i umożliwić odwrócenie lotu. Przepustnica staje się od -100 do +100 zamiast od 0 do 100", + "description": "Help text to 3D mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Tryb lotu, który ogranicza kąt pochylenia jednostki podczas lotu w trybie Akro", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_ARM": { + "message": "Włącza wejścia silników - Pozwala uzbroić silniki", + "description": "Help text to ARM mode" + }, "auxiliaryHelpMode_ANGLE": { "message": "W tym trybie automatycznego poziomowania kanały przechyłu i pochylenia kontrolują kąt między odpowiednią osią a pionem, aby osiągnąć poziomy lot po prostu pozostaw drążek w pozycji środkowej", "description": "Help text to ANGLE mode" }, + "auxiliaryHelpMode_ANTIGRAVITY": { + "message": "Anti Gravity poprzez zwiększenie parametru P oraz I podczas gwałtownego dodania gazu ma spowodować, iż dron utrzyma poziom, pochylenie oraz wychylenie w czasie szybkiego wznoszenia ", + "description": "Help text to ANTIGRAVITY mode" + }, "auxiliaryHelpMode_AIRMODE": { "message": "W standardowym trybie miksera /, gdy przechylenie, nachylenie i odchylenie zostaną obliczone i nasycą silnik, wszystkie silniki zostaną jednakowo zredukowane. Kiedy silnik spada poniżej minimum, zostaje odcięty. Powiedzmy, że miałeś przepustnicę nieco powyżej minimum i próbowałeś szybko przechylić - ponieważ dwa silniki nie mogą zejść niżej, zasadniczo uzyskujesz połowę mocy (połowę wzmocnienia PID). Jeśli twoje dane wejściowe wymagałyby więcej niż 100% różnicy między wysokimi i niskimi silnikami, niskie silniki zostałyby obcięte, łamiąc symetrię równowagi silnika poprzez nierównomierne zmniejszenie wzmocnienia", "description": "Help text to AIRMODE mode" @@ -2206,6 +2226,14 @@ "message": "Wyłącz/włącz sygnał dźwiękowy, w tym ostrzeżenie, stan i tryb BEEPER", "description": "Help text to BEEPERMUTE mode" }, + "auxiliaryHelpMode_BEEPERON": { + "message": "Włącza tryb BEEPER ON", + "description": "Help text to BEEPER ON mode" + }, + "auxiliaryHelpMode_BEEPGPSSATELLITECOUNT": { + "message": "Włącza tryb POBIERANIA GPS SATELITE COUNT", + "description": "Help text to BEEP GPS SATELLITE COUNT mode" + }, "auxiliaryHelpMode_BLACKBOX": { "message": "Włącz rejestrator parametrów lotu BlackBox", "description": "Help text to BLACKBOX mode" @@ -2214,6 +2242,14 @@ "message": "Wyczyść dziennik BlackBox", "description": "Help text to BLACKBOX ERASE mode" }, + "auxiliaryHelpMode_BOXPREARM": { + "message": "Włącza tryb BOXPREARM", + "description": "Help text to BOXPREARM mode" + }, + "auxiliaryHelpMode_CALIB": { + "message": "Rozpocznij kalibrację podczas lotu", + "description": "Help text to CALIB mode" + }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "Służy do niestandardowego przełączania STEROWANIA KAMERĄ 1. Sprawdź w instrukcji dostawcy", "description": "Help text to customized CAMERA CONTROL 1 mode" @@ -2226,6 +2262,10 @@ "message": "Służy do niestandardowego przełączania STEROWANIA KAMERĄ 3. Sprawdź w instrukcji dostawcy", "description": "Help text to customized CAMERA CONTROL 3 mode" }, + "auxiliaryHelpMode_CAMSTAB": { + "message": "Włącza tryb stabilizacji kamery", + "description": "Help text to CAMSTAB mode" + }, "auxiliaryHelpMode_FAILSAFE": { "message": "Wejdź ręcznie w drugi etap Failsafe", "description": "Help text to FAILSAFE mode" @@ -2238,6 +2278,10 @@ "message": "Zastosuj obrót odchylenia względem kamery FPV zamontowanej pod zadanym kątem", "description": "Help text to FPV ANGLE MIX mode" }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "Służy do wskazywania liczby znalezionych satelitów GPS poprzez wydawanie liczby sygnałów dźwiękowych", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, "auxiliaryHelpMode_GPSRESCUE": { "message": "Włącz „GPS Rescue”, aby statek powietrzny wrócił do miejsca, w którym był ostatnio uzbrojony", "description": "Help text to GPS RESCUE mode" @@ -2246,6 +2290,10 @@ "message": "Heading Adjust – Ustawia nowy początek odchylenia dla trybu HEADFREE", "description": "Help text to HEAD ADJ mode" }, + "auxiliaryHelpMode_HEADFREE": { + "message": "Tryb lotu w którym niezależnie, jak usytuowany jest dron (którą stroną) w stosunku do pilota – sterowanie w przód zawsze będzie skutkowało lotem drona do przodu. Tak samo do tyłu i w pozostałe kierunki. Przydatne dla początkujących pilotów, którzy mają problemy z orjętacją w przestrzeni podczas lotu", + "description": "Help text to HEADFREE mode" + }, "auxiliaryHelpMode_HORIZON": { "message": "Ten tryb hybrydowy działa dokładnie tak samo jak tryb ANGLE z wyśrodkowanym drążkiem przechyłu i pochylenia (umożliwiając w ten sposób lot z automatycznym poziomowaniem), a następnie, gdy drążek jest odchylany coraz bardziej od pozycji środkowej zachowuje się coraz bardziej jak domyślny tryb RATE", "description": "Help text to HORIZON mode" @@ -2254,6 +2302,18 @@ "message": "System wspomagania startu w wyścigu", "description": "Help text to LAUNCH CONTROL mode" }, + "auxiliaryHelpMode_LEDLOW": { + "message": "Wyłącz wyjście PASKA LED RGB", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_MAG": { + "message": "Blokada kursu za pomocą magnetometru (sterowanie kompasem)", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_MSPOVERRIDE": { + "message": "Włącz tryb zastępowania MSP", + "description": "Help text to MSP OVERRIDE mode" + }, "auxiliaryHelpMode_OSDDISABLE": { "message": "Włącz/wyłącz wyświetlanie na ekranie", "description": "Help text to OSD mode" @@ -2266,6 +2326,10 @@ "message": "Trwale unieruchamiaj rozbity statek powietrzny, dopóki nie zostanie ponownie włączony", "description": "Help text to PARALYZE mode" }, + "auxiliaryHelpMode_PIDAUDIO": { + "message": "Użyj aby przełączyć PIDAUDIO", + "description": "Help text to PIDAUDIO mode" + }, "auxiliaryHelpMode_PREARM": { "message": "Podczas uzbrajania potrzebna jest aktywacja tego przełącznika przed faktycznym uzbrojeniem", "description": "Help text to PREARM mode" @@ -2278,10 +2342,38 @@ "message": "Wyłącz/włącz polecenia z drążka", "description": "Help text to STICK COMMANDS DISABLE mode" }, + "auxiliaryHelpMode_SERVO1": { + "message": "Użyj do przełączania SERVO1", + "description": "Help text to SERVO1 mode" + }, + "auxiliaryHelpMode_SERVO2": { + "message": "Użyj do przełączania SERVO2", + "description": "Help text to SERVO2 mode" + }, + "auxiliaryHelpMode_SERVO3": { + "message": "Użyj do przełączania SERVO3", + "description": "Help text to SERVO3 mode" + }, "auxiliaryHelpMode_TELEMETRY": { "message": "Włącz telemetrię za pomocą przełącznika", "description": "Help text to TELEMETRY mode" }, + "auxiliaryHelpMode_USER1": { + "message": "Służy do przełączania dostosowanego przez użytkownika profilu USER1. Kontroluje dowolne wyjście przez PINIO", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Służy do przełączania dostosowanego przez użytkownika profilu USER2. Kontroluje dowolne wyjście przez PINIO", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Służy do przełączania dostosowanego przez użytkownika profilu USER3. Kontroluje dowolne wyjście przez PINIO", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Służy do przełączania dostosowanego przez użytkownika profilu USER4. Kontroluje dowolne wyjście przez PINIO", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_VTXCONTROLDISABLE": { "message": "Wyłącz kontrolę ustawień VTX poprzez OSD", "description": "Help text to VTX CONTROL DISABLE mode" @@ -2548,9 +2640,17 @@ "gpsHead": { "message": "GPS" }, + "gpsHeadHelp": { + "message": "Pokaż różne informacje związane z GPS. Kierunki są wyświetlane tylko wtedy, gdy używany jest magnetometr", + "description": "Help text for gpsHead" + }, "gpsMapHead": { "message": "Aktualna lokalizacja GPS" }, + "gpsMapHeadHelp": { + "message": "Pokaż lokalizację GPS na mapie. Użyj przycisku przewijania w myszce, aby powiększyć i pomniejszyć widok na mapie.
    Ikona lokalizacji pokazuje kierunek północny, gdy magnetometr jest używany", + "description": "Help text for gpsHeadMap" + }, "gpsMapMessage1": { "message": "Sprawdź swoje połączenie internetowe" }, @@ -2573,18 +2673,30 @@ "gpsAltitude": { "message": "Wysokość:" }, + "gpsLatLon": { + "message": "Bieżąca szerokość / długość geograficzna:", + "description": "Show GPS position - Latitude / Longitude" + }, "gpsHeading": { "message": "Kurs:" }, "gpsSpeed": { "message": "Prędkość:" }, + "gpsSats": { + "message": "Liczba Satelit", + "description": "Show number of fixed GPS Satellites" + }, "gpsDistToHome": { "message": "Dystans do Domu:" }, "gpsSignalStrHead": { "message": "Siła sygnału GPS" }, + "gpsSignalStrHeadHelp": { + "message": "Pokaż siłę sygnału oraz jakość i status dla każdego wykrytego połączenia GPS", + "description": "Help text for gpsSignalStrHead" + }, "gpsSignalStr": { "message": "Siła Sygnału" }, @@ -2758,7 +2870,7 @@ "message": "Kolejność silników" }, "motorOutputReorderDialogOpen": { - "message": "Sprawdź kolejność silników" + "message": "Edytuj kolejność silników" }, "motorOutputReorderDialogSelectSpinningMotor": { "message": "Kliknij na wirujący silnik, aby przejść dalej" @@ -3304,10 +3416,10 @@ "message": "Postępuj według wytycznych nie próbuj wgrywać oprogramowania innego niż Betaflight za pomocą tego oprogramowania.
    Oraz nie odłączaj płytki lub nie wyłączaj komputera podczas flashowania.

    Uwaga: bootloader STM32 jest przechowywany w ROM-ie dlatego nie może być blokowany.
    Uwaga: Automatyczne połączenie jest zawsze wyłączone, gdy jesteś w trybie wgrywania oprogramowania.
    Uwaga: upewnij się, że masz kopię zapasową; niektóre aktualizacje mogą usunąć twoją konfigurację.
    Uwaga: jeśli masz problem z wgrywaniem oprogramowania spróbuj odłączyć wszystkie kable od kontrolera lotu następnie spróbuj ponownie uruchomić komputer oraz zaktualizować sterowniki.
    Uwaga: Podczas wgrywania oprogramowania do płytek bezpośrednio podłączonych do gniazd USB (większość nowszych płytek) upewnij się, że przeczytałeś sekcję Wgrywanie oprogramowania w instrukcji Betaflight i zainstalowałeś odpowiednie oprogramowanie i sterowniki" }, "firmwareFlasherRecoveryHead": { - "message": "Odzyskiwanie utraconej komunikacji" + "message": "W przypadku problemów podczas podłączania płytki kontrolera lotów postępuj zgodnie z poniższą instrukcją" }, "firmwareFlasherRecoveryText": { - "message": "Jeśli utraciłeś komunikację z płytką kontrolera lotu, wykonaj następujące kroki, aby przywrócić komunikację:
    • Odepnij zasilanie
    • Włącz „Nie restartuj”, włącz „Wyczyść pamięć”.
    • Zepnij styki BOOT lub przytrzymaj przycisk BOOT.
    • Podłącz zasilanie (dioda aktywności NIE będzie migać, jeśli zrobisz to poprawnie).
    • Zainstaluj wszystkie sterowniki STM32 i Zadig, jeśli to konieczne (patrz Flashowanie USB w instrukcji Betaflight).
    • Zamknij konfigurator a następnie uruchom ponownie konfigurator.
    • Zwolnij przycisk BOOT, jeśli Twój kontroler lotu go posiada.
    • Flashuj z poprawnym oprogramowaniem sprzętowym (używając ręcznej szybkości transmisji, jeśli jest to określone w instrukcji FC).
    • Wyłącz.
    • Usuń zworkę BOOT.
    • Włącz (dioda aktywności powinna migać).
    • Połącz normalnie.
    " + "message": "Jeśli utraciłeś komunikację z płytką kontrolera lotu, wykonaj następujące kroki, aby przywrócić komunikację:
    • Odłącz zasilanie kontrolera lotu
    • Włącz ustawienia „Nie restartuj”, oraz „Wyczyść pamięć”.
    • Zepnij styki BOOT lub przytrzymaj przycisk BOOT na kontlorerze lotu.
    • Podłącz zasilanie kontlolera lotu(dioda aktywności NIE będzie migać, jeśli zrobisz to poprawnie).
    • Zainstaluj wszystkie sterowniki STM32 i Zadig, jeśli to konieczne (patrz Flashowanie USB w instrukcji Betaflight).
    • Zamknij konfigurator a następnie uruchom ponownie konfigurator.
    • Zwolnij przycisk BOOT, jeśli Twój kontroler lotu go posiada.
    • Flashuj z poprawnym oprogramowaniem sprzętowym (używając ręcznej szybkości transmisji, jeśli jest to określone w instrukcji FC).
    • Wyłącz.
    • Usuń zworkę BOOT.
    • Włącz (dioda aktywności powinna migać).
    • Połącz normalnie.
    " }, "firmwareFlasherButtonLeave": { "message": "Urzyj opcji wgrywania oprogramowania" @@ -5127,6 +5239,27 @@ "osdDescElementSysFanSpeed": { "message": "Prędkość wentylatora Gogli renderowana przez gogle" }, + "osdTextElementLapTimeCurrent": { + "message": "Aktualny czas okrążenia GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeCurrent": { + "message": "Aktualny czas okrążania GPS" + }, + "osdTextElementLapTimePrevious": { + "message": "Czas poprzedniego okrążenia GPS", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimePrevious": { + "message": "Poprzedni czas okrążania GPS" + }, + "osdTextElementLapTimeBest3": { + "message": "Najlepszy czas okrążenia GPS 3", + "description": "One of the elements of the OSD" + }, + "osdDescElementLapTimeBest": { + "message": "Najlepszy czas okrążenia GPS" + }, "osdTextElementCraftName": { "message": "Nazwa modelu", "description": "One of the elements of the OSD" diff --git a/locales/uk/messages.json b/locales/uk/messages.json index 8b29346b3b..875e4f68de 100644 --- a/locales/uk/messages.json +++ b/locales/uk/messages.json @@ -2326,6 +2326,10 @@ "message": "Режим ПАРАЛІЗУ. Вимикає модель, що розбилась, поки не буде перепідключено живлення", "description": "Help text to PARALYZE mode" }, + "auxiliaryHelpMode_PIDAUDIO": { + "message": "Використовуйте для перемикання PIDAUDIO", + "description": "Help text to PIDAUDIO mode" + }, "auxiliaryHelpMode_PREARM": { "message": "При взведенні, очікувати активацію цього перемикача перед фактичним взведенням", "description": "Help text to PREARM mode" @@ -2338,10 +2342,38 @@ "message": "Виключити/включити команди стіками", "description": "Help text to STICK COMMANDS DISABLE mode" }, + "auxiliaryHelpMode_SERVO1": { + "message": "Використовуйте для перемикання SERVO1", + "description": "Help text to SERVO1 mode" + }, + "auxiliaryHelpMode_SERVO2": { + "message": "Використовуйте для перемикання SERVO2", + "description": "Help text to SERVO2 mode" + }, + "auxiliaryHelpMode_SERVO3": { + "message": "Використовуйте для перемикання SERVO3", + "description": "Help text to SERVO3 mode" + }, "auxiliaryHelpMode_TELEMETRY": { "message": "Увімкнути телеметрію за допомогою перемикача", "description": "Help text to TELEMETRY mode" }, + "auxiliaryHelpMode_USER1": { + "message": "Використовуйте для перемикання налаштованого USER1. Керує довільним виводом через PINIO", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Використовуйте для перемикання налаштованого USER2. Керує довільним виводом через PINIO", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Використовуйте для перемикання налаштованого USER3. Керує довільним виводом через PINIO", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Використовуйте для перемикання налаштованого USER4. Керує довільним виводом через PINIO", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_VTXCONTROLDISABLE": { "message": "Вимкнути керування налаштуваннями відеопередавача через наекранне меню", "description": "Help text to VTX CONTROL DISABLE mode" @@ -2641,12 +2673,20 @@ "gpsAltitude": { "message": "Висота:" }, + "gpsLatLon": { + "message": "Поточна широта/довгота:", + "description": "Show GPS position - Latitude / Longitude" + }, "gpsHeading": { "message": "Курс:" }, "gpsSpeed": { "message": "Швидкість:" }, + "gpsSats": { + "message": "Кількість супутників:", + "description": "Show number of fixed GPS Satellites" + }, "gpsDistToHome": { "message": "Відс. до точки зльоту:" }, From 4bfce352547726ba0156ad52407bb68d6b0b6ffd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 12:08:21 +0200 Subject: [PATCH 149/393] Update translations (#3545) Co-authored-by: Crowdin Bot --- locales/da/messages.json | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/locales/da/messages.json b/locales/da/messages.json index 3a9db6f2fc..4e2055947b 100644 --- a/locales/da/messages.json +++ b/locales/da/messages.json @@ -1805,7 +1805,7 @@ "message": "Med denne parameter kan D Setpoint reduceres tæt ved pindenes centerpositioner, hvilket betyder en mere glidende afslutning på flips og rolls.
    Værdien repræsenterer et punkt af pindudslaget: 0 - pind centreret, 1 - fuldt udslag. Når pinden er over dette punkt, holdes Setpoint-vægtningen konstant på den opsattte værdi. Når pinden er placeret under dette punkt, reduceres Setpoint-vægtningen proportionalt og når 0 ved pindens centerposition.
    Værdien 1 giver maksimal udjævningseffekt, mens værdien 0 holder Setpoint-vægtningen på den opsatte værdi over hele pind udfalds område." }, "pidTuningDtermSetpointHelp": { - "message": "Denne parameter afgør pindaccelerationseffekt indenfor en afledt komponent.
    Værdien 0 modsvarer den gamle målemetode, hvor D kun sporer gyro, mens værdien 1 modsvarer den gamle fejlmetode med samme gyro- og pindsporingsforhold.
    Lavere værdi modsvarer langsommere/jævnere pindrespons, mens højere værdi giver øget pindaccelerationsrespons.
    Bemærk, at RC-interpolation ambefales aktiveret ved højere værdier for at forhindre støj fra bratte kontrolpulser." + "message": "Denne parameter afgør pindaccelerationseffekt indenfor en afledt komponent.
    Værdien 0 modsvarer den gamle måle metode, hvor D kun styres af gyro, mens værdien 1 modsvarer den gamle fejlmetode med samme gyro- og pind respons.
    Lavere værdi modsvarer langsommere/jævnere pindrespons, mens højere værdi giver øget pindaccelerationsrespons.
    Bemærk, at RC-interpolation ambefales aktiveret ved højere værdier for at forhindre støj fra bratte kontrolpulser." }, "pidTuningDtermSetpointTransitionWarning": { "message": "$t(warningTitle.message): Brug af en D Setpoint-overgang højere end 0 og lavere end 0.1 frarådes kraftigt, da dette kan medføre ustabilitet samt reduceret pindrespons, når pindene krydser centerpositionerne." @@ -2158,7 +2158,7 @@ "message": "Disse pinde tillader indkobling og test af Betaflight, uden en sender/modtager er til stede. Bemærk, at denne funktion ikke er beregnet til flyvning, og propeller må ikke monteres.

    Denne funktion garanterer ikke pålidelig kontrol med dit fartøj. Risiko for alvorlig skade, hvis propellerne er påsat." }, "receiverMspEnableButton": { - "message": "Aktivér kontroller" + "message": "Aktiver kontroller" }, "auxiliaryHelp": { "message": "Opsæt kanal tilstande her vha. en kombination af kanal tilknytninger og/eller kanalområder (kanal områder understøttes fra BF 4.0).
    Benyt Tilknyt kanal til at definere kanaler og tilhørende kanal områder. En modtagerkanal med signal mellem et min/maks område, aktiverer tilstanden. Benyt et Tilknyt kanal område for at aktivere en tilstand, når et andet område er aktiveret.
    Undtagelser: Aktiver(ARM) kan ikke tilknyttes til eller fra en anden tilstand, tilstande kan ikke tilknyttes til andre tilstande, som er opsat med en tilknytning (kædede tilknytninger). Flere områder/tilknytninger kan benyttes til at aktivere enhver tilstand.
    Er der defineret mere end ét område/tilknytning for en tilstand, kan hver af dem opsættes til OG eller ELLER. En tilstand aktiveres, når:
    - ALLE OG områder/tilknytninger er aktive;
    - ELLER mindst ét ELLER område/tilknytning er aktivt.
    Husk at gemme dine indstillinger med knappen Gem." @@ -2194,6 +2194,14 @@ "auxiliaryModeLogicAND": { "message": "OG" }, + "auxiliaryHelpMode_3D": { + "message": "Muliggør reversibel motorretning for at give negativ gas og tillade omvendt flyvning. Gassen bliver -100 til +100 i stedet for 0 til 100.\nAnvendes til at flyve et fartøj, som er endt på 'ryggen'", + "description": "Help text to 3D mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Flyvetilstand som begrænser fartøjets vinkel når det er i ARCO tilstand", + "description": "Help text to ACRO TRAINER mode" + }, "auxiliaryHelpMode_ARM": { "message": "Aktiverer motorer og aktiverer at fartøj kan flyve", "description": "Help text to ARM mode" @@ -2202,6 +2210,10 @@ "message": "I denne auto-nivelleret tilstand styrer krængror og højderor vinklen mellem den relevante akse og den lodrette akse, for at udjævne flyning ved blot at lade pindende være centreret", "description": "Help text to ANGLE mode" }, + "auxiliaryHelpMode_ANTIGRAVITY": { + "message": "Flytilstand som øger P og I Term ved hurtige gasbevægelser, for at forbedre pind respons og undgå næsen på fartøjer går ud af kurs ved hurtige ændringer af gassen", + "description": "Help text to ANTIGRAVITY mode" + }, "auxiliaryHelpMode_AIRMODE": { "message": "I standard mixer tilstand, når krængror, højderor og sideror beregnes og styrer en motor, vil alle motorer blive ændret ens. Når en motor går under minimum, bliver styring reduceret. Fx hvis du har din gas lige over minimum og forsøger en hurtig krængning - da to motorer ikke kan gå under minimum, vil du hovedsagelig kun få halvdelen af kraften (halvdelen af din PID værdi). Hvis dit input ville have bedt om mere end 100% forskel mellem de høje og lave motores hastighed ville de de langsomm motorer blive reduceret og symmetrien i motorens balance vil blive brudt", "description": "Help text to AIRMODE mode" @@ -2214,6 +2226,14 @@ "message": "Deaktiver / aktiver bippen, heruder advarsler, status og anden bippen.", "description": "Help text to BEEPERMUTE mode" }, + "auxiliaryHelpMode_BEEPERON": { + "message": "Aktiver BEEPER ON, altså at bipper kan give lyd", + "description": "Help text to BEEPER ON mode" + }, + "auxiliaryHelpMode_BEEPGPSSATELLITECOUNT": { + "message": "Aktiver BEEP GPS SATELLITE COUNT, altså at bipper giver lyd det antal gange der er låste sattelitter", + "description": "Help text to BEEP GPS SATELLITE COUNT mode" + }, "auxiliaryHelpMode_BLACKBOX": { "message": "Aktiver Blackbox logning", "description": "Help text to BLACKBOX mode" @@ -2222,6 +2242,10 @@ "message": "Slet BlackBox log", "description": "Help text to BLACKBOX ERASE mode" }, + "auxiliaryHelpMode_BOXPREARM": { + "message": "Aktiverer BOXPREARM tilstand", + "description": "Help text to BOXPREARM mode" + }, "auxiliaryHelpMode_CALIB": { "message": "Start kalibrering under flyvning", "description": "Help text to CALIB mode" @@ -2238,6 +2262,10 @@ "message": "Brug til at skifte leverandør bestemte CAMERA CONTROL 3. Se i leverandørs manual", "description": "Help text to customized CAMERA CONTROL 3 mode" }, + "auxiliaryHelpMode_CAMSTAB": { + "message": "Aktiverer stabiliseringstilstand for kamera", + "description": "Help text to CAMSTAB mode" + }, "auxiliaryHelpMode_FAILSAFE": { "message": "Aktiver mauelt fejlsikring trin 2", "description": "Help text to FAILSAFE mode" @@ -2262,6 +2290,10 @@ "message": "Kurs korrektion - indstiller ny sideror værdi for HEADFREE tilstand", "description": "Help text to HEAD ADJ mode" }, + "auxiliaryHelpMode_HEADFREE": { + "message": "Flyvningstilstand, hvor sideror styres af en ekstern reference (typisk den som piloten ser imod) i stedet for fartøjets egen reference. Designet til begyndere, men sjældent brugt, normalt bedre at anvende ANGLE tilstand", + "description": "Help text to HEADFREE mode" + }, "auxiliaryHelpMode_HORIZON": { "message": "Denne hybrid tilstand fungerer præcis som ANGLE tilstand med centreret krængror og højderor pind (dermed muliggør auto-nivelleret flyvning).
    Når pind flyttes væk fra center position, går styring mere og mere mod ACRO tilstand", "description": "Help text to HORIZON mode" @@ -2278,6 +2310,10 @@ "message": "Aktiverer låsning af kurs på aktuel kompasretning", "description": "Help text to MAG mode" }, + "auxiliaryHelpMode_MSPOVERRIDE": { + "message": "Aktiver MSP overstyring", + "description": "Help text to MSP OVERRIDE mode" + }, "auxiliaryHelpMode_OSDDISABLE": { "message": "Aktiver/deaktiver On-Screen-Display - OSD", "description": "Help text to OSD mode" From 5ffd193783788ea7975f3c1d1cff1608fbe36a09 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Mon, 14 Aug 2023 22:39:03 +0200 Subject: [PATCH 150/393] Fix gps_rescue_min_dth (#3544) --- src/js/tabs/failsafe.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/js/tabs/failsafe.js b/src/js/tabs/failsafe.js index e1710b69d5..89c3d6f5f4 100644 --- a/src/js/tabs/failsafe.js +++ b/src/js/tabs/failsafe.js @@ -5,7 +5,7 @@ import MSP from "../msp"; import FC from "../fc"; import MSPCodes from "../msp/MSPCodes"; import adjustBoxNameIfPeripheralWithModeID from "../peripherals"; -import { API_VERSION_1_43, API_VERSION_1_44, API_VERSION_1_45 } from "../data_storage"; +import { API_VERSION_1_43, API_VERSION_1_44, API_VERSION_1_45, API_VERSION_1_46 } from "../data_storage"; import semver from 'semver'; const failsafe = {}; @@ -295,14 +295,18 @@ failsafe.initialize = function (callback) { } if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + $('input[name="gps_rescue_min_dth"]').attr("min", 10); + } else if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) { + $('input[name="gps_rescue_min_dth"]').attr("min", 20); + } + $('input[name="gps_rescue_min_dth"]').val(FC.GPS_RESCUE.minRescueDth); } else { $('input[name="gps_rescue_min_dth"]').closest('.number').hide(); } - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) { - $('input[name="gps_rescue_min_dth"]').attr("min", 20); - } + $('a.save').click(function () { // gather data that doesn't have automatic change event bound From 40c243fe479d03335efc0a45236ff6625e409f1a Mon Sep 17 00:00:00 2001 From: Tomas Chmelevskij Date: Thu, 17 Aug 2023 02:13:03 +0300 Subject: [PATCH 151/393] feat: use jquery package (#3540) --- gulpfile.js | 11 +++++++- package.json | 7 +++-- .../EscDshotDirectionComponent.js | 1 + .../MotorOutputReorderingComponent.js | 1 + src/js/Analytics.js | 1 + src/js/Beepers.js | 1 + src/js/BuildApi.js | 1 + src/js/CliAutoComplete.js | 1 + src/js/DarkTheme.js | 1 + src/js/Features.js | 1 + src/js/LogoManager.js | 1 + src/js/TuningSliders.js | 1 + src/js/gui.js | 3 ++- src/js/gui_log.js | 2 ++ src/js/jquery.js | 26 +++++++++++++++++++ src/js/jqueryPlugins.js | 9 +++++++ src/js/localization.js | 1 + src/js/main.js | 2 ++ src/js/main_cordova.js | 1 + src/js/msp/MSPConnector.js | 3 +++ src/js/msp/MSPHelper.js | 1 + src/js/phones_ui.js | 1 + src/js/port_handler.js | 1 + src/js/protocols/stm32.js | 1 + src/js/sensor_helpers.js | 1 + src/js/serial.js | 1 + src/js/serial_backend.js | 1 + src/js/tabs/adjustments.js | 1 + src/js/tabs/auxiliary.js | 1 + src/js/tabs/cli.js | 1 + src/js/tabs/configuration.js | 1 + src/js/tabs/failsafe.js | 1 + src/js/tabs/firmware_flasher.js | 1 + src/js/tabs/gps.js | 1 + src/js/tabs/help.js | 1 + src/js/tabs/landing.js | 1 + src/js/tabs/led_strip.js | 1 + src/js/tabs/logging.js | 1 + src/js/tabs/motors.js | 1 + src/js/tabs/onboard_logging.js | 1 + src/js/tabs/options.js | 1 + src/js/tabs/osd.js | 1 + src/js/tabs/pid_tuning.js | 1 + src/js/tabs/ports.js | 1 + src/js/tabs/power.js | 1 + src/js/tabs/receiver.js | 2 +- src/js/tabs/receiver_msp.js | 1 + src/js/tabs/sensors.js | 1 + src/js/tabs/servos.js | 1 + src/js/tabs/setup.js | 1 + src/js/tabs/setup_osd.js | 1 + src/js/tabs/static_tab.js | 1 + src/js/tabs/transponder.js | 1 + src/js/tabs/vtx.js | 1 + src/js/update_dataflash_global.js | 1 + src/js/utils/checkForConfiguratorUpdates.js | 1 + src/js/utils/common.js | 1 + src/js/utils/isExportModeEnabled.js | 2 ++ src/js/utils/showErrorDialog.js | 1 + src/js/utils/updateTabList.js | 2 ++ src/main.html | 11 ++------ src/tabs/pid_tuning.html | 2 +- .../DetailedDialog/PresetsDetailedDialog.js | 1 + src/tabs/presets/SourcesDialog/SourcePanel.js | 1 + .../presets/SourcesDialog/SourcesDialog.js | 1 + .../presets/TitlePanel/PresetTitlePanel.js | 1 + src/tabs/presets/presets.js | 2 ++ yarn.lock | 26 ++++++++++--------- 68 files changed, 136 insertions(+), 27 deletions(-) create mode 100644 src/js/jquery.js create mode 100644 src/js/jqueryPlugins.js diff --git a/gulpfile.js b/gulpfile.js index 39e7a1d752..ebe8e3aab9 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -403,6 +403,7 @@ function dist_rollup() { // I will be picked up by rollup and bundled accordingly. 'js/main_cordova': 'src/js/main_cordova.js', 'js/utils/common': 'src/js/utils/common.js', + 'js/jquery': 'src/js/jquery.js', 'js/main': 'src/js/main.js', 'js/tabs/receiver_msp': 'src/js/tabs/receiver_msp.js', }, @@ -437,8 +438,16 @@ function dist_rollup() { sourcemap: true, // put any 3rd party module in vendor.js manualChunks(id) { + /** + * This splits every npm module loaded in into it's own package + * to preserve the loading order. This is to prevent issues + * where after bundling some modules are loaded in the wrong order. + */ if (id.includes('node_modules')) { - return 'vendor'; + const parts = id.split(/[\\/]/); + const nodeModulesIndex = parts.indexOf('node_modules'); + const packageName = parts[nodeModulesIndex + 1]; + return packageName; } }, dir: DIST_DIR, diff --git a/package.json b/package.json index 3824630a6b..a509f623fe 100644 --- a/package.json +++ b/package.json @@ -63,10 +63,10 @@ "i18next-xhr-backend": "^3.2.2", "inflection": "^1.13.4", "jbox": "^1.3.3", - "jquery": "^3.6.1", + "jquery": "^3.6.3", "jquery-textcomplete": "^1.8.5", "jquery-touchswipe": "^1.6.19", - "jquery-ui-npm": "^1.12.0", + "jquery-ui": "^1.13.2", "jsdom": "^21.0.0", "lodash.debounce": "^4.0.8", "marked": "^4.1.1", @@ -135,6 +135,9 @@ "optionalDependencies": { "appdmg": "^0.6.4" }, + "resolutions": { + "jquery": "3.6.3" + }, "husky": { "hooks": { "pre-commit": "yarn lint" diff --git a/src/components/EscDshotDirection/EscDshotDirectionComponent.js b/src/components/EscDshotDirection/EscDshotDirectionComponent.js index 30ee63681b..9d3db2f48f 100644 --- a/src/components/EscDshotDirection/EscDshotDirectionComponent.js +++ b/src/components/EscDshotDirection/EscDshotDirectionComponent.js @@ -6,6 +6,7 @@ import DshotCommand from "../../js/utils/DshotCommand.js"; import FC from "../../js/fc.js"; import { API_VERSION_1_44 } from '../../js/data_storage.js'; import { getMixerImageSrc } from "../../js/utils/common.js"; +import $ from "jquery"; class EscDshotDirectionComponent { diff --git a/src/components/MotorOutputReordering/MotorOutputReorderingComponent.js b/src/components/MotorOutputReordering/MotorOutputReorderingComponent.js index 0e6f322d0c..358954f614 100644 --- a/src/components/MotorOutputReordering/MotorOutputReorderingComponent.js +++ b/src/components/MotorOutputReordering/MotorOutputReorderingComponent.js @@ -8,6 +8,7 @@ import FC from "../../js/fc"; import { gui_log } from "../../js/gui_log"; import { i18n } from "../../js/localization"; import GUI, { TABS } from "../../js/gui"; +import $ from "jquery"; export default class MotorOutputReorderComponent { diff --git a/src/js/Analytics.js b/src/js/Analytics.js index a36ca9af91..23bb2beec8 100644 --- a/src/js/Analytics.js +++ b/src/js/Analytics.js @@ -3,6 +3,7 @@ import googleAnalytics from 'universal-ga'; import { set as setConfig, get as getConfig } from './ConfigStorage'; import GUI from './gui'; import CONFIGURATOR from './data_storage'; +import $ from 'jquery'; let tracking = null; export { tracking }; diff --git a/src/js/Beepers.js b/src/js/Beepers.js index 7dc2efce48..2571ef0dd9 100644 --- a/src/js/Beepers.js +++ b/src/js/Beepers.js @@ -1,4 +1,5 @@ import { bit_check, bit_clear, bit_set } from './bit'; +import $ from 'jquery'; class Beepers { constructor(config, supportedConditions) { diff --git a/src/js/BuildApi.js b/src/js/BuildApi.js index ba40d941d3..f8bf85e55a 100644 --- a/src/js/BuildApi.js +++ b/src/js/BuildApi.js @@ -1,6 +1,7 @@ import { gui_log } from './gui_log'; import { i18n } from "./localization"; import { get as getStorage, set as setStorage } from "./SessionStorage"; +import $ from 'jquery'; export default class BuildApi { diff --git a/src/js/CliAutoComplete.js b/src/js/CliAutoComplete.js index 34df69d02d..cd1205dc30 100644 --- a/src/js/CliAutoComplete.js +++ b/src/js/CliAutoComplete.js @@ -3,6 +3,7 @@ import CONFIGURATOR from './data_storage'; import FC from './fc'; import semver from 'semver'; import { tracking } from './Analytics'; +import $ from 'jquery'; /** * Encapsulates the AutoComplete logic diff --git a/src/js/DarkTheme.js b/src/js/DarkTheme.js index aeff8bdb46..400e3be8e9 100644 --- a/src/js/DarkTheme.js +++ b/src/js/DarkTheme.js @@ -1,6 +1,7 @@ import GUI from "./gui"; import windowWatcherUtil from "./utils/window_watchers"; import { checkSetupAnalytics } from "./Analytics"; +import $ from 'jquery'; const css_dark = [ './css/dark-theme.css', diff --git a/src/js/Features.js b/src/js/Features.js index ee2011da25..28c738691b 100644 --- a/src/js/Features.js +++ b/src/js/Features.js @@ -2,6 +2,7 @@ import { bit_check, bit_set, bit_clear } from "./bit"; import { API_VERSION_1_44, API_VERSION_1_45 } from './data_storage'; import semver from "semver"; import { tracking } from "./Analytics"; +import $ from 'jquery'; const Features = function (config) { const self = this; diff --git a/src/js/LogoManager.js b/src/js/LogoManager.js index 27635101cb..36acf1e50e 100644 --- a/src/js/LogoManager.js +++ b/src/js/LogoManager.js @@ -1,6 +1,7 @@ import { gui_log } from "./gui_log"; import { i18n } from "./localization"; import { checkChromeRuntimeError } from "./utils/common"; +import $ from 'jquery'; /** * Takes an ImageData object and returns an MCM symbol as an array of strings. diff --git a/src/js/TuningSliders.js b/src/js/TuningSliders.js index d0821331fc..0606886292 100644 --- a/src/js/TuningSliders.js +++ b/src/js/TuningSliders.js @@ -6,6 +6,7 @@ import { isExpertModeEnabled } from "./utils/isExportModeEnabled"; import semver from "semver"; import { mspHelper } from "./msp/MSPHelper"; import { TABS } from "./gui"; +import $ from 'jquery'; const TuningSliders = { // Legacy Sliders diff --git a/src/js/gui.js b/src/js/gui.js index 2e063dfab0..50630c754d 100644 --- a/src/js/gui.js +++ b/src/js/gui.js @@ -3,6 +3,7 @@ import MSP from './msp'; import Switchery from 'switchery-latest'; import jBox from 'jbox'; import { checkChromeRuntimeError } from './utils/common'; +import $ from 'jquery'; const TABS = {}; @@ -316,7 +317,7 @@ class GuiControl { documentationButton.html("Wiki").attr("href", `https://betaflight.com/docs/wiki/configurator/${tRex}-tab`); // loading tooltip - jQuery(function () { + $(function () { new jBox('Tooltip', { attach: '.cf_tip', diff --git a/src/js/gui_log.js b/src/js/gui_log.js index f45874aa86..eff3a0c3fc 100644 --- a/src/js/gui_log.js +++ b/src/js/gui_log.js @@ -1,3 +1,5 @@ +import $ from "jquery"; + /** * log to GUI * @param {string} message message to log to GUI diff --git a/src/js/jquery.js b/src/js/jquery.js new file mode 100644 index 0000000000..9ab64b0009 --- /dev/null +++ b/src/js/jquery.js @@ -0,0 +1,26 @@ +import $ from 'jquery'; + +/** + * jQuery has plugins which load in all sort of different ways, + * not necessary as modules. This binds jquery package to global + * scope and is loaded in first, so that when plugins are loaded + * all of them have access to the same instance. + */ +if(typeof globalThis !== 'undefined') { + // eslint-disable-next-line no-undef + globalThis.jQuery = $; + // eslint-disable-next-line no-undef + globalThis.$ = $; +} + +if(typeof window !== 'undefined') { + window.jQuery = $; + window.$ = $; +} + +if(typeof global !== 'undefined') { + global.$ = $; + global.jQuery = $; +} + +export default $; diff --git a/src/js/jqueryPlugins.js b/src/js/jqueryPlugins.js new file mode 100644 index 0000000000..509a23c17a --- /dev/null +++ b/src/js/jqueryPlugins.js @@ -0,0 +1,9 @@ +import './jquery'; +import 'jquery-ui/dist/jquery-ui'; +import 'jquery-textcomplete'; +import 'jquery-touchswipe'; +import select2 from 'select2'; +select2(jQuery); +import 'multiple-select'; +import '../../libraries/jquery.nouislider.all.min.js'; +import '../../libraries/jquery.flightindicators.js'; diff --git a/src/js/localization.js b/src/js/localization.js index 0cba8a0a36..34d24935a5 100644 --- a/src/js/localization.js +++ b/src/js/localization.js @@ -2,6 +2,7 @@ import i18next from 'i18next'; import i18nextXHRBackend from 'i18next-xhr-backend'; import { gui_log } from './gui_log.js'; import { get as getConfig, set as setConfig } from './ConfigStorage.js'; +import $ from "jquery"; const i18n = {}; /* diff --git a/src/js/main.js b/src/js/main.js index bf98dc9f07..445404d166 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -1,3 +1,5 @@ +import './jqueryPlugins'; +import $ from 'jquery'; import 'jbox'; import '../components/init.js'; import { gui_log } from './gui_log.js'; diff --git a/src/js/main_cordova.js b/src/js/main_cordova.js index 16a2634e7d..7977648249 100644 --- a/src/js/main_cordova.js +++ b/src/js/main_cordova.js @@ -1,4 +1,5 @@ import { i18n } from "./localization.js"; +import $ from 'jquery'; const REQUIRED_WEBVIEW_VERSION = 72; const WEBVIEW = { diff --git a/src/js/msp/MSPConnector.js b/src/js/msp/MSPConnector.js index 3f90e98a81..92b65a5ab4 100644 --- a/src/js/msp/MSPConnector.js +++ b/src/js/msp/MSPConnector.js @@ -9,6 +9,9 @@ import CONFIGURATOR from "../data_storage"; import serial from "../serial"; import { gui_log } from "../gui_log"; +/** + * This seems to be mainly used in firmware flasher parts. + */ const MSPConnectorImpl = function () { this.baud = undefined; this.port = undefined; diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index 9e369c3dd6..b80b7594fb 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -1,3 +1,4 @@ +import '../injected_methods'; import { update_dataflash_global } from "../update_dataflash_global"; import { sensor_status } from "../sensor_helpers"; import { bit_check, bit_set } from "../bit"; diff --git a/src/js/phones_ui.js b/src/js/phones_ui.js index 08903c04b0..bfbe0b350b 100644 --- a/src/js/phones_ui.js +++ b/src/js/phones_ui.js @@ -1,4 +1,5 @@ import GUI from "./gui"; +import $ from 'jquery'; const UI_PHONES = { background: '#background', diff --git a/src/js/port_handler.js b/src/js/port_handler.js index bf4cae7d28..072086ca54 100644 --- a/src/js/port_handler.js +++ b/src/js/port_handler.js @@ -5,6 +5,7 @@ import { generateVirtualApiVersions, getTextWidth } from './utils/common'; import { get as getConfig } from "./ConfigStorage"; import serial from "./serial"; import MdnsDiscovery from "./mdns_discovery"; +import $ from 'jquery'; const TIMEOUT_CHECK = 500 ; // With 250 it seems that it produces a memory leak and slowdown in some versions, reason unknown diff --git a/src/js/protocols/stm32.js b/src/js/protocols/stm32.js index 2f252ce472..276b75546a 100644 --- a/src/js/protocols/stm32.js +++ b/src/js/protocols/stm32.js @@ -19,6 +19,7 @@ import { API_VERSION_1_42 } from "../data_storage"; import serial from "../serial"; import STM32DFU from "./stm32usbdfu"; import semver from "semver"; +import $ from 'jquery'; const STM32_protocol = function () { this.baud = null; diff --git a/src/js/sensor_helpers.js b/src/js/sensor_helpers.js index a4efe92619..c8b50cc74f 100644 --- a/src/js/sensor_helpers.js +++ b/src/js/sensor_helpers.js @@ -1,4 +1,5 @@ import { bit_check } from './bit'; +import $ from 'jquery'; export function have_sensor(sensors_detected, sensor_code) { switch(sensor_code) { diff --git a/src/js/serial.js b/src/js/serial.js index 4cd1f7fbf6..4827290b5b 100644 --- a/src/js/serial.js +++ b/src/js/serial.js @@ -6,6 +6,7 @@ import { gui_log } from "./gui_log"; import inflection from "inflection"; import PortHandler from "./port_handler"; import { checkChromeRuntimeError } from "./utils/common"; +import $ from 'jquery'; const serial = { connected: false, diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index d15b0eb54b..ff6a8a673c 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -22,6 +22,7 @@ import { get as getConfig, set as setConfig } from "./ConfigStorage"; import { tracking } from "./Analytics"; import semver from 'semver'; import CryptoES from "crypto-es"; +import $ from 'jquery'; import BuildApi from "./BuildApi"; let mspHelper; diff --git a/src/js/tabs/adjustments.js b/src/js/tabs/adjustments.js index 5de1e01dba..7248eca1d5 100644 --- a/src/js/tabs/adjustments.js +++ b/src/js/tabs/adjustments.js @@ -7,6 +7,7 @@ import MSPCodes from '../msp/MSPCodes'; import { API_VERSION_1_42 } from '../data_storage'; import { gui_log } from '../gui_log'; import semver from 'semver'; +import $ from 'jquery'; const adjustments = {}; diff --git a/src/js/tabs/auxiliary.js b/src/js/tabs/auxiliary.js index 3e2756ea78..fad41e5b09 100644 --- a/src/js/tabs/auxiliary.js +++ b/src/js/tabs/auxiliary.js @@ -8,6 +8,7 @@ import MSP from '../msp'; import MSPCodes from '../msp/MSPCodes'; import adjustBoxNameIfPeripheralWithModeID from '../peripherals'; import { getTextWidth } from '../utils/common'; +import $ from 'jquery'; import inflection from "inflection"; const auxiliary = {}; diff --git a/src/js/tabs/cli.js b/src/js/tabs/cli.js index 7d94fe5718..6fbd9d89b7 100644 --- a/src/js/tabs/cli.js +++ b/src/js/tabs/cli.js @@ -12,6 +12,7 @@ import UI_PHONES from "../phones_ui"; import { gui_log } from "../gui_log"; import jBox from "jbox"; import { checkChromeRuntimeError } from "../utils/common"; +import $ from 'jquery'; const cli = { lineDelayMs: 15, diff --git a/src/js/tabs/configuration.js b/src/js/tabs/configuration.js index 6b1335acd9..fb8ea8c248 100644 --- a/src/js/tabs/configuration.js +++ b/src/js/tabs/configuration.js @@ -8,6 +8,7 @@ import MSP from '../msp'; import MSPCodes from '../msp/MSPCodes'; import { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_45 } from '../data_storage'; import { updateTabList } from '../utils/updateTabList'; +import $ from 'jquery'; const configuration = { analyticsChanges: {}, diff --git a/src/js/tabs/failsafe.js b/src/js/tabs/failsafe.js index 89c3d6f5f4..cacbeae4f5 100644 --- a/src/js/tabs/failsafe.js +++ b/src/js/tabs/failsafe.js @@ -7,6 +7,7 @@ import MSPCodes from "../msp/MSPCodes"; import adjustBoxNameIfPeripheralWithModeID from "../peripherals"; import { API_VERSION_1_43, API_VERSION_1_44, API_VERSION_1_45, API_VERSION_1_46 } from "../data_storage"; import semver from 'semver'; +import $ from 'jquery'; const failsafe = {}; diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 38d673aea5..c0779047cf 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -1,3 +1,4 @@ +import $ from 'jquery'; import { i18n } from '../localization'; import GUI, { TABS } from '../gui'; import { get as getConfig, set as setConfig } from '../ConfigStorage'; diff --git a/src/js/tabs/gps.js b/src/js/tabs/gps.js index bd0f3560be..1b36646482 100644 --- a/src/js/tabs/gps.js +++ b/src/js/tabs/gps.js @@ -5,6 +5,7 @@ import GUI, { TABS } from '../gui'; import FC from '../fc'; import MSP from "../msp"; import MSPCodes from "../msp/MSPCodes"; +import $ from 'jquery'; import { have_sensor } from "../sensor_helpers"; import { mspHelper } from '../msp/MSPHelper'; import { updateTabList } from '../utils/updateTabList'; diff --git a/src/js/tabs/help.js b/src/js/tabs/help.js index 3eccf883ab..ee93e5c275 100644 --- a/src/js/tabs/help.js +++ b/src/js/tabs/help.js @@ -1,5 +1,6 @@ import GUI, { TABS } from '../gui'; import { i18n } from '../localization'; +import $ from 'jquery'; const help = {}; help.initialize = function (callback) { diff --git a/src/js/tabs/landing.js b/src/js/tabs/landing.js index 89d163752c..f72d9630bb 100644 --- a/src/js/tabs/landing.js +++ b/src/js/tabs/landing.js @@ -1,5 +1,6 @@ import GUI, { TABS } from '../gui'; import { i18n } from '../localization'; +import $ from 'jquery'; const landing = {}; landing.initialize = function (callback) { diff --git a/src/js/tabs/led_strip.js b/src/js/tabs/led_strip.js index 4d2df99d94..aca38c19d0 100644 --- a/src/js/tabs/led_strip.js +++ b/src/js/tabs/led_strip.js @@ -5,6 +5,7 @@ import FC from "../fc"; import semver from 'semver'; import MSP from "../msp"; import MSPCodes from "../msp/MSPCodes"; +import $ from 'jquery'; import { API_VERSION_1_46 } from '../data_storage'; const led_strip = { diff --git a/src/js/tabs/logging.js b/src/js/tabs/logging.js index 9cb56fcd43..4c6517b82a 100644 --- a/src/js/tabs/logging.js +++ b/src/js/tabs/logging.js @@ -8,6 +8,7 @@ import MSP from '../msp.js'; import MSPCodes from '../msp/MSPCodes.js'; import CONFIGURATOR from '../data_storage.js'; import { gui_log } from '../gui_log.js'; +import $ from 'jquery'; const logging = {}; logging.initialize = function (callback) { diff --git a/src/js/tabs/motors.js b/src/js/tabs/motors.js index 84c5143205..1950e4f880 100644 --- a/src/js/tabs/motors.js +++ b/src/js/tabs/motors.js @@ -18,6 +18,7 @@ import { updateTabList } from "../utils/updateTabList"; import { isInt, getMixerImageSrc } from "../utils/common"; import semver from 'semver'; import * as d3 from 'd3'; +import $ from 'jquery'; const motors = { previousDshotBidir: null, diff --git a/src/js/tabs/onboard_logging.js b/src/js/tabs/onboard_logging.js index f80d879aca..bec9a96b93 100644 --- a/src/js/tabs/onboard_logging.js +++ b/src/js/tabs/onboard_logging.js @@ -11,6 +11,7 @@ import { generateFilename } from "../utils/generate_filename"; import semver from 'semver'; import { showErrorDialog } from "../utils/showErrorDialog"; import { checkChromeRuntimeError } from "../utils/common"; +import $ from 'jquery'; let sdcardTimer; diff --git a/src/js/tabs/options.js b/src/js/tabs/options.js index b7e81850d9..1d5d081760 100644 --- a/src/js/tabs/options.js +++ b/src/js/tabs/options.js @@ -6,6 +6,7 @@ import CliAutoComplete from '../CliAutoComplete'; import DarkTheme, { setDarkTheme } from '../DarkTheme'; import { checkForConfiguratorUpdates } from '../utils/checkForConfiguratorUpdates'; import { checkSetupAnalytics } from '../Analytics'; +import $ from 'jquery'; import CONFIGURATOR from '../data_storage'; const options = {}; diff --git a/src/js/tabs/osd.js b/src/js/tabs/osd.js index e374fad07f..67ab4b03bf 100644 --- a/src/js/tabs/osd.js +++ b/src/js/tabs/osd.js @@ -15,6 +15,7 @@ import jBox from "jbox"; import inflection from "inflection"; import { checkChromeRuntimeError } from "../utils/common"; import debounce from "lodash.debounce"; +import $ from 'jquery'; const FONT = {}; const SYM = {}; diff --git a/src/js/tabs/pid_tuning.js b/src/js/tabs/pid_tuning.js index 41781d82d9..d974d61746 100644 --- a/src/js/tabs/pid_tuning.js +++ b/src/js/tabs/pid_tuning.js @@ -15,6 +15,7 @@ import { gui_log } from "../gui_log"; import { degToRad, isInt } from "../utils/common"; import semver from "semver"; import * as THREE from "three"; +import $ from 'jquery'; const pid_tuning = { RATE_PROFILE_MASK: 128, diff --git a/src/js/tabs/ports.js b/src/js/tabs/ports.js index 60924aadb0..139a18848a 100644 --- a/src/js/tabs/ports.js +++ b/src/js/tabs/ports.js @@ -8,6 +8,7 @@ import MSP from '../msp'; import MSPCodes from '../msp/MSPCodes'; import { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_45 } from '../data_storage'; import BOARD from '../boards'; +import $ from 'jquery'; const ports = { analyticsChanges: {}, diff --git a/src/js/tabs/power.js b/src/js/tabs/power.js index b19727d909..f64df534ed 100644 --- a/src/js/tabs/power.js +++ b/src/js/tabs/power.js @@ -6,6 +6,7 @@ import FC from '../fc'; import MSP from '../msp'; import MSPCodes from '../msp/MSPCodes'; import jBox from 'jbox'; +import $ from 'jquery'; const power = { supported: false, diff --git a/src/js/tabs/receiver.js b/src/js/tabs/receiver.js index ecdb2b4171..afa30ee60c 100644 --- a/src/js/tabs/receiver.js +++ b/src/js/tabs/receiver.js @@ -18,7 +18,7 @@ import semver from 'semver'; import { updateTabList } from "../utils/updateTabList"; import * as THREE from 'three'; import * as d3 from "d3"; - +import $ from 'jquery'; import CryptoES from 'crypto-es'; const receiver = { diff --git a/src/js/tabs/receiver_msp.js b/src/js/tabs/receiver_msp.js index b510a3d08c..f65b90f450 100644 --- a/src/js/tabs/receiver_msp.js +++ b/src/js/tabs/receiver_msp.js @@ -1,4 +1,5 @@ import windowWatcherUtil from "../utils/window_watchers"; +import $ from 'jquery'; const css_dark = [ '/css/dark-theme.css', diff --git a/src/js/tabs/sensors.js b/src/js/tabs/sensors.js index 1637783e22..fb4123c851 100644 --- a/src/js/tabs/sensors.js +++ b/src/js/tabs/sensors.js @@ -7,6 +7,7 @@ import MSP from "../msp"; import MSPCodes from "../msp/MSPCodes"; import serial from "../serial"; import * as d3 from 'd3'; +import $ from 'jquery'; import semver from 'semver'; import { API_VERSION_1_46 } from "../data_storage"; diff --git a/src/js/tabs/servos.js b/src/js/tabs/servos.js index 880a9d23b6..e2d995bfc4 100644 --- a/src/js/tabs/servos.js +++ b/src/js/tabs/servos.js @@ -5,6 +5,7 @@ import FC from "../fc"; import MSP from "../msp"; import MSPCodes from "../msp/MSPCodes"; import { gui_log } from "../gui_log"; +import $ from 'jquery'; const servos = {}; servos.initialize = function (callback) { diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index 340c099b40..0bb8526caa 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -11,6 +11,7 @@ import Model from '../model'; import MSPCodes from '../msp/MSPCodes'; import CONFIGURATOR, { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_46 } from '../data_storage'; import { gui_log } from '../gui_log'; +import $ from 'jquery'; const setup = { yaw_fix: 0.0, diff --git a/src/js/tabs/setup_osd.js b/src/js/tabs/setup_osd.js index bd9a47d9cd..7b838755b0 100644 --- a/src/js/tabs/setup_osd.js +++ b/src/js/tabs/setup_osd.js @@ -3,6 +3,7 @@ import GUI, { TABS } from '../gui'; import MSP from "../msp"; import MSPCodes from "../msp/MSPCodes"; import { gui_log } from "../gui_log"; +import $ from 'jquery'; const setup_osd = { }; diff --git a/src/js/tabs/static_tab.js b/src/js/tabs/static_tab.js index 27d8ffa10b..283604b2f2 100644 --- a/src/js/tabs/static_tab.js +++ b/src/js/tabs/static_tab.js @@ -1,5 +1,6 @@ import { i18n } from '../localization'; import GUI, { TABS } from '../gui'; +import $ from 'jquery'; const staticTab = {}; staticTab.initialize = function (staticTabName, callback) { diff --git a/src/js/tabs/transponder.js b/src/js/tabs/transponder.js index 073d18ce35..69f5c01ab2 100644 --- a/src/js/tabs/transponder.js +++ b/src/js/tabs/transponder.js @@ -5,6 +5,7 @@ import FC from "../fc"; import MSP from "../msp"; import MSPCodes from "../msp/MSPCodes"; import { gui_log } from "../gui_log"; +import $ from 'jquery'; const transponder = { available: false, diff --git a/src/js/tabs/vtx.js b/src/js/tabs/vtx.js index daf91d9654..38646e1d9d 100644 --- a/src/js/tabs/vtx.js +++ b/src/js/tabs/vtx.js @@ -14,6 +14,7 @@ import { API_VERSION_1_42, API_VERSION_1_44 } from '../data_storage'; import UI_PHONES from "../phones_ui"; import { gui_log } from "../gui_log"; import { checkChromeRuntimeError } from "../utils/common"; +import $ from 'jquery'; const vtx = { supported: false, diff --git a/src/js/update_dataflash_global.js b/src/js/update_dataflash_global.js index 293352ed31..090a4b5531 100644 --- a/src/js/update_dataflash_global.js +++ b/src/js/update_dataflash_global.js @@ -1,4 +1,5 @@ import FC from "./fc"; +import $ from 'jquery'; export function update_dataflash_global() { function formatFilesize(bytes) { diff --git a/src/js/utils/checkForConfiguratorUpdates.js b/src/js/utils/checkForConfiguratorUpdates.js index 43bb20b8ee..d54cf7ab65 100644 --- a/src/js/utils/checkForConfiguratorUpdates.js +++ b/src/js/utils/checkForConfiguratorUpdates.js @@ -3,6 +3,7 @@ import { get as getConfig } from "../ConfigStorage"; import CONFIGURATOR from "../data_storage"; import { i18n } from "../localization"; import { gui_log } from "../gui_log"; +import $ from 'jquery'; function notifyOutdatedVersion(data) { diff --git a/src/js/utils/common.js b/src/js/utils/common.js index 11e0ac7007..6cb4a1acd5 100644 --- a/src/js/utils/common.js +++ b/src/js/utils/common.js @@ -2,6 +2,7 @@ import semver from "semver"; import { mixerList } from "../model"; import CONFIGURATOR from "../data_storage"; import { gui_log } from "../gui_log"; +import $ from "jquery"; export function millitime() { return new Date().getTime(); diff --git a/src/js/utils/isExportModeEnabled.js b/src/js/utils/isExportModeEnabled.js index 59a7ea65c8..43664754f5 100644 --- a/src/js/utils/isExportModeEnabled.js +++ b/src/js/utils/isExportModeEnabled.js @@ -1,3 +1,5 @@ +import $ from 'jquery'; + export function isExpertModeEnabled() { return $('input[name="expertModeCheckbox"]').is(':checked'); } diff --git a/src/js/utils/showErrorDialog.js b/src/js/utils/showErrorDialog.js index f33b7ea6b7..9b03b96b98 100644 --- a/src/js/utils/showErrorDialog.js +++ b/src/js/utils/showErrorDialog.js @@ -1,3 +1,4 @@ +import $ from 'jquery'; export function showErrorDialog(message) { const dialog = $('.dialogError')[0]; diff --git a/src/js/utils/updateTabList.js b/src/js/utils/updateTabList.js index ca384bc4f3..14c9041ddc 100644 --- a/src/js/utils/updateTabList.js +++ b/src/js/utils/updateTabList.js @@ -1,3 +1,5 @@ +import $ from 'jquery'; + export function updateTabList(features) { const isExpertModeEnabled = $('input[name="expertModeCheckbox"]').is(':checked'); diff --git a/src/main.html b/src/main.html index 78e55fe21e..47356cedf6 100644 --- a/src/main.html +++ b/src/main.html @@ -3,7 +3,7 @@ - + @@ -53,18 +53,11 @@ + - - - - - - - - diff --git a/src/tabs/pid_tuning.html b/src/tabs/pid_tuning.html index 6cbee4d269..a17d22a4c8 100644 --- a/src/tabs/pid_tuning.html +++ b/src/tabs/pid_tuning.html @@ -1199,7 +1199,7 @@
    -
    +
    diff --git a/src/tabs/presets/DetailedDialog/PresetsDetailedDialog.js b/src/tabs/presets/DetailedDialog/PresetsDetailedDialog.js index c657096002..35e70ca196 100644 --- a/src/tabs/presets/DetailedDialog/PresetsDetailedDialog.js +++ b/src/tabs/presets/DetailedDialog/PresetsDetailedDialog.js @@ -5,6 +5,7 @@ import PresetTitlePanel from "../TitlePanel/PresetTitlePanel"; import FC from "../../../js/fc"; import { marked } from "marked"; import DOMPurify from "dompurify"; +import $ from 'jquery'; export default class PresetsDetailedDialog { constructor(domDialog, pickedPresetList, onPresetPickedCallback, favoritePresets) { diff --git a/src/tabs/presets/SourcesDialog/SourcePanel.js b/src/tabs/presets/SourcesDialog/SourcePanel.js index 273a62d97e..7bf118694d 100644 --- a/src/tabs/presets/SourcesDialog/SourcePanel.js +++ b/src/tabs/presets/SourcesDialog/SourcePanel.js @@ -1,6 +1,7 @@ import { i18n } from "../../../js/localization"; import GUI from "../../../js/gui"; import PresetSource from "./PresetSource"; +import $ from 'jquery'; export default class SourcePanel { constructor(parentDiv, presetSource) { diff --git a/src/tabs/presets/SourcesDialog/SourcesDialog.js b/src/tabs/presets/SourcesDialog/SourcesDialog.js index 671b484636..53e7f20404 100644 --- a/src/tabs/presets/SourcesDialog/SourcesDialog.js +++ b/src/tabs/presets/SourcesDialog/SourcesDialog.js @@ -2,6 +2,7 @@ import { i18n } from "../../../js/localization"; import { get as getConfig, set as setConfig } from "../../../js/ConfigStorage"; import PresetSource from "./PresetSource"; import SourcePanel from "./SourcePanel"; +import $ from 'jquery'; export default class PresetsSourcesDialog { constructor(domDialog) { diff --git a/src/tabs/presets/TitlePanel/PresetTitlePanel.js b/src/tabs/presets/TitlePanel/PresetTitlePanel.js index ec5d3673c5..a84ad15e05 100644 --- a/src/tabs/presets/TitlePanel/PresetTitlePanel.js +++ b/src/tabs/presets/TitlePanel/PresetTitlePanel.js @@ -1,4 +1,5 @@ import { i18n } from "../../../js/localization"; +import $ from 'jquery'; export default class PresetTitlePanel { diff --git a/src/tabs/presets/presets.js b/src/tabs/presets/presets.js index 79a9d8a69f..cfb565b3f9 100644 --- a/src/tabs/presets/presets.js +++ b/src/tabs/presets/presets.js @@ -1,3 +1,4 @@ +import '../../js/jqueryPlugins'; import GUI, { TABS } from '../../js/gui'; import { get as getConfig, set as setConfig } from '../../js/ConfigStorage'; import { generateFilename } from '../../js/utils/generate_filename'; @@ -5,6 +6,7 @@ import { i18n } from '../../js/localization'; import FC from '../../js/fc'; import CONFIGURATOR from '../../js/data_storage'; import UI_PHONES from '../../js/phones_ui'; +import $ from 'jquery'; import { favoritePresets } from './FavoritePresets'; import CliEngine from './CliEngine'; diff --git a/yarn.lock b/yarn.lock index 4469d33371..d21a08071a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9970,20 +9970,22 @@ jquery-touchswipe@^1.6.19: resolved "https://registry.yarnpkg.com/jquery-touchswipe/-/jquery-touchswipe-1.6.19.tgz#dfd5ddaec0b78212dd500d29707129b9c7fd6cd4" integrity sha512-b0BGje9reNRU3u6ksAK9QqnX7yBRgLNe/wYG7DOfyDlhBlYjayIT8bSOHmcuvptIDW/ubM9CTW/mnZf9Rohuow== -jquery-ui-npm@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/jquery-ui-npm/-/jquery-ui-npm-1.12.0.tgz#3f2cae88195c7d48acf3786cfa900d0403814e4d" - integrity sha1-PyyuiBlcfUis83hs+pANBAOBTk0= +jquery-ui@^1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.13.2.tgz#de03580ae6604773602f8d786ad1abfb75232034" + integrity sha512-wBZPnqWs5GaYJmo1Jj0k/mrSkzdQzKDwhXNtHKcBdAcKVxMM3KNYFq+iJ2i1rwiG53Z8M4mTn3Qxrm17uH1D4Q== + dependencies: + jquery ">=1.8.0 <4.0.0" -jquery@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" - integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== +jquery@3.6.3, "jquery@>=1.8.0 <4.0.0", jquery@^3.6.0: + version "3.6.3" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.3.tgz#23ed2ffed8a19e048814f13391a19afcdba160e6" + integrity sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg== -jquery@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.1.tgz#fab0408f8b45fc19f956205773b62b292c147a16" - integrity sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw== +jquery@^3.6.3: + version "3.7.0" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.0.tgz#fe2c01a05da500709006d8790fe21c8a39d75612" + integrity sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ== js-base64@^2.1.9: version "2.6.4" From 7bca5f9b83bcb4c8b64c6b91f4f7af24664f29ab Mon Sep 17 00:00:00 2001 From: ASDosjani <62965528+ASDosjani@users.noreply.github.com> Date: Fri, 18 Aug 2023 03:53:37 +0200 Subject: [PATCH 152/393] Add LED strip sliders (#3531) * Add LED strip sliders * Update src/js/msp/MSPHelper.js Co-authored-by: Mark Haslinghuis * descriptions * higher rainbow frequency --------- Co-authored-by: Mark Haslinghuis tested today --- locales/en/messages.json | 25 ++++++++++- src/css/tabs/led_strip.less | 35 +++++++++++++++ src/js/fc.js | 1 + src/js/msp/MSPCodes.js | 2 + src/js/msp/MSPHelper.js | 18 +++++++- src/js/tabs/led_strip.js | 85 ++++++++++++++++++++++++++++++++++++- src/tabs/led_strip.html | 23 ++++++++++ 7 files changed, 186 insertions(+), 3 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 0c2d11dafc..d31dafa1ce 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -3670,6 +3670,29 @@ "ledStripVtxOverlay": { "message": "VTX (uses vtx frequency to assign color)" }, + "ledStripBrightnessSliderTitle": { + "message": "Brightness", + "description": "Brightness of the LED Strip" + }, + "ledStripBrightnessSliderHelp": { + "message": "Maximum brightness percent of the LEDs." + }, + "ledStripRainbowDeltaSliderTitle": { + "message": "Delta", + "description": "LED Strip rainbow effect delta" + }, + "ledStripRainbowDeltaSliderHelp": { + "message": "Hue difference between each LEDs.", + "description": "Hint on LED Strip tab for rainbow delta" + }, + "ledStripRainbowFreqSliderTitle": { + "message": "Frequency", + "description": "LED Strip rainbow effect frequency" + }, + "ledStripRainbowFreqSliderHelp": { + "message": "Frequency of the color change, in other terms the speed of the effect.", + "description": "Hint on LED Strip tab for rainbow frequency" + }, "ledStripFunctionSection": { "message": "LED Functions" }, @@ -3827,7 +3850,7 @@ }, "ledStripRainbowOverlay": { "message": "Rainbow", - "description": "Rainbow effect switch label on LED Strip tab" + "description": "Label of rainbow effect switch on LED Strip tab" }, "ledStripOverlayTitle": { "message": "Overlay" diff --git a/src/css/tabs/led_strip.less b/src/css/tabs/led_strip.less index d25c61df87..5ce70a453c 100644 --- a/src/css/tabs/led_strip.less +++ b/src/css/tabs/led_strip.less @@ -250,7 +250,42 @@ background: var(--boxBackground); color: var(--defaultText); } + .rainbowSlidersDiv { + display: none; + margin-top: 5px; + .rainbowDeltaSlider, .rainbowFreqSlider { + display: flex; + align-items: center; + input { + width: 150px; + margin-right: 5px; + margin-top: 5px; + } + label { + margin-right: 10px; + margin-top: 5px; + } + } + } + } + + .brightnessSliderDiv { + margin-top: -15px; + .brightnessSlider{ + display: flex; + align-items: center; + input { + width: 150px; + margin-right: 5px; + margin-top: 5px; + } + label { + margin-right: 10px; + margin-top: 5px; + } + } } + .colorDefineSliders { display: inline-block; position: absolute; diff --git a/src/js/fc.js b/src/js/fc.js index 2dcc0f2cb3..c9b72b5b41 100644 --- a/src/js/fc.js +++ b/src/js/fc.js @@ -127,6 +127,7 @@ const FC = { LED_COLORS: null, LED_MODE_COLORS: null, LED_STRIP: null, + LED_CONFIG_VALUES: [], MISC: null, // DEPRECATED MIXER_CONFIG: null, MODE_RANGES: null, diff --git a/src/js/msp/MSPCodes.js b/src/js/msp/MSPCodes.js index 02ba9e7baf..9fdfd9777b 100644 --- a/src/js/msp/MSPCodes.js +++ b/src/js/msp/MSPCodes.js @@ -168,6 +168,8 @@ const MSPCodes = { MSP_MULTIPLE_MSP: 230, + MSP_SET_LED_STRIP_CONFIG_VALUES:231, + MSP_LED_STRIP_CONFIG_VALUES: 232, MSP_MODE_RANGES_EXTRA: 238, MSP_SET_ACC_TRIM: 239, MSP_ACC_TRIM: 240, diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index b80b7594fb..d651e190b2 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -1298,7 +1298,15 @@ MspHelper.prototype.process_data = function(dataHandler) { case MSPCodes.MSP_SET_LED_STRIP_MODECOLOR: console.log('Led strip mode colors saved'); break; - + case MSPCodes.MSP_LED_STRIP_CONFIG_VALUES: + FC.LED_CONFIG_VALUES = { + brightness: data.readU8(), + rainbow_delta: data.readU8(), + rainbow_freq: data.readU16(), + }; + break; + case MSPCodes.MSP_SET_LED_STRIP_CONFIG_VALUES: + break; case MSPCodes.MSP_DATAFLASH_SUMMARY: if (data.byteLength >= 13) { flags = data.readU8(); @@ -2632,6 +2640,14 @@ MspHelper.prototype.sendLedStripModeColors = function(onCompleteCallback) { } }; +MspHelper.prototype.sendLedStripConfigValues = function(onCompleteCallback) { + const buffer = []; + buffer.push8(FC.LED_CONFIG_VALUES.brightness); + buffer.push8(FC.LED_CONFIG_VALUES.rainbow_delta); + buffer.push16(FC.LED_CONFIG_VALUES.rainbow_freq); + MSP.send_message(MSPCodes.MSP_SET_LED_STRIP_CONFIG_VALUES, buffer, false, onCompleteCallback); +}; + MspHelper.prototype.serialPortFunctionMaskToFunctions = function(functionMask) { const self = this; const functions = []; diff --git a/src/js/tabs/led_strip.js b/src/js/tabs/led_strip.js index aca38c19d0..7c547fe610 100644 --- a/src/js/tabs/led_strip.js +++ b/src/js/tabs/led_strip.js @@ -41,7 +41,11 @@ led_strip.initialize = function (callback, scrollPosition) { } function load_led_mode_colors() { - MSP.send_message(MSPCodes.MSP_LED_STRIP_MODECOLOR, false, false, load_html); + MSP.send_message(MSPCodes.MSP_LED_STRIP_MODECOLOR, false, false, load_led_config_values); + } + + function load_led_config_values() { + MSP.send_message(MSPCodes.MSP_LED_STRIP_CONFIG_VALUES, false, false, load_html); } function load_html() { @@ -378,6 +382,8 @@ led_strip.initialize = function (callback, scrollPosition) { if (feature_o.is(':checked') !== newVal) { feature_o.prop('checked', newVal); feature_o.trigger('change'); + + $('.rainbowSlidersDiv').toggle($('.checkbox.rainbowOverlay').find('input').is(':checked')); //rainbow slider visibility } }); @@ -504,6 +510,11 @@ led_strip.initialize = function (callback, scrollPosition) { } } + //Change Rainbow slider visibility + if (that.is('.function-y')) { + $('.rainbowSlidersDiv').toggle(that.is(':checked')); + } + if ($('.ui-selected').length > 0) { TABS.led_strip.overlays.forEach(function(letter) { if ($(that).is(functionTag + letter)) { @@ -555,6 +566,78 @@ led_strip.initialize = function (callback, scrollPosition) { $(this).addClass(`color-${led.color}`); }); + //default slider values + $('div.brightnessSlider input').first().prop('value', FC.LED_CONFIG_VALUES.brightness); + $('div.brightnessSlider label').first().text($('div.brightnessSlider input').first().val()); + $('div.rainbowDeltaSlider input').first().prop('value', FC.LED_CONFIG_VALUES.rainbow_delta); + $('div.rainbowDeltaSlider label').first().text($('div.rainbowDeltaSlider input').first().val()); + $('div.rainbowFreqSlider input').first().prop('value', FC.LED_CONFIG_VALUES.rainbow_freq); + $('div.rainbowFreqSlider label').first().text($('div.rainbowFreqSlider input').first().val()); + + //Brightness slider + let bufferingBrightness = [], + buffer_delay_brightness = false; + + $('div.brightnessSlider input').on('input', function () { + const val = $(this).val(); + bufferingBrightness.push(val); + + if (!buffer_delay_brightness) { + buffer_delay_brightness = setTimeout(function () { + FC.LED_CONFIG_VALUES.brightness = bufferingBrightness.pop(); + mspHelper.sendLedStripConfigValues(); + + bufferingBrightness = []; + buffer_delay_brightness = false; + }, 10); + } + + $('div.brightnessSlider label').first().text(val); + }); + + //Rainbow Delta slider + let bufferingRainbowDelta = [], + buffer_delay_rainbow_delta = false; + + $('div.rainbowDeltaSlider input').on('input', function () { + const val = $(this).val(); + bufferingRainbowDelta.push(val); + + if (!buffer_delay_rainbow_delta) { + buffer_delay_rainbow_delta = setTimeout(function () { + FC.LED_CONFIG_VALUES.rainbow_delta = bufferingRainbowDelta.pop(); + mspHelper.sendLedStripConfigValues(); + + bufferingRainbowDelta = []; + buffer_delay_rainbow_delta = false; + }, 10); + } + + $('div.rainbowDeltaSlider label').first().text(val); + }); + + //Rainbow Frequency slider + let bufferingRainbowFreq = [], + buffer_delay_rainbow_freq = false; + + $('div.rainbowFreqSlider input').on('input', function () { + const val = $(this).val(); + bufferingRainbowFreq.push(val); + + if (!buffer_delay_rainbow_freq) { + buffer_delay_rainbow_freq = setTimeout(function () { + FC.LED_CONFIG_VALUES.rainbow_freq = bufferingRainbowFreq.pop(); + mspHelper.sendLedStripConfigValues(); + + bufferingRainbowFreq = []; + buffer_delay_rainbow_freq = false; + }, 10); + } + + $('div.rainbowFreqSlider label').first().text(val); + }); + + $('a.save').on('click', function () { mspHelper.sendLedStripConfig(send_led_strip_colors); diff --git a/src/tabs/led_strip.html b/src/tabs/led_strip.html index 9d8d174871..3b6b70603a 100644 --- a/src/tabs/led_strip.html +++ b/src/tabs/led_strip.html @@ -88,6 +88,20 @@
    +
    + +
    + + +
    +
    + +
    + + +
    +
    +
    @@ -186,6 +200,15 @@ +
    + +
    + + +
    +
    +
    +
    From 19d12b5b107a1724c633363741e91be83c759ff7 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Fri, 18 Aug 2023 19:24:31 +0200 Subject: [PATCH 153/393] Revert "Add LED strip sliders" (#3548) Revert "Add LED strip sliders (#3531)" This reverts commit 7bca5f9b83bcb4c8b64c6b91f4f7af24664f29ab. --- locales/en/messages.json | 25 +---------- src/css/tabs/led_strip.less | 35 --------------- src/js/fc.js | 1 - src/js/msp/MSPCodes.js | 2 - src/js/msp/MSPHelper.js | 18 +------- src/js/tabs/led_strip.js | 85 +------------------------------------ src/tabs/led_strip.html | 23 ---------- 7 files changed, 3 insertions(+), 186 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index d31dafa1ce..0c2d11dafc 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -3670,29 +3670,6 @@ "ledStripVtxOverlay": { "message": "VTX (uses vtx frequency to assign color)" }, - "ledStripBrightnessSliderTitle": { - "message": "Brightness", - "description": "Brightness of the LED Strip" - }, - "ledStripBrightnessSliderHelp": { - "message": "Maximum brightness percent of the LEDs." - }, - "ledStripRainbowDeltaSliderTitle": { - "message": "Delta", - "description": "LED Strip rainbow effect delta" - }, - "ledStripRainbowDeltaSliderHelp": { - "message": "Hue difference between each LEDs.", - "description": "Hint on LED Strip tab for rainbow delta" - }, - "ledStripRainbowFreqSliderTitle": { - "message": "Frequency", - "description": "LED Strip rainbow effect frequency" - }, - "ledStripRainbowFreqSliderHelp": { - "message": "Frequency of the color change, in other terms the speed of the effect.", - "description": "Hint on LED Strip tab for rainbow frequency" - }, "ledStripFunctionSection": { "message": "LED Functions" }, @@ -3850,7 +3827,7 @@ }, "ledStripRainbowOverlay": { "message": "Rainbow", - "description": "Label of rainbow effect switch on LED Strip tab" + "description": "Rainbow effect switch label on LED Strip tab" }, "ledStripOverlayTitle": { "message": "Overlay" diff --git a/src/css/tabs/led_strip.less b/src/css/tabs/led_strip.less index 5ce70a453c..d25c61df87 100644 --- a/src/css/tabs/led_strip.less +++ b/src/css/tabs/led_strip.less @@ -250,42 +250,7 @@ background: var(--boxBackground); color: var(--defaultText); } - .rainbowSlidersDiv { - display: none; - margin-top: 5px; - .rainbowDeltaSlider, .rainbowFreqSlider { - display: flex; - align-items: center; - input { - width: 150px; - margin-right: 5px; - margin-top: 5px; - } - label { - margin-right: 10px; - margin-top: 5px; - } - } - } - } - - .brightnessSliderDiv { - margin-top: -15px; - .brightnessSlider{ - display: flex; - align-items: center; - input { - width: 150px; - margin-right: 5px; - margin-top: 5px; - } - label { - margin-right: 10px; - margin-top: 5px; - } - } } - .colorDefineSliders { display: inline-block; position: absolute; diff --git a/src/js/fc.js b/src/js/fc.js index c9b72b5b41..2dcc0f2cb3 100644 --- a/src/js/fc.js +++ b/src/js/fc.js @@ -127,7 +127,6 @@ const FC = { LED_COLORS: null, LED_MODE_COLORS: null, LED_STRIP: null, - LED_CONFIG_VALUES: [], MISC: null, // DEPRECATED MIXER_CONFIG: null, MODE_RANGES: null, diff --git a/src/js/msp/MSPCodes.js b/src/js/msp/MSPCodes.js index 9fdfd9777b..02ba9e7baf 100644 --- a/src/js/msp/MSPCodes.js +++ b/src/js/msp/MSPCodes.js @@ -168,8 +168,6 @@ const MSPCodes = { MSP_MULTIPLE_MSP: 230, - MSP_SET_LED_STRIP_CONFIG_VALUES:231, - MSP_LED_STRIP_CONFIG_VALUES: 232, MSP_MODE_RANGES_EXTRA: 238, MSP_SET_ACC_TRIM: 239, MSP_ACC_TRIM: 240, diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index d651e190b2..b80b7594fb 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -1298,15 +1298,7 @@ MspHelper.prototype.process_data = function(dataHandler) { case MSPCodes.MSP_SET_LED_STRIP_MODECOLOR: console.log('Led strip mode colors saved'); break; - case MSPCodes.MSP_LED_STRIP_CONFIG_VALUES: - FC.LED_CONFIG_VALUES = { - brightness: data.readU8(), - rainbow_delta: data.readU8(), - rainbow_freq: data.readU16(), - }; - break; - case MSPCodes.MSP_SET_LED_STRIP_CONFIG_VALUES: - break; + case MSPCodes.MSP_DATAFLASH_SUMMARY: if (data.byteLength >= 13) { flags = data.readU8(); @@ -2640,14 +2632,6 @@ MspHelper.prototype.sendLedStripModeColors = function(onCompleteCallback) { } }; -MspHelper.prototype.sendLedStripConfigValues = function(onCompleteCallback) { - const buffer = []; - buffer.push8(FC.LED_CONFIG_VALUES.brightness); - buffer.push8(FC.LED_CONFIG_VALUES.rainbow_delta); - buffer.push16(FC.LED_CONFIG_VALUES.rainbow_freq); - MSP.send_message(MSPCodes.MSP_SET_LED_STRIP_CONFIG_VALUES, buffer, false, onCompleteCallback); -}; - MspHelper.prototype.serialPortFunctionMaskToFunctions = function(functionMask) { const self = this; const functions = []; diff --git a/src/js/tabs/led_strip.js b/src/js/tabs/led_strip.js index 7c547fe610..aca38c19d0 100644 --- a/src/js/tabs/led_strip.js +++ b/src/js/tabs/led_strip.js @@ -41,11 +41,7 @@ led_strip.initialize = function (callback, scrollPosition) { } function load_led_mode_colors() { - MSP.send_message(MSPCodes.MSP_LED_STRIP_MODECOLOR, false, false, load_led_config_values); - } - - function load_led_config_values() { - MSP.send_message(MSPCodes.MSP_LED_STRIP_CONFIG_VALUES, false, false, load_html); + MSP.send_message(MSPCodes.MSP_LED_STRIP_MODECOLOR, false, false, load_html); } function load_html() { @@ -382,8 +378,6 @@ led_strip.initialize = function (callback, scrollPosition) { if (feature_o.is(':checked') !== newVal) { feature_o.prop('checked', newVal); feature_o.trigger('change'); - - $('.rainbowSlidersDiv').toggle($('.checkbox.rainbowOverlay').find('input').is(':checked')); //rainbow slider visibility } }); @@ -510,11 +504,6 @@ led_strip.initialize = function (callback, scrollPosition) { } } - //Change Rainbow slider visibility - if (that.is('.function-y')) { - $('.rainbowSlidersDiv').toggle(that.is(':checked')); - } - if ($('.ui-selected').length > 0) { TABS.led_strip.overlays.forEach(function(letter) { if ($(that).is(functionTag + letter)) { @@ -566,78 +555,6 @@ led_strip.initialize = function (callback, scrollPosition) { $(this).addClass(`color-${led.color}`); }); - //default slider values - $('div.brightnessSlider input').first().prop('value', FC.LED_CONFIG_VALUES.brightness); - $('div.brightnessSlider label').first().text($('div.brightnessSlider input').first().val()); - $('div.rainbowDeltaSlider input').first().prop('value', FC.LED_CONFIG_VALUES.rainbow_delta); - $('div.rainbowDeltaSlider label').first().text($('div.rainbowDeltaSlider input').first().val()); - $('div.rainbowFreqSlider input').first().prop('value', FC.LED_CONFIG_VALUES.rainbow_freq); - $('div.rainbowFreqSlider label').first().text($('div.rainbowFreqSlider input').first().val()); - - //Brightness slider - let bufferingBrightness = [], - buffer_delay_brightness = false; - - $('div.brightnessSlider input').on('input', function () { - const val = $(this).val(); - bufferingBrightness.push(val); - - if (!buffer_delay_brightness) { - buffer_delay_brightness = setTimeout(function () { - FC.LED_CONFIG_VALUES.brightness = bufferingBrightness.pop(); - mspHelper.sendLedStripConfigValues(); - - bufferingBrightness = []; - buffer_delay_brightness = false; - }, 10); - } - - $('div.brightnessSlider label').first().text(val); - }); - - //Rainbow Delta slider - let bufferingRainbowDelta = [], - buffer_delay_rainbow_delta = false; - - $('div.rainbowDeltaSlider input').on('input', function () { - const val = $(this).val(); - bufferingRainbowDelta.push(val); - - if (!buffer_delay_rainbow_delta) { - buffer_delay_rainbow_delta = setTimeout(function () { - FC.LED_CONFIG_VALUES.rainbow_delta = bufferingRainbowDelta.pop(); - mspHelper.sendLedStripConfigValues(); - - bufferingRainbowDelta = []; - buffer_delay_rainbow_delta = false; - }, 10); - } - - $('div.rainbowDeltaSlider label').first().text(val); - }); - - //Rainbow Frequency slider - let bufferingRainbowFreq = [], - buffer_delay_rainbow_freq = false; - - $('div.rainbowFreqSlider input').on('input', function () { - const val = $(this).val(); - bufferingRainbowFreq.push(val); - - if (!buffer_delay_rainbow_freq) { - buffer_delay_rainbow_freq = setTimeout(function () { - FC.LED_CONFIG_VALUES.rainbow_freq = bufferingRainbowFreq.pop(); - mspHelper.sendLedStripConfigValues(); - - bufferingRainbowFreq = []; - buffer_delay_rainbow_freq = false; - }, 10); - } - - $('div.rainbowFreqSlider label').first().text(val); - }); - - $('a.save').on('click', function () { mspHelper.sendLedStripConfig(send_led_strip_colors); diff --git a/src/tabs/led_strip.html b/src/tabs/led_strip.html index 3b6b70603a..9d8d174871 100644 --- a/src/tabs/led_strip.html +++ b/src/tabs/led_strip.html @@ -88,20 +88,6 @@
    -
    - -
    - - -
    -
    - -
    - - -
    -
    -
    @@ -200,15 +186,6 @@ -
    - -
    - - -
    -
    -
    -
    From 52df6a16c837726ac17f5dbe09d8d3d0a0de9b08 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 10:55:29 +0200 Subject: [PATCH 154/393] Update translations (#3552) Co-authored-by: Crowdin Bot --- locales/it/messages.json | 10 ++--- locales/pt/messages.json | 88 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 5 deletions(-) diff --git a/locales/it/messages.json b/locales/it/messages.json index 4f0ef003ce..888d752bfd 100644 --- a/locales/it/messages.json +++ b/locales/it/messages.json @@ -190,7 +190,7 @@ "message": "Utilizzando una versione più recente del firmware con una versione obsoleta del Configuratore può significare che la modifica di alcune impostazioni porterà a una configurazione corrotta del firmware e a un modello non funzionante. Inoltre, alcune caratteristiche del firmware saranno configurabili solo via CLI.
    La versione $1 del Betaflight Configurator è disponibile per il download, visita questa pagina per scaricare e installare l'ultima versione con correzioni e miglioramenti.
    Chiudere la finestra del configuratore prima dell'aggiornamento." }, "configuratorUpdateWebsite": { - "message": "Visita la pagina degli aggiornamenti" + "message": "Pagina web degli aggiornamenti" }, "deviceRebooting": { "message": "Dispositivo - Riavvio in corso" @@ -1287,7 +1287,7 @@ "message": "Comando minimo (valore dell'ESC quando disarmato)" }, "configurationThrottleMinimumCommandHelp": { - "message": "Questo è il valore che viene inviato agli ESC quando il mezzo è disarmato. Impostalo su un valore che lasci i motori fermi (1000 per la maggior parte degli ESC)." + "message": "Questo è il valore che viene inviato agli ESC quando il modello è disarmato. Impostalo su un valore che lasci i motori fermi (1000 per la maggior parte degli ESC)." }, "configurationEscProtocolDisabled": { "message": "Seleziona un protocollo per l'output dei motori appropriato per i tuoi ESC.\n$t(escProtocolDisabledMessage.message)" @@ -1442,7 +1442,7 @@ "description": "Option to use Galileo in the GPS configuration" }, "configurationGPSGalileoHelp": { - "message": "Se abilitato, il modulo GPS userà anche il sistema satellitare Galileo, risultando generalmente in più satelliti agganciati. Su Betaflight 4.2.x o precedenti disabilita anche il sistema di potenziato QZSS.", + "message": "Se abilitato, il modulo GPS userà anche il sistema satellitare Galileo, risultando generalmente con più satelliti agganciati. Su Betaflight 4.2.x o precedenti disabilita anche il sistema di potenziato QZSS.", "description": "Help text for the option to use Galileo in the GPS configuration" }, "configurationGPSHomeOnce": { @@ -1450,7 +1450,7 @@ "description": "Option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, "configurationGPSHomeOnceHelp": { - "message": "Quando abilitato, solo il primo armamento dopo la connessione della batteria verrà utilizzato come punto di partenza. Se non abilitato, ogni volta che il quad viene armato il punto di partenza verrà aggiornato.", + "message": "Se abilitato, al primo armamento dopo la connessione della batteria verrà usato come punto di partenza. Se non abilitato, ogni volta che il quad viene armato il punto di partenza verrà aggiornato.", "description": "Help text for the option to set the Home Point with the first arm only, not with each arm in the GPS Configuration" }, "configurationSerialRX": { @@ -2674,7 +2674,7 @@ "message": "Altitudine:" }, "gpsLatLon": { - "message": "Latitudine / Longitudine Attuale:", + "message": "Latitudine / Longitudine Corrente:", "description": "Show GPS position - Latitude / Longitude" }, "gpsHeading": { diff --git a/locales/pt/messages.json b/locales/pt/messages.json index 00899a53d6..694b8e67bd 100644 --- a/locales/pt/messages.json +++ b/locales/pt/messages.json @@ -2194,10 +2194,26 @@ "auxiliaryModeLogicAND": { "message": "AND" }, + "auxiliaryHelpMode_3D": { + "message": "Ativa a direção inversa do motor para fornecer aceleração negativa e permitir o voo invertido. O acelerador torna-se de -100 a +100 em vez de 0 a 100", + "description": "Help text to 3D mode" + }, + "auxiliaryHelpMode_ACROTRAINER": { + "message": "Modo de voo que limita o ângulo da aeronave quando voa no modo acro", + "description": "Help text to ACRO TRAINER mode" + }, + "auxiliaryHelpMode_ARM": { + "message": "Ativa a saída do motor e permite que a aeronave voe", + "description": "Help text to ARM mode" + }, "auxiliaryHelpMode_ANGLE": { "message": "Neste modo auto-nivelado, os canais do roll e do pitch controlam o ângulo entre o eixo relevante e o vertical, alcançando vôo nivelado apenas deixando os sticks centrados", "description": "Help text to ANGLE mode" }, + "auxiliaryHelpMode_ANTIGRAVITY": { + "message": "Modo de voo que aumenta os termos P e I durante movimentos rápidos de acelerador para melhorar o seguimento dos sticks e evitar desvio do nariz em mudanças rápidas no acelerador", + "description": "Help text to ANTIGRAVITY mode" + }, "auxiliaryHelpMode_AIRMODE": { "message": "No modo / mistura padrão, quando o roll, pitch e yaw são calculados e saturam um motor, todos os motores serão reduzidos igualmente. Quando um motor vai abaixo do mínimo, ele é cortado. Se tiver o acelerador logo acima do mínimo e tentou puxar uma rolagem rápidafazer um roll rápido - uma vez que 2 motores não podem ir mais abaixo, essencialmente terá metada da potência (metade do ganho do PID). Se os seus inputs pedirem mais do que a diferença de 100% entre motores altos e baixos, os motores baixos serão cortados, quebrando a simetria do equilíbrio motor através da redução desigual o ganho", "description": "Help text to AIRMODE mode" @@ -2210,6 +2226,14 @@ "message": "Desativar/ativar o beeper incluíndo aviso, estado e modo BEEPER", "description": "Help text to BEEPERMUTE mode" }, + "auxiliaryHelpMode_BEEPERON": { + "message": "Ativar modo BEEPER ON", + "description": "Help text to BEEPER ON mode" + }, + "auxiliaryHelpMode_BEEPGPSSATELLITECOUNT": { + "message": "Ativar modo BEEP GPS SATELLITE", + "description": "Help text to BEEP GPS SATELLITE COUNT mode" + }, "auxiliaryHelpMode_BLACKBOX": { "message": "Ativar registo BlackBox", "description": "Help text to BLACKBOX mode" @@ -2218,6 +2242,14 @@ "message": "Apagar log do BlackBox", "description": "Help text to BLACKBOX ERASE mode" }, + "auxiliaryHelpMode_BOXPREARM": { + "message": "Ativar modo BOXPREARM", + "description": "Help text to BOXPREARM mode" + }, + "auxiliaryHelpMode_CALIB": { + "message": "Iniciar calibração em vôo", + "description": "Help text to CALIB mode" + }, "auxiliaryHelpMode_CAMERACONTROL1": { "message": "Use para alternar CAMERA CONTROL 1 personalizado. Verifique o manual do fornecedor", "description": "Help text to customized CAMERA CONTROL 1 mode" @@ -2230,6 +2262,10 @@ "message": "Use para alternar CAMERA CONTROL 3 personalizado. Verifique o manual do fornecedor", "description": "Help text to customized CAMERA CONTROL 3 mode" }, + "auxiliaryHelpMode_CAMSTAB": { + "message": "Ativa modo de estabilização da câmera", + "description": "Help text to CAMSTAB mode" + }, "auxiliaryHelpMode_FAILSAFE": { "message": "Iniciar etapa 2 do failsafe manualmente", "description": "Help text to FAILSAFE mode" @@ -2242,6 +2278,10 @@ "message": "Aplicar rotação de yaw em relação a uma câmera FPV montada com um ângulo predefinido", "description": "Help text to FPV ANGLE MIX mode" }, + "auxiliaryHelpMode_GPSBEEPSATELLITECOUNT": { + "message": "Use para indicar o número de satélites GPS encontrados ao soar o beep esse número de vezes", + "description": "Help text to GPS BEEP SATELLITE COUNT mode" + }, "auxiliaryHelpMode_GPSRESCUE": { "message": "Ativar 'GPS Rescue' para retornar a nave ao local onde foi armada pela última vez", "description": "Help text to GPS RESCUE mode" @@ -2250,6 +2290,10 @@ "message": "Ajuste de Direção - Define uma nova origem yaw para o modo HEADFREE", "description": "Help text to HEAD ADJ mode" }, + "auxiliaryHelpMode_HEADFREE": { + "message": "Modo de voo onde o yaw está alinhado com um quadro de referência externo (muitas vezes para onde o piloto está virado), em vez do da aeronave. Projetado para iniciantes, mas raramente usado, aconselhamos modo ANGLE", + "description": "Help text to HEADFREE mode" + }, "auxiliaryHelpMode_HORIZON": { "message": "Este modo híbrido funciona exatamente como o modo ANGLE com sticks de roll e pitch centrados (assim permitindo voo autonivelado), depois comporta-se gradualmente cada vez mais como o modo RATE padrão, à medida que os sticks são afastados da posição central", "description": "Help text to HORIZON mode" @@ -2258,6 +2302,18 @@ "message": "Sistema de assistência de início de corrida", "description": "Help text to LAUNCH CONTROL mode" }, + "auxiliaryHelpMode_LEDLOW": { + "message": "Desligar saída LED_STRIP", + "description": "Help text to LEDLOW mode" + }, + "auxiliaryHelpMode_MAG": { + "message": "Fixar Direção para direção do Magnetómetro (controlo do compasso)", + "description": "Help text to MAG mode" + }, + "auxiliaryHelpMode_MSPOVERRIDE": { + "message": "Ativar modo Override de MSP", + "description": "Help text to MSP OVERRIDE mode" + }, "auxiliaryHelpMode_OSDDISABLE": { "message": "Ativar/Desativar On-Screen-Display", "description": "Help text to OSD mode" @@ -2270,6 +2326,10 @@ "message": "Desativar permanentemente uma aeronave caída até que seja reiniciada", "description": "Help text to PARALYZE mode" }, + "auxiliaryHelpMode_PIDAUDIO": { + "message": "Use para alternar o PIDAUDIO", + "description": "Help text to PIDAUDIO mode" + }, "auxiliaryHelpMode_PREARM": { "message": "Quando armar, espere que este switch seja ativado antes de efetivamente armar", "description": "Help text to PREARM mode" @@ -2282,10 +2342,38 @@ "message": "Desativar/ativar comando do stick", "description": "Help text to STICK COMMANDS DISABLE mode" }, + "auxiliaryHelpMode_SERVO1": { + "message": "Use para alternar o SERVO1", + "description": "Help text to SERVO1 mode" + }, + "auxiliaryHelpMode_SERVO2": { + "message": "Use para alternar o SERVO2", + "description": "Help text to SERVO2 mode" + }, + "auxiliaryHelpMode_SERVO3": { + "message": "Use para alternar o SERVO3", + "description": "Help text to SERVO3 mode" + }, "auxiliaryHelpMode_TELEMETRY": { "message": "Ativar telemetria via switch", "description": "Help text to TELEMETRY mode" }, + "auxiliaryHelpMode_USER1": { + "message": "Use para alternar o UTILIZADOR1 personalizado. Controla a saída arbitrária via PINIO", + "description": "Help text to customized USER1 mode" + }, + "auxiliaryHelpMode_USER2": { + "message": "Use para alternar o UTILIZADOR2 personalizado. Controla a saída arbitrária via PINIO", + "description": "Help text to customized USER2 mode" + }, + "auxiliaryHelpMode_USER3": { + "message": "Use para alternar o UTILIZADOR3 personalizado. Controla a saída arbitrária via PINIO", + "description": "Help text to customized USER3 mode" + }, + "auxiliaryHelpMode_USER4": { + "message": "Use para alternar o UTILIZADOR4 personalizado. Controla a saída arbitrária via PINIO", + "description": "Help text to customized USER4 mode" + }, "auxiliaryHelpMode_VTXCONTROLDISABLE": { "message": "Desativar o controlo das configurações do VTX através do OSD", "description": "Help text to VTX CONTROL DISABLE mode" From de9077aaee5f8288d5f1960f65767f173789178a Mon Sep 17 00:00:00 2001 From: nerdCopter <56646290+nerdCopter@users.noreply.github.com> Date: Wed, 23 Aug 2023 11:00:06 -0500 Subject: [PATCH 155/393] GH action readme (#3555) --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index e88131167b..1bdca045f0 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,10 @@ If no platform is provided, the build for the host platform is run. You can also use multiple platforms e.g. `yarn gulp --osx64 --linux64`. Other platforms like `--win32`, `--linux32` and `--armv8` can be used too, but they are not officially supported, so use them at your own risk. +#### Leverage GitHub-Actions to build binaries + +You can use the GitHub `Actions` tab in your fork to build binaries as well. Select `Actions`>`Manual Build`>`Run Workflow`. Choose your custom branch and click `Run workflow`. The workflow will dispatch in a few moments and upon completion, the build "Artifacts" will be available for download from within the workflow run. + ## Support If you need help please reach out on the [betaflightgroup](https://betaflightgroup.slack.com) slack channel before raising issues on github. Register and [request slack access here](https://slack.betaflight.com). From 20c37642b3c9a7ed13faac8f3f5a6d28fb168851 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Thu, 24 Aug 2023 11:06:43 +0200 Subject: [PATCH 156/393] Disable search in multiple select field for Other Options field when not selected (#3500) Improve Option field --- src/js/tabs/firmware_flasher.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index c0779047cf..99bee36a2e 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -431,9 +431,19 @@ firmware_flasher.initialize = function (callback) { $('select[name="radioProtocols"]').select2(); $('select[name="telemetryProtocols"]').select2(); $('select[name="motorProtocols"]').select2(); - $('select[name="options"]').select2({ closeOnSelect: false }); + $('select[name="options"]').select2({ tags: false, closeOnSelect: false }); $('select[name="commits"]').select2({ tags: true }); + $('select[name="options"]') + .on('select2:opening', function() { + const searchfield = $(this).parent().find('.select2-search__field'); + searchfield.prop('disabled', false); + }) + .on('select2:closing', function() { + const searchfield = $(this).parent().find('.select2-search__field'); + searchfield.prop('disabled', true); + }); + $('select[name="radioProtocols"]').on("select2:select", function() { const selectedProtocol = $('select[name="radioProtocols"] option:selected').first().val(); if (selectedProtocol) { @@ -502,6 +512,7 @@ firmware_flasher.initialize = function (callback) { 'select[name="options"]', 'select[name="commits"]', ]; + $(document).on('select2:open', select2Elements.join(','), () => { const allFound = document.querySelectorAll('.select2-container--open .select2-search__field'); $(this).one('mouseup keyup', () => { From c82116d633db4eec2f97a646c8142ab7a27bf3b7 Mon Sep 17 00:00:00 2001 From: Tomas Chmelevskij Date: Sun, 27 Aug 2023 23:41:03 +0300 Subject: [PATCH 157/393] refactor: MSP binding to `this` (#3557) --- src/js/msp.js | 59 ++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/src/js/msp.js b/src/js/msp.js index 13ac6460e5..ee9895333b 100644 --- a/src/js/msp.js +++ b/src/js/msp.js @@ -61,7 +61,7 @@ const MSP = { JUMBO_FRAME_SIZE_LIMIT: 255, - read: function (readInfo) { + read(readInfo) { if (CONFIGURATOR.virtualMode) { return; } @@ -209,11 +209,11 @@ const MSP = { } this.last_received_timestamp = Date.now(); }, - _initialize_read_buffer: function() { + _initialize_read_buffer() { this.message_buffer = new ArrayBuffer(this.message_length_expected); this.message_buffer_uint8_view = new Uint8Array(this.message_buffer); }, - _dispatch_message: function(expectedChecksum) { + _dispatch_message(expectedChecksum) { if (this.message_checksum === expectedChecksum) { // message received, store dataview this.dataView = new DataView(this.message_buffer, 0, this.message_length_expected); @@ -229,21 +229,20 @@ const MSP = { this.messageIsJumboFrame = false; this.crcError = false; }, - notify: function() { - const self = this; - self.listeners.forEach(function(listener) { - listener(self); + notify() { + this.listeners.forEach((listener) => { + listener(this); }); }, - listen: function(listener) { + listen(listener) { if (this.listeners.indexOf(listener) == -1) { this.listeners.push(listener); } }, - clearListeners: function() { + clearListeners() { this.listeners = []; }, - crc8_dvb_s2: function(crc, ch) { + crc8_dvb_s2(crc, ch) { crc ^= ch; for (let ii = 0; ii < 8; ii++) { if (crc & 0x80) { @@ -254,14 +253,14 @@ const MSP = { } return crc; }, - crc8_dvb_s2_data: function(data, start, end) { + crc8_dvb_s2_data(data, start, end) { let crc = 0; for (let ii = start; ii < end; ii++) { crc = this.crc8_dvb_s2(crc, data[ii]); } return crc; }, - encode_message_v1: function(code, data) { + encode_message_v1(code, data) { const dataLength = data ? data.length : 0; // always reserve 6 bytes for protocol overhead ! const bufferSize = dataLength + 6; @@ -284,7 +283,7 @@ const MSP = { bufView[5 + dataLength] = checksum; return bufferOut; }, - encode_message_v2: function (code, data) { + encode_message_v2(code, data) { const dataLength = data ? data.length : 0; // 9 bytes for protocol overhead const bufferSize = dataLength + 9; @@ -304,7 +303,7 @@ const MSP = { bufView[bufferSize - 1] = this.crc8_dvb_s2_data(bufView, 3, bufferSize - 1); return bufferOut; }, - send_message: function (code, data, callback_sent, callback_msp, doCallbackOnError) { + send_message(code, data, callback_sent, callback_msp, doCallbackOnError) { if (code === undefined || !serial.connectionId || CONFIGURATOR.virtualMode) { if (callback_msp) { callback_msp(); @@ -314,7 +313,7 @@ const MSP = { // Check if request already exists in the queue let requestExists = false; - for (const instance of MSP.callbacks) { + for (const instance of this.callbacks) { if (instance.code === code) { requestExists = true; @@ -333,25 +332,25 @@ const MSP = { }; if (!requestExists) { - obj.timer = setTimeout(function () { - console.warn(`MSP: data request timed-out: ${code} ID: ${serial.connectionId} TAB: ${GUI.active_tab} TIMEOUT: ${MSP.timeout} QUEUE: ${MSP.callbacks.length} (${MSP.callbacks.map(function (e) { return e.code; })})`); - serial.send(bufferOut, function (_sendInfo) { + obj.timer = setTimeout(() => { + console.warn(`MSP: data request timed-out: ${code} ID: ${serial.connectionId} TAB: ${GUI.active_tab} TIMEOUT: ${this.timeout} QUEUE: ${this.callbacks.length} (${this.callbacks.map((e) => e.code)})`); + serial.send(bufferOut, (_sendInfo) => { obj.stop = performance.now(); const executionTime = Math.round(obj.stop - obj.start); - MSP.timeout = Math.max(MSP.MIN_TIMEOUT, Math.min(executionTime, MSP.MAX_TIMEOUT)); + this.timeout = Math.max(this.MIN_TIMEOUT, Math.min(executionTime, this.MAX_TIMEOUT)); }); - }, MSP.timeout); + }, this.timeout); } - MSP.callbacks.push(obj); + this.callbacks.push(obj); // always send messages with data payload (even when there is a message already in the queue) if (data || !requestExists) { - if (MSP.timeout > MSP.MIN_TIMEOUT) { - MSP.timeout--; + if (this.timeout > this.MIN_TIMEOUT) { + this.timeout--; } - serial.send(bufferOut, function (sendInfo) { + serial.send(bufferOut, (sendInfo) => { if (sendInfo.bytesSent === bufferOut.byteLength) { if (callback_sent) { callback_sent(); @@ -366,23 +365,21 @@ const MSP = { /** * resolves: {command: code, data: data, length: message_length} */ - promise: async function(code, data) { - const self = this; - - return new Promise(function(resolve) { - self.send_message(code, data, false, function(_data) { + async promise(code, data) { + return new Promise((resolve) => { + this.send_message(code, data, false, (_data) => { resolve(_data); }); }); }, - callbacks_cleanup: function () { + callbacks_cleanup() { for (const callback of this.callbacks) { clearInterval(callback.timer); } this.callbacks = []; }, - disconnect_cleanup: function () { + disconnect_cleanup() { this.state = 0; // reset packet state for "clean" initial entry (this is only required if user hot-disconnects) this.packet_error = 0; // reset CRC packet error counter for next session From 393e4465dab415b7887cef68f339c14e6534bc94 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Aug 2023 11:12:31 +0200 Subject: [PATCH 158/393] Update translations (#3558) Co-authored-by: Crowdin Bot --- locales/uk/messages.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/uk/messages.json b/locales/uk/messages.json index 875e4f68de..68d4040f71 100644 --- a/locales/uk/messages.json +++ b/locales/uk/messages.json @@ -4078,7 +4078,7 @@ "description": "P and I gain tuning slider helpicon message" }, "pidTuningResponseSlider": { - "message": "Відповідь на стіки:
    Підсилення упередження", + "message": "Відповідь на стіки:
    Коефіцієнт упередження", "description": "Response tuning slider label" }, "pidTuningResponseSliderHelp": { @@ -4102,7 +4102,7 @@ "description": "D_min slider helpicon message" }, "pidTuningRollPitchRatioSlider": { - "message": "Демпфування тангажу:
    Тангаж:Крен D", + "message": "Демпфування тангажа:
    Тангаж:Крен D", "description": "Pitch-Roll Ratio slider label" }, "pidTuningRollPitchRatioSliderHelp": { From a4e8e2e32378ddeb2d065e8fa03676caaa4e6303 Mon Sep 17 00:00:00 2001 From: Supafly FPV <46397720+SupaflyFPV@users.noreply.github.com> Date: Wed, 30 Aug 2023 00:26:51 +0100 Subject: [PATCH 159/393] Axis Logo Update (#3559) * Axis Logo Update * Cropped and Replaced * Karate! * Karate Kid Two --------- Co-authored-by: Supafly FPV --- src/images/sponsors/Axisflying_dark.svg | 35 ++++++++++++++++++++++++ src/images/sponsors/Axisflying_light.svg | 35 ++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 src/images/sponsors/Axisflying_dark.svg create mode 100644 src/images/sponsors/Axisflying_light.svg diff --git a/src/images/sponsors/Axisflying_dark.svg b/src/images/sponsors/Axisflying_dark.svg new file mode 100644 index 0000000000..647fca4a7b --- /dev/null +++ b/src/images/sponsors/Axisflying_dark.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + diff --git a/src/images/sponsors/Axisflying_light.svg b/src/images/sponsors/Axisflying_light.svg new file mode 100644 index 0000000000..b5836fb35b --- /dev/null +++ b/src/images/sponsors/Axisflying_light.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + From 5bb82070809fb842f804cd27538b969affd3b90e Mon Sep 17 00:00:00 2001 From: Emil Date: Wed, 30 Aug 2023 11:52:51 +0300 Subject: [PATCH 160/393] feat: added port picker vue component (#3543) * feat: added port picker vue component * feat: added translantions --- .../FirmwareVirtualOption.stories.js | 15 ++ .../port-picker/FirmwareVirtualOption.vue | 218 ++++++++++++++++ .../port-picker/PortOverrideOption.stories.js | 15 ++ .../port-picker/PortOverrideOption.vue | 63 +++++ .../port-picker/PortsInput.stories.js | 15 ++ src/components/port-picker/PortsInput.vue | 232 ++++++++++++++++++ 6 files changed, 558 insertions(+) create mode 100644 src/components/port-picker/FirmwareVirtualOption.stories.js create mode 100644 src/components/port-picker/FirmwareVirtualOption.vue create mode 100644 src/components/port-picker/PortOverrideOption.stories.js create mode 100644 src/components/port-picker/PortOverrideOption.vue create mode 100644 src/components/port-picker/PortsInput.stories.js create mode 100644 src/components/port-picker/PortsInput.vue diff --git a/src/components/port-picker/FirmwareVirtualOption.stories.js b/src/components/port-picker/FirmwareVirtualOption.stories.js new file mode 100644 index 0000000000..7f37e682c1 --- /dev/null +++ b/src/components/port-picker/FirmwareVirtualOption.stories.js @@ -0,0 +1,15 @@ +import FirmwareVirtualOption from "./FirmwareVirtualOption"; + +// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export +export default { + title: "Firmware virtual option", + component: FirmwareVirtualOption, +}; + +const Template = (_args, {argTypes}) => ({ + props: Object.keys(argTypes), + components: { FirmwareVirtualOption }, + template: '', +}); + +export const Primary = Template.bind({}); diff --git a/src/components/port-picker/FirmwareVirtualOption.vue b/src/components/port-picker/FirmwareVirtualOption.vue new file mode 100644 index 0000000000..ef0404b932 --- /dev/null +++ b/src/components/port-picker/FirmwareVirtualOption.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/src/components/port-picker/PortOverrideOption.stories.js b/src/components/port-picker/PortOverrideOption.stories.js new file mode 100644 index 0000000000..e8b67817fd --- /dev/null +++ b/src/components/port-picker/PortOverrideOption.stories.js @@ -0,0 +1,15 @@ +import PortOverrideOption from "./PortOverrideOption"; + +// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export +export default { + title: "Port override option", + component: PortOverrideOption, +}; + +const Template = (_args, {argTypes}) => ({ + props: Object.keys(argTypes), + components: { PortOverrideOption }, + template: '', +}); + +export const Primary = Template.bind({}); diff --git a/src/components/port-picker/PortOverrideOption.vue b/src/components/port-picker/PortOverrideOption.vue new file mode 100644 index 0000000000..1f4317798d --- /dev/null +++ b/src/components/port-picker/PortOverrideOption.vue @@ -0,0 +1,63 @@ + + + + diff --git a/src/components/port-picker/PortsInput.stories.js b/src/components/port-picker/PortsInput.stories.js new file mode 100644 index 0000000000..bb501b4c10 --- /dev/null +++ b/src/components/port-picker/PortsInput.stories.js @@ -0,0 +1,15 @@ +import PortsInput from "./PortsInput"; + +// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export +export default { + title: "Ports input", + component: PortsInput, +}; + +const Template = (_args, {argTypes}) => ({ + props: Object.keys(argTypes), + components: { PortsInput }, + template: '', +}); + +export const Primary = Template.bind({}); diff --git a/src/components/port-picker/PortsInput.vue b/src/components/port-picker/PortsInput.vue new file mode 100644 index 0000000000..f07242974c --- /dev/null +++ b/src/components/port-picker/PortsInput.vue @@ -0,0 +1,232 @@ + + + + From 172cb0bee927f7e6904bb1b1379ecf32c7ced51c Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Thu, 31 Aug 2023 11:50:01 +0200 Subject: [PATCH 161/393] Fix GPS Rescue parameters confusion (#3554) * Fix GPS Rescue parameters * Use uint16_t for initialClimbM * change return altitude to 5 - 1000 * Attribute fixes * Do not mix semver code * Fix order * Change tooltip * Rearrange sequence of settings * update gps rescue max pitch angle text * Update return ground speed message * Update helpicon * update tooltips --------- Co-authored-by: ctzsnooze Co-authored-by: ctzsnooze --- locales/en/messages.json | 92 ++++++++++++++++++++++++---------------- src/js/fc.js | 7 +-- src/js/msp/MSPHelper.js | 18 +++++--- src/js/tabs/failsafe.js | 52 ++++++++++++++++------- src/js/tabs/gps.js | 11 ++--- src/tabs/failsafe.html | 65 ++++++++++++++++------------ 6 files changed, 152 insertions(+), 93 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 0c2d11dafc..b308cec81d 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -830,14 +830,6 @@ "message": "Heading:", "description": "Heading shown on Setup tab" }, - "initialSetupPitch": { - "message": "Pitch:", - "description": "Pitch shown on Setup tab" - }, - "initialSetupRoll": { - "message": "Roll:", - "description": "Roll shown on Setup tab" - }, "initialSetupMixerHead": { "message": "Mixer Type" }, @@ -2783,7 +2775,8 @@ "description": "Show GPS position - Latitude / Longitude" }, "gpsHeading": { - "message": "Heading:" + "message": "Heading Mag / GPS:", + "description": "Show GPS heading - Magnetic / GPS course over ground" }, "gpsSpeed": { "message": "Speed:" @@ -4612,23 +4605,51 @@ "message": "GPS Rescue" }, + "failsafeGpsRescueItemAltitudeMode": { + "message": "Altitude mode" + }, + "failsafeGpsRescueItemAltitudeModeMaxAlt": { + "message": "Maximum altitude" + }, + "failsafeGpsRescueItemAltitudeModeFixedAlt": { + "message": "Fixed altitude" + }, + "failsafeGpsRescueItemAltitudeModeCurrentAlt": { + "message": "Current altitude" + }, + "failsafeGpsRescueInitialClimb": { + "message": "Initial climb (meters)" + }, + "failsafeGpsRescueInitialClimbHelp": { + "message": "The distance the quad will climb, above the current altitude, when a rescue is initiated and the altitude mode is set to CURRENT Altitude; also added when in MAX Altitude mode." + }, + "failsafeGpsRescueItemReturnAltitude": { + "message": "Return altitude (meters) - only applies in Fixed Altitude mode" + }, + "failsafeGpsRescueItemAscendRate": { + "message": "Ascend rate (meters/second)" + }, + "failsafeGpsRescueItemGroundSpeed": { + "message": "Return ground speed (meters/second)" + }, "failsafeGpsRescueItemAngle": { - "message": "Angle" + "message": "Maximum pitch angle" }, - "failsafeGpsRescueItemInitialAltitude": { - "message": "Initial altitude (meters)" + "failsafeGpsRescueAngleHelp": { + "message": "Higher maximum angles lead to more aggressive returns and higher forward speeds. May be useful for heavier, high-drag or low authority craft, or for use in stronger winds. WARNING: Rescue throttle usually needs to be increased if the max angle is increased! Otherwise the quad may lose altitude and crash!" }, "failsafeGpsRescueItemDescentDistance": { "message": "Descent distance (meters)" }, - "failsafeGpsRescueItemMinDth": { - "message": "Minimum distance to home (meters)" + "failsafeGpsRescueItemDescendRate": { + "message": "Descend rate (meters/second)" }, - "failsafeGpsRescueItemMinDthHelp": { - "message": "The minimum distance to home needed for GPS rescue to activate" + "failsafeGpsRescueDescendRateHelp": { + "message": "The initial descent rate is set to 3 times this value, decreasing to the set value at the landing altitude." }, - "failsafeGpsRescueItemGroundSpeed": { - "message": "Ground speed (meters/second)" + "failsafeGpsRescueItemMinStartDistHelp" : { + "message": "If the rescue starts too close to home (within this minimum distance), the craft will fly away, on its current heading, until at least this distance from home, and then start normal rescue behaviour", + "description": "Updated help text for the minimum start distance needed for GPS rescue to activate" }, "failsafeGpsRescueItemThrottleMin": { "message": "Throttle minimum" @@ -4636,32 +4657,29 @@ "failsafeGpsRescueItemThrottleMax": { "message": "Throttle maximum" }, + "failsafeGpsRescueThrottleMaxHelp": { + "message": "Should be increased for heavier, high-drag or low authority craft, if a return against strong winds is likely, or if the maximum pitch angle is increased." + }, "failsafeGpsRescueItemThrottleHover": { - "message": "Throttle hover" + "message": "Throttle hover - IMPORTANT: set this value accurately" }, - "failsafeGpsRescueItemAscendRate": { - "message": "Ascend rate (meters/second)" + "failsafeGpsRescueThrottleHoverHelp": { + "message": "To find the right value, set the Failsafe switch action to Stage 2, set the Stage 2 Failsafe Procedure to Land, and adjust the Throttle value used while landing until the quad hovers or descends slowly. Then set GPS Rescue Throttle Hover, and the Stage 1 Channel Fallback value for Throttle to this value." }, - "failsafeGpsRescueItemDescendRate": { - "message": "Descend rate (meters/second)" + "failsafeGpsRescueItemMinDth": { + "message": "Minimum distance to home (meters)" + }, + "failsafeGpsRescueItemMinDthHelp": { + "message": "The minimum distance to home needed for GPS rescue to activate" }, "failsafeGpsRescueItemMinSats": { "message": "Minimum satellites" }, "failsafeGpsRescueItemAllowArmingWithoutFix": { - "message": "Allow arming without fix - WARNING: the GPS Rescue will not be available" + "message": "Allow arming without fix - WARNING: No fix = disarm on failsafe!" }, - "failsafeGpsRescueItemAltitudeMode": { - "message": "Altitude mode" - }, - "failsafeGpsRescueItemAltitudeModeMaxAlt": { - "message": "Maximum altitude" - }, - "failsafeGpsRescueItemAltitudeModeFixedAlt": { - "message": "Fixed altitude" - }, - "failsafeGpsRescueItemAltitudeModeCurrentAlt": { - "message": "Current altitude" + "failsafeGpsRescueArmWithoutFixHelp": { + "message": "Not recommended. Permits arming without a Home point being set, but the quad will disarm and crash with a true Rx loss failsafe. If tested with a switch, there is a short Do Nothing period before the disarm." }, "failsafeGpsRescueItemSanityChecks": { "message": "Sanity checks" @@ -5107,7 +5125,7 @@ "message": "Custom image:" }, "osdSetupCustomLogoInfoImageSize": { - "message": "Size must be $t(logoWidthPx)×$t(logoHeightPx) pixels" + "message": "Size must be $t(logoWidthPx)x$t(logoHeightPx) pixels" }, "osdSetupCustomLogoInfoColorMap": { "message": "Must contain green, black and white pixels" @@ -5116,7 +5134,7 @@ "message": "Click $t(osdSetupUploadFont.message) to persist custom logo" }, "osdSetupCustomLogoImageSizeError": { - "message": "Invalid image size: {{width}}×{{height}} (expected $t(logoWidthPx)×$t(logoHeightPx))" + "message": "Invalid image size: {{width}}x{{height}} (expected $t(logoWidthPx)×$t(logoHeightPx))" }, "osdSetupCustomLogoColorMapError": { "message": "The image contains an invalid pixel: rgb({{valueR}}, {{valueG}}, {{valueB}}) at coordinates {{posX}}×{{posY}}" diff --git a/src/js/fc.js b/src/js/fc.js index 2dcc0f2cb3..9f4eecae91 100644 --- a/src/js/fc.js +++ b/src/js/fc.js @@ -578,9 +578,9 @@ const FC = { this.GPS_RESCUE = { angle: 0, - initialAltitudeM: 0, + returnAltitudeM: 0, descentDistanceM: 0, - rescueGroundspeed: 0, + groundSpeed: 0, throttleMin: 0, throttleMax: 0, throttleHover: 0, @@ -590,7 +590,8 @@ const FC = { descendRate: 0, allowArmingWithoutFix: 0, altitudeMode: 0, - minRescueDth: 0, + minStartDistM: 0, + initialClimbM: 0, }; this.RXFAIL_CONFIG = []; diff --git a/src/js/msp/MSPHelper.js b/src/js/msp/MSPHelper.js index b80b7594fb..83d5088bf3 100644 --- a/src/js/msp/MSPHelper.js +++ b/src/js/msp/MSPHelper.js @@ -514,9 +514,9 @@ MspHelper.prototype.process_data = function(dataHandler) { break; case MSPCodes.MSP_GPS_RESCUE: FC.GPS_RESCUE.angle = data.readU16(); - FC.GPS_RESCUE.initialAltitudeM = data.readU16(); + FC.GPS_RESCUE.returnAltitudeM = data.readU16(); FC.GPS_RESCUE.descentDistanceM = data.readU16(); - FC.GPS_RESCUE.rescueGroundspeed = data.readU16(); + FC.GPS_RESCUE.groundSpeed = data.readU16(); FC.GPS_RESCUE.throttleMin = data.readU16(); FC.GPS_RESCUE.throttleMax = data.readU16(); FC.GPS_RESCUE.throttleHover = data.readU16(); @@ -529,7 +529,10 @@ MspHelper.prototype.process_data = function(dataHandler) { FC.GPS_RESCUE.altitudeMode = data.readU8(); } if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { - FC.GPS_RESCUE.minRescueDth = data.readU16(); + FC.GPS_RESCUE.minStartDistM = data.readU16(); + } + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + FC.GPS_RESCUE.initialClimbM = data.readU16(); } break; case MSPCodes.MSP_RSSI_CONFIG: @@ -1797,9 +1800,9 @@ MspHelper.prototype.crunch = function(code, modifierCode = undefined) { break; case MSPCodes.MSP_SET_GPS_RESCUE: buffer.push16(FC.GPS_RESCUE.angle) - .push16(FC.GPS_RESCUE.initialAltitudeM) + .push16(FC.GPS_RESCUE.returnAltitudeM) .push16(FC.GPS_RESCUE.descentDistanceM) - .push16(FC.GPS_RESCUE.rescueGroundspeed) + .push16(FC.GPS_RESCUE.groundSpeed) .push16(FC.GPS_RESCUE.throttleMin) .push16(FC.GPS_RESCUE.throttleMax) .push16(FC.GPS_RESCUE.throttleHover) @@ -1813,7 +1816,10 @@ MspHelper.prototype.crunch = function(code, modifierCode = undefined) { .push8(FC.GPS_RESCUE.altitudeMode); } if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { - buffer.push16(FC.GPS_RESCUE.minRescueDth); + buffer.push16(FC.GPS_RESCUE.minStartDistM); + } + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + buffer.push16(FC.GPS_RESCUE.initialClimbM); } break; case MSPCodes.MSP_SET_RSSI_CONFIG: diff --git a/src/js/tabs/failsafe.js b/src/js/tabs/failsafe.js index cacbeae4f5..2cb69b8e71 100644 --- a/src/js/tabs/failsafe.js +++ b/src/js/tabs/failsafe.js @@ -269,9 +269,9 @@ failsafe.initialize = function (callback) { // Load GPS Rescue parameters $('input[name="gps_rescue_angle"]').val(FC.GPS_RESCUE.angle); - $('input[name="gps_rescue_initial_altitude"]').val(FC.GPS_RESCUE.initialAltitudeM); + $('input[name="gps_rescue_return_altitude"]').val(FC.GPS_RESCUE.returnAltitudeM); $('input[name="gps_rescue_descent_distance"]').val(FC.GPS_RESCUE.descentDistanceM); - $('input[name="gps_rescue_ground_speed"]').val((FC.GPS_RESCUE.rescueGroundspeed / 100).toFixed(2)); + $('input[name="gps_rescue_ground_speed"]').val((FC.GPS_RESCUE.groundSpeed / 100).toFixed(1)); $('input[name="gps_rescue_throttle_min"]').val(FC.GPS_RESCUE.throttleMin); $('input[name="gps_rescue_throttle_max"]').val(FC.GPS_RESCUE.throttleMax); $('input[name="gps_rescue_throttle_hover"]').val(FC.GPS_RESCUE.throttleHover); @@ -284,8 +284,8 @@ failsafe.initialize = function (callback) { $('#failsafeGpsRescueItemAltitudeSelect').sortSelect(); if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_43)) { - $('input[name="gps_rescue_ascend_rate"]').val((FC.GPS_RESCUE.ascendRate / 100).toFixed(2)); - $('input[name="gps_rescue_descend_rate"]').val((FC.GPS_RESCUE.descendRate / 100).toFixed(2)); + $('input[name="gps_rescue_ascend_rate"]').val((FC.GPS_RESCUE.ascendRate / 100).toFixed(1)); + $('input[name="gps_rescue_descend_rate"]').val((FC.GPS_RESCUE.descendRate / 100).toFixed(1)); $('input[name="gps_rescue_allow_arming_without_fix"]').prop('checked', FC.GPS_RESCUE.allowArmingWithoutFix > 0); $('select[name="gps_rescue_altitude_mode"]').val(FC.GPS_RESCUE.altitudeMode); } else { @@ -296,18 +296,36 @@ failsafe.initialize = function (callback) { } if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { - if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { - $('input[name="gps_rescue_min_dth"]').attr("min", 10); - } else if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) { - $('input[name="gps_rescue_min_dth"]').attr("min", 20); - } - - $('input[name="gps_rescue_min_dth"]').val(FC.GPS_RESCUE.minRescueDth); + $('input[name="gps_rescue_min_start_dist"]').val(FC.GPS_RESCUE.minStartDistM); } else { - $('input[name="gps_rescue_min_dth"]').closest('.number').hide(); + $('input[name="gps_rescue_min_start_dist"]').closest('.number').hide(); } + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) { + $('input[name="gps_rescue_angle"]').attr("max", 80); + $('input[name="gps_rescue_return_altitude"]').attr({"min": 2, "max": 255}); + $('input[name="gps_rescue_descent_distance"]').attr("min", 5); + $('input[name="gps_rescue_min_start_dist"]').attr("min", 20); + $('input[name="gps_rescue_ground_speed"]').attr("min", 0.0); + $('input[name="gps_rescue_ascend_rate"]').attr("min", 0.5); + $('input[name="gps_rescue_descend_rate"]').attr("min", 0.3); + } + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + $('input[name="gps_rescue_initial_climb"]').val(FC.GPS_RESCUE.initialClimbM); + } else { + $('input[name="gps_rescue_initial_climb"]').closest('.number').hide(); + } + + // Update attributes for API version 4.5 + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + $('input[name="gps_rescue_angle"]').attr({"min": 30, "max": 60}); + $('input[name="gps_rescue_return_altitude"]').attr({"min": 5, "max": 1000}); + $('input[name="gps_rescue_descent_distance"]').attr("min", 10); + $('input[name="gps_rescue_min_start_dist"]').attr({"min": 10, "max": 30}) + .closest('.number').children('.helpicon').attr("i18n_title", i18n.getMessage("failsafeGpsRescueItemMinStartDistHelp")); + $('input[name="gps_rescue_descend_rate"]').attr({"min": 0.2, "max": 50.0}); + } $('a.save').click(function () { // gather data that doesn't have automatic change event bound @@ -334,9 +352,9 @@ failsafe.initialize = function (callback) { // Load GPS Rescue parameters FC.GPS_RESCUE.angle = $('input[name="gps_rescue_angle"]').val(); - FC.GPS_RESCUE.initialAltitudeM = $('input[name="gps_rescue_initial_altitude"]').val(); + FC.GPS_RESCUE.returnAltitudeM = $('input[name="gps_rescue_return_altitude"]').val(); FC.GPS_RESCUE.descentDistanceM = $('input[name="gps_rescue_descent_distance"]').val(); - FC.GPS_RESCUE.rescueGroundspeed = $('input[name="gps_rescue_ground_speed"]').val() * 100; + FC.GPS_RESCUE.groundSpeed = $('input[name="gps_rescue_ground_speed"]').val() * 100; FC.GPS_RESCUE.throttleMin = $('input[name="gps_rescue_throttle_min"]').val(); FC.GPS_RESCUE.throttleMax = $('input[name="gps_rescue_throttle_max"]').val(); FC.GPS_RESCUE.throttleHover = $('input[name="gps_rescue_throttle_hover"]').val(); @@ -351,7 +369,11 @@ failsafe.initialize = function (callback) { } if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { - FC.GPS_RESCUE.minRescueDth = $('input[name="gps_rescue_min_dth"]').val(); + FC.GPS_RESCUE.minStartDistM = $('input[name="gps_rescue_min_start_dist"]').val(); + } + + if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) { + FC.GPS_RESCUE.initialClimbM = $('input[name="gps_rescue_initial_climb"]').val(); } function save_failssafe_config() { diff --git a/src/js/tabs/gps.js b/src/js/tabs/gps.js index 1b36646482..7c3c893a44 100644 --- a/src/js/tabs/gps.js +++ b/src/js/tabs/gps.js @@ -185,8 +185,9 @@ gps.initialize = async function (callback) { const lat = FC.GPS_DATA.lat / 10000000; const lon = FC.GPS_DATA.lon / 10000000; const url = `https://maps.google.com/?q=${lat},${lon}`; - const heading = hasMag ? Math.atan2(FC.SENSOR_DATA.magnetometer[1], FC.SENSOR_DATA.magnetometer[0]) : undefined; - const headingDeg = heading === undefined ? 0 : heading * 180 / Math.PI; + const magHeading = hasMag ? Math.atan2(FC.SENSOR_DATA.magnetometer[1], FC.SENSOR_DATA.magnetometer[0]) : undefined; + const magHeadingDeg = magHeading === undefined ? 0 : magHeading * 180 / Math.PI; + const gpsHeading = FC.GPS_DATA.ground_course / 100; const gnssArray = ['GPS', 'SBAS', 'Galileo', 'BeiDou', 'IMES', 'QZSS', 'Glonass']; const qualityArray = ['gnssQualityNoSignal', 'gnssQualitySearching', 'gnssQualityAcquired', 'gnssQualityUnusable', 'gnssQualityLocked', 'gnssQualityFullyLocked', 'gnssQualityFullyLocked', 'gnssQualityFullyLocked']; @@ -199,8 +200,8 @@ gps.initialize = async function (callback) { const gspUnitText = i18n.getMessage('gpsPositionUnit'); $('.GPS_info td.alt').text(`${alt} m`); - $('.GPS_info td.latLon a').prop('href', url).text(`${lat.toFixed(4)} deg / ${lon.toFixed(4)} deg`); - $('.GPS_info td.heading').text(`${headingDeg.toFixed(4)} ${gspUnitText}`); + $('.GPS_info td.latLon a').prop('href', url).text(`${lat.toFixed(4)} / ${lon.toFixed(4)} ${gspUnitText}`); + $('.GPS_info td.heading').text(`${magHeadingDeg.toFixed(4)} / ${gpsHeading.toFixed(4)} ${gspUnitText}`); $('.GPS_info td.speed').text(`${FC.GPS_DATA.speed} cm/s`); $('.GPS_info td.sats').text(FC.GPS_DATA.numSat); $('.GPS_info td.distToHome').text(`${FC.GPS_DATA.distanceToHome} m`); @@ -296,7 +297,7 @@ gps.initialize = async function (callback) { action: 'center', lat: lat, lon: lon, - heading: heading, + heading: magHeading, }; frame = document.getElementById('map'); diff --git a/src/tabs/failsafe.html b/src/tabs/failsafe.html index f04cb6e26e..9744a92ef0 100644 --- a/src/tabs/failsafe.html +++ b/src/tabs/failsafe.html @@ -119,32 +119,54 @@
    -
    -
    -
    -
    -
    + +
    +
    + +
    +
    + +
    +
    @@ -152,22 +174,20 @@
    +
    - -
    -
    -
    -
    -
    - +
    @@ -186,6 +200,15 @@
    +
    + +
    + + +
    +
    +
    +
    From c111129a07e3e45aa1355319525d46cb5f107148 Mon Sep 17 00:00:00 2001 From: Chaos-fpga <68809290+Chaos-fpga@users.noreply.github.com> Date: Wed, 6 Sep 2023 02:08:04 +0800 Subject: [PATCH 166/393] Add APM32 DFU Bootloader to USB Devices' filters (#3563) Update port_handler.js --- src/js/port_handler.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/port_handler.js b/src/js/port_handler.js index 4f22604a69..a94a0314af 100644 --- a/src/js/port_handler.js +++ b/src/js/port_handler.js @@ -13,6 +13,7 @@ export const usbDevices = { filters: [ {'vendorId': 1155, 'productId': 57105}, // STM Device in DFU Mode || Digital Radio in USB mode {'vendorId': 10473, 'productId': 393}, // GD32 DFU Bootloader {'vendorId': 0x2E3C, 'productId': 0xDF11}, // AT32F435 DFU Bootloader + {'vendorId': 12619, 'productId': 262}, // APM32 DFU Bootloader ] }; const PortHandler = new function () { From 5a633c93f691c31de5f264c63430ee90a642ffcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Semr=C3=A1d?= <76877124+VitroidFPV@users.noreply.github.com> Date: Tue, 5 Sep 2023 20:15:43 +0200 Subject: [PATCH 167/393] Fix: Mixer preview images in web builds (#3567) * Fix: Mixer preview images in web builds * Fix: Mixer preview images in web builds * Refactor: Use function --- src/css/tabs/motors.less | 2 +- src/js/tabs/motors.js | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/css/tabs/motors.less b/src/css/tabs/motors.less index 07f673a643..baf15648fa 100644 --- a/src/css/tabs/motors.less +++ b/src/css/tabs/motors.less @@ -54,7 +54,7 @@ border-bottom: 1px solid var(--subtleAccent); } .mixerPreview { - img { + svg { width: 150px; height: 150px; margin-left: 15px; diff --git a/src/js/tabs/motors.js b/src/js/tabs/motors.js index 1950e4f880..71a46352cc 100644 --- a/src/js/tabs/motors.js +++ b/src/js/tabs/motors.js @@ -227,9 +227,17 @@ motors.initialize = async function (callback) { lines.attr('d', graphHelpers.line); } + function replace_mixer_preview(imgSrc) { + $.get(imgSrc, function(data) { + const svg = $(data).find('svg'); + $('.mixerPreview').html(svg); + }, 'xml'); + } + function update_model(mixer) { const imgSrc = getMixerImageSrc(mixer, FC.MIXER_CONFIG.reverseMotorDir); - $('.mixerPreview img').attr('src', imgSrc); + + replace_mixer_preview(imgSrc); const motorOutputReorderConfig = new MotorOutputReorderConfig(100); const domMotorOutputReorderDialogOpen = $('#motorOutputReorderDialogOpen'); @@ -350,10 +358,8 @@ motors.initialize = async function (callback) { mixerListElement.sortSelect(); function refreshMixerPreview() { - const mixer = FC.MIXER_CONFIG.mixer; - const reverse = FC.MIXER_CONFIG.reverseMotorDir ? "_reversed" : ""; - - $('.mixerPreview img').attr('src', `./resources/motor_order/${mixerList[mixer - 1].image}${reverse}.svg`); + const imgSrc = getMixerImageSrc(FC.MIXER_CONFIG.mixer, FC.MIXER_CONFIG.reverseMotorDir); + replace_mixer_preview(imgSrc); } const reverseMotorSwitchElement = $('#reverseMotorSwitch'); From 5f13c076f7a83b5e526a8f2e4a9a566be2e7e667 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Semr=C3=A1d?= <76877124+VitroidFPV@users.noreply.github.com> Date: Fri, 8 Sep 2023 23:44:17 +0200 Subject: [PATCH 168/393] Feature: Vite Build (#3569) * Feature: Vite Build MVP * Chore: Readme, default ports, remove lock * Fix: Return yarn lock * Fix: Use different plugin that works in dev too --- .eslintrc.js | 2 + README.md | 23 +- package.json | 4 + src/index.html | 6 +- vite.config.js | 28 +- yarn.lock | 8240 ++++++++++++++++++++++-------------------------- 6 files changed, 3747 insertions(+), 4556 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 0d297ecb88..9d35205b6b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -38,4 +38,6 @@ module.exports = { appAvailability: true, // end cordova bindings }, + // ignore src/dist folders + ignorePatterns: ["src/dist/*"], }; diff --git a/README.md b/README.md index 1bdca045f0..ad4aec7fbf 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,25 @@ Betaflight Configurator has been translated into several languages. The applicat If you prefer to have the application in English or any other language, you can select your desired language in the first screen of the application. +## App build via Vite (web) + +### Development + +1. Install node.js (refer to [.nvmrc](./.nvmrc) for required version) +2. Install yarn: `npm install yarn -g` +3. Change to project folder and run `yarn install`. +4. Run `yarn dev`. + +The web app will be available at http://localhost:8000 with full HMR. + +### Build Preview + +1. Run `yarn build`. +2. Run `yarn preview` after build has finished. +3. Alternatively run `yarn review` to build and preview in one step. + +The web app should behave directly as in production, available at http://localhost:8080. + ## App build via NW.js (windows/linux/macos) or Cordova (android) ### Development @@ -106,7 +125,7 @@ List of possible values of ``: * **dist** copies all the JS and CSS files in the `./dist` folder [2]. * **apps** builds the apps in the `./apps` folder [1]. * **debug** builds debug version of the apps in the `./debug` folder [1][3]. -* **release** zips up the apps into individual archives in the `./release` folder [1]. +* **release** zips up the apps into individual archives in the `./release` folder [1]. [1] Running this task on macOS or Linux requires Wine, since it's needed to set the icon for the Windows app (build for specific platform to avoid errors). [2] For Android platform, **dist** task will generate folders and files in the `./dist_cordova` folder. @@ -117,7 +136,7 @@ To build or release only for one specific platform you can append the plaform af If no platform is provided, the build for the host platform is run. * **MacOS X** use `yarn gulp --osx64` -* **Linux** use `yarn gulp --linux64` +* **Linux** use `yarn gulp --linux64` * **Windows** use `yarn gulp --win64` * **Android** use `yarn gulp --android` diff --git a/package.json b/package.json index 65f0d48174..676f52500c 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,9 @@ "chromium-args": "--disable-features=nw2", "scripts": { "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "review": "vite build && vite preview", "start": "run-script-os", "start:default": "NODE_ENV=development NW_PRE_ARGS=--load-extension='./node_modules/nw-vue-devtools-prebuilt/extension' gulp debug", "start:windows": "set NODE_ENV=development && set NW_PRE_ARGS=--load-extension='./node_modules/nw-vue-devtools-prebuilt/extension' && gulp debug", @@ -120,6 +123,7 @@ "os": "^0.1.2", "postcss": "^8.4.17", "rollup": "^3.9.0", + "rollup-plugin-copy": "^3.5.0", "rollup-plugin-vue": "^5.*.*", "rpm-builder": "^1.2.1", "run-script-os": "^1.1.6", diff --git a/src/index.html b/src/index.html index f27917b34f..4622d75bf8 100644 --- a/src/index.html +++ b/src/index.html @@ -4,8 +4,8 @@ - - + + @@ -81,7 +81,7 @@ :batteryState="FC.BATTERY_STATE?.batteryState" > - diff --git a/vite.config.js b/vite.config.js index 8270360efd..3baee1093b 100644 --- a/vite.config.js +++ b/vite.config.js @@ -3,6 +3,7 @@ import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue2"; import path from "node:path"; import { readFileSync } from "node:fs"; +import copy from "rollup-plugin-copy"; function serveFileFromDirectory(directory) { return (req, res, next) => { @@ -23,7 +24,7 @@ function serveFileFromDirectory(directory) { * This is plugin to work around the file structure required nwjs. * In future this can be dropped if we restructure folder structure * to be more web friendly. - * @returns {import('vite').Plugin} + * @returns {import("vite").Plugin} */ function serveLocalesPlugin() { return { @@ -32,9 +33,9 @@ function serveLocalesPlugin() { return () => { server.middlewares.use((req, res, next) => { if (req.url.startsWith("/locales/")) { - serveFileFromDirectory('locales')(req, res, next); + serveFileFromDirectory("locales")(req, res, next); } else if (req.url.startsWith("/resources/")) { - serveFileFromDirectory('resources')(req, res, next); + serveFileFromDirectory("resources")(req, res, next); } else { next(); } @@ -52,14 +53,29 @@ export default defineConfig({ include: ["test/**/*.test.{js,mjs,cjs}"], environment: "jsdom", setupFiles: ["test/setup.js"], - root: '.', + root: ".", }, - plugins: [vue(), serveLocalesPlugin()], + plugins: [ + vue(), + serveLocalesPlugin(), + copy({ + targets: [ + { src: ["locales", "resources", "src/tabs", "src/images"], dest: "src/dist" }, + ], + hook: "writeBundle", + }), + ], root: "./src", resolve: { alias: { "/src": path.resolve(process.cwd(), "src"), - 'vue': path.resolve(__dirname, 'node_modules/vue/dist/vue.esm.js'), + "vue": path.resolve(__dirname, "node_modules/vue/dist/vue.esm.js"), }, }, + server: { + port: 8000, + }, + preview: { + port: 8080, + }, }); diff --git a/yarn.lock b/yarn.lock index b2d08a07a5..3500c71132 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,43 +2,31 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== - dependencies: - "@jridgewell/trace-mapping" "^0.3.0" - -"@babel/code-frame@^7.0.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== - dependencies: - "@babel/highlight" "^7.10.4" +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - "@babel/highlight" "^7.16.7" + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== dependencies: - "@babel/highlight" "^7.18.6" + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" - integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== - -"@babel/compat-data@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.3.tgz#707b939793f867f5a73b2666e6d9a3396eb03151" - integrity sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw== +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" + integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== "@babel/core@7.12.9": version "7.12.9" @@ -62,134 +50,85 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.13.16": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" - integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.9" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/core@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" - integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.3" - "@babel/helper-compilation-targets" "^7.19.3" - "@babel/helper-module-transforms" "^7.19.0" - "@babel/helpers" "^7.19.0" - "@babel/parser" "^7.19.3" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.3" - "@babel/types" "^7.19.3" +"@babel/core@^7.1.0", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.19.3": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.15.tgz#15d4fd03f478a459015a4b94cfbb3bd42c48d2f4" + integrity sha512-PtZqMmgRrvj8ruoEOIwVA3yoF91O+Hgw9o7DAUTNBA6Mo2jpu31clx9a7Nz/9JznqetTR6zwfC4L3LAjKQXUwA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.22.15" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.22.15" + "@babel/helpers" "^7.22.15" + "@babel/parser" "^7.22.15" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.22.15" + "@babel/types" "^7.22.15" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" + json5 "^2.2.3" + semver "^6.3.1" -"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" - integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339" + integrity sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA== dependencies: - "@babel/types" "^7.17.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.3.tgz#d7f4d1300485b4547cb6f94b27d10d237b42bf59" - integrity sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ== - dependencies: - "@babel/types" "^7.19.3" + "@babel/types" "^7.22.15" "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" - integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== +"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" - integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" + "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca" - integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== dependencies: - "@babel/compat-data" "^7.19.3" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6", "@babel/helper-create-class-features-plugin@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz#71835d7fb9f38bd9f1378e40a4c0902fdc2ea49d" - integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - -"@babel/helper-create-class-features-plugin@^7.17.12": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" - integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - -"@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" - integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^5.0.1" + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" "@babel/helper-define-polyfill-provider@^0.1.5": version "0.1.5" @@ -205,400 +144,216 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== +"@babel/helper-define-polyfill-provider@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" + integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" - semver "^6.1.2" -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== - -"@babel/helper-explode-assignable-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" - integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== - dependencies: - "@babel/types" "^7.16.7" +"@babel/helper-environment-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== -"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== +"@babel/helper-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.5" -"@babel/helper-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" + "@babel/types" "^7.22.5" -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz#b95a144896f6d491ca7863576f820f3628818621" + integrity sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.22.15" -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.15" -"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.22.15", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.15.tgz#40ad2f6950f143900e9c1c72363c0b431a606082" + integrity sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ== dependencies: - "@babel/types" "^7.17.0" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.15" -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" - integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - -"@babel/helper-module-transforms@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" - integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.18.6" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" - -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== - dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.22.5" "@babel/helper-plugin-utils@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== - -"@babel/helper-plugin-utils@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" - integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== - -"@babel/helper-remap-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" - integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-wrap-function" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" - integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" - integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-simple-access@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" - integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" - integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== - -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== - -"@babel/helper-wrap-function@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" - integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== - dependencies: - "@babel/helper-function-name" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helpers@^7.12.5", "@babel/helpers@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" - integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" - -"@babel/helpers@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" - integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== - dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" - -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.16.7": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" - integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" + integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-wrap-function" "^7.22.9" + +"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" + integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.22.15", "@babel/helper-validator-identifier@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044" + integrity sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ== + +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== + +"@babel/helper-wrap-function@^7.22.9": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz#d845e043880ed0b8c18bd194a12005cb16d2f614" + integrity sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ== + dependencies: + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.10" + +"@babel/helpers@^7.12.5", "@babel/helpers@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.15.tgz#f09c3df31e86e3ea0b7ff7556d85cdebd47ea6f1" + integrity sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/highlight@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" + integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.13.12", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" - integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== +"@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.18.4", "@babel/parser@^7.20.15", "@babel/parser@^7.21.3", "@babel/parser@^7.21.4", "@babel/parser@^7.22.15", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6": + version "7.22.16" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95" + integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA== -"@babel/parser@^7.18.10", "@babel/parser@^7.18.4", "@babel/parser@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" - integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" - integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" - integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" + integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - -"@babel/plugin-proposal-async-generator-functions@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" - integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" - "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" - integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f" + integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.15" -"@babel/plugin-proposal-class-static-block@^7.16.7": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" - integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== +"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.13.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.6" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-decorators@^7.12.12": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz#67a1653be9c77ce5b6c318aa90c8287b87831619" - integrity sha512-EfH2LZ/vPa2wuPwJ26j+kYRkaubf89UlwxKXtxqEm57HrgSEYDB8t4swFP+p8LcI9yiP9ZRJJjo/58hS6BnaDA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.9" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/plugin-syntax-decorators" "^7.17.0" - charcodes "^0.2.0" - -"@babel/plugin-proposal-dynamic-import@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" - integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-default-from@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz#a40ab158ca55627b71c5513f03d3469026a9e929" - integrity sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.15.tgz#dc774eae73ab8c28a644d490b45aa47a85bb0bf5" + integrity sha512-kc0VvbbUyKelvzcKOSyQUSVVXS5pT3UhRB0e3c9An86MvLqs+gx0dN4asllrDluqSa3m9YyooXKGOFVomnyFkg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-export-default-from" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/plugin-syntax-decorators" "^7.22.10" -"@babel/plugin-proposal-export-namespace-from@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" - integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" - integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" - integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== +"@babel/plugin-proposal-export-default-from@^7.12.1": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.22.5.tgz#825924eda1fad382c3de4db6fe1711b6fa03362f" + integrity sha512-UCe1X/hplyv6A5g2WnQ90tnHRvYL29dabCWww92lO7VdfMVTVReBTRrhiMrKQejHD9oVkdnRdwYuzUZkBVQisg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-default-from" "^7.22.5" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" - integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" - integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" @@ -608,70 +363,49 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.12.1" -"@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" - integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== +"@babel/plugin-proposal-object-rest-spread@^7.12.1": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== dependencies: - "@babel/compat-data" "^7.17.0" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" - integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" -"@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" - integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== +"@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.13.12": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" + integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.16.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" - integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== +"@babel/plugin-proposal-private-methods@^7.12.1": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.10" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-private-property-in-object@^7.12.1": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz#b02efb7f106d544667d91ae97405a9fd8c93952d" - integrity sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-create-class-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-proposal-private-property-in-object@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" - integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== +"@babel/plugin-proposal-private-property-in-object@^7.12.1": + version "7.21.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c" + integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" - integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -693,12 +427,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz#a2be3b2c9fe7d78bd4994e790896bc411e2f166d" - integrity sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A== +"@babel/plugin-syntax-decorators@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.10.tgz#7d83ea04d893c442b78ebf4c3cbac59a7211deff" + integrity sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" @@ -707,12 +441,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-export-default-from@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz#fa89cf13b60de2c3f79acdc2b52a21174c6de060" - integrity sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA== +"@babel/plugin-syntax-export-default-from@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.22.5.tgz#ac3a24b362a04415a017ab96b9b4483d0e2a6e44" + integrity sha512-ODAqWWXB/yReh/jVQDag/3/tl6lgBueQkk/TcfW/59Oykm4c8a55XloX0CTk2k2VJiFWMgHby9xNX29IbCv9dQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" @@ -721,12 +455,33 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz#202b147e5892b8452bbb0bb269c7ed2539ab8832" - integrity sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ== +"@babel/plugin-syntax-flow@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" + integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-assertions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" + integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" + integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" @@ -742,12 +497,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-jsx@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" - integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" @@ -805,344 +560,480 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" - integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== +"@babel/plugin-syntax-typescript@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" + integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" + integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-async-generator-functions@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz#3b153af4a6b779f340d5b80d3f634f55820aefa3" + integrity sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" - integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== +"@babel/plugin-transform-async-to-generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" + integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" -"@babel/plugin-transform-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" - integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== +"@babel/plugin-transform-block-scoped-functions@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" + integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoped-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" - integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== +"@babel/plugin-transform-block-scoping@^7.12.12", "@babel/plugin-transform-block-scoping@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz#494eb82b87b5f8b1d8f6f28ea74078ec0a10a841" + integrity sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.12.12", "@babel/plugin-transform-block-scoping@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" - integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== +"@babel/plugin-transform-class-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" + integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" - integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== +"@babel/plugin-transform-class-static-block@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974" + integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.22.11" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" + integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" - integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== +"@babel/plugin-transform-computed-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" + integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.16.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1" - integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== +"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz#e7404ea5bb3387073b9754be654eecb578324694" + integrity sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" - integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== +"@babel/plugin-transform-dotall-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" + integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" - integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== +"@babel/plugin-transform-duplicate-keys@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" + integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-exponentiation-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" - integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== +"@babel/plugin-transform-dynamic-import@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa" + integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-flow-strip-types@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz#291fb140c78dabbf87f2427e7c7c332b126964b8" - integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg== +"@babel/plugin-transform-exponentiation-operator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" + integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-flow" "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-for-of@^7.12.1", "@babel/plugin-transform-for-of@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" - integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== +"@babel/plugin-transform-export-namespace-from@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c" + integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" - integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== +"@babel/plugin-transform-flow-strip-types@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" + integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== dependencies: - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.22.5" -"@babel/plugin-transform-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" - integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== +"@babel/plugin-transform-for-of@^7.12.1", "@babel/plugin-transform-for-of@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29" + integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-member-expression-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" - integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== +"@babel/plugin-transform-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" + integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-compilation-targets" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" - integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== +"@babel/plugin-transform-json-strings@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835" + integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.16.8": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6" - integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== +"@babel/plugin-transform-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" + integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== dependencies: - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.16.7": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859" - integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== +"@babel/plugin-transform-logical-assignment-operators@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c" + integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ== dependencies: - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-modules-umd@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" - integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== +"@babel/plugin-transform-member-expression-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" + integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" - integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== +"@babel/plugin-transform-modules-amd@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" + integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" - integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== +"@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz#b11810117ed4ee7691b29bd29fd9f3f98276034f" + integrity sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-object-super@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" - integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== +"@babel/plugin-transform-modules-systemjs@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz#3386be5875d316493b517207e8f1931d93154bb1" + integrity sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.22.9" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" - integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== +"@babel/plugin-transform-modules-umd@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" + integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-property-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" - integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-display-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340" - integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg== +"@babel/plugin-transform-new-target@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" + integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-jsx-development@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8" - integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A== +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc" + integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg== dependencies: - "@babel/plugin-transform-react-jsx" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd" + integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" + integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.22.15" + +"@babel/plugin-transform-object-super@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" + integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.5" + +"@babel/plugin-transform-optional-catch-binding@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0" + integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz#d7a5996c2f7ca4ad2ad16dbb74444e5c4385b1ba" + integrity sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" + integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-methods@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" + integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-property-in-object@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1" + integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.11" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.16.7": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz#eac1565da176ccb1a715dae0b4609858808008c1" - integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ== +"@babel/plugin-transform-property-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" + integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-jsx" "^7.16.7" - "@babel/types" "^7.17.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-pure-annotations@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz#232bfd2f12eb551d6d7d01d13fe3f86b45eb9c67" - integrity sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA== +"@babel/plugin-transform-react-display-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" + integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.16.7": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c" - integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== +"@babel/plugin-transform-react-jsx-development@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== dependencies: - regenerator-transform "^0.15.0" + "@babel/plugin-transform-react-jsx" "^7.22.5" -"@babel/plugin-transform-reserved-words@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" - integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== +"@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz#7e6266d88705d7c49f11c98db8b9464531289cd6" + integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/types" "^7.22.15" -"@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" - integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== +"@babel/plugin-transform-react-pure-annotations@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" + integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" - integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== +"@babel/plugin-transform-regenerator@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" + integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.2" -"@babel/plugin-transform-sticky-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" - integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== +"@babel/plugin-transform-reserved-words@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" + integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" - integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== +"@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" + integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typeof-symbol@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" - integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== +"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" + integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-typescript@^7.16.7": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz#591ce9b6b83504903fa9dd3652c357c2ba7a1ee0" - integrity sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ== +"@babel/plugin-transform-sticky-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" + integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-typescript" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" - integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== +"@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" + integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" - integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== +"@babel/plugin-transform-typeof-symbol@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" + integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typescript@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz#15adef906451d86349eb4b8764865c960eb54127" + integrity sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.22.5" + +"@babel/plugin-transform-unicode-escapes@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" + integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-property-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" + integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" + integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" + integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/preset-env@^7.12.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" - integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== - dependencies: - "@babel/compat-data" "^7.16.8" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-async-generator-functions" "^7.16.8" - "@babel/plugin-proposal-class-properties" "^7.16.7" - "@babel/plugin-proposal-class-static-block" "^7.16.7" - "@babel/plugin-proposal-dynamic-import" "^7.16.7" - "@babel/plugin-proposal-export-namespace-from" "^7.16.7" - "@babel/plugin-proposal-json-strings" "^7.16.7" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" - "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.16.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-private-methods" "^7.16.11" - "@babel/plugin-proposal-private-property-in-object" "^7.16.7" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.15.tgz#142716f8e00bc030dae5b2ac6a46fbd8b3e18ff8" + integrity sha512-tZFHr54GBkHk6hQuVA8w4Fmq+MSPsfvMG0vPnOYyTnJpyfMqybL8/MbNCPRT9zc2KBO2pe4tq15g6Uno4Jpoag== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.22.5" + "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -1152,91 +1043,108 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.7" - "@babel/plugin-transform-async-to-generator" "^7.16.8" - "@babel/plugin-transform-block-scoped-functions" "^7.16.7" - "@babel/plugin-transform-block-scoping" "^7.16.7" - "@babel/plugin-transform-classes" "^7.16.7" - "@babel/plugin-transform-computed-properties" "^7.16.7" - "@babel/plugin-transform-destructuring" "^7.16.7" - "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.16.7" - "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.16.7" - "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.16.7" - "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.16.7" - "@babel/plugin-transform-modules-commonjs" "^7.16.8" - "@babel/plugin-transform-modules-systemjs" "^7.16.7" - "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" - "@babel/plugin-transform-new-target" "^7.16.7" - "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.16.7" - "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.16.7" - "@babel/plugin-transform-reserved-words" "^7.16.7" - "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.16.7" - "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.16.7" - "@babel/plugin-transform-typeof-symbol" "^7.16.7" - "@babel/plugin-transform-unicode-escapes" "^7.16.7" - "@babel/plugin-transform-unicode-regex" "^7.16.7" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.8" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.20.2" - semver "^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.22.5" + "@babel/plugin-transform-async-generator-functions" "^7.22.15" + "@babel/plugin-transform-async-to-generator" "^7.22.5" + "@babel/plugin-transform-block-scoped-functions" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.15" + "@babel/plugin-transform-class-properties" "^7.22.5" + "@babel/plugin-transform-class-static-block" "^7.22.11" + "@babel/plugin-transform-classes" "^7.22.15" + "@babel/plugin-transform-computed-properties" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.15" + "@babel/plugin-transform-dotall-regex" "^7.22.5" + "@babel/plugin-transform-duplicate-keys" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.11" + "@babel/plugin-transform-exponentiation-operator" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.11" + "@babel/plugin-transform-for-of" "^7.22.15" + "@babel/plugin-transform-function-name" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.11" + "@babel/plugin-transform-literals" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" + "@babel/plugin-transform-member-expression-literals" "^7.22.5" + "@babel/plugin-transform-modules-amd" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.15" + "@babel/plugin-transform-modules-systemjs" "^7.22.11" + "@babel/plugin-transform-modules-umd" "^7.22.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" + "@babel/plugin-transform-numeric-separator" "^7.22.11" + "@babel/plugin-transform-object-rest-spread" "^7.22.15" + "@babel/plugin-transform-object-super" "^7.22.5" + "@babel/plugin-transform-optional-catch-binding" "^7.22.11" + "@babel/plugin-transform-optional-chaining" "^7.22.15" + "@babel/plugin-transform-parameters" "^7.22.15" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.11" + "@babel/plugin-transform-property-literals" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.10" + "@babel/plugin-transform-reserved-words" "^7.22.5" + "@babel/plugin-transform-shorthand-properties" "^7.22.5" + "@babel/plugin-transform-spread" "^7.22.5" + "@babel/plugin-transform-sticky-regex" "^7.22.5" + "@babel/plugin-transform-template-literals" "^7.22.5" + "@babel/plugin-transform-typeof-symbol" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.10" + "@babel/plugin-transform-unicode-property-regex" "^7.22.5" + "@babel/plugin-transform-unicode-regex" "^7.22.5" + "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" + "@babel/preset-modules" "0.1.6-no-external-plugins" + "@babel/types" "^7.22.15" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" + core-js-compat "^3.31.0" + semver "^6.3.1" "@babel/preset-flow@^7.13.13": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.16.7.tgz#7fd831323ab25eeba6e4b77a589f680e30581cbd" - integrity sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.22.15.tgz#30318deb9b3ebd9f5738e96da03a531e0cd3165d" + integrity sha512-dB5aIMqpkgbTfN5vDdTRPzjqtWiZcRESNR88QYnoPR+bmdYoluOzMX9tQerTv0XzSgZYctPfO1oc0N5zdog1ew== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-flow-strip-types" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-transform-flow-strip-types" "^7.22.5" -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" "@babel/preset-react@^7.12.10": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.7.tgz#4c18150491edc69c183ff818f9f2aecbe5d93852" - integrity sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.15.tgz#9a776892b648e13cc8ca2edf5ed1264eea6b6afc" + integrity sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-react-display-name" "^7.16.7" - "@babel/plugin-transform-react-jsx" "^7.16.7" - "@babel/plugin-transform-react-jsx-development" "^7.16.7" - "@babel/plugin-transform-react-pure-annotations" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-transform-react-display-name" "^7.22.5" + "@babel/plugin-transform-react-jsx" "^7.22.15" + "@babel/plugin-transform-react-jsx-development" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.22.5" "@babel/preset-typescript@^7.12.7", "@babel/preset-typescript@^7.13.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz#ab114d68bb2020afc069cd51b37ff98a046a70b9" - integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.15.tgz#43db30516fae1d417d748105a0bc95f637239d48" + integrity sha512-HblhNmh6yM+cU4VwbBRpxFhxsTdfS1zsvH9W+gEjD0ARV9+8B4sNfpI6GuhePti84nuvhiwKS539jKPFHskA9A== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-typescript" "^7.16.7" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.15" + "@babel/plugin-transform-typescript" "^7.22.15" "@babel/register@^7.12.1", "@babel/register@^7.13.16": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.17.7.tgz#5eef3e0f4afc07e25e847720e7b987ae33f08d0b" - integrity sha512-fg56SwvXRifootQEDQAu1mKdjh5uthPzdO0N6t358FktfL4XjAVXuH58ULoiW8mesxiOgNIrxiImqEwv0+hRRA== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.15.tgz#c2c294a361d59f5fa7bcc8b97ef7319c32ecaec7" + integrity sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" @@ -1244,92 +1152,50 @@ pirates "^4.0.5" source-map-support "^0.5.16" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.8", "@babel/runtime@^7.5.0", "@babel/runtime@^7.8.4": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" - integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.10.1": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.3.tgz#670d002655a7c366540c67f6fd3342cd09500364" - integrity sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.5.5": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.3.tgz#935122c74c73d2240cafd32ddb5fc2a6cd35cf1f" - integrity sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA== - dependencies: - regenerator-runtime "^0.13.2" - -"@babel/template@^7.12.7", "@babel/template@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/template@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" - -"@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" - integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.9" - "@babel/types" "^7.17.0" +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.8", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8" + integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.12.7", "@babel/template@^7.22.15", "@babel/template@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.15.tgz#75be4d2d6e216e880e93017f4e2389aeb77ef2d9" + integrity sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.3.tgz#3a3c5348d4988ba60884e8494b0592b2f15a04b4" - integrity sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.3" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.19.3" - "@babel/types" "^7.19.3" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.13.12", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.9.6": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.3.tgz#fc420e6bbe54880bce6779ffaf315f5e43ec9624" - integrity sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw== +"@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.21.4", "@babel/types@^7.22.10", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.9.6": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.15.tgz#266cb21d2c5fd0b3931e7a91b6dd72d2f617d282" + integrity sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA== dependencies: - "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.15" to-fast-properties "^2.0.0" "@cnakazawa/watch@^1.0.3": @@ -1350,135 +1216,157 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@esbuild/android-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" - integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== - -"@esbuild/android-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" - integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== - -"@esbuild/android-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" - integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== - -"@esbuild/darwin-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" - integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== - -"@esbuild/darwin-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" - integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== - -"@esbuild/freebsd-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" - integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== - -"@esbuild/freebsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" - integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== - -"@esbuild/linux-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" - integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== - -"@esbuild/linux-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" - integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== - -"@esbuild/linux-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" - integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== - -"@esbuild/linux-loong64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" - integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== - -"@esbuild/linux-mips64el@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" - integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== - -"@esbuild/linux-ppc64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" - integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== - -"@esbuild/linux-riscv64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" - integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== - -"@esbuild/linux-s390x@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" - integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== - -"@esbuild/linux-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" - integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== - -"@esbuild/netbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" - integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== - -"@esbuild/openbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" - integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== - -"@esbuild/sunos-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" - integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== - -"@esbuild/win32-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" - integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== - -"@esbuild/win32-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" - integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== - -"@esbuild/win32-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" - integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== - -"@eslint/eslintrc@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356" - integrity sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ== +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.6.1": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.8.0.tgz#11195513186f68d42fbf449f9a7136b2c0c92005" + integrity sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg== + +"@eslint/eslintrc@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" + integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.4.0" - globals "^13.15.0" + espree "^9.6.0" + globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/js@8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" + integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== + "@fortawesome/fontawesome-free@^5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.0.tgz#fcb113d1aca4b471b709e8c9c168674fbd6e06d9" - integrity sha512-xKOeQEl5O47GPZYIMToj6uuA2syyFlq9EMSl2ui0uytjY9xbe8XS0pexNWmxrdcCyNGyDmLyYw5FtKsalBUeOg== + version "5.15.4" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" + integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== + +"@gar/promisify@^1.0.1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== "@gulp-sourcemaps/identity-map@^2.0.1": version "2.0.1" @@ -1499,19 +1387,14 @@ normalize-path "^2.0.1" through2 "^2.0.3" -"@humanwhocodes/config-array@^0.10.5": - version "0.10.7" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.7.tgz#6d53769fd0c222767e6452e8ebda825c22e9f0dc" - integrity sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w== +"@humanwhocodes/config-array@^0.11.10": + version "0.11.11" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" + integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/gitignore-to-minimatch@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" - integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== + minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" @@ -1572,57 +1455,44 @@ chalk "^4.0.0" "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" - integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/source-map@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" - integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== dependencies: "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== - -"@jridgewell/sourcemap-codec@^1.4.13": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.0": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" - integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.14" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" - integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@korzio/djv-draft-04@^2.0.1": version "2.0.1" @@ -1720,32 +1590,40 @@ extsprintf "^1.4.0" lodash "^4.17.15" -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: - "@nodelib/fs.stat" "2.0.3" + "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.stat@^1.1.2": version "1.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== -"@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: - "@nodelib/fs.scandir" "2.1.3" + "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@npmcli/fs@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== + dependencies: + "@gar/promisify" "^1.0.1" + semver "^7.3.5" + "@npmcli/git@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" @@ -1777,9 +1655,9 @@ rimraf "^3.0.2" "@npmcli/node-gyp@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz#3cdc1f30e9736dbc417373ed803b42b1a0a29ede" - integrity sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz#a912e637418ffc5f2db375e93b85837691a43a33" + integrity sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA== "@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2": version "1.3.2" @@ -1789,16 +1667,20 @@ infer-owner "^1.0.4" "@npmcli/run-script@^1.8.2": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-1.8.5.tgz#f250a0c5e1a08a792d775a315d0ff42fc3a51e1d" - integrity sha512-NQspusBCpTjNwNRFMtz2C5MxoxyzlbuJ4YEhxAKrIonTiirKDtatsZictx9RgamQIx6+QuHMNmPl0wQdoESs9A== + version "1.8.6" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-1.8.6.tgz#18314802a6660b0d4baa4c3afe7f1ad39d8c28b7" + integrity sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g== dependencies: "@npmcli/node-gyp" "^1.0.2" "@npmcli/promise-spawn" "^1.3.2" - infer-owner "^1.0.4" node-gyp "^7.1.0" read-package-json-fast "^2.0.1" +"@one-ini/wasm@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@one-ini/wasm/-/wasm-0.1.1.tgz#6013659736c9dbfccc96e8a9c2b3de317df39323" + integrity sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw== + "@panter/vue-i18next@^0.15.2": version "0.15.2" resolved "https://registry.yarnpkg.com/@panter/vue-i18next/-/vue-i18next-0.15.2.tgz#814f6774237e444eb9b69156e9c507d41b7fbd32" @@ -1819,9 +1701,9 @@ graceful-fs "4.2.10" "@pnpm/npm-conf@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.0.tgz#221b4cfcde745d5f8928c25f391e5cc9d405b345" - integrity sha512-roLI1ul/GwzwcfcVpZYPdrgW2W/drLriObl1h+yLF5syc8/5ULWw2ALbCHUWF+4YltIqA3xFSbG4IwyJz37e9g== + version "2.2.2" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0" + integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA== dependencies: "@pnpm/config.env-replace" "^1.1.0" "@pnpm/network.ca-file" "^1.0.1" @@ -1833,16 +1715,16 @@ integrity sha512-pv5FCJ4ibDRsIWzQOuzhmUSDr7ciMrtTHBp/QF6gxZM3rVpOQ8+soXuKviQlS6DPsu0SWsBn1PS2m2dVggWkxA== "@rollup/plugin-alias@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-4.0.2.tgz#fec6c6aff8dd6fce580ae6bc5345084cd702bb62" - integrity sha512-1hv7dBOZZwo3SEupxn4UA2N0EDThqSSS+wI1St1TNTBtOZvUchyIClyHcnDcjjrReTPZ47Faedrhblv4n+T5UQ== + version "4.0.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-4.0.4.tgz#67734ec44a7747916aa52a3b1a0e8d459dbf3ae2" + integrity sha512-0CaAY238SMtYAWEXXptWSR8iz8NYZnH7zNBKuJ14xFJSGwLtPgjvXYsoApAHfzYXXH1ejxpVw7WlHss3zhh9SQ== dependencies: slash "^4.0.0" "@rollup/plugin-commonjs@^24.0.0": - version "24.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-24.0.0.tgz#fb7cf4a6029f07ec42b25daa535c75b05a43f75c" - integrity sha512-0w0wyykzdyRRPHOb0cQt14mIBLujfAv6GgP6g8nvg/iBxEm112t3YPPq+Buqe2+imvElTka+bjNlJ/gB56TD8g== + version "24.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-24.1.0.tgz#79e54bd83bb64396761431eee6c44152ef322100" + integrity sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ== dependencies: "@rollup/pluginutils" "^5.0.1" commondir "^1.0.1" @@ -1852,14 +1734,14 @@ magic-string "^0.27.0" "@rollup/plugin-node-resolve@^15.0.1": - version "15.0.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz#72be449b8e06f6367168d5b3cd5e2802e0248971" - integrity sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg== + version "15.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz#a15b14fb7969229e26a30feff2816d39eff503f0" + integrity sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w== dependencies: "@rollup/pluginutils" "^5.0.1" "@types/resolve" "1.20.2" deepmerge "^4.2.2" - is-builtin-module "^3.2.0" + is-builtin-module "^3.2.1" is-module "^1.0.0" resolve "^1.22.1" @@ -1872,31 +1754,31 @@ magic-string "^0.27.0" "@rollup/pluginutils@^5.0.1": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" - integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== + version "5.0.4" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.4.tgz#74f808f9053d33bafec0cc98e7b835c9667d32ba" + integrity sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" picomatch "^2.3.1" "@sindresorhus/is@^5.2.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.3.0.tgz#0ec9264cf54a527671d990eb874e030b55b70dcc" - integrity sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw== - -"@storybook/addon-actions@6.5.12", "@storybook/addon-actions@^6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.5.12.tgz#9d2bf3bffa41cf4f92c7220c8f6e3a3f5da55019" - integrity sha512-yEbyKjBsSRUr61SlS+SOTqQwdumO8Wa3GoHO3AfmvoKfzdGrM7w8G5Zs9Iev16khWg/7bQvoH3KZsg/hQuKnNg== - dependencies: - "@storybook/addons" "6.5.12" - "@storybook/api" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/components" "6.5.12" - "@storybook/core-events" "6.5.12" + version "5.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" + integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== + +"@storybook/addon-actions@6.5.16", "@storybook/addon-actions@^6.5.12": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.5.16.tgz#2d7679f64899bef165a338582cb928102a09e364" + integrity sha512-aADjilFmuD6TNGz2CRPSupnyiA/IGkPJHDBTqMpsDXTUr8xnuD122xkIhg6UxmCM2y1c+ncwYXy3WPK2xXK57g== + dependencies: + "@storybook/addons" "6.5.16" + "@storybook/api" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/components" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/theming" "6.5.12" + "@storybook/theming" "6.5.16" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -1910,18 +1792,18 @@ util-deprecate "^1.0.2" uuid-browser "^3.1.0" -"@storybook/addon-backgrounds@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.5.12.tgz#a52bb4c4e02d2c5b2f9cd125d605eb311a2f78ea" - integrity sha512-S0QThY1jnU7Q+HY+g9JgpAJszzNmNkigZ4+X/4qlUXE0WYYn9i2YG5H6me1+57QmIXYddcWWqqgF9HUXl667NA== +"@storybook/addon-backgrounds@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.5.16.tgz#a93ea53955f714b4a4432dda1b88942cc87dd390" + integrity sha512-t7qooZ892BruhilFmzYPbysFwpULt/q4zYXNSmKVbAYta8UVvitjcU4F18p8FpWd9WvhiTr0SDlyhNZuzvDfug== dependencies: - "@storybook/addons" "6.5.12" - "@storybook/api" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/components" "6.5.12" - "@storybook/core-events" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/api" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/components" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/theming" "6.5.12" + "@storybook/theming" "6.5.16" core-js "^3.8.2" global "^4.4.0" memoizerific "^1.11.3" @@ -1929,47 +1811,47 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/addon-controls@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.5.12.tgz#01978f624b3ef29610e8e573e93fa063be37d7af" - integrity sha512-UoaamkGgAQXplr0kixkPhROdzkY+ZJQpG7VFDU6kmZsIgPRNfX/QoJFR5vV6TpDArBIjWaUUqWII+GHgPRzLgQ== +"@storybook/addon-controls@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.5.16.tgz#5017805b8ca413edf6e9d87b90a9436e79eb5e59" + integrity sha512-kShSGjq1MjmmyL3l8i+uPz6yddtf82mzys0l82VKtcuyjrr5944wYFJ5NTXMfZxrO/U6FeFsfuFZE/k6ex3EMg== dependencies: - "@storybook/addons" "6.5.12" - "@storybook/api" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/components" "6.5.12" - "@storybook/core-common" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/api" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/components" "6.5.16" + "@storybook/core-common" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/node-logger" "6.5.12" - "@storybook/store" "6.5.12" - "@storybook/theming" "6.5.12" + "@storybook/node-logger" "6.5.16" + "@storybook/store" "6.5.16" + "@storybook/theming" "6.5.16" core-js "^3.8.2" lodash "^4.17.21" ts-dedent "^2.0.0" -"@storybook/addon-docs@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.5.12.tgz#84d27147b044b1e3ed7354aba635bf71f3750000" - integrity sha512-T+QTkmF7QlMVfXHXEberP8CYti/XMTo9oi6VEbZLx+a2N3qY4GZl7X2g26Sf5V4Za+xnapYKBMEIiJ5SvH9weQ== +"@storybook/addon-docs@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.5.16.tgz#3de912f51fb8e48b9a53b11a5b1cede067acbe70" + integrity sha512-QM9WDZG9P02UvbzLu947a8ZngOrQeAKAT8jCibQFM/+RJ39xBlfm8rm+cQy3dm94wgtjmVkA3mKGOV/yrrsddg== dependencies: "@babel/plugin-transform-react-jsx" "^7.12.12" "@babel/preset-env" "^7.12.11" "@jest/transform" "^26.6.2" "@mdx-js/react" "^1.6.22" - "@storybook/addons" "6.5.12" - "@storybook/api" "6.5.12" - "@storybook/components" "6.5.12" - "@storybook/core-common" "6.5.12" - "@storybook/core-events" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/api" "6.5.16" + "@storybook/components" "6.5.16" + "@storybook/core-common" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/docs-tools" "6.5.12" + "@storybook/docs-tools" "6.5.16" "@storybook/mdx1-csf" "^0.0.1" - "@storybook/node-logger" "6.5.12" - "@storybook/postinstall" "6.5.12" - "@storybook/preview-web" "6.5.12" - "@storybook/source-loader" "6.5.12" - "@storybook/store" "6.5.12" - "@storybook/theming" "6.5.12" + "@storybook/node-logger" "6.5.16" + "@storybook/postinstall" "6.5.16" + "@storybook/preview-web" "6.5.16" + "@storybook/source-loader" "6.5.16" + "@storybook/store" "6.5.16" + "@storybook/theming" "6.5.16" babel-loader "^8.0.0" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -1982,36 +1864,36 @@ util-deprecate "^1.0.2" "@storybook/addon-essentials@^6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.5.12.tgz#c492587e6e47221257dd1e18ca8c566a1f4dfc7a" - integrity sha512-4AAV0/mQPSk3V0Pie1NIqqgBgScUc0VtBEXDm8BgPeuDNVhPEupnaZgVt+I3GkzzPPo6JjdCsp2L11f3bBSEjw== - dependencies: - "@storybook/addon-actions" "6.5.12" - "@storybook/addon-backgrounds" "6.5.12" - "@storybook/addon-controls" "6.5.12" - "@storybook/addon-docs" "6.5.12" - "@storybook/addon-measure" "6.5.12" - "@storybook/addon-outline" "6.5.12" - "@storybook/addon-toolbars" "6.5.12" - "@storybook/addon-viewport" "6.5.12" - "@storybook/addons" "6.5.12" - "@storybook/api" "6.5.12" - "@storybook/core-common" "6.5.12" - "@storybook/node-logger" "6.5.12" + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.5.16.tgz#815991366a4a90b60bf0aa4022eb0bb0c2bb536d" + integrity sha512-TeoMr6tEit4Pe91GH6f8g/oar1P4M0JL9S6oMcFxxrhhtOGO7XkWD5EnfyCx272Ok2VYfE58FNBTGPNBVIqYKQ== + dependencies: + "@storybook/addon-actions" "6.5.16" + "@storybook/addon-backgrounds" "6.5.16" + "@storybook/addon-controls" "6.5.16" + "@storybook/addon-docs" "6.5.16" + "@storybook/addon-measure" "6.5.16" + "@storybook/addon-outline" "6.5.16" + "@storybook/addon-toolbars" "6.5.16" + "@storybook/addon-viewport" "6.5.16" + "@storybook/addons" "6.5.16" + "@storybook/api" "6.5.16" + "@storybook/core-common" "6.5.16" + "@storybook/node-logger" "6.5.16" core-js "^3.8.2" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" "@storybook/addon-links@^6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.5.12.tgz#57ec0c651ef29f9d969a2d715f85a69d5ce29e60" - integrity sha512-Dyt922J5nTBwM/9KtuuDIt3sX8xdTkKh+aXSoOX6OzT04Xwm5NumFOvuQ2YA00EM+3Ihn7Ayc3urvxnHTixmKg== + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.5.16.tgz#cacb20cd0656f0681a874709d428d3f3577828c3" + integrity sha512-P/mmqK57NGXnR0i3d/T5B0rIt0Lg8Yq+qionRr3LK3AwG/4yGnYt4GNomLEknn/eEwABYq1Q/Z1aOpgIhNdq5A== dependencies: - "@storybook/addons" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/core-events" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/router" "6.5.12" + "@storybook/router" "6.5.16" "@types/qs" "^6.9.5" core-js "^3.8.2" global "^4.4.0" @@ -2020,95 +1902,95 @@ regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-measure@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-6.5.12.tgz#dbdb0f6fcf0a58a5f0342d3df898e42bb56c587b" - integrity sha512-zmolO6+VG4ov2620G7f1myqLQLztfU+ykN+U5y52GXMFsCOyB7fMoVWIMrZwsNlinDu+CnUvelXHUNbqqnjPRg== +"@storybook/addon-measure@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-6.5.16.tgz#7f7bfdc0b624fbf18386b20a5e460027bf87115c" + integrity sha512-DMwnXkmM2L6POTh4KaOWvOAtQ2p9Tr1UUNxz6VXiN5cKFohpCs6x0txdLU5WN8eWIq0VFsO7u5ZX34CGCc6gCg== dependencies: - "@storybook/addons" "6.5.12" - "@storybook/api" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/components" "6.5.12" - "@storybook/core-events" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/api" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/components" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" global "^4.4.0" -"@storybook/addon-outline@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-6.5.12.tgz#27a7eef9c2d450a59458416055a1a55876229488" - integrity sha512-jXwLz2rF/CZt6Cgy+QUTa+pNW0IevSONYwS3D533E9z5h0T5ZKJbbxG5jxM+oC+FpZ/nFk5mEmUaYNkxgIVdpw== +"@storybook/addon-outline@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-6.5.16.tgz#6985b6a0b0122db36561c81dde2aa851604657b7" + integrity sha512-0du96nha4qltexO0Xq1xB7LeRSbqjC9XqtZLflXG7/X3ABoPD2cXgOV97eeaXUodIyb2qYBbHUfftBeA75x0+w== dependencies: - "@storybook/addons" "6.5.12" - "@storybook/api" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/components" "6.5.12" - "@storybook/core-events" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/api" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/components" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" global "^4.4.0" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-toolbars@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.5.12.tgz#ea81c63ae56eae8bc1d3b5a358cff66ae5a2d66e" - integrity sha512-+QjoEHkekz4wTy8zqxYdV9ijDJ5YcjDc/qdnV8wx22zkoVU93FQlo0CHHVjpyvc3ilQliZbdQDJx62BcHXw30Q== +"@storybook/addon-toolbars@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.5.16.tgz#9de04f9cc64b68d6cb680aa1c4fbf874e11afa32" + integrity sha512-y3PuUKiwOWrAvqx1YdUvArg0UaAwmboXFeR2bkrowk1xcT+xnRO3rML4npFeUl26OQ1FzwxX/cw6nknREBBLEA== dependencies: - "@storybook/addons" "6.5.12" - "@storybook/api" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/components" "6.5.12" - "@storybook/theming" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/api" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/components" "6.5.16" + "@storybook/theming" "6.5.16" core-js "^3.8.2" regenerator-runtime "^0.13.7" -"@storybook/addon-viewport@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.5.12.tgz#7158647c006c6aabd86294d24e7209becbf30b88" - integrity sha512-eQ1UrmbiMiPmWe+fdMWIc0F6brh/S2z4ADfwFz0tTd+vOLWRZp1xw8JYQ9P2ZasE+PM3WFOVT9jvNjZj/cHnfw== - dependencies: - "@storybook/addons" "6.5.12" - "@storybook/api" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/components" "6.5.12" - "@storybook/core-events" "6.5.12" - "@storybook/theming" "6.5.12" +"@storybook/addon-viewport@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.5.16.tgz#226aa0ab93df68264269eb31adb104e7e48f6c68" + integrity sha512-1Vyqf1U6Qng6TXlf4SdqUKyizlw1Wn6+qW8YeA2q1lbkJqn3UlnHXIp8Q0t/5q1dK5BFtREox3+jkGwbJrzkmA== + dependencies: + "@storybook/addons" "6.5.16" + "@storybook/api" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/components" "6.5.16" + "@storybook/core-events" "6.5.16" + "@storybook/theming" "6.5.16" core-js "^3.8.2" global "^4.4.0" memoizerific "^1.11.3" prop-types "^15.7.2" regenerator-runtime "^0.13.7" -"@storybook/addons@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.5.12.tgz#891767b5f88ea99b956cf19e9e2893594068adc7" - integrity sha512-y3cgxZq41YGnuIlBJEuJjSFdMsm8wnvlNOGUP9Q+Er2dgfx8rJz4Q22o4hPjpvpaj4XdBtxCJXI2NeFpN59+Cw== +"@storybook/addons@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.5.16.tgz#07e8f2205f86fa4c9dada719e3e096cb468e3cdd" + integrity sha512-p3DqQi+8QRL5k7jXhXmJZLsE/GqHqyY6PcoA1oNTJr0try48uhTGUOYkgzmqtDaa/qPFO5LP+xCPzZXckGtquQ== dependencies: - "@storybook/api" "6.5.12" - "@storybook/channels" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/core-events" "6.5.12" + "@storybook/api" "6.5.16" + "@storybook/channels" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/router" "6.5.12" - "@storybook/theming" "6.5.12" + "@storybook/router" "6.5.16" + "@storybook/theming" "6.5.16" "@types/webpack-env" "^1.16.0" core-js "^3.8.2" global "^4.4.0" regenerator-runtime "^0.13.7" -"@storybook/api@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.5.12.tgz#7cc82087fc9298be03f15bf4ab9c4aab294b3bac" - integrity sha512-DuUZmMlQxkFNU9Vgkp9aNfCkAongU76VVmygvCuSpMVDI9HQ2lG0ydL+ppL4XKoSMCCoXTY6+rg4hJANnH+1AQ== +"@storybook/api@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.5.16.tgz#897915b76de05587fd702951d5d836f708043662" + integrity sha512-HOsuT8iomqeTMQJrRx5U8nsC7lJTwRr1DhdD0SzlqL4c80S/7uuCy4IZvOt4sYQjOzW5fOo/kamcoBXyLproTA== dependencies: - "@storybook/channels" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/core-events" "6.5.12" + "@storybook/channels" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/router" "6.5.12" + "@storybook/router" "6.5.16" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.5.12" + "@storybook/theming" "6.5.16" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -2120,28 +2002,28 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-webpack4@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.5.12.tgz#dcfd91d3e78505943864335bc2b84ccc4d00a54e" - integrity sha512-TsthT5jm9ZxQPNOZJbF5AV24me3i+jjYD7gbdKdSHrOVn1r3ydX4Z8aD6+BjLCtTn3T+e8NMvUkL4dInEo1x6g== +"@storybook/builder-webpack4@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.5.16.tgz#ac468d244835a7f3bd01936398fee47244da35c1" + integrity sha512-YqDIrVNsUo8r9xc6AxsYDLxVYtMgl5Bxk+8/h1adsOko+jAFhdg6hOcAVxEmoSI0TMASOOVMFlT2hr23ppN2rQ== dependencies: "@babel/core" "^7.12.10" - "@storybook/addons" "6.5.12" - "@storybook/api" "6.5.12" - "@storybook/channel-postmessage" "6.5.12" - "@storybook/channels" "6.5.12" - "@storybook/client-api" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/components" "6.5.12" - "@storybook/core-common" "6.5.12" - "@storybook/core-events" "6.5.12" - "@storybook/node-logger" "6.5.12" - "@storybook/preview-web" "6.5.12" - "@storybook/router" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/api" "6.5.16" + "@storybook/channel-postmessage" "6.5.16" + "@storybook/channels" "6.5.16" + "@storybook/client-api" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/components" "6.5.16" + "@storybook/core-common" "6.5.16" + "@storybook/core-events" "6.5.16" + "@storybook/node-logger" "6.5.16" + "@storybook/preview-web" "6.5.16" + "@storybook/router" "6.5.16" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.12" - "@storybook/theming" "6.5.12" - "@storybook/ui" "6.5.12" + "@storybook/store" "6.5.16" + "@storybook/theming" "6.5.16" + "@storybook/ui" "6.5.16" "@types/node" "^14.0.10 || ^16.0.0" "@types/webpack" "^4.41.26" autoprefixer "^9.8.6" @@ -2173,51 +2055,51 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.2.2" -"@storybook/channel-postmessage@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.5.12.tgz#045c5920eb6924b11411d1d5f6475a0d83c982e3" - integrity sha512-SL/tJBLOdDlbUAAxhiZWOEYd5HI4y8rN50r6jeed5nD8PlocZjxJ6mO0IxnePqIL9Yu3nSrQRHrtp8AJvPX0Yg== +"@storybook/channel-postmessage@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.5.16.tgz#06167c0a66c06b2b5f8ff01d1dd436fff8119a15" + integrity sha512-fZZSN29dsUArWOx7e7lTdMA9+7zijVwCwbvi2Fo4fqhRLh1DsTb/VXfz1FKMCWAjNlcX7QQvV25tnxbqsD6lyw== dependencies: - "@storybook/channels" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/core-events" "6.5.12" + "@storybook/channels" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/core-events" "6.5.16" core-js "^3.8.2" global "^4.4.0" qs "^6.10.0" telejson "^6.0.8" -"@storybook/channel-websocket@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.5.12.tgz#4796e2436900d73fb867591f7d7cf8f94898d51b" - integrity sha512-0t5dLselHVKTRYaphxx1dRh4pmOFCfR7h8oNJlOvJ29Qy5eNyVujDG9nhwWbqU6IKayuP4nZrAbe9Req9YZYlQ== +"@storybook/channel-websocket@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.5.16.tgz#41f69ca9444a4dfbf72580b4696900c5b1d2b817" + integrity sha512-wJg2lpBjmRC2GJFzmhB9kxlh109VE58r/0WhFtLbwKvPqsvGf82xkBEl6BtBCvIQ4stzYnj/XijjA8qSi2zpOg== dependencies: - "@storybook/channels" "6.5.12" - "@storybook/client-logger" "6.5.12" + "@storybook/channels" "6.5.16" + "@storybook/client-logger" "6.5.16" core-js "^3.8.2" global "^4.4.0" telejson "^6.0.8" -"@storybook/channels@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.5.12.tgz#98baf01691d263e2ac341853361ec69c1a6621bc" - integrity sha512-X5XaKbe4b7LXJ4sUakBo00x6pXnW78JkOonHoaKoWsccHLlEzwfBZpVVekhVZnqtCoLT23dB8wjKgA71RYWoiw== +"@storybook/channels@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.5.16.tgz#3fb9a3b5666ecb951a2d0cf8b0699b084ef2d3c6" + integrity sha512-VylzaWQZaMozEwZPJdyJoz+0jpDa8GRyaqu9TGG6QGv+KU5POoZaGLDkRE7TzWkyyP0KQLo80K99MssZCpgSeg== dependencies: core-js "^3.8.2" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-api@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.5.12.tgz#9d02b2a8f5d4137918257742d72ae10c6a70a477" - integrity sha512-+JiRSgiU829KPc25nG/k0+Ao2nUelHUe8Y/9cRoKWbCAGzi4xd0JLhHAOr9Oi2szWx/OI1L08lxVv1+WTveAeA== +"@storybook/client-api@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.5.16.tgz#13e5a7c3d1f0f951ec4ef51cfcf2c5aafb560e12" + integrity sha512-i3UwkzzUFw8I+E6fOcgB5sc4oU2fhvaKnqC1mpd9IYGJ9JN9MnGIaVl3Ko28DtFItu/QabC9JsLIJVripFLktQ== dependencies: - "@storybook/addons" "6.5.12" - "@storybook/channel-postmessage" "6.5.12" - "@storybook/channels" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/core-events" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/channel-postmessage" "6.5.16" + "@storybook/channels" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/store" "6.5.12" + "@storybook/store" "6.5.16" "@types/qs" "^6.9.5" "@types/webpack-env" "^1.16.0" core-js "^3.8.2" @@ -2232,43 +2114,43 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-logger@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.5.12.tgz#d9809e13dc7939eb61452a5e94b1ccb61c4a022c" - integrity sha512-IrkMr5KZcudX935/C2balFbxLHhkvQnJ78rbVThHDVckQ7l3oIXTh66IMzldeOabVFDZEMiW8AWuGEYof+JtLw== +"@storybook/client-logger@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.5.16.tgz#955cc46b389e7151c9eb1585a75e6a0605af61a1" + integrity sha512-pxcNaCj3ItDdicPTXTtmYJE3YC1SjxFrBmHcyrN+nffeNyiMuViJdOOZzzzucTUG0wcOOX8jaSyak+nnHg5H1Q== dependencies: core-js "^3.8.2" global "^4.4.0" -"@storybook/components@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.5.12.tgz#e137f0683ea92e22de116bfa62cfd65ce4efe01d" - integrity sha512-NAAGl5PDXaHdVLd6hA+ttmLwH3zAVGXeUmEubzKZ9bJzb+duhFKxDa9blM4YEkI+palumvgAMm0UgS7ou680Ig== +"@storybook/components@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.5.16.tgz#f8dc51213bc08fe32154be964e1e8b0e2f670ed6" + integrity sha512-LzBOFJKITLtDcbW9jXl0/PaG+4xAz25PK8JxPZpIALbmOpYWOAPcO6V9C2heX6e6NgWFMUxjplkULEk9RCQMNA== dependencies: - "@storybook/client-logger" "6.5.12" + "@storybook/client-logger" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/theming" "6.5.12" + "@storybook/theming" "6.5.16" core-js "^3.8.2" memoizerific "^1.11.3" qs "^6.10.0" regenerator-runtime "^0.13.7" util-deprecate "^1.0.2" -"@storybook/core-client@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.5.12.tgz#1a3889604b92292d210d956c46f86a64dd7a9483" - integrity sha512-jyAd0ud6zO+flpLv0lEHbbt1Bv9Ms225M6WTQLrfe7kN/7j1pVKZEoeVCLZwkJUtSKcNiWQxZbS15h31pcYwqg== - dependencies: - "@storybook/addons" "6.5.12" - "@storybook/channel-postmessage" "6.5.12" - "@storybook/channel-websocket" "6.5.12" - "@storybook/client-api" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/core-events" "6.5.12" +"@storybook/core-client@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.5.16.tgz#ed2328fd38c6111fe887f6a91b28d9dc2b17092a" + integrity sha512-14IRaDrVtKrQ+gNWC0wPwkCNfkZOKghYV/swCUnQX3rP99defsZK8Hc7xHIYoAiOP5+sc3sweRAxgmFiJeQ1Ig== + dependencies: + "@storybook/addons" "6.5.16" + "@storybook/channel-postmessage" "6.5.16" + "@storybook/channel-websocket" "6.5.16" + "@storybook/client-api" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/preview-web" "6.5.12" - "@storybook/store" "6.5.12" - "@storybook/ui" "6.5.12" + "@storybook/preview-web" "6.5.16" + "@storybook/store" "6.5.16" + "@storybook/ui" "6.5.16" airbnb-js-shims "^2.2.1" ansi-to-html "^0.6.11" core-js "^3.8.2" @@ -2280,10 +2162,10 @@ unfetch "^4.2.0" util-deprecate "^1.0.2" -"@storybook/core-common@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.5.12.tgz#9f8d5cb3812382c49c84dcfb4279a39e228a1b83" - integrity sha512-gG20+eYdIhwQNu6Xs805FLrOCWtkoc8Rt8gJiRt8yXzZh9EZkU4xgCRoCxrrJ03ys/gTiCFbBOfRi749uM3z4w== +"@storybook/core-common@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.5.16.tgz#db80aa6f220a576a83db821f720e103190a914ae" + integrity sha512-2qtnKP3TTOzt2cp6LXKRTh7XrI9z5VanMnMTgeoFcA5ebnndD4V6BExQUdYPClE/QooLx6blUWNgS9dFEpjSqQ== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -2307,7 +2189,7 @@ "@babel/preset-react" "^7.12.10" "@babel/preset-typescript" "^7.12.7" "@babel/register" "^7.12.1" - "@storybook/node-logger" "6.5.12" + "@storybook/node-logger" "6.5.16" "@storybook/semver" "^7.3.2" "@types/node" "^14.0.10 || ^16.0.0" "@types/pretty-hrtime" "^1.0.0" @@ -2324,7 +2206,7 @@ glob "^7.1.6" handlebars "^4.7.7" interpret "^2.2.0" - json5 "^2.1.3" + json5 "^2.2.3" lazy-universal-dotenv "^3.0.1" picomatch "^2.3.0" pkg-dir "^5.0.0" @@ -2336,30 +2218,30 @@ util-deprecate "^1.0.2" webpack "4" -"@storybook/core-events@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.5.12.tgz#28bd727cc4216012409bfac412fcb708346c56bc" - integrity sha512-0AMyMM19R/lHsYRfWqM8zZTXthasTAK2ExkSRzYi2GkIaVMxRKtM33YRwxKIpJ6KmIKIs8Ru3QCXu1mfCmGzNg== +"@storybook/core-events@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.5.16.tgz#b1c265dac755007dae172d9d4b72656c9e5d7bb3" + integrity sha512-qMZQwmvzpH5F2uwNUllTPg6eZXr2OaYZQRRN8VZJiuorZzDNdAFmiVWMWdkThwmyLEJuQKXxqCL8lMj/7PPM+g== dependencies: core-js "^3.8.2" -"@storybook/core-server@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.5.12.tgz#bc47a2af4972f7c9cddb8b5961bd5f04a3f7f09f" - integrity sha512-q1b/XKwoLUcCoCQ+8ndPD5THkEwXZYJ9ROv16i2VGUjjjAuSqpEYBq5GMGQUgxlWp1bkxtdGL2Jz+6pZfvldzA== +"@storybook/core-server@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.5.16.tgz#f40de3413de49388129d29c74e5e48321af03f12" + integrity sha512-/3NPfmNyply395Dm0zaVZ8P9aruwO+tPx4D6/jpw8aqrRSwvAMndPMpoMCm0NXcpSm5rdX+Je4S3JW6JcggFkA== dependencies: "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-webpack4" "6.5.12" - "@storybook/core-client" "6.5.12" - "@storybook/core-common" "6.5.12" - "@storybook/core-events" "6.5.12" + "@storybook/builder-webpack4" "6.5.16" + "@storybook/core-client" "6.5.16" + "@storybook/core-common" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/csf-tools" "6.5.12" - "@storybook/manager-webpack4" "6.5.12" - "@storybook/node-logger" "6.5.12" + "@storybook/csf-tools" "6.5.16" + "@storybook/manager-webpack4" "6.5.16" + "@storybook/node-logger" "6.5.16" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.12" - "@storybook/telemetry" "6.5.12" + "@storybook/store" "6.5.16" + "@storybook/telemetry" "6.5.16" "@types/node" "^14.0.10 || ^16.0.0" "@types/node-fetch" "^2.5.7" "@types/pretty-hrtime" "^1.0.0" @@ -2394,18 +2276,18 @@ ws "^8.2.3" x-default-browser "^0.4.0" -"@storybook/core@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.5.12.tgz#b12456a76de584ee3b0818b5f50c35338ac66f93" - integrity sha512-+o3psAVWL+5LSwyJmEbvhgxKO1Et5uOX8ujNVt/f1fgwJBIf6BypxyPKu9YGQDRzcRssESQQZWNrZCCAZlFeuQ== +"@storybook/core@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.5.16.tgz#ae994f01327fe81b6e652963c35bac7a74f0da06" + integrity sha512-CEF3QFTsm/VMnMKtRNr4rRdLeIkIG0g1t26WcmxTdSThNPBd8CsWzQJ7Jqu7CKiut+MU4A1LMOwbwCE5F2gmyA== dependencies: - "@storybook/core-client" "6.5.12" - "@storybook/core-server" "6.5.12" + "@storybook/core-client" "6.5.16" + "@storybook/core-server" "6.5.16" -"@storybook/csf-tools@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.5.12.tgz#7740becd059686001d4c1b4db3f43e792362d918" - integrity sha512-BPhnB1xJtBVOzXuCURzQRdXcstE27ht4qoTgQkbwUTy4MEtUZ/f1AnHSYRdzrgukXdUFWseNIK4RkNdJpfOfNQ== +"@storybook/csf-tools@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.5.16.tgz#367889a3ddb33c93261129104ec2958215ec5459" + integrity sha512-+WD4sH/OwAfXZX3IN6/LOZ9D9iGEFcN+Vvgv9wOsLRgsAZ10DG/NK6c1unXKDM/ogJtJYccNI8Hd+qNE/GFV6A== dependencies: "@babel/core" "^7.12.10" "@babel/generator" "^7.12.11" @@ -2429,33 +2311,33 @@ dependencies: lodash "^4.17.15" -"@storybook/docs-tools@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-6.5.12.tgz#22138cc810e8790b21d518cd48a3e2716d43c751" - integrity sha512-8brf8W89KVk95flVqW0sYEqkL+FBwb5W9CnwI+Ggd6r2cqXe9jyg+0vDZFdYp6kYNQKrPr4fbXGrGVXQG18/QQ== +"@storybook/docs-tools@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-6.5.16.tgz#1ec5433eeab63a214d37ffc4660cdaec9704ac39" + integrity sha512-o+rAWPRGifjBF5xZzTKOqnHN3XQWkl0QFJYVDIiJYJrVll7ExCkpEq/PahOGzIBBV+tpMstJgmKM3lr/lu/jmg== dependencies: "@babel/core" "^7.12.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/store" "6.5.12" + "@storybook/store" "6.5.16" core-js "^3.8.2" doctrine "^3.0.0" lodash "^4.17.21" regenerator-runtime "^0.13.7" -"@storybook/manager-webpack4@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.5.12.tgz#7e0ae21455e1c070d291942c18373ceaa58c0e05" - integrity sha512-LH3e6qfvq2znEdxe2kaWtmdDPTnvSkufzoC9iwOgNvo3YrTGrYNyUTDegvW293TOTVfUn7j6TBcsOxIgRnt28g== +"@storybook/manager-webpack4@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.5.16.tgz#7033228d38f048ceff3d403ba918d7f206b926a5" + integrity sha512-5VJZwmQU6AgdsBPsYdu886UKBHQ9SJEnFMaeUxKEclXk+iRsmbzlL4GHKyVd6oGX/ZaecZtcHPR6xrzmA4Ziew== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.5.12" - "@storybook/core-client" "6.5.12" - "@storybook/core-common" "6.5.12" - "@storybook/node-logger" "6.5.12" - "@storybook/theming" "6.5.12" - "@storybook/ui" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/core-client" "6.5.16" + "@storybook/core-common" "6.5.16" + "@storybook/node-logger" "6.5.16" + "@storybook/theming" "6.5.16" + "@storybook/ui" "6.5.16" "@types/node" "^14.0.10 || ^16.0.0" "@types/webpack" "^4.41.26" babel-loader "^8.0.0" @@ -2500,10 +2382,10 @@ prettier ">=2.2.1 <=2.3.0" ts-dedent "^2.0.0" -"@storybook/node-logger@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.5.12.tgz#0f9efcd1a37c7aae493b22fe33cacca87c135b9b" - integrity sha512-jdLtT3mX5GQKa+0LuX0q0sprKxtCGf6HdXlKZGD5FEuz4MgJUGaaiN0Hgi+U7Z4tVNOtSoIbYBYXHqfUgJrVZw== +"@storybook/node-logger@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.5.16.tgz#d57fd6204c2abfbc297551d98ad5475dd73207cc" + integrity sha512-YjhBKrclQtjhqFNSO+BZK+RXOx6EQypAELJKoLFaawg331e8VUfvUuRCNB3fcEWp8G9oH13PQQte0OTjLyyOYg== dependencies: "@types/npmlog" "^4.1.2" chalk "^4.1.0" @@ -2511,24 +2393,24 @@ npmlog "^5.0.1" pretty-hrtime "^1.0.3" -"@storybook/postinstall@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.5.12.tgz#9ff47c254899949be4934b021c37491b247d3266" - integrity sha512-6K73f9c2UO+w4Wtyo2BxEpEsnhPvMgqHSaJ9Yt6Tc90LaDGUbcVgy6PNibsRyuJ/KQ543WeiRO5rSZfm2uJU9A== +"@storybook/postinstall@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.5.16.tgz#20aa02fd4513fa0b60ed838b413c46f351f64f60" + integrity sha512-08K2q+qN6pqyPW7PHLCZ5G5Xa6Wosd6t0F16PQ4abX2ItlJLabVoJN5mZ0gm/aeLTjD8QYr8IDvacu4eXh0SVA== dependencies: core-js "^3.8.2" -"@storybook/preview-web@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.5.12.tgz#09f67908513b9e85254b0b3adea498c8a3e6f7e3" - integrity sha512-Q5mduCJsY9zhmlsrhHvtOBA3Jt2n45bhfVkiUEqtj8fDit45/GW+eLoffv8GaVTGjV96/Y1JFwDZUwU6mEfgGQ== +"@storybook/preview-web@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.5.16.tgz#1d32a72be25776f9597e33ffc1914f3430fae689" + integrity sha512-IJnvfe2sKCfk7apN9Fu9U8qibbarrPX5JB55ZzK1amSHVmSDuYk5MIMc/U3NnSQNnvd1DO5v/zMcGgj563hrtg== dependencies: - "@storybook/addons" "6.5.12" - "@storybook/channel-postmessage" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/core-events" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/channel-postmessage" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/store" "6.5.12" + "@storybook/store" "6.5.16" ansi-to-html "^0.6.11" core-js "^3.8.2" global "^4.4.0" @@ -2540,12 +2422,12 @@ unfetch "^4.2.0" util-deprecate "^1.0.2" -"@storybook/router@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.5.12.tgz#58efbc1f2f301c8584802af1c710b2f6f03f948c" - integrity sha512-xHubde9YnBbpkDY5+zGO4Pr6VPxP8H9J2v4OTF3H82uaxCIKR0PKG0utS9pFKIsEiP3aM62Hb9qB8nU+v1nj3w== +"@storybook/router@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.5.16.tgz#28fb4d34e8219351a40bee1fc94dcacda6e1bd8b" + integrity sha512-ZgeP8a5YV/iuKbv31V8DjPxlV4AzorRiR8OuSt/KqaiYXNXlOoQDz/qMmiNcrshrfLpmkzoq7fSo4T8lWo2UwQ== dependencies: - "@storybook/client-logger" "6.5.12" + "@storybook/client-logger" "6.5.16" core-js "^3.8.2" memoizerific "^1.11.3" qs "^6.10.0" @@ -2559,30 +2441,30 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.5.12.tgz#38b1af69c098a1c63bb1d0091b8714a799efbbda" - integrity sha512-4iuILFsKNV70sEyjzIkOqgzgQx7CJ8kTEFz590vkmWXQNKz7YQzjgISIwL7GBw/myJgeb04bl5psVgY0cbG5vg== +"@storybook/source-loader@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.5.16.tgz#b691a024e6ff36bbd1144ecb4a65986f0e149741" + integrity sha512-fyVl4jrM/5JLrb48aqXPu7sTsmySQaVGFp1zfeqvPPlJRFMastDrePm5XGPN7Qjv1wsKmpuBvuweFKOT1pru3g== dependencies: - "@storybook/addons" "6.5.12" - "@storybook/client-logger" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/client-logger" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" estraverse "^5.2.0" global "^4.4.0" - loader-utils "^2.0.0" + loader-utils "^2.0.4" lodash "^4.17.21" prettier ">=2.2.1 <=2.3.0" regenerator-runtime "^0.13.7" -"@storybook/store@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.5.12.tgz#f1624ba942162cb9627a2ddcac72bfc9062e17a2" - integrity sha512-SMQOr0XvV0mhTuqj3XOwGGc4kTPVjh3xqrG1fqkj9RGs+2jRdmO6mnwzda5gPwUmWNTorZ7FxZ1iEoyfYNtuiQ== +"@storybook/store@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.5.16.tgz#b308701293a3a11bfcc766770584495874fd17da" + integrity sha512-g+bVL5hmMq/9cM51K04e37OviUPHT0rHHrRm5wj/hrf18Kd9120b3sxdQ5Dc+HZ292yuME0n+cyrQPTYx9Epmw== dependencies: - "@storybook/addons" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/core-events" "6.5.12" + "@storybook/addons" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/core-events" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -2596,13 +2478,13 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/telemetry@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-6.5.12.tgz#12b0a2bcfe47d57ee6e6344ac789a905a5912747" - integrity sha512-mCHxx7NmQ3n7gx0nmblNlZE5ZgrjQm6B08mYeWg6Y7r4GZnqS6wZbvAwVhZZ3Gg/9fdqaBApHsdAXp0d5BrlxA== +"@storybook/telemetry@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-6.5.16.tgz#b13c8133e02c28e37b7716c987e7414b1ddc5363" + integrity sha512-CWr5Uko1l9jJW88yTXsZTj/3GTabPvw0o7pDPOXPp8JRZiJTxv1JFaFCafhK9UzYbgcRuGfCC8kEWPZims7iKA== dependencies: - "@storybook/client-logger" "6.5.12" - "@storybook/core-common" "6.5.12" + "@storybook/client-logger" "6.5.16" + "@storybook/core-common" "6.5.16" chalk "^4.1.0" core-js "^3.8.2" detect-package-manager "^2.0.1" @@ -2614,30 +2496,30 @@ read-pkg-up "^7.0.1" regenerator-runtime "^0.13.7" -"@storybook/theming@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.5.12.tgz#7df1b52913d49c5e84fc1f2e837c02d9fa8cc639" - integrity sha512-uWOo84qMQ2R6c1C0faZ4Q0nY01uNaX7nXoJKieoiJ6ZqY9PSYxJl1kZLi3uPYnrxLZjzjVyXX8MgdxzbppYItA== +"@storybook/theming@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.5.16.tgz#b999bdb98945b605b93b9dfdf7408535b701e2aa" + integrity sha512-hNLctkjaYLRdk1+xYTkC1mg4dYz2wSv6SqbLpcKMbkPHTE0ElhddGPHQqB362md/w9emYXNkt1LSMD8Xk9JzVQ== dependencies: - "@storybook/client-logger" "6.5.12" + "@storybook/client-logger" "6.5.16" core-js "^3.8.2" memoizerific "^1.11.3" regenerator-runtime "^0.13.7" -"@storybook/ui@6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.5.12.tgz#25ccd6e6d5aae227ba6561c2b8e9cfda9b0ad4de" - integrity sha512-P7+ARI5NvaEYkrbIciT/UMgy3kxMt4WCtHMXss2T01UMCIWh1Ws4BJaDNqtQSpKuwjjS4eqZL3aQWhlUpYAUEg== - dependencies: - "@storybook/addons" "6.5.12" - "@storybook/api" "6.5.12" - "@storybook/channels" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/components" "6.5.12" - "@storybook/core-events" "6.5.12" - "@storybook/router" "6.5.12" +"@storybook/ui@6.5.16": + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.5.16.tgz#c73bf456e672ecf2370b4365070088487fc0ce57" + integrity sha512-rHn/n12WM8BaXtZ3IApNZCiS+C4Oc5+Lkl4MoctX8V7QSml0SxZBB5hsJ/AiWkgbRxjQpa/L/Nt7/Qw0FjTH/A== + dependencies: + "@storybook/addons" "6.5.16" + "@storybook/api" "6.5.16" + "@storybook/channels" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/components" "6.5.16" + "@storybook/core-events" "6.5.16" + "@storybook/router" "6.5.16" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.5.12" + "@storybook/theming" "6.5.16" core-js "^3.8.2" memoizerific "^1.11.3" qs "^6.10.0" @@ -2645,17 +2527,17 @@ resolve-from "^5.0.0" "@storybook/vue@^6.5.12": - version "6.5.12" - resolved "https://registry.yarnpkg.com/@storybook/vue/-/vue-6.5.12.tgz#43715d5882e27b12863dd033653246cb65043178" - integrity sha512-nJ9sWyctUQb2tCfOrZwYReCFJOqVIBaOkW9pJDIUO33pduX0eeqo7YmB14xhXwtwNv8klhnGiZE7Pdf7Rm71SQ== - dependencies: - "@storybook/addons" "6.5.12" - "@storybook/client-logger" "6.5.12" - "@storybook/core" "6.5.12" - "@storybook/core-common" "6.5.12" + version "6.5.16" + resolved "https://registry.yarnpkg.com/@storybook/vue/-/vue-6.5.16.tgz#e548995f468e1503a00c324814e3ab76cfee2c82" + integrity sha512-CFpBTAnOC4RZUKf5ZXQXj098D4HgZ+RyB4u45OhFbJFCDXnJQpRk0ANkJ2lyGPYr7/TgfsfZlq2FN8ilPqkk5A== + dependencies: + "@storybook/addons" "6.5.16" + "@storybook/client-logger" "6.5.16" + "@storybook/core" "6.5.16" + "@storybook/core-common" "6.5.16" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/docs-tools" "6.5.12" - "@storybook/store" "6.5.12" + "@storybook/docs-tools" "6.5.16" + "@storybook/store" "6.5.16" "@types/node" "^14.14.20 || ^16.0.0" "@types/webpack-env" "^1.16.0" core-js "^3.8.2" @@ -2687,18 +2569,6 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== -"@types/babel-types@*", "@types/babel-types@^7.0.0": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.9.tgz#01d7b86949f455402a94c788883fe4ba574cad41" - integrity sha512-qZLoYeXSTgQuK1h7QQS16hqLGdmqtRmN8w/rl3Au/l5x/zkHx+a4VHrHyBsi1I1vtK2oBHxSzKIu0R5p6spdOA== - -"@types/babylon@^6.16.2": - version "6.16.5" - resolved "https://registry.yarnpkg.com/@types/babylon/-/babylon-6.16.5.tgz#1c5641db69eb8cdf378edd25b4be7754beeb48b4" - integrity sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w== - dependencies: - "@types/babel-types" "*" - "@types/chai-subset@^1.3.3": version "1.3.3" resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" @@ -2707,86 +2577,72 @@ "@types/chai" "*" "@types/chai@*", "@types/chai@^4.3.4": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" - integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + version "4.3.6" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.6.tgz#7b489e8baf393d5dd1266fb203ddd4ea941259e6" + integrity sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw== "@types/eslint-scope@^3.7.3": - version "3.7.3" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" - integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "8.4.3" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.3.tgz#5c92815a3838b1985c90034cd85f26f59d9d0ece" - integrity sha512-YP1S7YJRMPs+7KZKDb9G63n8YejIwW9BALq7a5j2+H4yl6iOv9CB29edho+cuFRrvmJbbaH2yiVChKLJVysDGw== + version "8.44.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.2.tgz#0d21c505f98a89b8dd4d37fa162b09da6089199a" + integrity sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*": - version "0.0.45" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" - integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== - -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - -"@types/estree@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== "@types/expect@^1.20.4": version "1.20.4" resolved "https://registry.yarnpkg.com/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== +"@types/fs-extra@^8.0.1": + version "8.1.2" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.1.2.tgz#7125cc2e4bdd9bd2fc83005ffdb1d0ba00cca61f" + integrity sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg== + dependencies: + "@types/node" "*" + "@types/glob@*": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + version "8.1.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" + integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== dependencies: - "@types/minimatch" "*" + "@types/minimatch" "^5.1.2" "@types/node" "*" "@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: - "@types/events" "*" "@types/minimatch" "*" "@types/node" "*" "@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + version "4.1.6" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" + integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== dependencies: "@types/node" "*" "@types/hast@^2.0.0": - version "2.3.4" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" - integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== + version "2.3.5" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.5.tgz#08caac88b44d0fdd04dc17a19142355f43bd8a7a" + integrity sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg== dependencies: - "@types/unist" "*" + "@types/unist" "^2" "@types/html-minifier-terser@^5.0.0": version "5.1.2" @@ -2823,49 +2679,44 @@ "@types/istanbul-lib-report" "*" "@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + version "7.0.12" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" + integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== "@types/lodash@^4.14.167": - version "4.14.182" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2" - integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== + version "4.14.198" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.198.tgz#4d27465257011aedc741a809f1269941fa2c5d4c" + integrity sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg== "@types/mdast@^3.0.0": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" - integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + version "3.0.12" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.12.tgz#beeb511b977c875a5b0cc92eab6fcac2f0895514" + integrity sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg== dependencies: - "@types/unist" "*" + "@types/unist" "^2" -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/minimatch@*", "@types/minimatch@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== "@types/node-fetch@^2.5.7": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.1.tgz#8f127c50481db65886800ef496f20bbf15518975" - integrity sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA== + version "2.6.4" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.4.tgz#1bc3a26de814f6bf466b25aeb1473fa1afe6a660" + integrity sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg== dependencies: "@types/node" "*" form-data "^3.0.0" "@types/node@*": - version "18.11.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" - integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== + version "20.5.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.9.tgz#a70ec9d8fa0180a314c3ede0e20ea56ff71aed9a" + integrity sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ== "@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0": - version "16.11.41" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.41.tgz#88eb485b1bfdb4c224d878b7832239536aa2f813" - integrity sha512-mqoYK2TnVjdkGk8qXAVGc/x9nSaTpSrFaGFm43BUH3IdoBV0nta6hYaGmdOvIMlbHJbUEVen3gvwpwovAZKNdQ== - -"@types/node@^14.14.41": - version "14.18.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.21.tgz#0155ee46f6be28b2ff0342ca1a9b9fd4468bef41" - integrity sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q== + version "16.18.48" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.48.tgz#3bc872236cdb31cb51024d8875d655e25db489a4" + integrity sha512-mlaecDKQ7rIZrYD7iiKNdzFb6e/qD5I9U1rAhq+Fd+DWvYVs+G2kv74UFHmSOlg5+i/vF3XxuR522V4u8BqO+Q== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -2893,9 +2744,9 @@ integrity sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ== "@types/qs@^6.9.5": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + version "6.9.8" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.8.tgz#f2a7de3c107b89b441e071d5472e6b726b4adf45" + integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== "@types/resolve@1.20.2": version "1.20.2" @@ -2903,9 +2754,9 @@ integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== "@types/semver@^7.3.4": - version "7.3.10" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.10.tgz#5f19ee40cbeff87d916eedc8c2bfe2305d957f73" - integrity sha512-zsv3fsC7S84NN6nPK06u79oWgrPVd0NvOyqgghV1haPaFcVxIrP4DLomRwGAXk0ui4HZA7mOcSFL98sMVW9viw== + version "7.5.1" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.1.tgz#0480eeb7221eb9bc398ad7432c9d7e14b1a5a367" + integrity sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg== "@types/source-list-map@*": version "0.1.2" @@ -2918,29 +2769,29 @@ integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== "@types/uglify-js@*": - version "3.13.2" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.2.tgz#1044c1713fb81cb1ceef29ad8a9ee1ce08d690ef" - integrity sha512-/xFrPIo+4zOeNGtVMbf9rUm0N+i4pDf1ynExomqtokIJmVzR3962lJ1UE+MmexMkA0cmN9oTzg5Xcbwge0Ij2Q== + version "3.17.2" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.17.2.tgz#a2ba86fd524f6281a7655463338c546f845b29c3" + integrity sha512-9SjrHO54LINgC/6Ehr81NjAxAYvwEZqjUHLjJYvC4Nmr9jbLQCIZbWSvl4vXQkkmR1UAuaKDycau3O1kWGFyXQ== dependencies: source-map "^0.6.1" -"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== +"@types/unist@^2", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.8.tgz#bb197b9639aa1a04cf464a617fe800cccd92ad5c" + integrity sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw== "@types/vinyl@^2.0.4": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.6.tgz#b2d134603557a7c3d2b5d3dc23863ea2b5eb29b0" - integrity sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g== + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.7.tgz#9739a9a2afaf9af32761c54a0e82c735279f726c" + integrity sha512-4UqPv+2567NhMQuMLdKAyK4yzrfCqwaTt6bLhHEs8PFcxbHILsrxaY63n4wgE/BRLDWDQeI+WcTmkXKExh9hQg== dependencies: "@types/expect" "^1.20.4" "@types/node" "*" "@types/webpack-env@^1.16.0": - version "1.16.4" - resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.16.4.tgz#1f4969042bf76d7ef7b5914f59b3b60073f4e1f4" - integrity sha512-llS8qveOUX3wxHnSykP5hlYFFuMfJ9p5JvIyCiBgp7WTfl6K5ZcyHj8r8JsN/J6QODkAsRRCLIcTuOCu8etkUw== + version "1.18.1" + resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.18.1.tgz#49699bb508961e14a3bfb68c78cd87b296889d1d" + integrity sha512-D0HJET2/UY6k9L6y3f5BL+IDxZmPkYmPT4+qBrRdmRLYRuV0qNKizMgTvYxXZYn+36zjPeoDZAEYBCM6XB+gww== "@types/webpack-sources@*": version "3.2.0" @@ -2952,9 +2803,9 @@ source-map "^0.7.3" "@types/webpack@^4.41.26", "@types/webpack@^4.41.8": - version "4.41.32" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212" - integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg== + version "4.41.33" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.33.tgz#16164845a5be6a306bcbe554a8e67f9cac215ffc" + integrity sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g== dependencies: "@types/node" "*" "@types/tapable" "^1" @@ -2969,9 +2820,9 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^15.0.0": - version "15.0.14" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" - integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + version "15.0.15" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.15.tgz#e609a2b1ef9e05d90489c2f5f45bbfb2be092158" + integrity sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg== dependencies: "@types/yargs-parser" "*" @@ -2987,74 +2838,58 @@ resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue2/-/plugin-vue2-2.2.0.tgz#7453207197d6ac2b7023cedc7133b142c604c356" integrity sha512-1km7zEuZ/9QRPvzXSjikbTYGQPG86Mq1baktpC4sXqsXlb02HQKfi+fl8qVS703JM7cgm24Ga9j+RwKmvFn90A== -"@vue/compiler-core@3.2.33": - version "3.2.33" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.33.tgz#e915d59cce85898f5c5cfebe4c09e539278c3d59" - integrity sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw== +"@vue/compiler-core@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128" + integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== dependencies: - "@babel/parser" "^7.16.4" - "@vue/shared" "3.2.33" + "@babel/parser" "^7.21.3" + "@vue/shared" "3.3.4" estree-walker "^2.0.2" - source-map "^0.6.1" + source-map-js "^1.0.2" -"@vue/compiler-dom@3.2.33", "@vue/compiler-dom@^3.2.0": - version "3.2.33" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.33.tgz#6db84296f949f18e5d3e7fd5e80f943dbed7d5ec" - integrity sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ== +"@vue/compiler-dom@3.3.4", "@vue/compiler-dom@^3.2.0": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151" + integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== dependencies: - "@vue/compiler-core" "3.2.33" - "@vue/shared" "3.2.33" + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" -"@vue/compiler-sfc@2.7.10": - version "2.7.10" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-2.7.10.tgz#3fe08e780053a3bbf41328c65ae5dfdee0385206" - integrity sha512-55Shns6WPxlYsz4WX7q9ZJBL77sKE1ZAYNYStLs6GbhIOMrNtjMvzcob6gu3cGlfpCR4bT7NXgyJ3tly2+Hx8Q== +"@vue/compiler-sfc@2.7.14": + version "2.7.14" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz#3446fd2fbb670d709277fc3ffa88efc5e10284fd" + integrity sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA== dependencies: "@babel/parser" "^7.18.4" postcss "^8.4.14" source-map "^0.6.1" "@vue/compiler-sfc@^3.2.0": - version "3.2.33" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.33.tgz#7ce01dc947a8b76c099811dc6ca58494d4dc773d" - integrity sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.33" - "@vue/compiler-dom" "3.2.33" - "@vue/compiler-ssr" "3.2.33" - "@vue/reactivity-transform" "3.2.33" - "@vue/shared" "3.2.33" + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df" + integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-ssr" "3.3.4" + "@vue/reactivity-transform" "3.3.4" + "@vue/shared" "3.3.4" estree-walker "^2.0.2" - magic-string "^0.25.7" + magic-string "^0.30.0" postcss "^8.1.10" - source-map "^0.6.1" - -"@vue/compiler-ssr@3.2.33": - version "3.2.33" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.33.tgz#3e820267e4eea48fde9519f006dedca3f5e42e71" - integrity sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ== - dependencies: - "@vue/compiler-dom" "3.2.33" - "@vue/shared" "3.2.33" + source-map-js "^1.0.2" -"@vue/component-compiler-utils@^3.0.0", "@vue/component-compiler-utils@^3.1.2": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz#8f85182ceed28e9b3c75313de669f83166d11e5d" - integrity sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw== +"@vue/compiler-ssr@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777" + integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== dependencies: - consolidate "^0.15.1" - hash-sum "^1.0.2" - lru-cache "^4.1.2" - merge-source-map "^1.1.0" - postcss "^7.0.14" - postcss-selector-parser "^6.0.2" - source-map "~0.6.1" - vue-template-es2015-compiler "^1.9.0" - optionalDependencies: - prettier "^1.18.2" + "@vue/compiler-dom" "3.3.4" + "@vue/shared" "3.3.4" -"@vue/component-compiler-utils@^3.1.0": +"@vue/component-compiler-utils@^3.0.0", "@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2": version "3.3.0" resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9" integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ== @@ -3071,9 +2906,9 @@ prettier "^1.18.2 || ^2.0.0" "@vue/component-compiler@^4.2.3": - version "4.2.3" - resolved "https://registry.yarnpkg.com/@vue/component-compiler/-/component-compiler-4.2.3.tgz#052855aea0f9a00eb0eb9786bdf447d29292ae37" - integrity sha512-B221AV3T/6PF37WnkoqUKIxBeHXmGuZsi/8pby89MAVSj9zmDdLCEZ7LDT8+DJWbElFrPELgnSvEadXxDRcrJQ== + version "4.2.4" + resolved "https://registry.yarnpkg.com/@vue/component-compiler/-/component-compiler-4.2.4.tgz#db8c485c33b74c7d0e54c19a945f1a4cb65c9dc4" + integrity sha512-tFGw3h3+nxiqnyborwWQ+rUgKAwSFl0Sdg+BCZkWTyFfkEF5fqunTNoklEUDdtRQMmVqsajn1pOZdm0zh4Uicw== dependencies: "@vue/component-compiler-utils" "^3.0.0" clean-css "^4.1.11" @@ -3082,33 +2917,33 @@ source-map "0.6.*" optionalDependencies: less "^3.9.0" - pug "^2.0.3" + pug "^3.0.1" sass "^1.18.0" stylus "^0.54.5" -"@vue/reactivity-transform@3.2.33": - version "3.2.33" - resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.33.tgz#286063f44ca56150ae9b52f8346a26e5913fa699" - integrity sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw== +"@vue/reactivity-transform@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929" + integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== dependencies: - "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.33" - "@vue/shared" "3.2.33" + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" estree-walker "^2.0.2" - magic-string "^0.25.7" + magic-string "^0.30.0" -"@vue/shared@3.2.33": - version "3.2.33" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.33.tgz#69a8c99ceb37c1b031d5cc4aec2ff1dc77e1161e" - integrity sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg== +"@vue/shared@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" + integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== -"@webassemblyjs/ast@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" - integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" + integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== dependencies: - "@webassemblyjs/helper-numbers" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ast@1.9.0": version "1.9.0" @@ -3119,30 +2954,30 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0" -"@webassemblyjs/floating-point-hex-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" - integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== -"@webassemblyjs/helper-api-error@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" - integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== -"@webassemblyjs/helper-buffer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" - integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== +"@webassemblyjs/helper-buffer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" + integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" @@ -3168,34 +3003,34 @@ dependencies: "@webassemblyjs/ast" "1.9.0" -"@webassemblyjs/helper-numbers@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" - integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" - integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== -"@webassemblyjs/helper-wasm-section@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" - integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== +"@webassemblyjs/helper-wasm-section@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" + integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" @@ -3207,10 +3042,10 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wasm-gen" "1.9.0" -"@webassemblyjs/ieee754@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" - integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== dependencies: "@xtuc/ieee754" "^1.2.0" @@ -3221,10 +3056,10 @@ dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" - integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== dependencies: "@xtuc/long" "4.2.2" @@ -3235,30 +3070,16 @@ dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" - integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== "@webassemblyjs/utf8@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== -"@webassemblyjs/wasm-edit@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" - integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/helper-wasm-section" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-opt" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - "@webassemblyjs/wast-printer" "1.11.1" - "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" @@ -3273,16 +3094,30 @@ "@webassemblyjs/wasm-parser" "1.9.0" "@webassemblyjs/wast-printer" "1.9.0" -"@webassemblyjs/wasm-gen@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" - integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== - dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" +"@webassemblyjs/wasm-edit@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" + integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" + +"@webassemblyjs/wasm-gen@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" + integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== + dependencies: + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" @@ -3295,15 +3130,15 @@ "@webassemblyjs/leb128" "1.9.0" "@webassemblyjs/utf8" "1.9.0" -"@webassemblyjs/wasm-opt@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" - integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== +"@webassemblyjs/wasm-opt@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" + integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-buffer" "1.11.1" - "@webassemblyjs/wasm-gen" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" @@ -3315,17 +3150,17 @@ "@webassemblyjs/wasm-gen" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" -"@webassemblyjs/wasm-parser@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" - integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" + integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== dependencies: - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/helper-api-error" "1.11.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.1" - "@webassemblyjs/ieee754" "1.11.1" - "@webassemblyjs/leb128" "1.11.1" - "@webassemblyjs/utf8" "1.11.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" @@ -3351,12 +3186,12 @@ "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" - integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== +"@webassemblyjs/wast-printer@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" + integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== dependencies: - "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" "@webassemblyjs/wast-printer@1.9.0": @@ -3368,6 +3203,11 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" +"@xmldom/xmldom@^0.8.8": + version "0.8.10" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" + integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -3383,7 +3223,7 @@ abab@^2.0.6: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -abbrev@1: +abbrev@1, abbrev@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== @@ -3396,13 +3236,6 @@ accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-globals@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" - integrity sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8= - dependencies: - acorn "^4.0.4" - acorn-globals@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" @@ -3411,17 +3244,12 @@ acorn-globals@^7.0.0: acorn "^8.1.0" acorn-walk "^8.0.2" -acorn-import-assertions@^1.7.6: - version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" - integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== - -acorn-jsx@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== -acorn-jsx@^5.3.2: +acorn-jsx@^5.2.0, acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== @@ -3431,16 +3259,6 @@ acorn-walk@^8.0.2, acorn-walk@^8.2.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= - -acorn@^4.0.4, acorn@~4.0.2: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" - integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= - acorn@^6.4.1: version "6.4.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" @@ -3451,25 +3269,15 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.1.0, acorn@^8.8.1: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== - -acorn@^8.4.1, acorn@^8.5.0: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== - -acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== +acorn@^8.1.0, acorn@^8.10.0, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== address@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" - integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + version "1.2.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== agent-base@6, agent-base@^6.0.2: version "6.0.2" @@ -3479,18 +3287,16 @@ agent-base@6, agent-base@^6.0.2: debug "4" agentkeepalive@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.4.tgz#d928028a4862cb11718e55227872e842a44c945b" - integrity sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ== + version "4.5.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== dependencies: - debug "^4.1.0" - depd "^1.1.2" humanize-ms "^1.2.1" aggregate-error@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" indent-string "^4.0.0" @@ -3528,7 +3334,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3538,15 +3344,6 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv json-schema-traverse "^0.4.1" uri-js "^4.2.2" -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - ansi-align@^3.0.0, ansi-align@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" @@ -3574,7 +3371,7 @@ ansi-escapes@^3.0.0: ansi-gray@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" - integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= + integrity sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw== dependencies: ansi-wrap "0.1.0" @@ -3586,22 +3383,17 @@ ansi-html-community@0.0.8: ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" - integrity sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk= + integrity sha512-sGwIGMjhYdW26/IhwK2gkWWI8DRCVO6uj3hYgHT+zD+QL1pa37tM3ujhyfcJIYSbsxp7Gxhy7zrRW/1AHm4BmA== ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^5.0.1: version "5.0.1" @@ -3616,12 +3408,12 @@ ansi-regex@^6.0.1: ansi-styles@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" - integrity sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94= + integrity sha512-f2PKUkN5QngiSemowa6Mrk9MPCdtFiOSmibjZ+j1qhLGHHYsqZwmBMRF3IRMVXo8sybDqx2fJl2d/8OphBoWkA== ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== ansi-styles@^3.2.1: version "3.2.1" @@ -3630,21 +3422,13 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - ansi-styles@^6.1.0: version "6.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" @@ -3660,17 +3444,17 @@ ansi-to-html@^0.6.11: ansi-wrap@0.1.0, ansi-wrap@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" - integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= + integrity sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw== ansi@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21" - integrity sha1-DELU+xcWDVqa8eSEus4cZpIsGyE= + integrity sha512-iFY7JCgHbepc0b82yLaw4IMortylNb6wG4kL+4R0C3iv6i+RHGHux/yUX5BTiRvSX/shMnngjR1YyNMnXEFh5A== any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== anymatch@^2.0.0: version "2.0.0" @@ -3681,9 +3465,9 @@ anymatch@^2.0.0: normalize-path "^2.1.1" anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -3691,12 +3475,12 @@ anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: app-root-dir@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" - integrity sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg= + integrity sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g== appdmg@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/appdmg/-/appdmg-0.6.4.tgz#283b85cc761c1d924f2370bd5cdbd92824b12ef3" - integrity sha512-YTilgNF0DF2DSRzGzzGDxaTMLXlhe3b3HB8RAaoJJ/VJXZbOlzIAcZ7gdPniHUVUuHjGwnS7fUMd4FvO2Rp94A== + version "0.6.6" + resolved "https://registry.yarnpkg.com/appdmg/-/appdmg-0.6.6.tgz#d06bd82b530032fd7a8f0970a1c6ee6196e1efce" + integrity sha512-GRmFKlCG+PWbcYF4LUNonTYmy0GjguDy6Jh9WP8mpd0T6j80XIJyXBiWlD0U+MLNhqV9Nhx49Gl9GpVToulpLg== dependencies: async "^1.4.2" ds-store "^0.1.5" @@ -3713,7 +3497,7 @@ appdmg@^0.6.4: append-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" - integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= + integrity sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA== dependencies: buffer-equal "^1.0.0" @@ -3743,23 +3527,39 @@ archiver-utils@^2.1.0: normalize-path "^3.0.0" readable-stream "^2.0.0" +archiver-utils@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-3.0.4.tgz#a0d201f1cf8fce7af3b5a05aea0a337329e96ec7" + integrity sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw== + dependencies: + glob "^7.2.3" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + archiver@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" - integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== + version "5.3.2" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.2.tgz#99991d5957e53bd0303a392979276ac4ddccf3b0" + integrity sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw== dependencies: archiver-utils "^2.1.0" - async "^3.2.3" + async "^3.2.4" buffer-crc32 "^0.2.1" readable-stream "^3.6.0" - readdir-glob "^1.0.0" + readdir-glob "^1.1.2" tar-stream "^2.2.0" zip-stream "^4.1.0" archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== are-we-there-yet@^2.0.0: version "2.0.0" @@ -3770,9 +3570,9 @@ are-we-there-yet@^2.0.0: readable-stream "^3.6.0" are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + version "1.1.7" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" @@ -3792,12 +3592,12 @@ argparse@^2.0.1: arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== arr-filter@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" - integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= + integrity sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA== dependencies: make-iterator "^1.0.0" @@ -3809,29 +3609,32 @@ arr-flatten@^1.0.1, arr-flatten@^1.1.0: arr-map@^2.0.0, arr-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" - integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ= + integrity sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw== dependencies: make-iterator "^1.0.0" arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== -array-buffer-from-string@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/array-buffer-from-string/-/array-buffer-from-string-0.1.0.tgz#3b14351f86149d84efc612c5ada7ed85169d7b07" - integrity sha1-OxQ1H4YUnYTvxhLFrafthRadewc= +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" array-differ@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" - integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= + integrity sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ== array-each@^1.0.0, array-each@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" - integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= + integrity sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA== array-find-index@^1.0.1: version "1.0.2" @@ -3849,20 +3652,20 @@ array-flatten@^2.1.0: integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== array-includes@^3.0.3: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" is-string "^1.0.7" array-initial@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" - integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U= + integrity sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw== dependencies: array-slice "^1.0.0" is-number "^4.0.0" @@ -3891,7 +3694,7 @@ array-sort@^1.0.0: array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== dependencies: array-uniq "^1.0.1" @@ -3903,44 +3706,68 @@ array-union@^2.1.0: array-uniq@^1.0.1, array-uniq@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== array.prototype.flat@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" - integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" array.prototype.flatmap@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" - integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.map@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.6.tgz#6a3d23f7192b2066eb97666ccc34118cb8163950" + integrity sha512-nK1psgF2cXqP3wSyCSq0Hc7zwNq3sfljQqaG27r/7a7ooNUnn5nGq6yYWyks9jMO5EoFQ0ax80hSg6oXSRNXaw== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-shim-unscopables "^1.0.0" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" -array.prototype.map@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.4.tgz#0d97b640cfdd036c1b41cfe706a5e699aa0711f2" - integrity sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA== +array.prototype.reduce@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz#63149931808c5fc1e1354814923d92d45f7d96d5" + integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-array-method-boxes-properly "^1.0.0" is-string "^1.0.7" +arraybuffer.prototype.slice@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + arrify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" @@ -3949,7 +3776,7 @@ arrify@^2.0.1: asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== asn1.js@^5.2.0: version "5.4.1" @@ -3962,9 +3789,9 @@ asn1.js@^5.2.0: safer-buffer "^2.1.0" asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" @@ -3976,15 +3803,26 @@ assert-never@^1.2.1: assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + version "1.5.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.1.tgz#038ab248e4ff078e7bc2485ba6e6388466c78f76" + integrity sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A== dependencies: - object-assign "^4.1.1" - util "0.10.3" + object.assign "^4.1.4" + util "^0.10.4" + +assert@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" + integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== + dependencies: + call-bind "^1.0.2" + is-nan "^1.3.2" + object-is "^1.1.5" + object.assign "^4.1.4" + util "^0.12.5" assertion-error@^1.1.0: version "1.1.0" @@ -3994,7 +3832,7 @@ assertion-error@^1.1.0: assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== ast-types@0.14.2: version "0.14.2" @@ -4003,6 +3841,13 @@ ast-types@0.14.2: dependencies: tslib "^2.0.1" +ast-types@^0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.16.1.tgz#7a9da1617c9081bc121faafe91711b4c8bb81da2" + integrity sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg== + dependencies: + tslib "^2.0.1" + async-done@^1.2.0, async-done@^1.2.2: version "1.3.2" resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2" @@ -4014,30 +3859,30 @@ async-done@^1.2.0, async-done@^1.2.2: stream-exhaust "^1.0.1" async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77" + integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== async-settle@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" - integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= + integrity sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw== dependencies: async-done "^1.2.2" async@^1.4.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== async@^2.5.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" -async@^3.2.3: +async@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== @@ -4045,14 +3890,14 @@ async@^3.2.3: asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@^2.1.1, atob@^2.1.2: +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== @@ -4070,35 +3915,30 @@ autoprefixer@^9.8.6: postcss "^7.0.32" postcss-value-parser "^4.1.0" +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + version "1.12.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== -babel-loader@^8.0.0: - version "8.2.4" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.4.tgz#95f5023c791b2e9e2ca6f67b0984f39c82ff384b" - integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-loader@^8.2.5: - version "8.2.5" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" - integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== +babel-loader@^8.0.0, babel-loader@^8.2.5: + version "8.3.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" + integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== dependencies: find-cache-dir "^3.3.1" loader-utils "^2.0.0" @@ -4113,13 +3953,6 @@ babel-plugin-apply-mdx-type-prop@1.6.22: "@babel/helper-plugin-utils" "7.10.4" "@mdx-js/util" "1.6.22" -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - babel-plugin-extract-import-names@1.6.22: version "1.6.22" resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" @@ -4147,14 +3980,14 @@ babel-plugin-macros@^3.0.1: cosmiconfig "^7.0.0" resolve "^1.19.0" -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== +babel-plugin-polyfill-corejs2@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" + integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" - semver "^6.1.1" + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.4.2" + semver "^6.3.1" babel-plugin-polyfill-corejs3@^0.1.0: version "0.1.7" @@ -4164,38 +3997,20 @@ babel-plugin-polyfill-corejs3@^0.1.0: "@babel/helper-define-polyfill-provider" "^0.1.5" core-js-compat "^3.8.1" -babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.21.0" - -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= +babel-plugin-polyfill-corejs3@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52" + integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA== dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" + "@babel/helper-define-polyfill-provider" "^0.4.2" + core-js-compat "^3.31.0" -babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= +babel-plugin-polyfill-regenerator@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" + integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" + "@babel/helper-define-polyfill-provider" "^0.4.2" babel-walk@3.0.0-canary-5: version "3.0.0-canary-5" @@ -4204,15 +4019,10 @@ babel-walk@3.0.0-canary-5: dependencies: "@babel/types" "^7.9.6" -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - bach@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" - integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= + integrity sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg== dependencies: arr-filter "^1.1.1" arr-flatten "^1.0.1" @@ -4234,10 +4044,12 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base32-encode@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/base32-encode/-/base32-encode-0.1.1.tgz#7510f6aa44e2c695b7efcb2673a454f8f8505ea0" - integrity sha512-jjc+6TC8PXrsxJ4CQr9ibioNhhAM1p/RvS9hy3Q+cxPphvXmLnFSkXoen2XXzNBrYjdmzajRtbFDl1x28F5F4A== +"base32-encode@^0.1.0 || ^1.0.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/base32-encode/-/base32-encode-1.2.0.tgz#e150573a5e431af0a998e32bdfde7045725ca453" + integrity sha512-cHFU8XeRyx0GgmoWi5qHMCVRiqU6J3MHWxVgun7jggCBUpVzm1Ir7M9dYr2whjSNc3tFeXfQ/oZjQu/4u55h9A== + dependencies: + to-data-view "^1.1.0" base64-js@^1.0.2, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" @@ -4260,14 +4072,14 @@ base@^0.11.1: bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" beeper@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" - integrity sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak= + integrity sha512-3vqtKL1N45I5dV0RdssXZG7X6pCqQrWPNOlBPZPrd+QkE2HEhR57Z04m0KtpbsZH73j+a3F8UD1TQnn+ExTvIA== better-opn@^2.1.1: version "2.1.1" @@ -4276,12 +4088,7 @@ better-opn@^2.1.1: dependencies: open "^7.0.3" -big-integer@^1.6.44: - version "1.6.48" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e" - integrity sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w== - -big-integer@^1.6.7: +big-integer@^1.6.44, big-integer@^1.6.7: version "1.6.51" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== @@ -4302,16 +4109,16 @@ binary-extensions@^1.0.0: integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== binaryextensions@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.3.0.tgz#1d269cbf7e6243ea886aa41453c3651ccbe13c22" integrity sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg== -bindings@~1.5.0: +bindings@^1.5.0, bindings@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== @@ -4335,7 +4142,7 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -bluebird@^3.1.1, bluebird@^3.3.5, bluebird@^3.5.5: +bluebird@^3.1.1, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -4345,10 +4152,10 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" - integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== body-parser@1.20.1: version "1.20.1" @@ -4383,7 +4190,7 @@ bonjour@^3.5.0: boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== boxen@^5.1.2: version "5.1.2" @@ -4400,9 +4207,9 @@ boxen@^5.1.2: wrap-ansi "^7.0.0" boxen@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.0.tgz#ba10a9ef4e73a9e220105b5f8c07a56d359a4cb4" - integrity sha512-ScG8CDo8dj7McqCZ5hz4dIBp20xj4unQ2lXIDa7ff6RcZElCpuNzutdwzKVvRikfNjm7CFAlR3HJHcoHkDOExQ== + version "7.1.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.1.tgz#f9ba525413c2fec9cdb88987d835c4f7cad9c8f4" + integrity sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog== dependencies: ansi-align "^3.0.1" camelcase "^7.0.1" @@ -4465,7 +4272,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -4475,7 +4282,7 @@ braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" @@ -4509,11 +4316,11 @@ browserify-des@^1.0.0: safe-buffer "^5.1.2" browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: @@ -4538,36 +4345,15 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.20.2: - version "4.20.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" - integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== - dependencies: - caniuse-lite "^1.0.30001317" - electron-to-chromium "^1.4.84" - escalade "^3.1.1" - node-releases "^2.0.2" - picocolors "^1.0.0" - -browserslist@^4.14.5: - version "4.21.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.0.tgz#7ab19572361a140ecd1e023e2c1ed95edda0cefe" - integrity sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA== - dependencies: - caniuse-lite "^1.0.30001358" - electron-to-chromium "^1.4.164" - node-releases "^2.0.5" - update-browserslist-db "^1.0.0" - -browserslist@^4.21.3: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== +browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.21.9: + version "4.21.10" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" + integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" + caniuse-lite "^1.0.30001517" + electron-to-chromium "^1.4.477" + node-releases "^2.0.13" + update-browserslist-db "^1.0.11" bser@2.1.1: version "2.1.1" @@ -4592,17 +4378,17 @@ buffer-alloc@^1.2.0: buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== buffer-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" - integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.1.tgz#2f7651be5b1b3f057fcd6e7ee16cf34767077d90" + integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg== buffer-fill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== buffer-from@^1.0.0: version "1.1.2" @@ -4617,7 +4403,7 @@ buffer-indexof@^1.0.0: buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== buffer@^4.3.0: version "4.9.2" @@ -4644,17 +4430,17 @@ builtin-modules@^3.3.0: builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== bytes@3.1.2: version "3.1.2" @@ -4688,10 +4474,11 @@ cacache@^12.0.2: y18n "^4.0.0" cacache@^15.0.5, cacache@^15.2.0: - version "15.2.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" - integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw== + version "15.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== dependencies: + "@npmcli/fs" "^1.0.0" "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" fs-minipass "^2.0.0" @@ -4731,14 +4518,14 @@ cacheable-lookup@^7.0.0: integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== cacheable-request@^10.2.8: - version "10.2.10" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.10.tgz#1785984a9a4ddec8dd01792232cca474be49a8af" - integrity sha512-v6WB+Epm/qO4Hdlio/sfUn69r5Shgh39SsE9DSd4bIezP0mblOlObI+I0kUEM7J0JFc+I7pSeMeYaOYtX1N/VQ== + version "10.2.13" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.13.tgz#b7012bb4a2acdb18cb54d2dff751d766b3500842" + integrity sha512-3SD4rrMu1msNGEtNSt8Od6enwdo//U9s4ykmXfA2TD58kcLkCobtCDiby7kNyj7a/Q7lz/mAesAFI54rTdnvBA== dependencies: "@types/http-cache-semantics" "^4.0.1" get-stream "^6.0.1" http-cache-semantics "^4.1.1" - keyv "^4.5.2" + keyv "^4.5.3" mimic-response "^4.0.0" normalize-url "^8.0.0" responselike "^3.0.0" @@ -4752,9 +4539,9 @@ call-bind@^1.0.0, call-bind@^1.0.2: get-intrinsic "^1.0.2" call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== callsites@^3.0.0: version "3.1.0" @@ -4782,11 +4569,6 @@ camelcase-keys@^2.0.0: camelcase "^2.0.0" map-obj "^1.0.0" -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= - camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" @@ -4795,7 +4577,7 @@ camelcase@^2.0.0: camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== camelcase@^5.3.1: version "5.3.1" @@ -4812,20 +4594,10 @@ camelcase@^7.0.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== -caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001317: - version "1.0.30001332" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" - integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== - -caniuse-lite@^1.0.30001358: - version "1.0.30001359" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001359.tgz#a1c1cbe1c2da9e689638813618b4219acbd4925e" - integrity sha512-Xln/BAsPzEuiVLgJ2/45IaqD9jShtk3Y33anKb4+yLwQzws3+v6odKfpgES/cDEaZMLzSChpIGdbOYtH9MyuHw== - -caniuse-lite@^1.0.30001400: - version "1.0.30001414" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz#5f1715e506e71860b4b07c50060ea6462217611e" - integrity sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg== +caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001517: + version "1.0.30001528" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001528.tgz#479972fc705b996f1114336c0032418a215fd0aa" + integrity sha512-0Db4yyjR9QMNlsxh+kKWzQtkyflkG/snYheSzkjmvdEtEXB1+jt7A2HmSEiO6XIJPIbo92lHNGNySvE5pZcs5Q== capture-exit@^2.0.0: version "2.0.0" @@ -4835,9 +4607,9 @@ capture-exit@^2.0.0: rsvp "^4.8.4" capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== + version "1.0.2" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz#1c43f6b059d4249e7f3f8724f15f048b927d3a8a" + integrity sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w== case-sensitive-paths-webpack-plugin@^2.3.0: version "2.4.0" @@ -4847,25 +4619,17 @@ case-sensitive-paths-webpack-plugin@^2.3.0: caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== ccount@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - chai@^4.3.7: - version "4.3.7" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" - integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== + version "4.3.8" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.8.tgz#40c59718ad6928da6629c70496fe990b2bb5b17c" + integrity sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ== dependencies: assertion-error "^1.1.0" check-error "^1.0.2" @@ -4878,7 +4642,7 @@ chai@^4.3.7: chalk@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" - integrity sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ= + integrity sha512-bIKA54hP8iZhyDT81TOsJiQvR1gW+ZYSXFaZUAvoD4wCHdbHY2actmpTE4x344ZlFqHbvoxKOaESULTZN2gstg== dependencies: ansi-styles "^1.1.0" escape-string-regexp "^1.0.0" @@ -4889,7 +4653,7 @@ chalk@^0.5.1: chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -4897,7 +4661,7 @@ chalk@^1.0.0, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.4.1: +chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -4914,15 +4678,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -4931,9 +4687,9 @@ chalk@^4.1.0, chalk@^4.1.2: supports-color "^7.1.0" chalk@^5.0.1, chalk@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" - integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== character-entities-legacy@^1.0.0: version "1.1.4" @@ -4945,10 +4701,10 @@ character-entities@^1.0.0: resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== -character-parser@^2.1.1, character-parser@^2.2.0: +character-parser@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" - integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A= + integrity sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw== dependencies: is-regex "^1.0.3" @@ -4957,22 +4713,17 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -charcodes@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/charcodes/-/charcodes-0.2.0.tgz#5208d327e6cc05f99eb80ffc814707572d1f14e4" - integrity sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ== - chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= + integrity sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg== check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== -"chokidar@>=2.0.0 <4.0.0", chokidar@^3.4.1, chokidar@^3.4.2: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1, chokidar@^3.4.2: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -5006,7 +4757,7 @@ chokidar@^2.0.0, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chownr@^1.0.1, chownr@^1.1.1, chownr@^1.1.4: +chownr@^1.0.1, chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== @@ -5049,14 +4800,7 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-css@^4.1.11: - version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== - dependencies: - source-map "~0.6.0" - -clean-css@^4.2.3: +clean-css@^4.1.11, clean-css@^4.2.3: version "4.2.4" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== @@ -5081,14 +4825,14 @@ cli-boxes@^3.0.0: cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== dependencies: restore-cursor "^2.0.0" cli-table3@^0.6.1: - version "0.6.2" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" - integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== + version "0.6.3" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== dependencies: string-width "^4.2.0" optionalDependencies: @@ -5099,19 +4843,10 @@ cli-width@^2.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w== dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -5129,7 +4864,7 @@ cliui@^8.0.1: clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= + integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== clone-deep@^4.0.1: version "4.0.1" @@ -5143,22 +4878,22 @@ clone-deep@^4.0.1: clone-stats@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" - integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= + integrity sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA== clone-stats@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= + integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag== clone@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== clone@^2.1.1, clone@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== cloneable-readable@^1.0.0: version "1.1.3" @@ -5172,7 +4907,7 @@ cloneable-readable@^1.0.0: code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== collapse-white-space@^1.0.2: version "1.0.6" @@ -5182,7 +4917,7 @@ collapse-white-space@^1.0.2: collection-map@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" - integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= + integrity sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA== dependencies: arr-map "^2.0.2" for-own "^1.0.0" @@ -5191,7 +4926,7 @@ collection-map@^1.0.0: collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== dependencies: map-visit "^1.0.0" object-visit "^1.0.0" @@ -5213,12 +4948,12 @@ color-convert@^2.0.1: color-convert@~0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" - integrity sha1-vbbGnOZg+t/+CwAHzER+G59ygr0= + integrity sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling== color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" @@ -5230,6 +4965,11 @@ color-support@^1.1.2, color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== +colorette@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -5252,7 +4992,12 @@ commander@7: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^2.19.0, commander@^2.20.0: +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -5270,7 +5015,7 @@ commander@^6.2.1: commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compare-versions@^3.6.0: version "3.6.0" @@ -5282,10 +5027,10 @@ component-emitter@^1.2.1: resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -compress-commons@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" - integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== +compress-commons@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.2.tgz#6542e59cb63e1f46a8b21b0e06f9a32e4c8b06df" + integrity sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg== dependencies: buffer-crc32 "^0.2.13" crc32-stream "^4.0.2" @@ -5354,7 +5099,7 @@ console-browserify@^1.1.0: console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== consolidate@^0.15.1: version "0.15.1" @@ -5363,16 +5108,6 @@ consolidate@^0.15.1: dependencies: bluebird "^3.1.1" -constantinople@^3.0.1, constantinople@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-3.1.2.tgz#d45ed724f57d3d10500017a7d3a889c1381ae647" - integrity sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw== - dependencies: - "@types/babel-types" "^7.0.0" - "@types/babylon" "^6.16.2" - babel-types "^6.26.0" - babylon "^6.18.0" - constantinople@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-4.0.1.tgz#0def113fa0e4dc8de83331a5cf79c8b325213151" @@ -5384,7 +5119,7 @@ constantinople@^4.0.1: constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== content-disposition@0.5.4: version "0.5.4" @@ -5394,23 +5129,14 @@ content-disposition@0.5.4: safe-buffer "5.2.1" content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.0.0, convert-source-map@^1.4.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -convert-source-map@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== - dependencies: - safe-buffer "~5.1.1" +convert-source-map@^1.0.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== cookie-signature@1.0.6: version "1.0.6" @@ -5444,7 +5170,7 @@ copy-concurrently@^1.0.0: copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== copy-props@^2.0.1: version "2.0.5" @@ -5454,10 +5180,10 @@ copy-props@^2.0.1: each-props "^1.3.2" is-plain-object "^5.0.0" -cordova-common@^4.0.0, cordova-common@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/cordova-common/-/cordova-common-4.0.2.tgz#c5be3f3811f5731cd1d7eb5193b0789a8d5a854f" - integrity sha512-od7aNShyuBajzPY83mUEO8tERwwWdFklXETHiXP5Ft87CWeo/tSuwNPFztyTy8XYc74yXdogXKPTJeUHuVzB8Q== +cordova-common@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cordova-common/-/cordova-common-4.1.0.tgz#06058ea00e9dd0c635b6884617a0df81b3d89359" + integrity sha512-sYfOSfpYGQOmUDlsARUbpT/EvVKT/E+GI3zwTXt+C6DjZ7xs6ZQVHs3umHKSidjf9yVM2LLmvGFpGrGX7aGxug== dependencies: "@netflix/nerror" "^1.1.3" ansi "^0.3.1" @@ -5474,46 +5200,46 @@ cordova-common@^4.0.0, cordova-common@^4.0.2: strip-bom "^4.0.0" underscore "^1.9.2" -cordova-fetch@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cordova-fetch/-/cordova-fetch-3.0.1.tgz#97461fb85129f8e2db24ef0c5b5a0f09af858328" - integrity sha512-bxXk6H3FtGXpCtlO+XyXM4pa72azQomdurNeHbZai9eYBzA5vjyPnsgxsYcylLUc1wQFeR+XWQVfgJitx6ghEw== +cordova-fetch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cordova-fetch/-/cordova-fetch-3.1.0.tgz#bdf7546ec4d2eaee10aeb11629dad359381eeee8" + integrity sha512-qOT3HlNzVWbsCZVvbkZ6PdvAG1byiK8vWG+/Z+7s+8ZB76rOYKdzMvrmmMwrTTX6nglDnz5uJ/4XjQHJB770GQ== dependencies: - cordova-common "^4.0.0" - fs-extra "^9.0.0" - npm-package-arg "^8.0.1" - pacote "^11.1.11" + cordova-common "^4.1.0" + fs-extra "^9.1.0" + npm-package-arg "^8.1.5" + pacote "^11.3.5" pify "^5.0.0" - resolve "^1.15.1" - semver "^7.1.3" + resolve "^1.22.1" + semver "^7.3.8" which "^2.0.2" cordova-lib@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/cordova-lib/-/cordova-lib-11.0.0.tgz#76f386a08e928f4605a830e54b51b28495c1353a" - integrity sha512-3XSCIAlS060/hzxWKDrF+sMfv3PVU8bglCaL31HMCyj3YrZn1CZhqrRRrW5lwRxtz7Sh4XCxv97rNxF38uj9hg== + version "11.1.0" + resolved "https://registry.yarnpkg.com/cordova-lib/-/cordova-lib-11.1.0.tgz#9e1e588972775128b8e1c264a24a01ad8713e9a2" + integrity sha512-/XM+/wFag72bD4SNSxwX8b3OWatHNNlnmJpgb5pepp2Pobb957nWyR0GPwIkKyOyszdZesWM3Vv8uH9e2Z1k2w== dependencies: - cordova-common "^4.0.2" - cordova-fetch "^3.0.1" + cordova-common "^4.1.0" + cordova-fetch "^3.1.0" cordova-serve "^4.0.0" dep-graph "^1.1.0" detect-indent "^6.1.0" detect-newline "^3.1.0" elementtree "^0.1.7" execa "^5.1.1" - fs-extra "^10.0.0" - globby "^11.0.4" + fs-extra "^10.1.0" + globby "^11.1.0" init-package-json "^2.0.5" md5-file "^5.0.0" pify "^5.0.0" - semver "^7.3.5" + semver "^7.3.8" stringify-package "^1.0.1" write-file-atomic "^3.0.3" cordova-serve@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cordova-serve/-/cordova-serve-4.0.0.tgz#7d0dc2a3c15f4ed17a467b97f0a37b9eb00b2964" - integrity sha512-gzTLeBQzNP8aM/nG0/7sSfICfNazUgwvEU2kiDaybbYXmxwioo2v96h4tzE0XOyA64beyYwAyRYEEqWA4AMZjw== + version "4.0.1" + resolved "https://registry.yarnpkg.com/cordova-serve/-/cordova-serve-4.0.1.tgz#8405ef74514aa06d706d6cf1d43c6357efbe0af5" + integrity sha512-YbfXaZ60yr5dkqmDFQgrU7TSKnzCqYsxHgIUzDeX8RggZb6mz1F9jMfUBbaYyaU7JjcuJ0aoRPYLvwSGQVhGkw== dependencies: chalk "^3.0.0" compression "^1.7.4" @@ -5521,28 +5247,22 @@ cordova-serve@^4.0.0: open "^7.0.3" which "^2.0.2" -core-js-compat@^3.20.2, core-js-compat@^3.21.0, core-js-compat@^3.8.1: - version "3.22.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.0.tgz#7ce17ab57c378be2c717c7c8ed8f82a50a25b3e4" - integrity sha512-WwA7xbfRGrk8BGaaHlakauVXrlYmAIkk8PNGb1FDQS+Rbrewc3pgFfwJFRw6psmJVAll7Px9UHRYE16oRQnwAQ== +core-js-compat@^3.31.0, core-js-compat@^3.8.1: + version "3.32.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.2.tgz#8047d1a8b3ac4e639f0d4f66d4431aa3b16e004c" + integrity sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ== dependencies: - browserslist "^4.20.2" - semver "7.0.0" - -core-js@^2.4.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + browserslist "^4.21.10" core-js@^3.0.4, core-js@^3.6.5, core-js@^3.8.2: - version "3.22.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.0.tgz#b52007870c5e091517352e833b77f0b2d2b259f3" - integrity sha512-8h9jBweRjMiY+ORO7bdWSeWfHhLPO7whobj7Z2Bl0IDo00C228EdGgH7FE4jGumbEjzcFfkfW8bXgdkEDhnwHQ== + version "3.32.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.32.2.tgz#172fb5949ef468f93b4be7841af6ab1f21992db7" + integrity sha512-pxXSw1mYZPDGvTQqEc5vgIb83jGQKFGYWY76z4a7weZXUolw3G+OvpZqSRcfYOoOVUQJYEPsWeQK8pKEnUtWxQ== core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== core-util-is@~1.0.0: version "1.0.3" @@ -5561,9 +5281,9 @@ cosmiconfig@^6.0.0: yaml "^1.7.2" cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -5602,9 +5322,9 @@ crc-32@^1.2.0: integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== crc32-stream@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" - integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== + version "4.0.3" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.3.tgz#85dd677eb78fa7cad1ba17cc506a597d41fc6f33" + integrity sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw== dependencies: crc-32 "^1.2.0" readable-stream "^3.4.0" @@ -5620,7 +5340,7 @@ create-ecdh@^4.0.0: create-error-class@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + integrity sha512-gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw== dependencies: capture-stack-trace "^1.0.0" @@ -5727,7 +5447,7 @@ css-loader@^3.6.0: css-parse@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" - integrity sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q= + integrity sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA== dependencies: css "^2.0.0" @@ -5779,27 +5499,17 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== +cssstyle@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-3.0.0.tgz#17ca9c87d26eac764bb8cfd00583cff21ce0277a" + integrity sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg== dependencies: - cssom "~0.3.6" + rrweb-cssom "^0.6.0" csstype@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" - integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== currently-unhandled@^0.4.1: version "0.4.1" @@ -5809,14 +5519,14 @@ currently-unhandled@^0.4.1: array-find-index "^1.0.1" cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + version "1.0.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3" + integrity sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA== "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.2.tgz#f8ac4705c5b06914a7e0025bbf8d5f1513f6a86e" - integrity sha512-yEEyEAbDrF8C6Ob2myOBLjwBLck1Z89jMGFee0oPsn95GqjerpaOA4ch+vc2l0FNFFwMD5N7OCSEN5eAlsUbgQ== + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== dependencies: internmap "1 - 2" @@ -5856,9 +5566,9 @@ d3-contour@4: d3-array "^3.2.0" d3-delaunay@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.2.tgz#7fd3717ad0eade2fc9939f4260acfb503f984e92" - integrity sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ== + version "6.0.4" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" + integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== dependencies: delaunator "5" @@ -6022,9 +5732,9 @@ d3-zoom@3: d3-transition "2 - 3" d3@^7.8.2: - version "7.8.2" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.8.2.tgz#2bdb3c178d095ae03b107a18837ae049838e372d" - integrity sha512-WXty7qOGSHb7HR7CfOzwN1Gw04MUOzN8qh9ZUsvwycIMb4DYMpY9xczZ6jUorGtO6bR9BPMPaueIKwiDxu9uiQ== + version "7.8.5" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.8.5.tgz#fde4b760d4486cdb6f0cc8e2cbff318af844635c" + integrity sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA== dependencies: d3-array "3" d3-axis "3" @@ -6068,28 +5778,28 @@ d@1, d@^1.0.1: dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" -data-urls@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" - integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== +data-urls@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-4.0.0.tgz#333a454eca6f9a5b7b0f1013ff89074c3f522dd4" + integrity sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g== dependencies: abab "^2.0.6" whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" + whatwg-url "^12.0.0" dateformat@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" - integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI= + integrity sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw== de-indent@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== debug-fabulous@^1.0.0: version "1.1.0" @@ -6100,7 +5810,7 @@ debug-fabulous@^1.0.0: memoizee "0.4.X" object-assign "4.X" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -6114,7 +5824,7 @@ debug@3.X, debug@^3.0.0, debug@^3.2.6: dependencies: ms "^2.1.1" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -6128,12 +5838,12 @@ debug@~3.1.0: dependencies: ms "2.0.0" -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: +decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decimal.js@^10.4.2: +decimal.js@^10.4.3: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== @@ -6153,7 +5863,7 @@ decompress-response@^6.0.0: dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== deep-eql@^4.1.2: version "4.1.3" @@ -6180,11 +5890,6 @@ deep-extend@^0.6.0: integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -6194,10 +5899,10 @@ deepmerge@^2.0.0: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +deepmerge@^4.2.2, deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== default-browser-id@^1.0.4: version "1.0.4" @@ -6218,7 +5923,7 @@ default-compare@^1.0.0: default-resolution@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" - integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= + integrity sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ== defer-to-connect@^2.0.1: version "2.0.1" @@ -6230,24 +5935,25 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== dependencies: - object-keys "^1.0.12" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== dependencies: is-descriptor "^1.0.0" @@ -6283,17 +5989,17 @@ delaunator@5: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== dep-graph@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/dep-graph/-/dep-graph-1.1.0.tgz#fade86a92799a813e9b42511cdf3dfa6cc8dbefe" - integrity sha1-+t6GqSeZqBPptCURzfPfpsyNvv4= + integrity sha512-/6yUWlSH0Uevjj6HWvO86rDeFzuYfzbaKDqifTEemwfwEPyBrODTb3ox/jFzqmc2+UmgJ3IDMS88BKEBh1Nm2Q== dependencies: underscore "1.2.1" @@ -6302,20 +6008,15 @@ depd@2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -depd@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - deprecate@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deprecate/-/deprecate-1.1.1.tgz#4632e981fc815eeaf00be945a40359c0f8bf9913" integrity sha512-ZGDXefq1xknT292LnorMY5s8UVU08/WKdzDZCUT6t9JzsiMSP4uzUhgpqugffNVcT5WC6wMBiSQ+LFjlv3v7iQ== des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -6335,32 +6036,22 @@ detab@2.0.4: detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -detect-indent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" - integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== detect-indent@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - detect-libc@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" - integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + version "2.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" + integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== detect-newline@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== detect-newline@^3.1.0: version "3.1.0" @@ -6375,12 +6066,12 @@ detect-package-manager@^2.0.1: execa "^5.1.1" detect-port@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" - integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== + version "1.5.1" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" + integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== dependencies: address "^1.0.1" - debug "^2.6.0" + debug "4" diffie-hellman@^5.0.0: version "5.0.3" @@ -6426,9 +6117,9 @@ dns-packet@^1.3.1: safe-buffer "^5.0.1" dns-packet@^5.2.2: - version "5.4.0" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" - integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" @@ -6449,7 +6140,7 @@ doctrine@^3.0.0: doctypes@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" - integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk= + integrity sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ== dom-converter@^0.2.0: version "0.2.0" @@ -6497,9 +6188,9 @@ domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: domelementtype "^2.2.0" dompurify@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.4.0.tgz#c9c88390f024c2823332615c9e20a453cf3825dd" - integrity sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA== + version "2.4.7" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.4.7.tgz#277adeb40a2c84be2d42a8bcd45f582bfa4d0cfc" + integrity sha512-kxxKlPEDa6Nc5WJi+qRgPbOAbgTpSULL+vI3NUXsZMlkJxTqYI9wg5ZTay2sFrdZRWHPWNi+EdAhcJf81WtoMQ== domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" @@ -6548,7 +6239,7 @@ download-crx@^1.1.0: ds-store@^0.1.5: version "0.1.6" resolved "https://registry.yarnpkg.com/ds-store/-/ds-store-0.1.6.tgz#d1024ef746ed0c13f0f7fec85c7e858e8c4b7ca7" - integrity sha1-0QJO90btDBPw9/7IXH6FjoxLfKc= + integrity sha512-kY21M6Lz+76OS3bnCzjdsJSF7LBpLYGCVfavW8TgQD2XkcqIZ86W0y9qUDZu6fp7SIZzqosMDW2zi7zVFfv4hw== dependencies: bplist-creator "~0.0.3" macos-alias "~0.2.5" @@ -6557,14 +6248,14 @@ ds-store@^0.1.5: duplexer2@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" - integrity sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds= + integrity sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g== dependencies: readable-stream "~1.1.9" duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== duplexer@~0.1.1: version "0.1.2" @@ -6597,45 +6288,35 @@ eastasianwidth@^0.2.0: ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" -editorconfig@^0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" - integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== +editorconfig@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-1.0.4.tgz#040c9a8e9a6c5288388b87c2db07028aa89f53a3" + integrity sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q== dependencies: - commander "^2.19.0" - lru-cache "^4.1.5" - semver "^5.6.0" - sigmund "^1.0.1" + "@one-ini/wasm" "0.1.1" + commander "^10.0.0" + minimatch "9.0.1" + semver "^7.5.3" ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.164: - version "1.4.170" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.170.tgz#0415fc489402e09bfbe1f0c99bbf4d73f31d48d4" - integrity sha512-rZ8PZLhK4ORPjFqLp9aqC4/S1j4qWFsPPz13xmWdrbBkU/LlxMcok+f+6f8YnQ57MiZwKtOaW15biZZsY5Igvw== - -electron-to-chromium@^1.4.251: - version "1.4.270" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz#2c6ea409b45cdb5c3e0cb2c08cf6c0ba7e0f2c26" - integrity sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg== - -electron-to-chromium@^1.4.84: - version "1.4.109" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.109.tgz#74df3109e37f1feed6124f255f52c96aa62feb7f" - integrity sha512-LCF+Oqs2Oqwf8M3oc8T59Wi9C0xpL1qVyqIR6bPTCl8uPvln7G184L39tO4SE4Dyg/Kp1RjAz//BKMvi0uvw4w== +electron-to-chromium@^1.4.477: + version "1.4.510" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.510.tgz#446c50d7533c1e71a84b00a3b37ab06dd601d890" + integrity sha512-xPfLIPFcN/WLXBpQ/K4UgE98oUBO5Tia6BD4rkSR0wE7ep/PwBVlgvPJQrIBpmJGVAmUzwPKuDbVt9XV6+uC2g== elementtree@^0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/elementtree/-/elementtree-0.1.7.tgz#9ac91be6e52fb6e6244c4e54a4ac3ed8ae8e29c0" - integrity sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA= + integrity sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg== dependencies: sax "1.1.4" @@ -6665,13 +6346,18 @@ emoji-regex@^9.2.2: emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng== emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== +encode-utf8@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" + integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -6709,10 +6395,10 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.5.0: memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@^5.9.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" - integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== +enhanced-resolve@^5.15.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -6723,9 +6409,9 @@ entities@^2.0.0: integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== entities@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" - integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== env-paths@^2.2.0: version "2.2.1" @@ -6737,14 +6423,7 @@ err-code@^2.0.2: resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== -errno@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -errno@^0.1.3, errno@~0.1.7: +errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== @@ -6758,47 +6437,50 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2: - version "1.19.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.5.tgz#a2cb01eb87f724e815b278b0dd0d00f36ca9a7f1" - integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== +es-abstract@^1.22.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" + integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.1" + available-typed-arrays "^1.0.5" call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.1" get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.4" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" + is-typed-array "^1.1.10" is-weakref "^1.0.2" - object-inspect "^1.12.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-abstract@^1.5.1: - version "1.16.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.0.tgz#d3a26dc9c3283ac9750dca569586e976d9dcc06d" - integrity sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg== - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.0" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-inspect "^1.6.0" + object-inspect "^1.12.3" object-keys "^1.1.1" - string.prototype.trimleft "^2.1.0" - string.prototype.trimright "^2.1.0" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + safe-array-concat "^1.0.0" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.10" es-array-method-boxes-properly@^1.0.0: version "1.0.0" @@ -6806,23 +6488,33 @@ es-array-method-boxes-properly@^1.0.0: integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== es-get-iterator@^1.0.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" - integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.1.0" - has-symbols "^1.0.1" - is-arguments "^1.1.0" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" is-map "^2.0.2" is-set "^2.0.2" - is-string "^1.0.5" + is-string "^1.0.7" isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" -es-module-lexer@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-module-lexer@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" + integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" es-shim-unscopables@^1.0.0: version "1.0.0" @@ -6831,15 +6523,6 @@ es-shim-unscopables@^1.0.0: dependencies: has "^1.0.3" -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -6849,52 +6532,35 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.51: - version "0.10.51" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.51.tgz#ed2d7d9d48a12df86e0299287e93a09ff478842f" - integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "^1.0.0" - -es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: - version "0.10.61" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.61.tgz#311de37949ef86b6b0dcea894d1ffedb909d3269" - integrity sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA== +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== dependencies: es6-iterator "^2.0.3" es6-symbol "^3.1.3" next-tick "^1.1.0" es5-shim@^4.5.13: - version "4.6.5" - resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.6.5.tgz#2124bb073b7cede2ed23b122a1fd87bb7b0bb724" - integrity sha512-vfQ4UAai8szn0sAubCy97xnZ4sJVDD1gt/Grn736hg8D7540wemIb1YPrYZSTqlM2H69EQX1or4HU/tSwRTI3w== + version "4.6.7" + resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.6.7.tgz#bc67ae0fc3dd520636e0a1601cc73b450ad3e955" + integrity sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ== -es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: +es6-iterator@^2.0.1, es6-iterator@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== dependencies: d "1" es5-ext "^0.10.35" es6-symbol "^3.1.1" es6-shim@^0.35.5: - version "0.35.6" - resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.6.tgz#d10578301a83af2de58b9eadb7c2c9945f7388a0" - integrity sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA== - -es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.2.tgz#859fdd34f32e905ff06d752e7171ddd4444a7ed1" - integrity sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ== - dependencies: - d "^1.0.1" - es5-ext "^0.10.51" + version "0.35.8" + resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.8.tgz#89216f6fbf8bacba3f897c8c0e814d2a41c05fb7" + integrity sha512-Twf7I2v4/1tLoIXMT8HlqaBSS5H2wQTs2wx3MNYCI8K1R1/clXyCazrcVCPm/FuO9cyV8+leEaZOWD5C253NDg== -es6-symbol@^3.1.3: +es6-symbol@^3.1.1, es6-symbol@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== @@ -6912,33 +6578,33 @@ es6-weak-map@^2.0.1, es6-weak-map@^2.0.3: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -esbuild@^0.16.3: - version "0.16.17" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" - integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== +esbuild@^0.18.10: + version "0.18.20" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== optionalDependencies: - "@esbuild/android-arm" "0.16.17" - "@esbuild/android-arm64" "0.16.17" - "@esbuild/android-x64" "0.16.17" - "@esbuild/darwin-arm64" "0.16.17" - "@esbuild/darwin-x64" "0.16.17" - "@esbuild/freebsd-arm64" "0.16.17" - "@esbuild/freebsd-x64" "0.16.17" - "@esbuild/linux-arm" "0.16.17" - "@esbuild/linux-arm64" "0.16.17" - "@esbuild/linux-ia32" "0.16.17" - "@esbuild/linux-loong64" "0.16.17" - "@esbuild/linux-mips64el" "0.16.17" - "@esbuild/linux-ppc64" "0.16.17" - "@esbuild/linux-riscv64" "0.16.17" - "@esbuild/linux-s390x" "0.16.17" - "@esbuild/linux-x64" "0.16.17" - "@esbuild/netbsd-x64" "0.16.17" - "@esbuild/openbsd-x64" "0.16.17" - "@esbuild/sunos-x64" "0.16.17" - "@esbuild/win32-arm64" "0.16.17" - "@esbuild/win32-ia32" "0.16.17" - "@esbuild/win32-x64" "0.16.17" + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" escalade@^3.1.1: version "3.1.1" @@ -6958,7 +6624,7 @@ escape-html@~1.0.3: escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" @@ -6966,28 +6632,27 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: esprima "^4.0.1" estraverse "^5.2.0" esutils "^2.0.2" - optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" eslint-plugin-vue@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.3.0.tgz#0faf0fcf0e1b1052bf800d4dee42d64f50679cb0" - integrity sha512-4rc9xrZgwT4aLz3XE6lrHu+FZtDLWennYvtzVvvS81kW9c65U4DUzQQWAFjDCgCFvN6HYWxi7ueEtxZVSB+f0g== + version "7.20.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz#98c21885a6bfdf0713c3a92957a5afeaaeed9253" + integrity sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw== dependencies: eslint-utils "^2.1.0" natural-compare "^1.4.0" - semver "^7.3.2" - vue-eslint-parser "^7.3.0" + semver "^6.3.0" + vue-eslint-parser "^7.10.0" -eslint-scope@5.1.1, eslint-scope@^5.0.0: +eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -7003,10 +6668,10 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -7018,71 +6683,57 @@ eslint-utils@^2.1.0: dependencies: eslint-visitor-keys "^1.1.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - eslint-visitor-keys@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint-visitor-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.24.0: - version "8.24.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.24.0.tgz#489516c927a5da11b3979dbfb2679394523383c8" - integrity sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ== - dependencies: - "@eslint/eslintrc" "^1.3.2" - "@humanwhocodes/config-array" "^0.10.5" - "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + version "8.48.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" + integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.2" + "@eslint/js" "8.48.0" + "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" - ajv "^6.10.0" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.4.0" - esquery "^1.4.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" - glob-parent "^6.0.1" - globals "^13.15.0" - globby "^11.1.0" - grapheme-splitter "^1.0.4" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" ignore "^5.2.0" - import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-sdsl "^4.1.4" + is-path-inside "^3.0.3" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" + optionator "^0.9.3" strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" text-table "^0.2.0" espree@^6.2.1: @@ -7094,31 +6745,24 @@ espree@^6.2.1: acorn-jsx "^5.2.0" eslint-visitor-keys "^1.1.0" -espree@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" - integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^8.8.0" + acorn "^8.9.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" + eslint-visitor-keys "^3.4.1" esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== - dependencies: - estraverse "^5.1.0" - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esquery@^1.4.0, esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -7135,9 +6779,9 @@ estraverse@^4.1.1: integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^0.6.1: version "0.6.1" @@ -7162,7 +6806,7 @@ etag@~1.8.1: event-emitter@^0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== dependencies: d "1" es5-ext "~0.10.14" @@ -7170,7 +6814,7 @@ event-emitter@^0.3.5: event-stream@3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= + integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== dependencies: duplexer "~0.1.1" from "~0" @@ -7180,12 +6824,7 @@ event-stream@3.3.4: stream-combiner "~0.0.4" through "~2.3.1" -events@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== - -events@^3.2.0: +events@^3.0.0, events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -7234,7 +6873,7 @@ execa@^5.1.1: expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -7247,7 +6886,7 @@ expand-brackets@^2.1.4: expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== dependencies: homedir-polyfill "^1.0.1" @@ -7289,23 +6928,23 @@ express@^4.17.1: vary "~1.1.2" ext@^1.1.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" - integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== dependencies: - type "^2.5.0" + type "^2.7.2" extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" @@ -7352,12 +6991,12 @@ extract-zip@^2.0.1: extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0, extsprintf@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== fancy-log@^1.1.0, fancy-log@^1.3.2: version "1.3.3" @@ -7386,21 +7025,10 @@ fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" -fast-glob@^3.1.1, fast-glob@^3.2.2: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== +fast-glob@^3.0.3, fast-glob@^3.2.2, fast-glob@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -7418,10 +7046,15 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz#e6a754cc8f15e58987aa9cbd27af66fd6f4e5af9" + integrity sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw== + +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastparse@^1.1.2: version "1.1.2" @@ -7429,16 +7062,16 @@ fastparse@^1.1.2: integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== fastq@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2" - integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA== + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: - reusify "^1.0.0" + reusify "^1.0.4" fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: bser "2.1.1" @@ -7450,9 +7083,9 @@ fd-slicer@~1.1.0: pend "~1.2.0" fetch-retry@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/fetch-retry/-/fetch-retry-5.0.2.tgz#4c55663a7c056cb45f182394e479464f0ff8f3e3" - integrity sha512-57Hmu+1kc6pKFUGVIobT7qw3NeAzY/uNN26bSevERLVvf6VGFR/ooDCOFBHMNDgAxBiU2YJq1D0vFzc6U1DcPw== + version "5.0.6" + resolved "https://registry.yarnpkg.com/fetch-retry/-/fetch-retry-5.0.6.tgz#17d0bc90423405b7a88b74355bf364acd2a7fa56" + integrity sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ== figgy-pudding@^3.5.1: version "3.5.2" @@ -7462,7 +7095,7 @@ figgy-pudding@^3.5.1: figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== dependencies: escape-string-regexp "^1.0.5" @@ -7482,13 +7115,12 @@ file-loader@^6.2.0: schema-utils "^3.0.0" file-system-cache@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-1.0.5.tgz#84259b36a2bbb8d3d6eb1021d3132ffe64cfff4f" - integrity sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08= + version "1.1.0" + resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-1.1.0.tgz#984de17b976b75a77a27e08d6828137c1aa80fa1" + integrity sha512-IzF5MBq+5CR0jXx5RxPe4BICl/oEhBSXKaL9fLhAXrIfIUS77Hr4vzrYyqYMHN6uTt+BOqi3fDCTjjEBCjERKw== dependencies: - bluebird "^3.3.5" - fs-extra "^0.30.0" - ramda "^0.21.0" + fs-extra "^10.1.0" + ramda "^0.28.0" file-uri-to-path@1.0.0: version "1.0.0" @@ -7498,7 +7130,7 @@ file-uri-to-path@1.0.0: fill-keys@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/fill-keys/-/fill-keys-1.0.2.tgz#9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20" - integrity sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA= + integrity sha512-tcgI872xXjwFF4xgQmLxi76GnwJG3g/3isB1l4/G5Z4zrbddGpBjqZCO9oEAcB5wX0Hj/5iQB3toxfO7in1hHA== dependencies: is-object "~1.0.1" merge-descriptors "~1.0.0" @@ -7506,7 +7138,7 @@ fill-keys@^1.0.2: fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" @@ -7554,7 +7186,7 @@ find-cache-dir@^3.3.1: find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" @@ -7582,12 +7214,12 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-versions@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" - integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== +find-versions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" + integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== dependencies: - semver-regex "^2.0.0" + semver-regex "^3.1.2" find@^0.2.8: version "0.2.9" @@ -7599,7 +7231,7 @@ find@^0.2.8: findup-sync@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" - integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= + integrity sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g== dependencies: detect-file "^1.0.0" is-glob "^3.1.0" @@ -7633,22 +7265,23 @@ flagged-respawn@^1.0.0: integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.1.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f" + integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew== dependencies: - flatted "^3.1.0" + flatted "^3.2.7" + keyv "^4.5.3" rimraf "^3.0.2" -flatted@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" - integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== +flatted@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== flow-parser@0.*: - version "0.176.2" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.176.2.tgz#e04ac9f766ea9491fd515c84a82ef360e3a0c659" - integrity sha512-unqoh60i18C67h2rvK0SCFUBac/waUcx7CF1a5E4D0Cwj1NErTP42RF7yb7+dy25Tpyzt7uwVtXw13Wr17VzWA== + version "0.216.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.216.0.tgz#719ca725ef08c7e6ad69fa09181f3e9f90a185a8" + integrity sha512-ozczvnbZ++wfBJFseeV0FvINkJ0C6TmRBmb7U7FY1RledNQZuCDTMywRi6txkp8gdzFCJPUxzrU4E27txAktbA== flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: version "1.1.1" @@ -7661,7 +7294,7 @@ flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: fmix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/fmix/-/fmix-0.1.0.tgz#c7bbf124dec42c9d191cfb947d0a9778dd986c0c" - integrity sha1-x7vxJN7ELJ0ZHPuUfQqXeN2YbAw= + integrity sha512-Y6hyofImk9JdzU8k5INtTXX1cu8LDlePWDFU5sftm9H+zKCr5SGrVjdhkvsim646cw5zD0nADj8oHyXMZmCZ9w== dependencies: imul "^1.0.0" @@ -7670,22 +7303,29 @@ follow-redirects@^1.15.2: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== for-own@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" - integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= + integrity sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg== dependencies: for-in "^1.0.1" forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== fork-ts-checker-webpack-plugin@^4.1.6: version "4.1.6" @@ -7701,9 +7341,9 @@ fork-ts-checker-webpack-plugin@^4.1.6: worker-rpc "^0.1.0" fork-ts-checker-webpack-plugin@^6.0.4: - version "6.5.1" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.1.tgz#fd689e2d9de6ac76abb620909eea56438cd0f232" - integrity sha512-x1wumpHOEf4gDROmKTaB6i4/Q6H3LwmjVO7fIX47vBwlZbtPjU33hgoMuD/Q/y6SU8bnuYSoN6ZQOLshGp0T/g== + version "6.5.3" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" + integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== dependencies: "@babel/code-frame" "^7.8.3" "@types/json-schema" "^7.0.5" @@ -7759,7 +7399,7 @@ forwarded@0.2.0: fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== dependencies: map-cache "^0.2.2" @@ -7771,7 +7411,7 @@ fresh@0.5.2: from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== dependencies: inherits "^2.0.1" readable-stream "^2.0.0" @@ -7779,7 +7419,7 @@ from2@^2.1.0: from@~0: version "0.1.7" resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= + integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== fs-constants@^1.0.0: version "1.0.0" @@ -7789,7 +7429,7 @@ fs-constants@^1.0.0: fs-extra@^0.30.0: version "0.30.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= + integrity sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA== dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" @@ -7800,21 +7440,12 @@ fs-extra@^0.30.0: fs-extra@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" - integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA= + integrity sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ== dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" klaw "^1.0.0" -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" @@ -7833,7 +7464,16 @@ fs-extra@^5.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.0.1: +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -7843,13 +7483,6 @@ fs-extra@^9.0.0, fs-extra@^9.0.1: jsonfile "^6.0.1" universalify "^2.0.0" -fs-minipass@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -7860,27 +7493,27 @@ fs-minipass@^2.0.0, fs-minipass@^2.1.0: fs-mkdirp-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" - integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= + integrity sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ== dependencies: graceful-fs "^4.1.11" through2 "^2.0.3" -fs-monkey@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" - integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== +fs-monkey@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" + integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== fs-temp@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fs-temp/-/fs-temp-1.1.2.tgz#cc52f038bbefe510f6bcd09ec592b79d0f69253f" - integrity sha1-zFLwOLvv5RD2vNCexZK3nQ9pJT8= + version "1.2.1" + resolved "https://registry.yarnpkg.com/fs-temp/-/fs-temp-1.2.1.tgz#ffd136ef468177accc3c267d4510f6ce3b2b9697" + integrity sha512-okTwLB7/Qsq82G6iN5zZJFsOfZtx2/pqrA7Hk/9fvy+c+eJS9CvgGXT2uNxwnI14BDY9L/jQPkaBgSvlKfSW9w== dependencies: random-path "^0.1.0" fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" @@ -7895,40 +7528,40 @@ fs-xattr@^0.3.0: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== dependencies: + bindings "^1.5.0" nan "^2.12.1" - node-pre-gyp "^0.12.0" fsevents@^2.1.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== +function.prototype.name@^1.1.0, function.prototype.name@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" -functions-have-names@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" - integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gauge@^3.0.0: version "3.0.2" @@ -7948,7 +7581,7 @@ gauge@^3.0.0: gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -7969,14 +7602,14 @@ generate-function@^2.0.0: generate-object-property@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA= + integrity sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ== dependencies: is-property "^1.0.0" generic-names@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-1.0.3.tgz#2d786a121aee508876796939e8e3bff836c20917" - integrity sha1-LXhqEhruUIh2eWk56OO/+DbCCRc= + integrity sha512-b6OHfQuKasIKM9b6YPkX+KUj/TLBTx3B/1aT1T5F12FEuEqyFMdr59OMS53aoaSw8eVtapdqieX6lbg5opaOhA== dependencies: loader-utils "^0.2.16" @@ -7998,26 +7631,18 @@ get-caller-file@^2.0.5: get-func-name@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== -get-intrinsic@^1.0.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== dependencies: function-bind "^1.1.1" has "^1.0.3" + has-proto "^1.0.1" has-symbols "^1.0.3" -get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -8031,7 +7656,7 @@ get-stdin@^4.0.1: get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== get-stream@^4.0.0: version "4.1.0" @@ -8040,14 +7665,7 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== - dependencies: - pump "^3.0.0" - -get-stream@^5.2.0: +get-stream@^5.1.0, get-stream@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -8070,24 +7688,24 @@ get-symbol-description@^1.0.0: get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" github-slugger@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.4.0.tgz#206eb96cdb22ee56fdc53a28d5a302338463444e" - integrity sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ== + version "1.5.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" + integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" @@ -8099,7 +7717,7 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1: +glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -8116,7 +7734,7 @@ glob-promise@^3.4.0: glob-stream@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" - integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= + integrity sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw== dependencies: extend "^3.0.0" glob "^7.1.1" @@ -8132,7 +7750,7 @@ glob-stream@^6.1.0: glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + integrity sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig== glob-to-regexp@^0.4.1: version "0.4.1" @@ -8140,33 +7758,34 @@ glob-to-regexp@^0.4.1: integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== glob-watcher@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.3.tgz#88a8abf1c4d131eb93928994bc4a593c2e5dd626" - integrity sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg== + version "5.0.5" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.5.tgz#aa6bce648332924d9a8489be41e3e5c52d4186dc" + integrity sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw== dependencies: anymatch "^2.0.0" async-done "^1.2.0" chokidar "^2.0.0" is-negated-glob "^1.0.0" just-debounce "^1.0.0" + normalize-path "^3.0.0" object.defaults "^1.1.0" -glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== +glob@^8.0.3, glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -8193,7 +7812,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== dependencies: expand-tilde "^2.0.2" homedir-polyfill "^1.0.1" @@ -8214,33 +7833,35 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.15.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== +globals@^13.19.0: + version "13.21.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571" + integrity sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg== dependencies: type-fest "^0.20.2" -globalthis@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" - integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== +globalthis@^1.0.0, globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: define-properties "^1.1.3" -globby@^11.0.1: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== +globby@10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22" + integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A== dependencies: + "@types/glob" "^7.1.1" array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" slash "^3.0.0" -globby@^11.0.2, globby@^11.0.4, globby@^11.1.0: +globby@^11.0.1, globby@^11.0.2, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -8255,7 +7876,7 @@ globby@^11.0.2, globby@^11.0.4, globby@^11.1.0: globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== dependencies: array-union "^1.0.1" glob "^7.0.3" @@ -8284,6 +7905,13 @@ glogg@^1.0.0: dependencies: sparkles "^1.0.0" +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + got@^12.1.0: version "12.6.1" resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" @@ -8304,7 +7932,7 @@ got@^12.1.0: got@^6.3.0: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= + integrity sha512-Y/K3EDuiQN9rTZhBvPRWMLXIKdeD1Rj0nzunfoi0Yyn5WBEbzxXKU9Ub2X41oZBagVWOBU3MuDonFMgPWQFnwg== dependencies: create-error-class "^3.0.0" duplexer3 "^0.1.4" @@ -8327,17 +7955,12 @@ graceful-fs-extra@^2.0.0: graceful-ncp "^3.0.0" proxyquire "^1.4.0" -graceful-fs@4.2.10, graceful-fs@^4.1.15, graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@4.2.10: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.3: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== - -graceful-fs@^4.2.6: +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.3, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -8351,15 +7974,15 @@ graceful-ncp@^3.0.0: ncp "^2.0.0" proxyquire "^1.4.0" -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== gulp-cli@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.2.0.tgz#5533126eeb7fe415a7e3e84a297d334d5cf70ebc" - integrity sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.3.0.tgz#ec0d380e29e52aa45e47977f0d32e18fd161122f" + integrity sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A== dependencies: ansi-colors "^1.0.1" archy "^1.0.0" @@ -8369,7 +7992,7 @@ gulp-cli@^2.2.0: copy-props "^2.0.1" fancy-log "^1.3.2" gulplog "^1.0.0" - interpret "^1.1.0" + interpret "^1.4.0" isobject "^3.0.1" liftoff "^3.1.0" matchdep "^2.0.0" @@ -8377,7 +8000,7 @@ gulp-cli@^2.2.0: pretty-hrtime "^1.0.0" replace-homedir "^1.0.0" semver-greatest-satisfied-range "^1.1.0" - v8flags "^3.0.1" + v8flags "^3.2.0" yargs "^7.1.0" gulp-debian@^0.3.2: @@ -8392,14 +8015,14 @@ gulp-debian@^0.3.2: title-case "^2.1.0" gulp-json-editor@^2.5.6: - version "2.5.6" - resolved "https://registry.yarnpkg.com/gulp-json-editor/-/gulp-json-editor-2.5.6.tgz#eb15e2936448289e109417987905a25ebcab8d07" - integrity sha512-66Xr6Q6m4mUNd0OOHflMB/RHgFNnLjlHgizOzUcx9CyMRymVZEM+/SpZcCDlvThBdXtQwXpdvtSepxVY/V6nQA== + version "2.5.7" + resolved "https://registry.yarnpkg.com/gulp-json-editor/-/gulp-json-editor-2.5.7.tgz#400bf8057e3d84cd4f491518cba1f05dc51bb244" + integrity sha512-0Neuyv9tSt2QjjgEsQHmRnIKe+ofqhWShOYiSGHJWgzx49O3s2zwrsK3lcsNVqWIgtonKbVVOKUT0dYvJbQTUg== dependencies: - deepmerge "^4.2.2" - detect-indent "^6.0.0" - js-beautify "^1.13.13" - plugin-error "^1.0.1" + deepmerge "^4.3.1" + detect-indent "^6.1.0" + js-beautify "^1.14.8" + plugin-error "^2.0.1" through2 "^4.0.2" gulp-less@^5.0.0: @@ -8429,11 +8052,11 @@ gulp-rename@^2.0.0: integrity sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ== gulp-replace@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/gulp-replace/-/gulp-replace-1.1.3.tgz#8641cdca78e683e8573ca4a012e7e4ebb7e4db60" - integrity sha512-HcPHpWY4XdF8zxYkDODHnG2+7a3nD/Y8Mfu3aBgMiCFDW3X2GiOKXllsAmILcxe3KZT2BXoN18WrpEFm48KfLQ== + version "1.1.4" + resolved "https://registry.yarnpkg.com/gulp-replace/-/gulp-replace-1.1.4.tgz#06a0e9ee36f30e343c1e0a2dd760ec32c8a3d3b2" + integrity sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw== dependencies: - "@types/node" "^14.14.41" + "@types/node" "*" "@types/vinyl" "^2.0.4" istextorbinary "^3.0.0" replacestream "^4.0.3" @@ -8459,7 +8082,7 @@ gulp-sourcemaps@^3.0.0: gulp-util@^3.0.8: version "3.0.8" resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" - integrity sha1-AFTh50RQLifATBh8PsxQXdVLu08= + integrity sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw== dependencies: array-differ "^1.0.0" array-uniq "^1.0.2" @@ -8527,17 +8150,17 @@ gulp@^4.0.2: gulplog@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" - integrity sha1-4oxNRdBey77YGDY86PnFkmIp/+U= + integrity sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw== dependencies: glogg "^1.0.0" handlebars@^4.7.7: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== dependencies: minimist "^1.2.5" - neo-async "^2.6.0" + neo-async "^2.6.2" source-map "^0.6.1" wordwrap "^1.0.0" optionalDependencies: @@ -8546,7 +8169,7 @@ handlebars@^4.7.7: har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== har-validator@~5.1.3: version "5.1.5" @@ -8559,31 +8182,31 @@ har-validator@~5.1.3: has-ansi@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" - integrity sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4= + integrity sha512-1YsTg1fk2/6JToQhtZkArMkurq8UoWU1Qe0aR3VUHjgij4nOylSWLWAtBXoZ4/dXOmugfLGm1c+QhuD0JyedFA== dependencies: ansi-regex "^0.2.0" has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== dependencies: ansi-regex "^2.0.0" -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" @@ -8593,26 +8216,28 @@ has-flag@^4.0.0: has-glob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-glob/-/has-glob-1.0.0.tgz#9aaa9eedbffb1ba3990a7b0010fb678ee0081207" - integrity sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc= + integrity sha512-D+8A457fBShSEI3tFCj65PAbT++5sKiFtdCdOam0gnfBgw9D277OERk+HM9qYJXmdVLZ/znez10SqHN0BBQ50g== dependencies: is-glob "^3.0.0" has-gulplog@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" - integrity sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4= + integrity sha512-+F4GzLjwHNNDEAJW2DC1xXfEoPkRDmUdJ7CBYw4MpqtDwOnqdImJl7GWlpqx+Wko6//J8uKTnIe4wZSv7yCqmw== dependencies: sparkles "^1.0.0" -has-symbols@^1.0.0: +has-property-descriptors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" -has-symbols@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" @@ -8629,12 +8254,12 @@ has-tostringtag@^1.0.0: has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -8643,7 +8268,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -8652,12 +8277,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== has-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== dependencies: is-number "^3.0.0" kind-of "^4.0.0" @@ -8667,7 +8292,7 @@ has-yarn@^3.0.0: resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== -has@^1.0.1, has@^1.0.3: +has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -8686,7 +8311,12 @@ hash-base@^3.0.0: hash-sum@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" - integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= + integrity sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA== + +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" @@ -8772,7 +8402,7 @@ he@^1.2.0: hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" @@ -8791,9 +8421,9 @@ hosted-git-info@^2.1.4: integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== hosted-git-info@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" - integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== dependencies: lru-cache "^6.0.0" @@ -8805,9 +8435,9 @@ html-encoding-sniffer@^3.0.0: whatwg-encoding "^2.0.0" html-entities@^2.1.0: - version "2.3.3" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" - integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061" + integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ== html-minifier-terser@^5.0.1: version "5.1.1" @@ -8889,7 +8519,7 @@ http-proxy-agent@^5.0.0: http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -8906,17 +8536,9 @@ http2-wrapper@^2.1.10: https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" + integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== -https-proxy-agent@^5.0.1: +https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== @@ -8932,22 +8554,22 @@ human-signals@^2.1.0: humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== dependencies: ms "^2.0.0" husky@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.0.tgz#0b2ec1d66424e9219d359e26a51c58ec5278f0de" - integrity sha512-tTMeLCLqSBqnflBZnlVDhpaIMucSGaYyX6855jM4AguGeWCeSzNdb1mfyWduTZ3pe3SJVvVWGL0jO1iKZVPfTA== + version "4.3.8" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d" + integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow== dependencies: chalk "^4.0.0" ci-info "^2.0.0" compare-versions "^3.6.0" cosmiconfig "^7.0.0" - find-versions "^3.2.0" + find-versions "^4.0.0" opencollective-postinstall "^2.0.2" - pkg-dir "^4.2.0" + pkg-dir "^5.0.0" please-upgrade-node "^3.2.0" slash "^3.0.0" which-pm-runs "^1.0.0" @@ -8960,20 +8582,20 @@ i18next-xhr-backend@^3.2.2: "@babel/runtime" "^7.5.5" i18next@^19.0.0: - version "19.5.1" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-19.5.1.tgz#d5fdc7b2dafd1a183f2188d65dfdb78ef9f35264" - integrity sha512-e6lGMiTyb51F9PPInUTTDg8YbwcWXZYX18svaX2NUUWEphJKP7oG5HMlbZ+K84AXqw4AeBnwRrOlS9ickqcCBg== + version "19.9.2" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-19.9.2.tgz#ea5a124416e3c5ab85fddca2c8e3c3669a8da397" + integrity sha512-0i6cuo6ER6usEOtKajUUDj92zlG+KArFia0857xxiEHAQcUwh/RtOQocui1LPJwunSYT574Pk64aNva1kwtxZg== dependencies: - "@babel/runtime" "^7.10.1" + "@babel/runtime" "^7.12.0" -iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4: +iconv-lite@0.4.24, iconv-lite@^0.4.17: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.2: +iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -8983,7 +8605,7 @@ iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.2: icss-replace-symbols@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" @@ -8992,27 +8614,15 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: dependencies: postcss "^7.0.14" -ieee754@^1.1.13: +ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" + integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== ignore-walk@^3.0.3: version "3.0.4" @@ -9026,15 +8636,10 @@ ignore@^4.0.3: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== +ignore@^5.1.1, ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== image-size@^0.7.4: version "0.7.5" @@ -9044,22 +8649,19 @@ image-size@^0.7.4: image-size@~0.5.0: version "0.5.5" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= + integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" +immutable@^4.0.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" + integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== -import-fresh@^3.1.0: +import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -9075,12 +8677,12 @@ import-lazy@^4.0.0: imul@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/imul/-/imul-1.0.1.tgz#9d5867161e8b3de96c2c38d5dc7cb102f35e2ac9" - integrity sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk= + integrity sha512-WFAgfwPLAjU66EKt6vRdTlKj4nAgIDQzh29JonLa4Bqtl6D8JrIMvWjCnx7xEjVNmP3U0fM5o8ZObk7d0f62bA== imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^2.1.0: version "2.1.0" @@ -9094,11 +8696,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -9112,7 +8709,7 @@ inflection@^1.13.4: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -9122,15 +8719,10 @@ inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== ini@2.0.0: version "2.0.0" @@ -9138,9 +8730,9 @@ ini@2.0.0: integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== ini@^1.3.4, ini@~1.3.0: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== init-package-json@^2.0.5: version "2.0.5" @@ -9180,12 +8772,12 @@ inquirer@^3.3.0: strip-ansi "^4.0.0" through "^2.3.6" -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== +internal-slot@^1.0.4, internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: - get-intrinsic "^1.1.0" + get-intrinsic "^1.2.0" has "^1.0.3" side-channel "^1.0.4" @@ -9194,10 +8786,10 @@ internal-slot@^1.0.3: resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== -interpret@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== +interpret@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== interpret@^2.2.0: version "2.2.0" @@ -9207,18 +8799,13 @@ interpret@^2.2.0: invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== ip@^1.1.0: version "1.1.8" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== -ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - ip@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" @@ -9245,7 +8832,7 @@ is-absolute@^1.0.0: is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== dependencies: kind-of "^3.0.2" @@ -9269,12 +8856,7 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -is-arguments@^1.1.0: +is-arguments@^1.0.4, is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -9282,10 +8864,19 @@ is-arguments@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" @@ -9297,7 +8888,7 @@ is-bigint@^1.0.1: is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== dependencies: binary-extensions "^1.0.0" @@ -9326,22 +8917,17 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-builtin-module@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.0.tgz#bb0310dfe881f144ca83f30100ceb10cf58835e0" - integrity sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw== +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== dependencies: builtin-modules "^3.3.0" -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== - -is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-ci@^2.0.0: version "2.0.0" @@ -9357,24 +8943,17 @@ is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.5.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== - dependencies: - has "^1.0.3" - -is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== +is-core-module@^2.13.0, is-core-module@^2.5.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== dependencies: kind-of "^3.0.2" @@ -9386,9 +8965,11 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" is-decimal@^1.0.0: version "1.0.4" @@ -9426,14 +9007,6 @@ is-dom@^1.0.0: is-object "^1.0.1" is-window "^1.0.2" -is-expression@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-3.0.0.tgz#39acaa6be7fd1f3471dc42c7416e61c24317ac9f" - integrity sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8= - dependencies: - acorn "~4.0.2" - object-assign "^4.0.1" - is-expression@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-4.0.0.tgz#c33155962abf21d0afd2552514d67d2ec16fd2ab" @@ -9445,7 +9018,7 @@ is-expression@^4.0.0: is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== is-extendable@^1.0.1: version "1.0.1" @@ -9457,7 +9030,7 @@ is-extendable@^1.0.1: is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-finite@^1.0.0: version "1.1.0" @@ -9467,14 +9040,14 @@ is-finite@^1.0.0: is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -9486,21 +9059,21 @@ is-function@^1.0.2: resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@^3.0.0, is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -9523,7 +9096,7 @@ is-installed-globally@^0.4.0: is-lambda@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== is-map@^2.0.2: version "2.0.2" @@ -9533,28 +9106,36 @@ is-map@^2.0.2: is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== is-my-ip-valid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" - integrity sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.1.tgz#f7220d1146257c98672e6fba097a9f3f2d348442" + integrity sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg== is-my-json-valid@^2.20.0: - version "2.20.5" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.5.tgz#5eca6a8232a687f68869b7361be1612e7512e5df" - integrity sha512-VTPuvvGQtxvCeghwspQu1rBgjYUT6FGxPlvFKbYuFtgc4ADsX3U5ihZOYN0qyU6u+d4X9xXb0IT5O6QpXKt87A== + version "2.20.6" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.6.tgz#a9d89e56a36493c77bda1440d69ae0dc46a08387" + integrity sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw== dependencies: generate-function "^2.0.0" generate-object-property "^1.1.0" is-my-ip-valid "^1.0.0" - jsonpointer "^4.0.0" + jsonpointer "^5.0.0" xtend "^4.0.0" +is-nan@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + is-negated-glob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" - integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= + integrity sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug== is-negative-zero@^2.0.2: version "2.0.2" @@ -9576,7 +9157,7 @@ is-number-object@^1.0.4: is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== dependencies: kind-of "^3.0.2" @@ -9595,22 +9176,17 @@ is-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== -is-object@^1.0.1: +is-object@^1.0.1, is-object@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== -is-object@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= - is-path-cwd@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-inside@^3.0.2: +is-path-inside@^3.0.2, is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -9627,6 +9203,11 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" + integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== + is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" @@ -9645,12 +9226,12 @@ is-promise@^2.0.0, is-promise@^2.2.2: is-property@^1.0.0, is-property@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= + integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g== is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= + integrity sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw== is-reference@1.2.1: version "1.2.1" @@ -9659,21 +9240,7 @@ is-reference@1.2.1: dependencies: "@types/estree" "*" -is-regex@^1.0.3: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: - has "^1.0.1" - -is-regex@^1.1.2, is-regex@^1.1.4: +is-regex@^1.0.3, is-regex@^1.0.4, is-regex@^1.1.2, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -9708,7 +9275,7 @@ is-shared-array-buffer@^1.0.2: is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== is-stream@^2.0.0: version "2.0.1" @@ -9722,24 +9289,24 @@ is-string@^1.0.5, is-string@^1.0.7: dependencies: has-tostringtag "^1.0.0" -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== - dependencies: - has-symbols "^1.0.0" - -is-symbol@^1.0.3: +is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" +is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unc-path@^1.0.0: version "1.0.0" @@ -9751,12 +9318,12 @@ is-unc-path@^1.0.0: is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== is-valid-glob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" - integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= + integrity sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA== is-weakref@^1.0.2: version "1.0.2" @@ -9778,7 +9345,7 @@ is-whitespace-character@^1.0.0: is-window@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-window/-/is-window-1.0.2.tgz#2c896ca53db97de45d3c33133a65d8c9f563480d" - integrity sha1-LIlspT25feRdPDMTOmXYyfVjSA0= + integrity sha512-uj00kdXyZb9t9RcAUAwMZAnkBUwdYGhYlt7djMXhfyhUCzwNba50tIiBKR7q0l7tdoBtFVw/3JmLY6fI3rmZmg== is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" @@ -9793,7 +9360,7 @@ is-word-character@^1.0.0: is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" @@ -9810,7 +9377,7 @@ is-yarn-global@^0.4.0: isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" @@ -9825,19 +9392,19 @@ isarray@^2.0.5: isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== isobject@^4.0.0: version "4.0.0" @@ -9855,7 +9422,7 @@ isomorphic-unfetch@^3.1.0: isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== istanbul-lib-coverage@^3.2.0: version "3.2.0" @@ -9863,9 +9430,9 @@ istanbul-lib-coverage@^3.2.0: integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== istanbul-lib-instrument@^5.0.4: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" @@ -9988,39 +9555,34 @@ jquery@3.6.3, "jquery@>=1.8.0 <4.0.0", jquery@^3.6.0: integrity sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg== jquery@^3.6.3: - version "3.7.0" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.0.tgz#fe2c01a05da500709006d8790fe21c8a39d75612" - integrity sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ== + version "3.7.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" + integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== js-base64@^2.1.9: version "2.6.4" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== -js-beautify@^1.13.13: - version "1.14.4" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.4.tgz#187d600a835f84de67a6d09ceaf3f199b7284c82" - integrity sha512-+b4A9c3glceZEmxyIbxDOYB0ZJdReLvyU1077RqKsO4dZx9FUHjTOJn8VHwpg33QoucIykOiYbh7MfqBOghnrA== +js-beautify@^1.14.8: + version "1.14.9" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.9.tgz#a5db728bc5a0d84d3b1a597c376b29bd4d39c8e5" + integrity sha512-coM7xq1syLcMyuVGyToxcj2AlzhkDjmfklL8r0JgJ7A76wyGMpJ1oA35mr4APdYNO/o/4YY8H54NQIJzhMbhBg== dependencies: config-chain "^1.1.13" - editorconfig "^0.15.3" - glob "^7.1.3" - nopt "^5.0.0" - -js-sdsl@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.5.tgz#1ff1645e6b4d1b028cd3f862db88c9d887f26e2a" - integrity sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q== + editorconfig "^1.0.3" + glob "^8.1.0" + nopt "^6.0.0" js-string-escape@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" - integrity sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8= + integrity sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg== -js-stringify@^1.0.1, js-stringify@^1.0.2: +js-stringify@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" - integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds= + integrity sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -10028,9 +9590,9 @@ js-stringify@^1.0.1, js-stringify@^1.0.2: integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -10045,7 +9607,7 @@ js-yaml@^4.1.0: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== jscodeshift@^0.13.1: version "0.13.1" @@ -10073,17 +9635,16 @@ jscodeshift@^0.13.1: write-file-atomic "^2.3.0" jsdom@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-21.0.0.tgz#33e22f2fc44286e50ac853c7b7656c8864a4ea45" - integrity sha512-AIw+3ZakSUtDYvhwPwWHiZsUi3zHugpMEKlNPaurviseYoBqo0zBd3zqoUi3LPCNtPFlEP8FiW9MqCZdjb2IYA== + version "21.1.2" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-21.1.2.tgz#6433f751b8718248d646af1cdf6662dc8a1ca7f9" + integrity sha512-sCpFmK2jv+1sjff4u7fzft+pUh2KSUbUrEHYHyfSIbGTIcmnjyp83qg6qLwdJ/I3LpTXx33ACxeRL7Lsyc6lGQ== dependencies: abab "^2.0.6" - acorn "^8.8.1" + acorn "^8.8.2" acorn-globals "^7.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.2" - decimal.js "^10.4.2" + cssstyle "^3.0.0" + data-urls "^4.0.0" + decimal.js "^10.4.3" domexception "^4.0.0" escodegen "^2.0.0" form-data "^4.0.0" @@ -10091,8 +9652,9 @@ jsdom@^21.0.0: http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.1" is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.2" - parse5 "^7.1.1" + nwsapi "^2.2.4" + parse5 "^7.1.2" + rrweb-cssom "^0.6.0" saxes "^6.0.0" symbol-tree "^3.2.4" tough-cookie "^4.1.2" @@ -10100,8 +9662,8 @@ jsdom@^21.0.0: webidl-conversions "^7.0.0" whatwg-encoding "^2.0.0" whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - ws "^8.11.0" + whatwg-url "^12.0.1" + ws "^8.13.0" xml-name-validator "^4.0.0" jsesc@^2.5.1: @@ -10112,7 +9674,7 @@ jsesc@^2.5.1: jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-buffer@3.0.1: version "3.0.1" @@ -10134,37 +9696,37 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.1.3, json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== +json5@^2.1.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonc-parser@^3.2.0: version "3.2.0" @@ -10174,7 +9736,7 @@ jsonc-parser@^3.2.0: jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= + integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw== optionalDependencies: graceful-fs "^4.1.6" @@ -10197,27 +9759,27 @@ jsonfile@^6.0.1: jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= +jsonpointer@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" extsprintf "1.3.0" - json-schema "0.2.3" + json-schema "0.4.0" verror "1.10.0" jstransformer@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" - integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM= + integrity sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A== dependencies: is-promise "^2.0.0" promise "^7.0.1" @@ -10238,28 +9800,28 @@ junk@^3.1.0: integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== just-debounce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" - integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= + version "1.1.0" + resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.1.0.tgz#2f81a3ad4121a76bc7cb45dbf704c0d76a8e5ddf" + integrity sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ== -keyv@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" - integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== +keyv@^4.5.3: + version "4.5.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" + integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== dependencies: json-buffer "3.0.1" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== dependencies: is-buffer "^1.1.5" @@ -10269,14 +9831,14 @@ kind-of@^5.0.0, kind-of@^5.0.2: integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= + integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw== optionalDependencies: graceful-fs "^4.1.9" @@ -10286,14 +9848,14 @@ kleur@^3.0.3: integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== klona@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" - integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== last-run@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" - integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls= + integrity sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ== dependencies: default-resolution "^2.0.0" es6-weak-map "^2.0.1" @@ -10305,11 +9867,6 @@ latest-version@^7.0.0: dependencies: package-json "^8.1.0" -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= - lazy-universal-dotenv@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz#a6c8938414bca426ab8c9463940da451a911db38" @@ -10322,30 +9879,30 @@ lazy-universal-dotenv@^3.0.1: dotenv-expand "^5.1.0" lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + version "1.0.1" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== dependencies: readable-stream "^2.0.5" lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw== dependencies: invert-kv "^1.0.0" lead@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" - integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= + integrity sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow== dependencies: flush-write-stream "^1.0.2" "less@^3.7.1 || ^4.0.0": - version "4.1.2" - resolved "https://registry.yarnpkg.com/less/-/less-4.1.2.tgz#6099ee584999750c2624b65f80145f8674e4b4b0" - integrity sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA== + version "4.2.0" + resolved "https://registry.yarnpkg.com/less/-/less-4.2.0.tgz#cbefbfaa14a4cd388e2099b2b51f956e1465c450" + integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA== dependencies: copy-anything "^2.0.1" parse-node-version "^1.0.1" @@ -10356,14 +9913,15 @@ lead@^1.0.0: image-size "~0.5.0" make-dir "^2.1.0" mime "^1.4.1" - needle "^2.5.2" + needle "^3.1.0" source-map "~0.6.0" less@^3.9.0: - version "3.12.2" - resolved "https://registry.yarnpkg.com/less/-/less-3.12.2.tgz#157e6dd32a68869df8859314ad38e70211af3ab4" - integrity sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q== + version "3.13.1" + resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" + integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== dependencies: + copy-anything "^2.0.1" tslib "^1.10.0" optionalDependencies: errno "^0.1.1" @@ -10382,14 +9940,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - libxmljs2@0.32.0, libxmljs2@^0.29.0: version "0.32.0" resolved "https://registry.yarnpkg.com/libxmljs2/-/libxmljs2-0.32.0.tgz#408e35c54a5ad5e0366bc8299ba20ed35224d0d9" @@ -10421,14 +9971,14 @@ liftoff@^3.1.0: resolve "^1.1.7" lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -10449,7 +9999,7 @@ loader-runner@^4.2.0: loader-utils@^0.2.16: version "0.2.17" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug== dependencies: big.js "^3.1.3" emojis-list "^2.0.0" @@ -10457,27 +10007,27 @@ loader-utils@^0.2.16: object-assign "^4.0.1" loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + version "1.4.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" json5 "^1.0.1" -loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== +loader-utils@^2.0.0, loader-utils@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" json5 "^2.1.2" local-pkg@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.2.tgz#13107310b77e74a0e513147a131a2ba288176c2f" - integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg== + version "0.4.3" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== locate-path@^3.0.0: version "3.0.0" @@ -10504,47 +10054,47 @@ locate-path@^6.0.0: lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" - integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= + integrity sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ== lodash._basetostring@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" - integrity sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U= + integrity sha512-mTzAr1aNAv/i7W43vOR/uD/aJ4ngbtsRaCubp2BfZhlGU/eORUjg/7F6X0orNMdv33JOrdgGybtvMN/po3EWrA== lodash._basevalues@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" - integrity sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc= + integrity sha512-H94wl5P13uEqlCg7OcNNhMQ8KvWSIyqXzOPusRgHC9DK3o54P6P3xtbXlVbRABG4q5gSmp7EDdJ0MSuW9HX6Mg== lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= + integrity sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA== lodash._isiterateecall@^3.0.0: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" - integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= + integrity sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ== lodash._reescape@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" - integrity sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo= + integrity sha512-Sjlavm5y+FUVIF3vF3B75GyXrzsfYV8Dlv3L4mEpuB9leg8N6yf/7rU06iLPx9fY0Mv3khVp9p7Dx0mGV6V5OQ== lodash._reevaluate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" - integrity sha1-WLx0xAZklTrgsSTYBpltrKQx4u0= + integrity sha512-OrPwdDc65iJiBeUe5n/LIjd7Viy99bKwDdk7Z5ljfZg0uFRFlfQaCy9tZ4YMAag9WAZmlVpe1iZrkIMMSMHD3w== lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== lodash._root@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" - integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= + integrity sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ== lodash.debounce@^4.0.8: version "4.0.8" @@ -10559,29 +10109,29 @@ lodash.defaults@^4.2.0: lodash.difference@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" - integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== lodash.escape@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" - integrity sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg= + integrity sha512-n1PZMXgaaDWZDSvuNZ/8XOcYO2hOKDqZel5adtR30VKQAtoWs/5AOeFA0vPV8moiPzlqe7F4cP2tzpFewQyelQ== dependencies: lodash._root "^3.0.0" lodash.flatten@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" - integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= + integrity sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ== lodash.isplainobject@^4.0.6: version "4.0.6" @@ -10591,7 +10141,7 @@ lodash.isplainobject@^4.0.6: lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= + integrity sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ== dependencies: lodash._getnative "^3.0.0" lodash.isarguments "^3.0.0" @@ -10605,12 +10155,12 @@ lodash.merge@^4.6.2: lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= + integrity sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw== lodash.template@^3.0.0: version "3.6.2" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" - integrity sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8= + integrity sha512-0B4Y53I0OgHUJkt+7RmlDFWKjVAI/YUpWNiL9GQz5ORDr4ttgfQGo+phBWKFLJbBdtOwgMuUkdOHOnPg45jKmQ== dependencies: lodash._basecopy "^3.0.0" lodash._basetostring "^3.0.0" @@ -10633,7 +10183,7 @@ lodash.template@^4.4.0: lodash.templatesettings@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" - integrity sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU= + integrity sha512-TcrlEr31tDYnWkHFWDCV3dHYroKEXpJZ2YJYvJdhN+y4AkWMDZ5I4I8XDtUKqSAyG81N7w+I1mFEJtcED+tGqQ== dependencies: lodash._reinterpolate "^3.0.0" lodash.escape "^3.0.0" @@ -10648,23 +10198,18 @@ lodash.templatesettings@^4.0.0: lodash.union@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" - integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= + integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== lodash.uniq@4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== lodash@^4.13.1, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.3.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= - loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -10681,9 +10226,9 @@ loud-rejection@^1.0.0: signal-exit "^3.0.0" loupe@^2.3.1: - version "2.3.4" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" - integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== + version "2.3.6" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== dependencies: get-func-name "^2.0.0" @@ -10709,7 +10254,7 @@ lowercase-keys@^3.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== -lru-cache@^4.1.2, lru-cache@^4.1.5: +lru-cache@^4.1.2: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -10731,26 +10276,31 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^8.0.3: + version "8.0.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-8.0.5.tgz#983fe337f3e176667f8e567cfcce7cb064ea214e" + integrity sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA== + lru-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" - integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= + integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== dependencies: es5-ext "~0.10.2" macos-alias@~0.2.5: version "0.2.11" resolved "https://registry.yarnpkg.com/macos-alias/-/macos-alias-0.2.11.tgz#feeea6c13ba119814a43fc43c470b31e59ef718a" - integrity sha1-/u6mwTuhGYFKQ/xDxHCzHlnvcYo= + integrity sha512-zIUs3+qpml+w3wiRuADutd7XIO8UABqksot10Utl/tji4UxZzLG4fWDC+yJZoO8/Ehg5RqsvSRE/6TS5AEOeWw== dependencies: nan "^2.4.0" magic-string@^0.25.7: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== dependencies: - sourcemap-codec "^1.4.4" + sourcemap-codec "^1.4.8" magic-string@^0.27.0: version "0.27.0" @@ -10759,6 +10309,13 @@ magic-string@^0.27.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.13" +magic-string@^0.30.0: + version "0.30.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" + integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -10775,9 +10332,9 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: semver "^6.0.0" make-fetch-happen@^9.0.1: - version "9.0.4" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.0.4.tgz#ceaa100e60e0ef9e8d1ede94614bb2ba83c8bb24" - integrity sha512-sQWNKMYqSmbAGXqJg2jZ+PmHh5JAybvwu0xM8mZR/bsTjGiTASj3ldXJV7KFHy1k/IJIBkjxQFoWIVsv9+PQMg== + version "9.1.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" + integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== dependencies: agentkeepalive "^4.1.3" cacache "^15.2.0" @@ -10793,7 +10350,7 @@ make-fetch-happen@^9.0.1: minipass-pipeline "^1.2.4" negotiator "^0.6.2" promise-retry "^2.0.1" - socks-proxy-agent "^5.0.0" + socks-proxy-agent "^6.0.0" ssri "^8.0.0" make-iterator@^1.0.0: @@ -10813,7 +10370,7 @@ makeerror@1.0.12: map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" @@ -10823,17 +10380,17 @@ map-obj@^1.0.0, map-obj@^1.0.1: map-or-similar@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" - integrity sha1-beJlMXSt+12e3DPGnT6Sobdvrwg= + integrity sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg== map-stream@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= + integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== dependencies: object-visit "^1.0.0" @@ -10843,14 +10400,14 @@ markdown-escapes@^1.0.0: integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== marked@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.1.1.tgz#2f709a4462abf65a283f2453dc1c42ab177d302e" - integrity sha512-0cNMnTcUJPxbA6uWmCmjWz4NJRe/0Xfk2NhXCUHjew9qJzFN20krFnsUe7QynwqOwa5m1fZ4UDg0ycKFVC0ccw== + version "4.3.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" + integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== matchdep@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" - integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4= + integrity sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA== dependencies: findup-sync "^2.0.0" micromatch "^3.0.4" @@ -10907,7 +10464,7 @@ mdast-util-to-string@^1.0.0: mdurl@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== media-typer@0.3.0: version "0.3.0" @@ -10915,11 +10472,11 @@ media-typer@0.3.0: integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== memfs@^3.1.2: - version "3.4.1" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.1.tgz#b78092f466a0dce054d63d39275b24c71d3f1305" - integrity sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== dependencies: - fs-monkey "1.0.3" + fs-monkey "^1.0.4" memoizee@0.4.X: version "0.4.15" @@ -10938,14 +10495,14 @@ memoizee@0.4.X: memoizerific@^1.11.3: version "1.11.3" resolved "https://registry.yarnpkg.com/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a" - integrity sha1-fIekZGREwy11Q4VwkF8tvRsagFo= + integrity sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog== dependencies: map-or-similar "^1.5.0" memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== dependencies: errno "^0.1.3" readable-stream "^2.0.1" @@ -10991,12 +10548,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.2.3, merge2@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" - integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== - -merge2@^1.4.1: +merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -11030,7 +10582,7 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.0: +micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -11038,22 +10590,6 @@ micromatch@^4.0.0: braces "^3.0.2" picomatch "^2.3.1" -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -11062,29 +10598,12 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - -mime-db@1.52.0: +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -"mime-db@>= 1.43.0 < 2": - version "1.43.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" - integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== - dependencies: - mime-db "1.40.0" - -mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -11124,7 +10643,7 @@ mimic-response@^4.0.0: min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== dependencies: dom-walk "^0.1.0" @@ -11136,19 +10655,26 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" + integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== + dependencies: + brace-expansion "^2.0.1" -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.2: +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== +minimatch@^5.0.1, minimatch@^5.1.0: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" @@ -11165,9 +10691,9 @@ minipass-collect@^1.0.2: minipass "^3.0.0" minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: - version "1.3.4" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.4.tgz#63f5af868a38746ca7b33b03393ddf8c291244fe" - integrity sha512-TielGogIzbUEtd1LsjZFs47RWuHHfhl6TiCx1InVxApBAmQ8bL0dL5ilkLGcRvuyW/A9nE+Lvn855Ewz8S0PnQ== + version "1.4.1" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" + integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== dependencies: minipass "^3.1.0" minipass-sized "^1.0.3" @@ -11204,27 +10730,17 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@^2.6.0, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" -minizlib@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== minizlib@^2.0.0, minizlib@^2.1.1: version "2.1.2" @@ -11263,14 +10779,7 @@ mkdirp-classic@^0.5.2: resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^0.5.1, mkdirp@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@^0.5.3: +mkdirp@^0.5.1, mkdirp@^0.5.3: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -11282,25 +10791,25 @@ mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mlly@^1.0.0, mlly@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.1.0.tgz#9e23c5e675ef7b10cc47ee6281795cb1a7aa3aa2" - integrity sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ== +mlly@^1.1.0, mlly@^1.2.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" + integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== dependencies: - acorn "^8.8.1" - pathe "^1.0.0" - pkg-types "^1.0.1" - ufo "^1.0.1" + acorn "^8.10.0" + pathe "^1.1.1" + pkg-types "^1.0.3" + ufo "^1.3.0" module-not-found-error@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/module-not-found-error/-/module-not-found-error-1.0.1.tgz#cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0" - integrity sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA= + integrity sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g== move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" @@ -11319,12 +10828,12 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@2.1.2, ms@^2.1.1: +ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.0.0: +ms@2.1.3, ms@^2.0.0, ms@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -11353,7 +10862,7 @@ multicast-dns@^7.2.5: multipipe@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" - integrity sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s= + integrity sha512-7ZxrUybYv9NonoXgwoOqtStIu18D1c3eFZj27hqgf5kBrBF8Q+tE8V0MW8dKM5QLkQPh1JhhbKgHLY9kifov4Q== dependencies: duplexer2 "0.0.2" @@ -11362,12 +10871,12 @@ multiple-select@^1.6.0: resolved "https://registry.yarnpkg.com/multiple-select/-/multiple-select-1.6.0.tgz#7e2e7771f45671f014d15a662055c9ff72984a88" integrity sha512-DnBvhl189r5NuLQa6bxsvl62ArMJVi7YDx7hjiW5ZX5agiZyiPZIzzanlsFtm4yLvR0KMwfG0TDrixJ8RNa8eg== -murmur-32@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/murmur-32/-/murmur-32-0.1.0.tgz#c1a79d4fc5fabf0405749d0aff77c41402055861" - integrity sha1-waedT8X6vwQFdJ0K/3fEFAIFWGE= +"murmur-32@^0.1.0 || ^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/murmur-32/-/murmur-32-0.2.0.tgz#bf42b7567880db13cd92ca0c2c72eeea884f44c7" + integrity sha512-ZkcWZudylwF+ir3Ld1n7gL6bI2mQAzXvSobPwVtu8aYi2sbXeipeSkdcanRLzIofLcM5F53lGaKm2dk7orBi7Q== dependencies: - array-buffer-from-string "^0.1.0" + encode-utf8 "^1.0.3" fmix "^0.1.0" imul "^1.0.0" @@ -11379,37 +10888,27 @@ mute-stdout@^1.0.0: mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.12.1, nan@^2.4.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== - -nan@~2.17.0: +nan@^2.12.1, nan@^2.4.0, nan@~2.17.0: version "2.17.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== nanoid@^2.1.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.4.tgz#c38b2c1f7f4c60cde2291f40854420328d0d621e" - integrity sha512-PijW88Ry+swMFfArOrm7uRAdVmJilLbej7WwVY6L5QwLDckqxSOinGGMV596yp5C8+MH3VvCXCSZ6AodGtKrYQ== - -nanoid@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557" - integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA== + version "2.1.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" + integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== -nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== +nanoid@^3.3.1, nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== nanomatch@^1.2.9: version "1.2.13" @@ -11429,49 +10928,35 @@ nanomatch@^1.2.9: to-regex "^3.0.1" native-request@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.0.7.tgz#ff742dc555b4c8f2f1c14b548639ba174e573856" - integrity sha512-9nRjinI9bmz+S7dgNtf4A70+/vPhnd+2krGpy4SUlADuOuSa24IDkNaZ+R/QT1wQ6S8jBdi6wE7fLekFZNfUpQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.1.0.tgz#acdb30fe2eefa3e1bc8c54b3a6852e9c5c0d3cb0" + integrity sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw== natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== ncp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" - integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= - -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" + integrity sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA== -needle@^2.5.2: - version "2.9.1" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" - integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== +needle@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-3.2.0.tgz#07d240ebcabfd65c76c03afae7f6defe6469df44" + integrity sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ== dependencies: debug "^3.2.6" - iconv-lite "^0.4.4" + iconv-lite "^0.6.3" sax "^1.2.4" -negotiator@0.6.3: +negotiator@0.6.3, negotiator@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -negotiator@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: +neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -11486,11 +10971,6 @@ next-tick@1, next-tick@^1.1.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== -next-tick@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -11514,14 +10994,14 @@ no-case@^3.0.4: node-dir@^0.1.17: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" - integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU= + integrity sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg== dependencies: minimatch "^3.0.2" node-fetch@^2.6.1, node-fetch@^2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" @@ -11544,7 +11024,7 @@ node-gyp@^7.1.0: node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-libs-browser@^2.2.1: version "2.2.1" @@ -11575,44 +11055,10 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" - integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== - -node-releases@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" - integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== - -node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== nopt@^5.0.0: version "5.0.0" @@ -11621,6 +11067,13 @@ nopt@^5.0.0: dependencies: abbrev "1" +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -11644,7 +11097,7 @@ normalize-package-data@^3.0.0: normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== dependencies: remove-trailing-separator "^1.0.1" @@ -11656,7 +11109,7 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== normalize-url@^8.0.0: version "8.0.0" @@ -11670,11 +11123,6 @@ now-and-later@^2.0.0: dependencies: once "^1.3.2" -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== - npm-bundled@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" @@ -11703,14 +11151,6 @@ npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.2, npm-pack semver "^7.3.4" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" - integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-packlist@^2.1.4: version "2.2.2" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8" @@ -11746,7 +11186,7 @@ npm-registry-fetch@^11.0.0: npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== dependencies: path-key "^2.0.0" @@ -11757,7 +11197,7 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npmlog@^4.0.2, npmlog@^4.1.2: +npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -11778,21 +11218,21 @@ npmlog@^5.0.1: set-blocking "^2.0.0" nth-check@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== nw-builder@3.8.3: version "3.8.3" @@ -11829,10 +11269,10 @@ nw-vue-devtools-prebuilt@^0.0.10: download-crx "^1.1.0" unzip-crx-3 "^0.2.0" -nwsapi@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" - integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== +nwsapi@^2.2.4: + version "2.2.7" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" + integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== oauth-sign@~0.9.0: version "0.9.0" @@ -11842,38 +11282,28 @@ oauth-sign@~0.9.0: object-assign@4.X, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-assign@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I= + integrity sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ== object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== - -object-inspect@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== - -object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== +object-inspect@^1.12.3, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-is@^1.0.1: +object-is@^1.0.1, object-is@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== @@ -11881,7 +11311,7 @@ object-is@^1.0.1: call-bind "^1.0.2" define-properties "^1.1.3" -object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -11889,24 +11319,24 @@ object-keys@^1.0.12, object-keys@^1.1.1: object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== dependencies: isobject "^3.0.0" -object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" object-keys "^1.1.1" object.defaults@^1.0.0, object.defaults@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" - integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= + integrity sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA== dependencies: array-each "^1.0.1" array-slice "^1.0.0" @@ -11914,44 +11344,38 @@ object.defaults@^1.0.0, object.defaults@^1.1.0: isobject "^3.0.0" object.entries@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" - integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" + integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" "object.fromentries@^2.0.0 || ^1.0.0": - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" -object.getownpropertydescriptors@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" - integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.2: + version "2.1.7" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a" + integrity sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g== dependencies: + array.prototype.reduce "^1.0.6" call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" + safe-array-concat "^1.0.0" object.map@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" - integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= + integrity sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w== dependencies: for-own "^1.0.0" make-iterator "^1.0.0" @@ -11959,31 +11383,31 @@ object.map@^1.0.0: object.pick@^1.2.0, object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== dependencies: isobject "^3.0.1" object.reduce@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" - integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= + integrity sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw== dependencies: for-own "^1.0.0" make-iterator "^1.0.0" object.values@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" objectorarray@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/objectorarray/-/objectorarray-1.0.4.tgz#d69b2f0ff7dc2701903d308bb85882f4ddb49483" - integrity sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w== + version "1.0.5" + resolved "https://registry.yarnpkg.com/objectorarray/-/objectorarray-1.0.5.tgz#2c05248bbefabd8f43ad13b41085951aac5e68a5" + integrity sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg== on-finished@2.4.1: version "2.4.1" @@ -12000,14 +11424,14 @@ on-headers@~1.0.2: once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== dependencies: mimic-fn "^1.0.0" @@ -12027,9 +11451,9 @@ open@^7.0.3: is-wsl "^2.1.1" open@^8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" - integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: define-lazy-prop "^2.0.0" is-docker "^2.1.1" @@ -12040,72 +11464,52 @@ opencollective-postinstall@^2.0.2: resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" ordered-read-streams@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" - integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= + integrity sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw== dependencies: readable-stream "^2.0.1" os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== os-locale@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= + integrity sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g== dependencies: lcid "^1.0.0" -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== os@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/os/-/os-0.1.2.tgz#f29a50c62908516ba42652de42f7038600cadbc2" integrity sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ== -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - p-all@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-all/-/p-all-2.1.0.tgz#91419be56b7dee8fe4c5db875d55e0da084244a0" @@ -12135,16 +11539,9 @@ p-filter@^2.1.0: p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== - dependencies: - p-try "^2.0.0" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== -p-limit@^2.2.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -12211,16 +11608,16 @@ p-try@^2.0.0, p-try@^2.1.0: integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== package-json@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.0.tgz#2a22806f1ed7c786c8e6ff26cfe20003bf4c6850" - integrity sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg== + version "8.1.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" + integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== dependencies: got "^12.1.0" registry-auth-token "^5.0.1" registry-url "^6.0.0" semver "^7.3.7" -pacote@^11.1.11: +pacote@^11.3.5: version "11.3.5" resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.3.5.tgz#73cf1fc3772b533f575e39efa96c50be8c3dc9d2" integrity sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg== @@ -12288,7 +11685,7 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: parse-color@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619" - integrity sha1-e3SLlag/A/FqlPU15S1/PZRlhhk= + integrity sha512-fuDHYgFHJGbpGMgw9skY/bj3HL/Jrn4l/5rSspy00DoT4RyLnDcRvPxdZ+r6OFwIsgAuhDh4I09tAId4mI12bw== dependencies: color-convert "~0.5.0" @@ -12307,7 +11704,7 @@ parse-entities@^2.0.0: parse-filepath@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" - integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= + integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== dependencies: is-absolute "^1.0.0" map-cache "^0.2.0" @@ -12316,14 +11713,14 @@ parse-filepath@^1.0.1: parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== dependencies: error-ex "^1.2.0" parse-json@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" - integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" error-ex "^1.3.1" @@ -12338,14 +11735,14 @@ parse-node-version@^1.0.0, parse-node-version@^1.0.1: parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== parse5@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -parse5@^7.1.1: +parse5@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== @@ -12368,7 +11765,7 @@ pascal-case@^3.1.2: pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== path-browserify@0.0.1: version "0.0.1" @@ -12378,19 +11775,19 @@ path-browserify@0.0.1: path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" @@ -12400,12 +11797,12 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" @@ -12420,12 +11817,12 @@ path-parse@^1.0.7: path-root-regex@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" - integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= + integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== path-root@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" - integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= + integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== dependencies: path-root-regex "^0.1.0" @@ -12437,7 +11834,7 @@ path-to-regexp@0.1.7: path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== dependencies: graceful-fs "^4.1.2" pify "^2.0.0" @@ -12460,10 +11857,10 @@ pathe@^0.2.0: resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.2.0.tgz#30fd7bbe0a0d91f0e60bae621f5d19e9e225c339" integrity sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw== -pathe@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.0.0.tgz#135fc11464fc57c84ef93d5c5ed21247e24571df" - integrity sha512-nPdMG0Pd09HuSsr7QOKUXO2Jr9eqaDiZvDwdyIhNG5SHYujkQHYKDfGQkulBxvbDHz8oHLsTgKN86LSwYzSHAg== +pathe@^1.1.0, pathe@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" + integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== pathval@^1.1.1: version "1.1.1" @@ -12473,14 +11870,14 @@ pathval@^1.1.1: pause-stream@0.0.11: version "0.0.11" resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= + integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== dependencies: through "~2.3" pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -12491,12 +11888,12 @@ pbkdf2@^3.0.3: pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== picocolors@^0.2.1: version "0.2.1" @@ -12508,22 +11905,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.0.5: - version "2.0.7" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" - integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== - -picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -picomatch@^2.3.0, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.0, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -12531,12 +11913,12 @@ picomatch@^2.3.0, picomatch@^2.3.1: pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pify@^4.0.1: version "4.0.1" @@ -12551,19 +11933,19 @@ pify@^5.0.0: pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pirates@^4.0.1, pirates@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== pkg-dir@^3.0.0: version "3.0.0" @@ -12572,7 +11954,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -12586,14 +11968,14 @@ pkg-dir@^5.0.0: dependencies: find-up "^5.0.0" -pkg-types@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.1.tgz#25234407f9dc63409af45ced9407625ff446a761" - integrity sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g== +pkg-types@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" + integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== dependencies: jsonc-parser "^3.2.0" - mlly "^1.0.0" - pathe "^1.0.0" + mlly "^1.2.0" + pathe "^1.1.0" please-upgrade-node@^3.2.0: version "3.2.0" @@ -12602,19 +11984,12 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" -plist@^3.0.1: - version "3.0.5" - resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.5.tgz#2cbeb52d10e3cdccccf0c11a63a85d830970a987" - integrity sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA== - dependencies: - base64-js "^1.5.1" - xmlbuilder "^9.0.7" - -plist@^3.0.5: - version "3.0.6" - resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.6.tgz#7cfb68a856a7834bca6dbfe3218eb9c7740145d3" - integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA== +plist@^3.0.1, plist@^3.0.5: + version "3.1.0" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" + integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== dependencies: + "@xmldom/xmldom" "^0.8.8" base64-js "^1.5.1" xmlbuilder "^15.1.1" @@ -12628,6 +12003,13 @@ plugin-error@^1.0.0, plugin-error@^1.0.1: arr-union "^3.1.0" extend-shallow "^3.0.2" +plugin-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-2.0.1.tgz#f2ac92bac8c85e3e23492d76d0c3ca12f30eb00b" + integrity sha512-zMakqvIDyY40xHOvzXka0kUvf40nYIuwRE8dWhti2WtjQZ31xAgBZBhxsK7vK3QbRXS1Xms/LO7B5cuAsfB2Gg== + dependencies: + ansi-colors "^1.0.1" + pnp-webpack-plugin@1.6.4: version "1.6.4" resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" @@ -12645,7 +12027,7 @@ polished@^4.2.2: posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== postcss-flexbugs-fixes@^4.2.1: version "4.2.1" @@ -12675,7 +12057,7 @@ postcss-modules-extract-imports@^2.0.0: postcss-modules-local-by-default@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= + integrity sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA== dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" @@ -12693,7 +12075,7 @@ postcss-modules-local-by-default@^3.0.2: postcss-modules-scope@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= + integrity sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw== dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" @@ -12709,7 +12091,7 @@ postcss-modules-scope@^2.2.0: postcss-modules-sync@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-sync/-/postcss-modules-sync-1.0.0.tgz#619a719cf78dd16a4834135140b324cf77334be1" - integrity sha1-YZpxnPeN0WpINBNRQLMkz3czS+E= + integrity sha512-kIDk2NYmxHshqUbjtFf1WdBij08IsvRdgDT0nOGWhvwkr8/z1piLSzxVrPt56J4DU6ON986h2H+5xcBnFhT8UQ== dependencies: generic-names "^1.0.2" icss-replace-symbols "^1.0.2" @@ -12726,24 +12108,14 @@ postcss-modules-values@^3.0.0: icss-utils "^4.0.0" postcss "^7.0.6" -postcss-selector-parser@^6.0.0: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-selector-parser@^6.0.2: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - util-deprecate "^1.0.2" - postcss-value-parser@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" @@ -12776,12 +12148,12 @@ postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0 picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.1.10, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.20: - version "8.4.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" - integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== +postcss@^8.1.10, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.27: + version "8.4.29" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" + integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== dependencies: - nanoid "^3.3.4" + nanoid "^3.3.6" picocolors "^1.0.0" source-map-js "^1.0.2" @@ -12790,30 +12162,20 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== "prettier@>=2.2.1 <=2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== -prettier@^1.18.2: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== - "prettier@^1.18.2 || ^2.0.0": - version "2.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" - integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== pretty-error@^2.1.1: version "2.1.2" @@ -12826,7 +12188,7 @@ pretty-error@^2.1.1: pretty-hrtime@^1.0.0, pretty-hrtime@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" - integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= + integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.1" @@ -12836,7 +12198,7 @@ process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== progress@^2.0.3: version "2.0.3" @@ -12846,7 +12208,7 @@ progress@^2.0.3: promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== promise-polyfill@^1.1.6: version "1.1.6" @@ -12862,25 +12224,25 @@ promise-retry@^2.0.1: retry "^0.12.0" promise.allsettled@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.5.tgz#2443f3d4b2aa8dfa560f6ac2aa6c4ea999d75f53" - integrity sha512-tVDqeZPoBC0SlzJHzWGZ2NKAguVq2oiYj7gbggbiTvH2itHohijTp7njOUA0aQ/nl+0lr/r6egmhoYu63UZ/pQ== + version "1.0.7" + resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.7.tgz#b9dd51e9cffe496243f5271515652c468865f2d8" + integrity sha512-hezvKvQQmsFkOdrZfYxUxkyxl8mgFQeT259Ajj9PXdbg9VzBCWrItOev72JyWxkCD5VSSqAeHmlN3tWx4DlmsA== dependencies: - array.prototype.map "^1.0.4" + array.prototype.map "^1.0.5" call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" iterate-value "^1.0.2" promise.prototype.finally@^3.1.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.3.tgz#d3186e58fcf4df1682a150f934ccc27b7893389c" - integrity sha512-EXRF3fC9/0gz4qkt/f5EP5iW4kj9oFpBICNpCNOb/52+8nlHIX07FPLbi/q4qYBQ1xZqivMzTpNQSnArVASolQ== + version "3.1.5" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.5.tgz#94ba0a29f925e6da0709faddf85163cd8ed892c2" + integrity sha512-4TQ3Dk8yyUZGyU+UXInKdkQ2b6xtiBXAIScGAtGnXVmJtG1uOrxRgbF1ggIu72uzoWFzUfT3nUKa1SuMm9NBdg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" promise@^7.0.1: version "7.3.1" @@ -12900,7 +12262,7 @@ prompts@^2.4.0: promzard@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" - integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= + integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw== dependencies: read "1" @@ -12923,7 +12285,7 @@ property-information@^5.0.0, property-information@^5.3.0: proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== proxy-addr@~2.0.7: version "2.0.7" @@ -12936,7 +12298,7 @@ proxy-addr@~2.0.7: proxyquire@^1.4.0: version "1.8.0" resolved "https://registry.yarnpkg.com/proxyquire/-/proxyquire-1.8.0.tgz#02d514a5bed986f04cbb2093af16741535f79edc" - integrity sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw= + integrity sha512-mZZq4F50qaBkngvlf9paNfaSb5gtJ0mFPnBjda4NxCpXpMAaVfSLguRr9y2KXF6koOSBf4AanD2inuEQw3aCcA== dependencies: fill-keys "^1.0.2" module-not-found-error "^1.0.0" @@ -12945,19 +12307,14 @@ proxyquire@^1.4.0: prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -psl@^1.1.33: +psl@^1.1.28, psl@^1.1.33: version "1.9.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== @@ -12974,15 +12331,6 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" -pug-attrs@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-2.0.4.tgz#b2f44c439e4eb4ad5d4ef25cac20d18ad28cc336" - integrity sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ== - dependencies: - constantinople "^3.0.1" - js-stringify "^1.0.1" - pug-runtime "^2.0.5" - pug-attrs@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-3.0.0.tgz#b10451e0348165e31fad1cc23ebddd9dc7347c41" @@ -12992,20 +12340,6 @@ pug-attrs@^3.0.0: js-stringify "^1.0.2" pug-runtime "^3.0.0" -pug-code-gen@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-2.0.3.tgz#122eb9ada9b5bf601705fe15aaa0a7d26bc134ab" - integrity sha512-r9sezXdDuZJfW9J91TN/2LFbiqDhmltTFmGpHTsGdrNGp3p4SxAjjXEfnuK2e4ywYsRIVP0NeLbSAMHUcaX1EA== - dependencies: - constantinople "^3.1.2" - doctypes "^1.1.0" - js-stringify "^1.0.1" - pug-attrs "^2.0.4" - pug-error "^1.3.3" - pug-runtime "^2.0.5" - void-elements "^2.0.1" - with "^5.0.0" - pug-code-gen@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-3.0.2.tgz#ad190f4943133bf186b60b80de483100e132e2ce" @@ -13020,29 +12354,11 @@ pug-code-gen@^3.0.2: void-elements "^3.1.0" with "^7.0.0" -pug-error@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-1.3.3.tgz#f342fb008752d58034c185de03602dd9ffe15fa6" - integrity sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ== - pug-error@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-2.0.0.tgz#5c62173cb09c34de2a2ce04f17b8adfec74d8ca5" integrity sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ== -pug-filters@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-3.1.1.tgz#ab2cc82db9eeccf578bda89130e252a0db026aa7" - integrity sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg== - dependencies: - clean-css "^4.1.11" - constantinople "^3.0.1" - jstransformer "1.0.0" - pug-error "^1.3.3" - pug-walk "^1.1.8" - resolve "^1.1.6" - uglify-js "^2.6.1" - pug-filters@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-4.0.0.tgz#d3e49af5ba8472e9b7a66d980e707ce9d2cc9b5e" @@ -13054,15 +12370,6 @@ pug-filters@^4.0.0: pug-walk "^2.0.0" resolve "^1.15.1" -pug-lexer@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-4.1.0.tgz#531cde48c7c0b1fcbbc2b85485c8665e31489cfd" - integrity sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA== - dependencies: - character-parser "^2.1.1" - is-expression "^3.0.0" - pug-error "^1.3.3" - pug-lexer@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-5.0.1.tgz#ae44628c5bef9b190b665683b288ca9024b8b0d5" @@ -13072,14 +12379,6 @@ pug-lexer@^5.0.1: is-expression "^4.0.0" pug-error "^2.0.0" -pug-linker@^3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-3.0.6.tgz#f5bf218b0efd65ce6670f7afc51658d0f82989fb" - integrity sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg== - dependencies: - pug-error "^1.3.3" - pug-walk "^1.1.8" - pug-linker@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-4.0.0.tgz#12cbc0594fc5a3e06b9fc59e6f93c146962a7708" @@ -13088,14 +12387,6 @@ pug-linker@^4.0.0: pug-error "^2.0.0" pug-walk "^2.0.0" -pug-load@^2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-2.0.12.tgz#d38c85eb85f6e2f704dea14dcca94144d35d3e7b" - integrity sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg== - dependencies: - object-assign "^4.1.0" - pug-walk "^1.1.8" - pug-load@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-3.0.0.tgz#9fd9cda52202b08adb11d25681fb9f34bd41b662" @@ -13104,14 +12395,6 @@ pug-load@^3.0.0: object-assign "^4.1.1" pug-walk "^2.0.0" -pug-parser@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-5.0.1.tgz#03e7ada48b6840bd3822f867d7d90f842d0ffdc9" - integrity sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA== - dependencies: - pug-error "^1.3.3" - token-stream "0.0.1" - pug-parser@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-6.0.0.tgz#a8fdc035863a95b2c1dc5ebf4ecf80b4e76a1260" @@ -13120,23 +12403,11 @@ pug-parser@^6.0.0: pug-error "^2.0.0" token-stream "1.0.0" -pug-runtime@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-2.0.5.tgz#6da7976c36bf22f68e733c359240d8ae7a32953a" - integrity sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw== - pug-runtime@^3.0.0, pug-runtime@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-3.0.1.tgz#f636976204723f35a8c5f6fad6acda2a191b83d7" integrity sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg== -pug-strip-comments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz#cc1b6de1f6e8f5931cf02ec66cdffd3f50eaf8a8" - integrity sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw== - dependencies: - pug-error "^1.3.3" - pug-strip-comments@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz#f94b07fd6b495523330f490a7f554b4ff876303e" @@ -13144,31 +12415,12 @@ pug-strip-comments@^2.0.0: dependencies: pug-error "^2.0.0" -pug-walk@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-1.1.8.tgz#b408f67f27912f8c21da2f45b7230c4bd2a5ea7a" - integrity sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA== - pug-walk@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-2.0.0.tgz#417aabc29232bb4499b5b5069a2b2d2a24d5f5fe" integrity sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ== -pug@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pug/-/pug-2.0.4.tgz#ee7682ec0a60494b38d48a88f05f3b0ac931377d" - integrity sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw== - dependencies: - pug-code-gen "^2.0.2" - pug-filters "^3.1.1" - pug-lexer "^4.1.0" - pug-linker "^3.0.6" - pug-load "^2.0.12" - pug-parser "^5.0.1" - pug-runtime "^2.0.5" - pug-strip-comments "^1.0.4" - -pug@^3.0.2: +pug@^3.0.1, pug@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/pug/-/pug-3.0.2.tgz#f35c7107343454e43bc27ae0ff76c731b78ea535" integrity sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw== @@ -13215,20 +12467,15 @@ pumpify@^1.3.3, pumpify@^1.3.5: inherits "^2.0.3" pump "^2.0.0" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: +punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== pupa@^3.1.0: version "3.1.0" @@ -13240,15 +12487,22 @@ pupa@^3.1.0: q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== -qs@6.11.0, qs@^6.10.0: +qs@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" +qs@^6.10.0, qs@^6.11.0: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + qs@~6.5.2: version "6.5.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" @@ -13257,35 +12511,40 @@ qs@~6.5.2: querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== -querystring@0.2.0, querystring@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + quick-lru@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -ramda@^0.21.0: - version "0.21.0" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" - integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU= +ramda@^0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.28.0.tgz#acd785690100337e8b063cab3470019be427cc97" + integrity sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA== random-path@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/random-path/-/random-path-0.1.1.tgz#f8f4d36f75a134ca15fd39c7d7505fbf163b634c" - integrity sha1-+PTTb3WhNMoV/TnH11BfvxY7Y0w= + version "0.1.2" + resolved "https://registry.yarnpkg.com/random-path/-/random-path-0.1.2.tgz#78b7f1570e2a09f66a4e2e0113a98ed588e85da9" + integrity sha512-4jY0yoEaQ5v9StCl5kZbNIQlg1QheIDBrdkDn53EynpPb9FgO6//p3X/tgMnrC45XN6QZCzU1Xz/+pSSsJBpRw== dependencies: - base32-encode "^0.1.0" - murmur-32 "^0.1.0" + base32-encode "^0.1.0 || ^1.0.0" + murmur-32 "^0.1.0 || ^0.2.0" randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" @@ -13325,7 +12584,7 @@ raw-loader@^4.0.2: loader-utils "^2.0.0" schema-utils "^3.0.0" -rc@1.2.8, rc@^1.2.7: +rc@1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -13336,9 +12595,9 @@ rc@1.2.8, rc@^1.2.7: strip-json-comments "~2.0.1" rcedit@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-3.0.1.tgz#ae21b43e49c075f4d84df1929832a12c302f3c90" - integrity sha512-XM0Jv40/y4hVAqj/MO70o/IWs4uOsaSoo2mLyk3klFDW+SStLnCtzuQu+1OBTIMGlM8CvaK9ftlYCp6DJ+cMsw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-3.1.0.tgz#1563ec7a5663de639f94c5dc85429db1da364b3e" + integrity sha512-WRlRdY1qZbu1L11DklT07KuHfRk42l0NFFJdaExELEu4fEQ982bP5Z6OWGPj/wLLIuKRQDCxZJGAwoFsxhZhNA== dependencies: cross-spawn-windows-exe "^1.1.0" @@ -13404,7 +12663,7 @@ read-package-json@^4.1.1: read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== dependencies: find-up "^1.0.0" read-pkg "^1.0.0" @@ -13421,7 +12680,7 @@ read-pkg-up@^7.0.1: read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" @@ -13440,14 +12699,14 @@ read-pkg@^5.2.0: read@1, read@~1.0.1: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== dependencies: mute-stream "~0.0.4" "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -13458,9 +12717,9 @@ read@1, read@~1.0.1: util-deprecate "~1.0.1" "readable-stream@2 || 3", readable-stream@3, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -13469,19 +12728,19 @@ read@1, read@~1.0.1: readable-stream@~1.1.9: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "0.0.1" string_decoder "~0.10.x" -readdir-glob@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" - integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA== +readdir-glob@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" + integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== dependencies: - minimatch "^3.0.4" + minimatch "^5.1.0" readdirp@^2.2.1: version "2.2.1" @@ -13499,7 +12758,7 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -recast@0.20.5, recast@^0.20.4: +recast@^0.20.4: version "0.20.5" resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae" integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ== @@ -13509,10 +12768,21 @@ recast@0.20.5, recast@^0.20.4: source-map "~0.6.1" tslib "^2.0.1" +recast@^0.23.1: + version "0.23.4" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.23.4.tgz#ca1bac7bfd3011ea5a28dfecb5df678559fb1ddf" + integrity sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw== + dependencies: + assert "^2.0.0" + ast-types "^0.16.1" + esprima "~4.0.0" + source-map "~0.6.1" + tslib "^2.0.1" + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" @@ -13529,10 +12799,10 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== dependencies: regenerate "^1.4.2" @@ -13541,30 +12811,20 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.2: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== - -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - regenerator-runtime@^0.13.7: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-transform@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" - integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" @@ -13576,31 +12836,26 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + define-properties "^1.2.0" + functions-have-names "^1.2.3" -regexpu-core@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" - integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== dependencies: + "@babel/regjsgen" "^0.8.0" regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" registry-auth-token@^5.0.1: version "5.0.2" @@ -13616,22 +12871,17 @@ registry-url@^6.0.0: dependencies: rc "1.2.8" -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== - -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== remark-external-links@^8.0.0: version "8.0.0" @@ -13712,7 +12962,7 @@ remove-bom-buffer@^3.0.0: remove-bom-stream@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" - integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= + integrity sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA== dependencies: remove-bom-buffer "^3.0.0" safe-buffer "^5.1.0" @@ -13721,7 +12971,7 @@ remove-bom-stream@^1.2.0: remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== renderkid@^2.0.4: version "2.0.7" @@ -13735,14 +12985,14 @@ renderkid@^2.0.4: strip-ansi "^3.0.1" repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== -repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: +repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== repeating@^2.0.0: version "2.0.1" @@ -13754,12 +13004,12 @@ repeating@^2.0.0: replace-ext@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" - integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= + integrity sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ== replace-ext@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= + version "1.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" + integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== replace-ext@^2.0.0: version "2.0.0" @@ -13769,7 +13019,7 @@ replace-ext@^2.0.0: replace-homedir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" - integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= + integrity sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg== dependencies: homedir-polyfill "^1.0.1" is-absolute "^1.0.0" @@ -13813,17 +13063,17 @@ request@^2.88.2: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resolve-alpn@^1.2.0: version "1.2.1" @@ -13833,7 +13083,7 @@ resolve-alpn@^1.2.0: resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" @@ -13851,28 +13101,28 @@ resolve-from@^5.0.0: resolve-options@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" - integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= + integrity sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A== dependencies: value-or-function "^3.0.0" resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.19.0, resolve@^1.22.1, resolve@^1.3.2, resolve@^1.4.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + version "1.22.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" + integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" resolve@~1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== responselike@^3.0.0: version "3.0.0" @@ -13884,7 +13134,7 @@ responselike@^3.0.0: restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== dependencies: onetime "^2.0.0" signal-exit "^3.0.2" @@ -13897,21 +13147,14 @@ ret@~0.1.10: retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== -reusify@^1.0.0: +reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= - dependencies: - align-text "^0.1.1" - -rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -13941,9 +13184,20 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: inherits "^2.0.1" robust-predicates@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a" - integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g== + version "3.0.2" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" + integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== + +rollup-plugin-copy@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz#7ffa2a7a8303e143876fa64fb5eed9022d304eeb" + integrity sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA== + dependencies: + "@types/fs-extra" "^8.0.1" + colorette "^1.1.0" + fs-extra "^8.1.0" + globby "10.0.1" + is-plain-object "^3.0.0" rollup-plugin-vue@^5.*.*: version "5.1.9" @@ -13967,10 +13221,10 @@ rollup-pluginutils@^2.8.2: dependencies: estree-walker "^0.6.1" -rollup@^3.7.0, rollup@^3.9.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.10.0.tgz#6eb19196d8b3b375ca651cb78261faac48e24cd6" - integrity sha512-JmRYz44NjC1MjVF2VKxc0M1a97vn+cDxeqWmnwyAF4FvpjK8YFdHpaqvQB+3IxCvX05vJxKZkoMDU8TShhmJVA== +rollup@^3.27.1, rollup@^3.9.0: + version "3.29.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.0.tgz#1b40e64818afc979c7e5bef93de675829288986b" + integrity sha512-nszM8DINnx1vSS+TpbWKMkxem0CDWk3cSit/WWCBVs9/JZ1I/XLwOsiUglYuYReaeWWSsW9kge5zE5NZtf/a4w== optionalDependencies: fsevents "~2.3.2" @@ -13986,6 +13240,11 @@ rpm-builder@^1.2.1: lodash "^4.17.4" shortid "^2.1.3" +rrweb-cssom@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" + integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== + rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -13997,14 +13256,16 @@ run-async@^2.2.0: integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== dependencies: aproba "^1.1.1" @@ -14021,14 +13282,24 @@ rw@1: rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= + integrity sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg== dependencies: rx-lite "*" rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= + integrity sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA== + +safe-array-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" safe-buffer@5.1.1: version "5.1.1" @@ -14040,15 +13311,24 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== dependencies: ret "~0.1.10" @@ -14073,16 +13353,18 @@ sane@^4.0.3: walker "~1.0.5" sass@^1.18.0: - version "1.26.11" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.26.11.tgz#0f22cc4ab2ba27dad1d4ca30837beb350b709847" - integrity sha512-W1l/+vjGjIamsJ6OnTe0K37U2DBO/dgsv2Z4c89XQ8ZOO6l/VwkqwLSqoYzJeJs6CLuGSTRWc91GbQFL3lvrvw== + version "1.66.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.66.1.tgz#04b51c4671e4650aa393740e66a4e58b44d055b1" + integrity sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA== dependencies: - chokidar ">=2.0.0 <4.0.0" + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" sax@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.1.4.tgz#74b6d33c9ae1e001510f179a91168588f1aedaa9" - integrity sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk= + integrity sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg== sax@^1.2.4, sax@~1.2.4: version "1.2.4" @@ -14131,10 +13413,10 @@ schema-utils@^2.6.5, schema-utils@^2.7.0: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" ajv "^6.12.5" @@ -14148,7 +13430,7 @@ select2@^4.0.13: semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== semver-diff@^4.0.0: version "4.0.0" @@ -14160,7 +13442,7 @@ semver-diff@^4.0.0: semver-greatest-satisfied-range@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" - integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els= + integrity sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ== dependencies: sver-compat "^1.5.0" @@ -14171,27 +13453,22 @@ semver-min@^0.7.2: dependencies: "@types/semver" "^7.3.4" -semver-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" - integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== +semver-regex@^3.1.2: + version "3.1.4" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.4.tgz#13053c0d4aa11d070a2f2872b6b1e3ae1e1971b4" + integrity sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA== -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: +semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -14231,17 +13508,17 @@ serialize-javascript@^5.0.1: dependencies: randombytes "^2.1.0" -serialize-javascript@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== dependencies: randombytes "^2.1.0" serve-favicon@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0" - integrity sha1-k10kDN/g9YBTB/3+ln2IlCosvPA= + integrity sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA== dependencies: etag "~1.8.1" fresh "0.5.2" @@ -14262,7 +13539,7 @@ serve-static@1.15.0: set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" @@ -14302,7 +13579,7 @@ shallow-clone@^3.0.0: shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== dependencies: shebang-regex "^1.0.0" @@ -14316,7 +13593,7 @@ shebang-command@^2.0.0: shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== shebang-regex@^3.0.0: version "3.0.0" @@ -14329,9 +13606,9 @@ short-unique-id@^4.4.4: integrity sha512-oLF1NCmtbiTWl2SqdXZQbo5KM1b7axdp0RgQLq8qCBBLoq+o3A5wmLrNM6bZIh54/a8BJ3l69kTXuxwZ+XCYuw== shortid@^2.1.3: - version "2.2.15" - resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.15.tgz#2b902eaa93a69b11120373cd42a1f1fe4437c122" - integrity sha512-5EaCy2mx2Jgc/Fdn9uuDuNIIfWBpzY4XIlhoqtXF6qsf+/+SGZ+FxDdX/ZsMZiWupIWNqAEmiNY4RC+LSmCeOw== + version "2.2.16" + resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608" + integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g== dependencies: nanoid "^2.1.0" @@ -14349,25 +13626,15 @@ siginfo@^2.0.0: resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== -sigmund@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -signal-exit@^3.0.3: +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-git@^3.16.0: - version "3.16.0" - resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.16.0.tgz#421773e24680f5716999cc4a1d60127b4b6a9dec" - integrity sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw== + version "3.19.1" + resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.19.1.tgz#ff9c021961a3d876a1b115b1893bed9a28855d30" + integrity sha512-Ck+rcjVaE1HotraRAS8u/+xgTvToTuoMkT9/l9lvuP5jftwnYUp6DwuJzsKErHgfyRk8IB8pqGHWEbM3tLgV1w== dependencies: "@kwsites/file-exists" "^1.1.1" "@kwsites/promise-deferred" "^1.1.1" @@ -14403,7 +13670,7 @@ slash@^4.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== -smart-buffer@^4.1.0: +smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== @@ -14438,45 +13705,34 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -socks-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" - integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== +socks-proxy-agent@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" + integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== dependencies: agent-base "^6.0.2" - debug "4" - socks "^2.3.3" + debug "^4.3.3" + socks "^2.6.2" -socks@^2.3.3: - version "2.6.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e" - integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA== +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== dependencies: - ip "^1.1.5" - smart-buffer "^4.1.0" + ip "^2.0.0" + smart-buffer "^4.2.0" source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -source-map-js@^1.0.2: +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-resolve@^0.5.2: +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== @@ -14504,26 +13760,31 @@ source-map-support@^0.5.16, source-map-support@^0.5.21, source-map-support@~0.5. source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== source-map@0.6.*, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@0.7.3, source-map@^0.7.3: +source-map@0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.6, source-map@~0.5.1: +source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -sourcemap-codec@^1.4.4: +sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== @@ -14539,30 +13800,30 @@ sparkles@^1.0.0: integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + version "3.0.13" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" + integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -14574,19 +13835,19 @@ split-string@^3.0.1, split-string@^3.0.2: split@0.3: version "0.3.3" resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= + integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== dependencies: through "2" sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -14620,7 +13881,7 @@ stable@^0.1.8: stack-trace@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== stackback@0.0.2: version "0.0.2" @@ -14635,7 +13896,7 @@ state-toggle@^1.0.0: static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== dependencies: define-property "^0.2.5" object-copy "^0.1.0" @@ -14645,10 +13906,22 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +std-env@^3.3.1: + version "3.4.3" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.4.3.tgz#326f11db518db751c83fd58574f449b7c3060910" + integrity sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + store2@^2.12.0: - version "2.13.2" - resolved "https://registry.yarnpkg.com/store2/-/store2-2.13.2.tgz#01ad8802ca5b445b9c316b55e72645c13a3cd7e3" - integrity sha512-CMtO2Uneg3SAz/d6fZ/6qbqqQHi2ynq6/KzMD/26gTkiEShCcpqFfTHgOxsE0egAq6SX3FmN4CeSqn8BzXQkJg== + version "2.14.2" + resolved "https://registry.yarnpkg.com/store2/-/store2-2.14.2.tgz#56138d200f9fe5f582ad63bc2704dbc0e4a45068" + integrity sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w== stream-browserify@^2.0.1: version "2.0.2" @@ -14661,12 +13934,12 @@ stream-browserify@^2.0.1: stream-buffers@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" - integrity sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ= + integrity sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg== stream-combiner@~0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= + integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== dependencies: duplexer "~0.1.1" @@ -14695,40 +13968,32 @@ stream-http@^2.7.2: xtend "^4.0.0" stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== stream-to-string@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/stream-to-string/-/stream-to-string-1.2.0.tgz#3ca506a097ecbf78b0e0aee0b6fa5c4565412a15" - integrity sha512-8drZlFIKBHSMdX9GCWv8V9AAWnQcTqw0iAI6/GC7UJ0H0SwKeFKjOoZfGY1tOU00GGU7FYZQoJ/ZCUEoXhD7yQ== + version "1.2.1" + resolved "https://registry.yarnpkg.com/stream-to-string/-/stream-to-string-1.2.1.tgz#15cb325d88b33cc62accb032c7093f85eb785db2" + integrity sha512-WsvTDNF8UYs369Yko3pcdTducQtYpzEZeOV7cTuReyFvOoA9S/DLJ6sYK+xPafSPHhUMpaxiljKYnT6JSFztIA== dependencies: promise-polyfill "^1.1.6" string-hash@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= + integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -14737,14 +14002,13 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== +string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" @@ -14756,68 +14020,63 @@ string-width@^5.0.1, string-width@^5.1.2: strip-ansi "^7.0.1" "string.prototype.matchall@^4.0.0 || ^3.0.1": - version "4.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" - integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== + version "4.0.9" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.9.tgz#148779de0f75d36b13b15885fec5cadde994520d" + integrity sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.1" + internal-slot "^1.0.5" + regexp.prototype.flags "^1.5.0" side-channel "^1.0.4" string.prototype.padend@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz#997a6de12c92c7cb34dc8a201a6c53d9bd88a5f1" - integrity sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg== + version "3.1.5" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz#311ef3a4e3c557dd999cdf88fbdde223f2ac0f95" + integrity sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" string.prototype.padstart@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.1.3.tgz#4551d0117d9501692ec6000b15056ac3f816cfa5" - integrity sha512-NZydyOMtYxpTjGqp0VN5PYUF/tsU15yDMZnUdj16qRUIUiMJkHHSDElYyQFrMu+/WloTpA7MQSiADhBicDfaoA== + version "3.1.5" + resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.1.5.tgz#ce435e145e4d68b701d1db51cb546ba100177d98" + integrity sha512-R57IsE3JIfModQWrVXYZ8ZHWMBNDpIoniDwhYCR1nx+iHwDkjjk26a8xM9BYgf7SAXJO7sdNPng5J+0ccr5LFQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string.prototype.trim@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimleft@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" - integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimright@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" - integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== +string.prototype.trimend@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +string.prototype.trimstart@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" @@ -14829,7 +14088,7 @@ string_decoder@^1.0.0, string_decoder@^1.1.1: string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== string_decoder@~1.1.1: version "1.1.1" @@ -14846,32 +14105,25 @@ stringify-package@^1.0.1: strip-ansi@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" - integrity sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA= + integrity sha512-DerhZL7j6i6/nEnVG0qViKXI0OKouvvpsAiaj7c+LfqZZZxdwZtv8+UiA/w4VUJpT8UzX0pR1dcHOii1GbmruQ== dependencies: ansi-regex "^0.2.1" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-ansi@^6.0.1: +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -14879,21 +14131,21 @@ strip-ansi@^6.0.1: ansi-regex "^5.0.1" strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" strip-bom-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" - integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== dependencies: is-utf8 "^0.2.0" @@ -14905,7 +14157,7 @@ strip-bom@^4.0.0: strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== strip-final-newline@^2.0.0: version "2.0.0" @@ -14919,7 +14171,7 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -14927,14 +14179,14 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== strip-literal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.0.0.tgz#0a484ed5a978cd9d2becf3cf8f4f2cb5ab0e1e74" - integrity sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ== + version "1.3.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" + integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== dependencies: - acorn "^8.8.1" + acorn "^8.10.0" style-loader@^1.3.0: version "1.3.0" @@ -14968,17 +14220,17 @@ stylus@^0.54.5: supports-color@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" - integrity sha1-2S3iaU6z9nMjlz1649i1W0wiGQo= + integrity sha512-tdCZ28MnM7k7cJDJc7Eq80A9CsRFAAOZUy41npOZCs++qSjfIy7o5Rh46CBk+Dk5FbKJ33X3Tqg4YrV07N5RaA== supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== supports-color@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== dependencies: has-flag "^1.0.0" @@ -14989,20 +14241,13 @@ supports-color@^5.3.0, supports-color@^5.4.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - supports-color@^8.0.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" @@ -15018,7 +14263,7 @@ supports-preserve-symlinks-flag@^1.0.0: sver-compat@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" - integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= + integrity sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg== dependencies: es6-iterator "^2.0.1" es6-symbol "^3.1.1" @@ -15044,9 +14289,9 @@ symbol.prototype.description@^1.0.0: object.getownpropertydescriptors "^2.1.2" synchronous-promise@^2.0.15: - version "2.0.15" - resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.15.tgz#07ca1822b9de0001f5ff73595f3d08c4f720eb8e" - integrity sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg== + version "2.0.17" + resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.17.tgz#38901319632f946c982152586f2caf8ddc25c032" + integrity sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g== tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" @@ -15102,39 +14347,14 @@ tar-stream@^2.1.4, tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^4: - version "4.4.19" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" - integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== - dependencies: - chownr "^1.1.4" - fs-minipass "^1.2.7" - minipass "^2.9.0" - minizlib "^1.3.3" - mkdirp "^0.5.5" - safe-buffer "^5.2.1" - yallist "^3.1.1" - -tar@^6.0.2, tar@^6.1.0: - version "6.1.8" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.8.tgz#4fc50cfe56511c538ce15b71e05eebe66530cbd4" - integrity sha512-sb9b0cp855NbkMJcskdSYA7b11Q8JsX4qe4pyUAfHp+Y6jBjJeek2ZVlwEfWayshEIwlIzXx0Fain3QG9JPm2A== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -tar@^6.1.11: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== +tar@^6.0.2, tar@^6.1.0, tar@^6.1.11: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^3.0.0" + minipass "^5.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" @@ -15142,7 +14362,7 @@ tar@^6.1.11: targz@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/targz/-/targz-1.0.1.tgz#8f76a523694cdedfbb5d60a4076ff6eeecc5398f" - integrity sha1-j3alI2lM3t+7XWCkB2/27uzFOY8= + integrity sha512-6q4tP9U55mZnRuMTBqnqc3nwYQY3kv+QthCFZuMk+Tn1qYUnMPmL/JZ/mzgXINzFpSqfU+242IFmFU9VPvqaQw== dependencies: tar-fs "^1.8.1" @@ -15205,16 +14425,16 @@ terser-webpack-plugin@^4.2.3: terser "^5.3.4" webpack-sources "^1.4.3" -terser-webpack-plugin@^5.1.3: - version "5.3.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz#8033db876dd5875487213e87c627bca323e5ed90" - integrity sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ== +terser-webpack-plugin@^5.3.7: + version "5.3.9" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" + integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== dependencies: - "@jridgewell/trace-mapping" "^0.3.7" + "@jridgewell/trace-mapping" "^0.3.17" jest-worker "^27.4.5" schema-utils "^3.1.1" - serialize-javascript "^6.0.0" - terser "^5.7.2" + serialize-javascript "^6.0.1" + terser "^5.16.8" terser@^4.1.2, terser@^4.6.3: version "4.8.1" @@ -15225,13 +14445,13 @@ terser@^4.1.2, terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.3.4, terser@^5.7.2: - version "5.14.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.1.tgz#7c95eec36436cb11cf1902cc79ac564741d19eca" - integrity sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ== +terser@^5.16.8, terser@^5.3.4: + version "5.19.4" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.4.tgz#941426fa482bf9b40a0308ab2b3cd0cf7c775ebd" + integrity sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g== dependencies: - "@jridgewell/source-map" "^0.3.2" - acorn "^8.5.0" + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" source-map-support "~0.5.20" @@ -15247,7 +14467,7 @@ test-exclude@^6.0.0: text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== textextensions@^3.2.0: version "3.3.0" @@ -15283,10 +14503,11 @@ through2@^2.0.0, through2@^2.0.1, through2@^2.0.3, through2@~2.0.0: xtend "~4.0.1" through2@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" - integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + version "3.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" + integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== dependencies: + inherits "^2.0.4" readable-stream "2 || 3" through2@^4.0.0, through2@^4.0.2: @@ -15299,7 +14520,7 @@ through2@^4.0.0, through2@^4.0.2: through@2, through@^2.3.6, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== thunky@^1.0.2: version "1.1.0" @@ -15309,12 +14530,12 @@ thunky@^1.0.2: time-stamp@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" - integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= + integrity sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw== timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== timers-browserify@^2.0.4: version "2.0.12" @@ -15332,19 +14553,19 @@ timers-ext@^0.1.7: next-tick "1" tinybench@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.3.1.tgz#14f64e6b77d7ef0b1f6ab850c7a808c6760b414d" - integrity sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA== + version "2.5.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.0.tgz#4711c99bbf6f3e986f67eb722fed9cddb3a68ba5" + integrity sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA== tinypool@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.3.0.tgz#c405d8b743509fc28ea4ca358433190be654f819" - integrity sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ== + version "0.3.1" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.3.1.tgz#a99c2e446aba9be05d3e1cb756d6aed7af4723b6" + integrity sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ== tinyspy@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.2.tgz#6da0b3918bfd56170fb3cd3a2b5ef832ee1dff0d" - integrity sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q== + version "1.1.1" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.1.1.tgz#0cb91d5157892af38cb2d217f5c7e8507a5bf092" + integrity sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g== title-case@^2.1.0: version "2.1.1" @@ -15369,14 +14590,14 @@ tmpl@1.0.5: tn1150@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/tn1150/-/tn1150-0.1.0.tgz#673503d24d56b87de8b8c77fee3fc0853d59a18d" - integrity sha1-ZzUD0k1WuH3ouMd/7j/AhT1ZoY0= + integrity sha512-DbplOfQFkqG5IHcDyyrs/lkvSr3mPUVsFf/RbDppOshs22yTPnSJWEe6FkYd1txAwU/zcnR905ar2fi4kwF29w== dependencies: unorm "^1.4.1" to-absolute-glob@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" - integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= + integrity sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA== dependencies: is-absolute "^1.0.0" is-negated-glob "^1.0.0" @@ -15384,34 +14605,34 @@ to-absolute-glob@^2.0.0: to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== to-buffer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= +to-data-view@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/to-data-view/-/to-data-view-1.1.0.tgz#08d6492b0b8deb9b29bdf1f61c23eadfa8994d00" + integrity sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ== to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== dependencies: is-number "^3.0.0" repeat-string "^1.6.1" @@ -15436,7 +14657,7 @@ to-regex@^3.0.1, to-regex@^3.0.2: to-through@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" - integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= + integrity sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q== dependencies: through2 "^2.0.3" @@ -15445,20 +14666,15 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -token-stream@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a" - integrity sha1-zu78cXp2xDFvEm0LnbqlXX598Bo= - token-stream@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" - integrity sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ= + integrity sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg== tough-cookie@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" - integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== dependencies: psl "^1.1.33" punycode "^2.1.1" @@ -15473,17 +14689,17 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== +tr46@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-4.1.1.tgz#281a758dcc82aeb4fe38c7dfe4d11a395aac8469" + integrity sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw== dependencies: - punycode "^2.1.1" + punycode "^2.3.0" tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== traverse-chain@~0.1.0: version "0.1.0" @@ -15503,7 +14719,7 @@ trim-trailing-lines@^1.0.0: trim@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + integrity sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ== trough@^1.0.0: version "1.0.5" @@ -15516,9 +14732,9 @@ ts-dedent@^2.0.0: integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== ts-loader@^8.0.14: - version "8.3.0" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.3.0.tgz#83360496d6f8004fab35825279132c93412edf33" - integrity sha512-MgGly4I6cStsJy27ViE32UoqxPTN9Xly4anxxVyaIWR+9BGxboV4EyJBGfR3RePV7Ksjj3rHmPZJeIt+7o4Vag== + version "8.4.0" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.4.0.tgz#e845ea0f38d140bdc3d7d60293ca18d12ff2720f" + integrity sha512-6nFY3IZ2//mrPc+ImY3hNWx1vCHyEhl6V+wLmL4CZcm6g1CqX7UKrkc6y0i4FwcfOhxyMPCfaEvh20f4r9GNpw== dependencies: chalk "^4.1.0" enhanced-resolve "^4.0.0" @@ -15537,31 +14753,31 @@ ts-pnp@^1.1.6: integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== tslib@^1.10.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.1, tslib@^2.0.3, tslib@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -15570,13 +14786,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -15620,10 +14829,49 @@ type@^1.0.1: resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== -type@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f" - integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ== +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" typedarray-to-buffer@^3.1.5: version "3.1.5" @@ -15635,73 +14883,59 @@ typedarray-to-buffer@^3.1.5: typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -ufo@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.0.1.tgz#64ed43b530706bda2e4892f911f568cf4cf67d29" - integrity sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA== + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -uglify-js@^2.6.1: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" +ufo@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.0.tgz#c92f8ac209daff607c57bbd75029e190930a0019" + integrity sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw== uglify-js@^3.1.4: - version "3.15.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.4.tgz#fa95c257e88f85614915b906204b9623d4fa340d" - integrity sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA== + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== -uglify-to-browserify@~1.0.0: +unbox-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= - -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== underscore@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.2.1.tgz#fc5c6b0765673d92a2d4ac8b4dc0aa88702e2bd4" - integrity sha1-/FxrB2VnPZKi1KyLTcCqiHAuK9Q= + integrity sha512-HRhh6FYh5I5/zTt7L9MnHRA/nlSFPiwymMCXEremmzT7tHR+8CNP0FXHPaUpafAPwvAlNrvZiH91kQwoo/CqUA== underscore@^1.9.2: - version "1.13.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" - integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== + version "1.13.6" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" + integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== undertaker-registry@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" - integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= + integrity sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw== undertaker@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.1.tgz#701662ff8ce358715324dfd492a4f036055dfe4b" - integrity sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.3.0.tgz#363a6e541f27954d5791d6fa3c1d321666f86d18" + integrity sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg== dependencies: arr-flatten "^1.0.1" arr-map "^2.0.0" bach "^1.0.0" collection-map "^1.0.0" es6-weak-map "^2.0.1" + fast-levenshtein "^1.0.0" last-run "^1.1.0" object.defaults "^1.0.0" object.reduce "^1.0.0" @@ -15733,15 +14967,15 @@ unicode-match-property-ecmascript@^2.0.0: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== unified@9.2.0: version "9.2.0" @@ -15765,11 +14999,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -15890,7 +15119,7 @@ unpipe@1.0.0, unpipe@~1.0.0: unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== dependencies: has-value "^0.3.1" isobject "^3.0.0" @@ -15914,25 +15143,17 @@ unzip-crx-3@^0.2.0: unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= + integrity sha512-N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw== upath@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824" - integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -update-browserslist-db@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18" - integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg== +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -15977,7 +15198,7 @@ urijs@^1.18.1: urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== url-loader@^4.1.1: version "4.1.1" @@ -15991,7 +15212,7 @@ url-loader@^4.1.1: url-parse-lax@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + integrity sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA== dependencies: prepend-http "^1.0.1" @@ -16004,12 +15225,12 @@ url-parse@^1.5.3: requires-port "^1.0.0" url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + version "0.11.1" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.1.tgz#26f90f615427eca1b9f4d6a28288c147e2302a32" + integrity sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA== dependencies: - punycode "1.3.2" - querystring "0.2.0" + punycode "^1.4.1" + qs "^6.11.0" use@^3.1.0: version "3.1.1" @@ -16029,12 +15250,12 @@ util.promisify@1.0.0: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= +util@^0.10.4: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== dependencies: - inherits "2.0.1" + inherits "2.0.3" util@^0.11.0: version "0.11.1" @@ -16043,10 +15264,21 @@ util@^0.11.0: dependencies: inherits "2.0.3" +util@^0.12.5: + version "0.12.5" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== utils-merge@1.0.1: version "1.0.1" @@ -16056,17 +15288,17 @@ utils-merge@1.0.1: uuid-browser@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/uuid-browser/-/uuid-browser-3.1.0.tgz#0f05a40aef74f9e5951e20efbf44b11871e56410" - integrity sha1-DwWkCu90+eWVHiDvv0SxGHHlZBA= + integrity sha512-dsNgbLaTrd6l3MMxTtouOCFw4CBFc/3a+GgYA2YyrJvyQ1u6q4pcu3ktLoUZ/VN/Aw9WsauazbgsgdfVWgAKQg== uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -v8flags@^3.0.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.3.tgz#fc9dc23521ca20c5433f81cc4eb9b3033bb105d8" - integrity sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w== +v8flags@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" + integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== dependencies: homedir-polyfill "^1.0.1" @@ -16081,14 +15313,14 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: validate-npm-package-name@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== dependencies: builtins "^1.0.3" value-or-function@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" - integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= + integrity sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg== vary@~1.1.2: version "1.1.2" @@ -16098,7 +15330,7 @@ vary@~1.1.2: verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" @@ -16161,7 +15393,7 @@ vinyl-fs@^3.0.0: vinyl-source-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/vinyl-source-stream/-/vinyl-source-stream-2.0.0.tgz#f38a5afb9dd1e93b65d550469ac6182ac4f54b8e" - integrity sha1-84pa+53R6Ttl1VBGmsYYKsT1S44= + integrity sha512-Y5f1wRGajOfYukhv8biIGA7iZiY8UOIc3zJ6zcUNIbRG1BVuXzBsfSfe7MUJTttVkuy64k/pGQtJdd/aIt+hbw== dependencies: through2 "^2.0.3" vinyl "^2.1.0" @@ -16169,7 +15401,7 @@ vinyl-source-stream@^2.0.0: vinyl-sourcemap@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" - integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= + integrity sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA== dependencies: append-buffer "^1.0.2" convert-source-map "^1.5.0" @@ -16182,32 +15414,20 @@ vinyl-sourcemap@^1.1.0: vinyl-sourcemaps-apply@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" - integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU= + integrity sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw== dependencies: source-map "^0.5.1" vinyl@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" - integrity sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4= + integrity sha512-P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA== dependencies: clone "^1.0.0" clone-stats "^0.0.1" replace-ext "0.0.1" -vinyl@^2.0.0, vinyl@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" - integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - -vinyl@^2.2.1: +vinyl@^2.0.0, vinyl@^2.1.0, vinyl@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== @@ -16219,10 +15439,10 @@ vinyl@^2.2.1: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -vite-node@0.27.1: - version "0.27.1" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.27.1.tgz#945868e3f9e4685a9c5dd877bb3f627ef366f493" - integrity sha512-d6+ue/3NzsfndWaPbYh/bFkHbmAWfDXI4B874zRx+WREnG6CUHUbBC8lKaRYZjeR6gCPN5m1aVNNRXBYICA9XA== +vite-node@0.27.3: + version "0.27.3" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.27.3.tgz#56b823b7f45b17f6ee45cd37468e869a7915ff5a" + integrity sha512-eyJYOO64o5HIp8poc4bJX+ZNBwMZeI3f6/JdiUmJgW02Mt7LnoCtDMRVmLaY9S05SIsjGe339ZK4uo2wQ+bF9g== dependencies: cac "^6.7.14" debug "^4.3.4" @@ -16234,21 +15454,20 @@ vite-node@0.27.1: vite "^3.0.0 || ^4.0.0" "vite@^3.0.0 || ^4.0.0", vite@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.0.5.tgz#634f0bd1edf8bb8468ed42a1c3fd938c67d2f94b" - integrity sha512-7m87RC+caiAxG+8j3jObveRLqaWA/neAdCat6JAZwMkSWqFHOvg8MYe5fAQxVBRAuKAQ1S6XDh3CBQuLNbY33w== + version "4.4.9" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" + integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA== dependencies: - esbuild "^0.16.3" - postcss "^8.4.20" - resolve "^1.22.1" - rollup "^3.7.0" + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" optionalDependencies: fsevents "~2.3.2" vitest@^0.27.1: - version "0.27.1" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.27.1.tgz#62e61a70eb8fba60f0888f8e69c61622eb92203b" - integrity sha512-1sIpQ1DVFTEn7c1ici1XHcVfdU4nKiBmPtPAtGKJJJLuJjojTv/OHGgcf69P57alM4ty8V4NMv+7Yoi5Cxqx9g== + version "0.27.3" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.27.3.tgz#207529ca35943956e3141b270ac01dcc635a89c3" + integrity sha512-Ld3UVgRVhJUtqvQ3dW89GxiApFAgBsWJZBCWzK+gA3w2yG68csXlGZZ4WDJURf+8ecNfgrScga6xY+8YSOpiMg== dependencies: "@types/chai" "^4.3.4" "@types/chai-subset" "^1.3.3" @@ -16261,12 +15480,13 @@ vitest@^0.27.1: local-pkg "^0.4.2" picocolors "^1.0.0" source-map "^0.6.1" + std-env "^3.3.1" strip-literal "^1.0.0" tinybench "^2.3.1" tinypool "^0.3.0" tinyspy "^1.0.2" vite "^3.0.0 || ^4.0.0" - vite-node "0.27.1" + vite-node "0.27.3" why-is-node-running "^2.2.2" vm-browserify@^1.0.1: @@ -16274,32 +15494,27 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -void-elements@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= - void-elements@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" - integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= + integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== vue-docgen-api@^4.44.15: - version "4.47.0" - resolved "https://registry.yarnpkg.com/vue-docgen-api/-/vue-docgen-api-4.47.0.tgz#605a797886dbe1c941ea73af5f2ba23090722e81" - integrity sha512-xUsD8vDpcIZNVQM/Jh8/ZUw+sfwLSvpW5awi7kxDX9bGvTIIDh7mXEEqnOmndYXR6620lGNj23uY9bJTFhim6w== + version "4.74.0" + resolved "https://registry.yarnpkg.com/vue-docgen-api/-/vue-docgen-api-4.74.0.tgz#e0ac5dc6a027193fc96bc426f569622dba3b420c" + integrity sha512-NNYYt0cZzr1E5MeJX1sQEYlZ3QN2QIiZaxuBgqpnidICcLgtGxFtU9PDpsWKMNKIUgH++lWnNW+R1r7vP/WAAQ== dependencies: - "@babel/parser" "^7.13.12" - "@babel/types" "^7.13.12" + "@babel/parser" "^7.21.4" + "@babel/types" "^7.21.4" "@vue/compiler-dom" "^3.2.0" "@vue/compiler-sfc" "^3.2.0" - ast-types "0.14.2" - hash-sum "^1.0.2" - lru-cache "^4.1.5" + ast-types "^0.16.1" + hash-sum "^2.0.0" + lru-cache "^8.0.3" pug "^3.0.2" - recast "0.20.5" + recast "^0.23.1" ts-map "^1.0.3" - vue-inbrowser-compiler-utils "^4.44.23" + vue-inbrowser-compiler-independent-utils "^4.69.0" vue-docgen-loader@^1.5.0: version "1.5.1" @@ -16311,40 +15526,33 @@ vue-docgen-loader@^1.5.0: loader-utils "^1.2.3" querystring "^0.2.0" -vue-eslint-parser@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.3.0.tgz#894085839d99d81296fa081d19643733f23d7559" - integrity sha512-n5PJKZbyspD0+8LnaZgpEvNCrjQx1DyDHw8JdWwoxhhC+yRip4TAvSDpXGf9SWX6b0umeB5aR61gwUo6NVvFxw== +vue-eslint-parser@^7.10.0: + version "7.11.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz#214b5dea961007fcffb2ee65b8912307628d0daf" + integrity sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg== dependencies: debug "^4.1.1" - eslint-scope "^5.0.0" + eslint-scope "^5.1.1" eslint-visitor-keys "^1.1.0" espree "^6.2.1" - esquery "^1.0.1" - lodash "^4.17.15" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^6.3.0" vue-hot-reload-api@^2.3.0: version "2.3.4" resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== -vue-inbrowser-compiler-demi@^4.44.23: - version "4.44.23" - resolved "https://registry.yarnpkg.com/vue-inbrowser-compiler-demi/-/vue-inbrowser-compiler-demi-4.44.23.tgz#7410e160db0e0639aa0ba5c3af6a0c02606d4242" - integrity sha512-/gZxAana4VTJWACNTi4RL5Zs5bVDIUDJ9XlaibzmY3Nf32WK43tvmjrUe+f5uGYLysCHE9SFjFvRKaAhXnzXgA== - -vue-inbrowser-compiler-utils@^4.44.23: - version "4.44.23" - resolved "https://registry.yarnpkg.com/vue-inbrowser-compiler-utils/-/vue-inbrowser-compiler-utils-4.44.23.tgz#fcbe942ce87a846d1b9250561844085a6ead3e09" - integrity sha512-M2U6TPTU1QCiKFYUxgHy47xdZcKLPSbeTpeamHBtfIut1sjKOMtYmAOQ3IrX3W/v8A7j7jGadY4ieA1j3zQICw== - dependencies: - camelcase "^5.3.1" - vue-inbrowser-compiler-demi "^4.44.23" +vue-inbrowser-compiler-independent-utils@^4.69.0: + version "4.71.1" + resolved "https://registry.yarnpkg.com/vue-inbrowser-compiler-independent-utils/-/vue-inbrowser-compiler-independent-utils-4.71.1.tgz#dc6830b204f7cfdc30ffc4f31ba81b0c72c52136" + integrity sha512-K3wt3iVmNGaFEOUR4JIThQRWfqokxLfnPslD41FDZB2ajXp789+wCqJyGYlIFsvEQ2P61PInw6/ph5iiqg51gg== vue-loader@^15.9.8: - version "15.9.8" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.8.tgz#4b0f602afaf66a996be1e534fb9609dc4ab10e61" - integrity sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog== + version "15.10.2" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.10.2.tgz#6dccfda8661caa7f5415806a5e386fd3258d8112" + integrity sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw== dependencies: "@vue/component-compiler-utils" "^3.1.0" hash-sum "^1.0.2" @@ -16366,9 +15574,9 @@ vue-style-loader@^4.1.0: loader-utils "^1.0.2" vue-template-compiler@^2.7.10: - version "2.7.10" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.10.tgz#9e20f35b2fdccacacf732dd7dedb49bf65f4556b" - integrity sha512-QO+8R9YRq1Gudm8ZMdo/lImZLJVUIAM8c07Vp84ojdDAf8HmPJc7XB556PcXV218k2AkKznsRz6xB5uOjAC4EQ== + version "2.7.14" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz#4545b7dfb88090744c1577ae5ac3f964e61634b1" + integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ== dependencies: de-indent "^1.0.2" he "^1.2.0" @@ -16379,11 +15587,11 @@ vue-template-es2015-compiler@^1.9.0: integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== vue@^2.7.10: - version "2.7.10" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.7.10.tgz#ae516cc6c88e1c424754468844218fdd5e280f40" - integrity sha512-HmFC70qarSHPXcKtW8U8fgIkF6JGvjEmDiVInTkKZP0gIlEPhlVlcJJLkdGIDiNkIeA2zJPQTWJUI4iWe+AVfg== + version "2.7.14" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.7.14.tgz#3743dcd248fd3a34d421ae456b864a0246bafb17" + integrity sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ== dependencies: - "@vue/compiler-sfc" "2.7.10" + "@vue/compiler-sfc" "2.7.14" csstype "^3.1.0" w3c-xmlserializer@^4.0.0: @@ -16418,15 +15626,7 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.1" -watchpack@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25" - integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -watchpack@^2.3.1: +watchpack@^2.2.0, watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== @@ -16442,7 +15642,7 @@ web-namespaces@^1.0.0: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^7.0.0: version "7.0.0" @@ -16466,13 +15666,12 @@ webpack-filter-warnings-plugin@^1.2.1: integrity sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg== webpack-hot-middleware@^2.25.1: - version "2.25.1" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.1.tgz#581f59edf0781743f4ca4c200fd32c9266c6cf7c" - integrity sha512-Koh0KyU/RPYwel/khxbsDz9ibDivmUbrRuKSSQvW42KSDdO4w23WI3SkHpSUKHE76LrFnnM/L7JCrpBwu8AXYw== + version "2.25.4" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz#d8bc9e9cb664fc3105c8e83d2b9ed436bee4e193" + integrity sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w== dependencies: ansi-html-community "0.0.8" html-entities "^2.1.0" - querystring "^0.2.0" strip-ansi "^6.0.0" webpack-log@^2.0.0: @@ -16504,9 +15703,9 @@ webpack-virtual-modules@^0.2.2: debug "^3.0.0" webpack@4: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== + version "4.47.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.47.0.tgz#8b8a02152d7076aeb03b61b47dad2eeed9810ebc" + integrity sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -16533,21 +15732,21 @@ webpack@4: webpack-sources "^1.4.1" "webpack@>=4.0.0 <6.0.0": - version "5.73.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.73.0.tgz#bbd17738f8a53ee5760ea2f59dce7f3431d35d38" - integrity sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA== + version "5.88.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" + integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^0.0.51" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.4.1" - acorn-import-assertions "^1.7.6" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.9.3" - es-module-lexer "^0.9.0" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" @@ -16556,10 +15755,10 @@ webpack@4: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.1.0" + schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.3.1" + terser-webpack-plugin "^5.3.7" + watchpack "^2.4.0" webpack-sources "^3.2.3" whatwg-encoding@^2.0.0: @@ -16574,18 +15773,18 @@ whatwg-mimetype@^3.0.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== +whatwg-url@^12.0.0, whatwg-url@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-12.0.1.tgz#fd7bcc71192e7c3a2a97b9a8d6b094853ed8773c" + integrity sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ== dependencies: - tr46 "^3.0.0" + tr46 "^4.1.1" webidl-conversions "^7.0.0" whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -16604,12 +15803,23 @@ which-boxed-primitive@^1.0.2: which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + integrity sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ== which-pm-runs@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" - integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + version "1.1.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.1.0.tgz#35ccf7b1a0fce87bd8b92a478c9d045785d3bf35" + integrity sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA== + +which-typed-array@^1.1.10, which-typed-array@^1.1.11, which-typed-array@^1.1.2: + version "1.1.11" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" which@^1.2.14, which@^1.2.9: version "1.3.1" @@ -16633,14 +15843,7 @@ why-is-node-running@^2.2.2: siginfo "^2.0.0" stackback "0.0.2" -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -wide-align@^1.1.2: +wide-align@^1.1.0, wide-align@^1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== @@ -16661,11 +15864,6 @@ widest-line@^4.0.1: dependencies: string-width "^5.0.1" -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= - winresourcer@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/winresourcer/-/winresourcer-0.9.0.tgz#0afca30f3c6e7458058d28a0b673c9dda622b9b5" @@ -16680,14 +15878,6 @@ with-open-file@^0.1.6: p-try "^2.1.0" pify "^4.0.1" -with@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/with/-/with-5.1.1.tgz#fa4daa92daf32c4ea94ed453c81f04686b575dfe" - integrity sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4= - dependencies: - acorn "^3.1.0" - acorn-globals "^3.0.0" - with@^7.0.0: version "7.0.2" resolved "https://registry.yarnpkg.com/with/-/with-7.0.2.tgz#ccee3ad542d25538a7a7a80aad212b9828495bac" @@ -16698,20 +15888,10 @@ with@^7.0.0: assert-never "^1.2.1" babel-walk "3.0.0-canary-5" -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f" - integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA== - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= - wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== worker-farm@^1.7.0: version "1.7.0" @@ -16730,7 +15910,7 @@ worker-rpc@^0.1.0: wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -16756,7 +15936,7 @@ wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^2.3.0: version "2.4.3" @@ -16777,15 +15957,10 @@ write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@^8.11.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" - integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== - -ws@^8.2.3: - version "8.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" - integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== +ws@^8.13.0, ws@^8.2.3: + version "8.14.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.0.tgz#6c5792c5316dc9266ba8e780433fc45e6680aecd" + integrity sha512-WR0RJE9Ehsio6U4TuM+LmunEsjQ5ncHlw4sn9ihD6RoJKZrVyH9FWV3dmnwu8B2aNib1OvG2X6adUCyFpQyWcg== x-default-browser@^0.4.0: version "0.4.0" @@ -16809,11 +15984,6 @@ xmlbuilder@^15.1.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== -xmlbuilder@^9.0.7: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= - xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" @@ -16830,9 +16000,9 @@ y18n@^3.2.1: integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: version "5.0.8" @@ -16842,14 +16012,14 @@ y18n@^5.0.5: yaku@^0.16.6: version "0.16.7" resolved "https://registry.yarnpkg.com/yaku/-/yaku-0.16.7.tgz#1d195c78aa9b5bf8479c895b9504fd4f0847984e" - integrity sha1-HRlceKqbW/hHnIlblQT9TwhHmE4= + integrity sha512-Syu3IB3rZvKvYk7yTiyl1bo/jiEFaaStrgv1V2TIJTqYPStSMQVO8EQjg/z+DRzLq/4LIIharNT3iH1hylEIRw== yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: +yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -16859,27 +16029,17 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== - -yaml@^1.7.2: +yaml@^1.10.0, yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@>=5.0.0-security.0: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== - -yargs-parser@^21.1.1: +yargs-parser@>=5.0.0-security.0, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs-parser@^5.0.0: +yargs-parser@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.1.tgz#7ede329c1d8cdbbe209bd25cdb990e9b1ebbb394" integrity sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA== @@ -16901,9 +16061,9 @@ yargs@^17.5.1: yargs-parser "^21.1.1" yargs@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" - integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= + version "7.1.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.2.tgz#63a0a5d42143879fdbb30370741374e0641d55db" + integrity sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA== dependencies: camelcase "^3.0.0" cliui "^3.2.0" @@ -16917,17 +16077,7 @@ yargs@^7.1.0: string-width "^1.0.2" which-module "^1.0.0" y18n "^3.2.1" - yargs-parser "^5.0.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" + yargs-parser "^5.0.1" yarn@^1.22.19: version "1.22.19" @@ -16955,12 +16105,12 @@ yocto-queue@^0.1.0: integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== zip-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" - integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== + version "4.1.1" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.1.tgz#1337fe974dbaffd2fa9a1ba09662a66932bd7135" + integrity sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ== dependencies: - archiver-utils "^2.1.0" - compress-commons "^4.1.0" + archiver-utils "^3.0.4" + compress-commons "^4.1.2" readable-stream "^3.6.0" zwitch@^1.0.0: From bb76112c99fa77a9a2dd04d21e1d245e4c667b3d Mon Sep 17 00:00:00 2001 From: HThuren <99370924+HThuren@users.noreply.github.com> Date: Sun, 10 Sep 2023 00:42:01 +0200 Subject: [PATCH 169/393] GPS tab: New design for gps Status / Quality (#3566) * small fixes * Ajust Colours when translated * new design * new design * new design * new design * new design * new design * new design --- locales/en/messages.json | 4 ++-- src/css/main.less | 13 +++++++++++-- src/js/tabs/gps.js | 27 +++++++++++++-------------- src/js/tabs/setup.js | 2 +- 4 files changed, 27 insertions(+), 19 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 0e70dfe512..535c3c2b77 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -2805,7 +2805,7 @@ "message": "Sat ID" }, "gpsSignalStatusQly": { - "message": "Status / Quality" + "message": "Status     |  Quality" }, "gnssQualityNoSignal": { "message": "no signal" @@ -2829,7 +2829,7 @@ "message": "unused" }, "gnssUsedUsed": { - "message": "used" + "message": "USED " }, "gnssHealthyUnknown": { "message": "unknown" diff --git a/src/css/main.less b/src/css/main.less index e7f02b0d10..f0e1f4b0e1 100644 --- a/src/css/main.less +++ b/src/css/main.less @@ -1725,13 +1725,22 @@ dialog { } } .colorToggle { - background-color: #e60000; + background-color: #ff0000; padding: 2px 5px; border-radius: 3px; color: #fff; font-size: 10px; + &.low { + background-color: #808080; + } + &.notReady { + background-color: #ffcc3f; + } + &.locked { + background-color: #ff9500; + } &.ready { - background-color: #56ac1d; + background-color: #008000; } } .buildInfoBtn { diff --git a/src/js/tabs/gps.js b/src/js/tabs/gps.js index 7c3c893a44..67df120f82 100644 --- a/src/js/tabs/gps.js +++ b/src/js/tabs/gps.js @@ -192,7 +192,6 @@ gps.initialize = async function (callback) { const qualityArray = ['gnssQualityNoSignal', 'gnssQualitySearching', 'gnssQualityAcquired', 'gnssQualityUnusable', 'gnssQualityLocked', 'gnssQualityFullyLocked', 'gnssQualityFullyLocked', 'gnssQualityFullyLocked']; const usedArray = ['gnssUsedUnused', 'gnssUsedUsed']; - const healthyArray = ['gnssHealthyUnknown', 'gnssHealthyHealthy', 'gnssHealthyUnhealthy', 'gnssHealthyUnknown']; let alt = FC.GPS_DATA.alt; $('.GPS_info span.colorToggle').text(FC.GPS_DATA.fix ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse')); @@ -200,7 +199,7 @@ gps.initialize = async function (callback) { const gspUnitText = i18n.getMessage('gpsPositionUnit'); $('.GPS_info td.alt').text(`${alt} m`); - $('.GPS_info td.latLon a').prop('href', url).text(`${lat.toFixed(4)} / ${lon.toFixed(4)} ${gspUnitText}`); + $('.GPS_info td.latLon a').prop('href', url).text(`${lat.toFixed(6)} / ${lon.toFixed(6)} ${gspUnitText}`); $('.GPS_info td.heading').text(`${magHeadingDeg.toFixed(4)} / ${gpsHeading.toFixed(4)} ${gspUnitText}`); $('.GPS_info td.speed').text(`${FC.GPS_DATA.speed} cm/s`); $('.GPS_info td.sats').text(FC.GPS_DATA.numSat); @@ -266,28 +265,28 @@ gps.initialize = async function (callback) { let quality = i18n.getMessage(qualityArray[FC.GPS_DATA.quality[i] & 0x7]); let used = i18n.getMessage(usedArray[(FC.GPS_DATA.quality[i] & 0x8) >> 3]); - let healthy = i18n.getMessage(healthyArray[(FC.GPS_DATA.quality[i] & 0x30) >> 4]); + let usedColor = ''; // Add color to the text - if (quality.startsWith('fully locked')) { + // 2nd column: no signal = red, unusable = red, searching = red, locked = yellow and fully locked = green + if (quality.startsWith(i18n.getMessage('gnssQualityFullyLocked'))) { + usedColor = 'locked'; quality = `${quality}`; + } else if (quality.startsWith(i18n.getMessage('gnssQualityLocked'))) { + usedColor = 'notReady'; + quality = `${quality}`; } else { quality = `${quality}`; } - if (used.startsWith('used')) { - used = `${used}`; + // 1st column: unused = red, used = green + if (used.startsWith(i18n.getMessage('gnssUsedUsed'))) { + used = ` ${used} `; } else { - used = `${used}`; + used = `${used}`; } - if (healthy.startsWith('healthy')) { - healthy = `${healthy}`; - } else { - healthy = `${healthy}`; - } - - rowContent += `
    `; + rowContent += ``; } eSsTable.append(`${rowContent}`); } diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index 0bb8526caa..0bc83d9d65 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -435,7 +435,7 @@ setup.initialize = function (callback) { const lon = FC.GPS_DATA.lon / 10000000; const url = `https://maps.google.com/?q=${lat},${lon}`; const gpsUnitText = i18n.getMessage('gpsPositionUnit'); - $('.GPS_info td.latLon a').prop('href', url).text(`${lat.toFixed(4)} ${gpsUnitText} / ${lon.toFixed(4)} ${gpsUnitText}`); + $('.GPS_info td.latLon a').prop('href', url).text(`${lat.toFixed(4)} / ${lon.toFixed(4)} ${gpsUnitText}`); } function get_fast_data() { From 7ba447cba67e3b7926e84036bca88ab25f952d11 Mon Sep 17 00:00:00 2001 From: Emil Date: Sun, 10 Sep 2023 18:08:33 +0300 Subject: [PATCH 170/393] feat: Refactor vue components to use i18n (#3560) --- src/components/data-flash/DataFlash.vue | 8 +-- .../port-picker/FirmwareVirtualOption.vue | 44 +++++++------- .../port-picker/PortOverrideOption.vue | 5 +- src/components/port-picker/PortsInput.vue | 10 ++-- .../quad-status/BottomStatusIcons.vue | 12 ++-- src/components/sensor-status/SensorStatus.vue | 60 ++++++++----------- 6 files changed, 60 insertions(+), 79 deletions(-) diff --git a/src/components/data-flash/DataFlash.vue b/src/components/data-flash/DataFlash.vue index 411123feb7..9734ff9ad8 100644 --- a/src/components/data-flash/DataFlash.vue +++ b/src/components/data-flash/DataFlash.vue @@ -2,9 +2,9 @@
    - No dataflash
    chip found + {{ $t("sensorDataFlashNotFound") }}
    - - Dataflash: free + + {{ $t("sensorDataFlashFreeSpace") }} {{ freeSpace }}
    diff --git a/src/components/port-picker/FirmwareVirtualOption.vue b/src/components/port-picker/FirmwareVirtualOption.vue index ef0404b932..b3f4703bf0 100644 --- a/src/components/port-picker/FirmwareVirtualOption.vue +++ b/src/components/port-picker/FirmwareVirtualOption.vue @@ -1,33 +1,19 @@
    ${quality} | ${used} | ${healthy}${used} | ${quality}