@epilot/spark-ui 0.10.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 +201 -0
- package/NOTICE +2 -0
- package/README.md +32 -0
- package/dist/chunk-DY84GLCh.cjs +29 -0
- package/dist/components/accordion.cjs +57 -0
- package/dist/components/accordion.cjs.map +1 -0
- package/dist/components/accordion.d.cts +44 -0
- package/dist/components/accordion.d.ts +44 -0
- package/dist/components/accordion.js +51 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.cjs +137 -0
- package/dist/components/alert-dialog.cjs.map +1 -0
- package/dist/components/alert-dialog.d.cts +62 -0
- package/dist/components/alert-dialog.d.ts +62 -0
- package/dist/components/alert-dialog.js +123 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/attachment.cjs +119 -0
- package/dist/components/attachment.cjs.map +1 -0
- package/dist/components/attachment.d.cts +65 -0
- package/dist/components/attachment.d.ts +65 -0
- package/dist/components/attachment.js +108 -0
- package/dist/components/attachment.js.map +1 -0
- package/dist/components/avatar.cjs +56 -0
- package/dist/components/avatar.cjs.map +1 -0
- package/dist/components/avatar.d.cts +26 -0
- package/dist/components/avatar.d.ts +26 -0
- package/dist/components/avatar.js +52 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.cjs +25 -0
- package/dist/components/badge.cjs.map +1 -0
- package/dist/components/badge.d.cts +16 -0
- package/dist/components/badge.d.ts +16 -0
- package/dist/components/badge.js +22 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/bar-chart.cjs +584 -0
- package/dist/components/bar-chart.cjs.map +1 -0
- package/dist/components/bar-chart.d.cts +102 -0
- package/dist/components/bar-chart.d.ts +102 -0
- package/dist/components/bar-chart.js +583 -0
- package/dist/components/bar-chart.js.map +1 -0
- package/dist/components/battery-progress-row.cjs +133 -0
- package/dist/components/battery-progress-row.cjs.map +1 -0
- package/dist/components/battery-progress-row.d.cts +77 -0
- package/dist/components/battery-progress-row.d.ts +77 -0
- package/dist/components/battery-progress-row.js +123 -0
- package/dist/components/battery-progress-row.js.map +1 -0
- package/dist/components/breadcrumbs.cjs +64 -0
- package/dist/components/breadcrumbs.cjs.map +1 -0
- package/dist/components/breadcrumbs.d.cts +42 -0
- package/dist/components/breadcrumbs.d.ts +42 -0
- package/dist/components/breadcrumbs.js +58 -0
- package/dist/components/breadcrumbs.js.map +1 -0
- package/dist/components/bubble.cjs +84 -0
- package/dist/components/bubble.cjs.map +1 -0
- package/dist/components/bubble.d.cts +39 -0
- package/dist/components/bubble.d.ts +39 -0
- package/dist/components/bubble.js +78 -0
- package/dist/components/bubble.js.map +1 -0
- package/dist/components/button-group.cjs +72 -0
- package/dist/components/button-group.cjs.map +1 -0
- package/dist/components/button-group.d.cts +29 -0
- package/dist/components/button-group.d.ts +29 -0
- package/dist/components/button-group.js +64 -0
- package/dist/components/button-group.js.map +1 -0
- package/dist/components/button.cjs +58 -0
- package/dist/components/button.cjs.map +1 -0
- package/dist/components/button.d.cts +29 -0
- package/dist/components/button.d.ts +29 -0
- package/dist/components/button.js +54 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.cjs +59 -0
- package/dist/components/calendar.cjs.map +1 -0
- package/dist/components/calendar.d.cts +20 -0
- package/dist/components/calendar.d.ts +20 -0
- package/dist/components/calendar.js +56 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/callout.cjs +95 -0
- package/dist/components/callout.cjs.map +1 -0
- package/dist/components/callout.d.cts +42 -0
- package/dist/components/callout.d.ts +42 -0
- package/dist/components/callout.js +88 -0
- package/dist/components/callout.js.map +1 -0
- package/dist/components/card.cjs +100 -0
- package/dist/components/card.cjs.map +1 -0
- package/dist/components/card.d.cts +34 -0
- package/dist/components/card.d.ts +34 -0
- package/dist/components/card.js +90 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/chart.cjs +110 -0
- package/dist/components/chart.cjs.map +1 -0
- package/dist/components/chart.d.cts +92 -0
- package/dist/components/chart.d.ts +92 -0
- package/dist/components/chart.js +104 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.cjs +44 -0
- package/dist/components/checkbox.cjs.map +1 -0
- package/dist/components/checkbox.d.cts +26 -0
- package/dist/components/checkbox.d.ts +26 -0
- package/dist/components/checkbox.js +41 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/circular-gauge.cjs +74 -0
- package/dist/components/circular-gauge.cjs.map +1 -0
- package/dist/components/circular-gauge.d.cts +37 -0
- package/dist/components/circular-gauge.d.ts +37 -0
- package/dist/components/circular-gauge.js +71 -0
- package/dist/components/circular-gauge.js.map +1 -0
- package/dist/components/day-of-week-picker.cjs +123 -0
- package/dist/components/day-of-week-picker.cjs.map +1 -0
- package/dist/components/day-of-week-picker.d.cts +39 -0
- package/dist/components/day-of-week-picker.d.ts +39 -0
- package/dist/components/day-of-week-picker.js +119 -0
- package/dist/components/day-of-week-picker.js.map +1 -0
- package/dist/components/device-card.cjs +118 -0
- package/dist/components/device-card.cjs.map +1 -0
- package/dist/components/device-card.d.cts +70 -0
- package/dist/components/device-card.d.ts +70 -0
- package/dist/components/device-card.js +104 -0
- package/dist/components/device-card.js.map +1 -0
- package/dist/components/dialog.cjs +115 -0
- package/dist/components/dialog.cjs.map +1 -0
- package/dist/components/dialog.d.cts +44 -0
- package/dist/components/dialog.d.ts +44 -0
- package/dist/components/dialog.js +103 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/donut-chart.cjs +70 -0
- package/dist/components/donut-chart.cjs.map +1 -0
- package/dist/components/donut-chart.d.cts +20 -0
- package/dist/components/donut-chart.d.ts +20 -0
- package/dist/components/donut-chart.js +69 -0
- package/dist/components/donut-chart.js.map +1 -0
- package/dist/components/drawer.cjs +95 -0
- package/dist/components/drawer.cjs.map +1 -0
- package/dist/components/drawer.d.cts +45 -0
- package/dist/components/drawer.d.ts +45 -0
- package/dist/components/drawer.js +83 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.cjs +165 -0
- package/dist/components/dropdown-menu.cjs.map +1 -0
- package/dist/components/dropdown-menu.d.cts +92 -0
- package/dist/components/dropdown-menu.d.ts +92 -0
- package/dist/components/dropdown-menu.js +148 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/empty-state.cjs +41 -0
- package/dist/components/empty-state.cjs.map +1 -0
- package/dist/components/empty-state.d.cts +26 -0
- package/dist/components/empty-state.d.ts +26 -0
- package/dist/components/empty-state.js +41 -0
- package/dist/components/empty-state.js.map +1 -0
- package/dist/components/energy-bar-chart.cjs +23 -0
- package/dist/components/energy-bar-chart.cjs.map +1 -0
- package/dist/components/energy-bar-chart.d.cts +43 -0
- package/dist/components/energy-bar-chart.d.ts +43 -0
- package/dist/components/energy-bar-chart.js +22 -0
- package/dist/components/energy-bar-chart.js.map +1 -0
- package/dist/components/energy-breakdown.cjs +80 -0
- package/dist/components/energy-breakdown.cjs.map +1 -0
- package/dist/components/energy-breakdown.d.cts +24 -0
- package/dist/components/energy-breakdown.d.ts +24 -0
- package/dist/components/energy-breakdown.js +79 -0
- package/dist/components/energy-breakdown.js.map +1 -0
- package/dist/components/energy-history-chart.cjs +63 -0
- package/dist/components/energy-history-chart.cjs.map +1 -0
- package/dist/components/energy-history-chart.d.cts +64 -0
- package/dist/components/energy-history-chart.d.ts +64 -0
- package/dist/components/energy-history-chart.js +62 -0
- package/dist/components/energy-history-chart.js.map +1 -0
- package/dist/components/feed-in-hero.cjs +55 -0
- package/dist/components/feed-in-hero.cjs.map +1 -0
- package/dist/components/feed-in-hero.d.cts +32 -0
- package/dist/components/feed-in-hero.d.ts +32 -0
- package/dist/components/feed-in-hero.js +51 -0
- package/dist/components/feed-in-hero.js.map +1 -0
- package/dist/components/field.cjs +257 -0
- package/dist/components/field.cjs.map +1 -0
- package/dist/components/field.d.cts +103 -0
- package/dist/components/field.d.ts +103 -0
- package/dist/components/field.js +243 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/icon.cjs +35 -0
- package/dist/components/icon.cjs.map +1 -0
- package/dist/components/icon.d.cts +26 -0
- package/dist/components/icon.d.ts +26 -0
- package/dist/components/icon.js +32 -0
- package/dist/components/icon.js.map +1 -0
- package/dist/components/info-block.cjs +75 -0
- package/dist/components/info-block.cjs.map +1 -0
- package/dist/components/info-block.d.cts +19 -0
- package/dist/components/info-block.d.ts +19 -0
- package/dist/components/info-block.js +65 -0
- package/dist/components/info-block.js.map +1 -0
- package/dist/components/input-group.cjs +165 -0
- package/dist/components/input-group.cjs.map +1 -0
- package/dist/components/input-group.d.cts +27 -0
- package/dist/components/input-group.d.ts +27 -0
- package/dist/components/input-group.js +159 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input-otp.cjs +112 -0
- package/dist/components/input-otp.cjs.map +1 -0
- package/dist/components/input-otp.d.cts +24 -0
- package/dist/components/input-otp.d.ts +24 -0
- package/dist/components/input-otp.js +111 -0
- package/dist/components/input-otp.js.map +1 -0
- package/dist/components/input.cjs +113 -0
- package/dist/components/input.cjs.map +1 -0
- package/dist/components/input.d.cts +14 -0
- package/dist/components/input.d.ts +14 -0
- package/dist/components/input.js +110 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.cjs +18 -0
- package/dist/components/label.cjs.map +1 -0
- package/dist/components/label.d.cts +10 -0
- package/dist/components/label.d.ts +10 -0
- package/dist/components/label.js +15 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/layout.cjs +14 -0
- package/dist/components/layout.cjs.map +1 -0
- package/dist/components/layout.d.cts +11 -0
- package/dist/components/layout.d.ts +12 -0
- package/dist/components/layout.js +14 -0
- package/dist/components/layout.js.map +1 -0
- package/dist/components/line-chart.cjs +538 -0
- package/dist/components/line-chart.cjs.map +1 -0
- package/dist/components/line-chart.d.cts +90 -0
- package/dist/components/line-chart.d.ts +90 -0
- package/dist/components/line-chart.js +536 -0
- package/dist/components/line-chart.js.map +1 -0
- package/dist/components/list.cjs +132 -0
- package/dist/components/list.cjs.map +1 -0
- package/dist/components/list.d.cts +71 -0
- package/dist/components/list.d.ts +71 -0
- package/dist/components/list.js +122 -0
- package/dist/components/list.js.map +1 -0
- package/dist/components/marker.cjs +52 -0
- package/dist/components/marker.cjs.map +1 -0
- package/dist/components/marker.d.cts +27 -0
- package/dist/components/marker.d.ts +27 -0
- package/dist/components/marker.js +46 -0
- package/dist/components/marker.js.map +1 -0
- package/dist/components/message-scroller.cjs +73 -0
- package/dist/components/message-scroller.cjs.map +1 -0
- package/dist/components/message-scroller.d.cts +38 -0
- package/dist/components/message-scroller.d.ts +38 -0
- package/dist/components/message-scroller.js +62 -0
- package/dist/components/message-scroller.js.map +1 -0
- package/dist/components/message.cjs +60 -0
- package/dist/components/message.cjs.map +1 -0
- package/dist/components/message.d.cts +35 -0
- package/dist/components/message.d.ts +35 -0
- package/dist/components/message.js +52 -0
- package/dist/components/message.js.map +1 -0
- package/dist/components/metering-row.cjs +42 -0
- package/dist/components/metering-row.cjs.map +1 -0
- package/dist/components/metering-row.d.cts +31 -0
- package/dist/components/metering-row.d.ts +31 -0
- package/dist/components/metering-row.js +38 -0
- package/dist/components/metering-row.js.map +1 -0
- package/dist/components/money-saved-block.cjs +86 -0
- package/dist/components/money-saved-block.cjs.map +1 -0
- package/dist/components/money-saved-block.d.cts +55 -0
- package/dist/components/money-saved-block.d.ts +55 -0
- package/dist/components/money-saved-block.js +79 -0
- package/dist/components/money-saved-block.js.map +1 -0
- package/dist/components/number-flow.cjs +44 -0
- package/dist/components/number-flow.cjs.map +1 -0
- package/dist/components/number-flow.d.cts +4 -0
- package/dist/components/number-flow.d.ts +4 -0
- package/dist/components/number-flow.js +42 -0
- package/dist/components/number-flow.js.map +1 -0
- package/dist/components/on-off-button.cjs +35 -0
- package/dist/components/on-off-button.cjs.map +1 -0
- package/dist/components/on-off-button.d.cts +18 -0
- package/dist/components/on-off-button.d.ts +18 -0
- package/dist/components/on-off-button.js +34 -0
- package/dist/components/on-off-button.js.map +1 -0
- package/dist/components/onboarding-layout.cjs +67 -0
- package/dist/components/onboarding-layout.cjs.map +1 -0
- package/dist/components/onboarding-layout.d.cts +44 -0
- package/dist/components/onboarding-layout.d.ts +44 -0
- package/dist/components/onboarding-layout.js +60 -0
- package/dist/components/onboarding-layout.js.map +1 -0
- package/dist/components/page-header.cjs +50 -0
- package/dist/components/page-header.cjs.map +1 -0
- package/dist/components/page-header.d.cts +25 -0
- package/dist/components/page-header.d.ts +25 -0
- package/dist/components/page-header.js +44 -0
- package/dist/components/page-header.js.map +1 -0
- package/dist/components/page-spinner.cjs +18 -0
- package/dist/components/page-spinner.cjs.map +1 -0
- package/dist/components/page-spinner.d.cts +12 -0
- package/dist/components/page-spinner.d.ts +12 -0
- package/dist/components/page-spinner.js +17 -0
- package/dist/components/page-spinner.js.map +1 -0
- package/dist/components/period-tabs.cjs +78 -0
- package/dist/components/period-tabs.cjs.map +1 -0
- package/dist/components/period-tabs.d.cts +50 -0
- package/dist/components/period-tabs.d.ts +50 -0
- package/dist/components/period-tabs.js +73 -0
- package/dist/components/period-tabs.js.map +1 -0
- package/dist/components/pill.cjs +62 -0
- package/dist/components/pill.cjs.map +1 -0
- package/dist/components/pill.d.cts +29 -0
- package/dist/components/pill.d.ts +29 -0
- package/dist/components/pill.js +59 -0
- package/dist/components/pill.js.map +1 -0
- package/dist/components/popover.cjs +62 -0
- package/dist/components/popover.cjs.map +1 -0
- package/dist/components/popover.d.cts +28 -0
- package/dist/components/popover.d.ts +28 -0
- package/dist/components/popover.js +56 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/power-history-chart.cjs +498 -0
- package/dist/components/power-history-chart.cjs.map +1 -0
- package/dist/components/power-history-chart.d.cts +71 -0
- package/dist/components/power-history-chart.d.ts +71 -0
- package/dist/components/power-history-chart.js +496 -0
- package/dist/components/power-history-chart.js.map +1 -0
- package/dist/components/power-history.cjs +114 -0
- package/dist/components/power-history.cjs.map +1 -0
- package/dist/components/power-history.d.cts +40 -0
- package/dist/components/power-history.d.ts +41 -0
- package/dist/components/power-history.js +114 -0
- package/dist/components/power-history.js.map +1 -0
- package/dist/components/power-network.cjs +562 -0
- package/dist/components/power-network.cjs.map +1 -0
- package/dist/components/power-network.d.cts +80 -0
- package/dist/components/power-network.d.ts +80 -0
- package/dist/components/power-network.js +556 -0
- package/dist/components/power-network.js.map +1 -0
- package/dist/components/progress.cjs +34 -0
- package/dist/components/progress.cjs.map +1 -0
- package/dist/components/progress.d.cts +17 -0
- package/dist/components/progress.d.ts +17 -0
- package/dist/components/progress.js +31 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-card-group.cjs +94 -0
- package/dist/components/radio-card-group.cjs.map +1 -0
- package/dist/components/radio-card-group.d.cts +21 -0
- package/dist/components/radio-card-group.d.ts +21 -0
- package/dist/components/radio-card-group.js +90 -0
- package/dist/components/radio-card-group.js.map +1 -0
- package/dist/components/radio.cjs +41 -0
- package/dist/components/radio.cjs.map +1 -0
- package/dist/components/radio.d.cts +32 -0
- package/dist/components/radio.d.ts +32 -0
- package/dist/components/radio.js +37 -0
- package/dist/components/radio.js.map +1 -0
- package/dist/components/reparent.cjs +55 -0
- package/dist/components/reparent.cjs.map +1 -0
- package/dist/components/reparent.d.cts +28 -0
- package/dist/components/reparent.d.ts +28 -0
- package/dist/components/reparent.js +49 -0
- package/dist/components/reparent.js.map +1 -0
- package/dist/components/sankey-chart.cjs +187 -0
- package/dist/components/sankey-chart.cjs.map +1 -0
- package/dist/components/sankey-chart.d.cts +66 -0
- package/dist/components/sankey-chart.d.ts +66 -0
- package/dist/components/sankey-chart.js +185 -0
- package/dist/components/sankey-chart.js.map +1 -0
- package/dist/components/schedule-editor.cjs +82 -0
- package/dist/components/schedule-editor.cjs.map +1 -0
- package/dist/components/schedule-editor.d.cts +25 -0
- package/dist/components/schedule-editor.d.ts +25 -0
- package/dist/components/schedule-editor.js +72 -0
- package/dist/components/schedule-editor.js.map +1 -0
- package/dist/components/schedule-list.cjs +110 -0
- package/dist/components/schedule-list.cjs.map +1 -0
- package/dist/components/schedule-list.d.cts +29 -0
- package/dist/components/schedule-list.d.ts +29 -0
- package/dist/components/schedule-list.js +99 -0
- package/dist/components/schedule-list.js.map +1 -0
- package/dist/components/scroll-area.cjs +53 -0
- package/dist/components/scroll-area.cjs.map +1 -0
- package/dist/components/scroll-area.d.cts +24 -0
- package/dist/components/scroll-area.d.ts +24 -0
- package/dist/components/scroll-area.js +44 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/segmented-control.cjs +44 -0
- package/dist/components/segmented-control.cjs.map +1 -0
- package/dist/components/segmented-control.d.cts +32 -0
- package/dist/components/segmented-control.d.ts +32 -0
- package/dist/components/segmented-control.js +40 -0
- package/dist/components/segmented-control.js.map +1 -0
- package/dist/components/select.cjs +136 -0
- package/dist/components/select.cjs.map +1 -0
- package/dist/components/select.d.cts +62 -0
- package/dist/components/select.d.ts +62 -0
- package/dist/components/select.js +124 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.cjs +38 -0
- package/dist/components/separator.cjs.map +1 -0
- package/dist/components/separator.d.cts +13 -0
- package/dist/components/separator.d.ts +13 -0
- package/dist/components/separator.js +35 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/series-legend.cjs +38 -0
- package/dist/components/series-legend.cjs.map +1 -0
- package/dist/components/series-legend.d.cts +29 -0
- package/dist/components/series-legend.d.ts +29 -0
- package/dist/components/series-legend.js +37 -0
- package/dist/components/series-legend.js.map +1 -0
- package/dist/components/sheet.cjs +102 -0
- package/dist/components/sheet.cjs.map +1 -0
- package/dist/components/sheet.d.cts +45 -0
- package/dist/components/sheet.d.ts +45 -0
- package/dist/components/sheet.js +90 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/skeleton.cjs +23 -0
- package/dist/components/skeleton.cjs.map +1 -0
- package/dist/components/skeleton.d.cts +23 -0
- package/dist/components/skeleton.d.ts +23 -0
- package/dist/components/skeleton.js +21 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.cjs +263 -0
- package/dist/components/slider.cjs.map +1 -0
- package/dist/components/slider.d.cts +136 -0
- package/dist/components/slider.d.ts +136 -0
- package/dist/components/slider.js +253 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/smart-toggle-button.cjs +27 -0
- package/dist/components/smart-toggle-button.cjs.map +1 -0
- package/dist/components/smart-toggle-button.d.cts +16 -0
- package/dist/components/smart-toggle-button.d.ts +16 -0
- package/dist/components/smart-toggle-button.js +26 -0
- package/dist/components/smart-toggle-button.js.map +1 -0
- package/dist/components/solar-forecast-chart.cjs +109 -0
- package/dist/components/solar-forecast-chart.cjs.map +1 -0
- package/dist/components/solar-forecast-chart.d.cts +77 -0
- package/dist/components/solar-forecast-chart.d.ts +77 -0
- package/dist/components/solar-forecast-chart.js +104 -0
- package/dist/components/solar-forecast-chart.js.map +1 -0
- package/dist/components/sortable-list.cjs +68 -0
- package/dist/components/sortable-list.cjs.map +1 -0
- package/dist/components/sortable-list.d.cts +45 -0
- package/dist/components/sortable-list.d.ts +45 -0
- package/dist/components/sortable-list.js +67 -0
- package/dist/components/sortable-list.js.map +1 -0
- package/dist/components/spinner.cjs +42 -0
- package/dist/components/spinner.cjs.map +1 -0
- package/dist/components/spinner.d.cts +15 -0
- package/dist/components/spinner.d.ts +15 -0
- package/dist/components/spinner.js +39 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/stat-card.cjs +57 -0
- package/dist/components/stat-card.cjs.map +1 -0
- package/dist/components/stat-card.d.cts +34 -0
- package/dist/components/stat-card.d.ts +34 -0
- package/dist/components/stat-card.js +50 -0
- package/dist/components/stat-card.js.map +1 -0
- package/dist/components/stepper.cjs +79 -0
- package/dist/components/stepper.cjs.map +1 -0
- package/dist/components/stepper.d.cts +33 -0
- package/dist/components/stepper.d.ts +33 -0
- package/dist/components/stepper.js +76 -0
- package/dist/components/stepper.js.map +1 -0
- package/dist/components/switch.cjs +26 -0
- package/dist/components/switch.cjs.map +1 -0
- package/dist/components/switch.d.cts +32 -0
- package/dist/components/switch.d.ts +32 -0
- package/dist/components/switch.js +25 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/tabs.cjs +178 -0
- package/dist/components/tabs.cjs.map +1 -0
- package/dist/components/tabs.d.cts +44 -0
- package/dist/components/tabs.d.ts +44 -0
- package/dist/components/tabs.js +170 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.cjs +128 -0
- package/dist/components/textarea.cjs.map +1 -0
- package/dist/components/textarea.d.cts +15 -0
- package/dist/components/textarea.d.ts +15 -0
- package/dist/components/textarea.js +125 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/theme.cjs +122 -0
- package/dist/components/theme.cjs.map +1 -0
- package/dist/components/theme.d.cts +36 -0
- package/dist/components/theme.d.ts +36 -0
- package/dist/components/theme.js +118 -0
- package/dist/components/theme.js.map +1 -0
- package/dist/components/thumbnail.cjs +54 -0
- package/dist/components/thumbnail.cjs.map +1 -0
- package/dist/components/thumbnail.d.cts +33 -0
- package/dist/components/thumbnail.d.ts +33 -0
- package/dist/components/thumbnail.js +51 -0
- package/dist/components/thumbnail.js.map +1 -0
- package/dist/components/time-picker.cjs +105 -0
- package/dist/components/time-picker.cjs.map +1 -0
- package/dist/components/time-picker.d.cts +43 -0
- package/dist/components/time-picker.d.ts +43 -0
- package/dist/components/time-picker.js +101 -0
- package/dist/components/time-picker.js.map +1 -0
- package/dist/components/toast.cjs +192 -0
- package/dist/components/toast.cjs.map +1 -0
- package/dist/components/toast.d.cts +59 -0
- package/dist/components/toast.d.ts +59 -0
- package/dist/components/toast.js +188 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/tooltip.cjs +85 -0
- package/dist/components/tooltip.cjs.map +1 -0
- package/dist/components/tooltip.d.cts +48 -0
- package/dist/components/tooltip.d.ts +48 -0
- package/dist/components/tooltip.js +77 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/typography.cjs +51 -0
- package/dist/components/typography.cjs.map +1 -0
- package/dist/components/typography.d.cts +30 -0
- package/dist/components/typography.d.ts +30 -0
- package/dist/components/typography.js +45 -0
- package/dist/components/typography.js.map +1 -0
- package/dist/generate-radix-colors-Bw-RYaV4.d.cts +33 -0
- package/dist/generate-radix-colors-Bw-RYaV4.d.ts +33 -0
- package/dist/hooks/use-chart-zoom.cjs +236 -0
- package/dist/hooks/use-chart-zoom.cjs.map +1 -0
- package/dist/hooks/use-chart-zoom.d.cts +53 -0
- package/dist/hooks/use-chart-zoom.d.ts +53 -0
- package/dist/hooks/use-chart-zoom.js +234 -0
- package/dist/hooks/use-chart-zoom.js.map +1 -0
- package/dist/hooks/use-container-width.cjs +21 -0
- package/dist/hooks/use-container-width.cjs.map +1 -0
- package/dist/hooks/use-container-width.d.cts +7 -0
- package/dist/hooks/use-container-width.d.ts +7 -0
- package/dist/hooks/use-container-width.js +20 -0
- package/dist/hooks/use-container-width.js.map +1 -0
- package/dist/hooks/use-reduced-motion.cjs +21 -0
- package/dist/hooks/use-reduced-motion.cjs.map +1 -0
- package/dist/hooks/use-reduced-motion.d.cts +7 -0
- package/dist/hooks/use-reduced-motion.d.ts +7 -0
- package/dist/hooks/use-reduced-motion.js +20 -0
- package/dist/hooks/use-reduced-motion.js.map +1 -0
- package/dist/icons/index.cjs +7 -0
- package/dist/icons/index.d.cts +4 -0
- package/dist/icons/index.d.ts +4 -0
- package/dist/icons/index.js +3 -0
- package/dist/icons/material-symbol.cjs +104 -0
- package/dist/icons/material-symbol.cjs.map +1 -0
- package/dist/icons/material-symbol.d.cts +21 -0
- package/dist/icons/material-symbol.d.ts +21 -0
- package/dist/icons/material-symbol.js +100 -0
- package/dist/icons/material-symbol.js.map +1 -0
- package/dist/lib/accent-colors.cjs +14 -0
- package/dist/lib/accent-colors.cjs.map +1 -0
- package/dist/lib/accent-colors.d.cts +8 -0
- package/dist/lib/accent-colors.d.ts +8 -0
- package/dist/lib/accent-colors.js +13 -0
- package/dist/lib/accent-colors.js.map +1 -0
- package/dist/lib/accent-theme.cjs +130 -0
- package/dist/lib/accent-theme.cjs.map +1 -0
- package/dist/lib/accent-theme.d.cts +35 -0
- package/dist/lib/accent-theme.d.ts +35 -0
- package/dist/lib/accent-theme.js +122 -0
- package/dist/lib/accent-theme.js.map +1 -0
- package/dist/lib/generate-radix-colors.cjs +364 -0
- package/dist/lib/generate-radix-colors.cjs.map +1 -0
- package/dist/lib/generate-radix-colors.d.cts +4 -0
- package/dist/lib/generate-radix-colors.d.ts +4 -0
- package/dist/lib/generate-radix-colors.js +357 -0
- package/dist/lib/generate-radix-colors.js.map +1 -0
- package/dist/lib/input-box-variants.cjs +30 -0
- package/dist/lib/input-box-variants.cjs.map +1 -0
- package/dist/lib/input-box-variants.d.cts +10 -0
- package/dist/lib/input-box-variants.d.ts +10 -0
- package/dist/lib/input-box-variants.js +28 -0
- package/dist/lib/input-box-variants.js.map +1 -0
- package/dist/lib/theme-types.cjs +1 -0
- package/dist/lib/theme-types.d.cts +4 -0
- package/dist/lib/theme-types.d.ts +4 -0
- package/dist/lib/theme-types.js +2 -0
- package/dist/lib/tones.cjs +14 -0
- package/dist/lib/tones.cjs.map +1 -0
- package/dist/lib/tones.d.cts +8 -0
- package/dist/lib/tones.d.ts +8 -0
- package/dist/lib/tones.js +13 -0
- package/dist/lib/tones.js.map +1 -0
- package/dist/number-flow-Bch81ixZ.d.cts +14 -0
- package/dist/number-flow-Bch81ixZ.d.ts +14 -0
- package/dist/styles/index.css +447 -0
- package/dist/styles/internal.css +5 -0
- package/dist/styles/material-symbol.css +22 -0
- package/dist/styles/spark-default.css +980 -0
- package/dist/styles/theme.css +623 -0
- package/dist/styles/utilities.css +557 -0
- package/dist/theme-types-8wjgiNA_.d.cts +29 -0
- package/dist/theme-types-8wjgiNA_.d.ts +29 -0
- package/dist/utils/build-sankey-nodes.cjs +72 -0
- package/dist/utils/build-sankey-nodes.cjs.map +1 -0
- package/dist/utils/build-sankey-nodes.d.cts +27 -0
- package/dist/utils/build-sankey-nodes.d.ts +27 -0
- package/dist/utils/build-sankey-nodes.js +71 -0
- package/dist/utils/build-sankey-nodes.js.map +1 -0
- package/dist/utils/chars.cjs +18 -0
- package/dist/utils/chars.cjs.map +1 -0
- package/dist/utils/chars.d.cts +10 -0
- package/dist/utils/chars.d.ts +10 -0
- package/dist/utils/chars.js +14 -0
- package/dist/utils/chars.js.map +1 -0
- package/dist/utils/chart-scale.cjs +54 -0
- package/dist/utils/chart-scale.cjs.map +1 -0
- package/dist/utils/chart-scale.d.cts +29 -0
- package/dist/utils/chart-scale.d.ts +29 -0
- package/dist/utils/chart-scale.js +51 -0
- package/dist/utils/chart-scale.js.map +1 -0
- package/dist/utils/chart-time-ticks.cjs +35 -0
- package/dist/utils/chart-time-ticks.cjs.map +1 -0
- package/dist/utils/chart-time-ticks.d.cts +7 -0
- package/dist/utils/chart-time-ticks.d.ts +7 -0
- package/dist/utils/chart-time-ticks.js +34 -0
- package/dist/utils/chart-time-ticks.js.map +1 -0
- package/dist/utils/chart-zoom.cjs +84 -0
- package/dist/utils/chart-zoom.cjs.map +1 -0
- package/dist/utils/chart-zoom.d.cts +14 -0
- package/dist/utils/chart-zoom.d.ts +14 -0
- package/dist/utils/chart-zoom.js +77 -0
- package/dist/utils/chart-zoom.js.map +1 -0
- package/dist/utils/cn.cjs +9 -0
- package/dist/utils/cn.d.cts +4 -0
- package/dist/utils/cn.d.ts +4 -0
- package/dist/utils/cn.js +3 -0
- package/dist/utils/date-mask.cjs +45 -0
- package/dist/utils/date-mask.cjs.map +1 -0
- package/dist/utils/date-mask.d.cts +17 -0
- package/dist/utils/date-mask.d.ts +17 -0
- package/dist/utils/date-mask.js +41 -0
- package/dist/utils/date-mask.js.map +1 -0
- package/dist/utils/format.cjs +57 -0
- package/dist/utils/format.cjs.map +1 -0
- package/dist/utils/format.d.cts +23 -0
- package/dist/utils/format.d.ts +23 -0
- package/dist/utils/format.js +47 -0
- package/dist/utils/format.js.map +1 -0
- package/package.json +109 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { SankeyChartLink } from "../components/sankey-chart.cjs";
|
|
4
|
+
|
|
5
|
+
//#region src/utils/build-sankey-nodes.d.ts
|
|
6
|
+
type SankeyNodesArgs = {
|
|
7
|
+
solarPower: number;
|
|
8
|
+
/**
|
|
9
|
+
* Signed storage power: positive = discharging into the home, negative =
|
|
10
|
+
* charging from solar/grid. Charging power is routed into the `battery`
|
|
11
|
+
* node so it isn't mistakenly attributed to home consumption.
|
|
12
|
+
*/
|
|
13
|
+
batteryPower: number;
|
|
14
|
+
gridPower: number;
|
|
15
|
+
floorShares?: Record<string, number>;
|
|
16
|
+
deviceSharesByFloor?: Record<string, Record<string, number>>;
|
|
17
|
+
};
|
|
18
|
+
declare function buildSankeyNodes({
|
|
19
|
+
solarPower,
|
|
20
|
+
batteryPower,
|
|
21
|
+
gridPower,
|
|
22
|
+
floorShares,
|
|
23
|
+
deviceSharesByFloor
|
|
24
|
+
}: SankeyNodesArgs): SankeyChartLink[];
|
|
25
|
+
//#endregion
|
|
26
|
+
export { buildSankeyNodes };
|
|
27
|
+
//# sourceMappingURL=build-sankey-nodes.d.cts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { SankeyChartLink } from "../components/sankey-chart.js";
|
|
4
|
+
|
|
5
|
+
//#region src/utils/build-sankey-nodes.d.ts
|
|
6
|
+
type SankeyNodesArgs = {
|
|
7
|
+
solarPower: number;
|
|
8
|
+
/**
|
|
9
|
+
* Signed storage power: positive = discharging into the home, negative =
|
|
10
|
+
* charging from solar/grid. Charging power is routed into the `battery`
|
|
11
|
+
* node so it isn't mistakenly attributed to home consumption.
|
|
12
|
+
*/
|
|
13
|
+
batteryPower: number;
|
|
14
|
+
gridPower: number;
|
|
15
|
+
floorShares?: Record<string, number>;
|
|
16
|
+
deviceSharesByFloor?: Record<string, Record<string, number>>;
|
|
17
|
+
};
|
|
18
|
+
declare function buildSankeyNodes({
|
|
19
|
+
solarPower,
|
|
20
|
+
batteryPower,
|
|
21
|
+
gridPower,
|
|
22
|
+
floorShares,
|
|
23
|
+
deviceSharesByFloor
|
|
24
|
+
}: SankeyNodesArgs): SankeyChartLink[];
|
|
25
|
+
//#endregion
|
|
26
|
+
export { buildSankeyNodes };
|
|
27
|
+
//# sourceMappingURL=build-sankey-nodes.d.ts.map
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region src/utils/build-sankey-nodes.ts
|
|
3
|
+
function buildSankeyNodes({ solarPower, batteryPower, gridPower, floorShares, deviceSharesByFloor }) {
|
|
4
|
+
const solar = Math.max(0, solarPower);
|
|
5
|
+
const gridImport = Math.max(0, gridPower);
|
|
6
|
+
const gridExport = Math.max(0, -gridPower);
|
|
7
|
+
const batteryDischarge = Math.max(0, batteryPower);
|
|
8
|
+
const batteryCharge = Math.max(0, -batteryPower);
|
|
9
|
+
const solarToBattery = Math.min(solar, batteryCharge);
|
|
10
|
+
const gridToBattery = Math.min(gridImport, batteryCharge - solarToBattery);
|
|
11
|
+
const solarToFeedIn = Math.min(solar - solarToBattery, gridExport);
|
|
12
|
+
const batteryToFeedIn = Math.min(batteryDischarge, gridExport - solarToFeedIn);
|
|
13
|
+
const links = [
|
|
14
|
+
{
|
|
15
|
+
source: "grid",
|
|
16
|
+
target: "home",
|
|
17
|
+
value: gridImport - gridToBattery
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
source: "solar",
|
|
21
|
+
target: "home",
|
|
22
|
+
value: solar - solarToBattery - solarToFeedIn
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
source: "battery",
|
|
26
|
+
target: "home",
|
|
27
|
+
value: batteryDischarge - batteryToFeedIn
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
source: "solar",
|
|
31
|
+
target: "battery",
|
|
32
|
+
value: solarToBattery
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
source: "grid",
|
|
36
|
+
target: "battery",
|
|
37
|
+
value: gridToBattery
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
source: "solar",
|
|
41
|
+
target: "gridFeedIn",
|
|
42
|
+
value: solarToFeedIn
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
source: "battery",
|
|
46
|
+
target: "gridFeedIn",
|
|
47
|
+
value: batteryToFeedIn
|
|
48
|
+
}
|
|
49
|
+
];
|
|
50
|
+
if (!floorShares) return links;
|
|
51
|
+
const homeWatts = solar - solarToBattery - solarToFeedIn + (gridImport - gridToBattery) + (batteryDischarge - batteryToFeedIn);
|
|
52
|
+
for (const [floorId, share] of Object.entries(floorShares)) {
|
|
53
|
+
const floorWatts = homeWatts * share;
|
|
54
|
+
links.push({
|
|
55
|
+
source: "home",
|
|
56
|
+
target: floorId,
|
|
57
|
+
value: floorWatts
|
|
58
|
+
});
|
|
59
|
+
const deviceShares = deviceSharesByFloor?.[floorId] ?? {};
|
|
60
|
+
for (const [deviceId, deviceShare] of Object.entries(deviceShares)) links.push({
|
|
61
|
+
source: floorId,
|
|
62
|
+
target: deviceId,
|
|
63
|
+
value: floorWatts * deviceShare
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return links;
|
|
67
|
+
}
|
|
68
|
+
//#endregion
|
|
69
|
+
export { buildSankeyNodes };
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=build-sankey-nodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-sankey-nodes.js","names":[],"sources":["../../src/utils/build-sankey-nodes.ts"],"sourcesContent":["import type { SankeyChartLink } from '../components/sankey-chart'\n\ntype SankeyNodesArgs = {\n solarPower: number\n /**\n * Signed storage power: positive = discharging into the home, negative =\n * charging from solar/grid. Charging power is routed into the `battery`\n * node so it isn't mistakenly attributed to home consumption.\n */\n batteryPower: number\n gridPower: number\n floorShares?: Record<string, number>\n deviceSharesByFloor?: Record<string, Record<string, number>>\n}\n\nfunction buildSankeyNodes({\n solarPower,\n batteryPower,\n gridPower,\n floorShares,\n deviceSharesByFloor,\n}: SankeyNodesArgs): SankeyChartLink[] {\n const solar = Math.max(0, solarPower)\n const gridImport = Math.max(0, gridPower)\n const gridExport = Math.max(0, -gridPower)\n const batteryDischarge = Math.max(0, batteryPower)\n const batteryCharge = Math.max(0, -batteryPower)\n\n // Charge the battery from solar surplus first, then from the grid. Routing\n // the charge flow into the `battery` node (a sink while charging) keeps it\n // out of the `home` node, which should reflect actual consumption only.\n const solarToBattery = Math.min(solar, batteryCharge)\n const gridToBattery = Math.min(gridImport, batteryCharge - solarToBattery)\n\n // Grid feed-in (export). Cover it from the solar surplus first, then fall\n // back to battery discharge. Like battery charging, this must not land in the\n // `home` node — it's power leaving the house, not consumption.\n const solarToFeedIn = Math.min(solar - solarToBattery, gridExport)\n const batteryToFeedIn = Math.min(batteryDischarge, gridExport - solarToFeedIn)\n\n const links: SankeyChartLink[] = [\n { source: 'grid', target: 'home', value: gridImport - gridToBattery },\n {\n source: 'solar',\n target: 'home',\n value: solar - solarToBattery - solarToFeedIn,\n },\n {\n source: 'battery',\n target: 'home',\n value: batteryDischarge - batteryToFeedIn,\n },\n { source: 'solar', target: 'battery', value: solarToBattery },\n { source: 'grid', target: 'battery', value: gridToBattery },\n { source: 'solar', target: 'gridFeedIn', value: solarToFeedIn },\n { source: 'battery', target: 'gridFeedIn', value: batteryToFeedIn },\n ]\n\n if (!floorShares) return links\n\n const homeWatts =\n solar -\n solarToBattery -\n solarToFeedIn +\n (gridImport - gridToBattery) +\n (batteryDischarge - batteryToFeedIn)\n\n for (const [floorId, share] of Object.entries(floorShares)) {\n const floorWatts = homeWatts * share\n links.push({ source: 'home', target: floorId, value: floorWatts })\n\n const deviceShares = deviceSharesByFloor?.[floorId] ?? {}\n for (const [deviceId, deviceShare] of Object.entries(deviceShares)) {\n links.push({\n source: floorId,\n target: deviceId,\n value: floorWatts * deviceShare,\n })\n }\n }\n\n return links\n}\n\nexport { buildSankeyNodes }\n"],"mappings":";;AAeA,SAAS,iBAAiB,EACxB,YACA,cACA,WACA,aACA,uBACqC;CACrC,MAAM,QAAQ,KAAK,IAAI,GAAG,UAAU;CACpC,MAAM,aAAa,KAAK,IAAI,GAAG,SAAS;CACxC,MAAM,aAAa,KAAK,IAAI,GAAG,CAAC,SAAS;CACzC,MAAM,mBAAmB,KAAK,IAAI,GAAG,YAAY;CACjD,MAAM,gBAAgB,KAAK,IAAI,GAAG,CAAC,YAAY;CAK/C,MAAM,iBAAiB,KAAK,IAAI,OAAO,aAAa;CACpD,MAAM,gBAAgB,KAAK,IAAI,YAAY,gBAAgB,cAAc;CAKzE,MAAM,gBAAgB,KAAK,IAAI,QAAQ,gBAAgB,UAAU;CACjE,MAAM,kBAAkB,KAAK,IAAI,kBAAkB,aAAa,aAAa;CAE7E,MAAM,QAA2B;EAC/B;GAAE,QAAQ;GAAQ,QAAQ;GAAQ,OAAO,aAAa;EAAc;EACpE;GACE,QAAQ;GACR,QAAQ;GACR,OAAO,QAAQ,iBAAiB;EAClC;EACA;GACE,QAAQ;GACR,QAAQ;GACR,OAAO,mBAAmB;EAC5B;EACA;GAAE,QAAQ;GAAS,QAAQ;GAAW,OAAO;EAAe;EAC5D;GAAE,QAAQ;GAAQ,QAAQ;GAAW,OAAO;EAAc;EAC1D;GAAE,QAAQ;GAAS,QAAQ;GAAc,OAAO;EAAc;EAC9D;GAAE,QAAQ;GAAW,QAAQ;GAAc,OAAO;EAAgB;CACpE;CAEA,IAAI,CAAC,aAAa,OAAO;CAEzB,MAAM,YACJ,QACA,iBACA,iBACC,aAAa,kBACb,mBAAmB;CAEtB,KAAK,MAAM,CAAC,SAAS,UAAU,OAAO,QAAQ,WAAW,GAAG;EAC1D,MAAM,aAAa,YAAY;EAC/B,MAAM,KAAK;GAAE,QAAQ;GAAQ,QAAQ;GAAS,OAAO;EAAW,CAAC;EAEjE,MAAM,eAAe,sBAAsB,YAAY,CAAC;EACxD,KAAK,MAAM,CAAC,UAAU,gBAAgB,OAAO,QAAQ,YAAY,GAC/D,MAAM,KAAK;GACT,QAAQ;GACR,QAAQ;GACR,OAAO,aAAa;EACtB,CAAC;CAEL;CAEA,OAAO;AACT"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
//#region src/utils/chars.ts
|
|
4
|
+
const THIN_SPACE = " ";
|
|
5
|
+
const NARROW_NBSP = " ";
|
|
6
|
+
const EM_DASH = "—";
|
|
7
|
+
const humanizeCamelCase = (str) => {
|
|
8
|
+
return str.replace(/([A-Z])/g, " $1").replace(/^./, function(str) {
|
|
9
|
+
return str.toUpperCase();
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
exports.EM_DASH = EM_DASH;
|
|
14
|
+
exports.NARROW_NBSP = NARROW_NBSP;
|
|
15
|
+
exports.THIN_SPACE = THIN_SPACE;
|
|
16
|
+
exports.humanizeCamelCase = humanizeCamelCase;
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=chars.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chars.cjs","names":[],"sources":["../../src/utils/chars.ts"],"sourcesContent":["export const THIN_SPACE = '\\u2009' as const\nexport const NARROW_NBSP = '\\u202F' as const\nexport const EM_DASH = '—' as const\n\nconst humanizeCamelCase = (str: string) => {\n return str.replace(/([A-Z])/g, ' $1').replace(/^./, function (str) {\n return str.toUpperCase()\n })\n}\n\nexport { humanizeCamelCase }\n"],"mappings":";;;AAAA,MAAa,aAAa;AAC1B,MAAa,cAAc;AAC3B,MAAa,UAAU;AAEvB,MAAM,qBAAqB,QAAgB;CACzC,OAAO,IAAI,QAAQ,YAAY,KAAK,EAAE,QAAQ,MAAM,SAAU,KAAK;EACjE,OAAO,IAAI,YAAY;CACzB,CAAC;AACH"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/chars.d.ts
|
|
4
|
+
declare const THIN_SPACE: "\u2009";
|
|
5
|
+
declare const NARROW_NBSP: "\u202F";
|
|
6
|
+
declare const EM_DASH: "\u2014";
|
|
7
|
+
declare const humanizeCamelCase: (str: string) => string;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { EM_DASH, NARROW_NBSP, THIN_SPACE, humanizeCamelCase };
|
|
10
|
+
//# sourceMappingURL=chars.d.cts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/chars.d.ts
|
|
4
|
+
declare const THIN_SPACE: "\u2009";
|
|
5
|
+
declare const NARROW_NBSP: "\u202F";
|
|
6
|
+
declare const EM_DASH: "\u2014";
|
|
7
|
+
declare const humanizeCamelCase: (str: string) => string;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { EM_DASH, NARROW_NBSP, THIN_SPACE, humanizeCamelCase };
|
|
10
|
+
//# sourceMappingURL=chars.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region src/utils/chars.ts
|
|
3
|
+
const THIN_SPACE = " ";
|
|
4
|
+
const NARROW_NBSP = " ";
|
|
5
|
+
const EM_DASH = "—";
|
|
6
|
+
const humanizeCamelCase = (str) => {
|
|
7
|
+
return str.replace(/([A-Z])/g, " $1").replace(/^./, function(str) {
|
|
8
|
+
return str.toUpperCase();
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { EM_DASH, NARROW_NBSP, THIN_SPACE, humanizeCamelCase };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=chars.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chars.js","names":[],"sources":["../../src/utils/chars.ts"],"sourcesContent":["export const THIN_SPACE = '\\u2009' as const\nexport const NARROW_NBSP = '\\u202F' as const\nexport const EM_DASH = '—' as const\n\nconst humanizeCamelCase = (str: string) => {\n return str.replace(/([A-Z])/g, ' $1').replace(/^./, function (str) {\n return str.toUpperCase()\n })\n}\n\nexport { humanizeCamelCase }\n"],"mappings":";;AAAA,MAAa,aAAa;AAC1B,MAAa,cAAc;AAC3B,MAAa,UAAU;AAEvB,MAAM,qBAAqB,QAAgB;CACzC,OAAO,IAAI,QAAQ,YAAY,KAAK,EAAE,QAAQ,MAAM,SAAU,KAAK;EACjE,OAAO,IAAI,YAAY;CACzB,CAAC;AACH"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const require_utils_format = require("./format.cjs");
|
|
4
|
+
//#region src/utils/chart-scale.ts
|
|
5
|
+
const NICE_STEPS = [
|
|
6
|
+
1,
|
|
7
|
+
2,
|
|
8
|
+
2.5,
|
|
9
|
+
5,
|
|
10
|
+
10
|
|
11
|
+
];
|
|
12
|
+
function niceStep(rough) {
|
|
13
|
+
const normalized = rough === 0 ? 1 : rough;
|
|
14
|
+
const magnitude = Math.pow(10, Math.floor(Math.log10(normalized)));
|
|
15
|
+
return (NICE_STEPS.find((value) => value * magnitude >= normalized) ?? 10) * magnitude;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Nice y-axis ticks and rounded bounds spanning `[min, max]`, always including
|
|
19
|
+
* zero (so signed stacks dip below the baseline). Shared by BarChart, LineChart
|
|
20
|
+
* and PowerHistoryChart so their y-axes are generated identically. `targetSteps`
|
|
21
|
+
* is the desired number of intervals (default 4).
|
|
22
|
+
*/
|
|
23
|
+
function buildYAxisScale(min, max, targetSteps = 4) {
|
|
24
|
+
const step = niceStep((max - min || 1) / targetSteps);
|
|
25
|
+
const lo = Math.floor(min / step) * step;
|
|
26
|
+
const hi = Math.ceil(max / step) * step;
|
|
27
|
+
const ticks = [];
|
|
28
|
+
for (let value = lo; value <= hi + step * .001; value += step) ticks.push(Number(value.toFixed(6)));
|
|
29
|
+
return {
|
|
30
|
+
ticks,
|
|
31
|
+
min: lo,
|
|
32
|
+
max: hi
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** Compact tick label: integers at/above 10, one decimal below. */
|
|
36
|
+
function formatYAxisTick(value) {
|
|
37
|
+
return Math.abs(value) >= 10 ? require_utils_format.integerFormat.format(value) : require_utils_format.oneDecimalFormat.format(value);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Auto-sized y-axis gutter (px) that fits the widest formatted tick label.
|
|
41
|
+
* Pure string-length arithmetic (no DOM measurement, SSR-safe): `6.2` is a
|
|
42
|
+
* conservative 10px-font digit advance width, `9` = 7px label offset + 2px
|
|
43
|
+
* left padding. Ticks formatting to <= 4 chars keep the original `minWidth`.
|
|
44
|
+
*/
|
|
45
|
+
function measureYAxisGutter(ticks, format, minWidth = 34) {
|
|
46
|
+
const maxChars = ticks.reduce((max, tick) => Math.max(max, format(tick).length), 0);
|
|
47
|
+
return Math.max(minWidth, maxChars * 6.2 + 9);
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
exports.buildYAxisScale = buildYAxisScale;
|
|
51
|
+
exports.formatYAxisTick = formatYAxisTick;
|
|
52
|
+
exports.measureYAxisGutter = measureYAxisGutter;
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=chart-scale.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-scale.cjs","names":["integerFormat","oneDecimalFormat"],"sources":["../../src/utils/chart-scale.ts"],"sourcesContent":["import { integerFormat, oneDecimalFormat } from './format'\n\nconst NICE_STEPS = [1, 2, 2.5, 5, 10]\n\n// Rounds a rough step up to the nearest \"nice\" value (1, 2, 2.5, 5, 10 × 10ⁿ).\nfunction niceStep(rough: number): number {\n const normalized = rough === 0 ? 1 : rough\n const magnitude = Math.pow(10, Math.floor(Math.log10(normalized)))\n return (\n (NICE_STEPS.find((value) => value * magnitude >= normalized) ?? 10) *\n magnitude\n )\n}\n\nexport interface YAxisScale {\n ticks: number[]\n /** Rounded lower bound (≤ `min`); use as the y-scale domain minimum. */\n min: number\n /** Rounded upper bound (≥ `max`); use as the y-scale domain maximum. */\n max: number\n}\n\n/**\n * Nice y-axis ticks and rounded bounds spanning `[min, max]`, always including\n * zero (so signed stacks dip below the baseline). Shared by BarChart, LineChart\n * and PowerHistoryChart so their y-axes are generated identically. `targetSteps`\n * is the desired number of intervals (default 4).\n */\nexport function buildYAxisScale(\n min: number,\n max: number,\n targetSteps = 4,\n): YAxisScale {\n const step = niceStep((max - min || 1) / targetSteps)\n const lo = Math.floor(min / step) * step\n const hi = Math.ceil(max / step) * step\n const ticks: number[] = []\n for (let value = lo; value <= hi + step * 0.001; value += step) {\n ticks.push(Number(value.toFixed(6)))\n }\n return { ticks, min: lo, max: hi }\n}\n\n/** Compact tick label: integers at/above 10, one decimal below. */\nexport function formatYAxisTick(value: number): string {\n return Math.abs(value) >= 10\n ? integerFormat.format(value)\n : oneDecimalFormat.format(value)\n}\n\n/**\n * Auto-sized y-axis gutter (px) that fits the widest formatted tick label.\n * Pure string-length arithmetic (no DOM measurement, SSR-safe): `6.2` is a\n * conservative 10px-font digit advance width, `9` = 7px label offset + 2px\n * left padding. Ticks formatting to <= 4 chars keep the original `minWidth`.\n */\nexport function measureYAxisGutter(\n ticks: number[],\n format: (value: number) => string,\n minWidth = 34,\n): number {\n const maxChars = ticks.reduce(\n (max, tick) => Math.max(max, format(tick).length),\n 0,\n )\n return Math.max(minWidth, maxChars * 6.2 + 9)\n}\n"],"mappings":";;;;AAEA,MAAM,aAAa;CAAC;CAAG;CAAG;CAAK;CAAG;AAAE;AAGpC,SAAS,SAAS,OAAuB;CACvC,MAAM,aAAa,UAAU,IAAI,IAAI;CACrC,MAAM,YAAY,KAAK,IAAI,IAAI,KAAK,MAAM,KAAK,MAAM,UAAU,CAAC,CAAC;CACjE,QACG,WAAW,MAAM,UAAU,QAAQ,aAAa,UAAU,KAAK,MAChE;AAEJ;;;;;;;AAgBA,SAAgB,gBACd,KACA,KACA,cAAc,GACF;CACZ,MAAM,OAAO,UAAU,MAAM,OAAO,KAAK,WAAW;CACpD,MAAM,KAAK,KAAK,MAAM,MAAM,IAAI,IAAI;CACpC,MAAM,KAAK,KAAK,KAAK,MAAM,IAAI,IAAI;CACnC,MAAM,QAAkB,CAAC;CACzB,KAAK,IAAI,QAAQ,IAAI,SAAS,KAAK,OAAO,MAAO,SAAS,MACxD,MAAM,KAAK,OAAO,MAAM,QAAQ,CAAC,CAAC,CAAC;CAErC,OAAO;EAAE;EAAO,KAAK;EAAI,KAAK;CAAG;AACnC;;AAGA,SAAgB,gBAAgB,OAAuB;CACrD,OAAO,KAAK,IAAI,KAAK,KAAK,KACtBA,qBAAAA,cAAc,OAAO,KAAK,IAC1BC,qBAAAA,iBAAiB,OAAO,KAAK;AACnC;;;;;;;AAQA,SAAgB,mBACd,OACA,QACA,WAAW,IACH;CACR,MAAM,WAAW,MAAM,QACpB,KAAK,SAAS,KAAK,IAAI,KAAK,OAAO,IAAI,EAAE,MAAM,GAChD,CACF;CACA,OAAO,KAAK,IAAI,UAAU,WAAW,MAAM,CAAC;AAC9C"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/chart-scale.d.ts
|
|
4
|
+
interface YAxisScale {
|
|
5
|
+
ticks: number[];
|
|
6
|
+
/** Rounded lower bound (≤ `min`); use as the y-scale domain minimum. */
|
|
7
|
+
min: number;
|
|
8
|
+
/** Rounded upper bound (≥ `max`); use as the y-scale domain maximum. */
|
|
9
|
+
max: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Nice y-axis ticks and rounded bounds spanning `[min, max]`, always including
|
|
13
|
+
* zero (so signed stacks dip below the baseline). Shared by BarChart, LineChart
|
|
14
|
+
* and PowerHistoryChart so their y-axes are generated identically. `targetSteps`
|
|
15
|
+
* is the desired number of intervals (default 4).
|
|
16
|
+
*/
|
|
17
|
+
declare function buildYAxisScale(min: number, max: number, targetSteps?: number): YAxisScale;
|
|
18
|
+
/** Compact tick label: integers at/above 10, one decimal below. */
|
|
19
|
+
declare function formatYAxisTick(value: number): string;
|
|
20
|
+
/**
|
|
21
|
+
* Auto-sized y-axis gutter (px) that fits the widest formatted tick label.
|
|
22
|
+
* Pure string-length arithmetic (no DOM measurement, SSR-safe): `6.2` is a
|
|
23
|
+
* conservative 10px-font digit advance width, `9` = 7px label offset + 2px
|
|
24
|
+
* left padding. Ticks formatting to <= 4 chars keep the original `minWidth`.
|
|
25
|
+
*/
|
|
26
|
+
declare function measureYAxisGutter(ticks: number[], format: (value: number) => string, minWidth?: number): number;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { YAxisScale, buildYAxisScale, formatYAxisTick, measureYAxisGutter };
|
|
29
|
+
//# sourceMappingURL=chart-scale.d.cts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/chart-scale.d.ts
|
|
4
|
+
interface YAxisScale {
|
|
5
|
+
ticks: number[];
|
|
6
|
+
/** Rounded lower bound (≤ `min`); use as the y-scale domain minimum. */
|
|
7
|
+
min: number;
|
|
8
|
+
/** Rounded upper bound (≥ `max`); use as the y-scale domain maximum. */
|
|
9
|
+
max: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Nice y-axis ticks and rounded bounds spanning `[min, max]`, always including
|
|
13
|
+
* zero (so signed stacks dip below the baseline). Shared by BarChart, LineChart
|
|
14
|
+
* and PowerHistoryChart so their y-axes are generated identically. `targetSteps`
|
|
15
|
+
* is the desired number of intervals (default 4).
|
|
16
|
+
*/
|
|
17
|
+
declare function buildYAxisScale(min: number, max: number, targetSteps?: number): YAxisScale;
|
|
18
|
+
/** Compact tick label: integers at/above 10, one decimal below. */
|
|
19
|
+
declare function formatYAxisTick(value: number): string;
|
|
20
|
+
/**
|
|
21
|
+
* Auto-sized y-axis gutter (px) that fits the widest formatted tick label.
|
|
22
|
+
* Pure string-length arithmetic (no DOM measurement, SSR-safe): `6.2` is a
|
|
23
|
+
* conservative 10px-font digit advance width, `9` = 7px label offset + 2px
|
|
24
|
+
* left padding. Ticks formatting to <= 4 chars keep the original `minWidth`.
|
|
25
|
+
*/
|
|
26
|
+
declare function measureYAxisGutter(ticks: number[], format: (value: number) => string, minWidth?: number): number;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { YAxisScale, buildYAxisScale, formatYAxisTick, measureYAxisGutter };
|
|
29
|
+
//# sourceMappingURL=chart-scale.d.ts.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { integerFormat, oneDecimalFormat } from "./format.js";
|
|
3
|
+
//#region src/utils/chart-scale.ts
|
|
4
|
+
const NICE_STEPS = [
|
|
5
|
+
1,
|
|
6
|
+
2,
|
|
7
|
+
2.5,
|
|
8
|
+
5,
|
|
9
|
+
10
|
|
10
|
+
];
|
|
11
|
+
function niceStep(rough) {
|
|
12
|
+
const normalized = rough === 0 ? 1 : rough;
|
|
13
|
+
const magnitude = Math.pow(10, Math.floor(Math.log10(normalized)));
|
|
14
|
+
return (NICE_STEPS.find((value) => value * magnitude >= normalized) ?? 10) * magnitude;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Nice y-axis ticks and rounded bounds spanning `[min, max]`, always including
|
|
18
|
+
* zero (so signed stacks dip below the baseline). Shared by BarChart, LineChart
|
|
19
|
+
* and PowerHistoryChart so their y-axes are generated identically. `targetSteps`
|
|
20
|
+
* is the desired number of intervals (default 4).
|
|
21
|
+
*/
|
|
22
|
+
function buildYAxisScale(min, max, targetSteps = 4) {
|
|
23
|
+
const step = niceStep((max - min || 1) / targetSteps);
|
|
24
|
+
const lo = Math.floor(min / step) * step;
|
|
25
|
+
const hi = Math.ceil(max / step) * step;
|
|
26
|
+
const ticks = [];
|
|
27
|
+
for (let value = lo; value <= hi + step * .001; value += step) ticks.push(Number(value.toFixed(6)));
|
|
28
|
+
return {
|
|
29
|
+
ticks,
|
|
30
|
+
min: lo,
|
|
31
|
+
max: hi
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** Compact tick label: integers at/above 10, one decimal below. */
|
|
35
|
+
function formatYAxisTick(value) {
|
|
36
|
+
return Math.abs(value) >= 10 ? integerFormat.format(value) : oneDecimalFormat.format(value);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Auto-sized y-axis gutter (px) that fits the widest formatted tick label.
|
|
40
|
+
* Pure string-length arithmetic (no DOM measurement, SSR-safe): `6.2` is a
|
|
41
|
+
* conservative 10px-font digit advance width, `9` = 7px label offset + 2px
|
|
42
|
+
* left padding. Ticks formatting to <= 4 chars keep the original `minWidth`.
|
|
43
|
+
*/
|
|
44
|
+
function measureYAxisGutter(ticks, format, minWidth = 34) {
|
|
45
|
+
const maxChars = ticks.reduce((max, tick) => Math.max(max, format(tick).length), 0);
|
|
46
|
+
return Math.max(minWidth, maxChars * 6.2 + 9);
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
export { buildYAxisScale, formatYAxisTick, measureYAxisGutter };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=chart-scale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-scale.js","names":[],"sources":["../../src/utils/chart-scale.ts"],"sourcesContent":["import { integerFormat, oneDecimalFormat } from './format'\n\nconst NICE_STEPS = [1, 2, 2.5, 5, 10]\n\n// Rounds a rough step up to the nearest \"nice\" value (1, 2, 2.5, 5, 10 × 10ⁿ).\nfunction niceStep(rough: number): number {\n const normalized = rough === 0 ? 1 : rough\n const magnitude = Math.pow(10, Math.floor(Math.log10(normalized)))\n return (\n (NICE_STEPS.find((value) => value * magnitude >= normalized) ?? 10) *\n magnitude\n )\n}\n\nexport interface YAxisScale {\n ticks: number[]\n /** Rounded lower bound (≤ `min`); use as the y-scale domain minimum. */\n min: number\n /** Rounded upper bound (≥ `max`); use as the y-scale domain maximum. */\n max: number\n}\n\n/**\n * Nice y-axis ticks and rounded bounds spanning `[min, max]`, always including\n * zero (so signed stacks dip below the baseline). Shared by BarChart, LineChart\n * and PowerHistoryChart so their y-axes are generated identically. `targetSteps`\n * is the desired number of intervals (default 4).\n */\nexport function buildYAxisScale(\n min: number,\n max: number,\n targetSteps = 4,\n): YAxisScale {\n const step = niceStep((max - min || 1) / targetSteps)\n const lo = Math.floor(min / step) * step\n const hi = Math.ceil(max / step) * step\n const ticks: number[] = []\n for (let value = lo; value <= hi + step * 0.001; value += step) {\n ticks.push(Number(value.toFixed(6)))\n }\n return { ticks, min: lo, max: hi }\n}\n\n/** Compact tick label: integers at/above 10, one decimal below. */\nexport function formatYAxisTick(value: number): string {\n return Math.abs(value) >= 10\n ? integerFormat.format(value)\n : oneDecimalFormat.format(value)\n}\n\n/**\n * Auto-sized y-axis gutter (px) that fits the widest formatted tick label.\n * Pure string-length arithmetic (no DOM measurement, SSR-safe): `6.2` is a\n * conservative 10px-font digit advance width, `9` = 7px label offset + 2px\n * left padding. Ticks formatting to <= 4 chars keep the original `minWidth`.\n */\nexport function measureYAxisGutter(\n ticks: number[],\n format: (value: number) => string,\n minWidth = 34,\n): number {\n const maxChars = ticks.reduce(\n (max, tick) => Math.max(max, format(tick).length),\n 0,\n )\n return Math.max(minWidth, maxChars * 6.2 + 9)\n}\n"],"mappings":";;;AAEA,MAAM,aAAa;CAAC;CAAG;CAAG;CAAK;CAAG;AAAE;AAGpC,SAAS,SAAS,OAAuB;CACvC,MAAM,aAAa,UAAU,IAAI,IAAI;CACrC,MAAM,YAAY,KAAK,IAAI,IAAI,KAAK,MAAM,KAAK,MAAM,UAAU,CAAC,CAAC;CACjE,QACG,WAAW,MAAM,UAAU,QAAQ,aAAa,UAAU,KAAK,MAChE;AAEJ;;;;;;;AAgBA,SAAgB,gBACd,KACA,KACA,cAAc,GACF;CACZ,MAAM,OAAO,UAAU,MAAM,OAAO,KAAK,WAAW;CACpD,MAAM,KAAK,KAAK,MAAM,MAAM,IAAI,IAAI;CACpC,MAAM,KAAK,KAAK,KAAK,MAAM,IAAI,IAAI;CACnC,MAAM,QAAkB,CAAC;CACzB,KAAK,IAAI,QAAQ,IAAI,SAAS,KAAK,OAAO,MAAO,SAAS,MACxD,MAAM,KAAK,OAAO,MAAM,QAAQ,CAAC,CAAC,CAAC;CAErC,OAAO;EAAE;EAAO,KAAK;EAAI,KAAK;CAAG;AACnC;;AAGA,SAAgB,gBAAgB,OAAuB;CACrD,OAAO,KAAK,IAAI,KAAK,KAAK,KACtB,cAAc,OAAO,KAAK,IAC1B,iBAAiB,OAAO,KAAK;AACnC;;;;;;;AAQA,SAAgB,mBACd,OACA,QACA,WAAW,IACH;CACR,MAAM,WAAW,MAAM,QACpB,KAAK,SAAS,KAAK,IAAI,KAAK,OAAO,IAAI,EAAE,MAAM,GAChD,CACF;CACA,OAAO,KAAK,IAAI,UAAU,WAAW,MAAM,CAAC;AAC9C"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
//#region src/utils/chart-time-ticks.ts
|
|
4
|
+
const MINUTE = 6e4;
|
|
5
|
+
const DAY = 1440 * MINUTE;
|
|
6
|
+
const TIME_TICK_INTERVALS = [
|
|
7
|
+
15 * MINUTE,
|
|
8
|
+
30 * MINUTE,
|
|
9
|
+
60 * MINUTE,
|
|
10
|
+
120 * MINUTE,
|
|
11
|
+
180 * MINUTE,
|
|
12
|
+
360 * MINUTE,
|
|
13
|
+
720 * MINUTE,
|
|
14
|
+
DAY,
|
|
15
|
+
2 * DAY,
|
|
16
|
+
7 * DAY
|
|
17
|
+
];
|
|
18
|
+
function resolveTickInterval(target) {
|
|
19
|
+
if (target > TIME_TICK_INTERVALS.at(-1)) return Math.ceil(target / DAY) * DAY;
|
|
20
|
+
let closest = TIME_TICK_INTERVALS[0];
|
|
21
|
+
for (const interval of TIME_TICK_INTERVALS) if (Math.abs(interval - target) < Math.abs(closest - target)) closest = interval;
|
|
22
|
+
return closest;
|
|
23
|
+
}
|
|
24
|
+
function buildTimeTicks(start, end, desiredCount) {
|
|
25
|
+
if (end <= start) return [];
|
|
26
|
+
const interval = resolveTickInterval((end - start) / Math.max(1, desiredCount - 1));
|
|
27
|
+
const first = Math.ceil(start / interval) * interval;
|
|
28
|
+
const ticks = [];
|
|
29
|
+
for (let tick = first; tick <= end; tick += interval) ticks.push(tick);
|
|
30
|
+
return ticks;
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
exports.buildTimeTicks = buildTimeTicks;
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=chart-time-ticks.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-time-ticks.cjs","names":[],"sources":["../../src/utils/chart-time-ticks.ts"],"sourcesContent":["const MINUTE = 60_000\nconst DAY = 24 * 60 * MINUTE\n\nconst TIME_TICK_INTERVALS = [\n 15 * MINUTE,\n 30 * MINUTE,\n 60 * MINUTE,\n 2 * 60 * MINUTE,\n 3 * 60 * MINUTE,\n 6 * 60 * MINUTE,\n 12 * 60 * MINUTE,\n DAY,\n 2 * DAY,\n 7 * DAY,\n] as const\n\nfunction resolveTickInterval(target: number): number {\n const last = TIME_TICK_INTERVALS.at(-1)!\n if (target > last) return Math.ceil(target / DAY) * DAY\n\n let closest = TIME_TICK_INTERVALS[0]\n for (const interval of TIME_TICK_INTERVALS) {\n if (Math.abs(interval - target) < Math.abs(closest - target)) {\n closest = interval\n }\n }\n return closest\n}\n\nexport function buildTimeTicks(\n start: number,\n end: number,\n desiredCount: number,\n): number[] {\n if (end <= start) return []\n\n const interval = resolveTickInterval(\n (end - start) / Math.max(1, desiredCount - 1),\n )\n const first = Math.ceil(start / interval) * interval\n const ticks: number[] = []\n\n for (let tick = first; tick <= end; tick += interval) {\n ticks.push(tick)\n }\n\n return ticks\n}\n"],"mappings":";;;AAAA,MAAM,SAAS;AACf,MAAM,MAAM,OAAU;AAEtB,MAAM,sBAAsB;CAC1B,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAS;CACT,MAAS;CACT,MAAS;CACT,MAAU;CACV;CACA,IAAI;CACJ,IAAI;AACN;AAEA,SAAS,oBAAoB,QAAwB;CAEnD,IAAI,SADS,oBAAoB,GAAG,EACpB,GAAG,OAAO,KAAK,KAAK,SAAS,GAAG,IAAI;CAEpD,IAAI,UAAU,oBAAoB;CAClC,KAAK,MAAM,YAAY,qBACrB,IAAI,KAAK,IAAI,WAAW,MAAM,IAAI,KAAK,IAAI,UAAU,MAAM,GACzD,UAAU;CAGd,OAAO;AACT;AAEA,SAAgB,eACd,OACA,KACA,cACU;CACV,IAAI,OAAO,OAAO,OAAO,CAAC;CAE1B,MAAM,WAAW,qBACd,MAAM,SAAS,KAAK,IAAI,GAAG,eAAe,CAAC,CAC9C;CACA,MAAM,QAAQ,KAAK,KAAK,QAAQ,QAAQ,IAAI;CAC5C,MAAM,QAAkB,CAAC;CAEzB,KAAK,IAAI,OAAO,OAAO,QAAQ,KAAK,QAAQ,UAC1C,MAAM,KAAK,IAAI;CAGjB,OAAO;AACT"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region src/utils/chart-time-ticks.ts
|
|
3
|
+
const MINUTE = 6e4;
|
|
4
|
+
const DAY = 1440 * MINUTE;
|
|
5
|
+
const TIME_TICK_INTERVALS = [
|
|
6
|
+
15 * MINUTE,
|
|
7
|
+
30 * MINUTE,
|
|
8
|
+
60 * MINUTE,
|
|
9
|
+
120 * MINUTE,
|
|
10
|
+
180 * MINUTE,
|
|
11
|
+
360 * MINUTE,
|
|
12
|
+
720 * MINUTE,
|
|
13
|
+
DAY,
|
|
14
|
+
2 * DAY,
|
|
15
|
+
7 * DAY
|
|
16
|
+
];
|
|
17
|
+
function resolveTickInterval(target) {
|
|
18
|
+
if (target > TIME_TICK_INTERVALS.at(-1)) return Math.ceil(target / DAY) * DAY;
|
|
19
|
+
let closest = TIME_TICK_INTERVALS[0];
|
|
20
|
+
for (const interval of TIME_TICK_INTERVALS) if (Math.abs(interval - target) < Math.abs(closest - target)) closest = interval;
|
|
21
|
+
return closest;
|
|
22
|
+
}
|
|
23
|
+
function buildTimeTicks(start, end, desiredCount) {
|
|
24
|
+
if (end <= start) return [];
|
|
25
|
+
const interval = resolveTickInterval((end - start) / Math.max(1, desiredCount - 1));
|
|
26
|
+
const first = Math.ceil(start / interval) * interval;
|
|
27
|
+
const ticks = [];
|
|
28
|
+
for (let tick = first; tick <= end; tick += interval) ticks.push(tick);
|
|
29
|
+
return ticks;
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { buildTimeTicks };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=chart-time-ticks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-time-ticks.js","names":[],"sources":["../../src/utils/chart-time-ticks.ts"],"sourcesContent":["const MINUTE = 60_000\nconst DAY = 24 * 60 * MINUTE\n\nconst TIME_TICK_INTERVALS = [\n 15 * MINUTE,\n 30 * MINUTE,\n 60 * MINUTE,\n 2 * 60 * MINUTE,\n 3 * 60 * MINUTE,\n 6 * 60 * MINUTE,\n 12 * 60 * MINUTE,\n DAY,\n 2 * DAY,\n 7 * DAY,\n] as const\n\nfunction resolveTickInterval(target: number): number {\n const last = TIME_TICK_INTERVALS.at(-1)!\n if (target > last) return Math.ceil(target / DAY) * DAY\n\n let closest = TIME_TICK_INTERVALS[0]\n for (const interval of TIME_TICK_INTERVALS) {\n if (Math.abs(interval - target) < Math.abs(closest - target)) {\n closest = interval\n }\n }\n return closest\n}\n\nexport function buildTimeTicks(\n start: number,\n end: number,\n desiredCount: number,\n): number[] {\n if (end <= start) return []\n\n const interval = resolveTickInterval(\n (end - start) / Math.max(1, desiredCount - 1),\n )\n const first = Math.ceil(start / interval) * interval\n const ticks: number[] = []\n\n for (let tick = first; tick <= end; tick += interval) {\n ticks.push(tick)\n }\n\n return ticks\n}\n"],"mappings":";;AAAA,MAAM,SAAS;AACf,MAAM,MAAM,OAAU;AAEtB,MAAM,sBAAsB;CAC1B,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAS;CACT,MAAS;CACT,MAAS;CACT,MAAU;CACV;CACA,IAAI;CACJ,IAAI;AACN;AAEA,SAAS,oBAAoB,QAAwB;CAEnD,IAAI,SADS,oBAAoB,GAAG,EACpB,GAAG,OAAO,KAAK,KAAK,SAAS,GAAG,IAAI;CAEpD,IAAI,UAAU,oBAAoB;CAClC,KAAK,MAAM,YAAY,qBACrB,IAAI,KAAK,IAAI,WAAW,MAAM,IAAI,KAAK,IAAI,UAAU,MAAM,GACzD,UAAU;CAGd,OAAO;AACT;AAEA,SAAgB,eACd,OACA,KACA,cACU;CACV,IAAI,OAAO,OAAO,OAAO,CAAC;CAE1B,MAAM,WAAW,qBACd,MAAM,SAAS,KAAK,IAAI,GAAG,eAAe,CAAC,CAC9C;CACA,MAAM,QAAQ,KAAK,KAAK,QAAQ,QAAQ,IAAI;CAC5C,MAAM,QAAkB,CAAC;CAEzB,KAAK,IAAI,OAAO,OAAO,QAAQ,KAAK,QAAQ,UAC1C,MAAM,KAAK,IAAI;CAGjB,OAAO;AACT"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
//#region src/utils/chart-zoom.ts
|
|
4
|
+
const DEFAULT_MIN_ZOOM_RATIO = .05;
|
|
5
|
+
function spanOf(domain) {
|
|
6
|
+
return domain[1] - domain[0];
|
|
7
|
+
}
|
|
8
|
+
function minSpanFor(window, minRatio) {
|
|
9
|
+
return spanOf(window) * minRatio;
|
|
10
|
+
}
|
|
11
|
+
function normalizeDomain(a, b) {
|
|
12
|
+
return a <= b ? [a, b] : [b, a];
|
|
13
|
+
}
|
|
14
|
+
function clampWindowToFull(window, fullDomain) {
|
|
15
|
+
if (spanOf(fullDomain) <= 0) return fullDomain;
|
|
16
|
+
const start = Math.max(window[0], fullDomain[0]);
|
|
17
|
+
const end = Math.min(window[1], fullDomain[1]);
|
|
18
|
+
if (end <= start) return fullDomain;
|
|
19
|
+
return [start, end];
|
|
20
|
+
}
|
|
21
|
+
function placeWindowInFull(start, width, fullDomain) {
|
|
22
|
+
const fullSpan = spanOf(fullDomain);
|
|
23
|
+
if (fullSpan <= 0) return fullDomain;
|
|
24
|
+
const clampedWidth = Math.min(width, fullSpan);
|
|
25
|
+
let nextStart = start;
|
|
26
|
+
let nextEnd = nextStart + clampedWidth;
|
|
27
|
+
if (nextStart < fullDomain[0]) {
|
|
28
|
+
nextStart = fullDomain[0];
|
|
29
|
+
nextEnd = nextStart + clampedWidth;
|
|
30
|
+
}
|
|
31
|
+
if (nextEnd > fullDomain[1]) {
|
|
32
|
+
nextEnd = fullDomain[1];
|
|
33
|
+
nextStart = nextEnd - clampedWidth;
|
|
34
|
+
}
|
|
35
|
+
if (nextStart < fullDomain[0]) nextStart = fullDomain[0];
|
|
36
|
+
return [nextStart, nextEnd];
|
|
37
|
+
}
|
|
38
|
+
function isInertZoom(fullDomain, minRatio = DEFAULT_MIN_ZOOM_RATIO) {
|
|
39
|
+
const span = spanOf(fullDomain);
|
|
40
|
+
if (span <= 0) return true;
|
|
41
|
+
return minSpanFor(fullDomain, minRatio) >= span;
|
|
42
|
+
}
|
|
43
|
+
function resolveZoomWindow(fullDomain, zoomDomain) {
|
|
44
|
+
if (zoomDomain == null) return fullDomain;
|
|
45
|
+
return clampWindowToFull(normalizeDomain(zoomDomain[0], zoomDomain[1]), fullDomain);
|
|
46
|
+
}
|
|
47
|
+
function commitBrushZoom(fullDomain, currentWindow, brushStart, brushEnd, minRatio = DEFAULT_MIN_ZOOM_RATIO) {
|
|
48
|
+
if (isInertZoom(fullDomain, minRatio)) return null;
|
|
49
|
+
const current = resolveZoomWindow(fullDomain, currentWindow);
|
|
50
|
+
const brushed = clampWindowToFull(normalizeDomain(brushStart, brushEnd), current);
|
|
51
|
+
if (spanOf(brushed) < minSpanFor(fullDomain, minRatio)) return null;
|
|
52
|
+
const next = clampWindowToFull(brushed, fullDomain);
|
|
53
|
+
if (spanOf(next) < minSpanFor(fullDomain, minRatio)) return null;
|
|
54
|
+
return next;
|
|
55
|
+
}
|
|
56
|
+
function applyPinchZoom(fullDomain, currentWindow, scaleFactor, anchor, anchorFraction, minRatio = DEFAULT_MIN_ZOOM_RATIO) {
|
|
57
|
+
if (isInertZoom(fullDomain, minRatio) || scaleFactor <= 0) return resolveZoomWindow(fullDomain, currentWindow);
|
|
58
|
+
const current = resolveZoomWindow(fullDomain, currentWindow);
|
|
59
|
+
const currentSpan = spanOf(current);
|
|
60
|
+
if (currentSpan <= 0) return fullDomain;
|
|
61
|
+
const fullSpan = spanOf(fullDomain);
|
|
62
|
+
const minSpan = minSpanFor(fullDomain, minRatio);
|
|
63
|
+
const nextSpan = Math.min(fullSpan, Math.max(minSpan, currentSpan * scaleFactor));
|
|
64
|
+
const fraction = anchorFraction ?? (currentSpan === 0 ? .5 : (anchor - current[0]) / currentSpan);
|
|
65
|
+
return placeWindowInFull(anchor - nextSpan * Math.min(1, Math.max(0, fraction)), nextSpan, fullDomain);
|
|
66
|
+
}
|
|
67
|
+
function panZoomWindow(fullDomain, currentWindow, delta) {
|
|
68
|
+
const current = resolveZoomWindow(fullDomain, currentWindow);
|
|
69
|
+
return placeWindowInFull(current[0] + delta, spanOf(current), fullDomain);
|
|
70
|
+
}
|
|
71
|
+
function shouldInvalidateZoom(previousFullDomain, nextFullDomain) {
|
|
72
|
+
if (previousFullDomain == null) return false;
|
|
73
|
+
return previousFullDomain[0] !== nextFullDomain[0] || previousFullDomain[1] !== nextFullDomain[1];
|
|
74
|
+
}
|
|
75
|
+
//#endregion
|
|
76
|
+
exports.DEFAULT_MIN_ZOOM_RATIO = DEFAULT_MIN_ZOOM_RATIO;
|
|
77
|
+
exports.applyPinchZoom = applyPinchZoom;
|
|
78
|
+
exports.commitBrushZoom = commitBrushZoom;
|
|
79
|
+
exports.isInertZoom = isInertZoom;
|
|
80
|
+
exports.panZoomWindow = panZoomWindow;
|
|
81
|
+
exports.resolveZoomWindow = resolveZoomWindow;
|
|
82
|
+
exports.shouldInvalidateZoom = shouldInvalidateZoom;
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=chart-zoom.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-zoom.cjs","names":[],"sources":["../../src/utils/chart-zoom.ts"],"sourcesContent":["export type TimeDomain = readonly [number, number]\n\nexport const DEFAULT_MIN_ZOOM_RATIO = 0.05\n\nfunction spanOf(domain: TimeDomain): number {\n return domain[1] - domain[0]\n}\n\nfunction minSpanFor(window: TimeDomain, minRatio: number): number {\n return spanOf(window) * minRatio\n}\n\nfunction normalizeDomain(a: number, b: number): TimeDomain {\n return a <= b ? [a, b] : [b, a]\n}\n\nfunction clampWindowToFull(\n window: TimeDomain,\n fullDomain: TimeDomain,\n): TimeDomain {\n const fullSpan = spanOf(fullDomain)\n if (fullSpan <= 0) return fullDomain\n\n const start = Math.max(window[0], fullDomain[0])\n const end = Math.min(window[1], fullDomain[1])\n if (end <= start) return fullDomain\n return [start, end]\n}\n\nfunction placeWindowInFull(\n start: number,\n width: number,\n fullDomain: TimeDomain,\n): TimeDomain {\n const fullSpan = spanOf(fullDomain)\n if (fullSpan <= 0) return fullDomain\n const clampedWidth = Math.min(width, fullSpan)\n let nextStart = start\n let nextEnd = nextStart + clampedWidth\n if (nextStart < fullDomain[0]) {\n nextStart = fullDomain[0]\n nextEnd = nextStart + clampedWidth\n }\n if (nextEnd > fullDomain[1]) {\n nextEnd = fullDomain[1]\n nextStart = nextEnd - clampedWidth\n }\n if (nextStart < fullDomain[0]) nextStart = fullDomain[0]\n return [nextStart, nextEnd]\n}\n\nexport function isInertZoom(\n fullDomain: TimeDomain,\n minRatio = DEFAULT_MIN_ZOOM_RATIO,\n): boolean {\n const span = spanOf(fullDomain)\n if (span <= 0) return true\n return minSpanFor(fullDomain, minRatio) >= span\n}\n\nexport function resolveZoomWindow(\n fullDomain: TimeDomain,\n zoomDomain: TimeDomain | null | undefined,\n): TimeDomain {\n if (zoomDomain == null) return fullDomain\n return clampWindowToFull(\n normalizeDomain(zoomDomain[0], zoomDomain[1]),\n fullDomain,\n )\n}\n\nexport function commitBrushZoom(\n fullDomain: TimeDomain,\n currentWindow: TimeDomain,\n brushStart: number,\n brushEnd: number,\n minRatio = DEFAULT_MIN_ZOOM_RATIO,\n): TimeDomain | null {\n if (isInertZoom(fullDomain, minRatio)) return null\n\n const current = resolveZoomWindow(fullDomain, currentWindow)\n const brushed = clampWindowToFull(\n normalizeDomain(brushStart, brushEnd),\n current,\n )\n const brushedSpan = spanOf(brushed)\n if (brushedSpan < minSpanFor(fullDomain, minRatio)) return null\n\n const next = clampWindowToFull(brushed, fullDomain)\n if (spanOf(next) < minSpanFor(fullDomain, minRatio)) return null\n return next\n}\n\nexport function applyPinchZoom(\n fullDomain: TimeDomain,\n currentWindow: TimeDomain,\n scaleFactor: number,\n anchor: number,\n anchorFraction?: number,\n minRatio = DEFAULT_MIN_ZOOM_RATIO,\n): TimeDomain {\n if (isInertZoom(fullDomain, minRatio) || scaleFactor <= 0) {\n return resolveZoomWindow(fullDomain, currentWindow)\n }\n\n const current = resolveZoomWindow(fullDomain, currentWindow)\n const currentSpan = spanOf(current)\n if (currentSpan <= 0) return fullDomain\n\n const fullSpan = spanOf(fullDomain)\n const minSpan = minSpanFor(fullDomain, minRatio)\n const nextSpan = Math.min(\n fullSpan,\n Math.max(minSpan, currentSpan * scaleFactor),\n )\n\n const fraction =\n anchorFraction ??\n (currentSpan === 0 ? 0.5 : (anchor - current[0]) / currentSpan)\n const clampedFraction = Math.min(1, Math.max(0, fraction))\n const start = anchor - nextSpan * clampedFraction\n return placeWindowInFull(start, nextSpan, fullDomain)\n}\n\nexport function panZoomWindow(\n fullDomain: TimeDomain,\n currentWindow: TimeDomain,\n delta: number,\n): TimeDomain {\n const current = resolveZoomWindow(fullDomain, currentWindow)\n return placeWindowInFull(current[0] + delta, spanOf(current), fullDomain)\n}\n\nexport function shouldInvalidateZoom(\n previousFullDomain: TimeDomain | null,\n nextFullDomain: TimeDomain,\n): boolean {\n if (previousFullDomain == null) return false\n return (\n previousFullDomain[0] !== nextFullDomain[0] ||\n previousFullDomain[1] !== nextFullDomain[1]\n )\n}\n"],"mappings":";;;AAEA,MAAa,yBAAyB;AAEtC,SAAS,OAAO,QAA4B;CAC1C,OAAO,OAAO,KAAK,OAAO;AAC5B;AAEA,SAAS,WAAW,QAAoB,UAA0B;CAChE,OAAO,OAAO,MAAM,IAAI;AAC1B;AAEA,SAAS,gBAAgB,GAAW,GAAuB;CACzD,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAChC;AAEA,SAAS,kBACP,QACA,YACY;CAEZ,IADiB,OAAO,UACb,KAAK,GAAG,OAAO;CAE1B,MAAM,QAAQ,KAAK,IAAI,OAAO,IAAI,WAAW,EAAE;CAC/C,MAAM,MAAM,KAAK,IAAI,OAAO,IAAI,WAAW,EAAE;CAC7C,IAAI,OAAO,OAAO,OAAO;CACzB,OAAO,CAAC,OAAO,GAAG;AACpB;AAEA,SAAS,kBACP,OACA,OACA,YACY;CACZ,MAAM,WAAW,OAAO,UAAU;CAClC,IAAI,YAAY,GAAG,OAAO;CAC1B,MAAM,eAAe,KAAK,IAAI,OAAO,QAAQ;CAC7C,IAAI,YAAY;CAChB,IAAI,UAAU,YAAY;CAC1B,IAAI,YAAY,WAAW,IAAI;EAC7B,YAAY,WAAW;EACvB,UAAU,YAAY;CACxB;CACA,IAAI,UAAU,WAAW,IAAI;EAC3B,UAAU,WAAW;EACrB,YAAY,UAAU;CACxB;CACA,IAAI,YAAY,WAAW,IAAI,YAAY,WAAW;CACtD,OAAO,CAAC,WAAW,OAAO;AAC5B;AAEA,SAAgB,YACd,YACA,WAAW,wBACF;CACT,MAAM,OAAO,OAAO,UAAU;CAC9B,IAAI,QAAQ,GAAG,OAAO;CACtB,OAAO,WAAW,YAAY,QAAQ,KAAK;AAC7C;AAEA,SAAgB,kBACd,YACA,YACY;CACZ,IAAI,cAAc,MAAM,OAAO;CAC/B,OAAO,kBACL,gBAAgB,WAAW,IAAI,WAAW,EAAE,GAC5C,UACF;AACF;AAEA,SAAgB,gBACd,YACA,eACA,YACA,UACA,WAAW,wBACQ;CACnB,IAAI,YAAY,YAAY,QAAQ,GAAG,OAAO;CAE9C,MAAM,UAAU,kBAAkB,YAAY,aAAa;CAC3D,MAAM,UAAU,kBACd,gBAAgB,YAAY,QAAQ,GACpC,OACF;CAEA,IADoB,OAAO,OACb,IAAI,WAAW,YAAY,QAAQ,GAAG,OAAO;CAE3D,MAAM,OAAO,kBAAkB,SAAS,UAAU;CAClD,IAAI,OAAO,IAAI,IAAI,WAAW,YAAY,QAAQ,GAAG,OAAO;CAC5D,OAAO;AACT;AAEA,SAAgB,eACd,YACA,eACA,aACA,QACA,gBACA,WAAW,wBACC;CACZ,IAAI,YAAY,YAAY,QAAQ,KAAK,eAAe,GACtD,OAAO,kBAAkB,YAAY,aAAa;CAGpD,MAAM,UAAU,kBAAkB,YAAY,aAAa;CAC3D,MAAM,cAAc,OAAO,OAAO;CAClC,IAAI,eAAe,GAAG,OAAO;CAE7B,MAAM,WAAW,OAAO,UAAU;CAClC,MAAM,UAAU,WAAW,YAAY,QAAQ;CAC/C,MAAM,WAAW,KAAK,IACpB,UACA,KAAK,IAAI,SAAS,cAAc,WAAW,CAC7C;CAEA,MAAM,WACJ,mBACC,gBAAgB,IAAI,MAAO,SAAS,QAAQ,MAAM;CAGrD,OAAO,kBADO,SAAS,WADC,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,QAAQ,CACR,GAChB,UAAU,UAAU;AACtD;AAEA,SAAgB,cACd,YACA,eACA,OACY;CACZ,MAAM,UAAU,kBAAkB,YAAY,aAAa;CAC3D,OAAO,kBAAkB,QAAQ,KAAK,OAAO,OAAO,OAAO,GAAG,UAAU;AAC1E;AAEA,SAAgB,qBACd,oBACA,gBACS;CACT,IAAI,sBAAsB,MAAM,OAAO;CACvC,OACE,mBAAmB,OAAO,eAAe,MACzC,mBAAmB,OAAO,eAAe;AAE7C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/chart-zoom.d.ts
|
|
4
|
+
type TimeDomain = readonly [number, number];
|
|
5
|
+
declare const DEFAULT_MIN_ZOOM_RATIO = 0.05;
|
|
6
|
+
declare function isInertZoom(fullDomain: TimeDomain, minRatio?: number): boolean;
|
|
7
|
+
declare function resolveZoomWindow(fullDomain: TimeDomain, zoomDomain: TimeDomain | null | undefined): TimeDomain;
|
|
8
|
+
declare function commitBrushZoom(fullDomain: TimeDomain, currentWindow: TimeDomain, brushStart: number, brushEnd: number, minRatio?: number): TimeDomain | null;
|
|
9
|
+
declare function applyPinchZoom(fullDomain: TimeDomain, currentWindow: TimeDomain, scaleFactor: number, anchor: number, anchorFraction?: number, minRatio?: number): TimeDomain;
|
|
10
|
+
declare function panZoomWindow(fullDomain: TimeDomain, currentWindow: TimeDomain, delta: number): TimeDomain;
|
|
11
|
+
declare function shouldInvalidateZoom(previousFullDomain: TimeDomain | null, nextFullDomain: TimeDomain): boolean;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { DEFAULT_MIN_ZOOM_RATIO, TimeDomain, applyPinchZoom, commitBrushZoom, isInertZoom, panZoomWindow, resolveZoomWindow, shouldInvalidateZoom };
|
|
14
|
+
//# sourceMappingURL=chart-zoom.d.cts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/chart-zoom.d.ts
|
|
4
|
+
type TimeDomain = readonly [number, number];
|
|
5
|
+
declare const DEFAULT_MIN_ZOOM_RATIO = 0.05;
|
|
6
|
+
declare function isInertZoom(fullDomain: TimeDomain, minRatio?: number): boolean;
|
|
7
|
+
declare function resolveZoomWindow(fullDomain: TimeDomain, zoomDomain: TimeDomain | null | undefined): TimeDomain;
|
|
8
|
+
declare function commitBrushZoom(fullDomain: TimeDomain, currentWindow: TimeDomain, brushStart: number, brushEnd: number, minRatio?: number): TimeDomain | null;
|
|
9
|
+
declare function applyPinchZoom(fullDomain: TimeDomain, currentWindow: TimeDomain, scaleFactor: number, anchor: number, anchorFraction?: number, minRatio?: number): TimeDomain;
|
|
10
|
+
declare function panZoomWindow(fullDomain: TimeDomain, currentWindow: TimeDomain, delta: number): TimeDomain;
|
|
11
|
+
declare function shouldInvalidateZoom(previousFullDomain: TimeDomain | null, nextFullDomain: TimeDomain): boolean;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { DEFAULT_MIN_ZOOM_RATIO, TimeDomain, applyPinchZoom, commitBrushZoom, isInertZoom, panZoomWindow, resolveZoomWindow, shouldInvalidateZoom };
|
|
14
|
+
//# sourceMappingURL=chart-zoom.d.ts.map
|