@msqd/lydia 0.0.0-stage → 0.6.0
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 +373 -0
- package/README.md +151 -2
- package/THIRD_PARTY_NOTICES.md +29 -0
- package/dist/Components/Badges/Badge.d.ts +20 -0
- package/dist/Components/Badges/Badge.js +33 -0
- package/dist/Components/Badges/index.d.ts +1 -0
- package/dist/Components/Badges/index.js +4 -0
- package/dist/Components/Buttons/Button.d.ts +8 -0
- package/dist/Components/Buttons/Button.js +30 -0
- package/dist/Components/Buttons/ButtonGroup.d.ts +13 -0
- package/dist/Components/Buttons/ButtonGroup.js +61 -0
- package/dist/Components/Buttons/index.d.ts +2 -0
- package/dist/Components/Buttons/index.js +6 -0
- package/dist/Components/Cards/Card.d.ts +38 -0
- package/dist/Components/Cards/Card.js +31 -0
- package/dist/Components/Cards/StatCard.d.ts +14 -0
- package/dist/Components/Cards/StatCard.js +27 -0
- package/dist/Components/Cards/index.d.ts +2 -0
- package/dist/Components/Cards/index.js +7 -0
- package/dist/Components/Charts/Components/ThinBarChart.d.ts +35 -0
- package/dist/Components/Charts/Components/ThinBarChart.js +41 -0
- package/dist/Components/Charts/Components/WideBarChart.d.ts +48 -0
- package/dist/Components/Charts/Components/WideBarChart.js +50 -0
- package/dist/Components/Charts/Components/index.d.ts +2 -0
- package/dist/Components/Charts/Components/index.js +6 -0
- package/dist/Components/Charts/Hooks/index.d.ts +2 -0
- package/dist/Components/Charts/Hooks/index.js +7 -0
- package/dist/Components/Charts/Hooks/useChartDimensions.d.ts +24 -0
- package/dist/Components/Charts/Hooks/useChartDimensions.js +42 -0
- package/dist/Components/Charts/Hooks/useThemeColors.d.ts +10 -0
- package/dist/Components/Charts/Hooks/useThemeColors.js +51 -0
- package/dist/Components/Charts/SummaryPerformancesChart.d.ts +7 -0
- package/dist/Components/Charts/SummaryPerformancesChart.js +93 -0
- package/dist/Components/Charts/SummaryRateChart.d.ts +9 -0
- package/dist/Components/Charts/SummaryRateChart.js +81 -0
- package/dist/Components/Charts/TransactionsChart.d.ts +6 -0
- package/dist/Components/Charts/TransactionsChart.js +70 -0
- package/dist/Components/Charts/Utils/ChartBarCalculator.d.ts +48 -0
- package/dist/Components/Charts/Utils/ChartBarCalculator.js +66 -0
- package/dist/Components/Charts/Utils/ChartColors.d.ts +13 -0
- package/dist/Components/Charts/Utils/ChartColors.js +10 -0
- package/dist/Components/Charts/Utils/ChartTooltipFormatter.d.ts +43 -0
- package/dist/Components/Charts/Utils/ChartTooltipFormatter.js +57 -0
- package/dist/Components/Charts/Utils/ReactEChartsCore.d.ts +4 -0
- package/dist/Components/Charts/Utils/ReactEChartsCore.js +5 -0
- package/dist/Components/Charts/Utils/ThemeColor.d.ts +21 -0
- package/dist/Components/Charts/Utils/ThemeColor.js +54 -0
- package/dist/Components/Charts/Utils/TimeFormatter.d.ts +9 -0
- package/dist/Components/Charts/Utils/TimeFormatter.js +25 -0
- package/dist/Components/Charts/Utils/escapeTooltipHtml.d.ts +6 -0
- package/dist/Components/Charts/Utils/escapeTooltipHtml.js +5 -0
- package/dist/Components/Charts/Utils/index.d.ts +5 -0
- package/dist/Components/Charts/Utils/index.js +14 -0
- package/dist/Components/Charts/index.d.ts +6 -0
- package/dist/Components/Charts/index.js +29 -0
- package/dist/Components/Colors/Colors.d.ts +19 -0
- package/dist/Components/Colors/Colors.js +154 -0
- package/dist/Components/Colors/index.d.ts +1 -0
- package/dist/Components/Colors/index.js +4 -0
- package/dist/Components/DataTable/DataTable.d.ts +86 -0
- package/dist/Components/DataTable/DataTable.js +122 -0
- package/dist/Components/DataTable/Paginator.d.ts +41 -0
- package/dist/Components/DataTable/Paginator.js +122 -0
- package/dist/Components/DataTable/ProportionBar.d.ts +48 -0
- package/dist/Components/DataTable/ProportionBar.js +20 -0
- package/dist/Components/DataTable/index.d.ts +3 -0
- package/dist/Components/DataTable/index.js +9 -0
- package/dist/Components/Dialog/Dialog.d.ts +49 -0
- package/dist/Components/Dialog/Dialog.js +83 -0
- package/dist/Components/Dialog/Drawer.d.ts +45 -0
- package/dist/Components/Dialog/Drawer.js +120 -0
- package/dist/Components/Dialog/index.d.ts +3 -0
- package/dist/Components/Dialog/index.js +12 -0
- package/dist/Components/Dialog/modal.types.d.ts +47 -0
- package/dist/Components/Dialog/modal.types.js +8 -0
- package/dist/Components/Facets/FacetCount.d.ts +11 -0
- package/dist/Components/Facets/FacetCount.js +8 -0
- package/dist/Components/Facets/FacetCountsCaption.d.ts +16 -0
- package/dist/Components/Facets/FacetCountsCaption.js +14 -0
- package/dist/Components/Facets/FacetInnerLightButton.d.ts +10 -0
- package/dist/Components/Facets/FacetInnerLightButton.js +17 -0
- package/dist/Components/Facets/FacetLabel.d.ts +13 -0
- package/dist/Components/Facets/FacetLabel.js +15 -0
- package/dist/Components/Facets/FacetList.d.ts +40 -0
- package/dist/Components/Facets/FacetList.js +37 -0
- package/dist/Components/Facets/FacetListCard.d.ts +38 -0
- package/dist/Components/Facets/FacetListCard.js +47 -0
- package/dist/Components/Facets/FacetResetLink.d.ts +13 -0
- package/dist/Components/Facets/FacetResetLink.js +23 -0
- package/dist/Components/Facets/Variants/DateRangeFacet.d.ts +47 -0
- package/dist/Components/Facets/Variants/DateRangeFacet.js +51 -0
- package/dist/Components/Facets/Variants/MultipleChoiceFacet.d.ts +67 -0
- package/dist/Components/Facets/Variants/MultipleChoiceFacet.js +200 -0
- package/dist/Components/Facets/Variants/PerformanceFacet.d.ts +61 -0
- package/dist/Components/Facets/Variants/PerformanceFacet.js +77 -0
- package/dist/Components/Facets/Variants/SingleChoiceFacet.d.ts +56 -0
- package/dist/Components/Facets/Variants/SingleChoiceFacet.js +54 -0
- package/dist/Components/Facets/Variants/index.d.ts +8 -0
- package/dist/Components/Facets/Variants/index.js +10 -0
- package/dist/Components/Facets/Variants/nestedValues.d.ts +33 -0
- package/dist/Components/Facets/Variants/nestedValues.js +87 -0
- package/dist/Components/Facets/index.d.ts +15 -0
- package/dist/Components/Facets/index.js +27 -0
- package/dist/Components/Formatter/BodyNotice.d.ts +9 -0
- package/dist/Components/Formatter/BodyNotice.js +21 -0
- package/dist/Components/Formatter/CodeFormatter.d.ts +47 -0
- package/dist/Components/Formatter/CodeFormatter.js +47 -0
- package/dist/Components/Formatter/HeadersDisplay.d.ts +9 -0
- package/dist/Components/Formatter/HeadersDisplay.js +18 -0
- package/dist/Components/Formatter/JsonTreeView.d.ts +27 -0
- package/dist/Components/Formatter/JsonTreeView.js +145 -0
- package/dist/Components/Formatter/PerformanceMetrics.d.ts +27 -0
- package/dist/Components/Formatter/PerformanceMetrics.js +29 -0
- package/dist/Components/Formatter/SyntaxHighlighter.d.ts +11 -0
- package/dist/Components/Formatter/SyntaxHighlighter.js +16 -0
- package/dist/Components/Formatter/VirtualizedCodeView.d.ts +24 -0
- package/dist/Components/Formatter/VirtualizedCodeView.js +47 -0
- package/dist/Components/Formatter/bodyLimits.d.ts +6 -0
- package/dist/Components/Formatter/bodyLimits.js +6 -0
- package/dist/Components/Formatter/index.d.ts +8 -0
- package/dist/Components/Formatter/index.js +16 -0
- package/dist/Components/Formatter/syntaxTheme.d.ts +8 -0
- package/dist/Components/Formatter/syntaxTheme.js +15 -0
- package/dist/Components/Formatter/useCodeHighlighting.d.ts +15 -0
- package/dist/Components/Formatter/useCodeHighlighting.js +47 -0
- package/dist/Components/Formatter/useVirtualization.d.ts +29 -0
- package/dist/Components/Formatter/useVirtualization.js +18 -0
- package/dist/Components/Inputs/Checkbox/Checkbox.d.ts +6 -0
- package/dist/Components/Inputs/Checkbox/Checkbox.js +75 -0
- package/dist/Components/Inputs/Checkbox/index.d.ts +1 -0
- package/dist/Components/Inputs/Checkbox/index.js +4 -0
- package/dist/Components/Inputs/DateRangeSelector/DateRangeSelector.d.ts +48 -0
- package/dist/Components/Inputs/DateRangeSelector/DateRangeSelector.js +71 -0
- package/dist/Components/Inputs/DateRangeSelector/index.d.ts +1 -0
- package/dist/Components/Inputs/DateRangeSelector/index.js +4 -0
- package/dist/Components/Inputs/Field/Field.d.ts +19 -0
- package/dist/Components/Inputs/Field/Field.js +35 -0
- package/dist/Components/Inputs/Field/index.d.ts +2 -0
- package/dist/Components/Inputs/Field/index.js +7 -0
- package/dist/Components/Inputs/Field/useField.d.ts +33 -0
- package/dist/Components/Inputs/Field/useField.js +36 -0
- package/dist/Components/Inputs/Input/Input.d.ts +85 -0
- package/dist/Components/Inputs/Input/Input.js +146 -0
- package/dist/Components/Inputs/Input/index.d.ts +1 -0
- package/dist/Components/Inputs/Input/index.js +4 -0
- package/dist/Components/Inputs/InputAddon/InputAddon.d.ts +21 -0
- package/dist/Components/Inputs/InputAddon/InputAddon.js +18 -0
- package/dist/Components/Inputs/InputAddon/index.d.ts +1 -0
- package/dist/Components/Inputs/InputAddon/index.js +4 -0
- package/dist/Components/Inputs/InputButton/InputButton.d.ts +21 -0
- package/dist/Components/Inputs/InputButton/InputButton.js +29 -0
- package/dist/Components/Inputs/InputButton/index.d.ts +1 -0
- package/dist/Components/Inputs/InputButton/index.js +4 -0
- package/dist/Components/Inputs/InputIcon/InputIcon.d.ts +20 -0
- package/dist/Components/Inputs/InputIcon/InputIcon.js +16 -0
- package/dist/Components/Inputs/InputIcon/index.d.ts +1 -0
- package/dist/Components/Inputs/InputIcon/index.js +4 -0
- package/dist/Components/Inputs/KeyboardShortcut/KeyboardShortcut.d.ts +12 -0
- package/dist/Components/Inputs/KeyboardShortcut/KeyboardShortcut.js +18 -0
- package/dist/Components/Inputs/KeyboardShortcut/index.d.ts +1 -0
- package/dist/Components/Inputs/KeyboardShortcut/index.js +4 -0
- package/dist/Components/Inputs/Radio/Radio.d.ts +3 -0
- package/dist/Components/Inputs/Radio/Radio.js +59 -0
- package/dist/Components/Inputs/Radio/index.d.ts +1 -0
- package/dist/Components/Inputs/Radio/index.js +4 -0
- package/dist/Components/Inputs/SearchInput/SearchInput.d.ts +9 -0
- package/dist/Components/Inputs/SearchInput/SearchInput.js +48 -0
- package/dist/Components/Inputs/SearchInput/index.d.ts +2 -0
- package/dist/Components/Inputs/SearchInput/index.js +4 -0
- package/dist/Components/Inputs/Sliders/RangeSlider.d.ts +40 -0
- package/dist/Components/Inputs/Sliders/RangeSlider.js +160 -0
- package/dist/Components/Inputs/Sliders/index.d.ts +2 -0
- package/dist/Components/Inputs/Sliders/index.js +4 -0
- package/dist/Components/Inputs/Textarea/Textarea.d.ts +56 -0
- package/dist/Components/Inputs/Textarea/Textarea.js +79 -0
- package/dist/Components/Inputs/Textarea/index.d.ts +1 -0
- package/dist/Components/Inputs/Textarea/index.js +4 -0
- package/dist/Components/Inputs/choiceInput.d.ts +12 -0
- package/dist/Components/Inputs/choiceInput.js +8 -0
- package/dist/Components/Inputs/index.d.ts +11 -0
- package/dist/Components/Inputs/index.js +24 -0
- package/dist/Components/Layouts/DefaultLayout.d.ts +30 -0
- package/dist/Components/Layouts/DefaultLayout.js +25 -0
- package/dist/Components/Layouts/index.d.ts +2 -0
- package/dist/Components/Layouts/index.js +4 -0
- package/dist/Components/NavBar/Assets/defaultAvatar.d.ts +4 -0
- package/dist/Components/NavBar/Assets/defaultAvatar.js +28 -0
- package/dist/Components/NavBar/Assets/index.d.ts +2 -0
- package/dist/Components/NavBar/Assets/index.js +4 -0
- package/dist/Components/NavBar/NavBar.d.ts +58 -0
- package/dist/Components/NavBar/NavBar.js +141 -0
- package/dist/Components/NavBar/index.d.ts +1 -0
- package/dist/Components/NavBar/index.js +5 -0
- package/dist/Components/Tabs/Tabs.d.ts +24 -0
- package/dist/Components/Tabs/Tabs.js +69 -0
- package/dist/Components/Tabs/index.d.ts +2 -0
- package/dist/Components/Tabs/index.js +5 -0
- package/dist/Components/Toast/Toast.d.ts +28 -0
- package/dist/Components/Toast/Toast.js +128 -0
- package/dist/Components/Toast/ToastContainer.d.ts +29 -0
- package/dist/Components/Toast/ToastContainer.js +28 -0
- package/dist/Components/Toast/ToastContext.d.ts +103 -0
- package/dist/Components/Toast/ToastContext.js +124 -0
- package/dist/Components/Toast/index.d.ts +3 -0
- package/dist/Components/Toast/index.js +13 -0
- package/dist/Components/Typography/HeadingLevel.d.ts +28 -0
- package/dist/Components/Typography/HeadingLevel.js +20 -0
- package/dist/Components/Typography/Paragraphs.d.ts +8 -0
- package/dist/Components/Typography/Paragraphs.js +6 -0
- package/dist/Components/Typography/Section.d.ts +8 -0
- package/dist/Components/Typography/Section.js +6 -0
- package/dist/Components/Typography/Titles.d.ts +31 -0
- package/dist/Components/Typography/Titles.js +14 -0
- package/dist/Components/Typography/index.d.ts +4 -0
- package/dist/Components/Typography/index.js +17 -0
- package/dist/Components/Utilities/Foldable.d.ts +42 -0
- package/dist/Components/Utilities/Foldable.js +39 -0
- package/dist/Components/Utilities/index.d.ts +2 -0
- package/dist/Components/Utilities/index.js +6 -0
- package/dist/Components/Utilities/useClickOutside.d.ts +21 -0
- package/dist/Components/Utilities/useClickOutside.js +23 -0
- package/dist/Components/index.d.ts +16 -0
- package/dist/Components/index.js +158 -0
- package/dist/Elements/Http/CacheBadge.d.ts +13 -0
- package/dist/Elements/Http/CacheBadge.js +34 -0
- package/dist/Elements/Http/CacheIndicator.d.ts +17 -0
- package/dist/Elements/Http/CacheIndicator.js +47 -0
- package/dist/Elements/Http/RequestMethodBadge.d.ts +5 -0
- package/dist/Elements/Http/RequestMethodBadge.js +13 -0
- package/dist/Elements/Http/ResponseStatusBadge.d.ts +19 -0
- package/dist/Elements/Http/ResponseStatusBadge.js +20 -0
- package/dist/Elements/Http/index.d.ts +4 -0
- package/dist/Elements/Http/index.js +10 -0
- package/dist/Elements/System/CircuitBreakerStatus.d.ts +11 -0
- package/dist/Elements/System/CircuitBreakerStatus.js +98 -0
- package/dist/Elements/System/EndpointNode.d.ts +10 -0
- package/dist/Elements/System/EndpointNode.js +19 -0
- package/dist/Elements/System/EntrypointNode.d.ts +9 -0
- package/dist/Elements/System/EntrypointNode.js +17 -0
- package/dist/Elements/System/NetworkEdges.d.ts +37 -0
- package/dist/Elements/System/NetworkEdges.js +52 -0
- package/dist/Elements/System/NetworkMap.d.ts +33 -0
- package/dist/Elements/System/NetworkMap.js +121 -0
- package/dist/Elements/System/NetworkNode.d.ts +29 -0
- package/dist/Elements/System/NetworkNode.js +31 -0
- package/dist/Elements/System/ProxyNode.d.ts +8 -0
- package/dist/Elements/System/ProxyNode.js +10 -0
- package/dist/Elements/System/index.d.ts +9 -0
- package/dist/Elements/System/index.js +17 -0
- package/dist/Elements/Tpdex/TpdexBadge.d.ts +26 -0
- package/dist/Elements/Tpdex/TpdexBadge.js +36 -0
- package/dist/Elements/Tpdex/index.d.ts +4 -0
- package/dist/Elements/Tpdex/index.js +8 -0
- package/dist/Elements/Transactions/TransactionFiltersCard.d.ts +41 -0
- package/dist/Elements/Transactions/TransactionFiltersCard.js +121 -0
- package/dist/Elements/Transactions/TransactionsExplorerSidebar.d.ts +37 -0
- package/dist/Elements/Transactions/TransactionsExplorerSidebar.js +154 -0
- package/dist/Elements/Transactions/TransactionsFiltersSidebar.d.ts +22 -0
- package/dist/Elements/Transactions/TransactionsFiltersSidebar.js +39 -0
- package/dist/Elements/Transactions/index.d.ts +13 -0
- package/dist/Elements/Transactions/index.js +9 -0
- package/dist/Elements/index.d.ts +18 -0
- package/dist/Elements/index.js +38 -0
- package/dist/Models/Filters/active.d.ts +12 -0
- package/dist/Models/Filters/active.js +10 -0
- package/dist/Models/Filters/dates.d.ts +8 -0
- package/dist/Models/Filters/dates.js +16 -0
- package/dist/Models/Filters/index.d.ts +4 -0
- package/dist/Models/Filters/index.js +13 -0
- package/dist/Models/Filters/read.d.ts +9 -0
- package/dist/Models/Filters/read.js +22 -0
- package/dist/Models/Filters/types.d.ts +50 -0
- package/dist/Models/Filters/types.js +1 -0
- package/dist/Models/Http/body.d.ts +7 -0
- package/dist/Models/Http/body.js +6 -0
- package/dist/Models/Http/contentDisposition.d.ts +7 -0
- package/dist/Models/Http/contentDisposition.js +51 -0
- package/dist/Models/Http/dataUrl.d.ts +12 -0
- package/dist/Models/Http/dataUrl.js +21 -0
- package/dist/Models/Http/headers.d.ts +18 -0
- package/dist/Models/Http/headers.js +7 -0
- package/dist/Models/Http/index.d.ts +2 -0
- package/dist/Models/Http/index.js +6 -0
- package/dist/Models/Http/percent.d.ts +5 -0
- package/dist/Models/Http/percent.js +17 -0
- package/dist/Models/Http/requestTarget.d.ts +11 -0
- package/dist/Models/Http/requestTarget.js +7 -0
- package/dist/Models/System/index.d.ts +1 -0
- package/dist/Models/System/index.js +7 -0
- package/dist/Models/System/types.d.ts +20 -0
- package/dist/Models/System/types.js +48 -0
- package/dist/Models/Tpdex.d.ts +36 -0
- package/dist/Models/Tpdex.js +38 -0
- package/dist/Models/Transactions/Overview.d.ts +19 -0
- package/dist/Models/Transactions/Overview.js +1 -0
- package/dist/Models/Transactions/encoding.d.ts +49 -0
- package/dist/Models/Transactions/encoding.js +26 -0
- package/dist/Models/Transactions/endpoints.d.ts +15 -0
- package/dist/Models/Transactions/endpoints.js +21 -0
- package/dist/Models/Transactions/facets.d.ts +25 -0
- package/dist/Models/Transactions/facets.js +40 -0
- package/dist/Models/Transactions/filtering.d.ts +20 -0
- package/dist/Models/Transactions/filtering.js +34 -0
- package/dist/Models/Transactions/treeDepth.d.ts +2 -0
- package/dist/Models/Transactions/treeDepth.js +4 -0
- package/dist/Models/Transactions/types.d.ts +58 -0
- package/dist/Models/Transactions/types.js +1 -0
- package/dist/Models/index.d.ts +10 -0
- package/dist/Models/index.js +46 -0
- package/dist/Pages/Alerts/AlertsPage.d.ts +18 -0
- package/dist/Pages/Alerts/AlertsPage.js +104 -0
- package/dist/Pages/Alerts/index.d.ts +1 -0
- package/dist/Pages/Alerts/index.js +4 -0
- package/dist/Pages/Explorer/ExplorerPage.d.ts +6 -0
- package/dist/Pages/Explorer/ExplorerPage.js +55 -0
- package/dist/Pages/Explorer/index.d.ts +1 -0
- package/dist/Pages/Explorer/index.js +4 -0
- package/dist/Pages/Overview/OverviewPage.d.ts +11 -0
- package/dist/Pages/Overview/OverviewPage.js +10 -0
- package/dist/Pages/Overview/Sections/Components/TransactionsHistoryView.d.ts +7 -0
- package/dist/Pages/Overview/Sections/Components/TransactionsHistoryView.js +32 -0
- package/dist/Pages/Overview/Sections/Components/index.d.ts +1 -0
- package/dist/Pages/Overview/Sections/Components/index.js +4 -0
- package/dist/Pages/Overview/Sections/HistorySection.d.ts +18 -0
- package/dist/Pages/Overview/Sections/HistorySection.js +21 -0
- package/dist/Pages/Overview/Sections/SummarySection.d.ts +44 -0
- package/dist/Pages/Overview/Sections/SummarySection.js +127 -0
- package/dist/Pages/Overview/index.d.ts +4 -0
- package/dist/Pages/Overview/index.js +8 -0
- package/dist/Pages/SystemPage/SystemPage.d.ts +8 -0
- package/dist/Pages/SystemPage/SystemPage.js +16 -0
- package/dist/Pages/SystemPage/index.d.ts +1 -0
- package/dist/Pages/SystemPage/index.js +4 -0
- package/dist/Pages/Transactions/Detail/Components/DownloadButton.d.ts +33 -0
- package/dist/Pages/Transactions/Detail/Components/DownloadButton.js +62 -0
- package/dist/Pages/Transactions/Detail/Components/TransactionMessage.d.ts +16 -0
- package/dist/Pages/Transactions/Detail/Components/TransactionMessage.js +44 -0
- package/dist/Pages/Transactions/Detail/Components/TransactionMetadata.d.ts +21 -0
- package/dist/Pages/Transactions/Detail/Components/TransactionMetadata.js +127 -0
- package/dist/Pages/Transactions/Detail/Components/index.d.ts +6 -0
- package/dist/Pages/Transactions/Detail/Components/index.js +8 -0
- package/dist/Pages/Transactions/Detail/TransactionsDetailPage.d.ts +8 -0
- package/dist/Pages/Transactions/Detail/TransactionsDetailPage.js +15 -0
- package/dist/Pages/Transactions/Detail/Utils/BodyPreview.d.ts +15 -0
- package/dist/Pages/Transactions/Detail/Utils/BodyPreview.js +30 -0
- package/dist/Pages/Transactions/Detail/Utils/ContentRenderer.d.ts +28 -0
- package/dist/Pages/Transactions/Detail/Utils/ContentRenderer.js +115 -0
- package/dist/Pages/Transactions/Detail/Utils/index.d.ts +4 -0
- package/dist/Pages/Transactions/Detail/Utils/index.js +9 -0
- package/dist/Pages/Transactions/Detail/index.d.ts +4 -0
- package/dist/Pages/Transactions/Detail/index.js +8 -0
- package/dist/Pages/Transactions/List/TransactionsListPage.d.ts +80 -0
- package/dist/Pages/Transactions/List/TransactionsListPage.js +220 -0
- package/dist/Pages/Transactions/List/index.d.ts +4 -0
- package/dist/Pages/Transactions/List/index.js +6 -0
- package/dist/Pages/Transactions/List/useClientSideTransactions.d.ts +38 -0
- package/dist/Pages/Transactions/List/useClientSideTransactions.js +32 -0
- package/dist/Pages/Transactions/index.d.ts +4 -0
- package/dist/Pages/Transactions/index.js +6 -0
- package/dist/Pages/index.d.ts +5 -0
- package/dist/Pages/index.js +18 -0
- package/dist/Settings.d.ts +13 -0
- package/dist/Settings.js +16 -0
- package/dist/css/Components/Formatter/prism.css +79 -0
- package/dist/css/Components/Inputs/Input/Input.css +73 -0
- package/dist/css/Components/Inputs/Sliders/RangeSliderStyles.css +92 -0
- package/dist/css/components.css +6 -0
- package/dist/css/fonts/Lato-Bold.woff2 +0 -0
- package/dist/css/fonts/Lato-BoldItalic.woff2 +0 -0
- package/dist/css/fonts/Lato-Italic.woff2 +0 -0
- package/dist/css/fonts/Lato-Regular.woff2 +0 -0
- package/dist/css/fonts/OFL.txt +93 -0
- package/dist/css/theme.css +109 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +250 -0
- package/dist/logo.svg +1 -0
- package/dist/styles/styles.css +1 -0
- package/package.json +367 -3
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { jsx as t, jsxs as r } from "react/jsx-runtime";
|
|
2
|
+
import { DocumentIcon as x, PhotoIcon as h } from "@heroicons/react/24/outline";
|
|
3
|
+
import { FORMAT_CAP as N } from "../../../../Components/Formatter/bodyLimits.js";
|
|
4
|
+
import { stringifyBody as v } from "../../../../Models/Http/body.js";
|
|
5
|
+
import { contentDispositionFilename as b } from "../../../../Models/Http/contentDisposition.js";
|
|
6
|
+
import { findHeader as l } from "../../../../Models/Http/headers.js";
|
|
7
|
+
import { useMemo as y } from "react";
|
|
8
|
+
import { DownloadButton as c } from "../Components/DownloadButton.js";
|
|
9
|
+
import { BodyPreview as w } from "./BodyPreview.js";
|
|
10
|
+
import { CodeFormatter as P } from "../../../../Components/Formatter/CodeFormatter.js";
|
|
11
|
+
const D = /^data:application\/pdf(;[^,]*)?,/i, j = (e) => e?.split(";")[0]?.trim().toLowerCase() === "application/pdf";
|
|
12
|
+
function C(e, i) {
|
|
13
|
+
return typeof e == "string" && i !== "image" && i !== "binary" && e.length > N;
|
|
14
|
+
}
|
|
15
|
+
function F(e, i) {
|
|
16
|
+
switch (e) {
|
|
17
|
+
case "json":
|
|
18
|
+
return "json";
|
|
19
|
+
case "xml":
|
|
20
|
+
case "html":
|
|
21
|
+
return "html";
|
|
22
|
+
// HTML is the closest to XML
|
|
23
|
+
case "text":
|
|
24
|
+
return "text";
|
|
25
|
+
default:
|
|
26
|
+
return typeof i == "string" ? "text" : "json";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function S({ content: e, contentType: i, headers: m, maxHeight: p = 384 }) {
|
|
30
|
+
const d = l(m, "Content-Disposition"), f = y(
|
|
31
|
+
() => d === void 0 ? void 0 : b(d),
|
|
32
|
+
[d]
|
|
33
|
+
), o = f ?? "file.bin", a = y(() => {
|
|
34
|
+
if (e === void 0) return "";
|
|
35
|
+
try {
|
|
36
|
+
return v(e);
|
|
37
|
+
} catch {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
}, [e]);
|
|
41
|
+
if (e === void 0 || e === "")
|
|
42
|
+
return /* @__PURE__ */ t("p", { className: "text-sm text-gray-500", children: "Empty body" });
|
|
43
|
+
if (a === void 0)
|
|
44
|
+
return /* @__PURE__ */ t("p", { role: "alert", className: "text-sm text-red-600", children: "This body cannot be displayed: it is nested too deeply." });
|
|
45
|
+
const s = l(m, "Content-Type"), n = l(m, "Content-Length");
|
|
46
|
+
switch (i) {
|
|
47
|
+
case "image": {
|
|
48
|
+
const g = typeof e == "string" && e.startsWith("data:image"), u = typeof e == "string" && e.includes("[Binary");
|
|
49
|
+
return g ? /* @__PURE__ */ r("div", { className: "space-y-4", children: [
|
|
50
|
+
/* @__PURE__ */ t("div", { className: "bg-gray-50 rounded-md p-4", children: /* @__PURE__ */ t(
|
|
51
|
+
"img",
|
|
52
|
+
{
|
|
53
|
+
src: e,
|
|
54
|
+
alt: "Response image",
|
|
55
|
+
className: "max-w-full h-auto mx-auto",
|
|
56
|
+
style: { maxHeight: "400px" }
|
|
57
|
+
}
|
|
58
|
+
) }),
|
|
59
|
+
/* @__PURE__ */ t("div", { className: "flex justify-center", children: /* @__PURE__ */ t(c, { data: e, filename: "image.png", mimeType: s || "image/png" }) })
|
|
60
|
+
] }) : u ? /* @__PURE__ */ r("div", { className: "text-center p-8 bg-gray-50 rounded-md space-y-4", children: [
|
|
61
|
+
/* @__PURE__ */ t(h, { className: "h-12 w-12 text-gray-400 mx-auto" }),
|
|
62
|
+
/* @__PURE__ */ r("div", { children: [
|
|
63
|
+
/* @__PURE__ */ t("p", { className: "text-sm text-gray-900 font-medium", children: a }),
|
|
64
|
+
n && /* @__PURE__ */ r("p", { className: "text-xs text-gray-500 mt-1", children: [
|
|
65
|
+
"Size: ",
|
|
66
|
+
n,
|
|
67
|
+
" bytes"
|
|
68
|
+
] })
|
|
69
|
+
] })
|
|
70
|
+
] }) : /* @__PURE__ */ t("div", { className: "text-center p-4 bg-gray-50 rounded-md", children: /* @__PURE__ */ t("span", { className: "text-sm text-gray-500", children: "Image content" }) });
|
|
71
|
+
}
|
|
72
|
+
case "binary":
|
|
73
|
+
return j(s) && typeof e == "string" && D.test(e) ? /* @__PURE__ */ r("div", { className: "space-y-4", children: [
|
|
74
|
+
/* @__PURE__ */ t("div", { className: "bg-gray-50 rounded-md p-4", children: /* @__PURE__ */ t(
|
|
75
|
+
"iframe",
|
|
76
|
+
{
|
|
77
|
+
src: e,
|
|
78
|
+
title: "PDF Preview",
|
|
79
|
+
referrerPolicy: "no-referrer",
|
|
80
|
+
className: "w-full h-96 border border-gray-300 rounded"
|
|
81
|
+
}
|
|
82
|
+
) }),
|
|
83
|
+
/* @__PURE__ */ t("div", { className: "flex justify-center", children: /* @__PURE__ */ t(c, { data: e, filename: o, mimeType: "application/pdf" }) })
|
|
84
|
+
] }) : /* @__PURE__ */ r("div", { className: "text-center p-8 bg-gray-50 rounded-md space-y-4", children: [
|
|
85
|
+
/* @__PURE__ */ t(x, { className: "h-12 w-12 text-gray-400 mx-auto" }),
|
|
86
|
+
/* @__PURE__ */ r("div", { children: [
|
|
87
|
+
/* @__PURE__ */ t("p", { className: "text-sm text-gray-900 font-medium", children: a }),
|
|
88
|
+
n && /* @__PURE__ */ r("p", { className: "text-xs text-gray-500 mt-1", children: [
|
|
89
|
+
"Size: ",
|
|
90
|
+
n,
|
|
91
|
+
" bytes"
|
|
92
|
+
] }),
|
|
93
|
+
/* @__PURE__ */ r("p", { className: "text-xs text-gray-500", children: [
|
|
94
|
+
"Filename: ",
|
|
95
|
+
o
|
|
96
|
+
] })
|
|
97
|
+
] }),
|
|
98
|
+
/* @__PURE__ */ t("div", { className: "flex justify-center", children: /* @__PURE__ */ t(c, { data: e, filename: o, mimeType: s }) })
|
|
99
|
+
] });
|
|
100
|
+
default:
|
|
101
|
+
return C(a, i) ? /* @__PURE__ */ t(
|
|
102
|
+
w,
|
|
103
|
+
{
|
|
104
|
+
body: a,
|
|
105
|
+
filename: f ?? "body.txt",
|
|
106
|
+
mimeType: s,
|
|
107
|
+
maxHeight: p
|
|
108
|
+
}
|
|
109
|
+
) : /* @__PURE__ */ t(P, { language: F(i, e), code: a, maxHeight: p });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
export {
|
|
113
|
+
S as ContentRenderer,
|
|
114
|
+
C as isPreviewedBody
|
|
115
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ContentRenderer } from "./ContentRenderer.js";
|
|
2
|
+
export { calculateTpdexScore, getTpdexRating, calculateAggregateTpdexScore, tpdexScale, } from "../../../../Models/Tpdex.js";
|
|
3
|
+
export type { ContentRendererProps } from "./ContentRenderer.js";
|
|
4
|
+
export type { TpdexRating } from "../../../../Models/Tpdex.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ContentRenderer as r } from "./ContentRenderer.js";
|
|
2
|
+
import { calculateAggregateTpdexScore as c, calculateTpdexScore as o, getTpdexRating as p, tpdexScale as x } from "../../../../Models/Tpdex.js";
|
|
3
|
+
export {
|
|
4
|
+
r as ContentRenderer,
|
|
5
|
+
c as calculateAggregateTpdexScore,
|
|
6
|
+
o as calculateTpdexScore,
|
|
7
|
+
p as getTpdexRating,
|
|
8
|
+
x as tpdexScale
|
|
9
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { TransactionsDetailPage } from "./TransactionsDetailPage.js";
|
|
2
|
+
export type { TransactionsDetailPageProps } from "./TransactionsDetailPage.js";
|
|
3
|
+
export { ContentRenderer, type ContentRendererProps } from "./Utils/ContentRenderer.js";
|
|
4
|
+
export { BodyPreview, type BodyPreviewProps } from "./Utils/BodyPreview.js";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TransactionsDetailPage as o } from "./TransactionsDetailPage.js";
|
|
2
|
+
import { ContentRenderer as n } from "./Utils/ContentRenderer.js";
|
|
3
|
+
import { BodyPreview as f } from "./Utils/BodyPreview.js";
|
|
4
|
+
export {
|
|
5
|
+
f as BodyPreview,
|
|
6
|
+
n as ContentRenderer,
|
|
7
|
+
o as TransactionsDetailPage
|
|
8
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { type ComponentProps } from "react";
|
|
2
|
+
import { type FilterChangeHandler, type Filters } from "../../../Models/Filters/index.js";
|
|
3
|
+
import type { TransactionFacets } from "../../../Models/Transactions/facets.js";
|
|
4
|
+
import type { Transaction } from "../../../Models/Transactions/types.js";
|
|
5
|
+
interface TransactionsListPageBaseProps extends ComponentProps<"div"> {
|
|
6
|
+
className?: string;
|
|
7
|
+
onRowClick?: (id: string) => void;
|
|
8
|
+
/** Called when the user chooses a row. */
|
|
9
|
+
onTransactionSelect?: (transaction: Transaction) => void;
|
|
10
|
+
/**
|
|
11
|
+
* Id of the highlighted row, `null` for none. The page then holds no selection of its own and
|
|
12
|
+
* never clears one: whoever shows the selected transaction (a drawer, say) clears it when it
|
|
13
|
+
* closes. Leave it out and the page keeps its own, which nothing but another row click changes.
|
|
14
|
+
*/
|
|
15
|
+
selectedId?: string | null;
|
|
16
|
+
isDrawerOpen?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* The transactions to render, exactly as given. This page does not filter, search or paginate
|
|
19
|
+
* them: the consumer does, wherever the whole dataset lives.
|
|
20
|
+
*/
|
|
21
|
+
transactions: Transaction[];
|
|
22
|
+
/**
|
|
23
|
+
* Layout variant. "embedded" hides the title, the search and the filters (for use inside
|
|
24
|
+
* another component).
|
|
25
|
+
*/
|
|
26
|
+
variant?: "page" | "embedded";
|
|
27
|
+
/** Current facet selections. Displayed and reported, never applied here. */
|
|
28
|
+
filters?: Filters;
|
|
29
|
+
/** Called when a facet changes. The filters sidebar renders only when this is provided. */
|
|
30
|
+
onFiltersChange?: FilterChangeHandler;
|
|
31
|
+
/**
|
|
32
|
+
* Values each facet can offer, with their counts. Only the consumer knows what exists in the
|
|
33
|
+
* whole result set, so a facet with no entry offers nothing rather than something invented.
|
|
34
|
+
*/
|
|
35
|
+
facets?: TransactionFacets;
|
|
36
|
+
/**
|
|
37
|
+
* Called when the user asks to start over. Expected to clear the facets **and** the search
|
|
38
|
+
* term, since the control that triggers it is labelled as resetting everything.
|
|
39
|
+
*/
|
|
40
|
+
onResetFilters?: () => void;
|
|
41
|
+
/** Current search term. */
|
|
42
|
+
search?: string;
|
|
43
|
+
/** Called when the search term changes. The search field renders only when this is provided. */
|
|
44
|
+
onSearchChange?: (search: string) => void;
|
|
45
|
+
/** Current page, 1-based. */
|
|
46
|
+
page?: number;
|
|
47
|
+
/** Total matching transactions. Only the consumer knows this; a page of results cannot infer it. */
|
|
48
|
+
total?: number;
|
|
49
|
+
/** Number of pages. Derived from `total` and `itemsPerPage` when omitted. */
|
|
50
|
+
pageCount?: number;
|
|
51
|
+
/** Page size, used for the pagination summary. This page never slices the list itself. */
|
|
52
|
+
itemsPerPage?: number;
|
|
53
|
+
/** Called when the user asks for another page. */
|
|
54
|
+
onPageChange?: (page: number) => void;
|
|
55
|
+
/**
|
|
56
|
+
* Ids of the favourite transactions. Favourites are per-user state only the consumer holds; the
|
|
57
|
+
* page shows them and never keeps any.
|
|
58
|
+
*/
|
|
59
|
+
favorites?: ReadonlySet<string>;
|
|
60
|
+
/** Called when the user toggles a star. The star column renders only when this is provided. */
|
|
61
|
+
onFavoriteChange?: (id: string, favorite: boolean) => void;
|
|
62
|
+
/** True while the consumer is fetching, so an empty list reads as "not yet" rather than "none". */
|
|
63
|
+
isLoading?: boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Sidebar state. `filtersOpen` and `onFiltersOpenChange` go together to control the sidebar, and
|
|
67
|
+
* you persist it yourself if you want it remembered: `filtersOpen` alone would leave the toggle
|
|
68
|
+
* dead, so it does not compile. Leave `filtersOpen` out and the page keeps its own state, closed at
|
|
69
|
+
* first, forgotten on unmount; `onFiltersOpenChange` alone then just reports the changes.
|
|
70
|
+
*/
|
|
71
|
+
type FiltersOpenProps = {
|
|
72
|
+
filtersOpen: boolean;
|
|
73
|
+
onFiltersOpenChange: (open: boolean) => void;
|
|
74
|
+
} | {
|
|
75
|
+
filtersOpen?: undefined;
|
|
76
|
+
onFiltersOpenChange?: (open: boolean) => void;
|
|
77
|
+
};
|
|
78
|
+
export type TransactionsListPageProps = TransactionsListPageBaseProps & FiltersOpenProps;
|
|
79
|
+
export declare function TransactionsListPage({ className, onRowClick, onTransactionSelect, selectedId, isDrawerOpen, filtersOpen: filtersOpenProp, onFiltersOpenChange, itemsPerPage, transactions, variant, filters, onFiltersChange, onResetFilters, facets, search, onSearchChange, page, total, pageCount, onPageChange, isLoading, favorites, onFavoriteChange, ...props }: TransactionsListPageProps): import("react/jsx-runtime").JSX.Element;
|
|
80
|
+
export {};
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { jsxs as s, jsx as t, Fragment as Y } from "react/jsx-runtime";
|
|
2
|
+
import { ChevronDoubleLeftIcon as _, ChevronDoubleRightIcon as G } from "@heroicons/react/16/solid";
|
|
3
|
+
import { StarIcon as J } from "@heroicons/react/24/outline";
|
|
4
|
+
import { P as Q } from "../../../Components/Typography/Paragraphs.js";
|
|
5
|
+
import { Section as W } from "../../../Components/Typography/Section.js";
|
|
6
|
+
import { H2 as X } from "../../../Components/Typography/Titles.js";
|
|
7
|
+
import { TpdexBadge as Z } from "../../../Elements/Tpdex/TpdexBadge.js";
|
|
8
|
+
import { formatDistanceToNow as ee } from "date-fns";
|
|
9
|
+
import { useState as w } from "react";
|
|
10
|
+
import { twMerge as te } from "tailwind-merge";
|
|
11
|
+
import { splitRequestTarget as re } from "../../../Models/Http/requestTarget.js";
|
|
12
|
+
import { hasActiveFilters as ae } from "../../../Models/Filters/active.js";
|
|
13
|
+
import { SearchInput as se } from "../../../Components/Inputs/SearchInput/SearchInput.js";
|
|
14
|
+
import { TransactionsFiltersSidebar as oe } from "../../../Elements/Transactions/TransactionsFiltersSidebar.js";
|
|
15
|
+
import { Paginator as ie } from "../../../Components/DataTable/Paginator.js";
|
|
16
|
+
import { DataTable as le } from "../../../Components/DataTable/DataTable.js";
|
|
17
|
+
import { ResponseStatusBadge as ne } from "../../../Elements/Http/ResponseStatusBadge.js";
|
|
18
|
+
import { CacheIndicator as ce } from "../../../Elements/Http/CacheIndicator.js";
|
|
19
|
+
import { RequestMethodBadge as me } from "../../../Elements/Http/RequestMethodBadge.js";
|
|
20
|
+
const de = (e) => {
|
|
21
|
+
const r = new Date(e);
|
|
22
|
+
return Math.abs((/* @__PURE__ */ new Date()).getTime() - r.getTime()) / (1e3 * 60 * 60) < 1 ? ee(r, { addSuffix: !0 }) : r.toLocaleDateString("en-US", {
|
|
23
|
+
month: "short",
|
|
24
|
+
day: "numeric",
|
|
25
|
+
hour: "2-digit",
|
|
26
|
+
minute: "2-digit"
|
|
27
|
+
});
|
|
28
|
+
}, ue = (e) => e < 1e3 ? `${e}ms` : `${(e / 1e3).toFixed(1)}s`, fe = ({
|
|
29
|
+
transaction: e,
|
|
30
|
+
isFavorite: r,
|
|
31
|
+
onChange: a
|
|
32
|
+
}) => /* @__PURE__ */ t(
|
|
33
|
+
"button",
|
|
34
|
+
{
|
|
35
|
+
type: "button",
|
|
36
|
+
"aria-pressed": r,
|
|
37
|
+
"aria-label": `Favourite ${e.method} ${e.url}`,
|
|
38
|
+
onClick: (i) => {
|
|
39
|
+
i.preventDefault(), i.stopPropagation(), a(e.id, !r);
|
|
40
|
+
},
|
|
41
|
+
onKeyDown: (i) => i.stopPropagation(),
|
|
42
|
+
className: "rounded cursor-pointer focus-visible:outline-2 focus-visible:outline-primary-600",
|
|
43
|
+
children: /* @__PURE__ */ t(
|
|
44
|
+
J,
|
|
45
|
+
{
|
|
46
|
+
className: r ? "h-5 w-5 fill-current text-yellow-500" : "h-5 w-5 text-gray-500 hover:text-yellow-500",
|
|
47
|
+
"aria-hidden": "true"
|
|
48
|
+
}
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
), pe = ({ transaction: e }) => {
|
|
52
|
+
const { path: r, query: a } = re(e.url);
|
|
53
|
+
return /* @__PURE__ */ s("span", { className: "font-normal", children: [
|
|
54
|
+
/* @__PURE__ */ t(me, { method: e.method }),
|
|
55
|
+
e.apiName && /* @__PURE__ */ t("span", { className: "inline-flex items-center bg-gray-50 px-1 ml-2 py-0.5 text-xs font-medium text-gray-700 ring-1 ring-inset ring-gray-600/20", children: e.apiName }),
|
|
56
|
+
/* @__PURE__ */ t("span", { className: "text-gray-500 font-mono text-xs ml-1", title: e.url, children: r }),
|
|
57
|
+
a && /* @__PURE__ */ t("span", { className: "text-gray-500 font-mono text-xs", title: e.url, children: a })
|
|
58
|
+
] });
|
|
59
|
+
}, he = ({ transaction: e }) => /* @__PURE__ */ s("div", { className: "flex gap-x-1 items-center font-normal", children: [
|
|
60
|
+
/* @__PURE__ */ t(Z, { score: e.tpdex, responseTime: e.responseTime }),
|
|
61
|
+
/* @__PURE__ */ t("span", { className: "text-sm", children: ue(e.responseTime) }),
|
|
62
|
+
/* @__PURE__ */ t(ce, { cacheStatus: e.cacheStatus, cached: e.cached, size: "sm" })
|
|
63
|
+
] }), v = ["request", "response", "duration", "date"], xe = (e, r) => ({
|
|
64
|
+
label: "Favourite",
|
|
65
|
+
labelHidden: !0,
|
|
66
|
+
get: (a) => a,
|
|
67
|
+
format: (a) => /* @__PURE__ */ t(fe, { transaction: a, isFavorite: e.has(a.id), onChange: r }),
|
|
68
|
+
headerClassName: "w-1",
|
|
69
|
+
className: "w-8"
|
|
70
|
+
}), S = {
|
|
71
|
+
request: {
|
|
72
|
+
label: "Request",
|
|
73
|
+
get: (e) => e,
|
|
74
|
+
format: (e) => /* @__PURE__ */ t(pe, { transaction: e }),
|
|
75
|
+
className: "truncate max-w-0 w-full"
|
|
76
|
+
},
|
|
77
|
+
response: {
|
|
78
|
+
label: "Response",
|
|
79
|
+
get: (e) => e,
|
|
80
|
+
format: (e) => /* @__PURE__ */ t("span", { className: "font-normal", children: /* @__PURE__ */ t(ne, { statusCode: e.statusCode }) })
|
|
81
|
+
},
|
|
82
|
+
duration: {
|
|
83
|
+
label: "Duration",
|
|
84
|
+
get: (e) => e,
|
|
85
|
+
format: (e) => /* @__PURE__ */ t(he, { transaction: e })
|
|
86
|
+
},
|
|
87
|
+
date: {
|
|
88
|
+
label: "Date",
|
|
89
|
+
get: (e) => e,
|
|
90
|
+
format: (e) => /* @__PURE__ */ t("div", { title: new Date(e.timestamp).toLocaleString(), children: de(e.timestamp) })
|
|
91
|
+
}
|
|
92
|
+
}, ge = (e, r, a) => r ? `${r}, pagination ${e} the list` : a ? `pagination ${e} the list` : `Pagination, ${e} the list`, be = /* @__PURE__ */ new Set();
|
|
93
|
+
function Ae({
|
|
94
|
+
className: e,
|
|
95
|
+
onRowClick: r,
|
|
96
|
+
onTransactionSelect: a,
|
|
97
|
+
selectedId: i,
|
|
98
|
+
isDrawerOpen: D = !1,
|
|
99
|
+
filtersOpen: p,
|
|
100
|
+
onFiltersOpenChange: T,
|
|
101
|
+
itemsPerPage: h = 20,
|
|
102
|
+
transactions: n,
|
|
103
|
+
variant: I = "page",
|
|
104
|
+
filters: x,
|
|
105
|
+
onFiltersChange: c,
|
|
106
|
+
onResetFilters: m,
|
|
107
|
+
facets: R,
|
|
108
|
+
search: g = "",
|
|
109
|
+
onSearchChange: d,
|
|
110
|
+
page: k = 1,
|
|
111
|
+
total: q,
|
|
112
|
+
pageCount: $,
|
|
113
|
+
onPageChange: O,
|
|
114
|
+
isLoading: P = !1,
|
|
115
|
+
favorites: B = be,
|
|
116
|
+
onFavoriteChange: u,
|
|
117
|
+
...l
|
|
118
|
+
}) {
|
|
119
|
+
const f = I === "embedded", C = !f && !!d, F = !f && !D && !!c, [H, M] = w(null), A = i === void 0 ? H : i, L = n.find((o) => o.id === A), [j, E] = w(!1), K = p ?? j, b = (o) => {
|
|
120
|
+
p === void 0 && E(o), T?.(o);
|
|
121
|
+
}, y = q ?? n.length, V = $ ?? Math.max(1, Math.ceil(y / h)), z = ae(x, g), U = () => P ? /* @__PURE__ */ t("p", { className: "px-4 py-12 text-center text-sm text-gray-500", role: "status", children: "Loading transactions…" }) : n.length === 0 ? z ? /* @__PURE__ */ s("div", { className: "px-4 py-12 text-center", children: [
|
|
122
|
+
/* @__PURE__ */ t("p", { className: "text-sm text-gray-500", children: "No transactions match these filters." }),
|
|
123
|
+
m && /* @__PURE__ */ t(
|
|
124
|
+
"button",
|
|
125
|
+
{
|
|
126
|
+
type: "button",
|
|
127
|
+
onClick: m,
|
|
128
|
+
className: "mt-2 text-sm text-primary-600 hover:text-primary-500 cursor-pointer",
|
|
129
|
+
children: "Reset filters"
|
|
130
|
+
}
|
|
131
|
+
)
|
|
132
|
+
] }) : /* @__PURE__ */ t("p", { className: "px-4 py-12 text-center text-sm text-gray-500", children: "No transactions yet." }) : /* @__PURE__ */ t(
|
|
133
|
+
le,
|
|
134
|
+
{
|
|
135
|
+
types: u ? { flags: xe(B, u), ...S } : S,
|
|
136
|
+
columns: u ? ["flags", ...v] : v,
|
|
137
|
+
rows: n,
|
|
138
|
+
onRowClick: (o) => {
|
|
139
|
+
M(o.id), a?.(o), r?.(o.id);
|
|
140
|
+
},
|
|
141
|
+
selected: L,
|
|
142
|
+
rowKey: "id"
|
|
143
|
+
}
|
|
144
|
+
), N = (o) => /* @__PURE__ */ t(
|
|
145
|
+
ie,
|
|
146
|
+
{
|
|
147
|
+
current: k,
|
|
148
|
+
pages: V,
|
|
149
|
+
perPage: h,
|
|
150
|
+
total: y,
|
|
151
|
+
setPage: O,
|
|
152
|
+
label: ge(o, l["aria-label"], l["aria-labelledby"]),
|
|
153
|
+
labelledBy: l["aria-label"] ? void 0 : l["aria-labelledby"]
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
return /* @__PURE__ */ s("div", { className: te("space-y-6", e), ...l, children: [
|
|
157
|
+
!f && /* @__PURE__ */ t(W, { children: /* @__PURE__ */ s("div", { className: "flex items-start justify-between gap-6", children: [
|
|
158
|
+
/* @__PURE__ */ s("div", { className: "flex-1", children: [
|
|
159
|
+
/* @__PURE__ */ t(X, { children: "Transactions" }),
|
|
160
|
+
/* @__PURE__ */ t(Q, { className: "text-gray-500 mt-1", children: "View and manage transaction history across all API endpoints." })
|
|
161
|
+
] }),
|
|
162
|
+
C && d && /* @__PURE__ */ t("div", { className: "flex-1 max-w-md", children: /* @__PURE__ */ t(
|
|
163
|
+
se,
|
|
164
|
+
{
|
|
165
|
+
label: "",
|
|
166
|
+
placeHolder: "Search by endpoint, method, status...",
|
|
167
|
+
setSearch: d,
|
|
168
|
+
search: g
|
|
169
|
+
}
|
|
170
|
+
) })
|
|
171
|
+
] }) }),
|
|
172
|
+
/* @__PURE__ */ s("div", { className: "flex gap-6", children: [
|
|
173
|
+
F && c && /* @__PURE__ */ t(Y, { children: K ? /* @__PURE__ */ s("div", { className: "w-64 flex-shrink-0", children: [
|
|
174
|
+
/* @__PURE__ */ t("div", { className: "text-right mb-4", children: /* @__PURE__ */ s(
|
|
175
|
+
"button",
|
|
176
|
+
{
|
|
177
|
+
onClick: () => b(!1),
|
|
178
|
+
className: "text-gray-500 mx-1 font-normal text-xs hover:text-gray-600 transition-colors cursor-pointer",
|
|
179
|
+
"aria-label": "Hide filters sidebar",
|
|
180
|
+
type: "button",
|
|
181
|
+
children: [
|
|
182
|
+
/* @__PURE__ */ t(_, { className: "h-3 w-3 inline-block mr-1" }),
|
|
183
|
+
"hide"
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
) }),
|
|
187
|
+
/* @__PURE__ */ t(
|
|
188
|
+
oe,
|
|
189
|
+
{
|
|
190
|
+
filters: x ?? {},
|
|
191
|
+
onFiltersChange: c,
|
|
192
|
+
onResetFilters: m ?? (() => {
|
|
193
|
+
}),
|
|
194
|
+
facets: R
|
|
195
|
+
}
|
|
196
|
+
)
|
|
197
|
+
] }) : /* @__PURE__ */ t("div", { className: "flex-shrink-0", children: /* @__PURE__ */ s(
|
|
198
|
+
"button",
|
|
199
|
+
{
|
|
200
|
+
onClick: () => b(!0),
|
|
201
|
+
className: "text-gray-500 mx-1 font-normal text-xs hover:text-gray-600 transition-colors flex flex-col items-center cursor-pointer",
|
|
202
|
+
"aria-label": "Show filters sidebar",
|
|
203
|
+
type: "button",
|
|
204
|
+
children: [
|
|
205
|
+
/* @__PURE__ */ t(G, { className: "h-3 w-3" }),
|
|
206
|
+
/* @__PURE__ */ t("div", { className: "w-4", children: /* @__PURE__ */ t("div", { className: "rotate-90 whitespace-nowrap", children: "filters" }) })
|
|
207
|
+
]
|
|
208
|
+
}
|
|
209
|
+
) }) }),
|
|
210
|
+
/* @__PURE__ */ t("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ s("div", { className: "rounded-none border-0 overflow-hidden bg-white", children: [
|
|
211
|
+
/* @__PURE__ */ t("div", { className: "border-b border-gray-200", children: N("above") }),
|
|
212
|
+
/* @__PURE__ */ t("div", { className: "overflow-x-auto", children: U() }),
|
|
213
|
+
/* @__PURE__ */ t("div", { className: "border-t border-gray-200", children: N("below") })
|
|
214
|
+
] }) })
|
|
215
|
+
] })
|
|
216
|
+
] });
|
|
217
|
+
}
|
|
218
|
+
export {
|
|
219
|
+
Ae as TransactionsListPage
|
|
220
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { TransactionsListPage } from "./TransactionsListPage.js";
|
|
2
|
+
export type { TransactionsListPageProps } from "./TransactionsListPage.js";
|
|
3
|
+
export { useClientSideTransactions } from "./useClientSideTransactions.js";
|
|
4
|
+
export type { ClientSideTransactions, ClientSideTransactionsOptions } from "./useClientSideTransactions.js";
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { FilterChangeHandler, Filters } from "../../../Models/Filters/index.js";
|
|
2
|
+
import { type TransactionFacets } from "../../../Models/Transactions/facets.js";
|
|
3
|
+
import type { Transaction } from "../../../Models/Transactions/types.js";
|
|
4
|
+
export interface ClientSideTransactionsOptions {
|
|
5
|
+
itemsPerPage?: number;
|
|
6
|
+
initialFilters?: Filters;
|
|
7
|
+
initialSearch?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ClientSideTransactions {
|
|
10
|
+
transactions: Transaction[];
|
|
11
|
+
facets: TransactionFacets;
|
|
12
|
+
filters: Filters;
|
|
13
|
+
onFiltersChange: FilterChangeHandler;
|
|
14
|
+
onResetFilters: () => void;
|
|
15
|
+
search: string;
|
|
16
|
+
onSearchChange: (search: string) => void;
|
|
17
|
+
page: number;
|
|
18
|
+
pageCount: number;
|
|
19
|
+
total: number;
|
|
20
|
+
itemsPerPage: number;
|
|
21
|
+
onPageChange: (page: number) => void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Filters, searches and paginates a list of transactions in memory, and returns the whole prop
|
|
25
|
+
* bundle `TransactionsListPage` expects.
|
|
26
|
+
*
|
|
27
|
+
* **This is the fallback, not the recommended path.** A consumer that fetches transactions from a
|
|
28
|
+
* server filters, searches and paginates there, where the whole dataset is; doing it here narrows
|
|
29
|
+
* only the page already fetched, and the totals are the totals of that page. Reach for this when
|
|
30
|
+
* the whole list is already in memory and small: stories, demos, a fixed list in a drawer.
|
|
31
|
+
*
|
|
32
|
+
* Pass a stable `transactions` array. A fresh literal on every render defeats the memo and costs a
|
|
33
|
+
* full filter pass each time; hoist an empty default to a module-level constant.
|
|
34
|
+
*
|
|
35
|
+
* The requested page is clamped for display but remembered, so a list whose data shrinks and grows
|
|
36
|
+
* back underneath returns the reader to where they were.
|
|
37
|
+
*/
|
|
38
|
+
export declare function useClientSideTransactions(transactions: Transaction[], { itemsPerPage, initialFilters, initialSearch }?: ClientSideTransactionsOptions): ClientSideTransactions;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { deriveTransactionFacets as k } from "../../../Models/Transactions/facets.js";
|
|
2
|
+
import { filterTransactions as q } from "../../../Models/Transactions/filtering.js";
|
|
3
|
+
import { useState as i, useMemo as f, useCallback as h } from "react";
|
|
4
|
+
function j(t, { itemsPerPage: e = 20, initialFilters: p = {}, initialSearch: C = "" } = {}) {
|
|
5
|
+
const [o, l] = i(p), [s, g] = i(C), [u, n] = i(1), a = f(
|
|
6
|
+
() => q(t, { filters: o, search: s }),
|
|
7
|
+
[t, o, s]
|
|
8
|
+
), F = f(() => k(t), [t]), m = Math.max(1, Math.ceil(a.length / e)), M = Number.isFinite(u) ? u : 1, c = Math.max(1, Math.min(M, m)), S = h((r, T) => {
|
|
9
|
+
l((b) => ({ ...b, [r]: T })), n(1);
|
|
10
|
+
}, []), d = h(() => {
|
|
11
|
+
l({}), g(""), n(1);
|
|
12
|
+
}, []), x = h((r) => {
|
|
13
|
+
g(r), n(1);
|
|
14
|
+
}, []);
|
|
15
|
+
return {
|
|
16
|
+
transactions: a.slice((c - 1) * e, c * e),
|
|
17
|
+
facets: F,
|
|
18
|
+
filters: o,
|
|
19
|
+
onFiltersChange: S,
|
|
20
|
+
onResetFilters: d,
|
|
21
|
+
search: s,
|
|
22
|
+
onSearchChange: x,
|
|
23
|
+
page: c,
|
|
24
|
+
pageCount: m,
|
|
25
|
+
total: a.length,
|
|
26
|
+
itemsPerPage: e,
|
|
27
|
+
onPageChange: n
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
j as useClientSideTransactions
|
|
32
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AlertsPage as o } from "./Alerts/AlertsPage.js";
|
|
2
|
+
import { ExplorerPage as a } from "./Explorer/ExplorerPage.js";
|
|
3
|
+
import { HistorySection as p } from "./Overview/Sections/HistorySection.js";
|
|
4
|
+
import { OverviewPage as f } from "./Overview/OverviewPage.js";
|
|
5
|
+
import { SummarySection as s } from "./Overview/Sections/SummarySection.js";
|
|
6
|
+
import { SystemPage as n } from "./SystemPage/SystemPage.js";
|
|
7
|
+
import { TransactionsDetailPage as c } from "./Transactions/Detail/TransactionsDetailPage.js";
|
|
8
|
+
import { TransactionsListPage as l } from "./Transactions/List/TransactionsListPage.js";
|
|
9
|
+
export {
|
|
10
|
+
o as AlertsPage,
|
|
11
|
+
a as ExplorerPage,
|
|
12
|
+
p as HistorySection,
|
|
13
|
+
f as OverviewPage,
|
|
14
|
+
s as SummarySection,
|
|
15
|
+
n as SystemPage,
|
|
16
|
+
c as TransactionsDetailPage,
|
|
17
|
+
l as TransactionsListPage
|
|
18
|
+
};
|