openc3-tool-base 5.20.0 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/tools/base/ArrayWidget-By62tXtU-27c8b882b86304793d29.js +2 -0
- data/tools/base/BarColumn-Dm3D1Lhp-b33a6036da1eace03596.js +1 -0
- data/tools/base/BlockWidget-CrT45ode-9037f0f876cd3d303ba4.js +2 -0
- data/tools/base/ButtonWidget-CKyBBv6m-4ad50ff126f21bbcb31c.js +2 -0
- data/tools/base/CanvasWidget-PqkppHC7-b4b6bef646004fd2f56c.js +1 -0
- data/tools/base/CanvasdotWidget-BUbJgM2d-5a50fa4e5003def04c5d.js +1 -0
- data/tools/base/CanvasimageWidget-DPVBY7mi-9756f80b71e87770ae02.js +1 -0
- data/tools/base/CanvasimagevalueWidget-GX37zzNc-4a84b5d8492e094f3cd8.js +1 -0
- data/tools/base/CanvaslabelWidget-P2_Y6Edw-60fe0d67827ed60f5f39.js +1 -0
- data/tools/base/CanvaslabelvalueWidget-Cuas1i9P-92a5f7281a6463dddd50.js +1 -0
- data/tools/base/CanvaslineWidget-BYOYgPya-34d182b7a2e070fab915.js +1 -0
- data/tools/base/CanvaslinevalueWidget-3cVJMFo7-dd25c68d369cff0ee5f7.js +1 -0
- data/tools/base/CheckbuttonWidget-B3wgSMuB-10e1e261ffcbcb4e8765.js +1 -0
- data/tools/base/ComboboxWidget-Dzr4Scvf-5d3e733bbe565d09d3cc.js +1 -0
- data/tools/base/DateWidget-BWh76Ibb-da0d9b3101fbdf4a6285.js +1 -0
- data/tools/base/DetailsDialog-EWjtBjle-25a2457dab187084907c.js +1 -0
- data/tools/base/DynamicWidget-m9EliUR2-5b8bcd437228579c2e43.js +1 -0
- data/tools/base/FormatvalueWidget-Rk0_eeIm-d1a450c33b4478d28dea.js +1 -0
- data/tools/base/GraphWidget-LqekkNDr-201ac3f1d87ee2efbde0.js +1 -0
- data/tools/base/HorizontalWidget-BcfJ24Zn-db6ff4fdd990048a5842.js +1 -0
- data/tools/base/HorizontalboxWidget-CQy1Hv9E-f3963d31a81ad3857d83.js +1 -0
- data/tools/base/HorizontallineWidget-BdlNB951-6a07f33a58a36df09451.js +1 -0
- data/tools/base/IframeWidget-BBaDrRLo-a1c41f3703c83ef8803a.js +1 -0
- data/tools/base/ImageLoader-CDLQopxJ-51461a19ae68286b3776.js +1 -0
- data/tools/base/ImageviewerWidget-BgO3Pq6I-28a77f29ef25090fc2a0.js +1 -0
- data/tools/base/LabelWidget-B_C6lKOE-2785cccbfff8c6f4d8b8.js +1 -0
- data/tools/base/LabelledWidget-B_UGivhr-109f4dc94fe2a6a786db.js +1 -0
- data/tools/base/LabelprogressbarWidget-BJWCmsYC-1e08921c58f8f9961bf7.js +1 -0
- data/tools/base/LabelsparklineWidget-DILCIh3q-292ef40397eee08dac5f.js +1 -0
- data/tools/base/LabelvalueWidget-CCZd1NXE-5f9a6336e8356fd75316.js +1 -0
- data/tools/base/LabelvaluedescWidget-Bsllq8W6-78fb79c418e8fb7d7acd.js +1 -0
- data/tools/base/LabelvaluelimitsbarWidget-BV-cfaD--d8d3dca0cab30be71b8a.js +1 -0
- data/tools/base/LabelvaluelimitscolumnWidget-DwA0eRBw-5c4ec115bb4771f14c26.js +1 -0
- data/tools/base/LabelvaluerangebarWidget-3GDJz3dj-3223b3ec5dbe90eb0dd5.js +1 -0
- data/tools/base/Layout-klOVw-YN-5d30508ac31cf4b0179c.js +1 -0
- data/tools/base/LedWidget-BAt02s0J-f76d2e2a8f552df9af1f.js +1 -0
- data/tools/base/LimitsbarWidget-JJiyzZjb-d6fc71a1b312c23c2d81.js +1 -0
- data/tools/base/LimitscolorWidget-CYzXKbYd-a49d22867307e4974ccd.js +1 -0
- data/tools/base/LimitscolumnWidget-Cd76tBo7-0f51b5452e2b30ee673f.js +1 -0
- data/tools/base/LinegraphWidget-DWRtO6Ej-aab6f544c1ed231c82e5.js +1 -0
- data/tools/base/MatrixbycolumnsWidget-cwsyjNV2-60a9a5a4f9c7863d2747.js +1 -0
- data/tools/base/MonitoringLabel-4addcddf-6821ecad6ce8bd9e5720.js +1 -0
- data/tools/base/ProgressbarWidget-CYDziFej-b3b72069a0192ff46fc5.js +1 -0
- data/tools/base/RadiobuttonWidget-U6jcQZoD-369c38376e12b8036257.js +1 -0
- data/tools/base/RadiogroupWidget-HTPJnsB0-1aaedaafb633d21f23e7.js +1 -0
- data/tools/base/RangebarWidget-DW0FJK6y-415ec24aeec11f46f0fc.js +1 -0
- data/tools/base/RollupWidget-B2qrx55f-f32e5753c354fcf20772.js +1 -0
- data/tools/base/ScrollwindowWidget-CwIDxgO6-deeef61da6696de2bec1.js +1 -0
- data/tools/base/SignalWidget-Bosa3AbW-4a9884bd2644b7dba3d6.js +1 -0
- data/tools/base/SpacerWidget-DYAlt5mt-77f55cd5ee550755297b.js +1 -0
- data/tools/base/SparklineWidget-CDrVXOFV-e1afbfd2a37ab998ec48.js +1 -0
- data/tools/base/TabbookWidget-DDdlzCkv-20f56b49f165ea15ba74.js +1 -0
- data/tools/base/TextboxWidget-5euFelEq-1e3cec6bc8dada2dd1c6.js +1 -0
- data/tools/base/TextfieldWidget-BFripYeh-da9c4b79333f3db08b7c.js +1 -0
- data/tools/base/TimeWidget-BBSbsUYJ-70011eb65df7da49b0f2.js +1 -0
- data/tools/base/TitleWidget-p8cjo-Bs-45dfaff2bd9c0c1b8a66.js +1 -0
- data/tools/base/VWidget-Dmqf_jKM-f7dfe5d0e61787f95a08.js +1 -0
- data/tools/base/ValueWidget-CZh7JWwT-26d5bb8504a5b757cf70.js +1 -0
- data/tools/base/ValuelimitsbarWidget-DU7ybswC-e84be9de43efe9de8136.js +1 -0
- data/tools/base/ValuelimitscolumnWidget-DMw-h5jM-e71133bcb131299c5aef.js +1 -0
- data/tools/base/ValuerangebarWidget-DPpofDpA-95f1a27b9167320c297e.js +1 -0
- data/tools/base/VerticalWidget-Ch7VAEmz-29ae15d801b64e7b998a.js +1 -0
- data/tools/base/VerticalboxWidget-DYx-TFT4-2b25ee6d50eb5f4a3f7a.js +1 -0
- data/tools/base/Widget-orNSvnOh-4c70f18f355387b5c6ff.js +1 -0
- data/tools/base/css/astro-web-components-7.24.0.css +15 -0
- data/tools/base/css/vuetify-labs-3.7.5.min.css +12 -0
- data/tools/base/floating-ui.dom.esm-3f85c7b7-5d668d199f5e44f076c5.js +1 -0
- data/tools/base/helpers-cd147cd7-56c153f718091f2150ee.js +1 -0
- data/tools/base/{a0696a4fd430262c8adb.png → img/icon.png} +0 -0
- data/tools/base/index-13979ffd-ff8a8ddda8babde57d04.js +1 -0
- data/tools/base/index-allow-http.html +99 -18
- data/tools/base/index-bf9fd6cc-550d1a74839f7875c835.js +1 -0
- data/tools/base/index-fe8e5d4f-38cb03ac84ea2df77a22.js +1 -0
- data/tools/base/index.html +99 -18
- data/tools/base/js/amd.min.js +1 -1
- data/tools/base/js/auth.js +69 -1
- data/tools/base/js/import-map-overrides-4.2.0.min.js +3 -0
- data/tools/base/js/import-map-overrides-4.2.0.min.js.map +1 -0
- data/tools/base/js/named-register.min.js +1 -1
- data/tools/base/js/single-spa-6.0.3.min.js +3 -0
- data/tools/base/js/single-spa-6.0.3.min.js.map +1 -0
- data/tools/base/js/systemjs-6.15.1.min.js +5 -2
- data/tools/base/js/vue-router-4.4.4.min.js +22 -0
- data/tools/base/js/vue.global-3.5.13.js +18096 -0
- data/tools/base/js/vue.global.prod-3.5.13.min.js +5 -0
- data/tools/base/js/vuetify-labs-3.7.5.min.js +6 -0
- data/tools/base/js/vuex-4.1.0.min.js +6 -0
- data/tools/base/main-8041d33f8c7d3761874e.js +1421 -0
- data/tools/base/main.js +1 -0
- data/tools/base/rux-accordion-item.entry-e5d9a2eaaa9deacbf7db.js +1 -0
- data/tools/base/rux-accordion.entry-36fc1e6ff0ee4a3e9d79.js +1 -0
- data/tools/base/rux-breadcrumb-item.entry-2e6f5f61123a5c74c04e.js +1 -0
- data/tools/base/rux-breadcrumb.entry-944eb88845570f54b982.js +1 -0
- data/tools/base/rux-button-group.entry-c287b40905e7da103a69.js +1 -0
- data/tools/base/rux-button.entry-a9df63867a3b16087667.js +1 -0
- data/tools/base/rux-card.entry-a6e9d16e9636f005ca84.js +1 -0
- data/tools/base/rux-checkbox-group.entry-3011f15a5427725adec9.js +1 -0
- data/tools/base/rux-checkbox.entry-a8a05c72cdbae680824d.js +1 -0
- data/tools/base/rux-classification-marking.entry-8397f285088790caf809.js +1 -0
- data/tools/base/rux-clock.entry-ac1d5b3774bb968e03ab.js +1 -0
- data/tools/base/rux-container.entry-2e0d26d928fc8445c3dc.js +1 -0
- data/tools/base/rux-datetime_9.entry-ddbe9e99b4876a0d3bf2.js +1 -0
- data/tools/base/rux-dialog.entry-ce8d7789c46756b91331.js +1 -0
- data/tools/base/rux-global-status-bar.entry-b9bd4c5a7301fb79e7d1.js +1 -0
- data/tools/base/rux-icon-360.entry-7d3c7b27620b03ec676d.js +1 -0
- data/tools/base/rux-icon-3d-rotation.entry-bc74df32832625feb5e7.js +1 -0
- data/tools/base/rux-icon-4k.entry-83c36f2a11e322b26981.js +1 -0
- data/tools/base/rux-icon-ac-unit.entry-9027a1317609bc58b059.js +1 -0
- data/tools/base/rux-icon-access-alarms.entry-21455e12d556698329d7.js +1 -0
- data/tools/base/rux-icon-access-time.entry-f9eb1f1b7f804e37d973.js +1 -0
- data/tools/base/rux-icon-accessibility-new.entry-3b01150fa898e9d89bca.js +1 -0
- data/tools/base/rux-icon-accessibility.entry-8a72eeb2788712ff3c1b.js +1 -0
- data/tools/base/rux-icon-accessible-forward.entry-ae993ad28440c08e661b.js +1 -0
- data/tools/base/rux-icon-accessible.entry-439c4fb0a04adbcb0453.js +1 -0
- data/tools/base/rux-icon-account-balance-wallet.entry-24f1600efcfe8e6858dd.js +1 -0
- data/tools/base/rux-icon-account-balance.entry-4a6f41086a31c7b03768.js +1 -0
- data/tools/base/rux-icon-account-box.entry-48f9e5f0602be0334c1b.js +1 -0
- data/tools/base/rux-icon-account-circle.entry-4b3b2b41c9df5182565a.js +1 -0
- data/tools/base/rux-icon-adb.entry-7280184f47f2a66c3233.js +1 -0
- data/tools/base/rux-icon-add-a-photo.entry-b1d0d246bbb8b2193f1f.js +1 -0
- data/tools/base/rux-icon-add-alarm.entry-b929811c1c140f33174a.js +1 -0
- data/tools/base/rux-icon-add-alert.entry-8ceb63619b17bcc99017.js +1 -0
- data/tools/base/rux-icon-add-box.entry-ce3ce6686ef8c8854cda.js +1 -0
- data/tools/base/rux-icon-add-circle-outline.entry-6270347e2a48a233d5cb.js +1 -0
- data/tools/base/rux-icon-add-circle.entry-a62e55c6bcf982954997.js +1 -0
- data/tools/base/rux-icon-add-comment.entry-287669b9c49040e92bd0.js +1 -0
- data/tools/base/rux-icon-add-location.entry-805e426ede98406a8ace.js +1 -0
- data/tools/base/rux-icon-add-photo-alternate.entry-2628b052ea5c066a85b4.js +1 -0
- data/tools/base/rux-icon-add-shopping-cart.entry-640a701e2ef32a5e1203.js +1 -0
- data/tools/base/rux-icon-add-to-home-screen.entry-905fe5790743772794c4.js +1 -0
- data/tools/base/rux-icon-add-to-photos.entry-6a98b6c3633f3218220c.js +1 -0
- data/tools/base/rux-icon-add-to-queue.entry-515e591eef5d5ff76fcf.js +1 -0
- data/tools/base/rux-icon-add.entry-587fd07540127fd54359.js +1 -0
- data/tools/base/rux-icon-adjust.entry-1f868c077a2c7dc93734.js +1 -0
- data/tools/base/rux-icon-airline-seat-flat-angled.entry-56c6ec232105a9b75d7c.js +1 -0
- data/tools/base/rux-icon-airline-seat-flat.entry-e4cf133a915e7661765d.js +1 -0
- data/tools/base/rux-icon-airline-seat-individual-suite.entry-c77728bfee4d991cb603.js +1 -0
- data/tools/base/rux-icon-airline-seat-legroom-extra.entry-63c5acd8b6a28f928140.js +1 -0
- data/tools/base/rux-icon-airline-seat-legroom-normal.entry-ff5aeb0cf7a931418d0e.js +1 -0
- data/tools/base/rux-icon-airline-seat-legroom-reduced.entry-4e202ccb971deb2c9881.js +1 -0
- data/tools/base/rux-icon-airline-seat-recline-extra.entry-8d8ad52ff999e19c2fd2.js +1 -0
- data/tools/base/rux-icon-airline-seat-recline-normal.entry-e50a82c9ca898b5ce92d.js +1 -0
- data/tools/base/rux-icon-airplanemode-active.entry-40eb4d4036bdf83d5615.js +1 -0
- data/tools/base/rux-icon-airplanemode-inactive.entry-655687a98676262e1852.js +1 -0
- data/tools/base/rux-icon-airplay.entry-5eef2c44424c624b8f49.js +1 -0
- data/tools/base/rux-icon-airport-shuttle.entry-d3988fbfb4517474b2c5.js +1 -0
- data/tools/base/rux-icon-alarm-add.entry-4b9388eb2cc1aa2f3bc3.js +1 -0
- data/tools/base/rux-icon-alarm-off.entry-b3657eb639eac9dea0d1.js +1 -0
- data/tools/base/rux-icon-alarm-on.entry-ac0922838ad64edef3a7.js +1 -0
- data/tools/base/rux-icon-alarm.entry-fc488e3e1fbf256a1771.js +1 -0
- data/tools/base/rux-icon-album.entry-5a50b488a43363018441.js +1 -0
- data/tools/base/rux-icon-all-inbox.entry-75e2454f637c62b5295f.js +1 -0
- data/tools/base/rux-icon-all-inclusive.entry-a06d23b4f9e4d3f1fe42.js +1 -0
- data/tools/base/rux-icon-all-out.entry-b39bdc2d73a787908647.js +1 -0
- data/tools/base/rux-icon-alternate-email.entry-8385808deb611d037c3d.js +1 -0
- data/tools/base/rux-icon-altitude.entry-baeb4edd4fdc750f465e.js +1 -0
- data/tools/base/rux-icon-android.entry-35f665cb7381e9fbc84e.js +1 -0
- data/tools/base/rux-icon-announcement.entry-5c7b406210d31dd1f4f6.js +1 -0
- data/tools/base/rux-icon-antenna-off.entry-c90ee164e224d6951292.js +1 -0
- data/tools/base/rux-icon-antenna-receive.entry-15d89d15576c21ee8e70.js +1 -0
- data/tools/base/rux-icon-antenna-transmit.entry-796a5aca5ca9b85ae444.js +1 -0
- data/tools/base/rux-icon-antenna.entry-6050ebe4f85f91805ec5.js +1 -0
- data/tools/base/rux-icon-apps.entry-980c6f896192e15310e1.js +1 -0
- data/tools/base/rux-icon-archive.entry-b06f10cbf6be7b568be6.js +1 -0
- data/tools/base/rux-icon-arrow-back-ios.entry-1a2b3eed18e8dd1007e5.js +1 -0
- data/tools/base/rux-icon-arrow-back.entry-69ff2a82c34896bf0f01.js +1 -0
- data/tools/base/rux-icon-arrow-downward.entry-3da4d8bd9f57e7cd3948.js +1 -0
- data/tools/base/rux-icon-arrow-drop-down-circle.entry-f49b47b7d6a416f19025.js +1 -0
- data/tools/base/rux-icon-arrow-drop-down.entry-6bcb89d9972de8e1dca0.js +1 -0
- data/tools/base/rux-icon-arrow-drop-up.entry-22ae8a540b15cfc991a8.js +1 -0
- data/tools/base/rux-icon-arrow-forward-ios.entry-815345bfa9c447281d9b.js +1 -0
- data/tools/base/rux-icon-arrow-forward.entry-d96854001fb991142e06.js +1 -0
- data/tools/base/rux-icon-arrow-left.entry-97da5a8dce236153c63a.js +1 -0
- data/tools/base/rux-icon-arrow-right-alt.entry-db3254c6d05ca38046f9.js +1 -0
- data/tools/base/rux-icon-arrow-right.entry-4043f80868accddc41f4.js +1 -0
- data/tools/base/rux-icon-arrow-upward.entry-367749d3cbef597607df.js +1 -0
- data/tools/base/rux-icon-art-track.entry-15c6e26ba09ed8b665cb.js +1 -0
- data/tools/base/rux-icon-aspect-ratio.entry-f1fe7f32decc381835de.js +1 -0
- data/tools/base/rux-icon-assessment.entry-1aa8df2a32d0f0ff42b9.js +1 -0
- data/tools/base/rux-icon-assignment-find.entry-1e2283dd5e560c118b49.js +1 -0
- data/tools/base/rux-icon-assignment-late.entry-9c05ad383d27e969a863.js +1 -0
- data/tools/base/rux-icon-assignment-return.entry-3feb8e4dd7ce713468a9.js +1 -0
- data/tools/base/rux-icon-assignment-returned.entry-40d96ef28ae7fec9bbb2.js +1 -0
- data/tools/base/rux-icon-assignment-turned-in.entry-8f74bea4ce462cff1e3b.js +1 -0
- data/tools/base/rux-icon-assignment.entry-6d57bebac6ed8f33904b.js +1 -0
- data/tools/base/rux-icon-assistant-photo.entry-a8e8c4e2911f7c7801e1.js +1 -0
- data/tools/base/rux-icon-assistant.entry-a5d0d4bfb18b22ee8360.js +1 -0
- data/tools/base/rux-icon-attach-file.entry-ec4b344a05d2b2586621.js +1 -0
- data/tools/base/rux-icon-attach-money.entry-ec7c3474c0dadbba2e2b.js +1 -0
- data/tools/base/rux-icon-attachment.entry-66282a1cb5f10769a92c.js +1 -0
- data/tools/base/rux-icon-audiotrack.entry-c094d727eefaa5a68747.js +1 -0
- data/tools/base/rux-icon-autorenew.entry-9bbd342a28372d33b851.js +1 -0
- data/tools/base/rux-icon-av-timer.entry-754bcafa3ed3c5cd4ef8.js +1 -0
- data/tools/base/rux-icon-backspace.entry-eb7e6a19cdfb04a4166e.js +1 -0
- data/tools/base/rux-icon-backup.entry-70574893754e3e51f45f.js +1 -0
- data/tools/base/rux-icon-ballot.entry-616126e0c5e99c0bdfbf.js +1 -0
- data/tools/base/rux-icon-bar-chart.entry-8a93f3eb191452eb12ae.js +1 -0
- data/tools/base/rux-icon-battery-20.entry-61942a0fd42692000ee0.js +1 -0
- data/tools/base/rux-icon-battery-30.entry-cea571439fcb09a23ca3.js +1 -0
- data/tools/base/rux-icon-battery-50.entry-dba2647393c8a1dbd0f4.js +1 -0
- data/tools/base/rux-icon-battery-60.entry-9373147b4e119d899499.js +1 -0
- data/tools/base/rux-icon-battery-80.entry-2312707083707620e4b2.js +1 -0
- data/tools/base/rux-icon-battery-90.entry-60831a8eb95bff75bf51.js +1 -0
- data/tools/base/rux-icon-battery-alert.entry-c98932c41c2ad923a12d.js +1 -0
- data/tools/base/rux-icon-battery-charging-20.entry-6bb29d879755070c81c1.js +1 -0
- data/tools/base/rux-icon-battery-charging-30.entry-106ff62b1039469cc885.js +1 -0
- data/tools/base/rux-icon-battery-charging-50.entry-4a6a250932e4f99744f7.js +1 -0
- data/tools/base/rux-icon-battery-charging-60.entry-cbc4283ba6be3ba718bf.js +1 -0
- data/tools/base/rux-icon-battery-charging-80.entry-8a15ecf57dcbd355f337.js +1 -0
- data/tools/base/rux-icon-battery-charging-90.entry-e312a1e57f9bc08668e8.js +1 -0
- data/tools/base/rux-icon-battery-charging-full.entry-70870b5dbbf09ab3e294.js +1 -0
- data/tools/base/rux-icon-battery-full.entry-fcb7c56cac5057c22ff7.js +1 -0
- data/tools/base/rux-icon-battery-std.entry-adb74d52b3999ed22df1.js +1 -0
- data/tools/base/rux-icon-battery-unknown.entry-d8fb5d23f0818337ea2c.js +1 -0
- data/tools/base/rux-icon-beach-access.entry-8023271bf3dcf344ff9a.js +1 -0
- data/tools/base/rux-icon-beenhere.entry-b2e20ad91a0adbd8fd82.js +1 -0
- data/tools/base/rux-icon-block.entry-adf46949b52ba0afa1be.js +1 -0
- data/tools/base/rux-icon-bluetooth-audio.entry-4d4ede013ea7b4b723d9.js +1 -0
- data/tools/base/rux-icon-bluetooth-connected.entry-58fc8a8a847500ce6e4b.js +1 -0
- data/tools/base/rux-icon-bluetooth-disabled.entry-7dd9f54980872bdca56c.js +1 -0
- data/tools/base/rux-icon-bluetooth-searching.entry-3673b388f09ce33b825b.js +1 -0
- data/tools/base/rux-icon-bluetooth.entry-204b3d8989ca88d5f2ed.js +1 -0
- data/tools/base/rux-icon-blur-circular.entry-8cac2fa77b2b95f3563a.js +1 -0
- data/tools/base/rux-icon-blur-linear.entry-414df7783cf323a44383.js +1 -0
- data/tools/base/rux-icon-blur-off.entry-e646d2b1783d121ddbc1.js +1 -0
- data/tools/base/rux-icon-blur-on.entry-3bb372e10f9f44af1292.js +1 -0
- data/tools/base/rux-icon-book.entry-fc0a999a130ae9bf7bef.js +1 -0
- data/tools/base/rux-icon-bookmark-border.entry-ba2f9172a1d58e63b847.js +1 -0
- data/tools/base/rux-icon-bookmark.entry-7ed96aa0db341b35772d.js +1 -0
- data/tools/base/rux-icon-bookmarks.entry-eb62aae1e65eede1df64.js +1 -0
- data/tools/base/rux-icon-border-all.entry-1632a6c9f6c64f8acf77.js +1 -0
- data/tools/base/rux-icon-border-bottom.entry-c4cb1d6d2e96d1ed4985.js +1 -0
- data/tools/base/rux-icon-border-clear.entry-fd716662cd8f1d950650.js +1 -0
- data/tools/base/rux-icon-border-color.entry-7ad1af19c4241357115c.js +1 -0
- data/tools/base/rux-icon-border-horizontal.entry-8a3b87a39bbb6f9c3372.js +1 -0
- data/tools/base/rux-icon-border-inner.entry-995c19cade6a0546cc2b.js +1 -0
- data/tools/base/rux-icon-border-left.entry-6b4813346a483dc5fa76.js +1 -0
- data/tools/base/rux-icon-border-outer.entry-d6ea17cbd1564e0ee530.js +1 -0
- data/tools/base/rux-icon-border-right.entry-422fa929f195419b34c9.js +1 -0
- data/tools/base/rux-icon-border-style.entry-82dc3d8f8e3009098b42.js +1 -0
- data/tools/base/rux-icon-border-top.entry-890d988f9edbc8f50afa.js +1 -0
- data/tools/base/rux-icon-border-vertical.entry-3b9b82959ee6f469911d.js +1 -0
- data/tools/base/rux-icon-branding-watermark.entry-13d79f1f16b1b1d87394.js +1 -0
- data/tools/base/rux-icon-brightness-1.entry-b299571cc24d3229d021.js +1 -0
- data/tools/base/rux-icon-brightness-2.entry-1e853032062fa9018b97.js +1 -0
- data/tools/base/rux-icon-brightness-3.entry-4a2649b95a1a4687f128.js +1 -0
- data/tools/base/rux-icon-brightness-4.entry-503bb0a41a932e504d55.js +1 -0
- data/tools/base/rux-icon-brightness-5.entry-1aeee9e5e3d7e5bd23f0.js +1 -0
- data/tools/base/rux-icon-brightness-6.entry-4ba7db76fca67f17304c.js +1 -0
- data/tools/base/rux-icon-brightness-7.entry-7a98654150097e874fc9.js +1 -0
- data/tools/base/rux-icon-brightness-auto.entry-f539c7b96ae4fbb860f5.js +1 -0
- data/tools/base/rux-icon-brightness-high.entry-ff3ea7d4d9ed40a536ca.js +1 -0
- data/tools/base/rux-icon-brightness-low.entry-995ee6fa15f8fb443475.js +1 -0
- data/tools/base/rux-icon-brightness-medium.entry-4c0dc2b5ec042b369080.js +1 -0
- data/tools/base/rux-icon-broken-image.entry-462e3507c53bac7f9560.js +1 -0
- data/tools/base/rux-icon-brush.entry-f4ea11699e34511f0595.js +1 -0
- data/tools/base/rux-icon-bubble-chart.entry-1a43234ca41749e1d320.js +1 -0
- data/tools/base/rux-icon-bug-report.entry-298e9b1a481298ee6555.js +1 -0
- data/tools/base/rux-icon-build.entry-238417546d5f80352ac5.js +1 -0
- data/tools/base/rux-icon-burst-mode.entry-3473f16485d45fca322c.js +1 -0
- data/tools/base/rux-icon-business-center.entry-b4a19d544395bb2dc42e.js +1 -0
- data/tools/base/rux-icon-business.entry-a099ba29bc673b69c328.js +1 -0
- data/tools/base/rux-icon-cached.entry-c9c1f30b69da038a5a3a.js +1 -0
- data/tools/base/rux-icon-cake.entry-3e5e528f8c440adf8cc6.js +1 -0
- data/tools/base/rux-icon-calendar-today.entry-144ff84903a59feb7777.js +1 -0
- data/tools/base/rux-icon-calendar-view-day.entry-6e16f2207d9f5d36f317.js +1 -0
- data/tools/base/rux-icon-call-end.entry-c130005cba569acff46e.js +1 -0
- data/tools/base/rux-icon-call-made.entry-a3773400d2202c0ffbe4.js +1 -0
- data/tools/base/rux-icon-call-merge.entry-eac76ee6f2a1bcb14c8d.js +1 -0
- data/tools/base/rux-icon-call-missed-outgoing.entry-348d6734b954c5b65984.js +1 -0
- data/tools/base/rux-icon-call-missed.entry-fb891d4928f8185f2eb0.js +1 -0
- data/tools/base/rux-icon-call-received.entry-82fb3f0ff6dbdf9f84ed.js +1 -0
- data/tools/base/rux-icon-call-split.entry-3a1cf3c317a1f25dc3b5.js +1 -0
- data/tools/base/rux-icon-call-to-action.entry-1147aa5f6628c7c3c632.js +1 -0
- data/tools/base/rux-icon-call.entry-fdd0cf7ac36cea0123b2.js +1 -0
- data/tools/base/rux-icon-camera-alt.entry-bf08fce978c9f3f2aff7.js +1 -0
- data/tools/base/rux-icon-camera-enhance.entry-f67f28cf714acf1830ff.js +1 -0
- data/tools/base/rux-icon-camera-front.entry-47541471fd495ba5cef2.js +1 -0
- data/tools/base/rux-icon-camera-rear.entry-5550b140c5887a346cf1.js +1 -0
- data/tools/base/rux-icon-camera-roll.entry-dcadd5b3a1c2c054fead.js +1 -0
- data/tools/base/rux-icon-camera.entry-2a5922408036f9cdc062.js +1 -0
- data/tools/base/rux-icon-cancel-presentation.entry-c89386a7d56e3dd76c35.js +1 -0
- data/tools/base/rux-icon-cancel.entry-8917fabac57dd6b662df.js +1 -0
- data/tools/base/rux-icon-card-giftcard.entry-ba9eb481b3bb87686162.js +1 -0
- data/tools/base/rux-icon-card-membership.entry-d9d05cbc2fb491b67034.js +1 -0
- data/tools/base/rux-icon-card-travel.entry-3db01c97026d130bf4fb.js +1 -0
- data/tools/base/rux-icon-casino.entry-ba8d72998da1de12d6ad.js +1 -0
- data/tools/base/rux-icon-cast-connected.entry-4ea63b33c09d8cb8e427.js +1 -0
- data/tools/base/rux-icon-cast-for-education.entry-6892f2f80fd339b4a964.js +1 -0
- data/tools/base/rux-icon-cast.entry-4fafde03276e56f1d0f1.js +1 -0
- data/tools/base/rux-icon-category.entry-9b35786f35aa649e6d0f.js +1 -0
- data/tools/base/rux-icon-cell-wifi.entry-e95b0af1084230d424e8.js +1 -0
- data/tools/base/rux-icon-center-focus-strong.entry-588e8a2570afe481c886.js +1 -0
- data/tools/base/rux-icon-center-focus-weak.entry-b2272aa13215087d94c0.js +1 -0
- data/tools/base/rux-icon-change-history.entry-5e572159e4cdfaed86fb.js +1 -0
- data/tools/base/rux-icon-chat-bubble-outline.entry-9416442807f38ec13908.js +1 -0
- data/tools/base/rux-icon-chat-bubble.entry-8e1a14bd1fdedb588cdb.js +1 -0
- data/tools/base/rux-icon-chat.entry-9e84f8c0c73c39cc9ab8.js +1 -0
- data/tools/base/rux-icon-check-box-outline-blank.entry-d9d76e1e157ac9d35181.js +1 -0
- data/tools/base/rux-icon-check-box.entry-2dd28340d02a397d0cd3.js +1 -0
- data/tools/base/rux-icon-check-circle-outline.entry-599412e40f01f8ac6023.js +1 -0
- data/tools/base/rux-icon-check-circle.entry-def9807c2cb288e83cc1.js +1 -0
- data/tools/base/rux-icon-check.entry-1511ff5d7ff768932589.js +1 -0
- data/tools/base/rux-icon-chevron-left.entry-8f5cb8530382aac0409f.js +1 -0
- data/tools/base/rux-icon-chevron-right.entry-7e37977b5e870258d829.js +1 -0
- data/tools/base/rux-icon-child-care.entry-7c98674ea2327d6a1ce1.js +1 -0
- data/tools/base/rux-icon-child-friendly.entry-c57c4c73b58cde8b3d80.js +1 -0
- data/tools/base/rux-icon-chrome-reader-mode.entry-eb048328a663f649d4b5.js +1 -0
- data/tools/base/rux-icon-class.entry-cca390e2a44a48ee8881.js +1 -0
- data/tools/base/rux-icon-clear-all.entry-d22bbf5ce6e1dceaba21.js +1 -0
- data/tools/base/rux-icon-clear.entry-05300c1cab0a80175c64.js +1 -0
- data/tools/base/rux-icon-close.entry-a69b44e183fda079cc93.js +1 -0
- data/tools/base/rux-icon-closed-caption.entry-365b99b5fa79d8bfa968.js +1 -0
- data/tools/base/rux-icon-cloud-circle.entry-8a535df227a5855edf3c.js +1 -0
- data/tools/base/rux-icon-cloud-done.entry-ab95cbef7ab2d8b31792.js +1 -0
- data/tools/base/rux-icon-cloud-download.entry-6063dce69c47151b7df3.js +1 -0
- data/tools/base/rux-icon-cloud-off.entry-3c7f2f1974d389bd91dd.js +1 -0
- data/tools/base/rux-icon-cloud-queue.entry-caeb3e12db2fbf18d225.js +1 -0
- data/tools/base/rux-icon-cloud-upload.entry-4593095c5a3d35398f8c.js +1 -0
- data/tools/base/rux-icon-cloud.entry-8b5c69910fb9c13d3d2c.js +1 -0
- data/tools/base/rux-icon-code.entry-218403d42d3109961092.js +1 -0
- data/tools/base/rux-icon-collections-bookmark.entry-a74d6153918300b1fa62.js +1 -0
- data/tools/base/rux-icon-collections.entry-d8ba9a0864391dc0917d.js +1 -0
- data/tools/base/rux-icon-color-lens.entry-afcc7ea3938de3a254db.js +1 -0
- data/tools/base/rux-icon-colorize.entry-443032ffd85fa192b24f.js +1 -0
- data/tools/base/rux-icon-comment.entry-cf866cb8aac08f7b8276.js +1 -0
- data/tools/base/rux-icon-commute.entry-69cb426022ad2ac9248d.js +1 -0
- data/tools/base/rux-icon-compare-arrows.entry-80ac7fa9451e3a46e867.js +1 -0
- data/tools/base/rux-icon-compare.entry-146d8421cbb795ee30e1.js +1 -0
- data/tools/base/rux-icon-compass-calibration.entry-111aa8d10c154a438a3f.js +1 -0
- data/tools/base/rux-icon-computer.entry-5fe260accf0aede9eb62.js +1 -0
- data/tools/base/rux-icon-confirmation-number.entry-5676a711417d7eb44057.js +1 -0
- data/tools/base/rux-icon-contact-mail.entry-23633c7d8b96bdfef22a.js +1 -0
- data/tools/base/rux-icon-contact-phone.entry-a4e91ceeb57b1d9e9887.js +1 -0
- data/tools/base/rux-icon-contact-support.entry-16ce812bb26bfbf54e61.js +1 -0
- data/tools/base/rux-icon-contacts.entry-10caa32e7f9214b6fcc7.js +1 -0
- data/tools/base/rux-icon-control-camera.entry-8f5c8f4bb6aed04ef59d.js +1 -0
- data/tools/base/rux-icon-control-point-duplicate.entry-d16ed6dd84088bcf9218.js +1 -0
- data/tools/base/rux-icon-control-point.entry-2256f918eecb924489ca.js +1 -0
- data/tools/base/rux-icon-copyright.entry-ba6f9907403088aa1fc0.js +1 -0
- data/tools/base/rux-icon-create-new-folder.entry-db30fd66ca066d13ce73.js +1 -0
- data/tools/base/rux-icon-create.entry-45338b1ab907f6e2f28e.js +1 -0
- data/tools/base/rux-icon-credit-card.entry-d2779d914282a72e7f33.js +1 -0
- data/tools/base/rux-icon-crop-16-9.entry-d2d76bffd59724d1cefc.js +1 -0
- data/tools/base/rux-icon-crop-3-2.entry-0d7bae6f526bfbc482ab.js +1 -0
- data/tools/base/rux-icon-crop-5-4.entry-5cd63c20bcee556c8145.js +1 -0
- data/tools/base/rux-icon-crop-7-5.entry-3c4e3f92c68f63e08447.js +1 -0
- data/tools/base/rux-icon-crop-din.entry-9bca311a7146b65e79de.js +1 -0
- data/tools/base/rux-icon-crop-free.entry-4986d7d9bea146169844.js +1 -0
- data/tools/base/rux-icon-crop-landscape.entry-36b9aff1394671da33e5.js +1 -0
- data/tools/base/rux-icon-crop-original.entry-cb6621d9306125efbab9.js +1 -0
- data/tools/base/rux-icon-crop-portrait.entry-57d0ce236291f83bd50e.js +1 -0
- data/tools/base/rux-icon-crop-rotate.entry-cece50205c98f18223c4.js +1 -0
- data/tools/base/rux-icon-crop-square.entry-e06bf4c381115abd0c4f.js +1 -0
- data/tools/base/rux-icon-crop.entry-48e6c552b93bacd1569e.js +1 -0
- data/tools/base/rux-icon-dashboard.entry-c45332a765e25edad116.js +1 -0
- data/tools/base/rux-icon-data-usage.entry-f04783a7c95bfa9d8b00.js +1 -0
- data/tools/base/rux-icon-date-range.entry-100873569c9bd976d36a.js +1 -0
- data/tools/base/rux-icon-dehaze.entry-3489a2087ec119004742.js +1 -0
- data/tools/base/rux-icon-delete-forever.entry-1aec45bafda25ad1e741.js +1 -0
- data/tools/base/rux-icon-delete-outline.entry-d21182221dafcdf865df.js +1 -0
- data/tools/base/rux-icon-delete-sweep.entry-4c01213094e71379b6e6.js +1 -0
- data/tools/base/rux-icon-delete.entry-377e0fd5229abc9ed816.js +1 -0
- data/tools/base/rux-icon-departure-board.entry-b112de88a32ddfda47d4.js +1 -0
- data/tools/base/rux-icon-description.entry-cb24de60aae49f055469.js +1 -0
- data/tools/base/rux-icon-desktop-access-disabled.entry-74dc64d133661e474fc4.js +1 -0
- data/tools/base/rux-icon-desktop-mac.entry-48c17ae4c9a7403b936c.js +1 -0
- data/tools/base/rux-icon-desktop-windows.entry-426096232a4cac9ee5e5.js +1 -0
- data/tools/base/rux-icon-details.entry-e3eb2a67d50460e93c87.js +1 -0
- data/tools/base/rux-icon-developer-board.entry-f5f88ae6ed462c9c4cb4.js +1 -0
- data/tools/base/rux-icon-developer-mode.entry-4524edf3dd9217e393d6.js +1 -0
- data/tools/base/rux-icon-device-hub.entry-309997f233c3e5df803b.js +1 -0
- data/tools/base/rux-icon-device-unknown.entry-9e25c5bbecb41d74a6ce.js +1 -0
- data/tools/base/rux-icon-devices-other.entry-ec8d03eb3dff909d8897.js +1 -0
- data/tools/base/rux-icon-devices.entry-7779e55e779c96733e7e.js +1 -0
- data/tools/base/rux-icon-dialer-sip.entry-87c0c1bf1890ec584676.js +1 -0
- data/tools/base/rux-icon-dialpad.entry-53d98e4e975fc6e23ced.js +1 -0
- data/tools/base/rux-icon-directions-bike.entry-60ac40eb36b2d0dc7b8e.js +1 -0
- data/tools/base/rux-icon-directions-boat.entry-c4bdeb22baaa37fed1fa.js +1 -0
- data/tools/base/rux-icon-directions-bus.entry-786115fb8beb52496601.js +1 -0
- data/tools/base/rux-icon-directions-car.entry-98ddee4f0ffc529e2ad4.js +1 -0
- data/tools/base/rux-icon-directions-railway.entry-54f699ada9d977312521.js +1 -0
- data/tools/base/rux-icon-directions-run.entry-6a75e6fcb1e63866b28b.js +1 -0
- data/tools/base/rux-icon-directions-subway.entry-68070e8cc183c727150f.js +1 -0
- data/tools/base/rux-icon-directions-transit.entry-e4e5934d0a2b6c752d4b.js +1 -0
- data/tools/base/rux-icon-directions-walk.entry-6556e14cf431a48335a4.js +1 -0
- data/tools/base/rux-icon-directions.entry-fbf7644cf8a01049abb2.js +1 -0
- data/tools/base/rux-icon-disc-full.entry-d36bb0a4e2f68a639acb.js +1 -0
- data/tools/base/rux-icon-dns.entry-48818224c28abfb867ac.js +1 -0
- data/tools/base/rux-icon-dock.entry-17c43f37892243d41cbf.js +1 -0
- data/tools/base/rux-icon-domain-disabled.entry-dd69c6e0c37a986c3530.js +1 -0
- data/tools/base/rux-icon-domain.entry-41b361be3ffe5b0e2ced.js +1 -0
- data/tools/base/rux-icon-done-all.entry-9cec097269f3c034ea18.js +1 -0
- data/tools/base/rux-icon-done-outline.entry-901a3b00eb57c1ead88c.js +1 -0
- data/tools/base/rux-icon-done.entry-dadce0d939deb33c087c.js +1 -0
- data/tools/base/rux-icon-donut-large.entry-892592c035695b9cf630.js +1 -0
- data/tools/base/rux-icon-donut-small.entry-577f36623973685ee011.js +1 -0
- data/tools/base/rux-icon-drafts.entry-253cff4fc8cb66440df7.js +1 -0
- data/tools/base/rux-icon-drag-handle.entry-588dd0e7a8aa47a21620.js +1 -0
- data/tools/base/rux-icon-drag-indicator.entry-7b2abad873b52fb408c1.js +1 -0
- data/tools/base/rux-icon-drive-eta.entry-5f745468c08c156998b0.js +1 -0
- data/tools/base/rux-icon-duo.entry-54c19d5db90987cd2eaf.js +1 -0
- data/tools/base/rux-icon-dvr.entry-b35f5fbc66c927ca757c.js +1 -0
- data/tools/base/rux-icon-edit-attributes.entry-31fcb29960827405539b.js +1 -0
- data/tools/base/rux-icon-edit-location.entry-58214c76d96a6af01214.js +1 -0
- data/tools/base/rux-icon-edit.entry-a5d13c24bbf1deefca0d.js +1 -0
- data/tools/base/rux-icon-eject.entry-47ab62a6c51aa6da11e7.js +1 -0
- data/tools/base/rux-icon-email.entry-53e27d8bf7cce31e9779.js +1 -0
- data/tools/base/rux-icon-enhanced-encryption.entry-9cbec25cbd708797e305.js +1 -0
- data/tools/base/rux-icon-equalizer.entry-fb78da67315f873dab01.js +1 -0
- data/tools/base/rux-icon-equipment.entry-a9e7c03967935cf4df38.js +1 -0
- data/tools/base/rux-icon-error-outline.entry-66c1576036f5a9504eff.js +1 -0
- data/tools/base/rux-icon-error.entry-b6118ec3fc59b787ae70.js +1 -0
- data/tools/base/rux-icon-euro-symbol.entry-efa2e347d5e97604eb60.js +1 -0
- data/tools/base/rux-icon-ev-station.entry-616a6460f0948e393a46.js +1 -0
- data/tools/base/rux-icon-event-available.entry-635c1c968bbadada8273.js +1 -0
- data/tools/base/rux-icon-event-busy.entry-cab62829cb7aba4b9759.js +1 -0
- data/tools/base/rux-icon-event-note.entry-f877ea73b41914f7d753.js +1 -0
- data/tools/base/rux-icon-event.entry-fce2da16da45f14eff64.js +1 -0
- data/tools/base/rux-icon-exit-to-app.entry-40617fb70a287f38fa26.js +1 -0
- data/tools/base/rux-icon-expand-less.entry-f081332de40956791f81.js +1 -0
- data/tools/base/rux-icon-expand-more.entry-f026b4ca273e271b7fc9.js +1 -0
- data/tools/base/rux-icon-explicit.entry-4108884faebab6aa3695.js +1 -0
- data/tools/base/rux-icon-explore-off.entry-4e2866459557b3c6657a.js +1 -0
- data/tools/base/rux-icon-explore.entry-e0a6691cb110d85011b3.js +1 -0
- data/tools/base/rux-icon-exposure-neg-1.entry-194844927bc35e15bac2.js +1 -0
- data/tools/base/rux-icon-exposure-neg-2.entry-861b5bcf819626538391.js +1 -0
- data/tools/base/rux-icon-exposure-plus-1.entry-4e50235fe16dd2688ac0.js +1 -0
- data/tools/base/rux-icon-exposure-plus-2.entry-85b263586c14bdec3170.js +1 -0
- data/tools/base/rux-icon-exposure-zero.entry-ac7245c553b6f00854f6.js +1 -0
- data/tools/base/rux-icon-exposure.entry-38b598afa67bd533f12e.js +1 -0
- data/tools/base/rux-icon-extension.entry-487214e097f3bca8f5cc.js +1 -0
- data/tools/base/rux-icon-face.entry-919174eea4d148c30f7f.js +1 -0
- data/tools/base/rux-icon-fast-forward.entry-41a0acd7f690b97999f2.js +1 -0
- data/tools/base/rux-icon-fast-rewind.entry-51695d740216c346b59f.js +1 -0
- data/tools/base/rux-icon-fastfood.entry-f49f5e9d0311f79e2d97.js +1 -0
- data/tools/base/rux-icon-favorite-border.entry-e18fcd04da502386af27.js +1 -0
- data/tools/base/rux-icon-favorite.entry-a712d43817dfd5ff92cd.js +1 -0
- data/tools/base/rux-icon-featured-play-list.entry-13d8f4041039b9a5f0a5.js +1 -0
- data/tools/base/rux-icon-featured-video.entry-e1c3086501ecd75e52b3.js +1 -0
- data/tools/base/rux-icon-feedback.entry-2405aec3f526989a7762.js +1 -0
- data/tools/base/rux-icon-fiber-dvr.entry-89644b6665c6a667b571.js +1 -0
- data/tools/base/rux-icon-fiber-manual-record.entry-b37458881c7ceceaae60.js +1 -0
- data/tools/base/rux-icon-fiber-new.entry-0a6f9c8a7146f6493f33.js +1 -0
- data/tools/base/rux-icon-fiber-pin.entry-637e9bc7109686b29f20.js +1 -0
- data/tools/base/rux-icon-fiber-smart-record.entry-64abafb673d900692885.js +1 -0
- data/tools/base/rux-icon-file-copy.entry-67829c52834920dc68d9.js +1 -0
- data/tools/base/rux-icon-filter-1.entry-1274de37ff1193c967f6.js +1 -0
- data/tools/base/rux-icon-filter-2.entry-95d49ac8dcca477d601f.js +1 -0
- data/tools/base/rux-icon-filter-3.entry-472d046864d924a2f1bb.js +1 -0
- data/tools/base/rux-icon-filter-4.entry-2adf0496cde7af41b45f.js +1 -0
- data/tools/base/rux-icon-filter-5.entry-c61d6ddb60c8b125ebab.js +1 -0
- data/tools/base/rux-icon-filter-6.entry-4bb5ce5e1070d4995f70.js +1 -0
- data/tools/base/rux-icon-filter-7.entry-1f29c46207f0631fca78.js +1 -0
- data/tools/base/rux-icon-filter-8.entry-6da98a2e452d35198adb.js +1 -0
- data/tools/base/rux-icon-filter-9-plus.entry-344f05a097856706204a.js +1 -0
- data/tools/base/rux-icon-filter-9.entry-7693adb8586527917b89.js +1 -0
- data/tools/base/rux-icon-filter-b-and-w.entry-327620da4f9cac26348a.js +1 -0
- data/tools/base/rux-icon-filter-center-focus.entry-23cf5f0c6b6b1f88ebb7.js +1 -0
- data/tools/base/rux-icon-filter-drama.entry-7c2929b7713661af54d9.js +1 -0
- data/tools/base/rux-icon-filter-frames.entry-758656e05d67bfc80711.js +1 -0
- data/tools/base/rux-icon-filter-hdr.entry-2b55cb85a45ce60e86f5.js +1 -0
- data/tools/base/rux-icon-filter-list.entry-b351487289251e4d1d3b.js +1 -0
- data/tools/base/rux-icon-filter-none.entry-ec675e5aa8030a2b927f.js +1 -0
- data/tools/base/rux-icon-filter-tilt-shift.entry-557fbc7266ee013a225e.js +1 -0
- data/tools/base/rux-icon-filter-vintage.entry-10097b37e98b1f144418.js +1 -0
- data/tools/base/rux-icon-filter.entry-c4167380ce1db902c3eb.js +1 -0
- data/tools/base/rux-icon-find-in-page.entry-2ee9858d10df41ade029.js +1 -0
- data/tools/base/rux-icon-find-replace.entry-ba4690a2d071a8dfa844.js +1 -0
- data/tools/base/rux-icon-fingerprint.entry-6087d5b5fe836584e682.js +1 -0
- data/tools/base/rux-icon-first-page.entry-4c8aea224041554b07ee.js +1 -0
- data/tools/base/rux-icon-fitness-center.entry-836aec8d1855c08706f9.js +1 -0
- data/tools/base/rux-icon-flag.entry-dbba2c6984c62eb370a7.js +1 -0
- data/tools/base/rux-icon-flare.entry-c27a8eacdfc9f2b0ae57.js +1 -0
- data/tools/base/rux-icon-flash-auto.entry-eb2dcd535e2dd2979106.js +1 -0
- data/tools/base/rux-icon-flash-off.entry-41ffa75d0186124aa131.js +1 -0
- data/tools/base/rux-icon-flash-on.entry-8de5d156211f08eec1ef.js +1 -0
- data/tools/base/rux-icon-flight-land.entry-739a976381cb5c050941.js +1 -0
- data/tools/base/rux-icon-flight-takeoff.entry-20a05ea2a6c0eceee0ce.js +1 -0
- data/tools/base/rux-icon-flight.entry-e02c29a65bd6275b7d75.js +1 -0
- data/tools/base/rux-icon-flip-to-back.entry-7d843f580ccc3643c3ff.js +1 -0
- data/tools/base/rux-icon-flip-to-front.entry-a0f5cb60f1022398e661.js +1 -0
- data/tools/base/rux-icon-flip.entry-12dec230f8ead0be7428.js +1 -0
- data/tools/base/rux-icon-folder-open.entry-f6c55c31cfb371f6ee76.js +1 -0
- data/tools/base/rux-icon-folder-shared.entry-3a4b11267f20f4785e53.js +1 -0
- data/tools/base/rux-icon-folder-special.entry-b9e3293d48fc172f9cd9.js +1 -0
- data/tools/base/rux-icon-folder.entry-c2a0c97de0a81396efe6.js +1 -0
- data/tools/base/rux-icon-font-download.entry-fd1732413c72eab40fc7.js +1 -0
- data/tools/base/rux-icon-format-align-center.entry-7f9011de2deb139f720b.js +1 -0
- data/tools/base/rux-icon-format-align-justify.entry-c417dea694fec5ce914a.js +1 -0
- data/tools/base/rux-icon-format-align-left.entry-7b6c80f51b1e31d9fa06.js +1 -0
- data/tools/base/rux-icon-format-align-right.entry-773c9214907b832b1b20.js +1 -0
- data/tools/base/rux-icon-format-bold.entry-e4aa45e6ce2121e43a62.js +1 -0
- data/tools/base/rux-icon-format-clear.entry-a2e9deebdc385956051e.js +1 -0
- data/tools/base/rux-icon-format-color-fill.entry-3ea1aa27477f6d0e8805.js +1 -0
- data/tools/base/rux-icon-format-color-reset.entry-4146c914e96d68d5cab7.js +1 -0
- data/tools/base/rux-icon-format-color-text.entry-8b64fd0a320cdce1614b.js +1 -0
- data/tools/base/rux-icon-format-indent-decrease.entry-da914ad712f5f8652fad.js +1 -0
- data/tools/base/rux-icon-format-indent-increase.entry-7257c29e116a703d6f28.js +1 -0
- data/tools/base/rux-icon-format-italic.entry-3ae71eb0ec63ada26015.js +1 -0
- data/tools/base/rux-icon-format-line-spacing.entry-7b525492d7a52f307a83.js +1 -0
- data/tools/base/rux-icon-format-list-bulleted.entry-5b53d21d3a300d30d02b.js +1 -0
- data/tools/base/rux-icon-format-list-numbered-rtl.entry-1756498c24ddbe665162.js +1 -0
- data/tools/base/rux-icon-format-list-numbered.entry-49f38a8fd4a18d1436fd.js +1 -0
- data/tools/base/rux-icon-format-paint.entry-bc937ff29a2cac9f569f.js +1 -0
- data/tools/base/rux-icon-format-quote.entry-d0dc2a9ec202fa87b980.js +1 -0
- data/tools/base/rux-icon-format-shapes.entry-71a649daef24ad0eb088.js +1 -0
- data/tools/base/rux-icon-format-size.entry-98bdce86012313848779.js +1 -0
- data/tools/base/rux-icon-format-strikethrough.entry-7f58a27fb17923d1e608.js +1 -0
- data/tools/base/rux-icon-format-textdirection-l-to-r.entry-a13b7ffe2fb76a09a19d.js +1 -0
- data/tools/base/rux-icon-format-textdirection-r-to-l.entry-54d55946147dc216dbf2.js +1 -0
- data/tools/base/rux-icon-format-underlined.entry-db9a3d7ba295e913ab5a.js +1 -0
- data/tools/base/rux-icon-forum.entry-6462f366b2dc74b53cde.js +1 -0
- data/tools/base/rux-icon-forward-10.entry-3af36a831b16d3cad13a.js +1 -0
- data/tools/base/rux-icon-forward-30.entry-163f98d2f1e0609b34e0.js +1 -0
- data/tools/base/rux-icon-forward-5.entry-b45a72d1c029ee7c947a.js +1 -0
- data/tools/base/rux-icon-forward.entry-1a46148795a0b45dddaa.js +1 -0
- data/tools/base/rux-icon-free-breakfast.entry-a1ba86c1bb2b476108c2.js +1 -0
- data/tools/base/rux-icon-fullscreen-exit.entry-62f3dfb982c24a927e2d.js +1 -0
- data/tools/base/rux-icon-fullscreen.entry-b63217546b747e87f236.js +1 -0
- data/tools/base/rux-icon-functions.entry-734989119b6c13a62731.js +1 -0
- data/tools/base/rux-icon-g-translate.entry-542b5c3db0ba6f67d334.js +1 -0
- data/tools/base/rux-icon-gamepad.entry-122459a7ed72dc287a84.js +1 -0
- data/tools/base/rux-icon-games.entry-9adc06bdbbd93153505e.js +1 -0
- data/tools/base/rux-icon-gavel.entry-451481543f64f71b1eec.js +1 -0
- data/tools/base/rux-icon-gesture.entry-a5265a91f88119d6ce4f.js +1 -0
- data/tools/base/rux-icon-get-app.entry-ecd8aa764ef3239105ff.js +1 -0
- data/tools/base/rux-icon-gif.entry-d6415808dc73606cb263.js +1 -0
- data/tools/base/rux-icon-golf-course.entry-5e6757f39840a57db3bf.js +1 -0
- data/tools/base/rux-icon-gps-fixed.entry-d967d5ee392c3b3062b8.js +1 -0
- data/tools/base/rux-icon-gps-not-fixed.entry-d11a45895baa4522ff60.js +1 -0
- data/tools/base/rux-icon-gps-off.entry-93d771e21439d470d854.js +1 -0
- data/tools/base/rux-icon-grade.entry-bfbdf266a0d40da9c80e.js +1 -0
- data/tools/base/rux-icon-gradient.entry-1df289a54dd67293f542.js +1 -0
- data/tools/base/rux-icon-grain.entry-505582dd10bb2c6648c3.js +1 -0
- data/tools/base/rux-icon-graphic-eq.entry-dc359fc4b824e4d35981.js +1 -0
- data/tools/base/rux-icon-grid-off.entry-cc023252cc229367c7a0.js +1 -0
- data/tools/base/rux-icon-grid-on.entry-aabe6a6c418d19e883e6.js +1 -0
- data/tools/base/rux-icon-group-add.entry-b3c59babb9a37e2b1db1.js +1 -0
- data/tools/base/rux-icon-group-work.entry-848a0f3f51d48752eb55.js +1 -0
- data/tools/base/rux-icon-group.entry-dd2870ec3535e1cc3058.js +1 -0
- data/tools/base/rux-icon-hardware.entry-6c4433388efc9b906a9e.js +1 -0
- data/tools/base/rux-icon-hd.entry-38d64d2f5510148d3865.js +1 -0
- data/tools/base/rux-icon-hdr-off.entry-a87153faddebd57189a4.js +1 -0
- data/tools/base/rux-icon-hdr-on.entry-2a604f8eb4e10bd3abc8.js +1 -0
- data/tools/base/rux-icon-hdr-strong.entry-49ad92ea6889d6b77eed.js +1 -0
- data/tools/base/rux-icon-hdr-weak.entry-6ce3e4b140a3180b8014.js +1 -0
- data/tools/base/rux-icon-headset-mic.entry-d27a4cc804794b8ce2a6.js +1 -0
- data/tools/base/rux-icon-headset.entry-16259ded88372a61ea92.js +1 -0
- data/tools/base/rux-icon-healing.entry-12ddde04308ea82023b2.js +1 -0
- data/tools/base/rux-icon-hearing.entry-14ccedd4def6d095edce.js +1 -0
- data/tools/base/rux-icon-help-outline.entry-1d26ab8e8d2c22aa8da6.js +1 -0
- data/tools/base/rux-icon-help.entry-915cb56c05872ee0d0e2.js +1 -0
- data/tools/base/rux-icon-high-quality.entry-d3e6f347307441d65c4b.js +1 -0
- data/tools/base/rux-icon-highlight-off.entry-b619b7c544c490d0ea1f.js +1 -0
- data/tools/base/rux-icon-highlight.entry-1519b76defe4bb6b7503.js +1 -0
- data/tools/base/rux-icon-history.entry-27ee197a1a8d1cfcbace.js +1 -0
- data/tools/base/rux-icon-home.entry-ebe06f0b4f7bc726fda0.js +1 -0
- data/tools/base/rux-icon-horizontal-split.entry-feba9481bfd14e5ee8b4.js +1 -0
- data/tools/base/rux-icon-hot-tub.entry-d2b9fd4c5fc3c2172ce1.js +1 -0
- data/tools/base/rux-icon-hotel.entry-2c6bae262a97d4df3591.js +1 -0
- data/tools/base/rux-icon-hourglass-empty.entry-79678c55d883e8155907.js +1 -0
- data/tools/base/rux-icon-hourglass-full.entry-7ba19e5153faa15efc51.js +1 -0
- data/tools/base/rux-icon-how-to-reg.entry-67d2a818e6310d1dc4ab.js +1 -0
- data/tools/base/rux-icon-how-to-vote.entry-c00951b2f53cad452420.js +1 -0
- data/tools/base/rux-icon-http.entry-5d8964c004a06a0543f6.js +1 -0
- data/tools/base/rux-icon-https.entry-c3f4670ac7dbfa0fe273.js +1 -0
- data/tools/base/rux-icon-image-aspect-ratio.entry-510281b684be7e19265b.js +1 -0
- data/tools/base/rux-icon-image-search.entry-f795a8c28de741aa817e.js +1 -0
- data/tools/base/rux-icon-image.entry-2fa55cd1e6409a8974a8.js +1 -0
- data/tools/base/rux-icon-import-contacts.entry-8598ce7fad1a88749f56.js +1 -0
- data/tools/base/rux-icon-import-export.entry-38a075c9b79b47fc61d3.js +1 -0
- data/tools/base/rux-icon-important-devices.entry-fb4bea1c4659b892dbb8.js +1 -0
- data/tools/base/rux-icon-inbox.entry-3ab43a45c6654cfc000a.js +1 -0
- data/tools/base/rux-icon-indeterminate-check-box.entry-37e0a688b267704afb20.js +1 -0
- data/tools/base/rux-icon-info.entry-11acec53d5f4a79a1437.js +1 -0
- data/tools/base/rux-icon-input.entry-6dfc38b3bd9358f7a081.js +1 -0
- data/tools/base/rux-icon-insert-chart-outlined.entry-0df02af1e1a2a2225eb9.js +1 -0
- data/tools/base/rux-icon-insert-chart.entry-f9306efdab279ed444bb.js +1 -0
- data/tools/base/rux-icon-insert-comment.entry-1cb11381882251aa4b17.js +1 -0
- data/tools/base/rux-icon-insert-drive-file.entry-4c19965d4813f9c50c96.js +1 -0
- data/tools/base/rux-icon-insert-emoticon.entry-28c2a1fe9b3aa291d96c.js +1 -0
- data/tools/base/rux-icon-insert-invitation.entry-c15646ec671d51a73986.js +1 -0
- data/tools/base/rux-icon-insert-link.entry-2e22c4dfd3a98cdfb670.js +1 -0
- data/tools/base/rux-icon-insert-photo.entry-c6f2135cb5806fd420e4.js +1 -0
- data/tools/base/rux-icon-invert-colors-off.entry-12a082d7a82b301735d3.js +1 -0
- data/tools/base/rux-icon-invert-colors.entry-34987b1ff4eaec4517f3.js +1 -0
- data/tools/base/rux-icon-iso.entry-c593093ca77b14e8c44e.js +1 -0
- data/tools/base/rux-icon-keyboard-arrow-down.entry-a5b707371d3d740bb953.js +1 -0
- data/tools/base/rux-icon-keyboard-arrow-left.entry-80f458acc62ba5647eea.js +1 -0
- data/tools/base/rux-icon-keyboard-arrow-right.entry-a27872afb0f978815d65.js +1 -0
- data/tools/base/rux-icon-keyboard-arrow-up.entry-f9a5a5e3215976af7ce4.js +1 -0
- data/tools/base/rux-icon-keyboard-backspace.entry-30f172b396eb8e1eb221.js +1 -0
- data/tools/base/rux-icon-keyboard-capslock.entry-3b98030188899b21dc62.js +1 -0
- data/tools/base/rux-icon-keyboard-hide.entry-36e1fb00a0ae2877ab92.js +1 -0
- data/tools/base/rux-icon-keyboard-return.entry-9390ff55361f5a0535ff.js +1 -0
- data/tools/base/rux-icon-keyboard-tab.entry-68cce34322a0f26a077e.js +1 -0
- data/tools/base/rux-icon-keyboard-voice.entry-fe91f519d86dd873ee9a.js +1 -0
- data/tools/base/rux-icon-keyboard.entry-eaa86dc84cff0d876556.js +1 -0
- data/tools/base/rux-icon-kitchen.entry-68f15a32fd5b3d33dd24.js +1 -0
- data/tools/base/rux-icon-label-important.entry-a2548ef8de66ccc4c237.js +1 -0
- data/tools/base/rux-icon-label-off.entry-be780b6cf53ff8db3b9f.js +1 -0
- data/tools/base/rux-icon-label.entry-beb78b824519587b43d7.js +1 -0
- data/tools/base/rux-icon-landscape.entry-b157821675f72990c4b5.js +1 -0
- data/tools/base/rux-icon-language.entry-a1f8d310d43d8d99f5ee.js +1 -0
- data/tools/base/rux-icon-laptop-chromebook.entry-3449ae57679a09a2bfa0.js +1 -0
- data/tools/base/rux-icon-laptop-mac.entry-92076a1e96e4fb031f64.js +1 -0
- data/tools/base/rux-icon-laptop-windows.entry-391530d5811c723db9ec.js +1 -0
- data/tools/base/rux-icon-laptop.entry-fd1442f99fe4e0f696cb.js +1 -0
- data/tools/base/rux-icon-last-page.entry-255df4781dad47e45a31.js +1 -0
- data/tools/base/rux-icon-launch.entry-dae388092493033ba30e.js +1 -0
- data/tools/base/rux-icon-layers-clear.entry-f07912d191b87aaac2ee.js +1 -0
- data/tools/base/rux-icon-layers.entry-f0b6a6997d25796c9d78.js +1 -0
- data/tools/base/rux-icon-leak-add.entry-ed749d1d2f0991430abc.js +1 -0
- data/tools/base/rux-icon-leak-remove.entry-b84a6caeca2aa7ee7270.js +1 -0
- data/tools/base/rux-icon-lens.entry-de92d5e52f5d38fe148b.js +1 -0
- data/tools/base/rux-icon-library-add.entry-9a04a52272ea99ae3376.js +1 -0
- data/tools/base/rux-icon-library-books.entry-c9ad1e44aae74e35ffbf.js +1 -0
- data/tools/base/rux-icon-library-music.entry-79bb85a7fa728275988b.js +1 -0
- data/tools/base/rux-icon-line-style.entry-c9f08e91dd550039c7e5.js +1 -0
- data/tools/base/rux-icon-line-weight.entry-a21b3768e3f5320ca3b5.js +1 -0
- data/tools/base/rux-icon-linear-scale.entry-3ac1a08e20933ce5be29.js +1 -0
- data/tools/base/rux-icon-link-off.entry-167a702adb90a9b4e994.js +1 -0
- data/tools/base/rux-icon-link.entry-b014b152e3e435565186.js +1 -0
- data/tools/base/rux-icon-linked-camera.entry-de0d3a70ad33f314692e.js +1 -0
- data/tools/base/rux-icon-list-alt.entry-3e94179d2c644eac4746.js +1 -0
- data/tools/base/rux-icon-list.entry-a82265fd5390860349c8.js +1 -0
- data/tools/base/rux-icon-live-help.entry-a5020403087c593da7bb.js +1 -0
- data/tools/base/rux-icon-live-tv.entry-51a5bd089cc78430cc28.js +1 -0
- data/tools/base/rux-icon-local-activity.entry-43b52283ec83baa61aa8.js +1 -0
- data/tools/base/rux-icon-local-airport.entry-f25212706758e3be492b.js +1 -0
- data/tools/base/rux-icon-local-atm.entry-5d7b2a01e0e544470d7b.js +1 -0
- data/tools/base/rux-icon-local-bar.entry-cc6032bc5b2ae397f450.js +1 -0
- data/tools/base/rux-icon-local-cafe.entry-f40191ebf1c75064193f.js +1 -0
- data/tools/base/rux-icon-local-car-wash.entry-89242dcea85c128a70f7.js +1 -0
- data/tools/base/rux-icon-local-convenience-store.entry-d9aa6dbc0cb5b32ad41d.js +1 -0
- data/tools/base/rux-icon-local-dining.entry-26881b8a08db8ed2e09b.js +1 -0
- data/tools/base/rux-icon-local-drink.entry-c12a7f1fdf3e7abf7e93.js +1 -0
- data/tools/base/rux-icon-local-gas-station.entry-ed68503717ca9d1e0e76.js +1 -0
- data/tools/base/rux-icon-local-grocery-store.entry-2c5c279baef37b812ce0.js +1 -0
- data/tools/base/rux-icon-local-hospital.entry-a1ad06a922844f8c14fc.js +1 -0
- data/tools/base/rux-icon-local-hotel.entry-401a0573f206418a50f1.js +1 -0
- data/tools/base/rux-icon-local-laundry-service.entry-6286c34628970816e2a9.js +1 -0
- data/tools/base/rux-icon-local-library.entry-1f9719ced928b044557e.js +1 -0
- data/tools/base/rux-icon-local-mall.entry-75e0e5aabba4ac4317de.js +1 -0
- data/tools/base/rux-icon-local-movies.entry-c356f1cbd0dd07822f56.js +1 -0
- data/tools/base/rux-icon-local-offer.entry-ea954ed73a0d9ac1137b.js +1 -0
- data/tools/base/rux-icon-local-parking.entry-dd7b56d409b6a154f62b.js +1 -0
- data/tools/base/rux-icon-local-pharmacy.entry-93e136edd45688c499a2.js +1 -0
- data/tools/base/rux-icon-local-phone.entry-8b7d0b0617dac5b229d5.js +1 -0
- data/tools/base/rux-icon-local-play.entry-64b8dcdabcf6937fb4ed.js +1 -0
- data/tools/base/rux-icon-local-post-office.entry-8c80a496cf3bfcd0ffec.js +1 -0
- data/tools/base/rux-icon-local-printshop.entry-d73e049f3577f69ac2cf.js +1 -0
- data/tools/base/rux-icon-local-see.entry-9af275cb37f09b353087.js +1 -0
- data/tools/base/rux-icon-local-shipping.entry-86243175ad23edabd9a8.js +1 -0
- data/tools/base/rux-icon-local-taxi.entry-c7deb967cc7ef301cb81.js +1 -0
- data/tools/base/rux-icon-location-city.entry-1d917a405259d4e45f59.js +1 -0
- data/tools/base/rux-icon-location-disabled.entry-8af013cdc28ba7201cd9.js +1 -0
- data/tools/base/rux-icon-location-off.entry-4f6a3504bc6557746659.js +1 -0
- data/tools/base/rux-icon-location-on.entry-e8e73c689ea3128d7fca.js +1 -0
- data/tools/base/rux-icon-location-searching.entry-dcf3a13f97d7b1b352f9.js +1 -0
- data/tools/base/rux-icon-lock-open.entry-567c6085380eb0cc5e85.js +1 -0
- data/tools/base/rux-icon-lock.entry-dc534298f99b268c7bc5.js +1 -0
- data/tools/base/rux-icon-looks-1.entry-486e60a609770fd98db1.js +1 -0
- data/tools/base/rux-icon-looks-2.entry-bdc8b0edc8336d6b6b56.js +1 -0
- data/tools/base/rux-icon-looks-3.entry-dc90a6bb6d8e46ba81d1.js +1 -0
- data/tools/base/rux-icon-looks-4.entry-a5ba1bf5b015fb860df8.js +1 -0
- data/tools/base/rux-icon-looks-5.entry-88d17e5972c1fca0c8d6.js +1 -0
- data/tools/base/rux-icon-looks-6.entry-129206eaed5eb5782c99.js +1 -0
- data/tools/base/rux-icon-looks.entry-ffb232e7ec71a6404bcb.js +1 -0
- data/tools/base/rux-icon-loop.entry-2c23497933a7a8f8d343.js +1 -0
- data/tools/base/rux-icon-loupe.entry-7ca0e06003a7abc74a0a.js +1 -0
- data/tools/base/rux-icon-low-priority.entry-8669b72d88e82180c347.js +1 -0
- data/tools/base/rux-icon-loyalty.entry-890fc3b485835700b76d.js +1 -0
- data/tools/base/rux-icon-mail-outline.entry-8386f97ddb55f33da77f.js +1 -0
- data/tools/base/rux-icon-mail.entry-f4fa34ef9e3cfd4d0f3c.js +1 -0
- data/tools/base/rux-icon-map.entry-964734b4fdce7aab7db5.js +1 -0
- data/tools/base/rux-icon-markunread-mailbox.entry-e154b76fdae201b1d431.js +1 -0
- data/tools/base/rux-icon-markunread.entry-b56d8edeb50d9b5f4a68.js +1 -0
- data/tools/base/rux-icon-maximize.entry-82d1ddabbd6a42755cef.js +1 -0
- data/tools/base/rux-icon-meeting-room.entry-e928e593f8559f07b819.js +1 -0
- data/tools/base/rux-icon-memory.entry-1a3ce722f87cbbcd0dd1.js +1 -0
- data/tools/base/rux-icon-menu.entry-8d5e22f3449b693dab3a.js +1 -0
- data/tools/base/rux-icon-merge-type.entry-c92026334b37222e0dc3.js +1 -0
- data/tools/base/rux-icon-message.entry-8fab845563f7232e9ed8.js +1 -0
- data/tools/base/rux-icon-mic-none.entry-b1c3f1cd560b2c54c42c.js +1 -0
- data/tools/base/rux-icon-mic-off.entry-b49e3a03310c49e67054.js +1 -0
- data/tools/base/rux-icon-mic.entry-d2dcd39efb7a0cc8132f.js +1 -0
- data/tools/base/rux-icon-minimize.entry-48a298bd1edd18a04f2f.js +1 -0
- data/tools/base/rux-icon-missed-video-call.entry-631bd596f8fa3c7fddc8.js +1 -0
- data/tools/base/rux-icon-mission.entry-c5e8bf44bcb61a56993e.js +1 -0
- data/tools/base/rux-icon-mms.entry-1bef7fd5e7bf9fbbe2f8.js +1 -0
- data/tools/base/rux-icon-mobile-friendly.entry-22ecc25fd1f84855b292.js +1 -0
- data/tools/base/rux-icon-mobile-off.entry-b15a45d0c649bd3183d5.js +1 -0
- data/tools/base/rux-icon-mobile-screen-share.entry-b6bd3b5406b23e28ca9c.js +1 -0
- data/tools/base/rux-icon-mode-comment.entry-e68d044bfa4e68bf28a9.js +1 -0
- data/tools/base/rux-icon-monetization-on.entry-98886f48c7f517880c30.js +1 -0
- data/tools/base/rux-icon-money-off.entry-38517b33366d63857aa7.js +1 -0
- data/tools/base/rux-icon-money.entry-581e7c0ba2b6594842a7.js +1 -0
- data/tools/base/rux-icon-monochrome-photos.entry-20811961334cad80d74a.js +1 -0
- data/tools/base/rux-icon-mood-bad.entry-1085b5edbac2434d8a8d.js +1 -0
- data/tools/base/rux-icon-mood.entry-35eeb4abddabc109a033.js +1 -0
- data/tools/base/rux-icon-more-horiz.entry-dcd057e0ecc68572bc60.js +1 -0
- data/tools/base/rux-icon-more-vert.entry-2a4c6edc979947419bf2.js +1 -0
- data/tools/base/rux-icon-more.entry-9c128813fd8102eccddd.js +1 -0
- data/tools/base/rux-icon-motorcycle.entry-9421c310c5b480d702ed.js +1 -0
- data/tools/base/rux-icon-mouse.entry-ff9fd8bac68950c2a55a.js +1 -0
- data/tools/base/rux-icon-move-to-inbox.entry-45ced2401b0a424dc89d.js +1 -0
- data/tools/base/rux-icon-movie-creation.entry-d0093cea350a5e6d9f50.js +1 -0
- data/tools/base/rux-icon-movie-filter.entry-68b910680dda3105069a.js +1 -0
- data/tools/base/rux-icon-movie.entry-424796e31737308bce7b.js +1 -0
- data/tools/base/rux-icon-multiline-chart.entry-60d9b51d4b0a22da4faf.js +1 -0
- data/tools/base/rux-icon-music-note.entry-c52cbd853e99b115ca10.js +1 -0
- data/tools/base/rux-icon-music-off.entry-34cdb6db6da368e6e7de.js +1 -0
- data/tools/base/rux-icon-music-video.entry-7c515a711f217c077f3b.js +1 -0
- data/tools/base/rux-icon-my-location.entry-113bafb36f1d96fba28d.js +1 -0
- data/tools/base/rux-icon-nature-people.entry-63ae9dd8d76de67024dc.js +1 -0
- data/tools/base/rux-icon-nature.entry-f079ee7d9da40161117a.js +1 -0
- data/tools/base/rux-icon-navigate-before.entry-16a6b454920e8e073519.js +1 -0
- data/tools/base/rux-icon-navigate-next.entry-4d4ec02708e020679cda.js +1 -0
- data/tools/base/rux-icon-navigation.entry-548bbdfc80f8a5ace7c3.js +1 -0
- data/tools/base/rux-icon-near-me.entry-8c2c8eb1ac4709552468.js +1 -0
- data/tools/base/rux-icon-netcom.entry-c4ea614ab06fc56330c8.js +1 -0
- data/tools/base/rux-icon-network-cell.entry-ffc0dc52c473bf99ec1d.js +1 -0
- data/tools/base/rux-icon-network-check.entry-ed60ba96ecc2abefff78.js +1 -0
- data/tools/base/rux-icon-network-locked.entry-ccea9a7a507a23a717d6.js +1 -0
- data/tools/base/rux-icon-network-wifi.entry-2d8ac2592984c2bcfe85.js +1 -0
- data/tools/base/rux-icon-new-releases.entry-684821047f6b439e574c.js +1 -0
- data/tools/base/rux-icon-next-week.entry-63f94d0f1c2685d38e4b.js +1 -0
- data/tools/base/rux-icon-nfc.entry-66b3b5c267bbcb258150.js +1 -0
- data/tools/base/rux-icon-no-encryption.entry-16c68946882c25788d39.js +1 -0
- data/tools/base/rux-icon-no-meeting-room.entry-d044f0adde1710b68ad8.js +1 -0
- data/tools/base/rux-icon-no-sim.entry-5789dba5370503398f46.js +1 -0
- data/tools/base/rux-icon-not-interested.entry-4b470ff23e0a0e499c0b.js +1 -0
- data/tools/base/rux-icon-not-listed-location.entry-56d1fa3205167bc42585.js +1 -0
- data/tools/base/rux-icon-note-add.entry-538d44ddfe1cae617e8a.js +1 -0
- data/tools/base/rux-icon-note.entry-89ad1c2f93cccf8d3879.js +1 -0
- data/tools/base/rux-icon-notes.entry-fc8f57a12e8db7602f5d.js +1 -0
- data/tools/base/rux-icon-notification-important.entry-6b415a028bc3749deade.js +1 -0
- data/tools/base/rux-icon-notifications-active.entry-b25b2263a723c34e4936.js +1 -0
- data/tools/base/rux-icon-notifications-none.entry-aae978e01e099c223ff8.js +1 -0
- data/tools/base/rux-icon-notifications-off.entry-130863b6318087630b9e.js +1 -0
- data/tools/base/rux-icon-notifications-paused.entry-40fe0cc0b46d5f30e3ab.js +1 -0
- data/tools/base/rux-icon-notifications.entry-19b46a2a5749e83a4251.js +1 -0
- data/tools/base/rux-icon-offline-bolt.entry-511dab5126c969581b3a.js +1 -0
- data/tools/base/rux-icon-offline-pin.entry-554eb45e1a1cd3ff1c27.js +1 -0
- data/tools/base/rux-icon-ondemand-video.entry-ffc5728bc8ce41cb6c33.js +1 -0
- data/tools/base/rux-icon-opacity.entry-6ba5f5641acab5bf2466.js +1 -0
- data/tools/base/rux-icon-open-in-browser.entry-fdcd273a267dd2a1a91c.js +1 -0
- data/tools/base/rux-icon-open-in-new.entry-743635da314bbd6fe18a.js +1 -0
- data/tools/base/rux-icon-open-with.entry-5a0acbef20fa663d3e9c.js +1 -0
- data/tools/base/rux-icon-outlined-flag.entry-f527a5340fdf45cbe04a.js +1 -0
- data/tools/base/rux-icon-pages.entry-d63727b0df77321700ad.js +1 -0
- data/tools/base/rux-icon-pageview.entry-c28188ee1af84bc5ee51.js +1 -0
- data/tools/base/rux-icon-palette.entry-a1e01f7feb977624e431.js +1 -0
- data/tools/base/rux-icon-pan-tool.entry-4c575b54f7d389accf73.js +1 -0
- data/tools/base/rux-icon-panorama-fish-eye.entry-79886cc8a67fe88d7eb7.js +1 -0
- data/tools/base/rux-icon-panorama-horizontal.entry-381d9681a4d15c092962.js +1 -0
- data/tools/base/rux-icon-panorama-vertical.entry-4b72bea2171cec7eba3d.js +1 -0
- data/tools/base/rux-icon-panorama-wide-angle.entry-a9decb7829b81e2b1026.js +1 -0
- data/tools/base/rux-icon-panorama.entry-983dfd523e05e174d121.js +1 -0
- data/tools/base/rux-icon-party-mode.entry-57c6a1cb6319e6d3423f.js +1 -0
- data/tools/base/rux-icon-pause-circle-filled.entry-482e476bdfee71fbaf59.js +1 -0
- data/tools/base/rux-icon-pause-circle-outline.entry-1a86e78cecfede9203eb.js +1 -0
- data/tools/base/rux-icon-pause-presentation.entry-76b5101daa77dbf539a3.js +1 -0
- data/tools/base/rux-icon-pause.entry-c1d1120de04608ac49e4.js +1 -0
- data/tools/base/rux-icon-payload.entry-ae48657448fbf1a3df9b.js +1 -0
- data/tools/base/rux-icon-payment.entry-fc177e99e1b586f408f8.js +1 -0
- data/tools/base/rux-icon-people-outline.entry-51be70a60af986e2c04f.js +1 -0
- data/tools/base/rux-icon-perm-camera-mic.entry-1142184f1bf0b9bc592c.js +1 -0
- data/tools/base/rux-icon-perm-contact-calendar.entry-9376fe97bc75e7819492.js +1 -0
- data/tools/base/rux-icon-perm-data-setting.entry-988bf89b703fc4094e4a.js +1 -0
- data/tools/base/rux-icon-perm-device-information.entry-11e2910bf7eae224448a.js +1 -0
- data/tools/base/rux-icon-perm-identity.entry-4bc6ee7fa4315ceaa8ce.js +1 -0
- data/tools/base/rux-icon-perm-media.entry-298968e0c3b3a2c62b23.js +1 -0
- data/tools/base/rux-icon-perm-phone-msg.entry-d0d77b7f15440b6fa38e.js +1 -0
- data/tools/base/rux-icon-perm-scan-wifi.entry-e0ceb34d7c9e41c1e1a6.js +1 -0
- data/tools/base/rux-icon-person-add-disabled.entry-fd0a0c6de7a041564f3b.js +1 -0
- data/tools/base/rux-icon-person-add.entry-6b6e5be57e3bffa9930c.js +1 -0
- data/tools/base/rux-icon-person-outline.entry-9b71f29d88ce4a15e7a8.js +1 -0
- data/tools/base/rux-icon-person-pin-circle.entry-f150e89a3bb208e43d71.js +1 -0
- data/tools/base/rux-icon-person-pin.entry-eebb57618434f59487f0.js +1 -0
- data/tools/base/rux-icon-person.entry-7c16a4baa159c9e002d9.js +1 -0
- data/tools/base/rux-icon-personal-video.entry-af1e025335dbe43f42af.js +1 -0
- data/tools/base/rux-icon-pets.entry-841d8977acb461ae3385.js +1 -0
- data/tools/base/rux-icon-phone-android.entry-bca51660d51eedf6fdf8.js +1 -0
- data/tools/base/rux-icon-phone-bluetooth-speaker.entry-8beefd9a01f1a93d22b8.js +1 -0
- data/tools/base/rux-icon-phone-callback.entry-b2ff650b2330c968e2d5.js +1 -0
- data/tools/base/rux-icon-phone-forwarded.entry-a706e0c5d2be075156d1.js +1 -0
- data/tools/base/rux-icon-phone-in-talk.entry-c540727ff3bbd8c4c0a4.js +1 -0
- data/tools/base/rux-icon-phone-iphone.entry-54ab4a46517ad6a0d100.js +1 -0
- data/tools/base/rux-icon-phone-locked.entry-7a634b9381eeaea10234.js +1 -0
- data/tools/base/rux-icon-phone-missed.entry-9bd82f74cfca4755c80f.js +1 -0
- data/tools/base/rux-icon-phone-paused.entry-fdbe8a2336317e5affc8.js +1 -0
- data/tools/base/rux-icon-phone.entry-445b790c96f01b92bd05.js +1 -0
- data/tools/base/rux-icon-phonelink-erase.entry-5379b2eba12c57d5db7f.js +1 -0
- data/tools/base/rux-icon-phonelink-lock.entry-c560c2b182f04f2197fd.js +1 -0
- data/tools/base/rux-icon-phonelink-off.entry-572e625bbf8c615a77cf.js +1 -0
- data/tools/base/rux-icon-phonelink-ring.entry-f3f3e86489bc55abd722.js +1 -0
- data/tools/base/rux-icon-phonelink-setup.entry-3ef20cf4457425aab2cf.js +1 -0
- data/tools/base/rux-icon-phonelink.entry-1c1fd36e34a0349ed776.js +1 -0
- data/tools/base/rux-icon-photo-album.entry-ffa3505a02157f492892.js +1 -0
- data/tools/base/rux-icon-photo-camera.entry-61e10e9c92bd1e7026c2.js +1 -0
- data/tools/base/rux-icon-photo-filter.entry-4e3ed3a407d4fa8fa27e.js +1 -0
- data/tools/base/rux-icon-photo-library.entry-237a073890d956e790e1.js +1 -0
- data/tools/base/rux-icon-photo-size-select-actual.entry-421e24613782033c37c1.js +1 -0
- data/tools/base/rux-icon-photo-size-select-large.entry-da1fb97a1547b73ebc51.js +1 -0
- data/tools/base/rux-icon-photo-size-select-small.entry-2cbd48d5c7e8606d11d3.js +1 -0
- data/tools/base/rux-icon-photo.entry-89d03d13ccbb3141e895.js +1 -0
- data/tools/base/rux-icon-picture-as-pdf.entry-b14cd18105283baa2009.js +1 -0
- data/tools/base/rux-icon-picture-in-picture-alt.entry-c78ce2e9b174bc8c2b63.js +1 -0
- data/tools/base/rux-icon-picture-in-picture.entry-49df77c07f11622ce9c0.js +1 -0
- data/tools/base/rux-icon-pie-chart.entry-38b9228559618819f32e.js +1 -0
- data/tools/base/rux-icon-pin-drop.entry-6ad13973785067e6033b.js +1 -0
- data/tools/base/rux-icon-place.entry-98ec414f9d1bd7cd1343.js +1 -0
- data/tools/base/rux-icon-play-arrow.entry-79eacd6acf7545fe71fa.js +1 -0
- data/tools/base/rux-icon-play-circle-filled-white.entry-c52ac5ae10ca323d2b2c.js +1 -0
- data/tools/base/rux-icon-play-circle-filled.entry-7c98ce2e74eb6fa16a42.js +1 -0
- data/tools/base/rux-icon-play-circle-outline.entry-c96f6176c6a325773004.js +1 -0
- data/tools/base/rux-icon-play-for-work.entry-80932e17041855f6a055.js +1 -0
- data/tools/base/rux-icon-playlist-add-check.entry-524133b07d1ab0582740.js +1 -0
- data/tools/base/rux-icon-playlist-add.entry-d703c0c0615308787177.js +1 -0
- data/tools/base/rux-icon-playlist-play.entry-5fea785a2fe960d2b050.js +1 -0
- data/tools/base/rux-icon-plus-one.entry-d09284689caaa30459dc.js +1 -0
- data/tools/base/rux-icon-poll.entry-9da2542c4d5ab014bdfb.js +1 -0
- data/tools/base/rux-icon-pool.entry-b8a47c348d542cf34b7b.js +1 -0
- data/tools/base/rux-icon-portable-wifi-off.entry-dcc2b355d8d9868cd0ba.js +1 -0
- data/tools/base/rux-icon-portrait.entry-157dfd9cfe3d78053e4e.js +1 -0
- data/tools/base/rux-icon-power-input.entry-6b4ad51b7d8024069494.js +1 -0
- data/tools/base/rux-icon-power-off.entry-83519f1a8318160fdcb0.js +1 -0
- data/tools/base/rux-icon-power-settings-new.entry-dd116e6f85efb1ebd403.js +1 -0
- data/tools/base/rux-icon-power.entry-d4ef8057a01ccc0143ed.js +1 -0
- data/tools/base/rux-icon-pregnant-woman.entry-d7564b6a979f92af5334.js +1 -0
- data/tools/base/rux-icon-present-to-all.entry-2467b9d2d24a1151937a.js +1 -0
- data/tools/base/rux-icon-print-disabled.entry-83ae16b571a25a8461f6.js +1 -0
- data/tools/base/rux-icon-print.entry-c85693092f08e1f0b910.js +1 -0
- data/tools/base/rux-icon-priority-high.entry-83cf98d07e1bb423c046.js +1 -0
- data/tools/base/rux-icon-processor-alt.entry-814b7fa54aef6f83fd50.js +1 -0
- data/tools/base/rux-icon-processor.entry-ff8b0b4db488afe15a0d.js +1 -0
- data/tools/base/rux-icon-propulsion-power.entry-1ad578b3eafc90314a31.js +1 -0
- data/tools/base/rux-icon-public.entry-a4167a21beccf40c14c1.js +1 -0
- data/tools/base/rux-icon-publish.entry-fc53e9ae85828d17e734.js +1 -0
- data/tools/base/rux-icon-query-builder.entry-77080d8981ec3b43067e.js +1 -0
- data/tools/base/rux-icon-question-answer.entry-7ea4fab30cf201f6bfb1.js +1 -0
- data/tools/base/rux-icon-queue-music.entry-81e477b5dd6f9a2ccdea.js +1 -0
- data/tools/base/rux-icon-queue-play-next.entry-6a32463e75b9c9627d74.js +1 -0
- data/tools/base/rux-icon-queue.entry-5a06044c0c3267ad9da0.js +1 -0
- data/tools/base/rux-icon-radio-button-checked.entry-b53856235112271c58dd.js +1 -0
- data/tools/base/rux-icon-radio-button-unchecked.entry-ec1427bf42ab5a71df1c.js +1 -0
- data/tools/base/rux-icon-radio.entry-74e51bc1ecc89ca384e9.js +1 -0
- data/tools/base/rux-icon-rate-review.entry-ede3a591f9f36810377a.js +1 -0
- data/tools/base/rux-icon-receipt.entry-345451ef1b7b1e1b02ba.js +1 -0
- data/tools/base/rux-icon-recent-actors.entry-b0f5c221cb183e6a81af.js +1 -0
- data/tools/base/rux-icon-record-voice-over.entry-773aef36bda7f2979861.js +1 -0
- data/tools/base/rux-icon-redeem.entry-174ea9e8a18ebc088d6e.js +1 -0
- data/tools/base/rux-icon-redo.entry-76a3523214ff09a80efc.js +1 -0
- data/tools/base/rux-icon-refresh.entry-fe172742623cca973278.js +1 -0
- data/tools/base/rux-icon-release.entry-9fd668888fcec25cd87d.js +1 -0
- data/tools/base/rux-icon-remove-circle-outline.entry-421b4b9a653db9aea922.js +1 -0
- data/tools/base/rux-icon-remove-circle.entry-d43410b37bc77aaa1113.js +1 -0
- data/tools/base/rux-icon-remove-from-queue.entry-afbdb7098a184556708b.js +1 -0
- data/tools/base/rux-icon-remove-red-eye.entry-a6c84bf53a68eac68674.js +1 -0
- data/tools/base/rux-icon-remove-shopping-cart.entry-2bd4dc46426b50bfbb12.js +1 -0
- data/tools/base/rux-icon-remove.entry-e0814ef7f62aa5cef6f2.js +1 -0
- data/tools/base/rux-icon-reorder.entry-cefcfbb72176ae802548.js +1 -0
- data/tools/base/rux-icon-repeat-one.entry-4f7d6d1f7964146a3f7e.js +1 -0
- data/tools/base/rux-icon-repeat.entry-d029db44927fd7a46045.js +1 -0
- data/tools/base/rux-icon-replay-10.entry-514b2c1b421aed53ac41.js +1 -0
- data/tools/base/rux-icon-replay-30.entry-24a43d6d8de8d04fd206.js +1 -0
- data/tools/base/rux-icon-replay-5.entry-f24f731c2416e29ec1f4.js +1 -0
- data/tools/base/rux-icon-replay.entry-1c2f0c4861af3cf59535.js +1 -0
- data/tools/base/rux-icon-reply-all.entry-e3bf9c33201acdcd5cfe.js +1 -0
- data/tools/base/rux-icon-reply.entry-befd219028083b8d42c7.js +1 -0
- data/tools/base/rux-icon-report-off.entry-7faade8fdc59588b49c3.js +1 -0
- data/tools/base/rux-icon-report-problem.entry-168042b97b4323f54b6a.js +1 -0
- data/tools/base/rux-icon-report.entry-11b765f25395b5db367d.js +1 -0
- data/tools/base/rux-icon-restaurant-menu.entry-7f1a7a91789db1336582.js +1 -0
- data/tools/base/rux-icon-restaurant.entry-563a40dd0792f5390521.js +1 -0
- data/tools/base/rux-icon-restore-from-trash.entry-4e18306aefb85c745637.js +1 -0
- data/tools/base/rux-icon-restore-page.entry-094e25b2b33fc7096195.js +1 -0
- data/tools/base/rux-icon-restore.entry-9b409cbfc1b4272c336c.js +1 -0
- data/tools/base/rux-icon-ring-volume.entry-d44cee6da1df2210f872.js +1 -0
- data/tools/base/rux-icon-room-service.entry-f619622ed05847bbbb1a.js +1 -0
- data/tools/base/rux-icon-room.entry-50096f770c946f0a8b8f.js +1 -0
- data/tools/base/rux-icon-rotate-90-degrees-cc.entry-299476a455854099a40b.js +1 -0
- data/tools/base/rux-icon-rotate-left.entry-cf07a014b4a094af3aa0.js +1 -0
- data/tools/base/rux-icon-rotate-right.entry-3f17a55ec8df6de1e690.js +1 -0
- data/tools/base/rux-icon-rounded-corner.entry-9aabaff7bfc38261b700.js +1 -0
- data/tools/base/rux-icon-router.entry-ea937d2afa9b9c80ad65.js +1 -0
- data/tools/base/rux-icon-rowing.entry-f0a5abc0175a92aa9251.js +1 -0
- data/tools/base/rux-icon-rss-feed.entry-15c73334a2738b3bb727.js +1 -0
- data/tools/base/rux-icon-rv-hookup.entry-ff319b405a0b3a35f65d.js +1 -0
- data/tools/base/rux-icon-satellite-off.entry-9728892733659d1fb4bf.js +1 -0
- data/tools/base/rux-icon-satellite-receive.entry-a1a2b8babbca71a9d01d.js +1 -0
- data/tools/base/rux-icon-satellite-transmit.entry-7d3dc08006d1798bb721.js +1 -0
- data/tools/base/rux-icon-satellite.entry-d8a77ad21edfc0cf9627.js +1 -0
- data/tools/base/rux-icon-save-alt.entry-d39322d2b71ef0d41ef0.js +1 -0
- data/tools/base/rux-icon-save.entry-e775572f2fc3289c7ab3.js +1 -0
- data/tools/base/rux-icon-scanner.entry-7f355b5d64d8fafc271c.js +1 -0
- data/tools/base/rux-icon-scatter-plot.entry-88154988658a9d5421c2.js +1 -0
- data/tools/base/rux-icon-schedule.entry-6bc793a7cbaa02ff0afb.js +1 -0
- data/tools/base/rux-icon-school.entry-fb5f089c41e9d75aabc0.js +1 -0
- data/tools/base/rux-icon-score.entry-41dc5e1726b424dc56da.js +1 -0
- data/tools/base/rux-icon-screen-lock-landscape.entry-26810628a01dc4e20614.js +1 -0
- data/tools/base/rux-icon-screen-lock-portrait.entry-8c5f5ea58e347e9131ec.js +1 -0
- data/tools/base/rux-icon-screen-lock-rotation.entry-083316b31e18a3c311fc.js +1 -0
- data/tools/base/rux-icon-screen-rotation.entry-495a01db1c83552201a7.js +1 -0
- data/tools/base/rux-icon-screen-share.entry-6db105166d3eb1ebb2d0.js +1 -0
- data/tools/base/rux-icon-sd-card.entry-83c913484446303abced.js +1 -0
- data/tools/base/rux-icon-sd-storage.entry-55d998fce82068dc3116.js +1 -0
- data/tools/base/rux-icon-search.entry-584501cc9d83fe4ad977.js +1 -0
- data/tools/base/rux-icon-seat.entry-1515603e9e9db55e7243.js +1 -0
- data/tools/base/rux-icon-security.entry-da4513bed3d8975a827c.js +1 -0
- data/tools/base/rux-icon-select-all.entry-dc178449b96deaa56239.js +1 -0
- data/tools/base/rux-icon-send.entry-b85ef871934d29a7ddf5.js +1 -0
- data/tools/base/rux-icon-sentiment-dissatisfied.entry-2909bcb89b5189428ff8.js +1 -0
- data/tools/base/rux-icon-sentiment-satisfied-alt.entry-abbab338ba06747f9d35.js +1 -0
- data/tools/base/rux-icon-sentiment-satisfied.entry-de65f0b111ea7a49d6ac.js +1 -0
- data/tools/base/rux-icon-sentiment-very-dissatisfied.entry-46dd97bb90a3b1c79e9d.js +1 -0
- data/tools/base/rux-icon-sentiment-very-satisfied.entry-a79ad3f38528a9307f6e.js +1 -0
- data/tools/base/rux-icon-set-power.entry-13889ab56bb14eab1af4.js +1 -0
- data/tools/base/rux-icon-settings-applications.entry-f892e60c2764f6e2c2cd.js +1 -0
- data/tools/base/rux-icon-settings-backup-restore.entry-b20e915d3b1447528afb.js +1 -0
- data/tools/base/rux-icon-settings-bluetooth.entry-dace295513cbe8692cf7.js +1 -0
- data/tools/base/rux-icon-settings-brightness.entry-d9842739221974eb714d.js +1 -0
- data/tools/base/rux-icon-settings-cell.entry-d1f4958443d5d57cec4e.js +1 -0
- data/tools/base/rux-icon-settings-ethernet.entry-afef489065dda6b7576d.js +1 -0
- data/tools/base/rux-icon-settings-input-antenna.entry-ea66bc194968f5c554bb.js +1 -0
- data/tools/base/rux-icon-settings-input-component.entry-86bcaedf3794dcc45e5f.js +1 -0
- data/tools/base/rux-icon-settings-input-composite.entry-a310dbcfc29f0a386b2a.js +1 -0
- data/tools/base/rux-icon-settings-input-hdmi.entry-cae278505eee9944d1ef.js +1 -0
- data/tools/base/rux-icon-settings-input-svideo.entry-b5a12b9f01541089bae8.js +1 -0
- data/tools/base/rux-icon-settings-overscan.entry-630911b75e69276e2cd0.js +1 -0
- data/tools/base/rux-icon-settings-phone.entry-2ef8a448cede97bd04f3.js +1 -0
- data/tools/base/rux-icon-settings-power.entry-72c4a615d7a85ab2f7b0.js +1 -0
- data/tools/base/rux-icon-settings-remote.entry-f9ececcb11023ae61e11.js +1 -0
- data/tools/base/rux-icon-settings-system-daydream.entry-bea1ec43c5420bf45c68.js +1 -0
- data/tools/base/rux-icon-settings-voice.entry-697faa570a849be62cb4.js +1 -0
- data/tools/base/rux-icon-settings.entry-bcf1f3f7a59a232f7166.js +1 -0
- data/tools/base/rux-icon-share.entry-205aa95342dbf25f3c5e.js +1 -0
- data/tools/base/rux-icon-shop-two.entry-686251c3d0269d8f1b2e.js +1 -0
- data/tools/base/rux-icon-shop.entry-c5da9dae76bc00a608b6.js +1 -0
- data/tools/base/rux-icon-shopping-basket.entry-27192d5501377f327005.js +1 -0
- data/tools/base/rux-icon-shopping-cart.entry-e8c486bb77c33457364e.js +1 -0
- data/tools/base/rux-icon-short-text.entry-f1daaf1415a7aef7f5e4.js +1 -0
- data/tools/base/rux-icon-show-chart.entry-c7075a1ba0c530f797a2.js +1 -0
- data/tools/base/rux-icon-shuffle.entry-4f6d6c607bfda327deaa.js +1 -0
- data/tools/base/rux-icon-shutter-speed.entry-a3b59e1288e7a0bcc90c.js +1 -0
- data/tools/base/rux-icon-signal-cellular-0-bar.entry-e31269d38b4a7e7fac52.js +1 -0
- data/tools/base/rux-icon-signal-cellular-1-bar.entry-2c6af2c2b2d566559900.js +1 -0
- data/tools/base/rux-icon-signal-cellular-2-bar.entry-d9a6e7a45ffbb5734fc5.js +1 -0
- data/tools/base/rux-icon-signal-cellular-3-bar.entry-6172154c73c47eddb06b.js +1 -0
- data/tools/base/rux-icon-signal-cellular-4-bar.entry-ae17b64ab9925da701b5.js +1 -0
- data/tools/base/rux-icon-signal-cellular-alt.entry-7097e99e20095210db6a.js +1 -0
- data/tools/base/rux-icon-signal-cellular-connected-no-internet-0-bar.entry-744004d15548e5bcda08.js +1 -0
- data/tools/base/rux-icon-signal-cellular-connected-no-internet-1-bar.entry-50352602e3499bf9577f.js +1 -0
- data/tools/base/rux-icon-signal-cellular-connected-no-internet-2-bar.entry-f06b05ed84774633869c.js +1 -0
- data/tools/base/rux-icon-signal-cellular-connected-no-internet-3-bar.entry-ac9673a5f4fde0a8c743.js +1 -0
- data/tools/base/rux-icon-signal-cellular-connected-no-internet-4-bar.entry-6d483d15f97b57b2a81c.js +1 -0
- data/tools/base/rux-icon-signal-cellular-no-sim.entry-1b1c3e23d5ad58bb71b3.js +1 -0
- data/tools/base/rux-icon-signal-cellular-null.entry-ecbc31c8dfdec7afe973.js +1 -0
- data/tools/base/rux-icon-signal-cellular-off.entry-23f41bef55b09891b720.js +1 -0
- data/tools/base/rux-icon-signal-wifi-0-bar.entry-fdfe15bf8705b9352357.js +1 -0
- data/tools/base/rux-icon-signal-wifi-1-bar-lock.entry-72b86a8e3310229d801b.js +1 -0
- data/tools/base/rux-icon-signal-wifi-1-bar.entry-f9942ea3d7b68f66fc3c.js +1 -0
- data/tools/base/rux-icon-signal-wifi-2-bar-lock.entry-b9f344c2d9fb5ff9c236.js +1 -0
- data/tools/base/rux-icon-signal-wifi-2-bar.entry-df66e1081ac3877c6097.js +1 -0
- data/tools/base/rux-icon-signal-wifi-3-bar-lock.entry-c4fa3a6c4603b2d6381b.js +1 -0
- data/tools/base/rux-icon-signal-wifi-3-bar.entry-5aedc5487c2b1ccf78db.js +1 -0
- data/tools/base/rux-icon-signal-wifi-4-bar-lock.entry-ed49cf76216237e07742.js +1 -0
- data/tools/base/rux-icon-signal-wifi-4-bar.entry-516176e0bf92cec875d7.js +1 -0
- data/tools/base/rux-icon-signal-wifi-off.entry-47369fd5ee3de7ff7ad8.js +1 -0
- data/tools/base/rux-icon-sim-card.entry-8ae89e82c4f9882294db.js +1 -0
- data/tools/base/rux-icon-skip-next.entry-36d83190a20859d359c7.js +1 -0
- data/tools/base/rux-icon-skip-previous.entry-af29d6cfafc3fc03f19f.js +1 -0
- data/tools/base/rux-icon-slideshow.entry-a37d5b2cb36aa807bb69.js +1 -0
- data/tools/base/rux-icon-slow-motion-video.entry-b5ef56356c6421dffbf8.js +1 -0
- data/tools/base/rux-icon-smartphone.entry-4dc905db0826e88b4c6f.js +1 -0
- data/tools/base/rux-icon-smoke-free.entry-66df448a67cb40640db3.js +1 -0
- data/tools/base/rux-icon-smoking-rooms.entry-5245d9bfefbcdcbaabb6.js +1 -0
- data/tools/base/rux-icon-sms-failed.entry-96498bc468ae803c4f55.js +1 -0
- data/tools/base/rux-icon-sms.entry-a0eb2f88e7c83f494a88.js +1 -0
- data/tools/base/rux-icon-snooze.entry-c543259dcfb0c9ac648b.js +1 -0
- data/tools/base/rux-icon-solar.entry-27d222fefac30580aa05.js +1 -0
- data/tools/base/rux-icon-sort-by-alpha.entry-a4af032315315add4996.js +1 -0
- data/tools/base/rux-icon-sort.entry-6b0bda02a57a3a7d9948.js +1 -0
- data/tools/base/rux-icon-spa.entry-2b97dfa0e920dbe9c5f8.js +1 -0
- data/tools/base/rux-icon-space-bar.entry-108289cdc9b01e32fb88.js +1 -0
- data/tools/base/rux-icon-speaker-group.entry-97235ff5d34257183852.js +1 -0
- data/tools/base/rux-icon-speaker-notes-off.entry-97f7909d80f6090a7e51.js +1 -0
- data/tools/base/rux-icon-speaker-notes.entry-6d8e2422c5aba525dfe1.js +1 -0
- data/tools/base/rux-icon-speaker-phone.entry-fe7c2dafde000e6c5e90.js +1 -0
- data/tools/base/rux-icon-speaker.entry-f8877d5b0b4cbc2f5558.js +1 -0
- data/tools/base/rux-icon-spellcheck.entry-d36c4f5b75e895fb86e6.js +1 -0
- data/tools/base/rux-icon-star-border.entry-83faea6191f060dbf953.js +1 -0
- data/tools/base/rux-icon-star-half.entry-9a706fa10c65306d6bf6.js +1 -0
- data/tools/base/rux-icon-star-rate.entry-41eb4a1f0ecf0ec96b79.js +1 -0
- data/tools/base/rux-icon-star.entry-b20182a3d425c30f4e3a.js +1 -0
- data/tools/base/rux-icon-stars.entry-764deed980fbd0aa7230.js +1 -0
- data/tools/base/rux-icon-stay-current-landscape.entry-460ff1f3088153a3009e.js +1 -0
- data/tools/base/rux-icon-stay-current-portrait.entry-ccd9d82b5b952ad98845.js +1 -0
- data/tools/base/rux-icon-stay-primary-landscape.entry-9b98970c09ad3e0d4f61.js +1 -0
- data/tools/base/rux-icon-stay-primary-portrait.entry-b95268bfba3d9c733520.js +1 -0
- data/tools/base/rux-icon-stop-screen-share.entry-d02b80f57b4f1121a73a.js +1 -0
- data/tools/base/rux-icon-stop.entry-6777252b2ea00dc935a0.js +1 -0
- data/tools/base/rux-icon-storage.entry-4d67e3541a7315c0b94b.js +1 -0
- data/tools/base/rux-icon-store-mall-directory.entry-d02f2e2897049525d611.js +1 -0
- data/tools/base/rux-icon-store.entry-5c7832e3128a5f6aa7ca.js +1 -0
- data/tools/base/rux-icon-straighten.entry-3ceba1b44f4f21b2176f.js +1 -0
- data/tools/base/rux-icon-streetview.entry-90b358ab8fb250df97d9.js +1 -0
- data/tools/base/rux-icon-strikethrough-s.entry-5eb5825be1de38a4a248.js +1 -0
- data/tools/base/rux-icon-style.entry-a2184ab9d6b485b13aea.js +1 -0
- data/tools/base/rux-icon-subdirectory-arrow-left.entry-246fbbe883e55459bb33.js +1 -0
- data/tools/base/rux-icon-subdirectory-arrow-right.entry-2c9ddaff0bf18baddd0a.js +1 -0
- data/tools/base/rux-icon-subject.entry-772d50fa27d2f5049c39.js +1 -0
- data/tools/base/rux-icon-subscriptions.entry-857e5379af68e3ce60bf.js +1 -0
- data/tools/base/rux-icon-subtitles.entry-fee862c94be3aa11bd7a.js +1 -0
- data/tools/base/rux-icon-subway.entry-f19100812758900fbe47.js +1 -0
- data/tools/base/rux-icon-supervised-user-circle.entry-335b2469f937b28077d9.js +1 -0
- data/tools/base/rux-icon-supervisor-account.entry-66f8e96d8ebc2dcf2d76.js +1 -0
- data/tools/base/rux-icon-surround-sound.entry-27cf1afec48db27a7c5d.js +1 -0
- data/tools/base/rux-icon-swap-calls.entry-8db5b24b990f7afccc09.js +1 -0
- data/tools/base/rux-icon-swap-horiz.entry-6e3290261a8eb69e3d7b.js +1 -0
- data/tools/base/rux-icon-swap-horizontal-circle.entry-5fec71b2d5a271294366.js +1 -0
- data/tools/base/rux-icon-swap-vert.entry-17608ed18680fd116fe1.js +1 -0
- data/tools/base/rux-icon-swap-vertical-circle.entry-3e829beb4a2a264e5a06.js +1 -0
- data/tools/base/rux-icon-switch-camera.entry-36e048d83f5964b8914f.js +1 -0
- data/tools/base/rux-icon-switch-video.entry-ff6e8fc531afbaf76c60.js +1 -0
- data/tools/base/rux-icon-sync-disabled.entry-d55ce47146cb6a228cfe.js +1 -0
- data/tools/base/rux-icon-sync-problem.entry-11348a82f42f818aedaf.js +1 -0
- data/tools/base/rux-icon-sync.entry-1aef676dd357e55fbe59.js +1 -0
- data/tools/base/rux-icon-system-update.entry-325af6e1a2bbba0819bb.js +1 -0
- data/tools/base/rux-icon-tab-unselected.entry-5ab304618e228343184d.js +1 -0
- data/tools/base/rux-icon-tab.entry-e7e5c7a68e26e726fad4.js +1 -0
- data/tools/base/rux-icon-table-chart.entry-67e5c7158a1820842428.js +1 -0
- data/tools/base/rux-icon-tablet-android.entry-b556d99d0de41c775d97.js +1 -0
- data/tools/base/rux-icon-tablet-mac.entry-8b3ee90aa97f09d54d53.js +1 -0
- data/tools/base/rux-icon-tablet.entry-d0896343a78ae114eb06.js +1 -0
- data/tools/base/rux-icon-tag-faces.entry-a37a7f1868149fcb3199.js +1 -0
- data/tools/base/rux-icon-tap-and-play.entry-17c79668eefc7b844029.js +1 -0
- data/tools/base/rux-icon-terrain.entry-6fdbee38bc276c609299.js +1 -0
- data/tools/base/rux-icon-text-fields.entry-ffa0c2b3a35804c769ab.js +1 -0
- data/tools/base/rux-icon-text-format.entry-298cbfc4198a835902aa.js +1 -0
- data/tools/base/rux-icon-text-rotate-up.entry-9888d62ce07ccbea75d6.js +1 -0
- data/tools/base/rux-icon-text-rotate-vertical.entry-b657d21bbbd73e28d854.js +1 -0
- data/tools/base/rux-icon-text-rotation-none.entry-19db8edc888301a49834.js +1 -0
- data/tools/base/rux-icon-textsms.entry-95535eef62821d3ea810.js +1 -0
- data/tools/base/rux-icon-texture.entry-b6195486309ea4face00.js +1 -0
- data/tools/base/rux-icon-theaters.entry-fe40891f943fc792c996.js +1 -0
- data/tools/base/rux-icon-thermal.entry-e3d5dc952937e7b0c14c.js +1 -0
- data/tools/base/rux-icon-thumb-down-alt.entry-3332e2dcd9251157f61c.js +1 -0
- data/tools/base/rux-icon-thumb-down.entry-90d8826a7fb8f530387e.js +1 -0
- data/tools/base/rux-icon-thumb-up-alt.entry-6efdae906c21bfe352a2.js +1 -0
- data/tools/base/rux-icon-thumb-up.entry-beaedfef7afbeae048cb.js +1 -0
- data/tools/base/rux-icon-thumbs-up-down.entry-d4509cb395d0605b102a.js +1 -0
- data/tools/base/rux-icon-time-to-leave.entry-3723cb5c849e57955788.js +1 -0
- data/tools/base/rux-icon-timelapse.entry-3743410331ad726dd0c5.js +1 -0
- data/tools/base/rux-icon-timeline.entry-f1ade7e518f0748da4f0.js +1 -0
- data/tools/base/rux-icon-timer-10.entry-8098e429b7af04de590d.js +1 -0
- data/tools/base/rux-icon-timer-3.entry-d2ebca50b5c70a645fbe.js +1 -0
- data/tools/base/rux-icon-timer-off.entry-e162217826f535e367b5.js +1 -0
- data/tools/base/rux-icon-timer.entry-f4df1009c18e96c31d94.js +1 -0
- data/tools/base/rux-icon-title.entry-31d565d580541afa38b6.js +1 -0
- data/tools/base/rux-icon-toc.entry-d6be7f3e1c1efeb6d307.js +1 -0
- data/tools/base/rux-icon-today.entry-25c81a5d977049ce03db.js +1 -0
- data/tools/base/rux-icon-toggle-off.entry-c4ef5f4ba7631b6d9d5d.js +1 -0
- data/tools/base/rux-icon-toggle-on.entry-184116c68d426fc50f94.js +1 -0
- data/tools/base/rux-icon-toll.entry-e599272e7e7bc0bf2fa8.js +1 -0
- data/tools/base/rux-icon-tonality.entry-b322ddd0a0d411b80095.js +1 -0
- data/tools/base/rux-icon-touch-app.entry-b286fcc74e64eda436c9.js +1 -0
- data/tools/base/rux-icon-toys.entry-f35ad72b3596ea3a4ed4.js +1 -0
- data/tools/base/rux-icon-track-changes.entry-8c7288200f5faa37dcc4.js +1 -0
- data/tools/base/rux-icon-traffic.entry-6de2e46e2cc61a4e09c7.js +1 -0
- data/tools/base/rux-icon-train.entry-a915efb0dd61b63f682b.js +1 -0
- data/tools/base/rux-icon-tram.entry-6b171643a43d07665f8b.js +1 -0
- data/tools/base/rux-icon-transfer-within-a-station.entry-8fff290c4c5ff7dd314b.js +1 -0
- data/tools/base/rux-icon-transform.entry-81ee1a02b931db715c54.js +1 -0
- data/tools/base/rux-icon-transit-enterexit.entry-4c3fbdc5b2bbfe42b0f9.js +1 -0
- data/tools/base/rux-icon-translate.entry-9b706be663f6c1922b38.js +1 -0
- data/tools/base/rux-icon-trending-down.entry-7066fb1767505a882b2e.js +1 -0
- data/tools/base/rux-icon-trending-flat.entry-421c5d9f02061e3c10d3.js +1 -0
- data/tools/base/rux-icon-trending-up.entry-816a13d037ceb556bac7.js +1 -0
- data/tools/base/rux-icon-trip-origin.entry-a3d9f31dc36ae171fa49.js +1 -0
- data/tools/base/rux-icon-tune.entry-e56381e0a4d3aa669535.js +1 -0
- data/tools/base/rux-icon-turned-in-not.entry-425151446cde362e8e0e.js +1 -0
- data/tools/base/rux-icon-turned-in.entry-da0560d5f5f13ef65f3d.js +1 -0
- data/tools/base/rux-icon-tv-off.entry-196715b223b7be729c1b.js +1 -0
- data/tools/base/rux-icon-tv.entry-7ecf6fd757a6123113c9.js +1 -0
- data/tools/base/rux-icon-unarchive.entry-531785d794e616e84fb8.js +1 -0
- data/tools/base/rux-icon-undo.entry-f9dc4587c27b15a86097.js +1 -0
- data/tools/base/rux-icon-unfold-less.entry-3bf374c2c63cd8c35daa.js +1 -0
- data/tools/base/rux-icon-unfold-more.entry-ab052feea7d79a9f35e2.js +1 -0
- data/tools/base/rux-icon-unsubscribe.entry-2b6ff6dcf889762b94fa.js +1 -0
- data/tools/base/rux-icon-update.entry-84fefea291e83a93f759.js +1 -0
- data/tools/base/rux-icon-usb.entry-ed71e3abc30ac5202ac8.js +1 -0
- data/tools/base/rux-icon-verified-user.entry-6babc1c1f270f95fe6cb.js +1 -0
- data/tools/base/rux-icon-vertical-align-bottom.entry-22119a130ddad11fd341.js +1 -0
- data/tools/base/rux-icon-vertical-align-center.entry-a0a52ac36f6a79da36e4.js +1 -0
- data/tools/base/rux-icon-vertical-align-top.entry-5890653a1a0165958b5d.js +1 -0
- data/tools/base/rux-icon-vertical-split.entry-a737f00c2f872f597f7d.js +1 -0
- data/tools/base/rux-icon-vibration.entry-d1431480f9b23d09b3d8.js +1 -0
- data/tools/base/rux-icon-video-call.entry-5e92a9dc53e16fbe776b.js +1 -0
- data/tools/base/rux-icon-video-label.entry-e03d66b5cf80b17739b5.js +1 -0
- data/tools/base/rux-icon-video-library.entry-1338a292b061211b1596.js +1 -0
- data/tools/base/rux-icon-videocam-off.entry-cb206c1d733aa717be5a.js +1 -0
- data/tools/base/rux-icon-videocam.entry-adc0b7b60ee2cdbb3f9e.js +1 -0
- data/tools/base/rux-icon-videogame-asset.entry-62a4d77c0ffafc7c17c4.js +1 -0
- data/tools/base/rux-icon-view-agenda.entry-b5ffd049ec092fa7641f.js +1 -0
- data/tools/base/rux-icon-view-array.entry-dab4ac1fe7d61cc24006.js +1 -0
- data/tools/base/rux-icon-view-carousel.entry-92d14b1656b353089e89.js +1 -0
- data/tools/base/rux-icon-view-column.entry-15e955fa93aa43ac5d26.js +1 -0
- data/tools/base/rux-icon-view-comfy.entry-696ff98ad85663ef2440.js +1 -0
- data/tools/base/rux-icon-view-compact.entry-8def4b471607001355d5.js +1 -0
- data/tools/base/rux-icon-view-day.entry-d2484bee2aead4393e73.js +1 -0
- data/tools/base/rux-icon-view-headline.entry-c8c6bcd4f4d932f118d1.js +1 -0
- data/tools/base/rux-icon-view-list.entry-b09656681ffdc79cf8a8.js +1 -0
- data/tools/base/rux-icon-view-module.entry-26a1537be0211080c149.js +1 -0
- data/tools/base/rux-icon-view-quilt.entry-28bc01f5fa3df4d88aed.js +1 -0
- data/tools/base/rux-icon-view-stream.entry-e1e51bfe831694f4df27.js +1 -0
- data/tools/base/rux-icon-view-week.entry-9849741d284e8c87ed6f.js +1 -0
- data/tools/base/rux-icon-vignette.entry-e1fc934b40e4dda4e535.js +1 -0
- data/tools/base/rux-icon-visibility-off.entry-caf7cb194c112d488287.js +1 -0
- data/tools/base/rux-icon-visibility.entry-b09867643ad2d7322fca.js +1 -0
- data/tools/base/rux-icon-voice-chat.entry-7785bce7e3002e56985b.js +1 -0
- data/tools/base/rux-icon-voice-over-off.entry-b2a52414af0cd2959f00.js +1 -0
- data/tools/base/rux-icon-voicemail.entry-2609508460f4d83af12f.js +1 -0
- data/tools/base/rux-icon-volume-down.entry-a1dec141238b9601c027.js +1 -0
- data/tools/base/rux-icon-volume-mute.entry-5e5079bfdae9e243d2e4.js +1 -0
- data/tools/base/rux-icon-volume-off.entry-2ce368bebd58f4b10838.js +1 -0
- data/tools/base/rux-icon-volume-up.entry-3af66dccc2d84b0b8dc3.js +1 -0
- data/tools/base/rux-icon-vpn-key.entry-f1b54cf05163094ae2ca.js +1 -0
- data/tools/base/rux-icon-vpn-lock.entry-4c27ad427491a67a48fb.js +1 -0
- data/tools/base/rux-icon-wallpaper.entry-f2f4387a0b1cbcc3f899.js +1 -0
- data/tools/base/rux-icon-warning.entry-dea9c3d915a76d66686e.js +1 -0
- data/tools/base/rux-icon-watch-later.entry-85f07e953d135920940d.js +1 -0
- data/tools/base/rux-icon-watch.entry-5ee3b094656aa4100bc7.js +1 -0
- data/tools/base/rux-icon-waves.entry-d7578a4fc44ba3c69c8e.js +1 -0
- data/tools/base/rux-icon-wb-auto.entry-ff75faecad92c7f44017.js +1 -0
- data/tools/base/rux-icon-wb-cloudy.entry-357aca63252df9edbcc9.js +1 -0
- data/tools/base/rux-icon-wb-incandescent.entry-f93ee79d79f146df663a.js +1 -0
- data/tools/base/rux-icon-wb-iridescent.entry-15acb30958228a096964.js +1 -0
- data/tools/base/rux-icon-wb-sunny.entry-85093962c09913276878.js +1 -0
- data/tools/base/rux-icon-wc.entry-58a0544cfe61b1bef0d9.js +1 -0
- data/tools/base/rux-icon-web-asset.entry-7dd98db8364da1d88193.js +1 -0
- data/tools/base/rux-icon-web.entry-f8672ebaaff9533af49f.js +1 -0
- data/tools/base/rux-icon-weekend.entry-7f7f073d6127e0f14be1.js +1 -0
- data/tools/base/rux-icon-whatshot.entry-a20816fd8eb8b699d9eb.js +1 -0
- data/tools/base/rux-icon-where-to-vote.entry-c970c1dae669a598ff00.js +1 -0
- data/tools/base/rux-icon-widgets.entry-a1e1c928783eac579fc8.js +1 -0
- data/tools/base/rux-icon-wifi-lock.entry-52ea2b54203a51488dd8.js +1 -0
- data/tools/base/rux-icon-wifi-off.entry-64632752a52fdac674e4.js +1 -0
- data/tools/base/rux-icon-wifi-tethering.entry-87af7887fec47e4180c1.js +1 -0
- data/tools/base/rux-icon-wifi.entry-3d62a718fa62b042b0e9.js +1 -0
- data/tools/base/rux-icon-work-off.entry-249f17de97fd9a6e7fe2.js +1 -0
- data/tools/base/rux-icon-work-outline.entry-efd5f2ce193fe0c79874.js +1 -0
- data/tools/base/rux-icon-work.entry-c089e0dc30ac53d0f19a.js +1 -0
- data/tools/base/rux-icon-wrap-text.entry-23ca2c362d6a83df46e8.js +1 -0
- data/tools/base/rux-icon-youtube-searched-for.entry-9e29f1ab1cb3ac23500d.js +1 -0
- data/tools/base/rux-icon-zoom-in-map.entry-34263a86e0b78477921f.js +1 -0
- data/tools/base/rux-icon-zoom-in.entry-eb04a04082caa8777c8b.js +1 -0
- data/tools/base/rux-icon-zoom-out-map.entry-4c404bf171ab116e847b.js +1 -0
- data/tools/base/rux-icon-zoom-out.entry-e26b097dbeb4a76e0e9d.js +1 -0
- data/tools/base/rux-icon.entry-ceae59dd081a83787e8c.js +1 -0
- data/tools/base/rux-indeterminate-progress.entry-112f529c90ad7d96aadf.js +10 -0
- data/tools/base/rux-log.entry-954b62cde09b33be21fb.js +1 -0
- data/tools/base/rux-menu-item-divider.entry-5a28c999cb8900e0482b.js +1 -0
- data/tools/base/rux-menu-item.entry-a0d83071ce8bd14ce95a.js +1 -0
- data/tools/base/rux-menu.entry-ba59160148bd2abc5a52.js +1 -0
- data/tools/base/rux-monitoring-icon.entry-c9d5377c385502073694.js +1 -0
- data/tools/base/rux-monitoring-progress-icon.entry-695107d728b0e15efce1.js +1 -0
- data/tools/base/rux-notification.entry-88f526cd506f9601fcd0.js +5 -0
- data/tools/base/rux-option-group.entry-28273d1d8c75e95bace6.js +1 -0
- data/tools/base/rux-option.entry-ce94cfc5c4b688b5347c.js +1 -0
- data/tools/base/rux-pop-up.entry-48a5fedd72f91530037b.js +1 -0
- data/tools/base/rux-progress.entry-187ea5f89c256965c035.js +1 -0
- data/tools/base/rux-push-button.entry-1cde3a0bfd42c701287b.js +1 -0
- data/tools/base/rux-radio-group.entry-6c88ffa6b3ff64aeb6da.js +1 -0
- data/tools/base/rux-radio.entry-6816d6f629d326ab2622.js +1 -0
- data/tools/base/rux-ruler.entry-b09a3a7ec71b2e53e560.js +1 -0
- data/tools/base/rux-segmented-button.entry-4801ee24cd951f95221e.js +1 -0
- data/tools/base/rux-select.entry-acfddc868090d6571c5f.js +1 -0
- data/tools/base/rux-slider.entry-3133d56ef9046fdbb56a.js +1 -0
- data/tools/base/rux-status.entry-dba5e2ca7321baa47cbf.js +1 -0
- data/tools/base/rux-switch.entry-65528eb8ede46d3a59c5.js +1 -0
- data/tools/base/rux-tab-panel.entry-c77e333e0935997ef139.js +1 -0
- data/tools/base/rux-tab-panels.entry-8b6c04e314a10dfa5e2d.js +1 -0
- data/tools/base/rux-tab.entry-bc958d08d367b52ad59a.js +1 -0
- data/tools/base/rux-tabs.entry-4b36b25953a46cc15322.js +1 -0
- data/tools/base/rux-tag.entry-6f1a9aee09c831d8663f.js +1 -0
- data/tools/base/rux-textarea.entry-b5397c911bf31b31dad2.js +1 -0
- data/tools/base/rux-time-region.entry-3e736ed1db5f297e1e10.js +1 -0
- data/tools/base/rux-timeline.entry-8c253a1f26b089df9b20.js +1 -0
- data/tools/base/rux-toast-stack.entry-18a8670007108798eb85.js +1 -0
- data/tools/base/rux-toast.entry-e30c290324c8a67111d8.js +1 -0
- data/tools/base/rux-tooltip.entry-978ae843d51582530365.js +1 -0
- data/tools/base/rux-track.entry-41caa32919ddce316bdc.js +1 -0
- data/tools/base/rux-tree-node.entry-b358e97ee5a582c26a28.js +1 -0
- data/tools/base/rux-tree.entry-3364e270b582a9bc372f.js +1 -0
- data/tools/base/utils-ef146867-e995a405b70e42b76047.js +1 -0
- metadata +1195 -29
- data/tools/base/169.openc3-tool-base.js +0 -3
- data/tools/base/169.openc3-tool-base.js.LICENSE.txt +0 -11
- data/tools/base/169.openc3-tool-base.js.map +0 -1
- data/tools/base/51.openc3-tool-base.js +0 -2
- data/tools/base/51.openc3-tool-base.js.map +0 -1
- data/tools/base/772bd60446e0b68b2dcb.png +0 -0
- data/tools/base/91e6b78a8fe72c6a5cc5.png +0 -0
- data/tools/base/ccbf309d19c2c9fc40f7.png +0 -0
- data/tools/base/css/vuetify-2.7.1.min.css +0 -9
- data/tools/base/icons/astro.svg +0 -83
- data/tools/base/js/import-map-overrides-3.1.1.min.js +0 -1
- data/tools/base/js/import-map-overrides-3.1.1.min.js.map +0 -1
- data/tools/base/js/regenerator-runtime-0.14.1.min.js +0 -1
- data/tools/base/js/single-spa-5.9.5.min.js +0 -1
- data/tools/base/js/single-spa-5.9.5.min.js.map +0 -1
- data/tools/base/js/systemjs-6.15.1.min.js.LICENSE.txt +0 -3
- data/tools/base/js/vue-2.7.16.min.js +0 -2
- data/tools/base/js/vue-2.7.16.min.js.LICENSE.txt +0 -5
- data/tools/base/js/vue-router-3.5.4.min.js +0 -2
- data/tools/base/js/vue-router-3.5.4.min.js.LICENSE.txt +0 -5
- data/tools/base/js/vuetify-2.7.1.min.js +0 -2
- data/tools/base/js/vuetify-2.7.1.min.js.LICENSE.txt +0 -5
- data/tools/base/js/vuex-3.6.2.min.js +0 -2
- data/tools/base/js/vuex-3.6.2.min.js.LICENSE.txt +0 -5
- data/tools/base/openc3-tool-base.js +0 -2
- data/tools/base/openc3-tool-base.js.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"openc3-tool-base.js","mappings":"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","sources":["webpack://tool-base/webpack/runtime/load script","webpack://tool-base/./node_modules/@stencil/core/internal/client/ lazy ^\\.\\/.*\\.entry\\.js.*$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","webpack://tool-base/../packages/openc3-tool-common/src/services/api.js","webpack://tool-base/../packages/openc3-tool-common/src/services/axios.js","webpack://tool-base/../packages/openc3-tool-common/src/assets/stylesheets/layout/layout.scss","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/astro-web-components/astro-web-components.css","webpack://tool-base/../packages/openc3-tool-common/src/components/UpgradeToEnterpriseDialog.vue?bfef","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/AstroIcon.vue?5118","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppFooter.vue?e84a","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppNav.vue?63f3","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppNav.vue?5107","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ClassificationBanners.vue?cb88","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Notifications.vue?c20c","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/UserMenu.vue?3ed1","webpack://tool-base/./node_modules/css-loader/dist/runtime/api.js","webpack://tool-base/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://tool-base/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://tool-base/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://tool-base/./node_modules/systemjs-webpack-interop/auto-public-path/auto-public-path.js","webpack://tool-base/./node_modules/systemjs-webpack-interop/public-path.js","webpack://tool-base/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://tool-base/../packages/openc3-tool-common/src/assets/stylesheets/layout/layout.scss?743b","webpack://tool-base/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://tool-base/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://tool-base/external system \"single-spa\"","webpack://tool-base/external system \"vue\"","webpack://tool-base/external system \"vue-router\"","webpack://tool-base/external system \"vuetify\"","webpack://tool-base/external system \"vuex\"","webpack://tool-base/../node_modules/axios/lib/helpers/bind.js","webpack://tool-base/../node_modules/axios/lib/utils.js","webpack://tool-base/../node_modules/axios/lib/core/AxiosError.js","webpack://tool-base/../node_modules/axios/lib/helpers/toFormData.js","webpack://tool-base/../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://tool-base/../node_modules/axios/lib/helpers/buildURL.js","webpack://tool-base/../node_modules/axios/lib/core/InterceptorManager.js","webpack://tool-base/../node_modules/axios/lib/defaults/transitional.js","webpack://tool-base/../node_modules/axios/lib/platform/browser/index.js","webpack://tool-base/../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://tool-base/../node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://tool-base/../node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://tool-base/../node_modules/axios/lib/platform/common/utils.js","webpack://tool-base/../node_modules/axios/lib/platform/index.js","webpack://tool-base/../node_modules/axios/lib/helpers/formDataToJSON.js","webpack://tool-base/../node_modules/axios/lib/defaults/index.js","webpack://tool-base/../node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://tool-base/../node_modules/axios/lib/helpers/parseHeaders.js","webpack://tool-base/../node_modules/axios/lib/core/AxiosHeaders.js","webpack://tool-base/../node_modules/axios/lib/core/transformData.js","webpack://tool-base/../node_modules/axios/lib/cancel/isCancel.js","webpack://tool-base/../node_modules/axios/lib/cancel/CanceledError.js","webpack://tool-base/../node_modules/axios/lib/core/settle.js","webpack://tool-base/../node_modules/axios/lib/helpers/speedometer.js","webpack://tool-base/../node_modules/axios/lib/helpers/progressEventReducer.js","webpack://tool-base/../node_modules/axios/lib/helpers/throttle.js","webpack://tool-base/../node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://tool-base/../node_modules/axios/lib/helpers/cookies.js","webpack://tool-base/../node_modules/axios/lib/core/buildFullPath.js","webpack://tool-base/../node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://tool-base/../node_modules/axios/lib/helpers/combineURLs.js","webpack://tool-base/../node_modules/axios/lib/core/mergeConfig.js","webpack://tool-base/../node_modules/axios/lib/helpers/resolveConfig.js","webpack://tool-base/../node_modules/axios/lib/adapters/xhr.js","webpack://tool-base/../node_modules/axios/lib/helpers/parseProtocol.js","webpack://tool-base/../node_modules/axios/lib/helpers/composeSignals.js","webpack://tool-base/../node_modules/axios/lib/helpers/trackStream.js","webpack://tool-base/../node_modules/axios/lib/adapters/fetch.js","webpack://tool-base/../node_modules/axios/lib/adapters/adapters.js","webpack://tool-base/../node_modules/axios/lib/helpers/null.js","webpack://tool-base/../node_modules/axios/lib/core/dispatchRequest.js","webpack://tool-base/../node_modules/axios/lib/env/data.js","webpack://tool-base/../node_modules/axios/lib/helpers/validator.js","webpack://tool-base/../node_modules/axios/lib/core/Axios.js","webpack://tool-base/../node_modules/axios/lib/cancel/CancelToken.js","webpack://tool-base/../node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://tool-base/../node_modules/axios/lib/axios.js","webpack://tool-base/../node_modules/axios/lib/helpers/spread.js","webpack://tool-base/../node_modules/axios/lib/helpers/isAxiosError.js","webpack://tool-base/webpack/bootstrap","webpack://tool-base/webpack/runtime/__system_context__","webpack://tool-base/webpack/runtime/compat get default export","webpack://tool-base/webpack/runtime/define property getters","webpack://tool-base/webpack/runtime/ensure chunk","webpack://tool-base/webpack/runtime/get javascript chunk filename","webpack://tool-base/webpack/runtime/hasOwnProperty shorthand","webpack://tool-base/webpack/runtime/make namespace object","webpack://tool-base/webpack/runtime/publicPath","webpack://tool-base/webpack/runtime/jsonp chunk loading","webpack://tool-base/webpack/runtime/nonce","webpack://tool-base/./node_modules/systemjs-webpack-interop/auto-public-path/1.js","webpack://tool-base/./src/App.vue?9dca","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppFooter.vue?f377","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ClockFooter.vue?53d5","webpack://tool-base/../node_modules/date-fns/locale/en-US/_lib/formatDistance.js","webpack://tool-base/../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","webpack://tool-base/../node_modules/date-fns/locale/en-US/_lib/formatLong.js","webpack://tool-base/../node_modules/date-fns/locale/en-US/_lib/formatRelative.js","webpack://tool-base/../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","webpack://tool-base/../node_modules/date-fns/locale/en-US/_lib/localize.js","webpack://tool-base/../node_modules/date-fns/locale/_lib/buildMatchFn.js","webpack://tool-base/../node_modules/date-fns/locale/en-US/_lib/match.js","webpack://tool-base/../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","webpack://tool-base/../node_modules/date-fns/locale/en-US.js","webpack://tool-base/../node_modules/date-fns/_lib/defaultOptions.js","webpack://tool-base/../node_modules/date-fns/constants.js","webpack://tool-base/../node_modules/date-fns/constructFrom.js","webpack://tool-base/../node_modules/date-fns/toDate.js","webpack://tool-base/../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","webpack://tool-base/../node_modules/date-fns/_lib/normalizeDates.js","webpack://tool-base/../node_modules/date-fns/startOfDay.js","webpack://tool-base/../node_modules/date-fns/getDayOfYear.js","webpack://tool-base/../node_modules/date-fns/differenceInCalendarDays.js","webpack://tool-base/../node_modules/date-fns/startOfYear.js","webpack://tool-base/../node_modules/date-fns/startOfWeek.js","webpack://tool-base/../node_modules/date-fns/startOfISOWeek.js","webpack://tool-base/../node_modules/date-fns/getISOWeekYear.js","webpack://tool-base/../node_modules/date-fns/getISOWeek.js","webpack://tool-base/../node_modules/date-fns/startOfISOWeekYear.js","webpack://tool-base/../node_modules/date-fns/getWeekYear.js","webpack://tool-base/../node_modules/date-fns/getWeek.js","webpack://tool-base/../node_modules/date-fns/startOfWeekYear.js","webpack://tool-base/../node_modules/date-fns/_lib/addLeadingZeros.js","webpack://tool-base/../node_modules/date-fns/_lib/format/lightFormatters.js","webpack://tool-base/../node_modules/date-fns/_lib/format/formatters.js","webpack://tool-base/../node_modules/date-fns/_lib/format/longFormatters.js","webpack://tool-base/../node_modules/date-fns/_lib/protectedTokens.js","webpack://tool-base/../node_modules/date-fns/isValid.js","webpack://tool-base/../node_modules/date-fns/isDate.js","webpack://tool-base/../node_modules/date-fns/format.js","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ClockFooter.vue?34de","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ClockFooter.vue","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ClockFooter.vue?61eb","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://tool-base/../packages/openc3-tool-common/src/services/openc3-api.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://tool-base/../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://tool-base/../packages/openc3-tool-common/src/components/UpgradeToEnterpriseDialog.vue?5c92","webpack://tool-base/../packages/openc3-tool-common/src/components/UpgradeToEnterpriseDialog.vue?92b6","webpack://tool-base/../packages/openc3-tool-common/src/components/UpgradeToEnterpriseDialog.vue","webpack://tool-base/../packages/openc3-tool-common/src/components/UpgradeToEnterpriseDialog.vue?09e2","webpack://tool-base/../packages/openc3-tool-common/src/components/UpgradeToEnterpriseDialog.vue?b8b6","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppFooter.vue?d240","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppFooter.vue","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppFooter.vue?fdce","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppFooter.vue?c5a1","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppNav.vue?be73","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ScopeSelector.vue?5ac3","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ScopeSelector.vue","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ScopeSelector.vue?b788","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ScopeSelector.vue?8317","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Notifications.vue?83ba","webpack://tool-base/../node_modules/date-fns/compareAsc.js","webpack://tool-base/../node_modules/date-fns/isLastDayOfMonth.js","webpack://tool-base/../node_modules/date-fns/endOfDay.js","webpack://tool-base/../node_modules/date-fns/endOfMonth.js","webpack://tool-base/../node_modules/date-fns/differenceInMonths.js","webpack://tool-base/../node_modules/date-fns/differenceInCalendarMonths.js","webpack://tool-base/../node_modules/date-fns/differenceInSeconds.js","webpack://tool-base/../node_modules/date-fns/differenceInMilliseconds.js","webpack://tool-base/../node_modules/date-fns/_lib/getRoundingMethod.js","webpack://tool-base/../node_modules/date-fns/formatDistanceToNow.js","webpack://tool-base/../node_modules/date-fns/formatDistance.js","webpack://tool-base/../node_modules/date-fns/constructNow.js","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/AstroIcon.vue?892c","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/CosmosRuxIcon.vue?a7f3","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/CosmosRuxIcon.vue","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/CosmosRuxIcon.vue?806f","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/CosmosRuxIcon.vue?cfb4","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/AstroIcon.vue?acc1","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/AstroIcon.vue","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/AstroIcon.vue?3c27","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/AstroIcon.vue?97f9","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/AstroStatusIndicator.vue?8f08","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/AstroStatusIndicator.vue?6e05","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/AstroStatusIndicator.vue","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/AstroStatusIndicator.vue?c50f","webpack://tool-base/../packages/openc3-tool-common/src/components/icons/index.js","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/util/AstroStatus.js","webpack://tool-base/../node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js","webpack://tool-base/../packages/openc3-tool-common/src/services/cable.js","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Notifications.vue","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Notifications.vue?7f57","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Notifications.vue?35f7","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/Notifications.vue?68ea","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/UserMenu.vue?9364","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/UserMenu.vue","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/UserMenu.vue?6931","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/UserMenu.vue?2ffc","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/UserMenu.vue?4315","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppNav.vue?fe83","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppNav.vue","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppNav.vue?4ede","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppNav.vue?ee4e","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/AppNav.vue?e59f","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/TimeCheck.vue?054f","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/TimeCheck.vue","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/TimeCheck.vue?bb40","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/TimeCheck.vue?c676","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ClassificationBanners.vue?2259","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ClassificationBanners.vue","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ClassificationBanners.vue?e925","webpack://tool-base/../packages/openc3-tool-common/src/tools/base/components/ClassificationBanners.vue?09ba","webpack://tool-base/src/App.vue","webpack://tool-base/./src/App.vue?b39b","webpack://tool-base/./src/App.vue","webpack://tool-base/./src/router.js","webpack://tool-base/../packages/openc3-tool-common/src/plugins/store.js","webpack://tool-base/./node_modules/@stencil/core/internal/app-data/index.js","webpack://tool-base/./node_modules/@stencil/core/internal/client/index.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/index2.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/index3.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-clock.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon2.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-apps.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-notifications.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-warning.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-person.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/MonitoringLabel.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-status2.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-monitoring-icon.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-status.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-progress.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/astro-web-components/astro-web-components.css?3f87","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-altitude.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-antenna.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-antenna-off.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-antenna-receive.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-antenna-transmit.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-equipment.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-mission.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-netcom.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-payload.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-processor.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-processor-alt.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-propulsion-power.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-satellite-off.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-satellite-receive.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-satellite-transmit.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-solar.js","webpack://tool-base/./node_modules/@astrouxds/astro-web-components/dist/components/rux-icon-thermal.js","webpack://tool-base/./src/plugins/vuetify.js","webpack://tool-base/./src/openc3-tool-base.js"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"tool-base:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 199;\nmodule.exports = webpackEmptyAsyncContext;","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport axios from './axios.js'\n\nconst request = async function (\n method,\n url,\n {\n data,\n params = {},\n headers,\n noAuth = false,\n noScope = false,\n onUploadProgress = false,\n } = {}\n) {\n if (!noAuth) {\n try {\n let refreshed = await OpenC3Auth.updateToken(\n OpenC3Auth.defaultMinValidity\n )\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n } catch (error) {\n OpenC3Auth.login()\n }\n headers['Authorization'] = localStorage.openc3Token\n }\n // Everything from the front-end is manual by default\n // The various api methods decide whether to pass the manual\n // flag to the authorize routine\n headers['manual'] = true\n if (!noScope && !params['scope']) {\n params['scope'] = window.openc3Scope\n }\n return axios({\n method,\n url,\n data,\n params,\n headers,\n onUploadProgress,\n })\n}\n\nconst acceptOnlyDefaultHeaders = {\n Accept: 'application/json',\n}\n\nconst fullDefaultHeaders = {\n ...acceptOnlyDefaultHeaders,\n 'Content-Type': 'application/json',\n}\n\nexport default {\n get: function (\n path,\n {\n params,\n headers = acceptOnlyDefaultHeaders,\n noScope,\n noAuth,\n onUploadProgress,\n } = {}\n ) {\n return request('get', path, {\n params,\n headers,\n noScope,\n noAuth,\n onUploadProgress,\n })\n },\n\n put: function (\n path,\n {\n data,\n params,\n headers = fullDefaultHeaders,\n noScope,\n noAuth,\n onUploadProgress,\n } = {}\n ) {\n return request('put', path, {\n data,\n params,\n headers,\n noScope,\n noAuth,\n onUploadProgress,\n })\n },\n\n post: function (\n path,\n {\n data,\n params,\n headers = fullDefaultHeaders,\n noScope,\n noAuth,\n onUploadProgress,\n } = {}\n ) {\n return request('post', path, {\n data,\n params,\n headers,\n noScope,\n noAuth,\n onUploadProgress,\n })\n },\n\n delete: function (\n path,\n {\n params,\n headers = acceptOnlyDefaultHeaders,\n noScope,\n noAuth,\n onUploadProgress,\n } = {}\n ) {\n return request('delete', path, {\n params,\n headers,\n noScope,\n noAuth,\n onUploadProgress,\n })\n },\n}\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport axios from 'axios'\nimport Vue from 'vue'\n\nconst vueInstance = new Vue()\n\nconst axiosInstance = axios.create({\n baseURL: location.origin,\n timeout: 60000,\n params: {},\n})\n\naxiosInstance.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n if (error.response.status === 401) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity, true).then(\n function (refreshed) {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n },\n )\n }\n // Individual tools can set 'Ignore-Errors' to an error code\n // they potentially expect, e.g. '500', in which case we ignore it\n // For example in CommandSender.vue:\n // obs = this.api.cmd(targetName, commandName, paramList, {\n // headers: {\n // 'Ignore-Errors': '404',\n // },\n // })\n if (\n error.response.config.headers['Ignore-Errors'] &&\n error.response.config.headers['Ignore-Errors'].includes(\n error.response.status.toString(),\n )\n ) {\n return Promise.reject(error)\n }\n let body = `HTTP ${error.response.status} - `\n if (error.response?.statusText) {\n body += `${error.response.statusText} `\n }\n if (error.response?.config?.data) {\n body += `${error.response.config.data} `\n }\n if (error.response?.data?.message) {\n body += `${error.response.data.message}`\n } else if (error.response?.data?.exception) {\n body += `${error.response.data.exception}`\n } else if (error.response?.data?.error?.message) {\n if (error.response.data.error.class) {\n body += `${error.response.data.error.class} `\n }\n body += `${error.response.data.error.message}`\n } else {\n body += `${error.response?.data}`\n }\n if (vueInstance.$notify) {\n vueInstance.$notify.serious({\n title: 'Network error',\n body,\n })\n }\n throw error\n } else {\n throw error\n }\n },\n)\n\nexport default axiosInstance\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.splash-screen{width:100%;height:100%;position:fixed;background:#001724;background:-moz-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 23, 36)));background:-webkit-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-o-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-ms-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:linear-gradient(to right, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\$left, endColorstr=\\$right,GradientType=1 )}.splash-screen .splash-container{width:40px;height:40px;margin:0px auto;position:absolute;left:50%;top:50%;margin-left:-20px;margin-top:-20px}.splash-screen .splash-double-bounce1,.splash-screen .splash-double-bounce2{width:100%;height:100%;border-radius:50%;background-color:#fff;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:splash-bounce 2s infinite ease-in-out;animation:splash-bounce 2s infinite ease-in-out}.splash-screen .splash-double-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes splash-bounce{0%,100%{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes splash-bounce{0%,100%{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}*{box-sizing:border-box}html{height:100%}body{font-family:\"Open Sans\",\"Helvetica Neue\",sans-serif;font-size:14px;color:#333;margin:0;padding:0;min-height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none}.layout-wrapper{padding:0}.v-application--wrap{min-height:0 !important}.layout-topbar{position:fixed;height:80px;padding:.7em 1.5em 0em 1.5em;color:#fff;z-index:999;right:0;background:#001724;background:-moz-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 23, 36)));background:-webkit-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-o-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:-ms-linear-gradient(left, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);background:linear-gradient(to right, rgb(0, 23, 36) 0%, rgb(0, 23, 36) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\\$left, endColorstr=\\$right,GradientType=1 );-moz-transition:left .2s;-o-transition:left .2s;-webkit-transition:left .2s;transition:left .2s}.layout-topbar:after{content:\"\";display:table;clear:both}.layout-topbar .layout-topbar-icons{float:right;display:block;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-duration:.5s}.layout-topbar .layout-topbar-icons button{position:relative;color:#fff;margin-left:20px;display:inline-block;text-decoration:none;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-topbar .layout-topbar-icons button:hover{color:#c3e8fb}.layout-topbar .layout-topbar-icons button:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2em #8dcdff}.layout-topbar .layout-topbar-icons button span.layout-topbar-icon{font-size:2em}.layout-topbar .layout-topbar-icons button span.layout-topbar-item-text{font-size:20px;display:none}.layout-topbar .layout-topbar-icons button span.layout-topbar-badge{position:absolute;font-size:10px;right:-5px;top:-5px;width:16px;height:16px;text-align:center;line-height:16px;color:#fff;background-color:#ef6262;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.layout-topbar .layout-topbar-icons .layout-topbar-search{padding:0;position:relative;display:inline-block;top:-4px}.layout-topbar .layout-topbar-icons .layout-topbar-search input{display:inline-block;border:0 none;font-size:14px;background:rgba(0,0,0,0);border-bottom:2px solid #fff;outline:0 none;-webkit-box-shadow:none;box-shadow:none;color:#fff;width:100px;padding:1px 20px 1px 1px;margin:0px;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.layout-topbar .layout-topbar-icons .layout-topbar-search input::-webkit-input-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input:-moz-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input::-moz-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search input:-ms-input-placeholder{color:#fff;opacity:.7;-moz-transition:opacity .2s;-o-transition:opacity .2s;-webkit-transition:opacity .2s;transition:opacity .2s}.layout-topbar .layout-topbar-icons .layout-topbar-search .layout-topbar-search-icon{font-size:18px;position:absolute;top:-1px;right:0px}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input{border-bottom-color:#c3e8fb}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input::-webkit-input-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input:-moz-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input::-moz-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover input:-ms-input-placeholder{opacity:1}.layout-topbar .layout-topbar-icons .layout-topbar-search:hover .layout-topbar-search-icon{color:#c3e8fb}.layout-topbar .layout-menu-button{cursor:pointer;display:inline-block;text-decoration:none;color:#fff;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-topbar .layout-menu-button span{font-size:2em}.layout-topbar .layout-menu-button:hover{color:#c3e8fb}.layout-topbar button{cursor:pointer}.layout-sidebar{position:fixed;width:250px;height:100%;z-index:999;overflow-y:auto;user-select:none;-moz-user-select:none;-webkit-user-select:none;-moz-transition:transform .2s;-o-transition:transform .2s;-webkit-transition:transform .2s;transition:transform .2s;-webkit-box-shadow:0 0 6px 0 rgba(0,0,0,.16);-moz-box-shadow:0 0 6px 0 rgba(0,0,0,.16);box-shadow:0 0 6px 0 rgba(0,0,0,.16)}.layout-sidebar.layout-sidebar-enter,.layout-sidebar.layout-sidebar-leave-to{transform:translateX(-100%)}.layout-sidebar .layout-logo{text-align:center;margin-top:24px}.layout-sidebar .menuitem-badge{display:inline-block;margin-left:4px;font-size:10px;width:16px;height:16px;line-height:16px;text-align:center;color:#fff;background-color:#007be5;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.layout-profile{text-align:center;padding:10px 0 10px 0}.layout-profile img{width:56px;margin:10px}.layout-profile .layout-profile-link{cursor:pointer;display:inline-block;margin-bottom:.75em;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-profile .layout-profile-link i{display:inline-block;font-size:16px;vertical-align:middle}.layout-profile ul{list-style-type:none;padding:0;margin:0}.layout-profile ul li button{width:100%;padding:1em;border:0 none;border-radius:0;cursor:pointer;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-profile ul li button:hover{color:#0388e5}.layout-profile ul li button span{margin-left:.25em;vertical-align:middle}.layout-profile ul li button i{vertical-align:middle}.layout-profile ul.layout-submenu-wrapper-enter,.layout-profile ul.layout-submenu-wrapper-leave-to{max-height:0}.layout-profile ul.layout-submenu-wrapper-enter-to,.layout-profile ul.layout-submenu-wrapper-leave{max-height:1000px}.layout-profile ul.layout-submenu-wrapper-leave-active{overflow:hidden;transition:max-height .45s cubic-bezier(0, 1, 0, 1)}.layout-profile ul.layout-submenu-wrapper-enter-active{overflow:hidden;transition:max-height 1s ease-in-out}.layout-sidebar-light .layout-profile .layout-profile-link{color:#232428}.layout-sidebar-light .layout-profile .layout-profile-link:hover{color:#0388e5}.layout-sidebar-light .layout-profile ul{background-color:#fff}.layout-sidebar-light .layout-profile ul li button{color:#232428}.layout-sidebar-light .layout-profile ul li button:hover{color:#0388e5}.layout-sidebar-dark .layout-profile .layout-profile-link{color:#fff}.layout-sidebar-dark .layout-profile .layout-profile-link:hover{color:#005a8f}.layout-sidebar-dark .layout-profile ul{background-color:#002439}.layout-sidebar-dark .layout-profile ul li button{color:#fff}.layout-sidebar-dark .layout-profile ul li button:hover{color:#005a8f}.layout-menu-container{padding-bottom:120px}.layout-menu{list-style-type:none;margin:0;padding:0}.layout-menu li a{cursor:pointer;position:relative;text-decoration:none;display:block;-moz-transition:color .2s;-o-transition:color .2s;-webkit-transition:color .2s;transition:color .2s}.layout-menu li a i{font-size:18px;vertical-align:middle}.layout-menu li a span{margin-left:.25em;vertical-align:middle;line-height:18px;display:inline-block}.layout-menu li a .menuitem-toggle-icon{position:absolute;top:50%;right:1em;margin-top:-9px}.layout-menu li a.router-link-active{font-weight:700}.layout-menu li a:focus{outline:0 none;outline-offset:0;box-shadow:inset 0 0 0 .2em #8dcdff}.layout-menu li.active-menuitem>a .menuitem-toggle-icon:before{content:\"\"}.layout-menu>li>a{padding:1em}.layout-menu>li>a span{font-size:14px}.layout-menu>li:last-child>a{border-bottom:1px solid rgba(207,211,224,.6)}.layout-menu>li ul{list-style-type:none;margin:0;padding:0;padding-left:1.5em}.layout-menu>li ul li a{cursor:pointer;padding:.75em 1em;border-top:0 none}.layout-menu>li ul li a span{font-size:13px}.layout-menu>li ul li:last-child{padding-bottom:1em}.layout-menu>li ul.layout-submenu-wrapper-enter,.layout-menu>li ul.layout-submenu-wrapper-leave-to{max-height:0}.layout-menu>li ul.layout-submenu-wrapper-enter-to,.layout-menu>li ul.layout-submenu-wrapper-leave{max-height:1000px}.layout-menu>li ul.layout-submenu-wrapper-leave-active{overflow:hidden;transition:max-height .45s cubic-bezier(0, 1, 0, 1)}.layout-menu>li ul.layout-submenu-wrapper-enter-active{overflow:hidden;transition:max-height 1s ease-in-out}.layout-sidebar-light{background:#f3f4f9;background:-moz-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f3f4f9), color-stop(100%, #d7dbe8));background:-webkit-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-o-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:-ms-linear-gradient(top, #f3f4f9 0%, #d7dbe8 100%);background:linear-gradient(to bottom, #f3f4f9 0%, #d7dbe8 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\"#ffffff\", endColorstr=\"#000000\",GradientType=0 )}.layout-sidebar-light .layout-menu>li>a{border-top:1px solid rgba(207,211,224,.6)}.layout-sidebar-light .layout-menu>li:last-child>a{border-bottom:1px solid rgba(207,211,224,.6)}.layout-sidebar-light .layout-menu>li ul{background-color:#fff}.layout-sidebar-light .layout-menu li a{color:#232428}.layout-sidebar-light .layout-menu li a.router-link-active{color:#4dacff}.layout-sidebar-light .layout-menu li a:hover{color:#0388e5}.layout-sidebar-light .layout-menu li.active-menuitem>a{background-color:#fff;color:#0388e5}.layout-sidebar-dark{background:#001724;background:-moz-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgb(0, 23, 36)), color-stop(100%, rgb(0, 54, 86)));background:-webkit-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-o-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:-ms-linear-gradient(top, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);background:linear-gradient(to bottom, rgb(0, 23, 36) 0%, rgb(0, 54, 86) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=\"#ffffff\", endColorstr=\"#000000\",GradientType=0 )}.layout-sidebar-dark .layout-menu>li>a{border-top:1px solid rgba(52,56,65,.6)}.layout-sidebar-dark .layout-menu>li:last-child>a{border-bottom:1px solid rgba(52,56,65,.6)}.layout-sidebar-dark .layout-menu>li ul{background-color:#002439}.layout-sidebar-dark .layout-menu li a{color:#fff}.layout-sidebar-dark .layout-menu li a.router-link-active{color:#4dacff}.layout-sidebar-dark .layout-menu li a:hover{color:#005a8f}.layout-sidebar-dark .layout-menu li.active-menuitem>a{background-color:#002439;color:#4dacff}.layout-main{-moz-transition:margin-left .2s;-o-transition:margin-left .2s;-webkit-transition:margin-left .2s;transition:margin-left .2s;padding:96px 16px 16px 16px}.layout-footer{-moz-transition:margin-left .2s;-o-transition:margin-left .2s;-webkit-transition:margin-left .2s;transition:margin-left .2s;background-color:#182635;padding:1em 2em}.layout-footer img{vertical-align:middle}.layout-footer .footer-text{vertical-align:middle}@media(min-width: 1025px){.layout-wrapper.layout-overlay .layout-topbar{left:0}.layout-wrapper.layout-overlay .layout-main,.layout-wrapper.layout-overlay .layout-footer{margin-left:0}.layout-wrapper.layout-overlay.layout-overlay-sidebar-active .layout-sidebar{left:0}.layout-wrapper.layout-overlay.layout-overlay-sidebar-active .layout-topbar{left:250px}.layout-wrapper.layout-static .layout-topbar{left:250px}.layout-wrapper.layout-static .layout-main,.layout-wrapper.layout-static .layout-footer{margin-left:250px}.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-topbar{left:0}.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-main,.layout-wrapper.layout-static.layout-static-sidebar-inactive .layout-footer{margin-left:0}}@media(max-width: 1024px){.layout-wrapper .layout-topbar{left:0}.layout-wrapper .layout-main,.layout-wrapper .layout-footer{margin-left:0}.layout-wrapper .layout-sidebar{-moz-transition:left .2s;-o-transition:left .2s;-webkit-transition:left .2s;transition:left .2s;left:-250px;margin-top:50px}.layout-wrapper .layout-mask{display:none;position:fixed;width:100%;height:100%;top:50px;left:0;z-index:998;background-color:#424242;opacity:.7;filter:alpha(opacity=70)}.layout-wrapper.layout-mobile-sidebar-active .layout-sidebar{left:0}.layout-wrapper.layout-mobile-sidebar-active .layout-mask{display:block}.body-overflow-hidden{overflow:hidden}}h1{font-weight:normal;margin:0;font-size:24px}h2{font-size:20px;font-weight:normal;margin:0}.card{background-color:#fff;padding:1em;margin-bottom:16px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.card.card-w-title{padding-bottom:2em}.card h1{margin:1em 0 .5em 0;border-bottom:1px solid #d5d5d5;padding:.1em;font-size:24px}.card h1:first-child{margin:0 0 .5em 0}.docs pre[class*=language-]{padding:0 !important;background:rgba(0,0,0,0);overflow:visible}.docs pre[class*=language-]>code{border-left:0 none;box-shadow:none;font-size:14px}.dashboard .summary{position:relative}.dashboard .summary .title{font-size:20px}.dashboard .summary .detail{color:#707070;display:block;margin-top:10px}.dashboard .summary .count{color:#fff;position:absolute;top:10px;right:10px;font-size:24px;padding:7px 14px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.dashboard .summary .count.visitors{background-color:#20d077}.dashboard .summary .count.purchases{background-color:#f9c851}.dashboard .summary .count.revenue{background-color:#007be5}.dashboard .highlight-box{height:100px}.dashboard .highlight-box:after{content:\"\";display:table;clear:both}.dashboard .highlight-box .initials{height:100%;float:left;width:50%;text-align:center;padding:1em}.dashboard .highlight-box .initials>span{font-size:48px}.dashboard .highlight-box .highlight-details{height:100%;background-color:#fff;float:left;width:50%;padding:1em}.dashboard .highlight-box .highlight-details i{font-size:24px;vertical-align:middle;margin-right:.25em}.dashboard .highlight-box .highlight-details .count{color:#707070;font-size:36px;display:block}.dashboard .task-list{list-style-type:none;margin:0;padding:0}.dashboard .task-list li{padding:.5em .25em;border-bottom:1px solid #e3e3e3}.dashboard .task-list li:after{content:\"\";display:table;clear:both}.dashboard .task-list .p-checkbox{vertical-align:middle;margin-right:.5em}.dashboard .task-list .task-name{vertical-align:middle}.dashboard .task-list i{float:right;font-size:24px;color:#707070}.dashboard .task-list .p-panel-content{min-height:256px}.dashboard .contact-form .p-panel-content{min-height:256px}.dashboard .contacts ul{list-style-type:none;padding:0;margin:0}.dashboard .contacts ul li{border-bottom:1px solid #e3e3e3}.dashboard .contacts ul li button{padding:9px;width:100%;box-sizing:border-box;text-decoration:none;position:relative;display:block;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:background-color .2s;-o-transition:background-color .2s;-webkit-transition:background-color .2s;transition:background-color .2s}.dashboard .contacts ul li button .name{position:absolute;right:10px;top:10px;font-size:18px}.dashboard .contacts ul li button .email{position:absolute;right:10px;top:30px;font-size:14px;color:#707070}.dashboard .contacts ul li button:hover{cursor:pointer;background-color:#eee}.dashboard .contacts ul li:last-child{border:0}.dashboard .contacts .p-panel-content{min-height:256px}.dashboard .activity-list{list-style-type:none;padding:0;margin:0}.dashboard .activity-list li{border-bottom:1px solid #e3e3e3;padding:16px 8px}.dashboard .activity-list li .count{font-size:24px;color:#fff;background-color:#007be5;font-weight:700;display:inline-block;padding:.25em .5em;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.dashboard .activity-list li:first-child{border-top:1px solid #e3e3e3}.dashboard .activity-list li:last-child{border:0}.dashboard .activity-list li .p-col-6:first-child{font-size:18px;padding:.5em 0 0 .5em}.dashboard .activity-list li .p-col-6:last-child{text-align:right;color:#707070}.openc3-green{color:#56f000 !important}.openc3-yellow{color:#fce83a !important}.openc3-red{color:#ff3838 !important}.openc3-blue{color:#2dccff !important}.openc3-purple{color:#c800c8 !important}.openc3-black{color:#000 !important}.openc3-white{color:#fff !important}.theme--dark.v-btn:not(.v-btn--outlined,.v-btn--icon,.v-btn--round,.v-btn--text){background-color:var(--button-color-background-primary-default) !important;color:var(--color-text-inverse) !important}.theme--dark.v-btn:not(.v-btn--outlined,.v-btn--icon,.v-btn--round,.v-btn--text):hover{background-color:var(--button-color-background-primary-hover) !important}.theme--dark.v-btn--outlined:not(.v-btn--icon,.v-btn--round,.v-btn--text){border-color:var(--button-color-border-primary-default) !important;color:var(--color-text-interactive-default) !important}.theme--dark.v-btn--outlined.v-btn--disabled{border-color:var(--button-color-border-primary-default) !important;color:var(--color-text-interactive-default) !important;opacity:.4 !important}.theme--dark.v-btn--outlined:not(.v-btn--icon,.v-btn--round,.v-btn--text):hover{border-color:var(--button-color-border-primary-hover) !important}.theme--dark.v-system-bar{background-color:var(--color-background-surface-header) !important}.theme--dark.v-system-bar.active{background-color:var(--color-background-surface-selected) !important}body,.theme--dark.v-application,.theme--dark.v-main,.theme--dark.v-content{background-color:var(--color-background-base-default) !important}.theme--dark.v-tabs>.v-tabs-bar .v-tab--disabled,.theme--dark.v-tabs>.v-tabs-bar .v-tab:not(.v-tab--active),.theme--dark.v-tabs>.v-tabs-bar .v-tab:not(.v-tab--active)>.v-btn,.theme--dark.v-tabs>.v-tabs-bar .v-tab:not(.v-tab--active)>.v-icon{color:var(--color-text-interactive-default) !important}.v-tab--active{background-color:var(--color-background-surface-selected) !important;color:#fff !important}.theme--dark.v-tabs .v-tab:hover{background-color:var(--color-background-surface-hover) !important}.v-card__title,.v-card__subtitle,.theme--dark.v-tab,.theme--dark.v-tabs-bar,.v-expansion-panel-header,.v-navigation-drawer,.theme--dark.v-toolbar,.theme--dark.v-date-picker-header{background-color:var(--color-background-surface-header) !important}.mdi-magnify{color:var(--color-text-interactive-default) !important}.v-stepper,.v-expansion-panel-content,.theme--dark.v-data-table,.theme--dark.v-dialog,.theme--dark.v-card,.theme--dark.v-date-picker-table,.theme--dark.v-time-picker-clock__container,.theme--dark.v-expansion-panel,.theme--dark.v-expansion-panels,.theme--dark.p-menubar{background-color:var(--color-background-surface-default) !important}.theme--dark.v-list{background-color:var(--color-background-base-default) !important}.theme--dark.v-list div:nth-child(odd) .v-list-item{background-color:var(--color-background-base-selected) !important}.theme--dark.v-list-item:hover,.theme--dark.v-treeview--hoverable .v-treeview-node__root:hover,.theme--dark.v-treeview .v-treeview-node--click>.v-treeview-node__root:hover,.theme--dark.v-data-table>.v-data-table__wrapper>table>tbody>tr:hover:not(.v-data-table__expanded__content):not(.v-data-table__empty-wrapper){background-color:var(--color-background-surface-hover) !important}.search{max-width:350px;border-color:var(--color-border-interactive-muted);background-color:var(--color-background-base-default)}.theme--dark.v-select fieldset{border:1px solid var(--color-border-interactive-muted);background-color:var(--color-background-base-default)}.theme--dark.v-select input{color:var(--color-background-interactive-default) !important}.theme--dark.v-select input:disabled{color:var(--color-background-interactive-muted) !important}.theme--dark.v-select .v-select__selections{color:var(--color-text-interactive-default) !important}.v-main{padding-top:96px !important}.v-app-bar{height:96px !important}body a:hover{text-decoration:none}.v-tab,.v-btn.v-size--default,.v-btn.v-size--large{text-transform:none;font-size:1rem}.v-card__title{font-size:1.125rem}.v-card__text,.v-data-table>.v-data-table__wrapper>table>tbody>tr>th,.v-data-table>.v-data-table__wrapper>table>tfoot>tr>th,.v-data-table>.v-data-table__wrapper>table>thead>tr>th,.v-data-table>.v-data-table__wrapper>table>tbody>tr>td,.v-data-table>.v-data-table__wrapper>table>tfoot>tr>td,.v-data-table>.v-data-table__wrapper>table>thead>tr>td{font-size:1rem}input{color-scheme:dark;caret-color:auto}.imo-modal-container input{color:#000}`, \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/layout.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_splash.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/_variables.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_mixins.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_main.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_topbar.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_sidebar.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_profile.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_menu.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_content.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_footer.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_responsive.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_utils.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/sass/_dashboard.scss\",\"webpack://./../packages/openc3-tool-common/src/assets/stylesheets/layout/_overrides.scss\"],\"names\":[],\"mappings\":\"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\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml,%3Csvg width=%2731%27 height=%2730%27 viewBox=%270 0 31 30%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M11.6875 14.6375L14.925 17.875C15.4125 18.3625 16.2 18.3625 16.6875 17.875L19.925 14.6375C20.7125 13.85 20.15 12.5 19.0375 12.5H12.5625C11.45 12.5 10.9 13.85 11.6875 14.6375Z%27 fill=%27%234DACFF%27/%3E%3C/svg%3E%0A\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"data:image/svg+xml,%3Csvg width=%2731%27 height=%2730%27 viewBox=%270 0 31 30%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M11.6875 14.6375L14.925 17.875C15.4125 18.3625 16.2 18.3625 16.6875 17.875L19.925 14.6375C20.7125 13.85 20.15 12.5 19.0375 12.5H12.5625C11.45 12.5 10.9 13.85 11.6875 14.6375Z%27 fill=%27%23005A8F%27/%3E%3C/svg%3E%0A\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.rux-body-1{font-size:1rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(1.5 / 1);letter-spacing:0.005em}.rux-body-1-bold{font-size:1rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:700;line-height:calc(1.5 / 1);letter-spacing:0.005em}.rux-body-2{font-size:0.875rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(1.25 / 0.875);letter-spacing:0.005em}.rux-body-2-bold{font-size:0.875rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:700;line-height:calc(1.25 / 0.875);letter-spacing:0.005em}.rux-body-3{font-size:0.75rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(1 / 0.75);letter-spacing:0.005em}.rux-body-3-bold{font-size:0.75rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:700;line-height:calc(1 / 0.75);letter-spacing:0.005em}.rux-control-body-1{font-size:1rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(1.25 / 1);letter-spacing:0.005em}.rux-control-body-1-bold{font-size:1rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:700;line-height:calc(1.25 / 1);letter-spacing:0.005em}.rux-heading-1{font-size:2.125rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(2.5 / 2.125);letter-spacing:0.0025em}.rux-heading-1-bold{font-size:2.125rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:700;line-height:calc(2.5 / 2.125);letter-spacing:0.0025em}.rux-heading-2{font-size:1.5rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(1.75 / 1.5);letter-spacing:0em}.rux-heading-3{font-size:1.25rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:500;line-height:calc(1.5 / 1.25);letter-spacing:0.0015em}.rux-heading-4{font-size:1.25rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:300;line-height:calc(1.5 / 1.25);letter-spacing:0.0015em}.rux-heading-5{font-size:1.125rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(1.5 / 1.125);letter-spacing:0em}.rux-heading-6{font-size:1.125rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:300;line-height:calc(1.5 / 1.125);letter-spacing:0em}.rux-display-1{font-size:3.75rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:300;line-height:calc(4.375 / 3.75);letter-spacing:-0.005em}.rux-display-2{font-size:3rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(3.5 / 3);letter-spacing:0em}.rux-monospace-1{font-size:1.75rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:500;line-height:calc(2 / 1.75);letter-spacing:0em}:where(:root){--font-control-body-1-bold-text-case:none;--font-control-body-1-bold-text-decoration:none;--font-control-body-1-bold-paragraph-spacing:0;--font-control-body-1-bold-letter-spacing:0.005em;--font-control-body-1-bold-font-size:1rem;--font-control-body-1-bold-line-height:calc(20 / 16);--font-control-body-1-bold-font-weight:700;--font-control-body-1-bold-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-control-body-1-text-case:none;--font-control-body-1-text-decoration:none;--font-control-body-1-paragraph-spacing:0;--font-control-body-1-letter-spacing:0.005em;--font-control-body-1-font-size:1rem;--font-control-body-1-line-height:calc(20 / 16);--font-control-body-1-font-weight:400;--font-control-body-1-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-display-2-text-case:none;--font-display-2-text-decoration:none;--font-display-2-paragraph-spacing:0;--font-display-2-letter-spacing:0em;--font-display-2-font-size:3rem;--font-display-2-line-height:calc(56 / 48);--font-display-2-font-weight:400;--font-display-2-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-display-1-text-case:none;--font-display-1-text-decoration:none;--font-display-1-paragraph-spacing:0;--font-display-1-letter-spacing:-0.005em;--font-display-1-font-size:3.75rem;--font-display-1-line-height:calc(70 / 60);--font-display-1-font-weight:300;--font-display-1-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-monospace-1-text-case:none;--font-monospace-1-text-decoration:none;--font-monospace-1-paragraph-spacing:0;--font-monospace-1-letter-spacing:0em;--font-monospace-1-font-size:1.75rem;--font-monospace-1-line-height:calc(32 / 28);--font-monospace-1-font-weight:500;--font-monospace-1-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-body-3-bold-text-case:none;--font-body-3-bold-text-decoration:none;--font-body-3-bold-paragraph-spacing:0;--font-body-3-bold-letter-spacing:0.005em;--font-body-3-bold-font-size:0.75rem;--font-body-3-bold-line-height:calc(16 / 12);--font-body-3-bold-font-weight:700;--font-body-3-bold-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-body-3-text-case:none;--font-body-3-text-decoration:none;--font-body-3-paragraph-spacing:0;--font-body-3-letter-spacing:0.005em;--font-body-3-font-size:0.75rem;--font-body-3-line-height:calc(16 / 12);--font-body-3-font-weight:400;--font-body-3-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-body-2-bold-text-case:none;--font-body-2-bold-text-decoration:none;--font-body-2-bold-paragraph-spacing:0;--font-body-2-bold-letter-spacing:0.005em;--font-body-2-bold-font-size:0.875rem;--font-body-2-bold-line-height:calc(20 / 14);--font-body-2-bold-font-weight:700;--font-body-2-bold-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-body-2-text-case:none;--font-body-2-text-decoration:none;--font-body-2-paragraph-spacing:0;--font-body-2-letter-spacing:0.005em;--font-body-2-font-size:0.875rem;--font-body-2-line-height:calc(20 / 14);--font-body-2-font-weight:400;--font-body-2-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-body-1-bold-text-case:none;--font-body-1-bold-text-decoration:none;--font-body-1-bold-paragraph-spacing:0;--font-body-1-bold-letter-spacing:0.005em;--font-body-1-bold-font-size:1rem;--font-body-1-bold-line-height:calc(24 / 16);--font-body-1-bold-font-weight:700;--font-body-1-bold-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-body-1-text-case:none;--font-body-1-text-decoration:none;--font-body-1-paragraph-spacing:0;--font-body-1-letter-spacing:0.005em;--font-body-1-font-size:1rem;--font-body-1-line-height:calc(24 / 16);--font-body-1-font-weight:400;--font-body-1-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-heading-6-text-case:none;--font-heading-6-text-decoration:none;--font-heading-6-paragraph-spacing:0;--font-heading-6-letter-spacing:0em;--font-heading-6-font-size:1.125rem;--font-heading-6-line-height:calc(24 / 18);--font-heading-6-font-weight:300;--font-heading-6-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-heading-5-text-case:none;--font-heading-5-text-decoration:none;--font-heading-5-paragraph-spacing:0;--font-heading-5-letter-spacing:0em;--font-heading-5-font-size:1.125rem;--font-heading-5-line-height:calc(24 / 18);--font-heading-5-font-weight:400;--font-heading-5-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-heading-4-text-case:none;--font-heading-4-text-decoration:none;--font-heading-4-paragraph-spacing:0;--font-heading-4-letter-spacing:0.0015em;--font-heading-4-font-size:1.25rem;--font-heading-4-line-height:calc(24 / 20);--font-heading-4-font-weight:300;--font-heading-4-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-heading-3-text-case:none;--font-heading-3-text-decoration:none;--font-heading-3-paragraph-spacing:0;--font-heading-3-letter-spacing:0.0015em;--font-heading-3-font-size:1.25rem;--font-heading-3-line-height:calc(24 / 20);--font-heading-3-font-weight:500;--font-heading-3-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-heading-2-text-case:none;--font-heading-2-text-decoration:none;--font-heading-2-paragraph-spacing:0;--font-heading-2-letter-spacing:0em;--font-heading-2-font-size:1.5rem;--font-heading-2-line-height:calc(28 / 24);--font-heading-2-font-weight:400;--font-heading-2-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-heading-1-bold-text-case:none;--font-heading-1-bold-text-decoration:none;--font-heading-1-bold-paragraph-spacing:0;--font-heading-1-bold-letter-spacing:0.0025em;--font-heading-1-bold-font-size:2.125rem;--font-heading-1-bold-line-height:calc(40 / 34);--font-heading-1-bold-font-weight:700;--font-heading-1-bold-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--font-heading-1-text-case:none;--font-heading-1-text-decoration:none;--font-heading-1-paragraph-spacing:0;--font-heading-1-letter-spacing:0.0025em;--font-heading-1-font-size:2.125rem;--font-heading-1-line-height:calc(40 / 34);--font-heading-1-font-weight:400;--font-heading-1-font-family:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--spacing-050:0.125rem;--spacing-025:0.0625rem;--spacing-24:6rem;--spacing-20:5rem;--spacing-16:4rem;--spacing-14:3.5rem;--spacing-12:3rem;--spacing-10:2.5rem;--spacing-8:2rem;--spacing-6:1.5rem;--spacing-4:1rem;--spacing-3:0.75rem;--spacing-2:0.5rem;--spacing-1:0.25rem;--spacing-0:0rem;--paragraph-spacing-0:0;--letter-spacing-sm:-0.005em;--letter-spacing-lg:0.0015em;--letter-spacing-base:0em;--letter-spacing-xl:0.0025em;--letter-spacing-2xl:0.005em;--font-size-6xl:3.75rem;--font-size-5xl:3rem;--font-size-4xl:2.125rem;--font-size-3xl:1.75rem;--font-size-2xl:1.5rem;--font-size-xl:1.25rem;--font-size-lg:1.125rem;--font-size-base:1rem;--font-size-sm:0.875rem;--font-size-xs:0.75rem;--font-weights-bold:700;--font-weights-medium:500;--font-weights-regular:400;--font-weights-light:300;--line-height-4xl:4.375rem;--line-height-3xl:3.5rem;--line-height-2xl:2.5rem;--line-height-xl:2rem;--line-height-lg:1.75rem;--line-height-base:1.5rem;--line-height-sm:1.25rem;--line-height-xs:1rem;--line-height-2xs:0.875rem;--font-family-sans:\"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;--radius-circle:50%;--radius-base:3px;--border-width-lg:4px;--border-width-sm:2px;--border-width-xs:1px;--border-width-none:0;--color-palette-hotorange-900:#2b1105;--color-palette-hotorange-800:#572108;--color-palette-hotorange-700:#833209;--color-palette-hotorange-600:#af420a;--color-palette-hotorange-500:#da5309;--color-palette-hotorange-400:#e27545;--color-palette-hotorange-300:#ea9875;--color-palette-hotorange-200:#f0baa3;--color-palette-hotorange-100:#f8ddd1;--color-palette-pink-900:#200227;--color-palette-pink-800:#41004d;--color-palette-pink-700:#610074;--color-palette-pink-600:#81009a;--color-palette-pink-500:#a200c1;--color-palette-pink-400:#b534ce;--color-palette-pink-300:#c76ada;--color-palette-pink-200:#da9ce7;--color-palette-pink-100:#edcef3;--color-palette-purple-900:#18152b;--color-palette-purple-800:#302c54;--color-palette-purple-700:#48417f;--color-palette-purple-600:#6058a8;--color-palette-purple-500:#786dd3;--color-palette-purple-400:#938bdb;--color-palette-purple-300:#aea8e5;--color-palette-purple-200:#c9c5ed;--color-palette-purple-100:#e4e2f7;--color-palette-teal-900:#032828;--color-palette-teal-800:#035051;--color-palette-teal-700:#00777a;--color-palette-teal-600:#009fa3;--color-palette-teal-500:#00c7cb;--color-palette-teal-400:#3ed2d6;--color-palette-teal-300:#70dde0;--color-palette-teal-200:#a1e9eb;--color-palette-teal-100:#d0f4f4;--color-palette-blue-800:#0033a0;--color-palette-violet-800:#502b85;--color-palette-cyan-900:#285766;--color-palette-cyan-800:#35798e;--color-palette-cyan-700:#20a9d5;--color-palette-cyan-600:#2dccff;--color-palette-cyan-500:#64d9ff;--color-palette-cyan-400:#5ce2ff;--color-palette-green-900:#005a00;--color-palette-green-800:#007a33;--color-palette-green-700:#00ad23;--color-palette-green-600:#00e200;--color-palette-green-500:#56f000;--color-palette-green-400:#99f666;--color-palette-yellow-900:#645600;--color-palette-yellow-800:#917d01;--color-palette-yellow-700:#c7ab00;--color-palette-yellow-600:#fad800;--color-palette-yellow-500:#fce83a;--color-palette-yellow-400:#fded61;--color-palette-orange-900:#664618;--color-palette-orange-800:#975f0e;--color-palette-orange-700:#ff8c00;--color-palette-orange-600:#ffaf3d;--color-palette-orange-500:#ffb302;--color-palette-orange-400:#ffcc57;--color-palette-red-900:#661102;--color-palette-red-800:#8b1703;--color-palette-red-700:#c8102e;--color-palette-red-600:#ff2a04;--color-palette-red-500:#ff3838;--color-palette-red-400:#ff5f60;--color-palette-grey-900:#292a2d;--color-palette-grey-800:#3c3e42;--color-palette-grey-700:#51555b;--color-palette-grey-600:#7b8089;--color-palette-grey-500:#a4abb6;--color-palette-grey-400:#bbc1c9;--color-palette-grey-300:#d4d8dd;--color-palette-grey-250:#e0e5eb;--color-palette-grey-200:#eaeef4;--color-palette-grey-100:#f5f6f9;--color-palette-brightblue-900:#101923;--color-palette-brightblue-850:#142435;--color-palette-brightblue-800:#1c3851;--color-palette-brightblue-700:#2b659b;--color-palette-brightblue-600:#3a87cf;--color-palette-brightblue-500:#4dacff;--color-palette-brightblue-400:#92cbff;--color-palette-brightblue-300:#b7dcff;--color-palette-brightblue-200:#cee9fc;--color-palette-brightblue-100:#daeeff;--color-palette-darkblue-950:#080c11;--color-palette-darkblue-900:#172635;--color-palette-darkblue-800:#1b2d3e;--color-palette-darkblue-700:#1c3f5e;--color-palette-darkblue-600:#004872;--color-palette-darkblue-500:#005a8f;--color-palette-darkblue-400:#2f7aa7;--color-palette-darkblue-300:#649cbd;--color-palette-darkblue-200:#98bdd3;--color-palette-darkblue-100:#cbdee9;--color-palette-neutral-000:#ffffff;--color-palette-neutral-1000:#000000;--opacity-50:50%;--opacity-45:45%;--opacity-40:40%;--opacity-35:35%;--opacity-25:25%}:where(:root){--shadow-overlay:0px 4px 4px 1px rgba(0, 0, 0, 0.45);--spacing-focus-default:0.125rem;--border-width-focus-default:1px;--color-data-visualization-8:#b7dcff;--color-data-visualization-7:#a1e9eb;--color-data-visualization-6:#92cbff;--color-data-visualization-5:#c9c5ed;--color-data-visualization-4:#70dde0;--color-data-visualization-3:#4dacff;--color-data-visualization-2:#938bdb;--color-data-visualization-1:#00c7cb;--color-classification-unclassified:#007a33;--color-classification-cui:#502b85;--color-classification-confidential:#0033a0;--color-classification-secret:#c8102e;--color-classification-topsecret:#ff8c00;--color-classification-topsecretsci:#fce83a;--color-status-off:#a4abb6;--color-status-standby:#2dccff;--color-status-normal:#56f000;--color-status-caution:#fce83a;--color-status-serious:#ffb302;--color-status-critical:#ff3838;--color-border-focus-default:#da9ce7;--color-border-error:#ff3838;--color-border-interactive-muted:#2b659b;--color-border-interactive-hover:#92cbff;--color-border-interactive-default:#4dacff;--color-text-error:#ff3838;--color-text-black:#000000;--color-text-white:#ffffff;--color-text-interactive-hover:#92cbff;--color-text-interactive-default:#4dacff;--color-text-inverse:#080c11;--color-text-placeholder:#a4abb6;--color-text-secondary:#d4d8dd;--color-text-primary:#ffffff;--color-background-interactive-muted:#2b659b;--color-background-interactive-hover:#92cbff;--color-background-interactive-default:#4dacff;--color-background-surface-selected:#1c3f5e;--color-background-surface-hover:#1c3851;--color-background-surface-header:#172635;--color-background-surface-default:#1b2d3e;--color-background-base-selected:#1c3f5e;--color-background-base-hover:#142435;--color-background-base-header:#172635;--color-background-base-default:#101923;--opacity-disabled:40%}:where(:root){--push-button-border-width:1px;--push-button-prefix-margin-right:0.25rem;--push-button-prefix-dimension:20px;--push-button-prefix-color-fill-selected:#000000;--push-button-prefix-color-fill-unselected-hover:#92cbff;--push-button-prefix-color-fill-unselected-default:#4dacff;--push-button-radius:3px;--push-button-padding-y-large:0.75rem;--push-button-padding-y-large-icon-only:0.75rem;--push-button-padding-y-small-icon-only:0.25rem;--push-button-padding-y-small:1rem;--push-button-padding-y-medium-icon-only:0.5rem;--push-button-padding-y-medium:0.5rem;--push-button-padding-x-large-icon-only:0.75rem;--push-button-padding-x-large:1rem;--push-button-padding-x-small-icon-only:0.25rem;--push-button-padding-x-small:1rem;--push-button-padding-x-medium-icon-only:0.5rem;--push-button-padding-x-medium:1rem;--push-button-color-background-unselected-hover:#99f66600;--push-button-color-background-unselected-default:#99f66600;--push-button-color-background-selected-hover:#99f666;--push-button-color-background-selected-default:#56f000;--push-button-color-border-selected-hover:#99f666;--push-button-color-border-selected-default:#56f000;--push-button-color-border-unselected-hover:#92cbff;--push-button-color-border-unselected-default:#4dacff;--push-button-color-text-selected:#000000;--push-button-color-text-unselected-hover:#92cbff;--push-button-color-text-unselected-default:#4dacff;--tab-color-border-bottom-selected:#4dacff;--tab-color-text-selected:#ffffff;--tab-color-text-hover:#92cbff;--tab-color-text-default:#4dacff;--tab-border-width-bottom:4px;--tab-padding-bottom-small:1.25rem;--tab-padding-bottom-large:1.75rem;--tab-padding-top-small:1rem;--tab-padding-top-large:1.5rem;--tab-padding-x-small:0.75rem;--tab-padding-x-large:0.75rem;--tooltip-radius:1px;--tooltip-color-text:#ffffff;--tooltip-color-background:#3c3e42;--timeline-header-color-background:#172635;--timeline-cell-color-background:#1c3f5e;--textarea-radius:3px;--textarea-padding-y-small:0.5rem;--textarea-padding-y-medium:0.5rem;--textarea-padding-y-large:0.5rem;--textarea-padding-x-small:0.25rem;--textarea-padding-x-medium:0.5rem;--textarea-padding-x-large:0.75rem;--textarea-color-background-default:#101923;--textarea-color-text-placeholder:#a4abb6;--textarea-color-text-default:#ffffff;--textarea-color-border-invalid:#ff3838;--textarea-color-border-hover:#92cbff;--textarea-color-border-default:#2b659b;--textarea-border-width:1px;--tag-padding-y:0.25rem;--tag-padding-x:0.75rem;--tag-radius:4px;--tag-color-background-unknown:#292a2d;--tag-color-background-fail:#661102;--tag-color-background-pass:#005a00;--tag-color-text:#ffffff;--tag-color-border-pass:#007a33;--tag-color-border-fail:#8b1703;--tag-color-border-unknown:#292a2d;--tag-shadow-inner-unknown:inset 0px 0px 5px 0px rgb(164, 171, 182);--tag-shadow-inner-pass:inset 0px 0px 5px 0px rgb(86, 240, 0);--tag-shadow-inner-fail:inset 0px 0px 5px 0px rgb(255, 56, 56);--table-body-cell-padding-x:0.5rem;--table-body-cell-padding-y:0.25rem;--table-row-border-width:1px;--table-row-color-border:#101923;--table-row-color-text:#ffffff;--table-row-color-background-hover:#1c3851;--table-row-color-background-selected:#1c3f5e;--table-row-color-background-default:#1b2d3e;--table-header-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.45);--table-header-cell-padding:0.5rem;--table-header-color-background:#172635;--switch-radius-track:10px;--status-symbol-color-fill-standby-on-light:#64d9ff;--status-symbol-color-fill-standby-on-dark:#2dccff;--status-symbol-color-fill-serious-on-light:#ffaf3d;--status-symbol-color-fill-serious-on-dark:#ffb302;--status-symbol-color-fill-off-on-light:#7b8089;--status-symbol-color-fill-off-on-dark:#a4abb6;--status-symbol-color-fill-normal-on-light:#00e200;--status-symbol-color-fill-normal-on-dark:#56f000;--status-symbol-color-fill-critical-on-light:#ff2a04;--status-symbol-color-fill-critical-on-dark:#ff3838;--status-symbol-color-fill-caution-on-light:#fad800;--status-symbol-color-fill-caution-on-dark:#fce83a;--status-symbol-color-border-standby:#285766;--status-symbol-color-border-serious:#664618;--status-symbol-color-border-off:#3c3e42;--status-symbol-color-border-normal:#005a00;--status-symbol-color-border-critical:#661102;--status-symbol-color-border-caution:#645600;--status-symbol-border-width-on-light:1px;--status-symbol-border-width-on-dark:0;--slider-track-radius:3px;--slider-track-height-inactive:1px;--slider-track-height-active:4px;--slider-tick-radius:50%;--slider-tick-dimension:4px;--slider-tick-color-background:#4dacff;--slider-thumb-radius:50%;--slider-thumb-dimension:20px;--slider-thumb-color-border-hover:#92cbff;--slider-thumb-color-border-default:#4dacff;--slider-thumb-color-background:#101923;--slider-thumb-border-width:2px;--slider-radius-background-track:1px;--slider-axis-label-color-text:#ffffff;--select-radius:3px;--select-padding-y-small:1rem;--select-padding-y-medium:0.5rem;--select-padding-y-large:0.25rem;--select-padding-x-small:0.25rem;--select-padding-x-medium:0.5rem;--select-padding-x-large:0.75rem;--select-color-text-inline:#ffffff;--select-color-text:#4dacff;--select-color-border-invalid:#ff3838;--select-color-border-hover:#92cbff;--select-color-border-inline-default:#2b659b00;--select-color-border-default:#2b659b;--select-color-background-inline:#10192300;--select-color-background:#101923;--select-caret-selector-width:32px;--select-caret-selector-color-background:#1c3f5e;--select-caret-dimension:30px;--select-caret-color-fill:#4dacff;--select-border-width:1px;--scrollbar-shadow-inner-vertical:inset 3px 3px 3px 0px rgba(0, 0, 0, 0.5);--scrollbar-shadow-inner-horizontal:inset 1px 3px 3px 0px rgba(0, 0, 0, 0.5);--scrollbar-radius:4px;--radio-radius-outer:9px;--radio-radius-inner:4px;--radio-control-radius:50%;--radio-control-padding:0.125rem;--radio-control-margin-right:0.625rem;--radio-control-dimension:24px;--radio-control-color-border-hover:#92cbff;--radio-control-color-border-default:#2b659b;--radio-control-check-color-fill:#4dacff;--radio-check-radius:50%;--progress-label-margin-left:0.5rem;--progress-padding:0.0625rem;--progress-inner-color-background:#4dacff;--progress-color-background:#1b2d3e;--progress-color-border:#4dacff;--progress-border-width:1px;--progress-radius-outer:10px;--progress-radius-inner:8px;--notification-banner-padding-y-small:0.875rem;--notification-banner-padding-y-large:1.5rem;--notification-banner-padding-right:0.5rem;--notification-banner-padding-left:1rem;--notification-banner-status-symbol-margin-right:0.75rem;--notification-banner-prefix-margin-right:1rem;--notification-banner-prefix-dimension:32px;--notification-banner-radius-outer:3px;--notification-banner-radius-inner:2px;--notification-banner-color-background:#101923;--notification-banner-color-text:#ffffff;--notification-banner-color-border-outer-standby:#2dccff;--notification-banner-color-border-outer-serious:#ffb302;--notification-banner-color-border-outer-off:#a4abb6;--notification-banner-color-border-outer-normal:#56f000;--notification-banner-color-border-outer-default:#4dacff;--notification-banner-color-border-outer-critical:#ff3838;--notification-banner-color-border-outer-caution:#fce83a;--notification-banner-color-border-inner-standby:#2dccff;--notification-banner-color-border-inner-serious:#ffb302;--notification-banner-color-border-inner-off:#a4abb6;--notification-banner-color-border-inner-normal:#56f000;--notification-banner-color-border-inner-default:#4dacff;--notification-banner-color-border-inner-critical:#ff3838;--notification-banner-color-border-inner-caution:#fce83a;--monitoring-icon-badge-color-background:#101923;--menu-divider-color-fill:#51555b;--log-color-border:#000000;--link-color-text-hover:#4dacff;--link-color-text-default:#4dacff;--input-suffix-margin-left:0.25rem;--input-radius:3px;--input-prefix-margin-right:0.25rem;--input-padding-y-small:0.25rem;--input-padding-y-medium:0.5rem;--input-padding-y-large:0.5rem;--input-padding-x-small:0.5rem;--input-padding-x-medium:0.5rem;--input-padding-x-large:0.75rem;--input-icon-dimension:20px;--input-icon-color-fill-default:#4dacff;--input-color-text-placeholder:#a4abb6;--input-color-text-default:#ffffff;--input-color-border-invalid:#ff3838;--input-color-border-hover:#92cbff;--input-color-border-default:#2b659b;--input-color-background-default:#101923;--input-border-width:1px;--indeterminate-progress-radius-outer:30px;--indeterminate-progress-radius-inner:23px;--gsb-icon-color-fill-hover:#92cbff;--gsb-icon-color-fill-default:#4dacff;--gsb-color-text:#ffffff;--gsb-color-background:#172635;--container-color-border:#000000;--clock-datetime-color-background:#101923;--classification-banner-color-background-unclassified:#007a33;--classification-banner-color-background-topsecretsci:#fce83a;--classification-banner-color-background-topsecret:#ff8c00;--classification-banner-color-background-secret:#c8102e;--classification-banner-color-background-cui:#502b85;--classification-banner-color-background-confidential:#0033a0;--checkbox-group-padding:1rem;--checkbox-group-color-border-invalid:#ff3838;--checkbox-group-color-border-default:#2b659b;--checkbox-group-checkbox-margin-bottom:0.5rem;--checkbox-group-border-width:1px;--checkbox-label-margin-left:0.5rem;--checkbox-control-radius:2px;--checkbox-control-padding:0.125rem;--checkbox-control-dimension:24px;--checkbox-radius:2px;--card-radius:3px;--card-footer-padding:0.5rem;--card-body-padding:0.5rem;--card-shadow:0px 4px 4px 1px rgba(0, 0, 0, 0.45);--card-border-width:1px;--card-header-padding-y:0.625rem;--card-header-padding-x:0.5rem;--card-header-suffix-dimension:24px;--card-header-suffix-margin-left:0.5rem;--card-header-prefix-margin-right:0.5rem;--card-header-prefix-dimension:24px;--card-color-background:#101923;--card-color-border:#51555b;--button-radius:3px;--button-padding-y-small-icon-only:0.25rem;--button-padding-y-small:0.25rem;--button-padding-y-medium-icon-only:0.5rem;--button-padding-y-medium:0.5rem;--button-padding-y-large-icon-only:0.75rem;--button-padding-y-large:0.75rem;--button-padding-x-small-icon-only:0.25rem;--button-padding-x-small:1rem;--button-padding-x-medium-icon-only:0.5rem;--button-padding-x-medium:1rem;--button-padding-x-large-icon-only:0.75rem;--button-padding-x-large:1rem;--button-icon-margin-right:0.25rem;--button-icon-dimension:20px;--button-icon-color-fill-secondary-hover:#92cbff;--button-icon-color-fill-secondary-default:#4dacff;--button-icon-color-fill-primary:#080c11;--button-icon-color-fill-borderless-hover:#92cbff;--button-icon-color-fill-borderless-default:#4dacff;--button-color-text-secondary-hover:#92cbff;--button-color-text-secondary-default:#4dacff;--button-color-text-primary:#080c11;--button-color-text-borderless-hover:#92cbff;--button-color-text-borderless-default:#4dacff;--button-color-border-secondary-hover:#92cbff;--button-color-border-secondary-default:#4dacff;--button-color-border-primary-hover:#92cbff;--button-color-border-primary-default:#4dacff;--button-color-border-borderless:#ffffff00;--button-color-background-secondary:#ffffff00;--button-color-background-primary-hover:#92cbff;--button-color-background-primary-default:#4dacff;--button-color-background-borderless:#ffffff00;--button-border-width:1px}.light-theme{--shadow-overlay:0px 4px 4px 1px rgba(0, 0, 0, 0.35);--color-data-visualization-8:#3a87cf;--color-data-visualization-7:#009fa3;--color-data-visualization-6:#2b659b;--color-data-visualization-5:#786dd3;--color-data-visualization-4:#00777a;--color-data-visualization-3:#1c3851;--color-data-visualization-2:#6058a8;--color-data-visualization-1:#035051;--color-status-off:#7b8089;--color-status-standby:#64d9ff;--color-status-normal:#00e200;--color-status-caution:#fad800;--color-status-serious:#ffaf3d;--color-status-critical:#ff2a04;--color-border-focus-default:#b534ce;--color-border-error:#c8102e;--color-border-interactive-muted:#2f7aa7;--color-border-interactive-hover:#1c3f5e;--color-border-interactive-default:#005a8f;--color-text-error:#c8102e;--color-text-interactive-hover:#1c3f5e;--color-text-interactive-default:#005a8f;--color-text-inverse:#ffffff;--color-text-placeholder:#7b8089;--color-text-secondary:#51555b;--color-text-primary:#292a2d;--color-background-interactive-muted:#2f7aa7;--color-background-interactive-hover:#1c3f5e;--color-background-interactive-default:#005a8f;--color-background-surface-selected:#cee9fc;--color-background-surface-hover:#daeeff;--color-background-surface-header:#f5f6f9;--color-background-surface-default:#ffffff;--color-background-base-selected:#cee9fc;--color-background-base-hover:#98bdd3;--color-background-base-header:#f5f6f9;--color-background-base-default:#eaeef4;--tooltip-color-text:#000000;--tooltip-color-background:#bbc1c9;--timeline-header-color-background:#f5f6f9;--timeline-cell-color-background:#cbdee9;--tag-shadow-inner-unknown:inset 0px 0px 5px 0px rgb(123, 128, 137);--tag-shadow-inner-pass:inset 0px 0px 5px 0px rgb(0, 226, 0);--tag-shadow-inner-fail:inset 0px 0px 5px 0px rgb(255, 42, 4);--scrollbar-shadow-inner-vertical:inset 3px 3px 3px 0px rgba(0, 0, 0, 0.25);--scrollbar-shadow-inner-horizontal:inset 1px 3px 3px 0px rgba(0, 0, 0, 0.5);--notification-banner-color-border-outer-standby:#285766;--notification-banner-color-border-outer-serious:#664618;--notification-banner-color-border-outer-off:#3c3e42;--notification-banner-color-border-outer-normal:#005a00;--notification-banner-color-border-outer-default:#005a8f;--notification-banner-color-border-outer-critical:#661102;--notification-banner-color-border-outer-caution:#645600;--notification-banner-color-border-inner-standby:#64d9ff;--notification-banner-color-border-inner-serious:#ffaf3d;--notification-banner-color-border-inner-off:#7b8089;--notification-banner-color-border-inner-normal:#00e200;--notification-banner-color-border-inner-default:#005a8f;--notification-banner-color-border-inner-critical:#ff2a04;--notification-banner-color-border-inner-caution:#fad800;--log-color-border:#7b8089;--gsb-icon-color-fill-hover:#92cbff;--gsb-icon-color-fill-default:#4dacff;--gsb-color-text:#ffffff;--gsb-color-background:#172635;--container-color-border:#7b8089}:root{--indeterminate-gradient:conic-gradient(\n rgba(77, 172, 255, 0),\n rgba(51, 51, 51, 0),\n rgba(77, 172, 255, 0.3),\n rgba(77, 172, 255, 0.6),\n rgba(77, 172, 255, 0.7),\n rgb(77, 172, 255)\n );--indeterminate-nub-color:#4dacff;--standby-fill:#2dccff;--standby-border:#2dccff;--standby-fill-opacity:0;--critical-fill:#ff3838;--critical-border:#ff3838;--serious-fill:#ffb302;--serious-border:#ffb302;--caution-fill:#fce83a;--caution-border:#fce83a;--normal-fill:#56f000;--normal-border:#56f000;--off-fill:#a4abb6;--off-border:#a4abb6;--dropdown-arrow:url(${___CSS_LOADER_URL_REPLACEMENT_0___});--container-footer-color-background:#172635;--container-header-color-background:#172635}.light-theme{--indeterminate-gradient:conic-gradient(\n rgba(47, 122, 167, 0),\n rgba(51, 51, 51, 0),\n rgba(0, 90, 143, 0.3),\n rgba(0, 90, 143, 0.6),\n rgba(47, 122, 167, 0.7),\n rgb(47, 122, 167)\n );--indeterminate-nub-color:#2f7aa7;--standby-fill:#2dccff;--standby-fill-opacity:1;--standby-border:#285766;--critical-fill:#ff3838;--critical-border:#661102;--serious-fill:#ffb302;--serious-border:#664618;--caution-fill:#fce83a;--caution-border:#645600;--normal-fill:#56f000;--normal-border:#005a00;--off-fill:#a4abb6;--off-border:#3c3e42;--dropdown-arrow:url(${___CSS_LOADER_URL_REPLACEMENT_1___})}rux-menu-item:not(:defined){visibility:hidden}html{box-sizing:border-box;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-color:var(--color-border-interactive-muted, #2b659b) var(--color-background-surface-default, #1b2d3e)}*,*::before,*::after{box-sizing:inherit}body{margin:0;padding:0;font-family:var(--font-body-1-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);font-size:var(--font-body-1-font-size, 1rem);font-weight:var(--font-body-1-font-weight, 400);letter-spacing:var(--font-body-1-letter-spacing, 0.005em);color:var(--color-text-primary, white);background-color:var(--color-background-base-default, #101923)}body a{text-decoration:none;color:var(--color-background-interactive-default, #4dacff)}body a:hover{text-decoration:underline}body a:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--spacing-focus-default, 0.125rem);border-radius:var(--radius-base, 3px)}label{user-select:none}::-webkit-scrollbar{width:16px;height:16px;background-color:transparent}::-webkit-scrollbar-thumb{background-color:var(--color-border-interactive-muted, #2b659b);border-radius:8px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:vertical{border-left-width:4px}::-webkit-scrollbar-thumb:horizontal{border-top-width:4px}::-webkit-scrollbar-thumb:active,::-webkit-scrollbar-thumb:hover{background-color:var(--color-background-interactive-default, #3a81bf)}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background-color:var(--color-background-surface-default, #1b2d3e)}::-webkit-scrollbar-track:vertical{box-shadow:var(--scrollbar-shadow-inner-vertical, inset 3px 3px 3px 0px rgba(0, 0, 0, 0.5))}::-webkit-scrollbar-track:horizontal{box-shadow:var(--scrollbar-shadow-inner-horizontal, inset 1px 3px 3px 0px rgba(0, 0, 0, 0.5))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@astrouxds/astro-web-components/dist/astro-web-components/astro-web-components.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".rux-body-1{font-size:1rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(1.5 / 1);letter-spacing:0.005em}.rux-body-1-bold{font-size:1rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:700;line-height:calc(1.5 / 1);letter-spacing:0.005em}.rux-body-2{font-size:0.875rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(1.25 / 0.875);letter-spacing:0.005em}.rux-body-2-bold{font-size:0.875rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:700;line-height:calc(1.25 / 0.875);letter-spacing:0.005em}.rux-body-3{font-size:0.75rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(1 / 0.75);letter-spacing:0.005em}.rux-body-3-bold{font-size:0.75rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:700;line-height:calc(1 / 0.75);letter-spacing:0.005em}.rux-control-body-1{font-size:1rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(1.25 / 1);letter-spacing:0.005em}.rux-control-body-1-bold{font-size:1rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:700;line-height:calc(1.25 / 1);letter-spacing:0.005em}.rux-heading-1{font-size:2.125rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(2.5 / 2.125);letter-spacing:0.0025em}.rux-heading-1-bold{font-size:2.125rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:700;line-height:calc(2.5 / 2.125);letter-spacing:0.0025em}.rux-heading-2{font-size:1.5rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(1.75 / 1.5);letter-spacing:0em}.rux-heading-3{font-size:1.25rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:500;line-height:calc(1.5 / 1.25);letter-spacing:0.0015em}.rux-heading-4{font-size:1.25rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:300;line-height:calc(1.5 / 1.25);letter-spacing:0.0015em}.rux-heading-5{font-size:1.125rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(1.5 / 1.125);letter-spacing:0em}.rux-heading-6{font-size:1.125rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:300;line-height:calc(1.5 / 1.125);letter-spacing:0em}.rux-display-1{font-size:3.75rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:300;line-height:calc(4.375 / 3.75);letter-spacing:-0.005em}.rux-display-2{font-size:3rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:400;line-height:calc(3.5 / 3);letter-spacing:0em}.rux-monospace-1{font-size:1.75rem;font-family:'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;font-weight:500;line-height:calc(2 / 1.75);letter-spacing:0em}:where(:root){--font-control-body-1-bold-text-case:none;--font-control-body-1-bold-text-decoration:none;--font-control-body-1-bold-paragraph-spacing:0;--font-control-body-1-bold-letter-spacing:0.005em;--font-control-body-1-bold-font-size:1rem;--font-control-body-1-bold-line-height:calc(20 / 16);--font-control-body-1-bold-font-weight:700;--font-control-body-1-bold-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-control-body-1-text-case:none;--font-control-body-1-text-decoration:none;--font-control-body-1-paragraph-spacing:0;--font-control-body-1-letter-spacing:0.005em;--font-control-body-1-font-size:1rem;--font-control-body-1-line-height:calc(20 / 16);--font-control-body-1-font-weight:400;--font-control-body-1-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-display-2-text-case:none;--font-display-2-text-decoration:none;--font-display-2-paragraph-spacing:0;--font-display-2-letter-spacing:0em;--font-display-2-font-size:3rem;--font-display-2-line-height:calc(56 / 48);--font-display-2-font-weight:400;--font-display-2-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-display-1-text-case:none;--font-display-1-text-decoration:none;--font-display-1-paragraph-spacing:0;--font-display-1-letter-spacing:-0.005em;--font-display-1-font-size:3.75rem;--font-display-1-line-height:calc(70 / 60);--font-display-1-font-weight:300;--font-display-1-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-monospace-1-text-case:none;--font-monospace-1-text-decoration:none;--font-monospace-1-paragraph-spacing:0;--font-monospace-1-letter-spacing:0em;--font-monospace-1-font-size:1.75rem;--font-monospace-1-line-height:calc(32 / 28);--font-monospace-1-font-weight:500;--font-monospace-1-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-body-3-bold-text-case:none;--font-body-3-bold-text-decoration:none;--font-body-3-bold-paragraph-spacing:0;--font-body-3-bold-letter-spacing:0.005em;--font-body-3-bold-font-size:0.75rem;--font-body-3-bold-line-height:calc(16 / 12);--font-body-3-bold-font-weight:700;--font-body-3-bold-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-body-3-text-case:none;--font-body-3-text-decoration:none;--font-body-3-paragraph-spacing:0;--font-body-3-letter-spacing:0.005em;--font-body-3-font-size:0.75rem;--font-body-3-line-height:calc(16 / 12);--font-body-3-font-weight:400;--font-body-3-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-body-2-bold-text-case:none;--font-body-2-bold-text-decoration:none;--font-body-2-bold-paragraph-spacing:0;--font-body-2-bold-letter-spacing:0.005em;--font-body-2-bold-font-size:0.875rem;--font-body-2-bold-line-height:calc(20 / 14);--font-body-2-bold-font-weight:700;--font-body-2-bold-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-body-2-text-case:none;--font-body-2-text-decoration:none;--font-body-2-paragraph-spacing:0;--font-body-2-letter-spacing:0.005em;--font-body-2-font-size:0.875rem;--font-body-2-line-height:calc(20 / 14);--font-body-2-font-weight:400;--font-body-2-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-body-1-bold-text-case:none;--font-body-1-bold-text-decoration:none;--font-body-1-bold-paragraph-spacing:0;--font-body-1-bold-letter-spacing:0.005em;--font-body-1-bold-font-size:1rem;--font-body-1-bold-line-height:calc(24 / 16);--font-body-1-bold-font-weight:700;--font-body-1-bold-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-body-1-text-case:none;--font-body-1-text-decoration:none;--font-body-1-paragraph-spacing:0;--font-body-1-letter-spacing:0.005em;--font-body-1-font-size:1rem;--font-body-1-line-height:calc(24 / 16);--font-body-1-font-weight:400;--font-body-1-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-heading-6-text-case:none;--font-heading-6-text-decoration:none;--font-heading-6-paragraph-spacing:0;--font-heading-6-letter-spacing:0em;--font-heading-6-font-size:1.125rem;--font-heading-6-line-height:calc(24 / 18);--font-heading-6-font-weight:300;--font-heading-6-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-heading-5-text-case:none;--font-heading-5-text-decoration:none;--font-heading-5-paragraph-spacing:0;--font-heading-5-letter-spacing:0em;--font-heading-5-font-size:1.125rem;--font-heading-5-line-height:calc(24 / 18);--font-heading-5-font-weight:400;--font-heading-5-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-heading-4-text-case:none;--font-heading-4-text-decoration:none;--font-heading-4-paragraph-spacing:0;--font-heading-4-letter-spacing:0.0015em;--font-heading-4-font-size:1.25rem;--font-heading-4-line-height:calc(24 / 20);--font-heading-4-font-weight:300;--font-heading-4-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-heading-3-text-case:none;--font-heading-3-text-decoration:none;--font-heading-3-paragraph-spacing:0;--font-heading-3-letter-spacing:0.0015em;--font-heading-3-font-size:1.25rem;--font-heading-3-line-height:calc(24 / 20);--font-heading-3-font-weight:500;--font-heading-3-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-heading-2-text-case:none;--font-heading-2-text-decoration:none;--font-heading-2-paragraph-spacing:0;--font-heading-2-letter-spacing:0em;--font-heading-2-font-size:1.5rem;--font-heading-2-line-height:calc(28 / 24);--font-heading-2-font-weight:400;--font-heading-2-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-heading-1-bold-text-case:none;--font-heading-1-bold-text-decoration:none;--font-heading-1-bold-paragraph-spacing:0;--font-heading-1-bold-letter-spacing:0.0025em;--font-heading-1-bold-font-size:2.125rem;--font-heading-1-bold-line-height:calc(40 / 34);--font-heading-1-bold-font-weight:700;--font-heading-1-bold-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--font-heading-1-text-case:none;--font-heading-1-text-decoration:none;--font-heading-1-paragraph-spacing:0;--font-heading-1-letter-spacing:0.0025em;--font-heading-1-font-size:2.125rem;--font-heading-1-line-height:calc(40 / 34);--font-heading-1-font-weight:400;--font-heading-1-font-family:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--spacing-050:0.125rem;--spacing-025:0.0625rem;--spacing-24:6rem;--spacing-20:5rem;--spacing-16:4rem;--spacing-14:3.5rem;--spacing-12:3rem;--spacing-10:2.5rem;--spacing-8:2rem;--spacing-6:1.5rem;--spacing-4:1rem;--spacing-3:0.75rem;--spacing-2:0.5rem;--spacing-1:0.25rem;--spacing-0:0rem;--paragraph-spacing-0:0;--letter-spacing-sm:-0.005em;--letter-spacing-lg:0.0015em;--letter-spacing-base:0em;--letter-spacing-xl:0.0025em;--letter-spacing-2xl:0.005em;--font-size-6xl:3.75rem;--font-size-5xl:3rem;--font-size-4xl:2.125rem;--font-size-3xl:1.75rem;--font-size-2xl:1.5rem;--font-size-xl:1.25rem;--font-size-lg:1.125rem;--font-size-base:1rem;--font-size-sm:0.875rem;--font-size-xs:0.75rem;--font-weights-bold:700;--font-weights-medium:500;--font-weights-regular:400;--font-weights-light:300;--line-height-4xl:4.375rem;--line-height-3xl:3.5rem;--line-height-2xl:2.5rem;--line-height-xl:2rem;--line-height-lg:1.75rem;--line-height-base:1.5rem;--line-height-sm:1.25rem;--line-height-xs:1rem;--line-height-2xs:0.875rem;--font-family-sans:\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;--radius-circle:50%;--radius-base:3px;--border-width-lg:4px;--border-width-sm:2px;--border-width-xs:1px;--border-width-none:0;--color-palette-hotorange-900:#2b1105;--color-palette-hotorange-800:#572108;--color-palette-hotorange-700:#833209;--color-palette-hotorange-600:#af420a;--color-palette-hotorange-500:#da5309;--color-palette-hotorange-400:#e27545;--color-palette-hotorange-300:#ea9875;--color-palette-hotorange-200:#f0baa3;--color-palette-hotorange-100:#f8ddd1;--color-palette-pink-900:#200227;--color-palette-pink-800:#41004d;--color-palette-pink-700:#610074;--color-palette-pink-600:#81009a;--color-palette-pink-500:#a200c1;--color-palette-pink-400:#b534ce;--color-palette-pink-300:#c76ada;--color-palette-pink-200:#da9ce7;--color-palette-pink-100:#edcef3;--color-palette-purple-900:#18152b;--color-palette-purple-800:#302c54;--color-palette-purple-700:#48417f;--color-palette-purple-600:#6058a8;--color-palette-purple-500:#786dd3;--color-palette-purple-400:#938bdb;--color-palette-purple-300:#aea8e5;--color-palette-purple-200:#c9c5ed;--color-palette-purple-100:#e4e2f7;--color-palette-teal-900:#032828;--color-palette-teal-800:#035051;--color-palette-teal-700:#00777a;--color-palette-teal-600:#009fa3;--color-palette-teal-500:#00c7cb;--color-palette-teal-400:#3ed2d6;--color-palette-teal-300:#70dde0;--color-palette-teal-200:#a1e9eb;--color-palette-teal-100:#d0f4f4;--color-palette-blue-800:#0033a0;--color-palette-violet-800:#502b85;--color-palette-cyan-900:#285766;--color-palette-cyan-800:#35798e;--color-palette-cyan-700:#20a9d5;--color-palette-cyan-600:#2dccff;--color-palette-cyan-500:#64d9ff;--color-palette-cyan-400:#5ce2ff;--color-palette-green-900:#005a00;--color-palette-green-800:#007a33;--color-palette-green-700:#00ad23;--color-palette-green-600:#00e200;--color-palette-green-500:#56f000;--color-palette-green-400:#99f666;--color-palette-yellow-900:#645600;--color-palette-yellow-800:#917d01;--color-palette-yellow-700:#c7ab00;--color-palette-yellow-600:#fad800;--color-palette-yellow-500:#fce83a;--color-palette-yellow-400:#fded61;--color-palette-orange-900:#664618;--color-palette-orange-800:#975f0e;--color-palette-orange-700:#ff8c00;--color-palette-orange-600:#ffaf3d;--color-palette-orange-500:#ffb302;--color-palette-orange-400:#ffcc57;--color-palette-red-900:#661102;--color-palette-red-800:#8b1703;--color-palette-red-700:#c8102e;--color-palette-red-600:#ff2a04;--color-palette-red-500:#ff3838;--color-palette-red-400:#ff5f60;--color-palette-grey-900:#292a2d;--color-palette-grey-800:#3c3e42;--color-palette-grey-700:#51555b;--color-palette-grey-600:#7b8089;--color-palette-grey-500:#a4abb6;--color-palette-grey-400:#bbc1c9;--color-palette-grey-300:#d4d8dd;--color-palette-grey-250:#e0e5eb;--color-palette-grey-200:#eaeef4;--color-palette-grey-100:#f5f6f9;--color-palette-brightblue-900:#101923;--color-palette-brightblue-850:#142435;--color-palette-brightblue-800:#1c3851;--color-palette-brightblue-700:#2b659b;--color-palette-brightblue-600:#3a87cf;--color-palette-brightblue-500:#4dacff;--color-palette-brightblue-400:#92cbff;--color-palette-brightblue-300:#b7dcff;--color-palette-brightblue-200:#cee9fc;--color-palette-brightblue-100:#daeeff;--color-palette-darkblue-950:#080c11;--color-palette-darkblue-900:#172635;--color-palette-darkblue-800:#1b2d3e;--color-palette-darkblue-700:#1c3f5e;--color-palette-darkblue-600:#004872;--color-palette-darkblue-500:#005a8f;--color-palette-darkblue-400:#2f7aa7;--color-palette-darkblue-300:#649cbd;--color-palette-darkblue-200:#98bdd3;--color-palette-darkblue-100:#cbdee9;--color-palette-neutral-000:#ffffff;--color-palette-neutral-1000:#000000;--opacity-50:50%;--opacity-45:45%;--opacity-40:40%;--opacity-35:35%;--opacity-25:25%}:where(:root){--shadow-overlay:0px 4px 4px 1px rgba(0, 0, 0, 0.45);--spacing-focus-default:0.125rem;--border-width-focus-default:1px;--color-data-visualization-8:#b7dcff;--color-data-visualization-7:#a1e9eb;--color-data-visualization-6:#92cbff;--color-data-visualization-5:#c9c5ed;--color-data-visualization-4:#70dde0;--color-data-visualization-3:#4dacff;--color-data-visualization-2:#938bdb;--color-data-visualization-1:#00c7cb;--color-classification-unclassified:#007a33;--color-classification-cui:#502b85;--color-classification-confidential:#0033a0;--color-classification-secret:#c8102e;--color-classification-topsecret:#ff8c00;--color-classification-topsecretsci:#fce83a;--color-status-off:#a4abb6;--color-status-standby:#2dccff;--color-status-normal:#56f000;--color-status-caution:#fce83a;--color-status-serious:#ffb302;--color-status-critical:#ff3838;--color-border-focus-default:#da9ce7;--color-border-error:#ff3838;--color-border-interactive-muted:#2b659b;--color-border-interactive-hover:#92cbff;--color-border-interactive-default:#4dacff;--color-text-error:#ff3838;--color-text-black:#000000;--color-text-white:#ffffff;--color-text-interactive-hover:#92cbff;--color-text-interactive-default:#4dacff;--color-text-inverse:#080c11;--color-text-placeholder:#a4abb6;--color-text-secondary:#d4d8dd;--color-text-primary:#ffffff;--color-background-interactive-muted:#2b659b;--color-background-interactive-hover:#92cbff;--color-background-interactive-default:#4dacff;--color-background-surface-selected:#1c3f5e;--color-background-surface-hover:#1c3851;--color-background-surface-header:#172635;--color-background-surface-default:#1b2d3e;--color-background-base-selected:#1c3f5e;--color-background-base-hover:#142435;--color-background-base-header:#172635;--color-background-base-default:#101923;--opacity-disabled:40%}:where(:root){--push-button-border-width:1px;--push-button-prefix-margin-right:0.25rem;--push-button-prefix-dimension:20px;--push-button-prefix-color-fill-selected:#000000;--push-button-prefix-color-fill-unselected-hover:#92cbff;--push-button-prefix-color-fill-unselected-default:#4dacff;--push-button-radius:3px;--push-button-padding-y-large:0.75rem;--push-button-padding-y-large-icon-only:0.75rem;--push-button-padding-y-small-icon-only:0.25rem;--push-button-padding-y-small:1rem;--push-button-padding-y-medium-icon-only:0.5rem;--push-button-padding-y-medium:0.5rem;--push-button-padding-x-large-icon-only:0.75rem;--push-button-padding-x-large:1rem;--push-button-padding-x-small-icon-only:0.25rem;--push-button-padding-x-small:1rem;--push-button-padding-x-medium-icon-only:0.5rem;--push-button-padding-x-medium:1rem;--push-button-color-background-unselected-hover:#99f66600;--push-button-color-background-unselected-default:#99f66600;--push-button-color-background-selected-hover:#99f666;--push-button-color-background-selected-default:#56f000;--push-button-color-border-selected-hover:#99f666;--push-button-color-border-selected-default:#56f000;--push-button-color-border-unselected-hover:#92cbff;--push-button-color-border-unselected-default:#4dacff;--push-button-color-text-selected:#000000;--push-button-color-text-unselected-hover:#92cbff;--push-button-color-text-unselected-default:#4dacff;--tab-color-border-bottom-selected:#4dacff;--tab-color-text-selected:#ffffff;--tab-color-text-hover:#92cbff;--tab-color-text-default:#4dacff;--tab-border-width-bottom:4px;--tab-padding-bottom-small:1.25rem;--tab-padding-bottom-large:1.75rem;--tab-padding-top-small:1rem;--tab-padding-top-large:1.5rem;--tab-padding-x-small:0.75rem;--tab-padding-x-large:0.75rem;--tooltip-radius:1px;--tooltip-color-text:#ffffff;--tooltip-color-background:#3c3e42;--timeline-header-color-background:#172635;--timeline-cell-color-background:#1c3f5e;--textarea-radius:3px;--textarea-padding-y-small:0.5rem;--textarea-padding-y-medium:0.5rem;--textarea-padding-y-large:0.5rem;--textarea-padding-x-small:0.25rem;--textarea-padding-x-medium:0.5rem;--textarea-padding-x-large:0.75rem;--textarea-color-background-default:#101923;--textarea-color-text-placeholder:#a4abb6;--textarea-color-text-default:#ffffff;--textarea-color-border-invalid:#ff3838;--textarea-color-border-hover:#92cbff;--textarea-color-border-default:#2b659b;--textarea-border-width:1px;--tag-padding-y:0.25rem;--tag-padding-x:0.75rem;--tag-radius:4px;--tag-color-background-unknown:#292a2d;--tag-color-background-fail:#661102;--tag-color-background-pass:#005a00;--tag-color-text:#ffffff;--tag-color-border-pass:#007a33;--tag-color-border-fail:#8b1703;--tag-color-border-unknown:#292a2d;--tag-shadow-inner-unknown:inset 0px 0px 5px 0px rgb(164, 171, 182);--tag-shadow-inner-pass:inset 0px 0px 5px 0px rgb(86, 240, 0);--tag-shadow-inner-fail:inset 0px 0px 5px 0px rgb(255, 56, 56);--table-body-cell-padding-x:0.5rem;--table-body-cell-padding-y:0.25rem;--table-row-border-width:1px;--table-row-color-border:#101923;--table-row-color-text:#ffffff;--table-row-color-background-hover:#1c3851;--table-row-color-background-selected:#1c3f5e;--table-row-color-background-default:#1b2d3e;--table-header-shadow:0px 4px 8px 0px rgba(0, 0, 0, 0.45);--table-header-cell-padding:0.5rem;--table-header-color-background:#172635;--switch-radius-track:10px;--status-symbol-color-fill-standby-on-light:#64d9ff;--status-symbol-color-fill-standby-on-dark:#2dccff;--status-symbol-color-fill-serious-on-light:#ffaf3d;--status-symbol-color-fill-serious-on-dark:#ffb302;--status-symbol-color-fill-off-on-light:#7b8089;--status-symbol-color-fill-off-on-dark:#a4abb6;--status-symbol-color-fill-normal-on-light:#00e200;--status-symbol-color-fill-normal-on-dark:#56f000;--status-symbol-color-fill-critical-on-light:#ff2a04;--status-symbol-color-fill-critical-on-dark:#ff3838;--status-symbol-color-fill-caution-on-light:#fad800;--status-symbol-color-fill-caution-on-dark:#fce83a;--status-symbol-color-border-standby:#285766;--status-symbol-color-border-serious:#664618;--status-symbol-color-border-off:#3c3e42;--status-symbol-color-border-normal:#005a00;--status-symbol-color-border-critical:#661102;--status-symbol-color-border-caution:#645600;--status-symbol-border-width-on-light:1px;--status-symbol-border-width-on-dark:0;--slider-track-radius:3px;--slider-track-height-inactive:1px;--slider-track-height-active:4px;--slider-tick-radius:50%;--slider-tick-dimension:4px;--slider-tick-color-background:#4dacff;--slider-thumb-radius:50%;--slider-thumb-dimension:20px;--slider-thumb-color-border-hover:#92cbff;--slider-thumb-color-border-default:#4dacff;--slider-thumb-color-background:#101923;--slider-thumb-border-width:2px;--slider-radius-background-track:1px;--slider-axis-label-color-text:#ffffff;--select-radius:3px;--select-padding-y-small:1rem;--select-padding-y-medium:0.5rem;--select-padding-y-large:0.25rem;--select-padding-x-small:0.25rem;--select-padding-x-medium:0.5rem;--select-padding-x-large:0.75rem;--select-color-text-inline:#ffffff;--select-color-text:#4dacff;--select-color-border-invalid:#ff3838;--select-color-border-hover:#92cbff;--select-color-border-inline-default:#2b659b00;--select-color-border-default:#2b659b;--select-color-background-inline:#10192300;--select-color-background:#101923;--select-caret-selector-width:32px;--select-caret-selector-color-background:#1c3f5e;--select-caret-dimension:30px;--select-caret-color-fill:#4dacff;--select-border-width:1px;--scrollbar-shadow-inner-vertical:inset 3px 3px 3px 0px rgba(0, 0, 0, 0.5);--scrollbar-shadow-inner-horizontal:inset 1px 3px 3px 0px rgba(0, 0, 0, 0.5);--scrollbar-radius:4px;--radio-radius-outer:9px;--radio-radius-inner:4px;--radio-control-radius:50%;--radio-control-padding:0.125rem;--radio-control-margin-right:0.625rem;--radio-control-dimension:24px;--radio-control-color-border-hover:#92cbff;--radio-control-color-border-default:#2b659b;--radio-control-check-color-fill:#4dacff;--radio-check-radius:50%;--progress-label-margin-left:0.5rem;--progress-padding:0.0625rem;--progress-inner-color-background:#4dacff;--progress-color-background:#1b2d3e;--progress-color-border:#4dacff;--progress-border-width:1px;--progress-radius-outer:10px;--progress-radius-inner:8px;--notification-banner-padding-y-small:0.875rem;--notification-banner-padding-y-large:1.5rem;--notification-banner-padding-right:0.5rem;--notification-banner-padding-left:1rem;--notification-banner-status-symbol-margin-right:0.75rem;--notification-banner-prefix-margin-right:1rem;--notification-banner-prefix-dimension:32px;--notification-banner-radius-outer:3px;--notification-banner-radius-inner:2px;--notification-banner-color-background:#101923;--notification-banner-color-text:#ffffff;--notification-banner-color-border-outer-standby:#2dccff;--notification-banner-color-border-outer-serious:#ffb302;--notification-banner-color-border-outer-off:#a4abb6;--notification-banner-color-border-outer-normal:#56f000;--notification-banner-color-border-outer-default:#4dacff;--notification-banner-color-border-outer-critical:#ff3838;--notification-banner-color-border-outer-caution:#fce83a;--notification-banner-color-border-inner-standby:#2dccff;--notification-banner-color-border-inner-serious:#ffb302;--notification-banner-color-border-inner-off:#a4abb6;--notification-banner-color-border-inner-normal:#56f000;--notification-banner-color-border-inner-default:#4dacff;--notification-banner-color-border-inner-critical:#ff3838;--notification-banner-color-border-inner-caution:#fce83a;--monitoring-icon-badge-color-background:#101923;--menu-divider-color-fill:#51555b;--log-color-border:#000000;--link-color-text-hover:#4dacff;--link-color-text-default:#4dacff;--input-suffix-margin-left:0.25rem;--input-radius:3px;--input-prefix-margin-right:0.25rem;--input-padding-y-small:0.25rem;--input-padding-y-medium:0.5rem;--input-padding-y-large:0.5rem;--input-padding-x-small:0.5rem;--input-padding-x-medium:0.5rem;--input-padding-x-large:0.75rem;--input-icon-dimension:20px;--input-icon-color-fill-default:#4dacff;--input-color-text-placeholder:#a4abb6;--input-color-text-default:#ffffff;--input-color-border-invalid:#ff3838;--input-color-border-hover:#92cbff;--input-color-border-default:#2b659b;--input-color-background-default:#101923;--input-border-width:1px;--indeterminate-progress-radius-outer:30px;--indeterminate-progress-radius-inner:23px;--gsb-icon-color-fill-hover:#92cbff;--gsb-icon-color-fill-default:#4dacff;--gsb-color-text:#ffffff;--gsb-color-background:#172635;--container-color-border:#000000;--clock-datetime-color-background:#101923;--classification-banner-color-background-unclassified:#007a33;--classification-banner-color-background-topsecretsci:#fce83a;--classification-banner-color-background-topsecret:#ff8c00;--classification-banner-color-background-secret:#c8102e;--classification-banner-color-background-cui:#502b85;--classification-banner-color-background-confidential:#0033a0;--checkbox-group-padding:1rem;--checkbox-group-color-border-invalid:#ff3838;--checkbox-group-color-border-default:#2b659b;--checkbox-group-checkbox-margin-bottom:0.5rem;--checkbox-group-border-width:1px;--checkbox-label-margin-left:0.5rem;--checkbox-control-radius:2px;--checkbox-control-padding:0.125rem;--checkbox-control-dimension:24px;--checkbox-radius:2px;--card-radius:3px;--card-footer-padding:0.5rem;--card-body-padding:0.5rem;--card-shadow:0px 4px 4px 1px rgba(0, 0, 0, 0.45);--card-border-width:1px;--card-header-padding-y:0.625rem;--card-header-padding-x:0.5rem;--card-header-suffix-dimension:24px;--card-header-suffix-margin-left:0.5rem;--card-header-prefix-margin-right:0.5rem;--card-header-prefix-dimension:24px;--card-color-background:#101923;--card-color-border:#51555b;--button-radius:3px;--button-padding-y-small-icon-only:0.25rem;--button-padding-y-small:0.25rem;--button-padding-y-medium-icon-only:0.5rem;--button-padding-y-medium:0.5rem;--button-padding-y-large-icon-only:0.75rem;--button-padding-y-large:0.75rem;--button-padding-x-small-icon-only:0.25rem;--button-padding-x-small:1rem;--button-padding-x-medium-icon-only:0.5rem;--button-padding-x-medium:1rem;--button-padding-x-large-icon-only:0.75rem;--button-padding-x-large:1rem;--button-icon-margin-right:0.25rem;--button-icon-dimension:20px;--button-icon-color-fill-secondary-hover:#92cbff;--button-icon-color-fill-secondary-default:#4dacff;--button-icon-color-fill-primary:#080c11;--button-icon-color-fill-borderless-hover:#92cbff;--button-icon-color-fill-borderless-default:#4dacff;--button-color-text-secondary-hover:#92cbff;--button-color-text-secondary-default:#4dacff;--button-color-text-primary:#080c11;--button-color-text-borderless-hover:#92cbff;--button-color-text-borderless-default:#4dacff;--button-color-border-secondary-hover:#92cbff;--button-color-border-secondary-default:#4dacff;--button-color-border-primary-hover:#92cbff;--button-color-border-primary-default:#4dacff;--button-color-border-borderless:#ffffff00;--button-color-background-secondary:#ffffff00;--button-color-background-primary-hover:#92cbff;--button-color-background-primary-default:#4dacff;--button-color-background-borderless:#ffffff00;--button-border-width:1px}.light-theme{--shadow-overlay:0px 4px 4px 1px rgba(0, 0, 0, 0.35);--color-data-visualization-8:#3a87cf;--color-data-visualization-7:#009fa3;--color-data-visualization-6:#2b659b;--color-data-visualization-5:#786dd3;--color-data-visualization-4:#00777a;--color-data-visualization-3:#1c3851;--color-data-visualization-2:#6058a8;--color-data-visualization-1:#035051;--color-status-off:#7b8089;--color-status-standby:#64d9ff;--color-status-normal:#00e200;--color-status-caution:#fad800;--color-status-serious:#ffaf3d;--color-status-critical:#ff2a04;--color-border-focus-default:#b534ce;--color-border-error:#c8102e;--color-border-interactive-muted:#2f7aa7;--color-border-interactive-hover:#1c3f5e;--color-border-interactive-default:#005a8f;--color-text-error:#c8102e;--color-text-interactive-hover:#1c3f5e;--color-text-interactive-default:#005a8f;--color-text-inverse:#ffffff;--color-text-placeholder:#7b8089;--color-text-secondary:#51555b;--color-text-primary:#292a2d;--color-background-interactive-muted:#2f7aa7;--color-background-interactive-hover:#1c3f5e;--color-background-interactive-default:#005a8f;--color-background-surface-selected:#cee9fc;--color-background-surface-hover:#daeeff;--color-background-surface-header:#f5f6f9;--color-background-surface-default:#ffffff;--color-background-base-selected:#cee9fc;--color-background-base-hover:#98bdd3;--color-background-base-header:#f5f6f9;--color-background-base-default:#eaeef4;--tooltip-color-text:#000000;--tooltip-color-background:#bbc1c9;--timeline-header-color-background:#f5f6f9;--timeline-cell-color-background:#cbdee9;--tag-shadow-inner-unknown:inset 0px 0px 5px 0px rgb(123, 128, 137);--tag-shadow-inner-pass:inset 0px 0px 5px 0px rgb(0, 226, 0);--tag-shadow-inner-fail:inset 0px 0px 5px 0px rgb(255, 42, 4);--scrollbar-shadow-inner-vertical:inset 3px 3px 3px 0px rgba(0, 0, 0, 0.25);--scrollbar-shadow-inner-horizontal:inset 1px 3px 3px 0px rgba(0, 0, 0, 0.5);--notification-banner-color-border-outer-standby:#285766;--notification-banner-color-border-outer-serious:#664618;--notification-banner-color-border-outer-off:#3c3e42;--notification-banner-color-border-outer-normal:#005a00;--notification-banner-color-border-outer-default:#005a8f;--notification-banner-color-border-outer-critical:#661102;--notification-banner-color-border-outer-caution:#645600;--notification-banner-color-border-inner-standby:#64d9ff;--notification-banner-color-border-inner-serious:#ffaf3d;--notification-banner-color-border-inner-off:#7b8089;--notification-banner-color-border-inner-normal:#00e200;--notification-banner-color-border-inner-default:#005a8f;--notification-banner-color-border-inner-critical:#ff2a04;--notification-banner-color-border-inner-caution:#fad800;--log-color-border:#7b8089;--gsb-icon-color-fill-hover:#92cbff;--gsb-icon-color-fill-default:#4dacff;--gsb-color-text:#ffffff;--gsb-color-background:#172635;--container-color-border:#7b8089}:root{--indeterminate-gradient:conic-gradient(\\n rgba(77, 172, 255, 0),\\n rgba(51, 51, 51, 0),\\n rgba(77, 172, 255, 0.3),\\n rgba(77, 172, 255, 0.6),\\n rgba(77, 172, 255, 0.7),\\n rgb(77, 172, 255)\\n );--indeterminate-nub-color:#4dacff;--standby-fill:#2dccff;--standby-border:#2dccff;--standby-fill-opacity:0;--critical-fill:#ff3838;--critical-border:#ff3838;--serious-fill:#ffb302;--serious-border:#ffb302;--caution-fill:#fce83a;--caution-border:#fce83a;--normal-fill:#56f000;--normal-border:#56f000;--off-fill:#a4abb6;--off-border:#a4abb6;--dropdown-arrow:url(\\\"data:image/svg+xml,%3Csvg width='31' height='30' viewBox='0 0 31 30' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.6875 14.6375L14.925 17.875C15.4125 18.3625 16.2 18.3625 16.6875 17.875L19.925 14.6375C20.7125 13.85 20.15 12.5 19.0375 12.5H12.5625C11.45 12.5 10.9 13.85 11.6875 14.6375Z' fill='%234DACFF'/%3E%3C/svg%3E%0A\\\");--container-footer-color-background:#172635;--container-header-color-background:#172635}.light-theme{--indeterminate-gradient:conic-gradient(\\n rgba(47, 122, 167, 0),\\n rgba(51, 51, 51, 0),\\n rgba(0, 90, 143, 0.3),\\n rgba(0, 90, 143, 0.6),\\n rgba(47, 122, 167, 0.7),\\n rgb(47, 122, 167)\\n );--indeterminate-nub-color:#2f7aa7;--standby-fill:#2dccff;--standby-fill-opacity:1;--standby-border:#285766;--critical-fill:#ff3838;--critical-border:#661102;--serious-fill:#ffb302;--serious-border:#664618;--caution-fill:#fce83a;--caution-border:#645600;--normal-fill:#56f000;--normal-border:#005a00;--off-fill:#a4abb6;--off-border:#3c3e42;--dropdown-arrow:url(\\\"data:image/svg+xml,%3Csvg width='31' height='30' viewBox='0 0 31 30' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.6875 14.6375L14.925 17.875C15.4125 18.3625 16.2 18.3625 16.6875 17.875L19.925 14.6375C20.7125 13.85 20.15 12.5 19.0375 12.5H12.5625C11.45 12.5 10.9 13.85 11.6875 14.6375Z' fill='%23005A8F'/%3E%3C/svg%3E%0A\\\")}rux-menu-item:not(:defined){visibility:hidden}html{box-sizing:border-box;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-color:var(--color-border-interactive-muted, #2b659b) var(--color-background-surface-default, #1b2d3e)}*,*::before,*::after{box-sizing:inherit}body{margin:0;padding:0;font-family:var(--font-body-1-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);font-size:var(--font-body-1-font-size, 1rem);font-weight:var(--font-body-1-font-weight, 400);letter-spacing:var(--font-body-1-letter-spacing, 0.005em);color:var(--color-text-primary, white);background-color:var(--color-background-base-default, #101923)}body a{text-decoration:none;color:var(--color-background-interactive-default, #4dacff)}body a:hover{text-decoration:underline}body a:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--spacing-focus-default, 0.125rem);border-radius:var(--radius-base, 3px)}label{user-select:none}::-webkit-scrollbar{width:16px;height:16px;background-color:transparent}::-webkit-scrollbar-thumb{background-color:var(--color-border-interactive-muted, #2b659b);border-radius:8px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:vertical{border-left-width:4px}::-webkit-scrollbar-thumb:horizontal{border-top-width:4px}::-webkit-scrollbar-thumb:active,::-webkit-scrollbar-thumb:hover{background-color:var(--color-background-interactive-default, #3a81bf)}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background-color:var(--color-background-surface-default, #1b2d3e)}::-webkit-scrollbar-track:vertical{box-shadow:var(--scrollbar-shadow-inner-vertical, inset 3px 3px 3px 0px rgba(0, 0, 0, 0.5))}::-webkit-scrollbar-track:horizontal{box-shadow:var(--scrollbar-shadow-inner-horizontal, inset 1px 3px 3px 0px rgba(0, 0, 0, 0.5))}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.logo[data-v-36f1a220] {\n float: right;\n margin: 15px;\n}\n.cosmos[data-v-36f1a220] {\n text-align: center;\n font-size: 18pt;\n}\n.reason[data-v-36f1a220] {\n font-weight: bold;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/openc3-tool-common/src/components/UpgradeToEnterpriseDialog.vue\"],\"names\":[],\"mappings\":\";AAuFA;EACA,YAAA;EACA,YAAA;AACA;AACA;EACA,kBAAA;EACA,eAAA;AACA;AACA;EACA,iBAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2023 OpenC3, Inc.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n\\n# This file may also be used under the terms of a commercial license\\n# if purchased from OpenC3, Inc.\\n-->\\n\\n<template>\\n <v-dialog v-model=\\\"show\\\" width=\\\"650px\\\">\\n <v-card>\\n <v-system-bar>\\n <v-spacer />\\n <span> Upgrade to COSMOS Enterprise Edition </span>\\n <v-spacer />\\n </v-system-bar>\\n <v-card-text class=\\\"mt-2\\\">\\n <div class=\\\"logo\\\">\\n <img :src=\\\"logo\\\" alt=\\\"OpenC3\\\" />\\n <div class=\\\"cosmos\\\">Enterprise Edition</div>\\n </div>\\n <div class=\\\"pb-4\\\">\\n Thank you for using the COSMOS Open Source Edition!\\n </div>\\n <div v-if=\\\"reason\\\">\\n <div class=\\\"pb-4 pl-4 reason\\\">\\n {{ reason }}\\n </div>\\n </div>\\n COSMOS Enterprise Edition removes all restrictions and offers users with\\n role based access control, scaling on kubernetes, cloud platform\\n support, multiple scopes, Calendar and Autonomic, various integrations\\n with common protocols and hardware, commercial licensing, and much\\n more!<br /><br />\\n Learn more at\\n <a href=\\\"https://openc3.com/enterprise\\\"\\n >https://openc3.com/enterprise</a\\n >\\n and help support COSMOS Open Source by supporting our business. Contact\\n us at <a href=\\\"mailto:support@openc3.com\\\">support@openc3.com</a> for\\n more information about Enterprise Edition, COSMOS training, COSMOS\\n support, and custom COSMOS development.\\n </v-card-text>\\n <v-card-actions>\\n <v-spacer />\\n <v-btn class=\\\"mx-2\\\" color=\\\"primary\\\" @click=\\\"show = !show\\\"> Ok </v-btn>\\n </v-card-actions>\\n </v-card>\\n </v-dialog>\\n</template>\\n\\n<script>\\nimport logo from '../../public/img/logo.png'\\n\\nexport default {\\n props: {\\n value: Boolean, // value is the default prop when using v-model\\n reason: String,\\n },\\n data() {\\n return {\\n logo: logo,\\n }\\n },\\n computed: {\\n show: {\\n get() {\\n return this.value\\n },\\n set(value) {\\n this.$emit('input', value) // input is the default event when using v-model\\n },\\n },\\n },\\n}\\n</script>\\n<style scoped>\\n.logo {\\n float: right;\\n margin: 15px;\\n}\\n.cosmos {\\n text-align: center;\\n font-size: 18pt;\\n}\\n.reason {\\n font-weight: bold;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.astro-icon[data-v-b942113a] {\n fill: currentColor;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/openc3-tool-common/src/components/icons/AstroIcon.vue\"],\"names\":[],\"mappings\":\";AAgDA;EACA,kBAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n\\n# Modified by OpenC3, Inc.\\n# All changes Copyright 2022, OpenC3, Inc.\\n# All Rights Reserved\\n#\\n# This file may also be used under the terms of a commercial license\\n# if purchased from OpenC3, Inc.\\n-->\\n\\n<template>\\n <cosmos-rux-icon :icon=\\\"icon\\\" class=\\\"astro-icon\\\" />\\n</template>\\n\\n<script>\\nimport CosmosRuxIcon from './CosmosRuxIcon.vue'\\nimport { AstroIconLibrary } from '.'\\n\\n// This component is a wrapper around the Astro UXDS RuxIcon to make it work with Vuetify\\nexport default {\\n components: {\\n CosmosRuxIcon,\\n },\\n props: {\\n icon: {\\n type: String,\\n required: true,\\n validator: (val) => {\\n return AstroIconLibrary.includes(val)\\n },\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.astro-icon {\\n fill: currentColor;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.base[data-v-1f2e2c8b] {\n margin-left: 5px;\n cursor: pointer;\n}\n.enterprise[data-v-1f2e2c8b] {\n margin-left: 5px;\n}\n#footer[data-v-1f2e2c8b] {\n z-index: 1000; /* On TOP! */\n background-color: var(--gsb-color-background) !important;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/openc3-tool-common/src/tools/base/AppFooter.vue\"],\"names\":[],\"mappings\":\";AAwGA;EACA,gBAAA;EACA,eAAA;AACA;AACA;EACA,gBAAA;AACA;AACA;EACA,aAAA,EAAA,YAAA;EACA,wDAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n\\n# Modified by OpenC3, Inc.\\n# All changes Copyright 2024, OpenC3, Inc.\\n# All Rights Reserved\\n#\\n# This file may also be used under the terms of a commercial license\\n# if purchased from OpenC3, Inc.\\n-->\\n\\n<template>\\n <v-footer id=\\\"footer\\\" app v-if=\\\"!chromeless\\\" height=\\\"33\\\">\\n <img :src=\\\"icon\\\" alt=\\\"OpenC3\\\" />\\n <span :class=\\\"footerClass\\\" @click=\\\"upgrade\\\"\\n >OpenC3 {{ edition }} {{ version }} © 2024 - License:\\n {{ license }}</span\\n >\\n <v-spacer />\\n <a :href=\\\"sourceUrl\\\" class=\\\"white--text text-decoration-underline\\\">\\n Source\\n </a>\\n <v-spacer />\\n <div class=\\\"justify-right\\\"><clock-footer /></div>\\n <upgrade-to-enterprise-dialog\\n v-model=\\\"showUpgradeToEnterpriseDialog\\\"\\n reason=\\\"Enterprise is Commercially Licensed\\\"\\n ></upgrade-to-enterprise-dialog>\\n </v-footer>\\n</template>\\n\\n<script>\\nimport ClockFooter from './components/ClockFooter.vue'\\nimport Api from '../../services/api'\\nimport { OpenC3Api } from '../../services/openc3-api'\\nimport icon from '../../../public/img/icon.png'\\nimport UpgradeToEnterpriseDialog from '../../components/UpgradeToEnterpriseDialog'\\n\\nexport default {\\n components: {\\n ClockFooter,\\n UpgradeToEnterpriseDialog,\\n },\\n data() {\\n return {\\n icon: icon,\\n edition: '',\\n enterprise: false,\\n license: '',\\n sourceUrl: '',\\n version: '',\\n showUpgradeToEnterpriseDialog: false,\\n chromeless: this.$route.query.chromeless,\\n }\\n },\\n created: function () {\\n this.getSourceUrl()\\n Api.get('/openc3-api/info').then((response) => {\\n if (response.data.enterprise) {\\n this.edition = 'COSMOS Enterprise'\\n } else {\\n this.edition = 'COSMOS Open Source'\\n }\\n this.enterprise = response.data.enterprise\\n this.license = response.data.license\\n this.version = response.data.version\\n })\\n },\\n computed: {\\n footerClass() {\\n if (this.enterprise) {\\n return 'enterprise'\\n } else {\\n return 'base'\\n }\\n },\\n },\\n methods: {\\n getSourceUrl: function () {\\n new OpenC3Api().get_settings(['source_url']).then((response) => {\\n this.sourceUrl = response[0]\\n })\\n },\\n upgrade: function () {\\n if (!this.enterprise) {\\n this.showUpgradeToEnterpriseDialog = true\\n }\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.base {\\n margin-left: 5px;\\n cursor: pointer;\\n}\\n.enterprise {\\n margin-left: 5px;\\n}\\n#footer {\\n z-index: 1000; /* On TOP! */\\n background-color: var(--gsb-color-background) !important;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.clock[data-v-00ae1763] {\n margin-top: 10px;\n justify-content: center;\n}\n.logo[data-v-00ae1763] {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.cosmos[data-v-00ae1763] {\n cursor: pointer;\n text-align: center;\n font-size: 18pt;\n}\ndiv a[data-v-00ae1763] {\n color: white;\n font-size: 16px;\n display: block;\n height: 100%;\n width: 100%;\n}\na.fixcenter[data-v-00ae1763] {\n display: flex;\n}\n#openc3-app-toolbar .top-bar-divider-full-height[data-v-00ae1763] {\n margin: -4px 4px;\n min-height: calc(100% + 8px);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/openc3-tool-common/src/tools/base/AppNav.vue\"],\"names\":[],\"mappings\":\";AAoYA;EACA,gBAAA;EACA,uBAAA;AACA;AACA;EACA,cAAA;EACA,iBAAA;EACA,kBAAA;AACA;AACA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;AACA;AACA;EACA,YAAA;EACA,eAAA;EACA,cAAA;EACA,YAAA;EACA,WAAA;AACA;AACA;EACA,aAAA;AACA;AACA;EACA,gBAAA;EACA,4BAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n\\n# Modified by OpenC3, Inc.\\n# All changes Copyright 2024, OpenC3, Inc.\\n# All Rights Reserved\\n#\\n# This file may also be used under the terms of a commercial license\\n# if purchased from OpenC3, Inc.\\n-->\\n\\n<template>\\n <div>\\n <v-navigation-drawer\\n v-if=\\\"!chromeless\\\"\\n v-model=\\\"drawer\\\"\\n app\\n id=\\\"openc3-nav-drawer\\\"\\n >\\n <img :src=\\\"logo\\\" class=\\\"logo\\\" alt=\\\"OpenC3\\\" />\\n <div class=\\\"cosmos\\\" @click=\\\"showUpgradeToEnterpriseDialog = true\\\">\\n COSMOS\\n </div>\\n <div style=\\\"text-align: center; font-size: 18pt\\\">\\n {{ subtitle }}\\n </div>\\n <div v-for=\\\"(tool, name) in adminTools\\\" :key=\\\"name\\\" class=\\\"ma-3\\\">\\n <v-btn\\n block\\n small\\n :href=\\\"tool.url\\\"\\n onclick=\\\"singleSpaNavigate(event)\\\"\\n class=\\\"fixcenter\\\"\\n color=\\\"primary\\\"\\n >\\n Admin Console\\n </v-btn>\\n </div>\\n <v-divider />\\n <v-treeview\\n :items=\\\"items\\\"\\n :open=\\\"initiallyOpen\\\"\\n item-key=\\\"name\\\"\\n dense\\n open-on-click\\n expand-icon=\\\"\\\"\\n >\\n <!-- Beginning Icon -->\\n <template v-slot:prepend=\\\"{ item, open }\\\">\\n <v-icon v-if=\\\"!item.icon\\\">\\n {{ open ? 'mdi-chevron-down' : 'mdi-chevron-right' }}\\n </v-icon>\\n <template v-else>\\n <a\\n v-if=\\\"item.window === 'INLINE'\\\"\\n :href=\\\"item.url\\\"\\n onclick=\\\"singleSpaNavigate(event)\\\"\\n >\\n <v-icon> {{ item.icon }} </v-icon>\\n </a>\\n <a v-else :href=\\\"item.url\\\">\\n <v-icon> {{ item.icon }} </v-icon>\\n </a>\\n </template>\\n </template>\\n\\n <!-- Link Text -->\\n <template v-slot:label=\\\"{ item }\\\">\\n <!-- Category has no Icon -->\\n <a\\n v-if=\\\"!item.icon\\\"\\n :href=\\\"item.url\\\"\\n onclick=\\\"singleSpaNavigate(event)\\\"\\n >\\n {{ item.name }}\\n </a>\\n <template v-else>\\n <!-- Tool Link -->\\n <a\\n v-if=\\\"item.window === 'INLINE'\\\"\\n :href=\\\"item.url\\\"\\n onclick=\\\"singleSpaNavigate(event)\\\"\\n >\\n {{ item.name }}\\n </a>\\n <a\\n v-else-if=\\\"item.window === 'IFRAME'\\\"\\n :href=\\\"\\n '/tools/iframe?title=' +\\n encodeURIComponent(item.name) +\\n '&url=' +\\n item.url\\n \\\"\\n >\\n {{ item.name }}\\n </a>\\n <a v-else-if=\\\"item.window === 'SAME'\\\" :href=\\\"item.url\\\">\\n {{ item.name }}\\n </a>\\n <a v-else :href=\\\"item.url\\\" target=\\\"_blank\\\">\\n <!-- item.window === 'NEW' -->\\n {{ item.name }}\\n </a>\\n </template>\\n </template>\\n\\n <!-- New Tab Link -->\\n <template v-slot:append=\\\"{ item }\\\">\\n <a v-if=\\\"item.icon\\\" :href=\\\"newTabUrl(item)\\\" target=\\\"_blank\\\">\\n <v-icon>mdi-open-in-new</v-icon>\\n </a>\\n </template>\\n </v-treeview>\\n </v-navigation-drawer>\\n <v-app-bar app v-if=\\\"!chromeless\\\" id=\\\"openc3-app-toolbar\\\">\\n <v-row\\n class=\\\"flex-nowrap\\\"\\n justify=\\\"space-between\\\"\\n no-gutters\\n style=\\\"margin-top: 20px\\\"\\n >\\n <v-col align-self=\\\"center\\\">\\n <v-row class=\\\"flex-nowrap\\\">\\n <rux-icon\\n class=\\\"mr-2 pa-2\\\"\\n size=\\\"small\\\"\\n icon=\\\"apps\\\"\\n @click=\\\"drawer = !drawer\\\"\\n ></rux-icon>\\n <span id=\\\"openc3-menu\\\" />\\n </v-row>\\n </v-col>\\n <v-col style=\\\"margin: auto\\\">\\n <rux-clock\\n class=\\\"clock\\\"\\n v-if=\\\"!astro.hideClock\\\"\\n date-in=\\\"\\\"\\n :timezone=\\\"astroTimeZone\\\"\\n ></rux-clock>\\n </v-col>\\n <v-col align-self=\\\"center\\\">\\n <v-row class=\\\"flex-nowrap\\\" style=\\\"margin-top: 10px\\\">\\n <v-spacer />\\n <scope-selector class=\\\"mr-6 mt-4\\\" />\\n <notifications class=\\\"mr-6\\\" data-test=\\\"notifications\\\" />\\n <user-menu class=\\\"mr-3\\\" /> </v-row\\n ></v-col>\\n </v-row>\\n </v-app-bar>\\n <upgrade-to-enterprise-dialog\\n v-model=\\\"showUpgradeToEnterpriseDialog\\\"\\n reason=\\\"Enterprise adds Calendar and Autonomic\\\"\\n ></upgrade-to-enterprise-dialog>\\n </div>\\n</template>\\n\\n<script>\\nimport { OpenC3Api } from '../../services/openc3-api'\\nimport Api from '../../services/api'\\nimport logo from '../../../public/img/logo.png'\\nimport { registerApplication, start } from 'single-spa'\\nimport ScopeSelector from './components/ScopeSelector.vue'\\nimport Notifications from './components/Notifications.vue'\\nimport UserMenu from './components/UserMenu.vue'\\nimport UpgradeToEnterpriseDialog from '../../components/UpgradeToEnterpriseDialog'\\nexport default {\\n components: {\\n ScopeSelector,\\n Notifications,\\n UserMenu,\\n UpgradeToEnterpriseDialog,\\n },\\n props: {\\n edition: {\\n type: String,\\n default: '',\\n },\\n },\\n data() {\\n return {\\n api: new OpenC3Api(),\\n timeZone: 'local',\\n subtitle: null,\\n // Update AstroSettings.vue when changing this\\n astro: {\\n hideClock: false,\\n },\\n items: [],\\n drawer: true,\\n appNav: {},\\n logo: logo,\\n initiallyOpen: [],\\n showUpgradeToEnterpriseDialog: false,\\n chromeless: this.$route.query.chromeless,\\n }\\n },\\n computed: {\\n // a computed getter\\n shownTools: function () {\\n let result = {}\\n for (var key of Object.keys(this.appNav)) {\\n if (this.appNav[key].shown && this.appNav[key].category !== 'Admin') {\\n result[key] = this.appNav[key]\\n }\\n }\\n return result\\n },\\n adminTools: function () {\\n let result = {}\\n for (var key of Object.keys(this.appNav)) {\\n if (this.appNav[key].shown && this.appNav[key].category === 'Admin') {\\n result[key] = this.appNav[key]\\n }\\n }\\n return result\\n },\\n astroTimeZone: function () {\\n if (this.timeZone === 'local') {\\n return Intl.DateTimeFormat().resolvedOptions().timeZone\\n }\\n return this.timeZone\\n },\\n },\\n created() {\\n this.api\\n .get_setting('astro')\\n .then((response) => {\\n if (response) {\\n // The response is an object with settings\\n this.astro = JSON.parse(response)\\n }\\n })\\n .catch((error) => {\\n // Do nothing\\n })\\n this.api\\n .get_setting('subtitle')\\n .then((response) => {\\n if (response) {\\n this.subtitle = response\\n }\\n })\\n .catch((error) => {\\n // Do nothing\\n })\\n this.api\\n .get_setting('time_zone')\\n .then((response) => {\\n if (response) {\\n this.timeZone = response\\n }\\n })\\n .catch((error) => {\\n // Do nothing\\n })\\n // Tools are global and are always installed into the DEFAULT scope\\n Api.get('/openc3-api/tools/all', { params: { scope: 'DEFAULT' } }).then(\\n (response) => {\\n this.appNav = response.data\\n\\n let id = 1\\n // Register apps and start single-spa\\n for (var key of Object.keys(this.appNav)) {\\n if (this.appNav[key].shown) {\\n if (\\n this.appNav[key].category &&\\n this.appNav[key].category !== 'Admin'\\n ) {\\n // TODO: Make this initiallyOpen configurable like with a CATEGORY parameter?\\n this.initiallyOpen.push(this.appNav[key].category)\\n const result = this.items.filter(\\n (item) => item.name === this.appNav[key].category,\\n )\\n if (result.length === 0) {\\n // Create category and first item\\n this.items.push({\\n id: id,\\n name: this.appNav[key].category,\\n children: [\\n {\\n id: id + 1,\\n name: this.appNav[key].name,\\n icon: this.appNav[key].icon,\\n url: this.appNav[key].url,\\n inline_url: this.appNav[key].inline_url,\\n window: this.appNav[key].window,\\n },\\n ],\\n })\\n id++\\n } else {\\n // Add to existing category\\n result[0].children.push({\\n id: id,\\n name: this.appNav[key].name,\\n icon: this.appNav[key].icon,\\n url: this.appNav[key].url,\\n inline_url: this.appNav[key].inline_url,\\n window: this.appNav[key].window,\\n })\\n }\\n } else if (!this.appNav[key].category) {\\n // Create category\\n this.items.push({\\n id: id,\\n name: this.appNav[key].name,\\n icon: this.appNav[key].icon,\\n url: this.appNav[key].url,\\n inline_url: this.appNav[key].inline_url,\\n window: this.appNav[key].window,\\n })\\n }\\n id++\\n }\\n if (\\n this.appNav[key].inline_url &&\\n this.appNav[key].window === 'INLINE'\\n ) {\\n if (\\n this.appNav[key].folder_name &&\\n this.appNav[key].folder_name !== 'base'\\n ) {\\n let folder_name = this.appNav[key].folder_name\\n let name = '@openc3/tool-' + folder_name\\n registerApplication({\\n name: name,\\n app: () => System.import(name),\\n activeWhen: ['/tools/' + folder_name],\\n })\\n }\\n }\\n }\\n start({\\n urlRerouteOnly: true,\\n })\\n\\n // Redirect some base paths to the first tool\\n if (\\n window.location.pathname == '/' ||\\n window.location.pathname == '/tools' ||\\n window.location.pathname == '/tools/'\\n ) {\\n for (var key of Object.keys(this.shownTools)) {\\n if (this.appNav[key].shown) {\\n history.replaceState(null, '', this.appNav[key].url)\\n break\\n }\\n }\\n }\\n\\n // Check every minute if we need to update our token\\n setInterval(() => {\\n OpenC3Auth.updateToken(120).then(function (refreshed) {\\n if (refreshed) {\\n OpenC3Auth.setTokens()\\n }\\n })\\n }, 60000)\\n },\\n )\\n },\\n methods: {\\n newTabUrl(tool) {\\n let url = null\\n if (tool.url[0] == '/' && tool.url[1] != '/') {\\n url = new URL(tool.url, window.location.origin)\\n } else {\\n url = new URL(tool.url)\\n }\\n url.searchParams.set('scope', window.openc3Scope)\\n return url.href\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.clock {\\n margin-top: 10px;\\n justify-content: center;\\n}\\n.logo {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.cosmos {\\n cursor: pointer;\\n text-align: center;\\n font-size: 18pt;\\n}\\ndiv a {\\n color: white;\\n font-size: 16px;\\n display: block;\\n height: 100%;\\n width: 100%;\\n}\\na.fixcenter {\\n display: flex;\\n}\\n#openc3-app-toolbar .top-bar-divider-full-height {\\n margin: -4px 4px;\\n min-height: calc(100% + 8px);\\n}\\n</style>\\n<style>\\n/* Remove the padding on root level nodes since we removed the expand icon */\\n#openc3-nav-drawer\\n .v-treeview\\n > .v-treeview-node\\n > .v-treeview-node__root\\n > .v-treeview-node__level {\\n width: 0px;\\n}\\n#openc3-nav-drawer\\n .v-treeview\\n > .v-treeview-node\\n > .v-treeview-node__root\\n > .v-treeview-node__toggle {\\n width: 0px;\\n}\\n#openc3-nav-drawer\\n .v-treeview-node__children\\n div.v-treeview-node__level:nth-child(1) {\\n width: 0px;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* Remove the padding on root level nodes since we removed the expand icon */\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__level {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__toggle {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview-node__children\n div.v-treeview-node__level:nth-child(1) {\n width: 0px;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/openc3-tool-common/src/tools/base/AppNav.vue\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkaA,4EAAA;AACA;;;;;EAKA,UAAA;AACA;AACA;;;;;EAKA,UAAA;AACA;AACA;;;EAGA,UAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n\\n# Modified by OpenC3, Inc.\\n# All changes Copyright 2024, OpenC3, Inc.\\n# All Rights Reserved\\n#\\n# This file may also be used under the terms of a commercial license\\n# if purchased from OpenC3, Inc.\\n-->\\n\\n<template>\\n <div>\\n <v-navigation-drawer\\n v-if=\\\"!chromeless\\\"\\n v-model=\\\"drawer\\\"\\n app\\n id=\\\"openc3-nav-drawer\\\"\\n >\\n <img :src=\\\"logo\\\" class=\\\"logo\\\" alt=\\\"OpenC3\\\" />\\n <div class=\\\"cosmos\\\" @click=\\\"showUpgradeToEnterpriseDialog = true\\\">\\n COSMOS\\n </div>\\n <div style=\\\"text-align: center; font-size: 18pt\\\">\\n {{ subtitle }}\\n </div>\\n <div v-for=\\\"(tool, name) in adminTools\\\" :key=\\\"name\\\" class=\\\"ma-3\\\">\\n <v-btn\\n block\\n small\\n :href=\\\"tool.url\\\"\\n onclick=\\\"singleSpaNavigate(event)\\\"\\n class=\\\"fixcenter\\\"\\n color=\\\"primary\\\"\\n >\\n Admin Console\\n </v-btn>\\n </div>\\n <v-divider />\\n <v-treeview\\n :items=\\\"items\\\"\\n :open=\\\"initiallyOpen\\\"\\n item-key=\\\"name\\\"\\n dense\\n open-on-click\\n expand-icon=\\\"\\\"\\n >\\n <!-- Beginning Icon -->\\n <template v-slot:prepend=\\\"{ item, open }\\\">\\n <v-icon v-if=\\\"!item.icon\\\">\\n {{ open ? 'mdi-chevron-down' : 'mdi-chevron-right' }}\\n </v-icon>\\n <template v-else>\\n <a\\n v-if=\\\"item.window === 'INLINE'\\\"\\n :href=\\\"item.url\\\"\\n onclick=\\\"singleSpaNavigate(event)\\\"\\n >\\n <v-icon> {{ item.icon }} </v-icon>\\n </a>\\n <a v-else :href=\\\"item.url\\\">\\n <v-icon> {{ item.icon }} </v-icon>\\n </a>\\n </template>\\n </template>\\n\\n <!-- Link Text -->\\n <template v-slot:label=\\\"{ item }\\\">\\n <!-- Category has no Icon -->\\n <a\\n v-if=\\\"!item.icon\\\"\\n :href=\\\"item.url\\\"\\n onclick=\\\"singleSpaNavigate(event)\\\"\\n >\\n {{ item.name }}\\n </a>\\n <template v-else>\\n <!-- Tool Link -->\\n <a\\n v-if=\\\"item.window === 'INLINE'\\\"\\n :href=\\\"item.url\\\"\\n onclick=\\\"singleSpaNavigate(event)\\\"\\n >\\n {{ item.name }}\\n </a>\\n <a\\n v-else-if=\\\"item.window === 'IFRAME'\\\"\\n :href=\\\"\\n '/tools/iframe?title=' +\\n encodeURIComponent(item.name) +\\n '&url=' +\\n item.url\\n \\\"\\n >\\n {{ item.name }}\\n </a>\\n <a v-else-if=\\\"item.window === 'SAME'\\\" :href=\\\"item.url\\\">\\n {{ item.name }}\\n </a>\\n <a v-else :href=\\\"item.url\\\" target=\\\"_blank\\\">\\n <!-- item.window === 'NEW' -->\\n {{ item.name }}\\n </a>\\n </template>\\n </template>\\n\\n <!-- New Tab Link -->\\n <template v-slot:append=\\\"{ item }\\\">\\n <a v-if=\\\"item.icon\\\" :href=\\\"newTabUrl(item)\\\" target=\\\"_blank\\\">\\n <v-icon>mdi-open-in-new</v-icon>\\n </a>\\n </template>\\n </v-treeview>\\n </v-navigation-drawer>\\n <v-app-bar app v-if=\\\"!chromeless\\\" id=\\\"openc3-app-toolbar\\\">\\n <v-row\\n class=\\\"flex-nowrap\\\"\\n justify=\\\"space-between\\\"\\n no-gutters\\n style=\\\"margin-top: 20px\\\"\\n >\\n <v-col align-self=\\\"center\\\">\\n <v-row class=\\\"flex-nowrap\\\">\\n <rux-icon\\n class=\\\"mr-2 pa-2\\\"\\n size=\\\"small\\\"\\n icon=\\\"apps\\\"\\n @click=\\\"drawer = !drawer\\\"\\n ></rux-icon>\\n <span id=\\\"openc3-menu\\\" />\\n </v-row>\\n </v-col>\\n <v-col style=\\\"margin: auto\\\">\\n <rux-clock\\n class=\\\"clock\\\"\\n v-if=\\\"!astro.hideClock\\\"\\n date-in=\\\"\\\"\\n :timezone=\\\"astroTimeZone\\\"\\n ></rux-clock>\\n </v-col>\\n <v-col align-self=\\\"center\\\">\\n <v-row class=\\\"flex-nowrap\\\" style=\\\"margin-top: 10px\\\">\\n <v-spacer />\\n <scope-selector class=\\\"mr-6 mt-4\\\" />\\n <notifications class=\\\"mr-6\\\" data-test=\\\"notifications\\\" />\\n <user-menu class=\\\"mr-3\\\" /> </v-row\\n ></v-col>\\n </v-row>\\n </v-app-bar>\\n <upgrade-to-enterprise-dialog\\n v-model=\\\"showUpgradeToEnterpriseDialog\\\"\\n reason=\\\"Enterprise adds Calendar and Autonomic\\\"\\n ></upgrade-to-enterprise-dialog>\\n </div>\\n</template>\\n\\n<script>\\nimport { OpenC3Api } from '../../services/openc3-api'\\nimport Api from '../../services/api'\\nimport logo from '../../../public/img/logo.png'\\nimport { registerApplication, start } from 'single-spa'\\nimport ScopeSelector from './components/ScopeSelector.vue'\\nimport Notifications from './components/Notifications.vue'\\nimport UserMenu from './components/UserMenu.vue'\\nimport UpgradeToEnterpriseDialog from '../../components/UpgradeToEnterpriseDialog'\\nexport default {\\n components: {\\n ScopeSelector,\\n Notifications,\\n UserMenu,\\n UpgradeToEnterpriseDialog,\\n },\\n props: {\\n edition: {\\n type: String,\\n default: '',\\n },\\n },\\n data() {\\n return {\\n api: new OpenC3Api(),\\n timeZone: 'local',\\n subtitle: null,\\n // Update AstroSettings.vue when changing this\\n astro: {\\n hideClock: false,\\n },\\n items: [],\\n drawer: true,\\n appNav: {},\\n logo: logo,\\n initiallyOpen: [],\\n showUpgradeToEnterpriseDialog: false,\\n chromeless: this.$route.query.chromeless,\\n }\\n },\\n computed: {\\n // a computed getter\\n shownTools: function () {\\n let result = {}\\n for (var key of Object.keys(this.appNav)) {\\n if (this.appNav[key].shown && this.appNav[key].category !== 'Admin') {\\n result[key] = this.appNav[key]\\n }\\n }\\n return result\\n },\\n adminTools: function () {\\n let result = {}\\n for (var key of Object.keys(this.appNav)) {\\n if (this.appNav[key].shown && this.appNav[key].category === 'Admin') {\\n result[key] = this.appNav[key]\\n }\\n }\\n return result\\n },\\n astroTimeZone: function () {\\n if (this.timeZone === 'local') {\\n return Intl.DateTimeFormat().resolvedOptions().timeZone\\n }\\n return this.timeZone\\n },\\n },\\n created() {\\n this.api\\n .get_setting('astro')\\n .then((response) => {\\n if (response) {\\n // The response is an object with settings\\n this.astro = JSON.parse(response)\\n }\\n })\\n .catch((error) => {\\n // Do nothing\\n })\\n this.api\\n .get_setting('subtitle')\\n .then((response) => {\\n if (response) {\\n this.subtitle = response\\n }\\n })\\n .catch((error) => {\\n // Do nothing\\n })\\n this.api\\n .get_setting('time_zone')\\n .then((response) => {\\n if (response) {\\n this.timeZone = response\\n }\\n })\\n .catch((error) => {\\n // Do nothing\\n })\\n // Tools are global and are always installed into the DEFAULT scope\\n Api.get('/openc3-api/tools/all', { params: { scope: 'DEFAULT' } }).then(\\n (response) => {\\n this.appNav = response.data\\n\\n let id = 1\\n // Register apps and start single-spa\\n for (var key of Object.keys(this.appNav)) {\\n if (this.appNav[key].shown) {\\n if (\\n this.appNav[key].category &&\\n this.appNav[key].category !== 'Admin'\\n ) {\\n // TODO: Make this initiallyOpen configurable like with a CATEGORY parameter?\\n this.initiallyOpen.push(this.appNav[key].category)\\n const result = this.items.filter(\\n (item) => item.name === this.appNav[key].category,\\n )\\n if (result.length === 0) {\\n // Create category and first item\\n this.items.push({\\n id: id,\\n name: this.appNav[key].category,\\n children: [\\n {\\n id: id + 1,\\n name: this.appNav[key].name,\\n icon: this.appNav[key].icon,\\n url: this.appNav[key].url,\\n inline_url: this.appNav[key].inline_url,\\n window: this.appNav[key].window,\\n },\\n ],\\n })\\n id++\\n } else {\\n // Add to existing category\\n result[0].children.push({\\n id: id,\\n name: this.appNav[key].name,\\n icon: this.appNav[key].icon,\\n url: this.appNav[key].url,\\n inline_url: this.appNav[key].inline_url,\\n window: this.appNav[key].window,\\n })\\n }\\n } else if (!this.appNav[key].category) {\\n // Create category\\n this.items.push({\\n id: id,\\n name: this.appNav[key].name,\\n icon: this.appNav[key].icon,\\n url: this.appNav[key].url,\\n inline_url: this.appNav[key].inline_url,\\n window: this.appNav[key].window,\\n })\\n }\\n id++\\n }\\n if (\\n this.appNav[key].inline_url &&\\n this.appNav[key].window === 'INLINE'\\n ) {\\n if (\\n this.appNav[key].folder_name &&\\n this.appNav[key].folder_name !== 'base'\\n ) {\\n let folder_name = this.appNav[key].folder_name\\n let name = '@openc3/tool-' + folder_name\\n registerApplication({\\n name: name,\\n app: () => System.import(name),\\n activeWhen: ['/tools/' + folder_name],\\n })\\n }\\n }\\n }\\n start({\\n urlRerouteOnly: true,\\n })\\n\\n // Redirect some base paths to the first tool\\n if (\\n window.location.pathname == '/' ||\\n window.location.pathname == '/tools' ||\\n window.location.pathname == '/tools/'\\n ) {\\n for (var key of Object.keys(this.shownTools)) {\\n if (this.appNav[key].shown) {\\n history.replaceState(null, '', this.appNav[key].url)\\n break\\n }\\n }\\n }\\n\\n // Check every minute if we need to update our token\\n setInterval(() => {\\n OpenC3Auth.updateToken(120).then(function (refreshed) {\\n if (refreshed) {\\n OpenC3Auth.setTokens()\\n }\\n })\\n }, 60000)\\n },\\n )\\n },\\n methods: {\\n newTabUrl(tool) {\\n let url = null\\n if (tool.url[0] == '/' && tool.url[1] != '/') {\\n url = new URL(tool.url, window.location.origin)\\n } else {\\n url = new URL(tool.url)\\n }\\n url.searchParams.set('scope', window.openc3Scope)\\n return url.href\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.clock {\\n margin-top: 10px;\\n justify-content: center;\\n}\\n.logo {\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.cosmos {\\n cursor: pointer;\\n text-align: center;\\n font-size: 18pt;\\n}\\ndiv a {\\n color: white;\\n font-size: 16px;\\n display: block;\\n height: 100%;\\n width: 100%;\\n}\\na.fixcenter {\\n display: flex;\\n}\\n#openc3-app-toolbar .top-bar-divider-full-height {\\n margin: -4px 4px;\\n min-height: calc(100% + 8px);\\n}\\n</style>\\n<style>\\n/* Remove the padding on root level nodes since we removed the expand icon */\\n#openc3-nav-drawer\\n .v-treeview\\n > .v-treeview-node\\n > .v-treeview-node__root\\n > .v-treeview-node__level {\\n width: 0px;\\n}\\n#openc3-nav-drawer\\n .v-treeview\\n > .v-treeview-node\\n > .v-treeview-node__root\\n > .v-treeview-node__toggle {\\n width: 0px;\\n}\\n#openc3-nav-drawer\\n .v-treeview-node__children\\n div.v-treeview-node__level:nth-child(1) {\\n width: 0px;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* push things up and down to make room for the classification banners */\n#app,\n#openc3-nav-drawer {\n margin-top: var(--classification-height-top);\n}\n#openc3-app-toolbar {\n top: var(--classification-height-top);\n}\n#openc3-nav-drawer .v-navigation-drawer__content {\n height: calc(\n 100% - var(--classification-height-top) -\n var(--classification-height-bottom)\n );\n}\n#footer {\n margin-bottom: var(--classification-height-bottom);\n}\n\n/* make the classification banners */\n#app::before,\n#app::after {\n z-index: 99;\n position: fixed;\n left: 0;\n right: 0;\n text-align: center;\n content: var(--classification-text);\n color: var(--classification-font-color);\n background-color: var(--classification-background-color);\n}\n#app::before {\n top: 0;\n font-size: calc(var(--classification-height-top) * 0.7);\n height: var(--classification-height-top);\n}\n#app::after {\n bottom: 0;\n font-size: calc(var(--classification-height-bottom) * 0.7);\n height: var(--classification-height-bottom);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/openc3-tool-common/src/tools/base/components/ClassificationBanners.vue\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EA,wEAAA;AACA;;EAEA,4CAAA;AACA;AACA;EACA,qCAAA;AACA;AACA;EACA;;;GAGA;AACA;AACA;EACA,kDAAA;AACA;;AAEA,oCAAA;AACA;;EAEA,WAAA;EACA,eAAA;EACA,OAAA;EACA,QAAA;EACA,kBAAA;EACA,mCAAA;EACA,uCAAA;EACA,wDAAA;AACA;AACA;EACA,MAAA;EACA,uDAAA;EACA,wCAAA;AACA;AACA;EACA,SAAA;EACA,0DAAA;EACA,2CAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n\\n# Modified by OpenC3, Inc.\\n# All changes Copyright 2022, OpenC3, Inc.\\n# All Rights Reserved\\n#\\n# This file may also be used under the terms of a commercial license\\n# if purchased from OpenC3, Inc.\\n-->\\n\\n<script>\\nimport { OpenC3Api } from '../../../services/openc3-api'\\n\\nexport default {\\n data: function () {\\n return {\\n api: null,\\n classification: {\\n text: '',\\n fontColor: 'white',\\n backgroundColor: 'red',\\n topHeight: 0,\\n bottomHeight: 0,\\n },\\n }\\n },\\n computed: {\\n classificationStyles: function () {\\n // JavaScript can't access CSS psudo-elements (::before and ::after).\\n // This string sets these JS values to CSS variables, accessible to\\n // the style sheet via the style attribute on #app\\n return [\\n `--classification-text:\\\"${this.classification.text}\\\";`,\\n `--classification-font-color:${this.classification.fontColor};`,\\n `--classification-background-color:${this.classification.backgroundColor};`,\\n `--classification-height-top:${this.classification.topHeight}px;`,\\n `--classification-height-bottom:${this.classification.bottomHeight}px;`,\\n ].join('')\\n },\\n },\\n created: function () {\\n this.api = new OpenC3Api()\\n this.load()\\n },\\n methods: {\\n load: function () {\\n this.api\\n .get_setting('classification_banner')\\n .then((response) => {\\n if (response) {\\n this.classification = JSON.parse(response)\\n }\\n })\\n .catch((error) => {\\n // Do nothing\\n })\\n },\\n },\\n}\\n</script>\\n\\n<style>\\n/* push things up and down to make room for the classification banners */\\n#app,\\n#openc3-nav-drawer {\\n margin-top: var(--classification-height-top);\\n}\\n#openc3-app-toolbar {\\n top: var(--classification-height-top);\\n}\\n#openc3-nav-drawer .v-navigation-drawer__content {\\n height: calc(\\n 100% - var(--classification-height-top) -\\n var(--classification-height-bottom)\\n );\\n}\\n#footer {\\n margin-bottom: var(--classification-height-bottom);\\n}\\n\\n/* make the classification banners */\\n#app::before,\\n#app::after {\\n z-index: 99;\\n position: fixed;\\n left: 0;\\n right: 0;\\n text-align: center;\\n content: var(--classification-text);\\n color: var(--classification-font-color);\\n background-color: var(--classification-background-color);\\n}\\n#app::before {\\n top: 0;\\n font-size: calc(var(--classification-height-top) * 0.7);\\n height: var(--classification-height-top);\\n}\\n#app::after {\\n bottom: 0;\\n font-size: calc(var(--classification-height-bottom) * 0.7);\\n height: var(--classification-height-bottom);\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.v-subheader[data-v-eda8ca60] {\n height: 28px;\n}\n.v-badge[data-v-eda8ca60] {\n width: 100%;\n}\n.overlay[data-v-eda8ca60] {\n height: 100vh;\n width: 100vw;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/openc3-tool-common/src/tools/base/components/Notifications.vue\"],\"names\":[],\"mappings\":\";AA6bA;EACA,YAAA;AACA;AACA;EACA,WAAA;AACA;AACA;EACA,aAAA;EACA,YAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n\\n# Modified by OpenC3, Inc.\\n# All changes Copyright 2023, OpenC3, Inc.\\n# All Rights Reserved\\n#\\n# This file may also be used under the terms of a commercial license\\n# if purchased from OpenC3, Inc.\\n-->\\n\\n<template>\\n <div>\\n <v-overlay :value=\\\"showNotificationPane\\\" class=\\\"overlay\\\" />\\n <v-menu\\n v-model=\\\"showNotificationPane\\\"\\n transition=\\\"slide-y-transition\\\"\\n :close-on-content-click=\\\"false\\\"\\n :nudge-width=\\\"340\\\"\\n offset-y\\n :nudge-bottom=\\\"20\\\"\\n >\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <rux-monitoring-icon\\n v-bind=\\\"attrs\\\"\\n v-on=\\\"on\\\"\\n class=\\\"rux-icon\\\"\\n :icon=\\\"notificationVsAlert\\\"\\n label=\\\"Notifications\\\"\\n :sublabel=\\\"activeScripts\\\"\\n :status=\\\"iconStatus\\\"\\n :notifications=\\\"unreadNotifications.length\\\"\\n ></rux-monitoring-icon>\\n </template>\\n\\n <!-- Notifications list -->\\n <v-card>\\n <v-card-title>\\n Notifications\\n <v-spacer />\\n <v-tooltip top open-delay=\\\"350\\\">\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <v-btn\\n icon\\n v-bind=\\\"attrs\\\"\\n v-on=\\\"on\\\"\\n class=\\\"ml-1\\\"\\n @click=\\\"clearNotifications\\\"\\n data-test=\\\"clear-notifications\\\"\\n >\\n <v-icon> mdi-close-box-multiple </v-icon>\\n </v-btn>\\n </template>\\n <span>Clear all</span>\\n </v-tooltip>\\n <v-btn\\n icon\\n @click=\\\"toggleSettingsDialog\\\"\\n class=\\\"ml-1\\\"\\n data-test=\\\"notification-settings\\\"\\n >\\n <v-icon> $astro-settings </v-icon>\\n </v-btn>\\n </v-card-title>\\n <v-card-text v-if=\\\"notifications.length === 0\\\">\\n No notifications\\n </v-card-text>\\n <v-list\\n v-else\\n two-line\\n width=\\\"420\\\"\\n max-height=\\\"80vh\\\"\\n class=\\\"overflow-y-auto\\\"\\n data-test=\\\"notification-list\\\"\\n >\\n <template v-for=\\\"(notification, index) in notificationList\\\">\\n <template v-if=\\\"notification.header\\\">\\n <v-divider v-if=\\\"index !== 0\\\" :key=\\\"index\\\" class=\\\"mb-2\\\" />\\n <v-subheader :key=\\\"notification.header\\\">\\n {{ notification.header }}\\n </v-subheader>\\n </template>\\n\\n <v-list-item\\n v-else\\n :key=\\\"`notification-${index}`\\\"\\n @click=\\\"openDialog(notification)\\\"\\n class=\\\"pl-2\\\"\\n >\\n <v-badge left inline color=\\\"transparent\\\">\\n <v-list-item-content class=\\\"pt-0 pb-0\\\">\\n <v-list-item-title\\n :class=\\\"{\\n 'text--secondary': notification.read,\\n 'text-wrap': true,\\n }\\\"\\n >\\n {{ notification.message }}\\n </v-list-item-title>\\n <v-list-item-subtitle>\\n {{ notification.time | shortDateTime }}\\n </v-list-item-subtitle>\\n <div style=\\\"height: 20px\\\" />\\n </v-list-item-content>\\n <template v-slot:badge>\\n <rux-status\\n :status=\\\"getStatus(notification.level)\\\"\\n ></rux-status>\\n </template>\\n </v-badge>\\n </v-list-item>\\n </template>\\n </v-list>\\n </v-card>\\n </v-menu>\\n\\n <!-- Dialog for viewing full notification -->\\n <v-dialog v-model=\\\"notificationDialog\\\" width=\\\"600\\\">\\n <v-card>\\n <v-card-title>\\n {{ selectedNotification.message }}\\n <v-spacer />\\n <astro-status-indicator\\n :status=\\\"selectedNotification.level || 'INFO'\\\"\\n />\\n </v-card-title>\\n <v-card-subtitle>\\n {{ selectedNotification.time | shortDateTime }}\\n </v-card-subtitle>\\n <v-divider />\\n <v-card-actions>\\n <v-btn\\n v-if=\\\"selectedNotification.url\\\"\\n color=\\\"primary\\\"\\n text\\n @click=\\\"navigate(selectedNotification.url)\\\"\\n >\\n Open\\n <v-icon right> mdi-open-in-new </v-icon>\\n </v-btn>\\n <v-btn color=\\\"primary\\\" text @click=\\\"notificationDialog = false\\\">\\n Close\\n </v-btn>\\n </v-card-actions>\\n </v-card>\\n </v-dialog>\\n\\n <!-- Dialog for changing notification settings -->\\n <v-dialog v-model=\\\"settingsDialog\\\" width=\\\"600\\\">\\n <v-card>\\n <v-card-title> Notification settings </v-card-title>\\n <v-card-text>\\n <v-switch v-model=\\\"showToast\\\" label=\\\"Show toasts\\\" />\\n </v-card-text>\\n <v-divider />\\n <v-card-actions>\\n <v-btn color=\\\"primary\\\" text @click=\\\"toggleSettingsDialog\\\">\\n Close\\n </v-btn>\\n </v-card-actions>\\n </v-card>\\n </v-dialog>\\n </div>\\n</template>\\n\\n<script>\\nimport { formatDistanceToNow } from 'date-fns'\\nimport {\\n AstroStatusColors,\\n UnknownToAstroStatus,\\n} from '../../../components/icons'\\nimport { highestLevel, orderByLevel, groupByLevel } from '../util/AstroStatus'\\nimport Cable from '../../../services/cable.js'\\nimport Api from '../../../services/api'\\n\\nconst NOTIFICATION_HISTORY_MAX_LENGTH = 1000\\n\\nexport default {\\n props: {\\n size: {\\n type: [String, Number],\\n default: 26,\\n },\\n },\\n data: function () {\\n return {\\n AstroStatusColors,\\n alerts: [],\\n cable: new Cable(),\\n scriptCable: new Cable('/script-api/cable'),\\n subscription: null,\\n scriptSubscription: null,\\n numScripts: 0,\\n notifications: [],\\n showNotificationPane: false,\\n toastNotification: {},\\n notificationDialog: false,\\n selectedNotification: {},\\n settingsDialog: false,\\n showToast: true,\\n }\\n },\\n computed: {\\n activeScripts: function () {\\n return `Scripts: ${this.numScripts}`\\n },\\n notificationVsAlert: function () {\\n // TODO: Determine if this is a notification or alert\\n return 'notifications'\\n // return 'warning'\\n },\\n iconStatus: function () {\\n if (this.unreadNotifications.length === 0) {\\n return 'off'\\n }\\n const levels = this.unreadNotifications\\n .map((notification) => notification.level)\\n .filter((val, index, self) => {\\n return self.indexOf(val) === index // Unique values\\n })\\n return UnknownToAstroStatus[highestLevel(levels)]\\n },\\n readNotifications: function () {\\n return this.notifications\\n .filter((notification) => notification.read)\\n .sort((a, b) => b.time - a.time)\\n },\\n unreadNotifications: function () {\\n return this.notifications\\n .filter((notification) => !notification.read)\\n .sort((a, b) => b.time - a.time)\\n },\\n unreadCount: function () {\\n return this.unreadNotifications.length\\n },\\n notificationList: function () {\\n const groups = groupByLevel(this.unreadNotifications)\\n let result = orderByLevel(Object.keys(groups), (k) => k).flatMap(\\n (level) => {\\n const header = {\\n header: level.charAt(0).toUpperCase() + level.slice(1),\\n }\\n return [header, ...groups[level]]\\n },\\n )\\n if (this.readNotifications.length) {\\n result = result.concat([{ header: 'Read' }, ...this.readNotifications])\\n }\\n return result\\n },\\n },\\n watch: {\\n showNotificationPane: function (val) {\\n if (!val) {\\n if (this.selectedNotification.message) {\\n this.notificationDialog = false\\n this.selectedNotification = {}\\n } else {\\n this.markAllAsRead()\\n }\\n }\\n },\\n showToast: function (val) {\\n localStorage.notoast = !val\\n },\\n },\\n created: function () {\\n this.showToast = localStorage.notoast === 'false'\\n this.subscribe()\\n // TODO How does this get updated after initialization\\n this.alerts = this.$store.state.notifyHistory\\n // Get the initial number of running scripts\\n Api.get('/script-api/running-script').then((response) => {\\n this.numScripts = response.data.length\\n })\\n },\\n destroyed: function () {\\n if (this.subscription) {\\n this.subscription.unsubscribe()\\n }\\n if (this.scriptSubscription) {\\n this.scriptSubscription.unsubscribe()\\n }\\n this.cable.disconnect()\\n this.scriptCable.disconnect()\\n },\\n methods: {\\n getStatus: function (level) {\\n return UnknownToAstroStatus[level]\\n },\\n markAllAsRead: function () {\\n this.notifications.forEach((notification) => {\\n notification.read = true\\n if (\\n !localStorage.lastReadNotification ||\\n localStorage.lastReadNotification < notification.msg_id\\n ) {\\n localStorage.lastReadNotification = notification.msg_id\\n }\\n })\\n },\\n clearNotifications: function () {\\n this.markAllAsRead()\\n this.notifications = []\\n localStorage.notificationStreamOffset = localStorage.lastReadNotification\\n this.showNotificationPane = false\\n },\\n toggleNotificationPane: function () {\\n this.showNotificationPane = !this.showNotificationPane\\n },\\n toggleSettingsDialog: function () {\\n this.settingsDialog = !this.settingsDialog\\n },\\n openDialog: function (notification, clearToast = false) {\\n notification.read = true\\n if (\\n !localStorage.lastReadNotification ||\\n localStorage.lastReadNotification < notification.msg_id\\n ) {\\n localStorage.lastReadNotification = notification.msg_id\\n }\\n this.selectedNotification = notification\\n this.notificationDialog = true\\n },\\n navigate: function (url) {\\n window.open(url, '_blank')\\n },\\n subscribe: function () {\\n this.cable\\n .createSubscription(\\n 'MessagesChannel',\\n window.openc3Scope,\\n {\\n received: (data) => this.receiveMessage(data),\\n },\\n {\\n start_offset:\\n localStorage.notificationStreamOffset ||\\n localStorage.lastReadNotification,\\n types: ['notification', 'alert', 'ephemeral'],\\n },\\n )\\n .then((subscription) => {\\n this.subscription = subscription\\n })\\n this.scriptCable\\n .createSubscription('AllScriptsChannel', window.openc3Scope, {\\n received: (data) => this.receiveScript(data),\\n })\\n .then((subscription) => {\\n this.scriptSubscription = subscription\\n })\\n },\\n receiveMessage: function (parsed) {\\n this.cable.recordPing()\\n\\n // Cut down if we're being flooded\\n if (parsed.length > NOTIFICATION_HISTORY_MAX_LENGTH) {\\n parsed.splice(0, parsed.length - NOTIFICATION_HISTORY_MAX_LENGTH)\\n }\\n\\n // Filter out ephemeral\\n let ephemeral = parsed.filter(\\n (someobject) => someobject.type === 'ephemeral',\\n )\\n if (ephemeral && ephemeral.length > 0) {\\n // Remove ephemeral from parsed\\n parsed = parsed.filter((someobject) => someobject.type !== 'ephemeral')\\n // Emit the ephemeral\\n ephemeral.forEach((notification) => {\\n this.$emit('ephemeral', notification)\\n })\\n }\\n\\n let foundToast = false\\n parsed.forEach((notification) => {\\n notification.read =\\n notification.msg_id <= localStorage.lastReadNotification\\n notification.level = notification.level || 'INFO'\\n if (\\n !notification.read && // Don't toast read notifications\\n ['FATAL', 'ERROR', 'WARN'].includes(notification.level) // Toast for these statuses\\n ) {\\n foundToast = true\\n this.toastNotification = notification\\n }\\n })\\n\\n if (this.showToast && foundToast) {\\n let duration = 5000\\n if (['FATAL', 'ERROR'].includes(this.toastNotification.level)) {\\n duration = null\\n }\\n\\n // Notify takes a minute to be ready on app load\\n if (this.$notify) {\\n this.$notify[this.toastNotification.level]({\\n ...this.toastNotification,\\n type: 'notification',\\n duration: duration,\\n saveToHistory: false,\\n })\\n }\\n }\\n\\n if (\\n this.notifications.length + parsed.length >\\n NOTIFICATION_HISTORY_MAX_LENGTH\\n ) {\\n this.notifications.splice(\\n 0,\\n this.notifications.length +\\n parsed.length -\\n NOTIFICATION_HISTORY_MAX_LENGTH,\\n )\\n }\\n this.notifications = this.notifications.concat(parsed)\\n },\\n receiveScript: function (data) {\\n this.cable.recordPing()\\n this.numScripts = data['active_scripts']\\n },\\n },\\n filters: {\\n shortDateTime: function (nsec) {\\n if (!nsec) return ''\\n const date = new Date(nsec / 1_000_000)\\n return formatDistanceToNow(date, { addSuffix: true })\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.v-subheader {\\n height: 28px;\\n}\\n.v-badge {\\n width: 100%;\\n}\\n.overlay {\\n height: 100vh;\\n width: 100vw;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../openc3-tool-base/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.link[data-v-26b5fc12] {\n cursor: pointer;\n}\n.overlay[data-v-26b5fc12] {\n height: 100vh;\n width: 100vw;\n}\n.user-title[data-v-26b5fc12] {\n font-weight: bold;\n}\n.user[data-v-26b5fc12],\n.roles[data-v-26b5fc12] {\n font-size: 0.8rem;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/openc3-tool-common/src/tools/base/components/UserMenu.vue\"],\"names\":[],\"mappings\":\";AA6JA;EACA,eAAA;AACA;AACA;EACA,aAAA;EACA,YAAA;AACA;AACA;EACA,iBAAA;AACA;AACA;;EAEA,iBAAA;AACA\",\"sourcesContent\":[\"<!--\\n# Copyright 2022 Ball Aerospace & Technologies Corp.\\n# All Rights Reserved.\\n#\\n# This program is free software; you can modify and/or redistribute it\\n# under the terms of the GNU Affero General Public License\\n# as published by the Free Software Foundation; version 3 with\\n# attribution addendums as found in the LICENSE.txt\\n#\\n# This program is distributed in the hope that it will be useful,\\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n# GNU Affero General Public License for more details.\\n\\n# Modified by OpenC3, Inc.\\n# All changes Copyright 2024, OpenC3, Inc.\\n# All Rights Reserved\\n#\\n# This file may also be used under the terms of a commercial license\\n# if purchased from OpenC3, Inc.\\n-->\\n\\n<template>\\n <div>\\n <v-overlay :value=\\\"showUserMenu\\\" class=\\\"overlay\\\" />\\n <v-menu\\n v-model=\\\"showUserMenu\\\"\\n transition=\\\"slide-y-transition\\\"\\n offset-y\\n :close-on-content-click=\\\"false\\\"\\n :nudge-width=\\\"120\\\"\\n :nudge-bottom=\\\"20\\\"\\n >\\n <template v-slot:activator=\\\"{ on, attrs }\\\">\\n <rux-monitoring-icon\\n v-bind=\\\"attrs\\\"\\n v-on=\\\"on\\\"\\n class=\\\"rux-icon\\\"\\n icon=\\\"person\\\"\\n status=\\\"off\\\"\\n :label=\\\"name\\\"\\n :sublabel=\\\"roles()\\\"\\n ></rux-monitoring-icon>\\n </template>\\n\\n <v-card>\\n <v-card-text class=\\\"text-center\\\">\\n <div style=\\\"text-align: center; margin: 5px\\\">\\n {{ name }}\\n </div>\\n <div v-if=\\\"name !== 'Anonymous'\\\">\\n <div class=\\\"roles\\\">Username: {{ username }}</div>\\n <div class=\\\"pb-3 roles\\\">Roles: {{ roles() }}</div>\\n </div>\\n <div v-if=\\\"authenticated\\\">\\n <v-btn block @click=\\\"logout\\\" color=\\\"primary\\\"> Logout </v-btn>\\n <div class=\\\"pa-3\\\" v-if=\\\"name !== 'Anonymous'\\\">\\n <v-row class=\\\"pt-3 user-title\\\">Other Active Users:</v-row>\\n <v-row\\n v-for=\\\"(user, index) in activeUsers\\\"\\n :key=\\\"index\\\"\\n class=\\\"user\\\"\\n >\\n {{ user }}\\n </v-row>\\n </div>\\n </div>\\n <div v-else>\\n <v-btn block @click=\\\"login\\\" color=\\\"primary\\\"> Login </v-btn>\\n </div>\\n <div\\n v-if=\\\"name === 'Anonymous'\\\"\\n @click=\\\"showUpgradeToEnterpriseDialog = true\\\"\\n class=\\\"pt-2 link\\\"\\n >\\n Click to learn more about<br />\\n COSMOS Enterprise Edition\\n </div>\\n </v-card-text>\\n </v-card>\\n </v-menu>\\n <upgrade-to-enterprise-dialog\\n v-model=\\\"showUpgradeToEnterpriseDialog\\\"\\n reason=\\\"Enterprise has individual users with RBAC\\\"\\n ></upgrade-to-enterprise-dialog>\\n </div>\\n</template>\\n\\n<script>\\nimport Api from '../../../services/api'\\nimport UpgradeToEnterpriseDialog from '../../../components/UpgradeToEnterpriseDialog'\\n\\nexport default {\\n components: {\\n UpgradeToEnterpriseDialog,\\n },\\n props: {\\n size: {\\n type: [String, Number],\\n default: 26,\\n },\\n },\\n data: function () {\\n let user = OpenC3Auth.user()\\n return {\\n showUserMenu: false,\\n authenticated: !!localStorage.openc3Token,\\n name: user['name'],\\n // preferred_username is returned by the token (see authorization.rb)\\n username: user['preferred_username'],\\n showUpgradeToEnterpriseDialog: false,\\n activeUsers: ['None'],\\n }\\n },\\n watch: {\\n // Whenever we show the user menu, refresh the list of active users\\n showUserMenu: function (newValue, oldValue) {\\n if (newValue === true) {\\n if (this.name !== 'Anonymous') {\\n Api.get('/openc3-api/users/active').then((response) => {\\n this.activeUsers = response.data.filter(\\n (item) => !item.includes(this.name),\\n )\\n if (this.activeUsers.length === 0) {\\n this.activeUsers = ['None']\\n }\\n })\\n }\\n }\\n },\\n },\\n methods: {\\n logout: function () {\\n OpenC3Auth.logout()\\n Api.put(`/openc3-api/users/logout/${this.username}`)\\n },\\n login: function () {\\n OpenC3Auth.login(location.href)\\n },\\n roles: function () {\\n if (this.name === 'Anonymous') {\\n return 'Admin'\\n } else {\\n return OpenC3Auth.userroles()\\n .map((element) => this.capitalize(element))\\n .sort()\\n .join(', ')\\n }\\n },\\n capitalize: function (string) {\\n return string.charAt(0).toUpperCase() + string.slice(1)\\n },\\n },\\n}\\n</script>\\n\\n<style scoped>\\n.link {\\n cursor: pointer;\\n}\\n.overlay {\\n height: 100vh;\\n width: 100vw;\\n}\\n.user-title {\\n font-weight: bold;\\n}\\n.user,\\n.roles {\\n font-size: 0.8rem;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","const resolveDirectory = require(\"../public-path\").resolveDirectory;\n\nexports.autoPublicPath = function autoPublicPath(rootDirLevel) {\n if (!rootDirLevel) {\n rootDirLevel = 1;\n }\n\n if (typeof __webpack_public_path__ !== \"undefined\") {\n if (typeof __system_context__ === \"undefined\") {\n throw Error(\n \"systemjs-webpack-interop requires webpack@>=5.0.0-beta.15 and output.libraryTarget set to 'system'\"\n );\n }\n\n if (!__system_context__.meta || !__system_context__.meta.url) {\n console.error(\"__system_context__\", __system_context__);\n throw Error(\n \"systemjs-webpack-interop was provided an unknown SystemJS context. Expected context.meta.url, but none was provided\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(\n __system_context__.meta.url,\n rootDirLevel\n );\n }\n};\n","exports.setPublicPath = function setPublicPath(\n systemjsModuleName,\n rootDirectoryLevel\n) {\n if (!rootDirectoryLevel) {\n rootDirectoryLevel = 1;\n }\n if (\n typeof systemjsModuleName !== \"string\" ||\n systemjsModuleName.trim().length === 0\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName) must be called with a non-empty string 'systemjsModuleName'\"\n );\n }\n\n if (\n typeof rootDirectoryLevel !== \"number\" ||\n rootDirectoryLevel <= 0 ||\n isNaN(rootDirectoryLevel) ||\n !isInteger(rootDirectoryLevel)\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName, rootDirectoryLevel) must be called with a positive integer 'rootDirectoryLevel'\"\n );\n }\n\n var moduleUrl;\n try {\n moduleUrl = window.System.resolve(systemjsModuleName);\n if (!moduleUrl) {\n throw Error();\n }\n } catch (err) {\n throw Error(\n \"systemjs-webpack-interop: There is no such module '\" +\n systemjsModuleName +\n \"' in the SystemJS registry. Did you misspell the name of your module?\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(moduleUrl, rootDirectoryLevel);\n};\n\nfunction resolveDirectory(urlString, rootDirectoryLevel) {\n // Our friend IE11 doesn't support new URL()\n // https://github.com/single-spa/single-spa/issues/612\n // https://gist.github.com/jlong/2428561\n\n var a = document.createElement(\"a\");\n a.href = urlString;\n\n var pathname = a.pathname[0] === \"/\" ? a.pathname : \"/\" + a.pathname;\n var numDirsProcessed = 0,\n index = pathname.length;\n while (numDirsProcessed !== rootDirectoryLevel && index >= 0) {\n var char = pathname[--index];\n if (char === \"/\") {\n numDirsProcessed++;\n }\n }\n\n if (numDirsProcessed !== rootDirectoryLevel) {\n throw Error(\n \"systemjs-webpack-interop: rootDirectoryLevel (\" +\n rootDirectoryLevel +\n \") is greater than the number of directories (\" +\n numDirsProcessed +\n \") in the URL path \" +\n urlString\n );\n }\n\n var finalPath = pathname.slice(0, index + 1);\n\n return a.protocol + \"//\" + a.host + finalPath;\n}\n\nexports.resolveDirectory = resolveDirectory;\n\n// borrowed from https://github.com/parshap/js-is-integer/blob/master/index.js\nvar isInteger =\n Number.isInteger ||\n function isInteger(val) {\n return typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n };\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js!../../../../../../openc3-tool-base/node_modules/sass-loader/dist/cjs.js!./layout.scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../openc3-tool-base/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2eb15b17\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js!../../../../../../openc3-tool-base/node_modules/sass-loader/dist/cjs.js!./layout.scss\", function() {\n var newContent = require(\"!!../../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js!../../../../../../openc3-tool-base/node_modules/sass-loader/dist/cjs.js!./layout.scss\");\n if(newContent.__esModule) newContent = newContent.default;\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__496__;","module.exports = __WEBPACK_EXTERNAL_MODULE__649__;","module.exports = __WEBPACK_EXTERNAL_MODULE__105__;","module.exports = __WEBPACK_EXTERNAL_MODULE__903__;","module.exports = __WEBPACK_EXTERNAL_MODULE__459__;","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.y = __system_context__;","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".openc3-tool-base.js\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktool_base\"] = self[\"webpackChunktool_base\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","const autoPublicPath = require(\"./auto-public-path\").autoPublicPath;\n\nautoPublicPath(1);\n","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-app\",\n { style: _vm.classificationStyles },\n [\n _c(\"app-nav\", { staticClass: \"d-print-none\" }),\n _vm._v(\" \"),\n _c(\n \"v-main\",\n { style: _vm.mainStyle },\n [\n _c(\"v-container\", { attrs: { fluid: \"\" } }, [\n _c(\"div\", {\n staticStyle: { overflow: \"auto\" },\n attrs: { id: \"openc3-tool\" },\n }),\n _vm._v(\" \"),\n _c(\"div\", [_c(\"router-view\")], 1),\n ]),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"app-footer\", { staticClass: \"d-print-none\", attrs: { app: \"\" } }),\n _vm._v(\" \"),\n _c(\"time-check\"),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return !_vm.chromeless\n ? _c(\n \"v-footer\",\n { attrs: { id: \"footer\", app: \"\", height: \"33\" } },\n [\n _c(\"img\", { attrs: { src: _vm.icon, alt: \"OpenC3\" } }),\n _vm._v(\" \"),\n _c(\"span\", { class: _vm.footerClass, on: { click: _vm.upgrade } }, [\n _vm._v(\n \"OpenC3 \" +\n _vm._s(_vm.edition) +\n \" \" +\n _vm._s(_vm.version) +\n \" © 2024 - License:\\n \" +\n _vm._s(_vm.license)\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"a\",\n {\n staticClass: \"white--text text-decoration-underline\",\n attrs: { href: _vm.sourceUrl },\n },\n [_vm._v(\"\\n Source\\n \")]\n ),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"justify-right\" }, [_c(\"clock-footer\")], 1),\n _vm._v(\" \"),\n _c(\"upgrade-to-enterprise-dialog\", {\n attrs: { reason: \"Enterprise is Commercially Licensed\" },\n model: {\n value: _vm.showUpgradeToEnterpriseDialog,\n callback: function ($$v) {\n _vm.showUpgradeToEnterpriseDialog = $$v\n },\n expression: \"showUpgradeToEnterpriseDialog\",\n },\n }),\n ],\n 1\n )\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"span\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"font-weight-bold\",\n staticStyle: { cursor: \"context-menu\" },\n on: { contextmenu: _vm.openMenu },\n },\n \"span\",\n _vm.attrs,\n false\n ),\n _vm.on\n ),\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"date\")(\n _vm.displayLocal ? _vm.localDate : _vm.utcDate,\n _vm.formatString\n )\n ) +\n \"\\n (\" +\n _vm._s(_vm.displayLocal ? \"local\" : \"UTC\") +\n \")\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n \"position-x\": _vm.menuX,\n \"position-y\": _vm.menuY,\n absolute: \"\",\n \"offset-y\": \"\",\n },\n model: {\n value: _vm.showMenu,\n callback: function ($$v) {\n _vm.showMenu = $$v\n },\n expression: \"showMenu\",\n },\n },\n [\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.toggleDisplayLocal },\n },\n [\n _vm._v(\n \"\\n Display \" +\n _vm._s(_vm.displayLocal ? \"UTC\" : \"local time\") +\n \"\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.toggleDisplay24h },\n },\n [\n _vm._v(\n \"\\n Display \" +\n _vm._s(_vm.display24h ? 12 : 24) +\n \" hour clock\\n \"\n ),\n ]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _vm.dateMode !== \"monthFirst\"\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.setMonthFirst },\n },\n [_vm._v(\"\\n Display mm/dd/yyyy\\n \")]\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.dateMode !== \"dayFirst\"\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.setDayFirst },\n },\n [_vm._v(\"\\n Display dd/mm/yyyy\\n \")]\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.dateMode !== \"number\"\n ? _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-title\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: { click: _vm.setNumber },\n },\n [_vm._v(\"\\n Display day of year\\n \")]\n ),\n ],\n 1\n )\n : _vm._e(),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import mod from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./ClockFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./ClockFooter.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <span\n v-bind=\"attrs\"\n v-on=\"on\"\n style=\"cursor: context-menu\"\n class=\"font-weight-bold\"\n @contextmenu=\"openMenu\"\n >\n {{ (displayLocal ? localDate : utcDate) | date(formatString) }}\n ({{ displayLocal ? 'local' : 'UTC' }})\n </span>\n <v-menu\n v-model=\"showMenu\"\n :position-x=\"menuX\"\n :position-y=\"menuY\"\n absolute\n offset-y\n >\n <v-list>\n <v-list-item>\n <v-list-item-title\n style=\"cursor: pointer\"\n @click=\"toggleDisplayLocal\"\n >\n Display {{ displayLocal ? 'UTC' : 'local time' }}\n </v-list-item-title>\n </v-list-item>\n <v-divider />\n <v-list-item>\n <v-list-item-title style=\"cursor: pointer\" @click=\"toggleDisplay24h\">\n Display {{ display24h ? 12 : 24 }} hour clock\n </v-list-item-title>\n </v-list-item>\n <v-divider />\n <v-list-item v-if=\"dateMode !== 'monthFirst'\">\n <v-list-item-title style=\"cursor: pointer\" @click=\"setMonthFirst\">\n Display mm/dd/yyyy\n </v-list-item-title>\n </v-list-item>\n <v-list-item v-if=\"dateMode !== 'dayFirst'\">\n <v-list-item-title style=\"cursor: pointer\" @click=\"setDayFirst\">\n Display dd/mm/yyyy\n </v-list-item-title>\n </v-list-item>\n <v-list-item v-if=\"dateMode !== 'number'\">\n <v-list-item-title style=\"cursor: pointer\" @click=\"setNumber\">\n Display day of year\n </v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n </div>\n</template>\n\n<script>\nimport { format } from 'date-fns'\n\nexport default {\n data: function () {\n return {\n localDate: new Date(),\n displayLocal: localStorage.clock_zone === 'local',\n display24h: !localStorage.clock_12h,\n dateMode: localStorage.clock_dateMode || 'monthFirst',\n intervalCount: 0,\n showMenu: false,\n menuX: 0,\n menuY: 0,\n }\n },\n computed: {\n utcDate: function () {\n return new Date(\n this.localDate.getTime() + this.localDate.getTimezoneOffset() * 60000\n )\n },\n formatString: function () {\n let dateFormat\n switch (this.dateMode) {\n case 'monthFirst':\n dateFormat = 'LL/dd/yyy'\n break\n case 'dayFirst':\n dateFormat = 'dd/LL/yyy'\n break\n case 'number':\n dateFormat = 'D'\n break\n }\n\n let timeFormat\n if (this.display24h) {\n timeFormat = 'HH:mm:ss'\n } else {\n timeFormat = 'hh:mm:ss a'\n }\n\n return `${dateFormat} ${timeFormat}`\n },\n },\n watch: {\n displayLocal: function (val) {\n localStorage.clock_zone = val ? 'local' : 'utc'\n },\n display24h: function (val) {\n // store opposite because it makes default value (true) easier\n if (val) {\n delete localStorage.clock_12h\n } else {\n localStorage.clock_12h = true\n }\n },\n dateMode: function (val) {\n if (val.match(/^monthFirst$|^dayFirst$|^number$/)) {\n localStorage.clock_dateMode = val\n }\n },\n },\n created: function () {\n setInterval(\n () => {\n this.intervalCount++\n this.localDate = new Date()\n },\n this.intervalCount < 10 ? 100 : 1000 // get the seconds to about 100ms accuracy\n )\n },\n methods: {\n openMenu: function (event) {\n event.preventDefault()\n this.showMenu = false\n this.menuX = event.clientX\n this.menuY = event.clientY\n this.$nextTick(() => {\n this.showMenu = true\n })\n },\n toggleDisplayLocal: function () {\n this.displayLocal = !this.displayLocal\n },\n toggleDisplay24h: function () {\n this.display24h = !this.display24h\n },\n setMonthFirst: function () {\n this.dateMode = 'monthFirst'\n },\n setDayFirst: function () {\n this.dateMode = 'dayFirst'\n },\n setNumber: function () {\n this.dateMode = 'number'\n },\n },\n filters: {\n date: function (val, formatString) {\n return format(val, formatString, { useAdditionalDayOfYearTokens: true })\n },\n },\n}\n</script>\n","import { render, staticRenderFns } from \"./ClockFooter.vue?vue&type=template&id=e0e3869e&\"\nimport script from \"./ClockFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./ClockFooter.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('e0e3869e')) {\n api.createRecord('e0e3869e', component.options)\n } else {\n api.reload('e0e3869e', component.options)\n }\n module.hot.accept(\"./ClockFooter.vue?vue&type=template&id=e0e3869e&\", function () {\n api.rerender('e0e3869e', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/tools/base/components/ClockFooter.vue\"\nexport default component.exports","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport axios from './axios.js'\n\nexport class OpenC3Api {\n id = 1\n\n constructor() {}\n\n async exec(\n method,\n params,\n kwparams = {},\n headerOptions = {},\n timeout = 60000,\n ) {\n try {\n let refreshed = await OpenC3Auth.updateToken(\n OpenC3Auth.defaultMinValidity,\n )\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n } catch (error) {\n OpenC3Auth.login()\n }\n this.id = this.id + 1\n try {\n kwparams['scope'] = window.openc3Scope\n // Everything from the front-end is manual by default\n // The various api methods decide whether to pass the manual\n // flag to the authorize routine\n headerOptions['manual'] = true\n const response = await axios.post(\n '/openc3-api/api',\n {\n jsonrpc: '2.0',\n method: method,\n params: params,\n id: this.id,\n keyword_params: kwparams,\n },\n {\n headers: {\n Authorization: localStorage.openc3Token,\n 'Content-Type': 'application/json-rpc',\n ...headerOptions,\n },\n timeout: timeout,\n },\n )\n // let data = response.data\n // if (data.error) {\n // let err = new Error()\n // err.name = data.error.data.class\n // err.message = data.error.data.message\n // console.log(data.error.data.backtrace.join('\\n'))\n // throw err\n // }\n return response.data.result\n } catch (error) {\n let err = new Error()\n if (error.response) {\n // The request was made and the server responded with a\n // status code that falls out of the range of 2xx\n err.name = error.response.data.error.data.class\n err.message = error.response.data.error.data.message\n err.object = error.response.data.error\n } else if (error.request) {\n // The request was made but no response was received, `error.request`\n // is an instance of XMLHttpRequest in the browser and an instance\n // of http.ClientRequest in Node.js\n err.name = 'Request error'\n // NOTE: Openc3Screen.vue uses this specific message to determine\n // if the CmdTlmApi server is down. Don't change unless also changing there.\n err.message = 'Request error, no response received'\n } else {\n // Something happened in setting up the request and triggered an Error\n err.name = 'Unknown error'\n }\n throw err\n }\n }\n\n decode_openc3_type(val) {\n if (val !== null && typeof val === 'object') {\n if (val.json_class == 'Float' && val.raw) {\n if (val.raw == 'NaN') {\n return NaN\n } else if (val.raw == 'Infinity') {\n return Infinity\n } else if (val.raw == '-Infinity') {\n return -Infinity\n }\n }\n }\n return null\n }\n\n encode_openc3_type(val) {\n if (Number.isNaN(val)) {\n return { json_class: 'Float', raw: 'NaN' }\n } else if (val == Number.POSITIVE_INFINITY) {\n return { json_class: 'Float', raw: 'Infinity' }\n } else if (val == Number.NEGATIVE_INFINITY) {\n return { json_class: 'Float', raw: '-Infinity' }\n }\n return null\n }\n\n ensure_offline_access() {\n this.offline_access_needed().then((needed) => {\n if (needed) {\n if (localStorage.openc3OfflineToken) {\n this.set_offline_access(localStorage.openc3OfflineToken).then(() => {\n delete localStorage.openc3OfflineToken\n })\n } else {\n OpenC3Auth.getOfflineAccess()\n }\n }\n })\n }\n\n // ***********************************************\n // The following APIs are used by the CmdTlmServer\n // ***********************************************\n\n offline_access_needed() {\n return this.exec('offline_access_needed', [])\n }\n\n set_offline_access(offline_access_token) {\n return this.exec('set_offline_access', [offline_access_token])\n }\n\n get_all_interface_info() {\n return this.exec('get_all_interface_info', [])\n }\n\n map_target_to_interface(target_name, interface_name) {\n return this.exec('map_target_to_interface', [target_name, interface_name])\n }\n\n connect_interface(interface_name, ...interface_params) {\n if (interface_params.length > 0) {\n return this.exec('connect_interface', [\n interface_name,\n ...interface_params,\n ])\n } else {\n return this.exec('connect_interface', [interface_name])\n }\n }\n\n disconnect_interface(interface_name) {\n return this.exec('disconnect_interface', [interface_name])\n }\n\n interface_cmd(interface_name, command_name, ...command_params) {\n return this.exec('interface_cmd', [\n interface_name,\n command_name,\n ...command_params,\n ])\n }\n\n get_all_router_info() {\n return this.exec('get_all_router_info', [])\n }\n\n connect_router(router_name) {\n return this.exec('connect_router', [router_name])\n }\n\n disconnect_router(router_name) {\n return this.exec('disconnect_router', [router_name])\n }\n\n get_target_interfaces() {\n return this.exec('get_target_interfaces', [])\n }\n\n // DEPRECATED\n get_all_target_info() {\n return this.exec('get_all_target_info', [])\n }\n\n get_tlm_cnts(target_commands) {\n return this.exec('get_tlm_cnts', [target_commands])\n }\n\n get_item(target, packet, item) {\n return this.exec('get_item', [target, packet, item])\n }\n\n get_param(target, packet, item) {\n return this.exec('get_param', [target, packet, item])\n }\n // DEPRECATED for get_param\n get_parameter(target, packet, item) {\n return this.exec('get_parameter', [target, packet, item])\n }\n\n get_limits_sets() {\n return this.exec('get_limits_sets', [])\n }\n\n get_limits_set() {\n return this.exec('get_limits_set', [])\n }\n\n set_limits_set(limits_set) {\n return this.exec('set_limits_set', [limits_set])\n }\n\n // ***********************************************\n // End CmdTlmServer APIs\n // ***********************************************\n\n get_target(target_name) {\n return this.exec('get_target', [target_name])\n }\n\n get_target_names() {\n return this.exec('get_target_names', [])\n }\n // DEPRECATED\n get_target_list() {\n return this.exec('get_target_list', [])\n }\n\n get_tlm(target_name, packet_name) {\n return this.exec('get_tlm', [target_name, packet_name])\n }\n // DEPRECATED\n get_telemetry(target_name, packet_name) {\n return this.exec('get_telemetry', [target_name, packet_name])\n }\n\n get_all_tlm(target_name) {\n return this.exec('get_all_tlm', [target_name])\n }\n // DEPRECATED\n get_all_telemetry(target_name) {\n return this.exec('get_all_telemetry', [target_name])\n }\n\n get_all_tlm_names(target_name, hidden = false) {\n return this.exec('get_all_tlm_names', [target_name], { hidden: hidden })\n }\n // DEPRECATED\n get_all_telemetry_names(target_name) {\n return this.exec('get_all_telemetry_names', [target_name])\n }\n\n async get_tlm_packet(target_name, packet_name, value_type, stale_time = 30) {\n const data = await this.exec('get_tlm_packet', [target_name, packet_name], {\n type: value_type,\n stale_time: stale_time,\n })\n // Make sure data isn't null or undefined. Note this is the only valid use of == or !=\n if (data != null) {\n let len = data.length\n let converted = null\n for (let i = 0; i < len; i++) {\n converted = this.decode_openc3_type(data[i][1])\n if (converted !== null) {\n data[i][1] = converted\n }\n }\n }\n return data\n }\n\n get_packet_derived_items(target_name, packet_name) {\n return this.exec('get_packet_derived_items', [target_name, packet_name])\n }\n\n get_tlm_buffer(target_name, packet_name) {\n return this.exec('get_tlm_buffer', [target_name, packet_name])\n }\n\n async get_tlm_values(items, stale_time = 30, cache_timeout = null) {\n let kw_args = {\n stale_time: stale_time,\n }\n if (cache_timeout !== null) {\n kw_args['cache_timeout'] = cache_timeout\n }\n const data = await this.exec(\n 'get_tlm_values',\n [items],\n kw_args,\n {},\n 10000, // 10s timeout ... should never be this long\n )\n let len = data[0].length\n let converted = null\n for (let i = 0; i < len; i++) {\n converted = this.decode_openc3_type(data[0][i])\n if (converted !== null) {\n data[0][i] = converted\n }\n }\n return data\n }\n\n get_limits(target_name, packet_name, item_name) {\n return this.exec('get_limits', [target_name, packet_name, item_name])\n }\n\n async tlm(target_name, packet_name, item_name, value_type = 'CONVERTED') {\n let data = null\n // Check for the single string syntax: tlm(\"TGT PKT ITEM\")\n if (packet_name === undefined) {\n data = await this.exec('tlm', [target_name])\n // Check for the single string syntax with type: tlm(\"TGT PKT ITEM\", \"RAW\")\n } else if (item_name === undefined) {\n if (\n ['RAW', 'CONVERTED', 'FORMATTED', 'WITH_UNITS'].includes(packet_name)\n ) {\n data = await this.exec('tlm', [target_name], { type: packet_name })\n } else {\n let err = new Error()\n err.name = 'TypeError'\n err.message = `Invalid data type ${packet_name}. Valid options are RAW, CONVERTED, FORMATTED, and WITH_UNITS.`\n throw err\n }\n } else {\n data = await this.exec('tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n let converted = this.decode_openc3_type(data)\n if (converted !== null) {\n data = converted\n }\n return data\n }\n\n async inject_tlm(\n target_name,\n packet_name,\n item_hash = null,\n value_type = 'CONVERTED',\n ) {\n data = await this.exec(\n 'inject_tlm',\n [target_name, packet_name, item_hash],\n {\n type: value_type,\n },\n )\n }\n\n set_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('set_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n override_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('override_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n get_overrides() {\n return this.exec('get_overrides')\n }\n\n normalize_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('normalize_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n get_all_cmds(target_name) {\n return this.exec('get_all_cmds', [target_name])\n }\n // DEPRECATED for get_all_cmds\n get_all_commands(target_name) {\n return this.exec('get_all_commands', [target_name])\n }\n\n get_all_cmd_names(target_name, hidden = false) {\n return this.exec('get_all_cmd_names', [target_name], { hidden: hidden })\n }\n // DEPRECATED for get_all_cmd_names\n get_all_command_names(target_name) {\n return this.exec('get_all_command_names', [target_name])\n }\n\n get_cmd(target_name, command_name) {\n return this.exec('get_cmd', [target_name, command_name])\n }\n // DEPRECATED for get_cmd\n get_command(target_name, command_name) {\n return this.exec('get_command', [target_name, command_name])\n }\n\n get_cmd_cnts(target_commands) {\n return this.exec('get_cmd_cnts', [target_commands])\n }\n\n get_cmd_value(\n target_name,\n packet_name,\n parameter_name,\n value_type = 'CONVERTED',\n ) {\n return this.exec('get_cmd_value', [\n target_name,\n packet_name,\n parameter_name,\n value_type,\n ])\n }\n\n get_cmd_buffer(target_name, packet_name) {\n return this.exec('get_cmd_buffer', [target_name, packet_name])\n }\n\n // Implementation of functionality shared by cmd methods with param_lists.\n _cmd(method, target_name, command_name, param_list, headerOptions) {\n let converted = null\n for (let key in param_list) {\n if (Object.prototype.hasOwnProperty.call(param_list, key)) {\n converted = this.encode_openc3_type(param_list[key])\n if (converted !== null) {\n param_list[key] = converted\n }\n }\n }\n return this.exec(\n method,\n [target_name, command_name, param_list],\n {},\n headerOptions,\n )\n }\n\n get_cmd_hazardous(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('get_cmd_hazardous', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'get_cmd_hazardous',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('cmd', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_no_range_check(\n target_name,\n command_name,\n param_list,\n headerOptions = {},\n ) {\n if (command_name === undefined) {\n return this.exec('cmd_no_range_check', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd_no_range_check',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_raw(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('cmd_raw', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd_raw',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_raw_no_range_check(\n target_name,\n command_name,\n param_list,\n headerOptions = {},\n ) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_range_check', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd_raw_no_range_check',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_no_hazardous_check(\n target_name,\n command_name,\n param_list,\n headerOptions = {},\n ) {\n if (command_name === undefined) {\n return this.exec('cmd_no_hazardous_check', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd_no_hazardous_check',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_no_checks(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('cmd_no_checks', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd_no_checks',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_raw_no_hazardous_check(\n target_name,\n command_name,\n param_list,\n headerOptions = {},\n ) {\n if (command_name === undefined) {\n return this.exec(\n 'cmd_raw_no_hazardous_check',\n target_name,\n {},\n headerOptions,\n )\n } else {\n return this._cmd(\n 'cmd_raw_no_hazardous_check',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_raw_no_checks(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_checks', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd_raw_no_checks',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n build_cmd(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('build_cmd', target_name)\n } else {\n return this._cmd('build_cmd', target_name, command_name, param_list)\n }\n }\n // DEPRECATED for build_cmd\n build_command(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('build_command', target_name)\n } else {\n return this._cmd('build_command', target_name, command_name, param_list)\n }\n }\n\n get_interface_names() {\n return this.exec('get_interface_names', [])\n }\n\n send_raw(interface_name, data) {\n return this.exec('send_raw', [interface_name, data])\n }\n\n list_configs(tool) {\n return this.exec('list_configs', [tool])\n }\n\n load_config(tool, name) {\n return this.exec('load_config', [tool, name])\n }\n\n save_config(tool, name, data) {\n return this.exec('save_config', [tool, name, data])\n }\n\n delete_config(tool, name) {\n return this.exec('delete_config', [tool, name])\n }\n\n enable_limits(target, packet, item) {\n return this.exec('enable_limits', [target, packet, item])\n }\n\n disable_limits(target, packet, item) {\n return this.exec('disable_limits', [target, packet, item])\n }\n\n get_out_of_limits() {\n return this.exec('get_out_of_limits', [])\n }\n\n get_overall_limits_state(ignored) {\n return this.exec('get_overall_limits_state', [ignored])\n }\n\n list_settings() {\n return this.exec('list_settings', [])\n }\n\n get_all_settings() {\n return this.exec('get_all_settings', [])\n }\n\n get_setting(name) {\n return this.exec('get_setting', [name])\n }\n\n get_settings(array) {\n return this.exec('get_settings', array)\n }\n\n set_setting(name, data) {\n return this.exec('set_setting', [name, data])\n }\n\n // DEPRECATED\n save_setting(name, data) {\n return this.exec('save_setting', [name, data])\n }\n\n get_metrics() {\n return this.exec('get_metrics', [])\n }\n\n // TODO: Currently unused but seemed like a useful function\n async hashString(string) {\n if (window.isSecureContext) {\n // Encode the string as an arrayBuffer which the subtle crypto API uses\n const arrayBuffer = new TextEncoder().encode(string)\n // Use the subtle crypto API to perform a SHA256 Sum of the array buffer\n // The resulting hash is stored in an array buffer\n const hashAsArrayBuffer = await crypto.subtle.digest(\n 'SHA-256',\n arrayBuffer,\n )\n // To create a string we will get the hexadecimal value of each byte of the array buffer\n // This gets us an array where each byte of the array buffer becomes one item in the array\n const uint8ViewOfHash = new Uint8Array(hashAsArrayBuffer)\n // We then convert it to a regular array so we can convert each item to hexadecimal strings\n // Where to characters of 0-9 or a-f represent a number between 0 and 16, containing 4 bits of information, so 2 of them is 8 bits (1 byte).\n return Array.from(uint8ViewOfHash)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('')\n }\n // else ?\n }\n}\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-dialog\",\n {\n attrs: { width: \"650px\" },\n model: {\n value: _vm.show,\n callback: function ($$v) {\n _vm.show = $$v\n },\n expression: \"show\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\n \"v-system-bar\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(\" Upgrade to COSMOS Enterprise Edition \")]),\n _vm._v(\" \"),\n _c(\"v-spacer\"),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-card-text\", { staticClass: \"mt-2\" }, [\n _c(\"div\", { staticClass: \"logo\" }, [\n _c(\"img\", { attrs: { src: _vm.logo, alt: \"OpenC3\" } }),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"cosmos\" }, [\n _vm._v(\"Enterprise Edition\"),\n ]),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"pb-4\" }, [\n _vm._v(\n \"\\n Thank you for using the COSMOS Open Source Edition!\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _vm.reason\n ? _c(\"div\", [\n _c(\"div\", { staticClass: \"pb-4 pl-4 reason\" }, [\n _vm._v(\"\\n \" + _vm._s(_vm.reason) + \"\\n \"),\n ]),\n ])\n : _vm._e(),\n _vm._v(\n \"\\n COSMOS Enterprise Edition removes all restrictions and offers users with\\n role based access control, scaling on kubernetes, cloud platform\\n support, multiple scopes, Calendar and Autonomic, various integrations\\n with common protocols and hardware, commercial licensing, and much\\n more!\"\n ),\n _c(\"br\"),\n _c(\"br\"),\n _vm._v(\"\\n Learn more at\\n \"),\n _c(\"a\", { attrs: { href: \"https://openc3.com/enterprise\" } }, [\n _vm._v(\"https://openc3.com/enterprise\"),\n ]),\n _vm._v(\n \"\\n and help support COSMOS Open Source by supporting our business. Contact\\n us at \"\n ),\n _c(\"a\", { attrs: { href: \"mailto:support@openc3.com\" } }, [\n _vm._v(\"support@openc3.com\"),\n ]),\n _vm._v(\n \" for\\n more information about Enterprise Edition, COSMOS training, COSMOS\\n support, and custom COSMOS development.\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n staticClass: \"mx-2\",\n attrs: { color: \"primary\" },\n on: {\n click: function ($event) {\n _vm.show = !_vm.show\n },\n },\n },\n [_vm._v(\" Ok \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./UpgradeToEnterpriseDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./UpgradeToEnterpriseDialog.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2023 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" width=\"650px\">\n <v-card>\n <v-system-bar>\n <v-spacer />\n <span> Upgrade to COSMOS Enterprise Edition </span>\n <v-spacer />\n </v-system-bar>\n <v-card-text class=\"mt-2\">\n <div class=\"logo\">\n <img :src=\"logo\" alt=\"OpenC3\" />\n <div class=\"cosmos\">Enterprise Edition</div>\n </div>\n <div class=\"pb-4\">\n Thank you for using the COSMOS Open Source Edition!\n </div>\n <div v-if=\"reason\">\n <div class=\"pb-4 pl-4 reason\">\n {{ reason }}\n </div>\n </div>\n COSMOS Enterprise Edition removes all restrictions and offers users with\n role based access control, scaling on kubernetes, cloud platform\n support, multiple scopes, Calendar and Autonomic, various integrations\n with common protocols and hardware, commercial licensing, and much\n more!<br /><br />\n Learn more at\n <a href=\"https://openc3.com/enterprise\"\n >https://openc3.com/enterprise</a\n >\n and help support COSMOS Open Source by supporting our business. Contact\n us at <a href=\"mailto:support@openc3.com\">support@openc3.com</a> for\n more information about Enterprise Edition, COSMOS training, COSMOS\n support, and custom COSMOS development.\n </v-card-text>\n <v-card-actions>\n <v-spacer />\n <v-btn class=\"mx-2\" color=\"primary\" @click=\"show = !show\"> Ok </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport logo from '../../public/img/logo.png'\n\nexport default {\n props: {\n value: Boolean, // value is the default prop when using v-model\n reason: String,\n },\n data() {\n return {\n logo: logo,\n }\n },\n computed: {\n show: {\n get() {\n return this.value\n },\n set(value) {\n this.$emit('input', value) // input is the default event when using v-model\n },\n },\n },\n}\n</script>\n<style scoped>\n.logo {\n float: right;\n margin: 15px;\n}\n.cosmos {\n text-align: center;\n font-size: 18pt;\n}\n.reason {\n font-weight: bold;\n}\n</style>\n","\n import API from \"!../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./UpgradeToEnterpriseDialog.vue?vue&type=style&index=0&id=36f1a220&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./UpgradeToEnterpriseDialog.vue?vue&type=style&index=0&id=36f1a220&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UpgradeToEnterpriseDialog.vue?vue&type=template&id=36f1a220&scoped=true&\"\nimport script from \"./UpgradeToEnterpriseDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./UpgradeToEnterpriseDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UpgradeToEnterpriseDialog.vue?vue&type=style&index=0&id=36f1a220&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36f1a220\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('36f1a220')) {\n api.createRecord('36f1a220', component.options)\n } else {\n api.reload('36f1a220', component.options)\n }\n module.hot.accept(\"./UpgradeToEnterpriseDialog.vue?vue&type=template&id=36f1a220&scoped=true&\", function () {\n api.rerender('36f1a220', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/components/UpgradeToEnterpriseDialog.vue\"\nexport default component.exports","import mod from \"-!../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-footer id=\"footer\" app v-if=\"!chromeless\" height=\"33\">\n <img :src=\"icon\" alt=\"OpenC3\" />\n <span :class=\"footerClass\" @click=\"upgrade\"\n >OpenC3 {{ edition }} {{ version }} © 2024 - License:\n {{ license }}</span\n >\n <v-spacer />\n <a :href=\"sourceUrl\" class=\"white--text text-decoration-underline\">\n Source\n </a>\n <v-spacer />\n <div class=\"justify-right\"><clock-footer /></div>\n <upgrade-to-enterprise-dialog\n v-model=\"showUpgradeToEnterpriseDialog\"\n reason=\"Enterprise is Commercially Licensed\"\n ></upgrade-to-enterprise-dialog>\n </v-footer>\n</template>\n\n<script>\nimport ClockFooter from './components/ClockFooter.vue'\nimport Api from '../../services/api'\nimport { OpenC3Api } from '../../services/openc3-api'\nimport icon from '../../../public/img/icon.png'\nimport UpgradeToEnterpriseDialog from '../../components/UpgradeToEnterpriseDialog'\n\nexport default {\n components: {\n ClockFooter,\n UpgradeToEnterpriseDialog,\n },\n data() {\n return {\n icon: icon,\n edition: '',\n enterprise: false,\n license: '',\n sourceUrl: '',\n version: '',\n showUpgradeToEnterpriseDialog: false,\n chromeless: this.$route.query.chromeless,\n }\n },\n created: function () {\n this.getSourceUrl()\n Api.get('/openc3-api/info').then((response) => {\n if (response.data.enterprise) {\n this.edition = 'COSMOS Enterprise'\n } else {\n this.edition = 'COSMOS Open Source'\n }\n this.enterprise = response.data.enterprise\n this.license = response.data.license\n this.version = response.data.version\n })\n },\n computed: {\n footerClass() {\n if (this.enterprise) {\n return 'enterprise'\n } else {\n return 'base'\n }\n },\n },\n methods: {\n getSourceUrl: function () {\n new OpenC3Api().get_settings(['source_url']).then((response) => {\n this.sourceUrl = response[0]\n })\n },\n upgrade: function () {\n if (!this.enterprise) {\n this.showUpgradeToEnterpriseDialog = true\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.base {\n margin-left: 5px;\n cursor: pointer;\n}\n.enterprise {\n margin-left: 5px;\n}\n#footer {\n z-index: 1000; /* On TOP! */\n background-color: var(--gsb-color-background) !important;\n}\n</style>\n","\n import API from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=style&index=0&id=1f2e2c8b&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppFooter.vue?vue&type=style&index=0&id=1f2e2c8b&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppFooter.vue?vue&type=template&id=1f2e2c8b&scoped=true&\"\nimport script from \"./AppFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./AppFooter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppFooter.vue?vue&type=style&index=0&id=1f2e2c8b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f2e2c8b\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('1f2e2c8b')) {\n api.createRecord('1f2e2c8b', component.options)\n } else {\n api.reload('1f2e2c8b', component.options)\n }\n module.hot.accept(\"./AppFooter.vue?vue&type=template&id=1f2e2c8b&scoped=true&\", function () {\n api.rerender('1f2e2c8b', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/tools/base/AppFooter.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n !_vm.chromeless\n ? _c(\n \"v-navigation-drawer\",\n {\n attrs: { app: \"\", id: \"openc3-nav-drawer\" },\n model: {\n value: _vm.drawer,\n callback: function ($$v) {\n _vm.drawer = $$v\n },\n expression: \"drawer\",\n },\n },\n [\n _c(\"img\", {\n staticClass: \"logo\",\n attrs: { src: _vm.logo, alt: \"OpenC3\" },\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"cosmos\",\n on: {\n click: function ($event) {\n _vm.showUpgradeToEnterpriseDialog = true\n },\n },\n },\n [_vm._v(\"\\n COSMOS\\n \")]\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticStyle: { \"text-align\": \"center\", \"font-size\": \"18pt\" },\n },\n [_vm._v(\"\\n \" + _vm._s(_vm.subtitle) + \"\\n \")]\n ),\n _vm._v(\" \"),\n _vm._l(_vm.adminTools, function (tool, name) {\n return _c(\n \"div\",\n { key: name, staticClass: \"ma-3\" },\n [\n _c(\n \"v-btn\",\n {\n staticClass: \"fixcenter\",\n attrs: {\n block: \"\",\n small: \"\",\n href: tool.url,\n onclick: \"singleSpaNavigate(event)\",\n color: \"primary\",\n },\n },\n [_vm._v(\"\\n Admin Console\\n \")]\n ),\n ],\n 1\n )\n }),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\"v-treeview\", {\n attrs: {\n items: _vm.items,\n open: _vm.initiallyOpen,\n \"item-key\": \"name\",\n dense: \"\",\n \"open-on-click\": \"\",\n \"expand-icon\": \"\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"prepend\",\n fn: function (ref) {\n var item = ref.item\n var open = ref.open\n return [\n !item.icon\n ? _c(\"v-icon\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n open\n ? \"mdi-chevron-down\"\n : \"mdi-chevron-right\"\n ) +\n \"\\n \"\n ),\n ])\n : [\n item.window === \"INLINE\"\n ? _c(\n \"a\",\n {\n attrs: {\n href: item.url,\n onclick: \"singleSpaNavigate(event)\",\n },\n },\n [\n _c(\"v-icon\", [\n _vm._v(\" \" + _vm._s(item.icon) + \" \"),\n ]),\n ],\n 1\n )\n : _c(\n \"a\",\n { attrs: { href: item.url } },\n [\n _c(\"v-icon\", [\n _vm._v(\" \" + _vm._s(item.icon) + \" \"),\n ]),\n ],\n 1\n ),\n ],\n ]\n },\n },\n {\n key: \"label\",\n fn: function (ref) {\n var item = ref.item\n return [\n !item.icon\n ? _c(\n \"a\",\n {\n attrs: {\n href: item.url,\n onclick: \"singleSpaNavigate(event)\",\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.name) +\n \"\\n \"\n ),\n ]\n )\n : [\n item.window === \"INLINE\"\n ? _c(\n \"a\",\n {\n attrs: {\n href: item.url,\n onclick: \"singleSpaNavigate(event)\",\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.name) +\n \"\\n \"\n ),\n ]\n )\n : item.window === \"IFRAME\"\n ? _c(\n \"a\",\n {\n attrs: {\n href:\n \"/tools/iframe?title=\" +\n encodeURIComponent(item.name) +\n \"&url=\" +\n item.url,\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.name) +\n \"\\n \"\n ),\n ]\n )\n : item.window === \"SAME\"\n ? _c(\"a\", { attrs: { href: item.url } }, [\n _vm._v(\n \"\\n \" +\n _vm._s(item.name) +\n \"\\n \"\n ),\n ])\n : _c(\n \"a\",\n {\n attrs: {\n href: item.url,\n target: \"_blank\",\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(item.name) +\n \"\\n \"\n ),\n ]\n ),\n ],\n ]\n },\n },\n {\n key: \"append\",\n fn: function (ref) {\n var item = ref.item\n return [\n item.icon\n ? _c(\n \"a\",\n {\n attrs: {\n href: _vm.newTabUrl(item),\n target: \"_blank\",\n },\n },\n [_c(\"v-icon\", [_vm._v(\"mdi-open-in-new\")])],\n 1\n )\n : _vm._e(),\n ]\n },\n },\n ],\n null,\n false,\n 165952690\n ),\n }),\n ],\n 2\n )\n : _vm._e(),\n _vm._v(\" \"),\n !_vm.chromeless\n ? _c(\n \"v-app-bar\",\n { attrs: { app: \"\", id: \"openc3-app-toolbar\" } },\n [\n _c(\n \"v-row\",\n {\n staticClass: \"flex-nowrap\",\n staticStyle: { \"margin-top\": \"20px\" },\n attrs: { justify: \"space-between\", \"no-gutters\": \"\" },\n },\n [\n _c(\n \"v-col\",\n { attrs: { \"align-self\": \"center\" } },\n [\n _c(\n \"v-row\",\n { staticClass: \"flex-nowrap\" },\n [\n _c(\"rux-icon\", {\n staticClass: \"mr-2 pa-2\",\n attrs: { size: \"small\", icon: \"apps\" },\n on: {\n click: function ($event) {\n _vm.drawer = !_vm.drawer\n },\n },\n }),\n _vm._v(\" \"),\n _c(\"span\", { attrs: { id: \"openc3-menu\" } }),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-col\",\n { staticStyle: { margin: \"auto\" } },\n [\n !_vm.astro.hideClock\n ? _c(\"rux-clock\", {\n staticClass: \"clock\",\n attrs: {\n \"date-in\": \"\",\n timezone: _vm.astroTimeZone,\n },\n })\n : _vm._e(),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-col\",\n { attrs: { \"align-self\": \"center\" } },\n [\n _c(\n \"v-row\",\n {\n staticClass: \"flex-nowrap\",\n staticStyle: { \"margin-top\": \"10px\" },\n },\n [\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"scope-selector\", { staticClass: \"mr-6 mt-4\" }),\n _vm._v(\" \"),\n _c(\"notifications\", {\n staticClass: \"mr-6\",\n attrs: { \"data-test\": \"notifications\" },\n }),\n _vm._v(\" \"),\n _c(\"user-menu\", { staticClass: \"mr-3\" }),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"upgrade-to-enterprise-dialog\", {\n attrs: { reason: \"Enterprise adds Calendar and Autonomic\" },\n model: {\n value: _vm.showUpgradeToEnterpriseDialog,\n callback: function ($$v) {\n _vm.showUpgradeToEnterpriseDialog = $$v\n },\n expression: \"showUpgradeToEnterpriseDialog\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticStyle: { cursor: \"pointer\" },\n on: {\n click: function ($event) {\n _vm.showUpgradeToEnterpriseDialog = true\n },\n },\n },\n [\n _c(\"v-select\", {\n staticStyle: { \"max-width\": \"150px\" },\n attrs: {\n items: _vm.scopes,\n disabled: _vm.scopes.length <= 1,\n label: \"Scope\",\n dense: \"\",\n outlined: \"\",\n \"hide-details\": \"\",\n },\n model: {\n value: _vm.scope,\n callback: function ($$v) {\n _vm.scope = $$v\n },\n expression: \"scope\",\n },\n }),\n _vm._v(\" \"),\n _c(\"upgrade-to-enterprise-dialog\", {\n attrs: { reason: \"Enterprise allows additional Scopes\" },\n model: {\n value: _vm.showUpgradeToEnterpriseDialog,\n callback: function ($$v) {\n _vm.showUpgradeToEnterpriseDialog = $$v\n },\n expression: \"showUpgradeToEnterpriseDialog\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div style=\"cursor: pointer\" @click=\"showUpgradeToEnterpriseDialog = true\">\n <v-select\n v-model=\"scope\"\n :items=\"scopes\"\n :disabled=\"scopes.length <= 1\"\n label=\"Scope\"\n dense\n outlined\n hide-details\n style=\"max-width: 150px\"\n />\n <upgrade-to-enterprise-dialog\n v-model=\"showUpgradeToEnterpriseDialog\"\n reason=\"Enterprise allows additional Scopes\"\n ></upgrade-to-enterprise-dialog>\n </div>\n</template>\n\n<script>\nimport UpgradeToEnterpriseDialog from '../../../components/UpgradeToEnterpriseDialog'\nexport default {\n components: {\n UpgradeToEnterpriseDialog,\n },\n data: function () {\n return {\n // Open Source only has one scope: 'DEFAULT'\n scopes: ['DEFAULT'],\n scope: 'DEFAULT',\n showUpgradeToEnterpriseDialog: false,\n }\n },\n}\n</script>\n","import mod from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./ScopeSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./ScopeSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ScopeSelector.vue?vue&type=template&id=1d174a8a&\"\nimport script from \"./ScopeSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./ScopeSelector.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('1d174a8a')) {\n api.createRecord('1d174a8a', component.options)\n } else {\n api.reload('1d174a8a', component.options)\n }\n module.hot.accept(\"./ScopeSelector.vue?vue&type=template&id=1d174a8a&\", function () {\n api.rerender('1d174a8a', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/tools/base/components/ScopeSelector.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"v-overlay\", {\n staticClass: \"overlay\",\n attrs: { value: _vm.showNotificationPane },\n }),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n transition: \"slide-y-transition\",\n \"close-on-content-click\": false,\n \"nudge-width\": 340,\n \"offset-y\": \"\",\n \"nudge-bottom\": 20,\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"rux-monitoring-icon\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"rux-icon\",\n attrs: {\n icon: _vm.notificationVsAlert,\n label: \"Notifications\",\n sublabel: _vm.activeScripts,\n status: _vm.iconStatus,\n notifications: _vm.unreadNotifications.length,\n },\n },\n \"rux-monitoring-icon\",\n attrs,\n false\n ),\n on\n )\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.showNotificationPane,\n callback: function ($$v) {\n _vm.showNotificationPane = $$v\n },\n expression: \"showNotificationPane\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\n \"v-card-title\",\n [\n _vm._v(\"\\n Notifications\\n \"),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\n \"v-tooltip\",\n {\n attrs: { top: \"\", \"open-delay\": \"350\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"ml-1\",\n attrs: {\n icon: \"\",\n \"data-test\": \"clear-notifications\",\n },\n on: { click: _vm.clearNotifications },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [\n _c(\"v-icon\", [\n _vm._v(\" mdi-close-box-multiple \"),\n ]),\n ],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [_vm._v(\" \"), _c(\"span\", [_vm._v(\"Clear all\")])]\n ),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n staticClass: \"ml-1\",\n attrs: { icon: \"\", \"data-test\": \"notification-settings\" },\n on: { click: _vm.toggleSettingsDialog },\n },\n [_c(\"v-icon\", [_vm._v(\" $astro-settings \")])],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.notifications.length === 0\n ? _c(\"v-card-text\", [\n _vm._v(\"\\n No notifications\\n \"),\n ])\n : _c(\n \"v-list\",\n {\n staticClass: \"overflow-y-auto\",\n attrs: {\n \"two-line\": \"\",\n width: \"420\",\n \"max-height\": \"80vh\",\n \"data-test\": \"notification-list\",\n },\n },\n [\n _vm._l(\n _vm.notificationList,\n function (notification, index) {\n return [\n notification.header\n ? [\n index !== 0\n ? _c(\"v-divider\", {\n key: index,\n staticClass: \"mb-2\",\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"v-subheader\",\n { key: notification.header },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(notification.header) +\n \"\\n \"\n ),\n ]\n ),\n ]\n : _c(\n \"v-list-item\",\n {\n key: \"notification-\" + index,\n staticClass: \"pl-2\",\n on: {\n click: function ($event) {\n return _vm.openDialog(notification)\n },\n },\n },\n [\n _c(\n \"v-badge\",\n {\n attrs: {\n left: \"\",\n inline: \"\",\n color: \"transparent\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"badge\",\n fn: function () {\n return [\n _c(\"rux-status\", {\n attrs: {\n status: _vm.getStatus(\n notification.level\n ),\n },\n }),\n ]\n },\n proxy: true,\n },\n ],\n null,\n true\n ),\n },\n [\n _c(\n \"v-list-item-content\",\n { staticClass: \"pt-0 pb-0\" },\n [\n _c(\n \"v-list-item-title\",\n {\n class: {\n \"text--secondary\":\n notification.read,\n \"text-wrap\": true,\n },\n },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(\n notification.message\n ) +\n \"\\n \"\n ),\n ]\n ),\n _vm._v(\" \"),\n _c(\"v-list-item-subtitle\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"shortDateTime\")(\n notification.time\n )\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", {\n staticStyle: { height: \"20px\" },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]\n }\n ),\n ],\n 2\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { width: \"600\" },\n model: {\n value: _vm.notificationDialog,\n callback: function ($$v) {\n _vm.notificationDialog = $$v\n },\n expression: \"notificationDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\n \"v-card-title\",\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.selectedNotification.message) +\n \"\\n \"\n ),\n _c(\"v-spacer\"),\n _vm._v(\" \"),\n _c(\"astro-status-indicator\", {\n attrs: { status: _vm.selectedNotification.level || \"INFO\" },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-card-subtitle\", [\n _vm._v(\n \"\\n \" +\n _vm._s(\n _vm._f(\"shortDateTime\")(_vm.selectedNotification.time)\n ) +\n \"\\n \"\n ),\n ]),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _vm.selectedNotification.url\n ? _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: {\n click: function ($event) {\n return _vm.navigate(_vm.selectedNotification.url)\n },\n },\n },\n [\n _vm._v(\"\\n Open\\n \"),\n _c(\"v-icon\", { attrs: { right: \"\" } }, [\n _vm._v(\" mdi-open-in-new \"),\n ]),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: {\n click: function ($event) {\n _vm.notificationDialog = false\n },\n },\n },\n [_vm._v(\"\\n Close\\n \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"v-dialog\",\n {\n attrs: { width: \"600\" },\n model: {\n value: _vm.settingsDialog,\n callback: function ($$v) {\n _vm.settingsDialog = $$v\n },\n expression: \"settingsDialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", [_vm._v(\" Notification settings \")]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _c(\"v-switch\", {\n attrs: { label: \"Show toasts\" },\n model: {\n value: _vm.showToast,\n callback: function ($$v) {\n _vm.showToast = $$v\n },\n expression: \"showToast\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: { click: _vm.toggleSettingsDialog },\n },\n [_vm._v(\"\\n Close\\n \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import { toDate } from \"./toDate.js\";\n\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nexport function compareAsc(dateLeft, dateRight) {\n const diff = +toDate(dateLeft) - +toDate(dateRight);\n\n if (diff < 0) return -1;\n else if (diff > 0) return 1;\n\n // Return 0 if diff is 0; return NaN if diff is NaN\n return diff;\n}\n\n// Fallback for modularized imports:\nexport default compareAsc;\n","import { endOfDay } from \"./endOfDay.js\";\nimport { endOfMonth } from \"./endOfMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @param date - The date to check\n * @param options - An object with options\n *\n * @returns The date is the last day of a month\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * const result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nexport function isLastDayOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n return +endOfDay(_date, options) === +endOfMonth(_date, options);\n}\n\n// Fallback for modularized imports:\nexport default isLastDayOfMonth;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfDay} function options.\n */\n\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport function endOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfDay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfMonth} function options.\n */\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfMonth;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { compareAsc } from \"./compareAsc.js\";\nimport { differenceInCalendarMonths } from \"./differenceInCalendarMonths.js\";\nimport { isLastDayOfMonth } from \"./isLastDayOfMonth.js\";\n\n/**\n * The {@link differenceInMonths} function options.\n */\n\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of full months\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\nexport function differenceInMonths(laterDate, earlierDate, options) {\n const [laterDate_, workingLaterDate, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n laterDate,\n earlierDate,\n );\n\n const sign = compareAsc(workingLaterDate, earlierDate_);\n const difference = Math.abs(\n differenceInCalendarMonths(workingLaterDate, earlierDate_),\n );\n\n if (difference < 1) return 0;\n\n if (workingLaterDate.getMonth() === 1 && workingLaterDate.getDate() > 27)\n workingLaterDate.setDate(30);\n\n workingLaterDate.setMonth(workingLaterDate.getMonth() - sign * difference);\n\n let isLastMonthNotFull = compareAsc(workingLaterDate, earlierDate_) === -sign;\n\n if (\n isLastDayOfMonth(laterDate_) &&\n difference === 1 &&\n compareAsc(laterDate_, earlierDate_) === 1\n ) {\n isLastMonthNotFull = false;\n }\n\n const result = sign * (difference - +isLastMonthNotFull);\n return result === 0 ? 0 : result;\n}\n\n// Fallback for modularized imports:\nexport default differenceInMonths;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link differenceInCalendarMonths} function options.\n */\n\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport function differenceInCalendarMonths(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear();\n const monthsDiff = laterDate_.getMonth() - earlierDate_.getMonth();\n\n return yearsDiff * 12 + monthsDiff;\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarMonths;\n","import { getRoundingMethod } from \"./_lib/getRoundingMethod.js\";\nimport { differenceInMilliseconds } from \"./differenceInMilliseconds.js\";\n\n/**\n * The {@link differenceInSeconds} function options.\n */\n\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nexport function differenceInSeconds(laterDate, earlierDate, options) {\n const diff = differenceInMilliseconds(laterDate, earlierDate) / 1000;\n return getRoundingMethod(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\nexport default differenceInSeconds;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n *\n * @returns The number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nexport function differenceInMilliseconds(laterDate, earlierDate) {\n return +toDate(laterDate) - +toDate(earlierDate);\n}\n\n// Fallback for modularized imports:\nexport default differenceInMilliseconds;\n","export function getRoundingMethod(method) {\n return (number) => {\n const round = method ? Math[method] : Math.trunc;\n const result = round(number);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n };\n}\n","import { constructNow } from \"./constructNow.js\";\n\nimport { formatDistance } from \"./formatDistance.js\";\n\n/**\n * The {@link formatDistanceToNow} function options.\n */\n\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @param date - The given date\n * @param options - The object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * const result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * const result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * const result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * const eoLocale = require('date-fns/locale/eo')\n * const result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nexport function formatDistanceToNow(date, options) {\n return formatDistance(date, constructNow(date), options);\n}\n\n// Fallback for modularized imports:\nexport default formatDistanceToNow;\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { compareAsc } from \"./compareAsc.js\";\nimport { minutesInDay, minutesInMonth } from \"./constants.js\";\nimport { differenceInMonths } from \"./differenceInMonths.js\";\nimport { differenceInSeconds } from \"./differenceInSeconds.js\";\n\n/**\n * The {@link formatDistance} function options.\n */\n\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @param laterDate - The date\n * @param earlierDate - The date to compare with\n * @param options - An object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `baseDate` must not be Invalid Date\n * @throws `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\nexport function formatDistance(laterDate, earlierDate, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n const minutesInAlmostTwoDays = 2520;\n\n const comparison = compareAsc(laterDate, earlierDate);\n\n if (isNaN(comparison)) throw new RangeError(\"Invalid time value\");\n\n const localizeOptions = Object.assign({}, options, {\n addSuffix: options?.addSuffix,\n comparison: comparison,\n });\n\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n ...(comparison > 0 ? [earlierDate, laterDate] : [laterDate, earlierDate]),\n );\n\n const seconds = differenceInSeconds(earlierDate_, laterDate_);\n const offsetInSeconds =\n (getTimezoneOffsetInMilliseconds(earlierDate_) -\n getTimezoneOffsetInMilliseconds(laterDate_)) /\n 1000;\n const minutes = Math.round((seconds - offsetInSeconds) / 60);\n let months;\n\n // 0 up to 2 mins\n if (minutes < 2) {\n if (options?.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance(\"lessThanXSeconds\", 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance(\"lessThanXSeconds\", 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance(\"lessThanXSeconds\", 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance(\"halfAMinute\", 0, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance(\"lessThanXMinutes\", 1, localizeOptions);\n } else {\n return locale.formatDistance(\"xMinutes\", 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance(\"lessThanXMinutes\", 1, localizeOptions);\n } else {\n return locale.formatDistance(\"xMinutes\", minutes, localizeOptions);\n }\n }\n\n // 2 mins up to 0.75 hrs\n } else if (minutes < 45) {\n return locale.formatDistance(\"xMinutes\", minutes, localizeOptions);\n\n // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance(\"aboutXHours\", 1, localizeOptions);\n\n // 1.5 hrs up to 24 hrs\n } else if (minutes < minutesInDay) {\n const hours = Math.round(minutes / 60);\n return locale.formatDistance(\"aboutXHours\", hours, localizeOptions);\n\n // 1 day up to 1.75 days\n } else if (minutes < minutesInAlmostTwoDays) {\n return locale.formatDistance(\"xDays\", 1, localizeOptions);\n\n // 1.75 days up to 30 days\n } else if (minutes < minutesInMonth) {\n const days = Math.round(minutes / minutesInDay);\n return locale.formatDistance(\"xDays\", days, localizeOptions);\n\n // 1 month up to 2 months\n } else if (minutes < minutesInMonth * 2) {\n months = Math.round(minutes / minutesInMonth);\n return locale.formatDistance(\"aboutXMonths\", months, localizeOptions);\n }\n\n months = differenceInMonths(earlierDate_, laterDate_);\n\n // 2 months up to 12 months\n if (months < 12) {\n const nearestMonth = Math.round(minutes / minutesInMonth);\n return locale.formatDistance(\"xMonths\", nearestMonth, localizeOptions);\n\n // 1 year up to max Date\n } else {\n const monthsSinceStartOfYear = months % 12;\n const years = Math.trunc(months / 12);\n\n // N years up to 1 years 3 months\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance(\"aboutXYears\", years, localizeOptions);\n\n // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance(\"overXYears\", years, localizeOptions);\n\n // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance(\"almostXYears\", years + 1, localizeOptions);\n }\n }\n}\n\n// Fallback for modularized imports:\nexport default formatDistance;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name constructNow\n * @category Generic Helpers\n * @summary Constructs a new current date using the passed value constructor.\n * @pure false\n *\n * @description\n * The function constructs a new current date using the constructor from\n * the reference date. It helps to build generic functions that accept date\n * extensions and use the current date.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @param date - The reference date to take constructor from\n *\n * @returns Current date initialized using the given date constructor\n *\n * @example\n * import { constructNow, isSameDay } from 'date-fns'\n *\n * function isToday<DateType extends Date>(\n * date: DateArg<DateType>,\n * ): boolean {\n * // If we were to use `new Date()` directly, the function would behave\n * // differently in different timezones and return false for the same date.\n * return isSameDay(date, constructNow(date));\n * }\n */\nexport function constructNow(date) {\n return constructFrom(date, Date.now());\n}\n\n// Fallback for modularized imports:\nexport default constructNow;\n","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"cosmos-rux-icon\", {\n staticClass: \"astro-icon\",\n attrs: { icon: _vm.icon },\n })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"span\",\n {\n style: _vm.style,\n attrs: { id: \"cosmos-rux-icon\", title: _vm.label, size: _vm.size },\n },\n [\n _c(\n \"svg\",\n {\n attrs: {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 128 128\",\n preserveAspectRatio: \"xMidYMid meet\",\n focusable: \"false\",\n },\n },\n [_c(\"use\", { attrs: { href: _vm.getIcon(this.library, this.icon) } })]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <span id=\"cosmos-rux-icon\" :title=\"label\" :style=\"style\" :size=\"size\">\n <!-- Camel case props because svg -->\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 128 128\"\n preserveAspectRatio=\"xMidYMid meet\"\n focusable=\"false\"\n >\n <use :href=\"getIcon(this.library, this.icon)\" />\n </svg>\n </span>\n</template>\n\n<script>\n// This component is a rewrite of the Astro UXDS RuxIcon into Vue\n// Prevents multiple customElement problem with single-spa\nexport default {\n props: {\n icon: {\n type: String,\n },\n size: {\n type: String,\n default: 'extra-small',\n },\n color: {\n type: String,\n },\n library: {\n type: String,\n default: '/icons/astro.svg',\n },\n label: {\n type: String,\n default: 'icon',\n },\n },\n computed: {\n style: function () {\n return '--iconColor=' + this.propscolor\n },\n },\n methods: {\n getIcon() {\n return this.library + '#' + this.icon\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./CosmosRuxIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./CosmosRuxIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CosmosRuxIcon.vue?vue&type=template&id=c69300a2&\"\nimport script from \"./CosmosRuxIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./CosmosRuxIcon.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('c69300a2')) {\n api.createRecord('c69300a2', component.options)\n } else {\n api.reload('c69300a2', component.options)\n }\n module.hot.accept(\"./CosmosRuxIcon.vue?vue&type=template&id=c69300a2&\", function () {\n api.rerender('c69300a2', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/components/icons/CosmosRuxIcon.vue\"\nexport default component.exports","import mod from \"-!../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroIcon.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <cosmos-rux-icon :icon=\"icon\" class=\"astro-icon\" />\n</template>\n\n<script>\nimport CosmosRuxIcon from './CosmosRuxIcon.vue'\nimport { AstroIconLibrary } from '.'\n\n// This component is a wrapper around the Astro UXDS RuxIcon to make it work with Vuetify\nexport default {\n components: {\n CosmosRuxIcon,\n },\n props: {\n icon: {\n type: String,\n required: true,\n validator: (val) => {\n return AstroIconLibrary.includes(val)\n },\n },\n },\n}\n</script>\n\n<style scoped>\n.astro-icon {\n fill: currentColor;\n}\n</style>\n","\n import API from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroIcon.vue?vue&type=style&index=0&id=b942113a&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroIcon.vue?vue&type=style&index=0&id=b942113a&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AstroIcon.vue?vue&type=template&id=b942113a&scoped=true&\"\nimport script from \"./AstroIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./AstroIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AstroIcon.vue?vue&type=style&index=0&id=b942113a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b942113a\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('b942113a')) {\n api.createRecord('b942113a', component.options)\n } else {\n api.reload('b942113a', component.options)\n }\n module.hot.accept(\"./AstroIcon.vue?vue&type=template&id=b942113a&scoped=true&\", function () {\n api.rerender('b942113a', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/components/icons/AstroIcon.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { style: _vm.iconStyle })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroStatusIndicator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AstroStatusIndicator.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div :style=\"iconStyle\" />\n</template>\n\n<script>\nimport { AstroStatuses, UnknownToAstroStatus } from '.'\nimport dark from '../../../public/icons/status-dark.png'\nimport light from '../../../public/icons/status-light.png'\n\nexport default {\n props: {\n status: {\n type: String,\n required: true,\n },\n large: {\n type: Boolean,\n },\n small: {\n type: Boolean,\n },\n scale: {\n type: Number,\n },\n },\n computed: {\n icons: function () {\n return dark // TODO: check theme\n },\n scaleFactor: function () {\n if (this.scale) {\n return this.scale\n } else if (this.large) {\n return 1\n } else if (this.small) {\n return 0.3\n } else {\n return 0.5\n }\n },\n iconStyle: function () {\n const offset = AstroStatuses.indexOf(UnknownToAstroStatus[this.status])\n // Scale according to severity ... offset 1 is most severe (critical)\n // We knock off 5% for every less severe value\n const relativeScale = 1 - (offset - 1) * 0.05\n // The original png dimensions are 224x32 px\n const bgWidth = 224 * this.scaleFactor * relativeScale\n const bgHeight = 32 * this.scaleFactor * relativeScale\n const iconWidth = 32 * this.scaleFactor * relativeScale // Each icon in the png is 32px wide with no space in between\n return [\n `background-image: url(${this.icons});`,\n `background-position-x: -${offset * iconWidth}px;`,\n `background-size: ${bgWidth}px ${bgHeight}px;`,\n `height: ${iconWidth}px;`,\n `width: ${iconWidth}px;`,\n `padding-top: ${offset - 1}px;`,\n ].join('')\n },\n },\n}\n</script>\n","import { render, staticRenderFns } from \"./AstroStatusIndicator.vue?vue&type=template&id=3821337a&\"\nimport script from \"./AstroStatusIndicator.vue?vue&type=script&lang=js&\"\nexport * from \"./AstroStatusIndicator.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('3821337a')) {\n api.createRecord('3821337a', component.options)\n } else {\n api.reload('3821337a', component.options)\n }\n module.hot.accept(\"./AstroStatusIndicator.vue?vue&type=template&id=3821337a&\", function () {\n api.rerender('3821337a', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/components/icons/AstroStatusIndicator.vue\"\nexport default component.exports","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport AstroIcon from './AstroIcon'\nimport AstroStatusIndicator from './AstroStatusIndicator'\n\nconst AstroRuxIcons = [\n // These are the 'astro' icons taken from\n // https://github.com/RocketCommunicationsInc/astro-components/blob/master/static/json/rux-icons.json\n 'altitude',\n 'antenna',\n 'antenna-off',\n 'antenna-receive',\n 'antenna-transmit',\n 'equipment',\n 'mission',\n 'netcom',\n 'payload',\n 'processor',\n 'processor-alt',\n 'propulsion-power',\n 'satellite-off',\n 'satellite-receive',\n 'satellite-transmit',\n 'solar',\n 'thermal',\n]\n\nconst AstroIconLibrary = [\n // These are from the IDs in the default RuxIcon library: https://github.com/RocketCommunicationsInc/astro-components/blob/master/static/icons/astro.svg\n ...AstroRuxIcons,\n 'add-large',\n 'add-small',\n 'close-large',\n 'close-small',\n 'collapse',\n 'expand',\n 'lock',\n 'unlock',\n 'search',\n 'caution',\n 'maintenance',\n 'notifications',\n 'settings',\n\n // These are in that SVG file, but they're broken in RuxIcon:\n // 'twitter', // the twitter logo\n // 'progress', // circle\n // 'resources', // filing cabinet\n // 'solar', // grid\n]\n\nconst UnknownToAstroStatus = {\n fatal: 'critical',\n FATAL: 'critical',\n error: 'critical',\n ERROR: 'critical',\n warn: 'caution',\n WARN: 'caution',\n info: 'normal',\n INFO: 'normal',\n debug: 'off',\n DEBUG: 'off',\n critical: 'critical',\n CRITICAL: 'critical',\n serious: 'serious',\n SERIOUS: 'serious',\n caution: 'caution',\n CAUTION: 'caution',\n normal: 'normal',\n NORMAL: 'normal',\n standby: 'standby',\n STANDBY: 'standby',\n off: 'off',\n OFF: 'OFF',\n}\n\nconst UnknownToCosmosStatus = {\n fatal: 'FATAL',\n FATAL: 'FATAL',\n error: 'ERROR',\n ERROR: 'ERROR',\n warn: 'WARN',\n WARN: 'WARN',\n info: 'INFO',\n INFO: 'INFO',\n debug: 'DEBUG',\n DEBUG: 'DEBUG',\n critical: 'ERROR',\n CRITICAL: 'ERROR',\n serious: 'WARN',\n SERIOUS: 'WARN',\n caution: 'WARN',\n CAUTION: 'WARN',\n normal: 'INFO',\n NORMAL: 'INFO',\n standby: 'INFO',\n STANDBY: 'INFO',\n off: 'INFO',\n OFF: 'INFO',\n}\n\nconst AstroStatusColors = {\n fatal: '#ff69B4',\n critical: '#ff3838',\n serious: '#ffb302',\n caution: '#fce83a',\n normal: '#56f000',\n standby: '#2dccff',\n off: '#a4abb6',\n}\n\nconst getStatusColorContrast = function (severityLevel) {\n const black = '#000000'\n const white = '#ffffff'\n\n const statusColor = AstroStatusColors[UnknownToAstroStatus[severityLevel]]\n if (statusColor) {\n const r = Number(`0x${statusColor.slice(1, 3)}`)\n const g = Number(`0x${statusColor.slice(3, 5)}`)\n const b = Number(`0x${statusColor.slice(5, 7)}`)\n const brightness = (r * 299 + g * 587 + b * 114) / 1000 // https://www.w3.org/TR/AERT/#color-contrast\n\n if (brightness > 128) return black\n }\n return white\n}\n\nconst AstroStatuses = Object.keys(AstroStatusColors)\n\nconst AstroRegularIcons = AstroIconLibrary.reduce((values, icon) => {\n return {\n [`astro-${icon}`]: {\n component: AstroIcon,\n props: {\n icon,\n },\n },\n ...values,\n }\n}, {})\nconst AstroStatusIcons = AstroStatuses.reduce((values, status) => {\n return {\n [`astro-status-${status}`]: {\n component: AstroStatusIndicator,\n props: {\n status: status,\n },\n },\n ...values,\n }\n}, {})\nconst AstroIconVuetifyValues = { ...AstroRegularIcons, ...AstroStatusIcons }\n\nexport {\n AstroIconLibrary,\n AstroIconVuetifyValues,\n AstroStatuses,\n AstroStatusColors,\n getStatusColorContrast,\n UnknownToAstroStatus,\n UnknownToCosmosStatus,\n}\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nconst _levels = [\n // order of levels from highest to lowest\n 'FATAL',\n 'fatal',\n 'ERROR',\n 'critical',\n 'serious',\n 'WARN',\n 'caution',\n 'INFO',\n 'normal',\n 'standby',\n 'off',\n 'DEBUG',\n]\n\nconst _getLevelIndeces = function (levels) {\n return levels.map((level) => _levels.indexOf(level))\n}\n\nconst highestLevel = function (levels) {\n const indices = _getLevelIndeces(levels)\n const index = Math.min(...indices)\n return _levels[index]\n}\n\nconst lowestLevel = function (levels) {\n const indices = _getLevelIndeces(levels)\n const index = Math.max(...indices)\n return _levels[index]\n}\n\nconst orderByLevel = function (objects, levelGetter = (x) => x.level) {\n return objects.sort((a, b) => {\n return _levels.indexOf(levelGetter(a)) - _levels.indexOf(levelGetter(b))\n })\n}\n\nconst groupByLevel = function (objects, levelGetter = (x) => x.level) {\n return objects.reduce((groups, obj) => {\n const level = levelGetter(obj)\n groups[level] ||= []\n groups[level].push(obj)\n return groups\n }, {})\n}\n\nexport { highestLevel, lowestLevel, orderByLevel, groupByLevel }\n","var adapters = {\n logger: typeof console !== \"undefined\" ? console : undefined,\n WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined\n};\n\nvar logger = {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now());\n adapters.logger.log(\"[ActionCable]\", ...messages);\n }\n }\n};\n\nconst now = () => (new Date).getTime();\n\nconst secondsSince = time => (now() - time) / 1e3;\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`);\n }\n }\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n }\n isRunning() {\n return this.startedAt && !this.stoppedAt;\n }\n recordPing() {\n this.pingedAt = now();\n }\n recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n }\n recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n }\n startPolling() {\n this.stopPolling();\n this.poll();\n }\n stopPolling() {\n clearTimeout(this.pollTimeout);\n }\n poll() {\n this.pollTimeout = setTimeout((() => {\n this.reconnectIfStale();\n this.poll();\n }), this.getPollInterval());\n }\n getPollInterval() {\n const {staleThreshold: staleThreshold, reconnectionBackoffRate: reconnectionBackoffRate} = this.constructor;\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));\n const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;\n const jitter = jitterMax * Math.random();\n return staleThreshold * 1e3 * backoff * (1 + jitter);\n }\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`);\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`);\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n }\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt;\n }\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;\n }\n disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n }\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout((() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`);\n this.connection.reopen();\n }\n }), 200);\n }\n }\n}\n\nConnectionMonitor.staleThreshold = 6;\n\nConnectionMonitor.reconnectionBackoffRate = .15;\n\nvar INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\",\n remote: \"remote\"\n },\n default_mount_path: \"/cable\",\n protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n};\n\nconst {message_types: message_types, protocols: protocols} = INTERNAL;\n\nconst supportedProtocols = protocols.slice(0, protocols.length - 1);\n\nconst indexOf = [].indexOf;\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n }\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`);\n return false;\n } else {\n const socketProtocols = [ ...protocols, ...this.consumer.subprotocols || [] ];\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n }\n close({allowReconnect: allowReconnect} = {\n allowReconnect: true\n }) {\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isOpen()) {\n return this.webSocket.close();\n }\n }\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`);\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`);\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n }\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n }\n isOpen() {\n return this.isState(\"open\");\n }\n isActive() {\n return this.isState(\"open\", \"connecting\");\n }\n triedToReconnect() {\n return this.monitor.reconnectAttempts > 0;\n }\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n }\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0;\n }\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n }\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this);\n this.webSocket[`on${eventName}`] = handler;\n }\n }\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {};\n }\n }\n}\n\nConnection.reopenDelay = 500;\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n const {identifier: identifier, message: message, reason: reason, reconnect: reconnect, type: type} = JSON.parse(event.data);\n switch (type) {\n case message_types.welcome:\n if (this.triedToReconnect()) {\n this.reconnectAttempted = true;\n }\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n if (this.reconnectAttempted) {\n this.reconnectAttempted = false;\n return this.subscriptions.notify(identifier, \"connected\", {\n reconnected: true\n });\n } else {\n return this.subscriptions.notify(identifier, \"connected\", {\n reconnected: false\n });\n }\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`);\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error() {\n logger.log(\"WebSocket onerror event\");\n }\n};\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key];\n object[key] = value;\n }\n }\n return object;\n};\n\nclass Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n perform(action, data = {}) {\n data.action = action;\n return this.send(data);\n }\n send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n }\n unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n }\n}\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);\n }\n this.startGuaranteeing();\n }\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);\n this.pendingSubscriptions = this.pendingSubscriptions.filter((s => s !== subscription));\n }\n startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n }\n stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n }\n retrySubscribing() {\n this.retryTimeout = setTimeout((() => {\n if (this.subscriptions && typeof this.subscriptions.subscribe === \"function\") {\n this.pendingSubscriptions.map((subscription => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`);\n this.subscriptions.subscribe(subscription);\n }));\n }\n }), 500);\n }\n}\n\nclass Subscriptions {\n constructor(consumer) {\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n create(channelName, mixin) {\n const channel = channelName;\n const params = typeof channel === \"object\" ? channel : {\n channel: channel\n };\n const subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n }\n add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n }\n remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n }\n reject(identifier) {\n return this.findAll(identifier).map((subscription => {\n this.forget(subscription);\n this.notify(subscription, \"rejected\");\n return subscription;\n }));\n }\n forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter((s => s !== subscription));\n return subscription;\n }\n findAll(identifier) {\n return this.subscriptions.filter((s => s.identifier === identifier));\n }\n reload() {\n return this.subscriptions.map((subscription => this.subscribe(subscription)));\n }\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription => this.notify(subscription, callbackName, ...args)));\n }\n notify(subscription, callbackName, ...args) {\n let subscriptions;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [ subscription ];\n }\n return subscriptions.map((subscription => typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined));\n }\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n }\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`);\n this.findAll(identifier).map((subscription => this.guarantor.forget(subscription)));\n }\n sendCommand(subscription, command) {\n const {identifier: identifier} = subscription;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n }\n}\n\nclass Consumer {\n constructor(url) {\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n this.subprotocols = [];\n }\n get url() {\n return createWebSocketURL(this._url);\n }\n send(data) {\n return this.connection.send(data);\n }\n connect() {\n return this.connection.open();\n }\n disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n }\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n }\n addSubProtocol(subprotocol) {\n this.subprotocols = [ ...this.subprotocols, subprotocol ];\n }\n}\n\nfunction createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n}\n\nfunction createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url);\n}\n\nfunction getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\n\nexport { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, SubscriptionGuarantor, Subscriptions, adapters, createConsumer, createWebSocketURL, getConfig, logger };\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport * as ActionCable from '@rails/actioncable'\n//ActionCable.logger.enabled = true\nActionCable.ConnectionMonitor.staleThreshold = 10\n\nexport default class Cable {\n constructor(url = '/openc3-api/cable') {\n this._cable = null\n this._url = url\n }\n disconnect() {\n if (this._cable) {\n this._cable.disconnect()\n }\n }\n createSubscription(channel, scope, callbacks = {}, additionalOptions = {}) {\n return OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then(\n (refreshed) => {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n if (this._cable == null) {\n let final_url =\n this._url +\n '?scope=' +\n encodeURIComponent(window.openc3Scope) +\n '&authorization=' +\n encodeURIComponent(localStorage.openc3Token)\n this._cable = ActionCable.createConsumer(final_url)\n }\n return this._cable.subscriptions.create(\n {\n channel,\n ...additionalOptions,\n },\n callbacks,\n )\n },\n )\n }\n recordPing() {\n this._cable.connection.monitor.recordPing()\n }\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-overlay :value=\"showNotificationPane\" class=\"overlay\" />\n <v-menu\n v-model=\"showNotificationPane\"\n transition=\"slide-y-transition\"\n :close-on-content-click=\"false\"\n :nudge-width=\"340\"\n offset-y\n :nudge-bottom=\"20\"\n >\n <template v-slot:activator=\"{ on, attrs }\">\n <rux-monitoring-icon\n v-bind=\"attrs\"\n v-on=\"on\"\n class=\"rux-icon\"\n :icon=\"notificationVsAlert\"\n label=\"Notifications\"\n :sublabel=\"activeScripts\"\n :status=\"iconStatus\"\n :notifications=\"unreadNotifications.length\"\n ></rux-monitoring-icon>\n </template>\n\n <!-- Notifications list -->\n <v-card>\n <v-card-title>\n Notifications\n <v-spacer />\n <v-tooltip top open-delay=\"350\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-btn\n icon\n v-bind=\"attrs\"\n v-on=\"on\"\n class=\"ml-1\"\n @click=\"clearNotifications\"\n data-test=\"clear-notifications\"\n >\n <v-icon> mdi-close-box-multiple </v-icon>\n </v-btn>\n </template>\n <span>Clear all</span>\n </v-tooltip>\n <v-btn\n icon\n @click=\"toggleSettingsDialog\"\n class=\"ml-1\"\n data-test=\"notification-settings\"\n >\n <v-icon> $astro-settings </v-icon>\n </v-btn>\n </v-card-title>\n <v-card-text v-if=\"notifications.length === 0\">\n No notifications\n </v-card-text>\n <v-list\n v-else\n two-line\n width=\"420\"\n max-height=\"80vh\"\n class=\"overflow-y-auto\"\n data-test=\"notification-list\"\n >\n <template v-for=\"(notification, index) in notificationList\">\n <template v-if=\"notification.header\">\n <v-divider v-if=\"index !== 0\" :key=\"index\" class=\"mb-2\" />\n <v-subheader :key=\"notification.header\">\n {{ notification.header }}\n </v-subheader>\n </template>\n\n <v-list-item\n v-else\n :key=\"`notification-${index}`\"\n @click=\"openDialog(notification)\"\n class=\"pl-2\"\n >\n <v-badge left inline color=\"transparent\">\n <v-list-item-content class=\"pt-0 pb-0\">\n <v-list-item-title\n :class=\"{\n 'text--secondary': notification.read,\n 'text-wrap': true,\n }\"\n >\n {{ notification.message }}\n </v-list-item-title>\n <v-list-item-subtitle>\n {{ notification.time | shortDateTime }}\n </v-list-item-subtitle>\n <div style=\"height: 20px\" />\n </v-list-item-content>\n <template v-slot:badge>\n <rux-status\n :status=\"getStatus(notification.level)\"\n ></rux-status>\n </template>\n </v-badge>\n </v-list-item>\n </template>\n </v-list>\n </v-card>\n </v-menu>\n\n <!-- Dialog for viewing full notification -->\n <v-dialog v-model=\"notificationDialog\" width=\"600\">\n <v-card>\n <v-card-title>\n {{ selectedNotification.message }}\n <v-spacer />\n <astro-status-indicator\n :status=\"selectedNotification.level || 'INFO'\"\n />\n </v-card-title>\n <v-card-subtitle>\n {{ selectedNotification.time | shortDateTime }}\n </v-card-subtitle>\n <v-divider />\n <v-card-actions>\n <v-btn\n v-if=\"selectedNotification.url\"\n color=\"primary\"\n text\n @click=\"navigate(selectedNotification.url)\"\n >\n Open\n <v-icon right> mdi-open-in-new </v-icon>\n </v-btn>\n <v-btn color=\"primary\" text @click=\"notificationDialog = false\">\n Close\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n\n <!-- Dialog for changing notification settings -->\n <v-dialog v-model=\"settingsDialog\" width=\"600\">\n <v-card>\n <v-card-title> Notification settings </v-card-title>\n <v-card-text>\n <v-switch v-model=\"showToast\" label=\"Show toasts\" />\n </v-card-text>\n <v-divider />\n <v-card-actions>\n <v-btn color=\"primary\" text @click=\"toggleSettingsDialog\">\n Close\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n </div>\n</template>\n\n<script>\nimport { formatDistanceToNow } from 'date-fns'\nimport {\n AstroStatusColors,\n UnknownToAstroStatus,\n} from '../../../components/icons'\nimport { highestLevel, orderByLevel, groupByLevel } from '../util/AstroStatus'\nimport Cable from '../../../services/cable.js'\nimport Api from '../../../services/api'\n\nconst NOTIFICATION_HISTORY_MAX_LENGTH = 1000\n\nexport default {\n props: {\n size: {\n type: [String, Number],\n default: 26,\n },\n },\n data: function () {\n return {\n AstroStatusColors,\n alerts: [],\n cable: new Cable(),\n scriptCable: new Cable('/script-api/cable'),\n subscription: null,\n scriptSubscription: null,\n numScripts: 0,\n notifications: [],\n showNotificationPane: false,\n toastNotification: {},\n notificationDialog: false,\n selectedNotification: {},\n settingsDialog: false,\n showToast: true,\n }\n },\n computed: {\n activeScripts: function () {\n return `Scripts: ${this.numScripts}`\n },\n notificationVsAlert: function () {\n // TODO: Determine if this is a notification or alert\n return 'notifications'\n // return 'warning'\n },\n iconStatus: function () {\n if (this.unreadNotifications.length === 0) {\n return 'off'\n }\n const levels = this.unreadNotifications\n .map((notification) => notification.level)\n .filter((val, index, self) => {\n return self.indexOf(val) === index // Unique values\n })\n return UnknownToAstroStatus[highestLevel(levels)]\n },\n readNotifications: function () {\n return this.notifications\n .filter((notification) => notification.read)\n .sort((a, b) => b.time - a.time)\n },\n unreadNotifications: function () {\n return this.notifications\n .filter((notification) => !notification.read)\n .sort((a, b) => b.time - a.time)\n },\n unreadCount: function () {\n return this.unreadNotifications.length\n },\n notificationList: function () {\n const groups = groupByLevel(this.unreadNotifications)\n let result = orderByLevel(Object.keys(groups), (k) => k).flatMap(\n (level) => {\n const header = {\n header: level.charAt(0).toUpperCase() + level.slice(1),\n }\n return [header, ...groups[level]]\n },\n )\n if (this.readNotifications.length) {\n result = result.concat([{ header: 'Read' }, ...this.readNotifications])\n }\n return result\n },\n },\n watch: {\n showNotificationPane: function (val) {\n if (!val) {\n if (this.selectedNotification.message) {\n this.notificationDialog = false\n this.selectedNotification = {}\n } else {\n this.markAllAsRead()\n }\n }\n },\n showToast: function (val) {\n localStorage.notoast = !val\n },\n },\n created: function () {\n this.showToast = localStorage.notoast === 'false'\n this.subscribe()\n // TODO How does this get updated after initialization\n this.alerts = this.$store.state.notifyHistory\n // Get the initial number of running scripts\n Api.get('/script-api/running-script').then((response) => {\n this.numScripts = response.data.length\n })\n },\n destroyed: function () {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n if (this.scriptSubscription) {\n this.scriptSubscription.unsubscribe()\n }\n this.cable.disconnect()\n this.scriptCable.disconnect()\n },\n methods: {\n getStatus: function (level) {\n return UnknownToAstroStatus[level]\n },\n markAllAsRead: function () {\n this.notifications.forEach((notification) => {\n notification.read = true\n if (\n !localStorage.lastReadNotification ||\n localStorage.lastReadNotification < notification.msg_id\n ) {\n localStorage.lastReadNotification = notification.msg_id\n }\n })\n },\n clearNotifications: function () {\n this.markAllAsRead()\n this.notifications = []\n localStorage.notificationStreamOffset = localStorage.lastReadNotification\n this.showNotificationPane = false\n },\n toggleNotificationPane: function () {\n this.showNotificationPane = !this.showNotificationPane\n },\n toggleSettingsDialog: function () {\n this.settingsDialog = !this.settingsDialog\n },\n openDialog: function (notification, clearToast = false) {\n notification.read = true\n if (\n !localStorage.lastReadNotification ||\n localStorage.lastReadNotification < notification.msg_id\n ) {\n localStorage.lastReadNotification = notification.msg_id\n }\n this.selectedNotification = notification\n this.notificationDialog = true\n },\n navigate: function (url) {\n window.open(url, '_blank')\n },\n subscribe: function () {\n this.cable\n .createSubscription(\n 'MessagesChannel',\n window.openc3Scope,\n {\n received: (data) => this.receiveMessage(data),\n },\n {\n start_offset:\n localStorage.notificationStreamOffset ||\n localStorage.lastReadNotification,\n types: ['notification', 'alert', 'ephemeral'],\n },\n )\n .then((subscription) => {\n this.subscription = subscription\n })\n this.scriptCable\n .createSubscription('AllScriptsChannel', window.openc3Scope, {\n received: (data) => this.receiveScript(data),\n })\n .then((subscription) => {\n this.scriptSubscription = subscription\n })\n },\n receiveMessage: function (parsed) {\n this.cable.recordPing()\n\n // Cut down if we're being flooded\n if (parsed.length > NOTIFICATION_HISTORY_MAX_LENGTH) {\n parsed.splice(0, parsed.length - NOTIFICATION_HISTORY_MAX_LENGTH)\n }\n\n // Filter out ephemeral\n let ephemeral = parsed.filter(\n (someobject) => someobject.type === 'ephemeral',\n )\n if (ephemeral && ephemeral.length > 0) {\n // Remove ephemeral from parsed\n parsed = parsed.filter((someobject) => someobject.type !== 'ephemeral')\n // Emit the ephemeral\n ephemeral.forEach((notification) => {\n this.$emit('ephemeral', notification)\n })\n }\n\n let foundToast = false\n parsed.forEach((notification) => {\n notification.read =\n notification.msg_id <= localStorage.lastReadNotification\n notification.level = notification.level || 'INFO'\n if (\n !notification.read && // Don't toast read notifications\n ['FATAL', 'ERROR', 'WARN'].includes(notification.level) // Toast for these statuses\n ) {\n foundToast = true\n this.toastNotification = notification\n }\n })\n\n if (this.showToast && foundToast) {\n let duration = 5000\n if (['FATAL', 'ERROR'].includes(this.toastNotification.level)) {\n duration = null\n }\n\n // Notify takes a minute to be ready on app load\n if (this.$notify) {\n this.$notify[this.toastNotification.level]({\n ...this.toastNotification,\n type: 'notification',\n duration: duration,\n saveToHistory: false,\n })\n }\n }\n\n if (\n this.notifications.length + parsed.length >\n NOTIFICATION_HISTORY_MAX_LENGTH\n ) {\n this.notifications.splice(\n 0,\n this.notifications.length +\n parsed.length -\n NOTIFICATION_HISTORY_MAX_LENGTH,\n )\n }\n this.notifications = this.notifications.concat(parsed)\n },\n receiveScript: function (data) {\n this.cable.recordPing()\n this.numScripts = data['active_scripts']\n },\n },\n filters: {\n shortDateTime: function (nsec) {\n if (!nsec) return ''\n const date = new Date(nsec / 1_000_000)\n return formatDistanceToNow(date, { addSuffix: true })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n height: 28px;\n}\n.v-badge {\n width: 100%;\n}\n.overlay {\n height: 100vh;\n width: 100vw;\n}\n</style>\n","import mod from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=style&index=0&id=eda8ca60&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=style&index=0&id=eda8ca60&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Notifications.vue?vue&type=template&id=eda8ca60&scoped=true&\"\nimport script from \"./Notifications.vue?vue&type=script&lang=js&\"\nexport * from \"./Notifications.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Notifications.vue?vue&type=style&index=0&id=eda8ca60&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eda8ca60\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('eda8ca60')) {\n api.createRecord('eda8ca60', component.options)\n } else {\n api.reload('eda8ca60', component.options)\n }\n module.hot.accept(\"./Notifications.vue?vue&type=template&id=eda8ca60&scoped=true&\", function () {\n api.rerender('eda8ca60', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/tools/base/components/Notifications.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\"v-overlay\", {\n staticClass: \"overlay\",\n attrs: { value: _vm.showUserMenu },\n }),\n _vm._v(\" \"),\n _c(\n \"v-menu\",\n {\n attrs: {\n transition: \"slide-y-transition\",\n \"offset-y\": \"\",\n \"close-on-content-click\": false,\n \"nudge-width\": 120,\n \"nudge-bottom\": 20,\n },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function (ref) {\n var on = ref.on\n var attrs = ref.attrs\n return [\n _c(\n \"rux-monitoring-icon\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"rux-icon\",\n attrs: {\n icon: \"person\",\n status: \"off\",\n label: _vm.name,\n sublabel: _vm.roles(),\n },\n },\n \"rux-monitoring-icon\",\n attrs,\n false\n ),\n on\n )\n ),\n ]\n },\n },\n ]),\n model: {\n value: _vm.showUserMenu,\n callback: function ($$v) {\n _vm.showUserMenu = $$v\n },\n expression: \"showUserMenu\",\n },\n },\n [\n _vm._v(\" \"),\n _c(\n \"v-card\",\n [\n _c(\"v-card-text\", { staticClass: \"text-center\" }, [\n _c(\n \"div\",\n { staticStyle: { \"text-align\": \"center\", margin: \"5px\" } },\n [_vm._v(\"\\n \" + _vm._s(_vm.name) + \"\\n \")]\n ),\n _vm._v(\" \"),\n _vm.name !== \"Anonymous\"\n ? _c(\"div\", [\n _c(\"div\", { staticClass: \"roles\" }, [\n _vm._v(\"Username: \" + _vm._s(_vm.username)),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"pb-3 roles\" }, [\n _vm._v(\"Roles: \" + _vm._s(_vm.roles())),\n ]),\n ])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.authenticated\n ? _c(\n \"div\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { block: \"\", color: \"primary\" },\n on: { click: _vm.logout },\n },\n [_vm._v(\" Logout \")]\n ),\n _vm._v(\" \"),\n _vm.name !== \"Anonymous\"\n ? _c(\n \"div\",\n { staticClass: \"pa-3\" },\n [\n _c(\n \"v-row\",\n { staticClass: \"pt-3 user-title\" },\n [_vm._v(\"Other Active Users:\")]\n ),\n _vm._v(\" \"),\n _vm._l(_vm.activeUsers, function (user, index) {\n return _c(\n \"v-row\",\n { key: index, staticClass: \"user\" },\n [\n _vm._v(\n \"\\n \" +\n _vm._s(user) +\n \"\\n \"\n ),\n ]\n )\n }),\n ],\n 2\n )\n : _vm._e(),\n ],\n 1\n )\n : _c(\n \"div\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { block: \"\", color: \"primary\" },\n on: { click: _vm.login },\n },\n [_vm._v(\" Login \")]\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _vm.name === \"Anonymous\"\n ? _c(\n \"div\",\n {\n staticClass: \"pt-2 link\",\n on: {\n click: function ($event) {\n _vm.showUpgradeToEnterpriseDialog = true\n },\n },\n },\n [\n _vm._v(\"\\n Click to learn more about\"),\n _c(\"br\"),\n _vm._v(\n \"\\n COSMOS Enterprise Edition\\n \"\n ),\n ]\n )\n : _vm._e(),\n ]),\n ],\n 1\n ),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"upgrade-to-enterprise-dialog\", {\n attrs: { reason: \"Enterprise has individual users with RBAC\" },\n model: {\n value: _vm.showUpgradeToEnterpriseDialog,\n callback: function ($$v) {\n _vm.showUpgradeToEnterpriseDialog = $$v\n },\n expression: \"showUpgradeToEnterpriseDialog\",\n },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-overlay :value=\"showUserMenu\" class=\"overlay\" />\n <v-menu\n v-model=\"showUserMenu\"\n transition=\"slide-y-transition\"\n offset-y\n :close-on-content-click=\"false\"\n :nudge-width=\"120\"\n :nudge-bottom=\"20\"\n >\n <template v-slot:activator=\"{ on, attrs }\">\n <rux-monitoring-icon\n v-bind=\"attrs\"\n v-on=\"on\"\n class=\"rux-icon\"\n icon=\"person\"\n status=\"off\"\n :label=\"name\"\n :sublabel=\"roles()\"\n ></rux-monitoring-icon>\n </template>\n\n <v-card>\n <v-card-text class=\"text-center\">\n <div style=\"text-align: center; margin: 5px\">\n {{ name }}\n </div>\n <div v-if=\"name !== 'Anonymous'\">\n <div class=\"roles\">Username: {{ username }}</div>\n <div class=\"pb-3 roles\">Roles: {{ roles() }}</div>\n </div>\n <div v-if=\"authenticated\">\n <v-btn block @click=\"logout\" color=\"primary\"> Logout </v-btn>\n <div class=\"pa-3\" v-if=\"name !== 'Anonymous'\">\n <v-row class=\"pt-3 user-title\">Other Active Users:</v-row>\n <v-row\n v-for=\"(user, index) in activeUsers\"\n :key=\"index\"\n class=\"user\"\n >\n {{ user }}\n </v-row>\n </div>\n </div>\n <div v-else>\n <v-btn block @click=\"login\" color=\"primary\"> Login </v-btn>\n </div>\n <div\n v-if=\"name === 'Anonymous'\"\n @click=\"showUpgradeToEnterpriseDialog = true\"\n class=\"pt-2 link\"\n >\n Click to learn more about<br />\n COSMOS Enterprise Edition\n </div>\n </v-card-text>\n </v-card>\n </v-menu>\n <upgrade-to-enterprise-dialog\n v-model=\"showUpgradeToEnterpriseDialog\"\n reason=\"Enterprise has individual users with RBAC\"\n ></upgrade-to-enterprise-dialog>\n </div>\n</template>\n\n<script>\nimport Api from '../../../services/api'\nimport UpgradeToEnterpriseDialog from '../../../components/UpgradeToEnterpriseDialog'\n\nexport default {\n components: {\n UpgradeToEnterpriseDialog,\n },\n props: {\n size: {\n type: [String, Number],\n default: 26,\n },\n },\n data: function () {\n let user = OpenC3Auth.user()\n return {\n showUserMenu: false,\n authenticated: !!localStorage.openc3Token,\n name: user['name'],\n // preferred_username is returned by the token (see authorization.rb)\n username: user['preferred_username'],\n showUpgradeToEnterpriseDialog: false,\n activeUsers: ['None'],\n }\n },\n watch: {\n // Whenever we show the user menu, refresh the list of active users\n showUserMenu: function (newValue, oldValue) {\n if (newValue === true) {\n if (this.name !== 'Anonymous') {\n Api.get('/openc3-api/users/active').then((response) => {\n this.activeUsers = response.data.filter(\n (item) => !item.includes(this.name),\n )\n if (this.activeUsers.length === 0) {\n this.activeUsers = ['None']\n }\n })\n }\n }\n },\n },\n methods: {\n logout: function () {\n OpenC3Auth.logout()\n Api.put(`/openc3-api/users/logout/${this.username}`)\n },\n login: function () {\n OpenC3Auth.login(location.href)\n },\n roles: function () {\n if (this.name === 'Anonymous') {\n return 'Admin'\n } else {\n return OpenC3Auth.userroles()\n .map((element) => this.capitalize(element))\n .sort()\n .join(', ')\n }\n },\n capitalize: function (string) {\n return string.charAt(0).toUpperCase() + string.slice(1)\n },\n },\n}\n</script>\n\n<style scoped>\n.link {\n cursor: pointer;\n}\n.overlay {\n height: 100vh;\n width: 100vw;\n}\n.user-title {\n font-weight: bold;\n}\n.user,\n.roles {\n font-size: 0.8rem;\n}\n</style>\n","import mod from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=style&index=0&id=26b5fc12&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=style&index=0&id=26b5fc12&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserMenu.vue?vue&type=template&id=26b5fc12&scoped=true&\"\nimport script from \"./UserMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./UserMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserMenu.vue?vue&type=style&index=0&id=26b5fc12&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"26b5fc12\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('26b5fc12')) {\n api.createRecord('26b5fc12', component.options)\n } else {\n api.reload('26b5fc12', component.options)\n }\n module.hot.accept(\"./UserMenu.vue?vue&type=template&id=26b5fc12&scoped=true&\", function () {\n api.rerender('26b5fc12', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/tools/base/components/UserMenu.vue\"\nexport default component.exports","import mod from \"-!../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-navigation-drawer\n v-if=\"!chromeless\"\n v-model=\"drawer\"\n app\n id=\"openc3-nav-drawer\"\n >\n <img :src=\"logo\" class=\"logo\" alt=\"OpenC3\" />\n <div class=\"cosmos\" @click=\"showUpgradeToEnterpriseDialog = true\">\n COSMOS\n </div>\n <div style=\"text-align: center; font-size: 18pt\">\n {{ subtitle }}\n </div>\n <div v-for=\"(tool, name) in adminTools\" :key=\"name\" class=\"ma-3\">\n <v-btn\n block\n small\n :href=\"tool.url\"\n onclick=\"singleSpaNavigate(event)\"\n class=\"fixcenter\"\n color=\"primary\"\n >\n Admin Console\n </v-btn>\n </div>\n <v-divider />\n <v-treeview\n :items=\"items\"\n :open=\"initiallyOpen\"\n item-key=\"name\"\n dense\n open-on-click\n expand-icon=\"\"\n >\n <!-- Beginning Icon -->\n <template v-slot:prepend=\"{ item, open }\">\n <v-icon v-if=\"!item.icon\">\n {{ open ? 'mdi-chevron-down' : 'mdi-chevron-right' }}\n </v-icon>\n <template v-else>\n <a\n v-if=\"item.window === 'INLINE'\"\n :href=\"item.url\"\n onclick=\"singleSpaNavigate(event)\"\n >\n <v-icon> {{ item.icon }} </v-icon>\n </a>\n <a v-else :href=\"item.url\">\n <v-icon> {{ item.icon }} </v-icon>\n </a>\n </template>\n </template>\n\n <!-- Link Text -->\n <template v-slot:label=\"{ item }\">\n <!-- Category has no Icon -->\n <a\n v-if=\"!item.icon\"\n :href=\"item.url\"\n onclick=\"singleSpaNavigate(event)\"\n >\n {{ item.name }}\n </a>\n <template v-else>\n <!-- Tool Link -->\n <a\n v-if=\"item.window === 'INLINE'\"\n :href=\"item.url\"\n onclick=\"singleSpaNavigate(event)\"\n >\n {{ item.name }}\n </a>\n <a\n v-else-if=\"item.window === 'IFRAME'\"\n :href=\"\n '/tools/iframe?title=' +\n encodeURIComponent(item.name) +\n '&url=' +\n item.url\n \"\n >\n {{ item.name }}\n </a>\n <a v-else-if=\"item.window === 'SAME'\" :href=\"item.url\">\n {{ item.name }}\n </a>\n <a v-else :href=\"item.url\" target=\"_blank\">\n <!-- item.window === 'NEW' -->\n {{ item.name }}\n </a>\n </template>\n </template>\n\n <!-- New Tab Link -->\n <template v-slot:append=\"{ item }\">\n <a v-if=\"item.icon\" :href=\"newTabUrl(item)\" target=\"_blank\">\n <v-icon>mdi-open-in-new</v-icon>\n </a>\n </template>\n </v-treeview>\n </v-navigation-drawer>\n <v-app-bar app v-if=\"!chromeless\" id=\"openc3-app-toolbar\">\n <v-row\n class=\"flex-nowrap\"\n justify=\"space-between\"\n no-gutters\n style=\"margin-top: 20px\"\n >\n <v-col align-self=\"center\">\n <v-row class=\"flex-nowrap\">\n <rux-icon\n class=\"mr-2 pa-2\"\n size=\"small\"\n icon=\"apps\"\n @click=\"drawer = !drawer\"\n ></rux-icon>\n <span id=\"openc3-menu\" />\n </v-row>\n </v-col>\n <v-col style=\"margin: auto\">\n <rux-clock\n class=\"clock\"\n v-if=\"!astro.hideClock\"\n date-in=\"\"\n :timezone=\"astroTimeZone\"\n ></rux-clock>\n </v-col>\n <v-col align-self=\"center\">\n <v-row class=\"flex-nowrap\" style=\"margin-top: 10px\">\n <v-spacer />\n <scope-selector class=\"mr-6 mt-4\" />\n <notifications class=\"mr-6\" data-test=\"notifications\" />\n <user-menu class=\"mr-3\" /> </v-row\n ></v-col>\n </v-row>\n </v-app-bar>\n <upgrade-to-enterprise-dialog\n v-model=\"showUpgradeToEnterpriseDialog\"\n reason=\"Enterprise adds Calendar and Autonomic\"\n ></upgrade-to-enterprise-dialog>\n </div>\n</template>\n\n<script>\nimport { OpenC3Api } from '../../services/openc3-api'\nimport Api from '../../services/api'\nimport logo from '../../../public/img/logo.png'\nimport { registerApplication, start } from 'single-spa'\nimport ScopeSelector from './components/ScopeSelector.vue'\nimport Notifications from './components/Notifications.vue'\nimport UserMenu from './components/UserMenu.vue'\nimport UpgradeToEnterpriseDialog from '../../components/UpgradeToEnterpriseDialog'\nexport default {\n components: {\n ScopeSelector,\n Notifications,\n UserMenu,\n UpgradeToEnterpriseDialog,\n },\n props: {\n edition: {\n type: String,\n default: '',\n },\n },\n data() {\n return {\n api: new OpenC3Api(),\n timeZone: 'local',\n subtitle: null,\n // Update AstroSettings.vue when changing this\n astro: {\n hideClock: false,\n },\n items: [],\n drawer: true,\n appNav: {},\n logo: logo,\n initiallyOpen: [],\n showUpgradeToEnterpriseDialog: false,\n chromeless: this.$route.query.chromeless,\n }\n },\n computed: {\n // a computed getter\n shownTools: function () {\n let result = {}\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown && this.appNav[key].category !== 'Admin') {\n result[key] = this.appNav[key]\n }\n }\n return result\n },\n adminTools: function () {\n let result = {}\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown && this.appNav[key].category === 'Admin') {\n result[key] = this.appNav[key]\n }\n }\n return result\n },\n astroTimeZone: function () {\n if (this.timeZone === 'local') {\n return Intl.DateTimeFormat().resolvedOptions().timeZone\n }\n return this.timeZone\n },\n },\n created() {\n this.api\n .get_setting('astro')\n .then((response) => {\n if (response) {\n // The response is an object with settings\n this.astro = JSON.parse(response)\n }\n })\n .catch((error) => {\n // Do nothing\n })\n this.api\n .get_setting('subtitle')\n .then((response) => {\n if (response) {\n this.subtitle = response\n }\n })\n .catch((error) => {\n // Do nothing\n })\n this.api\n .get_setting('time_zone')\n .then((response) => {\n if (response) {\n this.timeZone = response\n }\n })\n .catch((error) => {\n // Do nothing\n })\n // Tools are global and are always installed into the DEFAULT scope\n Api.get('/openc3-api/tools/all', { params: { scope: 'DEFAULT' } }).then(\n (response) => {\n this.appNav = response.data\n\n let id = 1\n // Register apps and start single-spa\n for (var key of Object.keys(this.appNav)) {\n if (this.appNav[key].shown) {\n if (\n this.appNav[key].category &&\n this.appNav[key].category !== 'Admin'\n ) {\n // TODO: Make this initiallyOpen configurable like with a CATEGORY parameter?\n this.initiallyOpen.push(this.appNav[key].category)\n const result = this.items.filter(\n (item) => item.name === this.appNav[key].category,\n )\n if (result.length === 0) {\n // Create category and first item\n this.items.push({\n id: id,\n name: this.appNav[key].category,\n children: [\n {\n id: id + 1,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n inline_url: this.appNav[key].inline_url,\n window: this.appNav[key].window,\n },\n ],\n })\n id++\n } else {\n // Add to existing category\n result[0].children.push({\n id: id,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n inline_url: this.appNav[key].inline_url,\n window: this.appNav[key].window,\n })\n }\n } else if (!this.appNav[key].category) {\n // Create category\n this.items.push({\n id: id,\n name: this.appNav[key].name,\n icon: this.appNav[key].icon,\n url: this.appNav[key].url,\n inline_url: this.appNav[key].inline_url,\n window: this.appNav[key].window,\n })\n }\n id++\n }\n if (\n this.appNav[key].inline_url &&\n this.appNav[key].window === 'INLINE'\n ) {\n if (\n this.appNav[key].folder_name &&\n this.appNav[key].folder_name !== 'base'\n ) {\n let folder_name = this.appNav[key].folder_name\n let name = '@openc3/tool-' + folder_name\n registerApplication({\n name: name,\n app: () => System.import(name),\n activeWhen: ['/tools/' + folder_name],\n })\n }\n }\n }\n start({\n urlRerouteOnly: true,\n })\n\n // Redirect some base paths to the first tool\n if (\n window.location.pathname == '/' ||\n window.location.pathname == '/tools' ||\n window.location.pathname == '/tools/'\n ) {\n for (var key of Object.keys(this.shownTools)) {\n if (this.appNav[key].shown) {\n history.replaceState(null, '', this.appNav[key].url)\n break\n }\n }\n }\n\n // Check every minute if we need to update our token\n setInterval(() => {\n OpenC3Auth.updateToken(120).then(function (refreshed) {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n })\n }, 60000)\n },\n )\n },\n methods: {\n newTabUrl(tool) {\n let url = null\n if (tool.url[0] == '/' && tool.url[1] != '/') {\n url = new URL(tool.url, window.location.origin)\n } else {\n url = new URL(tool.url)\n }\n url.searchParams.set('scope', window.openc3Scope)\n return url.href\n },\n },\n}\n</script>\n\n<style scoped>\n.clock {\n margin-top: 10px;\n justify-content: center;\n}\n.logo {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.cosmos {\n cursor: pointer;\n text-align: center;\n font-size: 18pt;\n}\ndiv a {\n color: white;\n font-size: 16px;\n display: block;\n height: 100%;\n width: 100%;\n}\na.fixcenter {\n display: flex;\n}\n#openc3-app-toolbar .top-bar-divider-full-height {\n margin: -4px 4px;\n min-height: calc(100% + 8px);\n}\n</style>\n<style>\n/* Remove the padding on root level nodes since we removed the expand icon */\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__level {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview\n > .v-treeview-node\n > .v-treeview-node__root\n > .v-treeview-node__toggle {\n width: 0px;\n}\n#openc3-nav-drawer\n .v-treeview-node__children\n div.v-treeview-node__level:nth-child(1) {\n width: 0px;\n}\n</style>\n","\n import API from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=style&index=0&id=00ae1763&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=style&index=0&id=00ae1763&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=style&index=1&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNav.vue?vue&type=style&index=1&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppNav.vue?vue&type=template&id=00ae1763&scoped=true&\"\nimport script from \"./AppNav.vue?vue&type=script&lang=js&\"\nexport * from \"./AppNav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppNav.vue?vue&type=style&index=0&id=00ae1763&scoped=true&lang=css&\"\nimport style1 from \"./AppNav.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00ae1763\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('00ae1763')) {\n api.createRecord('00ae1763', component.options)\n } else {\n api.reload('00ae1763', component.options)\n }\n module.hot.accept(\"./AppNav.vue?vue&type=template&id=00ae1763&scoped=true&\", function () {\n api.rerender('00ae1763', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/tools/base/AppNav.vue\"\nexport default component.exports","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"v-dialog\",\n {\n attrs: { width: \"500\" },\n model: {\n value: _vm.dialog,\n callback: function ($$v) {\n _vm.dialog = $$v\n },\n expression: \"dialog\",\n },\n },\n [\n _c(\n \"v-card\",\n [\n _c(\"v-card-title\", [_vm._v(\" Clock out of sync \")]),\n _vm._v(\" \"),\n _c(\n \"v-card-text\",\n [\n _vm._v(\n \"\\n We've detected that your clock is approximately\\n \" +\n _vm._s(Math.abs(_vm.approximateDiscrepancySec)) +\n \" seconds\\n \" +\n _vm._s(\n _vm.approximateDiscrepancySec > 0 ? \"behind\" : \"ahead of\"\n ) +\n \" server time.\\n This can cause issues and might have unknown side effects.\\n \"\n ),\n _c(\"v-checkbox\", {\n attrs: { label: \"Don't show this again\" },\n model: {\n value: _vm.suppress,\n callback: function ($$v) {\n _vm.suppress = $$v\n },\n expression: \"suppress\",\n },\n }),\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"v-divider\"),\n _vm._v(\" \"),\n _c(\n \"v-card-actions\",\n [\n _c(\n \"v-btn\",\n {\n attrs: { color: \"primary\", text: \"\" },\n on: { click: _vm.dismiss },\n },\n [_vm._v(\" Dismiss \")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"dialog\" width=\"500\">\n <v-card>\n <v-card-title> Clock out of sync </v-card-title>\n <v-card-text>\n We've detected that your clock is approximately\n {{ Math.abs(approximateDiscrepancySec) }} seconds\n {{ approximateDiscrepancySec > 0 ? 'behind' : 'ahead of' }} server time.\n This can cause issues and might have unknown side effects.\n <v-checkbox v-model=\"suppress\" label=\"Don't show this again\" />\n </v-card-text>\n <v-divider />\n <v-card-actions>\n <v-btn color=\"primary\" text @click=\"dismiss\"> Dismiss </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\n// Directly use axios since we need no authentication or scope\nimport axios from 'axios'\n\nconst ALLOWABLE_DISCREPANCY_MS = 3000\n\nexport default {\n data: function () {\n return {\n dismissed: false,\n suppress: false,\n discrepancy: 0,\n }\n },\n created: function () {\n this.suppress =\n localStorage['suppresswarning__clock_out_of_sync_with_server'] === 'true'\n if (!this.suppress) {\n axios\n .get('/openc3-api/time')\n .then((response) => {\n this.discrepancy = response.data.now_nsec / 1_000_000 - Date.now()\n })\n .catch((error) => {\n // Silently fail\n this.dismissed = true\n })\n }\n },\n methods: {\n dismiss: function () {\n localStorage['suppresswarning__clock_out_of_sync_with_server'] =\n this.suppress\n this.dismissed = true\n },\n },\n computed: {\n approximateDiscrepancySec: function () {\n return (this.discrepancy / 1000).toFixed()\n },\n dialog: function () {\n return (\n !this.dismissed &&\n Math.abs(this.discrepancy) >= ALLOWABLE_DISCREPANCY_MS\n )\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeCheck.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeCheck.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TimeCheck.vue?vue&type=template&id=2963a6a3&\"\nimport script from \"./TimeCheck.vue?vue&type=script&lang=js&\"\nexport * from \"./TimeCheck.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('2963a6a3')) {\n api.createRecord('2963a6a3', component.options)\n } else {\n api.reload('2963a6a3', component.options)\n }\n module.hot.accept(\"./TimeCheck.vue?vue&type=template&id=2963a6a3&\", function () {\n api.rerender('2963a6a3', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/tools/base/components/TimeCheck.vue\"\nexport default component.exports","import mod from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./ClassificationBanners.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../openc3-tool-base/node_modules/babel-loader/lib/index.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./ClassificationBanners.vue?vue&type=script&lang=js&\"","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<script>\nimport { OpenC3Api } from '../../../services/openc3-api'\n\nexport default {\n data: function () {\n return {\n api: null,\n classification: {\n text: '',\n fontColor: 'white',\n backgroundColor: 'red',\n topHeight: 0,\n bottomHeight: 0,\n },\n }\n },\n computed: {\n classificationStyles: function () {\n // JavaScript can't access CSS psudo-elements (::before and ::after).\n // This string sets these JS values to CSS variables, accessible to\n // the style sheet via the style attribute on #app\n return [\n `--classification-text:\"${this.classification.text}\";`,\n `--classification-font-color:${this.classification.fontColor};`,\n `--classification-background-color:${this.classification.backgroundColor};`,\n `--classification-height-top:${this.classification.topHeight}px;`,\n `--classification-height-bottom:${this.classification.bottomHeight}px;`,\n ].join('')\n },\n },\n created: function () {\n this.api = new OpenC3Api()\n this.load()\n },\n methods: {\n load: function () {\n this.api\n .get_setting('classification_banner')\n .then((response) => {\n if (response) {\n this.classification = JSON.parse(response)\n }\n })\n .catch((error) => {\n // Do nothing\n })\n },\n },\n}\n</script>\n\n<style>\n/* push things up and down to make room for the classification banners */\n#app,\n#openc3-nav-drawer {\n margin-top: var(--classification-height-top);\n}\n#openc3-app-toolbar {\n top: var(--classification-height-top);\n}\n#openc3-nav-drawer .v-navigation-drawer__content {\n height: calc(\n 100% - var(--classification-height-top) -\n var(--classification-height-bottom)\n );\n}\n#footer {\n margin-bottom: var(--classification-height-bottom);\n}\n\n/* make the classification banners */\n#app::before,\n#app::after {\n z-index: 99;\n position: fixed;\n left: 0;\n right: 0;\n text-align: center;\n content: var(--classification-text);\n color: var(--classification-font-color);\n background-color: var(--classification-background-color);\n}\n#app::before {\n top: 0;\n font-size: calc(var(--classification-height-top) * 0.7);\n height: var(--classification-height-top);\n}\n#app::after {\n bottom: 0;\n font-size: calc(var(--classification-height-bottom) * 0.7);\n height: var(--classification-height-bottom);\n}\n</style>\n","\n import API from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../openc3-tool-base/node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./ClassificationBanners.vue?vue&type=style&index=0&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../openc3-tool-base/node_modules/css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/index.js??vue-loader-options!./ClassificationBanners.vue?vue&type=style&index=0&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","var render, staticRenderFns\nimport script from \"./ClassificationBanners.vue?vue&type=script&lang=js&\"\nexport * from \"./ClassificationBanners.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ClassificationBanners.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../openc3-tool-base/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('6e8d3d69')) {\n api.createRecord('6e8d3d69', component.options)\n } else {\n api.reload('6e8d3d69', component.options)\n }\n \n }\n}\ncomponent.options.__file = \"packages/openc3-tool-common/src/tools/base/components/ClassificationBanners.vue\"\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-app :style=\"classificationStyles\">\n <app-nav class=\"d-print-none\" />\n\n <!-- Sizes your content based upon application components -->\n <v-main :style=\"mainStyle\">\n <v-container fluid>\n <div id=\"openc3-tool\" style=\"overflow: auto\"></div>\n <div><router-view /></div>\n </v-container>\n </v-main>\n <app-footer app class=\"d-print-none\" />\n <time-check />\n </v-app>\n</template>\n\n<script>\nimport AppFooter from '../../packages/openc3-tool-common/src/tools/base/AppFooter'\nimport AppNav from '../../packages/openc3-tool-common/src/tools/base/AppNav'\nimport TimeCheck from '../../packages/openc3-tool-common/src/tools/base/components/TimeCheck'\nimport ClassificationBanners from '../../packages/openc3-tool-common/src/tools/base/components/ClassificationBanners'\nexport default {\n components: {\n AppFooter,\n AppNav,\n TimeCheck,\n },\n mixins: [ClassificationBanners],\n data() {\n return {\n mainStyle: {},\n }\n },\n created() {\n if (this.$route.query.chromeless) {\n this.mainStyle = { 'padding-top': '0px !important' }\n }\n },\n}\n</script>\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=7ba5bd90&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/openc3/plugins/openc3-tool-base/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('7ba5bd90')) {\n api.createRecord('7ba5bd90', component.options)\n } else {\n api.reload('7ba5bd90', component.options)\n }\n module.hot.accept(\"./App.vue?vue&type=template&id=7ba5bd90&\", function () {\n api.rerender('7ba5bd90', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/App.vue\"\nexport default component.exports","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport Vue from 'vue'\nimport Router from 'vue-router'\n\nVue.use(Router)\n\nexport default new Router({\n mode: 'history',\n base: process.env.BASE_URL,\n routes: [\n {\n path: '/login',\n name: 'Login',\n component: () =>\n import(\n '../../packages/openc3-tool-common/src/tools/base/components/Login'\n ),\n },\n ],\n})\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport Vue from 'vue'\nimport Vuex from 'vuex'\n\nVue.use(Vuex)\n\nconst NOTIFY_HISTORY_MAX_LENGTH = 100\n\nif (!window.hasOwnProperty('OpenC3Store')) {\n window.OpenC3Store = new Vuex.Store({\n state: {\n notifyHistory: [],\n },\n getters: {},\n mutations: {\n notifyAddHistory: function (state, notification) {\n if (state.notifyHistory.length >= NOTIFY_HISTORY_MAX_LENGTH) {\n state.notifyHistory.length = NOTIFY_HISTORY_MAX_LENGTH - 1\n }\n state.notifyHistory.unshift(notification)\n },\n notifyClearHistory: function (state) {\n state.notifyHistory = []\n },\n },\n modules: {},\n })\n}\n\nexport default window.OpenC3Store\n","const BUILD = {\n allRenderFn: false,\n cmpDidLoad: true,\n cmpDidUnload: false,\n cmpDidUpdate: true,\n cmpDidRender: true,\n cmpWillLoad: true,\n cmpWillUpdate: true,\n cmpWillRender: true,\n connectedCallback: true,\n disconnectedCallback: true,\n element: true,\n event: true,\n hasRenderFn: true,\n lifecycle: true,\n hostListener: true,\n hostListenerTargetWindow: true,\n hostListenerTargetDocument: true,\n hostListenerTargetBody: true,\n hostListenerTargetParent: false,\n hostListenerTarget: true,\n member: true,\n method: true,\n mode: true,\n observeAttribute: true,\n prop: true,\n propMutable: true,\n reflect: true,\n scoped: true,\n shadowDom: true,\n slot: true,\n cssAnnotations: true,\n state: true,\n style: true,\n svg: true,\n updatable: true,\n vdomAttribute: true,\n vdomXlink: true,\n vdomClass: true,\n vdomFunctional: true,\n vdomKey: true,\n vdomListener: true,\n vdomRef: true,\n vdomPropOrAttr: true,\n vdomRender: true,\n vdomStyle: true,\n vdomText: true,\n watchCallback: true,\n taskQueue: true,\n hotModuleReplacement: false,\n isDebug: false,\n isDev: false,\n isTesting: false,\n hydrateServerSide: false,\n hydrateClientSide: false,\n lifecycleDOMEvents: false,\n lazyLoad: false,\n profile: false,\n slotRelocation: true,\n appendChildSlotFix: false,\n cloneNodeFix: false,\n hydratedAttribute: false,\n hydratedClass: true,\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n safari10: false,\n scriptDataOpts: false,\n scopedSlotTextContentFix: false,\n // TODO(STENCIL-662): Remove code related to deprecated shadowDomShim field\n shadowDomShim: false,\n slotChildNodesFix: false,\n invisiblePrehydration: true,\n propBoolean: true,\n propNumber: true,\n propString: true,\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n cssVarShim: false,\n constructableCSS: true,\n cmpShouldUpdate: true,\n devTools: false,\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n dynamicImportShim: false,\n shadowDelegatesFocus: true,\n initializeNextTick: false,\n asyncLoading: false,\n asyncQueue: false,\n transformTagName: false,\n attachStyles: true,\n};\nconst Env = {};\nconst NAMESPACE = /* default */ 'app';\n\nexport { BUILD, Env, NAMESPACE };\n","/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/snabbdom/snabbdom/blob/master/LICENSE\n *\n * Modified for Stencil's renderer and slot projection\n */\nlet scopeId;\nlet contentRef;\nlet hostTagName;\nlet customError;\nlet i = 0;\nlet useNativeShadowDom = false;\nlet checkSlotFallbackVisibility = false;\nlet checkSlotRelocate = false;\nlet isSvgMode = false;\nlet renderingRef = null;\nlet queueCongestion = 0;\nlet queuePending = false;\n/*\n Stencil Client Platform v3.4.2 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nconst Build = {\n isDev: BUILD.isDev ? true : false,\n isBrowser: true,\n isServer: false,\n isTesting: BUILD.isTesting ? true : false,\n};\nconst Context = {};\nconst getAssetPath = (path) => {\n const assetUrl = new URL(path, plt.$resourcesUrl$);\n return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;\n};\nconst setAssetPath = (path) => (plt.$resourcesUrl$ = path);\nconst createTime = (fnName, tagName = '') => {\n if (BUILD.profile && performance.mark) {\n const key = `st:${fnName}:${tagName}:${i++}`;\n // Start\n performance.mark(key);\n // End\n return () => performance.measure(`[Stencil] ${fnName}() <${tagName}>`, key);\n }\n else {\n return () => {\n return;\n };\n }\n};\nconst uniqueTime = (key, measureText) => {\n if (BUILD.profile && performance.mark) {\n if (performance.getEntriesByName(key, 'mark').length === 0) {\n performance.mark(key);\n }\n return () => {\n if (performance.getEntriesByName(measureText, 'measure').length === 0) {\n performance.measure(measureText, key);\n }\n };\n }\n else {\n return () => {\n return;\n };\n }\n};\nconst inspect = (ref) => {\n const hostRef = getHostRef(ref);\n if (!hostRef) {\n return undefined;\n }\n const flags = hostRef.$flags$;\n const hostElement = hostRef.$hostElement$;\n return {\n renderCount: hostRef.$renderCount$,\n flags: {\n hasRendered: !!(flags & 2 /* HOST_FLAGS.hasRendered */),\n hasConnected: !!(flags & 1 /* HOST_FLAGS.hasConnected */),\n isWaitingForChildren: !!(flags & 4 /* HOST_FLAGS.isWaitingForChildren */),\n isConstructingInstance: !!(flags & 8 /* HOST_FLAGS.isConstructingInstance */),\n isQueuedForUpdate: !!(flags & 16 /* HOST_FLAGS.isQueuedForUpdate */),\n hasInitializedComponent: !!(flags & 32 /* HOST_FLAGS.hasInitializedComponent */),\n hasLoadedComponent: !!(flags & 64 /* HOST_FLAGS.hasLoadedComponent */),\n isWatchReady: !!(flags & 128 /* HOST_FLAGS.isWatchReady */),\n isListenReady: !!(flags & 256 /* HOST_FLAGS.isListenReady */),\n needsRerender: !!(flags & 512 /* HOST_FLAGS.needsRerender */),\n },\n instanceValues: hostRef.$instanceValues$,\n ancestorComponent: hostRef.$ancestorComponent$,\n hostElement,\n lazyInstance: hostRef.$lazyInstance$,\n vnode: hostRef.$vnode$,\n modeName: hostRef.$modeName$,\n onReadyPromise: hostRef.$onReadyPromise$,\n onReadyResolve: hostRef.$onReadyResolve$,\n onInstancePromise: hostRef.$onInstancePromise$,\n onInstanceResolve: hostRef.$onInstanceResolve$,\n onRenderResolve: hostRef.$onRenderResolve$,\n queuedListeners: hostRef.$queuedListeners$,\n rmListeners: hostRef.$rmListeners$,\n ['s-id']: hostElement['s-id'],\n ['s-cr']: hostElement['s-cr'],\n ['s-lr']: hostElement['s-lr'],\n ['s-p']: hostElement['s-p'],\n ['s-rc']: hostElement['s-rc'],\n ['s-sc']: hostElement['s-sc'],\n };\n};\nconst installDevTools = () => {\n if (BUILD.devTools) {\n const stencil = (win.stencil = win.stencil || {});\n const originalInspect = stencil.inspect;\n stencil.inspect = (ref) => {\n let result = inspect(ref);\n if (!result && typeof originalInspect === 'function') {\n result = originalInspect(ref);\n }\n return result;\n };\n }\n};\nconst CONTENT_REF_ID = 'r';\nconst ORG_LOCATION_ID = 'o';\nconst SLOT_NODE_ID = 's';\nconst TEXT_NODE_ID = 't';\nconst HYDRATE_ID = 's-id';\nconst HYDRATED_STYLE_ID = 'sty-id';\nconst HYDRATE_CHILD_ID = 'c-id';\nconst HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';\nconst XLINK_NS = 'http://www.w3.org/1999/xlink';\n/**\n * Default style mode id\n */\n/**\n * Reusable empty obj/array\n * Don't add values to these!!\n */\nconst EMPTY_OBJ = {};\n/**\n * Namespaces\n */\nconst SVG_NS = 'http://www.w3.org/2000/svg';\nconst HTML_NS = 'http://www.w3.org/1999/xhtml';\nconst isDef = (v) => v != null;\n/**\n * Check whether a value is a 'complex type', defined here as an object or a\n * function.\n *\n * @param o the value to check\n * @returns whether it's a complex type or not\n */\nconst isComplexType = (o) => {\n // https://jsperf.com/typeof-fn-object/5\n o = typeof o;\n return o === 'object' || o === 'function';\n};\n/**\n * Helper method for querying a `meta` tag that contains a nonce value\n * out of a DOM's head.\n *\n * @param doc The DOM containing the `head` to query against\n * @returns The content of the meta tag representing the nonce value, or `undefined` if no tag\n * exists or the tag has no content.\n */\nfunction queryNonceMetaTagContent(doc) {\n var _a, _b, _c;\n return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name=\"csp-nonce\"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined;\n}\n/**\n * Production h() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;\nconst h = (nodeName, vnodeData, ...children) => {\n let child = null;\n let key = null;\n let slotName = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i = 0; i < c.length; i++) {\n child = c[i];\n if (Array.isArray(child)) {\n walk(child);\n }\n else if (child != null && typeof child !== 'boolean') {\n if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {\n child = String(child);\n }\n else if (BUILD.isDev && typeof nodeName !== 'function' && child.$flags$ === undefined) {\n consoleDevError(`vNode passed as children has unexpected type.\nMake sure it's using the correct h() function.\nEmpty objects can also be the cause, look for JSX comments that became objects.`);\n }\n if (simple && lastSimple) {\n // If the previous child was simple (string), we merge both\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n }\n else {\n // Append a new vNode, if it's text, we create a text vNode\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n if (BUILD.isDev && nodeName === 'input') {\n validateInputProperties(vnodeData);\n }\n // normalize class / classname attributes\n if (BUILD.vdomKey && vnodeData.key) {\n key = vnodeData.key;\n }\n if (BUILD.slotRelocation && vnodeData.name) {\n slotName = vnodeData.name;\n }\n if (BUILD.vdomClass) {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class =\n typeof classData !== 'object'\n ? classData\n : Object.keys(classData)\n .filter((k) => classData[k])\n .join(' ');\n }\n }\n }\n if (BUILD.isDev && vNodeChildren.some(isHost)) {\n consoleDevError(`The <Host> must be the single root component. Make sure:\n- You are NOT using hostData() and <Host> in the same component.\n- <Host> is used once, and it's the single root component of the render() function.`);\n }\n if (BUILD.vdomFunctional && typeof nodeName === 'function') {\n // nodeName is a functional component\n return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n if (BUILD.vdomKey) {\n vnode.$key$ = key;\n }\n if (BUILD.slotRelocation) {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\n/**\n * A utility function for creating a virtual DOM node from a tag and some\n * possible text content.\n *\n * @param tag the tag for this element\n * @param text possible text content for the node\n * @returns a newly-minted virtual DOM node\n */\nconst newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null,\n };\n if (BUILD.vdomAttribute) {\n vnode.$attrs$ = null;\n }\n if (BUILD.vdomKey) {\n vnode.$key$ = null;\n }\n if (BUILD.slotRelocation) {\n vnode.$name$ = null;\n }\n return vnode;\n};\nconst Host = {};\n/**\n * Check whether a given node is a Host node or not\n *\n * @param node the virtual DOM node to check\n * @returns whether it's a Host node or not\n */\nconst isHost = (node) => node && node.$tag$ === Host;\n/**\n * Implementation of {@link d.FunctionalUtilities} for Stencil's VDom.\n *\n * Note that these functions convert from {@link d.VNode} to\n * {@link d.ChildNode} to give functional component developers a friendly\n * interface.\n */\nconst vdomFnUtils = {\n forEach: (children, cb) => children.map(convertToPublic).forEach(cb),\n map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate),\n};\n/**\n * Convert a {@link d.VNode} to a {@link d.ChildNode} in order to present a\n * friendlier public interface (hence, 'convertToPublic').\n *\n * @param node the virtual DOM node to convert\n * @returns a converted child node\n */\nconst convertToPublic = (node) => ({\n vattrs: node.$attrs$,\n vchildren: node.$children$,\n vkey: node.$key$,\n vname: node.$name$,\n vtag: node.$tag$,\n vtext: node.$text$,\n});\n/**\n * Convert a {@link d.ChildNode} back to an equivalent {@link d.VNode} in\n * order to use the resulting object in the virtual DOM. The initial object was\n * likely created as part of presenting a public API, so converting it back\n * involved making it 'private' again (hence, `convertToPrivate`).\n *\n * @param node the child node to convert\n * @returns a converted virtual DOM node\n */\nconst convertToPrivate = (node) => {\n if (typeof node.vtag === 'function') {\n const vnodeData = Object.assign({}, node.vattrs);\n if (node.vkey) {\n vnodeData.key = node.vkey;\n }\n if (node.vname) {\n vnodeData.name = node.vname;\n }\n return h(node.vtag, vnodeData, ...(node.vchildren || []));\n }\n const vnode = newVNode(node.vtag, node.vtext);\n vnode.$attrs$ = node.vattrs;\n vnode.$children$ = node.vchildren;\n vnode.$key$ = node.vkey;\n vnode.$name$ = node.vname;\n return vnode;\n};\n/**\n * Validates the ordering of attributes on an input element\n *\n * @param inputElm the element to validate\n */\nconst validateInputProperties = (inputElm) => {\n const props = Object.keys(inputElm);\n const value = props.indexOf('value');\n if (value === -1) {\n return;\n }\n const typeIndex = props.indexOf('type');\n const minIndex = props.indexOf('min');\n const maxIndex = props.indexOf('max');\n const stepIndex = props.indexOf('step');\n if (value < typeIndex || value < minIndex || value < maxIndex || value < stepIndex) {\n consoleDevWarn(`The \"value\" prop of <input> should be set after \"min\", \"max\", \"type\" and \"step\"`);\n }\n};\nconst initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {\n const endHydrate = createTime('hydrateClient', tagName);\n const shadowRoot = hostElm.shadowRoot;\n const childRenderNodes = [];\n const slotNodes = [];\n const shadowRootNodes = BUILD.shadowDom && shadowRoot ? [] : null;\n const vnode = (hostRef.$vnode$ = newVNode(tagName, null));\n if (!plt.$orgLocNodes$) {\n initializeDocumentHydrate(doc.body, (plt.$orgLocNodes$ = new Map()));\n }\n hostElm[HYDRATE_ID] = hostId;\n hostElm.removeAttribute(HYDRATE_ID);\n clientHydrate(vnode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, hostElm, hostId);\n childRenderNodes.map((c) => {\n const orgLocationId = c.$hostId$ + '.' + c.$nodeId$;\n const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId);\n const node = c.$elm$;\n if (orgLocationNode && supportsShadow && orgLocationNode['s-en'] === '') {\n orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling);\n }\n if (!shadowRoot) {\n node['s-hn'] = tagName;\n if (orgLocationNode) {\n node['s-ol'] = orgLocationNode;\n node['s-ol']['s-nr'] = node;\n }\n }\n plt.$orgLocNodes$.delete(orgLocationId);\n });\n if (BUILD.shadowDom && shadowRoot) {\n shadowRootNodes.map((shadowRootNode) => {\n if (shadowRootNode) {\n shadowRoot.appendChild(shadowRootNode);\n }\n });\n }\n endHydrate();\n};\nconst clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node, hostId) => {\n let childNodeType;\n let childIdSplt;\n let childVNode;\n let i;\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n childNodeType = node.getAttribute(HYDRATE_CHILD_ID);\n if (childNodeType) {\n // got the node data from the element's attribute\n // `${hostId}.${nodeId}.${depth}.${index}`\n childIdSplt = childNodeType.split('.');\n if (childIdSplt[0] === hostId || childIdSplt[0] === '0') {\n childVNode = {\n $flags$: 0,\n $hostId$: childIdSplt[0],\n $nodeId$: childIdSplt[1],\n $depth$: childIdSplt[2],\n $index$: childIdSplt[3],\n $tag$: node.tagName.toLowerCase(),\n $elm$: node,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $text$: null,\n };\n childRenderNodes.push(childVNode);\n node.removeAttribute(HYDRATE_CHILD_ID);\n // this is a new child vnode\n // so ensure its parent vnode has the vchildren array\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n // add our child vnode to a specific index of the vnode's children\n parentVNode.$children$[childVNode.$index$] = childVNode;\n // this is now the new parent vnode for all the next child checks\n parentVNode = childVNode;\n if (shadowRootNodes && childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n }\n // recursively drill down, end to start so we can remove nodes\n for (i = node.childNodes.length - 1; i >= 0; i--) {\n clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.childNodes[i], hostId);\n }\n if (node.shadowRoot) {\n // keep drilling down through the shadow root nodes\n for (i = node.shadowRoot.childNodes.length - 1; i >= 0; i--) {\n clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.shadowRoot.childNodes[i], hostId);\n }\n }\n }\n else if (node.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n // `${COMMENT_TYPE}.${hostId}.${nodeId}.${depth}.${index}`\n childIdSplt = node.nodeValue.split('.');\n if (childIdSplt[1] === hostId || childIdSplt[1] === '0') {\n // comment node for either the host id or a 0 host id\n childNodeType = childIdSplt[0];\n childVNode = {\n $flags$: 0,\n $hostId$: childIdSplt[1],\n $nodeId$: childIdSplt[2],\n $depth$: childIdSplt[3],\n $index$: childIdSplt[4],\n $elm$: node,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $tag$: null,\n $text$: null,\n };\n if (childNodeType === TEXT_NODE_ID) {\n childVNode.$elm$ = node.nextSibling;\n if (childVNode.$elm$ && childVNode.$elm$.nodeType === 3 /* NODE_TYPE.TextNode */) {\n childVNode.$text$ = childVNode.$elm$.textContent;\n childRenderNodes.push(childVNode);\n // remove the text comment since it's no longer needed\n node.remove();\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n if (shadowRootNodes && childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n }\n else if (childVNode.$hostId$ === hostId) {\n // this comment node is specifcally for this host id\n if (childNodeType === SLOT_NODE_ID) {\n // `${SLOT_NODE_ID}.${hostId}.${nodeId}.${depth}.${index}.${slotName}`;\n childVNode.$tag$ = 'slot';\n if (childIdSplt[5]) {\n node['s-sn'] = childVNode.$name$ = childIdSplt[5];\n }\n else {\n node['s-sn'] = '';\n }\n node['s-sr'] = true;\n if (BUILD.shadowDom && shadowRootNodes) {\n // browser support shadowRoot and this is a shadow dom component\n // create an actual slot element\n childVNode.$elm$ = doc.createElement(childVNode.$tag$);\n if (childVNode.$name$) {\n // add the slot name attribute\n childVNode.$elm$.setAttribute('name', childVNode.$name$);\n }\n // insert the new slot element before the slot comment\n node.parentNode.insertBefore(childVNode.$elm$, node);\n // remove the slot comment since it's not needed for shadow\n node.remove();\n if (childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n slotNodes.push(childVNode);\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n }\n else if (childNodeType === CONTENT_REF_ID) {\n // `${CONTENT_REF_ID}.${hostId}`;\n if (BUILD.shadowDom && shadowRootNodes) {\n // remove the content ref comment since it's not needed for shadow\n node.remove();\n }\n else if (BUILD.slotRelocation) {\n hostElm['s-cr'] = node;\n node['s-cn'] = true;\n }\n }\n }\n }\n }\n else if (parentVNode && parentVNode.$tag$ === 'style') {\n const vnode = newVNode(null, node.textContent);\n vnode.$elm$ = node;\n vnode.$index$ = '0';\n parentVNode.$children$ = [vnode];\n }\n};\nconst initializeDocumentHydrate = (node, orgLocNodes) => {\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n let i = 0;\n for (; i < node.childNodes.length; i++) {\n initializeDocumentHydrate(node.childNodes[i], orgLocNodes);\n }\n if (node.shadowRoot) {\n for (i = 0; i < node.shadowRoot.childNodes.length; i++) {\n initializeDocumentHydrate(node.shadowRoot.childNodes[i], orgLocNodes);\n }\n }\n }\n else if (node.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n const childIdSplt = node.nodeValue.split('.');\n if (childIdSplt[0] === ORG_LOCATION_ID) {\n orgLocNodes.set(childIdSplt[1] + '.' + childIdSplt[2], node);\n node.nodeValue = '';\n // useful to know if the original location is\n // the root light-dom of a shadow dom component\n node['s-en'] = childIdSplt[3];\n }\n }\n};\n// Private\nconst computeMode = (elm) => modeResolutionChain.map((h) => h(elm)).find((m) => !!m);\n// Public\nconst setMode = (handler) => modeResolutionChain.push(handler);\nconst getMode = (ref) => getHostRef(ref).$modeName$;\n/**\n * Parse a new property value for a given property type.\n *\n * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,\n * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:\n * 1. `any`, the type given to `propValue` in the function signature\n * 2. the type stored from `propType`.\n *\n * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.\n *\n * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to\n * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is\n * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.\n * ```tsx\n * <my-cmp prop-val={0}></my-cmp>\n * ```\n *\n * HTML prop values on the other hand, will always a string\n *\n * @param propValue the new value to coerce to some type\n * @param propType the type of the prop, expressed as a binary number\n * @returns the parsed/coerced value\n */\nconst parsePropertyValue = (propValue, propType) => {\n // ensure this value is of the correct prop type\n if (propValue != null && !isComplexType(propValue)) {\n if (BUILD.propBoolean && propType & 4 /* MEMBER_FLAGS.Boolean */) {\n // per the HTML spec, any string value means it is a boolean true value\n // but we'll cheat here and say that the string \"false\" is the boolean false\n return propValue === 'false' ? false : propValue === '' || !!propValue;\n }\n if (BUILD.propNumber && propType & 2 /* MEMBER_FLAGS.Number */) {\n // force it to be a number\n return parseFloat(propValue);\n }\n if (BUILD.propString && propType & 1 /* MEMBER_FLAGS.String */) {\n // could have been passed as a number or boolean\n // but we still want it as a string\n return String(propValue);\n }\n // redundant return here for better minification\n return propValue;\n }\n // not sure exactly what type we want\n // so no need to change to a different type\n return propValue;\n};\nconst getElement = (ref) => (BUILD.lazyLoad ? getHostRef(ref).$hostElement$ : ref);\nconst createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n if (BUILD.isDev && !elm.isConnected) {\n consoleDevWarn(`The \"${name}\" event was emitted, but the dispatcher node is no longer connected to the dom.`);\n }\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* EVENT_FLAGS.Bubbles */),\n composed: !!(flags & 2 /* EVENT_FLAGS.Composed */),\n cancelable: !!(flags & 1 /* EVENT_FLAGS.Cancellable */),\n detail,\n });\n },\n };\n};\n/**\n * Helper function to create & dispatch a custom Event on a provided target\n * @param elm the target of the Event\n * @param name the name to give the custom Event\n * @param opts options for configuring a custom Event\n * @returns the custom Event\n */\nconst emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nconst rootAppliedStyles = /*@__PURE__*/ new WeakMap();\nconst registerStyle = (scopeId, cssText, allowCS) => {\n let style = styles.get(scopeId);\n if (supportsConstructableStylesheets && allowCS) {\n style = (style || new CSSStyleSheet());\n if (typeof style === 'string') {\n style = cssText;\n }\n else {\n style.replaceSync(cssText);\n }\n }\n else {\n style = cssText;\n }\n styles.set(scopeId, style);\n};\nconst addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {\n var _a;\n let scopeId = getScopeId(cmpMeta, mode);\n const style = styles.get(scopeId);\n if (!BUILD.attachStyles) {\n return scopeId;\n }\n // if an element is NOT connected then getRootNode() will return the wrong root node\n // so the fallback is to always use the document for the root node in those cases\n styleContainerNode = styleContainerNode.nodeType === 11 /* NODE_TYPE.DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === 'string') {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));\n }\n if (!appliedStyles.has(scopeId)) {\n if (BUILD.hydrateClientSide &&\n styleContainerNode.host &&\n (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}=\"${scopeId}\"]`))) {\n // This is only happening on native shadow-dom, do not needs CSS var shim\n styleElm.innerHTML = style;\n }\n else {\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n if (BUILD.cssVarShim && plt.$cssShim$) {\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n styleElm = plt.$cssShim$.createHostStyle(hostElm, scopeId, style, \n // TODO(STENCIL-662): Remove code related to deprecated shadowDomShim field\n !!(cmpMeta.$flags$ & 10 /* CMP_FLAGS.needsScopedEncapsulation */));\n const newScopeId = styleElm['s-sc'];\n if (newScopeId) {\n scopeId = newScopeId;\n // we don't want to add this styleID to the appliedStyles Set\n // since the cssVarShim might need to apply several different\n // stylesheets for the same component\n appliedStyles = null;\n }\n }\n else {\n styleElm = doc.createElement('style');\n styleElm.innerHTML = style;\n }\n // Apply CSP nonce to the style tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n styleElm.setAttribute('nonce', nonce);\n }\n if (BUILD.hydrateServerSide || BUILD.hotModuleReplacement) {\n styleElm.setAttribute(HYDRATED_STYLE_ID, scopeId);\n }\n styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId);\n }\n }\n }\n else if (BUILD.constructableCSS && !styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];\n }\n }\n return scopeId;\n};\nconst attachStyles = (hostRef) => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);\n const scopeId = addStyle(BUILD.shadowDom && supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$, elm);\n // TODO(STENCIL-662): Remove code related to deprecated shadowDomShim field\n if ((BUILD.shadowDom || BUILD.scoped) && BUILD.cssAnnotations && flags & 10 /* CMP_FLAGS.needsScopedEncapsulation */) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n // DOM WRITE!!\n elm['s-sc'] = scopeId;\n elm.classList.add(scopeId + '-h');\n if (BUILD.scoped && flags & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm.classList.add(scopeId + '-s');\n }\n }\n endAttachStyles();\n};\nconst getScopeId = (cmp, mode) => 'sc-' + (BUILD.mode && mode && cmp.$flags$ & 32 /* CMP_FLAGS.hasMode */ ? cmp.$tagName$ + '-' + mode : cmp.$tagName$);\nconst convertScopedToShadow = (css) => css.replace(/\\/\\*!@([^\\/]+)\\*\\/[^\\{]+\\{/g, '$1{');\n/**\n * Production setAccessor() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\nconst setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (BUILD.vdomClass && memberName === 'class') {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n const newClasses = parseClassList(newValue);\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n else if (BUILD.vdomStyle && memberName === 'style') {\n // update style attribute, css properties and values\n if (BUILD.updatable) {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (!BUILD.hydrateServerSide && prop.includes('-')) {\n elm.style.removeProperty(prop);\n }\n else {\n elm.style[prop] = '';\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (!BUILD.hydrateServerSide && prop.includes('-')) {\n elm.style.setProperty(prop, newValue[prop]);\n }\n else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n }\n else if (BUILD.vdomKey && memberName === 'key')\n ;\n else if (BUILD.vdomRef && memberName === 'ref') {\n // minifier will clean this up\n if (newValue) {\n newValue(elm);\n }\n }\n else if (BUILD.vdomListener &&\n (BUILD.lazyLoad ? !isProp : !elm.__lookupSetter__(memberName)) &&\n memberName[0] === 'o' &&\n memberName[1] === 'n') {\n // Event Handlers\n // so if the member name starts with \"on\" and the 3rd characters is\n // a capital letter, and it's not already a member on the element,\n // then we're assuming it's an event listener\n if (memberName[2] === '-') {\n // on- prefixed events\n // allows to be explicit about the dom event to listen without any magic\n // under the hood:\n // <my-cmp on-click> // listens for \"click\"\n // <my-cmp on-Click> // listens for \"Click\"\n // <my-cmp on-ionChange> // listens for \"ionChange\"\n // <my-cmp on-EVENTS> // listens for \"EVENTS\"\n memberName = memberName.slice(3);\n }\n else if (isMemberInElement(win, ln)) {\n // standard event\n // the JSX attribute could have been \"onMouseOver\" and the\n // member name \"onmouseover\" is on the window's prototype\n // so let's add the listener \"mouseover\", which is all lowercased\n memberName = ln.slice(2);\n }\n else {\n // custom event\n // the JSX attribute could have been \"onMyCustomEvent\"\n // so let's trim off the \"on\" prefix and lowercase the first character\n // and add the listener \"myCustomEvent\"\n // except for the first character, we keep the event name case\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, false);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, false);\n }\n }\n else if (BUILD.vdomPropOrAttr) {\n // Set property if it exists and it's not a SVG\n const isComplex = isComplexType(newValue);\n if ((isProp || (isComplex && newValue !== null)) && !isSvg) {\n try {\n if (!elm.tagName.includes('-')) {\n const n = newValue == null ? '' : newValue;\n // Workaround for Safari, moving the <input> caret when re-assigning the same valued\n if (memberName === 'list') {\n isProp = false;\n }\n else if (oldValue == null || elm[memberName] != n) {\n elm[memberName] = n;\n }\n }\n else {\n elm[memberName] = newValue;\n }\n }\n catch (e) { }\n }\n /**\n * Need to manually update attribute if:\n * - memberName is not an attribute\n * - if we are rendering the host element in order to reflect attribute\n * - if it's a SVG, since properties might not work in <svg>\n * - if the newValue is null/undefined or 'false'.\n */\n let xlink = false;\n if (BUILD.vdomXlink) {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, ''))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === '') {\n if (BUILD.vdomXlink && xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n }\n else {\n elm.removeAttribute(memberName);\n }\n }\n }\n else if ((!isProp || flags & 4 /* VNODE_FLAGS.isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? '' : newValue;\n if (BUILD.vdomXlink && xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n }\n else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nconst parseClassListRegex = /\\s/;\nconst parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));\nconst updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {\n // if the element passed in is a shadow root, which is a document fragment\n // then we want to be adding attrs/props to the shadow root's \"host\" element\n // if it's not a shadow root, then we add attrs/props to the same element\n const elm = newVnode.$elm$.nodeType === 11 /* NODE_TYPE.DocumentFragment */ && newVnode.$elm$.host\n ? newVnode.$elm$.host\n : newVnode.$elm$;\n const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;\n const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;\n if (BUILD.updatable) {\n // remove attributes no longer present on the vnode by setting them to undefined\n for (memberName in oldVnodeAttrs) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);\n }\n }\n }\n // add new & update changed attributes\n for (memberName in newVnodeAttrs) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);\n }\n};\n/**\n * Create a DOM Node corresponding to one of the children of a given VNode.\n *\n * @param oldParentVNode the parent VNode from the previous render\n * @param newParentVNode the parent VNode from the current render\n * @param childIndex the index of the VNode, in the _new_ parent node's\n * children, for which we will create a new DOM node\n * @param parentElm the parent DOM node which our new node will be a child of\n * @returns the newly created node\n */\nconst createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {\n // tslint:disable-next-line: prefer-const\n const newVNode = newParentVNode.$children$[childIndex];\n let i = 0;\n let elm;\n let childNode;\n let oldVNode;\n if (BUILD.slotRelocation && !useNativeShadowDom) {\n // remember for later we need to check to relocate nodes\n checkSlotRelocate = true;\n if (newVNode.$tag$ === 'slot') {\n if (scopeId) {\n // scoped css needs to add its scoped id to the parent element\n parentElm.classList.add(scopeId + '-s');\n }\n newVNode.$flags$ |= newVNode.$children$\n ? // slot element has fallback content\n 2 /* VNODE_FLAGS.isSlotFallback */\n : // slot element does not have fallback content\n 1 /* VNODE_FLAGS.isSlotReference */;\n }\n }\n if (BUILD.isDev && newVNode.$elm$) {\n consoleDevError(`The JSX ${newVNode.$text$ !== null ? `\"${newVNode.$text$}\" text` : `\"${newVNode.$tag$}\" element`} node should not be shared within the same renderer. The renderer caches element lookups in order to improve performance. However, a side effect from this is that the exact same JSX node should not be reused. For more information please see https://stenciljs.com/docs/templating-jsx#avoid-shared-jsx-nodes`);\n }\n if (BUILD.vdomText && newVNode.$text$ !== null) {\n // create text node\n elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);\n }\n else if (BUILD.slotRelocation && newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {\n // create a slot reference node\n elm = newVNode.$elm$ =\n BUILD.isDebug || BUILD.hydrateServerSide ? slotReferenceDebugNode(newVNode) : doc.createTextNode('');\n }\n else {\n if (BUILD.svg && !isSvgMode) {\n isSvgMode = newVNode.$tag$ === 'svg';\n }\n // create element\n elm = newVNode.$elm$ = (BUILD.svg\n ? doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, BUILD.slotRelocation && newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$)\n : doc.createElement(BUILD.slotRelocation && newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$));\n if (BUILD.svg && isSvgMode && newVNode.$tag$ === 'foreignObject') {\n isSvgMode = false;\n }\n // add css classes, attrs, props, listeners, etc.\n if (BUILD.vdomAttribute) {\n updateElement(null, newVNode, isSvgMode);\n }\n if ((BUILD.shadowDom || BUILD.scoped) && isDef(scopeId) && elm['s-si'] !== scopeId) {\n // if there is a scopeId and this is the initial render\n // then let's add the scopeId as a css class\n elm.classList.add((elm['s-si'] = scopeId));\n }\n if (newVNode.$children$) {\n for (i = 0; i < newVNode.$children$.length; ++i) {\n // create the node\n childNode = createElm(oldParentVNode, newVNode, i, elm);\n // return node could have been null\n if (childNode) {\n // append our new node\n elm.appendChild(childNode);\n }\n }\n }\n if (BUILD.svg) {\n if (newVNode.$tag$ === 'svg') {\n // Only reset the SVG context when we're exiting <svg> element\n isSvgMode = false;\n }\n else if (elm.tagName === 'foreignObject') {\n // Reenter SVG context when we're exiting <foreignObject> element\n isSvgMode = true;\n }\n }\n }\n if (BUILD.slotRelocation) {\n elm['s-hn'] = hostTagName;\n if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {\n // remember the content reference comment\n elm['s-sr'] = true;\n // remember the content reference comment\n elm['s-cr'] = contentRef;\n // remember the slot name, or empty string for default slot\n elm['s-sn'] = newVNode.$name$ || '';\n // check if we've got an old vnode for this slot\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {\n // we've got an old slot vnode and the wrapper is being replaced\n // so let's move the old slot content back to it's original location\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n return elm;\n};\nconst putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n const oldSlotChildNodes = parentElm.childNodes;\n for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {\n const childNode = oldSlotChildNodes[i];\n if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {\n // // this child node in the old element is from another component\n // // remove this node from the old slot's parent\n // childNode.remove();\n // and relocate it back to it's original location\n parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));\n // remove the old original location comment entirely\n // later on the patch function will know what to do\n // and move this to the correct spot in need be\n childNode['s-ol'].remove();\n childNode['s-ol'] = undefined;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n};\n/**\n * Create DOM nodes corresponding to a list of {@link d.Vnode} objects and\n * add them to the DOM in the appropriate place.\n *\n * @param parentElm the DOM node which should be used as a parent for the new\n * DOM nodes\n * @param before a child of the `parentElm` which the new children should be\n * inserted before (optional)\n * @param parentVNode the parent virtual DOM node\n * @param vnodes the new child virtual DOM nodes to produce DOM nodes for\n * @param startIdx the index in the child virtual DOM nodes at which to start\n * creating DOM nodes (inclusive)\n * @param endIdx the index in the child virtual DOM nodes at which to stop\n * creating DOM nodes (inclusive)\n */\nconst addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = ((BUILD.slotRelocation && parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);\n let childNode;\n if (BUILD.shadowDom && containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx, parentElm);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n containerElm.insertBefore(childNode, BUILD.slotRelocation ? referenceNode(before) : before);\n }\n }\n }\n};\n/**\n * Remove the DOM elements corresponding to a list of {@link d.VNode} objects.\n * This can be used to, for instance, clean up after a list of children which\n * should no longer be shown.\n *\n * This function also handles some of Stencil's slot relocation logic.\n *\n * @param vnodes a list of virtual DOM nodes to remove\n * @param startIdx the index at which to start removing nodes (inclusive)\n * @param endIdx the index at which to stop removing nodes (inclusive)\n */\nconst removeVnodes = (vnodes, startIdx, endIdx) => {\n for (let index = startIdx; index <= endIdx; ++index) {\n const vnode = vnodes[index];\n if (vnode) {\n const elm = vnode.$elm$;\n nullifyVNodeRefs(vnode);\n if (elm) {\n if (BUILD.slotRelocation) {\n // we're removing this element\n // so it's possible we need to show slot fallback content now\n checkSlotFallbackVisibility = true;\n if (elm['s-ol']) {\n // remove the original location comment\n elm['s-ol'].remove();\n }\n else {\n // it's possible that child nodes of the node\n // that's being removed are slot nodes\n putBackInOriginalLocation(elm, true);\n }\n }\n // remove the vnode's element from the dom\n elm.remove();\n }\n }\n }\n};\n/**\n * Reconcile the children of a new VNode with the children of an old VNode by\n * traversing the two collections of children, identifying nodes that are\n * conserved or changed, calling out to `patch` to make any necessary\n * updates to the DOM, and rearranging DOM nodes as needed.\n *\n * The algorithm for reconciling children works by analyzing two 'windows' onto\n * the two arrays of children (`oldCh` and `newCh`). We keep track of the\n * 'windows' by storing start and end indices and references to the\n * corresponding array entries. Initially the two 'windows' are basically equal\n * to the entire array, but we progressively narrow the windows until there are\n * no children left to update by doing the following:\n *\n * 1. Skip any `null` entries at the beginning or end of the two arrays, so\n * that if we have an initial array like the following we'll end up dealing\n * only with a window bounded by the highlighted elements:\n *\n * [null, null, VNode1 , ... , VNode2, null, null]\n * ^^^^^^ ^^^^^^\n *\n * 2. Check to see if the elements at the head and tail positions are equal\n * across the windows. This will basically detect elements which haven't\n * been added, removed, or changed position, i.e. if you had the following\n * VNode elements (represented as HTML):\n *\n * oldVNode: `<div><p><span>HEY</span></p></div>`\n * newVNode: `<div><p><span>THERE</span></p></div>`\n *\n * Then when comparing the children of the `<div>` tag we check the equality\n * of the VNodes corresponding to the `<p>` tags and, since they are the\n * same tag in the same position, we'd be able to avoid completely\n * re-rendering the subtree under them with a new DOM element and would just\n * call out to `patch` to handle reconciling their children and so on.\n *\n * 3. Check, for both windows, to see if the element at the beginning of the\n * window corresponds to the element at the end of the other window. This is\n * a heuristic which will let us identify _some_ situations in which\n * elements have changed position, for instance it _should_ detect that the\n * children nodes themselves have not changed but merely moved in the\n * following example:\n *\n * oldVNode: `<div><element-one /><element-two /></div>`\n * newVNode: `<div><element-two /><element-one /></div>`\n *\n * If we find cases like this then we also need to move the concrete DOM\n * elements corresponding to the moved children to write the re-order to the\n * DOM.\n *\n * 4. Finally, if VNodes have the `key` attribute set on them we check for any\n * nodes in the old children which have the same key as the first element in\n * our window on the new children. If we find such a node we handle calling\n * out to `patch`, moving relevant DOM nodes, and so on, in accordance with\n * what we find.\n *\n * Finally, once we've narrowed our 'windows' to the point that either of them\n * collapse (i.e. they have length 0) we then handle any remaining VNode\n * insertion or deletion that needs to happen to get a DOM state that correctly\n * reflects the new child VNodes. If, for instance, after our window on the old\n * children has collapsed we still have more nodes on the new children that\n * we haven't dealt with yet then we need to add them, or if the new children\n * collapse but we still have unhandled _old_ children then we need to make\n * sure the corresponding DOM nodes are removed.\n *\n * @param parentElm the node into which the parent VNode is rendered\n * @param oldCh the old children of the parent node\n * @param newVNode the new VNode which will replace the parent\n * @param newCh the new children of the parent node\n */\nconst updateChildren = (parentElm, oldCh, newVNode, newCh) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n // VNode might have been moved left\n oldStartVnode = oldCh[++oldStartIdx];\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newStartVnode)) {\n // if the start nodes are the same then we should patch the new VNode\n // onto the old one, and increment our `newStartIdx` and `oldStartIdx`\n // indices to reflect that. We don't need to move any DOM Nodes around\n // since things are matched up in order.\n patch(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n // likewise, if the end nodes are the same we patch new onto old and\n // decrement our end indices, and also likewise in this case we don't\n // need to move any DOM Nodes.\n patch(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newEndVnode)) {\n // case: \"Vnode moved right\"\n //\n // We've found that the last node in our window on the new children is\n // the same VNode as the _first_ node in our window on the old children\n // we're dealing with now. Visually, this is the layout of these two\n // nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^^^\n //\n // In this situation we need to patch `newEndVnode` onto `oldStartVnode`\n // and move the DOM element for `oldStartVnode`.\n if (BUILD.slotRelocation && (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode);\n // We need to move the element for `oldStartVnode` into a position which\n // will be appropriate for `newEndVnode`. For this we can use\n // `.insertBefore` and `oldEndVnode.$elm$.nextSibling`. If there is a\n // sibling for `oldEndVnode.$elm$` then we want to move the DOM node for\n // `oldStartVnode` between `oldEndVnode` and it's sibling, like so:\n //\n // <old-start-node />\n // <some-intervening-node />\n // <old-end-node />\n // <!-- -> <-- `oldStartVnode.$elm$` should be inserted here\n // <next-sibling />\n //\n // If instead `oldEndVnode.$elm$` has no sibling then we just want to put\n // the node for `oldStartVnode` at the end of the children of\n // `parentElm`. Luckily, `Node.nextSibling` will return `null` if there\n // aren't any siblings, and passing `null` to `Node.insertBefore` will\n // append it to the children of the parent element.\n parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldEndVnode, newStartVnode)) {\n // case: \"Vnode moved left\"\n //\n // We've found that the first node in our window on the new children is\n // the same VNode as the _last_ node in our window on the old children.\n // Visually, this is the layout of these two nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^\n //\n // In this situation we need to patch `newStartVnode` onto `oldEndVnode`\n // (which will handle updating any changed attributes, reconciling their\n // children etc) but we also need to move the DOM node to which\n // `oldEndVnode` corresponds.\n if (BUILD.slotRelocation && (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode);\n // We've already checked above if `oldStartVnode` and `newStartVnode` are\n // the same node, so since we're here we know that they are not. Thus we\n // can move the element for `oldEndVnode` _before_ the element for\n // `oldStartVnode`, leaving `oldStartVnode` to be reconciled in the\n // future.\n parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // Here we do some checks to match up old and new nodes based on the\n // `$key$` attribute, which is set by putting a `key=\"my-key\"` attribute\n // in the JSX for a DOM element in the implementation of a Stencil\n // component.\n //\n // First we check to see if there are any nodes in the array of old\n // children which have the same key as the first node in the new\n // children.\n idxInOld = -1;\n if (BUILD.vdomKey) {\n for (i = oldStartIdx; i <= oldEndIdx; ++i) {\n if (oldCh[i] && oldCh[i].$key$ !== null && oldCh[i].$key$ === newStartVnode.$key$) {\n idxInOld = i;\n break;\n }\n }\n }\n if (BUILD.vdomKey && idxInOld >= 0) {\n // We found a node in the old children which matches up with the first\n // node in the new children! So let's deal with that\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n // the tag doesn't match so we'll need a new DOM element\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);\n }\n else {\n patch(elmToMove, newStartVnode);\n // invalidate the matching old node so that we won't try to update it\n // again later on\n oldCh[idxInOld] = undefined;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // We either didn't find an element in the old children that matches\n // the key of the first new child OR the build is not using `key`\n // attributes at all. In either case we need to create a new element\n // for the new node.\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n // if we created a new node then handle inserting it to the DOM\n if (BUILD.slotRelocation) {\n parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));\n }\n else {\n oldStartVnode.$elm$.parentNode.insertBefore(node, oldStartVnode.$elm$);\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n // we have some more new nodes to add which don't match up with old nodes\n addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);\n }\n else if (BUILD.updatable && newStartIdx > newEndIdx) {\n // there are nodes in the `oldCh` array which no longer correspond to nodes\n // in the new array, so lets remove them (which entails cleaning up the\n // relevant DOM nodes)\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\n/**\n * Compare two VNodes to determine if they are the same\n *\n * **NB**: This function is an equality _heuristic_ based on the available\n * information set on the two VNodes and can be misleading under certain\n * circumstances. In particular, if the two nodes do not have `key` attrs\n * (available under `$key$` on VNodes) then the function falls back on merely\n * checking that they have the same tag.\n *\n * So, in other words, if `key` attrs are not set on VNodes which may be\n * changing order within a `children` array or something along those lines then\n * we could obtain a false negative and then have to do needless re-rendering\n * (i.e. we'd say two VNodes aren't equal when in fact they should be).\n *\n * @param leftVNode the first VNode to check\n * @param rightVNode the second VNode to check\n * @returns whether they're equal or not\n */\nconst isSameVnode = (leftVNode, rightVNode) => {\n // compare if two vnode to see if they're \"technically\" the same\n // need to have the same element tag, and same key to be the same\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (BUILD.slotRelocation && leftVNode.$tag$ === 'slot') {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n // this will be set if components in the build have `key` attrs set on them\n if (BUILD.vdomKey) {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n return true;\n }\n return false;\n};\nconst referenceNode = (node) => {\n // this node was relocated to a new location in the dom\n // because of some other component's slot\n // but we still have an html comment in place of where\n // it's original location was according to it's original vdom\n return (node && node['s-ol']) || node;\n};\nconst parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode;\n/**\n * Handle reconciling an outdated VNode with a new one which corresponds to\n * it. This function handles flushing updates to the DOM and reconciling the\n * children of the two nodes (if any).\n *\n * @param oldVNode an old VNode whose DOM element and children we want to update\n * @param newVNode a new VNode representing an updated version of the old one\n */\nconst patch = (oldVNode, newVNode) => {\n const elm = (newVNode.$elm$ = oldVNode.$elm$);\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode.$children$;\n const tag = newVNode.$tag$;\n const text = newVNode.$text$;\n let defaultHolder;\n if (!BUILD.vdomText || text === null) {\n if (BUILD.svg) {\n // test if we're rendering an svg element, or still rendering nodes inside of one\n // only add this to the when the compiler sees we're using an svg somewhere\n isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;\n }\n if (BUILD.vdomAttribute || BUILD.reflect) {\n if (BUILD.slot && tag === 'slot')\n ;\n else {\n // either this is the first render of an element OR it's an update\n // AND we already know it's possible it could have changed\n // this updates the element's css classes, attrs, props, listeners, etc.\n updateElement(oldVNode, newVNode, isSvgMode);\n }\n }\n if (BUILD.updatable && oldChildren !== null && newChildren !== null) {\n // looks like there's child vnodes for both the old and new vnodes\n // so we need to call `updateChildren` to reconcile them\n updateChildren(elm, oldChildren, newVNode, newChildren);\n }\n else if (newChildren !== null) {\n // no old child vnodes, but there are new child vnodes to add\n if (BUILD.updatable && BUILD.vdomText && oldVNode.$text$ !== null) {\n // the old vnode was text, so be sure to clear it out\n elm.textContent = '';\n }\n // add the new vnode children\n addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1);\n }\n else if (BUILD.updatable && oldChildren !== null) {\n // no new child vnodes, but there are old child vnodes to remove\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (BUILD.svg && isSvgMode && tag === 'svg') {\n isSvgMode = false;\n }\n }\n else if (BUILD.vdomText && BUILD.slotRelocation && (defaultHolder = elm['s-cr'])) {\n // this element has slotted content\n defaultHolder.parentNode.textContent = text;\n }\n else if (BUILD.vdomText && oldVNode.$text$ !== text) {\n // update the text content for the text only vnode\n // and also only if the text is different than before\n elm.data = text;\n }\n};\nconst updateFallbackSlotVisibility = (elm) => {\n // tslint:disable-next-line: prefer-const\n const childNodes = elm.childNodes;\n let childNode;\n let i;\n let ilen;\n let j;\n let slotNameAttr;\n let nodeType;\n for (i = 0, ilen = childNodes.length; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (childNode['s-sr']) {\n // this is a slot fallback node\n // get the slot name for this slot reference node\n slotNameAttr = childNode['s-sn'];\n // by default always show a fallback slot node\n // then hide it if there are other slots in the light dom\n childNode.hidden = false;\n for (j = 0; j < ilen; j++) {\n nodeType = childNodes[j].nodeType;\n if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {\n // this sibling node is from a different component OR is a named fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {\n childNode.hidden = true;\n break;\n }\n }\n else {\n // this is a default fallback slot node\n // any element or text node (with content)\n // should hide the default fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||\n (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {\n childNode.hidden = true;\n break;\n }\n }\n }\n }\n // keep drilling down\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nconst relocateNodes = [];\nconst relocateSlotContent = (elm) => {\n // tslint:disable-next-line: prefer-const\n let childNode;\n let node;\n let hostContentNodes;\n let slotNameAttr;\n let relocateNodeData;\n let j;\n let i = 0;\n const childNodes = elm.childNodes;\n const ilen = childNodes.length;\n for (; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {\n // first got the content reference comment node\n // then we got it's parent, which is where all the host content is in now\n hostContentNodes = node.parentNode.childNodes;\n slotNameAttr = childNode['s-sn'];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {\n // let's do some relocating to its new home\n // but never relocate a content reference node\n // that is suppose to always represent the original content location\n if (isNodeLocatedInSlot(node, slotNameAttr)) {\n // it's possible we've already decided to relocate this node\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n // made some changes to slots\n // let's make sure we also double check\n // fallbacks are correctly hidden or shown\n checkSlotFallbackVisibility = true;\n node['s-sn'] = node['s-sn'] || slotNameAttr;\n if (relocateNodeData) {\n // previously we never found a slot home for this node\n // but turns out we did, so let's remember it now\n relocateNodeData.$slotRefNode$ = childNode;\n }\n else {\n // add to our list of nodes to relocate\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node,\n });\n }\n if (node['s-sr']) {\n relocateNodes.map((relocateNode) => {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n }\n else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {\n // so far this element does not have a slot home, not setting slotRefNode on purpose\n // if we never find a home for this element then we'll need to hide it\n relocateNodes.push({\n $nodeToRelocate$: node,\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n relocateSlotContent(childNode);\n }\n }\n};\nconst isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {\n return true;\n }\n if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate['s-sn'] === slotNameAttr) {\n return true;\n }\n return slotNameAttr === '';\n};\n/**\n * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by\n * calling them with `null`. This signals that the DOM element corresponding to\n * the VDom node has been removed from the DOM.\n *\n * @param vNode a virtual DOM node\n */\nconst nullifyVNodeRefs = (vNode) => {\n if (BUILD.vdomRef) {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);\n }\n};\n/**\n * The main entry point for Stencil's virtual DOM-based rendering engine\n *\n * Given a {@link d.HostRef} container and some virtual DOM nodes, this\n * function will handle creating a virtual DOM tree with a single root, patching\n * the current virtual DOM tree onto an old one (if any), dealing with slot\n * relocation, and reflecting attributes.\n *\n * @param hostRef data needed to root and render the virtual DOM tree, such as\n * the DOM node into which it should be rendered.\n * @param renderFnResults the virtual DOM nodes to be rendered\n */\nconst renderVdom = (hostRef, renderFnResults) => {\n const hostElm = hostRef.$hostElement$;\n const cmpMeta = hostRef.$cmpMeta$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n // <Host> runtime check\n if (BUILD.isDev && Array.isArray(renderFnResults) && renderFnResults.some(isHost)) {\n throw new Error(`The <Host> must be the single root component.\nLooks like the render() function of \"${hostTagName.toLowerCase()}\" is returning an array that contains the <Host>.\n\nThe render() function should look like this instead:\n\nrender() {\n // Do not return an array\n return (\n <Host>{content}</Host>\n );\n}\n `);\n }\n if (BUILD.reflect && cmpMeta.$attrsToReflect$) {\n rootVnode.$attrs$ = rootVnode.$attrs$ || {};\n cmpMeta.$attrsToReflect$.map(([propName, attribute]) => (rootVnode.$attrs$[attribute] = hostElm[propName]));\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* VNODE_FLAGS.isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = (BUILD.shadowDom ? hostElm.shadowRoot || hostElm : hostElm);\n if (BUILD.scoped || BUILD.shadowDom) {\n scopeId = hostElm['s-sc'];\n }\n if (BUILD.slotRelocation) {\n contentRef = hostElm['s-cr'];\n useNativeShadowDom = supportsShadow && (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;\n // always reset\n checkSlotFallbackVisibility = false;\n }\n // synchronous patch\n patch(oldVNode, rootVnode);\n if (BUILD.slotRelocation) {\n // while we're moving nodes around existing nodes, temporarily disable\n // the disconnectCallback from working\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n if (checkSlotRelocate) {\n relocateSlotContent(rootVnode.$elm$);\n let relocateData;\n let nodeToRelocate;\n let orgLocationNode;\n let parentNodeRef;\n let insertBeforeNode;\n let refNode;\n let i = 0;\n for (; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate['s-ol']) {\n // add a reference node marking this node's original location\n // keep a reference to this node for later lookups\n orgLocationNode =\n BUILD.isDebug || BUILD.hydrateServerSide\n ? originalLocationDebugNode(nodeToRelocate)\n : doc.createTextNode('');\n orgLocationNode['s-nr'] = nodeToRelocate;\n nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);\n }\n }\n for (i = 0; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (relocateData.$slotRefNode$) {\n // by default we're just going to insert it directly\n // after the slot reference node\n parentNodeRef = relocateData.$slotRefNode$.parentNode;\n insertBeforeNode = relocateData.$slotRefNode$.nextSibling;\n orgLocationNode = nodeToRelocate['s-ol'];\n while ((orgLocationNode = orgLocationNode.previousSibling)) {\n refNode = orgLocationNode['s-nr'];\n if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {\n refNode = refNode.nextSibling;\n if (!refNode || !refNode['s-nr']) {\n insertBeforeNode = refNode;\n break;\n }\n }\n }\n if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||\n nodeToRelocate.nextSibling !== insertBeforeNode) {\n // we've checked that it's worth while to relocate\n // since that the node to relocate\n // has a different next sibling or parent relocated\n if (nodeToRelocate !== insertBeforeNode) {\n if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {\n // probably a component in the index.html that doesn't have it's hostname set\n nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;\n }\n // add it back to the dom but in its new home\n parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);\n }\n }\n }\n else {\n // this node doesn't have a slot home to go to, so let's hide it\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n // done moving nodes around\n // allow the disconnect callback to work again\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n // always reset\n relocateNodes.length = 0;\n }\n};\n// slot comment debug nodes only created with the `--debug` flag\n// otherwise these nodes are text nodes w/out content\nconst slotReferenceDebugNode = (slotVNode) => doc.createComment(`<slot${slotVNode.$name$ ? ' name=\"' + slotVNode.$name$ + '\"' : ''}> (host=${hostTagName.toLowerCase()})`);\nconst originalLocationDebugNode = (nodeToRelocate) => doc.createComment(`org-location for ` +\n (nodeToRelocate.localName\n ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate['s-hn']})`\n : `[${nodeToRelocate.textContent}]`));\nconst attachToAncestor = (hostRef, ancestorComponent) => {\n if (BUILD.asyncLoading && ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {\n ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r)));\n }\n};\nconst scheduleUpdate = (hostRef, isInitialLoad) => {\n if (BUILD.taskQueue && BUILD.updatable) {\n hostRef.$flags$ |= 16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n if (BUILD.asyncLoading && hostRef.$flags$ & 4 /* HOST_FLAGS.isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* HOST_FLAGS.needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n // there is no ancestor component or the ancestor component\n // has already fired off its lifecycle update then\n // fire off the initial update\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n return BUILD.taskQueue ? writeTask(dispatch) : dispatch();\n};\n/**\n * Dispatch initial-render and update lifecycle hooks, enqueuing calls to\n * component lifecycle methods like `componentWillLoad` as well as\n * {@link updateComponent}, which will kick off the virtual DOM re-render.\n *\n * @param hostRef a reference to a host DOM node\n * @param isInitialLoad whether we're on the initial load or not\n * @returns an empty Promise which is used to enqueue a series of operations for\n * the component\n */\nconst dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n // We're going to use this variable together with `enqueue` to implement a\n // little promise-based queue. We start out with it `undefined`. When we add\n // the first function to the queue we'll set this variable to be that\n // function's return value. When we attempt to add subsequent values to the\n // queue we'll check that value and, if it was a `Promise`, we'll then chain\n // the new function off of that `Promise` using `.then()`. This will give our\n // queue two nice properties:\n //\n // 1. If all functions added to the queue are synchronous they'll be called\n // synchronously right away.\n // 2. If all functions added to the queue are asynchronous they'll all be\n // called in order after `dispatchHooks` exits.\n let maybePromise;\n if (isInitialLoad) {\n if (BUILD.lazyLoad && BUILD.hostListener) {\n hostRef.$flags$ |= 256 /* HOST_FLAGS.isListenReady */;\n if (hostRef.$queuedListeners$) {\n hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event));\n hostRef.$queuedListeners$ = undefined;\n }\n }\n emitLifecycleEvent(elm, 'componentWillLoad');\n if (BUILD.cmpWillLoad) {\n // If `componentWillLoad` returns a `Promise` then we want to wait on\n // whatever's going on in that `Promise` before we launch into\n // rendering the component, doing other lifecycle stuff, etc. So\n // in that case we assign the returned promise to the variable we\n // declared above to hold a possible 'queueing' Promise\n maybePromise = safeCall(instance, 'componentWillLoad');\n }\n }\n else {\n emitLifecycleEvent(elm, 'componentWillUpdate');\n if (BUILD.cmpWillUpdate) {\n // Like `componentWillLoad` above, we allow Stencil component\n // authors to return a `Promise` from this lifecycle callback, and\n // we specify that our runtime will wait for that `Promise` to\n // resolve before the component re-renders. So if the method\n // returns a `Promise` we need to keep it around!\n maybePromise = safeCall(instance, 'componentWillUpdate');\n }\n }\n emitLifecycleEvent(elm, 'componentWillRender');\n if (BUILD.cmpWillRender) {\n maybePromise = enqueue(maybePromise, () => safeCall(instance, 'componentWillRender'));\n }\n endSchedule();\n return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\n/**\n * This function uses a Promise to implement a simple first-in, first-out queue\n * of functions to be called.\n *\n * The queue is ordered on the basis of the first argument. If it's\n * `undefined`, then nothing is on the queue yet, so the provided function can\n * be called synchronously (although note that this function may return a\n * `Promise`). The idea is that then the return value of that enqueueing\n * operation is kept around, so that if it was a `Promise` then subsequent\n * functions can be enqueued by calling this function again with that `Promise`\n * as the first argument.\n *\n * @param maybePromise either a `Promise` which should resolve before the next function is called or an 'empty' sentinel\n * @param fn a function to enqueue\n * @returns either a `Promise` or the return value of the provided function\n */\nconst enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then(fn) : fn();\n/**\n * Check that a value is a `Promise`. To check, we first see if the value is an\n * instance of the `Promise` global. In a few circumstances, in particular if\n * the global has been overwritten, this is could be misleading, so we also do\n * a little 'duck typing' check to see if the `.then` property of the value is\n * defined and a function.\n *\n * @param maybePromise it might be a promise!\n * @returns whether it is or not\n */\nconst isPromisey = (maybePromise) => maybePromise instanceof Promise ||\n (maybePromise && maybePromise.then && typeof maybePromise.then === 'function');\nconst updateComponent = async (hostRef, instance, isInitialLoad) => {\n var _a;\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);\n const rc = elm['s-rc'];\n if (BUILD.style && isInitialLoad) {\n // DOM WRITE!\n attachStyles(hostRef);\n }\n const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n if (BUILD.hydrateServerSide) {\n await callRender(hostRef, instance, elm);\n }\n else {\n callRender(hostRef, instance, elm);\n }\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n if (BUILD.cssVarShim && plt.$cssShim$) {\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n plt.$cssShim$.updateHost(elm);\n }\n if (BUILD.isDev) {\n hostRef.$renderCount$ = hostRef.$renderCount$ === undefined ? 1 : hostRef.$renderCount$ + 1;\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n if (BUILD.hydrateServerSide) {\n try {\n // manually connected child components during server-side hydrate\n serverSideConnected(elm);\n if (isInitialLoad) {\n // using only during server-side hydrate\n if (hostRef.$cmpMeta$.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n elm['s-en'] = '';\n }\n else if (hostRef.$cmpMeta$.$flags$ & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm['s-en'] = 'c';\n }\n }\n }\n catch (e) {\n consoleError(e, elm);\n }\n }\n if (BUILD.asyncLoading && rc) {\n // ok, so turns out there are some child host elements\n // waiting on this parent element to load\n // let's fire off all update callbacks waiting\n rc.map((cb) => cb());\n elm['s-rc'] = undefined;\n }\n endRender();\n endUpdate();\n if (BUILD.asyncLoading) {\n const childrenPromises = (_a = elm['s-p']) !== null && _a !== void 0 ? _a : [];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n }\n else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* HOST_FLAGS.isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n else {\n postUpdateComponent(hostRef);\n }\n};\nconst callRender = (hostRef, instance, elm) => {\n // in order for bundlers to correctly treeshake the BUILD object\n // we need to ensure BUILD is not deoptimized within a try/catch\n // https://rollupjs.org/guide/en/#treeshake tryCatchDeoptimization\n const allRenderFn = BUILD.allRenderFn ? true : false;\n const lazyLoad = BUILD.lazyLoad ? true : false;\n const taskQueue = BUILD.taskQueue ? true : false;\n const updatable = BUILD.updatable ? true : false;\n try {\n renderingRef = instance;\n instance = allRenderFn ? instance.render() : instance.render && instance.render();\n if (updatable && taskQueue) {\n hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n if (updatable || lazyLoad) {\n hostRef.$flags$ |= 2 /* HOST_FLAGS.hasRendered */;\n }\n if (BUILD.hasRenderFn || BUILD.reflect) {\n if (BUILD.vdomRender || BUILD.reflect) {\n // looks like we've got child nodes to render into this host element\n // or we need to update the css class/attrs on the host element\n // DOM WRITE!\n if (BUILD.hydrateServerSide) {\n return Promise.resolve(instance).then((value) => renderVdom(hostRef, value));\n }\n else {\n renderVdom(hostRef, instance);\n }\n }\n else {\n elm.textContent = instance;\n }\n }\n }\n catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n renderingRef = null;\n return null;\n};\nconst getRenderingRef = () => renderingRef;\nconst postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime('postUpdate', tagName);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n const ancestorComponent = hostRef.$ancestorComponent$;\n if (BUILD.cmpDidRender) {\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n safeCall(instance, 'componentDidRender');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidRender');\n if (!(hostRef.$flags$ & 64 /* HOST_FLAGS.hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* HOST_FLAGS.hasLoadedComponent */;\n if (BUILD.asyncLoading && BUILD.cssAnnotations) {\n // DOM WRITE!\n addHydratedFlag(elm);\n }\n if (BUILD.cmpDidLoad) {\n if (BUILD.isDev) {\n hostRef.$flags$ |= 2048 /* HOST_FLAGS.devOnDidLoad */;\n }\n safeCall(instance, 'componentDidLoad');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~2048 /* HOST_FLAGS.devOnDidLoad */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidLoad');\n endPostUpdate();\n if (BUILD.asyncLoading) {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad(tagName);\n }\n }\n }\n else {\n if (BUILD.cmpDidUpdate) {\n // we've already loaded this component\n // fire off the user's componentDidUpdate method (if one was provided)\n // componentDidUpdate runs AFTER render() has been called\n // and all child components have finished updating\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n safeCall(instance, 'componentDidUpdate');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidUpdate');\n endPostUpdate();\n }\n if (BUILD.hotModuleReplacement) {\n elm['s-hmr-load'] && elm['s-hmr-load']();\n }\n if (BUILD.method && BUILD.lazyLoad) {\n hostRef.$onInstanceResolve$(elm);\n }\n // load events fire from bottom to top\n // the deepest elements load first then bubbles up\n if (BUILD.asyncLoading) {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = undefined;\n }\n if (hostRef.$flags$ & 512 /* HOST_FLAGS.needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= ~(4 /* HOST_FLAGS.isWaitingForChildren */ | 512 /* HOST_FLAGS.needsRerender */);\n }\n // ( •_•)\n // ( •_•)>⌐■-■\n // (⌐■_■)\n};\nconst forceUpdate = (ref) => {\n if (BUILD.updatable) {\n const hostRef = getHostRef(ref);\n const isConnected = hostRef.$hostElement$.isConnected;\n if (isConnected &&\n (hostRef.$flags$ & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n // Returns \"true\" when the forced update was successfully scheduled\n return isConnected;\n }\n return false;\n};\nconst appDidLoad = (who) => {\n // on appload\n // we have finish the first big initial render\n if (BUILD.cssAnnotations) {\n addHydratedFlag(doc.documentElement);\n }\n if (BUILD.asyncQueue) {\n plt.$flags$ |= 2 /* PLATFORM_FLAGS.appLoaded */;\n }\n nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));\n if (BUILD.profile && performance.measure) {\n performance.measure(`[Stencil] ${NAMESPACE} initial load (by ${who})`, 'st:app:start');\n }\n};\nconst safeCall = (instance, method, arg) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n }\n catch (e) {\n consoleError(e);\n }\n }\n return undefined;\n};\nconst emitLifecycleEvent = (elm, lifecycleName) => {\n if (BUILD.lifecycleDOMEvents) {\n emitEvent(elm, 'stencil_' + lifecycleName, {\n bubbles: true,\n composed: true,\n detail: {\n namespace: NAMESPACE,\n },\n });\n }\n};\nconst addHydratedFlag = (elm) => BUILD.hydratedClass\n ? elm.classList.add('hydrated')\n : BUILD.hydratedAttribute\n ? elm.setAttribute('hydrated', '')\n : undefined;\nconst serverSideConnected = (elm) => {\n const children = elm.children;\n if (children != null) {\n for (let i = 0, ii = children.length; i < ii; i++) {\n const childElm = children[i];\n if (typeof childElm.connectedCallback === 'function') {\n childElm.connectedCallback();\n }\n serverSideConnected(childElm);\n }\n }\n};\nconst getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nconst setValue = (ref, propName, newVal, cmpMeta) => {\n // check our new property value against our internal value\n const hostRef = getHostRef(ref);\n const elm = BUILD.lazyLoad ? hostRef.$hostElement$ : ref;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n // explicitly check for NaN on both sides, as `NaN === NaN` is always false\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if ((!BUILD.lazyLoad || !(flags & 8 /* HOST_FLAGS.isConstructingInstance */) || oldVal === undefined) && didValueChange) {\n // gadzooks! the property's value has changed!!\n // set our new value!\n hostRef.$instanceValues$.set(propName, newVal);\n if (BUILD.isDev) {\n if (hostRef.$flags$ & 1024 /* HOST_FLAGS.devOnRender */) {\n consoleDevWarn(`The state/prop \"${propName}\" changed during rendering. This can potentially lead to infinite-loops and other bugs.`, '\\nElement', elm, '\\nNew value', newVal, '\\nOld value', oldVal);\n }\n else if (hostRef.$flags$ & 2048 /* HOST_FLAGS.devOnDidLoad */) {\n consoleDevWarn(`The state/prop \"${propName}\" changed during \"componentDidLoad()\", this triggers extra re-renders, try to setup on \"componentWillLoad()\"`, '\\nElement', elm, '\\nNew value', newVal, '\\nOld value', oldVal);\n }\n }\n if (!BUILD.lazyLoad || instance) {\n // get an array of method names of watch functions to call\n if (BUILD.watchCallback && cmpMeta.$watchers$ && flags & 128 /* HOST_FLAGS.isWatchReady */) {\n const watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n // this instance is watching for when this property changed\n watchMethods.map((watchMethodName) => {\n try {\n // fire off each of the watch methods that are watching this property\n instance[watchMethodName](newVal, oldVal, propName);\n }\n catch (e) {\n consoleError(e, elm);\n }\n });\n }\n }\n if (BUILD.updatable &&\n (flags & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n if (BUILD.cmpShouldUpdate && instance.componentShouldUpdate) {\n if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {\n return;\n }\n }\n // looks like this value actually changed, so we've got work to do!\n // but only if we've already rendered, otherwise just chill out\n // queue that we need to do an update, but don't worry about queuing\n // up millions cuz this function ensures it only runs once\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\n/**\n * Attach a series of runtime constructs to a compiled Stencil component\n * constructor, including getters and setters for the `@Prop` and `@State`\n * decorators, callbacks for when attributes change, and so on.\n *\n * @param Cstr the constructor for a component that we need to process\n * @param cmpMeta metadata collected previously about the component\n * @param flags a number used to store a series of bit flags\n * @returns a reference to the same constructor passed in (but now mutated)\n */\nconst proxyComponent = (Cstr, cmpMeta, flags) => {\n if (BUILD.member && cmpMeta.$members$) {\n if (BUILD.watchCallback && Cstr.watchers) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n // It's better to have a const than two Object.entries()\n const members = Object.entries(cmpMeta.$members$);\n const prototype = Cstr.prototype;\n members.map(([memberName, [memberFlags]]) => {\n if ((BUILD.prop || BUILD.state) &&\n (memberFlags & 31 /* MEMBER_FLAGS.Prop */ ||\n ((!BUILD.lazyLoad || flags & 2 /* PROXY_FLAGS.proxyState */) && memberFlags & 32 /* MEMBER_FLAGS.State */))) {\n // proxyComponent - prop\n Object.defineProperty(prototype, memberName, {\n get() {\n // proxyComponent, get value\n return getValue(this, memberName);\n },\n set(newValue) {\n // only during dev time\n if (BUILD.isDev) {\n const ref = getHostRef(this);\n if (\n // we are proxying the instance (not element)\n (flags & 1 /* PROXY_FLAGS.isElementConstructor */) === 0 &&\n // the element is not constructing\n (ref.$flags$ & 8 /* HOST_FLAGS.isConstructingInstance */) === 0 &&\n // the member is a prop\n (memberFlags & 31 /* MEMBER_FLAGS.Prop */) !== 0 &&\n // the member is not mutable\n (memberFlags & 1024 /* MEMBER_FLAGS.Mutable */) === 0) {\n consoleDevWarn(`@Prop() \"${memberName}\" on <${cmpMeta.$tagName$}> is immutable but was modified from within the component.\\nMore information: https://stenciljs.com/docs/properties#prop-mutability`);\n }\n }\n // proxyComponent, set value\n setValue(this, memberName, newValue, cmpMeta);\n },\n configurable: true,\n enumerable: true,\n });\n }\n else if (BUILD.lazyLoad &&\n BUILD.method &&\n flags & 1 /* PROXY_FLAGS.isElementConstructor */ &&\n memberFlags & 64 /* MEMBER_FLAGS.Method */) {\n // proxyComponent - method\n Object.defineProperty(prototype, memberName, {\n value(...args) {\n const ref = getHostRef(this);\n return ref.$onInstancePromise$.then(() => ref.$lazyInstance$[memberName](...args));\n },\n });\n }\n });\n if (BUILD.observeAttribute && (!BUILD.lazyLoad || flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {\n const attrNameToPropName = new Map();\n prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {\n plt.jmp(() => {\n const propName = attrNameToPropName.get(attrName);\n // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback\n // in the case where an attribute was set inline.\n // ```html\n // <my-component some-attribute=\"some-value\"></my-component>\n // ```\n //\n // There is an edge case where a developer sets the attribute inline on a custom element and then\n // programmatically changes it before it has been upgraded as shown below:\n //\n // ```html\n // <!-- this component has _not_ been upgraded yet -->\n // <my-component id=\"test\" some-attribute=\"some-value\"></my-component>\n // <script>\n // // grab non-upgraded component\n // el = document.querySelector(\"#test\");\n // el.someAttribute = \"another-value\";\n // // upgrade component\n // customElements.define('my-component', MyComponent);\n // </script>\n // ```\n // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback\n // will be called with `newValue = \"some-value\"` and will set the shadowed property (this.someAttribute = \"another-value\")\n // to the value that was set inline i.e. \"some-value\" from above example. When\n // the connectedCallback attempts to unshadow it will use \"some-value\" as the initial value rather than \"another-value\"\n //\n // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed\n // by connectedCallback as this attributeChangedCallback will not fire.\n //\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n //\n // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to\n // properties here given that this goes against best practices outlined here\n // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy\n if (this.hasOwnProperty(propName)) {\n newValue = this[propName];\n delete this[propName];\n }\n else if (prototype.hasOwnProperty(propName) &&\n typeof this[propName] === 'number' &&\n this[propName] == newValue) {\n // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native\n // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in\n // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.\n return;\n }\n this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;\n });\n };\n // create an array of attributes to observe\n // and also create a map of html attribute name to js property name\n Cstr.observedAttributes = members\n .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes\n .map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n if (BUILD.reflect && m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {\n cmpMeta.$attrsToReflect$.push([propName, attrName]);\n }\n return attrName;\n });\n }\n }\n return Cstr;\n};\nconst initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {\n // initializeComponent\n if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {\n // Let the runtime know that the component has been initialized\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n if (BUILD.lazyLoad || BUILD.hydrateClientSide) {\n // lazy loaded components\n // request the component's implementation to be\n // wired up with the host element\n Cstr = loadModule(cmpMeta, hostRef, hmrVersionId);\n if (Cstr.then) {\n // Await creates a micro-task avoid if possible\n const endLoad = uniqueTime(`st:load:${cmpMeta.$tagName$}:${hostRef.$modeName$}`, `[Stencil] Load module for <${cmpMeta.$tagName$}>`);\n Cstr = await Cstr;\n endLoad();\n }\n if ((BUILD.isDev || BUILD.isDebug) && !Cstr) {\n throw new Error(`Constructor for \"${cmpMeta.$tagName$}#${hostRef.$modeName$}\" was not found`);\n }\n if (BUILD.member && !Cstr.isProxied) {\n // we've never proxied this Constructor before\n // let's add the getters/setters to its prototype before\n // the first time we create an instance of the implementation\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* PROXY_FLAGS.proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime('createInstance', cmpMeta.$tagName$);\n // ok, time to construct the instance\n // but let's keep track of when we start and stop\n // so that the getters/setters don't incorrectly step on data\n if (BUILD.member) {\n hostRef.$flags$ |= 8 /* HOST_FLAGS.isConstructingInstance */;\n }\n // construct the lazy-loaded component implementation\n // passing the hostRef is very important during\n // construction in order to directly wire together the\n // host element and the lazy-loaded instance\n try {\n new Cstr(hostRef);\n }\n catch (e) {\n consoleError(e);\n }\n if (BUILD.member) {\n hostRef.$flags$ &= ~8 /* HOST_FLAGS.isConstructingInstance */;\n }\n if (BUILD.watchCallback) {\n hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */;\n }\n endNewInstance();\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n else {\n // sync constructor component\n Cstr = elm.constructor;\n // wait for the CustomElementRegistry to mark the component as ready before setting `isWatchReady`. Otherwise,\n // watchers may fire prematurely if `customElements.get()`/`customElements.whenDefined()` resolves _before_\n // Stencil has completed instantiating the component.\n customElements.whenDefined(cmpMeta.$tagName$).then(() => (hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */));\n }\n if (BUILD.style && Cstr.style) {\n // this component has styles but we haven't registered them yet\n let style = Cstr.style;\n if (BUILD.mode && typeof style !== 'string') {\n style = style[(hostRef.$modeName$ = computeMode(elm))];\n if (BUILD.hydrateServerSide && hostRef.$modeName$) {\n elm.setAttribute('s-mode', hostRef.$modeName$);\n }\n }\n const scopeId = getScopeId(cmpMeta, hostRef.$modeName$);\n if (!styles.has(scopeId)) {\n const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);\n if (!BUILD.hydrateServerSide &&\n BUILD.shadowDom &&\n // TODO(STENCIL-662): Remove code related to deprecated shadowDomShim field\n BUILD.shadowDomShim &&\n cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) {\n style = await import('./shadow-css.js').then((m) => m.scopeCss(style, scopeId, false));\n }\n registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n // we've successfully created a lazy instance\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (BUILD.asyncLoading && ancestorComponent && ancestorComponent['s-rc']) {\n // this is the initial load and this component it has an ancestor component\n // but the ancestor component has NOT fired its will update lifecycle yet\n // so let's just cool our jets and wait for the ancestor to continue first\n // this will get fired off when the ancestor component\n // finally gets around to rendering its lazy self\n // fire off the initial update\n ancestorComponent['s-rc'].push(schedule);\n }\n else {\n schedule();\n }\n};\nconst fireConnectedCallback = (instance) => {\n if (BUILD.lazyLoad && BUILD.connectedCallback) {\n safeCall(instance, 'connectedCallback');\n }\n};\nconst connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime('connectedCallback', cmpMeta.$tagName$);\n if (BUILD.hostListenerTargetParent) {\n // only run if we have listeners being attached to a parent\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, true);\n }\n if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {\n // first time this component has connected\n hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;\n let hostId;\n if (BUILD.hydrateClientSide) {\n hostId = elm.getAttribute(HYDRATE_ID);\n if (hostId) {\n if (BUILD.shadowDom && supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n const scopeId = BUILD.mode\n ? addStyle(elm.shadowRoot, cmpMeta, elm.getAttribute('s-mode'))\n : addStyle(elm.shadowRoot, cmpMeta);\n elm.classList.remove(scopeId + '-h', scopeId + '-s');\n }\n initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef);\n }\n }\n if (BUILD.slotRelocation && !hostId) {\n // initUpdate\n // if the slot polyfill is required we'll need to put some nodes\n // in here to act as original content anchors as we move nodes around\n // host element has been connected to the DOM\n if (BUILD.hydrateServerSide ||\n ((BUILD.slot || BUILD.shadowDom) &&\n // TODO(STENCIL-662): Remove code related to deprecated shadowDomShim field\n cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {\n setContentReference(elm);\n }\n }\n if (BUILD.asyncLoading) {\n // find the first ancestor component (if there is one) and register\n // this component as one of the actively loading child components for its ancestor\n let ancestorComponent = elm;\n while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {\n // climb up the ancestors looking for the first\n // component that hasn't finished its lifecycle update yet\n if ((BUILD.hydrateClientSide &&\n ancestorComponent.nodeType === 1 /* NODE_TYPE.ElementNode */ &&\n ancestorComponent.hasAttribute('s-id') &&\n ancestorComponent['s-p']) ||\n ancestorComponent['s-p']) {\n // we found this components first ancestor component\n // keep a reference to this component's ancestor component\n attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));\n break;\n }\n }\n }\n // Lazy properties\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n if (BUILD.prop && !BUILD.hydrateServerSide && cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* MEMBER_FLAGS.Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n if (BUILD.initializeNextTick) {\n // connectedCallback, taskQueue, initialLoad\n // angular sets attribute AFTER connectCallback\n // https://github.com/angular/angular/issues/18909\n // https://github.com/angular/angular/issues/19940\n nextTick(() => initializeComponent(elm, hostRef, cmpMeta));\n }\n else {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n }\n else {\n // not the first time this has connected\n // reattach any event listeners to the host\n // since they would have been removed when disconnected\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false);\n // fire off connectedCallback() on component instance\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n endConnected();\n }\n};\nconst setContentReference = (elm) => {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n const contentRefElm = (elm['s-cr'] = doc.createComment(BUILD.isDebug ? `content-ref (host=${elm.localName})` : ''));\n contentRefElm['s-cn'] = true;\n elm.insertBefore(contentRefElm, elm.firstChild);\n};\nconst disconnectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n if (BUILD.hostListener) {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map((rmListener) => rmListener());\n hostRef.$rmListeners$ = undefined;\n }\n }\n // clear CSS var-shim tracking\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n if (BUILD.cssVarShim && plt.$cssShim$) {\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n plt.$cssShim$.removeHost(elm);\n }\n if (BUILD.lazyLoad && BUILD.disconnectedCallback) {\n safeCall(instance, 'disconnectedCallback');\n }\n if (BUILD.cmpDidUnload) {\n safeCall(instance, 'componentDidUnload');\n }\n }\n};\nconst defineCustomElement = (Cstr, compactMeta) => {\n customElements.define(compactMeta[1], proxyCustomElement(Cstr, compactMeta));\n};\nconst proxyCustomElement = (Cstr, compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n };\n if (BUILD.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = Cstr.$watchers$;\n }\n if (BUILD.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n // TODO(STENCIL-662): Remove code related to deprecated shadowDomShim field\n cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */;\n }\n const originalConnectedCallback = Cstr.prototype.connectedCallback;\n const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback;\n Object.assign(Cstr.prototype, {\n __registerHost() {\n registerHost(this, cmpMeta);\n },\n connectedCallback() {\n connectedCallback(this);\n if (BUILD.connectedCallback && originalConnectedCallback) {\n originalConnectedCallback.call(this);\n }\n },\n disconnectedCallback() {\n disconnectedCallback(this);\n if (BUILD.disconnectedCallback && originalDisconnectedCallback) {\n originalDisconnectedCallback.call(this);\n }\n },\n __attachShadow() {\n if (supportsShadow) {\n if (BUILD.shadowDelegatesFocus) {\n this.attachShadow({\n mode: 'open',\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */),\n });\n }\n else {\n this.attachShadow({ mode: 'open' });\n }\n }\n else {\n this.shadowRoot = this;\n }\n },\n });\n Cstr.is = cmpMeta.$tagName$;\n return proxyComponent(Cstr, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */ | 2 /* PROXY_FLAGS.proxyState */);\n};\nconst forceModeUpdate = (elm) => {\n if (BUILD.style && BUILD.mode && !BUILD.lazyLoad) {\n const mode = computeMode(elm);\n const hostRef = getHostRef(elm);\n if (hostRef.$modeName$ !== mode) {\n const cmpMeta = hostRef.$cmpMeta$;\n const oldScopeId = elm['s-sc'];\n const scopeId = getScopeId(cmpMeta, mode);\n const style = elm.constructor.style[mode];\n const flags = cmpMeta.$flags$;\n if (style) {\n if (!styles.has(scopeId)) {\n registerStyle(scopeId, style, !!(flags & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n }\n hostRef.$modeName$ = mode;\n elm.classList.remove(oldScopeId + '-h', oldScopeId + '-s');\n attachStyles(hostRef);\n forceUpdate(elm);\n }\n }\n }\n};\nconst patchCloneNode = (HostElementPrototype) => {\n const orgCloneNode = HostElementPrototype.cloneNode;\n HostElementPrototype.cloneNode = function (deep) {\n const srcNode = this;\n const isShadowDom = BUILD.shadowDom ? srcNode.shadowRoot && supportsShadow : false;\n const clonedNode = orgCloneNode.call(srcNode, isShadowDom ? deep : false);\n if (BUILD.slot && !isShadowDom && deep) {\n let i = 0;\n let slotted, nonStencilNode;\n const stencilPrivates = [\n 's-id',\n 's-cr',\n 's-lr',\n 's-rc',\n 's-sc',\n 's-p',\n 's-cn',\n 's-sr',\n 's-sn',\n 's-hn',\n 's-ol',\n 's-nr',\n 's-si',\n ];\n for (; i < srcNode.childNodes.length; i++) {\n slotted = srcNode.childNodes[i]['s-nr'];\n nonStencilNode = stencilPrivates.every((privateField) => !srcNode.childNodes[i][privateField]);\n if (slotted) {\n if (BUILD.appendChildSlotFix && clonedNode.__appendChild) {\n clonedNode.__appendChild(slotted.cloneNode(true));\n }\n else {\n clonedNode.appendChild(slotted.cloneNode(true));\n }\n }\n if (nonStencilNode) {\n clonedNode.appendChild(srcNode.childNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nconst patchSlotAppendChild = (HostElementPrototype) => {\n HostElementPrototype.__appendChild = HostElementPrototype.appendChild;\n HostElementPrototype.appendChild = function (newChild) {\n const slotName = (newChild['s-sn'] = getSlotName(newChild));\n const slotNode = getHostSlotNode(this.childNodes, slotName);\n if (slotNode) {\n const slotChildNodes = getHostSlotChildNodes(slotNode, slotName);\n const appendAfter = slotChildNodes[slotChildNodes.length - 1];\n return appendAfter.parentNode.insertBefore(newChild, appendAfter.nextSibling);\n }\n return this.__appendChild(newChild);\n };\n};\n/**\n * Patches the text content of an unnamed slotted node inside a scoped component\n * @param hostElementPrototype the `Element` to be patched\n * @param cmpMeta component runtime metadata used to determine if the component should be patched or not\n */\nconst patchTextContent = (hostElementPrototype, cmpMeta) => {\n if (BUILD.scoped && cmpMeta.$flags$ & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n const descriptor = Object.getOwnPropertyDescriptor(Node.prototype, 'textContent');\n Object.defineProperty(hostElementPrototype, '__textContent', descriptor);\n Object.defineProperty(hostElementPrototype, 'textContent', {\n get() {\n var _a;\n // get the 'default slot', which would be the first slot in a shadow tree (if we were using one), whose name is\n // the empty string\n const slotNode = getHostSlotNode(this.childNodes, '');\n // when a slot node is found, the textContent _may_ be found in the next sibling (text) node, depending on how\n // nodes were reordered during the vdom render. first try to get the text content from the sibling.\n if (((_a = slotNode === null || slotNode === void 0 ? void 0 : slotNode.nextSibling) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* NODE_TYPES.TEXT_NODE */) {\n return slotNode.nextSibling.textContent;\n }\n else if (slotNode) {\n return slotNode.textContent;\n }\n else {\n // fallback to the original implementation\n return this.__textContent;\n }\n },\n set(value) {\n var _a;\n // get the 'default slot', which would be the first slot in a shadow tree (if we were using one), whose name is\n // the empty string\n const slotNode = getHostSlotNode(this.childNodes, '');\n // when a slot node is found, the textContent _may_ need to be placed in the next sibling (text) node,\n // depending on how nodes were reordered during the vdom render. first try to set the text content on the\n // sibling.\n if (((_a = slotNode === null || slotNode === void 0 ? void 0 : slotNode.nextSibling) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* NODE_TYPES.TEXT_NODE */) {\n slotNode.nextSibling.textContent = value;\n }\n else if (slotNode) {\n slotNode.textContent = value;\n }\n else {\n // we couldn't find a slot, but that doesn't mean that there isn't one. if this check ran before the DOM\n // loaded, we could have missed it. check for a content reference element on the scoped component and insert\n // it there\n this.__textContent = value;\n const contentRefElm = this['s-cr'];\n if (contentRefElm) {\n this.insertBefore(contentRefElm, this.firstChild);\n }\n }\n },\n });\n }\n};\nconst patchChildSlotNodes = (elm, cmpMeta) => {\n class FakeNodeList extends Array {\n item(n) {\n return this[n];\n }\n }\n // TODO(STENCIL-662): Remove code related to deprecated shadowDomShim field\n if (cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) {\n const childNodesFn = elm.__lookupGetter__('childNodes');\n Object.defineProperty(elm, 'children', {\n get() {\n return this.childNodes.map((n) => n.nodeType === 1);\n },\n });\n Object.defineProperty(elm, 'childElementCount', {\n get() {\n return elm.children.length;\n },\n });\n Object.defineProperty(elm, 'childNodes', {\n get() {\n const childNodes = childNodesFn.call(this);\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0 &&\n getHostRef(this).$flags$ & 2 /* HOST_FLAGS.hasRendered */) {\n const result = new FakeNodeList();\n for (let i = 0; i < childNodes.length; i++) {\n const slot = childNodes[i]['s-nr'];\n if (slot) {\n result.push(slot);\n }\n }\n return result;\n }\n return FakeNodeList.from(childNodes);\n },\n });\n }\n};\nconst getSlotName = (node) => node['s-sn'] || (node.nodeType === 1 && node.getAttribute('slot')) || '';\n/**\n * Recursively searches a series of child nodes for a slot with the provided name.\n * @param childNodes the nodes to search for a slot with a specific name.\n * @param slotName the name of the slot to match on.\n * @returns a reference to the slot node that matches the provided name, `null` otherwise\n */\nconst getHostSlotNode = (childNodes, slotName) => {\n let i = 0;\n let childNode;\n for (; i < childNodes.length; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && childNode['s-sn'] === slotName) {\n return childNode;\n }\n childNode = getHostSlotNode(childNode.childNodes, slotName);\n if (childNode) {\n return childNode;\n }\n }\n return null;\n};\nconst getHostSlotChildNodes = (n, slotName) => {\n const childNodes = [n];\n while ((n = n.nextSibling) && n['s-sn'] === slotName) {\n childNodes.push(n);\n }\n return childNodes;\n};\nconst hmrStart = (elm, cmpMeta, hmrVersionId) => {\n // ¯\\_(ツ)_/¯\n const hostRef = getHostRef(elm);\n // reset state flags to only have been connected\n hostRef.$flags$ = 1 /* HOST_FLAGS.hasConnected */;\n // TODO\n // detatch any event listeners that may have been added\n // because we're not passing an exact event name it'll\n // remove all of this element's event, which is good\n // create a callback for when this component finishes hmr\n elm['s-hmr-load'] = () => {\n // finished hmr for this element\n delete elm['s-hmr-load'];\n };\n // re-initialize the component\n initializeComponent(elm, hostRef, cmpMeta, hmrVersionId);\n};\nconst bootstrapLazy = (lazyBundles, options = {}) => {\n var _a;\n if (BUILD.profile && performance.mark) {\n performance.mark('st:app:start');\n }\n installDevTools();\n const endBootstrap = createTime('bootstrapLazy');\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements = win.customElements;\n const head = doc.head;\n const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');\n const visibilityStyle = /*@__PURE__*/ doc.createElement('style');\n const deferredConnectedCallbacks = [];\n const styles = /*@__PURE__*/ doc.querySelectorAll(`[${HYDRATED_STYLE_ID}]`);\n let appLoadFallback;\n let isBootstrapping = true;\n let i = 0;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;\n if (BUILD.asyncQueue) {\n if (options.syncQueue) {\n plt.$flags$ |= 4 /* PLATFORM_FLAGS.queueSync */;\n }\n }\n if (BUILD.hydrateClientSide) {\n // If the app is already hydrated there is not point to disable the\n // async queue. This will improve the first input delay\n plt.$flags$ |= 2 /* PLATFORM_FLAGS.appLoaded */;\n }\n if (BUILD.hydrateClientSide && BUILD.shadowDom) {\n for (; i < styles.length; i++) {\n registerStyle(styles[i].getAttribute(HYDRATED_STYLE_ID), convertScopedToShadow(styles[i].innerHTML), true);\n }\n }\n lazyBundles.map((lazyBundle) => {\n lazyBundle[1].map((compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3],\n };\n if (BUILD.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = {};\n }\n if (BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n // TODO(STENCIL-662): Remove code related to deprecated shadowDomShim field\n cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */;\n }\n const tagName = BUILD.transformTagName && options.transformTagName\n ? options.transformTagName(cmpMeta.$tagName$)\n : cmpMeta.$tagName$;\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n // @ts-ignore\n super(self);\n self = this;\n registerHost(self, cmpMeta);\n if (BUILD.shadowDom && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n // this component is using shadow dom\n // and this browser supports shadow dom\n // add the read-only property \"shadowRoot\" to the host element\n // adding the shadow root build conditionals to minimize runtime\n if (supportsShadow) {\n if (BUILD.shadowDelegatesFocus) {\n self.attachShadow({\n mode: 'open',\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */),\n });\n }\n else {\n self.attachShadow({ mode: 'open' });\n }\n }\n else if (!BUILD.hydrateServerSide && !('shadowRoot' in self)) {\n self.shadowRoot = self;\n }\n }\n if (BUILD.slotChildNodesFix) {\n patchChildSlotNodes(self, cmpMeta);\n }\n }\n connectedCallback() {\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n // connectedCallback will be processed once all components have been registered\n deferredConnectedCallbacks.push(this);\n }\n else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n }\n componentOnReady() {\n return getHostRef(this).$onReadyPromise$;\n }\n };\n if (BUILD.cloneNodeFix) {\n patchCloneNode(HostElement.prototype);\n }\n if (BUILD.appendChildSlotFix) {\n patchSlotAppendChild(HostElement.prototype);\n }\n if (BUILD.hotModuleReplacement) {\n HostElement.prototype['s-hmr'] = function (hmrVersionId) {\n hmrStart(this, cmpMeta, hmrVersionId);\n };\n }\n if (BUILD.scopedSlotTextContentFix) {\n patchTextContent(HostElement.prototype, cmpMeta);\n }\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements.get(tagName)) {\n cmpTags.push(tagName);\n customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */));\n }\n });\n });\n if (BUILD.invisiblePrehydration && (BUILD.hydratedClass || BUILD.hydratedAttribute)) {\n visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;\n visibilityStyle.setAttribute('data-styles', '');\n // Apply CSP nonce to the style tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n visibilityStyle.setAttribute('nonce', nonce);\n }\n head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n // Process deferred connectedCallbacks now all components have been registered\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map((host) => host.connectedCallback());\n }\n else {\n if (BUILD.profile) {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30, 'timeout')));\n }\n else {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30)));\n }\n }\n // Fallback appLoad event\n endBootstrap();\n};\nconst getConnect = (_ref, tagName) => {\n const componentOnReady = () => {\n let elm = doc.querySelector(tagName);\n if (!elm) {\n elm = doc.createElement(tagName);\n doc.body.appendChild(elm);\n }\n return typeof elm.componentOnReady === 'function' ? elm.componentOnReady() : Promise.resolve(elm);\n };\n const create = (...args) => {\n return componentOnReady().then((el) => el.create(...args));\n };\n return {\n create,\n componentOnReady,\n };\n};\nconst getContext = (_elm, context) => {\n if (context in Context) {\n return Context[context];\n }\n else if (context === 'window') {\n return win;\n }\n else if (context === 'document') {\n return doc;\n }\n else if (context === 'isServer' || context === 'isPrerender') {\n return BUILD.hydrateServerSide ? true : false;\n }\n else if (context === 'isClient') {\n return BUILD.hydrateServerSide ? false : true;\n }\n else if (context === 'resourcesUrl' || context === 'publicPath') {\n return getAssetPath('.');\n }\n else if (context === 'queue') {\n return {\n write: writeTask,\n read: readTask,\n tick: {\n then(cb) {\n return nextTick(cb);\n },\n },\n };\n }\n return undefined;\n};\nconst Fragment = (_, children) => children;\nconst addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {\n if (BUILD.hostListener && listeners) {\n // this is called immediately within the element's constructor\n // initialize our event listeners on the host element\n // we do this now so that we can listen to events that may\n // have fired even before the instance is ready\n if (BUILD.hostListenerTargetParent) {\n // this component may have event listeners that should be attached to the parent\n if (attachParentListeners) {\n // this is being ran from within the connectedCallback\n // which is important so that we know the host element actually has a parent element\n // filter out the listeners to only have the ones that ARE being attached to the parent\n listeners = listeners.filter(([flags]) => flags & 32 /* LISTENER_FLAGS.TargetParent */);\n }\n else {\n // this is being ran from within the component constructor\n // everything BUT the parent element listeners should be attached at this time\n // filter out the listeners that are NOT being attached to the parent\n listeners = listeners.filter(([flags]) => !(flags & 32 /* LISTENER_FLAGS.TargetParent */));\n }\n }\n listeners.map(([flags, name, method]) => {\n const target = BUILD.hostListenerTarget ? getHostListenerTarget(elm, flags) : elm;\n const handler = hostListenerProxy(hostRef, method);\n const opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));\n });\n }\n};\nconst hostListenerProxy = (hostRef, methodName) => (ev) => {\n try {\n if (BUILD.lazyLoad) {\n if (hostRef.$flags$ & 256 /* HOST_FLAGS.isListenReady */) {\n // instance is ready, let's call it's member method for this event\n hostRef.$lazyInstance$[methodName](ev);\n }\n else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n }\n else {\n hostRef.$hostElement$[methodName](ev);\n }\n }\n catch (e) {\n consoleError(e);\n }\n};\nconst getHostListenerTarget = (elm, flags) => {\n if (BUILD.hostListenerTargetDocument && flags & 4 /* LISTENER_FLAGS.TargetDocument */)\n return doc;\n if (BUILD.hostListenerTargetWindow && flags & 8 /* LISTENER_FLAGS.TargetWindow */)\n return win;\n if (BUILD.hostListenerTargetBody && flags & 16 /* LISTENER_FLAGS.TargetBody */)\n return doc.body;\n if (BUILD.hostListenerTargetParent && flags & 32 /* LISTENER_FLAGS.TargetParent */)\n return elm.parentElement;\n return elm;\n};\n// prettier-ignore\nconst hostListenerOpts = (flags) => supportsListenerOptions\n ? ({\n passive: (flags & 1 /* LISTENER_FLAGS.Passive */) !== 0,\n capture: (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0,\n })\n : (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;\n/**\n * Assigns the given value to the nonce property on the runtime platform object.\n * During runtime, this value is used to set the nonce attribute on all dynamically created script and style tags.\n * @param nonce The value to be assigned to the platform nonce property.\n * @returns void\n */\nconst setNonce = (nonce) => (plt.$nonce$ = nonce);\nconst setPlatformOptions = (opts) => Object.assign(plt, opts);\nconst insertVdomAnnotations = (doc, staticComponents) => {\n if (doc != null) {\n const docData = {\n hostIds: 0,\n rootLevelIds: 0,\n staticComponents: new Set(staticComponents),\n };\n const orgLocationNodes = [];\n parseVNodeAnnotations(doc, doc.body, docData, orgLocationNodes);\n orgLocationNodes.forEach((orgLocationNode) => {\n if (orgLocationNode != null) {\n const nodeRef = orgLocationNode['s-nr'];\n let hostId = nodeRef['s-host-id'];\n let nodeId = nodeRef['s-node-id'];\n let childId = `${hostId}.${nodeId}`;\n if (hostId == null) {\n hostId = 0;\n docData.rootLevelIds++;\n nodeId = docData.rootLevelIds;\n childId = `${hostId}.${nodeId}`;\n if (nodeRef.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n nodeRef.setAttribute(HYDRATE_CHILD_ID, childId);\n }\n else if (nodeRef.nodeType === 3 /* NODE_TYPE.TextNode */) {\n if (hostId === 0) {\n const textContent = nodeRef.nodeValue.trim();\n if (textContent === '') {\n // useless whitespace node at the document root\n orgLocationNode.remove();\n return;\n }\n }\n const commentBeforeTextNode = doc.createComment(childId);\n commentBeforeTextNode.nodeValue = `${TEXT_NODE_ID}.${childId}`;\n nodeRef.parentNode.insertBefore(commentBeforeTextNode, nodeRef);\n }\n }\n let orgLocationNodeId = `${ORG_LOCATION_ID}.${childId}`;\n const orgLocationParentNode = orgLocationNode.parentElement;\n if (orgLocationParentNode) {\n if (orgLocationParentNode['s-en'] === '') {\n // ending with a \".\" means that the parent element\n // of this node's original location is a SHADOW dom element\n // and this node is apart of the root level light dom\n orgLocationNodeId += `.`;\n }\n else if (orgLocationParentNode['s-en'] === 'c') {\n // ending with a \".c\" means that the parent element\n // of this node's original location is a SCOPED element\n // and this node is apart of the root level light dom\n orgLocationNodeId += `.c`;\n }\n }\n orgLocationNode.nodeValue = orgLocationNodeId;\n }\n });\n }\n};\nconst parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {\n if (node == null) {\n return;\n }\n if (node['s-nr'] != null) {\n orgLocationNodes.push(node);\n }\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n node.childNodes.forEach((childNode) => {\n const hostRef = getHostRef(childNode);\n if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {\n const cmpData = {\n nodeIds: 0,\n };\n insertVNodeAnnotations(doc, childNode, hostRef.$vnode$, docData, cmpData);\n }\n parseVNodeAnnotations(doc, childNode, docData, orgLocationNodes);\n });\n }\n};\nconst insertVNodeAnnotations = (doc, hostElm, vnode, docData, cmpData) => {\n if (vnode != null) {\n const hostId = ++docData.hostIds;\n hostElm.setAttribute(HYDRATE_ID, hostId);\n if (hostElm['s-cr'] != null) {\n hostElm['s-cr'].nodeValue = `${CONTENT_REF_ID}.${hostId}`;\n }\n if (vnode.$children$ != null) {\n const depth = 0;\n vnode.$children$.forEach((vnodeChild, index) => {\n insertChildVNodeAnnotations(doc, vnodeChild, cmpData, hostId, depth, index);\n });\n }\n if (hostElm && vnode && vnode.$elm$ && !hostElm.hasAttribute('c-id')) {\n const parent = hostElm.parentElement;\n if (parent && parent.childNodes) {\n const parentChildNodes = Array.from(parent.childNodes);\n const comment = parentChildNodes.find((node) => node.nodeType === 8 /* NODE_TYPE.CommentNode */ && node['s-sr']);\n if (comment) {\n const index = parentChildNodes.indexOf(hostElm) - 1;\n vnode.$elm$.setAttribute(HYDRATE_CHILD_ID, `${comment['s-host-id']}.${comment['s-node-id']}.0.${index}`);\n }\n }\n }\n }\n};\nconst insertChildVNodeAnnotations = (doc, vnodeChild, cmpData, hostId, depth, index) => {\n const childElm = vnodeChild.$elm$;\n if (childElm == null) {\n return;\n }\n const nodeId = cmpData.nodeIds++;\n const childId = `${hostId}.${nodeId}.${depth}.${index}`;\n childElm['s-host-id'] = hostId;\n childElm['s-node-id'] = nodeId;\n if (childElm.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n childElm.setAttribute(HYDRATE_CHILD_ID, childId);\n }\n else if (childElm.nodeType === 3 /* NODE_TYPE.TextNode */) {\n const parentNode = childElm.parentNode;\n const nodeName = parentNode.nodeName;\n if (nodeName !== 'STYLE' && nodeName !== 'SCRIPT') {\n const textNodeId = `${TEXT_NODE_ID}.${childId}`;\n const commentBeforeTextNode = doc.createComment(textNodeId);\n parentNode.insertBefore(commentBeforeTextNode, childElm);\n }\n }\n else if (childElm.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n if (childElm['s-sr']) {\n const slotName = childElm['s-sn'] || '';\n const slotNodeId = `${SLOT_NODE_ID}.${childId}.${slotName}`;\n childElm.nodeValue = slotNodeId;\n }\n }\n if (vnodeChild.$children$ != null) {\n const childDepth = depth + 1;\n vnodeChild.$children$.forEach((vnode, index) => {\n insertChildVNodeAnnotations(doc, vnode, cmpData, hostId, childDepth, index);\n });\n }\n};\nconst hostRefs = /*@__PURE__*/ new WeakMap();\nconst getHostRef = (ref) => hostRefs.get(ref);\nconst registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);\nconst registerHost = (elm, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: elm,\n $cmpMeta$: cmpMeta,\n $instanceValues$: new Map(),\n };\n if (BUILD.isDev) {\n hostRef.$renderCount$ = 0;\n }\n if (BUILD.method && BUILD.lazyLoad) {\n hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r));\n }\n if (BUILD.asyncLoading) {\n hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));\n elm['s-p'] = [];\n elm['s-rc'] = [];\n }\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false);\n return hostRefs.set(elm, hostRef);\n};\nconst isMemberInElement = (elm, memberName) => memberName in elm;\nconst consoleError = (e, el) => (customError || console.error)(e, el);\nconst STENCIL_DEV_MODE = BUILD.isTesting\n ? ['STENCIL:'] // E2E testing\n : [\n '%cstencil',\n 'color: white;background:#4c47ff;font-weight: bold; font-size:10px; padding:2px 6px; border-radius: 5px',\n ];\nconst consoleDevError = (...m) => console.error(...STENCIL_DEV_MODE, ...m);\nconst consoleDevWarn = (...m) => console.warn(...STENCIL_DEV_MODE, ...m);\nconst consoleDevInfo = (...m) => console.info(...STENCIL_DEV_MODE, ...m);\nconst setErrorHandler = (handler) => (customError = handler);\nconst cmpModules = /*@__PURE__*/ new Map();\nconst loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n // loadModuleImport\n const exportName = cmpMeta.$tagName$.replace(/-/g, '_');\n const bundleId = cmpMeta.$lazyBundleId$;\n if (BUILD.isDev && typeof bundleId !== 'string') {\n consoleDevError(`Trying to lazily load component <${cmpMeta.$tagName$}> with style mode \"${hostRef.$modeName$}\", but it does not exist.`);\n return undefined;\n }\n const module = !BUILD.hotModuleReplacement ? cmpModules.get(bundleId) : false;\n if (module) {\n return module[exportName];\n }\n /*!__STENCIL_STATIC_IMPORT_SWITCH__*/\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n `./${bundleId}.entry.js${BUILD.hotModuleReplacement && hmrVersionId ? '?s-hmr=' + hmrVersionId : ''}`).then((importedModule) => {\n if (!BUILD.hotModuleReplacement) {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n }, consoleError);\n};\nconst styles = /*@__PURE__*/ new Map();\nconst modeResolutionChain = [];\nconst win = typeof window !== 'undefined' ? window : {};\n// TODO(STENCIL-659): Remove code implementing the CSS variable shim\nconst CSS = BUILD.cssVarShim ? win.CSS : null;\nconst doc = win.document || { head: {} };\nconst H = (win.HTMLElement || class {\n});\nconst plt = {\n $flags$: 0,\n $resourcesUrl$: '',\n jmp: (h) => h(),\n raf: (h) => requestAnimationFrame(h),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts),\n};\nconst setPlatformHelpers = (helpers) => {\n Object.assign(plt, helpers);\n};\nconst supportsShadow = \n// TODO(STENCIL-662): Remove code related to deprecated shadowDomShim field\nBUILD.shadowDomShim && BUILD.shadowDom\n ? /*@__PURE__*/ (() => (doc.head.attachShadow + '').indexOf('[native') > -1)()\n : true;\nconst supportsListenerOptions = /*@__PURE__*/ (() => {\n let supportsListenerOptions = false;\n try {\n doc.addEventListener('e', null, Object.defineProperty({}, 'passive', {\n get() {\n supportsListenerOptions = true;\n },\n }));\n }\n catch (e) { }\n return supportsListenerOptions;\n})();\nconst promiseResolve = (v) => Promise.resolve(v);\nconst supportsConstructableStylesheets = BUILD.constructableCSS\n ? /*@__PURE__*/ (() => {\n try {\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === 'function';\n }\n catch (e) { }\n return false;\n })()\n : false;\nconst queueDomReads = [];\nconst queueDomWrites = [];\nconst queueDomWritesLow = [];\nconst queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* PLATFORM_FLAGS.queueSync */) {\n nextTick(flush);\n }\n else {\n plt.raf(flush);\n }\n }\n};\nconst consume = (queue) => {\n for (let i = 0; i < queue.length; i++) {\n try {\n queue[i](performance.now());\n }\n catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nconst consumeTimeout = (queue, timeout) => {\n let i = 0;\n let ts = 0;\n while (i < queue.length && (ts = performance.now()) < timeout) {\n try {\n queue[i++](ts);\n }\n catch (e) {\n consoleError(e);\n }\n }\n if (i === queue.length) {\n queue.length = 0;\n }\n else if (i !== 0) {\n queue.splice(0, i);\n }\n};\nconst flush = () => {\n if (BUILD.asyncQueue) {\n queueCongestion++;\n }\n // always force a bunch of medium callbacks to run, but still have\n // a throttle on how many can run in a certain time\n // DOM READS!!!\n consume(queueDomReads);\n // DOM WRITES!!!\n if (BUILD.asyncQueue) {\n const timeout = (plt.$flags$ & 6 /* PLATFORM_FLAGS.queueMask */) === 2 /* PLATFORM_FLAGS.appLoaded */\n ? performance.now() + 14 * Math.ceil(queueCongestion * (1.0 / 10.0))\n : Infinity;\n consumeTimeout(queueDomWrites, timeout);\n consumeTimeout(queueDomWritesLow, timeout);\n if (queueDomWrites.length > 0) {\n queueDomWritesLow.push(...queueDomWrites);\n queueDomWrites.length = 0;\n }\n if ((queuePending = queueDomReads.length + queueDomWrites.length + queueDomWritesLow.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n else {\n queueCongestion = 0;\n }\n }\n else {\n consume(queueDomWrites);\n if ((queuePending = queueDomReads.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n }\n};\nconst nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);\nconst readTask = /*@__PURE__*/ queueTask(queueDomReads, false);\nconst writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);\nexport { BUILD, Env, NAMESPACE } from '@stencil/core/internal/app-data';\nexport { Build, CSS, Context, Fragment, H, H as HTMLElement, Host, STENCIL_DEV_MODE, addHostEventListeners, bootstrapLazy, cmpModules, connectedCallback, consoleDevError, consoleDevInfo, consoleDevWarn, consoleError, createEvent, defineCustomElement, disconnectedCallback, doc, forceModeUpdate, forceUpdate, getAssetPath, getConnect, getContext, getElement, getHostRef, getMode, getRenderingRef, getValue, h, insertVdomAnnotations, isMemberInElement, loadModule, modeResolutionChain, nextTick, parsePropertyValue, plt, postUpdateComponent, promiseResolve, proxyComponent, proxyCustomElement, readTask, registerHost, registerInstance, renderVdom, setAssetPath, setErrorHandler, setMode, setNonce, setPlatformHelpers, setPlatformOptions, setValue, styles, supportsConstructableStylesheets, supportsListenerOptions, supportsShadow, win, writeTask };\n","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire();\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar requiredArgs_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = requiredArgs;\n\nfunction requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}\n\nmodule.exports = exports.default;\n});\n\nvar toDate_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\n\nvar _index = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nfunction toDate(argument) {\n (0, _index.default)(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}\n\nmodule.exports = exports.default;\n});\n\nvar isValid_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isValid;\n\nvar _index = _interopRequireDefault(toDate_1);\n\nvar _index2 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n return !isNaN(date);\n}\n\nmodule.exports = exports.default;\n});\n\nvar formatDistance_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatDistance;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nfunction formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}\n\nmodule.exports = exports.default;\n});\n\nvar buildFormatLongFn_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildFormatLongFn;\n\nfunction buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n\nmodule.exports = exports.default;\n});\n\nvar formatLong_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(buildFormatLongFn_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;\n});\n\nvar formatRelative_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatRelative;\nvar formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nfunction formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}\n\nmodule.exports = exports.default;\n});\n\nvar buildLocalizeFn_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildLocalizeFn;\n\nfunction buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}\n\nmodule.exports = exports.default;\n});\n\nvar localize_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(buildLocalizeFn_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;\n});\n\nvar buildMatchPatternFn_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchPatternFn;\n\nfunction buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nmodule.exports = exports.default;\n});\n\nvar buildMatchFn_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchFn;\n\nfunction buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n}\n\nmodule.exports = exports.default;\n});\n\nvar match_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(buildMatchPatternFn_1);\n\nvar _index2 = _interopRequireDefault(buildMatchFn_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index2.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index2.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: (0, _index2.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index2.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index2.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;\n});\n\nvar enUS = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(formatDistance_1);\n\nvar _index2 = _interopRequireDefault(formatLong_1);\n\nvar _index3 = _interopRequireDefault(formatRelative_1);\n\nvar _index4 = _interopRequireDefault(localize_1);\n\nvar _index5 = _interopRequireDefault(match_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;\n});\n\nvar toInteger_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInteger;\n\nfunction toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}\n\nmodule.exports = exports.default;\n});\n\nconst toInteger = /*@__PURE__*/getDefaultExportFromCjs(toInteger_1);\n\nvar addMilliseconds_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addMilliseconds;\n\nvar _index = _interopRequireDefault(toInteger_1);\n\nvar _index2 = _interopRequireDefault(toDate_1);\n\nvar _index3 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nfunction addMilliseconds(dirtyDate, dirtyAmount) {\n (0, _index3.default)(2, arguments);\n var timestamp = (0, _index2.default)(dirtyDate).getTime();\n var amount = (0, _index.default)(dirtyAmount);\n return new Date(timestamp + amount);\n}\n\nmodule.exports = exports.default;\n});\n\nvar subMilliseconds_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = subMilliseconds;\n\nvar _index = _interopRequireDefault(toInteger_1);\n\nvar _index2 = _interopRequireDefault(addMilliseconds_1);\n\nvar _index3 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nfunction subMilliseconds(dirtyDate, dirtyAmount) {\n (0, _index3.default)(2, arguments);\n var amount = (0, _index.default)(dirtyAmount);\n return (0, _index2.default)(dirtyDate, -amount);\n}\n\nmodule.exports = exports.default;\n});\n\nvar addLeadingZeros_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addLeadingZeros;\n\nfunction addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}\n\nmodule.exports = exports.default;\n});\n\nvar lightFormatters = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(addLeadingZeros_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return (0, _index.default)(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : (0, _index.default)(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return (0, _index.default)(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return (0, _index.default)(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return (0, _index.default)(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return (0, _index.default)(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return (0, _index.default)(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return (0, _index.default)(fractionalSeconds, token.length);\n }\n};\nvar _default = formatters;\nexports.default = _default;\nmodule.exports = exports.default;\n});\n\nvar getUTCDayOfYear_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCDayOfYear;\n\nvar _index = _interopRequireDefault(toDate_1);\n\nvar _index2 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction getUTCDayOfYear(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}\n\nmodule.exports = exports.default;\n});\n\nvar startOfUTCISOWeek_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCISOWeek;\n\nvar _index = _interopRequireDefault(toDate_1);\n\nvar _index2 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCISOWeek(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var weekStartsOn = 1;\n var date = (0, _index.default)(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = exports.default;\n});\n\nvar getUTCISOWeekYear_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCISOWeekYear;\n\nvar _index = _interopRequireDefault(toDate_1);\n\nvar _index2 = _interopRequireDefault(startOfUTCISOWeek_1);\n\nvar _index3 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction getUTCISOWeekYear(dirtyDate) {\n (0, _index3.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = (0, _index2.default)(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = (0, _index2.default)(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\nmodule.exports = exports.default;\n});\n\nvar startOfUTCISOWeekYear_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCISOWeekYear;\n\nvar _index = _interopRequireDefault(getUTCISOWeekYear_1);\n\nvar _index2 = _interopRequireDefault(startOfUTCISOWeek_1);\n\nvar _index3 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCISOWeekYear(dirtyDate) {\n (0, _index3.default)(1, arguments);\n var year = (0, _index.default)(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = (0, _index2.default)(fourthOfJanuary);\n return date;\n}\n\nmodule.exports = exports.default;\n});\n\nvar getUTCISOWeek_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCISOWeek;\n\nvar _index = _interopRequireDefault(toDate_1);\n\nvar _index2 = _interopRequireDefault(startOfUTCISOWeek_1);\n\nvar _index3 = _interopRequireDefault(startOfUTCISOWeekYear_1);\n\nvar _index4 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction getUTCISOWeek(dirtyDate) {\n (0, _index4.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var diff = (0, _index2.default)(date).getTime() - (0, _index3.default)(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}\n\nmodule.exports = exports.default;\n});\n\nvar startOfUTCWeek_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCWeek;\n\nvar _index = _interopRequireDefault(toInteger_1);\n\nvar _index2 = _interopRequireDefault(toDate_1);\n\nvar _index3 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCWeek(dirtyDate, dirtyOptions) {\n (0, _index3.default)(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : (0, _index.default)(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : (0, _index.default)(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = (0, _index2.default)(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}\n\nmodule.exports = exports.default;\n});\n\nvar getUTCWeekYear_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCWeekYear;\n\nvar _index = _interopRequireDefault(toInteger_1);\n\nvar _index2 = _interopRequireDefault(toDate_1);\n\nvar _index3 = _interopRequireDefault(startOfUTCWeek_1);\n\nvar _index4 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction getUTCWeekYear(dirtyDate, dirtyOptions) {\n (0, _index4.default)(1, arguments);\n var date = (0, _index2.default)(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : (0, _index.default)(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : (0, _index.default)(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = (0, _index3.default)(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = (0, _index3.default)(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\nmodule.exports = exports.default;\n});\n\nvar startOfUTCWeekYear_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCWeekYear;\n\nvar _index = _interopRequireDefault(toInteger_1);\n\nvar _index2 = _interopRequireDefault(getUTCWeekYear_1);\n\nvar _index3 = _interopRequireDefault(startOfUTCWeek_1);\n\nvar _index4 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n (0, _index4.default)(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : (0, _index.default)(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : (0, _index.default)(options.firstWeekContainsDate);\n var year = (0, _index2.default)(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = (0, _index3.default)(firstWeek, dirtyOptions);\n return date;\n}\n\nmodule.exports = exports.default;\n});\n\nvar getUTCWeek_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCWeek;\n\nvar _index = _interopRequireDefault(toDate_1);\n\nvar _index2 = _interopRequireDefault(startOfUTCWeek_1);\n\nvar _index3 = _interopRequireDefault(startOfUTCWeekYear_1);\n\nvar _index4 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nfunction getUTCWeek(dirtyDate, options) {\n (0, _index4.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var diff = (0, _index2.default)(date, options).getTime() - (0, _index3.default)(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}\n\nmodule.exports = exports.default;\n});\n\nvar formatters_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _index = _interopRequireDefault(lightFormatters);\n\nvar _index2 = _interopRequireDefault(getUTCDayOfYear_1);\n\nvar _index3 = _interopRequireDefault(getUTCISOWeek_1);\n\nvar _index4 = _interopRequireDefault(getUTCISOWeekYear_1);\n\nvar _index5 = _interopRequireDefault(getUTCWeek_1);\n\nvar _index6 = _interopRequireDefault(getUTCWeekYear_1);\n\nvar _index7 = _interopRequireDefault(addLeadingZeros_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return _index.default.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = (0, _index6.default)(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return (0, _index7.default)(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return (0, _index7.default)(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = (0, _index4.default)(date); // Padding\n\n return (0, _index7.default)(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return (0, _index7.default)(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return (0, _index7.default)(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return (0, _index7.default)(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return _index.default.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return (0, _index7.default)(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = (0, _index5.default)(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return (0, _index7.default)(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = (0, _index3.default)(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return (0, _index7.default)(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return _index.default.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = (0, _index2.default)(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return (0, _index7.default)(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return (0, _index7.default)(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return (0, _index7.default)(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return (0, _index7.default)(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return _index.default.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return _index.default.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return (0, _index7.default)(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return (0, _index7.default)(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return _index.default.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return _index.default.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return _index.default.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return (0, _index7.default)(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return (0, _index7.default)(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + (0, _index7.default)(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + (0, _index7.default)(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = (0, _index7.default)(Math.floor(absOffset / 60), 2);\n var minutes = (0, _index7.default)(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nvar _default = formatters;\nexports.default = _default;\nmodule.exports = exports.default;\n});\n\nvar longFormatters_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nvar _default = longFormatters;\nexports.default = _default;\nmodule.exports = exports.default;\n});\n\nvar getTimezoneOffsetInMilliseconds_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getTimezoneOffsetInMilliseconds;\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nfunction getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}\n\nmodule.exports = exports.default;\n});\n\nconst getTimezoneOffsetInMilliseconds = /*@__PURE__*/getDefaultExportFromCjs(getTimezoneOffsetInMilliseconds_1);\n\nvar protectedTokens = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isProtectedDayOfYearToken = isProtectedDayOfYearToken;\nexports.isProtectedWeekYearToken = isProtectedWeekYearToken;\nexports.throwProtectedError = throwProtectedError;\nvar protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\n\nfunction isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\n\nfunction isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\n\nfunction throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}\n});\n\nvar format_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = format;\n\nvar _index = _interopRequireDefault(isValid_1);\n\nvar _index2 = _interopRequireDefault(enUS);\n\nvar _index3 = _interopRequireDefault(subMilliseconds_1);\n\nvar _index4 = _interopRequireDefault(toDate_1);\n\nvar _index5 = _interopRequireDefault(formatters_1);\n\nvar _index6 = _interopRequireDefault(longFormatters_1);\n\nvar _index7 = _interopRequireDefault(getTimezoneOffsetInMilliseconds_1);\n\n\n\nvar _index9 = _interopRequireDefault(toInteger_1);\n\nvar _index10 = _interopRequireDefault(requiredArgs_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nfunction format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n (0, _index10.default)(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || _index2.default;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : (0, _index9.default)(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : (0, _index9.default)(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : (0, _index9.default)(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : (0, _index9.default)(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = (0, _index4.default)(dirtyDate);\n\n if (!(0, _index.default)(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = (0, _index7.default)(originalDate);\n var utcDate = (0, _index3.default)(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = _index6.default[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = _index5.default[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && (0, protectedTokens.isProtectedWeekYearToken)(substring)) {\n (0, protectedTokens.throwProtectedError)(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && (0, protectedTokens.isProtectedDayOfYearToken)(substring)) {\n (0, protectedTokens.throwProtectedError)(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\nmodule.exports = exports.default;\n});\n\nconst dateFnsFormat = /*@__PURE__*/getDefaultExportFromCjs(format_1);\n\n/**\n * Returns the formatted time zone name of the provided `timeZone` or the current\n * system time zone if omitted, accounting for DST according to the UTC value of\n * the date.\n */\nfunction tzIntlTimeZoneName(length, date, options) {\n var dtf = getDTF(length, options.timeZone, options.locale);\n return dtf.formatToParts ? partsTimeZone(dtf, date) : hackyTimeZone(dtf, date)\n}\n\nfunction partsTimeZone(dtf, date) {\n var formatted = dtf.formatToParts(date);\n\n for (var i = formatted.length - 1; i >= 0; --i) {\n if (formatted[i].type === 'timeZoneName') {\n return formatted[i].value\n }\n }\n}\n\nfunction hackyTimeZone(dtf, date) {\n var formatted = dtf.format(date).replace(/\\u200E/g, '');\n var tzNameMatch = / [\\w-+ ]+$/.exec(formatted);\n return tzNameMatch ? tzNameMatch[0].substr(1) : ''\n}\n\n// If a locale has been provided `en-US` is used as a fallback in case it is an\n// invalid locale, otherwise the locale is left undefined to use the system locale.\nfunction getDTF(length, timeZone, locale) {\n if (locale && !locale.code) {\n throw new Error(\n \"date-fns-tz error: Please set a language code on the locale object imported from date-fns, e.g. `locale.code = 'en-US'`\"\n )\n }\n return new Intl.DateTimeFormat(locale ? [locale.code, 'en-US'] : undefined, {\n timeZone: timeZone,\n timeZoneName: length,\n })\n}\n\n/**\n * Returns the [year, month, day, hour, minute, seconds] tokens of the provided\n * `date` as it will be rendered in the `timeZone`.\n */\nfunction tzTokenizeDate(date, timeZone) {\n var dtf = getDateTimeFormat(timeZone);\n return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date)\n}\n\nvar typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5,\n};\n\nfunction partsOffset(dtf, date) {\n try {\n var formatted = dtf.formatToParts(date);\n var filled = [];\n for (var i = 0; i < formatted.length; i++) {\n var pos = typeToPos[formatted[i].type];\n\n if (pos >= 0) {\n filled[pos] = parseInt(formatted[i].value, 10);\n }\n }\n return filled\n } catch (error) {\n if (error instanceof RangeError) {\n return [NaN]\n }\n throw error\n }\n}\n\nfunction hackyOffset(dtf, date) {\n var formatted = dtf.format(date).replace(/\\u200E/g, '');\n var parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted);\n // var [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed\n // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]\n return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]]\n}\n\n// Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used\n// to get deterministic local date/time output according to the `en-US` locale which\n// can be used to extract local time parts as necessary.\nvar dtfCache = {};\nfunction getDateTimeFormat(timeZone) {\n if (!dtfCache[timeZone]) {\n // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`\n var testDateFormatted = new Intl.DateTimeFormat('en-US', {\n hour12: false,\n timeZone: 'America/New_York',\n year: 'numeric',\n month: 'numeric',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n }).format(new Date('2014-06-25T04:00:00.123Z'));\n var hourCycleSupported =\n testDateFormatted === '06/25/2014, 00:00:00' ||\n testDateFormatted === '06/25/2014 00:00:00';\n\n dtfCache[timeZone] = hourCycleSupported\n ? new Intl.DateTimeFormat('en-US', {\n hour12: false,\n timeZone: timeZone,\n year: 'numeric',\n month: 'numeric',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n })\n : new Intl.DateTimeFormat('en-US', {\n hourCycle: 'h23',\n timeZone: timeZone,\n year: 'numeric',\n month: 'numeric',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n });\n }\n return dtfCache[timeZone]\n}\n\n/**\n * Use instead of `new Date(Date.UTC(...))` to support years below 100 which doesn't work\n * otherwise due to the nature of the\n * [`Date` constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#interpretation_of_two-digit_years.\n *\n * For `Date.UTC(...)`, use `newDateUTC(...).getTime()`.\n */\nfunction newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {\n var utcDate = new Date(0);\n utcDate.setUTCFullYear(fullYear, month, day);\n utcDate.setUTCHours(hour, minute, second, millisecond);\n return utcDate\n}\n\nvar MILLISECONDS_IN_HOUR$1 = 3600000;\nvar MILLISECONDS_IN_MINUTE$2 = 60000;\n\nvar patterns$1 = {\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-]\\d{2})$/,\n timezoneHHMM: /^([+-]\\d{2}):?(\\d{2})$/,\n};\n\n// Parse various time zone offset formats to an offset in milliseconds\nfunction tzParseTimezone(timezoneString, date, isUtcDate) {\n var token;\n var absoluteOffset;\n\n // Empty string\n if (timezoneString === '') {\n return 0\n }\n\n // Z\n token = patterns$1.timezoneZ.exec(timezoneString);\n if (token) {\n return 0\n }\n\n var hours;\n\n // ±hh\n token = patterns$1.timezoneHH.exec(timezoneString);\n if (token) {\n hours = parseInt(token[1], 10);\n\n if (!validateTimezone(hours)) {\n return NaN\n }\n\n return -(hours * MILLISECONDS_IN_HOUR$1)\n }\n\n // ±hh:mm or ±hhmm\n token = patterns$1.timezoneHHMM.exec(timezoneString);\n if (token) {\n hours = parseInt(token[1], 10);\n var minutes = parseInt(token[2], 10);\n\n if (!validateTimezone(hours, minutes)) {\n return NaN\n }\n\n absoluteOffset = Math.abs(hours) * MILLISECONDS_IN_HOUR$1 + minutes * MILLISECONDS_IN_MINUTE$2;\n return hours > 0 ? -absoluteOffset : absoluteOffset\n }\n\n // IANA time zone\n if (isValidTimezoneIANAString(timezoneString)) {\n date = new Date(date || Date.now());\n var utcDate = isUtcDate ? date : toUtcDate(date);\n\n var offset = calcOffset(utcDate, timezoneString);\n\n var fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString);\n\n return -fixedOffset\n }\n\n return NaN\n}\n\nfunction toUtcDate(date) {\n return newDateUTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds()\n )\n}\n\nfunction calcOffset(date, timezoneString) {\n var tokens = tzTokenizeDate(date, timezoneString);\n\n // ms dropped because it's not provided by tzTokenizeDate\n var asUTC = newDateUTC(\n tokens[0],\n tokens[1] - 1,\n tokens[2],\n tokens[3] % 24,\n tokens[4],\n tokens[5],\n 0\n ).getTime();\n\n var asTS = date.getTime();\n var over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return asUTC - asTS\n}\n\nfunction fixOffset(date, offset, timezoneString) {\n var localTS = date.getTime();\n\n // Our UTC time is just a guess because our offset is just a guess\n var utcGuess = localTS - offset;\n\n // Test whether the zone matches the offset for this ts\n var o2 = calcOffset(new Date(utcGuess), timezoneString);\n\n // If so, offset didn't change, and we're done\n if (offset === o2) {\n return offset\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= o2 - offset;\n\n // If that gives us the local time we want, we're done\n var o3 = calcOffset(new Date(utcGuess), timezoneString);\n if (o2 === o3) {\n return o2\n }\n\n // If it's different, we're in a hole time. The offset has changed, but we don't adjust the time\n return Math.max(o2, o3)\n}\n\nfunction validateTimezone(hours, minutes) {\n return -23 <= hours && hours <= 23 && (minutes == null || (0 <= minutes && minutes <= 59))\n}\n\nvar validIANATimezoneCache = {};\nfunction isValidTimezoneIANAString(timeZoneString) {\n if (validIANATimezoneCache[timeZoneString]) return true\n try {\n validIANATimezoneCache[timeZoneString] = true;\n return true\n } catch (error) {\n return false\n }\n}\n\nvar MILLISECONDS_IN_MINUTE$1 = 60 * 1000;\n\nvar formatters = {\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, localize, options) {\n var timezoneOffset = getTimeZoneOffset(options.timeZone, options._originalDate || date);\n\n if (timezoneOffset === 0) {\n return 'Z'\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset)\n\n // Hours, minutes and optional seconds without `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX': // Hours and minutes without `:` delimeter\n return formatTimezone(timezoneOffset)\n\n // Hours, minutes and optional seconds with `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimeter\n default:\n return formatTimezone(timezoneOffset, ':')\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, localize, options) {\n var timezoneOffset = getTimeZoneOffset(options.timeZone, options._originalDate || date);\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset)\n\n // Hours, minutes and optional seconds without `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx': // Hours and minutes without `:` delimeter\n return formatTimezone(timezoneOffset)\n\n // Hours, minutes and optional seconds with `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimeter\n default:\n return formatTimezone(timezoneOffset, ':')\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, localize, options) {\n var timezoneOffset = getTimeZoneOffset(options.timeZone, options._originalDate || date);\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':')\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':')\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return tzIntlTimeZoneName('short', originalDate, options)\n // Long\n case 'zzzz':\n default:\n return tzIntlTimeZoneName('long', originalDate, options)\n }\n },\n};\n\nfunction getTimeZoneOffset(timeZone, originalDate) {\n var timeZoneOffset = timeZone\n ? tzParseTimezone(timeZone, originalDate, true) / MILLISECONDS_IN_MINUTE$1\n : originalDate.getTimezoneOffset();\n if (Number.isNaN(timeZoneOffset)) {\n throw new RangeError('Invalid time zone specified: ' + timeZone)\n }\n return timeZoneOffset\n}\n\nfunction addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output\n}\n\nfunction formatTimezone(offset, dirtyDelimeter) {\n var delimeter = dirtyDelimeter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(Math.floor(absOffset % 60), 2);\n return sign + hours + delimeter + minutes\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimeter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2)\n }\n return formatTimezone(offset, dirtyDelimeter)\n}\n\nfunction formatTimezoneShort(offset, dirtyDelimeter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours)\n }\n var delimeter = dirtyDelimeter || '';\n return sign + String(hours) + delimeter + addLeadingZeros(minutes, 2)\n}\n\n/** Regex to identify the presence of a time zone specifier in a date string */\nvar tzPattern = /(Z|[+-]\\d{2}(?::?\\d{2})?| UTC| [a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?)$/;\n\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\n\nvar patterns = {\n dateTimePattern: /^([0-9W+-]+)(T| )(.*)/,\n datePattern: /^([0-9W+-]+)(.*)/,\n plainTime: /:/,\n\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/, // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/, // 2 additional digits\n ],\n\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n\n // time zone tokens (to identify the presence of a tz)\n timeZone: tzPattern,\n};\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n * If the function cannot parse the string or the values are invalid, it returns Invalid Date.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = toDate('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = toDate('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nfunction toDate(argument, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n if (argument === null) {\n return new Date(NaN)\n }\n\n var options = dirtyOptions || {};\n\n var additionalDigits =\n options.additionalDigits == null\n ? DEFAULT_ADDITIONAL_DIGITS\n : toInteger(options.additionalDigits);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2')\n }\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === 'object' && Object.prototype.toString.call(argument) === '[object Date]')\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime())\n } else if (\n typeof argument === 'number' ||\n Object.prototype.toString.call(argument) === '[object Number]'\n ) {\n return new Date(argument)\n } else if (\n !(\n typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]'\n )\n ) {\n return new Date(NaN)\n }\n\n var dateStrings = splitDateString(argument);\n\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n var year = parseYearResult.year;\n var restDateString = parseYearResult.restDateString;\n\n var date = parseDate(restDateString, year);\n\n if (isNaN(date)) {\n return new Date(NaN)\n }\n\n if (date) {\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN)\n }\n }\n\n if (dateStrings.timeZone || options.timeZone) {\n offset = tzParseTimezone(dateStrings.timeZone || options.timeZone, new Date(timestamp + time));\n if (isNaN(offset)) {\n return new Date(NaN)\n }\n } else {\n // get offset accurate to hour in time zones that change offset\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time));\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time + offset));\n }\n\n return new Date(timestamp + time + offset)\n } else {\n return new Date(NaN)\n }\n}\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var parts = patterns.dateTimePattern.exec(dateString);\n var timeString;\n\n if (!parts) {\n parts = patterns.datePattern.exec(dateString);\n if (parts) {\n dateStrings.date = parts[1];\n timeString = parts[2];\n } else {\n dateStrings.date = null;\n timeString = dateString;\n }\n } else {\n dateStrings.date = parts[1];\n timeString = parts[3];\n }\n\n if (timeString) {\n var token = patterns.timeZone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timeZone = token[1].trim();\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var patternYYY = patterns.YYY[additionalDigits];\n var patternYYYYY = patterns.YYYYY[additionalDigits];\n\n var token;\n\n // YYYY or ±YYYYY\n token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);\n if (token) {\n var yearString = token[1];\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length),\n }\n }\n\n // YY or ±YYY\n token = patterns.YY.exec(dateString) || patternYYY.exec(dateString);\n if (token) {\n var centuryString = token[1];\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length),\n }\n }\n\n // Invalid ISO-formatted year\n return {\n year: null,\n }\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null\n }\n\n var token;\n var date;\n var month;\n var week;\n\n // YYYY\n if (dateString.length === 0) {\n date = new Date(0);\n date.setUTCFullYear(year);\n return date\n }\n\n // YYYY-MM\n token = patterns.MM.exec(dateString);\n if (token) {\n date = new Date(0);\n month = parseInt(token[1], 10) - 1;\n\n if (!validateDate(year, month)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, month);\n return date\n }\n\n // YYYY-DDD or YYYYDDD\n token = patterns.DDD.exec(dateString);\n if (token) {\n date = new Date(0);\n var dayOfYear = parseInt(token[1], 10);\n\n if (!validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, 0, dayOfYear);\n return date\n }\n\n // yyyy-MM-dd or YYYYMMDD\n token = patterns.MMDD.exec(dateString);\n if (token) {\n date = new Date(0);\n month = parseInt(token[1], 10) - 1;\n var day = parseInt(token[2], 10);\n\n if (!validateDate(year, month, day)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, month, day);\n return date\n }\n\n // YYYY-Www or YYYYWww\n token = patterns.Www.exec(dateString);\n if (token) {\n week = parseInt(token[1], 10) - 1;\n\n if (!validateWeekDate(year, week)) {\n return new Date(NaN)\n }\n\n return dayOfISOWeekYear(year, week)\n }\n\n // YYYY-Www-D or YYYYWwwD\n token = patterns.WwwD.exec(dateString);\n if (token) {\n week = parseInt(token[1], 10) - 1;\n var dayOfWeek = parseInt(token[2], 10) - 1;\n\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN)\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek)\n }\n\n // Invalid ISO-formatted date\n return null\n}\n\nfunction parseTime(timeString) {\n var token;\n var hours;\n var minutes;\n\n // hh\n token = patterns.HH.exec(timeString);\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'));\n\n if (!validateTime(hours)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR\n }\n\n // hh:mm or hhmm\n token = patterns.HHMM.exec(timeString);\n if (token) {\n hours = parseInt(token[1], 10);\n minutes = parseFloat(token[2].replace(',', '.'));\n\n if (!validateTime(hours, minutes)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE\n }\n\n // hh:mm:ss or hhmmss\n token = patterns.HHMMSS.exec(timeString);\n if (token) {\n hours = parseInt(token[1], 10);\n minutes = parseInt(token[2], 10);\n var seconds = parseFloat(token[3].replace(',', '.'));\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000\n }\n\n // Invalid ISO-formatted time\n return null\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n week = week || 0;\n day = day || 0;\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date\n}\n\n// Validation functions\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0)\n}\n\nfunction validateDate(year, month, date) {\n if (month < 0 || month > 11) {\n return false\n }\n\n if (date != null) {\n if (date < 1) {\n return false\n }\n\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n return false\n }\n if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n return false\n }\n }\n\n return true\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n if (dayOfYear < 1) {\n return false\n }\n\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && dayOfYear > 366) {\n return false\n }\n if (!isLeapYear && dayOfYear > 365) {\n return false\n }\n\n return true\n}\n\nfunction validateWeekDate(year, week, day) {\n if (week < 0 || week > 52) {\n return false\n }\n\n if (day != null && (day < 0 || day > 6)) {\n return false\n }\n\n return true\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours != null && (hours < 0 || hours >= 25)) {\n return false\n }\n\n if (minutes != null && (minutes < 0 || minutes >= 60)) {\n return false\n }\n\n if (seconds != null && (seconds < 0 || seconds >= 60)) {\n return false\n }\n\n return true\n}\n\nvar tzFormattingTokensRegExp = /([xXOz]+)|''|'(''|[^'])+('|$)/g;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 8 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 8 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Su | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | PDT, EST, CEST | 6 |\n * | | zzzz | Pacific Daylight Time | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are created using the Intl browser API. The output is determined by the\n * preferred standard of the current locale (en-US by default) which may not always give the expected result.\n * For this reason it is recommended to supply a `locale` in the format options when formatting a time zone name.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. These tokens are often confused with others. See: https://git.io/fxCyr\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole\n * library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard\n * #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table). See [this\n * post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|String|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link\n * https://date-fns.org/docs/toDate}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See\n * [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {Boolean} [options.awareOfUnicodeTokens=false] - if true, allows usage of Unicode tokens causes confusion:\n * - Some of the day of year tokens (`D`, `DD`) that are confused with the day of month tokens (`d`, `dd`).\n * - Some of the local week-numbering year tokens (`YY`, `YYYY`) that are confused with the calendar year tokens\n * (`yy`, `yyyy`). See: https://git.io/fxCyr\n * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.awareOfUnicodeTokens` must be set to `true` to use `XX` token; see:\n * https://git.io/fxCyr\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nfunction format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n\n var matches = formatStr.match(tzFormattingTokensRegExp);\n if (matches) {\n var date = toDate(dirtyDate, options);\n // Work through each match and replace the tz token in the format string with the quoted\n // formatted time zone so the remaining tokens can be filled in by date-fns#format.\n formatStr = matches.reduce(function (result, token) {\n if (token[0] === \"'\") {\n return result // This is a quoted portion, matched only to ensure we don't match inside it\n }\n var pos = result.indexOf(token);\n var precededByQuotedSection = result[pos - 1] === \"'\";\n var replaced = result.replace(\n token,\n \"'\" + formatters[token[0]](date, token, null, options) + \"'\"\n );\n // If the replacement results in two adjoining quoted strings, the back to back quotes\n // are removed, so it doesn't look like an escaped quote.\n return precededByQuotedSection\n ? replaced.substring(0, pos - 1) + replaced.substring(pos + 1)\n : replaced\n }, formatStr);\n }\n\n return dateFnsFormat(dirtyDate, formatStr, options)\n}\n\n/**\n * @name utcToZonedTime\n * @category Time Zone Helpers\n * @summary Get a date/time representing local time in a given time zone from the UTC date\n *\n * @description\n * Returns a date instance with values representing the local time in the time zone\n * specified of the UTC time from the date provided. In other words, when the new date\n * is formatted it will show the equivalent hours in the target time zone regardless\n * of the current system time zone.\n *\n * @param {Date|String|Number} date - the date with the relevant UTC time\n * @param {String} timeZone - the time zone to get local time for, can be an offset or IANA time zone\n * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Date} the new date with the equivalent time in the time zone\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // In June 10am UTC is 6am in New York (-04:00)\n * const result = utcToZonedTime('2014-06-25T10:00:00.000Z', 'America/New_York')\n * //=> Jun 25 2014 06:00:00\n */\nfunction utcToZonedTime(dirtyDate, timeZone, options) {\n var date = toDate(dirtyDate, options);\n\n var offsetMilliseconds = tzParseTimezone(timeZone, date, true);\n\n var d = new Date(date.getTime() - offsetMilliseconds);\n\n var resultDate = new Date(0);\n\n resultDate.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());\n\n resultDate.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());\n\n return resultDate\n}\n\nexport { createCommonjsModule as c, format as f, getDefaultExportFromCjs as g, utcToZonedTime as u };\n","function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nfunction toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nfunction getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nfunction startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nfunction differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}\n\nexport { differenceInCalendarDays as d, getTimezoneOffsetInMilliseconds as g, requiredArgs as r, toDate as t };\n","import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { f as format, u as utcToZonedTime } from './index2.js';\nimport { r as requiredArgs, t as toDate, d as differenceInCalendarDays } from './index3.js';\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\n\nfunction startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\n\nfunction getDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = differenceInCalendarDays(date, startOfYear(date));\n var dayOfYear = diff + 1;\n return dayOfYear;\n}\n\nconst militaryTimezones = {\n A: '+01:00',\n B: '+02:00',\n C: '+03:00',\n D: '+04:00',\n E: '+05:00',\n F: '+06:00',\n G: '+07:00',\n H: '+08:00',\n I: '+09:00',\n K: '+10:00',\n L: '+11:00',\n M: '+12:00',\n N: '-01:00',\n O: '-02:00',\n P: '-03:00',\n Q: '-04:00',\n R: '-05:00',\n S: '-06:00',\n T: '-07:00',\n U: '-08:00',\n V: '-09:00',\n W: '-10:00',\n X: '-11:00',\n Y: '-12:00',\n Z: '+00:00',\n};\n\nconst ruxClockCss = \":host{display:flex;margin:var(--spacing-0, 0rem);color:var(--color-palette-neutral-000, #ffffff);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host([hidden]){display:none}:host(:not([hide-labels])){height:calc(var(--spacing-8, 2rem) * 2)}.rux-clock{display:flex;user-select:none;color:var(--clock-text-color)}.rux-clock__segment{display:flex;flex-direction:column;align-items:center}.rux-clock__segment__value{display:flex;align-items:center;color:var(--gsb-color-text, #ffffff);font-family:var(--font-monospace-1-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);font-variant-numeric:tabular-nums;font-weight:var(--font-monospace-1-font-weight, 500);font-size:var(--font-monospace-1-font-size, 1.75rem);letter-spacing:var(--font-monospace-1-letter-spacing, 0em);box-shadow:var(--gsb-color-background, #172635) 0 0 0 1px inset;background-color:var(--clock-datetime-color-background, #101923);white-space:nowrap;overflow-y:hidden;text-overflow:ellipsis;height:var(--spacing-10, 2.5rem);padding:var(--spacing-0, 0rem) var(--spacing-3, 0.75rem)}:host([small]) .rux-clock__segment__value{height:var(--spacing-10, 2.5rem);padding:var(--spacing-1, 0.25rem) var(--spacing-3, 0.75rem);font-size:1.15rem;font-weight:var(--font-weight-medium)}.rux-clock__segment__label{font-family:var(--font-body-2-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);font-size:var(--font-body-2-font-size, 0.875rem);font-weight:var(--font-body-2-font-weight, 400);letter-spacing:var(--font-body-2-letter-spacing, 0.005em);color:var(--color-palette-neutral-000, #ffffff);background:var(--gsb-color-background, #172635);padding:var(--spacing-0, 0rem) var(--spacing-3, 0.75rem) var(--spacing-0, 0rem) var(--spacing-3, 0.75rem);line-height:var(--font-body-3-line-height, calc(16 / 12));width:-moz-available;width:-webkit-fill-available;width:fill-available;height:var(--spacing-6, 1.5rem);display:flex;align-items:flex-end;justify-content:center;text-align:center}.rux-clock__aos{margin-left:var(--spacing-4, 1rem)}\";\n\nconst RuxClock$1 = /*@__PURE__*/ proxyCustomElement(class RuxClock extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this._timezone = 'UTC';\n this.tzFormat = 'z';\n this.hasRun = false;\n this._time = undefined;\n this._rawTime = undefined;\n this.aos = undefined;\n this.static = false;\n this.los = undefined;\n this.timezone = 'UTC';\n this.hideTimezone = false;\n this.hideDate = false;\n this.hideLabels = false;\n this.dateIn = undefined;\n this.small = false;\n }\n updateAos(newValue) {\n this.convertedAos = this._formatLosAosDateIn(newValue);\n }\n updateLos(newValue) {\n this.convertedLos = this._formatLosAosDateIn(newValue);\n }\n handleDateInChange() {\n clearTimeout(this._timer);\n this._rawTime = new Date(this.dateIn);\n this._handleDateIn();\n this._updateTime();\n }\n timezoneChanged() {\n this._convertTimezone(this.timezone);\n if (this.aos)\n this.convertedAos = this._formatLosAosDateIn(this.aos);\n if (this.los)\n this.convertedLos = this._formatLosAosDateIn(this.los);\n this._updateTime();\n }\n get time() {\n return this._time;\n }\n connectedCallback() {\n this._convertTimezone(this.timezone);\n if (this.dateIn) {\n this._handleDateIn();\n }\n else {\n if (!this.static) {\n this._timer = window.setInterval(() => {\n this._updateTime();\n }, 1000);\n }\n }\n if (this.aos)\n this.convertedAos = this._formatLosAosDateIn(this.aos);\n if (this.los)\n this.convertedLos = this._formatLosAosDateIn(this.los);\n }\n disconnectedCallback() {\n clearTimeout(this._timer);\n }\n componentWillLoad() {\n this._timezone = this.timezone;\n this._convertTimezone(this.timezone);\n this._updateTime();\n }\n _formatTime(time, timezone) {\n return format(utcToZonedTime(time, timezone), `HH:mm:ss ${this.hideTimezone ? '' : this.tzFormat}`, { timeZone: timezone });\n }\n _handleDateIn() {\n this._formatLosAosDateIn(this.dateIn);\n this._time = this.dateIn;\n if (!this._rawTime)\n this._rawTime = new Date(this.dateIn);\n if (this._validateDateIn(this._rawTime)) {\n if (!this.static) {\n this._timer = window.setInterval(() => {\n this._updateTime();\n }, 1000);\n }\n }\n else {\n console.warn(`The date-in value of ${this.dateIn} is not a valid date.`);\n }\n }\n /**\n * @param date a Date type to be validated\n * @returns A boolean representative of if the date provided is valid\n */\n _validateDateIn(date) {\n //If it's not valid then date.getTime() will be NaN, which isn't equal to itself\n return date.getTime() === date.getTime();\n }\n _updateTime() {\n if (this.dateIn) {\n if (!this.hasRun) {\n this._time = this._formatTime(this._rawTime, this._timezone);\n const clockDate = utcToZonedTime(this._rawTime, this._timezone);\n this.dayOfYear = getDayOfYear(clockDate);\n this.hasRun = true;\n }\n else {\n let seconds = this._rawTime.getSeconds() + 1;\n this._rawTime.setSeconds(seconds);\n this._time = this._formatTime(this._rawTime, this._timezone);\n const clockDate = utcToZonedTime(this._rawTime, this._timezone);\n this.dayOfYear = getDayOfYear(clockDate);\n }\n }\n else {\n this._time = this._formatTime(new Date(Date.now()), this._timezone);\n /**\n * Date.now() is a unix timestamp of the current time in UTC\n * We need to convert that to the Clock's defined timezone\n * before we get the day of the year.\n */\n const localDate = new Date(Date.now());\n const clockDate = utcToZonedTime(localDate, this._timezone);\n this.dayOfYear = getDayOfYear(clockDate);\n }\n }\n /**\n * @param dateTime A date string in unix or ISO formats\n * @returns A timezone local ISO formatted 24h time string\n */\n _formatLosAosDateIn(dateTime) {\n // Check for unix timestamp\n if (new Date(Number(dateTime)).getTime() > 0) {\n dateTime = Number(dateTime);\n // If date-in is provided and matches the conversion made if it's a unix stamp, then\n // we need to handle it as a unix stamp.\n if (this.dateIn && parseInt(this.dateIn) === dateTime) {\n let d = new Date(dateTime);\n this._rawTime = d;\n }\n }\n return format(utcToZonedTime(dateTime, this._timezone), 'HH:mm:ss');\n }\n _convertTimezone(timezone) {\n const _militaryTimezones = militaryTimezones;\n this._timezone = _militaryTimezones[timezone.toUpperCase()];\n this.tzFormat = 'O';\n if (!this._timezone) {\n this._timezone = timezone;\n this.tzFormat = 'zzz';\n }\n else if (timezone.toUpperCase() == 'Z') {\n this.tzFormat = 'X';\n }\n }\n render() {\n return (h(Host, null, h(\"div\", { class: \"rux-clock\", part: \"container\" }, !this.hideDate && (h(\"div\", { class: \"rux-clock__segment\" }, h(\"div\", { class: \"rux-clock__segment__value\", \"aria-labelledby\": \"rux-clock__day-of-year-label\", part: \"date\" }, this.dayOfYear.toString().padStart(3, '0')), !this.hideLabels && (h(\"div\", { class: \"rux-clock__segment__label\", id: \"rux-clock__day-of-year-label\", part: \"date-label\" }, \"Date\")))), h(\"div\", { class: \"rux-clock__segment\" }, h(\"div\", { class: \"rux-clock__segment__value\", \"aria-labelledby\": \"rux-clock__time-label\", part: \"time\" }, this.time), !this.hideLabels && (h(\"div\", { class: \"rux-clock__segment__label\", id: \"rux-clock__time-label\", part: \"time-label\" }, \"Time\"))), this.aos && (h(\"div\", { class: \"rux-clock__segment rux-clock__aos\" }, h(\"div\", { class: \"rux-clock__segment__value\", \"aria-labelledby\": \"rux-clock__time-label--aos\", id: \"rux-clock__time--aos\", part: \"aos\" }, this.convertedAos), !this.hideLabels && (h(\"div\", { class: \"rux-clock__segment__label\", id: \"rux-clock__time-label--aos\", part: \"aos-label\" }, \"AOS\")))), this.los && (h(\"div\", { class: \"rux-clock__segment rux-clock__los\" }, h(\"div\", { class: \"rux-clock__segment__value\", \"aria-labelledby\": \"rux-clock__time-label--los\", id: \"rux-clock__time--los\", part: \"los\" }, this.convertedLos), !this.hideLabels && (h(\"div\", { class: \"rux-clock__segment__label\", id: \"rux-clock__time-label--los\", part: \"los-label\" }, \"LOS\")))))));\n }\n static get watchers() { return {\n \"aos\": [\"updateAos\"],\n \"los\": [\"updateLos\"],\n \"dateIn\": [\"handleDateInChange\"],\n \"timezone\": [\"timezoneChanged\"]\n }; }\n static get style() { return ruxClockCss; }\n}, [1, \"rux-clock\", {\n \"aos\": [1],\n \"static\": [4],\n \"los\": [1],\n \"timezone\": [1],\n \"hideTimezone\": [4, \"hide-timezone\"],\n \"hideDate\": [4, \"hide-date\"],\n \"hideLabels\": [4, \"hide-labels\"],\n \"dateIn\": [1, \"date-in\"],\n \"small\": [516],\n \"_time\": [32],\n \"_rawTime\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-clock\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-clock\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxClock$1);\n }\n break;\n } });\n}\n\nconst RuxClock = RuxClock$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxClock, defineCustomElement };\n","import { R as RuxIcon$1, d as defineCustomElement$1 } from './rux-icon2.js';\n\nconst RuxIcon = RuxIcon$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIcon, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\n\nconst ruxIconCss = \":host{display:inline-flex;color:var(--color-background-interactive-default, #4dacff)}:host([hidden]){display:none}svg,svg>svg{height:100%;width:auto}.icon{display:inline-flex}\";\n\nconst RuxIcon = /*@__PURE__*/ proxyCustomElement(class RuxIcon extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n // eslint-disable-next-line\n this.svg = '';\n this.size = 'normal';\n this.icon = undefined;\n }\n render() {\n const SVG = `rux-icon-${this.icon}`;\n return (h(Host, null, h(SVG, { class: \"icon\", part: \"icon\", size: this.size })));\n }\n static get style() { return ruxIconCss; }\n}, [1, \"rux-icon\", {\n \"size\": [513],\n \"icon\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIcon);\n }\n break;\n } });\n}\n\nexport { RuxIcon as R, defineCustomElement as d };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 8H8V4H4V8ZM10 20H14V16H10V20ZM8 20H4V16H8V20ZM4 14H8V10H4V14ZM14 14H10V10H14V14ZM16 4V8H20V4H16ZM14 8H10V4H14V8ZM16 14H20V10H16V14ZM20 20H16V16H20V20Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconApps$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconApps extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-apps\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-apps\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-apps\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconApps$1);\n }\n break;\n } });\n}\n\nconst RuxIconApps = RuxIconApps$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconApps, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 11V16L19.29 17.29C19.92 17.92 19.47 19 18.58 19H5.40999C4.51999 19 4.07999 17.92 4.70999 17.29L5.99999 16V11C5.99999 7.92 7.62999 5.36 10.5 4.68V4C10.5 3.17 11.17 2.5 12 2.5C12.83 2.5 13.5 3.17 13.5 4V4.68C16.36 5.36 18 7.93 18 11ZM14 20C14 21.1 13.1 22 12 22C10.89 22 9.99999 21.1 9.99999 20H14Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconNotifications$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconNotifications extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-notifications\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-notifications\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-notifications\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconNotifications$1);\n }\n break;\n } });\n}\n\nconst RuxIconNotifications = RuxIconNotifications$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconNotifications, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.53 21.0001C21.07 21.0001 22.03 19.3301 21.26 18.0001L13.73 4.99005C12.96 3.66005 11.04 3.66005 10.27 4.99005L2.74 18.0001C1.97 19.3301 2.93 21.0001 4.47 21.0001H19.53ZM12 14.0001C11.45 14.0001 11 13.5501 11 13.0001V11.0001C11 10.4501 11.45 10.0001 12 10.0001C12.55 10.0001 13 10.4501 13 11.0001V13.0001C13 13.5501 12.55 14.0001 12 14.0001ZM11 16.0001V18.0001H13V16.0001H11Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconWarning$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconWarning extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-warning\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-warning\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-warning\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconWarning$1);\n }\n break;\n } });\n}\n\nconst RuxIconWarning = RuxIconWarning$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconWarning, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16 8C16 10.21 14.21 12 12 12C9.79 12 8 10.21 8 8C8 5.79 9.79 4 12 4C14.21 4 16 5.79 16 8ZM4 18C4 15.34 9.33 14 12 14C14.67 14 20 15.34 20 18V19C20 19.55 19.55 20 19 20H5C4.45 20 4 19.55 4 19V18Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconPerson$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconPerson extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-person\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-person\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-person\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconPerson$1);\n }\n break;\n } });\n}\n\nconst RuxIconPerson = RuxIconPerson$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconPerson, defineCustomElement };\n","import { h } from '@stencil/core/internal/client';\n\nconst collapseNotifications = (value) => {\n const n = Math.floor(value);\n // don't show any values less than 0\n if (n <= 0)\n return null;\n // get the place value\n const thousand = Math.floor((n / 1000) % 1000); // only return a whole number\n const million = (n / 1000000) % 1000000; // return a decimal value for numbers like 1.2m\n const billion = (n / 1000000000) % 1000000000; // return a decimal value for numbers like 1.2b\n const trillion = (n / 1000000000000) % 1000000000000; // trillion is just to offer an overflow instance\n // set the display to its original state\n let _shorthand = n.toString();\n //If the value is more than a trillion, show infinite. Prevents an issue where certain, very large amounts are being shown incorrectly.\n if (value > 1000000000000) {\n _shorthand = '∞';\n }\n else {\n if (trillion >= 1) {\n _shorthand = '∞';\n }\n else if (billion >= 1) {\n _shorthand = `${billion.toFixed(1).toString()}B`;\n }\n else if (million >= 1) {\n _shorthand = `${million.toFixed(1).toString()}M`;\n }\n else if (thousand >= 1) {\n _shorthand = `${thousand}K`;\n }\n }\n return _shorthand;\n};\nconst MonitoringBadge = ({ notifications, }) => (h(\"div\", { class: `rux-advanced-status__badge ${notifications > 0 ? '' : 'rux-advanced-status__hidden'}`, part: \"monitoring-badge\" }, notifications && collapseNotifications(notifications)));\n\nconst MonitoringLabel = ({ label, sublabel, }) => (h(\"div\", { class: \"rux-advanced-status__label\", part: \"monitoring-label\" },\n h(\"span\", null, label),\n h(\"span\", { class: `rux-advanced-status__sublabel ${!sublabel ? 'rux-advanced-status__hidden' : ''}`, part: \"monitoring-sublabel\" }, sublabel)));\n\nexport { MonitoringBadge as M, MonitoringLabel as a };\n","import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\n\nconst caution = '<svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"2\" y=\"2\" width=\"8\" height=\"8\" fill=\"var(--caution-fill, #fce83a)\" stroke=\"var(--caution-border, #fce83a)\"/></svg>';\n\nconst critical = '<svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6.00012 10.9558L0.842393 1.5L11.1579 1.5L6.00012 10.9558Z\" fill=\"var(--critical-fill, #ff3838)\" stroke=\"var(--critical-border, #ff3838)\"/></svg>';\n\nconst normal = '<svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"6\" cy=\"6\" r=\"4\" fill=\"var(--normal-fill, #56f000)\" stroke=\"var(--normal-border, #56f000)\"/></svg>';\n\nconst off = '<svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"6\" cy=\"6\" r=\"3\" fill=\"var(--off-fill, #a4abb6)\" stroke=\"var(--off-border, #a4abb6)\"/></svg>';\n\nconst serious = '<svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"1.05029\" y=\"6\" width=\"7.3\" height=\"7.3\" transform=\"rotate(-45 1.05029 6)\" fill=\"var(--serious-fill, #ffb302)\" stroke=\"var(--serious-border, #ffb302)\"/></svg>';\n\nconst standby = '<svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.99988 10C8.20902 10 9.99988 8.20914 9.99988 6C9.99988 3.79086 8.20902 2 5.99988 2C3.79074 2 1.99988 3.79086 1.99988 6C1.99988 8.20914 3.79074 10 5.99988 10ZM5.99996 7.99999C7.10453 7.99999 7.99996 7.10456 7.99996 5.99999C7.99996 4.89542 7.10453 3.99999 5.99996 3.99999C4.89539 3.99999 3.99996 4.89542 3.99996 5.99999C3.99996 7.10456 4.89539 7.99999 5.99996 7.99999Z\" fill=\"var(--standby-fill, #2dccff)\"/><path d=\"M10 6C10 8.20914 8.20914 10 6 10V11C8.76142 11 11 8.76142 11 6H10ZM6 2C8.20914 2 10 3.79086 10 6H11C11 3.23858 8.76142 1 6 1V2ZM2 6C2 3.79086 3.79086 2 6 2V1C3.23858 1 1 3.23858 1 6H2ZM6 10C3.79086 10 2 8.20914 2 6H1C1 8.76142 3.23858 11 6 11V10ZM7 6C7 6.55228 6.55228 7 6 7V8C7.10457 8 8 7.10457 8 6H7ZM6 5C6.55228 5 7 5.44772 7 6H8C8 4.89543 7.10457 4 6 4V5ZM5 6C5 5.44772 5.44772 5 6 5V4C4.89543 4 4 4.89543 4 6H5ZM6 7C5.44772 7 5 6.55228 5 6H4C4 7.10457 4.89543 8 6 8V7Z\" fill=\"var(--standby-border, #2dccff)\" fill-opacity=\"var(--standby-fill-opacity, 0)\"/></svg>';\n\nconst StatusSVG = {\n caution,\n critical,\n normal,\n off,\n serious,\n standby,\n};\n\nconst ruxStatusCss = \":host{display:block}:host([hidden]){display:none}*,*::before,*::after{box-sizing:border-box}.status-wrapper{width:var(--spacing-3, 0.75rem);font-family:var(--font-body-1-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);font-size:var(--font-body-1-font-size, 1rem);font-weight:var(--font-body-1-font-weight, 400);letter-spacing:var(--font-body-1-letter-spacing, 0.005em);line-height:var(--line-height-base, 1.5rem)}\";\n\nconst RuxStatus = /*@__PURE__*/ proxyCustomElement(class RuxStatus extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.status = 'normal';\n }\n validateStatus(newValue) {\n const statusTypes = {\n off: true,\n standby: true,\n normal: true,\n caution: true,\n serious: true,\n critical: true,\n };\n if (!statusTypes[newValue]) {\n throw new Error(`rux-status: status of ${this.status} is not valid. Please use a valid status.`);\n }\n }\n connectedCallback() {\n if (this.status)\n this.validateStatus(this.status);\n }\n render() {\n return (h(Host, { status: this.status }, h(\"div\", { part: \"status\", class: \"status-wrapper\", innerHTML: this.status && StatusSVG[this.status] })));\n }\n get el() { return this; }\n static get watchers() { return {\n \"status\": [\"validateStatus\"]\n }; }\n static get style() { return ruxStatusCss; }\n}, [1, \"rux-status\", {\n \"status\": [513]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-status\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-status\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxStatus);\n }\n break;\n } });\n}\n\nexport { RuxStatus as R, defineCustomElement as d };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\nimport { M as MonitoringBadge, a as MonitoringLabel } from './MonitoringLabel.js';\nimport { d as defineCustomElement$3 } from './rux-icon2.js';\nimport { d as defineCustomElement$2 } from './rux-status2.js';\n\nconst ruxMonitoringIconCss = \":host{display:inline-flex;padding:0}:host([hidden]){display:none}*,*::before,*::after{box-sizing:border-box}.rux-advanced-status{display:flex;flex-direction:column;justify-content:flex-start;position:relative;margin:var(--spacing-0, 0rem);line-height:0;font-family:var(--font-body-1-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);font-size:var(--font-body-1-font-size, 1rem);font-weight:var(--font-body-1-font-weight, 400);letter-spacing:var(--font-body-1-letter-spacing, 0.005em);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.rux-advanced-status__icon-group{display:flex;position:relative;margin:var(--spacing-0, 0rem) auto;width:calc(var(--spacing-16, 4rem) + var(--spacing-2, 0.5rem))}rux-icon{order:2;margin:0 auto}.rux-advanced-status__status{position:absolute;margin:0}.rux-advanced-status__badge{display:block;z-index:2;order:3;position:absolute;left:calc(var(--spacing-14, 3.5rem) - var(--spacing-050, 0.125rem));top:calc(var(--spacing-025, 0.0625rem) * -5);box-shadow:inset 0 0 0 1px var(--color-text-secondary, #d4d8dd);border-radius:var(--radius-base, 3px);padding:var(--spacing-2, 0.5rem) var(--spacing-1, 0.25rem);color:var(--color-palette-neutral-000, #ffffff);font-family:var(--font-body-3-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);font-size:var(--font-body-3-font-size, 0.75rem);font-weight:var(--font-body-3-font-weight, 400);letter-spacing:var(--font-body-3-letter-spacing, 0.005em);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#000}.rux-advanced-status__label{color:var(--color-text-primary, #ffffff);font-family:var(--font-body-2-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);font-size:var(--font-body-2-font-size, 0.875rem);font-weight:var(--font-body-2-font-weight, 400);letter-spacing:var(--font-body-2-letter-spacing, 0.005em);text-align:center;text-overflow:ellipsis;white-space:nowrap;line-height:var(--line-height-sm, 1.25rem);overflow:hidden;width:100%;max-width:calc(var(--spacing-24, 6rem) + var(--spacing-2, 0.5rem))}.rux-advanced-status__sublabel{font-family:var(--font-body-3-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);font-size:var(--font-body-3-font-size, 0.75rem);font-weight:var(--font-body-3-font-weight, 400);letter-spacing:var(--font-body-3-letter-spacing, 0.005em);color:var(--gsb-color-text, #ffffff);display:block}.rux-advanced-status__status rux-status::part(status){line-height:0}.rux-advanced-status__hidden{display:none}:host([status=off]) rux-icon{color:var(--status-symbol-color-fill-off-on-dark, #a4abb6)}:host([status=standby]) rux-icon{color:var(--status-symbol-color-fill-standby-on-dark, #2dccff)}:host([status=normal]) rux-icon{color:var(--status-symbol-color-fill-normal-on-dark, #56f000)}:host([status=caution]) rux-icon{color:var(--status-symbol-color-fill-caution-on-dark, #fce83a)}:host([status=serious]) rux-icon{color:var(--status-symbol-color-fill-serious-on-dark, #ffb302)}:host([status=critical]) rux-icon{color:var(--status-symbol-color-fill-critical-on-dark, #ff3838)}\";\n\nconst RuxMonitoringIcon$1 = /*@__PURE__*/ proxyCustomElement(class RuxMonitoringIcon extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.status = 'normal';\n this.label = undefined;\n this.sublabel = undefined;\n this.icon = 'antenna-transmit';\n this.size = '2.5rem';\n this.notifications = 0;\n }\n componentDidRender() {\n this.handleNotificatonWidth();\n }\n validateStatus(newValue) {\n const statusTypes = {\n off: true,\n standby: true,\n normal: true,\n caution: true,\n serious: true,\n critical: true,\n };\n if (!statusTypes[newValue]) {\n throw new Error('valid status required');\n }\n }\n handleNotificatonWidth() {\n const badge = this.el.shadowRoot.querySelector('.rux-advanced-status__badge');\n if (badge) {\n /** Size and position of the icon. */\n const iconRect = this.el.getBoundingClientRect();\n /** Size and position of the badge. */\n const badgeRect = badge.getBoundingClientRect();\n /** Offset between the right-edge of the badge and the right-edge of the icon. */\n const offset = badgeRect.right - iconRect.right;\n // if the offset is greater than zero, increase the minimum width of the badge\n if (offset > 0) {\n this.el.style.minWidth = iconRect.width + offset + 'px';\n }\n }\n }\n render() {\n return (h(\"div\", { id: \"rux-advanced-status__icon\", class: \"rux-advanced-status\", part: \"container\" }, h(\"div\", { class: \"rux-advanced-status__icon-group\" }, h(\"div\", { class: \"rux-advanced-status__status\" }, h(\"rux-status\", { status: this.status, part: \"status-icon\" })), h(\"rux-icon\", { icon: this.icon, class: `rux-status--${this.status}`, size: this.size, exportparts: \"icon\" }), h(MonitoringBadge, { notifications: this.notifications })), h(MonitoringLabel, { label: this.label, sublabel: this.sublabel })));\n }\n get el() { return this; }\n static get watchers() { return {\n \"status\": [\"validateStatus\"]\n }; }\n static get style() { return ruxMonitoringIconCss; }\n}, [1, \"rux-monitoring-icon\", {\n \"status\": [513],\n \"label\": [1],\n \"sublabel\": [1],\n \"icon\": [1],\n \"size\": [1],\n \"notifications\": [2]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-monitoring-icon\", \"rux-icon\", \"rux-status\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-monitoring-icon\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxMonitoringIcon$1);\n }\n break;\n case \"rux-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"rux-status\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst RuxMonitoringIcon = RuxMonitoringIcon$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxMonitoringIcon, defineCustomElement };\n","import { R as RuxStatus$1, d as defineCustomElement$1 } from './rux-status2.js';\n\nconst RuxStatus = RuxStatus$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxStatus, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\n\nconst ruxProgressCss = \":host{position:relative;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-0, 0rem);height:calc(var(--spacing-4, 1rem) + var(--spacing-1, 0.25rem))}:host([hidden]){display:none}.rux-progress[value]{appearance:none;background-color:var(--color-background-surface-default, #1b2d3e);border:1px solid var(--color-background-surface-default, #1b2d3e);border-radius:var(--progress-radius-outer, 10px);box-shadow:0 0 0 1px var(--color-background-interactive-default, #4dacff);height:calc(var(--spacing-4, 1rem) + var(--spacing-050, 0.125rem));width:100%;box-sizing:border-box;overflow:hidden}.rux-progress[value]::-webkit-progress-bar{background-color:transparent}.rux-progress[value]::-webkit-progress-value{border-radius:0 var(--spacing-4, 1rem) var(--spacing-4, 1rem) 0;height:var(--spacing-4, 1rem);max-width:100%;background:var(--color-background-interactive-default, #4dacff);transition:width 0.3s ease;-moz-transition:width 0.3s ease;-webkit-transition:width 0.3s ease;-o-transition:width 0.3s ease}.rux-progress[value]::-ms-fill{border-radius:0 var(--spacing-4, 1rem) var(--spacing-4, 1rem) 0;border:none;height:var(--spacing-4, 1rem);max-width:100%;background-color:var(--color-background-interactive-default, #4dacff)}.rux-progress[value]::-moz-progress-bar{border-radius:0 var(--spacing-4, 1rem) var(--spacing-4, 1rem) 0;height:var(--spacing-4, 1rem);max-width:100%;background:var(--color-background-interactive-default, #4dacff)}.rux-progress__value{font-family:var(--font-body-1-font-family, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif);font-weight:var(--font-body-1-font-weight, 400);font-size:var(--font-body-1-font-size, 1rem);letter-spacing:var(--font-body-1-letter-spacing, 0.005em);line-height:var(--font-body-1-line-height, calc(24 / 16));margin-left:var(--spacing-2, 0.5rem);text-align:right;color:var(--color-text-primary, #ffffff)}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}\";\n\nconst RuxProgress$1 = /*@__PURE__*/ proxyCustomElement(class RuxProgress extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.value = 0;\n this.max = 100;\n this.hideLabel = false;\n }\n connectedCallback() {\n if (this.value) {\n this._checkValueNotOverMax(this.max, this.value);\n }\n }\n watchHandler() {\n if (this.value) {\n this._checkValueNotOverMax(this.max, this.value);\n }\n }\n _getProgressAsString() {\n // If max = '', just return the value.\n if (!this.max) {\n return this.value;\n }\n if (this.value === undefined || isNaN(this.value)) {\n return '0%';\n }\n else {\n return this.max === 100\n ? `${this.value}%`\n : `${this.value}/${this.max}`;\n }\n }\n _checkValueNotOverMax(max, value) {\n if (max && max < value) {\n value = max;\n this.value = max;\n }\n }\n render() {\n return (h(Host, null, h(\"progress\", { class: \"rux-progress\", value: this.value, max: this.max, part: \"progress\" }), h(\"output\", { class: \"rux-progress__value\", hidden: this.hideLabel, part: \"output\" }, this._getProgressAsString()), h(\"slot\", null)));\n }\n static get watchers() { return {\n \"value\": [\"watchHandler\"]\n }; }\n static get style() { return ruxProgressCss; }\n}, [1, \"rux-progress\", {\n \"value\": [1026],\n \"max\": [2],\n \"hideLabel\": [4, \"hide-label\"]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-progress\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-progress\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxProgress$1);\n }\n break;\n } });\n}\n\nconst RuxProgress = RuxProgress$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxProgress, defineCustomElement };\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!./astro-web-components.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[1]!./astro-web-components.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4ZM14 18C14 17.4477 13.5523 17 13 17H11C10.4477 17 10 17.4477 10 18C10 18.5523 10.4477 19 11 19H13C13.5523 19 14 18.5523 14 18ZM14 14C14.5523 14 15 14.4477 15 15C15 15.5523 14.5523 16 14 16H10C9.44772 16 9 15.5523 9 15C9 14.4477 9.44772 14 10 14H14ZM16 12L19 14V10L16 12ZM5 10L8 12L5 14V10ZM14 12C14 11.4477 13.5523 11 13 11H11C10.4477 11 10 11.4477 10 12C10 12.5523 10.4477 13 11 13H13C13.5523 13 14 12.5523 14 12ZM14 8C14.5523 8 15 8.44772 15 9C15 9.55228 14.5523 10 14 10H10C9.44772 10 9 9.55228 9 9C9 8.44772 9.44772 8 10 8H14ZM14 6C14 5.44772 13.5523 5 13 5H11C10.4477 5 10 5.44772 10 6C10 6.55228 10.4477 7 11 7H13C13.5523 7 14 6.55228 14 6Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconAltitude$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconAltitude extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-altitude\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-altitude\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-altitude\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconAltitude$1);\n }\n break;\n } });\n}\n\nconst RuxIconAltitude = RuxIconAltitude$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconAltitude, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 25 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.5 8C13.6506 8 14.5833 8.89543 14.5833 10C14.5833 10.7398 14.1649 11.3858 13.5428 11.7318L13.5416 22H11.4583L11.4582 11.7324C10.8356 11.3866 10.4166 10.7403 10.4166 10C10.4166 8.89543 11.3494 8 12.5 8ZM6.63099 2.32732C6.98124 2.70075 7.0016 3.27819 6.64763 3.65177C3.61283 6.82949 3.34936 11.6553 6.02151 15.1201C6.33286 15.5271 6.26451 16.1001 5.86774 16.4431C5.40872 16.8398 4.68582 16.775 4.3192 16.294C1.13831 12.1519 1.38131 6.45292 4.85709 2.56983L5.07393 2.33438L5.1678 2.24643C5.59314 1.89421 6.24722 1.91815 6.63099 2.32732ZM19.9142 2.24643L20.0081 2.33438C23.6894 6.21966 24.0087 12.0674 20.7628 16.294C20.3962 16.775 19.6733 16.8398 19.2143 16.4431C18.8175 16.1001 18.7492 15.5271 19.0605 15.1201C21.7327 11.6553 21.4692 6.82949 18.4344 3.65177C18.0804 3.27819 18.1008 2.70075 18.4511 2.32732C18.8348 1.91815 19.4889 1.89421 19.9142 2.24643ZM9.8013 5.34518C10.1466 5.71337 10.1537 6.26509 9.82646 6.65682C8.45162 8.33503 8.32337 10.6773 9.50741 12.4838C9.79011 12.9062 9.72281 13.4541 9.33916 13.7858C8.86156 14.1986 8.10517 14.1177 7.75278 13.6059C6.10277 11.1439 6.21558 7.93692 8.0237 5.58971L8.20397 5.3653L8.28854 5.2755C8.70418 4.88648 9.40006 4.91737 9.8013 5.34518ZM16.7935 5.2755L16.8781 5.3653C18.8573 7.72924 19.0325 11.0644 17.3292 13.6059C16.9769 14.1177 16.2205 14.1986 15.7429 13.7858C15.3592 13.4541 15.2919 12.9062 15.5746 12.4838C16.7586 10.6773 16.6304 8.33503 15.2556 6.65682C14.9283 6.26509 14.9354 5.71337 15.2807 5.34518C15.682 4.91737 16.3778 4.88648 16.7935 5.2755Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconAntenna$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconAntenna extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-antenna\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-antenna\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-antenna\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconAntenna$1);\n }\n break;\n } });\n}\n\nconst RuxIconAntenna = RuxIconAntenna$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconAntenna, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.53115 17.8387L6.58945 18.8268L8.92522 18.602L9.83101 20.4262C9.89964 20.5644 9.93535 20.7167 9.93535 20.871C9.93535 21.3838 9.54931 21.8065 9.05197 21.8642L8.93535 21.871H4.20497C3.9626 21.871 3.72849 21.7829 3.54616 21.6233C3.16263 21.2874 3.09746 20.7232 3.37588 20.3117L3.45266 20.2122L5.53115 17.8387ZM7.09757 10.0443C7.33377 10.0636 7.55543 10.1662 7.72301 10.3338L10.042 12.653L12 12L11.347 13.958L13.2146 15.8254C13.6051 16.2159 13.6051 16.8491 13.2146 17.2396C13.047 17.4072 12.8253 17.5098 12.5891 17.5291L7.30432 17.9622C7.01163 17.9862 6.7232 17.8803 6.51554 17.6726L5.87575 17.0328C5.66809 16.8252 5.56221 16.5367 5.58619 16.2441L6.01924 10.9592C6.06434 10.4088 6.54713 9.99915 7.09757 10.0443Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconAntennaOff$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconAntennaOff extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-antenna-off\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-antenna-off\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-antenna-off\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconAntennaOff$1);\n }\n break;\n } });\n}\n\nconst RuxIconAntennaOff = RuxIconAntennaOff$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconAntennaOff, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.53115 17.8387L6.58945 18.8268L8.92522 18.602L9.83101 20.4262C9.89964 20.5644 9.93535 20.7167 9.93535 20.871C9.93535 21.3838 9.54931 21.8065 9.05197 21.8642L8.93535 21.871H4.20497C3.9626 21.871 3.72849 21.7829 3.54616 21.6233C3.16263 21.2874 3.09746 20.7233 3.37588 20.3117L3.45266 20.2122L5.53115 17.8387ZM7.09757 10.0443C7.33377 10.0636 7.55543 10.1662 7.72301 10.3338L10.042 12.653L12 12L11.347 13.958L13.2146 15.8254C13.6051 16.2159 13.6051 16.8491 13.2146 17.2396C13.047 17.4072 12.8253 17.5098 12.5891 17.5291L7.30432 17.9622C7.01163 17.9862 6.7232 17.8803 6.51554 17.6726L5.87575 17.0328C5.66809 16.8252 5.56221 16.5368 5.58619 16.2441L6.01924 10.9593C6.06434 10.4088 6.54713 9.99916 7.09757 10.0443ZM14 9C14.5523 9 15 9.44772 15 10C15 10.5523 14.5523 11 14 11C13.4477 11 13 10.5523 13 10C13 9.44772 13.4477 9 14 9ZM16 7C16.5523 7 17 7.44772 17 8C17 8.55228 16.5523 9 16 9C15.4477 9 15 8.55228 15 8C15 7.44772 15.4477 7 16 7ZM18.5 4C19.3284 4 20 4.67157 20 5.5C20 6.32843 19.3284 7 18.5 7C17.6716 7 17 6.32843 17 5.5C17 4.67157 17.6716 4 18.5 4Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconAntennaReceive$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconAntennaReceive extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-antenna-receive\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-antenna-receive\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-antenna-receive\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconAntennaReceive$1);\n }\n break;\n } });\n}\n\nconst RuxIconAntennaReceive = RuxIconAntennaReceive$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconAntennaReceive, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.53115 17.8387L6.58945 18.8268L8.92522 18.6021L9.83101 20.4262C9.89964 20.5644 9.93535 20.7167 9.93535 20.871C9.93535 21.3838 9.54931 21.8065 9.05197 21.8642L8.93535 21.871H4.20497C3.9626 21.871 3.72849 21.783 3.54616 21.6233C3.16263 21.2874 3.09746 20.7233 3.37588 20.3117L3.45266 20.2122L5.53115 17.8387ZM7.09757 10.0443C7.33377 10.0636 7.55543 10.1662 7.72301 10.3338L10.042 12.6529L12 12L11.347 13.9579L13.2146 15.8254C13.6051 16.2159 13.6051 16.8491 13.2146 17.2396C13.047 17.4072 12.8253 17.5098 12.5891 17.5291L7.30432 17.9622C7.01163 17.9862 6.7232 17.8803 6.51554 17.6726L5.87575 17.0328C5.66809 16.8252 5.56221 16.5368 5.58619 16.2441L6.01924 10.9593C6.06434 10.4088 6.54713 9.99916 7.09757 10.0443ZM12.0401 6.00108L12.153 6.01316C15.1469 6.4985 17.5035 8.86452 17.989 11.8473C18.08 12.454 17.5945 13 16.9776 13C16.5201 13 16.1315 12.6898 16.0108 12.2524L15.9864 12.1406C15.6222 10.0374 13.9635 8.37918 11.8597 8.01518C11.3641 7.93429 11 7.51973 11 7.02428C11 6.4846 11.4182 6.03781 11.9292 6.00228L12.0401 6.00108ZM11.998 2.00009L12.1156 2.0053C17.3416 2.5279 21.4822 6.6685 21.9948 11.8945C22.0551 12.4875 21.5827 13 20.9898 13C20.4772 13 20.0451 12.6181 19.9948 12.1156C19.5828 7.82425 16.1657 4.40725 11.8744 3.9952C11.3719 3.94495 11 3.50275 11 3.00025C11 2.48636 11.3925 2.0706 11.8832 2.00812L11.998 2.00009Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconAntennaTransmit$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconAntennaTransmit extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-antenna-transmit\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-antenna-transmit\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-antenna-transmit\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconAntennaTransmit$1);\n }\n break;\n } });\n}\n\nconst RuxIconAntennaTransmit = RuxIconAntennaTransmit$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconAntennaTransmit, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22 5C22 3.89543 21.1046 3 20 3H4C2.89543 3 2 3.89543 2 5V9C2 10.1046 2.89543 11 4 11H20C21.1046 11 22 10.1046 22 9V5ZM22 15C22 13.8954 21.1046 13 20 13H4C2.89543 13 2 13.8954 2 15V19C2 20.1046 2.89543 21 4 21H20C21.1046 21 22 20.1046 22 19V15ZM4 15H20V19H4V15ZM7 16V18H5V16H7ZM10 18V16H8V18H10ZM13 16V18H11V16H13ZM20 5H4V9H20V5ZM7 8V6H5V8H7ZM10 6V8H8V6H10ZM13 8V6H11V8H13Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconEquipment$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconEquipment extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-equipment\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-equipment\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-equipment\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconEquipment$1);\n }\n break;\n } });\n}\n\nconst RuxIconEquipment = RuxIconEquipment$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconEquipment, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4ZM18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18C15.3137 18 18 15.3137 18 12ZM12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8ZM14 12C14 10.8954 13.1046 10 12 10C10.8954 10 10 10.8954 10 12C10 13.1046 10.8954 14 12 14C13.1046 14 14 13.1046 14 12Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconMission$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconMission extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-mission\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-mission\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-mission\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconMission$1);\n }\n break;\n } });\n}\n\nconst RuxIconMission = RuxIconMission$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconMission, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16 2C17.6569 2 19 3.34315 19 5C19 6.65685 17.6569 8 16 8C15.8259 8 15.6553 7.98518 15.4894 7.95672L14.8034 9.14676C15.3137 9.64825 15.6902 10.2856 15.874 11.0002L18.2676 10.9999C18.6134 10.4022 19.2597 10 20 10C21.1046 10 22 10.8954 22 12C22 13.1046 21.1046 14 20 14C19.2602 14 18.6142 13.5983 18.2682 13.0011L15.8738 13.0008C15.6717 13.7853 15.2375 14.4767 14.6488 14.9974L15.2128 16.1044C15.4637 16.0363 15.7276 16 16 16C17.6569 16 19 17.3431 19 19C19 20.6569 17.6569 22 16 22C14.3431 22 13 20.6569 13 19C13 18.3508 13.2062 17.7498 13.5567 17.2589L12.8669 15.9058C12.5878 15.9675 12.2977 16 12 16C11.2582 16 10.5635 15.7981 9.96801 15.4462L7.75736 17.6569L7.59355 17.4912C7.85196 17.9345 8 18.4499 8 19C8 20.6569 6.65685 22 5 22C3.34315 22 2 20.6569 2 19C2 17.3431 3.34315 16 5 16C5.55006 16 6.06555 16.148 6.50879 16.4065L6.34315 16.2426L8.55383 14.032C8.20193 13.4365 8 12.7418 8 12C8 9.79086 9.79086 8 12 8C12.3705 8 12.7293 8.05038 13.0698 8.14467L13.7446 6.97823C13.281 6.45014 13 5.75789 13 5C13 3.34315 14.3431 2 16 2ZM12 10C10.8954 10 10 10.8954 10 12C10 13.1046 10.8954 14 12 14C13.1046 14 14 13.1046 14 12C14 10.8954 13.1046 10 12 10Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconNetcom$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconNetcom extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-netcom\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-netcom\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-netcom\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconNetcom$1);\n }\n break;\n } });\n}\n\nconst RuxIconNetcom = RuxIconNetcom$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconNetcom, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.6802 2.24483L12.8418 2.31637L20.8418 6.31637C21.4305 6.6107 21.819 7.18871 21.8753 7.83667L21.8824 8V16C21.8824 16.6581 21.5391 17.2641 20.9848 17.6043L20.8418 17.6836L12.8418 21.6836C12.3649 21.9221 11.812 21.9459 11.3198 21.7552L11.1582 21.6836L3.15821 17.6836C2.56956 17.3893 2.18104 16.8113 2.12475 16.1633L2.11768 16V8C2.11768 7.34186 2.46091 6.73586 3.0153 6.39574L3.15821 6.31637L3.4276 6.17973C3.50773 6.12386 3.59511 6.0805 3.6866 6.05036L11.1582 2.31637C11.5822 2.1044 12.0662 2.062 12.5141 2.18919L12.6802 2.24483ZM3.99968 8.17865L4.00003 16L10.9997 19.4996V12.5536L3.99968 8.17865ZM12.9997 12.6176L19.9997 9.11765L20 16L12.9997 19.4996V12.6176ZM18.5 15C18.7762 15 19 15.2239 19 15.5C19 15.7761 18.7762 16 18.5 16C18.2239 16 18 15.7761 18 15.5C18 15.2239 18.2239 15 18.5 15ZM6.00003 15.5C6.00003 15.2239 5.77617 15 5.50003 15C5.22389 15 5.00003 15.2239 5.00003 15.5C5.00003 15.7761 5.22389 16 5.50003 16C5.77617 16 6.00003 15.7761 6.00003 15.5ZM16.5 14C16.7762 14 17 14.2239 17 14.5C17 14.7761 16.7762 15 16.5 15C16.2239 15 16 14.7761 16 14.5C16 14.2239 16.2239 14 16.5 14ZM8.00003 14.5C8.00003 14.2239 7.77617 14 7.50003 14C7.22389 14 7.00003 14.2239 7.00003 14.5C7.00003 14.7761 7.22389 15 7.50003 15C7.77617 15 8.00003 14.7761 8.00003 14.5ZM9.50003 13C9.77617 13 10 13.2239 10 13.5C10 13.7761 9.77617 14 9.50003 14C9.22389 14 9.00003 13.7761 9.00003 13.5C9.00003 13.2239 9.22389 13 9.50003 13ZM15 13.5C15 13.2239 14.7762 13 14.5 13C14.2239 13 14 13.2239 14 13.5C14 13.7761 14.2239 14 14.5 14C14.7762 14 15 13.7761 15 13.5ZM12 4L5.93668 7.03065L12.053 10.854L18.8807 7.44065L12 4ZM12.5 9.5C12.5 9.22386 12.2762 9 12 9C11.7239 9 11.5 9.22386 11.5 9.5C11.5 9.77614 11.7239 10 12 10C12.2762 10 12.5 9.77614 12.5 9.5ZM12 7C12.2762 7 12.5 7.22386 12.5 7.5C12.5 7.77614 12.2762 8 12 8C11.7239 8 11.5 7.77614 11.5 7.5C11.5 7.22386 11.7239 7 12 7ZM12.5 5.5C12.5 5.22386 12.2762 5 12 5C11.7239 5 11.5 5.22386 11.5 5.5C11.5 5.77614 11.7239 6 12 6C12.2762 6 12.5 5.77614 12.5 5.5Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconPayload$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconPayload extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-payload\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-payload\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-payload\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconPayload$1);\n }\n break;\n } });\n}\n\nconst RuxIconPayload = RuxIconPayload$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconPayload, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 20V22H7V20H9ZM13 20V22H11V20H13ZM17 20V22H15V20H17ZM17 5C18.1046 5 19 5.89543 19 7V17C19 18.1046 18.1046 19 17 19H7C5.89543 19 5 18.1046 5 17V7C5 5.89543 5.89543 5 7 5H17ZM17 16C16.4477 16 16 16.4477 16 17C16 17.5523 16.4477 18 17 18C17.5523 18 18 17.5523 18 17C18 16.4477 17.5523 16 17 16ZM4 15V17H2V15H4ZM22 15V17H20V15H22ZM4 11V13H2V11H4ZM22 11V13H20V11H22ZM4 7V9H2V7H4ZM22 7V9H20V7H22ZM7 6C6.44772 6 6 6.44772 6 7C6 7.55228 6.44772 8 7 8C7.55228 8 8 7.55228 8 7C8 6.44772 7.55228 6 7 6ZM9 2V4H7V2H9ZM13 2V4H11V2H13ZM17 2V4H15V2H17Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconProcessor$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconProcessor extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-processor\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-processor\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-processor\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconProcessor$1);\n }\n break;\n } });\n}\n\nconst RuxIconProcessor = RuxIconProcessor$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconProcessor, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.6842 2V10.8816L11.4655 10.9474L11.4049 10.9518C11.1861 10.9804 11.01 11.1431 10.961 11.3542L10.9508 11.413L10.9474 11.4737V22H9.36789L9.36842 18.3158L9.36488 18.2544C9.33915 18.0329 9.17592 17.8534 8.96278 17.8034L8.90348 17.793L8.84211 17.7895H5.68421L5.62283 17.793L5.59712 17.7973C5.38261 17.18 4.79568 16.7368 4.10526 16.7368C3.23323 16.7368 2.52632 17.4438 2.52632 18.3158C2.52632 19.1878 3.23323 19.8947 4.10526 19.8947C4.80717 19.8947 5.4021 19.4367 5.60675 18.8028L5.68421 18.8421H8.31579L8.31526 22H3.57895C2.70692 22 2 21.2931 2 20.4211V15.1579H4.63158L4.69296 15.1544C4.93458 15.1263 5.12629 14.9346 5.15435 14.693L5.15789 14.6316L5.15837 9.27841C5.77138 9.06152 6.21053 8.47678 6.21053 7.78947C6.21053 6.91745 5.50361 6.21053 4.63158 6.21053C3.75955 6.21053 3.05263 6.91745 3.05263 7.78947C3.05263 8.4426 3.44919 9.00311 4.01465 9.24335L4.10531 9.27859L4.10526 14.1053H2V5.15789H9.89474L9.95612 5.15435C10.1977 5.12629 10.3894 4.93458 10.4175 4.69296L10.4211 4.63158V2H12V7.26316H8.84211L8.78073 7.2667C8.5391 7.29476 8.34739 7.48647 8.31933 7.72809L8.31579 7.78947L8.31584 13.6688C7.70255 13.8855 7.26316 14.4704 7.26316 15.1579C7.26316 16.0299 7.97008 16.7368 8.84211 16.7368C9.71413 16.7368 10.4211 16.0299 10.4211 15.1579C10.4211 14.505 10.0247 13.9446 9.45951 13.7042L9.3689 13.669L9.36842 8.31579H12.5263L12.5877 8.31225C12.8293 8.28418 13.021 8.09248 13.0491 7.85085L13.0526 7.78947V2H15.6842ZM18.8421 2V10.9474L18.8456 11.0087C18.8737 11.2504 19.0654 11.4421 19.307 11.4701L19.3684 11.4737H22V13.5789H15.1579L15.0965 13.5825C14.8549 13.6106 14.6632 13.8023 14.6351 14.0439L14.6316 14.1053L14.6316 17.353C14.0183 17.5697 13.5789 18.1546 13.5789 18.8421C13.5789 19.7141 14.2859 20.4211 15.1579 20.4211C16.0299 20.4211 16.7368 19.7141 16.7368 18.8421C16.7368 18.1892 16.3405 17.6288 15.7753 17.3884L15.6847 17.3532L15.6842 14.6316H22V16.7368H17.7895L17.7281 16.7404C17.4865 16.7684 17.2948 16.9602 17.2667 17.2018L17.2632 17.2632V22H12V11.9916L16.2187 11.9267L16.2793 11.9222C16.4981 11.8937 16.6742 11.731 16.7232 11.5198L16.7334 11.4611L16.7368 11.4004V2H18.8421ZM22 17.7895V20.4211C22 21.2931 21.2931 22 20.4211 22H18.3158V17.7895H22ZM15.1579 18.3158C15.4486 18.3158 15.6842 18.5514 15.6842 18.8421C15.6842 19.1328 15.4486 19.3684 15.1579 19.3684C14.8672 19.3684 14.6316 19.1328 14.6316 18.8421C14.6316 18.5514 14.8672 18.3158 15.1579 18.3158ZM4.10526 17.7895C4.39594 17.7895 4.63158 18.0251 4.63158 18.3158C4.63158 18.6065 4.39594 18.8421 4.10526 18.8421C3.81459 18.8421 3.57895 18.6065 3.57895 18.3158C3.57895 18.0251 3.81459 17.7895 4.10526 17.7895ZM8.84211 14.6316C9.13278 14.6316 9.36842 14.8672 9.36842 15.1579C9.36842 15.4486 9.13278 15.6842 8.84211 15.6842C8.55143 15.6842 8.31579 15.4486 8.31579 15.1579C8.31579 14.8672 8.55143 14.6316 8.84211 14.6316ZM22 3.57895V10.4211H19.8947V2H20.4211C21.2931 2 22 2.70692 22 3.57895ZM4.63158 7.26316C4.92226 7.26316 5.15789 7.4988 5.15789 7.78947C5.15789 8.08015 4.92226 8.31579 4.63158 8.31579C4.3409 8.31579 4.10526 8.08015 4.10526 7.78947C4.10526 7.4988 4.3409 7.26316 4.63158 7.26316ZM9.36842 2V4.10526H2V3.57895C2 2.70692 2.70692 2 3.57895 2H9.36842Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconProcessorAlt$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconProcessorAlt extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-processor-alt\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-processor-alt\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-processor-alt\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconProcessorAlt$1);\n }\n break;\n } });\n}\n\nconst RuxIconProcessorAlt = RuxIconProcessorAlt$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconProcessorAlt, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16 2C17.1046 2 18 2.89543 18 4V20C18 21.1046 17.1046 22 16 22H9C7.89543 22 7 21.1046 7 20V4C7 2.89543 7.89543 2 9 2H16ZM13.8115 5.69961C13.8115 5.00797 12.9835 4.75858 12.631 5.27555L12.5794 5.36359L9.0799 12.364C8.8597 12.8083 9.11904 13.3258 9.55954 13.3928L9.6566 13.4001H11.1901V18.3004C11.1901 18.992 12.0181 19.2414 12.3706 18.7245L12.4222 18.6364L15.9217 11.636C16.1419 11.1917 15.8711 10.6742 15.4398 10.6072L15.345 10.5999H13.8115V5.69961Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconPropulsionPower$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconPropulsionPower extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-propulsion-power\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-propulsion-power\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-propulsion-power\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconPropulsionPower$1);\n }\n break;\n } });\n}\n\nconst RuxIconPropulsionPower = RuxIconPropulsionPower$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconPropulsionPower, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.87867 11.7071C8.09762 10.9261 8.09762 9.65973 8.87867 8.87868C9.65972 8.09763 10.926 8.09763 11.7071 8.87868L13.1213 10.2929C13.9024 11.0739 13.9024 12.3403 13.1213 13.1213C12.3403 13.9024 11.0739 13.9024 10.2929 13.1213L8.87867 11.7071ZM4.05653 16.7845C3.61958 16.3475 3.67956 15.6228 4.1824 15.2636L8.17156 12.4142L9.58578 13.8284L6.73637 17.8176C6.3772 18.3204 5.65248 18.3804 5.21553 17.9435L4.05653 16.7845ZM15.2636 4.1824C15.6228 3.67956 16.3475 3.61958 16.7844 4.05653L17.9435 5.21554C18.3804 5.65249 18.3204 6.37721 17.8176 6.73638L13.8284 9.58578L12.4142 8.17157L15.2636 4.1824Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconSatelliteOff$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconSatelliteOff extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-satellite-off\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-satellite-off\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-satellite-off\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconSatelliteOff$1);\n }\n break;\n } });\n}\n\nconst RuxIconSatelliteOff = RuxIconSatelliteOff$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconSatelliteOff, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.5 18C20.3285 18 21 18.6716 21 19.5C21 20.3284 20.3285 21 19.5 21C18.6716 21 18 20.3284 18 19.5C18 18.6716 18.6716 18 19.5 18ZM8.1716 12.4142L9.58581 13.8284L6.73641 17.8176C6.4154 18.267 5.79085 18.3711 5.34144 18.0501C5.29662 18.0181 5.25452 17.9824 5.21557 17.9435L4.05657 16.7845C3.66604 16.3939 3.66604 15.7608 4.05657 15.3702C4.09551 15.3313 4.13761 15.2956 4.18243 15.2636L8.1716 12.4142ZM17 16C17.5523 16 18 16.4477 18 17C18 17.5523 17.5523 18 17 18C16.4477 18 16 17.5523 16 17C16 16.4477 16.4477 16 17 16ZM15 14C15.5523 14 16 14.4477 16 15C16 15.5523 15.5523 16 15 16C14.4477 16 14 15.5523 14 15C14 14.4477 14.4477 14 15 14ZM11.7071 8.87868L13.1213 10.2929C13.9024 11.0739 13.9024 12.3403 13.1213 13.1213C12.3403 13.9024 11.074 13.9024 10.2929 13.1213L8.87871 11.7071C8.09766 10.9261 8.09766 9.65973 8.87871 8.87868C9.65976 8.09763 10.9261 8.09763 11.7071 8.87868ZM16.6903 3.97335L16.7845 4.05653L17.9435 5.21554C17.9824 5.25449 18.0181 5.29659 18.0501 5.34141C18.3464 5.75625 18.2805 6.32032 17.9152 6.65713L17.8176 6.73638L13.8285 9.58578L12.4142 8.17157L15.2636 4.1824C15.2957 4.13758 15.3313 4.09548 15.3703 4.05653C15.7007 3.72609 16.2049 3.67525 16.5888 3.90402L16.6903 3.97335Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconSatelliteReceive$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconSatelliteReceive extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-satellite-receive\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-satellite-receive\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-satellite-receive\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconSatelliteReceive$1);\n }\n break;\n } });\n}\n\nconst RuxIconSatelliteReceive = RuxIconSatelliteReceive$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconSatelliteReceive, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.87871 8.87868C9.65976 8.09763 10.9261 8.09763 11.7071 8.87868L13.1213 10.2929C13.9024 11.0739 13.9024 12.3403 13.1213 13.1213C12.3403 13.9024 11.074 13.9024 10.2929 13.1213L8.87871 11.7071C8.09766 10.9261 8.09766 9.65973 8.87871 8.87868ZM4.05657 15.3702C4.09551 15.3313 4.13761 15.2956 4.18243 15.2636L8.1716 12.4142L9.58581 13.8284L6.73641 17.8176C6.4154 18.267 5.79085 18.3711 5.34144 18.0501C5.29662 18.0181 5.25452 17.9824 5.21557 17.9435L4.05657 16.7845C3.66604 16.3939 3.66604 15.7608 4.05657 15.3702ZM20.9898 11C21.5828 11 22.0551 11.5125 21.9948 12.1055C21.4823 17.3315 17.3416 21.4721 12.1156 21.9947C11.5226 22.055 11 21.5927 11 20.9998C11 20.4973 11.3719 20.0551 11.8744 20.0048C16.1658 19.5928 19.5828 16.1757 19.9949 11.8844C20.0451 11.3819 20.4773 11 20.9898 11ZM16.9776 11C17.5946 11 18.08 11.546 17.989 12.1527C17.5035 15.1355 15.1469 17.5015 12.1531 17.9868C11.5462 18.088 11 17.5925 11 16.9757C11 16.4803 11.3641 16.0657 11.8597 15.9848C13.8884 15.6338 15.5032 14.0794 15.9425 12.083L15.9864 11.8595C16.0673 11.364 16.482 11 16.9776 11ZM16.6903 3.97335L16.7845 4.05653L17.9435 5.21554C17.9824 5.25449 18.0181 5.29659 18.0501 5.34141C18.3464 5.75625 18.2805 6.32032 17.9152 6.65713L17.8176 6.73638L13.8285 9.58578L12.4142 8.17157L15.2636 4.1824C15.2957 4.13758 15.3313 4.09548 15.3703 4.05653C15.7308 3.69605 16.298 3.66832 16.6903 3.97335Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconSatelliteTransmit$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconSatelliteTransmit extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-satellite-transmit\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-satellite-transmit\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-satellite-transmit\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconSatelliteTransmit$1);\n }\n break;\n } });\n}\n\nconst RuxIconSatelliteTransmit = RuxIconSatelliteTransmit$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconSatelliteTransmit, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.5385 4C20.3456 4 21 4.67008 21 5.49666V17.5033C21 18.3299 20.3456 19 19.5385 19H3.46154C2.65436 19 2 18.3299 2 17.5033V5.49666C2 4.67008 2.65436 4 3.46154 4H19.5385ZM7 6H4V11H7V6ZM11 6H8V11H11V6ZM15 6H12V11H15V6ZM19 6H16V11H19V6ZM7 12H4V17H7V12ZM11 12H8V17H11V12ZM15 12H12V17H15V12ZM19 12H16V17H19V12Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconSolar$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconSolar extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-solar\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-solar\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-solar\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconSolar$1);\n }\n break;\n } });\n}\n\nconst RuxIconSolar = RuxIconSolar$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconSolar, defineCustomElement };\n","import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst svgIcon = '<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.5 2C12.433 2 14 3.567 14 5.5L14.0005 12.2576C15.2217 13.2664 16 14.7923 16 16.5C16 19.5376 13.5376 22 10.5 22C7.46243 22 5 19.5376 5 16.5C5 14.7919 5.77868 13.2656 7.00044 12.2568L7 5.5C7 3.567 8.567 2 10.5 2ZM10.5 4C9.7203 4 9.07955 4.59489 9.00687 5.35543L9 5.49987L9.0005 13.199L8.27384 13.799C7.47135 14.4616 7 15.4402 7 16.5C7 18.433 8.567 20 10.5 20C12.433 20 14 18.433 14 16.5C14 15.5111 13.5896 14.593 12.8828 13.9362L12.7268 13.7995L12.0006 13.1997L12 5.5C12 4.7203 11.4051 4.07955 10.6445 4.00687L10.5 4ZM11 5.5C11 5.22386 10.7761 5 10.5 5C10.2239 5 10 5.22386 10 5.5L10.0006 14.0499C8.85917 14.2813 8 15.2903 8 16.5C8 17.8807 9.11929 19 10.5 19C11.8807 19 13 17.8807 13 16.5C13 15.2907 12.1413 14.2819 11.0004 14.0501L11 5.5ZM20 11C20.5523 11 21 11.4477 21 12C21 12.5523 20.5523 13 20 13H17C16.4477 13 16 12.5523 16 12C16 11.4477 16.4477 11 17 11H20ZM19 9C19 8.44772 18.5523 8 18 8H17C16.4477 8 16 8.44772 16 9C16 9.55228 16.4477 10 17 10H18C18.5523 10 19 9.55228 19 9ZM20 5C20.5523 5 21 5.44772 21 6C21 6.55228 20.5523 7 20 7H17C16.4477 7 16 6.55228 16 6C16 5.44772 16.4477 5 17 5H20ZM19 3C19 2.44772 18.5523 2 18 2H17C16.4477 2 16 2.44772 16 3C16 3.55228 16.4477 4 17 4H18C18.5523 4 19 3.55228 19 3Z\" fill=\"currentColor\"/></svg>';\n\nconst RuxIconThermal$1 = /*@__PURE__*/ proxyCustomElement(class RuxIconThermal extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.size = 'auto';\n }\n get iconSize() {\n const sizes = {\n 'extra-small': '1rem',\n small: '2rem',\n normal: '3rem',\n large: '4rem',\n };\n if (sizes[this.size]) {\n return sizes[this.size];\n }\n else {\n return this.size;\n }\n }\n render() {\n const style = {\n height: this.iconSize,\n width: this.iconSize,\n };\n return h(\"div\", { style: style, innerHTML: svgIcon });\n }\n}, [0, \"rux-icon-thermal\", {\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"rux-icon-thermal\"];\n components.forEach(tagName => { switch (tagName) {\n case \"rux-icon-thermal\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RuxIconThermal$1);\n }\n break;\n } });\n}\n\nconst RuxIconThermal = RuxIconThermal$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { RuxIconThermal, defineCustomElement };\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n*/\n\nimport Vue from 'vue'\nimport Vuetify from 'vuetify'\n// Import and define the individual astro components we use\nimport { AstroIconVuetifyValues } from '../../../packages/openc3-tool-common/src/components/icons/index.js'\nimport { RuxClock } from '@astrouxds/astro-web-components/dist/components/rux-clock'\ncustomElements.define('rux-clock', RuxClock)\nimport { RuxIcon } from '@astrouxds/astro-web-components/dist/components/rux-icon'\ncustomElements.define('rux-icon', RuxIcon)\nimport { RuxIconApps } from '@astrouxds/astro-web-components/dist/components/rux-icon-apps'\ncustomElements.define('rux-icon-apps', RuxIconApps)\nimport { RuxIconNotifications } from '@astrouxds/astro-web-components/dist/components/rux-icon-notifications'\ncustomElements.define('rux-icon-notifications', RuxIconNotifications)\nimport { RuxIconWarning } from '@astrouxds/astro-web-components/dist/components/rux-icon-warning'\ncustomElements.define('rux-icon-warning', RuxIconWarning)\nimport { RuxIconPerson } from '@astrouxds/astro-web-components/dist/components/rux-icon-person'\ncustomElements.define('rux-icon-person', RuxIconPerson)\nimport { RuxMonitoringIcon } from '@astrouxds/astro-web-components/dist/components/rux-monitoring-icon'\ncustomElements.define('rux-monitoring-icon', RuxMonitoringIcon)\nimport { RuxStatus } from '@astrouxds/astro-web-components/dist/components/rux-status'\ncustomElements.define('rux-status', RuxStatus)\nimport { RuxProgress } from '@astrouxds/astro-web-components/dist/components/rux-progress'\ncustomElements.define('rux-progress', RuxProgress)\nimport '@astrouxds/astro-web-components/dist/astro-web-components/astro-web-components.css'\n// Define all the 'astro' icons take from\n// https://github.com/RocketCommunicationsInc/astro-components/blob/master/static/json/rux-icons.json\n// It would be nice if this could be a list and be dynamic but that caueses issue with webpack\nimport { RuxIconAltitude } from '@astrouxds/astro-web-components/dist/components/rux-icon-altitude'\ncustomElements.define('rux-icon-altitude', RuxIconAltitude)\nimport { RuxIconAntenna } from '@astrouxds/astro-web-components/dist/components/rux-icon-antenna'\ncustomElements.define('rux-icon-antenna', RuxIconAntenna)\nimport { RuxIconAntennaOff } from '@astrouxds/astro-web-components/dist/components/rux-icon-antenna-off'\ncustomElements.define('rux-icon-antenna-off', RuxIconAntennaOff)\nimport { RuxIconAntennaReceive } from '@astrouxds/astro-web-components/dist/components/rux-icon-antenna-receive'\ncustomElements.define('rux-icon-antenna-receive', RuxIconAntennaReceive)\nimport { RuxIconAntennaTransmit } from '@astrouxds/astro-web-components/dist/components/rux-icon-antenna-transmit'\ncustomElements.define('rux-icon-antenna-transmit', RuxIconAntennaTransmit)\nimport { RuxIconEquipment } from '@astrouxds/astro-web-components/dist/components/rux-icon-equipment'\ncustomElements.define('rux-icon-equipment', RuxIconEquipment)\nimport { RuxIconMission } from '@astrouxds/astro-web-components/dist/components/rux-icon-mission'\ncustomElements.define('rux-icon-mission', RuxIconMission)\nimport { RuxIconNetcom } from '@astrouxds/astro-web-components/dist/components/rux-icon-netcom'\ncustomElements.define('rux-icon-netcom', RuxIconNetcom)\nimport { RuxIconPayload } from '@astrouxds/astro-web-components/dist/components/rux-icon-payload'\ncustomElements.define('rux-icon-payload', RuxIconPayload)\nimport { RuxIconProcessor } from '@astrouxds/astro-web-components/dist/components/rux-icon-processor'\ncustomElements.define('rux-icon-processor', RuxIconProcessor)\nimport { RuxIconProcessorAlt } from '@astrouxds/astro-web-components/dist/components/rux-icon-processor-alt'\ncustomElements.define('rux-icon-processor-alt', RuxIconProcessorAlt)\nimport { RuxIconPropulsionPower } from '@astrouxds/astro-web-components/dist/components/rux-icon-propulsion-power'\ncustomElements.define('rux-icon-propulsion-power', RuxIconPropulsionPower)\nimport { RuxIconSatelliteOff } from '@astrouxds/astro-web-components/dist/components/rux-icon-satellite-off'\ncustomElements.define('rux-icon-satellite-off', RuxIconSatelliteOff)\nimport { RuxIconSatelliteReceive } from '@astrouxds/astro-web-components/dist/components/rux-icon-satellite-receive'\ncustomElements.define('rux-icon-satellite-receive', RuxIconSatelliteReceive)\nimport { RuxIconSatelliteTransmit } from '@astrouxds/astro-web-components/dist/components/rux-icon-satellite-transmit'\ncustomElements.define('rux-icon-satellite-transmit', RuxIconSatelliteTransmit)\nimport { RuxIconSolar } from '@astrouxds/astro-web-components/dist/components/rux-icon-solar'\ncustomElements.define('rux-icon-solar', RuxIconSolar)\nimport { RuxIconThermal } from '@astrouxds/astro-web-components/dist/components/rux-icon-thermal'\ncustomElements.define('rux-icon-thermal', RuxIconThermal)\n\nVue.use(Vuetify)\n\nexport default new Vuetify({\n theme: {\n dark: true,\n options: {\n customProperties: true,\n },\n themes: {\n dark: {\n primary: '#005A8F',\n secondary: '#4DACFF',\n tertiary: '#BBC1C9',\n },\n light: {\n primary: '#cce6ff',\n secondary: '#cce6ff',\n },\n },\n },\n icons: {\n values: {\n ...AstroIconVuetifyValues,\n },\n },\n})\n","import Vue from 'vue'\nimport App from './App.vue'\nimport router from './router'\n\nVue.config.productionTip = false\n\nimport store from '../../packages/openc3-tool-common/src/plugins/store'\nimport '../../packages/openc3-tool-common/src/assets/stylesheets/layout/layout.scss'\nimport vuetify from './plugins/vuetify'\n\nimport AstroStatusIndicator from '../../packages/openc3-tool-common/src/components/icons/AstroStatusIndicator'\nVue.component('astro-status-indicator', AstroStatusIndicator)\n\nconst options = OpenC3Auth.getInitOptions()\nOpenC3Auth.init(options).then(() => {\n // Set the scope variable that will be used for the life of this page load\n // It is always default in standard edition\n window.openc3Scope = 'DEFAULT'\n\n new Vue({\n router,\n store,\n vuetify,\n render: (h) => h(App),\n }).$mount('#openc3-main')\n})\n"],"names":["inProgress","dataWebpackPrefix","webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","id","module","exports","request","async","method","url","data","params","headers","noAuth","noScope","onUploadProgress","arguments","length","undefined","OpenC3Auth","updateToken","defaultMinValidity","setTokens","error","login","localStorage","openc3Token","window","openc3Scope","axios","acceptOnlyDefaultHeaders","Accept","fullDefaultHeaders","get","path","put","post","delete","vueInstance","Vue","axiosInstance","create","baseURL","location","origin","timeout","interceptors","response","use","_error$response","_error$response2","_error$response3","_error$response4","_error$response5","status","refreshed","config","includes","toString","reject","body","statusText","message","exception","class","_error$response6","$notify","serious","title","___CSS_LOADER_EXPORT___","push","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","cssWithMappingToString","list","this","map","item","content","needLayer","concat","join","i","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","options","String","__esModule","default","test","slice","hash","needQuotes","replace","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","sourceMapping","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","insert","style","target","styleTarget","document","querySelector","HTMLIFrameElement","contentDocument","head","getTarget","appendChild","element","createElement","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","resolveDirectory","rootDirLevel","meta","console","urlString","rootDirectoryLevel","a","href","pathname","numDirsProcessed","finalPath","protocol","host","Number","isInteger","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","locals","listToStyles","parentId","styles","newStyles","part","parts","hasDocument","DEBUG","stylesInDom","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","ssrIdKey","isOldIE","navigator","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","mayRemove","domStyle","refs","j","addStyle","createStyleElement","type","styleIndex","applyToSingletonTag","bind","applyToTag","textStore","replaceText","replacement","filter","Boolean","cssNode","childNodes","insertBefore","ssrId","sources","__WEBPACK_EXTERNAL_MODULE__496__","__WEBPACK_EXTERNAL_MODULE__649__","__WEBPACK_EXTERNAL_MODULE__105__","__WEBPACK_EXTERNAL_MODULE__903__","__WEBPACK_EXTERNAL_MODULE__459__","fn","thisArg","Object","prototype","getPrototypeOf","kindOf","cache","thing","str","kindOfTest","typeOfTest","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","forEach","allOwnKeys","l","getOwnPropertyNames","len","key","findKey","_key","_global","globalThis","self","global","isContextDefined","isTypedArray","TypedArray","Uint8Array","isHTMLForm","hasOwnProperty","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","toUpperCase","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","token","Math","random","callbacks","addEventListener","source","shift","cb","setTimeout","asap","queueMicrotask","process","nextTick","isBuffer","constructor","isFormData","kind","FormData","append","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","assignValue","targetKey","extend","b","trim","stripBOM","charCodeAt","inherits","superConstructor","props","defineProperty","value","assign","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","position","lastIndex","indexOf","toArray","arr","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","enumerable","writable","set","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","toFiniteNumber","defaultValue","isFinite","generateString","size","alphabet","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isThenable","catch","AxiosError","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","from","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","predicates","formData","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","some","isFlatArray","el","exposedHelpers","build","pop","encode","charMap","match","AxiosURLSearchParams","_pairs","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","handlers","fulfilled","rejected","synchronous","runWhen","eject","clear","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","defaults","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","platform","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","parser","tokens","tokensRE","parseTokens","has","matcher","deleted","deleteHeader","normalize","format","normalized","w","char","formatHeader","targets","asStrings","first","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","configurable","buildAccessors","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","floor","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","tail","chunkLength","now","Date","startedAt","bytesCount","passed","round","lastArgs","timer","timestamp","threshold","invoke","args","clearTimeout","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","event","progressEventDecorator","throttled","asyncDecorator","msie","urlParsingNode","originURL","resolveURL","search","hostname","port","charAt","requestURL","write","expires","domain","secure","cookie","toGMTString","read","RegExp","decodeURIComponent","buildFullPath","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","username","password","isURLSameOrigin","xsrfValue","cookies","XMLHttpRequest","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","err","responseText","open","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","subscribe","aborted","parseProtocol","send","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","end","pos","trackStream","stream","onProgress","onFinish","iterable","asyncIterator","reader","getReader","readStream","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","res","_","ERR_NOT_SUPPORT","knownAdapters","http","xhr","fetchOptions","composedSignal","toAbortSignal","requestContentLength","getContentLength","_request","getBodyLength","resolveBodyLength","contentTypeHeader","flush","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","configOrUrl","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","c","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","createInstance","defaultConfig","instance","VERSION","toFormData","Cancel","all","promises","spread","callback","isAxiosError","payload","formToJSON","getAdapter","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","y","__system_context__","n","getter","d","definition","o","f","chunkId","reduce","u","script","needAttach","scripts","getAttribute","charset","nc","src","onScriptComplete","prev","onload","doneFns","r","p","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","autoPublicPath","_vm","_h","$createElement","_c","_self","classificationStyles","staticClass","_v","mainStyle","attrs","fluid","staticStyle","overflow","app","_withStripped","chromeless","_e","height","icon","alt","footerClass","on","click","upgrade","_s","edition","license","sourceUrl","model","showUpgradeToEnterpriseDialog","$$v","expression","_g","_b","cursor","contextmenu","openMenu","_f","displayLocal","localDate","utcDate","formatString","menuX","menuY","absolute","showMenu","toggleDisplayLocal","toggleDisplay24h","display24h","dateMode","setMonthFirst","setDayFirst","setNumber","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","width","defaultWidth","formats","formatLong","date","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","formattingValues","defaultFormattingWidth","values","argumentCallback","localize","ordinalNumber","dirtyNumber","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","array","findIndex","object","valueCallback","rest","parsePattern","parseInt","parseResult","any","enUS","formatDistance","tokenValue","addSuffix","comparison","formatRelative","_date","_baseDate","weekStartsOn","firstWeekContainsDate","defaultOptions","getDefaultOptions","pow","millisecondsInWeek","minutesInMonth","constructFromSymbol","for","constructFrom","toDate","argument","getTimezoneOffsetInMilliseconds","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","normalizeDates","dates","find","startOfDay","in","setHours","getDayOfYear","laterDate","earlierDate","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","differenceInCalendarDays","date_","setFullYear","startOfYear","startOfWeek","locale","getDay","diff","setDate","startOfISOWeek","getISOWeekYear","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","getISOWeek","fourthOfJanuary","startOfISOWeekYear","getWeekYear","firstWeekOfNextYear","firstWeekOfThisYear","getWeek","firstWeek","startOfWeekYear","addLeadingZeros","targetLength","abs","padStart","lightFormatters","signedYear","M","dayPeriodEnumValue","H","S","numberOfDigits","milliseconds","trunc","formatters","G","unit","Y","signedWeekYear","weekYear","R","Q","ceil","q","L","week","I","isoWeek","D","dayOfYear","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","B","K","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","t","T","offset","sign","absOffset","minutes","dateLongFormatter","pattern","timeLongFormatter","longFormatters","P","datePattern","timePattern","dateTimeFormat","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isValid","isNaN","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","cleanEscapedString","input","matched","clock_zone","clock_12h","clock_dateMode","intervalCount","dateFormat","timeFormat","watch","created","setInterval","methods","preventDefault","clientX","clientY","$nextTick","filters","formatStr","originalDate","RangeError","firstCharacter","longFormatter","isToken","preprocessor","formatterOptions","useAdditionalWeekYearTokens","isProtectedWeekYearToken","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","_message","subject","warnOrThrowProtectedError","formatter","component","__file","_typeof","OpenC3Api","toPrimitive","toPropertyKey","kwparams","headerOptions","jsonrpc","keyword_params","Authorization","decode_openc3_type","json_class","raw","NaN","Infinity","encode_openc3_type","POSITIVE_INFINITY","NEGATIVE_INFINITY","ensure_offline_access","offline_access_needed","needed","openc3OfflineToken","set_offline_access","getOfflineAccess","offline_access_token","get_all_interface_info","map_target_to_interface","target_name","interface_name","connect_interface","_len","interface_params","disconnect_interface","interface_cmd","command_name","_len2","command_params","_key2","get_all_router_info","connect_router","router_name","disconnect_router","get_target_interfaces","get_all_target_info","get_tlm_cnts","target_commands","get_item","packet","get_param","get_parameter","get_limits_sets","get_limits_set","set_limits_set","limits_set","get_target","get_target_names","get_target_list","get_tlm","packet_name","get_telemetry","get_all_tlm","get_all_telemetry","get_all_tlm_names","hidden","get_all_telemetry_names","get_tlm_packet","value_type","stale_time","converted","get_packet_derived_items","get_tlm_buffer","get_tlm_values","items","cache_timeout","kw_args","get_limits","item_name","tlm","inject_tlm","item_hash","set_tlm","override_tlm","get_overrides","normalize_tlm","get_all_cmds","get_all_commands","get_all_cmd_names","get_all_command_names","get_cmd","get_command","get_cmd_cnts","get_cmd_value","parameter_name","get_cmd_buffer","_cmd","param_list","get_cmd_hazardous","cmd","cmd_no_range_check","cmd_raw","cmd_raw_no_range_check","cmd_no_hazardous_check","cmd_no_checks","cmd_raw_no_hazardous_check","cmd_raw_no_checks","build_cmd","build_command","get_interface_names","send_raw","list_configs","tool","load_config","save_config","delete_config","enable_limits","disable_limits","get_out_of_limits","get_overall_limits_state","ignored","list_settings","get_all_settings","get_setting","get_settings","set_setting","save_setting","get_metrics","hashString","isSecureContext","hashAsArrayBuffer","crypto","subtle","digest","uint8ViewOfHash","show","logo","color","$event","$emit","components","ClockFooter","UpgradeToEnterpriseDialog","enterprise","$route","query","getSourceUrl","Api","drawer","subtitle","_l","adminTools","block","small","onclick","initiallyOpen","dense","scopedSlots","_u","ref","newTabUrl","justify","margin","astro","hideClock","timezone","astroTimeZone","scopes","disabled","label","outlined","scope","showNotificationPane","transition","notificationVsAlert","sublabel","activeScripts","iconStatus","notifications","unreadNotifications","top","clearNotifications","toggleSettingsDialog","notificationList","notification","openDialog","left","inline","getStatus","level","proxy","notificationDialog","selectedNotification","text","navigate","right","settingsDialog","showToast","compareAsc","dateLeft","dateRight","isLastDayOfMonth","endOfDay","endOfMonth","differenceInMonths","workingLaterDate","difference","differenceInCalendarMonths","setMonth","isLastMonthNotFull","differenceInSeconds","differenceInMilliseconds","roundingMethod","formatDistanceToNow","localizeOptions","seconds","offsetInSeconds","months","includeSeconds","days","nearestMonth","monthsSinceStartOfYear","years","constructNow","xmlns","viewBox","preserveAspectRatio","focusable","getIcon","library","propscolor","CosmosRuxIcon","required","AstroIconLibrary","iconStyle","large","scale","icons","dark","scaleFactor","AstroStatuses","UnknownToAstroStatus","relativeScale","bgWidth","bgHeight","iconWidth","fatal","FATAL","ERROR","WARN","info","INFO","debug","critical","CRITICAL","SERIOUS","caution","CAUTION","normal","NORMAL","standby","STANDBY","off","OFF","AstroStatusColors","AstroIconVuetifyValues","AstroIcon","AstroStatusIndicator","_levels","logger","WebSocket","log","messages","enabled","secondsSince","ConnectionMonitor","connection","visibilityDidChange","reconnectAttempts","start","isRunning","stoppedAt","startPolling","staleThreshold","stop","stopPolling","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","pollTimeout","reconnectIfStale","getPollInterval","reconnectionBackoffRate","connectionIsStale","refreshedAt","disconnectedRecently","reopen","visibilityState","isOpen","INTERNAL","message_types","welcome","disconnect","ping","confirmation","rejection","disconnect_reasons","unauthorized","invalid_request","server_restart","remote","default_mount_path","supportedProtocols","Connection","consumer","subscriptions","monitor","disconnected","webSocket","isActive","getState","socketProtocols","subprotocols","uninstallEventHandlers","installEventHandlers","allowReconnect","reopenDelay","getProtocol","isState","triedToReconnect","isProtocolSupported","states","eventName","events","handler","reconnect","reconnectAttempted","reload","confirmSubscription","notify","reconnected","notifyAll","willAttemptReconnect","Subscription","mixin","properties","perform","action","command","SubscriptionGuarantor","pendingSubscriptions","guarantee","subscription","startGuaranteeing","forget","stopGuaranteeing","retrySubscribing","retryTimeout","Subscriptions","guarantor","channelName","channel","ensureActiveConnection","findAll","sendCommand","callbackName","Consumer","_url","createWebSocketURL","connect","addSubProtocol","subprotocol","ActionCable","Cable","_cable","createSubscription","additionalOptions","final_url","getConfig","NOTIFICATION_HISTORY_MAX_LENGTH","alerts","cable","scriptCable","scriptSubscription","numScripts","toastNotification","levels","indices","_getLevelIndeces","highestLevel","readNotifications","sort","unreadCount","groups","objects","levelGetter","groupByLevel","orderByLevel","flatMap","markAllAsRead","notoast","$store","notifyHistory","destroyed","lastReadNotification","msg_id","notificationStreamOffset","toggleNotificationPane","received","receiveMessage","start_offset","types","receiveScript","ephemeral","someobject","foundToast","duration","saveToHistory","shortDateTime","nsec","showUserMenu","roles","authenticated","logout","activeUsers","user","newValue","oldValue","userroles","capitalize","ScopeSelector","Notifications","UserMenu","timeZone","appNav","shownTools","shown","category","Intl","DateTimeFormat","resolvedOptions","children","inline_url","folder_name","registerApplication","System","import","activeWhen","urlRerouteOnly","history","replaceState","searchParams","dialog","approximateDiscrepancySec","suppress","dismiss","dismissed","discrepancy","now_nsec","toFixed","classification","fontColor","backgroundColor","topHeight","bottomHeight","load","AppFooter","AppNav","TimeCheck","mixins","ClassificationBanners","cov_hzkirhgmh","cov_1khetde6f7","actualCoverage","Router","mode","routes","Vuex","OpenC3Store","getters","mutations","notifyAddHistory","NOTIFY_HISTORY_MAX_LENGTH","notifyClearHistory","contentRef","hostTagName","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","renderingRef","queuePending","XLINK_NS","EMPTY_OBJ","isComplexType","nodeName","vnodeData","child","slotName","simple","lastSimple","vNodeChildren","walk","$text$","newVNode","classData","className","vdomFnUtils","vnode","$attrs$","$children$","$key$","$name$","tag","$flags$","$tag$","$elm$","Host","isHost","node","convertToPublic","convertToPrivate","vattrs","vchildren","vkey","vname","vtag","vtext","rootAppliedStyles","WeakMap","styleContainerNode","cmpMeta","hostElm","_a","getScopeId","nodeType","doc","styleElm","appliedStyles","Set","innerHTML","plt","$nonce$","queryNonceMetaTagContent","adoptedStyleSheets","cmp","$tagName$","setAccessor","elm","memberName","isSvg","flags","isProp","isMemberInElement","ln","classList","oldClasses","parseClassList","newClasses","removeProperty","setProperty","__lookupSetter__","isComplex","tagName","xlink","removeAttributeNS","removeAttribute","setAttributeNS","win","rel","ael","parseClassListRegex","updateElement","oldVnode","newVnode","oldVnodeAttrs","newVnodeAttrs","createElm","oldParentVNode","newParentVNode","childIndex","parentElm","childNode","oldVNode","createElementNS","putBackInOriginalLocation","recursive","oldSlotChildNodes","parentReferenceNode","referenceNode","addVnodes","before","parentVNode","vnodes","startIdx","endIdx","containerElm","removeVnodes","nullifyVNodeRefs","isSameVnode","leftVNode","rightVNode","patch","oldChildren","newChildren","defaultHolder","textContent","oldCh","newCh","elmToMove","oldStartIdx","newStartIdx","idxInOld","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","nextSibling","updateChildren","updateFallbackSlotVisibility","ilen","slotNameAttr","relocateNodes","relocateSlotContent","hostContentNodes","relocateNodeData","isNodeLocatedInSlot","$nodeToRelocate$","$slotRefNode$","relocateNode","nodeToRelocate","vNode","renderVdom","hostRef","renderFnResults","$hostElement$","$cmpMeta$","$vnode$","rootVnode","$attrsToReflect$","propName","attribute","supportsShadow","relocateData","orgLocationNode","parentNodeRef","insertBeforeNode","refNode","previousSibling","scheduleUpdate","isInitialLoad","$ancestorComponent$","dispatch","dispatchHooks","writeTask","endSchedule","maybePromise","emitLifecycleEvent","safeCall","updateComponent","isPromisey","endUpdate","endAttachStyles","getRootNode","$modeName$","attachStyles","endRender","callRender","postUpdateComponent","consoleError","endPostUpdate","arg","lifecycleName","proxyComponent","Cstr","$members$","watchers","$watchers$","members","memberFlags","getHostRef","$instanceValues$","newVal","oldVal","propValue","propType","parseFloat","areBothNaN","watchMethods","watchMethodName","componentShouldUpdate","setValue","attrNameToPropName","Map","attributeChangedCallback","attrName","_oldValue","jmp","observedAttributes","initializeComponent","hmrVersionId","customElements","whenDefined","modeResolutionChain","computeMode","endRegisterStyles","allowCS","supportsConstructableStylesheets","CSSStyleSheet","replaceSync","registerStyle","schedule","fireConnectedCallback","setContentReference","contentRefElm","createComment","proxyCustomElement","compactMeta","$listeners$","originalConnectedCallback","connectedCallback","originalDisconnectedCallback","disconnectedCallback","__registerHost","registerHost","endConnected","addHostEventListeners","$lazyInstance$","hostId","$rmListeners$","rmListener","__attachShadow","attachShadow","delegatesFocus","is","listeners","attachParentListeners","getHostListenerTarget","hostListenerProxy","hostListenerOpts","ev","supportsListenerOptions","passive","capture","hostRefs","HTMLElement","$resourcesUrl$","raf","requestAnimationFrame","ce","CustomEvent","queueDomReads","queueDomWrites","queueTask","queue","consume","performance","v","getDefaultExportFromCjs","createCommonjsModule","basedir","require","commonjsRequire","requiredArgs_1","toDate_1","argStr","isValid_1","dirtyDate","_index2","_interopRequireDefault","formatDistance_1","buildFormatLongFn_1","dirtyOptions","formatLong_1","_default","formatRelative_1","buildLocalizeFn_1","dirtyIndex","_defaultWidth","_width","localize_1","_dirtyOptions","buildMatchPatternFn_1","dirtyString","buildMatchFn_1","match_1","_index3","_index4","_index5","toInteger_1","toInteger","addMilliseconds_1","dirtyAmount","amount","subMilliseconds_1","addLeadingZeros_1","output","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","fractionalSeconds","getUTCDayOfYear_1","setUTCMonth","setUTCHours","MILLISECONDS_IN_DAY","startOfUTCISOWeek_1","getUTCDay","setUTCDate","getUTCISOWeekYear_1","startOfUTCISOWeekYear_1","getUTCISOWeek_1","MILLISECONDS_IN_WEEK","startOfUTCWeek_1","localeWeekStartsOn","defaultWeekStartsOn","getUTCWeekYear_1","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","startOfUTCWeekYear_1","getUTCWeek_1","formatters_1","_index6","_index7","twoDigitYear","isoWeekYear","_originalDate","dirtyDelimiter","longFormatters_1","getTimezoneOffsetInMilliseconds_1","protectedTokens","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","format_1","dirtyFormatStr","_index10","_index9","dateFnsFormat","tzIntlTimeZoneName","dtf","timeZoneName","getDTF","formatToParts","formatted","partsTimeZone","tzNameMatch","substr","hackyTimeZone","typeToPos","hour","minute","second","dtfCache","newDateUTC","fullYear","millisecond","MILLISECONDS_IN_HOUR$1","patterns$1","timezoneZ","timezoneHH","timezoneHHMM","tzParseTimezone","timezoneString","isUtcDate","absoluteOffset","validateTimezone","timeZoneString","validIANATimezoneCache","isValidTimezoneIANAString","toUtcDate","calcOffset","fixedOffset","utcGuess","o2","o3","max","fixOffset","testDateFormatted","hour12","hourCycleSupported","hourCycle","getDateTimeFormat","filled","partsOffset","hackyOffset","tzTokenizeDate","asUTC","asTS","over","getTimeZoneOffset","timeZoneOffset","dirtyDelimeter","delimeter","MILLISECONDS_IN_HOUR","patterns","dateTimePattern","plainTime","YY","YYY","YYYY","YYYYY","MM","DDD","MMDD","Www","WwwD","HH","HHMM","HHMMSS","additionalDigits","dateStrings","dateString","timeString","splitDateString","parseYearResult","patternYYY","patternYYYYY","yearString","restDateString","centuryString","parseYear","validateDate","isLeapYear","isLeapYearIndex","validateDayOfYearDate","validateWeekDate","dayOfISOWeekYear","parseDate","validateTime","parseTime","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","tzFormattingTokensRegExp","precededByQuotedSection","replaced","utcToZonedTime","offsetMilliseconds","resultDate","requiredArgs","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","cleanDate","militaryTimezones","A","C","F","N","U","V","W","Z","RuxClock","super","_timezone","tzFormat","hasRun","_time","_rawTime","aos","static","los","hideTimezone","hideDate","hideLabels","dateIn","updateAos","convertedAos","_formatLosAosDateIn","updateLos","convertedLos","handleDateInChange","_timer","_handleDateIn","_updateTime","timezoneChanged","_convertTimezone","componentWillLoad","_formatTime","_validateDateIn","setSeconds","clockDate","_militaryTimezones","svg","SVG","RuxIconApps","iconSize","sizes","RuxIconNotifications","RuxIconWarning","RuxIconPerson","MonitoringBadge","thousand","million","billion","trillion","_shorthand","collapseNotifications","MonitoringLabel","StatusSVG","RuxStatus","RuxMonitoringIcon","componentDidRender","handleNotificatonWidth","badge","iconRect","getBoundingClientRect","minWidth","exportparts","RuxProgress","hideLabel","_checkValueNotOverMax","watchHandler","_getProgressAsString","RuxIconAltitude","RuxIconAntenna","RuxIconAntennaOff","RuxIconAntennaReceive","RuxIconAntennaTransmit","RuxIconEquipment","RuxIconMission","RuxIconNetcom","RuxIconPayload","RuxIconProcessor","RuxIconProcessorAlt","RuxIconPropulsionPower","RuxIconSatelliteOff","RuxIconSatelliteReceive","RuxIconSatelliteTransmit","RuxIconSolar","RuxIconThermal","cov_hlr4jmzey","RuxIcon","Vuetify","theme","customProperties","themes","primary","secondary","tertiary","light","cov_14089wz6i9","productionTip","getInitOptions","init","router","store","vuetify","App","$mount"],"sourceRoot":""}
|