@ledgerhq/device-management-kit-devtools-ui 1.1.1
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/LICENSE.MD +202 -0
- package/lib/build/index.d.ts +2 -0
- package/lib/build/index.d.ts.map +1 -0
- package/lib/build/index.js +2 -0
- package/lib/build/index.js.map +1 -0
- package/lib/build/src/Dashboard.d.ts +5 -0
- package/lib/build/src/Dashboard.d.ts.map +1 -0
- package/lib/build/src/Dashboard.js +50 -0
- package/lib/build/src/Dashboard.js.map +1 -0
- package/lib/build/src/ErrorBoundary.d.ts +15 -0
- package/lib/build/src/ErrorBoundary.d.ts.map +1 -0
- package/lib/build/src/ErrorBoundary.js +23 -0
- package/lib/build/src/ErrorBoundary.js.map +1 -0
- package/lib/build/src/PluginEvents.d.ts +9 -0
- package/lib/build/src/PluginEvents.d.ts.map +1 -0
- package/lib/build/src/PluginEvents.js +2 -0
- package/lib/build/src/PluginEvents.js.map +1 -0
- package/lib/build/src/components/DashboardFooter.d.ts +8 -0
- package/lib/build/src/components/DashboardFooter.d.ts.map +1 -0
- package/lib/build/src/components/DashboardFooter.js +31 -0
- package/lib/build/src/components/DashboardFooter.js.map +1 -0
- package/lib/build/src/components/DashboardNavigationBar.d.ts +16 -0
- package/lib/build/src/components/DashboardNavigationBar.d.ts.map +1 -0
- package/lib/build/src/components/DashboardNavigationBar.js +85 -0
- package/lib/build/src/components/DashboardNavigationBar.js.map +1 -0
- package/lib/build/src/components/DebugDrawer.d.ts +18 -0
- package/lib/build/src/components/DebugDrawer.d.ts.map +1 -0
- package/lib/build/src/components/DebugDrawer.js +69 -0
- package/lib/build/src/components/DebugDrawer.js.map +1 -0
- package/lib/build/src/components/SplitView.d.ts +12 -0
- package/lib/build/src/components/SplitView.d.ts.map +1 -0
- package/lib/build/src/components/SplitView.js +50 -0
- package/lib/build/src/components/SplitView.js.map +1 -0
- package/lib/build/src/hooks/commandDispatcher.d.ts +28 -0
- package/lib/build/src/hooks/commandDispatcher.d.ts.map +1 -0
- package/lib/build/src/hooks/commandDispatcher.js +38 -0
- package/lib/build/src/hooks/commandDispatcher.js.map +1 -0
- package/lib/build/src/hooks/connectorMessageHandlers.d.ts +34 -0
- package/lib/build/src/hooks/connectorMessageHandlers.d.ts.map +1 -0
- package/lib/build/src/hooks/connectorMessageHandlers.js +85 -0
- package/lib/build/src/hooks/connectorMessageHandlers.js.map +1 -0
- package/lib/build/src/hooks/useConnectorMessages.d.ts +60 -0
- package/lib/build/src/hooks/useConnectorMessages.d.ts.map +1 -0
- package/lib/build/src/hooks/useConnectorMessages.js +138 -0
- package/lib/build/src/hooks/useConnectorMessages.js.map +1 -0
- package/lib/build/src/screens/debugDevTools/index.d.ts +17 -0
- package/lib/build/src/screens/debugDevTools/index.d.ts.map +1 -0
- package/lib/build/src/screens/debugDevTools/index.js +48 -0
- package/lib/build/src/screens/debugDevTools/index.js.map +1 -0
- package/lib/build/src/screens/inspector/ApduSender.d.ts +10 -0
- package/lib/build/src/screens/inspector/ApduSender.d.ts.map +1 -0
- package/lib/build/src/screens/inspector/ApduSender.js +118 -0
- package/lib/build/src/screens/inspector/ApduSender.js.map +1 -0
- package/lib/build/src/screens/inspector/DeviceCard.d.ts +13 -0
- package/lib/build/src/screens/inspector/DeviceCard.d.ts.map +1 -0
- package/lib/build/src/screens/inspector/DeviceCard.js +52 -0
- package/lib/build/src/screens/inspector/DeviceCard.js.map +1 -0
- package/lib/build/src/screens/inspector/DeviceDiscoverySection.d.ts +25 -0
- package/lib/build/src/screens/inspector/DeviceDiscoverySection.d.ts.map +1 -0
- package/lib/build/src/screens/inspector/DeviceDiscoverySection.js +8 -0
- package/lib/build/src/screens/inspector/DeviceDiscoverySection.js.map +1 -0
- package/lib/build/src/screens/inspector/DiscoveredDeviceCard.d.ts +12 -0
- package/lib/build/src/screens/inspector/DiscoveredDeviceCard.d.ts.map +1 -0
- package/lib/build/src/screens/inspector/DiscoveredDeviceCard.js +89 -0
- package/lib/build/src/screens/inspector/DiscoveredDeviceCard.js.map +1 -0
- package/lib/build/src/screens/inspector/MyLedgerProviderControl.d.ts +9 -0
- package/lib/build/src/screens/inspector/MyLedgerProviderControl.d.ts.map +1 -0
- package/lib/build/src/screens/inspector/MyLedgerProviderControl.js +78 -0
- package/lib/build/src/screens/inspector/MyLedgerProviderControl.js.map +1 -0
- package/lib/build/src/screens/inspector/SessionsSection.d.ts +20 -0
- package/lib/build/src/screens/inspector/SessionsSection.d.ts.map +1 -0
- package/lib/build/src/screens/inspector/SessionsSection.js +37 -0
- package/lib/build/src/screens/inspector/SessionsSection.js.map +1 -0
- package/lib/build/src/screens/inspector/index.d.ts +34 -0
- package/lib/build/src/screens/inspector/index.d.ts.map +1 -0
- package/lib/build/src/screens/inspector/index.js +26 -0
- package/lib/build/src/screens/inspector/index.js.map +1 -0
- package/lib/build/src/screens/inspector/styles.d.ts +41 -0
- package/lib/build/src/screens/inspector/styles.d.ts.map +1 -0
- package/lib/build/src/screens/inspector/styles.js +266 -0
- package/lib/build/src/screens/inspector/styles.js.map +1 -0
- package/lib/build/src/screens/logger/FilterInput.d.ts +8 -0
- package/lib/build/src/screens/logger/FilterInput.d.ts.map +1 -0
- package/lib/build/src/screens/logger/FilterInput.js +179 -0
- package/lib/build/src/screens/logger/FilterInput.js.map +1 -0
- package/lib/build/src/screens/logger/LoggerOptions.d.ts +18 -0
- package/lib/build/src/screens/logger/LoggerOptions.d.ts.map +1 -0
- package/lib/build/src/screens/logger/LoggerOptions.js +75 -0
- package/lib/build/src/screens/logger/LoggerOptions.js.map +1 -0
- package/lib/build/src/screens/logger/LoggerToolbar.d.ts +19 -0
- package/lib/build/src/screens/logger/LoggerToolbar.d.ts.map +1 -0
- package/lib/build/src/screens/logger/LoggerToolbar.js +16 -0
- package/lib/build/src/screens/logger/LoggerToolbar.js.map +1 -0
- package/lib/build/src/screens/logger/SearchInput.d.ts +15 -0
- package/lib/build/src/screens/logger/SearchInput.d.ts.map +1 -0
- package/lib/build/src/screens/logger/SearchInput.js +93 -0
- package/lib/build/src/screens/logger/SearchInput.js.map +1 -0
- package/lib/build/src/screens/logger/filterUtils.d.ts +43 -0
- package/lib/build/src/screens/logger/filterUtils.d.ts.map +1 -0
- package/lib/build/src/screens/logger/filterUtils.js +125 -0
- package/lib/build/src/screens/logger/filterUtils.js.map +1 -0
- package/lib/build/src/screens/logger/filterUtils.test.d.ts +2 -0
- package/lib/build/src/screens/logger/filterUtils.test.d.ts.map +1 -0
- package/lib/build/src/screens/logger/filterUtils.test.js +300 -0
- package/lib/build/src/screens/logger/filterUtils.test.js.map +1 -0
- package/lib/build/src/screens/logger/index.d.ts +10 -0
- package/lib/build/src/screens/logger/index.d.ts.map +1 -0
- package/lib/build/src/screens/logger/index.js +86 -0
- package/lib/build/src/screens/logger/index.js.map +1 -0
- package/lib/build/src/screens/logger/inputStyles.d.ts +18 -0
- package/lib/build/src/screens/logger/inputStyles.d.ts.map +1 -0
- package/lib/build/src/screens/logger/inputStyles.js +46 -0
- package/lib/build/src/screens/logger/inputStyles.js.map +1 -0
- package/lib/build/src/screens/logger/logsTable/LogTableCells.d.ts +13 -0
- package/lib/build/src/screens/logger/logsTable/LogTableCells.d.ts.map +1 -0
- package/lib/build/src/screens/logger/logsTable/LogTableCells.js +61 -0
- package/lib/build/src/screens/logger/logsTable/LogTableCells.js.map +1 -0
- package/lib/build/src/screens/logger/logsTable/ScrollDownButton.d.ts +8 -0
- package/lib/build/src/screens/logger/logsTable/ScrollDownButton.d.ts.map +1 -0
- package/lib/build/src/screens/logger/logsTable/ScrollDownButton.js +20 -0
- package/lib/build/src/screens/logger/logsTable/ScrollDownButton.js.map +1 -0
- package/lib/build/src/screens/logger/logsTable/TableBody.d.ts +13 -0
- package/lib/build/src/screens/logger/logsTable/TableBody.d.ts.map +1 -0
- package/lib/build/src/screens/logger/logsTable/TableBody.js +58 -0
- package/lib/build/src/screens/logger/logsTable/TableBody.js.map +1 -0
- package/lib/build/src/screens/logger/logsTable/TableColumns.d.ts +3 -0
- package/lib/build/src/screens/logger/logsTable/TableColumns.d.ts.map +1 -0
- package/lib/build/src/screens/logger/logsTable/TableColumns.js +44 -0
- package/lib/build/src/screens/logger/logsTable/TableColumns.js.map +1 -0
- package/lib/build/src/screens/logger/logsTable/TableHeader.d.ts +9 -0
- package/lib/build/src/screens/logger/logsTable/TableHeader.d.ts.map +1 -0
- package/lib/build/src/screens/logger/logsTable/TableHeader.js +53 -0
- package/lib/build/src/screens/logger/logsTable/TableHeader.js.map +1 -0
- package/lib/build/src/screens/logger/logsTable/constants.d.ts +21 -0
- package/lib/build/src/screens/logger/logsTable/constants.d.ts.map +1 -0
- package/lib/build/src/screens/logger/logsTable/constants.js +21 -0
- package/lib/build/src/screens/logger/logsTable/constants.js.map +1 -0
- package/lib/build/src/screens/logger/logsTable/index.d.ts +11 -0
- package/lib/build/src/screens/logger/logsTable/index.d.ts.map +1 -0
- package/lib/build/src/screens/logger/logsTable/index.js +116 -0
- package/lib/build/src/screens/logger/logsTable/index.js.map +1 -0
- package/lib/build/src/screens/logger/logsTable/useColumnSizeVars.d.ts +4 -0
- package/lib/build/src/screens/logger/logsTable/useColumnSizeVars.d.ts.map +1 -0
- package/lib/build/src/screens/logger/logsTable/useColumnSizeVars.js +17 -0
- package/lib/build/src/screens/logger/logsTable/useColumnSizeVars.js.map +1 -0
- package/lib/build/src/screens/logger/logsTable/useResizeObserver.d.ts +2 -0
- package/lib/build/src/screens/logger/logsTable/useResizeObserver.d.ts.map +1 -0
- package/lib/build/src/screens/logger/logsTable/useResizeObserver.js +28 -0
- package/lib/build/src/screens/logger/logsTable/useResizeObserver.js.map +1 -0
- package/lib/build/src/screens/logger/logsTable/useScrollLogic.d.ts +12 -0
- package/lib/build/src/screens/logger/logsTable/useScrollLogic.d.ts.map +1 -0
- package/lib/build/src/screens/logger/logsTable/useScrollLogic.js +86 -0
- package/lib/build/src/screens/logger/logsTable/useScrollLogic.js.map +1 -0
- package/lib/build/src/screens/logger/mapConnectorMessageToLogData.d.ts +6 -0
- package/lib/build/src/screens/logger/mapConnectorMessageToLogData.d.ts.map +1 -0
- package/lib/build/src/screens/logger/mapConnectorMessageToLogData.js +17 -0
- package/lib/build/src/screens/logger/mapConnectorMessageToLogData.js.map +1 -0
- package/lib/build/src/screens/logger/types.d.ts +6 -0
- package/lib/build/src/screens/logger/types.d.ts.map +1 -0
- package/lib/build/src/screens/logger/types.js +2 -0
- package/lib/build/src/screens/logger/types.js.map +1 -0
- package/lib/build/src/screens/logger/useColumnSizeVars.d.ts +4 -0
- package/lib/build/src/screens/logger/useColumnSizeVars.d.ts.map +1 -0
- package/lib/build/src/screens/logger/useColumnSizeVars.js +17 -0
- package/lib/build/src/screens/logger/useColumnSizeVars.js.map +1 -0
- package/lib/build/src/screens/logger/useLogsDataAndOptions.d.ts +12 -0
- package/lib/build/src/screens/logger/useLogsDataAndOptions.d.ts.map +1 -0
- package/lib/build/src/screens/logger/useLogsDataAndOptions.js +36 -0
- package/lib/build/src/screens/logger/useLogsDataAndOptions.js.map +1 -0
- package/lib/build/src/screens/logger/useRecentFilters.d.ts +18 -0
- package/lib/build/src/screens/logger/useRecentFilters.d.ts.map +1 -0
- package/lib/build/src/screens/logger/useRecentFilters.js +96 -0
- package/lib/build/src/screens/logger/useRecentFilters.js.map +1 -0
- package/lib/build/src/screens/logger/useSearchState.d.ts +24 -0
- package/lib/build/src/screens/logger/useSearchState.d.ts.map +1 -0
- package/lib/build/src/screens/logger/useSearchState.js +74 -0
- package/lib/build/src/screens/logger/useSearchState.js.map +1 -0
- package/lib/build/src/shared/NotConnectedMessage.d.ts +9 -0
- package/lib/build/src/shared/NotConnectedMessage.d.ts.map +1 -0
- package/lib/build/src/shared/NotConnectedMessage.js +30 -0
- package/lib/build/src/shared/NotConnectedMessage.js.map +1 -0
- package/lib/build/src/shared/PluginEvents.d.ts +9 -0
- package/lib/build/src/shared/PluginEvents.d.ts.map +1 -0
- package/lib/build/src/shared/PluginEvents.js +2 -0
- package/lib/build/src/shared/PluginEvents.js.map +1 -0
- package/lib/build/tsconfig.build.tsbuildinfo +1 -0
- package/lib/cjs/index.js +2 -0
- package/lib/cjs/index.js.map +7 -0
- package/lib/cjs/package.json +73 -0
- package/lib/cjs/src/Dashboard.js +12 -0
- package/lib/cjs/src/Dashboard.js.map +7 -0
- package/lib/cjs/src/ErrorBoundary.js +2 -0
- package/lib/cjs/src/ErrorBoundary.js.map +7 -0
- package/lib/cjs/src/PluginEvents.js +2 -0
- package/lib/cjs/src/PluginEvents.js.map +7 -0
- package/lib/cjs/src/components/DashboardFooter.js +25 -0
- package/lib/cjs/src/components/DashboardFooter.js.map +7 -0
- package/lib/cjs/src/components/DashboardNavigationBar.js +64 -0
- package/lib/cjs/src/components/DashboardNavigationBar.js.map +7 -0
- package/lib/cjs/src/components/DebugDrawer.js +58 -0
- package/lib/cjs/src/components/DebugDrawer.js.map +7 -0
- package/lib/cjs/src/components/SplitView.js +37 -0
- package/lib/cjs/src/components/SplitView.js.map +7 -0
- package/lib/cjs/src/hooks/commandDispatcher.js +2 -0
- package/lib/cjs/src/hooks/commandDispatcher.js.map +7 -0
- package/lib/cjs/src/hooks/connectorMessageHandlers.js +2 -0
- package/lib/cjs/src/hooks/connectorMessageHandlers.js.map +7 -0
- package/lib/cjs/src/hooks/useConnectorMessages.js +2 -0
- package/lib/cjs/src/hooks/useConnectorMessages.js.map +7 -0
- package/lib/cjs/src/screens/debugDevTools/index.js +2 -0
- package/lib/cjs/src/screens/debugDevTools/index.js.map +7 -0
- package/lib/cjs/src/screens/inspector/ApduSender.js +79 -0
- package/lib/cjs/src/screens/inspector/ApduSender.js.map +7 -0
- package/lib/cjs/src/screens/inspector/DeviceCard.js +2 -0
- package/lib/cjs/src/screens/inspector/DeviceCard.js.map +7 -0
- package/lib/cjs/src/screens/inspector/DeviceDiscoverySection.js +2 -0
- package/lib/cjs/src/screens/inspector/DeviceDiscoverySection.js.map +7 -0
- package/lib/cjs/src/screens/inspector/DiscoveredDeviceCard.js +57 -0
- package/lib/cjs/src/screens/inspector/DiscoveredDeviceCard.js.map +7 -0
- package/lib/cjs/src/screens/inspector/MyLedgerProviderControl.js +40 -0
- package/lib/cjs/src/screens/inspector/MyLedgerProviderControl.js.map +7 -0
- package/lib/cjs/src/screens/inspector/SessionsSection.js +2 -0
- package/lib/cjs/src/screens/inspector/SessionsSection.js.map +7 -0
- package/lib/cjs/src/screens/inspector/index.js +9 -0
- package/lib/cjs/src/screens/inspector/index.js.map +7 -0
- package/lib/cjs/src/screens/inspector/styles.js +179 -0
- package/lib/cjs/src/screens/inspector/styles.js.map +7 -0
- package/lib/cjs/src/screens/logger/FilterInput.js +85 -0
- package/lib/cjs/src/screens/logger/FilterInput.js.map +7 -0
- package/lib/cjs/src/screens/logger/LoggerOptions.js +6 -0
- package/lib/cjs/src/screens/logger/LoggerOptions.js.map +7 -0
- package/lib/cjs/src/screens/logger/LoggerToolbar.js +9 -0
- package/lib/cjs/src/screens/logger/LoggerToolbar.js.map +7 -0
- package/lib/cjs/src/screens/logger/SearchInput.js +59 -0
- package/lib/cjs/src/screens/logger/SearchInput.js.map +7 -0
- package/lib/cjs/src/screens/logger/filterUtils.js +2 -0
- package/lib/cjs/src/screens/logger/filterUtils.js.map +7 -0
- package/lib/cjs/src/screens/logger/filterUtils.test.js +2 -0
- package/lib/cjs/src/screens/logger/filterUtils.test.js.map +7 -0
- package/lib/cjs/src/screens/logger/index.js +6 -0
- package/lib/cjs/src/screens/logger/index.js.map +7 -0
- package/lib/cjs/src/screens/logger/inputStyles.js +31 -0
- package/lib/cjs/src/screens/logger/inputStyles.js.map +7 -0
- package/lib/cjs/src/screens/logger/logsTable/LogTableCells.js +8 -0
- package/lib/cjs/src/screens/logger/logsTable/LogTableCells.js.map +7 -0
- package/lib/cjs/src/screens/logger/logsTable/ScrollDownButton.js +15 -0
- package/lib/cjs/src/screens/logger/logsTable/ScrollDownButton.js.map +7 -0
- package/lib/cjs/src/screens/logger/logsTable/TableBody.js +24 -0
- package/lib/cjs/src/screens/logger/logsTable/TableBody.js.map +7 -0
- package/lib/cjs/src/screens/logger/logsTable/TableColumns.js +2 -0
- package/lib/cjs/src/screens/logger/logsTable/TableColumns.js.map +7 -0
- package/lib/cjs/src/screens/logger/logsTable/TableHeader.js +33 -0
- package/lib/cjs/src/screens/logger/logsTable/TableHeader.js.map +7 -0
- package/lib/cjs/src/screens/logger/logsTable/constants.js +2 -0
- package/lib/cjs/src/screens/logger/logsTable/constants.js.map +7 -0
- package/lib/cjs/src/screens/logger/logsTable/index.js +26 -0
- package/lib/cjs/src/screens/logger/logsTable/index.js.map +7 -0
- package/lib/cjs/src/screens/logger/logsTable/useColumnSizeVars.js +2 -0
- package/lib/cjs/src/screens/logger/logsTable/useColumnSizeVars.js.map +7 -0
- package/lib/cjs/src/screens/logger/logsTable/useResizeObserver.js +2 -0
- package/lib/cjs/src/screens/logger/logsTable/useResizeObserver.js.map +7 -0
- package/lib/cjs/src/screens/logger/logsTable/useScrollLogic.js +2 -0
- package/lib/cjs/src/screens/logger/logsTable/useScrollLogic.js.map +7 -0
- package/lib/cjs/src/screens/logger/mapConnectorMessageToLogData.js +2 -0
- package/lib/cjs/src/screens/logger/mapConnectorMessageToLogData.js.map +7 -0
- package/lib/cjs/src/screens/logger/types.js +2 -0
- package/lib/cjs/src/screens/logger/types.js.map +7 -0
- package/lib/cjs/src/screens/logger/useColumnSizeVars.js +2 -0
- package/lib/cjs/src/screens/logger/useColumnSizeVars.js.map +7 -0
- package/lib/cjs/src/screens/logger/useLogsDataAndOptions.js +2 -0
- package/lib/cjs/src/screens/logger/useLogsDataAndOptions.js.map +7 -0
- package/lib/cjs/src/screens/logger/useRecentFilters.js +2 -0
- package/lib/cjs/src/screens/logger/useRecentFilters.js.map +7 -0
- package/lib/cjs/src/screens/logger/useSearchState.js +2 -0
- package/lib/cjs/src/screens/logger/useSearchState.js.map +7 -0
- package/lib/cjs/src/shared/NotConnectedMessage.js +24 -0
- package/lib/cjs/src/shared/NotConnectedMessage.js.map +7 -0
- package/lib/cjs/src/shared/PluginEvents.js +2 -0
- package/lib/cjs/src/shared/PluginEvents.js.map +7 -0
- package/lib/esm/index.js +2 -0
- package/lib/esm/index.js.map +7 -0
- package/lib/esm/package.json +73 -0
- package/lib/esm/src/Dashboard.js +12 -0
- package/lib/esm/src/Dashboard.js.map +7 -0
- package/lib/esm/src/ErrorBoundary.js +2 -0
- package/lib/esm/src/ErrorBoundary.js.map +7 -0
- package/lib/esm/src/PluginEvents.js +1 -0
- package/lib/esm/src/PluginEvents.js.map +7 -0
- package/lib/esm/src/components/DashboardFooter.js +25 -0
- package/lib/esm/src/components/DashboardFooter.js.map +7 -0
- package/lib/esm/src/components/DashboardNavigationBar.js +64 -0
- package/lib/esm/src/components/DashboardNavigationBar.js.map +7 -0
- package/lib/esm/src/components/DebugDrawer.js +58 -0
- package/lib/esm/src/components/DebugDrawer.js.map +7 -0
- package/lib/esm/src/components/SplitView.js +37 -0
- package/lib/esm/src/components/SplitView.js.map +7 -0
- package/lib/esm/src/hooks/commandDispatcher.js +2 -0
- package/lib/esm/src/hooks/commandDispatcher.js.map +7 -0
- package/lib/esm/src/hooks/connectorMessageHandlers.js +2 -0
- package/lib/esm/src/hooks/connectorMessageHandlers.js.map +7 -0
- package/lib/esm/src/hooks/useConnectorMessages.js +2 -0
- package/lib/esm/src/hooks/useConnectorMessages.js.map +7 -0
- package/lib/esm/src/screens/debugDevTools/index.js +2 -0
- package/lib/esm/src/screens/debugDevTools/index.js.map +7 -0
- package/lib/esm/src/screens/inspector/ApduSender.js +79 -0
- package/lib/esm/src/screens/inspector/ApduSender.js.map +7 -0
- package/lib/esm/src/screens/inspector/DeviceCard.js +2 -0
- package/lib/esm/src/screens/inspector/DeviceCard.js.map +7 -0
- package/lib/esm/src/screens/inspector/DeviceDiscoverySection.js +2 -0
- package/lib/esm/src/screens/inspector/DeviceDiscoverySection.js.map +7 -0
- package/lib/esm/src/screens/inspector/DiscoveredDeviceCard.js +57 -0
- package/lib/esm/src/screens/inspector/DiscoveredDeviceCard.js.map +7 -0
- package/lib/esm/src/screens/inspector/MyLedgerProviderControl.js +40 -0
- package/lib/esm/src/screens/inspector/MyLedgerProviderControl.js.map +7 -0
- package/lib/esm/src/screens/inspector/SessionsSection.js +2 -0
- package/lib/esm/src/screens/inspector/SessionsSection.js.map +7 -0
- package/lib/esm/src/screens/inspector/index.js +9 -0
- package/lib/esm/src/screens/inspector/index.js.map +7 -0
- package/lib/esm/src/screens/inspector/styles.js +179 -0
- package/lib/esm/src/screens/inspector/styles.js.map +7 -0
- package/lib/esm/src/screens/logger/FilterInput.js +85 -0
- package/lib/esm/src/screens/logger/FilterInput.js.map +7 -0
- package/lib/esm/src/screens/logger/LoggerOptions.js +6 -0
- package/lib/esm/src/screens/logger/LoggerOptions.js.map +7 -0
- package/lib/esm/src/screens/logger/LoggerToolbar.js +9 -0
- package/lib/esm/src/screens/logger/LoggerToolbar.js.map +7 -0
- package/lib/esm/src/screens/logger/SearchInput.js +59 -0
- package/lib/esm/src/screens/logger/SearchInput.js.map +7 -0
- package/lib/esm/src/screens/logger/filterUtils.js +2 -0
- package/lib/esm/src/screens/logger/filterUtils.js.map +7 -0
- package/lib/esm/src/screens/logger/filterUtils.test.js +2 -0
- package/lib/esm/src/screens/logger/filterUtils.test.js.map +7 -0
- package/lib/esm/src/screens/logger/index.js +6 -0
- package/lib/esm/src/screens/logger/index.js.map +7 -0
- package/lib/esm/src/screens/logger/inputStyles.js +31 -0
- package/lib/esm/src/screens/logger/inputStyles.js.map +7 -0
- package/lib/esm/src/screens/logger/logsTable/LogTableCells.js +8 -0
- package/lib/esm/src/screens/logger/logsTable/LogTableCells.js.map +7 -0
- package/lib/esm/src/screens/logger/logsTable/ScrollDownButton.js +15 -0
- package/lib/esm/src/screens/logger/logsTable/ScrollDownButton.js.map +7 -0
- package/lib/esm/src/screens/logger/logsTable/TableBody.js +24 -0
- package/lib/esm/src/screens/logger/logsTable/TableBody.js.map +7 -0
- package/lib/esm/src/screens/logger/logsTable/TableColumns.js +2 -0
- package/lib/esm/src/screens/logger/logsTable/TableColumns.js.map +7 -0
- package/lib/esm/src/screens/logger/logsTable/TableHeader.js +33 -0
- package/lib/esm/src/screens/logger/logsTable/TableHeader.js.map +7 -0
- package/lib/esm/src/screens/logger/logsTable/constants.js +2 -0
- package/lib/esm/src/screens/logger/logsTable/constants.js.map +7 -0
- package/lib/esm/src/screens/logger/logsTable/index.js +26 -0
- package/lib/esm/src/screens/logger/logsTable/index.js.map +7 -0
- package/lib/esm/src/screens/logger/logsTable/useColumnSizeVars.js +2 -0
- package/lib/esm/src/screens/logger/logsTable/useColumnSizeVars.js.map +7 -0
- package/lib/esm/src/screens/logger/logsTable/useResizeObserver.js +2 -0
- package/lib/esm/src/screens/logger/logsTable/useResizeObserver.js.map +7 -0
- package/lib/esm/src/screens/logger/logsTable/useScrollLogic.js +2 -0
- package/lib/esm/src/screens/logger/logsTable/useScrollLogic.js.map +7 -0
- package/lib/esm/src/screens/logger/mapConnectorMessageToLogData.js +2 -0
- package/lib/esm/src/screens/logger/mapConnectorMessageToLogData.js.map +7 -0
- package/lib/esm/src/screens/logger/types.js +1 -0
- package/lib/esm/src/screens/logger/types.js.map +7 -0
- package/lib/esm/src/screens/logger/useColumnSizeVars.js +2 -0
- package/lib/esm/src/screens/logger/useColumnSizeVars.js.map +7 -0
- package/lib/esm/src/screens/logger/useLogsDataAndOptions.js +2 -0
- package/lib/esm/src/screens/logger/useLogsDataAndOptions.js.map +7 -0
- package/lib/esm/src/screens/logger/useRecentFilters.js +2 -0
- package/lib/esm/src/screens/logger/useRecentFilters.js.map +7 -0
- package/lib/esm/src/screens/logger/useSearchState.js +2 -0
- package/lib/esm/src/screens/logger/useSearchState.js.map +7 -0
- package/lib/esm/src/shared/NotConnectedMessage.js +24 -0
- package/lib/esm/src/shared/NotConnectedMessage.js.map +7 -0
- package/lib/esm/src/shared/PluginEvents.js +1 -0
- package/lib/esm/src/shared/PluginEvents.js.map +7 -0
- package/package.json +73 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";var u=Object.create;var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var b=(o,t)=>{for(var e in t)s(o,e,{get:t[e],enumerable:!0})},a=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of g(t))!f.call(o,n)&&n!==e&&s(o,n,{get:()=>t[n],enumerable:!(r=p(t,n))||r.enumerable});return o};var y=(o,t,e)=>(e=o!=null?u(S(o)):{},a(t||!o||!o.__esModule?s(e,"default",{value:o,enumerable:!0}):e,o)),x=o=>a(s({},"__esModule",{value:!0}),o);var D={};b(D,{TableHeader:()=>$});module.exports=x(D);var d=require("@tanstack/react-table"),l=y(require("styled-components")),c=require("./constants"),i=require("react/jsx-runtime");const T=l.default.thead`
|
|
2
|
+
display: grid;
|
|
3
|
+
position: sticky;
|
|
4
|
+
top: 0;
|
|
5
|
+
z-index: 1;
|
|
6
|
+
background-color: white;
|
|
7
|
+
`,z=l.default.tr`
|
|
8
|
+
display: flex;
|
|
9
|
+
width: 100%;
|
|
10
|
+
background-color: ghostwhite;
|
|
11
|
+
`,H=l.default.th`
|
|
12
|
+
display: flex;
|
|
13
|
+
flex: ${({flexible:o,size:t,minSize:e})=>o?`${t} 1 ${e}px`:`0 0 ${t}px`};
|
|
14
|
+
min-width: ${({flexible:o,size:t,minSize:e})=>o?e:t}px;
|
|
15
|
+
position: relative;
|
|
16
|
+
overflow: hidden;
|
|
17
|
+
`,R=l.default.div`
|
|
18
|
+
font-size: ${c.TABLE_STYLES.HEADER_FONT_SIZE}px;
|
|
19
|
+
cursor: ${({canSort:o})=>o?"pointer":"default"};
|
|
20
|
+
user-select: ${({canSort:o})=>o?"none":"auto"};
|
|
21
|
+
`,h=l.default.div`
|
|
22
|
+
position: absolute;
|
|
23
|
+
right: 0;
|
|
24
|
+
top: 0;
|
|
25
|
+
width: ${c.TABLE_STYLES.RESIZER_WIDTH};
|
|
26
|
+
margin-right: ${c.TABLE_STYLES.RESIZER_MARGIN};
|
|
27
|
+
height: 100%;
|
|
28
|
+
cursor: col-resize;
|
|
29
|
+
background-color: lightgrey;
|
|
30
|
+
touch-action: none;
|
|
31
|
+
user-select: none;
|
|
32
|
+
`,$=({headerGroups:o})=>(0,i.jsx)(T,{children:o.map(t=>(0,i.jsx)(z,{children:t.headers.map(e=>{const r=e.column.columnDef.meta?.flexible??!1,n=e.getSize(),m=e.column.columnDef.minSize??50;return(0,i.jsxs)(H,{size:n,minSize:m,flexible:r,children:[(0,i.jsxs)(R,{canSort:e.column.getCanSort(),onClick:e.column.getToggleSortingHandler(),children:[(0,d.flexRender)(e.column.columnDef.header,e.getContext()),{asc:" \u{1F53C}",desc:" \u{1F53D}"}[e.column.getIsSorted()]??null]}),(0,i.jsx)(h,{onDoubleClick:()=>e.column.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler()})]},e.id)})},t.id))});0&&(module.exports={TableHeader});
|
|
33
|
+
//# sourceMappingURL=TableHeader.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/screens/logger/logsTable/TableHeader.tsx"],
|
|
4
|
+
"sourcesContent": ["import React from \"react\";\nimport { flexRender, type HeaderGroup } from \"@tanstack/react-table\";\nimport styled from \"styled-components\";\n\nimport { type LogData } from \"../types\";\nimport { TABLE_STYLES } from \"./constants\";\n\nconst StyledThead = styled.thead`\n display: grid;\n position: sticky;\n top: 0;\n z-index: 1;\n background-color: white;\n`;\n\nconst StyledTr = styled.tr`\n display: flex;\n width: 100%;\n background-color: ghostwhite;\n`;\n\nconst StyledTh = styled.th<{\n size: number;\n minSize: number;\n flexible: boolean;\n}>`\n display: flex;\n flex: ${({ flexible, size, minSize }) =>\n flexible ? `${size} 1 ${minSize}px` : `0 0 ${size}px`};\n min-width: ${({ flexible, size, minSize }) => (flexible ? minSize : size)}px;\n position: relative;\n overflow: hidden;\n`;\n\nconst HeaderContent = styled.div<{ canSort: boolean }>`\n font-size: ${TABLE_STYLES.HEADER_FONT_SIZE}px;\n cursor: ${({ canSort }) => (canSort ? \"pointer\" : \"default\")};\n user-select: ${({ canSort }) => (canSort ? \"none\" : \"auto\")};\n`;\n\nconst Resizer = styled.div`\n position: absolute;\n right: 0;\n top: 0;\n width: ${TABLE_STYLES.RESIZER_WIDTH};\n margin-right: ${TABLE_STYLES.RESIZER_MARGIN};\n height: 100%;\n cursor: col-resize;\n background-color: lightgrey;\n touch-action: none;\n user-select: none;\n`;\n\ntype TableHeaderProps = {\n headerGroups: HeaderGroup<LogData>[];\n};\n\nexport const TableHeader: React.FC<TableHeaderProps> = ({ headerGroups }) => {\n return (\n <StyledThead>\n {headerGroups.map((headerGroup) => (\n <StyledTr key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n const flexible =\n (header.column.columnDef.meta as { flexible?: boolean })\n ?.flexible ?? false;\n const size = header.getSize();\n const minSize = header.column.columnDef.minSize ?? 50;\n return (\n <StyledTh\n key={header.id}\n size={size}\n minSize={minSize}\n flexible={flexible}\n >\n <HeaderContent\n canSort={header.column.getCanSort()}\n onClick={header.column.getToggleSortingHandler()}\n >\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n {{\n asc: \" \uD83D\uDD3C\",\n desc: \" \uD83D\uDD3D\",\n }[header.column.getIsSorted() as string] ?? null}\n </HeaderContent>\n <Resizer\n onDoubleClick={() => header.column.resetSize()}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n />\n </StyledTh>\n );\n })}\n </StyledTr>\n ))}\n </StyledThead>\n );\n};\n"],
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAA6C,iCAC7CC,EAAmB,gCAGnBC,EAA6B,uBAsEbC,EAAA,6BApEhB,MAAMC,EAAc,EAAAC,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrBC,EAAW,EAAAD,QAAO;AAAA;AAAA;AAAA;AAAA,EAMlBE,EAAW,EAAAF,QAAO;AAAA;AAAA,UAMd,CAAC,CAAE,SAAAG,EAAU,KAAAC,EAAM,QAAAC,CAAQ,IACjCF,EAAW,GAAGC,CAAI,MAAMC,CAAO,KAAO,OAAOD,CAAI,IAAI;AAAA,eAC1C,CAAC,CAAE,SAAAD,EAAU,KAAAC,EAAM,QAAAC,CAAQ,IAAOF,EAAWE,EAAUD,CAAK;AAAA;AAAA;AAAA,EAKrEE,EAAgB,EAAAN,QAAO;AAAA,eACd,eAAa,gBAAgB;AAAA,YAChC,CAAC,CAAE,QAAAO,CAAQ,IAAOA,EAAU,UAAY,SAAU;AAAA,iBAC7C,CAAC,CAAE,QAAAA,CAAQ,IAAOA,EAAU,OAAS,MAAO;AAAA,EAGvDC,EAAU,EAAAR,QAAO;AAAA;AAAA;AAAA;AAAA,WAIZ,eAAa,aAAa;AAAA,kBACnB,eAAa,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYhCP,EAA0C,CAAC,CAAE,aAAAgB,CAAa,OAEnE,OAACV,EAAA,CACE,SAAAU,EAAa,IAAKC,MACjB,OAACT,EAAA,CACE,SAAAS,EAAY,QAAQ,IAAKC,GAAW,CACnC,MAAMR,EACHQ,EAAO,OAAO,UAAU,MACrB,UAAY,GACZP,EAAOO,EAAO,QAAQ,EACtBN,EAAUM,EAAO,OAAO,UAAU,SAAW,GACnD,SACE,QAACT,EAAA,CAEC,KAAME,EACN,QAASC,EACT,SAAUF,EAEV,qBAACG,EAAA,CACC,QAASK,EAAO,OAAO,WAAW,EAClC,QAASA,EAAO,OAAO,wBAAwB,EAE9C,2BACCA,EAAO,OAAO,UAAU,OACxBA,EAAO,WAAW,CACpB,EACC,CACC,IAAK,aACL,KAAM,YACR,EAAEA,EAAO,OAAO,YAAY,CAAW,GAAK,MAC9C,KACA,OAACH,EAAA,CACC,cAAe,IAAMG,EAAO,OAAO,UAAU,EAC7C,YAAaA,EAAO,iBAAiB,EACrC,aAAcA,EAAO,iBAAiB,EACxC,IAtBKA,EAAO,EAuBd,CAEJ,CAAC,GAlCYD,EAAY,EAmC3B,CACD,EACH",
|
|
6
|
+
"names": ["TableHeader_exports", "__export", "TableHeader", "__toCommonJS", "import_react_table", "import_styled_components", "import_constants", "import_jsx_runtime", "StyledThead", "styled", "StyledTr", "StyledTh", "flexible", "size", "minSize", "HeaderContent", "canSort", "Resizer", "headerGroups", "headerGroup", "header"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var T=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var t=(_,E)=>{for(var O in E)T(_,O,{get:E[O],enumerable:!0})},N=(_,E,O,S)=>{if(E&&typeof E=="object"||typeof E=="function")for(let I of L(E))!o.call(_,I)&&I!==O&&T(_,I,{get:()=>E[I],enumerable:!(S=R(E,I))||S.enumerable});return _};var s=_=>N(T({},"__esModule",{value:!0}),_);var C={};t(C,{SCROLL_BUTTON_CONFIG:()=>D,SCROLL_THRESHOLD:()=>p,TABLE_CONFIG:()=>A,TABLE_STYLES:()=>x});module.exports=s(C);const A={ROW_HEIGHT_ESTIMATE:42,OVERSCAN:5,MIN_COLUMN_SIZE:50,MAX_COLUMN_SIZE:500},D={SIZE:50,BOTTOM_OFFSET:25,RIGHT_OFFSET:25,BORDER_RADIUS:25,PADDING_TOP:4},p=1,x={HEADER_FONT_SIZE:12,CELL_PADDING:"3px 0px",RESIZER_WIDTH:"3px",RESIZER_MARGIN:"2px"};0&&(module.exports={SCROLL_BUTTON_CONFIG,SCROLL_THRESHOLD,TABLE_CONFIG,TABLE_STYLES});
|
|
2
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/screens/logger/logsTable/constants.ts"],
|
|
4
|
+
"sourcesContent": ["export const TABLE_CONFIG = {\n ROW_HEIGHT_ESTIMATE: 42,\n OVERSCAN: 5,\n MIN_COLUMN_SIZE: 50,\n MAX_COLUMN_SIZE: 500,\n} as const;\n\nexport const SCROLL_BUTTON_CONFIG = {\n SIZE: 50,\n BOTTOM_OFFSET: 25,\n RIGHT_OFFSET: 25,\n BORDER_RADIUS: 25,\n PADDING_TOP: 4,\n} as const;\n\nexport const SCROLL_THRESHOLD = 1;\n\nexport const TABLE_STYLES = {\n HEADER_FONT_SIZE: 12,\n CELL_PADDING: \"3px 0px\",\n RESIZER_WIDTH: \"3px\",\n RESIZER_MARGIN: \"2px\",\n} as const;\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,EAAA,qBAAAC,EAAA,iBAAAC,EAAA,iBAAAC,IAAA,eAAAC,EAAAN,GAAO,MAAMI,EAAe,CAC1B,oBAAqB,GACrB,SAAU,EACV,gBAAiB,GACjB,gBAAiB,GACnB,EAEaF,EAAuB,CAClC,KAAM,GACN,cAAe,GACf,aAAc,GACd,cAAe,GACf,YAAa,CACf,EAEaC,EAAmB,EAEnBE,EAAe,CAC1B,iBAAkB,GAClB,aAAc,UACd,cAAe,MACf,eAAgB,KAClB",
|
|
6
|
+
"names": ["constants_exports", "__export", "SCROLL_BUTTON_CONFIG", "SCROLL_THRESHOLD", "TABLE_CONFIG", "TABLE_STYLES", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";var O=Object.create;var p=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var B=(e,o)=>{for(var r in o)p(e,r,{get:o[r],enumerable:!0})},T=(e,o,r,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let s of H(o))!_.call(e,s)&&s!==r&&p(e,s,{get:()=>o[s],enumerable:!(a=A(o,s))||a.enumerable});return e};var F=(e,o,r)=>(r=e!=null?O(N(e)):{},T(o||!e||!e.__esModule?p(r,"default",{value:e,enumerable:!0}):r,e)),G=e=>T(p({},"__esModule",{value:!0}),e);var P={};B(P,{LogsTable:()=>W});module.exports=G(P);var l=require("react"),m=require("@tanstack/react-table"),w=require("@tanstack/react-virtual"),u=F(require("styled-components")),d=require("./constants"),y=require("./ScrollDownButton"),v=require("./TableBody"),z=require("./TableColumns"),E=require("./TableHeader"),I=require("./useScrollLogic"),t=require("react/jsx-runtime");const Z=u.default.div`
|
|
2
|
+
height: ${({height:e})=>e}px;
|
|
3
|
+
overflow: ${({disableScroll:e})=>e?"hidden":"auto"};
|
|
4
|
+
overflow-anchor: auto;
|
|
5
|
+
position: relative;
|
|
6
|
+
width: 100%;
|
|
7
|
+
`,$=u.default.div`
|
|
8
|
+
width: 100%;
|
|
9
|
+
min-width: fit-content;
|
|
10
|
+
`,D=u.default.table`
|
|
11
|
+
display: grid;
|
|
12
|
+
`,R=u.default.div`
|
|
13
|
+
flex: 1;
|
|
14
|
+
position: relative;
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
min-height: 0;
|
|
18
|
+
`,V=u.default.div`
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
flex: 1;
|
|
23
|
+
color: #999;
|
|
24
|
+
font-size: 14px;
|
|
25
|
+
`,W=({data:e,highlightedIndices:o,currentHighlightIndex:r,scrollToIndex:a})=>{const{autoScrollEnabled:s,onScroll:M,scrollContainerRef:f,scrollZoneHeight:b,scrollToBottom:x,scrollZoneRef:S}=(0,I.useScrollLogic)({data:e}),L=(0,l.useMemo)(()=>(0,z.createColumns)(),[]),g=(0,m.useReactTable)({data:e,columns:L,defaultColumn:{minSize:d.TABLE_CONFIG.MIN_COLUMN_SIZE,maxSize:d.TABLE_CONFIG.MAX_COLUMN_SIZE},columnResizeMode:"onChange",getCoreRowModel:(0,m.getCoreRowModel)(),getSortedRowModel:(0,m.getSortedRowModel)(),debugTable:!0,getRowId:i=>`${i.timestamp}-${i.message}`}),{rows:c}=g.getRowModel(),n=(0,w.useVirtualizer)({count:c.length,estimateSize:()=>d.TABLE_CONFIG.ROW_HEIGHT_ESTIMATE,getScrollElement:()=>f.current,getItemKey:i=>c[i]?.id??String(i),measureElement:typeof window<"u"&&navigator.userAgent.indexOf("Firefox")===-1?i=>i?.getBoundingClientRect().height:void 0,overscan:d.TABLE_CONFIG.OVERSCAN}),h=g.getState().columnSizingInfo.isResizingColumn;return(0,l.useEffect)(()=>{h||n.measure()},[b,n,h]),(0,l.useEffect)(()=>{const i=f.current;if(!i)return;const C=new ResizeObserver(()=>{g.getState().columnSizingInfo.isResizingColumn||requestAnimationFrame(()=>{n.measure()})});return C.observe(i),()=>{C.disconnect()}},[n,f,g]),(0,l.useEffect)(()=>{a!==void 0&&a>=0&&n.scrollToIndex(a,{align:"center"})},[a,n]),(0,l.useLayoutEffect)(()=>{c.length<100&&c.length>0&&(n.scrollToOffset(0),n.measure())},[c.length,n]),e.length===0?(0,t.jsx)(R,{ref:S,children:(0,t.jsx)(V,{children:"No logs to display"})}):(0,t.jsxs)(R,{ref:S,children:[(0,t.jsx)(Z,{className:"container",ref:f,onScroll:M,height:b,disableScroll:!!h,children:(0,t.jsx)($,{children:(0,t.jsxs)(D,{children:[(0,t.jsx)(E.TableHeader,{headerGroups:g.getHeaderGroups()}),(0,t.jsx)(v.TableBody,{virtualizer:n,rows:c,highlightedIndices:o,currentHighlightIndex:r})]})})}),(0,t.jsx)(y.ScrollDownButton,{enabled:s,onClick:x})]})};0&&(module.exports={LogsTable});
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/screens/logger/logsTable/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { useEffect, useLayoutEffect, useMemo } from \"react\";\nimport {\n getCoreRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport styled from \"styled-components\";\n\nimport { type LogData } from \"../types\";\nimport { TABLE_CONFIG } from \"./constants\";\nimport { ScrollDownButton } from \"./ScrollDownButton\";\nimport { TableBody } from \"./TableBody\";\nimport { createColumns } from \"./TableColumns\";\nimport { TableHeader } from \"./TableHeader\";\nimport { useScrollLogic } from \"./useScrollLogic\";\n\nconst ScrollContainer = styled.div<{ height: number; disableScroll: boolean }>`\n height: ${({ height }) => height}px;\n overflow: ${({ disableScroll }) => (disableScroll ? \"hidden\" : \"auto\")};\n overflow-anchor: auto;\n position: relative;\n width: 100%;\n`;\n\nconst TableWrapper = styled.div`\n width: 100%;\n min-width: fit-content;\n`;\n\nconst StyledTable = styled.table`\n display: grid;\n`;\n\nconst TableContainer = styled.div`\n flex: 1;\n position: relative;\n display: flex;\n flex-direction: column;\n min-height: 0;\n`;\n\nconst EmptyState = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n color: #999;\n font-size: 14px;\n`;\n\ntype ScrollableLogTableProps = {\n data: Array<LogData>;\n highlightedIndices?: Set<number>;\n currentHighlightIndex?: number;\n scrollToIndex?: number;\n};\n\nexport const LogsTable: React.FC<ScrollableLogTableProps> = ({\n data,\n highlightedIndices,\n currentHighlightIndex,\n scrollToIndex,\n}) => {\n const {\n autoScrollEnabled,\n onScroll,\n scrollContainerRef,\n scrollZoneHeight,\n scrollToBottom,\n scrollZoneRef,\n } = useScrollLogic({ data });\n\n const columns = useMemo(() => createColumns(), []);\n\n const table = useReactTable({\n data,\n columns,\n defaultColumn: {\n minSize: TABLE_CONFIG.MIN_COLUMN_SIZE,\n maxSize: TABLE_CONFIG.MAX_COLUMN_SIZE,\n },\n columnResizeMode: \"onChange\",\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n debugTable: true,\n getRowId: (originalRow) =>\n `${originalRow.timestamp}-${originalRow.message}`,\n });\n\n const { rows } = table.getRowModel();\n\n const rowVirtualizer = useVirtualizer({\n count: rows.length,\n estimateSize: () => TABLE_CONFIG.ROW_HEIGHT_ESTIMATE,\n getScrollElement: () => scrollContainerRef.current,\n getItemKey: (index) => rows[index]?.id ?? String(index),\n measureElement:\n typeof window !== \"undefined\" &&\n navigator.userAgent.indexOf(\"Firefox\") === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: TABLE_CONFIG.OVERSCAN,\n });\n\n // Skip during column resize to avoid scroll position jumping\n const isResizingColumn = table.getState().columnSizingInfo.isResizingColumn;\n\n // Notify virtualizer when container height changes\n useEffect(() => {\n if (isResizingColumn) return;\n rowVirtualizer.measure();\n }, [scrollZoneHeight, rowVirtualizer, isResizingColumn]);\n\n // Observe the scroll container for size changes\n useEffect(() => {\n const container = scrollContainerRef.current;\n if (!container) return;\n\n const observer = new ResizeObserver(() => {\n // Skip measure during column resize\n if (table.getState().columnSizingInfo.isResizingColumn) return;\n requestAnimationFrame(() => {\n rowVirtualizer.measure();\n });\n });\n\n observer.observe(container);\n\n return () => {\n observer.disconnect();\n };\n }, [rowVirtualizer, scrollContainerRef, table]);\n\n // Scroll to current search match\n useEffect(() => {\n if (scrollToIndex !== undefined && scrollToIndex >= 0) {\n rowVirtualizer.scrollToIndex(scrollToIndex, { align: \"center\" });\n }\n }, [scrollToIndex, rowVirtualizer]);\n\n // Reset virtualizer when data changes and is small (helps with filter transitions)\n // Scroll to top first to avoid invalid scroll position, then recalculate\n // Use useLayoutEffect to run synchronously before browser paints\n useLayoutEffect(() => {\n if (rows.length < 100 && rows.length > 0) {\n rowVirtualizer.scrollToOffset(0);\n rowVirtualizer.measure();\n }\n }, [rows.length, rowVirtualizer]);\n\n // Show empty state when there are no logs to display\n if (data.length === 0) {\n return (\n <TableContainer ref={scrollZoneRef}>\n <EmptyState>No logs to display</EmptyState>\n </TableContainer>\n );\n }\n\n return (\n <TableContainer ref={scrollZoneRef}>\n <ScrollContainer\n className=\"container\"\n ref={scrollContainerRef}\n onScroll={onScroll}\n height={scrollZoneHeight}\n disableScroll={!!isResizingColumn}\n >\n <TableWrapper>\n <StyledTable>\n <TableHeader headerGroups={table.getHeaderGroups()} />\n <TableBody\n virtualizer={rowVirtualizer}\n rows={rows}\n highlightedIndices={highlightedIndices}\n currentHighlightIndex={currentHighlightIndex}\n />\n </StyledTable>\n </TableWrapper>\n </ScrollContainer>\n <ScrollDownButton enabled={autoScrollEnabled} onClick={scrollToBottom} />\n </TableContainer>\n );\n};\n"],
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA2D,iBAC3DC,EAIO,iCACPC,EAA+B,mCAC/BC,EAAmB,gCAGnBC,EAA6B,uBAC7BC,EAAiC,8BACjCC,EAA0B,uBAC1BC,EAA8B,0BAC9BC,EAA4B,yBAC5BC,EAA+B,4BA4IvBC,EAAA,6BA1IR,MAAMC,EAAkB,EAAAC,QAAO;AAAA,YACnB,CAAC,CAAE,OAAAC,CAAO,IAAMA,CAAM;AAAA,cACpB,CAAC,CAAE,cAAAC,CAAc,IAAOA,EAAgB,SAAW,MAAO;AAAA;AAAA;AAAA;AAAA,EAMlEC,EAAe,EAAAH,QAAO;AAAA;AAAA;AAAA,EAKtBI,EAAc,EAAAJ,QAAO;AAAA;AAAA,EAIrBK,EAAiB,EAAAL,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQxBM,EAAa,EAAAN,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBbd,EAA+C,CAAC,CAC3D,KAAAqB,EACA,mBAAAC,EACA,sBAAAC,EACA,cAAAC,CACF,IAAM,CACJ,KAAM,CACJ,kBAAAC,EACA,SAAAC,EACA,mBAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,cAAAC,CACF,KAAI,kBAAe,CAAE,KAAAT,CAAK,CAAC,EAErBU,KAAU,WAAQ,OAAM,iBAAc,EAAG,CAAC,CAAC,EAE3CC,KAAQ,iBAAc,CAC1B,KAAAX,EACA,QAAAU,EACA,cAAe,CACb,QAAS,eAAa,gBACtB,QAAS,eAAa,eACxB,EACA,iBAAkB,WAClB,mBAAiB,mBAAgB,EACjC,qBAAmB,qBAAkB,EACrC,WAAY,GACZ,SAAWE,GACT,GAAGA,EAAY,SAAS,IAAIA,EAAY,OAAO,EACnD,CAAC,EAEK,CAAE,KAAAC,CAAK,EAAIF,EAAM,YAAY,EAE7BG,KAAiB,kBAAe,CACpC,MAAOD,EAAK,OACZ,aAAc,IAAM,eAAa,oBACjC,iBAAkB,IAAMP,EAAmB,QAC3C,WAAaS,GAAUF,EAAKE,CAAK,GAAG,IAAM,OAAOA,CAAK,EACtD,eACE,OAAO,OAAW,KAClB,UAAU,UAAU,QAAQ,SAAS,IAAM,GACtCC,GAAYA,GAAS,sBAAsB,EAAE,OAC9C,OACN,SAAU,eAAa,QACzB,CAAC,EAGKC,EAAmBN,EAAM,SAAS,EAAE,iBAAiB,iBA8C3D,SA3CA,aAAU,IAAM,CACVM,GACJH,EAAe,QAAQ,CACzB,EAAG,CAACP,EAAkBO,EAAgBG,CAAgB,CAAC,KAGvD,aAAU,IAAM,CACd,MAAMC,EAAYZ,EAAmB,QACrC,GAAI,CAACY,EAAW,OAEhB,MAAMC,EAAW,IAAI,eAAe,IAAM,CAEpCR,EAAM,SAAS,EAAE,iBAAiB,kBACtC,sBAAsB,IAAM,CAC1BG,EAAe,QAAQ,CACzB,CAAC,CACH,CAAC,EAED,OAAAK,EAAS,QAAQD,CAAS,EAEnB,IAAM,CACXC,EAAS,WAAW,CACtB,CACF,EAAG,CAACL,EAAgBR,EAAoBK,CAAK,CAAC,KAG9C,aAAU,IAAM,CACVR,IAAkB,QAAaA,GAAiB,GAClDW,EAAe,cAAcX,EAAe,CAAE,MAAO,QAAS,CAAC,CAEnE,EAAG,CAACA,EAAeW,CAAc,CAAC,KAKlC,mBAAgB,IAAM,CAChBD,EAAK,OAAS,KAAOA,EAAK,OAAS,IACrCC,EAAe,eAAe,CAAC,EAC/BA,EAAe,QAAQ,EAE3B,EAAG,CAACD,EAAK,OAAQC,CAAc,CAAC,EAG5Bd,EAAK,SAAW,KAEhB,OAACF,EAAA,CAAe,IAAKW,EACnB,mBAACV,EAAA,CAAW,8BAAkB,EAChC,KAKF,QAACD,EAAA,CAAe,IAAKW,EACnB,oBAACjB,EAAA,CACC,UAAU,YACV,IAAKc,EACL,SAAUD,EACV,OAAQE,EACR,cAAe,CAAC,CAACU,EAEjB,mBAACrB,EAAA,CACC,oBAACC,EAAA,CACC,oBAAC,eAAY,aAAcc,EAAM,gBAAgB,EAAG,KACpD,OAAC,aACC,YAAaG,EACb,KAAMD,EACN,mBAAoBZ,EACpB,sBAAuBC,EACzB,GACF,EACF,EACF,KACA,OAAC,oBAAiB,QAASE,EAAmB,QAASI,EAAgB,GACzE,CAEJ",
|
|
6
|
+
"names": ["logsTable_exports", "__export", "LogsTable", "__toCommonJS", "import_react", "import_react_table", "import_react_virtual", "import_styled_components", "import_constants", "import_ScrollDownButton", "import_TableBody", "import_TableColumns", "import_TableHeader", "import_useScrollLogic", "import_jsx_runtime", "ScrollContainer", "styled", "height", "disableScroll", "TableWrapper", "StyledTable", "TableContainer", "EmptyState", "data", "highlightedIndices", "currentHighlightIndex", "scrollToIndex", "autoScrollEnabled", "onScroll", "scrollContainerRef", "scrollZoneHeight", "scrollToBottom", "scrollZoneRef", "columns", "table", "originalRow", "rows", "rowVirtualizer", "index", "element", "isResizingColumn", "container", "observer"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var g=(e,o)=>{for(var t in o)n(e,t,{get:o[t],enumerable:!0})},u=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of m(o))!c.call(e,i)&&i!==t&&n(e,i,{get:()=>o[i],enumerable:!(r=a(o,i))||r.enumerable});return e};var d=e=>u(n({},"__esModule",{value:!0}),e);var z={};g(z,{useColumnSizeVars:()=>l});module.exports=d(z);var s=require("react");const l=e=>(0,s.useMemo)(()=>{const o=e.getFlatHeaders(),t={};for(const r of o)t[`--header-${r.id}-size`]=r.getSize(),t[`--col-${r.column.id}-size`]=r.column.getSize();return t},[e.getState().columnSizingInfo,e.getFlatHeaders(),e.getState().columnSizing]);0&&(module.exports={useColumnSizeVars});
|
|
2
|
+
//# sourceMappingURL=useColumnSizeVars.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/screens/logger/logsTable/useColumnSizeVars.ts"],
|
|
4
|
+
"sourcesContent": ["import { useMemo } from \"react\";\nimport { type Table } from \"@tanstack/react-table\";\n\nimport { type LogData } from \"../types\";\n\nexport const useColumnSizeVars = (table: Table<LogData>) => {\n return useMemo(() => {\n const headers = table.getFlatHeaders();\n const colSizes: Record<string, number> = {};\n\n for (const header of headers) {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n }\n\n return colSizes;\n }, [\n table.getState().columnSizingInfo,\n table.getFlatHeaders(),\n table.getState().columnSizing,\n ]);\n};\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAwB,iBAKjB,MAAMF,EAAqBG,MACzB,WAAQ,IAAM,CACnB,MAAMC,EAAUD,EAAM,eAAe,EAC/BE,EAAmC,CAAC,EAE1C,UAAWC,KAAUF,EACnBC,EAAS,YAAYC,EAAO,EAAE,OAAO,EAAIA,EAAO,QAAQ,EACxDD,EAAS,SAASC,EAAO,OAAO,EAAE,OAAO,EAAIA,EAAO,OAAO,QAAQ,EAGrE,OAAOD,CACT,EAAG,CACDF,EAAM,SAAS,EAAE,iBACjBA,EAAM,eAAe,EACrBA,EAAM,SAAS,EAAE,YACnB,CAAC",
|
|
6
|
+
"names": ["useColumnSizeVars_exports", "__export", "useColumnSizeVars", "__toCommonJS", "import_react", "table", "headers", "colSizes", "header"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var u=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var R=(r,e)=>{for(var n in e)u(r,n,{get:e[n],enumerable:!0})},d=(r,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of b(e))!v.call(r,t)&&t!==n&&u(r,t,{get:()=>e[t],enumerable:!(s=i(e,t))||s.enumerable});return r};var m=r=>d(u({},"__esModule",{value:!0}),r);var y={};R(y,{useResizeObserver:()=>x});module.exports=m(y);var o=require("react");function x(r){const e=(0,o.useRef)(null),n=(0,o.useRef)(r);return(0,o.useLayoutEffect)(()=>{n.current=r},[r]),(0,o.useLayoutEffect)(()=>{const s=e?.current;if(!s)return;const t=new ResizeObserver(f=>{const c=f[0];c&&n.current(s,c)});return t.observe(s,{box:"border-box"}),()=>{t.disconnect()}},[]),e}0&&(module.exports={useResizeObserver});
|
|
2
|
+
//# sourceMappingURL=useResizeObserver.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/screens/logger/logsTable/useResizeObserver.tsx"],
|
|
4
|
+
"sourcesContent": ["import { useLayoutEffect, useRef } from \"react\";\n\nexport function useResizeObserver<T extends HTMLElement>(\n callback: (target: T, entry: ResizeObserverEntry) => void,\n) {\n const ref = useRef<T>(null);\n const callbackRef = useRef(callback);\n\n // Keep callback ref up to date\n useLayoutEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useLayoutEffect(() => {\n const element = ref?.current;\n\n if (!element) {\n return;\n }\n\n const observer = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n callbackRef.current(element, entry);\n }\n });\n\n // Observe border box to catch all size changes including padding/borders\n observer.observe(element, { box: \"border-box\" });\n\n return () => {\n observer.disconnect();\n };\n }, []); // Empty dependency array - observer is created once\n\n return ref;\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAwC,iBAEjC,SAASF,EACdG,EACA,CACA,MAAMC,KAAM,UAAU,IAAI,EACpBC,KAAc,UAAOF,CAAQ,EAGnC,4BAAgB,IAAM,CACpBE,EAAY,QAAUF,CACxB,EAAG,CAACA,CAAQ,CAAC,KAEb,mBAAgB,IAAM,CACpB,MAAMG,EAAUF,GAAK,QAErB,GAAI,CAACE,EACH,OAGF,MAAMC,EAAW,IAAI,eAAgBC,GAAY,CAC/C,MAAMC,EAAQD,EAAQ,CAAC,EACnBC,GACFJ,EAAY,QAAQC,EAASG,CAAK,CAEtC,CAAC,EAGD,OAAAF,EAAS,QAAQD,EAAS,CAAE,IAAK,YAAa,CAAC,EAExC,IAAM,CACXC,EAAS,WAAW,CACtB,CACF,EAAG,CAAC,CAAC,EAEEH,CACT",
|
|
6
|
+
"names": ["useResizeObserver_exports", "__export", "useResizeObserver", "__toCommonJS", "import_react", "callback", "ref", "callbackRef", "element", "observer", "entries", "entry"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var S=Object.create;var u=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var A=(t,e)=>{for(var n in e)u(t,n,{get:e[n],enumerable:!0})},h=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of E(e))!b.call(t,c)&&c!==n&&u(t,c,{get:()=>e[c],enumerable:!(s=v(e,c))||s.enumerable});return t};var D=(t,e,n)=>(n=t!=null?S(T(t)):{},h(e||!t||!t.__esModule?u(n,"default",{value:t,enumerable:!0}):n,t)),q=t=>h(u({},"__esModule",{value:!0}),t);var F={};A(F,{useScrollLogic:()=>C});module.exports=q(F);var r=D(require("react")),m=require("./constants"),R=require("./useResizeObserver");const C=({data:t})=>{const e=r.default.useRef(null),[n,s]=(0,r.useState)(!0),c=r.default.useRef(!1),f=r.default.useRef(t.length),a=(0,r.useCallback)(()=>{e.current&&(c.current=!0,s(!0),e.current.scrollTo({top:e.current.scrollHeight,behavior:"instant"}),requestAnimationFrame(()=>{requestAnimationFrame(()=>{c.current=!1})}))},[]);(0,r.useEffect)(()=>{n&&e.current&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.current&&n&&a()})})},[t.length,n,a]),(0,r.useEffect)(()=>{const o=f.current,l=t.length;f.current=l,(l<o*.5||l<=3)&&(e.current?.scrollTo({top:0,behavior:"instant"}),s(!0))},[t.length]);const[H,g]=(0,r.useState)(0),L=(0,r.useCallback)((o,l)=>{g(l.contentRect.height)},[]),i=(0,R.useResizeObserver)(L);(0,r.useLayoutEffect)(()=>{if(i.current){const o=i.current.getBoundingClientRect().height;o>0&&g(o)}},[i]);const p=(0,r.useCallback)(()=>{const o=e.current;if(!o||c.current)return;const l=o.scrollTop+o.clientHeight>=o.scrollHeight-m.SCROLL_THRESHOLD;s(l)},[]);return{autoScrollEnabled:n,onScroll:p,scrollContainerRef:e,scrollZoneHeight:H,scrollToBottom:a,scrollZoneRef:i}};0&&(module.exports={useScrollLogic});
|
|
2
|
+
//# sourceMappingURL=useScrollLogic.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/screens/logger/logsTable/useScrollLogic.ts"],
|
|
4
|
+
"sourcesContent": ["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useState,\n} from \"react\";\n\nimport { SCROLL_THRESHOLD } from \"./constants\";\nimport { useResizeObserver } from \"./useResizeObserver\";\n\nexport const useScrollLogic = ({ data }: { data: unknown[] }) => {\n const scrollContainerRef = React.useRef<HTMLDivElement>(null);\n const [autoScrollEnabled, setAutoScrollEnabled] = useState(true);\n const isScrollingProgrammaticallyRef = React.useRef(false);\n const prevDataLengthRef = React.useRef(data.length);\n\n const scrollToBottom = useCallback(() => {\n if (scrollContainerRef.current) {\n isScrollingProgrammaticallyRef.current = true;\n setAutoScrollEnabled(true);\n scrollContainerRef.current.scrollTo({\n top: scrollContainerRef.current.scrollHeight,\n behavior: \"instant\",\n });\n // Reset the flag after a brief delay to allow scroll to complete\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isScrollingProgrammaticallyRef.current = false;\n });\n });\n }\n }, []);\n\n // Auto-scroll when new data arrives (not on container resize)\n useEffect(() => {\n if (autoScrollEnabled && scrollContainerRef.current) {\n // Use double requestAnimationFrame to ensure DOM has updated and virtualizer has recalculated\n // This is necessary when content starts overflowing as the virtualizer needs time to measure\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (scrollContainerRef.current && autoScrollEnabled) {\n scrollToBottom();\n }\n });\n });\n }\n }, [data.length, autoScrollEnabled, scrollToBottom]);\n\n // Reset scroll position when data shrinks significantly (e.g., filter applied)\n // This prevents the virtualizer from being in an invalid scroll state\n useEffect(() => {\n const prevLength = prevDataLengthRef.current;\n const currentLength = data.length;\n prevDataLengthRef.current = currentLength;\n\n // If data shrunk significantly (more than 50% reduction or to near-empty)\n if (currentLength < prevLength * 0.5 || currentLength <= 3) {\n scrollContainerRef.current?.scrollTo({ top: 0, behavior: \"instant\" });\n setAutoScrollEnabled(true);\n }\n }, [data.length]);\n\n const [scrollZoneHeight, setScrollZoneHeight] = useState(0);\n const updateScrollZoneHeight = useCallback(\n (_: HTMLDivElement, entry: ResizeObserverEntry) => {\n setScrollZoneHeight(entry.contentRect.height);\n },\n [],\n );\n const scrollZoneRef = useResizeObserver<HTMLDivElement>(\n updateScrollZoneHeight,\n );\n\n // Calculate initial height on mount\n useLayoutEffect(() => {\n if (scrollZoneRef.current) {\n const height = scrollZoneRef.current.getBoundingClientRect().height;\n if (height > 0) {\n setScrollZoneHeight(height);\n }\n }\n }, [scrollZoneRef]);\n\n const onScroll = useCallback(() => {\n const container = scrollContainerRef.current;\n if (!container) return;\n\n // Only update autoScrollEnabled for manual user scrolls\n if (isScrollingProgrammaticallyRef.current) {\n return;\n }\n\n const isNearBottom =\n container.scrollTop + container.clientHeight >=\n container.scrollHeight - SCROLL_THRESHOLD;\n\n setAutoScrollEnabled(isNearBottom);\n }, []);\n\n return {\n autoScrollEnabled,\n onScroll,\n scrollContainerRef,\n scrollZoneHeight,\n scrollToBottom,\n scrollZoneRef,\n };\n};\n"],
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAKO,oBAEPC,EAAiC,uBACjCC,EAAkC,+BAE3B,MAAMJ,EAAiB,CAAC,CAAE,KAAAK,CAAK,IAA2B,CAC/D,MAAMC,EAAqB,EAAAC,QAAM,OAAuB,IAAI,EACtD,CAACC,EAAmBC,CAAoB,KAAI,YAAS,EAAI,EACzDC,EAAiC,EAAAH,QAAM,OAAO,EAAK,EACnDI,EAAoB,EAAAJ,QAAM,OAAOF,EAAK,MAAM,EAE5CO,KAAiB,eAAY,IAAM,CACnCN,EAAmB,UACrBI,EAA+B,QAAU,GACzCD,EAAqB,EAAI,EACzBH,EAAmB,QAAQ,SAAS,CAClC,IAAKA,EAAmB,QAAQ,aAChC,SAAU,SACZ,CAAC,EAED,sBAAsB,IAAM,CAC1B,sBAAsB,IAAM,CAC1BI,EAA+B,QAAU,EAC3C,CAAC,CACH,CAAC,EAEL,EAAG,CAAC,CAAC,KAGL,aAAU,IAAM,CACVF,GAAqBF,EAAmB,SAG1C,sBAAsB,IAAM,CAC1B,sBAAsB,IAAM,CACtBA,EAAmB,SAAWE,GAChCI,EAAe,CAEnB,CAAC,CACH,CAAC,CAEL,EAAG,CAACP,EAAK,OAAQG,EAAmBI,CAAc,CAAC,KAInD,aAAU,IAAM,CACd,MAAMC,EAAaF,EAAkB,QAC/BG,EAAgBT,EAAK,OAC3BM,EAAkB,QAAUG,GAGxBA,EAAgBD,EAAa,IAAOC,GAAiB,KACvDR,EAAmB,SAAS,SAAS,CAAE,IAAK,EAAG,SAAU,SAAU,CAAC,EACpEG,EAAqB,EAAI,EAE7B,EAAG,CAACJ,EAAK,MAAM,CAAC,EAEhB,KAAM,CAACU,EAAkBC,CAAmB,KAAI,YAAS,CAAC,EACpDC,KAAyB,eAC7B,CAACC,EAAmBC,IAA+B,CACjDH,EAAoBG,EAAM,YAAY,MAAM,CAC9C,EACA,CAAC,CACH,EACMC,KAAgB,qBACpBH,CACF,KAGA,mBAAgB,IAAM,CACpB,GAAIG,EAAc,QAAS,CACzB,MAAMC,EAASD,EAAc,QAAQ,sBAAsB,EAAE,OACzDC,EAAS,GACXL,EAAoBK,CAAM,CAE9B,CACF,EAAG,CAACD,CAAa,CAAC,EAElB,MAAME,KAAW,eAAY,IAAM,CACjC,MAAMC,EAAYjB,EAAmB,QAIrC,GAHI,CAACiB,GAGDb,EAA+B,QACjC,OAGF,MAAMc,EACJD,EAAU,UAAYA,EAAU,cAChCA,EAAU,aAAe,mBAE3Bd,EAAqBe,CAAY,CACnC,EAAG,CAAC,CAAC,EAEL,MAAO,CACL,kBAAAhB,EACA,SAAAc,EACA,mBAAAhB,EACA,iBAAAS,EACA,eAAAH,EACA,cAAAQ,CACF,CACF",
|
|
6
|
+
"names": ["useScrollLogic_exports", "__export", "useScrollLogic", "__toCommonJS", "import_react", "import_constants", "import_useResizeObserver", "data", "scrollContainerRef", "React", "autoScrollEnabled", "setAutoScrollEnabled", "isScrollingProgrammaticallyRef", "prevDataLengthRef", "scrollToBottom", "prevLength", "currentLength", "scrollZoneHeight", "setScrollZoneHeight", "updateScrollZoneHeight", "_", "entry", "scrollZoneRef", "height", "onScroll", "container", "isNearBottom"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var s=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var y=(a,o)=>{for(var r in o)s(a,r,{get:o[r],enumerable:!0})},m=(a,o,r,e)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of i(o))!l.call(a,t)&&t!==r&&s(a,t,{get:()=>o[t],enumerable:!(e=g(o,t))||e.enumerable});return a};var D=a=>m(s({},"__esModule",{value:!0}),a);var u={};y(u,{mapConnectorMessageToLogData:()=>L});module.exports=D(u);var n=require("@ledgerhq/device-management-kit-devtools-core");function L(a){if(a.type!==n.LOGGER_MESSAGE_TYPES.ADD_LOG)return null;const{timestamp:o,tag:r,verbosity:e,message:t,payloadJSON:p}=JSON.parse(a.payload);return{timestamp:o,tag:r,verbosity:e,message:t,payloadJSON:p,payload:JSON.parse(p)}}0&&(module.exports={mapConnectorMessageToLogData});
|
|
2
|
+
//# sourceMappingURL=mapConnectorMessageToLogData.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/screens/logger/mapConnectorMessageToLogData.ts"],
|
|
4
|
+
"sourcesContent": ["import { LOGGER_MESSAGE_TYPES } from \"@ledgerhq/device-management-kit-devtools-core\";\n\nimport type { DevToolsLog, LogData } from \"./types\";\n\nexport function mapConnectorMessageToLogData(connectorMessage: {\n type: string;\n payload: string;\n}): LogData | null {\n if (connectorMessage.type !== LOGGER_MESSAGE_TYPES.ADD_LOG) {\n return null;\n }\n const { timestamp, tag, verbosity, message, payloadJSON } = JSON.parse(\n connectorMessage.payload,\n ) as DevToolsLog;\n return {\n timestamp,\n tag,\n verbosity,\n message,\n payloadJSON,\n // TODO: fix this type\n payload: JSON.parse(payloadJSON) as string | Record<string, unknown>,\n };\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAqC,yDAI9B,SAASF,EAA6BG,EAG1B,CACjB,GAAIA,EAAiB,OAAS,uBAAqB,QACjD,OAAO,KAET,KAAM,CAAE,UAAAC,EAAW,IAAAC,EAAK,UAAAC,EAAW,QAAAC,EAAS,YAAAC,CAAY,EAAI,KAAK,MAC/DL,EAAiB,OACnB,EACA,MAAO,CACL,UAAAC,EACA,IAAAC,EACA,UAAAC,EACA,QAAAC,EACA,YAAAC,EAEA,QAAS,KAAK,MAAMA,CAAW,CACjC,CACF",
|
|
6
|
+
"names": ["mapConnectorMessageToLogData_exports", "__export", "mapConnectorMessageToLogData", "__toCommonJS", "import_device_management_kit_devtools_core", "connectorMessage", "timestamp", "tag", "verbosity", "message", "payloadJSON"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var r=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var l=(e,o,g,p)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of s(o))!a.call(e,t)&&t!==g&&r(e,t,{get:()=>o[t],enumerable:!(p=n(o,t))||p.enumerable});return e};var y=e=>l(r({},"__esModule",{value:!0}),e);var D={};module.exports=y(D);
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/screens/logger/types.ts"],
|
|
4
|
+
"sourcesContent": ["import { type DevToolsLog } from \"@ledgerhq/device-management-kit-devtools-core\";\n\nexport type { DevToolsLog };\n\nexport type LogData = DevToolsLog & {\n payload: string | Record<string, unknown>;\n};\n"],
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
|
+
"names": ["types_exports", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var g=(e,o)=>{for(var t in o)n(e,t,{get:o[t],enumerable:!0})},u=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of m(o))!c.call(e,i)&&i!==t&&n(e,i,{get:()=>o[i],enumerable:!(r=a(o,i))||r.enumerable});return e};var d=e=>u(n({},"__esModule",{value:!0}),e);var z={};g(z,{useColumnSizeVars:()=>l});module.exports=d(z);var s=require("react");const l=e=>(0,s.useMemo)(()=>{const o=e.getFlatHeaders(),t={};for(const r of o)t[`--header-${r.id}-size`]=r.getSize(),t[`--col-${r.column.id}-size`]=r.column.getSize();return t},[e.getState().columnSizingInfo,e.getFlatHeaders(),e.getState().columnSizing]);0&&(module.exports={useColumnSizeVars});
|
|
2
|
+
//# sourceMappingURL=useColumnSizeVars.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/screens/logger/useColumnSizeVars.ts"],
|
|
4
|
+
"sourcesContent": ["import { useMemo } from \"react\";\nimport { type Table } from \"@tanstack/react-table\";\n\nimport { type LogData } from \"./types\";\n\nexport const useColumnSizeVars = (table: Table<LogData>) => {\n return useMemo(() => {\n const headers = table.getFlatHeaders();\n const colSizes: Record<string, number> = {};\n\n for (const header of headers) {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n }\n\n return colSizes;\n }, [\n table.getState().columnSizingInfo,\n table.getFlatHeaders(),\n table.getState().columnSizing,\n ]);\n};\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAwB,iBAKjB,MAAMF,EAAqBG,MACzB,WAAQ,IAAM,CACnB,MAAMC,EAAUD,EAAM,eAAe,EAC/BE,EAAmC,CAAC,EAE1C,UAAWC,KAAUF,EACnBC,EAAS,YAAYC,EAAO,EAAE,OAAO,EAAIA,EAAO,QAAQ,EACxDD,EAAS,SAASC,EAAO,OAAO,EAAE,OAAO,EAAIA,EAAO,OAAO,QAAQ,EAGrE,OAAOD,CACT,EAAG,CACDF,EAAM,SAAS,EAAE,iBACjBA,EAAM,eAAe,EACrBA,EAAM,SAAS,EAAE,YACnB,CAAC",
|
|
6
|
+
"names": ["useColumnSizeVars_exports", "__export", "useColumnSizeVars", "__toCommonJS", "import_react", "table", "headers", "colSizes", "header"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var d=Object.create;var a=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var h=(e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})},g=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of T(t))!O.call(e,s)&&s!==r&&a(e,s,{get:()=>t[s],enumerable:!(o=L(t,s))||o.enumerable});return e};var I=(e,t,r)=>(r=e!=null?d(y(e)):{},g(t||!e||!e.__esModule?a(r,"default",{value:e,enumerable:!0}):r,e)),D=e=>g(a({},"__esModule",{value:!0}),e);var v={};h(v,{useLogsDataAndOptions:()=>S});module.exports=D(v);var n=I(require("react")),u=require("./filterUtils"),l=require("./LoggerOptions");const p=Number.POSITIVE_INFINITY,S=({logs:e})=>{const[t,r]=n.default.useState(l.defaultLoggerOptions),o=(0,n.useMemo)(()=>{const i=(0,u.parseFilterQuery)(t.filterText),f=e.filter(c=>!(!t.activeLevels[c.verbosity]||t.includeTags.size>0&&!t.includeTags.has(c.tag)||i.length>0&&!(0,u.matchesFilter)(c,i)));return f.length>p?f.slice(-p):f},[e,t]),s=n.default.useRef(new Set),m=(0,n.useMemo)(()=>(e.forEach(i=>{s.current.add(i.tag)}),s.current),[e]);return{displayedLogs:o,options:t,setOptions:r,uniqueTags:m}};0&&(module.exports={useLogsDataAndOptions});
|
|
2
|
+
//# sourceMappingURL=useLogsDataAndOptions.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/screens/logger/useLogsDataAndOptions.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { useMemo } from \"react\";\n\nimport { matchesFilter, parseFilterQuery } from \"./filterUtils\";\nimport { defaultLoggerOptions, type LoggerOptions } from \"./LoggerOptions\";\nimport { type LogData } from \"./types\";\n\nconst maxDisplayedLogs = Number.POSITIVE_INFINITY;\n\nexport const useLogsDataAndOptions = ({ logs }: { logs: LogData[] }) => {\n const [options, setOptions] =\n React.useState<LoggerOptions>(defaultLoggerOptions);\n\n const displayedLogs = useMemo(() => {\n const filterTokens = parseFilterQuery(options.filterText);\n\n const filteredLogs = logs.filter((log) => {\n if (!options.activeLevels[log.verbosity]) {\n return false;\n }\n if (options.includeTags.size > 0) {\n if (!options.includeTags.has(log.tag)) {\n return false;\n }\n }\n if (filterTokens.length > 0 && !matchesFilter(log, filterTokens)) {\n return false;\n }\n return true;\n });\n return filteredLogs.length > maxDisplayedLogs\n ? filteredLogs.slice(-maxDisplayedLogs)\n : filteredLogs;\n }, [logs, options]);\n\n const uniqueTagsRef = React.useRef<Set<string>>(new Set());\n const uniqueTags = useMemo(() => {\n logs.forEach((log) => {\n uniqueTagsRef.current.add(log.tag);\n });\n return uniqueTagsRef.current;\n }, [logs]);\n\n return { displayedLogs, options, setOptions, uniqueTags };\n};\n"],
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,2BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA+B,oBAE/BC,EAAgD,yBAChDC,EAAyD,2BAGzD,MAAMC,EAAmB,OAAO,kBAEnBL,EAAwB,CAAC,CAAE,KAAAM,CAAK,IAA2B,CACtE,KAAM,CAACC,EAASC,CAAU,EACxB,EAAAC,QAAM,SAAwB,sBAAoB,EAE9CC,KAAgB,WAAQ,IAAM,CAClC,MAAMC,KAAe,oBAAiBJ,EAAQ,UAAU,EAElDK,EAAeN,EAAK,OAAQO,GAC5B,GAACN,EAAQ,aAAaM,EAAI,SAAS,GAGnCN,EAAQ,YAAY,KAAO,GACzB,CAACA,EAAQ,YAAY,IAAIM,EAAI,GAAG,GAIlCF,EAAa,OAAS,GAAK,IAAC,iBAAcE,EAAKF,CAAY,EAIhE,EACD,OAAOC,EAAa,OAASP,EACzBO,EAAa,MAAM,CAACP,CAAgB,EACpCO,CACN,EAAG,CAACN,EAAMC,CAAO,CAAC,EAEZO,EAAgB,EAAAL,QAAM,OAAoB,IAAI,GAAK,EACnDM,KAAa,WAAQ,KACzBT,EAAK,QAASO,GAAQ,CACpBC,EAAc,QAAQ,IAAID,EAAI,GAAG,CACnC,CAAC,EACMC,EAAc,SACpB,CAACR,CAAI,CAAC,EAET,MAAO,CAAE,cAAAI,EAAe,QAAAH,EAAS,WAAAC,EAAY,WAAAO,CAAW,CAC1D",
|
|
6
|
+
"names": ["useLogsDataAndOptions_exports", "__export", "useLogsDataAndOptions", "__toCommonJS", "import_react", "import_filterUtils", "import_LoggerOptions", "maxDisplayedLogs", "logs", "options", "setOptions", "React", "displayedLogs", "filterTokens", "filteredLogs", "log", "uniqueTagsRef", "uniqueTags"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var E=(t,e)=>{for(var s in e)a(t,s,{get:e[s],enumerable:!0})},p=(t,e,s,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of R(e))!S.call(t,n)&&n!==s&&a(t,n,{get:()=>e[n],enumerable:!(o=F(e,n))||o.enumerable});return t};var y=t=>p(a({},"__esModule",{value:!0}),t);var N={};E(N,{useRecentFilters:()=>I});module.exports=y(N);var i=require("react");const d="devtools-logger-recent-filters",v=10,T=15e3;function A(){try{const t=localStorage.getItem(d);if(t){const e=JSON.parse(t);if(Array.isArray(e))return e.filter(s=>typeof s=="string")}}catch{}return[]}function f(t){try{localStorage.setItem(d,JSON.stringify(t))}catch{}}const I=t=>{const[e,s]=(0,i.useState)(()=>A()),o=(0,i.useRef)(""),n=(0,i.useCallback)(r=>{r.trim()&&s(c=>{const l=c.filter(m=>m!==r),u=[r,...l].slice(0,v);return f(u),u})},[]),g=(0,i.useCallback)(r=>{s(c=>{const l=c.filter(u=>u!==r);return f(l),l})},[]);return(0,i.useEffect)(()=>{const r=t.trim();if(!r||r===o.current)return;const c=setTimeout(()=>{n(r),o.current=r},T);return()=>{clearTimeout(c)}},[t,n]),{recentFilters:e,addFilter:n,removeFilter:g}};0&&(module.exports={useRecentFilters});
|
|
2
|
+
//# sourceMappingURL=useRecentFilters.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/screens/logger/useRecentFilters.ts"],
|
|
4
|
+
"sourcesContent": ["import { useCallback, useEffect, useRef, useState } from \"react\";\n\nconst STORAGE_KEY = \"devtools-logger-recent-filters\";\nconst MAX_RECENT_FILTERS = 10;\nconst DEBOUNCE_MS = 15000; // 15 seconds\n\n/**\n * Loads recent filters from localStorage.\n */\nfunction loadRecentFilters(): string[] {\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) {\n const parsed: unknown = JSON.parse(stored);\n if (Array.isArray(parsed)) {\n return parsed.filter(\n (item): item is string => typeof item === \"string\",\n );\n }\n }\n } catch {\n // Ignore errors, return empty array\n }\n return [];\n}\n\n/**\n * Saves recent filters to localStorage.\n */\nfunction saveRecentFilters(filters: string[]): void {\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(filters));\n } catch {\n // Ignore errors (e.g., storage full, private mode)\n }\n}\n\n/**\n * Hook to manage recent filters with localStorage persistence.\n *\n * Features:\n * - Loads recent filters from localStorage on mount\n * - Auto-saves current filter after 15 seconds of no changes (debounced)\n * - Provides manual add/remove functions\n * - Caps at MAX_RECENT_FILTERS items\n *\n * @param currentFilter - The current filter value (used for debounced auto-save)\n * @returns Object with recentFilters array and add/remove functions\n */\nexport const useRecentFilters = (currentFilter: string) => {\n const [recentFilters, setRecentFilters] = useState<string[]>(() =>\n loadRecentFilters(),\n );\n\n // Track the last saved filter to avoid duplicate saves\n const lastSavedFilterRef = useRef<string>(\"\");\n\n /**\n * Adds a filter to the recent list.\n * - Moves to top if already exists\n * - Caps at MAX_RECENT_FILTERS\n */\n const addFilter = useCallback((filter: string) => {\n if (!filter.trim()) return;\n\n setRecentFilters((prev) => {\n // Remove if already exists\n const filtered = prev.filter((f) => f !== filter);\n // Add to beginning\n const updated = [filter, ...filtered].slice(0, MAX_RECENT_FILTERS);\n // Persist\n saveRecentFilters(updated);\n return updated;\n });\n }, []);\n\n /**\n * Removes a filter from the recent list.\n */\n const removeFilter = useCallback((filter: string) => {\n setRecentFilters((prev) => {\n const updated = prev.filter((f) => f !== filter);\n // Persist\n saveRecentFilters(updated);\n return updated;\n });\n }, []);\n\n // Auto-save with debounce\n useEffect(() => {\n const trimmedFilter = currentFilter.trim();\n\n // Don't save empty filters or if already saved\n if (!trimmedFilter || trimmedFilter === lastSavedFilterRef.current) {\n return;\n }\n\n const timeoutId = setTimeout(() => {\n addFilter(trimmedFilter);\n lastSavedFilterRef.current = trimmedFilter;\n }, DEBOUNCE_MS);\n\n return () => {\n clearTimeout(timeoutId);\n };\n }, [currentFilter, addFilter]);\n\n return { recentFilters, addFilter, removeFilter };\n};\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAyD,iBAEzD,MAAMC,EAAc,iCACdC,EAAqB,GACrBC,EAAc,KAKpB,SAASC,GAA8B,CACrC,GAAI,CACF,MAAMC,EAAS,aAAa,QAAQJ,CAAW,EAC/C,GAAII,EAAQ,CACV,MAAMC,EAAkB,KAAK,MAAMD,CAAM,EACzC,GAAI,MAAM,QAAQC,CAAM,EACtB,OAAOA,EAAO,OACXC,GAAyB,OAAOA,GAAS,QAC5C,CAEJ,CACF,MAAQ,CAER,CACA,MAAO,CAAC,CACV,CAKA,SAASC,EAAkBC,EAAyB,CAClD,GAAI,CACF,aAAa,QAAQR,EAAa,KAAK,UAAUQ,CAAO,CAAC,CAC3D,MAAQ,CAER,CACF,CAcO,MAAMX,EAAoBY,GAA0B,CACzD,KAAM,CAACC,EAAeC,CAAgB,KAAI,YAAmB,IAC3DR,EAAkB,CACpB,EAGMS,KAAqB,UAAe,EAAE,EAOtCC,KAAY,eAAaC,GAAmB,CAC3CA,EAAO,KAAK,GAEjBH,EAAkBI,GAAS,CAEzB,MAAMC,EAAWD,EAAK,OAAQE,GAAMA,IAAMH,CAAM,EAE1CI,EAAU,CAACJ,EAAQ,GAAGE,CAAQ,EAAE,MAAM,EAAGf,CAAkB,EAEjE,OAAAM,EAAkBW,CAAO,EAClBA,CACT,CAAC,CACH,EAAG,CAAC,CAAC,EAKCC,KAAe,eAAaL,GAAmB,CACnDH,EAAkBI,GAAS,CACzB,MAAMG,EAAUH,EAAK,OAAQE,GAAMA,IAAMH,CAAM,EAE/C,OAAAP,EAAkBW,CAAO,EAClBA,CACT,CAAC,CACH,EAAG,CAAC,CAAC,EAGL,sBAAU,IAAM,CACd,MAAME,EAAgBX,EAAc,KAAK,EAGzC,GAAI,CAACW,GAAiBA,IAAkBR,EAAmB,QACzD,OAGF,MAAMS,EAAY,WAAW,IAAM,CACjCR,EAAUO,CAAa,EACvBR,EAAmB,QAAUQ,CAC/B,EAAGlB,CAAW,EAEd,MAAO,IAAM,CACX,aAAamB,CAAS,CACxB,CACF,EAAG,CAACZ,EAAeI,CAAS,CAAC,EAEtB,CAAE,cAAAH,EAAe,UAAAG,EAAW,aAAAM,CAAa,CAClD",
|
|
6
|
+
"names": ["useRecentFilters_exports", "__export", "useRecentFilters", "__toCommonJS", "import_react", "STORAGE_KEY", "MAX_RECENT_FILTERS", "DEBOUNCE_MS", "loadRecentFilters", "stored", "parsed", "item", "saveRecentFilters", "filters", "currentFilter", "recentFilters", "setRecentFilters", "lastSavedFilterRef", "addFilter", "filter", "prev", "filtered", "f", "updated", "removeFilter", "trimmedFilter", "timeoutId"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var u=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var M=(o,e)=>{for(var c in e)u(o,c,{get:e[c],enumerable:!0})},S=(o,e,c,h)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of y(e))!I.call(o,n)&&n!==c&&u(o,n,{get:()=>e[n],enumerable:!(h=x(e,n))||h.enumerable});return o};var T=o=>S(u({},"__esModule",{value:!0}),o);var L={};M(L,{useSearchState:()=>F});module.exports=T(L);var r=require("react"),g=require("./filterUtils");const F=o=>{const[e,c]=(0,r.useState)(""),[h,n]=(0,r.useState)(0),t=(0,r.useMemo)(()=>{const s=e.trim();if(!s)return[];const a=(0,g.parseFilterQuery)(s);return a.length===0?[]:o.map((l,p)=>(0,g.matchesFilter)(l,a)?p:-1).filter(l=>l!==-1)},[o,e]);(0,r.useEffect)(()=>{t.length===0?n(0):h>=t.length&&n(t.length-1)},[t.length,h]);const i=(0,r.useCallback)(()=>{t.length!==0&&n(s=>s>=t.length-1?0:s+1)},[t.length]),f=(0,r.useCallback)(()=>{t.length!==0&&n(s=>s<=0?t.length-1:s-1)},[t.length]),m=(0,r.useCallback)(()=>{t.length!==0&&n(0)},[t.length]),d=(0,r.useCallback)(()=>{t.length!==0&&n(t.length-1)},[t.length]);return{searchQuery:e,setSearchQuery:c,matchIndices:t,currentMatchIndex:h,currentMatchRowIndex:t[h],goToNext:i,goToPrevious:f,goToFirst:m,goToLast:d}};0&&(module.exports={useSearchState});
|
|
2
|
+
//# sourceMappingURL=useSearchState.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/screens/logger/useSearchState.ts"],
|
|
4
|
+
"sourcesContent": ["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { matchesFilter, parseFilterQuery } from \"./filterUtils\";\nimport { type LogData } from \"./types\";\n\n/**\n * Hook to manage search state and compute matches.\n *\n * Features:\n * - Computes matching row indices using filterUtils\n * - Tracks current match index for navigation\n * - Provides navigation functions (next/previous) with wraparound\n *\n * @param logs - The logs to search through (typically displayedLogs after filtering)\n * @returns Search state and navigation functions\n */\nexport const useSearchState = (logs: LogData[]) => {\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [currentMatchIndex, setCurrentMatchIndex] = useState(0);\n\n // Compute matching row indices using filterUtils\n const matchIndices = useMemo(() => {\n const trimmed = searchQuery.trim();\n if (!trimmed) return [];\n\n const tokens = parseFilterQuery(trimmed);\n if (tokens.length === 0) return [];\n\n return logs\n .map((log, index) => (matchesFilter(log, tokens) ? index : -1))\n .filter((i) => i !== -1);\n }, [logs, searchQuery]);\n\n // Reset current match index when matches change\n useEffect(() => {\n if (matchIndices.length === 0) {\n setCurrentMatchIndex(0);\n } else if (currentMatchIndex >= matchIndices.length) {\n setCurrentMatchIndex(matchIndices.length - 1);\n }\n }, [matchIndices.length, currentMatchIndex]);\n\n // Navigate to next match (wraps around)\n const goToNext = useCallback(() => {\n if (matchIndices.length === 0) return;\n setCurrentMatchIndex((prev) =>\n prev >= matchIndices.length - 1 ? 0 : prev + 1,\n );\n }, [matchIndices.length]);\n\n // Navigate to previous match (wraps around)\n const goToPrevious = useCallback(() => {\n if (matchIndices.length === 0) return;\n setCurrentMatchIndex((prev) =>\n prev <= 0 ? matchIndices.length - 1 : prev - 1,\n );\n }, [matchIndices.length]);\n\n // Navigate to first match\n const goToFirst = useCallback(() => {\n if (matchIndices.length === 0) return;\n setCurrentMatchIndex(0);\n }, [matchIndices.length]);\n\n // Navigate to last match\n const goToLast = useCallback(() => {\n if (matchIndices.length === 0) return;\n setCurrentMatchIndex(matchIndices.length - 1);\n }, [matchIndices.length]);\n\n return {\n searchQuery,\n setSearchQuery,\n matchIndices,\n currentMatchIndex,\n currentMatchRowIndex: matchIndices[currentMatchIndex],\n goToNext,\n goToPrevious,\n goToFirst,\n goToLast,\n };\n};\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA0D,iBAE1DC,EAAgD,yBAczC,MAAMH,EAAkBI,GAAoB,CACjD,KAAM,CAACC,EAAaC,CAAc,KAAI,YAAS,EAAE,EAC3C,CAACC,EAAmBC,CAAoB,KAAI,YAAS,CAAC,EAGtDC,KAAe,WAAQ,IAAM,CACjC,MAAMC,EAAUL,EAAY,KAAK,EACjC,GAAI,CAACK,EAAS,MAAO,CAAC,EAEtB,MAAMC,KAAS,oBAAiBD,CAAO,EACvC,OAAIC,EAAO,SAAW,EAAU,CAAC,EAE1BP,EACJ,IAAI,CAACQ,EAAKC,OAAW,iBAAcD,EAAKD,CAAM,EAAIE,EAAQ,EAAG,EAC7D,OAAQC,GAAMA,IAAM,EAAE,CAC3B,EAAG,CAACV,EAAMC,CAAW,CAAC,KAGtB,aAAU,IAAM,CACVI,EAAa,SAAW,EAC1BD,EAAqB,CAAC,EACbD,GAAqBE,EAAa,QAC3CD,EAAqBC,EAAa,OAAS,CAAC,CAEhD,EAAG,CAACA,EAAa,OAAQF,CAAiB,CAAC,EAG3C,MAAMQ,KAAW,eAAY,IAAM,CAC7BN,EAAa,SAAW,GAC5BD,EAAsBQ,GACpBA,GAAQP,EAAa,OAAS,EAAI,EAAIO,EAAO,CAC/C,CACF,EAAG,CAACP,EAAa,MAAM,CAAC,EAGlBQ,KAAe,eAAY,IAAM,CACjCR,EAAa,SAAW,GAC5BD,EAAsBQ,GACpBA,GAAQ,EAAIP,EAAa,OAAS,EAAIO,EAAO,CAC/C,CACF,EAAG,CAACP,EAAa,MAAM,CAAC,EAGlBS,KAAY,eAAY,IAAM,CAC9BT,EAAa,SAAW,GAC5BD,EAAqB,CAAC,CACxB,EAAG,CAACC,EAAa,MAAM,CAAC,EAGlBU,KAAW,eAAY,IAAM,CAC7BV,EAAa,SAAW,GAC5BD,EAAqBC,EAAa,OAAS,CAAC,CAC9C,EAAG,CAACA,EAAa,MAAM,CAAC,EAExB,MAAO,CACL,YAAAJ,EACA,eAAAC,EACA,aAAAG,EACA,kBAAAF,EACA,qBAAsBE,EAAaF,CAAiB,EACpD,SAAAQ,EACA,aAAAE,EACA,UAAAC,EACA,SAAAC,CACF,CACF",
|
|
6
|
+
"names": ["useSearchState_exports", "__export", "useSearchState", "__toCommonJS", "import_react", "import_filterUtils", "logs", "searchQuery", "setSearchQuery", "currentMatchIndex", "setCurrentMatchIndex", "matchIndices", "trimmed", "tokens", "log", "index", "i", "goToNext", "prev", "goToPrevious", "goToFirst", "goToLast"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";var s=Object.create;var r=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var g=(t,e)=>{for(var o in e)r(t,o,{get:e[o],enumerable:!0})},a=(t,e,o,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of l(e))!f.call(t,n)&&n!==o&&r(t,n,{get:()=>e[n],enumerable:!(c=d(e,n))||c.enumerable});return t};var m=(t,e,o)=>(o=t!=null?s(x(t)):{},a(e||!t||!t.__esModule?r(o,"default",{value:t,enumerable:!0}):o,t)),C=t=>a(r({},"__esModule",{value:!0}),t);var h={};g(h,{NotConnectedMessage:()=>b});module.exports=C(h);var p=m(require("styled-components")),i=require("react/jsx-runtime");const y=p.default.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
align-items: center;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
flex: 1;
|
|
7
|
+
padding: 24px;
|
|
8
|
+
opacity: 0.6;
|
|
9
|
+
`,u=p.default.h3`
|
|
10
|
+
margin: 0 0 16px 0;
|
|
11
|
+
font-size: 24px;
|
|
12
|
+
`,R=p.default.p`
|
|
13
|
+
text-align: center;
|
|
14
|
+
max-width: 500px;
|
|
15
|
+
margin: 0;
|
|
16
|
+
`,k=p.default.pre`
|
|
17
|
+
background: #f5f5f5;
|
|
18
|
+
padding: 16px;
|
|
19
|
+
border-radius: 8px;
|
|
20
|
+
margin-top: 16px;
|
|
21
|
+
font-size: 12px;
|
|
22
|
+
overflow: auto;
|
|
23
|
+
`,b=({title:t,description:e,codeExample:o})=>(0,i.jsxs)(y,{children:[(0,i.jsx)(u,{children:t}),(0,i.jsx)(R,{children:e}),(0,i.jsx)(k,{children:o})]});0&&(module.exports={NotConnectedMessage});
|
|
24
|
+
//# sourceMappingURL=NotConnectedMessage.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/shared/NotConnectedMessage.tsx"],
|
|
4
|
+
"sourcesContent": ["import React from \"react\";\nimport styled from \"styled-components\";\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 24px;\n opacity: 0.6;\n`;\n\nconst Title = styled.h3`\n margin: 0 0 16px 0;\n font-size: 24px;\n`;\n\nconst Description = styled.p`\n text-align: center;\n max-width: 500px;\n margin: 0;\n`;\n\nconst CodeBlock = styled.pre`\n background: #f5f5f5;\n padding: 16px;\n border-radius: 8px;\n margin-top: 16px;\n font-size: 12px;\n overflow: auto;\n`;\n\ntype Props = {\n title: string;\n description: React.ReactNode;\n codeExample: string;\n};\n\nexport const NotConnectedMessage: React.FC<Props> = ({\n title,\n description,\n codeExample,\n}) => (\n <Container>\n <Title>{title}</Title>\n <Description>{description}</Description>\n <CodeBlock>{codeExample}</CodeBlock>\n </Container>\n);\n"],
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAmB,gCA2CjBC,EAAA,6BAzCF,MAAMC,EAAY,EAAAC,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUnBC,EAAQ,EAAAD,QAAO;AAAA;AAAA;AAAA,EAKfE,EAAc,EAAAF,QAAO;AAAA;AAAA;AAAA;AAAA,EAMrBG,EAAY,EAAAH,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeZL,EAAuC,CAAC,CACnD,MAAAS,EACA,YAAAC,EACA,YAAAC,CACF,OACE,QAACP,EAAA,CACC,oBAACE,EAAA,CAAO,SAAAG,EAAM,KACd,OAACF,EAAA,CAAa,SAAAG,EAAY,KAC1B,OAACF,EAAA,CAAW,SAAAG,EAAY,GAC1B",
|
|
6
|
+
"names": ["NotConnectedMessage_exports", "__export", "NotConnectedMessage", "__toCommonJS", "import_styled_components", "import_jsx_runtime", "Container", "styled", "Title", "Description", "CodeBlock", "title", "description", "codeExample"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var g=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var p=(n,e,i,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of a(e))!o.call(n,s)&&s!==i&&g(n,s,{get:()=>e[s],enumerable:!(t=r(e,s))||t.enumerable});return n};var d=n=>p(g({},"__esModule",{value:!0}),n);var x={};module.exports=d(x);
|
|
2
|
+
//# sourceMappingURL=PluginEvents.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/shared/PluginEvents.ts"],
|
|
4
|
+
"sourcesContent": ["export type Message = {\n type: string;\n payload: string;\n};\n\nexport interface PluginEvents extends Record<string, unknown> {\n init: string;\n message: Message;\n}\n"],
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
|
+
"names": ["PluginEvents_exports", "__toCommonJS"]
|
|
7
|
+
}
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dependencies": {
|
|
3
|
+
"@ledgerhq/react-ui": "catalog:",
|
|
4
|
+
"@tanstack/react-table": "8.20.5",
|
|
5
|
+
"@tanstack/react-virtual": "3.10.8",
|
|
6
|
+
"antd": "5.20.0",
|
|
7
|
+
"react-inspector": "9.0.0",
|
|
8
|
+
"react-resizable-panels": "^4.4.1",
|
|
9
|
+
"rxjs": "catalog:",
|
|
10
|
+
"styled-components": "catalog:"
|
|
11
|
+
},
|
|
12
|
+
"devDependencies": {
|
|
13
|
+
"@ledgerhq/device-management-kit": "workspace:^",
|
|
14
|
+
"@ledgerhq/device-management-kit-devtools-core": "workspace:^",
|
|
15
|
+
"@ledgerhq/eslint-config-dsdk": "workspace:^",
|
|
16
|
+
"@ledgerhq/ldmk-tool": "workspace:^",
|
|
17
|
+
"@ledgerhq/prettier-config-dsdk": "workspace:^",
|
|
18
|
+
"@ledgerhq/tsconfig-dsdk": "workspace:^",
|
|
19
|
+
"@ledgerhq/vitest-config-dmk": "workspace:^",
|
|
20
|
+
"@types/react": "catalog:",
|
|
21
|
+
"@types/react-dom": "catalog:",
|
|
22
|
+
"@types/styled-components": "catalog:",
|
|
23
|
+
"@types/styled-system": "^5.1.15",
|
|
24
|
+
"react": "catalog:",
|
|
25
|
+
"react-dom": "catalog:"
|
|
26
|
+
},
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"import": "./lib/esm/index.js",
|
|
30
|
+
"require": "./lib/cjs/index.js",
|
|
31
|
+
"types": "./lib/types/index.d.ts"
|
|
32
|
+
},
|
|
33
|
+
"./*": {
|
|
34
|
+
"import": "./lib/esm/*",
|
|
35
|
+
"require": "./lib/cjs/*",
|
|
36
|
+
"types": "./lib/types/*"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
"./lib"
|
|
41
|
+
],
|
|
42
|
+
"license": "Apache-2.0",
|
|
43
|
+
"main": "lib/index.js",
|
|
44
|
+
"name": "@ledgerhq/device-management-kit-devtools-ui",
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"@ledgerhq/device-management-kit": "^1.2.0",
|
|
47
|
+
"@ledgerhq/device-management-kit-devtools-core": "workspace:^",
|
|
48
|
+
"react": "catalog:",
|
|
49
|
+
"react-dom": "catalog:"
|
|
50
|
+
},
|
|
51
|
+
"private": false,
|
|
52
|
+
"repository": {
|
|
53
|
+
"type": "git",
|
|
54
|
+
"url": "https://github.com/LedgerHQ/device-sdk-ts.git"
|
|
55
|
+
},
|
|
56
|
+
"scripts": {
|
|
57
|
+
"build": "pnpm ldmk-tool build --entryPoints index.ts,src/*.tsx,src/*.ts,src/**/*.tsx,src/**/*.ts --tsconfig tsconfig.build.json",
|
|
58
|
+
"dev": "concurrently \"pnpm watch:builds\" \"pnpm watch:types\"",
|
|
59
|
+
"lint": "eslint",
|
|
60
|
+
"lint:fix": "pnpm lint --fix",
|
|
61
|
+
"prebuild": "rimraf lib",
|
|
62
|
+
"prettier": "prettier . --check",
|
|
63
|
+
"prettier:fix": "prettier . --write",
|
|
64
|
+
"test": "vitest run",
|
|
65
|
+
"test:coverage": "vitest run --coverage",
|
|
66
|
+
"test:watch": "vitest",
|
|
67
|
+
"typecheck": "tsc --noEmit",
|
|
68
|
+
"watch:builds": "pnpm ldmk-tool watch --entryPoints index.ts,src/*.tsx,src/*.ts,src/**/*.tsx,src/**/*.ts --tsconfig tsconfig.build.json",
|
|
69
|
+
"watch:types": "concurrently \"tsc --watch -p tsconfig.prod.json\" \"tsc-alias --watch -p tsconfig.prod.json\""
|
|
70
|
+
},
|
|
71
|
+
"types": "lib/index.d.ts",
|
|
72
|
+
"version": "1.1.1"
|
|
73
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import{useState as l}from"react";import{StyleProvider as z}from"@ledgerhq/react-ui/styles/index";import v from"styled-components";import{DashboardFooter as F}from"./components/DashboardFooter";import{DashboardNavigationBar as H,DashboardScreen as o}from"./components/DashboardNavigationBar";import{DebugDrawer as N}from"./components/DebugDrawer";import{SplitView as p}from"./components/SplitView";import{useConnectorMessages as T}from"./hooks/useConnectorMessages";import{Inspector as W}from"./screens/inspector";import{Logger as k}from"./screens/logger";import{ErrorBoundary as q}from"./ErrorBoundary";import{jsx as e,jsxs as Q}from"react/jsx-runtime";const G=v.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
height: 100vh;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
`,J=v.div`
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
flex: 1;
|
|
10
|
+
overflow: hidden;
|
|
11
|
+
`,K=({connector:s})=>{const{receivedMessages:u,sentMessages:f,logs:m,connectedDevices:D,sessionStates:h,discoveredDevices:C,isListening:b,isActivelyDiscovering:S,isLoggerConnected:i,isInspectorConnected:c,providerValue:y,apduResponses:L,sendMessage:a,clearLogs:M,startListening:P,stopListening:A,startDiscovering:w,stopDiscovering:x,connectDevice:B,getProvider:I,setProvider:O,sendApdu:R}=T(s),[d,V]=l(o.logs),[n,g]=l(!1),r=e(k,{logs:m,clearLogs:M,isConnected:i}),t=e(W,{devices:D,sessionStates:h,discoveredDevices:C,isListening:b,isActivelyDiscovering:S,sendMessage:a,isConnected:c,startListening:P,stopListening:A,startDiscovering:w,stopDiscovering:x,connectDevice:B,providerValue:y,getProvider:I,setProvider:O,sendApdu:R,apduResponses:L}),E=(()=>{switch(d){case o.logs:return r;case o.inspector:return t;case o.splitHorizontal:return e(p,{direction:"horizontal",first:r,second:t});case o.splitVertical:return e(p,{direction:"vertical",first:r,second:t});default:return r}})();return Q(G,{children:[e(H,{currentScreen:d,onScreenChange:V,isLoggerConnected:i,isInspectorConnected:c}),e(J,{children:E}),e(F,{isDebugOpen:n,onToggleDebug:()=>g(!n)}),e(N,{isOpen:n,onClose:()=>g(!1),sentMessages:f,receivedMessages:u,sendMessage:a})]})};function te({connector:s}){return e(q,{children:e(z,{selectedPalette:"light",children:e(K,{connector:s})})})}export{te as DashboardWithErrorBoundary};
|
|
12
|
+
//# sourceMappingURL=Dashboard.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/Dashboard.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { useState } from \"react\";\nimport { type Connector } from \"@ledgerhq/device-management-kit-devtools-core\";\nimport { StyleProvider } from \"@ledgerhq/react-ui/styles/index\";\nimport styled from \"styled-components\";\n\nimport { DashboardFooter } from \"./components/DashboardFooter\";\nimport {\n DashboardNavigationBar,\n DashboardScreen,\n} from \"./components/DashboardNavigationBar\";\nimport { DebugDrawer } from \"./components/DebugDrawer\";\nimport { SplitView } from \"./components/SplitView\";\nimport { useConnectorMessages } from \"./hooks/useConnectorMessages\";\nimport { Inspector } from \"./screens/inspector\";\nimport { Logger } from \"./screens/logger\";\nimport { ErrorBoundary } from \"./ErrorBoundary\";\n\nconst DashboardContainer = styled.div`\n display: flex;\n flex-direction: column;\n height: 100vh;\n overflow: hidden;\n`;\n\nconst ContentArea = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden;\n`;\n\nconst Dashboard: React.FC<{ connector: Connector }> = ({ connector }) => {\n const {\n receivedMessages,\n sentMessages,\n logs,\n connectedDevices,\n sessionStates,\n discoveredDevices,\n isListening,\n isActivelyDiscovering,\n isLoggerConnected,\n isInspectorConnected,\n providerValue,\n apduResponses,\n sendMessage,\n clearLogs,\n startListening,\n stopListening,\n startDiscovering,\n stopDiscovering,\n connectDevice,\n getProvider,\n setProvider,\n sendApdu,\n } = useConnectorMessages(connector);\n\n const [currentScreen, setCurrentScreen] = useState<DashboardScreen>(\n DashboardScreen.logs,\n );\n const [isDebugOpen, setIsDebugOpen] = useState(false);\n\n const logger = (\n <Logger logs={logs} clearLogs={clearLogs} isConnected={isLoggerConnected} />\n );\n\n const inspector = (\n <Inspector\n devices={connectedDevices}\n sessionStates={sessionStates}\n discoveredDevices={discoveredDevices}\n isListening={isListening}\n isActivelyDiscovering={isActivelyDiscovering}\n sendMessage={sendMessage}\n isConnected={isInspectorConnected}\n startListening={startListening}\n stopListening={stopListening}\n startDiscovering={startDiscovering}\n stopDiscovering={stopDiscovering}\n connectDevice={connectDevice}\n providerValue={providerValue}\n getProvider={getProvider}\n setProvider={setProvider}\n sendApdu={sendApdu}\n apduResponses={apduResponses}\n />\n );\n\n const content = (() => {\n switch (currentScreen) {\n case DashboardScreen.logs:\n return logger;\n case DashboardScreen.inspector:\n return inspector;\n case DashboardScreen.splitHorizontal:\n return (\n <SplitView direction=\"horizontal\" first={logger} second={inspector} />\n );\n case DashboardScreen.splitVertical:\n return (\n <SplitView direction=\"vertical\" first={logger} second={inspector} />\n );\n default:\n return logger;\n }\n })();\n\n return (\n <DashboardContainer>\n <DashboardNavigationBar\n currentScreen={currentScreen}\n onScreenChange={setCurrentScreen}\n isLoggerConnected={isLoggerConnected}\n isInspectorConnected={isInspectorConnected}\n />\n <ContentArea>{content}</ContentArea>\n <DashboardFooter\n isDebugOpen={isDebugOpen}\n onToggleDebug={() => setIsDebugOpen(!isDebugOpen)}\n />\n <DebugDrawer\n isOpen={isDebugOpen}\n onClose={() => setIsDebugOpen(false)}\n sentMessages={sentMessages}\n receivedMessages={receivedMessages}\n sendMessage={sendMessage}\n />\n </DashboardContainer>\n );\n};\n\nexport function DashboardWithErrorBoundary({\n connector,\n}: {\n connector: Connector;\n}) {\n return (\n <ErrorBoundary>\n <StyleProvider selectedPalette=\"light\">\n <Dashboard connector={connector} />\n </StyleProvider>\n </ErrorBoundary>\n );\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAgB,YAAAA,MAAgB,QAEhC,OAAS,iBAAAC,MAAqB,kCAC9B,OAAOC,MAAY,oBAEnB,OAAS,mBAAAC,MAAuB,+BAChC,OACE,0BAAAC,EACA,mBAAAC,MACK,sCACP,OAAS,eAAAC,MAAmB,2BAC5B,OAAS,aAAAC,MAAiB,yBAC1B,OAAS,wBAAAC,MAA4B,+BACrC,OAAS,aAAAC,MAAiB,sBAC1B,OAAS,UAAAC,MAAc,mBACvB,OAAS,iBAAAC,MAAqB,kBAgD1B,cAAAC,EA6CA,QAAAC,MA7CA,oBA9CJ,MAAMC,EAAqBZ,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAO5Ba,EAAcb,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAOrBc,EAAgD,CAAC,CAAE,UAAAC,CAAU,IAAM,CACvE,KAAM,CACJ,iBAAAC,EACA,aAAAC,EACA,KAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,YAAAC,EACA,sBAAAC,EACA,kBAAAC,EACA,qBAAAC,EACA,cAAAC,EACA,cAAAC,EACA,YAAAC,EACA,UAAAC,EACA,eAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,YAAAC,EACA,YAAAC,EACA,SAAAC,CACF,EAAI/B,EAAqBS,CAAS,EAE5B,CAACuB,EAAeC,CAAgB,EAAIzC,EACxCK,EAAgB,IAClB,EACM,CAACqC,EAAaC,CAAc,EAAI3C,EAAS,EAAK,EAE9C4C,EACJhC,EAACF,EAAA,CAAO,KAAMU,EAAM,UAAWW,EAAW,YAAaL,EAAmB,EAGtEmB,EACJjC,EAACH,EAAA,CACC,QAASY,EACT,cAAeC,EACf,kBAAmBC,EACnB,YAAaC,EACb,sBAAuBC,EACvB,YAAaK,EACb,YAAaH,EACb,eAAgBK,EAChB,cAAeC,EACf,iBAAkBC,EAClB,gBAAiBC,EACjB,cAAeC,EACf,cAAeR,EACf,YAAaS,EACb,YAAaC,EACb,SAAUC,EACV,cAAeV,EACjB,EAGIiB,GAAW,IAAM,CACrB,OAAQN,EAAe,CACrB,KAAKnC,EAAgB,KACnB,OAAOuC,EACT,KAAKvC,EAAgB,UACnB,OAAOwC,EACT,KAAKxC,EAAgB,gBACnB,OACEO,EAACL,EAAA,CAAU,UAAU,aAAa,MAAOqC,EAAQ,OAAQC,EAAW,EAExE,KAAKxC,EAAgB,cACnB,OACEO,EAACL,EAAA,CAAU,UAAU,WAAW,MAAOqC,EAAQ,OAAQC,EAAW,EAEtE,QACE,OAAOD,CACX,CACF,GAAG,EAEH,OACE/B,EAACC,EAAA,CACC,UAAAF,EAACR,EAAA,CACC,cAAeoC,EACf,eAAgBC,EAChB,kBAAmBf,EACnB,qBAAsBC,EACxB,EACAf,EAACG,EAAA,CAAa,SAAA+B,EAAQ,EACtBlC,EAACT,EAAA,CACC,YAAauC,EACb,cAAe,IAAMC,EAAe,CAACD,CAAW,EAClD,EACA9B,EAACN,EAAA,CACC,OAAQoC,EACR,QAAS,IAAMC,EAAe,EAAK,EACnC,aAAcxB,EACd,iBAAkBD,EAClB,YAAaY,EACf,GACF,CAEJ,EAEO,SAASiB,GAA2B,CACzC,UAAA9B,CACF,EAEG,CACD,OACEL,EAACD,EAAA,CACC,SAAAC,EAACX,EAAA,CAAc,gBAAgB,QAC7B,SAAAW,EAACI,EAAA,CAAU,UAAWC,EAAW,EACnC,EACF,CAEJ",
|
|
6
|
+
"names": ["useState", "StyleProvider", "styled", "DashboardFooter", "DashboardNavigationBar", "DashboardScreen", "DebugDrawer", "SplitView", "useConnectorMessages", "Inspector", "Logger", "ErrorBoundary", "jsx", "jsxs", "DashboardContainer", "ContentArea", "Dashboard", "connector", "receivedMessages", "sentMessages", "logs", "connectedDevices", "sessionStates", "discoveredDevices", "isListening", "isActivelyDiscovering", "isLoggerConnected", "isInspectorConnected", "providerValue", "apduResponses", "sendMessage", "clearLogs", "startListening", "stopListening", "startDiscovering", "stopDiscovering", "connectDevice", "getProvider", "setProvider", "sendApdu", "currentScreen", "setCurrentScreen", "isDebugOpen", "setIsDebugOpen", "logger", "inspector", "content", "DashboardWithErrorBoundary"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import t from"react";import{jsx as e,jsxs as o}from"react/jsx-runtime";class h extends t.Component{constructor(r){super(r),this.state={hasError:!1}}componentDidCatch(r,a){this.setState({hasError:!0,error:r})}reset(){this.setState({hasError:!1})}render(){return this.state.hasError?(console.log("rendering error boundary",this.state.error),o("div",{style:{display:"flex",flexDirection:"column",height:"100vh"},children:[e("button",{onClick:()=>this.reset(),children:"Retry"}),e("pre",{children:this.state.error.message}),e("pre",{children:this.state.error.stack})]})):this.props.children}}export{h as ErrorBoundary};
|
|
2
|
+
//# sourceMappingURL=ErrorBoundary.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/ErrorBoundary.tsx"],
|
|
4
|
+
"sourcesContent": ["import React from \"react\";\n\ntype State =\n | {\n hasError: true;\n error: Error;\n }\n | {\n hasError: false;\n };\n\nexport class ErrorBoundary extends React.Component<\n React.PropsWithChildren,\n State\n> {\n constructor(props: React.PropsWithChildren) {\n super(props);\n this.state = { hasError: false };\n }\n\n override componentDidCatch(error: Error, _info: React.ErrorInfo) {\n this.setState({ hasError: true, error: error });\n }\n\n reset() {\n this.setState({ hasError: false });\n }\n\n override render() {\n if (this.state.hasError) {\n console.log(\"rendering error boundary\", this.state.error);\n // You can render any custom fallback UI\n return (\n <div\n style={{ display: \"flex\", flexDirection: \"column\", height: \"100vh\" }}\n >\n <button onClick={() => this.reset()}>Retry</button>\n <pre>{this.state.error.message}</pre>\n <pre>{this.state.error.stack}</pre>\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAW,QAiCV,OAGE,OAAAC,EAHF,QAAAC,MAAA,oBAtBD,MAAMC,UAAsBH,EAAM,SAGvC,CACA,YAAYI,EAAgC,CAC1C,MAAMA,CAAK,EACX,KAAK,MAAQ,CAAE,SAAU,EAAM,CACjC,CAES,kBAAkBC,EAAcC,EAAwB,CAC/D,KAAK,SAAS,CAAE,SAAU,GAAM,MAAOD,CAAM,CAAC,CAChD,CAEA,OAAQ,CACN,KAAK,SAAS,CAAE,SAAU,EAAM,CAAC,CACnC,CAES,QAAS,CAChB,OAAI,KAAK,MAAM,UACb,QAAQ,IAAI,2BAA4B,KAAK,MAAM,KAAK,EAGtDH,EAAC,OACC,MAAO,CAAE,QAAS,OAAQ,cAAe,SAAU,OAAQ,OAAQ,EAEnE,UAAAD,EAAC,UAAO,QAAS,IAAM,KAAK,MAAM,EAAG,iBAAK,EAC1CA,EAAC,OAAK,cAAK,MAAM,MAAM,QAAQ,EAC/BA,EAAC,OAAK,cAAK,MAAM,MAAM,MAAM,GAC/B,GAIG,KAAK,MAAM,QACpB,CACF",
|
|
6
|
+
"names": ["React", "jsx", "jsxs", "ErrorBoundary", "props", "error", "_info"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=PluginEvents.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import r from"styled-components";import{jsx as e}from"react/jsx-runtime";const t=r.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: row;
|
|
4
|
+
align-items: center;
|
|
5
|
+
justify-content: flex-end;
|
|
6
|
+
padding: 6px 12px;
|
|
7
|
+
background: #f0f0f0;
|
|
8
|
+
border-top: 1px solid #ddd;
|
|
9
|
+
flex-shrink: 0;
|
|
10
|
+
`,a=r.button`
|
|
11
|
+
padding: 4px 10px;
|
|
12
|
+
border: 1px solid ${({$isOpen:o})=>o?"#ff9800":"#bbb"};
|
|
13
|
+
border-radius: 4px;
|
|
14
|
+
background: ${({$isOpen:o})=>o?"#fff3e0":"#fafafa"};
|
|
15
|
+
color: ${({$isOpen:o})=>o?"#e65100":"#666"};
|
|
16
|
+
font-size: 12px;
|
|
17
|
+
cursor: pointer;
|
|
18
|
+
transition: all 0.15s ease;
|
|
19
|
+
|
|
20
|
+
&:hover {
|
|
21
|
+
background: ${({$isOpen:o})=>o?"#ffe0b2":"#f0f0f0"};
|
|
22
|
+
border-color: ${({$isOpen:o})=>o?"#ff9800":"#999"};
|
|
23
|
+
}
|
|
24
|
+
`,f=({isDebugOpen:o,onToggleDebug:n})=>e(t,{children:e(a,{$isOpen:o,onClick:n,children:o?"Close Debug Panel":"Debug DevTools"})});export{f as DashboardFooter};
|
|
25
|
+
//# sourceMappingURL=DashboardFooter.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/DashboardFooter.tsx"],
|
|
4
|
+
"sourcesContent": ["import React from \"react\";\nimport styled from \"styled-components\";\n\nconst FooterContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n padding: 6px 12px;\n background: #f0f0f0;\n border-top: 1px solid #ddd;\n flex-shrink: 0;\n`;\n\nconst DebugButton = styled.button<{ $isOpen: boolean }>`\n padding: 4px 10px;\n border: 1px solid ${({ $isOpen }) => ($isOpen ? \"#ff9800\" : \"#bbb\")};\n border-radius: 4px;\n background: ${({ $isOpen }) => ($isOpen ? \"#fff3e0\" : \"#fafafa\")};\n color: ${({ $isOpen }) => ($isOpen ? \"#e65100\" : \"#666\")};\n font-size: 12px;\n cursor: pointer;\n transition: all 0.15s ease;\n\n &:hover {\n background: ${({ $isOpen }) => ($isOpen ? \"#ffe0b2\" : \"#f0f0f0\")};\n border-color: ${({ $isOpen }) => ($isOpen ? \"#ff9800\" : \"#999\")};\n }\n`;\n\ntype DashboardFooterProps = {\n isDebugOpen: boolean;\n onToggleDebug: () => void;\n};\n\nexport const DashboardFooter: React.FC<DashboardFooterProps> = ({\n isDebugOpen,\n onToggleDebug,\n}) => {\n return (\n <FooterContainer>\n <DebugButton $isOpen={isDebugOpen} onClick={onToggleDebug}>\n {isDebugOpen ? \"Close Debug Panel\" : \"Debug DevTools\"}\n </DebugButton>\n </FooterContainer>\n );\n};\n"],
|
|
5
|
+
"mappings": "AACA,OAAOA,MAAY,oBAwCb,cAAAC,MAAA,oBAtCN,MAAMC,EAAkBF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWzBG,EAAcH,EAAO;AAAA;AAAA,sBAEL,CAAC,CAAE,QAAAI,CAAQ,IAAOA,EAAU,UAAY,MAAO;AAAA;AAAA,gBAErD,CAAC,CAAE,QAAAA,CAAQ,IAAOA,EAAU,UAAY,SAAU;AAAA,WACvD,CAAC,CAAE,QAAAA,CAAQ,IAAOA,EAAU,UAAY,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAMxC,CAAC,CAAE,QAAAA,CAAQ,IAAOA,EAAU,UAAY,SAAU;AAAA,oBAChD,CAAC,CAAE,QAAAA,CAAQ,IAAOA,EAAU,UAAY,MAAO;AAAA;AAAA,EAStDC,EAAkD,CAAC,CAC9D,YAAAC,EACA,cAAAC,CACF,IAEIN,EAACC,EAAA,CACC,SAAAD,EAACE,EAAA,CAAY,QAASG,EAAa,QAASC,EACzC,SAAAD,EAAc,oBAAsB,iBACvC,EACF",
|
|
6
|
+
"names": ["styled", "jsx", "FooterContainer", "DebugButton", "$isOpen", "DashboardFooter", "isDebugOpen", "onToggleDebug"]
|
|
7
|
+
}
|