@reshape-biotech/design-system 1.2.6 → 2.0.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.
Files changed (187) hide show
  1. package/README.md +5 -1
  2. package/dist/app.css +97 -97
  3. package/dist/components/activity/Activity.stories.svelte +104 -104
  4. package/dist/components/activity/Activity.svelte +112 -112
  5. package/dist/components/avatar/Avatar.stories.svelte +23 -23
  6. package/dist/components/avatar/Avatar.svelte +54 -54
  7. package/dist/components/banner/Banner.stories.svelte +105 -105
  8. package/dist/components/banner/Banner.svelte +42 -42
  9. package/dist/components/button/Button.stories.svelte +61 -61
  10. package/dist/components/button/Button.svelte +95 -95
  11. package/dist/components/card/Card.stories.svelte +112 -112
  12. package/dist/components/card/Card.svelte +18 -18
  13. package/dist/components/checkbox/Checkbox.stories.svelte +8 -8
  14. package/dist/components/checkbox/Checkbox.svelte +17 -17
  15. package/dist/components/collapsible/Collapsible.stories.svelte +26 -26
  16. package/dist/components/collapsible/components/collapsible-content.svelte +20 -20
  17. package/dist/components/collapsible/components/collapsible-trigger.svelte +12 -12
  18. package/dist/components/collapsible/index.d.ts +1 -1
  19. package/dist/components/combobox/Combobox.stories.svelte +412 -412
  20. package/dist/components/combobox/components/combobox-add.svelte +8 -8
  21. package/dist/components/combobox/components/combobox-content.svelte +39 -39
  22. package/dist/components/combobox/components/combobox-indicator.svelte +1 -1
  23. package/dist/components/combobox/index.d.ts +1 -1
  24. package/dist/components/datepicker/DatePicker.stories.svelte +196 -196
  25. package/dist/components/datepicker/DatePicker.svelte +173 -173
  26. package/dist/components/divider/Divider.stories.svelte +7 -7
  27. package/dist/components/divider/Divider.svelte +9 -9
  28. package/dist/components/drawer/Drawer.stories.svelte +51 -51
  29. package/dist/components/drawer/Drawer.svelte +33 -33
  30. package/dist/components/drawer/DrawerLabel.svelte +10 -10
  31. package/dist/components/dropdown/Dropdown.stories.svelte +210 -210
  32. package/dist/components/dropdown/Dropdown.svelte +57 -57
  33. package/dist/components/dropdown/components/DropdownContent.svelte +16 -16
  34. package/dist/components/dropdown/components/DropdownMenu.svelte +10 -10
  35. package/dist/components/dropdown/components/DropdownTrigger.svelte +37 -37
  36. package/dist/components/dropdown/components/OutlinedButton.svelte +9 -9
  37. package/dist/components/empty-content/EmptyContent.stories.svelte +38 -38
  38. package/dist/components/empty-content/EmptyContent.svelte +12 -12
  39. package/dist/components/graphs/bar-chart/BarChart.stories.svelte +91 -91
  40. package/dist/components/graphs/bar-chart/BarChart.svelte +147 -147
  41. package/dist/components/graphs/bar-chart/StackedBarChart.stories.svelte +57 -57
  42. package/dist/components/graphs/bar-chart/StackedBarChart.svelte +198 -199
  43. package/dist/components/graphs/chart/Chart.stories.svelte +96 -96
  44. package/dist/components/graphs/chart/Chart.svelte +207 -207
  45. package/dist/components/graphs/line/LineChart.stories.svelte +138 -138
  46. package/dist/components/graphs/line/LineChart.svelte +140 -142
  47. package/dist/components/graphs/matrix/Matrix.stories.svelte +117 -117
  48. package/dist/components/graphs/matrix/Matrix.svelte +141 -141
  49. package/dist/components/graphs/multiline/MultiLineChart.stories.svelte +168 -168
  50. package/dist/components/graphs/multiline/MultiLineChart.svelte +236 -236
  51. package/dist/components/graphs/scatterplot/Scatterplot.stories.svelte +84 -84
  52. package/dist/components/graphs/scatterplot/Scatterplot.svelte +302 -302
  53. package/dist/components/graphs/utils/duration.d.ts +1 -0
  54. package/dist/components/graphs/utils/duration.js +33 -0
  55. package/dist/components/graphs/utils/tooltipFormatter.js +1 -1
  56. package/dist/components/icon-button/IconButton.stories.svelte +64 -64
  57. package/dist/components/icon-button/IconButton.svelte +88 -88
  58. package/dist/components/icons/AnalysisIcon.stories.svelte +18 -18
  59. package/dist/components/icons/AnalysisIcon.svelte +96 -96
  60. package/dist/components/icons/Icon.stories.svelte +111 -111
  61. package/dist/components/icons/Icon.svelte +17 -17
  62. package/dist/components/icons/PrincipalIcon.svelte +59 -59
  63. package/dist/components/icons/custom/Halo.svelte +31 -31
  64. package/dist/components/icons/custom/Well.svelte +27 -27
  65. package/dist/components/icons/index.js +1 -1
  66. package/dist/components/image/Image.svelte +42 -42
  67. package/dist/components/input/Input.stories.svelte +55 -55
  68. package/dist/components/input/Input.svelte +121 -121
  69. package/dist/components/label/Label.stories.svelte +18 -18
  70. package/dist/components/label/Label.svelte +11 -11
  71. package/dist/components/list/List.stories.svelte +84 -84
  72. package/dist/components/list/List.svelte +20 -20
  73. package/dist/components/logo/Logo.stories.svelte +15 -15
  74. package/dist/components/logo/Logo.svelte +30 -30
  75. package/dist/components/manual-cfu-counter/ManualCFUCounter.stories.svelte +102 -102
  76. package/dist/components/manual-cfu-counter/ManualCFUCounter.svelte +557 -557
  77. package/dist/components/manual-cfu-counter/test/ManualCFUCounterTestWrapper.svelte +11 -11
  78. package/dist/components/markdown/Markdown.stories.svelte +10 -10
  79. package/dist/components/markdown/Markdown.svelte +6 -6
  80. package/dist/components/modal/Modal.stories.svelte +29 -29
  81. package/dist/components/modal/Modal.svelte +71 -71
  82. package/dist/components/multi-cfu-counter/MultiCFUCounter.stories.svelte +201 -201
  83. package/dist/components/multi-cfu-counter/MultiCFUCounter.svelte +606 -606
  84. package/dist/components/multi-cfu-counter/test/MultiCFUCounterTestWrapper.svelte +17 -17
  85. package/dist/components/notification-popup/NotificationPopup.stories.svelte +18 -18
  86. package/dist/components/notification-popup/NotificationPopup.svelte +26 -26
  87. package/dist/components/notifications/Notifications.stories.svelte +101 -101
  88. package/dist/components/notifications/Notifications.svelte +9 -9
  89. package/dist/components/pill/Pill.stories.svelte +8 -8
  90. package/dist/components/pill/Pill.svelte +27 -27
  91. package/dist/components/progress-circle/ProgressCircle.stories.svelte +8 -8
  92. package/dist/components/progress-circle/ProgressCircle.svelte +54 -54
  93. package/dist/components/required-status-indicator/RequiredStatusIndicator.stories.svelte +18 -18
  94. package/dist/components/required-status-indicator/RequiredStatusIndicator.svelte +14 -14
  95. package/dist/components/segmented-control-buttons/ControlButton.svelte +36 -36
  96. package/dist/components/segmented-control-buttons/SegmentedControlButtons.stories.svelte +35 -35
  97. package/dist/components/segmented-control-buttons/SegmentedControlButtons.svelte +13 -13
  98. package/dist/components/select/Select.stories.svelte +200 -94
  99. package/dist/components/select/Select.stories.svelte.d.ts +1 -1
  100. package/dist/components/select/components/Group.svelte +24 -0
  101. package/dist/components/select/components/MultiSelectTrigger.svelte +66 -0
  102. package/dist/components/select/components/SelectContent.svelte +33 -0
  103. package/dist/components/select/components/SelectGroupHeading.svelte +19 -0
  104. package/dist/components/select/components/SelectItem.svelte +39 -0
  105. package/dist/components/select/components/SelectTrigger.svelte +48 -0
  106. package/dist/components/select/index.d.ts +10 -7
  107. package/dist/components/select/index.js +12 -1
  108. package/dist/components/sjsf-wrappers/SjsfNumberInputWrapper.svelte +102 -87
  109. package/dist/components/sjsf-wrappers/SjsfNumberInputWrapper.svelte.d.ts +1 -1
  110. package/dist/components/sjsf-wrappers/SjsfTextInputWrapper.svelte +53 -53
  111. package/dist/components/sjsf-wrappers/SjsfTextInputWrapper.svelte.d.ts +1 -1
  112. package/dist/components/sjsf-wrappers/sjsfCustomTheme.js +1 -1
  113. package/dist/components/skeleton-loader/SkeletonLoader.stories.svelte +32 -32
  114. package/dist/components/skeleton-loader/SkeletonLoader.svelte +10 -10
  115. package/dist/components/skeleton-loader/StatcardSkeleton.svelte +9 -9
  116. package/dist/components/skeleton-loader/components/Skeleton.svelte +7 -7
  117. package/dist/components/skeleton-loader/components/SkeletonImage.svelte +12 -12
  118. package/dist/components/slider/Slider.stories.svelte +23 -23
  119. package/dist/components/slider/Slider.svelte +107 -107
  120. package/dist/components/spinner/Spinner.stories.svelte +8 -8
  121. package/dist/components/spinner/Spinner.svelte +18 -18
  122. package/dist/components/stat-card/StatCard.stories.svelte +26 -26
  123. package/dist/components/stat-card/StatCard.svelte +128 -128
  124. package/dist/components/status-badge/StatusBadge.stories.svelte +365 -365
  125. package/dist/components/status-badge/StatusBadge.svelte +54 -54
  126. package/dist/components/stepper/Stepper.stories.svelte +219 -219
  127. package/dist/components/stepper/components/stepper-root.svelte +12 -12
  128. package/dist/components/stepper/components/stepper-step.svelte +83 -83
  129. package/dist/components/table/Table.stories.svelte +87 -87
  130. package/dist/components/table/Table.svelte +32 -32
  131. package/dist/components/table/components/TBody.svelte +7 -7
  132. package/dist/components/table/components/THead.svelte +7 -7
  133. package/dist/components/table/components/Td.svelte +8 -8
  134. package/dist/components/table/components/Th.svelte +8 -8
  135. package/dist/components/table/components/Tr.svelte +11 -11
  136. package/dist/components/tabs/Tabs.stories.svelte +20 -20
  137. package/dist/components/tabs/Tabs.svelte +8 -8
  138. package/dist/components/tabs/components/Content.svelte +8 -8
  139. package/dist/components/tabs/components/Tab.svelte +14 -14
  140. package/dist/components/tabs/components/Tabs.svelte +7 -7
  141. package/dist/components/tag/Tag.stories.svelte +57 -57
  142. package/dist/components/tag/Tag.svelte +95 -95
  143. package/dist/components/textarea/Textarea.stories.svelte +70 -70
  144. package/dist/components/textarea/Textarea.svelte +76 -76
  145. package/dist/components/toast/Toast.stories.svelte +204 -204
  146. package/dist/components/toast/Toast.svelte +53 -53
  147. package/dist/components/toggle/Toggle.stories.svelte +9 -9
  148. package/dist/components/toggle/Toggle.svelte +53 -53
  149. package/dist/components/toggle-icon-button/ToggleIconButton.stories.svelte +152 -152
  150. package/dist/components/toggle-icon-button/ToggleIconButton.svelte +99 -99
  151. package/dist/components/tooltip/Tooltip.stories.svelte +85 -111
  152. package/dist/components/tooltip/Tooltip.svelte +57 -46
  153. package/dist/components/tooltip/Tooltip.svelte.d.ts +1 -1
  154. package/dist/components/tooltip/TooltipTest.svelte +31 -0
  155. package/dist/components/tooltip/TooltipTest.svelte.d.ts +11 -0
  156. package/dist/fonts/index.js +1 -1
  157. package/dist/index.d.ts +0 -1
  158. package/dist/index.js +0 -1
  159. package/dist/notifications.d.ts +1 -4
  160. package/dist/notifications.js +1 -1
  161. package/dist/tailwind-safelist.js +406 -406
  162. package/dist/tailwind.preset.js +10 -10
  163. package/dist/tokens/colors.js +18 -18
  164. package/dist/tokens/typography.js +6 -6
  165. package/dist/tokens.js +19 -19
  166. package/dist/types/fonts.d.ts +2 -2
  167. package/package.json +199 -204
  168. package/dist/components/select/Select.svelte +0 -139
  169. package/dist/components/select/Select.svelte.d.ts +0 -60
  170. package/dist/components/select-new/Select.stories.svelte +0 -219
  171. package/dist/components/select-new/Select.stories.svelte.d.ts +0 -19
  172. package/dist/components/select-new/components/Group.svelte +0 -24
  173. package/dist/components/select-new/components/MultiSelectTrigger.svelte +0 -66
  174. package/dist/components/select-new/components/SelectContent.svelte +0 -33
  175. package/dist/components/select-new/components/SelectGroupHeading.svelte +0 -19
  176. package/dist/components/select-new/components/SelectItem.svelte +0 -39
  177. package/dist/components/select-new/components/SelectTrigger.svelte +0 -48
  178. package/dist/components/select-new/index.d.ts +0 -10
  179. package/dist/components/select-new/index.js +0 -12
  180. /package/dist/components/{select-new → select}/components/Group.svelte.d.ts +0 -0
  181. /package/dist/components/{select-new → select}/components/MultiSelectTrigger.svelte.d.ts +0 -0
  182. /package/dist/components/{select-new → select}/components/SelectContent.svelte.d.ts +0 -0
  183. /package/dist/components/{select-new → select}/components/SelectGroupHeading.svelte.d.ts +0 -0
  184. /package/dist/components/{select-new → select}/components/SelectItem.svelte.d.ts +0 -0
  185. /package/dist/components/{select-new → select}/components/SelectTrigger.svelte.d.ts +0 -0
  186. /package/dist/components/{select-new → select}/types.d.ts +0 -0
  187. /package/dist/components/{select-new → select}/types.js +0 -0
@@ -1,215 +1,215 @@
1
1
  <script lang="ts">
2
- import { init } from 'echarts';
3
- import type { EChartsOption, ECElementEvent, ECharts, SeriesOption } from 'echarts';
4
- import { onMount, type Snippet } from 'svelte';
5
- import { colors, textColor } from '../../../tokens';
6
-
7
- type ChartProps = {
8
- options: EChartsOption;
9
- theme?: string | object;
10
- renderer?: 'canvas' | 'svg';
11
- height?: string;
12
- width?: string;
13
- xAxisName?: string;
14
- yAxisName?: string;
15
- yAxisUnit?: string;
16
- xAxisOptions?: EChartsOption['xAxis'];
17
- yAxisOptions?: EChartsOption['yAxis'];
18
- // Common event handlers
19
- onitemclick?: (params: ECElementEvent) => void;
20
- onmouseover?: (params: ECElementEvent) => void;
21
- onmouseout?: () => void;
22
- // Additional options
23
- autoResize?: boolean;
24
- loading?: boolean;
25
- timeIndex?: number;
26
- children?: Snippet;
27
- };
28
-
29
- export type GenericChartProps = Omit<ChartProps, 'options'>;
30
-
31
- const {
32
- options,
33
- theme,
34
- renderer = 'canvas',
35
- height = '100%',
36
- width = '100%',
37
- onitemclick,
38
- onmouseover,
39
- onmouseout,
40
- autoResize = true,
41
- loading = false,
42
- timeIndex,
43
- children
44
- }: ChartProps = $props();
45
-
46
- let chart = $state<ECharts | null>(null);
47
- let container: HTMLElement;
48
-
49
- const defaultOptions: EChartsOption = {
50
- animation: false,
51
- grid: {
52
- left: '48px',
53
- right: '16px',
54
- top: '16px',
55
- bottom: '48px'
56
- },
57
- xAxis: {
58
- nameLocation: 'middle',
59
- nameGap: 32,
60
- axisLabel: {
61
- fontSize: 11,
62
- fontFamily: 'af Another Sans',
63
- lineHeight: 14,
64
- align: 'center',
65
- color: textColor.secondary,
66
- margin: 16
67
- },
68
- axisLine: {
69
- lineStyle: {
70
- color: colors.gray[2]
71
- }
72
- },
73
- nameTextStyle: {
74
- fontSize: 12,
75
- fontFamily: 'af Another Sans',
76
- color: textColor.secondary
77
- }
78
- },
79
- yAxis: {
80
- nameLocation: 'middle',
81
- nameGap: 32,
82
- nameRotate: 90,
83
- axisLabel: {
84
- fontSize: 11,
85
- fontFamily: 'af Another Sans',
86
- lineHeight: 14,
87
- align: 'center',
88
- color: textColor.secondary,
89
- margin: 16
90
- },
91
- axisLine: {
92
- lineStyle: {
93
- color: colors.gray[2]
94
- }
95
- },
96
- nameTextStyle: {
97
- fontSize: 12,
98
- fontFamily: 'af Another Sans',
99
- color: textColor.secondary
100
- }
101
- }
102
- } as const;
103
-
104
- function initChart() {
105
- if (container) {
106
- chart = init(container, theme, { renderer });
107
- chart.setOption(defaultOptions);
108
- chart.setOption(options, { notMerge: false });
109
- if (onitemclick) chart.on('click', onitemclick);
110
- if (onmouseover) chart.on('mouseover', onmouseover);
111
- if (onmouseout) chart.on('mouseout', onmouseout);
112
-
113
- if (loading) chart.showLoading();
114
- }
115
- }
116
-
117
- export function updateOptions(newOptions: EChartsOption) {
118
- if (chart) {
119
- chart.setOption(newOptions, { notMerge: false });
120
- }
121
- }
122
-
123
- $effect(() => {
124
- if (chart) {
125
- chart.setOption(options, { notMerge: false });
126
- }
127
- });
128
-
129
- // This effect is used to add a mark line to the chart when the timeIndex prop is provided
130
- $effect(() => {
131
- if (!chart || !timeIndex) return;
132
-
133
- const seriesArray = Array.isArray(options.series)
134
- ? options.series
135
- : options.series
136
- ? [options.series]
137
- : [];
138
-
139
- if (seriesArray.length === 0) return;
140
-
141
- const seriesUpdate: SeriesOption[] = seriesArray.map((s: SeriesOption, index: number) => {
142
- let newSeries = { ...s };
143
-
144
- if (index === 0) {
145
- if (typeof timeIndex === 'number') {
146
- const existingMarkLine =
147
- typeof newSeries.markLine === 'object' && newSeries.markLine !== null
148
- ? newSeries.markLine
149
- : {};
150
-
151
- newSeries.markLine = {
152
- ...existingMarkLine,
153
- id: 'currentLocationMarkLine',
154
- symbol: ['none', 'none'],
155
- silent: true,
156
- lineStyle: {
157
- color: colors.gray[2],
158
- type: 'dashed',
159
- width: 1
160
- },
161
- data: [{ xAxis: timeIndex }],
162
- label: {
163
- position: 'insideEndTop',
164
- show: false
165
- }
166
- };
167
- } else {
168
- if (
169
- newSeries.markLine &&
170
- typeof newSeries.markLine === 'object' &&
171
- 'id' in newSeries.markLine &&
172
- newSeries.markLine.id === 'currentLocationMarkLine'
173
- ) {
174
- delete newSeries.markLine;
175
- }
176
- }
177
- }
178
- return newSeries;
179
- });
180
-
181
- chart.setOption({ series: seriesUpdate }, { notMerge: false });
182
- });
183
-
184
- $effect(() => {
185
- if (loading) {
186
- chart?.showLoading();
187
- } else {
188
- chart?.hideLoading();
189
- }
190
- });
191
-
192
- onMount(() => {
193
- initChart();
194
-
195
- if (autoResize) {
196
- const resizeObserver = new ResizeObserver(() => chart?.resize());
197
- resizeObserver.observe(container);
198
- return () => {
199
- resizeObserver.disconnect();
200
- chart?.dispose();
201
- };
202
- }
203
- });
2
+ import { init } from 'echarts';
3
+ import type { EChartsOption, ECElementEvent, ECharts, SeriesOption } from 'echarts';
4
+ import { onMount, type Snippet } from 'svelte';
5
+ import { colors, textColor } from '../../../tokens';
6
+
7
+ type ChartProps = {
8
+ options: EChartsOption;
9
+ theme?: string | object;
10
+ renderer?: 'canvas' | 'svg';
11
+ height?: string;
12
+ width?: string;
13
+ xAxisName?: string;
14
+ yAxisName?: string;
15
+ yAxisUnit?: string;
16
+ xAxisOptions?: EChartsOption['xAxis'];
17
+ yAxisOptions?: EChartsOption['yAxis'];
18
+ // Common event handlers
19
+ onitemclick?: (params: ECElementEvent) => void;
20
+ onmouseover?: (params: ECElementEvent) => void;
21
+ onmouseout?: () => void;
22
+ // Additional options
23
+ autoResize?: boolean;
24
+ loading?: boolean;
25
+ timeIndex?: number;
26
+ children?: Snippet;
27
+ };
28
+
29
+ export type GenericChartProps = Omit<ChartProps, 'options'>;
30
+
31
+ const {
32
+ options,
33
+ theme,
34
+ renderer = 'canvas',
35
+ height = '100%',
36
+ width = '100%',
37
+ onitemclick,
38
+ onmouseover,
39
+ onmouseout,
40
+ autoResize = true,
41
+ loading = false,
42
+ timeIndex,
43
+ children,
44
+ }: ChartProps = $props();
45
+
46
+ let chart = $state<ECharts | null>(null);
47
+ let container: HTMLElement;
48
+
49
+ const defaultOptions: EChartsOption = {
50
+ animation: false,
51
+ grid: {
52
+ left: '48px',
53
+ right: '16px',
54
+ top: '16px',
55
+ bottom: '48px',
56
+ },
57
+ xAxis: {
58
+ nameLocation: 'middle',
59
+ nameGap: 32,
60
+ axisLabel: {
61
+ fontSize: 11,
62
+ fontFamily: 'af Another Sans',
63
+ lineHeight: 14,
64
+ align: 'center',
65
+ color: textColor.secondary,
66
+ margin: 16,
67
+ },
68
+ axisLine: {
69
+ lineStyle: {
70
+ color: colors.gray[2],
71
+ },
72
+ },
73
+ nameTextStyle: {
74
+ fontSize: 12,
75
+ fontFamily: 'af Another Sans',
76
+ color: textColor.secondary,
77
+ },
78
+ },
79
+ yAxis: {
80
+ nameLocation: 'middle',
81
+ nameGap: 32,
82
+ nameRotate: 90,
83
+ axisLabel: {
84
+ fontSize: 11,
85
+ fontFamily: 'af Another Sans',
86
+ lineHeight: 14,
87
+ align: 'center',
88
+ color: textColor.secondary,
89
+ margin: 16,
90
+ },
91
+ axisLine: {
92
+ lineStyle: {
93
+ color: colors.gray[2],
94
+ },
95
+ },
96
+ nameTextStyle: {
97
+ fontSize: 12,
98
+ fontFamily: 'af Another Sans',
99
+ color: textColor.secondary,
100
+ },
101
+ },
102
+ } as const;
103
+
104
+ function initChart() {
105
+ if (container) {
106
+ chart = init(container, theme, { renderer });
107
+ chart.setOption(defaultOptions);
108
+ chart.setOption(options, { notMerge: false });
109
+ if (onitemclick) chart.on('click', onitemclick);
110
+ if (onmouseover) chart.on('mouseover', onmouseover);
111
+ if (onmouseout) chart.on('mouseout', onmouseout);
112
+
113
+ if (loading) chart.showLoading();
114
+ }
115
+ }
116
+
117
+ export function updateOptions(newOptions: EChartsOption) {
118
+ if (chart) {
119
+ chart.setOption(newOptions, { notMerge: false });
120
+ }
121
+ }
122
+
123
+ $effect(() => {
124
+ if (chart) {
125
+ chart.setOption(options, { notMerge: false });
126
+ }
127
+ });
128
+
129
+ // This effect is used to add a mark line to the chart when the timeIndex prop is provided
130
+ $effect(() => {
131
+ if (!chart || !timeIndex) return;
132
+
133
+ const seriesArray = Array.isArray(options.series)
134
+ ? options.series
135
+ : options.series
136
+ ? [options.series]
137
+ : [];
138
+
139
+ if (seriesArray.length === 0) return;
140
+
141
+ const seriesUpdate: SeriesOption[] = seriesArray.map((s: SeriesOption, index: number) => {
142
+ let newSeries = { ...s };
143
+
144
+ if (index === 0) {
145
+ if (typeof timeIndex === 'number') {
146
+ const existingMarkLine =
147
+ typeof newSeries.markLine === 'object' && newSeries.markLine !== null
148
+ ? newSeries.markLine
149
+ : {};
150
+
151
+ newSeries.markLine = {
152
+ ...existingMarkLine,
153
+ id: 'currentLocationMarkLine',
154
+ symbol: ['none', 'none'],
155
+ silent: true,
156
+ lineStyle: {
157
+ color: colors.gray[2],
158
+ type: 'dashed',
159
+ width: 1,
160
+ },
161
+ data: [{ xAxis: timeIndex }],
162
+ label: {
163
+ position: 'insideEndTop',
164
+ show: false,
165
+ },
166
+ };
167
+ } else {
168
+ if (
169
+ newSeries.markLine &&
170
+ typeof newSeries.markLine === 'object' &&
171
+ 'id' in newSeries.markLine &&
172
+ newSeries.markLine.id === 'currentLocationMarkLine'
173
+ ) {
174
+ delete newSeries.markLine;
175
+ }
176
+ }
177
+ }
178
+ return newSeries;
179
+ });
180
+
181
+ chart.setOption({ series: seriesUpdate }, { notMerge: false });
182
+ });
183
+
184
+ $effect(() => {
185
+ if (loading) {
186
+ chart?.showLoading();
187
+ } else {
188
+ chart?.hideLoading();
189
+ }
190
+ });
191
+
192
+ onMount(() => {
193
+ initChart();
194
+
195
+ if (autoResize) {
196
+ const resizeObserver = new ResizeObserver(() => chart?.resize());
197
+ resizeObserver.observe(container);
198
+ return () => {
199
+ resizeObserver.disconnect();
200
+ chart?.dispose();
201
+ };
202
+ }
203
+ });
204
204
  </script>
205
205
 
206
206
  <div bind:this={container} style="width: {width}; height: {height};" class="chart-container">
207
- {@render children?.()}
207
+ {@render children?.()}
208
208
  </div>
209
209
 
210
210
  <style>
211
- .chart-container {
212
- position: relative;
213
- overflow: visible;
214
- }
211
+ .chart-container {
212
+ position: relative;
213
+ overflow: visible;
214
+ }
215
215
  </style>