@363045841yyt/klinechart 0.8.4 → 0.8.6

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.
Files changed (69) hide show
  1. package/README.md +6 -1
  2. package/dist/components/BaseModal.vue.d.ts +54 -0
  3. package/dist/components/BaseModal.vue.d.ts.map +1 -0
  4. package/dist/components/BatchStockDialog.vue.d.ts +13 -0
  5. package/dist/components/BatchStockDialog.vue.d.ts.map +1 -0
  6. package/dist/components/ChartSettingsDialog.vue.d.ts.map +1 -1
  7. package/dist/components/ColorPresetPanel.vue.d.ts +4 -1
  8. package/dist/components/ColorPresetPanel.vue.d.ts.map +1 -1
  9. package/dist/components/CompareSymbolSelector.vue.d.ts.map +1 -1
  10. package/dist/components/DrawingStyleToolbar.vue.d.ts.map +1 -1
  11. package/dist/components/Dropdown.vue.d.ts.map +1 -1
  12. package/dist/components/ExportProgressDialog.vue.d.ts +15 -0
  13. package/dist/components/ExportProgressDialog.vue.d.ts.map +1 -0
  14. package/dist/components/IndicatorParams.vue.d.ts.map +1 -1
  15. package/dist/components/IndicatorSelector.vue.d.ts.map +1 -1
  16. package/dist/components/KLineChart.vue.d.ts +5 -9
  17. package/dist/components/KLineChart.vue.d.ts.map +1 -1
  18. package/dist/components/LeftToolbar.vue.d.ts.map +1 -1
  19. package/dist/components/RangeSelectionExport.vue.d.ts +23 -0
  20. package/dist/components/RangeSelectionExport.vue.d.ts.map +1 -0
  21. package/dist/components/SymbolSelector.vue.d.ts.map +1 -1
  22. package/dist/components/TopToolbar.vue.d.ts.map +1 -1
  23. package/dist/components/common/CanvasToolbar.vue.d.ts +14 -0
  24. package/dist/components/common/CanvasToolbar.vue.d.ts.map +1 -0
  25. package/dist/components/common/CanvasToolbarStack.vue.d.ts +14 -0
  26. package/dist/components/common/CanvasToolbarStack.vue.d.ts.map +1 -0
  27. package/dist/composables/chart/useChartTheme.d.ts +329 -0
  28. package/dist/composables/chart/useChartTheme.d.ts.map +1 -0
  29. package/dist/composables/chart/useDrawingManager.d.ts +86 -0
  30. package/dist/composables/chart/useDrawingManager.d.ts.map +1 -0
  31. package/dist/composables/chart/useIndicatorManager.d.ts +38 -0
  32. package/dist/composables/chart/useIndicatorManager.d.ts.map +1 -0
  33. package/dist/composables/chart/useRangeSelection.d.ts +66 -0
  34. package/dist/composables/chart/useRangeSelection.d.ts.map +1 -0
  35. package/dist/composables/useTeleportedPopup.d.ts +8 -0
  36. package/dist/composables/useTeleportedPopup.d.ts.map +1 -0
  37. package/dist/index.cjs +9 -2
  38. package/dist/index.css +1 -1
  39. package/dist/index.js +2149 -1409
  40. package/dist/tools/calcRangeOverlayPixel.d.ts +15 -0
  41. package/dist/tools/calcRangeOverlayPixel.d.ts.map +1 -0
  42. package/dist/tools/getKLineIndexByTimestamp.d.ts +4 -0
  43. package/dist/tools/getKLineIndexByTimestamp.d.ts.map +1 -0
  44. package/dist/web-component.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/src/components/BaseModal.vue +292 -0
  47. package/src/components/BatchStockDialog.vue +128 -0
  48. package/src/components/ChartSettingsDialog.vue +248 -405
  49. package/src/components/ColorPresetPanel.vue +58 -106
  50. package/src/components/CompareSymbolSelector.vue +37 -10
  51. package/src/components/DrawingStyleToolbar.vue +33 -72
  52. package/src/components/Dropdown.vue +42 -19
  53. package/src/components/ExportProgressDialog.vue +118 -0
  54. package/src/components/IndicatorParams.vue +194 -321
  55. package/src/components/IndicatorSelector.vue +188 -405
  56. package/src/components/KLineChart.vue +228 -403
  57. package/src/components/LeftToolbar.vue +3 -2
  58. package/src/components/RangeSelectionExport.vue +117 -0
  59. package/src/components/SymbolSelector.vue +37 -10
  60. package/src/components/TopToolbar.vue +55 -2
  61. package/src/components/common/CanvasToolbar.vue +70 -0
  62. package/src/components/common/CanvasToolbarStack.vue +32 -0
  63. package/src/composables/chart/useChartTheme.ts +86 -0
  64. package/src/composables/chart/useDrawingManager.ts +67 -0
  65. package/src/composables/chart/useIndicatorManager.ts +307 -0
  66. package/src/composables/chart/useRangeSelection.ts +424 -0
  67. package/src/composables/useTeleportedPopup.ts +46 -0
  68. package/src/tools/calcRangeOverlayPixel.ts +28 -0
  69. package/src/tools/getKLineIndexByTimestamp.ts +40 -0
@@ -0,0 +1,118 @@
1
+ <template>
2
+ <BaseModal
3
+ title="导出数据"
4
+ :show="!!progress"
5
+ :z-index="1100"
6
+ :close-on-overlay="false"
7
+ footer-align="center"
8
+ @close="emit('close')"
9
+ >
10
+ <div class="export-body">
11
+ <div class="export-label">{{ progress?.label }}</div>
12
+ <div class="export-bar-track">
13
+ <div class="export-bar-fill" :style="{ width: pct + '%' }" />
14
+ </div>
15
+ <div class="export-counter">{{ progress?.current ?? 0 }} / {{ progress?.total ?? 0 }}</div>
16
+ </div>
17
+ <template #footer>
18
+ <button
19
+ v-if="progress && progress.current === progress.total"
20
+ class="export-done-btn"
21
+ @click="emit('close')"
22
+ >
23
+ 完成
24
+ </button>
25
+ </template>
26
+ </BaseModal>
27
+ </template>
28
+
29
+ <script setup lang="ts">
30
+ import { computed } from 'vue'
31
+ import BaseModal from './BaseModal.vue'
32
+
33
+ const props = defineProps<{
34
+ progress: { current: number; total: number; label: string } | null
35
+ }>()
36
+
37
+ const emit = defineEmits<{
38
+ close: []
39
+ }>()
40
+
41
+ const pct = computed(() => {
42
+ if (!props.progress || props.progress.total <= 0) return 0
43
+ return Math.min(100, Math.round((props.progress.current / props.progress.total) * 100))
44
+ })
45
+ </script>
46
+
47
+ <style scoped>
48
+ .export-body {
49
+ display: flex;
50
+ flex-direction: column;
51
+ gap: 10px;
52
+ }
53
+
54
+ .export-label {
55
+ font-size: 13px;
56
+ color: var(--klc-color-axis-text);
57
+ line-height: 1.4;
58
+ white-space: nowrap;
59
+ overflow: hidden;
60
+ text-overflow: ellipsis;
61
+ }
62
+
63
+ .export-bar-track {
64
+ width: 100%;
65
+ height: 6px;
66
+ background: var(--klc-color-grid-major);
67
+ border-radius: 999px;
68
+ overflow: hidden;
69
+ }
70
+
71
+ .export-bar-fill {
72
+ height: 100%;
73
+ background: var(--klc-color-foreground);
74
+ border-radius: 999px;
75
+ transition: width 0.25s ease;
76
+ }
77
+
78
+ .export-counter {
79
+ font-size: 12px;
80
+ color: var(--klc-color-axis-text);
81
+ text-align: right;
82
+ font-variant-numeric: tabular-nums;
83
+ }
84
+
85
+ .export-done-btn {
86
+ display: flex;
87
+ align-items: center;
88
+ justify-content: center;
89
+ height: 32px;
90
+ padding: 0 20px;
91
+ border-radius: 7px;
92
+ font-size: 13px;
93
+ font-weight: 500;
94
+ cursor: pointer;
95
+ border: 1px solid transparent;
96
+ background: var(--klc-color-foreground);
97
+ border-color: var(--klc-color-foreground);
98
+ color: var(--klc-color-background);
99
+ transition:
100
+ background 0.15s,
101
+ box-shadow 0.15s,
102
+ transform 0.15s;
103
+ line-height: 1;
104
+ white-space: nowrap;
105
+ }
106
+
107
+ .export-done-btn:hover {
108
+ background: var(--klc-color-foreground);
109
+ border-color: var(--klc-color-foreground);
110
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
111
+ transform: translateY(-1px);
112
+ }
113
+
114
+ .export-done-btn:active {
115
+ transform: translateY(0);
116
+ box-shadow: none;
117
+ }
118
+ </style>