From 9a9fa69ef1029ae09e474e03b3a0960b5371a4ec Mon Sep 17 00:00:00 2001 From: Joe Schneider Date: Thu, 8 Feb 2024 14:11:22 -0500 Subject: [PATCH] Squashed commit of the following: commit 2bc036d706e661305c8fbbdc4d73224e62949707 Author: Joe Schneider Date: Thu Feb 8 14:06:37 2024 -0500 Renamed Files I have renamed my custom remote files so they get pushed to GitHub. Modified remotecontrol.cpp to include the newly renamed custom remote file(s). commit 514b6e008ae4255e3488dcf121d9054433015677 Merge: 354e3975 20c7c3ac Author: Joe Schneider Date: Mon Jan 29 21:47:09 2024 -0500 Merge branch 'PlummersSoftwareLLC:main' into PersonalProjects commit 20c7c3acf03fe9d87deb02c82144545dbc05ef1e Merge: 83f67184 249d59a1 Author: Rutger van Bergen Date: Fri Jan 26 19:13:58 2024 +0100 Merge pull request #599 from rbergen/fix-596 Move Improv announcement from setup to loop commit 249d59a142b139604d47a8a7a36ad40b4b57d7ad Author: Rutger van Bergen Date: Thu Jan 25 09:49:56 2024 +0100 Move Improv announcement from setup to loop commit 83f67184f329f82ce36abad2b4406a38fa0b4369 Merge: cbc933c4 f7aac2c7 Author: Rutger van Bergen Date: Sat Jan 20 12:03:59 2024 +0100 Merge pull request #595 from PlummersSoftwareLLC/dependabot/npm_and_yarn/site/vite-4.5.2 Bump vite from 4.5.1 to 4.5.2 in /site commit f7aac2c7576b278fe6f017676611a90c2f1f6365 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat Jan 20 09:37:57 2024 +0000 Bump vite from 4.5.1 to 4.5.2 in /site Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.1 to 4.5.2. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.5.2/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.5.2/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] commit cbc933c4df9d1744728a0c02fc2ae2251f4a9981 Merge: ee26c344 665efaf2 Author: Rutger van Bergen Date: Tue Jan 16 08:58:48 2024 +0100 Merge pull request #590 from davepl/main Memory Stuff commit 665efaf2dfb92a5f1116a78aa960653c616dcbc5 Author: Rutger van Bergen Date: Mon Jan 15 20:08:45 2024 +0100 Clear trailing spaces commit 28c072b10d18d06d9e374fa36ff0d677e83ae219 Author: Rutger van Bergen Date: Mon Jan 15 20:06:49 2024 +0100 Set effect set version for M5DEMO commit 16d853f843efb53e070cb2380ca92939e9ec0456 Author: Dave Plummer Date: Sat Jan 13 10:41:39 2024 -0800 Fix RNG commit 7577c8f80120cc8742082d4799a152d87623974f Merge: 0f1d4325 ee26c344 Author: David W Plummer Date: Sat Jan 13 09:36:57 2024 -0800 Merge branch 'PlummersSoftwareLLC:main' into main commit ee26c34429cd132b6a11cedaa9a227b88b51cd2a Merge: 850aba4a dcb6a76a Author: Rutger van Bergen Date: Wed Jan 10 12:43:25 2024 +0100 Merge pull request #587 from rbergen/Reenable-Fanset-networking Re-enable Fanset networking, move TTGO in web installer commit 0f1d43259277e6a772e3bdcefe8c0b27f2ef008c Author: Dave Plummer Date: Tue Jan 9 19:13:50 2024 -0800 Memory work commit dcb6a76a62fe5ba5baa1a069828b9fdc6c0ed8a1 Author: Rutger van Bergen Date: Tue Jan 9 12:45:21 2024 +0100 Move TTGO project to its own device commit 3de99a1fbed76087b220e92ca3cb98d86b4b86b7 Author: Rutger van Bergen Date: Tue Jan 9 11:44:13 2024 +0100 Enable Fanset WiFi and webserver commit 94a5b25c4172b20436c347385c1e4657b2070ec5 Author: Dave Plummer Date: Wed Jan 3 18:22:05 2024 -0800 Fix Star effect commit a4519e91abaf29f888dc40a70fa4b6001a0dd363 Author: Dave Plummer Date: Wed Jan 3 18:07:31 2024 -0800 Remove build info commit 919e1a62022d0ca9bc04a0159a72150e4b45fe68 Author: Dave Plummer Date: Wed Jan 3 18:06:36 2024 -0800 Fix Axp issue commit f5057e33cb4e3a6e3d484e5b332c12103ae0c049 Author: Dave Plummer Date: Wed Jan 3 17:57:29 2024 -0800 M5 Stack Core 2 Demo commit a3bac3e645b37351a3fdad4178d156dade76fac8 Author: Dave Plummer Date: Wed Jan 3 17:56:15 2024 -0800 M5 SStack Core 2 Demo commit 850aba4ae1cd02da395eddb39bd3b710ff1d7c8e Merge: 71af2306 809afad9 Author: David W Plummer Date: Wed Jan 3 15:18:32 2024 -0800 Merge pull request #584 from rbergen/fix-583 Fix hang in `PreviousEffect()` (issue #583) commit 809afad9f8b3bdaa7f822a10bc5427d213d9defe Author: Rutger van Bergen Date: Wed Jan 3 13:15:11 2024 +0100 Fix #583 commit 354e3975a869caac73ef8644c2da173e9d5eba7e Merge: e522294d 71af2306 Author: Joe Schneider Date: Wed Dec 27 10:26:54 2023 -0500 Merge branch 'PlummersSoftwareLLC:main' into PersonalProjects commit 71af2306f22a0e8c2d51982a17057b9cfefab906 Merge: 3b9ed020 68be464d Author: Rutger van Bergen Date: Sun Dec 24 17:41:14 2023 +0100 Merge pull request #573 from rbergen/fix-fanset Update two M5StickC Plus configurations and ESP Web Tools commit 3b9ed0208b0132582daaac87b8446faa7604a98c Merge: a6649694 d6178bdc Author: Rutger van Bergen Date: Sun Dec 24 16:48:03 2023 +0100 Merge pull request #575 from PlummersSoftwareLLC/dependabot/npm_and_yarn/site/vite-4.5.1 Bump vite from 4.5.0 to 4.5.1 in /site commit d6178bdcd5a8fbc1f0ad6283057be113c7787e09 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun Dec 24 15:20:39 2023 +0000 Bump vite from 4.5.0 to 4.5.1 in /site Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.0 to 4.5.1. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.5.1/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.5.1/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] commit 68be464d10d0e290ed00d0f335f71c355bc71978 Merge: 34ae90d3 a6649694 Author: Rutger van Bergen Date: Sun Dec 24 16:18:07 2023 +0100 Merge remote-tracking branch 'upstream/main' into fix-fanset commit a66496945342d965bd8bac9b8149e1909f70d3c3 Merge: e7fa318b ed497532 Author: Rutger van Bergen Date: Sun Dec 24 16:17:41 2023 +0100 Merge pull request #574 from robertlipe/ythislever Make secrets.h more immune to changes from secrets.example.h commit 34ae90d34052b3b8a04acf29d7924011104d87a5 Author: Rutger van Bergen Date: Sun Dec 24 16:10:53 2023 +0100 Make ESP Web Tools wait another 5 seconds commit ed497532f26371fd51bb92d59f287b945c4517e2 Author: Rutger van Bergen Date: Sun Dec 24 16:09:04 2023 +0100 Textual updates commit c92e39ea39fd885dbee2686ad7b0ad383d4696cd Author: Rutger van Bergen Date: Sun Dec 24 14:48:36 2023 +0100 Blindly declare presence commit 549907bced7a1db92c71650b794572c7d4cb56ca Author: Rutger van Bergen Date: Sun Dec 24 13:33:34 2023 +0100 Update ESP Web Tools with correct files commit 3b9a7656625e8af7c74652927190d9b7bdab6494 Author: Rutger van Bergen Date: Sun Dec 24 13:23:11 2023 +0100 Update Spectrum config commit 9c052695e79d4f493518c752539b25bc55b80744 Author: Robert Lipe Date: Sun Dec 24 05:13:42 2023 -0600 Make secrets.h more immune to changes from secrets.example.h When new fields are added in the example file, add a test in the file that uses the real file to be sure the fields are present. This is to solve the case where a developer has a checked-out, working tree with a working secrets.h, syncs to head or another branch that adds fields in secrets, and then incurs weird compilation errors when those new fields aren't found. This change leads the developer to the correct file and the doc describing it for a better experience. commit 4e0ef987451b34cd31b0deaa09221bb45cb4d00f Author: Rutger van Bergen Date: Sun Dec 24 10:35:37 2023 +0100 Disable WiFi to save RAM commit 2cac1000848c416b231eae1b363089322c6ee37c Author: Rutger van Bergen Date: Sat Dec 23 21:19:38 2023 +0100 Update ESP Web Tools commit f5c920727d95b581e60f0fc97025af6ae2cfc884 Author: Rutger van Bergen Date: Sat Dec 23 20:40:30 2023 +0100 Show color data server commit 00041113318a2eb06d593f0332e5fc1c1ed3c876 Author: Rutger van Bergen Date: Sat Dec 23 19:21:16 2023 +0100 Remove improper division on deserialization commit 2699189c55e5b073f0a4ff0d694d71be1275d048 Author: Rutger van Bergen Date: Sat Dec 23 17:44:17 2023 +0100 Explicitly clear JsonDocuments commit 837e30a8bef3cd7d2d5de1648fdd5b951f15a301 Author: Rutger van Bergen Date: Sat Dec 23 17:08:13 2023 +0100 Reduce MAX_BUFFERS commit 5948b0c7f4a07b10581234b5e8a50c96430d932f Author: Rutger van Bergen Date: Sat Dec 23 13:24:26 2023 +0100 Disable services to prevent OOM reboots commit e522294dd7ddec55b2bc581af9b0dd8e4c0adf9c Merge: 1f2801b0 e7fa318b Author: Joe Schneider Date: Fri Dec 22 21:30:23 2023 -0500 Merge branch 'PersonalProjects' of https://github.com/revision29/NightDriverStrip into PersonalProjects commit e7fa318b4bfbeb76cbbbdec5ca0f870a74da4a68 Merge: 694d8760 63f5eee9 Author: Rutger van Bergen Date: Sat Dec 16 20:50:55 2023 +0100 Merge pull request #570 from davepl/main Add Firelog effect, move screen drawing to core 1 commit 63f5eee938a77ce67b33e0aba268fd1e9b36a77e Author: Dave Plummer Date: Sat Dec 16 10:33:32 2023 -0800 Remove psram from m5demo commit f1bc878b5dfa1ca424e5255a85b675a7573d0526 Author: Dave Plummer Date: Sat Dec 16 10:32:47 2023 -0800 Fix m5demo commit b7cbe2920ee39a92ec6dc4b11a7bde940a84dfa4 Merge: c9220320 694d8760 Author: David W Plummer Date: Sat Dec 16 10:29:07 2023 -0800 Merge branch 'PlummersSoftwareLLC:main' into main commit c922032014733723613e80afd8c1356ddf366189 Author: Dave Plummer Date: Sat Dec 16 10:26:47 2023 -0800 Add Fire log commit 694d876047678e0eeae9970dd2d709534044e38c Merge: d4d6abf0 1cb041e8 Author: Rutger van Bergen Date: Sat Dec 16 14:39:34 2023 +0100 Merge pull request #563 from davepl/main Add nycancat, palette support for hypnosis commit 1cb041e8ea43dc6aea2396baf598e8ff18ab64d1 Author: Rutger van Bergen Date: Tue Dec 12 12:47:30 2023 +0100 Fix comment typos commit 015d346b2e4586419ad8ba0412b512b6145a3c1e Author: Rutger van Bergen Date: Mon Dec 11 18:28:33 2023 +0100 Restore effect interval to previous value commit f62ca3ec26e494405df74b8af0778d99dae130b0 Author: Rutger van Bergen Date: Mon Dec 11 17:40:08 2023 +0100 Make debugV a debugI commit aba1688b3b4dd9fc9462c637acb94aea8bbf5e55 Author: Rutger van Bergen Date: Mon Dec 11 09:45:22 2023 +0100 Apply suggestions commit 960daf5077f52297fa1bab0af5441c8985bbbbea Author: Dave Plummer Date: Sun Dec 10 14:39:25 2023 -0800 Fire log and fix pixel counts commit 776b7a9aef7a6d4ca9c4056a7ed391faea5d6589 Author: Dave Plummer Date: Sun Dec 10 14:39:13 2023 -0800 Fix wifpixelcount, add fire log commit 9ff5bae201d8c1ab0645857e0f2efd651bd81779 Author: Dave Plummer Date: Fri Dec 8 17:14:27 2023 -0800 Undo reversion of c++ version commit 1f2801b069faa09e2851cbda989a98c6f4637535 Author: Joe Schneider Date: Fri Dec 8 16:25:12 2023 -0500 Troubleshooting Setting a temp effect is not working. Effect manager does not draw it appropriately. Trying different options to get one to display properly. commit da7804f89f93be1548f41d92443151510f6ca7b0 Author: Joe Schneider Date: Thu Dec 7 22:46:58 2023 -0500 added debug code commit 983a0d5315fd26592f33eedbb31648df94deb61c Author: Joe Schneider Date: Thu Dec 7 20:35:02 2023 -0500 Removed more custom code commit aad0193b830469ee2920a6188b79d68c57b44918 Author: Joe Schneider Date: Thu Dec 7 16:23:27 2023 -0500 added code to insert custom IR remote code commit 372a80980cf9b393cad3728cfa227a0c0af051f3 Author: Joe Schneider Date: Thu Dec 7 16:13:03 2023 -0500 Reverted some changes, added labels After closing the PR, I am now working to bring my personal projects into this fork as a stable branch. Other branches will be pruned. Reverted changes to remote code since I will be including my own remote code. commit fb039fa7d37e15db70cdf685869f81c19da6f3d2 Merge: 329a347a d4d6abf0 Author: Joe Schneider Date: Thu Dec 7 16:06:25 2023 -0500 Merge branch 'PlummersSoftwareLLC:main' into PersonalProjects commit b57509c4d0f69b8da6fe50f42352016b820e5f36 Author: Dave Plummer Date: Thu Dec 7 10:27:12 2023 -0800 Change to Ofast commit 8ff01861c223d27ea63244be3d2fc12adc60cfcf Author: Dave Plummer Date: Thu Dec 7 10:13:23 2023 -0800 Fix M5Demo mem usage commit 9b139d430acc382c54e260d11b2d4eadde2ca9b8 Author: Dave Plummer Date: Thu Dec 7 09:46:13 2023 -0800 Add skip frame support commit 6c112a3c29e91ada9616cd15e06f2d0baf12330f Author: Dave Plummer Date: Thu Dec 7 09:24:28 2023 -0800 Fix m5demo commit 29794fbc7f5373ef8cc9ab0fcf295dd1e5c53532 Merge: 3dabfdba f93c65eb Author: Dave Plummer Date: Thu Dec 7 09:16:40 2023 -0800 Merge branch 'main' of github.com:davepl/NightDriverStrip commit 3dabfdbaff7eebe106a4862da48e7a825f4132df Author: Dave Plummer Date: Thu Dec 7 09:16:35 2023 -0800 Fix color commit f93c65eb632db0ba96a327c6093699c600550df3 Merge: 4ad2fa79 d4d6abf0 Author: David W Plummer Date: Thu Dec 7 09:11:48 2023 -0800 Merge branch 'PlummersSoftwareLLC:main' into main commit 4ad2fa79444713b45b988094cfc490840bb18f9f Author: Dave Plummer Date: Thu Dec 7 09:11:27 2023 -0800 Add nyancat, palette support commit d4d6abf06ecc088e86e17b966db0e4de247d19d4 Merge: 518a2568 5a8a5832 Author: Rutger van Bergen Date: Wed Dec 6 10:17:33 2023 +0100 Merge pull request #549 from robertlipe/ports Centralize port numbers in source commit 518a2568f75f8b8dd9c1ce7c388fce44ec01a50a Merge: c2bf4a97 083576a0 Author: Rutger van Bergen Date: Tue Dec 5 23:46:36 2023 +0100 Merge pull request #558 from mggates39/feature/Weather_Clean_Up_API_Key_Errors Refactor Weather API Function Calls commit 083576a0c05eb7abde589fd5db18426c263b183e Merge: 511d8be8 c2bf4a97 Author: Marshall G. Gates Date: Tue Dec 5 15:55:41 2023 -0500 Merge remote-tracking branch 'upstream/main' into feature/Weather_Clean_Up_API_Key_Errors commit 511d8be8e689fecb3f22b7f487b130d8da3cb256 Author: Marshall G. Gates Date: Tue Dec 5 15:23:43 2023 -0500 Corrected typo in variable name commit c2bf4a97d674101cd9a8aeba9be49363f1151143 Merge: eac9ba69 ce3599ca Author: Rutger van Bergen Date: Tue Dec 5 16:46:01 2023 +0100 Merge pull request #560 from robertlipe/20 Bump to C++2a commit 35decdc56e222c71ed30ce7a918edb78021d7298 Author: Marshall G. Gates Date: Tue Dec 5 08:44:13 2023 -0500 Address issues in code review - Made all rfeturn comments consistant commit bbd59d04e74ab9406163fef1aa6fe0fbc8631e06 Author: Dave Plummer Date: Sun Dec 3 20:03:19 2023 -0800 Fix build commit 35ceaa68fba0b0f2c428d7055e9e226d0d6ded86 Author: Dave Plummer Date: Sun Dec 3 17:54:42 2023 -0800 Add tesseract, instructions commit 7f33cf0a48a4f05f168e2f1678e5daf4fc2d1eb8 Author: Marshall G. Gates Date: Sun Dec 3 14:50:22 2023 -0500 Refactor HasLocationChanged Remove unnecessary String creation and deletion commit 0f0877e38950c5681ab4a76a0b67d7696351c550 Author: Marshall G. Gates Date: Sun Dec 3 14:49:36 2023 -0500 Revert changes as requested - Ensure all methods only have one exit point is a style change in already working code. commit 583e9a4ecaf2404e7eae55ef244c6dbdbfc4c91a Author: Marshall G. Gates Date: Sun Dec 3 14:34:50 2023 -0500 Cleaned up poorly named variable commit eac9ba69ec1740516875b6c06f4f450f8878896f Merge: f61b5611 597031d2 Author: Rutger van Bergen Date: Sun Dec 3 09:17:23 2023 +0100 Merge pull request #556 from davepl/main Fix fire perf, protect against possible GIF load failure commit 538c782f348015f09e8e8104f752c01031aaa3fd Author: Marshall G. Gates Date: Sat Dec 2 22:24:33 2023 -0500 Refactor API Function Calls - Ensure all API Calls are only done if API Key is present - Ensure all methods only have one exit point - Improve Debug message levels to match actual state - Add improved method level comments commit 329a347a57c1f096b938e483bd7008b9bf7d5bb7 Author: Joe Schneider Date: Fri Dec 1 18:11:27 2023 -0500 Removed outdated method call Since effect manager no longer displays a temporary effect when ApplyGlobalColor is true, the call to deviceConfig.ApplyGlobalColors() is not needed. We do want next and previous effect buttons to stop displaying a temp effect if one is active. commit 597031d2233bf56bda959f25b165764de4267148 Author: Dave Plummer Date: Fri Dec 1 13:29:45 2023 -0800 Fix fire perf and protect against GIF load failure commit d6104daaef0269f88e1b30c04755c094949186fd Author: Dave Plummer Date: Fri Dec 1 12:05:19 2023 -0800 Guard against failed GIF load commit f61b5611b5edfe9881c9435f55055e78acfdf045 Merge: f6e1fb0a 5d383761 Author: Rutger van Bergen Date: Fri Dec 1 17:49:10 2023 +0100 Merge pull request #553 from davepl/EffectTable Fix animated GIF effects commit 5d3837619a9aff8eba00e1db6c05ff3d50b64939 Author: Rutger van Bergen Date: Fri Dec 1 17:35:22 2023 +0100 Reenable animated GIF effects commit cc3107a12472f8f501a330bbd4120c8955957a55 Merge: 8ff2a787 f6e1fb0a Author: David W Plummer Date: Fri Dec 1 07:36:13 2023 -0800 Merge pull request #49 from PlummersSoftwareLLC/main Update fork commit 8ff2a787606491e46f0187fc9b4722063ea23445 Author: Dave Plummer Date: Fri Dec 1 15:35:06 2023 +0000 Fix uninit GIF var with fork commit f6e1fb0a6ea3cd394a5204008f37eec5ad1f5032 Merge: a0ff1300 c3ee5476 Author: Rutger van Bergen Date: Fri Dec 1 15:19:40 2023 +0100 Merge pull request #551 from revision29/ColorFillEffectTweak Added logic to optionally include external globals config file commit 623a2433252b9b025b3b5737b9f6ad5b77ccd07d Author: Joe Schneider Date: Fri Dec 1 08:50:25 2023 -0500 Remote logic to clear temp effect commit 2baba8ed691025da258631b90e1c90fb34e53a74 Author: Joe Schneider Date: Fri Dec 1 08:42:48 2023 -0500 Added temp effect use case The IR code should not assume audio is enabled. Added logic to handle cases where IR is enabled, but audio is disable. Populates a temporary effect if audio is disabled isntead of showing the VU. commit c3ee5476b37123e4bb2628791b31d225aebae4c9 Author: Joe Schneider Date: Thu Nov 30 21:37:23 2023 -0500 removed extra new line at end of file I tried to remove the newline via the GH web interface but it didn't show a line 26. commit 7241008d762673831c253c74fd4b36cd9ce8db14 Author: Joe Schneider Date: Thu Nov 30 19:37:02 2023 -0500 Update .gitignore Removed recursive directory exclusion commit a0ff13006f8b3f9820173ec5a71ea4f3e4279f5c Merge: 96273bd4 763f82c6 Author: Rutger van Bergen Date: Fri Dec 1 00:59:22 2023 +0100 Merge pull request #548 from mggates39/feature/Weather-Fix-Tomorrow-Temps Feature/weather fix tomorrow temps commit 763f82c66f7b99ba38ac1a96c83dba92c66a40eb Author: Marshall G. Gates Date: Thu Nov 30 17:45:36 2023 -0500 Addressed Code Review Comments commit 5d7de96c26974c9c347eaee150a53bf181f8bfbb Author: Rutger van Bergen Date: Thu Nov 30 22:33:50 2023 +0100 Load animated GIF effect in disabled state commit 32e852955537417c3bda4e0eccbcb1e3ce0c9359 Merge: 4460f7c2 96273bd4 Author: David W Plummer Date: Thu Nov 30 13:20:29 2023 -0800 Merge branch 'main' into EffectTable commit 96273bd4038bd245733fb259705ee7b051d60602 Merge: 2ad1fabc 6c1643e0 Author: Rutger van Bergen Date: Thu Nov 30 22:14:58 2023 +0100 Merge pull request #555 from rbergen/disable-animated-gifs Add Animated GIFs in disabled state commit 6c1643e0042fc0b3a1ac4a5e577cc848b885d449 Author: Rutger van Bergen Date: Thu Nov 30 22:04:32 2023 +0100 Remove duplicate Colorball commit ce3599caabe6a983d081c0e6be77e6164f93724d Author: Robert Lipe Date: Thu Nov 30 14:56:36 2023 -0600 Bump to C++2a commit 0b4f9a0379e75eede52c347cc83b721e3771fe60 Author: Rutger van Bergen Date: Thu Nov 30 21:55:11 2023 +0100 Add Animated GIFs in disabled state commit 358b68ca574873cd64044b9d3da4f76002f3211f Author: Joe Schneider Date: Thu Nov 30 14:46:49 2023 -0500 One more tweak to platoformio.ini Changed to allow loading multiple configs that start with `custom_` commit 5fc8ba17878d267cd83355bd91d9dedbf082140a Author: Joe Schneider Date: Thu Nov 30 14:39:16 2023 -0500 Changed platoformio include name custom makes more sense than user. commit 4460f7c238067441895317bf6b7df0f9592b2b00 Author: Dave Plummer Date: Thu Nov 30 11:24:51 2023 -0800 Rework animated GIF loading commit 7100082b6d466af7dab2ad842691bdcba78906c4 Author: Dave Plummer Date: Thu Nov 30 10:01:53 2023 -0800 "Fix" animated gif crash commit f5673a653373682c82923bc1f2001c9675a1f79a Author: Joe Schneider Date: Thu Nov 30 08:15:21 2023 -0500 slight change to go along with last commit commit 899393ac909dc8a12bfb7f5e87f4ad32d33752dd Author: Joe Schneider Date: Thu Nov 30 08:14:43 2023 -0500 slight variable name change commit 173e522942623b4d0db9368524bed87f186bab39 Author: Joe Schneider Date: Thu Nov 30 08:11:50 2023 -0500 Small adjustments Added entries in .gitignore to ignore user configuration files. Also added line in platformio.ini to include an external config file. If the file does not exist, platformio ignores it. If it does exist, it will read from it. No logic necessary. commit ac4a9b05fc684779d3dba65ede49680e8654e9ce Author: Joe Schneider Date: Thu Nov 30 08:06:02 2023 -0500 Revert "Added entries to ignore custom files" This reverts commit e57c457153837a74f0c98fc8f4e2a34f458ab9c2. commit e57c457153837a74f0c98fc8f4e2a34f458ab9c2 Author: Joe Schneider Date: Thu Nov 30 07:59:52 2023 -0500 Added entries to ignore custom files Ignores custom user files for: - platoformio - globals - effects commit 437fb203ce3ba8a14cb98660d97124722f10de43 Author: Dave Plummer Date: Wed Nov 29 20:26:39 2023 -0800 Reorder effects table commit 0b6827db548afba8d60229bb442bac68eb90c630 Author: Joe Schneider Date: Wed Nov 29 21:39:50 2023 -0500 Fixed comments commit 067fbc27a00adaba404939610c899da3a69ca935 Author: Joe Schneider Date: Wed Nov 29 21:38:33 2023 -0500 Shortened method names commit 46e33f53f261f857a95c3a4eb6b25e6faafeee15 Author: Joe Schneider Date: Wed Nov 29 21:31:33 2023 -0500 Fixed build file changes commit 2549e7a1c92c9726a86076c48b79a9b6dcc827d3 Author: Joe Schneider Date: Wed Nov 29 21:29:57 2023 -0500 Revert "Added HasTemporaryEffect method" This reverts commit edd17a804e103223ac4f93e08f331c15b16a626d. commit edd17a804e103223ac4f93e08f331c15b16a626d Author: Joe Schneider Date: Wed Nov 29 21:26:50 2023 -0500 Added HasTemporaryEffect method Added a method to check for _tempEffect. commit 6c5b3ee71d755a9ff90cbe349a79a1608ef63c81 Author: Joe Schneider Date: Wed Nov 29 21:18:11 2023 -0500 Created methods for handling temporary effects. - Sets temporary effect. - Clears temporary effect. commit 33845b49a13cd86f83a32f4afc1f78566588f167 Merge: c393143d 2ad1fabc Author: Joe Schneider Date: Wed Nov 29 20:42:02 2023 -0500 Merge branch 'ColorFillEffectTweak' of https://github.com/revision29/NightDriverStrip into ColorFillEffectTweak commit c393143d7ef423f2546590a578713df919e589a0 Author: Joe Schneider Date: Wed Nov 29 20:41:52 2023 -0500 Create logic to include optional custom_globals.h Checks for the existence of `custom_globals.h`. This file can include logic to select user specified projects instead of cluttering globals.h commit 2ad1fabc3dd8ff04ce1ea7fcc5b6669e2c9c7a37 Merge: bc51da05 7d11c9c1 Author: David W Plummer Date: Wed Nov 29 16:23:57 2023 -0800 Merge pull request #550 from davepl/AnimatedGIF Animated gif commit 7d11c9c13034eb9c63108214875b6852c363ee16 Author: Dave Plummer Date: Wed Nov 29 14:14:32 2023 -0800 Animation speed commit ff1587b0ece8cc8ef8a1ce9677bad4c1848f2ca0 Author: Marshall G. Gates Date: Wed Nov 29 07:56:01 2023 -0500 Addressed issues in Pull Request - Cleaned up variable naming format. We really need a standard. I am open to anything. - Used std::min and std::max to clarify the codes meaning commit 12d00eb0c7f39ba914f396e6484fa826ee248b72 Merge: 7814a73a bc51da05 Author: Rutger van Bergen Date: Wed Nov 29 13:08:18 2023 +0100 Merge upstream/main into pr/davepl/550 commit bc51da050eb923998af3bc0c718be3ef41e53845 Merge: d98be155 ab6cd758 Author: Rutger van Bergen Date: Wed Nov 29 12:57:45 2023 +0100 Merge pull request #542 from revision29/ColorFillEffectTweak Effect manager global color and palette fire tweaks commit ab6cd758c0e386ab1935dbc43ffe5ec15ab1d1d5 Merge: ce109a81 d98be155 Author: Rutger van Bergen Date: Wed Nov 29 11:58:58 2023 +0100 Merge remote-tracking branch 'upstream/main' into pr/revision29/542 commit ce109a81ff0dd4c6d654a141d1f9ece288240104 Author: Rutger van Bergen Date: Wed Nov 29 11:58:25 2023 +0100 map() don't do floats commit 96fdc40e9b60f782a4d6a593bce99b650a62dea6 Author: Rutger van Bergen Date: Wed Nov 29 11:30:40 2023 +0100 Improve global color based palette commit 7814a73a9f18dfc198d2c7a165178e8dbb866d0e Author: Rutger van Bergen Date: Wed Nov 29 10:34:47 2023 +0100 Make GIFIdentifier an enum class commit 53d8f3c901c96078266f0ab5eeb47c36bef45da2 Merge: d2263903 d98be155 Author: Dave Plummer Date: Tue Nov 28 17:06:24 2023 -0800 Merge branch 'main' of github.com:PlummersSoftwareLLC/NightDriverStrip into AnimatedGIF commit e9891e0dd7124e454e7f05c2abd4a73bb9a80f5f Author: Marshall G. Gates Date: Tue Nov 28 10:28:54 2023 -0500 Clean up debug logging - Correct debug level - Remove redunant logging commit 2d75c26b923bc667969a6e17de0c41e171861769 Author: Marshall G. Gates Date: Tue Nov 28 10:16:38 2023 -0500 Properly include the std::chrono namespaces - better time constant expressions - Remove unneeded namespace prefixes commit 5a8a5832e6bbd25cea3a29b47fd1c6e7796b290d Author: Robert Lipe Date: Tue Nov 28 02:02:40 2023 -0600 Centralize port numbers in source Instead of scattering port numbers in source, headers, or macros, we stuff them into one grep-able enum. Tested: Touch test on (out-of-tree) Demo project with webserver, debugger turned on. Successful buddybuild Not tested: Commodore pet rock. (Wat!?!) commit d22639030f8af7ca71ce50b9181dbea203f30cf7 Author: Dave Plummer Date: Mon Nov 27 18:28:33 2023 -0800 Add transparent GIF support and banana commit 9d24a1c484eb1b629bb818cd6f60964b8d03f9ee Merge: d98be155 6cbf1185 Author: Marshall G. Gates Date: Mon Nov 27 16:00:39 2023 -0500 Merge branch 'dev/mgg-weather-fix-tomorrow' into feature/Weather-Fix-Tomorrow-Temps commit d98be155806bf046c74724ac512000f1a38754eb Merge: e64cc858 41084206 Author: Rutger van Bergen Date: Mon Nov 27 20:13:16 2023 +0100 Merge pull request #546 from rbergen/fix-supernova Fix vertical speed of new debris items in Supernova commit 410842066d043139f26a22de39cd11ea7d35cad0 Author: Rutger van Bergen Date: Mon Nov 27 20:04:10 2023 +0100 Restore VU meter on Mesmerizer builds commit 6cbf11857ac09eadad209361c249e2a1f9617581 Merge: da06746b e64cc858 Author: Marshall G. Gates Date: Mon Nov 27 13:54:35 2023 -0500 Merge remote-tracking branch 'upstream/main' into dev/mgg-weather-fix-tomorrow commit 21f7c04fb497d813b1f8b460fc67bb490faed5d9 Merge: 21050755 e64cc858 Author: Rutger van Bergen Date: Mon Nov 27 13:55:07 2023 +0100 Merge remote-tracking branch 'upstream/main' into fix-supernova commit 18164e17d4118af99b18b3d9f5fc2aafeb1b4c04 Merge: 90b2bc79 e64cc858 Author: Rutger van Bergen Date: Mon Nov 27 13:41:33 2023 +0100 Merge branch 'main' into ColorFillEffectTweak commit e64cc85898a2827d94fc4a27ca6f2756bafdb585 Merge: 7ba9f57b 79f6f219 Author: Rutger van Bergen Date: Mon Nov 27 13:38:23 2023 +0100 Merge pull request #543 from davepl/AnimatedGIF Animated gif support commit 90b2bc79a7d4a4981fd92491010fdb5988dbb625 Author: Rutger van Bergen Date: Mon Nov 27 13:13:11 2023 +0100 SpectrumAnalyzerEffect uses global colors commit 79f6f21905049775b95be134f347d13752976dc1 Author: Rutger van Bergen Date: Mon Nov 27 11:26:54 2023 +0100 Keep weather icons together commit fd2501513880de8e06658e72688aaf2487a0792f Author: Rutger van Bergen Date: Mon Nov 27 11:14:42 2023 +0100 Remove funny character commit 21050755ebdde8523b612a077d5b33ece5bc5430 Author: Rutger van Bergen Date: Mon Nov 27 10:58:52 2023 +0100 Fix y speed of new paricles commit 9c44086e5bd3b7e6a8d5d19f675d56cdaaca2635 Author: Dave Plummer Date: Sun Nov 26 18:35:31 2023 -0800 Add threerings animation commit a5ca09bb56b0bb35e4f27312a4f575c97ff56f41 Author: Dave Plummer Date: Sun Nov 26 18:16:46 2023 -0800 Remove local data commit 8c22f93c8f6e5b070ce1d7e93c8835c63c87fbf4 Merge: 0598957f 1bca9e52 Author: Dave Plummer Date: Sun Nov 26 18:16:14 2023 -0800 Merge branch 'AnimatedGIF' of github.com:davepl/NightDriverStrip into AnimatedGIF commit 0598957fdb6937940a73b178782ad9310828ab96 Author: Dave Plummer Date: Sun Nov 26 18:16:08 2023 -0800 Update effects table for animated GIFs commit da06746b76ca2c0ba3c6a39cda4c9402b2d9e3a0 Author: Marshall G. Gates Date: Sun Nov 26 12:32:13 2023 -0500 Reformat single statement ifs to match Just getting it all to look the same inside the file commit 3f75238100a3d16d043a52869f484013b2c41c13 Author: Rutger van Bergen Date: Sun Nov 26 12:14:56 2023 +0100 Make line white spacing consistent commit 1bca9e52259b44b823c855ddd681877b8e3439e3 Author: Rutger van Bergen Date: Sun Nov 26 11:52:16 2023 +0100 Reorder embedded image assets commit cd0d43eea4a92028b525bbbb6cbc97cdb0c57a3f Author: Rutger van Bergen Date: Sun Nov 26 11:50:08 2023 +0100 Fix variable declaration spacing commit f49440135e1848adbffc95320402b44ca56d5b90 Author: Rutger van Bergen Date: Sun Nov 26 11:02:42 2023 +0100 Fix MusicalPaletteFire commit 177cb1e70ec9835727e29408678f7616db48d677 Author: Rutger van Bergen Date: Sun Nov 26 10:43:29 2023 +0100 Revert spacing change, remove unnecessary variable commit 15db9322f95fc99dd25fc34b34579e1837fcf0a3 Merge: 123fc058 ac1ed204 Author: Dave Plummer Date: Sat Nov 25 19:39:41 2023 -0800 Merge branch 'AnimatedGIF' of github.com:davepl/NightDriverStrip into AnimatedGIF commit 123fc05877767012faf5bd9295b35df39e2e75cc Author: Dave Plummer Date: Sat Nov 25 19:39:37 2023 -0800 Add arbitrary size support to animated GIF; pacman commit 3bd6c12b308d68eb98850f76977286ac29b3d1ef Author: Joe Schneider Date: Sat Nov 25 20:40:32 2023 -0500 Tweak and a fix - Removed redundant variable for PaletteFlameEffect child class. - Changed the variable type `palette` in PaletteFlameEffect and MusicalPaletteFire. In effects.cpp, Dave had defined custom palettes in the effect constructor. Those were not reference to palette variables, so the code refused to compile. Though this is not the most memory efficient change, it allows the code to run. commit 298e7289d14e8986260205de23a22c4f7211ee82 Author: Marshall G. Gates Date: Sat Nov 25 15:41:56 2023 -0500 Increase Allocated JSON Document size to capture all the forcast data commit ac1ed2047a1abb4dd2a06c725041e74379cd5954 Author: David W Plummer Date: Sat Nov 25 07:26:18 2023 -0800 Update partitions_custom_8M.csv commit b3ea832ef50d6097f275c86dc4e6a37a0a5de9c7 Merge: 9be33aa4 7ba9f57b Author: David W Plummer Date: Sat Nov 25 07:24:44 2023 -0800 Merge branch 'PlummersSoftwareLLC:main' into AnimatedGIF commit 7ba9f57b493b612cf42a10d3378f403a4087061a Merge: 1a5e3505 4fcec83c Author: Rutger van Bergen Date: Sat Nov 25 09:43:29 2023 +0100 Merge pull request #532 from KeiranHines/feature/secondTiming Interval input fixes commit 967d87133f80a458cd56a3cd36fe21808b29263d Author: Marshall G. Gates Date: Sat Nov 25 00:01:36 2023 -0500 Update getTomorrowTemps - Use the std::chrono library for time related data - Actually scan all the forcast blocks for tomorrow - Get the noon weather icon for tomorrow commit 9be33aa41668ac37552b2be9623756398426b8d3 Merge: 903d02bf 1a5e3505 Author: Dave Plummer Date: Fri Nov 24 18:15:05 2023 -0800 Merge branch 'AnimatedGIF' of github.com:davepl/NightDriverStrip into AnimatedGIF commit 903d02bf703a365010682fc3ebc93638cfdf183a Author: Dave Plummer Date: Fri Nov 24 18:13:46 2023 -0800 Tidy up commit 759f8bc78dfa0a3ae04406223a0320531eda629a Merge: 9c0db8fd 3dea3095 Author: Joe Schneider Date: Fri Nov 24 19:53:37 2023 -0500 Merge branch 'ColorFillEffectTweak' of https://github.com/revision29/NightDriverStrip into ColorFillEffectTweak commit 9c0db8fd3d290b1706e01a77845a84bbbd8615e9 Author: Joe Schneider Date: Fri Nov 24 19:53:27 2023 -0500 Minor changes Based on feedback and brief moments of sanity: - Introduced PTY_IGNOREGLOBALCOLOR definition. - Updated some indentation. - Removed effectManager.Update() calls. - Changed to simpler if then format in some places to save blinkenbits. commit f0d68c34c38b259426affa00759561f2fa8ff892 Author: Dave Plummer Date: Fri Nov 24 16:10:02 2023 -0800 Animated GIF Support commit 4fcec83cdfd928b64577d9ff2048005088fabf68 Merge: 61fcb3ea f13c2a68 Author: keiranhines Date: Sat Nov 25 09:13:26 2023 +1100 Merge branch 'feature/secondTiming' of github.com:KeiranHines/NightDriverStrip into feature/secondTiming commit 61fcb3ea27694d23e8d9706e2e6f637171481474 Author: keiranhines Date: Sat Nov 25 09:13:13 2023 +1100 Updated next effect handling by resyncing to trigger an update rather than trying to manage the next effect timing client side commit f3e167aadc10ad6db109ddb738bab5dee8fa4f13 Author: keiranhines Date: Sat Nov 25 09:12:28 2023 +1100 Removed support for setting effect interval < 1s commit ef17b52587b0f7875393163f2af9472f0cc7cb5c Author: Marshall G. Gates Date: Fri Nov 24 16:56:00 2023 -0500 Convert refresh delay to use std::chrono commit 6b76639156888c58c57e9263f3a4efc596a61157 Author: Marshall G. Gates Date: Fri Nov 24 16:54:16 2023 -0500 Unified Info and Warning debug message types commit 3dea3095f5084119e64c6c3289d50a4bdf1012d4 Merge: db51032a 1a5e3505 Author: Joe Schneider Date: Fri Nov 24 14:18:32 2023 -0500 Merge branch 'PlummersSoftwareLLC:main' into ColorFillEffectTweak commit db51032a1eaaf3db023ff0140727480a472dff5f Author: Joe Schneider Date: Fri Nov 24 11:25:44 2023 -0500 Fixed variable order Did not pay enough attention to the order arguments. commit f725505fe851042a33feb48cb62169d5df212d33 Author: Joe Schneider Date: Fri Nov 24 10:32:26 2023 -0500 Palette flame effect uses global color Updated palette flame effect and musical palette flame effect to use global color commit c7016b05e32675461301976db181511d67cd3864 Author: Joe Schneider Date: Fri Nov 24 10:16:21 2023 -0500 Tweaking some effects commit 1a5e35051dc465f2cf2c9e00229dfdcf56766a3c Merge: 4ce357b4 0a8505ca Author: Rutger van Bergen Date: Thu Nov 23 21:36:27 2023 +0100 Merge pull request #541 from revision29/ColorFillEffectTweak Tweaked ColorFillEffect to optionally ignore global color commit 0a8505cae167b9f80827d2dbcae7c6f0f99e3028 Author: Joe Schneider Date: Thu Nov 23 14:56:44 2023 -0500 One last small change Used short version of boolean check for both conditions. commit 2a91710394af17e5f14e39750410d036dfd63fa5 Author: Joe Schneider Date: Thu Nov 23 14:48:04 2023 -0500 Fixed childish errors commit 4ce357b4a546a255a24637831034f8f26f13564c Merge: a32d64c2 7047984f Author: Rutger van Bergen Date: Thu Nov 23 18:34:05 2023 +0100 Merge pull request #537 from mggates39/feature/Fresh_Weather_Icons Just Better Weather Icons commit 2490eab0d02e54ef544437c55fe32901fb3f7d64 Author: Joe Schneider Date: Thu Nov 23 11:32:29 2023 -0500 Tweaked ColorFillEffect to optionally ignore global color Tweaked ColorFillEffect to optionally ignore global color commit 7047984f42e4f797329cb676aa3b5337f9d0746f Author: Marshall G. Gates Date: Thu Nov 23 10:03:03 2023 -0500 Address issues from code review. - Revert promotion of configuration variables to secrets - Correct JSON to string coercion commit a32d64c2dd0643ba5f6d4bd80459594bba55d5d3 Merge: 8a05a776 586d769f Author: Rutger van Bergen Date: Tue Nov 21 23:33:31 2023 +0100 Merge pull request #536 from robertlipe/format Allow checking of format arguments against arguments in str_sprintf. commit 586d769f1ecdb64d205447ea0257a4e2651679f0 Author: Rutger van Bergen Date: Tue Nov 21 23:01:56 2023 +0100 Update include/globals.h commit 4f3e345717efb14fddef82eaa2ab5f434a06c70e Author: Marshall G. Gates Date: Tue Nov 21 15:16:44 2023 -0500 Update to show proper day and night icons - Added the new night icons to the list - Changed icon map to use a String key - Modify the icon retrieval to use the whole Icon ID string - Fixed the logging to show the correct icon ID commit 08a55099862f2e7e8c7843ae7d6634ae9b15496a Author: Marshall G. Gates Date: Tue Nov 21 14:46:28 2023 -0500 Add the new night icons to the embedded files list commit c23d905e99259d8926400aa7ee8bdf7e90819829 Author: Marshall G. Gates Date: Tue Nov 21 14:42:16 2023 -0500 Add the last two Weather confuration item defaults to the secrets.h file ## This is required for a recompile after this commit is applied commit 60b76701a54a5cf044e3349e6eff775e6c1da284 Author: Marshall G. Gates Date: Tue Nov 21 14:12:51 2023 -0500 Update the device configuration It needs to use the is location a zip code flag from the secrets file for the defalut value commit 7817afc2c0c8683751cd71bc8d29bb665db09f83 Author: Marshall G. Gates Date: Tue Nov 21 13:48:39 2023 -0500 Replace the weather icons with new graphics Clean up all of the unused old files commit 30c2df99703a8174cb6413395ad87d7c0b42b92d Author: Robert Lipe Date: Tue Nov 21 05:41:01 2023 -0600 Allow checking of format arguments against arguments in str_sprintf. This detects the internal loop we previousluy fell into if we tried to str_format("%s", String()); The test on vsnprintf() presumably couldn't save us because our arg list had decayed to a va_list It's bracketed to only come on if GCC, but clang is so dclose to us it'll work there, too. Provide safe fallback for other code scanners, though. Bonus: I've identified othr optimizations in here I can do when it's not this time of day. commit f13c2a682ff4751b6fd1f08ef4ed54b05cdda3d6 Author: Rutger van Bergen Date: Mon Nov 20 12:40:05 2023 +0100 Ignore intervals < 1s commit 348aa0f99b3c8b20b89a025a1127982fe09bdc87 Author: keiranhines Date: Mon Nov 20 22:00:57 2023 +1100 Added support for configuring interval < 1s if you really want commit 321529ca8406a6d50aca2db8cf5b001e4821856d Author: keiranhines Date: Mon Nov 20 21:54:32 2023 +1100 Various fixes to interval input, added support for enter to submit, changed display from ms to a time format commit 8a05a7766075ace3c8ab7f3ee0d71ad1a79e5289 Merge: 0b312403 4d66b3b2 Author: Rutger van Bergen Date: Sun Nov 19 13:20:13 2023 +0100 Merge pull request #528 from rbergen/set-x-bit Set executable bit on tools/show_features.py commit 4d66b3b2a7a3004d86d8c9cc7a69bb7cf3e00d23 Author: Rutger van Bergen Date: Sun Nov 19 12:59:57 2023 +0100 Set executable bit on new script commit 0b312403c043a4e413b1dc5c52bcec4cfb2a1a82 Merge: 92fc2664 f8ba015b Author: Rutger van Bergen Date: Sun Nov 19 11:15:22 2023 +0100 Merge pull request #527 from rbergen/improve-web-installer Make web installer report enabled features commit f8ba015bc93c36ba47597fe4eb898d145c295867 Author: Rutger van Bergen Date: Sun Nov 19 09:52:11 2023 +0100 Exclude feature letters from manifests commit 1e01bf4f5c8e7dee816c53edb0df147cfa12f273 Author: Rutger van Bergen Date: Sun Nov 19 08:54:46 2023 +0100 Fix copy/paste error commit 9b911a61d679e7067232bdf063f4a619c44882ff Author: Rutger van Bergen Date: Sun Nov 19 00:04:26 2023 +0100 Decrease legent font size commit 1896163d3e84771539abf58295f0d19dae4e874e Author: Rutger van Bergen Date: Sat Nov 18 21:42:52 2023 +0100 Change legend format commit 96ad86c4b25351ef33d62c8cd6c5ede0cc767d77 Author: Rutger van Bergen Date: Sat Nov 18 20:19:42 2023 +0100 Update main README commit c7f90edd5182da8cffbbfd4d370b88651808ad4d Author: Rutger van Bergen Date: Sat Nov 18 20:13:47 2023 +0100 Change location of feature legend commit f35f1419978317efcb02a10dc04aed704820a0d0 Author: Rutger van Bergen Date: Sat Nov 18 19:40:00 2023 +0100 Restore full web_projects.json commit 4cdb52b1dfa78c42c17f2b7c681c5725f6b40f2c Author: Rutger van Bergen Date: Sat Nov 18 19:33:16 2023 +0100 Make handling of feature flags more clever commit 92fc26642e8934f270bdc34cfff50cf9031c70c0 Merge: 0884d6f9 4092cca8 Author: Rutger van Bergen Date: Sat Nov 18 09:58:06 2023 +0100 Merge pull request #525 from rbergen/update-smsmoke Remove tear/pepper in fire from SMSmoke commit 4092cca8624b3e7e4357a216a8e1de4627a25f14 Author: Rutger van Bergen Date: Sat Nov 18 03:57:27 2023 +0100 Remove tear/pepper in fire commit 0884d6f924e909edf7a8c5c1b189df3390165ee9 Merge: 32779b6c 8b3af692 Author: Rutger van Bergen Date: Sat Nov 18 03:50:39 2023 +0100 Merge pull request #524 from rbergen/add-vu-setting Add persisted "show VU" setting to web UI commit 32779b6ca557d53d63837498998d7535dcde8ba3 Merge: abe99df6 c7616d8a Author: Rutger van Bergen Date: Sat Nov 18 03:50:17 2023 +0100 Merge pull request #518 from KeiranHines/feature/deviceControl Feature/device control commit c7616d8a7edc260add886c127bf455a68091e5b8 Author: Keiran Hines Date: Sat Nov 18 09:40:17 2023 +1100 Addressed PR feedback. Moved popover to a parent anchor point to sit better on the sidebar commit 8b3af69278ecb5a153bb7b3de61e4ed41f0a6bb2 Author: Rutger van Bergen Date: Fri Nov 17 18:09:14 2023 +0100 Polish implementation, specs and comments commit 0cb7b5cfaac34fa95c7578e29cc89df9cd753bef Author: Rutger van Bergen Date: Fri Nov 17 17:49:54 2023 +0100 Hook up show VU meter setting to logic commit 4f9b9126c42f760a132540ed61189468577f7ad9 Author: Rutger van Bergen Date: Fri Nov 17 17:04:03 2023 +0100 Add Show VU meter setting commit abe99df68f9a5be852338637705c6344fe1f3150 Merge: 135735f3 1d7edab8 Author: Rutger van Bergen Date: Fri Nov 17 13:02:45 2023 +0100 Merge pull request #521 from robertlipe/sm_scrub Force-initialize class members to zero in SM effects. commit 135735f32d91130769494fe4ce185f904e4f76b1 Merge: 11851a08 da7f81c1 Author: Rutger van Bergen Date: Fri Nov 17 12:26:54 2023 +0100 Merge pull request #522 from robertlipe/blur_fix As taunted, major C++-ification of BlurringColors/Powder commit da7f81c140d72364dd9472637a903ae0d85f9eb0 Author: Rutger van Bergen Date: Fri Nov 17 11:05:18 2023 +0100 Clear PowderItems on every Start() commit 4ec848725b03f0c4b97bc90b859c70749c41aa81 Merge: 032a9e94 11851a08 Author: Robert Lipe Date: Thu Nov 16 23:50:25 2023 -0600 Merge branch 'main' into blur_fix commit 032a9e943b053fa2ba47a7fc8376fbf56d6c0a10 Author: Robert Lipe Date: Thu Nov 16 23:33:10 2023 -0600 As taunted, major C++-ification of BlurringColors/Powder This file's version of https://github.com/PlummersSoftwareLLC/NightDriverStrip/pull/489 Ran on Mesmerizer for 30+ minutes. Did not measure before/after frame rates but it should help that it's using more indexed addressing modes ( mov t0, 1234($t1) ) instead of recomputing index offset addresses (lea ...) so many times per method. A loop next now is the addition of the size of the structure we're iterating over. Tried to pull in the changes that happend in https://github.com/PlummersSoftwareLLC/NightDriverStrip/pull/512 commit 1d7edab80e812e26fbc6349caa3b31601e3dbfd4 Author: Robert Lipe Date: Thu Nov 16 19:31:40 2023 -0600 Force initialization of anything in the SM patterns to zero. This is admittedly a mechanical processing of any class-local variable I couldn't trivially prove to be initialized before use. Trivial touch-ups in adjacent code if I was sure they were low risk. commit 11851a08649ce1b1af2c060fafa48deda828acb8 Merge: d18cb4a4 f0a3e6b2 Author: Rutger van Bergen Date: Thu Nov 16 21:26:53 2023 +0100 Merge pull request #519 from rbergen/fix-powder-effect Fix Powder/PatternSMBlurringColors effect commit f0a3e6b211ec263437a82863deca52a540e19021 Author: Rutger van Bergen Date: Thu Nov 16 21:05:26 2023 +0100 Fix Powder/SMBlurringColors effect commit d18cb4a4593cda26f9fcdfdca0297176c1ff0ec7 Merge: d82e528f bf1d569d Author: Rutger van Bergen Date: Thu Nov 16 11:34:28 2023 +0100 Merge pull request #517 from KeiranHines/bugFix/configDialog Bug fix/config dialog commit d82e528f4be268979cd1da27592ad06a85e4302a Merge: 3b796e5c 919ec2d5 Author: Rutger van Bergen Date: Thu Nov 16 11:33:04 2023 +0100 Merge pull request #516 from robertlipe/fastled Fix crash on "large" configurations, especially on ESP32-S3. commit b12be9277e702c353c8735ef880c9b0352a9bfe4 Author: keiranhines Date: Thu Nov 16 21:23:26 2023 +1100 Fixed issue #482: Added a power settings button to the sidebar reboot and reset options. commit bf1d569d54f67d888f30856c23b1ca0acab81d6a Author: Rutger van Bergen Date: Thu Nov 16 11:20:59 2023 +0100 Make some setting descriptions less techie commit 67fa187dcc40b85aea47990372740fee060d94e6 Author: keiranhines Date: Thu Nov 16 21:13:25 2023 +1100 Addressed PR feedback again commit b3c37dc54cf55f253fd7bad28269e29811317ba1 Author: keiranhines Date: Thu Nov 16 21:09:27 2023 +1100 added popover commit b42f4ff5da00f96757bb7d0ae83f2af6d5837e52 Author: keiranhines Date: Thu Nov 16 20:51:21 2023 +1100 Addressed PR feedback commit f663823f75e027e2539e86d46f11859046e5e4bc Author: keiranhines Date: Thu Nov 16 20:49:01 2023 +1100 Added settings_power button for power menu commit b6097d9b04ffc10ce181c30045001cc3b935bbec Author: keiranhines Date: Thu Nov 16 20:22:16 2023 +1100 Fixed sylying of color and slider inputs commit e58980dbc45c6e178210a99b6101fb42449d6448 Author: keiranhines Date: Thu Nov 16 20:19:56 2023 +1100 Fixed #504 added descriptions to checkboxes, restyled some inputs and added some padding before input title commit 919ec2d5794029ab1db22e712e612c011c154a33 Author: Robert Lipe Date: Wed Nov 15 14:53:02 2023 -0600 Fix crash on "large" configurations, especially on ESP32-S3. See https://github.com/PlummersSoftwareLLC/NightDriverStrip/issues/515 for the (painful) details. commit 3b796e5cdfe16d55fef306c7e998228ed9b174d6 Merge: 916c083e 071f85a4 Author: Rutger van Bergen Date: Wed Nov 15 21:00:57 2023 +0100 Merge pull request #503 from rbergen/global-color-settings Add global color settings commit 916c083e476fa0144be2cf68cadf7755a550ffb4 Merge: a7a34ebf 1a4b7bdd Author: Rutger van Bergen Date: Wed Nov 15 01:29:40 2023 +0100 Merge pull request #509 from davepl/main Add effect comments, update star and amber rain effects commit a7a34ebf434da506285c31f0c3878f9addfeafae Merge: a300bb68 46485d99 Author: Rutger van Bergen Date: Wed Nov 15 01:28:55 2023 +0100 Merge pull request #499 from revision29/serializerfailwell Update jsonserializer.cpp to break infinite fail commit 071f85a44ffbb36663cddb27e2ddb0fa10b46033 Author: Rutger van Bergen Date: Tue Nov 14 22:43:38 2023 +0100 Clean up commit a19d63d0d5078963aed3b718e04520360203c7b1 Author: Rutger van Bergen Date: Tue Nov 14 21:20:20 2023 +0100 Persist application of global colors commit a300bb688b9ad39298330e5f4c687330ba1770c1 Merge: cc99495f 1f81ee83 Author: Rutger van Bergen Date: Tue Nov 14 20:12:24 2023 +0100 Merge pull request #512 from rbergen/fix-510 Fix Supernova effect commit 1f81ee83c1f05055d7aa205b6f656c744d9b3744 Author: Rutger van Bergen Date: Tue Nov 14 19:56:14 2023 +0100 Esthetics commit a49dc0d7cccc32fa753593a41baf7195ecd3d28a Author: Rutger van Bergen Date: Tue Nov 14 19:52:42 2023 +0100 Review comments commit ff5f2fa538a67aff5b863aa75c951ac06b84cea6 Author: Rutger van Bergen Date: Tue Nov 14 17:59:05 2023 +0100 ...but we are for_each-ing commit cc99495f9df46c8b1b185d9477825ba26d1cee85 Merge: 0304fa1a fc329a9b Author: Rutger van Bergen Date: Tue Nov 14 16:38:43 2023 +0100 Merge pull request #511 from KeiranHines/feature/designerImprovements Feature/designer improvements commit 5583b16b890f2eae309a7b47ff43c39c1e5d5d2d Author: Rutger van Bergen Date: Tue Nov 14 14:18:58 2023 +0100 We're not actually transforming commit 11b367d8c300472ae2d1cd6422726b5d9a2fc877 Author: Rutger van Bergen Date: Tue Nov 14 14:15:09 2023 +0100 Satisfy capitalization OCD commit 65882cc18c30b7b8800a4b295ab1c01991c4d551 Author: Rutger van Bergen Date: Tue Nov 14 14:12:39 2023 +0100 Don't assume SHOW_VU_METER is defined commit b683d0f59fab73872bff40d6609b778c0d5edf0c Author: Rutger van Bergen Date: Tue Nov 14 13:48:31 2023 +0100 Fix issue 510 commit fc329a9bd6bdff8fb68cce66990cf3f4c6a99242 Merge: bd300ac7 0304fa1a Author: keiranhines Date: Tue Nov 14 21:27:06 2023 +1100 Merge branch 'main' of https://github.com/PlummersSoftwareLLC/NightDriverStrip into feature/designerImprovements commit 38edb06b141aa22b591944b22ca969ccd31f459d Author: keiranhines Date: Tue Nov 14 21:25:53 2023 +1100 Initial Design of #504 commit 1a4b7bdd51a21900de44295e161e2be704ce7d7c Merge: 02f1febe 0304fa1a Author: David W Plummer Date: Mon Nov 13 16:40:34 2023 -0800 Merge branch 'PlummersSoftwareLLC:main' into main commit 02f1febe006a360ab07930b034211b463e762e6d Author: Dave Plummer Date: Mon Nov 13 11:23:49 2023 -0800 Comment files, fix amber rain commit 46485d9961282c64df74d2159d698eaf8affb154 Merge: 4702f196 0304fa1a Author: Rutger van Bergen Date: Mon Nov 13 15:19:35 2023 +0100 Merge 'upstream/main' into pr/revision29/499 commit e018beafd6aef0dcde52cd9d88d4e7ba1b2f2f43 Author: Rutger van Bergen Date: Mon Nov 13 15:15:47 2023 +0100 Extend and refactor color setting logic commit 3c86c7b99c9fd7ddd3eaa09891dbf521af09e6bd Merge: 9d52bfe1 0304fa1a Author: Rutger van Bergen Date: Mon Nov 13 11:44:41 2023 +0100 Merge remote-tracking branch 'upstream/main' into global-color-settings commit 0304fa1a8dc94426b3e6f76c7e7fbf8e1de60741 Merge: 83714e30 8df90144 Author: Rutger van Bergen Date: Mon Nov 13 11:38:20 2023 +0100 Merge pull request #494 from KeiranHines/feature/configDialog Feature/config dialog commit 83714e30e3c12b21a08b0a0416104557c04b30e7 Merge: b3f87bab e1839162 Author: Rutger van Bergen Date: Mon Nov 13 11:18:35 2023 +0100 Merge pull request #501 from rbergen/reconfigure-spectrum Reconfigure Spectrum builds commit 4702f1962c84969d4049b5f9266ae214845e6cb4 Author: Rutger van Bergen Date: Mon Nov 13 10:09:35 2023 +0100 Review updates commit 8df90144732e4191412a2b125d5341c8538eb139 Author: keiranhines Date: Mon Nov 13 18:49:06 2023 +1100 Fixed issue where error update on an empty string would check previous value not current value commit f809e1ce1b73e1a7fbbec6afe4c66d77f74ffc44 Author: Rutger van Bergen Date: Sun Nov 12 14:32:56 2023 +0100 Handle JSON serialization failures commit 48254063af2d3dfad212bb6fa1f92e1484271bc4 Author: keiranhines Date: Sun Nov 12 21:40:54 2023 +1100 removed if statement used for testing palette mode commit 9ac1993177fb02eaa510adc28340582c15a5f45b Author: Joe Schneider Date: Sat Nov 11 12:24:07 2023 -0500 Update jsonserializer.cpp to break infinite fail Added code to catch instances where SerializeWithBufferSize gets into an *infinite fail loop. Adjusted SaveToJSONFile to handle SerializeWithBufferSize failing. commit e18391620cbfb0af0d61725880c9c671f3a74fc5 Author: Rutger van Bergen Date: Sat Nov 11 10:38:44 2023 +0100 One more commit edabdc116b4c32c98a80fb1070f9b7d50e0bfc49 Merge: fcb70133 202dd4af Author: keiranhines Date: Sat Nov 11 07:33:20 2023 +1100 Merge branch 'feature/configDialog' of github.com:KeiranHines/NightDriverStrip into feature/configDialog commit 922ab31695775a50a0d6dba89b367df8a822b1c6 Author: Rutger van Bergen Date: Fri Nov 10 12:36:26 2023 +0100 Turn off more services commit adba3d2bcc70773bee5a0cb3e35d45888aed7e6f Author: Rutger van Bergen Date: Fri Nov 10 09:57:46 2023 +0100 Disable services commit 9d52bfe117fd90e336c181ff37450119aee9dc13 Author: Rutger van Bergen Date: Fri Nov 10 08:51:46 2023 +0100 Make global colors device settings commit fcb70133d524b374b9871bb69112fa90e858fd0a Author: keiranhines Date: Thu Nov 9 19:07:49 2023 +1100 Fixed issue with inconsistent behaviour of reset and cancel when changing colors multiple times commit 202dd4af508e29b49938832ed82da2550651feec Author: Rutger van Bergen Date: Wed Nov 8 13:17:34 2023 +0100 Make brightness a Slider setting commit bd300ac743f39ae9f612d6125257dc737433619d Author: keiranhines Date: Wed Nov 8 23:03:40 2023 +1100 removed dead code commit f6c7184e2898e937e09cef3c6a9664dc1fb51301 Author: keiranhines Date: Wed Nov 8 23:00:59 2023 +1100 Fixed issues with dialog rendering early and added RGB numeric inputs to the color picker dialog commit d804b148b779ad6fa452e1ee6b2377913a2d1158 Author: keiranhines Date: Wed Nov 8 21:11:31 2023 +1100 Changed circularProgress to LinearProgress commit af6166e4001aad92185e232718f5027db7638926 Merge: d0d752a7 b3f87bab Author: keiranhines Date: Tue Nov 7 09:12:59 2023 +1100 Merge branch 'main' of https://github.com/PlummersSoftwareLLC/NightDriverStrip into feature/designerImprovements commit 64c37780a284fa0a30f3a3aa4e35a148be37086a Author: keiranhines Date: Tue Nov 7 09:10:46 2023 +1100 Changed check for emptyAllowed === false to be more readable commit cdbd64190e76001db7861687b30d2f8a67ab6750 Author: keiranhines Date: Mon Nov 6 23:45:49 2023 +1100 Code cleanup of debug messages commit 3f8f9c85ea1ffd71f64126e4e157e4dbddf9de31 Author: keiranhines Date: Mon Nov 6 23:43:06 2023 +1100 Added support for Slider Type commit 91dcf8c542090b92ec973f21d9fc47829df4906a Author: keiranhines Date: Mon Nov 6 23:35:35 2023 +1100 Fix #493 point 3: Added support for a palette configuration in the config dialog commit 42847e394ccc74525fae1145931bb551a268044e Author: keiranhines Date: Mon Nov 6 22:43:37 2023 +1100 Fix #493 point 2: Added support for a color picker and implemented the Color Type in the config dialog. Added Support for selection colors in PatternSubscribers as a test case commit 437e0a2723dcc3f242ef54c23469854ae6d0cd61 Author: keiranhines Date: Mon Nov 6 20:45:22 2023 +1100 Initial work on setting up a test for setting color commit 7bb75170c531af09573d1ebf831a613b784da2a1 Author: keiranhines Date: Mon Nov 6 18:39:18 2023 +1100 Fixed #491 point 1: emptyAllowed now handled for strings with an error message. For all other types if emptyAllowed is set and no error is raised the original value will be sent as a fallback commit b3f87babc4402e0125c70fdeacd506cdb3991568 Merge: 46dca0aa a0c4c3b6 Author: Rutger van Bergen Date: Mon Nov 6 08:09:05 2023 +0100 Merge pull request #478 from KeiranHines/optionalSettings Config dialog improvements commit 564197f7a30e89ff73079366232f040357d191e0 Merge: 5c61b231 46dca0aa Author: David W Plummer Date: Sun Nov 5 13:17:36 2023 -0800 Merge branch 'PlummersSoftwareLLC:main' into main commit 46dca0aafe12671553bcae9eb893b057c5a9b2d3 Merge: 070b5a37 68a91a26 Author: Rutger van Bergen Date: Sun Nov 5 13:33:26 2023 +0100 Merge pull request #492 from rbergen/fix-subs-settings-bug Fix Subscribers effect settings serialization bug commit 68a91a26b2b81b9ba2eade91ef48b1a268ab7de6 Author: Rutger van Bergen Date: Sun Nov 5 13:09:47 2023 +0100 Fix settings serialization bug commit 070b5a37e6f1dba494a28e15c283330599da1248 Merge: 67fafbf7 2e091e30 Author: Rutger van Bergen Date: Sun Nov 5 12:56:31 2023 +0100 Merge pull request #490 from rbergen/settingspec-updates Extend SettingSpec commit 2e091e305810c5ce81f3ec20c739d2ff659c468e Merge: a00abc4a 67fafbf7 Author: Rutger van Bergen Date: Sun Nov 5 12:40:22 2023 +0100 Merge remote-tracking branch 'upstream/main' into pr/rbergen/490 commit a00abc4a855a6c9a02b5e7de544bbce127cf4acb Author: Rutger van Bergen Date: Sun Nov 5 12:39:54 2023 +0100 Return actual effect interval commit 67fafbf757aa44c54da5543e763cb3adf01b8bcb Merge: 9ac393c4 67f30766 Author: Rutger van Bergen Date: Sun Nov 5 12:37:31 2023 +0100 Merge pull request #477 from KeiranHines/feature/globalEffectState Feature/global effect state commit d0d752a797099cccfd4a84a140995cb43cb76d9f Author: keiranhines Date: Sun Nov 5 14:40:56 2023 +1100 fixed wrong propType on effect Card commit fba4481f1acb27e0eaadd736db6f12c48b512cb7 Author: keiranhines Date: Sun Nov 5 13:15:21 2023 +1100 Added time remaining and some color to the circular progess in list view commit 586cbf2adfd2cb87eb010b717390650f5c62aafa Author: keiranhines Date: Sun Nov 5 11:59:25 2023 +1100 minor fix to progress circle position commit 1ad8310e49675fd211d92b3585c139fba7d0bd8a Author: keiranhines Date: Sun Nov 5 11:41:53 2023 +1100 Updated list view to include settings cog and various styling changes to support varied screen size commit 5c61b23186045e8d791fa5c68c56e2b9be9e4d7d Author: Dave Plummer Date: Sat Nov 4 14:36:45 2023 -0700 Merge branch 'main' of github.com:davepl/NightDriverStrip commit 0ec84fcb5b4e8c6dcae8c85b1819ef0cdf1db358 Merge: 345b9ac4 2a7af1fc Author: Dave Plummer Date: Sat Nov 4 14:35:52 2023 -0700 Merge branch 'main' of github.com:davepl/NightDriverStrip commit 345b9ac46883521c84df686f0698f0ec45a6d967 Author: Dave Plummer Date: Sat Nov 4 14:35:48 2023 -0700 Make clock pretty, star deep colors commit 14c4f241ef94be8ecdb77ef71c3989bfb7c699dc Merge: 8522cf42 67f30766 Author: keiranhines Date: Sun Nov 5 08:23:27 2023 +1100 Merge branch 'feature/globalEffectState' of github.com:KeiranHines/NightDriverStrip into feature/designerImprovements commit 67f307665b0773b51db90a4ba08daa9b5a099a3f Author: keiranhines Date: Sun Nov 5 08:23:01 2023 +1100 Fixed incorrect time being used to calculate progress animation commit 8522cf428f33df2c2175c02fe0e9b9b4867e30e5 Author: keiranhines Date: Sun Nov 5 08:17:08 2023 +1100 Slight restyling of the list layout commit 9ac393c4bf04411bab9024e48362923bed2c9b9b Merge: 03b2cbef 2a7af1fc Author: Rutger van Bergen Date: Sat Nov 4 20:35:09 2023 +0100 Merge pull request #488 from davepl/main Global Color changes commit 03b2cbefd4f1c50adba3c56e9ef9bcc893b92a32 Merge: 6c35b809 bdc6bbc5 Author: Rutger van Bergen Date: Sat Nov 4 18:27:11 2023 +0100 Merge pull request #489 from robertlipe/main Supernova: dont merge pixels from VU meter at top of screen to bottom. commit 2a7af1fca929e1243886ee219585e9ac79842000 Author: Rutger van Bergen Date: Sat Nov 4 18:26:37 2023 +0100 Remove unnecessary imports commit bdc6bbc54fe1a2b4a32a865ba2ea2dfe0776af08 Author: Robert Lipe Date: Sat Nov 4 08:28:00 2023 -0500 Cosmetic improvements Reduce scope of struct helper class. Rename Object -> DebrisItem Try to make capitalization (struct membbers vs. class vs. loals) consistent. Framerate of 120 was delusional fantasy. 60 is at least reasonable fantasy. enlargedObjectNUM: remove write-only variable commit 1c95857eb3242f0397c333e00a5380ef778d920c Author: Rutger van Bergen Date: Sat Nov 4 11:25:20 2023 +0100 Extend SettingSpec, use extensions commit 257cb8674f5ea2d7953af92dd0444ebb4fdad128 Merge: aa405bf5 fd7a9cdc Author: keiranhines Date: Sat Nov 4 15:50:12 2023 +1100 Merge branch 'feature/globalEffectState' of github.com:KeiranHines/NightDriverStrip into feature/designerImprovements commit fd7a9cdce24dab0ba6c800850656ea0ab2553d35 Author: keiranhines Date: Sat Nov 4 15:49:30 2023 +1100 Cleanup caused by vite cache commit aa405bf5462b2fdd2b691f86c017e6a97cbe1b1a Merge: 3c506470 63f7a517 Author: keiranhines Date: Sat Nov 4 15:44:01 2023 +1100 Merge branch 'feature/globalEffectState' of github.com:KeiranHines/NightDriverStrip into feature/designerImprovements commit 63f7a5172e5629200a0b3f06a9cfef8837126ee3 Author: keiranhines Date: Sat Nov 4 15:42:05 2023 +1100 Migrated from webpack to vite for site bundling due to webpack injecting 'use strict' causing provider based api calls to be called multiple times commit 863dc9c2420c9e299dfb55dd625ebf4048341590 Author: Dave Plummer Date: Fri Nov 3 10:04:23 2023 -0700 Simplify and optimize black body heat color commit cdbbf0ec3a8b98c9dad348191420773f2c7a020a Author: Dave Plummer Date: Fri Nov 3 09:37:49 2023 -0700 Optimize commit c9760545c2d48c99c1ed78f37b76852912feb3d6 Author: Dave Plummer Date: Fri Nov 3 09:18:05 2023 -0700 Fix spaces commit d5fbb972381038bc4de513c04aac4b7a93affa2c Author: Dave Plummer Date: Fri Nov 3 09:16:08 2023 -0700 Fix spacing commit 04a7c2e1e526cd965bba2c55000b7b0dd7b731db Author: Dave Plummer Date: Fri Nov 3 09:14:25 2023 -0700 Remove old palette code commit 584ea84afb66097e42e1a332abaf131d621ebdc0 Author: Dave Plummer Date: Fri Nov 3 09:07:14 2023 -0700 Review changes commit b0f406b3e1bfc33c293fdb7dba6205e1cbb8d891 Merge: 5c8998b8 5d30a8d9 Author: Dave Plummer Date: Fri Nov 3 09:01:45 2023 -0700 Merge branch 'main' of github.com:davepl/NightDriverStrip commit 5c8998b8a6065fb3b1b33029d5be07fc43cb548c Author: Dave Plummer Date: Fri Nov 3 09:01:28 2023 -0700 Review changes commit 5c9da185375e68e6ea575b6c07ec4f9a9359bef2 Author: Robert Lipe Date: Fri Nov 3 04:58:10 2023 -0500 Supernova: dont merge pixels from VU meter at top of screen to bottom. drawPixelXYF() was merging pixels from the VU meter t othe bottom of the line, so if there was sound in the room, red and green smears appared. Fixed by making it better obey the HEIGHT values and compensating for VU. Follow through on my whining to make it look (more) like it was written by a programmer. Generated assembly code is now beautiful with references carrying values across methods. Data is now per-Blob, sequentially accessed, and in a std::array. More importantly, memory is accessed sequentially and locally, just like read-ahead and paging systems like. Most accesses should be cache hits now. These various minor optimizations resultign in 12 FPS improvement according to self-reporting. It _looks_ fast. Fixes #446. Tested with asserts() inserted for out-of-bounds pixel accesses (now remove) and 30+ minutes of running on stock mesmerizer. commit 5d30a8d99627f89fd3b4bdace8efc101cd7af6ee Merge: 829ef0bd 6c35b809 Author: David W Plummer Date: Thu Nov 2 15:27:46 2023 -0700 Merge branch 'PlummersSoftwareLLC:main' into main commit 829ef0bd2b820101981b14875ac7591cb6ca86d0 Author: Dave Plummer Date: Thu Nov 2 15:27:26 2023 -0700 Global color commit 6c35b80926c6545d9b22bc13cd4bcff902388227 Merge: 33ead4d0 fed35254 Author: Rutger van Bergen Date: Wed Nov 1 12:17:02 2023 +0100 Merge pull request #484 from robertlipe/work Remove uncalled function, proto for parse_improv_serial_byte commit fed352541212797c4b82a5061c7de3861dd5c34e Author: Robert Lipe Date: Tue Oct 31 22:25:31 2023 -0500 Remove uncalled function, proto for parse_improv_serial_byte Was replaced by parse_improv_serial_byte_() that's class-local. commit 1a3b6ece1ae5105938fd72168ef6b60b435e94fb Merge: 4956ff1e 33ead4d0 Author: David W Plummer Date: Mon Oct 30 19:25:32 2023 -0700 Merge branch 'PlummersSoftwareLLC:main' into main commit a0c4c3b62ed2dc27c0848fc169990b1815178698 Merge: 5b6286d0 33ead4d0 Author: Rutger van Bergen Date: Mon Oct 30 14:08:02 2023 +0100 Merge remote-tracking branch 'upstream/main' into pr/KeiranHines/478 commit 33ead4d02835e161d04c9a84f42ae4d4221ee437 Merge: 8df4f269 c65a96b3 Author: Rutger van Bergen Date: Mon Oct 30 06:56:28 2023 +0100 Merge pull request #481 from rbergen/fix-480 Swap parameters when writing WiFi config commit c65a96b3a3fcaf3cd0b4c30e2ffe9283db9b2beb Author: Rutger van Bergen Date: Mon Oct 30 06:35:51 2023 +0100 Swap SSID and password commit 5b6286d04941bb1e064aa6af7e06087175468230 Author: keiranhines Date: Mon Oct 30 07:56:36 2023 +1100 Fixed bug with min/max validation not respecting 0 commit 3c50647067d4f0147b3db3bd89985a830ac54912 Author: keiranhines Date: Sun Oct 29 17:53:09 2023 +1100 Fixed bug in code cleanup commit 1d1a065c68c011f698c369269c68f67e02ef6762 Author: keiranhines Date: Sun Oct 29 17:32:24 2023 +1100 minor code cleanup commit ce1792cc270d77c530dc12855392620ccab22852 Author: keiranhines Date: Sun Oct 29 16:39:52 2023 +1100 Fixed #300: Added the ability to reorder cards in list or card view by dragging and dropping a card ontop of another card to take its place. Added support for a 'show disabled' checkbox to show or hide disabled effects from the designer page commit 7defbfa64e7991dc03b27a76c531eaf47767128f Author: keiranhines Date: Sun Oct 29 15:15:50 2023 +1100 #301: Initial work for supporting a list or card view commit fbe93b03be2322e064314e98a478b24e5b05ce16 Author: keiranhines Date: Sun Oct 29 12:22:15 2023 +1100 Fixed #476 added support for configDialog to respect minimumValue and maximumValue provided by the backend. If no min and max is set the dataTypes min and max is used. commit 2010f2050a5ae28d7bfaab34ac301a7283ec9648 Author: keiranhines Date: Sun Oct 29 11:29:42 2023 +1100 Updated Fix #472: changed optional variable to emptyAllowed commit b10ab570172bdcc6f7eaec7eef9a3cd10f962b92 Author: keiranhines Date: Sun Oct 29 11:16:53 2023 +1100 Added a global effects context to enable syncing of time and active effects across components commit f161acd0b8bf57dbb9d546fdfbb2af04eb0d7596 Merge: aebf09cb 8df4f269 Author: keiranhines Date: Sun Oct 29 09:47:28 2023 +1100 Merge branch 'main' of https://github.com/PlummersSoftwareLLC/NightDriverStrip into feature/globalEffectState commit 8df4f2691130b185fbc71e226a6c4f635327f8b6 Merge: 48cf74a2 600b3bb0 Author: Rutger van Bergen Date: Sat Oct 28 16:22:09 2023 +0200 Merge pull request #469 from rbergen/polish-webprojects Update WiFi connection logic and improve Improv logging commit 600b3bb0b0226b29818d7194129b4b2afa6998cd Author: Rutger van Bergen Date: Sat Oct 28 16:06:46 2023 +0200 Fetch index.js instead of index.js.gz commit 10e895199a4b45012d1e3fed54052c9ab5e85e79 Merge: 00cae778 48cf74a2 Author: Rutger van Bergen Date: Sat Oct 28 11:05:43 2023 +0200 Merge upstream/main into polish-webprojects commit 00cae778ae03c5b9f674b639bc89610fdfc164c4 Author: Rutger van Bergen Date: Sat Oct 28 11:02:39 2023 +0200 Rename SettingSpec::Optional to EmptyAllowed commit 84af44c6621ec86c16c519a56362aaed28f4f1c8 Author: keiranhines Date: Sat Oct 28 10:07:45 2023 +1100 Fixed #472 Added support for optional config settings commit 48cf74a2671daf24b76e3765e8d6acd89e78b155 Merge: 5a78b33a 5acefe98 Author: Rutger van Bergen Date: Fri Oct 27 19:47:12 2023 +0200 Merge pull request #474 from rbergen/tiny-fixes More small fixes commit 5acefe98c4192c7235666ecc00beb64bf10bbc30 Author: Rutger van Bergen Date: Fri Oct 27 12:20:12 2023 +0200 Sanitize link between EffectManager and effects commit db16c284d868ca8a9d704c41e1e716ae1eb074f3 Author: Rutger van Bergen Date: Fri Oct 27 11:07:37 2023 +0200 Check for more JSON buffer overflows commit 2adbd9ff99be429aee33288c50ee6cff58d319e4 Author: Rutger van Bergen Date: Wed Oct 25 16:14:29 2023 +0200 Point comma commit 1cf1d150271489a44c1266fd5bd187c3bcba78b3 Author: Rutger van Bergen Date: Wed Oct 25 14:48:19 2023 +0200 Explain IMPROV lines in logging commit 636ba78585f8eb13aec1c672df72fd88979a9e8f Author: Rutger van Bergen Date: Wed Oct 25 12:48:36 2023 +0200 Make hostname a device config setting commit e9ab2f611d60409ccb9e3c538a37599536e647cb Merge: 731ce0e7 5a78b33a Author: Rutger van Bergen Date: Wed Oct 25 11:41:39 2023 +0200 Merge remote-tracking branch 'upstream/main' into polish-webprojects commit 731ce0e7b90171ab787210e38656b6909d081cf8 Author: Rutger van Bergen Date: Tue Oct 24 19:05:38 2023 +0200 Sanitize some things commit 6d1cfdc61a5eaabb91c52859c1e49d8972a65dfe Author: Rutger van Bergen Date: Tue Oct 24 14:26:05 2023 +0200 Only do WiFi when we have WiFi commit b4b1f9fbb4036ce59dad4bc142059ff7ff32850d Author: Rutger van Bergen Date: Tue Oct 24 12:24:24 2023 +0200 Refine reporting on wifi connect result commit 644ab91eeb4f41ca7d61ba107224703d57944e2d Author: Rutger van Bergen Date: Mon Oct 23 15:24:51 2023 +0200 Add logging commit 4390cb94a4b0ebd35e2521917e84222be34631db Author: Rutger van Bergen Date: Mon Oct 23 14:17:38 2023 +0200 Fix WiFi connection refactor commit c45509d2765ff1900f4eaa9df4c06b0477c8d9d8 Author: Rutger van Bergen Date: Mon Oct 23 13:43:19 2023 +0200 Refactor WiFi connection logic commit b39fa5b3f7c5453cb53f8a258e354d0f66c0c00a Author: Rutger van Bergen Date: Sun Oct 22 20:56:57 2023 +0200 Reshuffle startup sequence commit 5a78b33ae34c59d36f085b71336acc77cc5e714a Merge: c7740395 c09acdb4 Author: Rutger van Bergen Date: Sun Oct 22 20:15:07 2023 +0200 Merge pull request #466 from rbergen/check-json-overflow Check for JSON buffer overflows commit 337b34ede8d7593f2bfaf77445271f7681ec55ca Author: Rutger van Bergen Date: Sun Oct 22 20:07:00 2023 +0200 Improve logging further commit 282c3525870d1211f04f50a09f944f16157ba01b Author: Rutger van Bergen Date: Sun Oct 22 16:15:12 2023 +0200 Improve improv logging commit b57549b70b6e3b33767b1196167c96e07cadaa4f Author: Rutger van Bergen Date: Sun Oct 22 12:41:05 2023 +0200 Sanitize S3 device name commit 4956ff1e9ae33969835852892473f51b99f521a5 Merge: 01f97ad8 5bb3b8c4 Author: Dave Plummer Date: Sat Oct 21 14:09:24 2023 -0700 Merge branch 'main' of github.com:davepl/NightDriverStrip commit 01f97ad8b91ae1f7c1a770f03cade2c126c69d88 Author: Dave Plummer Date: Sat Oct 21 14:09:12 2023 -0700 Remove local data commit 5bb3b8c44cd45aa8ba86e7b7d676ec109c90e1e1 Merge: 1cf9c454 c7740395 Author: David W Plummer Date: Sat Oct 21 14:08:21 2023 -0700 Merge branch 'PlummersSoftwareLLC:main' into main commit e6c483dbd901697a526ebe02ae0ddbe84ca4afde Author: Dave Plummer Date: Sat Oct 21 14:07:54 2023 -0700 New sample commit c09acdb42bb6fc7277d22c59759c702bb702fc98 Author: Rutger van Bergen Date: Sat Oct 21 11:38:10 2023 +0200 One closing bracket will do commit 86f48bacb580d9324e225c0d7888828b074e2475 Author: Rutger van Bergen Date: Sat Oct 21 11:36:31 2023 +0200 Add _jsonSize to DeviceConfig commit 12ba3b06a65b4ec9ab4773b7ee5cf50bb50a8d1a Author: Rutger van Bergen Date: Sat Oct 21 09:01:48 2023 +0200 Check of JSON buffer overflow commit c77403951839a435da7c33174b70223b39e151b6 Merge: 4b14c1c8 d880361f Author: Rutger van Bergen Date: Sat Oct 21 04:51:57 2023 +0200 Merge pull request #465 from KeiranHines/dependencyUpdate Dependency update commit d880361f554b6c9af16adbce7748926ed96116a9 Author: keiranhines Date: Sat Oct 21 11:19:24 2023 +1100 Fixed #447: updated bake_site to use install over ci so node_modules are not removed as part of the build commit d4108c32e7efb4c04127d4107f1562e767929a6c Author: keiranhines Date: Sat Oct 21 11:18:31 2023 +1100 Fixed #464: Udpated babel to version 7.23.x commit 4b14c1c8e038bbbb03b014f48a88011fedf402f8 Merge: d16dc796 3f8559e7 Author: Rutger van Bergen Date: Fri Oct 20 18:29:28 2023 +0200 Merge pull request #463 from rbergen/tiny-fixes Some tiny fixes commit 3f8559e7575e6c4b44698e38d194d3fca137f904 Author: Rutger van Bergen Date: Thu Oct 19 12:39:09 2023 +0200 Make statement more robust commit 6182c8c356773c7905d191a25a3887cd552dd793 Author: Rutger van Bergen Date: Thu Oct 19 12:29:01 2023 +0200 Clarify some ArduinoJson specifics commit a30cee261af9ca02f373e040c48fc32e9303f44f Author: Rutger van Bergen Date: Wed Oct 18 02:11:27 2023 +0200 Explain existence of static constant commit fe53ed16768b873146544a494c208f11d4ee4e0d Author: Rutger van Bergen Date: Wed Oct 18 00:39:08 2023 +0200 Keep NUM_INFO_PAGES within values we can work with commit 4c879f2ba192da6b9615df858bb66ff1f89c487d Author: Rutger van Bergen Date: Wed Oct 18 00:06:16 2023 +0200 Small number of tiny fixes commit d16dc796e72c18de0f0f02e203a3d2811e6bb52a Merge: fdd79e3f d3561d50 Author: Rutger van Bergen Date: Tue Oct 10 05:05:09 2023 +0200 Merge pull request #460 from PlummersSoftwareLLC/fix-serialization Bump smallest effect JSON buffer size to 192 bytes commit fdd79e3f02b27058b98eb91fe1e3f327c7e61e3a Merge: ce3f18ec a78dc700 Author: Rutger van Bergen Date: Mon Oct 9 18:12:02 2023 +0200 Merge pull request #459 from revision29/stripbrightness Updated ledstripgfx.cpp to apply system brightness to pixels. commit a78dc700036ad6cb89a76706e9acafd1a2569822 Author: Joe Schneider Date: Mon Oct 9 06:21:14 2023 -0400 Updated brightness code to add space Added spaces commit d3561d50d0019ccebbb2e399e4d80474f476baec Author: Rutger van Bergen Date: Mon Oct 9 08:25:32 2023 +0200 Fix typo commit e0e1df4b5f9f280b7abe8b0b41266b026ee0fec2 Author: Joe Schneider Date: Sun Oct 8 22:43:42 2023 -0400 Changed the fade logic No longer requires a for loop to set the brightness on the LEDs. commit adbe4a637d081c8908b7635c8607668abc10d6b3 Author: Rutger van Bergen Date: Mon Oct 9 00:48:32 2023 +0200 Bump smallest effect JSON buffers to 192 bytes commit a04a53e2dff297416c2fd874241ce1cfdeff68de Author: Joe Schneider Date: Sun Oct 8 16:38:15 2023 -0400 Updated ledstripgfx.cpp to apply system brightness to pixels. After the pixels are added to FastLED, we iterate each one and apply the system level brightness. commit ce3f18ec094def9cc1cd8198efed5de3b3e57bf2 Merge: d9c48c6c 7542bedb Author: Rutger van Bergen Date: Sun Oct 8 11:59:05 2023 +0200 Merge pull request #454 from rbergen/brightness-setting Make brightness a device setting commit 7542bedb2cbeb357f1ec1d76baec2c8b44944f58 Merge: 0a99fafd d9c48c6c Author: Rutger van Bergen Date: Sun Oct 8 10:48:31 2023 +0200 Merge remote-tracking branch 'upstream/main' into brightness-setting commit d9c48c6cff9e1a82bc9f9a6922e869e76abc7ab3 Merge: ee855a88 05fffaa1 Author: Rutger van Bergen Date: Sat Oct 7 21:28:04 2023 +0200 Merge pull request #453 from robertlipe/patch-1 Remove code setting common GPIOS to inputs when ATOMLIGHT ledstripgfx.h commit 0a99fafd791e41cc4def2144669b5c0b39009526 Author: Rutger van Bergen Date: Sat Oct 7 16:02:39 2023 +0200 Clarify type conversions commit 6b4aa31cde294ab9d04a827aa224f6975de577b6 Author: Rutger van Bergen Date: Sat Oct 7 11:02:31 2023 +0200 Cast in the right direction commit 0bda2a23bd71718b61b4af253e6246dbbab17239 Author: Rutger van Bergen Date: Sat Oct 7 10:33:04 2023 +0200 Clamp brightness using standard library commit 60239a513c3c3c91faaf099c43e50c3efbe1536f Author: Rutger van Bergen Date: Fri Oct 6 21:18:43 2023 +0200 Secrets already included by deviceconfig.h commit 23cc6d6cf9f40511e551ad7c0119b8b5134bd7bb Author: Rutger van Bergen Date: Fri Oct 6 20:18:49 2023 +0200 This is why you don't duplicate defaults, kids! commit f071584a1f6fda51530e7365f644f5e79b83d01a Author: Rutger van Bergen Date: Fri Oct 6 19:29:30 2023 +0200 Make brightness a device setting commit 05fffaa145ecee7b12e134dd57256e8a96451ac3 Author: Robert Lipe Date: Thu Oct 5 23:42:53 2023 -0500 Remove code setting common GPIOS to inputs when ATOMLIGHT ledstripgfx.h If a developer put LED_PINn on pins 4, 12, 13, 14, 15, this would have ensured that no data would have ever left the chip. PIN5 would have been OK only because this code "accidientally"? missed it. I'm highly suspicious of this code and doubt that any of us can test it and prove it's correct, we can only inspect it and reason that it's wrong. Do you agree that it's wrong? commit aebf09cbeb8bdaca4a924128b343c330a5913973 Author: Keiran Hines Date: Sun Oct 1 19:28:17 2023 +1100 Added sync callback to save of settings dialog commit 9623f8bd42a58a8e2edf7516a85453212180cdb0 Author: Keiran Hines Date: Sun Oct 1 12:19:25 2023 +1100 Added an effect context for managing timers and effects globally commit 1cf9c45485ffadcd1978b5ecf505b12a37c82f16 Merge: 3d59ffeb d8156bc8 Author: Dave Plummer Date: Thu Sep 28 19:58:33 2023 -0700 Merge branch 'main' of github.com:davepl/NightDriverStrip commit 3d59ffebdedf60eace1f3bbb7f1f6d2435887169 Author: Dave Plummer Date: Thu Sep 28 19:57:28 2023 -0700 Tweak Metaballs commit eb15e606e4ff8006209272b5f503835515f9508b Author: Dave Plummer Date: Sun Sep 24 16:59:11 2023 -0700 Add SerializeToJSon --- .gitignore | 7 +- README.md | 36 +- WebInstaller/esp32webtools/esp32-D3NakGZR.js | 1 + WebInstaller/esp32webtools/esp32-a9803540.js | 1 - .../esp32webtools/esp32c3-f0131a39.js | 1 - .../esp32webtools/esp32c3-ulVL_2_M.js | 1 + .../esp32webtools/esp32c6-cpWtm3Jj.js | 1 + .../esp32webtools/esp32h2-vvZklO0u.js | 1 + .../esp32webtools/esp32s2-f85adcad.js | 1 - .../esp32webtools/esp32s2-wDMulds7.js | 1 + .../esp32webtools/esp32s3-8a735102.js | 1 - .../esp32webtools/esp32s3-x90QvIED.js | 1 + ...sp8266-0d3fa04d.js => esp8266-QjDUxVMt.js} | 2 +- .../{index-ad9ce506.js => index-drxht7Uc.js} | 6 +- WebInstaller/esp32webtools/install-button.js | 2 +- ...2aee1312.js => install-dialog-28H-HNrD.js} | 64 +- .../{rom-7e8b4fbe.js => rom-tSFQmLD2.js} | 0 ...{styles-e96248a3.js => styles-QAqj_a9t.js} | 30 +- assets/Clouds.psd | Bin 27426 -> 0 bytes assets/CloudsANDSUN.psd | Bin 32846 -> 0 bytes assets/InstructionSheet.docx | Bin 0 -> 1014565 bytes assets/JUSTSUN.psd | Bin 27337 -> 0 bytes assets/RAINYCLOUD.psd | Bin 32846 -> 0 bytes assets/WeatherIcons.psd | Bin 40841 -> 0 bytes assets/bmp/brokenclouds.jpg | Bin 807 -> 650 bytes assets/bmp/brokencloudsnight.jpg | Bin 0 -> 545 bytes assets/bmp/clearnight.jpg | Bin 0 -> 548 bytes assets/bmp/clearsky.jpg | Bin 904 -> 708 bytes assets/bmp/cloudy.jpg | Bin 0 -> 335 bytes assets/bmp/cloudynight.jpg | Bin 0 -> 341 bytes assets/bmp/fewclouds.jpg | Bin 870 -> 706 bytes assets/bmp/fewcloudsnight.jpg | Bin 0 -> 556 bytes assets/bmp/mist.jpg | Bin 867 -> 369 bytes assets/bmp/mistnight.jpg | Bin 0 -> 369 bytes assets/bmp/rain.jpg | Bin 847 -> 589 bytes assets/bmp/rainnight.jpg | Bin 0 -> 588 bytes assets/bmp/scatteredclouds.jpg | Bin 809 -> 698 bytes assets/bmp/scatteredcloudsnight.jpg | Bin 0 -> 573 bytes assets/bmp/showerrain.jpg | Bin 851 -> 605 bytes assets/bmp/showerrainnight.jpg | Bin 0 -> 605 bytes assets/bmp/snow.jpg | Bin 925 -> 629 bytes assets/bmp/snownight.jpg | Bin 0 -> 632 bytes assets/bmp/thunderstorm.jpg | Bin 838 -> 579 bytes assets/bmp/thunderstormnight.jpg | Bin 0 -> 575 bytes assets/bmp/weather/01d.png | Bin 2036 -> 0 bytes assets/bmp/weather/02d.png | Bin 2047 -> 0 bytes assets/bmp/weather/03d.png | Bin 2029 -> 0 bytes assets/bmp/weather/04d.png | Bin 2049 -> 0 bytes assets/bmp/weather/09d.png | Bin 2063 -> 0 bytes assets/bmp/weather/10d.png | Bin 2265 -> 0 bytes assets/bmp/weather/11d.png | Bin 2451 -> 0 bytes assets/bmp/weather/13d.png | Bin 2457 -> 0 bytes assets/bmp/weather/50d.png | Bin 2406 -> 0 bytes assets/gif/atomic.gif | Bin 0 -> 21221 bytes assets/gif/banana.gif | Bin 0 -> 3904 bytes assets/gif/colorsphere.gif | Bin 0 -> 41576 bytes assets/gif/firelog.gif | Bin 0 -> 48485 bytes assets/gif/nyancat.gif | Bin 0 -> 20023 bytes assets/gif/pacman.gif | Bin 0 -> 35784 bytes assets/gif/tesseract.gif | Bin 0 -> 23682 bytes assets/gif/threerings.gif | Bin 0 -> 9248 bytes config/feature_flags.json | 58 + .../index.html => config/installer_index.html | 9 +- config/manifest_template.json | 1 + config/manifest_template_merged.json | 1 + config/web_projects.json | 19 +- include/colordata.h | 1 + include/deviceconfig.h | 247 +- include/effectmanager.h | 150 +- include/effects.h | 7 + include/effects/matrix/Boid.h | 19 + include/effects/matrix/Geometry.h | 5 + include/effects/matrix/PatternAlienText.h | 14 + include/effects/matrix/PatternAnimatedGIF.h | 299 + include/effects/matrix/PatternBounce.h | 25 + include/effects/matrix/PatternCircuit.h | 33 +- include/effects/matrix/PatternClock.h | 56 +- include/effects/matrix/PatternCube.h | 15 + include/effects/matrix/PatternLife.h | 51 +- include/effects/matrix/PatternMandala.h | 19 + include/effects/matrix/PatternMaze.h | 29 + include/effects/matrix/PatternPulse.h | 2 +- include/effects/matrix/PatternSMAmberRain.h | 9 +- .../effects/matrix/PatternSMBlurringColors.h | 242 +- include/effects/matrix/PatternSMFire2021.h | 60 +- .../effects/matrix/PatternSMHolidayLights.h | 72 +- include/effects/matrix/PatternSMHypnosis.h | 11 +- include/effects/matrix/PatternSMMetaBalls.h | 3 +- include/effects/matrix/PatternSMNoise.h | 6 +- include/effects/matrix/PatternSMPicasso3in1.h | 15 +- include/effects/matrix/PatternSMRadialFire.h | 11 +- include/effects/matrix/PatternSMRadialWave.h | 17 +- .../effects/matrix/PatternSMRainbowTunnel.h | 7 +- include/effects/matrix/PatternSMSmoke.h | 27 +- include/effects/matrix/PatternSMSpiroPulse.h | 11 +- include/effects/matrix/PatternSMStarDeep.h | 15 +- .../effects/matrix/PatternSMStrobeDiffusion.h | 5 +- include/effects/matrix/PatternSMSupernova.h | 174 +- .../effects/matrix/PatternSMWalkingMachine.h | 20 +- include/effects/matrix/PatternSerendipity.h | 2 +- include/effects/matrix/PatternSubscribers.h | 47 +- include/effects/matrix/PatternSwirl.h | 7 +- include/effects/matrix/PatternWeather.h | 328 +- include/effects/matrix/spectrumeffects.h | 107 +- include/effects/strip/bouncingballeffect.h | 18 +- include/effects/strip/doublepaletteeffect.h | 4 +- include/effects/strip/faneffects.h | 14 +- include/effects/strip/fireeffect.h | 74 +- include/effects/strip/laserline.h | 11 +- include/effects/strip/meteoreffect.h | 8 +- include/effects/strip/misceffects.h | 100 +- include/effects/strip/musiceffect.h | 13 +- include/effects/strip/paletteeffect.h | 4 +- include/effects/strip/particles.h | 28 +- include/effects/strip/snakeeffect.h | 4 +- include/effects/strip/stareffect.h | 40 +- include/effects/strip/tempeffect.h | 4 +- include/gfxbase.h | 8 +- include/globals.h | 441 +- include/improv.h | 15 +- include/improvserial.h | 126 +- include/jsonserializer.h | 2 +- include/ledmatrixgfx.h | 19 +- include/ledstripeffect.h | 48 +- include/ledstripgfx.h | 11 +- include/network.h | 31 +- include/remote_custom.h | 357 + include/remote_custom_helpers.h | 267 + include/secrets.example.h | 3 +- include/soundanalyzer.h | 26 +- include/taskmgr.h | 7 - include/types.h | 52 +- include/values.h | 4 +- include/webserver.h | 15 +- platformio.ini | 91 +- samples/videoserver/VideoServer2.py | 7 +- samples/videoserver/pcstats.py | 130 + samples/videoserver/videoserver.py | 2 +- site/package-lock.json | 13358 +++++----------- site/package.json | 28 +- .../components/home/config/configDialog.jsx | 359 +- .../home/designer/countdown/countdown.jsx | 38 +- .../home/designer/countdown/style.jsx | 6 +- .../src/components/home/designer/designer.jsx | 194 +- .../home/designer/effect/effect.jsx | 149 +- .../components/home/designer/effect/style.jsx | 15 +- site/src/components/home/designer/style.jsx | 11 +- site/src/components/home/home.jsx | 43 +- site/src/context/effectsContext.jsx | 66 + site/src/index.html | 2 +- site/src/main.jsx | 11 +- site/src/util/time.js | 20 + site/vite.config.js | 47 + site/webpack.config.js | 77 - src/audio.cpp | 11 +- src/colordata.cpp | 13 + src/deviceconfig.cpp | 74 +- src/drawing.cpp | 6 +- src/effectmanager.cpp | 126 +- src/effects.cpp | 173 +- src/improv.cpp | 50 - src/jsonserializer.cpp | 34 +- src/ledmatrixgfx.cpp | 8 +- src/ledstripgfx.cpp | 4 +- src/main.cpp | 91 +- src/network.cpp | 155 +- src/remotecontrol.cpp | 265 +- src/screen.cpp | 31 +- src/webserver.cpp | 126 +- tools/-defines-.cpp | 30 + .../NightDriverStrip.postman_collection.json | 24 +- tools/bake_installer.py | 68 +- tools/bake_site.py | 2 +- tools/show_features.py | 134 + 174 files changed, 8539 insertions(+), 11707 deletions(-) create mode 100644 WebInstaller/esp32webtools/esp32-D3NakGZR.js delete mode 100644 WebInstaller/esp32webtools/esp32-a9803540.js delete mode 100644 WebInstaller/esp32webtools/esp32c3-f0131a39.js create mode 100644 WebInstaller/esp32webtools/esp32c3-ulVL_2_M.js create mode 100644 WebInstaller/esp32webtools/esp32c6-cpWtm3Jj.js create mode 100644 WebInstaller/esp32webtools/esp32h2-vvZklO0u.js delete mode 100644 WebInstaller/esp32webtools/esp32s2-f85adcad.js create mode 100644 WebInstaller/esp32webtools/esp32s2-wDMulds7.js delete mode 100644 WebInstaller/esp32webtools/esp32s3-8a735102.js create mode 100644 WebInstaller/esp32webtools/esp32s3-x90QvIED.js rename WebInstaller/esp32webtools/{esp8266-0d3fa04d.js => esp8266-QjDUxVMt.js} (57%) rename WebInstaller/esp32webtools/{index-ad9ce506.js => index-drxht7Uc.js} (95%) rename WebInstaller/esp32webtools/{install-dialog-2aee1312.js => install-dialog-28H-HNrD.js} (59%) rename WebInstaller/esp32webtools/{rom-7e8b4fbe.js => rom-tSFQmLD2.js} (100%) rename WebInstaller/esp32webtools/{styles-e96248a3.js => styles-QAqj_a9t.js} (62%) delete mode 100644 assets/Clouds.psd delete mode 100644 assets/CloudsANDSUN.psd create mode 100644 assets/InstructionSheet.docx delete mode 100644 assets/JUSTSUN.psd delete mode 100644 assets/RAINYCLOUD.psd delete mode 100644 assets/WeatherIcons.psd create mode 100644 assets/bmp/brokencloudsnight.jpg create mode 100644 assets/bmp/clearnight.jpg create mode 100644 assets/bmp/cloudy.jpg create mode 100644 assets/bmp/cloudynight.jpg create mode 100644 assets/bmp/fewcloudsnight.jpg create mode 100644 assets/bmp/mistnight.jpg create mode 100644 assets/bmp/rainnight.jpg create mode 100644 assets/bmp/scatteredcloudsnight.jpg create mode 100644 assets/bmp/showerrainnight.jpg create mode 100644 assets/bmp/snownight.jpg create mode 100644 assets/bmp/thunderstormnight.jpg delete mode 100644 assets/bmp/weather/01d.png delete mode 100644 assets/bmp/weather/02d.png delete mode 100644 assets/bmp/weather/03d.png delete mode 100644 assets/bmp/weather/04d.png delete mode 100644 assets/bmp/weather/09d.png delete mode 100644 assets/bmp/weather/10d.png delete mode 100644 assets/bmp/weather/11d.png delete mode 100644 assets/bmp/weather/13d.png delete mode 100644 assets/bmp/weather/50d.png create mode 100644 assets/gif/atomic.gif create mode 100644 assets/gif/banana.gif create mode 100644 assets/gif/colorsphere.gif create mode 100644 assets/gif/firelog.gif create mode 100644 assets/gif/nyancat.gif create mode 100644 assets/gif/pacman.gif create mode 100644 assets/gif/tesseract.gif create mode 100644 assets/gif/threerings.gif create mode 100644 config/feature_flags.json rename WebInstaller/index.html => config/installer_index.html (98%) mode change 100755 => 100644 create mode 100644 include/effects/matrix/PatternAnimatedGIF.h create mode 100644 include/remote_custom.h create mode 100644 include/remote_custom_helpers.h create mode 100644 samples/videoserver/pcstats.py create mode 100644 site/src/context/effectsContext.jsx create mode 100644 site/src/util/time.js create mode 100644 site/vite.config.js delete mode 100644 site/webpack.config.js create mode 100644 tools/-defines-.cpp create mode 100755 tools/show_features.py diff --git a/.gitignore b/.gitignore index 8471eb65f..27270e5cf 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .vscode/** NightDriverStrip.code-workspace src/uzlib/src/*.o +src/-defines-.cpp .history include/secrets.h lib/* @@ -15,8 +16,10 @@ WebInstaller/assets/** WebInstaller/firmware/** WebInstaller/manifests/** WebInstaller/web_projects.json +WebInstaller/index.html .idea/** tools/__pycache__ site/yarn-error.log -site/dist -platformio.ini +site/dist +**/custom_*.h +custom_*.ini \ No newline at end of file diff --git a/README.md b/README.md index 5cb3760a3..db38a69df 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ _Davepl, 9/19/2021_ - [Wifi setup](#wifi-setup) - [Feature defines](#feature-defines) - [Adding new effects](#adding-new-effects) +- [Notes on JSON persistence](#notes-on-json-persistence) - [Resetting the effect list](#resetting-the-effect-list) - [Fetching things from the Internet](#fetching-things-from-the-internet) - [Build pointers](#build-pointers) @@ -64,7 +65,7 @@ Please follow these steps to flash and, if supported, set up WiFi on your device 3. Select your device (like "M5StickC Plus") from the drop-down list. A second drop-down with supported projects on that device will then appear. -4. Select the project you want to flash in the second drop-down. When you do, a CONNECT button will appear below it. +4. Select the project you want to flash in the second drop-down. When you do, a CONNECT button will appear below it. Note that each project's label includes an indication of the key features enabled in the build in question. The legend for each of the feature letters is shown below the project drop-down. 5. Click the CONNECT button. A dialog will apear asking you to select a serial port. Depending on your system, it may show only one or a list of them. In case multiple are shown, it'll generally be the one plainly called "USB Serial Port (COMn)". Select the correct port and click Connect. @@ -86,7 +87,7 @@ Please follow these steps to flash and, if supported, set up WiFi on your device 11. In the WiFi connection information dialog, select or enter your SSID and password. Click CONNECT. In some cases, the WiFi connection dialog appears again after a successful connection was actually made. In that case, click SKIP. It is also possible that a time-out is reported while WiFi has actually successfully connected. In that case, click BACK. -12. Now, a dialog will appear that will show the details of the project you flashed. It will also provide options to flash again and show the device's logs & console. Furthermore, if your device supports WiFi then options will be available to visit the device's web application or change the WiFi settings. Note that if you flashed a device image that includes the web server/web application, it may take a minute or so to come up after the connection to the WiFi network has been made. +12. Now, a dialog will appear that will show the details of the project you flashed. It will also provide options to flash again and show the device's logs & console. Furthermore, if your device supports WiFi then options will be available to visit the device's web application (provided the on-device web server is also enabled) or change the WiFi settings. Note that if you flashed a device image that includes the web server/web application, it may take a minute or so to come up after the connection to the WiFi network has been made. ### Reconfiguring WiFi using the Web Installer @@ -215,11 +216,23 @@ That simplest configuration, called here simply 'DEMO', is provided by a board s These [build types](#build-pointers) may be chosen by the '-e' argument to pio or in a menu option inside the PlatformIO IDE/VS Code. -Concerning JSON peristence: the effects table is persisted to a JSON file on SPIFFS at regular intervals, to retain the state of effects (and in fact the whole effect list) across reboots. This is largely in preparation for future updates to NightDriverStrip, where the composition of the effect list configuration of individual effects can be changed using the device web application. The API endpoints to facilitate this are already available and ready for use (see [Device web UI and API](#device-web-ui-and-api), below.) +## Notes on JSON persistence -This makes that an override of `SerializeToJSON()` and a corresponding deserializing constructor must be provided for effects that need (or want) to persist more than the friendly name and effect number. Those two properties are (de)serialized from/to JSON by `LEDStripEffect` by default. +The effects table is persisted to a JSON file on SPIFFS at regular intervals, to retain the state of effects (and in fact the whole effect list) across reboots. This is largely in preparation for future updates to NightDriverStrip, where the composition of the effect list configuration of individual effects can be changed using the device web application. The API endpoints to facilitate this are already available and ready for use (see [Device web UI and API](#device-web-ui-and-api), below.) -**Note**: in line with the convention in ArduinoJson, which is the library used by the JSON serialization logic, `SerializeToJSON()` _must_ return `true` _except_ when an ArduinoJson function (like `JsonObject::set()`) returns `false` to indicate it ran out of buffer memory. Any `SerializeToJSON()` function returning `false` will trigger an increase in the serialization buffer and a restart of the serialization process. +This makes that an override of `SerializeToJSON()` and a corresponding deserializing constructor must be provided for effects that need (or want) to persist more than the properties that are (de)serialized from/to JSON by `LEDStripEffect` by default. + +Throughout the project, the library used for JSON handling and (de)serialization is [ArduinoJson](https://arduinojson.org/). Among others, this means that: + +- in line with the convention in ArduinoJson, `SerializeToJSON()` functions _must_ return `true` _except_ when an ArduinoJson function (like `JsonObject::set()`) returns `false` to indicate it ran out of buffer memory. Any `SerializeToJSON()` function returning `false` will trigger an increase in the overall serialization buffer and a restart of the serialization process. +- the memory required for an individual class instance's (de)serialization operation needs to be reserved _beforehand_, by creating either: + + - a `StaticJsonDocument<`_buffer size_`>()` that reserves memory on the stack. This can be used for small buffer sizes (smaller than 1024 bytes) only. + - an `AllocatedJsonDocument(`_buffer size_`)` that reserves memory on the heap. + + How much memory is actually required depends on the number, type and contents of the (de)serialized properties, and is effectively a bit of a guessing game - which means the values you'll see throughout the codebase are educated guesses as well. When properties that are serialized last fail to show up in the JSON that is generated, it is reasonable to assume the serialization process ran out of buffer memory and that buffer memory thus needs to be increased. + +To get a better understanding of the specifics related to JSON (de)serialization, you could consider taking a look at the respective tutorials in the ["First contact" section](https://arduinojson.org/v6/doc/#first-contact) of the ArduinoJson documentation. ## Resetting the effect list @@ -337,6 +350,19 @@ Add whatever you want and/or need to make your LED dreams come true. Fix my blun ## Time it takes to build this project +To replicate, build the mesmerizer project. Then delete pio/build_cache and build again, taking the time for the second build. + +- HP Z6 G5A, 7995WX, 128GB [96-core, 192-thread] + -> [davepl 11/29/2023] 25.270 seconds + +- 3970X, 128GB [32-core, 64-thread] Windows11+WSL2/Ubuntu02.04LTS + -> [davepl 11/29/2023] 34.292 seconds + +- Mac M1 Ultra Studio [10-core, 20-thread] + -> [davepl 11/29/2023] 48.368 seconds + +## Old Build times, no longer relevant with current platformio, just historical curiosity: + Time to build the SPECTRUM config (`pio run -e spectrum`). Assumes a clean build after everything has been installed and downloaded. - AMD 3970 32-cores, 128GB, RAID SSD diff --git a/WebInstaller/esp32webtools/esp32-D3NakGZR.js b/WebInstaller/esp32webtools/esp32-D3NakGZR.js new file mode 100644 index 000000000..d59e6dd6b --- /dev/null +++ b/WebInstaller/esp32webtools/esp32-D3NakGZR.js @@ -0,0 +1 @@ +import{R as A}from"./rom-tSFQmLD2.js";var C=1074521560,I="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",g=1074520064,B="GOv8P9jnC0Bx6AtA8+wLQO3oC0CP6AtA7egLQEnpC0AG6gtAeOoLQCHqC0CB5wtAo+kLQPjpC0Bn6QtAmuoLQI7pC0Ca6gtAXegLQLPoC0Dt6AtASekLQHfoC0BM6wtAs+wLQKXmC0DX7AtApeYLQKXmC0Cl5gtApeYLQKXmC0Cl5gtApeYLQKXmC0Dz6gtApeYLQM3rC0Cz7AtA",i=1073605544;class E extends A{constructor(){super(...arguments),this.CHIP_NAME="ESP32",this.IMAGE_CHIP_ID=0,this.EFUSE_RD_REG_BASE=1073061888,this.DR_REG_SYSCON_BASE=1073111040,this.UART_CLKDIV_REG=1072955412,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612856,this.XTAL_CLK_DIVIDER=1,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=4096,this.SPI_REG_BASE=1072963584,this.SPI_USR_OFFS=28,this.SPI_USR1_OFFS=32,this.SPI_USR2_OFFS=36,this.SPI_W0_OFFS=128,this.SPI_MOSI_DLEN_OFFS=40,this.SPI_MISO_DLEN_OFFS=44,this.TEXT_START=g,this.ENTRY=C,this.DATA_START=i,this.ROM_DATA=B,this.ROM_TEXT=I}async read_efuse(A,C){const I=this.EFUSE_RD_REG_BASE+4*C;return A.debug("Read efuse "+I),await A.read_reg(I)}async get_pkg_version(A){const C=await this.read_efuse(A,3);let I=C>>9&7;return I+=(C>>2&1)<<3,I}async get_chip_revision(A){const C=await this.read_efuse(A,3),I=await this.read_efuse(A,5),g=await A.read_reg(this.DR_REG_SYSCON_BASE+124);return 0!=(C>>15&1)?0!=(I>>20&1)?0!=(g>>31&1)?3:2:1:0}async get_chip_description(A){const C=["ESP32-D0WDQ6","ESP32-D0WD","ESP32-D2WD","","ESP32-U4WDH","ESP32-PICO-D4","ESP32-PICO-V3-02"];let I="";const g=await this.get_pkg_version(A),B=await this.get_chip_revision(A),i=3==B;return 0!=(1&await this.read_efuse(A,3))&&(C[0]="ESP32-S0WDQ6",C[1]="ESP32-S0WD"),i&&(C[5]="ESP32-PICO-V3"),I=g>=0&&g<=6?C[g]:"Unknown ESP32",!i||0!==g&&1!==g||(I+="-V3"),I+" (revision "+B+")"}async get_chip_features(A){const C=["Wi-Fi"],I=await this.read_efuse(A,3);0===(2&I)&&C.push(" BT");0!==(1&I)?C.push(" Single Core"):C.push(" Dual Core");if(0!==(8192&I)){0!==(4096&I)?C.push(" 160MHz"):C.push(" 240MHz")}const g=await this.get_pkg_version(A);-1!==[2,4,5,6].indexOf(g)&&C.push(" Embedded Flash"),6===g&&C.push(" Embedded PSRAM");0!==(await this.read_efuse(A,4)>>8&31)&&C.push(" VRef calibration in efuse");0!==(I>>14&1)&&C.push(" BLK3 partially reserved");const B=3&await this.read_efuse(A,6);return C.push(" Coding Scheme "+["None","3/4","Repeat (UNSUPPORTED)","Invalid"][B]),C}async get_crystal_freq(A){const C=await A.read_reg(this.UART_CLKDIV_REG)&this.UART_CLKDIV_MASK,I=A.transport.baudrate*C/1e6/this.XTAL_CLK_DIVIDER;let g;return g=I>33?40:26,Math.abs(g-I)>1&&A.info("WARNING: Unsupported crystal in use"),g}_d2h(A){const C=(+A).toString(16);return 1===C.length?"0"+C:C}async read_mac(A){let C=await this.read_efuse(A,1);C>>>=0;let I=await this.read_efuse(A,2);I>>>=0;const g=new Uint8Array(6);return g[0]=I>>8&255,g[1]=255&I,g[2]=C>>24&255,g[3]=C>>16&255,g[4]=C>>8&255,g[5]=255&C,this._d2h(g[0])+":"+this._d2h(g[1])+":"+this._d2h(g[2])+":"+this._d2h(g[3])+":"+this._d2h(g[4])+":"+this._d2h(g[5])}}export{E as ESP32ROM}; diff --git a/WebInstaller/esp32webtools/esp32-a9803540.js b/WebInstaller/esp32webtools/esp32-a9803540.js deleted file mode 100644 index 2f7596a1e..000000000 --- a/WebInstaller/esp32webtools/esp32-a9803540.js +++ /dev/null @@ -1 +0,0 @@ -import{R as A}from"./rom-7e8b4fbe.js";var g=1074521556,C="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",I=1074520064,E="GOv8P9TnC0Bt6AtA7+wLQOnoC0CL6AtA6egLQEXpC0AC6gtAdOoLQB3qC0B95wtAn+kLQPTpC0Bj6QtAluoLQIrpC0CW6gtAWegLQK/oC0Dp6AtARekLQHPoC0BI6wtAr+wLQKHmC0DT7AtAoeYLQKHmC0Ch5gtAoeYLQKHmC0Ch5gtAoeYLQKHmC0Dv6gtAoeYLQMnrC0Cv7AtA",i=1073605544;class B extends A{constructor(){super(...arguments),this.CHIP_NAME="ESP32",this.IMAGE_CHIP_ID=0,this.EFUSE_RD_REG_BASE=1073061888,this.DR_REG_SYSCON_BASE=1073111040,this.UART_CLKDIV_REG=1072955412,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612856,this.XTAL_CLK_DIVIDER=1,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=4096,this.SPI_REG_BASE=1072963584,this.SPI_USR_OFFS=28,this.SPI_USR1_OFFS=32,this.SPI_USR2_OFFS=36,this.SPI_W0_OFFS=128,this.SPI_MOSI_DLEN_OFFS=40,this.SPI_MISO_DLEN_OFFS=44,this.TEXT_START=I,this.ENTRY=g,this.DATA_START=i,this.ROM_DATA=E,this.ROM_TEXT=C}async read_efuse(A,g){const C=this.EFUSE_RD_REG_BASE+4*g;return A.debug("Read efuse "+C),await A.read_reg(C)}async get_pkg_version(A){const g=await this.read_efuse(A,3);let C=g>>9&7;return C+=(g>>2&1)<<3,C}async get_chip_revision(A){const g=await this.read_efuse(A,3),C=await this.read_efuse(A,5),I=await A.read_reg(this.DR_REG_SYSCON_BASE+124);return 0!=(g>>15&1)?0!=(C>>20&1)?0!=(I>>31&1)?3:2:1:0}async get_chip_description(A){const g=["ESP32-D0WDQ6","ESP32-D0WD","ESP32-D2WD","","ESP32-U4WDH","ESP32-PICO-D4","ESP32-PICO-V3-02"];let C="";const I=await this.get_pkg_version(A),E=await this.get_chip_revision(A),i=3==E;return 0!=(1&await this.read_efuse(A,3))&&(g[0]="ESP32-S0WDQ6",g[1]="ESP32-S0WD"),i&&(g[5]="ESP32-PICO-V3"),C=I>=0&&I<=6?g[I]:"Unknown ESP32",!i||0!==I&&1!==I||(C+="-V3"),C+" (revision "+E+")"}async get_chip_features(A){const g=["Wi-Fi"],C=await this.read_efuse(A,3);0===(2&C)&&g.push(" BT");0!==(1&C)?g.push(" Single Core"):g.push(" Dual Core");if(0!==(8192&C)){0!==(4096&C)?g.push(" 160MHz"):g.push(" 240MHz")}const I=await this.get_pkg_version(A);-1!==[2,4,5,6].indexOf(I)&&g.push(" Embedded Flash"),6===I&&g.push(" Embedded PSRAM");0!==(await this.read_efuse(A,4)>>8&31)&&g.push(" VRef calibration in efuse");0!==(C>>14&1)&&g.push(" BLK3 partially reserved");const E=3&await this.read_efuse(A,6);return g.push(" Coding Scheme "+["None","3/4","Repeat (UNSUPPORTED)","Invalid"][E]),g}async get_crystal_freq(A){const g=await A.read_reg(this.UART_CLKDIV_REG)&this.UART_CLKDIV_MASK,C=A.transport.baudrate*g/1e6/this.XTAL_CLK_DIVIDER;let I;return I=C>33?40:26,Math.abs(I-C)>1&&A.info("WARNING: Unsupported crystal in use"),I}_d2h(A){const g=(+A).toString(16);return 1===g.length?"0"+g:g}async read_mac(A){let g=await this.read_efuse(A,1);g>>>=0;let C=await this.read_efuse(A,2);C>>>=0;const I=new Uint8Array(6);return I[0]=C>>8&255,I[1]=255&C,I[2]=g>>24&255,I[3]=g>>16&255,I[4]=g>>8&255,I[5]=255&g,this._d2h(I[0])+":"+this._d2h(I[1])+":"+this._d2h(I[2])+":"+this._d2h(I[3])+":"+this._d2h(I[4])+":"+this._d2h(I[5])}}export{B as ESP32ROM}; diff --git a/WebInstaller/esp32webtools/esp32c3-f0131a39.js b/WebInstaller/esp32webtools/esp32c3-f0131a39.js deleted file mode 100644 index 143d22d36..000000000 --- a/WebInstaller/esp32webtools/esp32c3-f0131a39.js +++ /dev/null @@ -1 +0,0 @@ -import{R as A}from"./rom-7e8b4fbe.js";var B=1077413538,E="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",w=1077411840,c="IGvIP1wKOECsCjhABAs4QKgLOEAUDDhAwgs4QCgJOEBkCzhApAs4QBgLOEDYCDhATAs4QNgIOEA2CjhAfAo4QKwKOEAECzhASAo4QIwJOEC8CThARAo4QGYOOECsCjhALA04QB4OOEAYCDhARg44QBgIOEAYCDhAGAg4QBgIOEAYCDhAGAg4QBgIOEAYCDhAyAw4QBgIOEBKDThAHg44QA==",g=1070164912;class F extends A{constructor(){super(...arguments),this.CHIP_NAME="ESP32-C3",this.IMAGE_CHIP_ID=5,this.EFUSE_BASE=1610647552,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1072955412,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612860,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.TEXT_START=w,this.ENTRY=B,this.DATA_START=g,this.ROM_DATA=c,this.ROM_TEXT=E}async get_pkg_version(A){const B=this.EFUSE_BASE+68+12;return await A.read_reg(B)>>21&7}async get_chip_revision(A){const B=this.EFUSE_BASE+68+12;return(await A.read_reg(B)&7<<18)>>18}async get_chip_description(A){let B;B=0===await this.get_pkg_version(A)?"ESP32-C3":"unknown ESP32-C3";return B+=" (revision "+await this.get_chip_revision(A)+")",B}async get_chip_features(A){return["Wi-Fi"]}async get_crystal_freq(A){return 40}_d2h(A){const B=(+A).toString(16);return 1===B.length?"0"+B:B}async read_mac(A){let B=await A.read_reg(this.MAC_EFUSE_REG);B>>>=0;let E=await A.read_reg(this.MAC_EFUSE_REG+4);E=E>>>0&65535;const w=new Uint8Array(6);return w[0]=E>>8&255,w[1]=255&E,w[2]=B>>24&255,w[3]=B>>16&255,w[4]=B>>8&255,w[5]=255&B,this._d2h(w[0])+":"+this._d2h(w[1])+":"+this._d2h(w[2])+":"+this._d2h(w[3])+":"+this._d2h(w[4])+":"+this._d2h(w[5])}get_erase_size(A,B){return B}}export{F as ESP32C3ROM}; diff --git a/WebInstaller/esp32webtools/esp32c3-ulVL_2_M.js b/WebInstaller/esp32webtools/esp32c3-ulVL_2_M.js new file mode 100644 index 000000000..66bd26904 --- /dev/null +++ b/WebInstaller/esp32webtools/esp32c3-ulVL_2_M.js @@ -0,0 +1 @@ +import{R as A}from"./rom-tSFQmLD2.js";var E=1077413532,B="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",w=1077411840,c="IGvIP3YKOEDGCjhAHgs4QMILOEAuDDhA3As4QEIJOEB+CzhAvgs4QDILOEDyCDhAZgs4QPIIOEBQCjhAlgo4QMYKOEAeCzhAYgo4QKYJOEDWCThAXgo4QIAOOEDGCjhARg04QDgOOEAyCDhAYA44QDIIOEAyCDhAMgg4QDIIOEAyCDhAMgg4QDIIOEAyCDhA4gw4QDIIOEBkDThAOA44QA==",g=1070164912;class M extends A{constructor(){super(...arguments),this.CHIP_NAME="ESP32-C3",this.IMAGE_CHIP_ID=5,this.EFUSE_BASE=1610647552,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1072955412,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612860,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.TEXT_START=w,this.ENTRY=E,this.DATA_START=g,this.ROM_DATA=c,this.ROM_TEXT=B}async get_pkg_version(A){const E=this.EFUSE_BASE+68+12;return await A.read_reg(E)>>21&7}async get_chip_revision(A){const E=this.EFUSE_BASE+68+12;return(await A.read_reg(E)&7<<18)>>18}async get_chip_description(A){let E;E=0===await this.get_pkg_version(A)?"ESP32-C3":"unknown ESP32-C3";return E+=" (revision "+await this.get_chip_revision(A)+")",E}async get_chip_features(A){return["Wi-Fi"]}async get_crystal_freq(A){return 40}_d2h(A){const E=(+A).toString(16);return 1===E.length?"0"+E:E}async read_mac(A){let E=await A.read_reg(this.MAC_EFUSE_REG);E>>>=0;let B=await A.read_reg(this.MAC_EFUSE_REG+4);B=B>>>0&65535;const w=new Uint8Array(6);return w[0]=B>>8&255,w[1]=255&B,w[2]=E>>24&255,w[3]=E>>16&255,w[4]=E>>8&255,w[5]=255&E,this._d2h(w[0])+":"+this._d2h(w[1])+":"+this._d2h(w[2])+":"+this._d2h(w[3])+":"+this._d2h(w[4])+":"+this._d2h(w[5])}get_erase_size(A,E){return E}}export{M as ESP32C3ROM}; diff --git a/WebInstaller/esp32webtools/esp32c6-cpWtm3Jj.js b/WebInstaller/esp32webtools/esp32c6-cpWtm3Jj.js new file mode 100644 index 000000000..4bcca09d2 --- /dev/null +++ b/WebInstaller/esp32webtools/esp32c6-cpWtm3Jj.js @@ -0,0 +1 @@ +import{R as A}from"./rom-tSFQmLD2.js";var B=1082132112,E="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",w=1082130432,c="HCuEQEIKgECSCoBA6gqAQI4LgED6C4BAqAuAQA4JgEBKC4BAiguAQP4KgEC+CIBAMguAQL4IgEAcCoBAYgqAQJIKgEDqCoBALgqAQHIJgECiCYBAKgqAQEwOgECSCoBAEg2AQAQOgED+B4BALA6AQP4HgED+B4BA/geAQP4HgED+B4BA/geAQP4HgED+B4BArgyAQP4HgEAwDYBABA6AQA==",g=1082469292;class F extends A{constructor(){super(...arguments),this.CHIP_NAME="ESP32-C6",this.IMAGE_CHIP_ID=13,this.EFUSE_BASE=1611335680,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1072955412,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612860,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.TEXT_START=w,this.ENTRY=B,this.DATA_START=g,this.ROM_DATA=c,this.ROM_TEXT=E}async get_pkg_version(A){const B=this.EFUSE_BASE+68+12;return await A.read_reg(B)>>21&7}async get_chip_revision(A){const B=this.EFUSE_BASE+68+12;return(await A.read_reg(B)&7<<18)>>18}async get_chip_description(A){let B;B=0===await this.get_pkg_version(A)?"ESP32-C6":"unknown ESP32-C6";return B+=" (revision "+await this.get_chip_revision(A)+")",B}async get_chip_features(A){return["Wi-Fi"]}async get_crystal_freq(A){return 40}_d2h(A){const B=(+A).toString(16);return 1===B.length?"0"+B:B}async read_mac(A){let B=await A.read_reg(this.MAC_EFUSE_REG);B>>>=0;let E=await A.read_reg(this.MAC_EFUSE_REG+4);E=E>>>0&65535;const w=new Uint8Array(6);return w[0]=E>>8&255,w[1]=255&E,w[2]=B>>24&255,w[3]=B>>16&255,w[4]=B>>8&255,w[5]=255&B,this._d2h(w[0])+":"+this._d2h(w[1])+":"+this._d2h(w[2])+":"+this._d2h(w[3])+":"+this._d2h(w[4])+":"+this._d2h(w[5])}get_erase_size(A,B){return B}}export{F as ESP32C6ROM}; diff --git a/WebInstaller/esp32webtools/esp32h2-vvZklO0u.js b/WebInstaller/esp32webtools/esp32h2-vvZklO0u.js new file mode 100644 index 000000000..14e93c329 --- /dev/null +++ b/WebInstaller/esp32webtools/esp32h2-vvZklO0u.js @@ -0,0 +1 @@ +import{R as A}from"./rom-tSFQmLD2.js";var B=1082132112,E="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",w=1082130432,g="EACDQEIKgECSCoBA6gqAQI4LgED6C4BAqAuAQA4JgEBKC4BAiguAQP4KgEC+CIBAMguAQL4IgEAcCoBAYgqAQJIKgEDqCoBALgqAQHIJgECiCYBAKgqAQFIOgECSCoBAEg2AQAoOgED+B4BAMg6AQP4HgED+B4BA/geAQP4HgED+B4BA/geAQP4HgED+B4BArgyAQP4HgEAwDYBACg6AQA==",c=1082403756;class F extends A{constructor(){super(...arguments),this.CHIP_NAME="ESP32-H2",this.IMAGE_CHIP_ID=16,this.EFUSE_BASE=1610647552,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1072955412,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612860,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.USB_RAM_BLOCK=2048,this.UARTDEV_BUF_NO_USB=3,this.UARTDEV_BUF_NO=1070526796,this.TEXT_START=w,this.ENTRY=B,this.DATA_START=c,this.ROM_DATA=g,this.ROM_TEXT=E}async get_chip_description(A){return this.CHIP_NAME}async get_chip_features(A){return["BLE","IEEE802.15.4"]}async get_crystal_freq(A){return 32}_d2h(A){const B=(+A).toString(16);return 1===B.length?"0"+B:B}async _post_connect(A){const B=255&await A.read_reg(this.UARTDEV_BUF_NO);A.debug("In _post_connect "+B),B==this.UARTDEV_BUF_NO_USB&&(A.ESP_RAM_BLOCK=this.USB_RAM_BLOCK)}async read_mac(A){let B=await A.read_reg(this.MAC_EFUSE_REG);B>>>=0;let E=await A.read_reg(this.MAC_EFUSE_REG+4);E=E>>>0&65535;const w=new Uint8Array(6);return w[0]=E>>8&255,w[1]=255&E,w[2]=B>>24&255,w[3]=B>>16&255,w[4]=B>>8&255,w[5]=255&B,this._d2h(w[0])+":"+this._d2h(w[1])+":"+this._d2h(w[2])+":"+this._d2h(w[3])+":"+this._d2h(w[4])+":"+this._d2h(w[5])}get_erase_size(A,B){return B}}export{F as ESP32H2ROM}; diff --git a/WebInstaller/esp32webtools/esp32s2-f85adcad.js b/WebInstaller/esp32webtools/esp32s2-f85adcad.js deleted file mode 100644 index 1c3665153..000000000 --- a/WebInstaller/esp32webtools/esp32s2-f85adcad.js +++ /dev/null @@ -1 +0,0 @@ -import{R as A}from"./rom-7e8b4fbe.js";var g=1073907692,C="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",I=1073905664,B="ZCv9PzKLAkC9iwJAgpACQEaMAkDfiwJARowCQKWMAkBujQJA4Y0CQImNAkC8igJAB40CQGCNAkDIjAJABI4CQPKMAkAEjgJAq4sCQAqMAkBGjAJApYwCQMOLAkD+igJAw44CQDmQAkDUiQJAYZACQNSJAkDUiQJA1IkCQNSJAkDUiQJA1IkCQNSJAkDUiQJAYI4CQNSJAkBVjwJAOZACQA==",E=1073622012;class Q extends A{constructor(){super(...arguments),this.CHIP_NAME="ESP32-S2",this.IMAGE_CHIP_ID=2,this.MAC_EFUSE_REG=1061265476,this.EFUSE_BASE=1061265408,this.UART_CLKDIV_REG=1061158932,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612856,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=4096,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1061167104,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_W0_OFFS=88,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.TEXT_START=I,this.ENTRY=g,this.DATA_START=E,this.ROM_DATA=B,this.ROM_TEXT=C}async get_pkg_version(A){const g=this.EFUSE_BASE+68+12;return await A.read_reg(g)>>21&15}async get_chip_description(A){const g=["ESP32-S2","ESP32-S2FH16","ESP32-S2FH32"],C=await this.get_pkg_version(A);return C>=0&&C<=2?g[C]:"unknown ESP32-S2"}async get_chip_features(A){const g=["Wi-Fi"],C=await this.get_pkg_version(A);1==C?g.push("Embedded 2MB Flash"):2==C&&g.push("Embedded 4MB Flash");const I=this.EFUSE_BASE+92+16;return 1==(await A.read_reg(I)>>4&7)&&g.push("ADC and temperature sensor calibration in BLK2 of efuse"),g}async get_crystal_freq(A){return 40}_d2h(A){const g=(+A).toString(16);return 1===g.length?"0"+g:g}async read_mac(A){let g=await A.read_reg(this.MAC_EFUSE_REG);g>>>=0;let C=await A.read_reg(this.MAC_EFUSE_REG+4);C=C>>>0&65535;const I=new Uint8Array(6);return I[0]=C>>8&255,I[1]=255&C,I[2]=g>>24&255,I[3]=g>>16&255,I[4]=g>>8&255,I[5]=255&g,this._d2h(I[0])+":"+this._d2h(I[1])+":"+this._d2h(I[2])+":"+this._d2h(I[3])+":"+this._d2h(I[4])+":"+this._d2h(I[5])}get_erase_size(A,g){return g}}export{Q as ESP32S2ROM}; diff --git a/WebInstaller/esp32webtools/esp32s2-wDMulds7.js b/WebInstaller/esp32webtools/esp32s2-wDMulds7.js new file mode 100644 index 000000000..ca7400274 --- /dev/null +++ b/WebInstaller/esp32webtools/esp32s2-wDMulds7.js @@ -0,0 +1 @@ +import{R as A}from"./rom-tSFQmLD2.js";var g=1073907696,C="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",I=1073905664,B="ZCv9PzaLAkDBiwJAhpACQEqMAkDjiwJASowCQKmMAkByjQJA5Y0CQI2NAkDAigJAC40CQGSNAkDMjAJACI4CQPaMAkAIjgJAr4sCQA6MAkBKjAJAqYwCQMeLAkACiwJAx44CQD2QAkDYiQJAZZACQNiJAkDYiQJA2IkCQNiJAkDYiQJA2IkCQNiJAkDYiQJAZI4CQNiJAkBZjwJAPZACQA==",E=1073622012;class i extends A{constructor(){super(...arguments),this.CHIP_NAME="ESP32-S2",this.IMAGE_CHIP_ID=2,this.MAC_EFUSE_REG=1061265476,this.EFUSE_BASE=1061265408,this.UART_CLKDIV_REG=1061158932,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612856,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=4096,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1061167104,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_W0_OFFS=88,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.TEXT_START=I,this.ENTRY=g,this.DATA_START=E,this.ROM_DATA=B,this.ROM_TEXT=C}async get_pkg_version(A){const g=this.EFUSE_BASE+68+12;return await A.read_reg(g)>>21&15}async get_chip_description(A){const g=["ESP32-S2","ESP32-S2FH16","ESP32-S2FH32"],C=await this.get_pkg_version(A);return C>=0&&C<=2?g[C]:"unknown ESP32-S2"}async get_chip_features(A){const g=["Wi-Fi"],C=await this.get_pkg_version(A);1==C?g.push("Embedded 2MB Flash"):2==C&&g.push("Embedded 4MB Flash");const I=this.EFUSE_BASE+92+16;return 1==(await A.read_reg(I)>>4&7)&&g.push("ADC and temperature sensor calibration in BLK2 of efuse"),g}async get_crystal_freq(A){return 40}_d2h(A){const g=(+A).toString(16);return 1===g.length?"0"+g:g}async read_mac(A){let g=await A.read_reg(this.MAC_EFUSE_REG);g>>>=0;let C=await A.read_reg(this.MAC_EFUSE_REG+4);C=C>>>0&65535;const I=new Uint8Array(6);return I[0]=C>>8&255,I[1]=255&C,I[2]=g>>24&255,I[3]=g>>16&255,I[4]=g>>8&255,I[5]=255&g,this._d2h(I[0])+":"+this._d2h(I[1])+":"+this._d2h(I[2])+":"+this._d2h(I[3])+":"+this._d2h(I[4])+":"+this._d2h(I[5])}get_erase_size(A,g){return g}}export{i as ESP32S2ROM}; diff --git a/WebInstaller/esp32webtools/esp32s3-8a735102.js b/WebInstaller/esp32webtools/esp32s3-8a735102.js deleted file mode 100644 index d77c026d9..000000000 --- a/WebInstaller/esp32webtools/esp32s3-8a735102.js +++ /dev/null @@ -1 +0,0 @@ -import{R as A}from"./rom-7e8b4fbe.js";var g=1077381716,I="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",C=1077379072,B="ZCvKP/KNN0DcjjdAqpM3QGePN0D+jjdAZ483QMaPN0CSkDdABZE3QK2QN0B9jTdAKJA3QISQN0DpjzdAKJE3QBKQN0AokTdAyo43QCmPN0BnjzdAxo83QOKON0C+jTdA6JE3QGOTN0CajDdAiZM3QJqMN0CajDdAmow3QJqMN0CajDdAmow3QJqMN0CajDdAgpE3QJqMN0B9kjdAY5M3QA==",E=1070279676;class Q extends A{constructor(){super(...arguments),this.CHIP_NAME="ESP32-S3",this.IMAGE_CHIP_ID=9,this.EFUSE_BASE=1610641408,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1610612756,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612864,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.USB_RAM_BLOCK=2048,this.UARTDEV_BUF_NO_USB=3,this.UARTDEV_BUF_NO=1070526796,this.TEXT_START=C,this.ENTRY=g,this.DATA_START=E,this.ROM_DATA=B,this.ROM_TEXT=I}async get_chip_description(A){return"ESP32-S3"}async get_chip_features(A){return["Wi-Fi","BLE"]}async get_crystal_freq(A){return 40}_d2h(A){const g=(+A).toString(16);return 1===g.length?"0"+g:g}async _post_connect(A){const g=255&await A.read_reg(this.UARTDEV_BUF_NO);A.debug("In _post_connect "+g),g==this.UARTDEV_BUF_NO_USB&&(A.ESP_RAM_BLOCK=this.USB_RAM_BLOCK)}async read_mac(A){let g=await A.read_reg(this.MAC_EFUSE_REG);g>>>=0;let I=await A.read_reg(this.MAC_EFUSE_REG+4);I=I>>>0&65535;const C=new Uint8Array(6);return C[0]=I>>8&255,C[1]=255&I,C[2]=g>>24&255,C[3]=g>>16&255,C[4]=g>>8&255,C[5]=255&g,this._d2h(C[0])+":"+this._d2h(C[1])+":"+this._d2h(C[2])+":"+this._d2h(C[3])+":"+this._d2h(C[4])+":"+this._d2h(C[5])}get_erase_size(A,g){return g}}export{Q as ESP32S3ROM}; diff --git a/WebInstaller/esp32webtools/esp32s3-x90QvIED.js b/WebInstaller/esp32webtools/esp32s3-x90QvIED.js new file mode 100644 index 000000000..7c644f5c3 --- /dev/null +++ b/WebInstaller/esp32webtools/esp32s3-x90QvIED.js @@ -0,0 +1 @@ +import{R as A}from"./rom-tSFQmLD2.js";var g=1077381696,C="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",I=1077379072,B="ZCvKP8qNN0CvjjdAcJM3QDqPN0DPjjdAOo83QJmPN0BmkDdA2ZA3QIGQN0BVjTdA/I83QFiQN0C8jzdA+5A3QOaPN0D7kDdAnY43QPqON0A6jzdAmY83QLWON0CWjTdAvJE3QDaTN0ByjDdAVpM3QHKMN0ByjDdAcow3QHKMN0ByjDdAcow3QHKMN0ByjDdAVpE3QHKMN0BRkjdANpM3QAQInwAAAAAAAAAYAQQIBQAAAAAAAAAIAQQIBgAAAAAAAAAAAQQIIQAAAAAAIAAAEQQI3AAAAAAAIAAAEQQIDAAAAAAAIAAAAQQIEgAAAAAAIAAAESAoDAAQAQAA",E=1070279668;class Q extends A{constructor(){super(...arguments),this.CHIP_NAME="ESP32-S3",this.IMAGE_CHIP_ID=9,this.EFUSE_BASE=1610641408,this.MAC_EFUSE_REG=this.EFUSE_BASE+68,this.UART_CLKDIV_REG=1610612756,this.UART_CLKDIV_MASK=1048575,this.UART_DATE_REG_ADDR=1610612864,this.FLASH_WRITE_SIZE=1024,this.BOOTLOADER_FLASH_OFFSET=0,this.FLASH_SIZES={"1MB":0,"2MB":16,"4MB":32,"8MB":48,"16MB":64},this.SPI_REG_BASE=1610620928,this.SPI_USR_OFFS=24,this.SPI_USR1_OFFS=28,this.SPI_USR2_OFFS=32,this.SPI_MOSI_DLEN_OFFS=36,this.SPI_MISO_DLEN_OFFS=40,this.SPI_W0_OFFS=88,this.USB_RAM_BLOCK=2048,this.UARTDEV_BUF_NO_USB=3,this.UARTDEV_BUF_NO=1070526796,this.TEXT_START=I,this.ENTRY=g,this.DATA_START=E,this.ROM_DATA=B,this.ROM_TEXT=C}async get_chip_description(A){return"ESP32-S3"}async get_chip_features(A){return["Wi-Fi","BLE"]}async get_crystal_freq(A){return 40}_d2h(A){const g=(+A).toString(16);return 1===g.length?"0"+g:g}async _post_connect(A){const g=255&await A.read_reg(this.UARTDEV_BUF_NO);A.debug("In _post_connect "+g),g==this.UARTDEV_BUF_NO_USB&&(A.ESP_RAM_BLOCK=this.USB_RAM_BLOCK)}async read_mac(A){let g=await A.read_reg(this.MAC_EFUSE_REG);g>>>=0;let C=await A.read_reg(this.MAC_EFUSE_REG+4);C=C>>>0&65535;const I=new Uint8Array(6);return I[0]=C>>8&255,I[1]=255&C,I[2]=g>>24&255,I[3]=g>>16&255,I[4]=g>>8&255,I[5]=255&g,this._d2h(I[0])+":"+this._d2h(I[1])+":"+this._d2h(I[2])+":"+this._d2h(I[3])+":"+this._d2h(I[4])+":"+this._d2h(I[5])}get_erase_size(A,g){return g}}export{Q as ESP32S3ROM}; diff --git a/WebInstaller/esp32webtools/esp8266-0d3fa04d.js b/WebInstaller/esp32webtools/esp8266-QjDUxVMt.js similarity index 57% rename from WebInstaller/esp32webtools/esp8266-0d3fa04d.js rename to WebInstaller/esp32webtools/esp8266-QjDUxVMt.js index abee59f73..be1fd48fe 100644 --- a/WebInstaller/esp32webtools/esp8266-0d3fa04d.js +++ b/WebInstaller/esp32webtools/esp8266-QjDUxVMt.js @@ -1 +1 @@ -import{R as A}from"./rom-7e8b4fbe.js";var I=1074843652,E="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",C=1074843648,g="CIH+PwUFBAACAwcAAwMLALnXEEDv1xBAHdgQQLrYEEBo5xBAHtkQQHTZEEDA2RBAaOcQQILaEED/2hBAwNsQQGjnEEBo5xBAWNwQQGjnEEA33xBAAOAQQDvgEEBo5xBAaOcQQNfgEEBo5xBAv+EQQGXiEECj4xBAY+QQQDTlEEBo5xBAaOcQQGjnEEBo5xBAYuYQQGjnEEBX5xBAkN0QQI/YEECm5RBAq9oQQPzZEEBo5xBA7OYQQDHnEEBo5xBAaOcQQGjnEEBo5xBAaOcQQGjnEEBo5xBAaOcQQCLaEEBf2hBAvuUQQAEAAAACAAAAAwAAAAQAAAAFAAAABwAAAAkAAAANAAAAEQAAABkAAAAhAAAAMQAAAEEAAABhAAAAgQAAAMEAAAABAQAAgQEAAAECAAABAwAAAQQAAAEGAAABCAAAAQwAAAEQAAABGAAAASAAAAEwAAABQAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAACAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAAAAAAAAAAAAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAANAAAADwAAABEAAAATAAAAFwAAABsAAAAfAAAAIwAAACsAAAAzAAAAOwAAAEMAAABTAAAAYwAAAHMAAACDAAAAowAAAMMAAADjAAAAAgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAABQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AAQEAAAEAAAAEAAAA",B=1073720488;class M extends A{constructor(){super(...arguments),this.CHIP_NAME="ESP8266",this.CHIP_DETECT_MAGIC_VALUE=[4293968129],this.EFUSE_RD_REG_BASE=1072693328,this.UART_CLKDIV_REG=1610612756,this.UART_CLKDIV_MASK=1048575,this.XTAL_CLK_DIVIDER=2,this.FLASH_WRITE_SIZE=16384,this.BOOTLOADER_FLASH_OFFSET=0,this.UART_DATE_REG_ADDR=0,this.FLASH_SIZES={"512KB":0,"256KB":16,"1MB":32,"2MB":48,"4MB":64,"2MB-c1":80,"4MB-c1":96,"8MB":128,"16MB":144},this.SPI_REG_BASE=1610613248,this.SPI_USR_OFFS=28,this.SPI_USR1_OFFS=32,this.SPI_USR2_OFFS=36,this.SPI_MOSI_DLEN_OFFS=0,this.SPI_MISO_DLEN_OFFS=0,this.SPI_W0_OFFS=64,this.TEXT_START=C,this.ENTRY=I,this.DATA_START=B,this.ROM_DATA=g,this.ROM_TEXT=E,this.get_chip_features=async A=>{const I=["WiFi"];return"ESP8285"==await this.get_chip_description(A)&&I.push("Embedded Flash"),I}}async read_efuse(A,I){const E=this.EFUSE_RD_REG_BASE+4*I;return A.debug("Read efuse "+E),await A.read_reg(E)}async get_chip_description(A){const I=await this.read_efuse(A,2);return 0!=(16&await this.read_efuse(A,0)|65536&I)?"ESP8285":"ESP8266EX"}async get_crystal_freq(A){const I=await A.read_reg(this.UART_CLKDIV_REG)&this.UART_CLKDIV_MASK,E=A.transport.baudrate*I/1e6/this.XTAL_CLK_DIVIDER;let C;return C=E>33?40:26,Math.abs(C-E)>1&&A.info("WARNING: Detected crystal freq "+E+"MHz is quite different to normalized freq "+C+"MHz. Unsupported crystal in use?"),C}_d2h(A){const I=(+A).toString(16);return 1===I.length?"0"+I:I}async read_mac(A){let I=await this.read_efuse(A,0);I>>>=0;let E=await this.read_efuse(A,1);E>>>=0;let C=await this.read_efuse(A,3);C>>>=0;const g=new Uint8Array(6);return 0!=C?(g[0]=C>>16&255,g[1]=C>>8&255,g[2]=255&C):0==(E>>16&255)?(g[0]=24,g[1]=254,g[2]=52):1==(E>>16&255)?(g[0]=172,g[1]=208,g[2]=116):A.error("Unknown OUI"),g[3]=E>>8&255,g[4]=255&E,g[5]=I>>24&255,this._d2h(g[0])+":"+this._d2h(g[1])+":"+this._d2h(g[2])+":"+this._d2h(g[3])+":"+this._d2h(g[4])+":"+this._d2h(g[5])}get_erase_size(A,I){return I}}export{M as ESP8266ROM}; +import{R as A}from"./rom-tSFQmLD2.js";var I=1074843652,E="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",C=1074843648,g="CIH+PwUFBAACAwcAAwMLALnXEEDv1xBAHdgQQLrYEEBo5xBAHtkQQHTZEEDA2RBAaOcQQILaEED/2hBAwNsQQGjnEEBo5xBAWNwQQGjnEEA33xBAAOAQQDvgEEBo5xBAaOcQQNfgEEBo5xBAv+EQQGXiEECj4xBAY+QQQDTlEEBo5xBAaOcQQGjnEEBo5xBAYuYQQGjnEEBX5xBAkN0QQI/YEECm5RBAq9oQQPzZEEBo5xBA7OYQQDHnEEBo5xBAaOcQQGjnEEBo5xBAaOcQQGjnEEBo5xBAaOcQQCLaEEBf2hBAvuUQQAEAAAACAAAAAwAAAAQAAAAFAAAABwAAAAkAAAANAAAAEQAAABkAAAAhAAAAMQAAAEEAAABhAAAAgQAAAMEAAAABAQAAgQEAAAECAAABAwAAAQQAAAEGAAABCAAAAQwAAAEQAAABGAAAASAAAAEwAAABQAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAACAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAAAAAAAAAAAAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAANAAAADwAAABEAAAATAAAAFwAAABsAAAAfAAAAIwAAACsAAAAzAAAAOwAAAEMAAABTAAAAYwAAAHMAAACDAAAAowAAAMMAAADjAAAAAgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAABQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AAQEAAAEAAAAEAAAA",Q=1073720488;class M extends A{constructor(){super(...arguments),this.CHIP_NAME="ESP8266",this.CHIP_DETECT_MAGIC_VALUE=[4293968129],this.EFUSE_RD_REG_BASE=1072693328,this.UART_CLKDIV_REG=1610612756,this.UART_CLKDIV_MASK=1048575,this.XTAL_CLK_DIVIDER=2,this.FLASH_WRITE_SIZE=16384,this.BOOTLOADER_FLASH_OFFSET=0,this.UART_DATE_REG_ADDR=0,this.FLASH_SIZES={"512KB":0,"256KB":16,"1MB":32,"2MB":48,"4MB":64,"2MB-c1":80,"4MB-c1":96,"8MB":128,"16MB":144},this.SPI_REG_BASE=1610613248,this.SPI_USR_OFFS=28,this.SPI_USR1_OFFS=32,this.SPI_USR2_OFFS=36,this.SPI_MOSI_DLEN_OFFS=0,this.SPI_MISO_DLEN_OFFS=0,this.SPI_W0_OFFS=64,this.TEXT_START=C,this.ENTRY=I,this.DATA_START=Q,this.ROM_DATA=g,this.ROM_TEXT=E,this.get_chip_features=async A=>{const I=["WiFi"];return"ESP8285"==await this.get_chip_description(A)&&I.push("Embedded Flash"),I}}async read_efuse(A,I){const E=this.EFUSE_RD_REG_BASE+4*I;return A.debug("Read efuse "+E),await A.read_reg(E)}async get_chip_description(A){const I=await this.read_efuse(A,2);return 0!=(16&await this.read_efuse(A,0)|65536&I)?"ESP8285":"ESP8266EX"}async get_crystal_freq(A){const I=await A.read_reg(this.UART_CLKDIV_REG)&this.UART_CLKDIV_MASK,E=A.transport.baudrate*I/1e6/this.XTAL_CLK_DIVIDER;let C;return C=E>33?40:26,Math.abs(C-E)>1&&A.info("WARNING: Detected crystal freq "+E+"MHz is quite different to normalized freq "+C+"MHz. Unsupported crystal in use?"),C}_d2h(A){const I=(+A).toString(16);return 1===I.length?"0"+I:I}async read_mac(A){let I=await this.read_efuse(A,0);I>>>=0;let E=await this.read_efuse(A,1);E>>>=0;let C=await this.read_efuse(A,3);C>>>=0;const g=new Uint8Array(6);return 0!=C?(g[0]=C>>16&255,g[1]=C>>8&255,g[2]=255&C):0==(E>>16&255)?(g[0]=24,g[1]=254,g[2]=52):1==(E>>16&255)?(g[0]=172,g[1]=208,g[2]=116):A.error("Unknown OUI"),g[3]=E>>8&255,g[4]=255&E,g[5]=I>>24&255,this._d2h(g[0])+":"+this._d2h(g[1])+":"+this._d2h(g[2])+":"+this._d2h(g[3])+":"+this._d2h(g[4])+":"+this._d2h(g[5])}get_erase_size(A,I){return I}}export{M as ESP8266ROM}; diff --git a/WebInstaller/esp32webtools/index-ad9ce506.js b/WebInstaller/esp32webtools/index-drxht7Uc.js similarity index 95% rename from WebInstaller/esp32webtools/index-ad9ce506.js rename to WebInstaller/esp32webtools/index-drxht7Uc.js index 11be9f6a8..b1d534086 100644 --- a/WebInstaller/esp32webtools/index-ad9ce506.js +++ b/WebInstaller/esp32webtools/index-drxht7Uc.js @@ -1,4 +1,4 @@ -import{E as e,g as t,_ as o,s as l,y as i,m as n,D as s}from"./styles-e96248a3.js";const a=s` +import{D as e,f as t,_ as o,s as l,x as i,k as n,C as a}from"./styles-QAqj_a9t.js";const s=a` Mac
- (download via blue button with ${a} icon) + (download via blue button with ${s} icon)
  • CH340, CH341 drivers: @@ -86,7 +86,7 @@ import{E as e,g as t,_ as o,s as l,y as i,m as n,D as s}from"./styles-e96248a3.j >Mac
    - (download via blue button with ${a} icon) + (download via blue button with ${s} icon)
  • diff --git a/WebInstaller/esp32webtools/install-button.js b/WebInstaller/esp32webtools/install-button.js index 6a5943c76..64ce521e7 100644 --- a/WebInstaller/esp32webtools/install-button.js +++ b/WebInstaller/esp32webtools/install-button.js @@ -1 +1 @@ -const e=async t=>{let n;import("./install-dialog-2aee1312.js");try{n=await navigator.serial.requestPort()}catch(n){return"NotFoundError"===n.name?void import("./index-ad9ce506.js").then((n=>n.openNoPortPickedDialog((()=>e(t))))):void alert(`Error: ${n.message}`)}if(!n)return;try{await n.open({baudRate:window.selectedBaudRate})}catch(e){return void alert(e.message)}const o=document.createElement("ewt-install-dialog");o.port=n,o.manifestPath=t.manifest||t.getAttribute("manifest"),o.overrides=t.overrides,o.addEventListener("closed",(()=>{n.close()}),{once:!0}),document.body.appendChild(o)};class t extends HTMLElement{connectedCallback(){if(this.renderRoot)return;if(this.renderRoot=this.attachShadow({mode:"open"}),!t.isSupported||!t.isAllowed)return this.toggleAttribute("install-unsupported",!0),void(this.renderRoot.innerHTML=t.isAllowed?"Your browser does not support installing things on ESP devices. Use Google Chrome or Microsoft Edge.":"You can only install ESP devices on HTTPS websites or on the localhost.");this.toggleAttribute("install-supported",!0);const n=document.createElement("slot");n.addEventListener("click",(async t=>{t.preventDefault(),e(this)})),n.name="activate";const o=document.createElement("button");if(o.innerText="CONNECT",n.append(o),"adoptedStyleSheets"in Document.prototype&&"replaceSync"in CSSStyleSheet.prototype){const e=new CSSStyleSheet;e.replaceSync(t.style),this.renderRoot.adoptedStyleSheets=[e]}else{const e=document.createElement("style");e.innerText=t.style,this.renderRoot.append(e)}this.renderRoot.append(n)}}t.isSupported="serial"in navigator,t.isAllowed=window.isSecureContext,t.style='\n button {\n position: relative;\n cursor: pointer;\n font-size: 14px;\n padding: 8px 28px;\n color: var(--esp-tools-button-text-color, #fff);\n background-color: var(--esp-tools-button-color, #03a9f4);\n border: none;\n border-radius: 4px;\n box-shadow: 0 2px 2px 0 rgba(0,0,0,.14), 0 3px 1px -2px rgba(0,0,0,.12), 0 1px 5px 0 rgba(0,0,0,.2);\n }\n button::before {\n content: " ";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n opacity: 0.2;\n border-radius: 4px;\n }\n button:hover {\n box-shadow: 0 4px 8px 0 rgba(0,0,0,.14), 0 1px 7px 0 rgba(0,0,0,.12), 0 3px 1px -1px rgba(0,0,0,.2);\n }\n button:hover::before {\n background-color: rgba(255,255,255,.8);\n }\n button:focus {\n outline: none;\n }\n button:focus::before {\n background-color: white;\n }\n button:active::before {\n background-color: grey;\n }\n :host([active]) button {\n color: rgba(0, 0, 0, 0.38);\n background-color: rgba(0, 0, 0, 0.12);\n box-shadow: none;\n cursor: unset;\n pointer-events: none;\n }\n improv-wifi-launch-button {\n display: block;\n margin-top: 16px;\n }\n .hidden {\n display: none;\n }',customElements.define("esp-web-install-button",t); +const e=async t=>{let n;import("./install-dialog-28H-HNrD.js");try{n=await navigator.serial.requestPort()}catch(n){return"NotFoundError"===n.name?void import("./index-drxht7Uc.js").then((n=>n.openNoPortPickedDialog((()=>e(t))))):void alert(`Error: ${n.message}`)}if(!n)return;try{await n.open({baudRate:115200})}catch(e){return void alert(e.message)}const o=document.createElement("ewt-install-dialog");o.port=n,o.manifestPath=t.manifest||t.getAttribute("manifest"),o.overrides=t.overrides,o.addEventListener("closed",(()=>{n.close()}),{once:!0}),document.body.appendChild(o)};class t extends HTMLElement{connectedCallback(){if(this.renderRoot)return;if(this.renderRoot=this.attachShadow({mode:"open"}),!t.isSupported||!t.isAllowed)return this.toggleAttribute("install-unsupported",!0),void(this.renderRoot.innerHTML=t.isAllowed?"Your browser does not support installing things on ESP devices. Use Google Chrome or Microsoft Edge.":"You can only install ESP devices on HTTPS websites or on the localhost.");this.toggleAttribute("install-supported",!0);const n=document.createElement("slot");n.addEventListener("click",(async t=>{t.preventDefault(),e(this)})),n.name="activate";const o=document.createElement("button");if(o.innerText="CONNECT",n.append(o),"adoptedStyleSheets"in Document.prototype&&"replaceSync"in CSSStyleSheet.prototype){const e=new CSSStyleSheet;e.replaceSync(t.style),this.renderRoot.adoptedStyleSheets=[e]}else{const e=document.createElement("style");e.innerText=t.style,this.renderRoot.append(e)}this.renderRoot.append(n)}}t.isSupported="serial"in navigator,t.isAllowed=window.isSecureContext,t.style='\n button {\n position: relative;\n cursor: pointer;\n font-size: 14px;\n padding: 8px 28px;\n color: var(--esp-tools-button-text-color, #fff);\n background-color: var(--esp-tools-button-color, #03a9f4);\n border: none;\n border-radius: 4px;\n box-shadow: 0 2px 2px 0 rgba(0,0,0,.14), 0 3px 1px -2px rgba(0,0,0,.12), 0 1px 5px 0 rgba(0,0,0,.2);\n }\n button::before {\n content: " ";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n opacity: 0.2;\n border-radius: 4px;\n }\n button:hover {\n box-shadow: 0 4px 8px 0 rgba(0,0,0,.14), 0 1px 7px 0 rgba(0,0,0,.12), 0 3px 1px -1px rgba(0,0,0,.2);\n }\n button:hover::before {\n background-color: rgba(255,255,255,.8);\n }\n button:focus {\n outline: none;\n }\n button:focus::before {\n background-color: white;\n }\n button:active::before {\n background-color: grey;\n }\n :host([active]) button {\n color: rgba(0, 0, 0, 0.38);\n background-color: rgba(0, 0, 0, 0.12);\n box-shadow: none;\n cursor: unset;\n pointer-events: none;\n }\n improv-wifi-launch-button {\n display: block;\n margin-top: 16px;\n }\n .hidden {\n display: none;\n }',customElements.define("esp-web-install-button",t); diff --git a/WebInstaller/esp32webtools/install-dialog-2aee1312.js b/WebInstaller/esp32webtools/install-dialog-28H-HNrD.js similarity index 59% rename from WebInstaller/esp32webtools/install-dialog-2aee1312.js rename to WebInstaller/esp32webtools/install-dialog-28H-HNrD.js index fef7c232e..0299db5df 100644 --- a/WebInstaller/esp32webtools/install-dialog-2aee1312.js +++ b/WebInstaller/esp32webtools/install-dialog-28H-HNrD.js @@ -1,4 +1,4 @@ -import{l as e,o as t,_ as i,e as n,B as o,t as r,i as a,a as d,b as s,c as l,R as c,y as h,d as m,f as p,g as u,h as f,j as g,M as _,k as b,s as x,m as v,n as y,p as w,q as k,r as E,x as I,u as A,v as S,w as T,z as R,A as C,C as O,D as L,E as F}from"./styles-e96248a3.js";function z(i,n,o){let r,a=i;return"object"==typeof i?(a=i.slot,r=i):r={flatten:n},o?e({slot:a,flatten:n,selector:o}):t({descriptor:e=>({get(){var e,t;const i="slot"+(a?`[name=${a}]`:":not([name])"),n=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(i);return null!==(t=null==n?void 0:n.assignedNodes(r))&&void 0!==t?t:[]},enumerable:!0,configurable:!0})})}var D,M;const N=null!==(M=null===(D=window.ShadyDOM)||void 0===D?void 0:D.inUse)&&void 0!==M&&M;class B extends o{constructor(){super(...arguments),this.disabled=!1,this.containingForm=null,this.formDataListener=e=>{this.disabled||this.setFormData(e.formData)}}findFormElement(){if(!this.shadowRoot||N)return null;const e=this.getRootNode().querySelectorAll("form");for(const t of Array.from(e))if(t.contains(this))return t;return null}connectedCallback(){var e;super.connectedCallback(),this.containingForm=this.findFormElement(),null===(e=this.containingForm)||void 0===e||e.addEventListener("formdata",this.formDataListener)}disconnectedCallback(){var e;super.disconnectedCallback(),null===(e=this.containingForm)||void 0===e||e.removeEventListener("formdata",this.formDataListener),this.containingForm=null}click(){this.formElement&&!this.disabled&&(this.formElement.focus(),this.formElement.click())}firstUpdated(){super.firstUpdated(),this.shadowRoot&&this.mdcRoot.addEventListener("change",(e=>{this.dispatchEvent(new Event("change",e))}))}}B.shadowRootOptions={mode:"open",delegatesFocus:!0},i([n({type:Boolean})],B.prototype,"disabled",void 0);class P extends B{constructor(){super(...arguments),this.checked=!1,this.indeterminate=!1,this.disabled=!1,this.name="",this.value="on",this.reducedTouchTarget=!1,this.animationClass="",this.shouldRenderRipple=!1,this.focused=!1,this.mdcFoundationClass=void 0,this.mdcFoundation=void 0,this.rippleElement=null,this.rippleHandlers=new c((()=>(this.shouldRenderRipple=!0,this.ripple.then((e=>this.rippleElement=e)),this.ripple)))}createAdapter(){return{}}update(e){const t=e.get("indeterminate"),i=e.get("checked"),n=e.get("disabled");if(void 0!==t||void 0!==i||void 0!==n){const e=this.calculateAnimationStateName(!!i,!!t,!!n),o=this.calculateAnimationStateName(this.checked,this.indeterminate,this.disabled);this.animationClass=`${e}-${o}`}super.update(e)}calculateAnimationStateName(e,t,i){return i?"disabled":t?"indeterminate":e?"checked":"unchecked"}renderRipple(){return this.shouldRenderRipple?this.renderRippleTemplate():""}renderRippleTemplate(){return h`({get(){var e,t;const i="slot"+(a?`[name=${a}]`:":not([name])"),n=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(i);return null!==(t=null==n?void 0:n.assignedNodes(r))&&void 0!==t?t:[]},enumerable:!0,configurable:!0})})}var z,M;const N=null!==(M=null===(z=window.ShadyDOM)||void 0===z?void 0:z.inUse)&&void 0!==M&&M;class B extends o{constructor(){super(...arguments),this.disabled=!1,this.containingForm=null,this.formDataListener=e=>{this.disabled||this.setFormData(e.formData)}}findFormElement(){if(!this.shadowRoot||N)return null;const e=this.getRootNode().querySelectorAll("form");for(const t of Array.from(e))if(t.contains(this))return t;return null}connectedCallback(){var e;super.connectedCallback(),this.containingForm=this.findFormElement(),null===(e=this.containingForm)||void 0===e||e.addEventListener("formdata",this.formDataListener)}disconnectedCallback(){var e;super.disconnectedCallback(),null===(e=this.containingForm)||void 0===e||e.removeEventListener("formdata",this.formDataListener),this.containingForm=null}click(){this.formElement&&!this.disabled&&(this.formElement.focus(),this.formElement.click())}firstUpdated(){super.firstUpdated(),this.shadowRoot&&this.mdcRoot.addEventListener("change",(e=>{this.dispatchEvent(new Event("change",e))}))}}B.shadowRootOptions={mode:"open",delegatesFocus:!0},i([n({type:Boolean})],B.prototype,"disabled",void 0);class P extends B{constructor(){super(...arguments),this.checked=!1,this.indeterminate=!1,this.disabled=!1,this.name="",this.value="on",this.reducedTouchTarget=!1,this.animationClass="",this.shouldRenderRipple=!1,this.focused=!1,this.mdcFoundationClass=void 0,this.mdcFoundation=void 0,this.rippleElement=null,this.rippleHandlers=new c((()=>(this.shouldRenderRipple=!0,this.ripple.then((e=>this.rippleElement=e)),this.ripple)))}createAdapter(){return{}}update(e){const t=e.get("indeterminate"),i=e.get("checked"),n=e.get("disabled");if(void 0!==t||void 0!==i||void 0!==n){const e=this.calculateAnimationStateName(!!i,!!t,!!n),o=this.calculateAnimationStateName(this.checked,this.indeterminate,this.disabled);this.animationClass=`${e}-${o}`}super.update(e)}calculateAnimationStateName(e,t,i){return i?"disabled":t?"indeterminate":e?"checked":"unchecked"}renderRipple(){return this.shouldRenderRipple?this.renderRippleTemplate():""}renderRippleTemplate(){return h``}render(){const e=this.indeterminate||this.checked,t={"mdc-checkbox--disabled":this.disabled,"mdc-checkbox--selected":e,"mdc-checkbox--touch":!this.reducedTouchTarget,"mdc-ripple-upgraded--background-focused":this.focused,"mdc-checkbox--anim-checked-indeterminate":"checked-indeterminate"==this.animationClass,"mdc-checkbox--anim-checked-unchecked":"checked-unchecked"==this.animationClass,"mdc-checkbox--anim-indeterminate-checked":"indeterminate-checked"==this.animationClass,"mdc-checkbox--anim-indeterminate-unchecked":"indeterminate-unchecked"==this.animationClass,"mdc-checkbox--anim-unchecked-checked":"unchecked-checked"==this.animationClass,"mdc-checkbox--anim-unchecked-indeterminate":"unchecked-indeterminate"==this.animationClass},i=this.indeterminate?"mixed":void 0;return h`
    @@ -34,12 +34,12 @@ import{l as e,o as t,_ as i,e as n,B as o,t as r,i as a,a as d,b as s,c as l,R a
    ${this.renderRipple()} - `}setFormData(e){this.name&&this.checked&&e.append(this.name,this.value)}handleFocus(){this.focused=!0,this.handleRippleFocus()}handleBlur(){this.focused=!1,this.handleRippleBlur()}handleRippleMouseDown(e){const t=()=>{window.removeEventListener("mouseup",t),this.handleRippleDeactivate()};window.addEventListener("mouseup",t),this.rippleHandlers.startPress(e)}handleRippleTouchStart(e){this.rippleHandlers.startPress(e)}handleRippleDeactivate(){this.rippleHandlers.endPress()}handleRippleMouseEnter(){this.rippleHandlers.startHover()}handleRippleMouseLeave(){this.rippleHandlers.endHover()}handleRippleFocus(){this.rippleHandlers.startFocus()}handleRippleBlur(){this.rippleHandlers.endFocus()}handleChange(){this.checked=this.formElement.checked,this.indeterminate=this.formElement.indeterminate}resetAnimationClass(){this.animationClass=""}get isRippleActive(){var e;return(null===(e=this.rippleElement)||void 0===e?void 0:e.isActive)||!1}}i([a(".mdc-checkbox")],P.prototype,"mdcRoot",void 0),i([a("input")],P.prototype,"formElement",void 0),i([n({type:Boolean,reflect:!0})],P.prototype,"checked",void 0),i([n({type:Boolean})],P.prototype,"indeterminate",void 0),i([n({type:Boolean,reflect:!0})],P.prototype,"disabled",void 0),i([n({type:String,reflect:!0})],P.prototype,"name",void 0),i([n({type:String})],P.prototype,"value",void 0),i([d,n({type:String,attribute:"aria-label"})],P.prototype,"ariaLabel",void 0),i([d,n({type:String,attribute:"aria-labelledby"})],P.prototype,"ariaLabelledBy",void 0),i([d,n({type:String,attribute:"aria-describedby"})],P.prototype,"ariaDescribedBy",void 0),i([n({type:Boolean})],P.prototype,"reducedTouchTarget",void 0),i([r()],P.prototype,"animationClass",void 0),i([r()],P.prototype,"shouldRenderRipple",void 0),i([r()],P.prototype,"focused",void 0),i([s("mwc-ripple")],P.prototype,"ripple",void 0),i([l({passive:!0})],P.prototype,"handleRippleTouchStart",null);const $=u`.mdc-checkbox{padding:calc((40px - 18px) / 2);padding:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);margin:calc((40px - 40px) / 2);margin:calc((var(--mdc-checkbox-touch-target-size, 40px) - 40px) / 2)}.mdc-checkbox .mdc-checkbox__ripple::before,.mdc-checkbox .mdc-checkbox__ripple::after{background-color:#000;background-color:var(--mdc-ripple-color, #000)}.mdc-checkbox:hover .mdc-checkbox__ripple::before,.mdc-checkbox.mdc-ripple-surface--hover .mdc-checkbox__ripple::before{opacity:0.04;opacity:var(--mdc-ripple-hover-opacity, 0.04)}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-ripple-focus-opacity, 0.12)}.mdc-checkbox:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after{transition:opacity 150ms linear}.mdc-checkbox:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-checkbox.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::before,.mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::after{background-color:#018786;background-color:var(--mdc-ripple-color, var(--mdc-theme-secondary, #018786))}.mdc-checkbox.mdc-checkbox--selected:hover .mdc-checkbox__ripple::before,.mdc-checkbox.mdc-checkbox--selected.mdc-ripple-surface--hover .mdc-checkbox__ripple::before{opacity:0.04;opacity:var(--mdc-ripple-hover-opacity, 0.04)}.mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before,.mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-ripple-focus-opacity, 0.12)}.mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after{transition:opacity 150ms linear}.mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::before,.mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::after{background-color:#018786;background-color:var(--mdc-ripple-color, var(--mdc-theme-secondary, #018786))}.mdc-checkbox .mdc-checkbox__background{top:calc((40px - 18px) / 2);top:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);left:calc((40px - 18px) / 2);left:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((40px - 40px) / 2);top:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);right:calc((40px - 40px) / 2);right:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);left:calc((40px - 40px) / 2);left:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);width:40px;width:var(--mdc-checkbox-touch-target-size, 40px);height:40px;height:var(--mdc-checkbox-touch-target-size, 40px)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unchecked-color, rgba(0, 0, 0, 0.54));background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:#018786;border-color:var(--mdc-checkbox-checked-color, var(--mdc-theme-secondary, #018786));background-color:#018786;background-color:var(--mdc-checkbox-checked-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786{0%{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unchecked-color, rgba(0, 0, 0, 0.54));background-color:transparent}50%{border-color:#018786;border-color:var(--mdc-checkbox-checked-color, var(--mdc-theme-secondary, #018786));background-color:#018786;background-color:var(--mdc-checkbox-checked-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786{0%,80%{border-color:#018786;border-color:var(--mdc-checkbox-checked-color, var(--mdc-theme-secondary, #018786));background-color:#018786;background-color:var(--mdc-checkbox-checked-color, var(--mdc-theme-secondary, #018786))}100%{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unchecked-color, rgba(0, 0, 0, 0.54));background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:rgba(0, 0, 0, 0.38);border-color:var(--mdc-checkbox-disabled-color, rgba(0, 0, 0, 0.38));background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:rgba(0, 0, 0, 0.38);background-color:var(--mdc-checkbox-disabled-color, rgba(0, 0, 0, 0.38))}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff;color:var(--mdc-checkbox-ink-color, #fff)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff;border-color:var(--mdc-checkbox-ink-color, #fff)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff;color:var(--mdc-checkbox-ink-color, #fff)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff;border-color:var(--mdc-checkbox-ink-color, #fff)}.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid transparent;border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid transparent;border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:transparent;pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((48px - 40px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size, 48px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((40px - 48px) / 2);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);right:calc((40px - 48px) / 2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);left:calc((40px - 48px) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);width:48px;width:var(--mdc-checkbox-state-layer-size, 48px);height:48px;height:var(--mdc-checkbox-state-layer-size, 48px)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}:host{outline:none;display:inline-flex;-webkit-tap-highlight-color:transparent}:host([checked]),:host([indeterminate]){--mdc-ripple-color:var(--mdc-theme-secondary, #018786)}.mdc-checkbox .mdc-checkbox__background::before{content:none}`;class U extends P{}U.styles=[$],customElements.define("ewt-checkbox",U);class H{constructor(e){this.targetElement=e,this.state={bold:!1,italic:!1,underline:!1,strikethrough:!1,foregroundColor:null,backgroundColor:null,carriageReturn:!1,secret:!1}}logs(){return this.targetElement.innerText}addLine(e){const t=/(?:\033|\\033)(?:\[(.*?)[@-~]|\].*?(?:\007|\033\\))/g;let i=0;this.state.carriageReturn&&("\n"!==e&&this.targetElement.removeChild(this.targetElement.lastChild),this.state.carriageReturn=!1),e.includes("\r")&&(this.state.carriageReturn=!0);const n=document.createElement("span");n.classList.add("line"),this.targetElement.appendChild(n);const o=e=>{if(""===e)return;const t=document.createElement("span");if(this.state.bold&&t.classList.add("log-bold"),this.state.italic&&t.classList.add("log-italic"),this.state.underline&&t.classList.add("log-underline"),this.state.strikethrough&&t.classList.add("log-strikethrough"),this.state.secret&&t.classList.add("log-secret"),null!==this.state.foregroundColor&&t.classList.add(`log-fg-${this.state.foregroundColor}`),null!==this.state.backgroundColor&&t.classList.add(`log-bg-${this.state.backgroundColor}`),t.appendChild(document.createTextNode(e)),n.appendChild(t),this.state.secret){const e=document.createElement("span");e.classList.add("log-secret-redacted"),e.appendChild(document.createTextNode("[redacted]")),n.appendChild(e)}};for(;;){const n=t.exec(e);if(null===n)break;const r=n.index;if(o(e.substring(i,r)),i=r+n[0].length,void 0!==n[1])for(const e of n[1].split(";"))switch(parseInt(e)){case 0:this.state.bold=!1,this.state.italic=!1,this.state.underline=!1,this.state.strikethrough=!1,this.state.foregroundColor=null,this.state.backgroundColor=null,this.state.secret=!1;break;case 1:this.state.bold=!0;break;case 3:this.state.italic=!0;break;case 4:this.state.underline=!0;break;case 5:this.state.secret=!0;break;case 6:this.state.secret=!1;break;case 9:this.state.strikethrough=!0;break;case 22:this.state.bold=!1;break;case 23:this.state.italic=!1;break;case 24:this.state.underline=!1;break;case 29:this.state.strikethrough=!1;break;case 30:this.state.foregroundColor="black";break;case 31:this.state.foregroundColor="red";break;case 32:this.state.foregroundColor="green";break;case 33:this.state.foregroundColor="yellow";break;case 34:this.state.foregroundColor="blue";break;case 35:this.state.foregroundColor="magenta";break;case 36:this.state.foregroundColor="cyan";break;case 37:this.state.foregroundColor="white";break;case 39:this.state.foregroundColor=null;break;case 41:this.state.backgroundColor="red";break;case 42:this.state.backgroundColor="green";break;case 43:this.state.backgroundColor="yellow";break;case 44:this.state.backgroundColor="blue";break;case 45:this.state.backgroundColor="magenta";break;case 46:this.state.backgroundColor="cyan";break;case 47:this.state.backgroundColor="white";break;case 40:case 49:this.state.backgroundColor=null}}const r=this.targetElement.scrollTop>this.targetElement.scrollHeight-this.targetElement.offsetHeight-50;o(e.substring(i)),r&&(this.targetElement.scrollTop=this.targetElement.scrollHeight)}}const V=e=>new Promise((t=>setTimeout(t,e)));class W{constructor(){this.chunks=""}transform(e,t){this.chunks+=e;const i=this.chunks.split("\r\n");this.chunks=i.pop(),i.forEach((e=>t.enqueue(e+"\r\n")))}flush(e){e.enqueue(this.chunks)}}class G extends HTMLElement{constructor(){super(...arguments),this.allowInput=!0}logs(){var e;return(null===(e=this._console)||void 0===e?void 0:e.logs())||""}connectedCallback(){if(this._console)return;if(this.attachShadow({mode:"open"}).innerHTML=`\n \n
    \n ${this.allowInput?"
    \n >\n \n
    \n ":""}\n `,this._console=new H(this.shadowRoot.querySelector("div")),this.allowInput){const e=this.shadowRoot.querySelector("input");this.addEventListener("click",(()=>{var t;""===(null===(t=getSelection())||void 0===t?void 0:t.toString())&&e.focus()})),e.addEventListener("keydown",(e=>{"Enter"===e.key&&(e.preventDefault(),e.stopPropagation(),this._sendCommand())}))}const e=new AbortController,t=this._connect(e.signal);this._cancelConnection=()=>(e.abort(),t)}async _connect(e){this.logger.debug("Starting console read loop");try{await this.port.readable.pipeThrough(new TextDecoderStream,{signal:e}).pipeThrough(new TransformStream(new W)).pipeTo(new WritableStream({write:e=>{this._console.addLine(e.replace("\r",""))}})),e.aborted||(this._console.addLine(""),this._console.addLine(""),this._console.addLine("Terminal disconnected"))}catch(e){this._console.addLine(""),this._console.addLine(""),this._console.addLine(`Terminal disconnected: ${e}`)}finally{await V(100),this.logger.debug("Finished console read loop")}}async _sendCommand(){const e=this.shadowRoot.querySelector("input"),t=e.value,i=new TextEncoder,n=this.port.writable.getWriter();await n.write(i.encode(t+"\r\n")),this._console.addLine(`> ${t}\r\n`),e.value="",e.focus();try{n.releaseLock()}catch(e){console.error("Ignoring release lock error",e)}}async disconnect(){this._cancelConnection&&(await this._cancelConnection(),this._cancelConnection=void 0)}async reset(){this.logger.debug("Triggering reset."),await this.port.setSignals({dataTerminalReady:!1,requestToSend:!0}),await this.port.setSignals({dataTerminalReady:!1,requestToSend:!1}),await new Promise((e=>setTimeout(e,1e3)))}}customElements.define("ewt-console",G);var X={ROOT:"mdc-form-field"},q={LABEL_SELECTOR:".mdc-form-field > label"},Y=function(e){function t(i){var n=e.call(this,g(g({},t.defaultAdapter),i))||this;return n.click=function(){n.handleClick()},n}return f(t,e),Object.defineProperty(t,"cssClasses",{get:function(){return X},enumerable:!1,configurable:!0}),Object.defineProperty(t,"strings",{get:function(){return q},enumerable:!1,configurable:!0}),Object.defineProperty(t,"defaultAdapter",{get:function(){return{activateInputRipple:function(){},deactivateInputRipple:function(){},deregisterInteractionHandler:function(){},registerInteractionHandler:function(){}}},enumerable:!1,configurable:!0}),t.prototype.init=function(){this.adapter.registerInteractionHandler("click",this.click)},t.prototype.destroy=function(){this.adapter.deregisterInteractionHandler("click",this.click)},t.prototype.handleClick=function(){var e=this;this.adapter.activateInputRipple(),requestAnimationFrame((function(){e.adapter.deactivateInputRipple()}))},t}(_);class Z extends o{constructor(){super(...arguments),this.alignEnd=!1,this.spaceBetween=!1,this.nowrap=!1,this.label="",this.mdcFoundationClass=Y}createAdapter(){return{registerInteractionHandler:(e,t)=>{this.labelEl.addEventListener(e,t)},deregisterInteractionHandler:(e,t)=>{this.labelEl.removeEventListener(e,t)},activateInputRipple:async()=>{const e=this.input;if(e instanceof B){const t=await e.ripple;t&&t.startPress()}},deactivateInputRipple:async()=>{const e=this.input;if(e instanceof B){const t=await e.ripple;t&&t.endPress()}}}}get input(){var e,t;return null!==(t=null===(e=this.slottedInputs)||void 0===e?void 0:e[0])&&void 0!==t?t:null}render(){const e={"mdc-form-field--align-end":this.alignEnd,"mdc-form-field--space-between":this.spaceBetween,"mdc-form-field--nowrap":this.nowrap};return h` + `}setFormData(e){this.name&&this.checked&&e.append(this.name,this.value)}handleFocus(){this.focused=!0,this.handleRippleFocus()}handleBlur(){this.focused=!1,this.handleRippleBlur()}handleRippleMouseDown(e){const t=()=>{window.removeEventListener("mouseup",t),this.handleRippleDeactivate()};window.addEventListener("mouseup",t),this.rippleHandlers.startPress(e)}handleRippleTouchStart(e){this.rippleHandlers.startPress(e)}handleRippleDeactivate(){this.rippleHandlers.endPress()}handleRippleMouseEnter(){this.rippleHandlers.startHover()}handleRippleMouseLeave(){this.rippleHandlers.endHover()}handleRippleFocus(){this.rippleHandlers.startFocus()}handleRippleBlur(){this.rippleHandlers.endFocus()}handleChange(){this.checked=this.formElement.checked,this.indeterminate=this.formElement.indeterminate}resetAnimationClass(){this.animationClass=""}get isRippleActive(){var e;return(null===(e=this.rippleElement)||void 0===e?void 0:e.isActive)||!1}}i([a(".mdc-checkbox")],P.prototype,"mdcRoot",void 0),i([a("input")],P.prototype,"formElement",void 0),i([n({type:Boolean,reflect:!0})],P.prototype,"checked",void 0),i([n({type:Boolean})],P.prototype,"indeterminate",void 0),i([n({type:Boolean,reflect:!0})],P.prototype,"disabled",void 0),i([n({type:String,reflect:!0})],P.prototype,"name",void 0),i([n({type:String})],P.prototype,"value",void 0),i([d,n({type:String,attribute:"aria-label"})],P.prototype,"ariaLabel",void 0),i([d,n({type:String,attribute:"aria-labelledby"})],P.prototype,"ariaLabelledBy",void 0),i([d,n({type:String,attribute:"aria-describedby"})],P.prototype,"ariaDescribedBy",void 0),i([n({type:Boolean})],P.prototype,"reducedTouchTarget",void 0),i([r()],P.prototype,"animationClass",void 0),i([r()],P.prototype,"shouldRenderRipple",void 0),i([r()],P.prototype,"focused",void 0),i([s("mwc-ripple")],P.prototype,"ripple",void 0),i([l({passive:!0})],P.prototype,"handleRippleTouchStart",null);const U=u`.mdc-checkbox{padding:calc((40px - 18px) / 2);padding:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);margin:calc((40px - 40px) / 2);margin:calc((var(--mdc-checkbox-touch-target-size, 40px) - 40px) / 2)}.mdc-checkbox .mdc-checkbox__ripple::before,.mdc-checkbox .mdc-checkbox__ripple::after{background-color:#000;background-color:var(--mdc-ripple-color, #000)}.mdc-checkbox:hover .mdc-checkbox__ripple::before,.mdc-checkbox.mdc-ripple-surface--hover .mdc-checkbox__ripple::before{opacity:0.04;opacity:var(--mdc-ripple-hover-opacity, 0.04)}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-ripple-focus-opacity, 0.12)}.mdc-checkbox:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after{transition:opacity 150ms linear}.mdc-checkbox:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-checkbox.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::before,.mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::after{background-color:#018786;background-color:var(--mdc-ripple-color, var(--mdc-theme-secondary, #018786))}.mdc-checkbox.mdc-checkbox--selected:hover .mdc-checkbox__ripple::before,.mdc-checkbox.mdc-checkbox--selected.mdc-ripple-surface--hover .mdc-checkbox__ripple::before{opacity:0.04;opacity:var(--mdc-ripple-hover-opacity, 0.04)}.mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before,.mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-ripple-focus-opacity, 0.12)}.mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after{transition:opacity 150ms linear}.mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after{transition-duration:75ms;opacity:0.12;opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::before,.mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::after{background-color:#018786;background-color:var(--mdc-ripple-color, var(--mdc-theme-secondary, #018786))}.mdc-checkbox .mdc-checkbox__background{top:calc((40px - 18px) / 2);top:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2);left:calc((40px - 18px) / 2);left:calc((var(--mdc-checkbox-ripple-size, 40px) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((40px - 40px) / 2);top:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);right:calc((40px - 40px) / 2);right:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);left:calc((40px - 40px) / 2);left:calc((40px - var(--mdc-checkbox-touch-target-size, 40px)) / 2);width:40px;width:var(--mdc-checkbox-touch-target-size, 40px);height:40px;height:var(--mdc-checkbox-touch-target-size, 40px)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unchecked-color, rgba(0, 0, 0, 0.54));background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:#018786;border-color:var(--mdc-checkbox-checked-color, var(--mdc-theme-secondary, #018786));background-color:#018786;background-color:var(--mdc-checkbox-checked-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786{0%{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unchecked-color, rgba(0, 0, 0, 0.54));background-color:transparent}50%{border-color:#018786;border-color:var(--mdc-checkbox-checked-color, var(--mdc-theme-secondary, #018786));background-color:#018786;background-color:var(--mdc-checkbox-checked-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786{0%,80%{border-color:#018786;border-color:var(--mdc-checkbox-checked-color, var(--mdc-theme-secondary, #018786));background-color:#018786;background-color:var(--mdc-checkbox-checked-color, var(--mdc-theme-secondary, #018786))}100%{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unchecked-color, rgba(0, 0, 0, 0.54));background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:rgba(0, 0, 0, 0.38);border-color:var(--mdc-checkbox-disabled-color, rgba(0, 0, 0, 0.38));background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:rgba(0, 0, 0, 0.38);background-color:var(--mdc-checkbox-disabled-color, rgba(0, 0, 0, 0.38))}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff;color:var(--mdc-checkbox-ink-color, #fff)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff;border-color:var(--mdc-checkbox-ink-color, #fff)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff;color:var(--mdc-checkbox-ink-color, #fff)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff;border-color:var(--mdc-checkbox-ink-color, #fff)}.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid transparent;border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid transparent;border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:transparent;pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((48px - 40px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size, 48px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((40px - 48px) / 2);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);right:calc((40px - 48px) / 2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);left:calc((40px - 48px) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);width:48px;width:var(--mdc-checkbox-state-layer-size, 48px);height:48px;height:var(--mdc-checkbox-state-layer-size, 48px)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}:host{outline:none;display:inline-flex;-webkit-tap-highlight-color:transparent}:host([checked]),:host([indeterminate]){--mdc-ripple-color:var(--mdc-theme-secondary, #018786)}.mdc-checkbox .mdc-checkbox__background::before{content:none}`;class $ extends P{}$.styles=[U],customElements.define("ewt-checkbox",$);class H{constructor(e){this.targetElement=e,this.state={bold:!1,italic:!1,underline:!1,strikethrough:!1,foregroundColor:null,backgroundColor:null,carriageReturn:!1,secret:!1}}logs(){return this.targetElement.innerText}addLine(e){const t=/(?:\033|\\033)(?:\[(.*?)[@-~]|\].*?(?:\007|\033\\))/g;let i=0;this.state.carriageReturn&&("\n"!==e&&this.targetElement.removeChild(this.targetElement.lastChild),this.state.carriageReturn=!1),e.includes("\r")&&(this.state.carriageReturn=!0);const n=document.createElement("span");n.classList.add("line"),this.targetElement.appendChild(n);const o=e=>{if(""===e)return;const t=document.createElement("span");if(this.state.bold&&t.classList.add("log-bold"),this.state.italic&&t.classList.add("log-italic"),this.state.underline&&t.classList.add("log-underline"),this.state.strikethrough&&t.classList.add("log-strikethrough"),this.state.secret&&t.classList.add("log-secret"),null!==this.state.foregroundColor&&t.classList.add(`log-fg-${this.state.foregroundColor}`),null!==this.state.backgroundColor&&t.classList.add(`log-bg-${this.state.backgroundColor}`),t.appendChild(document.createTextNode(e)),n.appendChild(t),this.state.secret){const e=document.createElement("span");e.classList.add("log-secret-redacted"),e.appendChild(document.createTextNode("[redacted]")),n.appendChild(e)}};for(;;){const n=t.exec(e);if(null===n)break;const r=n.index;if(o(e.substring(i,r)),i=r+n[0].length,void 0!==n[1])for(const e of n[1].split(";"))switch(parseInt(e)){case 0:this.state.bold=!1,this.state.italic=!1,this.state.underline=!1,this.state.strikethrough=!1,this.state.foregroundColor=null,this.state.backgroundColor=null,this.state.secret=!1;break;case 1:this.state.bold=!0;break;case 3:this.state.italic=!0;break;case 4:this.state.underline=!0;break;case 5:this.state.secret=!0;break;case 6:this.state.secret=!1;break;case 9:this.state.strikethrough=!0;break;case 22:this.state.bold=!1;break;case 23:this.state.italic=!1;break;case 24:this.state.underline=!1;break;case 29:this.state.strikethrough=!1;break;case 30:this.state.foregroundColor="black";break;case 31:this.state.foregroundColor="red";break;case 32:this.state.foregroundColor="green";break;case 33:this.state.foregroundColor="yellow";break;case 34:this.state.foregroundColor="blue";break;case 35:this.state.foregroundColor="magenta";break;case 36:this.state.foregroundColor="cyan";break;case 37:this.state.foregroundColor="white";break;case 39:this.state.foregroundColor=null;break;case 41:this.state.backgroundColor="red";break;case 42:this.state.backgroundColor="green";break;case 43:this.state.backgroundColor="yellow";break;case 44:this.state.backgroundColor="blue";break;case 45:this.state.backgroundColor="magenta";break;case 46:this.state.backgroundColor="cyan";break;case 47:this.state.backgroundColor="white";break;case 40:case 49:this.state.backgroundColor=null}}const r=this.targetElement.scrollTop>this.targetElement.scrollHeight-this.targetElement.offsetHeight-50;o(e.substring(i)),r&&(this.targetElement.scrollTop=this.targetElement.scrollHeight)}}const V=e=>new Promise((t=>setTimeout(t,e)));class W{constructor(){this.chunks=""}transform(e,t){this.chunks+=e;const i=this.chunks.split("\r\n");this.chunks=i.pop(),i.forEach((e=>t.enqueue(e+"\r\n")))}flush(e){e.enqueue(this.chunks)}}class G extends HTMLElement{constructor(){super(...arguments),this.allowInput=!0}logs(){var e;return(null===(e=this._console)||void 0===e?void 0:e.logs())||""}connectedCallback(){if(this._console)return;if(this.attachShadow({mode:"open"}).innerHTML=`\n \n
    \n ${this.allowInput?"
    \n >\n \n
    \n ":""}\n `,this._console=new H(this.shadowRoot.querySelector("div")),this.allowInput){const e=this.shadowRoot.querySelector("input");this.addEventListener("click",(()=>{var t;""===(null===(t=getSelection())||void 0===t?void 0:t.toString())&&e.focus()})),e.addEventListener("keydown",(e=>{"Enter"===e.key&&(e.preventDefault(),e.stopPropagation(),this._sendCommand())}))}const e=new AbortController,t=this._connect(e.signal);this._cancelConnection=()=>(e.abort(),t)}async _connect(e){this.logger.debug("Starting console read loop");try{await this.port.readable.pipeThrough(new TextDecoderStream,{signal:e}).pipeThrough(new TransformStream(new W)).pipeTo(new WritableStream({write:e=>{this._console.addLine(e.replace("\r",""))}})),e.aborted||(this._console.addLine(""),this._console.addLine(""),this._console.addLine("Terminal disconnected"))}catch(e){this._console.addLine(""),this._console.addLine(""),this._console.addLine(`Terminal disconnected: ${e}`)}finally{await V(100),this.logger.debug("Finished console read loop")}}async _sendCommand(){const e=this.shadowRoot.querySelector("input"),t=e.value,i=new TextEncoder,n=this.port.writable.getWriter();await n.write(i.encode(t+"\r\n")),this._console.addLine(`> ${t}\r\n`),e.value="",e.focus();try{n.releaseLock()}catch(e){console.error("Ignoring release lock error",e)}}async disconnect(){this._cancelConnection&&(await this._cancelConnection(),this._cancelConnection=void 0)}async reset(){this.logger.debug("Triggering reset"),await this.port.setSignals({dataTerminalReady:!1,requestToSend:!0}),await V(250),await this.port.setSignals({dataTerminalReady:!1,requestToSend:!1}),await V(250),await new Promise((e=>setTimeout(e,1e3)))}}customElements.define("ewt-console",G);var X={ROOT:"mdc-form-field"},q={LABEL_SELECTOR:".mdc-form-field > label"},Z=function(e){function t(i){var n=e.call(this,g(g({},t.defaultAdapter),i))||this;return n.click=function(){n.handleClick()},n}return f(t,e),Object.defineProperty(t,"cssClasses",{get:function(){return X},enumerable:!1,configurable:!0}),Object.defineProperty(t,"strings",{get:function(){return q},enumerable:!1,configurable:!0}),Object.defineProperty(t,"defaultAdapter",{get:function(){return{activateInputRipple:function(){},deactivateInputRipple:function(){},deregisterInteractionHandler:function(){},registerInteractionHandler:function(){}}},enumerable:!1,configurable:!0}),t.prototype.init=function(){this.adapter.registerInteractionHandler("click",this.click)},t.prototype.destroy=function(){this.adapter.deregisterInteractionHandler("click",this.click)},t.prototype.handleClick=function(){var e=this;this.adapter.activateInputRipple(),requestAnimationFrame((function(){e.adapter.deactivateInputRipple()}))},t}(_);class Y extends o{constructor(){super(...arguments),this.alignEnd=!1,this.spaceBetween=!1,this.nowrap=!1,this.label="",this.mdcFoundationClass=Z}createAdapter(){return{registerInteractionHandler:(e,t)=>{this.labelEl.addEventListener(e,t)},deregisterInteractionHandler:(e,t)=>{this.labelEl.removeEventListener(e,t)},activateInputRipple:async()=>{const e=this.input;if(e instanceof B){const t=await e.ripple;t&&t.startPress()}},deactivateInputRipple:async()=>{const e=this.input;if(e instanceof B){const t=await e.ripple;t&&t.endPress()}}}}get input(){var e,t;return null!==(t=null===(e=this.slottedInputs)||void 0===e?void 0:e[0])&&void 0!==t?t:null}render(){const e={"mdc-form-field--align-end":this.alignEnd,"mdc-form-field--space-between":this.spaceBetween,"mdc-form-field--nowrap":this.nowrap};return h`
    -
    `}click(){this._labelClick()}_labelClick(){const e=this.input;e&&(e.focus(),e.click())}}i([n({type:Boolean})],Z.prototype,"alignEnd",void 0),i([n({type:Boolean})],Z.prototype,"spaceBetween",void 0),i([n({type:Boolean})],Z.prototype,"nowrap",void 0),i([n({type:String}),b((async function(e){var t;null===(t=this.input)||void 0===t||t.setAttribute("aria-label",e)}))],Z.prototype,"label",void 0),i([a(".mdc-form-field")],Z.prototype,"mdcRoot",void 0),i([z("",!0,"*")],Z.prototype,"slottedInputs",void 0),i([a("label")],Z.prototype,"labelEl",void 0);const j=u`.mdc-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto, sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:0.875rem;font-size:var(--mdc-typography-body2-font-size, 0.875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:0.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, 0.0178571429em);text-decoration:inherit;text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform, inherit);color:rgba(0, 0, 0, 0.87);color:var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}:host{display:inline-flex}.mdc-form-field{width:100%}::slotted(*){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto, sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:0.875rem;font-size:var(--mdc-typography-body2-font-size, 0.875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:0.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, 0.0178571429em);text-decoration:inherit;text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform, inherit);color:rgba(0, 0, 0, 0.87);color:var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87))}::slotted(mwc-switch){margin-right:10px}[dir=rtl] ::slotted(mwc-switch),::slotted(mwc-switch[dir=rtl]){margin-left:10px}`;class K extends Z{}K.styles=[j],customElements.define("ewt-formfield",K);class Q extends x{constructor(){super(...arguments),this.disabled=!1,this.icon="",this.shouldRenderRipple=!1,this.rippleHandlers=new c((()=>(this.shouldRenderRipple=!0,this.ripple)))}renderRipple(){return this.shouldRenderRipple?h` + `}click(){this._labelClick()}_labelClick(){const e=this.input;e&&(e.focus(),e.click())}}i([n({type:Boolean})],Y.prototype,"alignEnd",void 0),i([n({type:Boolean})],Y.prototype,"spaceBetween",void 0),i([n({type:Boolean})],Y.prototype,"nowrap",void 0),i([n({type:String}),b((async function(e){var t;null===(t=this.input)||void 0===t||t.setAttribute("aria-label",e)}))],Y.prototype,"label",void 0),i([a(".mdc-form-field")],Y.prototype,"mdcRoot",void 0),i([D("",!0,"*")],Y.prototype,"slottedInputs",void 0),i([a("label")],Y.prototype,"labelEl",void 0);const j=u`.mdc-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto, sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:0.875rem;font-size:var(--mdc-typography-body2-font-size, 0.875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:0.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, 0.0178571429em);text-decoration:inherit;text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform, inherit);color:rgba(0, 0, 0, 0.87);color:var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}:host{display:inline-flex}.mdc-form-field{width:100%}::slotted(*){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto, sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:0.875rem;font-size:var(--mdc-typography-body2-font-size, 0.875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:0.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, 0.0178571429em);text-decoration:inherit;text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform, inherit);color:rgba(0, 0, 0, 0.87);color:var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87))}::slotted(mwc-switch){margin-right:10px}[dir=rtl] ::slotted(mwc-switch),::slotted(mwc-switch[dir=rtl]){margin-left:10px}`;class K extends Y{}K.styles=[j],customElements.define("ewt-formfield",K);class Q extends x{constructor(){super(...arguments),this.disabled=!1,this.icon="",this.shouldRenderRipple=!1,this.rippleHandlers=new c((()=>(this.shouldRenderRipple=!0,this.ripple)))}renderRipple(){return this.shouldRenderRipple?h` @@ -68,7 +68,7 @@ import{l as e,o as t,_ as i,e as n,B as o,t as r,i as a,a as d,b as s,c as l,R a - `}}i([a(".mdc-notched-outline")],re.prototype,"mdcRoot",void 0),i([n({type:Number})],re.prototype,"width",void 0),i([n({type:Boolean,reflect:!0})],re.prototype,"open",void 0),i([a(".mdc-notched-outline__notch")],re.prototype,"notchElement",void 0);const ae=u`.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;border-top:1px solid;border-bottom:1px solid;pointer-events:none}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid;flex-grow:1}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{flex:0 0 auto;width:auto;max-width:calc(100% - 12px * 2)}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(100% / 0.75)}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}:host{display:block;position:absolute;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] :host,:host([dir=rtl]){text-align:right}::slotted(.mdc-floating-label){display:inline-block;position:relative;top:17px;bottom:auto;max-width:100%}::slotted(.mdc-floating-label--float-above){text-overflow:clip}.mdc-notched-outline--upgraded ::slotted(.mdc-floating-label--float-above){max-width:calc(100% / 0.75)}.mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-notched-outline .mdc-notched-outline__leading,.mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px)) * 2)}}.mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-color:var(--mdc-notched-outline-border-color, var(--mdc-theme-primary, #6200ee));border-width:1px;border-width:var(--mdc-notched-outline-stroke-width, 1px)}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0;padding-top:var(--mdc-notched-outline-notch-offset, 0)}`;let de=class extends re{};de.styles=[ae],de=i([v("mwc-notched-outline")],de);var se={LABEL_FLOAT_ABOVE:"mdc-floating-label--float-above",LABEL_REQUIRED:"mdc-floating-label--required",LABEL_SHAKE:"mdc-floating-label--shake",ROOT:"mdc-floating-label"},le=function(e){function t(i){var n=e.call(this,g(g({},t.defaultAdapter),i))||this;return n.shakeAnimationEndHandler=function(){n.handleShakeAnimationEnd()},n}return f(t,e),Object.defineProperty(t,"cssClasses",{get:function(){return se},enumerable:!1,configurable:!0}),Object.defineProperty(t,"defaultAdapter",{get:function(){return{addClass:function(){},removeClass:function(){},getWidth:function(){return 0},registerInteractionHandler:function(){},deregisterInteractionHandler:function(){}}},enumerable:!1,configurable:!0}),t.prototype.init=function(){this.adapter.registerInteractionHandler("animationend",this.shakeAnimationEndHandler)},t.prototype.destroy=function(){this.adapter.deregisterInteractionHandler("animationend",this.shakeAnimationEndHandler)},t.prototype.getWidth=function(){return this.adapter.getWidth()},t.prototype.shake=function(e){var i=t.cssClasses.LABEL_SHAKE;e?this.adapter.addClass(i):this.adapter.removeClass(i)},t.prototype.float=function(e){var i=t.cssClasses,n=i.LABEL_FLOAT_ABOVE,o=i.LABEL_SHAKE;e?this.adapter.addClass(n):(this.adapter.removeClass(n),this.adapter.removeClass(o))},t.prototype.setRequired=function(e){var i=t.cssClasses.LABEL_REQUIRED;e?this.adapter.addClass(i):this.adapter.removeClass(i)},t.prototype.handleShakeAnimationEnd=function(){var e=t.cssClasses.LABEL_SHAKE;this.adapter.removeClass(e)},t}(_);const ce=y(class extends w{constructor(e){switch(super(e),this.foundation=null,this.previousPart=null,e.type){case k.ATTRIBUTE:case k.PROPERTY:break;default:throw new Error("FloatingLabel directive only support attribute and property parts")}}update(e,[t]){if(e!==this.previousPart){this.foundation&&this.foundation.destroy(),this.previousPart=e;const t=e.element;t.classList.add("mdc-floating-label");const i=(e=>({addClass:t=>e.classList.add(t),removeClass:t=>e.classList.remove(t),getWidth:()=>e.scrollWidth,registerInteractionHandler:(t,i)=>{e.addEventListener(t,i)},deregisterInteractionHandler:(t,i)=>{e.removeEventListener(t,i)}}))(t);this.foundation=new le(i),this.foundation.init()}return this.render(t)}render(e){return this.foundation}});var he={LINE_RIPPLE_ACTIVE:"mdc-line-ripple--active",LINE_RIPPLE_DEACTIVATING:"mdc-line-ripple--deactivating"},me=function(e){function t(i){var n=e.call(this,g(g({},t.defaultAdapter),i))||this;return n.transitionEndHandler=function(e){n.handleTransitionEnd(e)},n}return f(t,e),Object.defineProperty(t,"cssClasses",{get:function(){return he},enumerable:!1,configurable:!0}),Object.defineProperty(t,"defaultAdapter",{get:function(){return{addClass:function(){},removeClass:function(){},hasClass:function(){return!1},setStyle:function(){},registerEventHandler:function(){},deregisterEventHandler:function(){}}},enumerable:!1,configurable:!0}),t.prototype.init=function(){this.adapter.registerEventHandler("transitionend",this.transitionEndHandler)},t.prototype.destroy=function(){this.adapter.deregisterEventHandler("transitionend",this.transitionEndHandler)},t.prototype.activate=function(){this.adapter.removeClass(he.LINE_RIPPLE_DEACTIVATING),this.adapter.addClass(he.LINE_RIPPLE_ACTIVE)},t.prototype.setRippleCenter=function(e){this.adapter.setStyle("transform-origin",e+"px center")},t.prototype.deactivate=function(){this.adapter.addClass(he.LINE_RIPPLE_DEACTIVATING)},t.prototype.handleTransitionEnd=function(e){var t=this.adapter.hasClass(he.LINE_RIPPLE_DEACTIVATING);"opacity"===e.propertyName&&t&&(this.adapter.removeClass(he.LINE_RIPPLE_ACTIVE),this.adapter.removeClass(he.LINE_RIPPLE_DEACTIVATING))},t}(_);const pe=y(class extends w{constructor(e){switch(super(e),this.previousPart=null,this.foundation=null,e.type){case k.ATTRIBUTE:case k.PROPERTY:return;default:throw new Error("LineRipple only support attribute and property parts.")}}update(e,t){if(this.previousPart!==e){this.foundation&&this.foundation.destroy(),this.previousPart=e;const t=e.element;t.classList.add("mdc-line-ripple");const i=(e=>({addClass:t=>e.classList.add(t),removeClass:t=>e.classList.remove(t),hasClass:t=>e.classList.contains(t),setStyle:(t,i)=>e.style.setProperty(t,i),registerEventHandler:(t,i)=>{e.addEventListener(t,i)},deregisterEventHandler:(t,i)=>{e.removeEventListener(t,i)}}))(t);this.foundation=new me(i),this.foundation.init()}return this.render()}render(){return this.foundation}});var ue={ARIA_CONTROLS:"aria-controls",ARIA_DESCRIBEDBY:"aria-describedby",INPUT_SELECTOR:".mdc-text-field__input",LABEL_SELECTOR:".mdc-floating-label",LEADING_ICON_SELECTOR:".mdc-text-field__icon--leading",LINE_RIPPLE_SELECTOR:".mdc-line-ripple",OUTLINE_SELECTOR:".mdc-notched-outline",PREFIX_SELECTOR:".mdc-text-field__affix--prefix",SUFFIX_SELECTOR:".mdc-text-field__affix--suffix",TRAILING_ICON_SELECTOR:".mdc-text-field__icon--trailing"},fe={DISABLED:"mdc-text-field--disabled",FOCUSED:"mdc-text-field--focused",HELPER_LINE:"mdc-text-field-helper-line",INVALID:"mdc-text-field--invalid",LABEL_FLOATING:"mdc-text-field--label-floating",NO_LABEL:"mdc-text-field--no-label",OUTLINED:"mdc-text-field--outlined",ROOT:"mdc-text-field",TEXTAREA:"mdc-text-field--textarea",WITH_LEADING_ICON:"mdc-text-field--with-leading-icon",WITH_TRAILING_ICON:"mdc-text-field--with-trailing-icon",WITH_INTERNAL_COUNTER:"mdc-text-field--with-internal-counter"},ge={LABEL_SCALE:.75},_e=["pattern","min","max","required","step","minlength","maxlength"],be=["color","date","datetime-local","month","range","time","week"],xe=["mousedown","touchstart"],ve=["click","keydown"],ye=function(e){function t(i,n){void 0===n&&(n={});var o=e.call(this,g(g({},t.defaultAdapter),i))||this;return o.isFocused=!1,o.receivedUserInput=!1,o.valid=!0,o.useNativeValidation=!0,o.validateOnValueChange=!0,o.helperText=n.helperText,o.characterCounter=n.characterCounter,o.leadingIcon=n.leadingIcon,o.trailingIcon=n.trailingIcon,o.inputFocusHandler=function(){o.activateFocus()},o.inputBlurHandler=function(){o.deactivateFocus()},o.inputInputHandler=function(){o.handleInput()},o.setPointerXOffset=function(e){o.setTransformOrigin(e)},o.textFieldInteractionHandler=function(){o.handleTextFieldInteraction()},o.validationAttributeChangeHandler=function(e){o.handleValidationAttributeChange(e)},o}return f(t,e),Object.defineProperty(t,"cssClasses",{get:function(){return fe},enumerable:!1,configurable:!0}),Object.defineProperty(t,"strings",{get:function(){return ue},enumerable:!1,configurable:!0}),Object.defineProperty(t,"numbers",{get:function(){return ge},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shouldAlwaysFloat",{get:function(){var e=this.getNativeInput().type;return be.indexOf(e)>=0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shouldFloat",{get:function(){return this.shouldAlwaysFloat||this.isFocused||!!this.getValue()||this.isBadInput()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shouldShake",{get:function(){return!this.isFocused&&!this.isValid()&&!!this.getValue()},enumerable:!1,configurable:!0}),Object.defineProperty(t,"defaultAdapter",{get:function(){return{addClass:function(){},removeClass:function(){},hasClass:function(){return!0},setInputAttr:function(){},removeInputAttr:function(){},registerTextFieldInteractionHandler:function(){},deregisterTextFieldInteractionHandler:function(){},registerInputInteractionHandler:function(){},deregisterInputInteractionHandler:function(){},registerValidationAttributeChangeHandler:function(){return new MutationObserver((function(){}))},deregisterValidationAttributeChangeHandler:function(){},getNativeInput:function(){return null},isFocused:function(){return!1},activateLineRipple:function(){},deactivateLineRipple:function(){},setLineRippleTransformOrigin:function(){},shakeLabel:function(){},floatLabel:function(){},setLabelRequired:function(){},hasLabel:function(){return!1},getLabelWidth:function(){return 0},hasOutline:function(){return!1},notchOutline:function(){},closeOutline:function(){}}},enumerable:!1,configurable:!0}),t.prototype.init=function(){var e,t,i,n;this.adapter.hasLabel()&&this.getNativeInput().required&&this.adapter.setLabelRequired(!0),this.adapter.isFocused()?this.inputFocusHandler():this.adapter.hasLabel()&&this.shouldFloat&&(this.notchOutline(!0),this.adapter.floatLabel(!0),this.styleFloating(!0)),this.adapter.registerInputInteractionHandler("focus",this.inputFocusHandler),this.adapter.registerInputInteractionHandler("blur",this.inputBlurHandler),this.adapter.registerInputInteractionHandler("input",this.inputInputHandler);try{for(var o=E(xe),r=o.next();!r.done;r=o.next()){var a=r.value;this.adapter.registerInputInteractionHandler(a,this.setPointerXOffset)}}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}try{for(var d=E(ve),s=d.next();!s.done;s=d.next()){a=s.value;this.adapter.registerTextFieldInteractionHandler(a,this.textFieldInteractionHandler)}}catch(e){i={error:e}}finally{try{s&&!s.done&&(n=d.return)&&n.call(d)}finally{if(i)throw i.error}}this.validationObserver=this.adapter.registerValidationAttributeChangeHandler(this.validationAttributeChangeHandler),this.setcharacterCounter(this.getValue().length)},t.prototype.destroy=function(){var e,t,i,n;this.adapter.deregisterInputInteractionHandler("focus",this.inputFocusHandler),this.adapter.deregisterInputInteractionHandler("blur",this.inputBlurHandler),this.adapter.deregisterInputInteractionHandler("input",this.inputInputHandler);try{for(var o=E(xe),r=o.next();!r.done;r=o.next()){var a=r.value;this.adapter.deregisterInputInteractionHandler(a,this.setPointerXOffset)}}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}try{for(var d=E(ve),s=d.next();!s.done;s=d.next()){a=s.value;this.adapter.deregisterTextFieldInteractionHandler(a,this.textFieldInteractionHandler)}}catch(e){i={error:e}}finally{try{s&&!s.done&&(n=d.return)&&n.call(d)}finally{if(i)throw i.error}}this.adapter.deregisterValidationAttributeChangeHandler(this.validationObserver)},t.prototype.handleTextFieldInteraction=function(){var e=this.adapter.getNativeInput();e&&e.disabled||(this.receivedUserInput=!0)},t.prototype.handleValidationAttributeChange=function(e){var t=this;e.some((function(e){return _e.indexOf(e)>-1&&(t.styleValidity(!0),t.adapter.setLabelRequired(t.getNativeInput().required),!0)})),e.indexOf("maxlength")>-1&&this.setcharacterCounter(this.getValue().length)},t.prototype.notchOutline=function(e){if(this.adapter.hasOutline()&&this.adapter.hasLabel())if(e){var t=this.adapter.getLabelWidth()*ge.LABEL_SCALE;this.adapter.notchOutline(t)}else this.adapter.closeOutline()},t.prototype.activateFocus=function(){this.isFocused=!0,this.styleFocused(this.isFocused),this.adapter.activateLineRipple(),this.adapter.hasLabel()&&(this.notchOutline(this.shouldFloat),this.adapter.floatLabel(this.shouldFloat),this.styleFloating(this.shouldFloat),this.adapter.shakeLabel(this.shouldShake)),!this.helperText||!this.helperText.isPersistent()&&this.helperText.isValidation()&&this.valid||this.helperText.showToScreenReader()},t.prototype.setTransformOrigin=function(e){if(!this.isDisabled()&&!this.adapter.hasOutline()){var t=e.touches,i=t?t[0]:e,n=i.target.getBoundingClientRect(),o=i.clientX-n.left;this.adapter.setLineRippleTransformOrigin(o)}},t.prototype.handleInput=function(){this.autoCompleteFocus(),this.setcharacterCounter(this.getValue().length)},t.prototype.autoCompleteFocus=function(){this.receivedUserInput||this.activateFocus()},t.prototype.deactivateFocus=function(){this.isFocused=!1,this.adapter.deactivateLineRipple();var e=this.isValid();this.styleValidity(e),this.styleFocused(this.isFocused),this.adapter.hasLabel()&&(this.notchOutline(this.shouldFloat),this.adapter.floatLabel(this.shouldFloat),this.styleFloating(this.shouldFloat),this.adapter.shakeLabel(this.shouldShake)),this.shouldFloat||(this.receivedUserInput=!1)},t.prototype.getValue=function(){return this.getNativeInput().value},t.prototype.setValue=function(e){if(this.getValue()!==e&&(this.getNativeInput().value=e),this.setcharacterCounter(e.length),this.validateOnValueChange){var t=this.isValid();this.styleValidity(t)}this.adapter.hasLabel()&&(this.notchOutline(this.shouldFloat),this.adapter.floatLabel(this.shouldFloat),this.styleFloating(this.shouldFloat),this.validateOnValueChange&&this.adapter.shakeLabel(this.shouldShake))},t.prototype.isValid=function(){return this.useNativeValidation?this.isNativeInputValid():this.valid},t.prototype.setValid=function(e){this.valid=e,this.styleValidity(e);var t=!e&&!this.isFocused&&!!this.getValue();this.adapter.hasLabel()&&this.adapter.shakeLabel(t)},t.prototype.setValidateOnValueChange=function(e){this.validateOnValueChange=e},t.prototype.getValidateOnValueChange=function(){return this.validateOnValueChange},t.prototype.setUseNativeValidation=function(e){this.useNativeValidation=e},t.prototype.isDisabled=function(){return this.getNativeInput().disabled},t.prototype.setDisabled=function(e){this.getNativeInput().disabled=e,this.styleDisabled(e)},t.prototype.setHelperTextContent=function(e){this.helperText&&this.helperText.setContent(e)},t.prototype.setLeadingIconAriaLabel=function(e){this.leadingIcon&&this.leadingIcon.setAriaLabel(e)},t.prototype.setLeadingIconContent=function(e){this.leadingIcon&&this.leadingIcon.setContent(e)},t.prototype.setTrailingIconAriaLabel=function(e){this.trailingIcon&&this.trailingIcon.setAriaLabel(e)},t.prototype.setTrailingIconContent=function(e){this.trailingIcon&&this.trailingIcon.setContent(e)},t.prototype.setcharacterCounter=function(e){if(this.characterCounter){var t=this.getNativeInput().maxLength;if(-1===t)throw new Error("MDCTextFieldFoundation: Expected maxlength html property on text input or textarea.");this.characterCounter.setCounterValue(e,t)}},t.prototype.isBadInput=function(){return this.getNativeInput().validity.badInput||!1},t.prototype.isNativeInputValid=function(){return this.getNativeInput().validity.valid},t.prototype.styleValidity=function(e){var i=t.cssClasses.INVALID;if(e?this.adapter.removeClass(i):this.adapter.addClass(i),this.helperText){if(this.helperText.setValidity(e),!this.helperText.isValidation())return;var n=this.helperText.isVisible(),o=this.helperText.getId();n&&o?this.adapter.setInputAttr(ue.ARIA_DESCRIBEDBY,o):this.adapter.removeInputAttr(ue.ARIA_DESCRIBEDBY)}},t.prototype.styleFocused=function(e){var i=t.cssClasses.FOCUSED;e?this.adapter.addClass(i):this.adapter.removeClass(i)},t.prototype.styleDisabled=function(e){var i=t.cssClasses,n=i.DISABLED,o=i.INVALID;e?(this.adapter.addClass(n),this.adapter.removeClass(o)):this.adapter.removeClass(n),this.leadingIcon&&this.leadingIcon.setDisabled(e),this.trailingIcon&&this.trailingIcon.setDisabled(e)},t.prototype.styleFloating=function(e){var i=t.cssClasses.LABEL_FLOATING;e?this.adapter.addClass(i):this.adapter.removeClass(i)},t.prototype.getNativeInput=function(){return(this.adapter?this.adapter.getNativeInput():null)||{disabled:!1,maxLength:-1,required:!1,type:"input",validity:{badInput:!1,valid:!0},value:""}},t}(_),we=ye;const ke={},Ee=y(class extends w{constructor(e){if(super(e),e.type!==k.PROPERTY&&e.type!==k.ATTRIBUTE&&e.type!==k.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!(e=>void 0===e.strings)(e))throw Error("`live` bindings can only contain a single expression")}render(e){return e}update(e,[t]){if(t===I||t===A)return t;const i=e.element,n=e.name;if(e.type===k.PROPERTY){if(t===i[n])return I}else if(e.type===k.BOOLEAN_ATTRIBUTE){if(!!t===i.hasAttribute(n))return I}else if(e.type===k.ATTRIBUTE&&i.getAttribute(n)===t+"")return I;return((e,t=ke)=>{e._$AH=t})(e),t}}),Ie=["touchstart","touchmove","scroll","mousewheel"],Ae=(e={})=>{const t={};for(const i in e)t[i]=e[i];return Object.assign({badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:!0,valueMissing:!1},t)};class Se extends B{constructor(){super(...arguments),this.mdcFoundationClass=we,this.value="",this.type="text",this.placeholder="",this.label="",this.icon="",this.iconTrailing="",this.disabled=!1,this.required=!1,this.minLength=-1,this.maxLength=-1,this.outlined=!1,this.helper="",this.validateOnInitialRender=!1,this.validationMessage="",this.autoValidate=!1,this.pattern="",this.min="",this.max="",this.step=null,this.size=null,this.helperPersistent=!1,this.charCounter=!1,this.endAligned=!1,this.prefix="",this.suffix="",this.name="",this.readOnly=!1,this.autocapitalize="",this.outlineOpen=!1,this.outlineWidth=0,this.isUiValid=!0,this.focused=!1,this._validity=Ae(),this.validityTransform=null}get validity(){return this._checkValidity(this.value),this._validity}get willValidate(){return this.formElement.willValidate}get selectionStart(){return this.formElement.selectionStart}get selectionEnd(){return this.formElement.selectionEnd}focus(){const e=new CustomEvent("focus");this.formElement.dispatchEvent(e),this.formElement.focus()}blur(){const e=new CustomEvent("blur");this.formElement.dispatchEvent(e),this.formElement.blur()}select(){this.formElement.select()}setSelectionRange(e,t,i){this.formElement.setSelectionRange(e,t,i)}update(e){e.has("autoValidate")&&this.mdcFoundation&&this.mdcFoundation.setValidateOnValueChange(this.autoValidate),e.has("value")&&"string"!=typeof this.value&&(this.value=`${this.value}`),super.update(e)}setFormData(e){this.name&&e.append(this.name,this.value)}render(){const e=this.charCounter&&-1!==this.maxLength,t=!!this.helper||!!this.validationMessage||e,i={"mdc-text-field--disabled":this.disabled,"mdc-text-field--no-label":!this.label,"mdc-text-field--filled":!this.outlined,"mdc-text-field--outlined":this.outlined,"mdc-text-field--with-leading-icon":this.icon,"mdc-text-field--with-trailing-icon":this.iconTrailing,"mdc-text-field--end-aligned":this.endAligned};return h` + `}}i([a(".mdc-notched-outline")],re.prototype,"mdcRoot",void 0),i([n({type:Number})],re.prototype,"width",void 0),i([n({type:Boolean,reflect:!0})],re.prototype,"open",void 0),i([a(".mdc-notched-outline__notch")],re.prototype,"notchElement",void 0);const ae=u`.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;border-top:1px solid;border-bottom:1px solid;pointer-events:none}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid;flex-grow:1}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{flex:0 0 auto;width:auto;max-width:calc(100% - 12px * 2)}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(100% / 0.75)}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}:host{display:block;position:absolute;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] :host,:host([dir=rtl]){text-align:right}::slotted(.mdc-floating-label){display:inline-block;position:relative;top:17px;bottom:auto;max-width:100%}::slotted(.mdc-floating-label--float-above){text-overflow:clip}.mdc-notched-outline--upgraded ::slotted(.mdc-floating-label--float-above){max-width:calc(100% / 0.75)}.mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-notched-outline .mdc-notched-outline__leading,.mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px)) * 2)}}.mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-color:var(--mdc-notched-outline-border-color, var(--mdc-theme-primary, #6200ee));border-width:1px;border-width:var(--mdc-notched-outline-stroke-width, 1px)}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0;padding-top:var(--mdc-notched-outline-notch-offset, 0)}`;let de=class extends re{};de.styles=[ae],de=i([y("mwc-notched-outline")],de);var se={LABEL_FLOAT_ABOVE:"mdc-floating-label--float-above",LABEL_REQUIRED:"mdc-floating-label--required",LABEL_SHAKE:"mdc-floating-label--shake",ROOT:"mdc-floating-label"},le=function(e){function t(i){var n=e.call(this,g(g({},t.defaultAdapter),i))||this;return n.shakeAnimationEndHandler=function(){n.handleShakeAnimationEnd()},n}return f(t,e),Object.defineProperty(t,"cssClasses",{get:function(){return se},enumerable:!1,configurable:!0}),Object.defineProperty(t,"defaultAdapter",{get:function(){return{addClass:function(){},removeClass:function(){},getWidth:function(){return 0},registerInteractionHandler:function(){},deregisterInteractionHandler:function(){}}},enumerable:!1,configurable:!0}),t.prototype.init=function(){this.adapter.registerInteractionHandler("animationend",this.shakeAnimationEndHandler)},t.prototype.destroy=function(){this.adapter.deregisterInteractionHandler("animationend",this.shakeAnimationEndHandler)},t.prototype.getWidth=function(){return this.adapter.getWidth()},t.prototype.shake=function(e){var i=t.cssClasses.LABEL_SHAKE;e?this.adapter.addClass(i):this.adapter.removeClass(i)},t.prototype.float=function(e){var i=t.cssClasses,n=i.LABEL_FLOAT_ABOVE,o=i.LABEL_SHAKE;e?this.adapter.addClass(n):(this.adapter.removeClass(n),this.adapter.removeClass(o))},t.prototype.setRequired=function(e){var i=t.cssClasses.LABEL_REQUIRED;e?this.adapter.addClass(i):this.adapter.removeClass(i)},t.prototype.handleShakeAnimationEnd=function(){var e=t.cssClasses.LABEL_SHAKE;this.adapter.removeClass(e)},t}(_);const ce=v(class extends w{constructor(e){switch(super(e),this.foundation=null,this.previousPart=null,e.type){case k.ATTRIBUTE:case k.PROPERTY:break;default:throw new Error("FloatingLabel directive only support attribute and property parts")}}update(e,[t]){if(e!==this.previousPart){this.foundation&&this.foundation.destroy(),this.previousPart=e;const t=e.element;t.classList.add("mdc-floating-label");const i=(e=>({addClass:t=>e.classList.add(t),removeClass:t=>e.classList.remove(t),getWidth:()=>e.scrollWidth,registerInteractionHandler:(t,i)=>{e.addEventListener(t,i)},deregisterInteractionHandler:(t,i)=>{e.removeEventListener(t,i)}}))(t);this.foundation=new le(i),this.foundation.init()}return this.render(t)}render(e){return this.foundation}});var he={LINE_RIPPLE_ACTIVE:"mdc-line-ripple--active",LINE_RIPPLE_DEACTIVATING:"mdc-line-ripple--deactivating"},me=function(e){function t(i){var n=e.call(this,g(g({},t.defaultAdapter),i))||this;return n.transitionEndHandler=function(e){n.handleTransitionEnd(e)},n}return f(t,e),Object.defineProperty(t,"cssClasses",{get:function(){return he},enumerable:!1,configurable:!0}),Object.defineProperty(t,"defaultAdapter",{get:function(){return{addClass:function(){},removeClass:function(){},hasClass:function(){return!1},setStyle:function(){},registerEventHandler:function(){},deregisterEventHandler:function(){}}},enumerable:!1,configurable:!0}),t.prototype.init=function(){this.adapter.registerEventHandler("transitionend",this.transitionEndHandler)},t.prototype.destroy=function(){this.adapter.deregisterEventHandler("transitionend",this.transitionEndHandler)},t.prototype.activate=function(){this.adapter.removeClass(he.LINE_RIPPLE_DEACTIVATING),this.adapter.addClass(he.LINE_RIPPLE_ACTIVE)},t.prototype.setRippleCenter=function(e){this.adapter.setStyle("transform-origin",e+"px center")},t.prototype.deactivate=function(){this.adapter.addClass(he.LINE_RIPPLE_DEACTIVATING)},t.prototype.handleTransitionEnd=function(e){var t=this.adapter.hasClass(he.LINE_RIPPLE_DEACTIVATING);"opacity"===e.propertyName&&t&&(this.adapter.removeClass(he.LINE_RIPPLE_ACTIVE),this.adapter.removeClass(he.LINE_RIPPLE_DEACTIVATING))},t}(_);const pe=v(class extends w{constructor(e){switch(super(e),this.previousPart=null,this.foundation=null,e.type){case k.ATTRIBUTE:case k.PROPERTY:return;default:throw new Error("LineRipple only support attribute and property parts.")}}update(e,t){if(this.previousPart!==e){this.foundation&&this.foundation.destroy(),this.previousPart=e;const t=e.element;t.classList.add("mdc-line-ripple");const i=(e=>({addClass:t=>e.classList.add(t),removeClass:t=>e.classList.remove(t),hasClass:t=>e.classList.contains(t),setStyle:(t,i)=>e.style.setProperty(t,i),registerEventHandler:(t,i)=>{e.addEventListener(t,i)},deregisterEventHandler:(t,i)=>{e.removeEventListener(t,i)}}))(t);this.foundation=new me(i),this.foundation.init()}return this.render()}render(){return this.foundation}});var ue={ARIA_CONTROLS:"aria-controls",ARIA_DESCRIBEDBY:"aria-describedby",INPUT_SELECTOR:".mdc-text-field__input",LABEL_SELECTOR:".mdc-floating-label",LEADING_ICON_SELECTOR:".mdc-text-field__icon--leading",LINE_RIPPLE_SELECTOR:".mdc-line-ripple",OUTLINE_SELECTOR:".mdc-notched-outline",PREFIX_SELECTOR:".mdc-text-field__affix--prefix",SUFFIX_SELECTOR:".mdc-text-field__affix--suffix",TRAILING_ICON_SELECTOR:".mdc-text-field__icon--trailing"},fe={DISABLED:"mdc-text-field--disabled",FOCUSED:"mdc-text-field--focused",HELPER_LINE:"mdc-text-field-helper-line",INVALID:"mdc-text-field--invalid",LABEL_FLOATING:"mdc-text-field--label-floating",NO_LABEL:"mdc-text-field--no-label",OUTLINED:"mdc-text-field--outlined",ROOT:"mdc-text-field",TEXTAREA:"mdc-text-field--textarea",WITH_LEADING_ICON:"mdc-text-field--with-leading-icon",WITH_TRAILING_ICON:"mdc-text-field--with-trailing-icon",WITH_INTERNAL_COUNTER:"mdc-text-field--with-internal-counter"},ge={LABEL_SCALE:.75},_e=["pattern","min","max","required","step","minlength","maxlength"],be=["color","date","datetime-local","month","range","time","week"],xe=["mousedown","touchstart"],ye=["click","keydown"],ve=function(e){function t(i,n){void 0===n&&(n={});var o=e.call(this,g(g({},t.defaultAdapter),i))||this;return o.isFocused=!1,o.receivedUserInput=!1,o.valid=!0,o.useNativeValidation=!0,o.validateOnValueChange=!0,o.helperText=n.helperText,o.characterCounter=n.characterCounter,o.leadingIcon=n.leadingIcon,o.trailingIcon=n.trailingIcon,o.inputFocusHandler=function(){o.activateFocus()},o.inputBlurHandler=function(){o.deactivateFocus()},o.inputInputHandler=function(){o.handleInput()},o.setPointerXOffset=function(e){o.setTransformOrigin(e)},o.textFieldInteractionHandler=function(){o.handleTextFieldInteraction()},o.validationAttributeChangeHandler=function(e){o.handleValidationAttributeChange(e)},o}return f(t,e),Object.defineProperty(t,"cssClasses",{get:function(){return fe},enumerable:!1,configurable:!0}),Object.defineProperty(t,"strings",{get:function(){return ue},enumerable:!1,configurable:!0}),Object.defineProperty(t,"numbers",{get:function(){return ge},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shouldAlwaysFloat",{get:function(){var e=this.getNativeInput().type;return be.indexOf(e)>=0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shouldFloat",{get:function(){return this.shouldAlwaysFloat||this.isFocused||!!this.getValue()||this.isBadInput()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shouldShake",{get:function(){return!this.isFocused&&!this.isValid()&&!!this.getValue()},enumerable:!1,configurable:!0}),Object.defineProperty(t,"defaultAdapter",{get:function(){return{addClass:function(){},removeClass:function(){},hasClass:function(){return!0},setInputAttr:function(){},removeInputAttr:function(){},registerTextFieldInteractionHandler:function(){},deregisterTextFieldInteractionHandler:function(){},registerInputInteractionHandler:function(){},deregisterInputInteractionHandler:function(){},registerValidationAttributeChangeHandler:function(){return new MutationObserver((function(){}))},deregisterValidationAttributeChangeHandler:function(){},getNativeInput:function(){return null},isFocused:function(){return!1},activateLineRipple:function(){},deactivateLineRipple:function(){},setLineRippleTransformOrigin:function(){},shakeLabel:function(){},floatLabel:function(){},setLabelRequired:function(){},hasLabel:function(){return!1},getLabelWidth:function(){return 0},hasOutline:function(){return!1},notchOutline:function(){},closeOutline:function(){}}},enumerable:!1,configurable:!0}),t.prototype.init=function(){var e,t,i,n;this.adapter.hasLabel()&&this.getNativeInput().required&&this.adapter.setLabelRequired(!0),this.adapter.isFocused()?this.inputFocusHandler():this.adapter.hasLabel()&&this.shouldFloat&&(this.notchOutline(!0),this.adapter.floatLabel(!0),this.styleFloating(!0)),this.adapter.registerInputInteractionHandler("focus",this.inputFocusHandler),this.adapter.registerInputInteractionHandler("blur",this.inputBlurHandler),this.adapter.registerInputInteractionHandler("input",this.inputInputHandler);try{for(var o=E(xe),r=o.next();!r.done;r=o.next()){var a=r.value;this.adapter.registerInputInteractionHandler(a,this.setPointerXOffset)}}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}try{for(var d=E(ye),s=d.next();!s.done;s=d.next()){a=s.value;this.adapter.registerTextFieldInteractionHandler(a,this.textFieldInteractionHandler)}}catch(e){i={error:e}}finally{try{s&&!s.done&&(n=d.return)&&n.call(d)}finally{if(i)throw i.error}}this.validationObserver=this.adapter.registerValidationAttributeChangeHandler(this.validationAttributeChangeHandler),this.setcharacterCounter(this.getValue().length)},t.prototype.destroy=function(){var e,t,i,n;this.adapter.deregisterInputInteractionHandler("focus",this.inputFocusHandler),this.adapter.deregisterInputInteractionHandler("blur",this.inputBlurHandler),this.adapter.deregisterInputInteractionHandler("input",this.inputInputHandler);try{for(var o=E(xe),r=o.next();!r.done;r=o.next()){var a=r.value;this.adapter.deregisterInputInteractionHandler(a,this.setPointerXOffset)}}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}try{for(var d=E(ye),s=d.next();!s.done;s=d.next()){a=s.value;this.adapter.deregisterTextFieldInteractionHandler(a,this.textFieldInteractionHandler)}}catch(e){i={error:e}}finally{try{s&&!s.done&&(n=d.return)&&n.call(d)}finally{if(i)throw i.error}}this.adapter.deregisterValidationAttributeChangeHandler(this.validationObserver)},t.prototype.handleTextFieldInteraction=function(){var e=this.adapter.getNativeInput();e&&e.disabled||(this.receivedUserInput=!0)},t.prototype.handleValidationAttributeChange=function(e){var t=this;e.some((function(e){return _e.indexOf(e)>-1&&(t.styleValidity(!0),t.adapter.setLabelRequired(t.getNativeInput().required),!0)})),e.indexOf("maxlength")>-1&&this.setcharacterCounter(this.getValue().length)},t.prototype.notchOutline=function(e){if(this.adapter.hasOutline()&&this.adapter.hasLabel())if(e){var t=this.adapter.getLabelWidth()*ge.LABEL_SCALE;this.adapter.notchOutline(t)}else this.adapter.closeOutline()},t.prototype.activateFocus=function(){this.isFocused=!0,this.styleFocused(this.isFocused),this.adapter.activateLineRipple(),this.adapter.hasLabel()&&(this.notchOutline(this.shouldFloat),this.adapter.floatLabel(this.shouldFloat),this.styleFloating(this.shouldFloat),this.adapter.shakeLabel(this.shouldShake)),!this.helperText||!this.helperText.isPersistent()&&this.helperText.isValidation()&&this.valid||this.helperText.showToScreenReader()},t.prototype.setTransformOrigin=function(e){if(!this.isDisabled()&&!this.adapter.hasOutline()){var t=e.touches,i=t?t[0]:e,n=i.target.getBoundingClientRect(),o=i.clientX-n.left;this.adapter.setLineRippleTransformOrigin(o)}},t.prototype.handleInput=function(){this.autoCompleteFocus(),this.setcharacterCounter(this.getValue().length)},t.prototype.autoCompleteFocus=function(){this.receivedUserInput||this.activateFocus()},t.prototype.deactivateFocus=function(){this.isFocused=!1,this.adapter.deactivateLineRipple();var e=this.isValid();this.styleValidity(e),this.styleFocused(this.isFocused),this.adapter.hasLabel()&&(this.notchOutline(this.shouldFloat),this.adapter.floatLabel(this.shouldFloat),this.styleFloating(this.shouldFloat),this.adapter.shakeLabel(this.shouldShake)),this.shouldFloat||(this.receivedUserInput=!1)},t.prototype.getValue=function(){return this.getNativeInput().value},t.prototype.setValue=function(e){if(this.getValue()!==e&&(this.getNativeInput().value=e),this.setcharacterCounter(e.length),this.validateOnValueChange){var t=this.isValid();this.styleValidity(t)}this.adapter.hasLabel()&&(this.notchOutline(this.shouldFloat),this.adapter.floatLabel(this.shouldFloat),this.styleFloating(this.shouldFloat),this.validateOnValueChange&&this.adapter.shakeLabel(this.shouldShake))},t.prototype.isValid=function(){return this.useNativeValidation?this.isNativeInputValid():this.valid},t.prototype.setValid=function(e){this.valid=e,this.styleValidity(e);var t=!e&&!this.isFocused&&!!this.getValue();this.adapter.hasLabel()&&this.adapter.shakeLabel(t)},t.prototype.setValidateOnValueChange=function(e){this.validateOnValueChange=e},t.prototype.getValidateOnValueChange=function(){return this.validateOnValueChange},t.prototype.setUseNativeValidation=function(e){this.useNativeValidation=e},t.prototype.isDisabled=function(){return this.getNativeInput().disabled},t.prototype.setDisabled=function(e){this.getNativeInput().disabled=e,this.styleDisabled(e)},t.prototype.setHelperTextContent=function(e){this.helperText&&this.helperText.setContent(e)},t.prototype.setLeadingIconAriaLabel=function(e){this.leadingIcon&&this.leadingIcon.setAriaLabel(e)},t.prototype.setLeadingIconContent=function(e){this.leadingIcon&&this.leadingIcon.setContent(e)},t.prototype.setTrailingIconAriaLabel=function(e){this.trailingIcon&&this.trailingIcon.setAriaLabel(e)},t.prototype.setTrailingIconContent=function(e){this.trailingIcon&&this.trailingIcon.setContent(e)},t.prototype.setcharacterCounter=function(e){if(this.characterCounter){var t=this.getNativeInput().maxLength;if(-1===t)throw new Error("MDCTextFieldFoundation: Expected maxlength html property on text input or textarea.");this.characterCounter.setCounterValue(e,t)}},t.prototype.isBadInput=function(){return this.getNativeInput().validity.badInput||!1},t.prototype.isNativeInputValid=function(){return this.getNativeInput().validity.valid},t.prototype.styleValidity=function(e){var i=t.cssClasses.INVALID;if(e?this.adapter.removeClass(i):this.adapter.addClass(i),this.helperText){if(this.helperText.setValidity(e),!this.helperText.isValidation())return;var n=this.helperText.isVisible(),o=this.helperText.getId();n&&o?this.adapter.setInputAttr(ue.ARIA_DESCRIBEDBY,o):this.adapter.removeInputAttr(ue.ARIA_DESCRIBEDBY)}},t.prototype.styleFocused=function(e){var i=t.cssClasses.FOCUSED;e?this.adapter.addClass(i):this.adapter.removeClass(i)},t.prototype.styleDisabled=function(e){var i=t.cssClasses,n=i.DISABLED,o=i.INVALID;e?(this.adapter.addClass(n),this.adapter.removeClass(o)):this.adapter.removeClass(n),this.leadingIcon&&this.leadingIcon.setDisabled(e),this.trailingIcon&&this.trailingIcon.setDisabled(e)},t.prototype.styleFloating=function(e){var i=t.cssClasses.LABEL_FLOATING;e?this.adapter.addClass(i):this.adapter.removeClass(i)},t.prototype.getNativeInput=function(){return(this.adapter?this.adapter.getNativeInput():null)||{disabled:!1,maxLength:-1,required:!1,type:"input",validity:{badInput:!1,valid:!0},value:""}},t}(_),we=ve;const ke={},Ee=v(class extends w{constructor(e){if(super(e),e.type!==k.PROPERTY&&e.type!==k.ATTRIBUTE&&e.type!==k.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!(e=>void 0===e.strings)(e))throw Error("`live` bindings can only contain a single expression")}render(e){return e}update(e,[t]){if(t===I||t===A)return t;const i=e.element,n=e.name;if(e.type===k.PROPERTY){if(t===i[n])return I}else if(e.type===k.BOOLEAN_ATTRIBUTE){if(!!t===i.hasAttribute(n))return I}else if(e.type===k.ATTRIBUTE&&i.getAttribute(n)===t+"")return I;return((e,t=ke)=>{e._$AH=t})(e),t}}),Ie=["touchstart","touchmove","scroll","mousewheel"],Ae=(e={})=>{const t={};for(const i in e)t[i]=e[i];return Object.assign({badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:!0,valueMissing:!1},t)};class Se extends B{constructor(){super(...arguments),this.mdcFoundationClass=we,this.value="",this.type="text",this.placeholder="",this.label="",this.icon="",this.iconTrailing="",this.disabled=!1,this.required=!1,this.minLength=-1,this.maxLength=-1,this.outlined=!1,this.helper="",this.validateOnInitialRender=!1,this.validationMessage="",this.autoValidate=!1,this.pattern="",this.min="",this.max="",this.step=null,this.size=null,this.helperPersistent=!1,this.charCounter=!1,this.endAligned=!1,this.prefix="",this.suffix="",this.name="",this.readOnly=!1,this.autocapitalize="",this.outlineOpen=!1,this.outlineWidth=0,this.isUiValid=!0,this.focused=!1,this._validity=Ae(),this.validityTransform=null}get validity(){return this._checkValidity(this.value),this._validity}get willValidate(){return this.formElement.willValidate}get selectionStart(){return this.formElement.selectionStart}get selectionEnd(){return this.formElement.selectionEnd}focus(){const e=new CustomEvent("focus");this.formElement.dispatchEvent(e),this.formElement.focus()}blur(){const e=new CustomEvent("blur");this.formElement.dispatchEvent(e),this.formElement.blur()}select(){this.formElement.select()}setSelectionRange(e,t,i){this.formElement.setSelectionRange(e,t,i)}update(e){e.has("autoValidate")&&this.mdcFoundation&&this.mdcFoundation.setValidateOnValueChange(this.autoValidate),e.has("value")&&"string"!=typeof this.value&&(this.value=`${this.value}`),super.update(e)}setFormData(e){this.name&&e.append(this.name,this.value)}render(){const e=this.charCounter&&-1!==this.maxLength,t=!!this.helper||!!this.validationMessage||e,i={"mdc-text-field--disabled":this.disabled,"mdc-text-field--no-label":!this.label,"mdc-text-field--filled":!this.outlined,"mdc-text-field--outlined":this.outlined,"mdc-text-field--with-leading-icon":this.icon,"mdc-text-field--with-trailing-icon":this.iconTrailing,"mdc-text-field--end-aligned":this.endAligned};return h`