@nordicsemiconductor/pc-nrfconnect-shared 60.0.0-pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/ISSUE_TEMPLATE/custom.md +10 -0
- package/.husky/pre-push +3 -0
- package/.renovaterc.json +10 -0
- package/Changelog.md +2973 -0
- package/LICENSE +35 -0
- package/README.md +11 -0
- package/azure-pipelines.yml +34 -0
- package/config/eslintrc.js +190 -0
- package/config/jest.config.js +41 -0
- package/config/prettier.config.js +13 -0
- package/config/tsconfig.json +15 -0
- package/fw/bootloader/graviton_bootloader_v1.0.1-[nRF5_SDK_15.0.1-1.alpha_f76d012].zip +0 -0
- package/jest.config.js +7 -0
- package/main/index.ts +32 -0
- package/mocks/deviceLibMock.ts +21 -0
- package/mocks/electronMock.ts +15 -0
- package/mocks/electronStoreMock.ts +19 -0
- package/mocks/emptyMock.ts +7 -0
- package/mocks/fileMock.ts +13 -0
- package/mocks/gaMock.ts +9 -0
- package/mocks/mockTests.test.ts +15 -0
- package/mocks/packageJsonMock.ts +10 -0
- package/mocks/remoteMock.ts +17 -0
- package/package.json +132 -0
- package/scripts/check-app-properties.ts +197 -0
- package/scripts/check-for-typescript.ts +41 -0
- package/scripts/esbuild-bootstrap.js +15 -0
- package/scripts/esbuild-renderer.js +131 -0
- package/scripts/esbuild.js +57 -0
- package/scripts/installHusky.ts +17 -0
- package/scripts/nordic-publish.ts +485 -0
- package/scripts/nrfconnect-license.ts +277 -0
- package/scripts/prepare-shared-release.ts +122 -0
- package/scripts/release-shared.test.ts +132 -0
- package/scripts/release-shared.ts +207 -0
- package/src/About/About.tsx +25 -0
- package/src/About/AboutButton.tsx +28 -0
- package/src/About/ApplicationCard.tsx +83 -0
- package/src/About/DeviceCard.tsx +74 -0
- package/src/About/DocumentationCard.tsx +18 -0
- package/src/About/DocumentationSection.tsx +24 -0
- package/src/About/Section.tsx +21 -0
- package/src/About/ShortcutButton.tsx +41 -0
- package/src/About/SupportCard.tsx +97 -0
- package/src/About/about.scss +40 -0
- package/src/About/documentationSlice.ts +41 -0
- package/src/About/section.scss +15 -0
- package/src/About/shortcutSlice.ts +52 -0
- package/src/Alert/Alert.module.scss +29 -0
- package/src/Alert/Alert.tsx +37 -0
- package/src/App/App.test.tsx +47 -0
- package/src/App/App.tsx +227 -0
- package/src/App/ConnectedToStore.tsx +19 -0
- package/src/App/VisibilityBar.tsx +103 -0
- package/src/App/app.scss +83 -0
- package/src/App/appLayout.ts +95 -0
- package/src/App/shared.scss +49 -0
- package/src/App/visibility-bar.scss +55 -0
- package/src/Button/Button.tsx +66 -0
- package/src/Button/button.module.scss +154 -0
- package/src/Card/Card.tsx +26 -0
- package/src/Card/card.module.scss +28 -0
- package/src/Device/BrokenDeviceDialog/BrokenDeviceDialog.tsx +58 -0
- package/src/Device/BrokenDeviceDialog/broken-device-dialog.scss +18 -0
- package/src/Device/BrokenDeviceDialog/brokenDeviceDialogSlice.tsx +48 -0
- package/src/Device/DeviceSelector/BasicDeviceInfo.tsx +115 -0
- package/src/Device/DeviceSelector/DeviceIcon.tsx +27 -0
- package/src/Device/DeviceSelector/DeviceList/AnimatedList.tsx +62 -0
- package/src/Device/DeviceSelector/DeviceList/BrokenDevice.tsx +34 -0
- package/src/Device/DeviceSelector/DeviceList/Device.tsx +84 -0
- package/src/Device/DeviceSelector/DeviceList/DeviceList.tsx +113 -0
- package/src/Device/DeviceSelector/DeviceList/EditDeviceButtons.tsx +28 -0
- package/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.tsx +65 -0
- package/src/Device/DeviceSelector/DeviceList/RenameDevice.tsx +22 -0
- package/src/Device/DeviceSelector/DeviceList/broken-device.scss +32 -0
- package/src/Device/DeviceSelector/DeviceList/device-list.scss +64 -0
- package/src/Device/DeviceSelector/DeviceList/device.scss +28 -0
- package/src/Device/DeviceSelector/DeviceList/edit-device-buttons.scss +31 -0
- package/src/Device/DeviceSelector/DeviceList/more-device-info.scss +33 -0
- package/src/Device/DeviceSelector/DeviceList/rename-device.scss +13 -0
- package/src/Device/DeviceSelector/DeviceSelector.test.tsx +342 -0
- package/src/Device/DeviceSelector/DeviceSelector.tsx +173 -0
- package/src/Device/DeviceSelector/Favorite.tsx +49 -0
- package/src/Device/DeviceSelector/SelectDevice.tsx +36 -0
- package/src/Device/DeviceSelector/SelectedDevice.tsx +65 -0
- package/src/Device/DeviceSelector/arrow-down.svg +1 -0
- package/src/Device/DeviceSelector/basic-device-info.scss +62 -0
- package/src/Device/DeviceSelector/device-icon.scss +27 -0
- package/src/Device/DeviceSelector/favorite.scss +17 -0
- package/src/Device/DeviceSelector/select-device.scss +38 -0
- package/src/Device/DeviceSelector/selected-device.scss +57 -0
- package/src/Device/DeviceSetup/DeviceSetupView.tsx +102 -0
- package/src/Device/deviceAutoSelectSlice.ts +144 -0
- package/src/Device/deviceInfo/deviceInfo.ts +254 -0
- package/src/Device/deviceInfo/nRF51-Series-logo.svg +1 -0
- package/src/Device/deviceInfo/nRF52-Series-logo.svg +1 -0
- package/src/Device/deviceInfo/nRF53-Series-logo.svg +1 -0
- package/src/Device/deviceInfo/nRF70-Series_no-background_RGB.svg +36 -0
- package/src/Device/deviceInfo/nRF91-Series-logo.svg +1 -0
- package/src/Device/deviceInfo/ppk-logo.svg +1 -0
- package/src/Device/deviceInfo/unknown-logo.svg +30 -0
- package/src/Device/deviceInfo/unknown-nordic-logo.svg +25 -0
- package/src/Device/deviceLibWrapper.test.ts +97 -0
- package/src/Device/deviceLibWrapper.ts +133 -0
- package/src/Device/deviceLister.test.ts +89 -0
- package/src/Device/deviceLister.ts +396 -0
- package/src/Device/deviceSetup.ts +264 -0
- package/src/Device/deviceSetupSlice.ts +94 -0
- package/src/Device/deviceSlice.ts +248 -0
- package/src/Device/dfu-cc.ts +162 -0
- package/src/Device/initPacket.ts +402 -0
- package/src/Device/jprogOperations.ts +206 -0
- package/src/Device/sdfuOperations.ts +601 -0
- package/src/Dialog/Dialog.test.tsx +134 -0
- package/src/Dialog/Dialog.tsx +236 -0
- package/src/Dialog/dialog.scss +60 -0
- package/src/Dropdown/Dropdown.module.scss +83 -0
- package/src/Dropdown/Dropdown.test.tsx +62 -0
- package/src/Dropdown/Dropdown.tsx +106 -0
- package/src/ErrorBoundary/ErrorBoundary.test.tsx +105 -0
- package/src/ErrorBoundary/ErrorBoundary.tsx +186 -0
- package/src/ErrorBoundary/bug.svg +1 -0
- package/src/ErrorBoundary/error-boundary.scss +102 -0
- package/src/ErrorDialog/ErrorDialog.test.tsx +70 -0
- package/src/ErrorDialog/ErrorDialog.tsx +94 -0
- package/src/ErrorDialog/error.scss +14 -0
- package/src/ErrorDialog/errorDialogSlice.test.ts +64 -0
- package/src/ErrorDialog/errorDialogSlice.ts +80 -0
- package/src/FactoryReset/FactoryResetButton.test.tsx +46 -0
- package/src/FactoryReset/FactoryResetButton.tsx +81 -0
- package/src/InlineInput/InlineInput.tsx +170 -0
- package/src/InlineInput/NumberInlineInput.tsx +107 -0
- package/src/InlineInput/inline-input.scss +38 -0
- package/src/InlineInput/number-inline-input.scss +15 -0
- package/src/Log/LogEntry.tsx +62 -0
- package/src/Log/LogViewer.tsx +54 -0
- package/src/Log/log-entry.scss +30 -0
- package/src/Log/log-viewer.scss +24 -0
- package/src/Log/logSlice.ts +73 -0
- package/src/Log/syncLogToStore.ts +36 -0
- package/src/Logo/Logo.tsx +48 -0
- package/src/Logo/logo.scss +11 -0
- package/src/Logo/nordic-logo-blue-icon-only.png +0 -0
- package/src/Logo/nordic-logo-gray-icon-only.png +0 -0
- package/src/Logo/nordic-logo-white-icon-only.png +0 -0
- package/src/Main/Main.tsx +13 -0
- package/src/Main/main.scss +13 -0
- package/src/MasonryLayout/MasonryLayout.tsx +234 -0
- package/src/MasonryLayout/masonryLayout.module.scss +46 -0
- package/src/NavBar/NavBar.tsx +22 -0
- package/src/NavBar/NavMenu.test.tsx +41 -0
- package/src/NavBar/NavMenu.tsx +53 -0
- package/src/NavBar/NavMenuItem.tsx +41 -0
- package/src/NavBar/nav-bar.scss +26 -0
- package/src/NavBar/nav-menu-item.scss +34 -0
- package/src/OpenApp/openApp.ts +18 -0
- package/src/Panes/FeedbackPane.tsx +149 -0
- package/src/PseudoButton/PseudoButton.tsx +56 -0
- package/src/PseudoButton/pseudo-button.scss +11 -0
- package/src/SerialPort/ConflictingSettingsDialog.tsx +242 -0
- package/src/SerialPort/SerialPort.test.ts +54 -0
- package/src/SerialPort/SerialPort.ts +202 -0
- package/src/Shortcuts/Shortcut-item.scss +33 -0
- package/src/Shortcuts/Shortcut-modal.scss +20 -0
- package/src/Shortcuts/ShortcutItem.tsx +48 -0
- package/src/Shortcuts/ShortcutModal.tsx +67 -0
- package/src/SidePanel/Group.tsx +106 -0
- package/src/SidePanel/SidePanel.tsx +19 -0
- package/src/SidePanel/group.scss +42 -0
- package/src/SidePanel/sidepanel.scss +20 -0
- package/src/Slider/Bar.tsx +24 -0
- package/src/Slider/Factor.test.ts +48 -0
- package/src/Slider/Handle.tsx +121 -0
- package/src/Slider/Slider.test.tsx +25 -0
- package/src/Slider/Slider.tsx +91 -0
- package/src/Slider/Ticks.tsx +54 -0
- package/src/Slider/__snapshots__/Slider.test.tsx.snap +50 -0
- package/src/Slider/bar.scss +24 -0
- package/src/Slider/factor.ts +24 -0
- package/src/Slider/handle.scss +32 -0
- package/src/Slider/percentage.ts +67 -0
- package/src/Slider/range.ts +92 -0
- package/src/Slider/slider.scss +14 -0
- package/src/Slider/ticks.scss +28 -0
- package/src/Slider/variables.scss +16 -0
- package/src/StartStopButton/StartStopButton.tsx +60 -0
- package/src/StartStopButton/play-circle.svg +1 -0
- package/src/StartStopButton/start-stop-button.scss +47 -0
- package/src/StartStopButton/stop-circle.svg +1 -0
- package/src/StateSelector/StateSelector.tsx +64 -0
- package/src/StateSelector/state-selector.scss +38 -0
- package/src/Stepper/Stepper.tsx +139 -0
- package/src/Stepper/stepper.scss +127 -0
- package/src/Toggle/Toggle.tsx +120 -0
- package/src/Toggle/toggle.scss +109 -0
- package/src/bootstrap.scss +14 -0
- package/src/index.ts +146 -0
- package/src/logging/appTransport.test.ts +78 -0
- package/src/logging/appTransport.ts +41 -0
- package/src/logging/describeError.test.ts +38 -0
- package/src/logging/describeError.ts +56 -0
- package/src/logging/index.ts +103 -0
- package/src/logging/logBuffer.test.ts +41 -0
- package/src/logging/logBuffer.ts +24 -0
- package/src/logging/sendInitialLogMessages.ts +64 -0
- package/src/store.ts +60 -0
- package/src/svg.d.ts +15 -0
- package/src/utils/AppTypes.ts +60 -0
- package/src/utils/appDirs.ts +78 -0
- package/src/utils/bleChannels.ts +16 -0
- package/src/utils/classNames.test.ts +29 -0
- package/src/utils/classNames.ts +25 -0
- package/src/utils/colors.scss +46 -0
- package/src/utils/colors.ts +38 -0
- package/src/utils/describeVersion.ts +21 -0
- package/src/utils/environment.ts +6 -0
- package/src/utils/logLibVersions.ts +103 -0
- package/src/utils/open.ts +46 -0
- package/src/utils/packageJson.ts +60 -0
- package/src/utils/persistentStore.ts +144 -0
- package/src/utils/systemReport.ts +160 -0
- package/src/utils/truncateMiddle.test.ts +21 -0
- package/src/utils/truncateMiddle.ts +20 -0
- package/src/utils/usageData.ts +189 -0
- package/src/utils/useHotKey.ts +62 -0
- package/src/utils/useStopwatch.test.tsx +311 -0
- package/src/utils/useStopwatch.ts +140 -0
- package/src/variables.scss +820 -0
- package/styles.scss +88 -0
- package/test/dispatchTo.ts +23 -0
- package/test/index.ts +7 -0
- package/test/jestResolver.js +28 -0
- package/test/setupTests.ts +27 -0
- package/test/testUtil.ts +20 -0
- package/test/testrenderer.tsx +39 -0
- package/tsconfig.json +9 -0
- package/typings/externals.d.ts +31 -0
- package/typings/generated/main/index.d.ts +25 -0
- package/typings/generated/src/About/About.d.ts +4 -0
- package/typings/generated/src/About/AboutButton.d.ts +8 -0
- package/typings/generated/src/About/ApplicationCard.d.ts +3 -0
- package/typings/generated/src/About/DeviceCard.d.ts +3 -0
- package/typings/generated/src/About/DocumentationCard.d.ts +3 -0
- package/typings/generated/src/About/DocumentationSection.d.ts +9 -0
- package/typings/generated/src/About/Section.d.ts +8 -0
- package/typings/generated/src/About/ShortcutButton.d.ts +6 -0
- package/typings/generated/src/About/SupportCard.d.ts +3 -0
- package/typings/generated/src/About/documentationSlice.d.ts +12 -0
- package/typings/generated/src/About/shortcutSlice.d.ts +11 -0
- package/typings/generated/src/Alert/Alert.d.ts +10 -0
- package/typings/generated/src/App/App.d.ts +27 -0
- package/typings/generated/src/App/App.test.d.ts +1 -0
- package/typings/generated/src/App/ConnectedToStore.d.ts +7 -0
- package/typings/generated/src/App/VisibilityBar.d.ts +6 -0
- package/typings/generated/src/App/appLayout.d.ts +17 -0
- package/typings/generated/src/Button/Button.d.ts +13 -0
- package/typings/generated/src/Card/Card.d.ts +7 -0
- package/typings/generated/src/Device/BrokenDeviceDialog/BrokenDeviceDialog.d.ts +4 -0
- package/typings/generated/src/Device/BrokenDeviceDialog/brokenDeviceDialogSlice.d.ts +12 -0
- package/typings/generated/src/Device/DeviceSelector/BasicDeviceInfo.d.ts +11 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceIcon.d.ts +7 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/AnimatedList.d.ts +10 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/BrokenDevice.d.ts +7 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/Device.d.ts +10 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/DeviceList.d.ts +10 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/EditDeviceButtons.d.ts +9 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/MoreDeviceInfo.d.ts +7 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceList/RenameDevice.d.ts +6 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceSelector.d.ts +20 -0
- package/typings/generated/src/Device/DeviceSelector/DeviceSelector.test.d.ts +1 -0
- package/typings/generated/src/Device/DeviceSelector/Favorite.d.ts +9 -0
- package/typings/generated/src/Device/DeviceSelector/SelectDevice.d.ts +8 -0
- package/typings/generated/src/Device/DeviceSelector/SelectedDevice.d.ts +7 -0
- package/typings/generated/src/Device/DeviceSetup/DeviceSetupView.d.ts +3 -0
- package/typings/generated/src/Device/deviceAutoSelectSlice.d.ts +28 -0
- package/typings/generated/src/Device/deviceInfo/deviceInfo.d.ts +18 -0
- package/typings/generated/src/Device/deviceLibWrapper.d.ts +8 -0
- package/typings/generated/src/Device/deviceLibWrapper.test.d.ts +1 -0
- package/typings/generated/src/Device/deviceLister.d.ts +25 -0
- package/typings/generated/src/Device/deviceLister.test.d.ts +2 -0
- package/typings/generated/src/Device/deviceSetup.d.ts +40 -0
- package/typings/generated/src/Device/deviceSetupSlice.d.ts +20 -0
- package/typings/generated/src/Device/deviceSlice.d.ts +30 -0
- package/typings/generated/src/Device/dfu-cc.d.ts +3 -0
- package/typings/generated/src/Device/initPacket.d.ts +109 -0
- package/typings/generated/src/Device/jprogOperations.d.ts +2 -0
- package/typings/generated/src/Device/sdfuOperations.d.ts +14 -0
- package/typings/generated/src/Dialog/Dialog.d.ts +64 -0
- package/typings/generated/src/Dialog/Dialog.test.d.ts +1 -0
- package/typings/generated/src/Dropdown/Dropdown.d.ts +16 -0
- package/typings/generated/src/Dropdown/Dropdown.test.d.ts +1 -0
- package/typings/generated/src/ErrorBoundary/ErrorBoundary.d.ts +26 -0
- package/typings/generated/src/ErrorBoundary/ErrorBoundary.test.d.ts +1 -0
- package/typings/generated/src/ErrorDialog/ErrorDialog.d.ts +4 -0
- package/typings/generated/src/ErrorDialog/ErrorDialog.test.d.ts +1 -0
- package/typings/generated/src/ErrorDialog/errorDialogSlice.d.ts +23 -0
- package/typings/generated/src/ErrorDialog/errorDialogSlice.test.d.ts +1 -0
- package/typings/generated/src/FactoryReset/FactoryResetButton.d.ts +12 -0
- package/typings/generated/src/FactoryReset/FactoryResetButton.test.d.ts +1 -0
- package/typings/generated/src/InlineInput/InlineInput.d.ts +14 -0
- package/typings/generated/src/InlineInput/NumberInlineInput.d.ts +12 -0
- package/typings/generated/src/Log/LogEntry.d.ts +7 -0
- package/typings/generated/src/Log/LogViewer.d.ts +5 -0
- package/typings/generated/src/Log/logSlice.d.ts +12 -0
- package/typings/generated/src/Log/syncLogToStore.d.ts +11 -0
- package/typings/generated/src/Logo/Logo.d.ts +6 -0
- package/typings/generated/src/Main/Main.d.ts +6 -0
- package/typings/generated/src/MasonryLayout/MasonryLayout.d.ts +14 -0
- package/typings/generated/src/NavBar/NavBar.d.ts +6 -0
- package/typings/generated/src/NavBar/NavMenu.d.ts +3 -0
- package/typings/generated/src/NavBar/NavMenu.test.d.ts +1 -0
- package/typings/generated/src/NavBar/NavMenuItem.d.ts +10 -0
- package/typings/generated/src/OpenApp/openApp.d.ts +7 -0
- package/typings/generated/src/Panes/FeedbackPane.d.ts +3 -0
- package/typings/generated/src/PseudoButton/PseudoButton.d.ts +10 -0
- package/typings/generated/src/SerialPort/ConflictingSettingsDialog.d.ts +13 -0
- package/typings/generated/src/SerialPort/SerialPort.d.ts +21 -0
- package/typings/generated/src/SerialPort/SerialPort.test.d.ts +1 -0
- package/typings/generated/src/Shortcuts/ShortcutItem.d.ts +8 -0
- package/typings/generated/src/Shortcuts/ShortcutModal.d.ts +8 -0
- package/typings/generated/src/SidePanel/Group.d.ts +16 -0
- package/typings/generated/src/SidePanel/SidePanel.d.ts +7 -0
- package/typings/generated/src/Slider/Bar.d.ts +7 -0
- package/typings/generated/src/Slider/Factor.test.d.ts +1 -0
- package/typings/generated/src/Slider/Handle.d.ts +13 -0
- package/typings/generated/src/Slider/Slider.d.ts +15 -0
- package/typings/generated/src/Slider/Slider.test.d.ts +1 -0
- package/typings/generated/src/Slider/Ticks.d.ts +12 -0
- package/typings/generated/src/Slider/factor.d.ts +1 -0
- package/typings/generated/src/Slider/percentage.d.ts +4 -0
- package/typings/generated/src/Slider/range.d.ts +13 -0
- package/typings/generated/src/StartStopButton/StartStopButton.d.ts +16 -0
- package/typings/generated/src/StateSelector/StateSelector.d.ts +15 -0
- package/typings/generated/src/Stepper/Stepper.d.ts +26 -0
- package/typings/generated/src/Toggle/Toggle.d.ts +19 -0
- package/typings/generated/src/index.d.ts +69 -0
- package/typings/generated/src/logging/appTransport.d.ts +12 -0
- package/typings/generated/src/logging/appTransport.test.d.ts +1 -0
- package/typings/generated/src/logging/describeError.d.ts +2 -0
- package/typings/generated/src/logging/describeError.test.d.ts +1 -0
- package/typings/generated/src/logging/index.d.ts +9 -0
- package/typings/generated/src/logging/logBuffer.d.ts +9 -0
- package/typings/generated/src/logging/logBuffer.test.d.ts +1 -0
- package/typings/generated/src/logging/sendInitialLogMessages.d.ts +2 -0
- package/typings/generated/src/store.d.ts +65 -0
- package/typings/generated/src/utils/AppTypes.d.ts +49 -0
- package/typings/generated/src/utils/appDirs.d.ts +35 -0
- package/typings/generated/src/utils/bleChannels.d.ts +6 -0
- package/typings/generated/src/utils/classNames.d.ts +17 -0
- package/typings/generated/src/utils/classNames.test.d.ts +1 -0
- package/typings/generated/src/utils/colors.d.ts +31 -0
- package/typings/generated/src/utils/describeVersion.d.ts +3 -0
- package/typings/generated/src/utils/environment.d.ts +1 -0
- package/typings/generated/src/utils/logLibVersions.d.ts +2 -0
- package/typings/generated/src/utils/open.d.ts +15 -0
- package/typings/generated/src/utils/packageJson.d.ts +4 -0
- package/typings/generated/src/utils/persistentStore.d.ts +35 -0
- package/typings/generated/src/utils/systemReport.d.ts +4 -0
- package/typings/generated/src/utils/truncateMiddle.d.ts +2 -0
- package/typings/generated/src/utils/truncateMiddle.test.d.ts +1 -0
- package/typings/generated/src/utils/usageData.d.ts +63 -0
- package/typings/generated/src/utils/useHotKey.d.ts +6 -0
- package/typings/generated/src/utils/useStopwatch.d.ts +22 -0
- package/typings/generated/src/utils/useStopwatch.test.d.ts +1 -0
- package/typings/generated/test/dispatchTo.d.ts +3 -0
- package/typings/generated/test/testrenderer.d.ts +5 -0
- package/typings/nrf-intel-hex.d.ts +58 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2015 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
eslint-disable import/no-webpack-loader-syntax,import/no-unresolved --
|
|
9
|
+
|
|
10
|
+
It would be nice to process all SVGs with svgr, which would make the two
|
|
11
|
+
disables above unnecessary, but that would be a breaking change for all
|
|
12
|
+
apps that rely on the current configuration, which uses the file loader
|
|
13
|
+
to load SVGs.
|
|
14
|
+
|
|
15
|
+
The difference between the file loader and using svgr:
|
|
16
|
+
|
|
17
|
+
- With the file loaded an URL is returned which then can be used (e.g. in an img tag) like this:
|
|
18
|
+
|
|
19
|
+
import chipIconUrl from './chipIconUrl.svg';
|
|
20
|
+
const Icon = () => <img src={chipIconUrl} />
|
|
21
|
+
|
|
22
|
+
- With svgr a react component is returned, which then can be rendered like this:
|
|
23
|
+
|
|
24
|
+
import ChipIcon from '!!@svgr!./chipIconUrl.svg';
|
|
25
|
+
const Icon = () => <ChipIcon />
|
|
26
|
+
|
|
27
|
+
One of the advantages of svgr is, that it includes the SVG inline, so it can be styled
|
|
28
|
+
through CSS, e.g. to change the colours.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
import logger from '../../logging';
|
|
32
|
+
import { Device } from '../deviceSlice';
|
|
33
|
+
|
|
34
|
+
import nrf51logo from '!!@svgr!./nRF51-Series-logo.svg';
|
|
35
|
+
import nrf52logo from '!!@svgr!./nRF52-Series-logo.svg';
|
|
36
|
+
import nrf53logo from '!!@svgr!./nRF53-Series-logo.svg';
|
|
37
|
+
import nrf7002logo from '!!@svgr!./nRF70-Series_no-background_RGB.svg';
|
|
38
|
+
import nrf91logo from '!!@svgr!./nRF91-Series-logo.svg';
|
|
39
|
+
import ppkLogo from '!!@svgr!./ppk-logo.svg';
|
|
40
|
+
import unknownLogo from '!!@svgr!./unknown-logo.svg';
|
|
41
|
+
import unknownNordicLogo from '!!@svgr!./unknown-nordic-logo.svg';
|
|
42
|
+
|
|
43
|
+
type DevicePCA =
|
|
44
|
+
| 'PCA10028'
|
|
45
|
+
| 'PCA10031'
|
|
46
|
+
| 'PCA10040'
|
|
47
|
+
| 'PCA10056'
|
|
48
|
+
| 'PCA10059'
|
|
49
|
+
| 'PCA10090'
|
|
50
|
+
| 'PCA10095'
|
|
51
|
+
| 'PCA10100'
|
|
52
|
+
| 'PCA10121'
|
|
53
|
+
| 'PCA20020'
|
|
54
|
+
| 'PCA20035'
|
|
55
|
+
| 'PCA10143';
|
|
56
|
+
|
|
57
|
+
interface DeviceInfo {
|
|
58
|
+
name?: string | null;
|
|
59
|
+
cores?: number;
|
|
60
|
+
icon: React.ElementType;
|
|
61
|
+
website: {
|
|
62
|
+
productPagePath?: string;
|
|
63
|
+
buyOnlineParams?: string;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const devicesByPca: { [P in DevicePCA]: DeviceInfo } = {
|
|
68
|
+
PCA10028: {
|
|
69
|
+
name: 'nRF51 DK',
|
|
70
|
+
cores: 1,
|
|
71
|
+
icon: nrf51logo,
|
|
72
|
+
website: {
|
|
73
|
+
productPagePath: 'Software-and-tools/Development-Kits/nRF51-DK',
|
|
74
|
+
buyOnlineParams: 'search_token=nrf51-DK&series_token=nRF51822',
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
PCA10031: {
|
|
78
|
+
name: 'nRF51 Dongle',
|
|
79
|
+
cores: 1,
|
|
80
|
+
icon: nrf51logo,
|
|
81
|
+
website: {
|
|
82
|
+
productPagePath: 'Software-and-tools/Development-Kits/nRF51-Dongle',
|
|
83
|
+
buyOnlineParams: 'search_token=nRF51-Dongle&series_token=nRF51822',
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
PCA10040: {
|
|
87
|
+
name: 'nRF52 DK',
|
|
88
|
+
cores: 1,
|
|
89
|
+
icon: nrf52logo,
|
|
90
|
+
website: {
|
|
91
|
+
productPagePath: 'Software-and-tools/Development-Kits/nRF52-DK',
|
|
92
|
+
buyOnlineParams: 'search_token=nRF52-DK&series_token=nRF52832',
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
PCA10056: {
|
|
96
|
+
name: 'nRF52840 DK',
|
|
97
|
+
cores: 1,
|
|
98
|
+
icon: nrf52logo,
|
|
99
|
+
website: {
|
|
100
|
+
productPagePath: 'Software-and-tools/Development-Kits/nRF52840-DK',
|
|
101
|
+
buyOnlineParams: 'search_token=nrf52840-DK&series_token=nRF52840',
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
PCA10059: {
|
|
105
|
+
name: 'nRF52840 Dongle',
|
|
106
|
+
cores: 1,
|
|
107
|
+
icon: nrf52logo,
|
|
108
|
+
website: {
|
|
109
|
+
productPagePath:
|
|
110
|
+
'Software-and-tools/Development-Kits/nRF52840-Dongle',
|
|
111
|
+
buyOnlineParams:
|
|
112
|
+
'search_token=nRF52840DONGLE&series_token=nRF52840',
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
PCA10090: {
|
|
116
|
+
name: 'nRF9160 DK',
|
|
117
|
+
cores: 1,
|
|
118
|
+
icon: nrf91logo,
|
|
119
|
+
website: {
|
|
120
|
+
productPagePath: 'Software-and-tools/Development-Kits/nRF9160-DK',
|
|
121
|
+
buyOnlineParams: 'search_token=nrf9160-DK&series_token=nRF9160',
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
PCA10095: {
|
|
125
|
+
name: 'nRF5340 DK',
|
|
126
|
+
cores: 2,
|
|
127
|
+
icon: nrf53logo,
|
|
128
|
+
website: {
|
|
129
|
+
productPagePath: 'Software-and-tools/Development-Kits/nRF5340-DK',
|
|
130
|
+
buyOnlineParams: 'search_token=nRF5340-DK&series_token=nRF5340',
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
PCA10100: {
|
|
134
|
+
name: 'nRF52833 DK',
|
|
135
|
+
cores: 1,
|
|
136
|
+
icon: nrf52logo,
|
|
137
|
+
website: {
|
|
138
|
+
productPagePath: 'Software-and-tools/Development-Kits/nRF52833-DK',
|
|
139
|
+
buyOnlineParams: 'search_token=nRF52833-DK&series_token=nRF52833',
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
PCA10121: {
|
|
143
|
+
name: 'nRF5340 Audio DK',
|
|
144
|
+
cores: 2,
|
|
145
|
+
icon: nrf53logo,
|
|
146
|
+
website: {
|
|
147
|
+
productPagePath: 'Products/Development-hardware/nRF5340-Audio-DK',
|
|
148
|
+
buyOnlineParams:
|
|
149
|
+
'search_token=nRF5340-Audio-DK&series_token=nRF5340',
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
PCA20020: {
|
|
153
|
+
name: 'Nordic Thingy:52',
|
|
154
|
+
cores: 1,
|
|
155
|
+
icon: nrf52logo,
|
|
156
|
+
website: {
|
|
157
|
+
productPagePath:
|
|
158
|
+
'Software-and-tools/Prototyping-platforms/Nordic-Thingy-52',
|
|
159
|
+
buyOnlineParams: 'search_token=nRF6936&series_token=nRF52832',
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
PCA20035: {
|
|
163
|
+
name: 'Nordic Thingy:91',
|
|
164
|
+
cores: 1,
|
|
165
|
+
icon: nrf91logo,
|
|
166
|
+
website: {
|
|
167
|
+
productPagePath:
|
|
168
|
+
'Software-and-tools/Prototyping-platforms/Nordic-Thingy-91',
|
|
169
|
+
buyOnlineParams: 'search_token=nRF6943&series_token=nRF9160',
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
PCA10143: {
|
|
173
|
+
name: 'nRF7002 DK',
|
|
174
|
+
cores: 2,
|
|
175
|
+
icon: nrf7002logo,
|
|
176
|
+
website: {
|
|
177
|
+
productPagePath: 'Products/Development-hardware/nRF7002-DK',
|
|
178
|
+
buyOnlineParams: 'search_token=nRF7002-DK&series_token=nRF7002',
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
const deviceByPca = (device: Device) =>
|
|
184
|
+
devicesByPca[String(device.boardVersion).toUpperCase() as DevicePCA];
|
|
185
|
+
|
|
186
|
+
const NORDIC_VENDOR_ID = '1915';
|
|
187
|
+
const isNordicDevice = (device: Device) =>
|
|
188
|
+
device.serialport?.vendorId === NORDIC_VENDOR_ID;
|
|
189
|
+
|
|
190
|
+
const ppkDeviceInfo = (device: Device): DeviceInfo => ({
|
|
191
|
+
name: device.usb?.product,
|
|
192
|
+
icon: ppkLogo,
|
|
193
|
+
website: {
|
|
194
|
+
productPagePath:
|
|
195
|
+
'Software-and-tools/Development-Tools/Power-Profiler-Kit-2',
|
|
196
|
+
buyOnlineParams: 'search_token=nRF-PPK2',
|
|
197
|
+
},
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
const deviceByUsb = (device: Device) => {
|
|
201
|
+
if (isNordicDevice(device)) {
|
|
202
|
+
if (device.usb?.product?.startsWith('PPK')) {
|
|
203
|
+
return ppkDeviceInfo(device);
|
|
204
|
+
}
|
|
205
|
+
if (device.serialNumber?.startsWith('THINGY91')) {
|
|
206
|
+
return devicesByPca.PCA20035;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return null;
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
let hasShownUdevWarning = false;
|
|
213
|
+
const unknownDevice = (device: Device): DeviceInfo => {
|
|
214
|
+
if (
|
|
215
|
+
isNordicDevice(device) &&
|
|
216
|
+
process.platform === 'linux' &&
|
|
217
|
+
!hasShownUdevWarning
|
|
218
|
+
) {
|
|
219
|
+
logger.warn(
|
|
220
|
+
'Could not properly detect an unknown device. Please make sure you have nrf-udev installed: https://github.com/NordicSemiconductor/nrf-udev'
|
|
221
|
+
);
|
|
222
|
+
hasShownUdevWarning = true;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
return {
|
|
226
|
+
name: device.usb?.product,
|
|
227
|
+
icon: isNordicDevice(device) ? unknownNordicLogo : unknownLogo,
|
|
228
|
+
website: {},
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
export const deviceInfo = (device: Device): DeviceInfo =>
|
|
233
|
+
deviceByPca(device) || deviceByUsb(device) || unknownDevice(device);
|
|
234
|
+
|
|
235
|
+
export const displayedDeviceName = (
|
|
236
|
+
device: Device,
|
|
237
|
+
{ respectNickname = true } = {}
|
|
238
|
+
) => {
|
|
239
|
+
if (respectNickname && device.nickname) {
|
|
240
|
+
return device.nickname;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return deviceInfo(device).name || device.boardVersion || 'Unknown';
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
export const productPageUrl = (device: Device) =>
|
|
247
|
+
deviceInfo(device).website.productPagePath &&
|
|
248
|
+
`https://www.nordicsemi.com/${deviceInfo(device).website.productPagePath}`;
|
|
249
|
+
|
|
250
|
+
export const buyOnlineUrl = (device: Device) =>
|
|
251
|
+
deviceInfo(device).website.buyOnlineParams &&
|
|
252
|
+
`https://www.nordicsemi.com/About-us/BuyOnline?${
|
|
253
|
+
deviceInfo(device).website.buyOnlineParams
|
|
254
|
+
}`;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="21.08" height="20" viewBox="0 0 21.08 20"><g transform="translate(-0.06)"><path d="M12.74,12.92v.42a1.92,1.92,0,0,0,0,.24v.6c0,.18-.05.52-.08.78a7.66,7.66,0,0,1-.21.95,2.29,2.29,0,0,1-.08.28.12.12,0,0,1,0,.1,5.16,5.16,0,0,1-1,1.59c-.18.2-.36.39-.55.57a5.19,5.19,0,0,1-1,.71,5.77,5.77,0,0,1-1.22.53A7.52,7.52,0,0,1,7.49,20H6a6.68,6.68,0,0,1-1.72-.25,6.52,6.52,0,0,1-1.21-.45A5.71,5.71,0,0,1,2,18.56,5.38,5.38,0,0,1,.29,15.9a8.46,8.46,0,0,1-.23-1.22c0-.22,0-.43,0-.65a.31.31,0,0,0,0-.1v-.08a.07.07,0,0,1,.06,0H4.44c.1,0,.11,0,.12.1a3.73,3.73,0,0,0,.23.93,1.74,1.74,0,0,0,.54.72,1.58,1.58,0,0,0,.79.29,2.28,2.28,0,0,0,.78,0,1.52,1.52,0,0,0,.6-.32,1.61,1.61,0,0,0,.5-.94,4.46,4.46,0,0,0,.14-.89,7.54,7.54,0,0,0,0-.82A5,5,0,0,0,8,11.49a1.83,1.83,0,0,0-.37-.65A1.34,1.34,0,0,0,7,10.45a2.32,2.32,0,0,0-.83-.06,1.71,1.71,0,0,0-.63.15,1.59,1.59,0,0,0-.62.53,2.69,2.69,0,0,0-.31.61.14.14,0,0,1,0,.06.07.07,0,0,1-.07,0h-4c-.16,0-.16,0-.16-.15V4.85c0-.15,0-.15.16-.15H4.42V7.26h0a4.41,4.41,0,0,1,1.63-.64,5.51,5.51,0,0,1,.71-.09h.48a6.36,6.36,0,0,1,1.89.33,5,5,0,0,1,1.32.71,4.3,4.3,0,0,1,.65.63,5.73,5.73,0,0,1,.57.73,6,6,0,0,1,.71,1.62,8.05,8.05,0,0,1,.18,1,2.425,2.425,0,0,0,.06.65,1.023,1.023,0,0,1,0,.43v.24C12.62,12.95,12.73,12.9,12.74,12.92Z"/><path d="M20.32,1.4a.62.62,0,0,0-.15-.4.34.34,0,0,0-.53.07,2.92,2.92,0,0,0-.19.49,5.29,5.29,0,0,1-.24.8,1.19,1.19,0,0,1-.46.6,1.28,1.28,0,0,1-.39.13H18A1.34,1.34,0,0,1,17.55,3a1.32,1.32,0,0,1-.44-.44A1.67,1.67,0,0,1,16.92,2a1.78,1.78,0,0,1,0-.46A2.09,2.09,0,0,1,17,.84a2.46,2.46,0,0,1,.36-.68h.07l.61.42V.64a2.26,2.26,0,0,0-.34.74.91.91,0,0,0,0,.61.34.34,0,0,0,.43.2A.35.35,0,0,0,18.37,2a2.07,2.07,0,0,0,.18-.47,5.16,5.16,0,0,1,.24-.79,1.47,1.47,0,0,1,.36-.53A1,1,0,0,1,19.69,0H20a1.77,1.77,0,0,0,.2,0,1.13,1.13,0,0,1,.8.75,1.92,1.92,0,0,1,.14.62v.29a2.89,2.89,0,0,1-.29,1.07,2.44,2.44,0,0,1-.35.51h-.06L20.14,3l-.21-.18a.27.27,0,0,0-.08-.07V2.69a2.19,2.19,0,0,0,.23-.33,1.88,1.88,0,0,0,.22-.57,1.23,1.23,0,0,0,0-.19A.67.67,0,0,0,20.32,1.4Z"/><path d="M13.84,2.29a1.84,1.84,0,0,1,.25-.23,1.9,1.9,0,0,1,.21-.19l.35-.3L15,1.29l.42-.37.29-.26L16,.36l.21-.19L16.38,0h0V4.82h0l-.25.21-.7.62-.49.44-.61.54-.48.42h0V2.33S13.83,2.3,13.84,2.29Z"/><path d="M19.4,3.87V5.73a.059.059,0,0,0,.06.06h.79V3.64a.17.17,0,0,1,0-.07h.79a.13.13,0,0,1,0,.06v3H17c-.07,0-.07,0-.07-.07v-3h.81V5.78h.78V3.87h.8Z"/><path d="M17.78,15.24h.79V13.38c0-.05,0-.06.06-.06h.69v1.86c0,.05,0,.07.06.07h.79V13.09c0-.06,0-.06.07-.06H21c.05,0,.06,0,.06.06v3.05H16.95V13.07h.76a.053.053,0,0,1,.05.06v2.06A.471.471,0,0,0,17.78,15.24Z"/><path d="M20.64,17a1.45,1.45,0,0,1,.46,1,2.56,2.56,0,0,1-.52,1.81.81.81,0,0,1-.12.14l-.14-.11-.44-.37c-.06-.05-.06-.05,0-.11a1.93,1.93,0,0,0,.4-.78,1.34,1.34,0,0,0,0-.66.31.31,0,0,0-.06-.13.33.33,0,0,0-.58,0,1.82,1.82,0,0,0-.17.44c-.08.25-.13.49-.21.73a2.18,2.18,0,0,1-.22.43.93.93,0,0,1-.72.4,1.36,1.36,0,0,1-.45,0,1.13,1.13,0,0,1-.49-.24,1.07,1.07,0,0,1-.32-.44,1.94,1.94,0,0,1-.12-.39,2.44,2.44,0,0,1,0-.54,1.91,1.91,0,0,1,.1-.52,2.62,2.62,0,0,1,.19-.46,2.23,2.23,0,0,1,.2-.3h.05l.63.44h0s-.16.26-.23.4a1.6,1.6,0,0,0-.14.53.67.67,0,0,0,0,.2.46.46,0,0,0,.2.39.36.36,0,0,0,.37,0,.73.73,0,0,0,.19-.37c.06-.17.1-.35.15-.53a2.85,2.85,0,0,1,.25-.63,1,1,0,0,1,.47-.47,1.06,1.06,0,0,1,.36-.09,1.34,1.34,0,0,1,.74.13Z"/><path d="M11.44.07V.83a.059.059,0,0,1-.06.06H9.29S9.23.9,9.23,1v.76h1.9v.75c0,.06,0,.06-.06.06H9.23V4.15h-.9v-4h3.11Z"/><path d="M2.34,2.24A.48.48,0,0,0,2,1.81a.53.53,0,0,0-.73.4,1.79,1.79,0,0,0,0,.23V4.1a.059.059,0,0,1-.06.06H.37V1h.88v.42A1.08,1.08,0,0,1,2,1h.28a1.09,1.09,0,0,1,.5.16.92.92,0,0,1,.41.59,1.65,1.65,0,0,1,.05.44V4.18H2.4V2.34C2.4,2.28,2.33,2.27,2.34,2.24Z"/><path d="M21.05,8.39H17c-.05,0-.07,0-.07-.06V7.5h4.06c.06,0,.06,0,.06.06v.79a.07.07,0,0,1,0,.04Z"/><path d="M17,16.13h4c.05,0,.07,0,.07-.06v-3c0-.05,0-.06-.05-.06h-.69a.059.059,0,0,0-.06.06v.03c0-.07,0-.07.08-.07H21c.07,0,.07,0,.07.07v3c0,.07,0,.08-.07.08H17a.08.08,0,0,1,0-.05Z"/><path d="M11.44.07h-3c-.07,0-.07,0-.07.07v4c0,.07,0,.07.07.07h.83a.08.08,0,0,1-.07,0H8.39c-.07,0-.07,0-.07-.08V.14c0-.07,0-.08.07-.08h3Z"/><path d="M17,12.43h4c.05,0,.07,0,.07-.06v-.78s0-.06-.05-.06H21c.07,0,.07,0,.07.07v.76c0,.07,0,.08-.07.08H17a.08.08,0,0,1,0-.01Z"/><path d="M21.05,8.39V7.54H21c.07,0,.07,0,.07.07v.77S21.07,8.37,21.05,8.39Z"/><path d="M13.84,2.29V7.08h0V2.36A.17.17,0,0,1,13.84,2.29Z"/><path d="M16.38,4.87V0a.17.17,0,0,1,0,.07v4.7A.13.13,0,0,1,16.38,4.87Z"/><path d="M21.05,6.68V6.64A.028.028,0,0,1,21.05,6.68Z"/><path d="M17.78,5.78V3.72c0-.06,0-.07-.07-.07H17a.08.08,0,0,1,.07,0h.67c.07,0,.07,0,.07.08C17.79,4.37,17.78,5.08,17.78,5.78Z"/><path d="M17.78,15.24V13.18c0-.06,0-.07-.07-.07h0c.07,0,.07,0,.07.07C17.79,13.83,17.78,14.54,17.78,15.24Z"/><path d="M9.23,2.58h1.88c.05,0,.07,0,.07-.07V1.76a.13.13,0,0,1,0,.06v.69c0,.07,0,.07-.08.07Z"/><path d="M2.35,2.34V4.1c0,.05,0,.06.07.06h.83a.1.1,0,0,1-.07,0H2.42c-.07,0-.07,0-.07-.08Z"/><path d="M4.47,4.73H4.4S4.45,4.71,4.47,4.73Z"/><path d="M20.26,3.57v.07a.2.2,0,0,1,0-.07Z"/><path d="M4.1,4.15H5V4.08c0,.09,0,.09-.08.09H4.17a.1.1,0,0,1-.07-.02Z"/><path d="M6.12.07H4.1a.1.1,0,0,1,.07,0h2Z"/><path d="M6.58,4.15h0Z"/><path d="M21.05,10V9.94a.13.13,0,0,1,0,.06Z"/><path d="M19.4,3.87Z"/><path d="M5,2.86Z"/><path d="M1.28,1.45h0V1.11a1.61,1.61,0,0,0,0,.34Z"/><path d="M12.73,13.65v-.31a1.61,1.61,0,0,1,0,.31Z"/><path d="M12.74,12.92v-.29A1.38,1.38,0,0,1,12.74,12.92Z"/><path d="M21.13,1.66V1.37a1.41,1.41,0,0,1,0,.29Z"/><path d="M18.43,9h-.2a.45.45,0,0,1,.2,0Z"/><path d="M17.72,18.46a.67.67,0,0,1,0-.2Z"/><path d="M2.28,1h-.2a.67.67,0,0,1,.2,0Z"/><path d="M20.32,1.4a.45.45,0,0,1,0,.2Z"/><path d="M6.73,20Z"/><path d="M7.63,4.14l-.72-1-.27-.4a1.47,1.47,0,0,0,.48-.29,1.3,1.3,0,0,0,.4-.93A1.42,1.42,0,0,0,7.46,1,1.14,1.14,0,0,0,6.8.23,2,2,0,0,0,6.12.07h-2V4.15H5V2.86h.7c.09.14.18.28.28.42l.59.88h1S7.63,4.17,7.63,4.14Zm-1-2.63A.55.55,0,0,1,6.09,2H5V.88H6a.76.76,0,0,1,.21,0,.54.54,0,0,1,.39.63Z"/><path d="M21.06,11.59a.053.053,0,0,0-.06-.05H19.81v-.7l.72-.49.54-.35V9l-.21.14-.58.4-.65.44a1.59,1.59,0,0,0-.15-.29A1.2,1.2,0,0,0,19,9.17,1.43,1.43,0,0,0,18.43,9h-.46a1.16,1.16,0,0,0-.68.42,1.54,1.54,0,0,0-.24.48,2.26,2.26,0,0,0-.08.51v1.95h4.05Zm-2.16-.05H17.79v-.86a.86.86,0,0,1,0-.28.53.53,0,0,1,.44-.4.56.56,0,0,1,.63.36.81.81,0,0,1,.06.31v.87Z"/></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="27.23" height="20.04" viewBox="0 0 27.23 20.04"><path d="M0,13.84H4.41c.13,0,.13,0,.15.13A2.92,2.92,0,0,0,5,15.18a1.52,1.52,0,0,0,1.25.72,2.48,2.48,0,0,0,.72-.05,1.62,1.62,0,0,0,1.1-1,3.93,3.93,0,0,0,.2-1,9.93,9.93,0,0,0,0-1.09A4.07,4.07,0,0,0,8,11.34a1.5,1.5,0,0,0-1.35-1,2.25,2.25,0,0,0-1.06.15,1.68,1.68,0,0,0-.91,1l-.09.24s0,.06-.08.06h-4c-.13,0-.13,0-.13-.13V4.8c0-.12,0-.12.12-.12H4.35c.13,0,.13,0,.13.12V7.25c0,.01,0,0,.07,0a4.59,4.59,0,0,1,1.33-.56,5.43,5.43,0,0,1,1.39-.15,6,6,0,0,1,2.5.56,4.72,4.72,0,0,1,1.55,1.22,5.94,5.94,0,0,1,1.33,3c.05.37.08.74.1,1.11s0,.85,0,1.28a9,9,0,0,1-.27,2.12,5.3,5.3,0,0,1-1.11,2.06A5.71,5.71,0,0,1,9.7,19.27a6.76,6.76,0,0,1-2.09.69,8,8,0,0,1-.84.08H6.06a1.82,1.82,0,0,0-.33,0,5.77,5.77,0,0,1-1.6-.27A7.31,7.31,0,0,1,3,19.28a5.4,5.4,0,0,1-1.53-1.15A5.16,5.16,0,0,1,.43,16.35a7.12,7.12,0,0,1-.37-1.58c0-.24,0-.49,0-.73h0Z"/><path d="M27.23,6.21a1.66,1.66,0,0,0,0,.32A5,5,0,0,1,26.32,9a12.1,12.1,0,0,1-1.1,1.36c-.64.68-1.27,1.36-1.91,2l-1.59,1.71L19.89,16c-.09.1-.19.2-.28.31a.18.18,0,0,1-.13.06H14.05c-.06,0,0,0,0-.06l2-2.15,1.75-1.91L19.92,10l1.89-2.06a3.49,3.49,0,0,0,.72-1.06,2.47,2.47,0,0,0,.06-1.61A1.5,1.5,0,0,0,21.44,4.2a2.21,2.21,0,0,0-1.32.09,1.53,1.53,0,0,0-1,1.21,2.42,2.42,0,0,0,0,.47c0,.06,0,.08-.08.08H14.65c-.06,0-.09,0-.08-.08a5.86,5.86,0,0,1,1.31-3.79A5.63,5.63,0,0,1,17.57.79,6.71,6.71,0,0,1,20,.06h1.36a1.31,1.31,0,0,0,.28,0,5.42,5.42,0,0,1,1.45.23,6.23,6.23,0,0,1,1.2.47,5.68,5.68,0,0,1,1.22.85A5.21,5.21,0,0,1,26.7,3.23a5.64,5.64,0,0,1,.48,1.61,4.71,4.71,0,0,1,0,.75h0Z"/><path d="M8.36,0h3.11a.11.11,0,0,1-.08,0H8.52C8.46.05,8.4.07,8.36,0Z"/><path d="M6.1,0h0A.09.09,0,0,1,6,.05H4.12V0Z"/><path d="M8.36,0h3.11V.78a.059.059,0,0,1-.06.06H9.34c-.07,0-.09,0-.09.09v.7c0,.07,0,.09.09.09h1.78c.07,0,.09,0,.09.09v.65c0,.06,0,.09-.09.09H9.36c-.08,0-.11,0-.11.09V4.06c0,.06,0,.08-.08.08H8.43c-.06,0-.08,0-.08-.07v-4Z"/><path d="M1.27,1.4l.22-.23A1.1,1.1,0,0,1,3,1.28,1.16,1.16,0,0,1,3.25,2c0,.68,0,1.35,0,2a.058.058,0,0,1-.07.06H2.44c-.07,0-.08,0-.08-.09V2.31a.88.88,0,0,0,0-.17.49.49,0,0,0-.52-.41.5.5,0,0,0-.53.42,1.23,1.23,0,0,0,0,.2V4c0,.07,0,.09-.09.09H.45c-.06,0-.08,0-.08-.06V1h.84c.05,0,.06,0,.06.06Z"/><path d="M16.17,18.32V17c0-.06,0-.08.08-.08h1.94c.06,0,.08,0,.08.07a2.8,2.8,0,0,0,0,.41c0,.06,0,.07-.08.07h-1.3c-.13,0-.11,0-.11.11V18c0,.06,0,.07.07.07H18c.06,0,.09,0,.09.09a2.54,2.54,0,0,0,0,.39c0,.06,0,.08-.08.07H16.87c-.07,0-.1,0-.09.09v.41c0,.06,0,.08.08.08h1.33c.08,0,.1,0,.1.09a2.539,2.539,0,0,0,0,.39c0,.05,0,.07-.07.07h-2c-.06,0-.06,0-.06-.08Z"/><path d="M22.61,18.31V17.02c0-.07,0-.09.09-.09h1.93c.06,0,.08,0,.08.07a2.67,2.67,0,0,0,0,.4c0,.06,0,.08-.08.08H23.31c-.1,0-.1,0-.1.1v.36c0,.12,0,.1.09.1h1.14c.07,0,.09,0,.08.09v.39c0,.06,0,.08-.07.07H23.3c-.07,0-.09,0-.09.09a2.8,2.8,0,0,1,0,.41c0,.06,0,.08.08.08h1.34c.07,0,.09,0,.09.09a2.539,2.539,0,0,0,0,.39c0,.05,0,.07-.06.07h-2c-.06,0-.05,0-.05-.08Z"/><path d="M26.11,19.76A1.78,1.78,0,0,1,25,19.35c-.05,0-.05-.05,0-.09l.28-.34c0-.05.06,0,.1,0a1.2,1.2,0,0,0,.7.3.56.56,0,0,0,.34-.06.22.22,0,0,0,0-.4,1.49,1.49,0,0,0-.4-.15,4.13,4.13,0,0,1-.5-.15.71.71,0,0,1-.48-.67.79.79,0,0,1,.44-.78,1.33,1.33,0,0,1,1-.07,1.48,1.48,0,0,1,.57.26v.1l-.26.36c0,.05,0,0-.08,0a1.41,1.41,0,0,0-.58-.24.57.57,0,0,0-.29,0,.21.21,0,0,0-.16.19.22.22,0,0,0,.13.24,1.7,1.7,0,0,0,.4.13,2.6,2.6,0,0,1,.47.16.72.72,0,0,1,.49.71.79.79,0,0,1-.49.76,1.32,1.32,0,0,1-.57.15Z"/><path d="M14.76,19.75a1.82,1.82,0,0,1-1.12-.4.073.073,0,0,1,0-.11,3.869,3.869,0,0,0,.28-.33c.09-.11.05,0,.09,0a1.2,1.2,0,0,0,.85.3.52.52,0,0,0,.22-.07.22.22,0,0,0,0-.38,1.37,1.37,0,0,0-.44-.16,3.68,3.68,0,0,1-.47-.15.68.68,0,0,1-.46-.64.76.76,0,0,1,.42-.78,1.34,1.34,0,0,1,1-.06,1.72,1.72,0,0,1,.49.24v.1l-.24.35c0,.05-.05.05-.1,0a1.13,1.13,0,0,0-.64-.23.41.41,0,0,0-.24,0,.227.227,0,0,0-.02.4,1.82,1.82,0,0,0,.39.14,4.32,4.32,0,0,1,.51.16.73.73,0,0,1,.46.73.76.76,0,0,1-.48.73,1.41,1.41,0,0,1-.5.16Z"/><path d="M22.05,18.32v1.3c0,.07,0,.09-.08.09a3.69,3.69,0,0,0-.47,0c-.05,0-.06,0-.06-.07V17a.059.059,0,0,1,.06-.06H22c.07,0,.08,0,.08.08Z"/><path d="M7.6,4,6.7,2.71V2.62a1.24,1.24,0,0,0,.61-.5,1.41,1.41,0,0,0,.18-1A1.16,1.16,0,0,0,6.86.19,2,2,0,0,0,6.1,0h-2V4c0,.06,0,.07.07.06h.74C5,4.12,5,4.1,5,4V2.85c0-.06,0-.08.08-.08a5.23,5.23,0,0,0,.56,0,.12.12,0,0,1,.11.07l.79,1.18a.1.1,0,0,0,.12.06h1A.26.26,0,0,0,7.6,4ZM6.5,1.79a.6.6,0,0,1-.43.2h-1C5,2,5,2,5,1.94V.89c0-.17,0-.06.06-.06H6.17a.58.58,0,0,1,.33.96Z"/><path d="M21.06,19.66l-.61-.89v-.08A.84.84,0,0,0,21,18a.86.86,0,0,0-.57-.95,1,1,0,0,0-.34-.06H18.74a.059.059,0,0,0-.06.06V19.7c0,.05,0,.07.07.07a3.69,3.69,0,0,1,.47,0c.07,0,.08,0,.08-.09v-.74c0-.05,0-.06.07-.06h.33a.13.13,0,0,1,.12.06l.51.77s0,.06.08.06h.67S21.06,19.67,21.06,19.66Zm-1-1.39h-.68v-.79a5.46,5.46,0,0,1,.7,0,.35.35,0,0,1,.34.4.37.37,0,0,1-.42.39Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="28.03" height="20.02" viewBox="0 0 28.03 20.02"><g transform="translate(-129.98 -269.5)"><path d="M129.99,283.39c1.37,0,2.74.01,4.12.01h.37c.06.27.11.52.18.77a1.769,1.769,0,0,0,3.45-.14,6.3,6.3,0,0,0-.04-2.8,1.574,1.574,0,0,0-1.54-1.34,1.72,1.72,0,0,0-1.87,1.07.456.456,0,0,1-.52.33c-1.14-.02-2.28-.01-3.42,0-.24,0-.34-.05-.34-.32q.015-3.165,0-6.33c0-.26.08-.33.33-.33,1.15.01,2.3.01,3.44,0,.23,0,.31.06.3.3-.02.74-.01,1.47-.01,2.2a11.134,11.134,0,0,1,1.39-.51,5.26,5.26,0,0,1,6.66,4.16,10.409,10.409,0,0,1-.01,4.58,5.561,5.561,0,0,1-4.33,4.29c-.28.07-.56.12-.84.19h-1.9c-.27-.06-.54-.11-.81-.18a5.433,5.433,0,0,1-4.45-4.69c-.07-.39-.11-.79-.17-1.18A.283.283,0,0,0,129.99,283.39Z"/><path d="M149.55,289.5c-.37-.08-.75-.14-1.11-.24A5.493,5.493,0,0,1,144.5,286a6.811,6.811,0,0,1-.47-2.57,2.18,2.18,0,0,1,.24-.01h3.98c.17,0,.27.02.29.23a1.911,1.911,0,0,0,2.35,1.81,1.787,1.787,0,0,0,1.66-1.8,2.914,2.914,0,0,0-.19-1.37,2.068,2.068,0,0,0-2.02-1.4q-1.08-.015-2.16,0c-.27.01-.34-.1-.34-.34v-2.8a.461.461,0,0,1,.11-.27q1.83-2.16,3.66-4.31a.373.373,0,0,1,.26-.12c1.8-.01,3.6-.01,5.48-.01-1.43,1.69-2.82,3.33-4.22,4.99.35.16.66.3.97.45a4.724,4.724,0,0,1,2.62,3.04,6.048,6.048,0,0,1-.88,5.73,5.8,5.8,0,0,1-3.71,2.11c-.21.04-.42.08-.63.13C150.85,289.5,150.2,289.5,149.55,289.5Z"/><path d="M158.01,271.91a1.444,1.444,0,0,1-2.23.09c.12-.14.23-.28.3-.37.34.1.62.21.91.27.16.03.38-.02.38-.22,0-.11-.16-.25-.29-.31a6.173,6.173,0,0,0-.61-.19.755.755,0,0,1-.6-.83.858.858,0,0,1,.71-.79l.24-.06h.11a1.788,1.788,0,0,1,1,.42c-.11.15-.21.3-.28.39a6.555,6.555,0,0,0-.87-.19.317.317,0,0,0-.25.2c-.02.08.09.21.18.26a1.485,1.485,0,0,0,.42.14,1.443,1.443,0,0,1,.86.51C158.01,271.46,158.01,271.68,158.01,271.91Z"/><path d="M137.58,273.67c-.35,0-.66.01-.96-.01-.07,0-.14-.08-.19-.14a4.3,4.3,0,0,1-.48-.72c-.2-.44-.53-.49-.97-.39v1.23h-.89v-4.07c.8.03,1.61.02,2.4.11a1.127,1.127,0,0,1,.95,1.01,1.313,1.313,0,0,1-.59,1.4c-.07.04-.14.08-.24.13C136.92,272.71,137.24,273.17,137.58,273.67Zm-2.59-2.1c.35,0,.67.01.99,0a.564.564,0,0,0,.56-.55.524.524,0,0,0-.54-.56c-.33-.02-.67,0-1.02,0C134.99,270.81,134.99,271.17,134.99,271.57Z"/><path d="M138.25,269.62h3.07v.83h-2.15v.83h1.89v.81h-1.89v1.55h-.92C138.25,272.31,138.25,270.98,138.25,269.62Z"/><path d="M133.2,273.66h-.86v-1.49a2.966,2.966,0,0,0-.03-.42.47.47,0,0,0-.53-.43.476.476,0,0,0-.5.47c-.03.54-.02,1.08-.03,1.62,0,.07-.01.15-.01.24h-.85v-3.07h.84c.02.1.03.2.06.35a1.2,1.2,0,0,1,.91-.43.932.932,0,0,1,1,.89C133.23,272.14,133.2,272.89,133.2,273.66Z"/><path d="M151.19,271.43c.21.32.42.63.63.94a.684.684,0,0,1-.95-.31,1.534,1.534,0,0,1-.14-.21.49.49,0,0,0-.68-.3v.85h-.62v-2.78c.55,0,1.1-.04,1.64.01a.783.783,0,0,1,.69.74.919.919,0,0,1-.4.95C151.31,271.36,151.25,271.39,151.19,271.43Zm-1.13-1.26v.78c.24,0,.47.02.69,0a.39.39,0,0,0-.01-.78C150.53,270.16,150.3,270.17,150.06,270.17Z"/><path d="M146.87,269.6h2.1v.56h-1.48v.57h1.3v.55h-1.3v.57h1.48v.56h-2.11C146.87,271.47,146.87,270.54,146.87,269.6Z"/><path d="M155.53,269.61v.55h-1.49v.56h1.3v.57h-1.3v.57h1.49v.55h-2.11v-2.79C154.12,269.61,154.81,269.61,155.53,269.61Z"/><path d="M146.37,269.91c-.11.16-.21.3-.32.46a2.015,2.015,0,0,0-.25-.13,2.943,2.943,0,0,0-.59-.12.355.355,0,0,0-.24.21c-.02.06.09.2.17.24a5.991,5.991,0,0,0,.64.21c.5.16.71.44.68.86a.873.873,0,0,1-.83.81,1.757,1.757,0,0,1-1.42-.46c.11-.14.23-.28.34-.42.18.09.35.19.52.27a.817.817,0,0,0,.27.06c.19.01.41.02.45-.22s-.18-.27-.34-.33c-.18-.06-.38-.1-.56-.17a.744.744,0,0,1-.59-.78.8.8,0,0,1,.65-.8A1.562,1.562,0,0,1,146.37,269.91Z"/><path d="M152.83,269.61v2.8h-.6v-2.8Z"/></g></svg>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
|
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="31" viewBox="30 0 362.1 277" xml:space="preserve">
|
|
4
|
+
<g>
|
|
5
|
+
<g>
|
|
6
|
+
<g>
|
|
7
|
+
<path d="M322.8,245.5l-6.8-5.6c3.2-3.9,5.3-8,5.3-13c0-3.9-1.6-6.3-4.1-6.3h-0.1c-2.4,0-3.7,1.5-5.5,8.7
|
|
8
|
+
c-2.2,8.7-4.6,14.4-13.3,14.4h-0.1c-7.9,0-13.1-6.3-13.1-15.2c0-6.3,2-11.7,5.5-16.1l7.2,5c-2.7,3.8-4.3,7.6-4.3,11.3
|
|
9
|
+
c0,3.7,1.7,5.6,3.8,5.6h0.1c2.9,0,3.8-1.9,5.7-9.4c2.3-8.8,5.5-13.8,13-13.8h0.1c8.6,0,13.4,6.6,13.4,15.9
|
|
10
|
+
C329.7,233.6,327.4,240.3,322.8,245.5z"/>
|
|
11
|
+
<path d="M285.7,205v-32.7h8.5v23.2h8.8V175h8.5v20.5h9.1v-23.6h8.5v33H285.7z"/>
|
|
12
|
+
<path d="M285.7,165.6v-19.8c0-5.5,1.6-9.8,4.4-12.7c2.4-2.4,5.8-3.7,9.9-3.7h0.1c7,0,11.4,3.8,13.5,9.3l15.5-10.6v11.2l-13.9,9.3
|
|
13
|
+
v7.5h13.9v9.5H285.7z M306.8,146.4c0-4.7-2.5-7.3-6.1-7.3h-0.1c-4.1,0-6.2,2.9-6.2,7.5v9.5h12.5V146.4z"/>
|
|
14
|
+
<path d="M285.7,122.5V113h43.4v9.5H285.7z"/>
|
|
15
|
+
<path d="M285.7,104.3V71.5h8.5v23.2h8.8V74.3h8.5v20.5h9.1V71.2h8.5v33.1H285.7z"/>
|
|
16
|
+
<path d="M322.9,67.9l-6.8-5.7c3.3-3.9,5.3-8.1,5.3-13.1c0-3.9-1.6-6.3-4.1-6.3h-0.1c-2.4,0-3.7,1.5-5.6,8.8
|
|
17
|
+
c-2.3,8.8-4.7,14.5-13.4,14.5h-0.1c-7.9,0-13.2-6.4-13.2-15.3c0-6.4,2-11.8,5.6-16.3l7.3,5c-2.7,3.9-4.3,7.7-4.3,11.4
|
|
18
|
+
c0,3.7,1.7,5.6,3.8,5.6h0.1c2.9,0,3.8-1.9,5.8-9.4c2.3-8.9,5.5-13.9,13.1-13.9h0.1c8.7,0,13.6,6.6,13.6,16.1
|
|
19
|
+
C329.9,55.9,327.6,62.6,322.9,67.9z"/>
|
|
20
|
+
</g>
|
|
21
|
+
<path d="M278,196.8c-3.7,6.4-10.2,9.4-17.3,9.4c-11.1,0-20.6-7.3-20.6-23.1v-89c0-15.8,9.5-23.4,20.6-23.4
|
|
22
|
+
c7.1,0,13.6,3.2,17.3,9.7V25.7c-5.6-1.2-11.4-1.8-17.3-1.8c-37.4,0-72.5,23.7-72.5,70.3v88.6c0,46.5,35.1,70.3,72.5,70.3
|
|
23
|
+
c5.9,0,11.7-0.6,17.3-1.8V196.8z"/>
|
|
24
|
+
</g>
|
|
25
|
+
<g>
|
|
26
|
+
<g>
|
|
27
|
+
<path d="M36.2,36.9h10.3V42c2.4-3,5.4-5.8,10.6-5.8c7.8,0,12.3,5.1,12.3,13.4v23.4H59V52.9c0-4.9-2.3-7.4-6.2-7.4
|
|
28
|
+
c-3.9,0-6.4,2.5-6.4,7.4v20.2H36.2V36.9z"/>
|
|
29
|
+
<path d="M79.3,25.8h21.6c6,0,10.7,1.7,13.8,4.8c2.6,2.6,4,6.3,4,10.8v0.1c0,7.6-4.1,12.4-10.1,14.6l11.5,16.9H108L97.8,57.9h-8.2
|
|
30
|
+
v15.1H79.3V25.8z M100.2,48.8c5.1,0,8-2.7,8-6.7V42c0-4.5-3.1-6.8-8.2-6.8H89.7v13.6H100.2z"/>
|
|
31
|
+
<path d="M128.1,25.8h36v9.4h-25.6v10.1H161v9.4h-22.5v18.3h-10.4V25.8z"/>
|
|
32
|
+
</g>
|
|
33
|
+
<polygon points="104.8,79.8 37,251.6 93.9,251.6 161.7,79.8 "/>
|
|
34
|
+
</g>
|
|
35
|
+
</g>
|
|
36
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="21.53" height="20" viewBox="0 0 21.53 20"><g transform="translate(-0.05)"><path d="M21.56,2a1.414,1.414,0,0,1-.13.43,2.34,2.34,0,0,1-.48.8l-.64-.54.05-.06a2,2,0,0,0,.42-.87,1.18,1.18,0,0,0,0-.59.56.56,0,0,0-.1-.17.33.33,0,0,0-.54,0,1.52,1.52,0,0,0-.2.47c-.07.25-.14.51-.23.77a2.33,2.33,0,0,1-.19.39.92.92,0,0,1-.6.39A1.26,1.26,0,0,1,18.13,3a1.19,1.19,0,0,1-.66-.73,2.07,2.07,0,0,1-.08-.89,2.41,2.41,0,0,1,.47-1.2V.13l.68.47V.66a2.42,2.42,0,0,0-.34.77,1,1,0,0,0,0,.51.34.34,0,0,0,.24.25.32.32,0,0,0,.4-.19A1.91,1.91,0,0,0,19,1.56c.07-.23.13-.46.2-.69a1.41,1.41,0,0,1,.3-.51A.94.94,0,0,1,20.14,0h.35a1.15,1.15,0,0,1,1,.79,1.87,1.87,0,0,1,.07.22Z"/><path d="M21.56,18.62a3,3,0,0,1-.07.32,2.51,2.51,0,0,1-.51.95v.05l-.63-.52c.1-.16.21-.31.3-.47a1.45,1.45,0,0,0,.16-1,.47.47,0,0,0-.09-.22.33.33,0,0,0-.55,0,2,2,0,0,0-.19.45c-.07.27-.15.54-.24.8a1.24,1.24,0,0,1-.35.55,1,1,0,0,1-.63.22,1.15,1.15,0,0,1-.82-.23,1.22,1.22,0,0,1-.46-.8,2.3,2.3,0,0,1,.46-1.89h0l.66.46c-.09.17-.18.32-.26.49a1.29,1.29,0,0,0-.12.7.63.63,0,0,0,.07.22.32.32,0,0,0,.57,0,1.43,1.43,0,0,0,.14-.34c.08-.26.15-.52.23-.77a1.74,1.74,0,0,1,.25-.49.93.93,0,0,1,.68-.4,1.27,1.27,0,0,1,.74.11,1.15,1.15,0,0,1,.61.72,2,2,0,0,1,.07.26Z"/><path d="M3.23,20l3.25-7.68H6.42a2.22,2.22,0,0,1-.76.18H5.33a4.55,4.55,0,0,1-1.72-.3,5.24,5.24,0,0,1-1.78-1.11A5.71,5.71,0,0,1,.23,8.31a5.56,5.56,0,0,1-.18-1q0-.285,0-.57V6.3a8.26,8.26,0,0,1,.08-1,2.832,2.832,0,0,1,.08-.4c.02-.13,0-.06.07-.06H4.35c.07,0,.07,0,.08.07V6.63a2.93,2.93,0,0,0,.08.83A1.6,1.6,0,0,0,5.78,8.71a2.36,2.36,0,0,0,.65.07,2.16,2.16,0,0,0,1.05-.3,1.62,1.62,0,0,0,.74-1.09,2.94,2.94,0,0,0,0-.51V4.94c0-.07,0-.07.06-.07h4.19c.05,0,.07,0,.08.07a6.983,6.983,0,0,0,.14.88V6.84a2.659,2.659,0,0,1-.07.71,9.88,9.88,0,0,1-.51,2c-.24.66-.49,1.31-.75,2s-.62,1.54-.93,2.31c-.61,1.53-1.23,3-1.84,4.57-.21.51-.42,1-.62,1.54A.09.09,0,0,1,8,20Z"/><path d="M14.32,7.09V2.36a.15.15,0,0,1,0-.12L16.82.08h0V4.8a.11.11,0,0,1,0,.09L15.17,6.34,14.39,7Z"/><path d="M7.3,2.7l1,1.45H7.23c-.27-.41-.54-.82-.82-1.23a.08.08,0,0,0-.08,0H5.66v1.3h-.9V.06H6.63a1.77,1.77,0,0,1,.9.2,1.15,1.15,0,0,1,.62.92,1.47,1.47,0,0,1-.09.8,1.24,1.24,0,0,1-.69.68ZM5.66,2.05H6.72a.56.56,0,0,0,.53-.5A.52.52,0,0,0,6.92,1,.57.57,0,0,0,6.67.89h-1Z"/><path d="M20.23,11.54h1.3v.9H17.45V10.51a1.73,1.73,0,0,1,.19-.81,1.13,1.13,0,0,1,.76-.62,1.6,1.6,0,0,1,.84,0,1.23,1.23,0,0,1,.81.76v.05l1.45-1v1a.08.08,0,0,1,0,.08l-1.22.81a.11.11,0,0,0,0,.09v.65Zm-.8,0V10.53a.55.55,0,0,0-.64-.57.49.49,0,0,0-.43.28,1,1,0,0,0-.09.41v.89Z"/><path d="M17.46,13.06h.79v2.18h.83V13.32h.8v1.92h.85V13h.8v3.1H17.46Z"/><path d="M17.46,3.6h.79V5.78h.82V3.86h.81V5.78h.85V3.57h.8v3.1H17.46Z"/><path d="M9.88,4.15H9V.07h3.11V.88H9.88v.87h1.95v.82H9.88Z"/><path d="M1.92,4.15H1V1h.88v.43h0A1.08,1.08,0,0,1,2.6,1a1.06,1.06,0,0,1,1,.27,1,1,0,0,1,.28.63V4.16H3V2.39a1.07,1.07,0,0,0,0-.25.49.49,0,0,0-.54-.37.51.51,0,0,0-.5.5,1.21,1.21,0,0,0,0,.19V4.15Z"/><path d="M21.53,8.39H17.46v-.9h4.07Z"/></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 2.02c-5.51 0-9.98 4.47-9.98 9.98s4.47 9.98 9.98 9.98 9.98-4.47 9.98-9.98S17.51 2.02 12 2.02zM11.48 20v-6.26H8L13 4v6.26h3.35L11.48 20z"/></svg>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
height="23" viewBox="0 0 316 316" style="enable-background:new 0 0 316 316;" xml:space="preserve">
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
path{fill-rule: evenodd}
|
|
7
|
+
</style>
|
|
8
|
+
<g>
|
|
9
|
+
<path d="M54.3,38.1h206.8c9.2,0,16.8,7.6,16.8,16.8v206.8c0,9.2-7.6,16.8-16.8,16.8H54.3c-9.2,0-16.8-7.6-16.8-16.8
|
|
10
|
+
V54.5C37.9,45.3,45.1,38.1,54.3,38.1z M143.7,182.5c0-8.8,1-15.7,3-20.8c2-5.1,5.2-9.5,9.7-13.2c4.5-3.7,7.9-7.2,10.2-10.3c2.3-3.1,3.5-6.5,3.5-10.3
|
|
11
|
+
c0-9.1-3.9-13.7-11.8-13.7c-3.6,0-6.5,1.3-8.8,4c-2.2,2.7-3.4,6.2-3.5,10.8h-30.6c0.1-12.1,3.9-21.4,11.4-28.2
|
|
12
|
+
c7.5-6.7,18-10.1,31.5-10.1c13.4,0,23.9,3.1,31.2,9.3c7.4,6.2,11.1,15,11.1,26.5c0,5-1,9.6-3,13.7c-2,4.1-5.2,8.3-9.6,12.6
|
|
13
|
+
l-10.4,9.7c-3,2.8-5,5.7-6.1,8.7c-1.1,3-1.8,6.8-1.9,11.3H143.7z M140,210c0-4.5,1.6-8.1,4.8-11c3.2-2.9,7.2-4.3,12.1-4.3
|
|
14
|
+
c4.8,0,8.8,1.4,12.1,4.3c3.2,2.9,4.8,6.5,4.8,11c0,4.5-1.6,8.1-4.8,11c-3.2,2.9-7.3,4.3-12.1,4.3c-4.8,0-8.8-1.4-12.1-4.3
|
|
15
|
+
C141.6,218.1,140,214.5,140,210z"/>
|
|
16
|
+
<path d="M239.7,27h1V7.7c0-4-3.2-7.6-7.6-7.6h-24.8c-4.4,0-7.6,3.2-7.6,7.6V27H239.7z"/>
|
|
17
|
+
<path d="M115.1,27V7.7c0-4-3.2-7.6-7.6-7.6H82.7c-4,0-7.6,3.2-7.6,7.6V27H115.1z"/>
|
|
18
|
+
<path d="M178.7,27V7.7c0-4-3.2-7.6-7.6-7.6h-24.8c-4,0-7.6,3.2-7.6,7.6V27H178.7z"/>
|
|
19
|
+
<path d="M78.6,289.6c-1.2,0-2.4,0-3.5-0.1v18.8c0,4,3.2,7.6,7.6,7.6h24.8c4,0,7.6-3.2,7.6-7.6v-18.7H78.6z"/>
|
|
20
|
+
<path d="M138.7,289.6v18.7c0,4,3.2,7.6,7.6,7.6h24.8c4,0,7.6-3.2,7.6-7.6v-18.7H138.7z"/>
|
|
21
|
+
<path d="M308.3,200.9H289v40h19.3c4,0,7.6-3.2,7.6-7.6v-24.8C315.9,204.1,312.7,200.9,308.3,200.9z"/>
|
|
22
|
+
<path d="M200.7,289.6v18.7c0,4,3.2,7.6,7.6,7.6h24.8c4,0,7.6-3.2,7.6-7.6v-18.7H200.7z"/>
|
|
23
|
+
<path d="M308.3,136.9H289v40h19.3c4,0,7.6-3.2,7.6-7.6v-24.8C315.9,140.5,312.7,136.9,308.3,136.9z"/>
|
|
24
|
+
<path d="M308.3,75.3H289v2.4c0,0.4,0,0.7,0,1.1v36.5h19.3c4,0,7.6-3.2,7.6-7.6V82.9C315.9,78.9,312.7,75.3,308.3,75.3z
|
|
25
|
+
"/>
|
|
26
|
+
<path d="M26.3,200.9H7.7c-4,0-7.6,3.2-7.6,7.6v24.8c0,4,3.2,7.6,7.6,7.6h18.6V200.9z"/>
|
|
27
|
+
<path d="M26.3,136.9H7.7c-4,0-7.6,3.2-7.6,7.6v24.8c0,4,3.2,7.6,7.6,7.6h18.6V136.9z"/>
|
|
28
|
+
<path d="M26.3,75.3H7.7c-4,0-7.6,3.2-7.6,7.6v24.8c0,4,3.2,7.6,7.6,7.6h18.6V75.3z"/>
|
|
29
|
+
</g>
|
|
30
|
+
</svg>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
height="23" viewBox="0 0 316 316" style="enable-background:new 0 0 316 316;" xml:space="preserve">
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
path{fill-rule: evenodd}
|
|
7
|
+
</style>
|
|
8
|
+
<g>
|
|
9
|
+
<path d="M54.3,38.1h206.8c9.2,0,16.8,7.6,16.8,16.8v206.8c0,9.2-7.6,16.8-16.8,16.8H54.3c-9.2,0-16.8-7.6-16.8-16.8
|
|
10
|
+
V54.5C37.9,45.3,45.1,38.1,54.3,38.1z M213,223.8h-31.6l-46.7-81.9v81.9H103V92.2h31.7l46.6,81.9V92.2H213V223.8z"/>
|
|
11
|
+
<path d="M239.7,27h1V7.7c0-4-3.2-7.6-7.6-7.6h-24.8c-4.4,0-7.6,3.2-7.6,7.6V27H239.7z"/>
|
|
12
|
+
<path d="M115.1,27V7.7c0-4-3.2-7.6-7.6-7.6H82.7c-4,0-7.6,3.2-7.6,7.6V27H115.1z"/>
|
|
13
|
+
<path d="M178.7,27V7.7c0-4-3.2-7.6-7.6-7.6h-24.8c-4,0-7.6,3.2-7.6,7.6V27H178.7z"/>
|
|
14
|
+
<path d="M78.6,289.6c-1.2,0-2.4,0-3.5-0.1v18.8c0,4,3.2,7.6,7.6,7.6h24.8c4,0,7.6-3.2,7.6-7.6v-18.7H78.6z"/>
|
|
15
|
+
<path d="M138.7,289.6v18.7c0,4,3.2,7.6,7.6,7.6h24.8c4,0,7.6-3.2,7.6-7.6v-18.7H138.7z"/>
|
|
16
|
+
<path d="M308.3,200.9H289v40h19.3c4,0,7.6-3.2,7.6-7.6v-24.8C315.9,204.1,312.7,200.9,308.3,200.9z"/>
|
|
17
|
+
<path d="M200.7,289.6v18.7c0,4,3.2,7.6,7.6,7.6h24.8c4,0,7.6-3.2,7.6-7.6v-18.7H200.7z"/>
|
|
18
|
+
<path d="M308.3,136.9H289v40h19.3c4,0,7.6-3.2,7.6-7.6v-24.8C315.9,140.5,312.7,136.9,308.3,136.9z"/>
|
|
19
|
+
<path d="M308.3,75.3H289v2.4c0,0.4,0,0.7,0,1.1v36.5h19.3c4,0,7.6-3.2,7.6-7.6V82.9C315.9,78.9,312.7,75.3,308.3,75.3z
|
|
20
|
+
"/>
|
|
21
|
+
<path d="M26.3,200.9H7.7c-4,0-7.6,3.2-7.6,7.6v24.8c0,4,3.2,7.6,7.6,7.6h18.6V200.9z"/>
|
|
22
|
+
<path d="M26.3,136.9H7.7c-4,0-7.6,3.2-7.6,7.6v24.8c0,4,3.2,7.6,7.6,7.6h18.6V136.9z"/>
|
|
23
|
+
<path d="M26.3,75.3H7.7c-4,0-7.6,3.2-7.6,7.6v24.8c0,4,3.2,7.6,7.6,7.6h18.6V75.3z"/>
|
|
24
|
+
</g>
|
|
25
|
+
</svg>
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2015 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { getModuleVersion } from './deviceLibWrapper';
|
|
8
|
+
|
|
9
|
+
const exampleModuleVersions = [
|
|
10
|
+
{
|
|
11
|
+
name: 'nrfdl',
|
|
12
|
+
plugins: [
|
|
13
|
+
{
|
|
14
|
+
dependencies: [
|
|
15
|
+
{
|
|
16
|
+
dependencies: [
|
|
17
|
+
{
|
|
18
|
+
expectedVersion: {
|
|
19
|
+
version: 'JLink_V7.66a',
|
|
20
|
+
versionFormat: 'string' as const,
|
|
21
|
+
},
|
|
22
|
+
name: 'JlinkARM',
|
|
23
|
+
version: 'JLink_V7.66a',
|
|
24
|
+
versionFormat: 'string' as const,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
name: 'jprog',
|
|
28
|
+
version: {
|
|
29
|
+
major: 10,
|
|
30
|
+
metadata: '0',
|
|
31
|
+
minor: 16,
|
|
32
|
+
patch: 0,
|
|
33
|
+
pre: '0',
|
|
34
|
+
},
|
|
35
|
+
versionFormat: 'semantic' as const,
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
name: 'jlink',
|
|
39
|
+
version: {
|
|
40
|
+
major: 0,
|
|
41
|
+
metadata: '0',
|
|
42
|
+
minor: 12,
|
|
43
|
+
patch: 5,
|
|
44
|
+
pre: '0',
|
|
45
|
+
},
|
|
46
|
+
versionFormat: 'semantic' as const,
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
version: {
|
|
50
|
+
major: 0,
|
|
51
|
+
metadata: '0',
|
|
52
|
+
minor: 12,
|
|
53
|
+
patch: 5,
|
|
54
|
+
pre: '0',
|
|
55
|
+
},
|
|
56
|
+
versionFormat: 'semantic' as const,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'nrfdl-js',
|
|
60
|
+
version: {
|
|
61
|
+
major: 0,
|
|
62
|
+
minor: 4,
|
|
63
|
+
patch: 12,
|
|
64
|
+
metadata: '0',
|
|
65
|
+
pre: '0',
|
|
66
|
+
},
|
|
67
|
+
versionFormat: 'semantic' as const,
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
|
|
71
|
+
describe('finding module versions', () => {
|
|
72
|
+
test('in the top level modules', () => {
|
|
73
|
+
expect(getModuleVersion('nrfdl-js', exampleModuleVersions)).toEqual({
|
|
74
|
+
name: 'nrfdl-js',
|
|
75
|
+
version: {
|
|
76
|
+
major: 0,
|
|
77
|
+
minor: 4,
|
|
78
|
+
patch: 12,
|
|
79
|
+
metadata: '0',
|
|
80
|
+
pre: '0',
|
|
81
|
+
},
|
|
82
|
+
versionFormat: 'semantic' as const,
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
test('in nested dependencies', () => {
|
|
87
|
+
expect(getModuleVersion('JlinkARM', exampleModuleVersions)).toEqual({
|
|
88
|
+
expectedVersion: {
|
|
89
|
+
version: 'JLink_V7.66a',
|
|
90
|
+
versionFormat: 'string' as const,
|
|
91
|
+
},
|
|
92
|
+
name: 'JlinkARM',
|
|
93
|
+
version: 'JLink_V7.66a',
|
|
94
|
+
versionFormat: 'string' as const,
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
});
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2015 Nordic Semiconductor ASA
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { app } from '@electron/remote';
|
|
8
|
+
import {
|
|
9
|
+
createContext,
|
|
10
|
+
Error,
|
|
11
|
+
LogEvent,
|
|
12
|
+
ModuleVersion,
|
|
13
|
+
setLogLevel,
|
|
14
|
+
setLogPattern,
|
|
15
|
+
setTimeoutConfig,
|
|
16
|
+
startLogEvents,
|
|
17
|
+
stopLogEvents,
|
|
18
|
+
} from '@nordicsemiconductor/nrf-device-lib-js';
|
|
19
|
+
import path from 'path';
|
|
20
|
+
|
|
21
|
+
import { isLoggingVerbose } from '../Log/logSlice';
|
|
22
|
+
import logger from '../logging';
|
|
23
|
+
import {
|
|
24
|
+
getIsLoggingVerbose,
|
|
25
|
+
persistIsLoggingVerbose,
|
|
26
|
+
} from '../utils/persistentStore';
|
|
27
|
+
|
|
28
|
+
let deviceLibContext = 0n;
|
|
29
|
+
export const getDeviceLibContext = () => {
|
|
30
|
+
if (deviceLibContext === 0n) initDeviceLib();
|
|
31
|
+
|
|
32
|
+
return deviceLibContext;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const initDeviceLib = () => {
|
|
36
|
+
if (process.platform === 'win32') {
|
|
37
|
+
const binariesPath = app.getAppPath().endsWith('app.asar')
|
|
38
|
+
? `${app.getAppPath()}.unpacked`
|
|
39
|
+
: app.getAppPath();
|
|
40
|
+
deviceLibContext = createContext({
|
|
41
|
+
plugins_dir: path.join(
|
|
42
|
+
binariesPath,
|
|
43
|
+
'node_modules',
|
|
44
|
+
'@nordicsemiconductor',
|
|
45
|
+
'nrf-device-lib-js',
|
|
46
|
+
'Release'
|
|
47
|
+
),
|
|
48
|
+
});
|
|
49
|
+
} else {
|
|
50
|
+
deviceLibContext = createContext();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
setTimeoutConfig(getDeviceLibContext(), {
|
|
54
|
+
enumerateMs: 3 * 60 * 1000,
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const logNrfdlLogs = (evt: LogEvent) => {
|
|
59
|
+
if (process.env.NODE_ENV === 'production' && !isLoggingVerbose()) return;
|
|
60
|
+
switch (evt.level) {
|
|
61
|
+
case 'NRFDL_LOG_TRACE':
|
|
62
|
+
logger.verbose(evt.message);
|
|
63
|
+
break;
|
|
64
|
+
case 'NRFDL_LOG_DEBUG':
|
|
65
|
+
logger.debug(evt.message);
|
|
66
|
+
break;
|
|
67
|
+
case 'NRFDL_LOG_INFO':
|
|
68
|
+
logger.info(evt.message);
|
|
69
|
+
break;
|
|
70
|
+
case 'NRFDL_LOG_WARNING':
|
|
71
|
+
logger.warn(evt.message);
|
|
72
|
+
break;
|
|
73
|
+
case 'NRFDL_LOG_ERROR':
|
|
74
|
+
logger.error(evt.message);
|
|
75
|
+
break;
|
|
76
|
+
case 'NRFDL_LOG_CRITICAL':
|
|
77
|
+
logger.error(evt.message);
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export const forwardLogEventsFromDeviceLib = () => {
|
|
83
|
+
setLogPattern(getDeviceLibContext(), '[%n][%l](%T.%e) %v');
|
|
84
|
+
setVerboseDeviceLibLogging(getIsLoggingVerbose());
|
|
85
|
+
|
|
86
|
+
// Only the first reset after selecting "reset with verbose logging" is relevant
|
|
87
|
+
persistIsLoggingVerbose(false);
|
|
88
|
+
|
|
89
|
+
const taskId = startLogEvents(
|
|
90
|
+
getDeviceLibContext(),
|
|
91
|
+
(err?: Error) => {
|
|
92
|
+
if (err)
|
|
93
|
+
logger.logError(
|
|
94
|
+
'Error while listening to log messages from nrf-device-lib',
|
|
95
|
+
err
|
|
96
|
+
);
|
|
97
|
+
},
|
|
98
|
+
(evt: LogEvent) => logNrfdlLogs(evt)
|
|
99
|
+
);
|
|
100
|
+
return () => {
|
|
101
|
+
// @ts-expect-error Type will be updated in device-lib-js
|
|
102
|
+
stopLogEvents(taskId);
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export const setVerboseDeviceLibLogging = (verboseLogging: boolean) =>
|
|
107
|
+
setLogLevel(
|
|
108
|
+
getDeviceLibContext(),
|
|
109
|
+
verboseLogging ? 'NRFDL_LOG_TRACE' : 'NRFDL_LOG_ERROR'
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
type KnownModule = 'nrfdl' | 'nrfdl-js' | 'jprog' | 'JlinkARM';
|
|
113
|
+
|
|
114
|
+
const findTopLevel = (module: KnownModule, versions: ModuleVersion[]) =>
|
|
115
|
+
versions.find(version => version.name === module);
|
|
116
|
+
|
|
117
|
+
const findInDependencies = (module: KnownModule, versions: ModuleVersion[]) => {
|
|
118
|
+
if (versions.length > 0) {
|
|
119
|
+
return getModuleVersion(
|
|
120
|
+
module,
|
|
121
|
+
versions.flatMap(version => [
|
|
122
|
+
...(version.dependencies ?? []),
|
|
123
|
+
...((version.plugins as ModuleVersion[]) ?? []),
|
|
124
|
+
])
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
export const getModuleVersion = (
|
|
130
|
+
module: KnownModule,
|
|
131
|
+
versions: ModuleVersion[] = []
|
|
132
|
+
): ModuleVersion | undefined =>
|
|
133
|
+
findTopLevel(module, versions) ?? findInDependencies(module, versions);
|