@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,116 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useLayoutEffect, useMemo } from "react";
|
|
3
|
+
import { getCoreRowModel, getSortedRowModel, useReactTable, } from "@tanstack/react-table";
|
|
4
|
+
import { useVirtualizer } from "@tanstack/react-virtual";
|
|
5
|
+
import styled from "styled-components";
|
|
6
|
+
import { TABLE_CONFIG } from "./constants";
|
|
7
|
+
import { ScrollDownButton } from "./ScrollDownButton";
|
|
8
|
+
import { TableBody } from "./TableBody";
|
|
9
|
+
import { createColumns } from "./TableColumns";
|
|
10
|
+
import { TableHeader } from "./TableHeader";
|
|
11
|
+
import { useScrollLogic } from "./useScrollLogic";
|
|
12
|
+
const ScrollContainer = styled.div `
|
|
13
|
+
height: ${({ height }) => height}px;
|
|
14
|
+
overflow: ${({ disableScroll }) => (disableScroll ? "hidden" : "auto")};
|
|
15
|
+
overflow-anchor: auto;
|
|
16
|
+
position: relative;
|
|
17
|
+
width: 100%;
|
|
18
|
+
`;
|
|
19
|
+
const TableWrapper = styled.div `
|
|
20
|
+
width: 100%;
|
|
21
|
+
min-width: fit-content;
|
|
22
|
+
`;
|
|
23
|
+
const StyledTable = styled.table `
|
|
24
|
+
display: grid;
|
|
25
|
+
`;
|
|
26
|
+
const TableContainer = styled.div `
|
|
27
|
+
flex: 1;
|
|
28
|
+
position: relative;
|
|
29
|
+
display: flex;
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
min-height: 0;
|
|
32
|
+
`;
|
|
33
|
+
const EmptyState = styled.div `
|
|
34
|
+
display: flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
justify-content: center;
|
|
37
|
+
flex: 1;
|
|
38
|
+
color: #999;
|
|
39
|
+
font-size: 14px;
|
|
40
|
+
`;
|
|
41
|
+
export const LogsTable = ({ data, highlightedIndices, currentHighlightIndex, scrollToIndex, }) => {
|
|
42
|
+
const { autoScrollEnabled, onScroll, scrollContainerRef, scrollZoneHeight, scrollToBottom, scrollZoneRef, } = useScrollLogic({ data });
|
|
43
|
+
const columns = useMemo(() => createColumns(), []);
|
|
44
|
+
const table = useReactTable({
|
|
45
|
+
data,
|
|
46
|
+
columns,
|
|
47
|
+
defaultColumn: {
|
|
48
|
+
minSize: TABLE_CONFIG.MIN_COLUMN_SIZE,
|
|
49
|
+
maxSize: TABLE_CONFIG.MAX_COLUMN_SIZE,
|
|
50
|
+
},
|
|
51
|
+
columnResizeMode: "onChange",
|
|
52
|
+
getCoreRowModel: getCoreRowModel(),
|
|
53
|
+
getSortedRowModel: getSortedRowModel(),
|
|
54
|
+
debugTable: true,
|
|
55
|
+
getRowId: (originalRow) => `${originalRow.timestamp}-${originalRow.message}`,
|
|
56
|
+
});
|
|
57
|
+
const { rows } = table.getRowModel();
|
|
58
|
+
const rowVirtualizer = useVirtualizer({
|
|
59
|
+
count: rows.length,
|
|
60
|
+
estimateSize: () => TABLE_CONFIG.ROW_HEIGHT_ESTIMATE,
|
|
61
|
+
getScrollElement: () => scrollContainerRef.current,
|
|
62
|
+
getItemKey: (index) => rows[index]?.id ?? String(index),
|
|
63
|
+
measureElement: typeof window !== "undefined" &&
|
|
64
|
+
navigator.userAgent.indexOf("Firefox") === -1
|
|
65
|
+
? (element) => element?.getBoundingClientRect().height
|
|
66
|
+
: undefined,
|
|
67
|
+
overscan: TABLE_CONFIG.OVERSCAN,
|
|
68
|
+
});
|
|
69
|
+
// Skip during column resize to avoid scroll position jumping
|
|
70
|
+
const isResizingColumn = table.getState().columnSizingInfo.isResizingColumn;
|
|
71
|
+
// Notify virtualizer when container height changes
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
if (isResizingColumn)
|
|
74
|
+
return;
|
|
75
|
+
rowVirtualizer.measure();
|
|
76
|
+
}, [scrollZoneHeight, rowVirtualizer, isResizingColumn]);
|
|
77
|
+
// Observe the scroll container for size changes
|
|
78
|
+
useEffect(() => {
|
|
79
|
+
const container = scrollContainerRef.current;
|
|
80
|
+
if (!container)
|
|
81
|
+
return;
|
|
82
|
+
const observer = new ResizeObserver(() => {
|
|
83
|
+
// Skip measure during column resize
|
|
84
|
+
if (table.getState().columnSizingInfo.isResizingColumn)
|
|
85
|
+
return;
|
|
86
|
+
requestAnimationFrame(() => {
|
|
87
|
+
rowVirtualizer.measure();
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
observer.observe(container);
|
|
91
|
+
return () => {
|
|
92
|
+
observer.disconnect();
|
|
93
|
+
};
|
|
94
|
+
}, [rowVirtualizer, scrollContainerRef, table]);
|
|
95
|
+
// Scroll to current search match
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
if (scrollToIndex !== undefined && scrollToIndex >= 0) {
|
|
98
|
+
rowVirtualizer.scrollToIndex(scrollToIndex, { align: "center" });
|
|
99
|
+
}
|
|
100
|
+
}, [scrollToIndex, rowVirtualizer]);
|
|
101
|
+
// Reset virtualizer when data changes and is small (helps with filter transitions)
|
|
102
|
+
// Scroll to top first to avoid invalid scroll position, then recalculate
|
|
103
|
+
// Use useLayoutEffect to run synchronously before browser paints
|
|
104
|
+
useLayoutEffect(() => {
|
|
105
|
+
if (rows.length < 100 && rows.length > 0) {
|
|
106
|
+
rowVirtualizer.scrollToOffset(0);
|
|
107
|
+
rowVirtualizer.measure();
|
|
108
|
+
}
|
|
109
|
+
}, [rows.length, rowVirtualizer]);
|
|
110
|
+
// Show empty state when there are no logs to display
|
|
111
|
+
if (data.length === 0) {
|
|
112
|
+
return (_jsx(TableContainer, { ref: scrollZoneRef, children: _jsx(EmptyState, { children: "No logs to display" }) }));
|
|
113
|
+
}
|
|
114
|
+
return (_jsxs(TableContainer, { ref: scrollZoneRef, children: [_jsx(ScrollContainer, { className: "container", ref: scrollContainerRef, onScroll: onScroll, height: scrollZoneHeight, disableScroll: !!isResizingColumn, children: _jsx(TableWrapper, { children: _jsxs(StyledTable, { children: [_jsx(TableHeader, { headerGroups: table.getHeaderGroups() }), _jsx(TableBody, { virtualizer: rowVirtualizer, rows: rows, highlightedIndices: highlightedIndices, currentHighlightIndex: currentHighlightIndex })] }) }) }), _jsx(ScrollDownButton, { enabled: autoScrollEnabled, onClick: scrollToBottom })] }));
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColumnSizeVars.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/useColumnSizeVars.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,iBAAiB,GAAI,OAAO,KAAK,CAAC,OAAO,CAAC,2BAgBtD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
export const useColumnSizeVars = (table) => {
|
|
3
|
+
return useMemo(() => {
|
|
4
|
+
const headers = table.getFlatHeaders();
|
|
5
|
+
const colSizes = {};
|
|
6
|
+
for (const header of headers) {
|
|
7
|
+
colSizes[`--header-${header.id}-size`] = header.getSize();
|
|
8
|
+
colSizes[`--col-${header.column.id}-size`] = header.column.getSize();
|
|
9
|
+
}
|
|
10
|
+
return colSizes;
|
|
11
|
+
}, [
|
|
12
|
+
table.getState().columnSizingInfo,
|
|
13
|
+
table.getFlatHeaders(),
|
|
14
|
+
table.getState().columnSizing,
|
|
15
|
+
]);
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=useColumnSizeVars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColumnSizeVars.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/useColumnSizeVars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAKhC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAqB,EAAE,EAAE;IACzD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAE5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,QAAQ,CAAC,YAAY,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1D,QAAQ,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvE,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE;QACD,KAAK,CAAC,QAAQ,EAAE,CAAC,gBAAgB;QACjC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,QAAQ,EAAE,CAAC,YAAY;KAC9B,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useResizeObserver.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/useResizeObserver.tsx"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,EACrD,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,mBAAmB,KAAK,IAAI,gCAiC1D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useLayoutEffect, useRef } from "react";
|
|
2
|
+
export function useResizeObserver(callback) {
|
|
3
|
+
const ref = useRef(null);
|
|
4
|
+
const callbackRef = useRef(callback);
|
|
5
|
+
// Keep callback ref up to date
|
|
6
|
+
useLayoutEffect(() => {
|
|
7
|
+
callbackRef.current = callback;
|
|
8
|
+
}, [callback]);
|
|
9
|
+
useLayoutEffect(() => {
|
|
10
|
+
const element = ref?.current;
|
|
11
|
+
if (!element) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const observer = new ResizeObserver((entries) => {
|
|
15
|
+
const entry = entries[0];
|
|
16
|
+
if (entry) {
|
|
17
|
+
callbackRef.current(element, entry);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
// Observe border box to catch all size changes including padding/borders
|
|
21
|
+
observer.observe(element, { box: "border-box" });
|
|
22
|
+
return () => {
|
|
23
|
+
observer.disconnect();
|
|
24
|
+
};
|
|
25
|
+
}, []); // Empty dependency array - observer is created once
|
|
26
|
+
return ref;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=useResizeObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useResizeObserver.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/useResizeObserver.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEhD,MAAM,UAAU,iBAAiB,CAC/B,QAAyD;IAEzD,MAAM,GAAG,GAAG,MAAM,CAAI,IAAI,CAAC,CAAC;IAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAErC,+BAA+B;IAC/B,eAAe,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,CAAC;QAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,EAAE,CAAC;gBACV,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,yEAAyE;QACzE,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;QAEjD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oDAAoD;IAE5D,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const useScrollLogic: ({ data }: {
|
|
3
|
+
data: unknown[];
|
|
4
|
+
}) => {
|
|
5
|
+
autoScrollEnabled: boolean;
|
|
6
|
+
onScroll: () => void;
|
|
7
|
+
scrollContainerRef: React.RefObject<HTMLDivElement>;
|
|
8
|
+
scrollZoneHeight: number;
|
|
9
|
+
scrollToBottom: () => void;
|
|
10
|
+
scrollZoneRef: React.RefObject<HTMLDivElement>;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=useScrollLogic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollLogic.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/useScrollLogic.ts"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAKf,eAAO,MAAM,cAAc,GAAI,UAAU;IAAE,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE;;;;;;;CAiG3D,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useLayoutEffect, useState, } from "react";
|
|
2
|
+
import { SCROLL_THRESHOLD } from "./constants";
|
|
3
|
+
import { useResizeObserver } from "./useResizeObserver";
|
|
4
|
+
export const useScrollLogic = ({ data }) => {
|
|
5
|
+
const scrollContainerRef = React.useRef(null);
|
|
6
|
+
const [autoScrollEnabled, setAutoScrollEnabled] = useState(true);
|
|
7
|
+
const isScrollingProgrammaticallyRef = React.useRef(false);
|
|
8
|
+
const prevDataLengthRef = React.useRef(data.length);
|
|
9
|
+
const scrollToBottom = useCallback(() => {
|
|
10
|
+
if (scrollContainerRef.current) {
|
|
11
|
+
isScrollingProgrammaticallyRef.current = true;
|
|
12
|
+
setAutoScrollEnabled(true);
|
|
13
|
+
scrollContainerRef.current.scrollTo({
|
|
14
|
+
top: scrollContainerRef.current.scrollHeight,
|
|
15
|
+
behavior: "instant",
|
|
16
|
+
});
|
|
17
|
+
// Reset the flag after a brief delay to allow scroll to complete
|
|
18
|
+
requestAnimationFrame(() => {
|
|
19
|
+
requestAnimationFrame(() => {
|
|
20
|
+
isScrollingProgrammaticallyRef.current = false;
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}, []);
|
|
25
|
+
// Auto-scroll when new data arrives (not on container resize)
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (autoScrollEnabled && scrollContainerRef.current) {
|
|
28
|
+
// Use double requestAnimationFrame to ensure DOM has updated and virtualizer has recalculated
|
|
29
|
+
// This is necessary when content starts overflowing as the virtualizer needs time to measure
|
|
30
|
+
requestAnimationFrame(() => {
|
|
31
|
+
requestAnimationFrame(() => {
|
|
32
|
+
if (scrollContainerRef.current && autoScrollEnabled) {
|
|
33
|
+
scrollToBottom();
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}, [data.length, autoScrollEnabled, scrollToBottom]);
|
|
39
|
+
// Reset scroll position when data shrinks significantly (e.g., filter applied)
|
|
40
|
+
// This prevents the virtualizer from being in an invalid scroll state
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
const prevLength = prevDataLengthRef.current;
|
|
43
|
+
const currentLength = data.length;
|
|
44
|
+
prevDataLengthRef.current = currentLength;
|
|
45
|
+
// If data shrunk significantly (more than 50% reduction or to near-empty)
|
|
46
|
+
if (currentLength < prevLength * 0.5 || currentLength <= 3) {
|
|
47
|
+
scrollContainerRef.current?.scrollTo({ top: 0, behavior: "instant" });
|
|
48
|
+
setAutoScrollEnabled(true);
|
|
49
|
+
}
|
|
50
|
+
}, [data.length]);
|
|
51
|
+
const [scrollZoneHeight, setScrollZoneHeight] = useState(0);
|
|
52
|
+
const updateScrollZoneHeight = useCallback((_, entry) => {
|
|
53
|
+
setScrollZoneHeight(entry.contentRect.height);
|
|
54
|
+
}, []);
|
|
55
|
+
const scrollZoneRef = useResizeObserver(updateScrollZoneHeight);
|
|
56
|
+
// Calculate initial height on mount
|
|
57
|
+
useLayoutEffect(() => {
|
|
58
|
+
if (scrollZoneRef.current) {
|
|
59
|
+
const height = scrollZoneRef.current.getBoundingClientRect().height;
|
|
60
|
+
if (height > 0) {
|
|
61
|
+
setScrollZoneHeight(height);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}, [scrollZoneRef]);
|
|
65
|
+
const onScroll = useCallback(() => {
|
|
66
|
+
const container = scrollContainerRef.current;
|
|
67
|
+
if (!container)
|
|
68
|
+
return;
|
|
69
|
+
// Only update autoScrollEnabled for manual user scrolls
|
|
70
|
+
if (isScrollingProgrammaticallyRef.current) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const isNearBottom = container.scrollTop + container.clientHeight >=
|
|
74
|
+
container.scrollHeight - SCROLL_THRESHOLD;
|
|
75
|
+
setAutoScrollEnabled(isNearBottom);
|
|
76
|
+
}, []);
|
|
77
|
+
return {
|
|
78
|
+
autoScrollEnabled,
|
|
79
|
+
onScroll,
|
|
80
|
+
scrollContainerRef,
|
|
81
|
+
scrollZoneHeight,
|
|
82
|
+
scrollToBottom,
|
|
83
|
+
scrollZoneRef,
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=useScrollLogic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollLogic.js","sourceRoot":"","sources":["../../../../../../src/screens/logger/logsTable/useScrollLogic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapConnectorMessageToLogData.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/mapConnectorMessageToLogData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAe,OAAO,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,4BAA4B,CAAC,gBAAgB,EAAE;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,GAAG,IAAI,CAgBjB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LOGGER_MESSAGE_TYPES } from "@ledgerhq/device-management-kit-devtools-core";
|
|
2
|
+
export function mapConnectorMessageToLogData(connectorMessage) {
|
|
3
|
+
if (connectorMessage.type !== LOGGER_MESSAGE_TYPES.ADD_LOG) {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
const { timestamp, tag, verbosity, message, payloadJSON } = JSON.parse(connectorMessage.payload);
|
|
7
|
+
return {
|
|
8
|
+
timestamp,
|
|
9
|
+
tag,
|
|
10
|
+
verbosity,
|
|
11
|
+
message,
|
|
12
|
+
payloadJSON,
|
|
13
|
+
// TODO: fix this type
|
|
14
|
+
payload: JSON.parse(payloadJSON),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=mapConnectorMessageToLogData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapConnectorMessageToLogData.js","sourceRoot":"","sources":["../../../../../src/screens/logger/mapConnectorMessageToLogData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAIrF,MAAM,UAAU,4BAA4B,CAAC,gBAG5C;IACC,IAAI,gBAAgB,CAAC,IAAI,KAAK,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CACpE,gBAAgB,CAAC,OAAO,CACV,CAAC;IACjB,OAAO;QACL,SAAS;QACT,GAAG;QACH,SAAS;QACT,OAAO;QACP,WAAW;QACX,sBAAsB;QACtB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAqC;KACrE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEjF,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG;IAClC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/screens/logger/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColumnSizeVars.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/useColumnSizeVars.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,eAAO,MAAM,iBAAiB,GAAI,OAAO,KAAK,CAAC,OAAO,CAAC,2BAgBtD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
export const useColumnSizeVars = (table) => {
|
|
3
|
+
return useMemo(() => {
|
|
4
|
+
const headers = table.getFlatHeaders();
|
|
5
|
+
const colSizes = {};
|
|
6
|
+
for (const header of headers) {
|
|
7
|
+
colSizes[`--header-${header.id}-size`] = header.getSize();
|
|
8
|
+
colSizes[`--col-${header.column.id}-size`] = header.column.getSize();
|
|
9
|
+
}
|
|
10
|
+
return colSizes;
|
|
11
|
+
}, [
|
|
12
|
+
table.getState().columnSizingInfo,
|
|
13
|
+
table.getFlatHeaders(),
|
|
14
|
+
table.getState().columnSizing,
|
|
15
|
+
]);
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=useColumnSizeVars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColumnSizeVars.js","sourceRoot":"","sources":["../../../../../src/screens/logger/useColumnSizeVars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAKhC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAqB,EAAE,EAAE;IACzD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAE5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,QAAQ,CAAC,YAAY,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1D,QAAQ,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvE,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE;QACD,KAAK,CAAC,QAAQ,EAAE,CAAC,gBAAgB;QACjC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,QAAQ,EAAE,CAAC,YAAY;KAC9B,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type LoggerOptions } from "./LoggerOptions";
|
|
3
|
+
import { type LogData } from "./types";
|
|
4
|
+
export declare const useLogsDataAndOptions: ({ logs }: {
|
|
5
|
+
logs: LogData[];
|
|
6
|
+
}) => {
|
|
7
|
+
displayedLogs: LogData[];
|
|
8
|
+
options: LoggerOptions;
|
|
9
|
+
setOptions: React.Dispatch<React.SetStateAction<LoggerOptions>>;
|
|
10
|
+
uniqueTags: Set<string>;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=useLogsDataAndOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLogsDataAndOptions.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/useLogsDataAndOptions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAIvC,eAAO,MAAM,qBAAqB,GAAI,UAAU;IAAE,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE;;;;;CAmClE,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React, { useMemo } from "react";
|
|
2
|
+
import { matchesFilter, parseFilterQuery } from "./filterUtils";
|
|
3
|
+
import { defaultLoggerOptions } from "./LoggerOptions";
|
|
4
|
+
const maxDisplayedLogs = Number.POSITIVE_INFINITY;
|
|
5
|
+
export const useLogsDataAndOptions = ({ logs }) => {
|
|
6
|
+
const [options, setOptions] = React.useState(defaultLoggerOptions);
|
|
7
|
+
const displayedLogs = useMemo(() => {
|
|
8
|
+
const filterTokens = parseFilterQuery(options.filterText);
|
|
9
|
+
const filteredLogs = logs.filter((log) => {
|
|
10
|
+
if (!options.activeLevels[log.verbosity]) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
if (options.includeTags.size > 0) {
|
|
14
|
+
if (!options.includeTags.has(log.tag)) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (filterTokens.length > 0 && !matchesFilter(log, filterTokens)) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
});
|
|
23
|
+
return filteredLogs.length > maxDisplayedLogs
|
|
24
|
+
? filteredLogs.slice(-maxDisplayedLogs)
|
|
25
|
+
: filteredLogs;
|
|
26
|
+
}, [logs, options]);
|
|
27
|
+
const uniqueTagsRef = React.useRef(new Set());
|
|
28
|
+
const uniqueTags = useMemo(() => {
|
|
29
|
+
logs.forEach((log) => {
|
|
30
|
+
uniqueTagsRef.current.add(log.tag);
|
|
31
|
+
});
|
|
32
|
+
return uniqueTagsRef.current;
|
|
33
|
+
}, [logs]);
|
|
34
|
+
return { displayedLogs, options, setOptions, uniqueTags };
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=useLogsDataAndOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLogsDataAndOptions.js","sourceRoot":"","sources":["../../../../../src/screens/logger/useLogsDataAndOptions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAsB,MAAM,iBAAiB,CAAC;AAG3E,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAElD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAE,IAAI,EAAuB,EAAE,EAAE;IACrE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GACzB,KAAK,CAAC,QAAQ,CAAgB,oBAAoB,CAAC,CAAC;IAEtD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE1D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtC,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC,MAAM,GAAG,gBAAgB;YAC3C,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC;YACvC,CAAC,CAAC,YAAY,CAAC;IACnB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC,OAAO,CAAC;IAC/B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAC5D,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook to manage recent filters with localStorage persistence.
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Loads recent filters from localStorage on mount
|
|
6
|
+
* - Auto-saves current filter after 15 seconds of no changes (debounced)
|
|
7
|
+
* - Provides manual add/remove functions
|
|
8
|
+
* - Caps at MAX_RECENT_FILTERS items
|
|
9
|
+
*
|
|
10
|
+
* @param currentFilter - The current filter value (used for debounced auto-save)
|
|
11
|
+
* @returns Object with recentFilters array and add/remove functions
|
|
12
|
+
*/
|
|
13
|
+
export declare const useRecentFilters: (currentFilter: string) => {
|
|
14
|
+
recentFilters: string[];
|
|
15
|
+
addFilter: (filter: string) => void;
|
|
16
|
+
removeFilter: (filter: string) => void;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=useRecentFilters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRecentFilters.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/useRecentFilters.ts"],"names":[],"mappings":"AAqCA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,GAAI,eAAe,MAAM;;wBAab,MAAM;2BAiBH,MAAM;CA6BjD,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
const STORAGE_KEY = "devtools-logger-recent-filters";
|
|
3
|
+
const MAX_RECENT_FILTERS = 10;
|
|
4
|
+
const DEBOUNCE_MS = 15000; // 15 seconds
|
|
5
|
+
/**
|
|
6
|
+
* Loads recent filters from localStorage.
|
|
7
|
+
*/
|
|
8
|
+
function loadRecentFilters() {
|
|
9
|
+
try {
|
|
10
|
+
const stored = localStorage.getItem(STORAGE_KEY);
|
|
11
|
+
if (stored) {
|
|
12
|
+
const parsed = JSON.parse(stored);
|
|
13
|
+
if (Array.isArray(parsed)) {
|
|
14
|
+
return parsed.filter((item) => typeof item === "string");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
// Ignore errors, return empty array
|
|
20
|
+
}
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Saves recent filters to localStorage.
|
|
25
|
+
*/
|
|
26
|
+
function saveRecentFilters(filters) {
|
|
27
|
+
try {
|
|
28
|
+
localStorage.setItem(STORAGE_KEY, JSON.stringify(filters));
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// Ignore errors (e.g., storage full, private mode)
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Hook to manage recent filters with localStorage persistence.
|
|
36
|
+
*
|
|
37
|
+
* Features:
|
|
38
|
+
* - Loads recent filters from localStorage on mount
|
|
39
|
+
* - Auto-saves current filter after 15 seconds of no changes (debounced)
|
|
40
|
+
* - Provides manual add/remove functions
|
|
41
|
+
* - Caps at MAX_RECENT_FILTERS items
|
|
42
|
+
*
|
|
43
|
+
* @param currentFilter - The current filter value (used for debounced auto-save)
|
|
44
|
+
* @returns Object with recentFilters array and add/remove functions
|
|
45
|
+
*/
|
|
46
|
+
export const useRecentFilters = (currentFilter) => {
|
|
47
|
+
const [recentFilters, setRecentFilters] = useState(() => loadRecentFilters());
|
|
48
|
+
// Track the last saved filter to avoid duplicate saves
|
|
49
|
+
const lastSavedFilterRef = useRef("");
|
|
50
|
+
/**
|
|
51
|
+
* Adds a filter to the recent list.
|
|
52
|
+
* - Moves to top if already exists
|
|
53
|
+
* - Caps at MAX_RECENT_FILTERS
|
|
54
|
+
*/
|
|
55
|
+
const addFilter = useCallback((filter) => {
|
|
56
|
+
if (!filter.trim())
|
|
57
|
+
return;
|
|
58
|
+
setRecentFilters((prev) => {
|
|
59
|
+
// Remove if already exists
|
|
60
|
+
const filtered = prev.filter((f) => f !== filter);
|
|
61
|
+
// Add to beginning
|
|
62
|
+
const updated = [filter, ...filtered].slice(0, MAX_RECENT_FILTERS);
|
|
63
|
+
// Persist
|
|
64
|
+
saveRecentFilters(updated);
|
|
65
|
+
return updated;
|
|
66
|
+
});
|
|
67
|
+
}, []);
|
|
68
|
+
/**
|
|
69
|
+
* Removes a filter from the recent list.
|
|
70
|
+
*/
|
|
71
|
+
const removeFilter = useCallback((filter) => {
|
|
72
|
+
setRecentFilters((prev) => {
|
|
73
|
+
const updated = prev.filter((f) => f !== filter);
|
|
74
|
+
// Persist
|
|
75
|
+
saveRecentFilters(updated);
|
|
76
|
+
return updated;
|
|
77
|
+
});
|
|
78
|
+
}, []);
|
|
79
|
+
// Auto-save with debounce
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
const trimmedFilter = currentFilter.trim();
|
|
82
|
+
// Don't save empty filters or if already saved
|
|
83
|
+
if (!trimmedFilter || trimmedFilter === lastSavedFilterRef.current) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const timeoutId = setTimeout(() => {
|
|
87
|
+
addFilter(trimmedFilter);
|
|
88
|
+
lastSavedFilterRef.current = trimmedFilter;
|
|
89
|
+
}, DEBOUNCE_MS);
|
|
90
|
+
return () => {
|
|
91
|
+
clearTimeout(timeoutId);
|
|
92
|
+
};
|
|
93
|
+
}, [currentFilter, addFilter]);
|
|
94
|
+
return { recentFilters, addFilter, removeFilter };
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=useRecentFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRecentFilters.js","sourceRoot":"","sources":["../../../../../src/screens/logger/useRecentFilters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type LogData } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Hook to manage search state and compute matches.
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - Computes matching row indices using filterUtils
|
|
7
|
+
* - Tracks current match index for navigation
|
|
8
|
+
* - Provides navigation functions (next/previous) with wraparound
|
|
9
|
+
*
|
|
10
|
+
* @param logs - The logs to search through (typically displayedLogs after filtering)
|
|
11
|
+
* @returns Search state and navigation functions
|
|
12
|
+
*/
|
|
13
|
+
export declare const useSearchState: (logs: LogData[]) => {
|
|
14
|
+
searchQuery: string;
|
|
15
|
+
setSearchQuery: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
16
|
+
matchIndices: number[];
|
|
17
|
+
currentMatchIndex: number;
|
|
18
|
+
currentMatchRowIndex: number | undefined;
|
|
19
|
+
goToNext: () => void;
|
|
20
|
+
goToPrevious: () => void;
|
|
21
|
+
goToFirst: () => void;
|
|
22
|
+
goToLast: () => void;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=useSearchState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSearchState.d.ts","sourceRoot":"","sources":["../../../../../src/screens/logger/useSearchState.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,OAAO,EAAE;;;;;;;;;;CAiE7C,CAAC"}
|