ui-svelte 0.2.11 → 0.2.13
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/README.md +2 -2
- package/dist/charts/ArcChart.svelte +9 -14
- package/dist/charts/ArcChart.svelte.d.ts +3 -3
- package/dist/charts/AreaChart.svelte +347 -118
- package/dist/charts/AreaChart.svelte.d.ts +33 -4
- package/dist/charts/BarChart.svelte +288 -66
- package/dist/charts/BarChart.svelte.d.ts +26 -1
- package/dist/charts/Candlestick.svelte +53 -50
- package/dist/charts/Candlestick.svelte.d.ts +8 -8
- package/dist/charts/LineChart.svelte +391 -91
- package/dist/charts/LineChart.svelte.d.ts +26 -3
- package/dist/charts/PieChart.svelte +333 -92
- package/dist/charts/PieChart.svelte.d.ts +33 -5
- package/dist/charts/css/arc-chart.css +3 -3
- package/dist/charts/css/area-chart.css +127 -29
- package/dist/charts/css/bar-chart.css +114 -8
- package/dist/charts/css/candlestick.css +2 -0
- package/dist/charts/css/line-chart.css +111 -13
- package/dist/charts/css/pie-chart.css +92 -20
- package/dist/control/Audio.svelte +86 -44
- package/dist/control/Audio.svelte.d.ts +4 -1
- package/dist/control/Button.svelte +18 -27
- package/dist/control/Button.svelte.d.ts +3 -2
- package/dist/control/Fab.svelte +103 -0
- package/dist/control/Fab.svelte.d.ts +25 -0
- package/dist/control/IconButton.svelte +17 -27
- package/dist/control/IconButton.svelte.d.ts +3 -3
- package/dist/control/Image.svelte +123 -0
- package/dist/control/Image.svelte.d.ts +13 -0
- package/dist/control/Record.svelte +141 -98
- package/dist/control/Record.svelte.d.ts +2 -1
- package/dist/control/ToggleGroup.svelte +22 -8
- package/dist/control/ToggleGroup.svelte.d.ts +2 -1
- package/dist/control/ToggleTheme.svelte +13 -11
- package/dist/control/ToggleTheme.svelte.d.ts +3 -2
- package/dist/control/Video.svelte +57 -29
- package/dist/control/Video.svelte.d.ts +1 -0
- package/dist/control/css/btn.css +200 -152
- package/dist/control/css/fab.css +84 -0
- package/dist/control/css/image.css +56 -0
- package/dist/control/css/media.css +95 -30
- package/dist/control/css/toggle-group.css +253 -84
- package/dist/control/css/video.css +1 -14
- package/dist/css/animations.css +5 -9
- package/dist/css/base.css +13 -347
- package/dist/css/decorations.css +561 -0
- package/dist/css/rich-text.css +485 -0
- package/dist/css/transitions.css +158 -0
- package/dist/css/typography.css +291 -0
- package/dist/css/utilities.css +0 -4
- package/dist/display/Accordion.svelte +28 -4
- package/dist/display/Accordion.svelte.d.ts +2 -1
- package/dist/display/Alert.svelte +32 -12
- package/dist/display/Alert.svelte.d.ts +2 -3
- package/dist/display/Avatar.svelte +23 -18
- package/dist/display/Avatar.svelte.d.ts +4 -1
- package/dist/display/AvatarGroup.svelte +20 -18
- package/dist/display/AvatarGroup.svelte.d.ts +6 -3
- package/dist/display/Badge.svelte +11 -4
- package/dist/display/Badge.svelte.d.ts +2 -1
- package/dist/display/Card.svelte +15 -14
- package/dist/display/Card.svelte.d.ts +2 -3
- package/dist/display/Carousel.svelte +130 -99
- package/dist/display/Carousel.svelte.d.ts +6 -4
- package/dist/display/ChatBox.svelte +245 -106
- package/dist/display/ChatBox.svelte.d.ts +32 -5
- package/dist/display/Chip.svelte +31 -17
- package/dist/display/Chip.svelte.d.ts +3 -2
- package/dist/display/Code.svelte +7 -4
- package/dist/display/Code.svelte.d.ts +1 -0
- package/dist/display/Collapsible.svelte +30 -4
- package/dist/display/Collapsible.svelte.d.ts +2 -1
- package/dist/display/Countdown.svelte +169 -0
- package/dist/display/Countdown.svelte.d.ts +21 -0
- package/dist/display/Empty.svelte +37 -3
- package/dist/display/Empty.svelte.d.ts +3 -0
- package/dist/display/Item.svelte +42 -11
- package/dist/display/Item.svelte.d.ts +4 -2
- package/dist/display/Map.svelte +488 -0
- package/dist/display/Map.svelte.d.ts +44 -0
- package/dist/display/Marquee.svelte +0 -2
- package/dist/display/Section.svelte +14 -12
- package/dist/display/Section.svelte.d.ts +2 -3
- package/dist/display/Skeleton.svelte +32 -0
- package/dist/display/Skeleton.svelte.d.ts +10 -0
- package/dist/display/Table.svelte +94 -132
- package/dist/display/Table.svelte.d.ts +10 -1
- package/dist/display/css/accordion.css +349 -52
- package/dist/display/css/alert.css +38 -18
- package/dist/display/css/avatar-group.css +38 -75
- package/dist/display/css/avatar.css +139 -121
- package/dist/display/css/badge.css +50 -27
- package/dist/display/css/card.css +123 -71
- package/dist/display/css/carousel.css +25 -5
- package/dist/display/css/chat-box.css +158 -26
- package/dist/display/css/chip.css +142 -68
- package/dist/display/css/code.css +2 -6
- package/dist/display/css/collapsible.css +349 -45
- package/dist/display/css/countdown.css +206 -0
- package/dist/display/css/divider.css +8 -6
- package/dist/display/css/empty.css +7 -0
- package/dist/display/css/item.css +330 -84
- package/dist/display/css/map.css +164 -0
- package/dist/display/css/marquee.css +0 -3
- package/dist/display/css/section.css +89 -65
- package/dist/display/css/skeleton.css +58 -0
- package/dist/display/css/table.css +309 -193
- package/dist/form/Checkbox.svelte +11 -5
- package/dist/form/Checkbox.svelte.d.ts +2 -1
- package/dist/form/ColorField.svelte +601 -0
- package/dist/form/ColorField.svelte.d.ts +29 -0
- package/dist/form/ComboBox.svelte +24 -9
- package/dist/form/ComboBox.svelte.d.ts +2 -2
- package/dist/form/CsvField.svelte +62 -136
- package/dist/form/CsvField.svelte.d.ts +2 -2
- package/dist/form/DateField.svelte +33 -15
- package/dist/form/DateField.svelte.d.ts +2 -1
- package/dist/form/DateRange.svelte +436 -0
- package/dist/form/DateRange.svelte.d.ts +24 -0
- package/dist/form/DragDrop.svelte +578 -0
- package/dist/form/DragDrop.svelte.d.ts +33 -0
- package/dist/form/Dropzone.svelte +28 -8
- package/dist/form/Dropzone.svelte.d.ts +2 -2
- package/dist/form/Editor.svelte +626 -0
- package/dist/form/Editor.svelte.d.ts +50 -0
- package/dist/form/ImageCropper.svelte +422 -61
- package/dist/form/ImageCropper.svelte.d.ts +15 -1
- package/dist/form/{PasswordStrength.svelte → PasswordField.svelte} +58 -24
- package/dist/form/{PasswordStrength.svelte.d.ts → PasswordField.svelte.d.ts} +6 -5
- package/dist/form/PhoneField.svelte +26 -14
- package/dist/form/PhoneField.svelte.d.ts +4 -3
- package/dist/form/PinField.svelte +39 -31
- package/dist/form/PinField.svelte.d.ts +3 -3
- package/dist/form/RadioGroup.svelte +9 -5
- package/dist/form/RadioGroup.svelte.d.ts +1 -1
- package/dist/form/Select.svelte +20 -19
- package/dist/form/Select.svelte.d.ts +2 -2
- package/dist/form/Slider.svelte +10 -4
- package/dist/form/Slider.svelte.d.ts +2 -1
- package/dist/form/TextField.svelte +29 -11
- package/dist/form/TextField.svelte.d.ts +5 -4
- package/dist/form/Textarea.svelte +15 -6
- package/dist/form/Textarea.svelte.d.ts +2 -2
- package/dist/form/Toggle.svelte +7 -3
- package/dist/form/Toggle.svelte.d.ts +1 -1
- package/dist/form/css/checkbox.css +18 -2
- package/dist/form/css/color-field.css +141 -0
- package/dist/form/css/control.css +193 -82
- package/dist/form/css/csv-field.css +221 -0
- package/dist/form/css/date-range.css +122 -0
- package/dist/form/css/date.css +24 -2
- package/dist/form/css/drag-drop.css +234 -0
- package/dist/form/css/dropzone.css +153 -34
- package/dist/form/css/editor.css +367 -0
- package/dist/form/css/field.css +4 -0
- package/dist/form/css/image-cropper.css +242 -20
- package/dist/form/css/radio-group.css +26 -1
- package/dist/form/css/select.css +2 -2
- package/dist/form/css/slider.css +37 -0
- package/dist/form/css/textarea.css +178 -75
- package/dist/form/css/toggle.css +15 -3
- package/dist/hooks/use-chat.svelte.js +1 -1
- package/dist/hooks/use-form.svelte.js +3 -3
- package/dist/hooks/use-search.svelte.js +0 -3
- package/dist/hooks/use-table.svelte.d.ts +1 -0
- package/dist/hooks/use-table.svelte.js +6 -0
- package/dist/icons/index.d.ts +34 -2
- package/dist/icons/index.js +36 -4
- package/dist/index.css +44 -49
- package/dist/index.d.ts +14 -4
- package/dist/index.js +13 -3
- package/dist/layout/AppBar.svelte +22 -14
- package/dist/layout/AppBar.svelte.d.ts +2 -1
- package/dist/layout/Footer.svelte +19 -11
- package/dist/layout/Footer.svelte.d.ts +2 -1
- package/dist/layout/Provider.svelte +32 -9
- package/dist/layout/Provider.svelte.d.ts +3 -1
- package/dist/layout/Sidebar.svelte +17 -8
- package/dist/layout/Sidebar.svelte.d.ts +2 -1
- package/dist/layout/css/app-bar.css +63 -66
- package/dist/layout/css/footer.css +62 -65
- package/dist/layout/css/sidebar.css +120 -59
- package/dist/navigation/BottomNav.svelte +51 -14
- package/dist/navigation/FooterGroup.svelte +1 -1
- package/dist/navigation/NavMenu.svelte +47 -23
- package/dist/navigation/NavMenu.svelte.d.ts +29 -0
- package/dist/navigation/Pagination.svelte +158 -0
- package/dist/navigation/Pagination.svelte.d.ts +18 -0
- package/dist/navigation/SideNav.svelte +30 -25
- package/dist/navigation/SideNav.svelte.d.ts +2 -3
- package/dist/navigation/Tabs.svelte +17 -7
- package/dist/navigation/Tabs.svelte.d.ts +2 -2
- package/dist/navigation/css/bottom-nav.css +319 -257
- package/dist/navigation/css/footer-group.css +1 -1
- package/dist/navigation/css/footer-nav.css +1 -1
- package/dist/navigation/css/nav-menu.css +331 -106
- package/dist/navigation/css/pagination.css +74 -0
- package/dist/navigation/css/side-nav.css +514 -75
- package/dist/navigation/css/tabs.css +246 -52
- package/dist/overlay/AlertDialog.svelte +58 -0
- package/dist/overlay/AlertDialog.svelte.d.ts +14 -25
- package/dist/overlay/Command.svelte +347 -0
- package/dist/overlay/Command.svelte.d.ts +33 -25
- package/dist/overlay/Drawer.svelte +49 -21
- package/dist/overlay/Drawer.svelte.d.ts +2 -2
- package/dist/overlay/Dropdown.svelte +3 -3
- package/dist/overlay/Modal.svelte +51 -16
- package/dist/overlay/Modal.svelte.d.ts +3 -3
- package/dist/overlay/Toast.svelte +41 -17
- package/dist/overlay/Toast.svelte.d.ts +1 -1
- package/dist/overlay/Tooltip.svelte +36 -27
- package/dist/overlay/Tooltip.svelte.d.ts +2 -2
- package/dist/overlay/css/command.css +68 -0
- package/dist/overlay/css/drawer.css +63 -24
- package/dist/overlay/css/dropdown.css +1 -1
- package/dist/overlay/css/hovercard.css +1 -1
- package/dist/overlay/css/modal.css +79 -27
- package/dist/overlay/css/toast.css +40 -24
- package/dist/overlay/css/tooltip.css +110 -67
- package/dist/stores/theme.svelte.js +44 -12
- package/dist/stores/toast.svelte.d.ts +4 -4
- package/dist/stores/toast.svelte.js +2 -2
- package/package.json +1 -1
- package/dist/utils/charts.d.ts +0 -27
- package/dist/utils/charts.js +0 -140
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
type Props = {
|
|
48
48
|
data?: CandleData[];
|
|
49
49
|
margin?: Margin;
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
hideVolume?: boolean;
|
|
51
|
+
hideGrid?: boolean;
|
|
52
52
|
candleWidth?: number;
|
|
53
53
|
bullishColor?: Color;
|
|
54
54
|
bearishColor?: Color;
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
loading?: boolean;
|
|
57
57
|
empty?: boolean;
|
|
58
58
|
emptyText?: string;
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
disableZoom?: boolean;
|
|
60
|
+
disableScroll?: boolean;
|
|
61
61
|
initialVisibleCandles?: number;
|
|
62
62
|
minVisibleCandles?: number;
|
|
63
63
|
maxVisibleCandles?: number;
|
|
@@ -67,11 +67,11 @@
|
|
|
67
67
|
theme?: Theme;
|
|
68
68
|
candleStyle?: CandleStyle;
|
|
69
69
|
scaleType?: ScaleType;
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
hideCrosshair?: boolean;
|
|
71
|
+
hideYAxisLabels?: boolean;
|
|
72
|
+
hideXAxisLabels?: boolean;
|
|
73
73
|
gridStyle?: GridStyle;
|
|
74
|
-
|
|
74
|
+
hideLastPrice?: boolean;
|
|
75
75
|
indicators?: Indicator[];
|
|
76
76
|
onClick?: (candle: CandleData, index: number) => void;
|
|
77
77
|
onRangeChange?: (start: number, end: number) => void;
|
|
@@ -84,8 +84,8 @@
|
|
|
84
84
|
let {
|
|
85
85
|
data = [],
|
|
86
86
|
margin = { top: 20, right: 60, bottom: 40, left: 60 },
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
hideVolume,
|
|
88
|
+
hideGrid,
|
|
89
89
|
candleWidth = 8,
|
|
90
90
|
bullishColor = 'success' as Color,
|
|
91
91
|
bearishColor = 'danger' as Color,
|
|
@@ -93,8 +93,8 @@
|
|
|
93
93
|
loading,
|
|
94
94
|
empty,
|
|
95
95
|
emptyText = 'No data available',
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
disableZoom,
|
|
97
|
+
disableScroll,
|
|
98
98
|
initialVisibleCandles = 50,
|
|
99
99
|
minVisibleCandles = 10,
|
|
100
100
|
maxVisibleCandles = 200,
|
|
@@ -104,11 +104,11 @@
|
|
|
104
104
|
theme = 'default',
|
|
105
105
|
candleStyle = 'filled',
|
|
106
106
|
scaleType = 'linear',
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
hideCrosshair,
|
|
108
|
+
hideYAxisLabels,
|
|
109
|
+
hideXAxisLabels,
|
|
110
110
|
gridStyle = 'dashed',
|
|
111
|
-
|
|
111
|
+
hideLastPrice,
|
|
112
112
|
indicators = [],
|
|
113
113
|
onClick,
|
|
114
114
|
onRangeChange,
|
|
@@ -374,9 +374,9 @@
|
|
|
374
374
|
let innerWidth = $derived(width - margin.left - margin.right);
|
|
375
375
|
let innerHeight = $derived(chartHeight - margin.top - margin.bottom);
|
|
376
376
|
|
|
377
|
-
let priceHeight = $derived(
|
|
378
|
-
let volumeHeight = $derived(
|
|
379
|
-
let volumeTop = $derived(
|
|
377
|
+
let priceHeight = $derived(!hideVolume ? innerHeight * 0.75 : innerHeight);
|
|
378
|
+
let volumeHeight = $derived(!hideVolume ? innerHeight * 0.2 : 0);
|
|
379
|
+
let volumeTop = $derived(!hideVolume ? priceHeight + 10 : 0);
|
|
380
380
|
|
|
381
381
|
let priceDomain = $derived.by((): [number, number] => {
|
|
382
382
|
if (processedData.length === 0) return [0, 1];
|
|
@@ -399,7 +399,7 @@
|
|
|
399
399
|
});
|
|
400
400
|
|
|
401
401
|
let volumeDomain = $derived.by((): [number, number] => {
|
|
402
|
-
if (
|
|
402
|
+
if (hideVolume || processedData.length === 0) return [0, 1];
|
|
403
403
|
const volumes = processedData.map((d) => d.volume || 0);
|
|
404
404
|
return [0, Math.max(...volumes) * 1.2];
|
|
405
405
|
});
|
|
@@ -419,7 +419,7 @@
|
|
|
419
419
|
);
|
|
420
420
|
|
|
421
421
|
let volumeScale = $derived(
|
|
422
|
-
|
|
422
|
+
!hideVolume ? createLinearScale(volumeDomain, [volumeHeight, 0]) : null
|
|
423
423
|
);
|
|
424
424
|
|
|
425
425
|
let grid = $derived(createGridLines(priceHeight));
|
|
@@ -437,11 +437,11 @@
|
|
|
437
437
|
});
|
|
438
438
|
}
|
|
439
439
|
|
|
440
|
-
let lastCandle = $derived(
|
|
441
|
-
processedData.length > 0 ? processedData[processedData.length - 1] : null
|
|
442
|
-
);
|
|
440
|
+
let lastCandle = $derived(data.length > 0 ? data[data.length - 1] : null);
|
|
443
441
|
let lastPrice = $derived(lastCandle?.close || 0);
|
|
442
|
+
let isLastPriceVisible = $derived(lastPrice >= priceDomain[0] && lastPrice <= priceDomain[1]);
|
|
444
443
|
let lastPriceY = $derived(priceScale(lastPrice));
|
|
444
|
+
let lastPriceYClamped = $derived(Math.max(10, Math.min(priceHeight - 10, lastPriceY)));
|
|
445
445
|
|
|
446
446
|
function getGridDashArray(): string {
|
|
447
447
|
switch (gridStyle) {
|
|
@@ -456,7 +456,7 @@
|
|
|
456
456
|
}
|
|
457
457
|
|
|
458
458
|
function handleWheel(event: WheelEvent): void {
|
|
459
|
-
if (
|
|
459
|
+
if (disableZoom || data.length === 0) return;
|
|
460
460
|
|
|
461
461
|
if (!event.ctrlKey && !event.metaKey) return;
|
|
462
462
|
|
|
@@ -480,14 +480,14 @@
|
|
|
480
480
|
}
|
|
481
481
|
|
|
482
482
|
function handleMouseDown(event: MouseEvent): void {
|
|
483
|
-
if (
|
|
483
|
+
if (disableScroll || data.length === 0) return;
|
|
484
484
|
isDragging = true;
|
|
485
485
|
dragStartX = event.clientX;
|
|
486
486
|
dragStartOffset = scrollOffset;
|
|
487
487
|
}
|
|
488
488
|
|
|
489
489
|
function handleMouseMove(event: MouseEvent): void {
|
|
490
|
-
if (isDragging &&
|
|
490
|
+
if (isDragging && !disableScroll) {
|
|
491
491
|
const deltaX = event.clientX - dragStartX;
|
|
492
492
|
const candlesPerPixel = visibleCandles / innerWidth;
|
|
493
493
|
const candlesDelta = Math.round(-deltaX * candlesPerPixel);
|
|
@@ -498,7 +498,7 @@
|
|
|
498
498
|
);
|
|
499
499
|
}
|
|
500
500
|
|
|
501
|
-
if (
|
|
501
|
+
if (!hideCrosshair && svgEl && containerEl) {
|
|
502
502
|
const rect = svgEl.getBoundingClientRect();
|
|
503
503
|
const x = event.clientX - rect.left - margin.left;
|
|
504
504
|
const y = event.clientY - rect.top - margin.top;
|
|
@@ -533,13 +533,13 @@
|
|
|
533
533
|
let touchStartOffset = $state(0);
|
|
534
534
|
|
|
535
535
|
function handleTouchStart(event: TouchEvent): void {
|
|
536
|
-
if (
|
|
536
|
+
if (disableScroll || data.length === 0) return;
|
|
537
537
|
touchStartX = event.touches[0].clientX;
|
|
538
538
|
touchStartOffset = scrollOffset;
|
|
539
539
|
}
|
|
540
540
|
|
|
541
541
|
function handleTouchMove(event: TouchEvent): void {
|
|
542
|
-
if (
|
|
542
|
+
if (disableScroll || data.length === 0) return;
|
|
543
543
|
event.preventDefault();
|
|
544
544
|
|
|
545
545
|
const deltaX = event.touches[0].clientX - touchStartX;
|
|
@@ -751,7 +751,7 @@
|
|
|
751
751
|
ondblclick={handleDoubleClick}
|
|
752
752
|
>
|
|
753
753
|
<g transform="translate({margin.left}, {margin.top})">
|
|
754
|
-
{#if
|
|
754
|
+
{#if !hideGrid && gridStyle !== 'none'}
|
|
755
755
|
<g class="candlestick-chart-grid">
|
|
756
756
|
{#each grid as line}
|
|
757
757
|
<line
|
|
@@ -776,7 +776,7 @@
|
|
|
776
776
|
/>
|
|
777
777
|
<line x1={0} y1={0} x2={0} y2={priceHeight} class="candlestick-chart-axis-line" />
|
|
778
778
|
|
|
779
|
-
{#if
|
|
779
|
+
{#if !hideYAxisLabels && !hideGrid}
|
|
780
780
|
{#each grid as line}
|
|
781
781
|
<text
|
|
782
782
|
x={-10}
|
|
@@ -790,7 +790,7 @@
|
|
|
790
790
|
{/each}
|
|
791
791
|
{/if}
|
|
792
792
|
|
|
793
|
-
{#if
|
|
793
|
+
{#if !hideXAxisLabels}
|
|
794
794
|
{#each processedData.filter((_, i) => i % Math.ceil(processedData.length / 6) === 0) as d}
|
|
795
795
|
<text
|
|
796
796
|
x={xScale(d.date) + xScale.bandwidth() / 2}
|
|
@@ -804,7 +804,7 @@
|
|
|
804
804
|
{/each}
|
|
805
805
|
{/if}
|
|
806
806
|
|
|
807
|
-
{#if
|
|
807
|
+
{#if !hideVolume}
|
|
808
808
|
<line
|
|
809
809
|
x1={0}
|
|
810
810
|
y1={volumeTop + volumeHeight}
|
|
@@ -864,6 +864,7 @@
|
|
|
864
864
|
y={bodyTop}
|
|
865
865
|
width={candleWidth}
|
|
866
866
|
height={Math.max(bodyHeight, 1)}
|
|
867
|
+
rx={2}
|
|
867
868
|
class={cn(
|
|
868
869
|
'candlestick-chart-candle',
|
|
869
870
|
`is-${colorClass}`,
|
|
@@ -872,7 +873,7 @@
|
|
|
872
873
|
/>
|
|
873
874
|
</g>
|
|
874
875
|
|
|
875
|
-
{#if
|
|
876
|
+
{#if !hideVolume && d.volume && volumeScale}
|
|
876
877
|
{@const volumeBarHeight = volumeScale(volumeDomain[1] - d.volume)}
|
|
877
878
|
<rect
|
|
878
879
|
x={xScale(d.date)}
|
|
@@ -922,20 +923,22 @@
|
|
|
922
923
|
{/if}
|
|
923
924
|
{/each}
|
|
924
925
|
|
|
925
|
-
{#if
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
926
|
+
{#if !hideLastPrice && lastCandle}
|
|
927
|
+
{#if isLastPriceVisible}
|
|
928
|
+
<line
|
|
929
|
+
x1={0}
|
|
930
|
+
y1={lastPriceY}
|
|
931
|
+
x2={innerWidth}
|
|
932
|
+
y2={lastPriceY}
|
|
933
|
+
class="candlestick-chart-last-price is-{lastCandle.close >= lastCandle.open
|
|
934
|
+
? bullishColor
|
|
935
|
+
: bearishColor}"
|
|
936
|
+
stroke-dasharray="4, 2"
|
|
937
|
+
/>
|
|
938
|
+
{/if}
|
|
936
939
|
<rect
|
|
937
940
|
x={innerWidth + 2}
|
|
938
|
-
y={
|
|
941
|
+
y={lastPriceYClamped - 10}
|
|
939
942
|
width={50}
|
|
940
943
|
height={20}
|
|
941
944
|
rx="3"
|
|
@@ -945,7 +948,7 @@
|
|
|
945
948
|
/>
|
|
946
949
|
<text
|
|
947
950
|
x={innerWidth + 27}
|
|
948
|
-
y={
|
|
951
|
+
y={lastPriceYClamped + 4}
|
|
949
952
|
class="candlestick-chart-last-price-label"
|
|
950
953
|
text-anchor="middle"
|
|
951
954
|
font-size="10"
|
|
@@ -954,7 +957,7 @@
|
|
|
954
957
|
</text>
|
|
955
958
|
{/if}
|
|
956
959
|
|
|
957
|
-
{#if
|
|
960
|
+
{#if !hideCrosshair && isCrosshairActive && crosshairPosition}
|
|
958
961
|
<line
|
|
959
962
|
x1={0}
|
|
960
963
|
y1={crosshairPosition.y}
|
|
@@ -1058,7 +1061,7 @@
|
|
|
1058
1061
|
: ''}{tooltipChange.percent.toFixed(2)}%)
|
|
1059
1062
|
</span>
|
|
1060
1063
|
</div>
|
|
1061
|
-
{#if
|
|
1064
|
+
{#if !hideVolume && tooltipData.volume}
|
|
1062
1065
|
<div class="candlestick-chart-tooltip-row candlestick-chart-tooltip-volume">
|
|
1063
1066
|
<span class="candlestick-chart-tooltip-label">Volume:</span>
|
|
1064
1067
|
<span class="candlestick-chart-tooltip-value"
|
|
@@ -36,8 +36,8 @@ type Margin = {
|
|
|
36
36
|
type Props = {
|
|
37
37
|
data?: CandleData[];
|
|
38
38
|
margin?: Margin;
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
hideVolume?: boolean;
|
|
40
|
+
hideGrid?: boolean;
|
|
41
41
|
candleWidth?: number;
|
|
42
42
|
bullishColor?: Color;
|
|
43
43
|
bearishColor?: Color;
|
|
@@ -45,8 +45,8 @@ type Props = {
|
|
|
45
45
|
loading?: boolean;
|
|
46
46
|
empty?: boolean;
|
|
47
47
|
emptyText?: string;
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
disableZoom?: boolean;
|
|
49
|
+
disableScroll?: boolean;
|
|
50
50
|
initialVisibleCandles?: number;
|
|
51
51
|
minVisibleCandles?: number;
|
|
52
52
|
maxVisibleCandles?: number;
|
|
@@ -56,11 +56,11 @@ type Props = {
|
|
|
56
56
|
theme?: Theme;
|
|
57
57
|
candleStyle?: CandleStyle;
|
|
58
58
|
scaleType?: ScaleType;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
hideCrosshair?: boolean;
|
|
60
|
+
hideYAxisLabels?: boolean;
|
|
61
|
+
hideXAxisLabels?: boolean;
|
|
62
62
|
gridStyle?: GridStyle;
|
|
63
|
-
|
|
63
|
+
hideLastPrice?: boolean;
|
|
64
64
|
indicators?: Indicator[];
|
|
65
65
|
onClick?: (candle: CandleData, index: number) => void;
|
|
66
66
|
onRangeChange?: (start: number, end: number) => void;
|