sveltekit-ui 1.1.17 → 1.1.19
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/dist/Components/Alert/index.svelte +88 -0
- package/dist/Components/Alert/index.svelte.js +101 -0
- package/dist/Components/ArrowToggle/index.svelte +62 -0
- package/dist/Components/Attachment/index.svelte +77 -0
- package/dist/Components/Attachment/index.svelte.js +119 -0
- package/dist/Components/Audio/index.svelte +193 -0
- package/dist/Components/Audio/index.svelte.js +463 -0
- package/dist/Components/AudioEditor/index.svelte +252 -0
- package/dist/Components/AudioEditor/index.svelte.js +977 -0
- package/dist/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
- package/dist/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
- package/dist/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
- package/dist/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
- package/dist/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
- package/dist/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
- package/dist/Components/AuthCodeInput/index.svelte +85 -0
- package/dist/Components/AuthCodeInput/index.svelte.js +95 -0
- package/dist/Components/Breadcrumbs/index.svelte +27 -0
- package/dist/Components/Breadcrumbs/index.svelte.js +88 -0
- package/dist/Components/Button/index.svelte +721 -0
- package/dist/Components/Button/index.svelte.js +375 -0
- package/dist/Components/Chart/Klines/index.svelte +87 -0
- package/dist/Components/Chart/index.svelte +226 -0
- package/dist/Components/Chart/index.svelte.js +1099 -0
- package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +150 -0
- package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +45 -0
- package/dist/Components/ChartInput/DisplayNav/index.svelte +297 -0
- package/dist/Components/ChartInput/EditPanel/index.svelte +155 -0
- package/dist/Components/ChartInput/index.svelte +21 -0
- package/dist/Components/ChartInput/index.svelte.js +671 -0
- package/dist/Components/Checkbox/index.svelte +411 -0
- package/dist/Components/Checkbox/index.svelte.js +178 -0
- package/dist/Components/Code/index.svelte +23 -0
- package/dist/Components/Code/index.svelte.js +33 -0
- package/dist/Components/Color/index.svelte +51 -0
- package/dist/Components/Color/index.svelte.js +31 -0
- package/dist/Components/ColorInput/ChromaPicker/index.svelte +50 -0
- package/dist/Components/ColorInput/ColorPalette/index.svelte +62 -0
- package/dist/Components/ColorInput/OpacityPicker/index.svelte +68 -0
- package/dist/Components/ColorInput/ShowcasePicker/index.svelte +136 -0
- package/dist/Components/ColorInput/index.svelte +70 -0
- package/dist/Components/ColorInput/index.svelte.js +386 -0
- package/dist/Components/ConditionsInput/index.svelte +46 -0
- package/dist/Components/ConditionsInput/index.svelte.js +201 -0
- package/dist/Components/Confetti/index.svelte +98 -0
- package/dist/Components/Confetti/index.svelte.js +94 -0
- package/dist/Components/Content/index.svelte +500 -0
- package/dist/Components/Content/index.svelte.js +910 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +31 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +258 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +31 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +258 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +58 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +206 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +28 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +224 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +44 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +272 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +41 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +202 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +19 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +117 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +60 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +542 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +47 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +185 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +35 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +222 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +20 -0
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +84 -0
- package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +25 -0
- package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +91 -0
- package/dist/Components/ContentInput/AttributesInput/index.svelte +352 -0
- package/dist/Components/ContentInput/AttributesInput/index.svelte.js +1436 -0
- package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +64 -0
- package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +97 -0
- package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +184 -0
- package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +41 -0
- package/dist/Components/ContentInput/index.svelte +78 -0
- package/dist/Components/ContentInput/index.svelte.js +1197 -0
- package/dist/Components/CronInput/index.svelte +78 -0
- package/dist/Components/CronInput/index.svelte.js +198 -0
- package/dist/Components/DataTypeInput/index.svelte +174 -0
- package/dist/Components/DataTypeInput/index.svelte.js +565 -0
- package/dist/Components/Dropdown/index.svelte +116 -0
- package/dist/Components/Dropdown/index.svelte.js +403 -0
- package/dist/Components/EmailAddress/index.svelte +22 -0
- package/dist/Components/EmailAddress/index.svelte.js +45 -0
- package/dist/Components/ErrorX/index.svelte +58 -0
- package/dist/Components/Eye/index.svelte +57 -0
- package/dist/Components/FileInput/index.svelte +146 -0
- package/dist/Components/FileInput/index.svelte.js +225 -0
- package/dist/Components/Hamburger/index.svelte +99 -0
- package/dist/Components/HorizScrollBox/index.svelte +145 -0
- package/dist/Components/Icon/index.svelte +412 -0
- package/dist/Components/Icon/index.svelte.js +116 -0
- package/dist/Components/IconInput/index.svelte +77 -0
- package/dist/Components/IconInput/index.svelte.js +259 -0
- package/dist/Components/Image/index.svelte +126 -0
- package/dist/Components/Image/index.svelte.js +116 -0
- package/dist/Components/ImageEditor/Image/CropBox/index.svelte +165 -0
- package/dist/Components/ImageEditor/Image/index.svelte +104 -0
- package/dist/Components/ImageEditor/Panels/AI/index.svelte +44 -0
- package/dist/Components/ImageEditor/Panels/Crop/index.svelte +96 -0
- package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +124 -0
- package/dist/Components/ImageEditor/Panels/File/index.svelte +74 -0
- package/dist/Components/ImageEditor/Panels/Filters/index.svelte +46 -0
- package/dist/Components/ImageEditor/Panels/Resize/index.svelte +58 -0
- package/dist/Components/ImageEditor/index.svelte +93 -0
- package/dist/Components/ImageEditor/index.svelte.js +1961 -0
- package/dist/Components/ImageSlider/index.svelte +124 -0
- package/dist/Components/ImageSlider/index.svelte.js +99 -0
- package/dist/Components/InfoBox/index.svelte +89 -0
- package/dist/Components/Json/Nested/index.svelte +157 -0
- package/dist/Components/Json/index.svelte +60 -0
- package/dist/Components/Json/index.svelte.js +594 -0
- package/dist/Components/LabeledItem/index.svelte +102 -0
- package/dist/Components/Layout/NavBar/FullNav/index.svelte +52 -0
- package/dist/Components/Layout/NavBar/NavGuts/index.svelte +87 -0
- package/dist/Components/Layout/NavBar/index.svelte +72 -0
- package/dist/Components/Layout/index.svelte +149 -0
- package/dist/Components/Layout/index.svelte.js +360 -0
- package/dist/Components/Link/index.svelte +47 -0
- package/dist/Components/Link/index.svelte.js +136 -0
- package/dist/Components/LoadingSuccessDiv/index.svelte +51 -0
- package/dist/Components/LoadingWheel/index.svelte +38 -0
- package/dist/Components/Location/index.svelte +79 -0
- package/dist/Components/Location/index.svelte.js +288 -0
- package/dist/Components/LocationInput/index.svelte +197 -0
- package/dist/Components/LocationInput/index.svelte.js +965 -0
- package/dist/Components/Number/index.svelte +47 -0
- package/dist/Components/Number/index.svelte.js +151 -0
- package/dist/Components/PhoneCountryCode/index.svelte +7 -0
- package/dist/Components/PhoneCountryCode/index.svelte.js +260 -0
- package/dist/Components/PhoneNumber/index.svelte +22 -0
- package/dist/Components/PhoneNumber/index.svelte.js +41 -0
- package/dist/Components/Popover/index.svelte +396 -0
- package/dist/Components/Popover/index.svelte.js +319 -0
- package/dist/Components/Qr/index.svelte +85 -0
- package/dist/Components/Qr/index.svelte.js +301 -0
- package/dist/Components/QrInput/index.svelte +47 -0
- package/dist/Components/QrInput/index.svelte.js +218 -0
- package/dist/Components/Slider/index.svelte +239 -0
- package/dist/Components/Slider/index.svelte.js +469 -0
- package/dist/Components/Spacer/index.svelte +41 -0
- package/dist/Components/StoragePicker/DisplayFile/index.svelte +15 -0
- package/dist/Components/StoragePicker/index.svelte +187 -0
- package/dist/Components/StoragePicker/index.svelte.js +592 -0
- package/dist/Components/SuccessCheck/index.svelte +56 -0
- package/dist/Components/TableAdvanced/ColumnInput/index.svelte +117 -0
- package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +456 -0
- package/dist/Components/TableAdvanced/FilterInput/index.svelte +54 -0
- package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +247 -0
- package/dist/Components/TableAdvanced/Pagination/index.svelte +43 -0
- package/dist/Components/TableAdvanced/Pagination/index.svelte.js +97 -0
- package/dist/Components/TableAdvanced/SortByInput/index.svelte +72 -0
- package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +176 -0
- package/dist/Components/TableAdvanced/index.svelte +275 -0
- package/dist/Components/TableAdvanced/index.svelte.js +1565 -0
- package/dist/Components/Tag/index.svelte +45 -0
- package/dist/Components/Tag/index.svelte.js +76 -0
- package/dist/Components/TextArrayInput/index.svelte +108 -0
- package/dist/Components/TextArrayInput/index.svelte.js +239 -0
- package/dist/Components/TextInput/PasswordTooltip/index.svelte +89 -0
- package/dist/Components/TextInput/index.svelte +223 -0
- package/dist/Components/TextInput/index.svelte.js +447 -0
- package/dist/Components/Time/index.svelte +7 -0
- package/dist/Components/Time/index.svelte.js +38 -0
- package/dist/Components/TimeInput/NumberToggler/index.svelte +34 -0
- package/dist/Components/TimeInput/NumberToggler/index.svelte.js +79 -0
- package/dist/Components/TimeInput/index.js +702 -0
- package/dist/Components/TimeInput/index.svelte +211 -0
- package/dist/Components/TimeInput/index.svelte.js +638 -0
- package/dist/Components/Tooltip/index.svelte +143 -0
- package/dist/Components/TransparentBackground/index.svelte +153 -0
- package/dist/Components/TypingDots/index.svelte +84 -0
- package/dist/Components/VariablePathInput/index.svelte +63 -0
- package/dist/Components/VariablePathInput/index.svelte.js +273 -0
- package/dist/Components/VideoTBD/index.svelte +100 -0
- package/dist/Components/XFollow/index.svelte +42 -0
- package/dist/Components/XPost/index.svelte +52 -0
- package/dist/Components/XPost/index.svelte.js +64 -0
- package/dist/Components/YoutubeChannelButton/index.svelte +82 -0
- package/dist/Components/YoutubeVideo/index.svelte +73 -0
- package/dist/Components/YoutubeVideo/index.svelte.js +54 -0
- package/dist/actions/draggable.js +49 -0
- package/dist/actions/index.js +24 -0
- package/dist/actions/no_spaces.js +33 -0
- package/dist/actions/numbers_only.js +26 -0
- package/dist/actions/scroll_y.js +28 -0
- package/dist/actions/stop_scroll_propagation_y.js +42 -0
- package/dist/actions/swipe_handler.js +295 -0
- package/dist/client/astc_formatting/index.js +1128 -0
- package/dist/client/docs/index.js +7622 -0
- package/dist/client/index.js +735 -0
- package/dist/client/types/index.js +2812 -0
- package/dist/index.js +180 -0
- package/dist/style.css +682 -0
- package/package.json +2 -2
- package/src/lib/Components/Chart/index.svelte.js +11 -2
|
@@ -0,0 +1,671 @@
|
|
|
1
|
+
import { create_button_manager } from "../Button/index.svelte.js"
|
|
2
|
+
import { create_popover_manager } from "../Popover/index.svelte.js"
|
|
3
|
+
import { create_dropdown_manager } from "../Dropdown/index.svelte.js"
|
|
4
|
+
import { create_slider_manager } from "../Slider/index.svelte.js"
|
|
5
|
+
import { create_text_input_manager } from "../TextInput/index.svelte.js"
|
|
6
|
+
import { create_color_input_manager } from "../ColorInput/index.svelte.js"
|
|
7
|
+
import { create_breadcrumbs_manager } from "../Breadcrumbs/index.svelte.js"
|
|
8
|
+
import { create_unique_id, deep_copy } from "../../client/index.js"
|
|
9
|
+
|
|
10
|
+
export function create_chart_input_manager(config) {
|
|
11
|
+
let chart_builder_popover_manager = $state(null)
|
|
12
|
+
let chart_builder_popover_button_manager = $state(null)
|
|
13
|
+
let chart_prepped = $state(null)
|
|
14
|
+
let path_breadcrumbs_manager = $state(null)
|
|
15
|
+
let datasets = $state(null)
|
|
16
|
+
let finish_button_manager = $state(null)
|
|
17
|
+
|
|
18
|
+
const dataset_base = {
|
|
19
|
+
type: null,
|
|
20
|
+
name: null,
|
|
21
|
+
dataset_id: null,
|
|
22
|
+
keys: [],
|
|
23
|
+
period_x: null,
|
|
24
|
+
colors: [],
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const shared_y_axis_base = {
|
|
28
|
+
y_axis_type: null,
|
|
29
|
+
y_axis_title: null,
|
|
30
|
+
bottom_padding_pd: 0.2,
|
|
31
|
+
top_padding_pd: 0.2,
|
|
32
|
+
datasets: [JSON.parse(JSON.stringify(dataset_base))],
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const frame_base = {
|
|
36
|
+
aspect_ratio: 1.25,
|
|
37
|
+
shown_y_axis_index: 0,
|
|
38
|
+
shared_y_axiss: [JSON.parse(JSON.stringify(shared_y_axis_base))],
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const chart_base = {
|
|
42
|
+
id: "abcdefgh",
|
|
43
|
+
x_axis_type: "time",
|
|
44
|
+
x_axis_title: null,
|
|
45
|
+
frames: [JSON.parse(JSON.stringify(frame_base))],
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const x_axis_type_options = [
|
|
49
|
+
{ key: "time", name: "Time" },
|
|
50
|
+
{ key: "number", name: "Number" },
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
function move(array, from, to, on = 1) {
|
|
54
|
+
const copy = array.slice()
|
|
55
|
+
const removed = copy.splice(from, on)
|
|
56
|
+
copy.splice(to, 0, ...removed)
|
|
57
|
+
return copy
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function shift_frame_to_back(i) {
|
|
61
|
+
const to = chart_prepped.frames.length - 1
|
|
62
|
+
chart_prepped = get_chart_prepped({
|
|
63
|
+
...chart_prepped,
|
|
64
|
+
frames: move(chart_prepped.frames, i, to),
|
|
65
|
+
})
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function remove_frame(i) {
|
|
69
|
+
console.log("remove_frame", i)
|
|
70
|
+
chart_prepped = get_chart_prepped({ ...chart_prepped, frames: chart_prepped.frames.filter((_, idx) => idx !== i) })
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function add_frame() {
|
|
74
|
+
console.log("add_frame", chart_prepped?.frames, frame_base)
|
|
75
|
+
chart_prepped = get_chart_prepped({ ...chart_prepped, frames: [...chart_prepped?.frames, frame_base] })
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
let val = $derived.by(() => {
|
|
79
|
+
let frames = []
|
|
80
|
+
if (Array.isArray(chart_prepped?.frames)) {
|
|
81
|
+
for (let frame of chart_prepped?.frames) {
|
|
82
|
+
let shared_y_axiss = []
|
|
83
|
+
if (Array.isArray(frame?.shared_y_axiss)) {
|
|
84
|
+
for (let shared_y_axis of frame?.shared_y_axiss) {
|
|
85
|
+
let datasets = []
|
|
86
|
+
if (Array.isArray(shared_y_axis?.datasets)) {
|
|
87
|
+
for (let dataset of shared_y_axis?.datasets) {
|
|
88
|
+
datasets.push({
|
|
89
|
+
colors: dataset?.colors,
|
|
90
|
+
dataset_id: dataset?.dataset_id,
|
|
91
|
+
keys: dataset?.keys,
|
|
92
|
+
name: dataset?.name,
|
|
93
|
+
period_x: dataset?.period_x,
|
|
94
|
+
type: dataset?.type,
|
|
95
|
+
})
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
shared_y_axiss.push({
|
|
99
|
+
y_axis_title: shared_y_axis?.y_axis_title,
|
|
100
|
+
y_axis_type: shared_y_axis?.y_axis_type,
|
|
101
|
+
bottom_padding_pd: shared_y_axis?.bottom_padding_pd,
|
|
102
|
+
top_padding_pd: shared_y_axis?.top_padding_pd,
|
|
103
|
+
datasets: datasets,
|
|
104
|
+
})
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
frames.push({
|
|
108
|
+
shown_y_axis_index: frame?.shown_y_axis_index,
|
|
109
|
+
aspect_ratio: frame?.aspect_ratio,
|
|
110
|
+
shared_y_axiss: shared_y_axiss,
|
|
111
|
+
})
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
id: chart_prepped?.id,
|
|
116
|
+
x_axis_type: chart_prepped?.x_axis_type,
|
|
117
|
+
x_axis_title: chart_prepped?.x_axis_title,
|
|
118
|
+
shown_start_x: chart_prepped?.shown_start_x,
|
|
119
|
+
shown_end_x: chart_prepped?.shown_end_x,
|
|
120
|
+
min_x_scrollable: chart_prepped?.min_x_scrollable,
|
|
121
|
+
max_x_scrollable: chart_prepped?.max_x_scrollable,
|
|
122
|
+
frames: frames,
|
|
123
|
+
}
|
|
124
|
+
})
|
|
125
|
+
|
|
126
|
+
function shift_shared_y_axis_to_back(i) {
|
|
127
|
+
let chart_copy = deep_copy(chart_prepped)
|
|
128
|
+
const to = chart_copy.frames[path_breadcrumbs_manager?.val?.[0]].shared_y_axiss.length - 1
|
|
129
|
+
chart_copy.frames[path_breadcrumbs_manager?.val?.[0]].shared_y_axiss = move(
|
|
130
|
+
chart_copy.frames[path_breadcrumbs_manager?.val?.[0]].shared_y_axiss,
|
|
131
|
+
i,
|
|
132
|
+
to
|
|
133
|
+
)
|
|
134
|
+
chart_prepped = get_chart_prepped(chart_copy)
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
function remove_shared_y_axis(i) {
|
|
138
|
+
console.log("remove_frame", i)
|
|
139
|
+
let chart_copy = deep_copy(chart_prepped)
|
|
140
|
+
chart_copy.frames[path_breadcrumbs_manager?.val?.[0]].shared_y_axiss.splice(i, 1)
|
|
141
|
+
chart_prepped = get_chart_prepped(chart_copy)
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function add_shared_y_axis() {
|
|
145
|
+
console.log("add_shared_y_axis")
|
|
146
|
+
let chart_copy = deep_copy(chart_prepped)
|
|
147
|
+
chart_copy.frames[path_breadcrumbs_manager?.val?.[0]].shared_y_axiss = [
|
|
148
|
+
...chart_copy.frames[path_breadcrumbs_manager?.val?.[0]].shared_y_axiss,
|
|
149
|
+
shared_y_axis_base,
|
|
150
|
+
]
|
|
151
|
+
chart_prepped = get_chart_prepped(chart_copy)
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
const y_axis_type_options = [
|
|
155
|
+
{ key: "price", name: "Price" },
|
|
156
|
+
{ key: "pd", name: "Percent Decimal" },
|
|
157
|
+
{ key: "number", name: "Number" },
|
|
158
|
+
]
|
|
159
|
+
|
|
160
|
+
function shift_dataset_to_back(path) {
|
|
161
|
+
let chart_copy = deep_copy(chart_prepped)
|
|
162
|
+
const to = chart_copy.frames[path[0]].shared_y_axiss[path[1]].datasets.length - 1
|
|
163
|
+
chart_copy.frames[path[0]].shared_y_axiss[path[1]].datasets = move(
|
|
164
|
+
chart_copy.frames[path[0]].shared_y_axiss[path[1]].datasets,
|
|
165
|
+
path?.[2],
|
|
166
|
+
to
|
|
167
|
+
)
|
|
168
|
+
chart_prepped = get_chart_prepped(chart_copy)
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
function remove_dataset(path) {
|
|
172
|
+
console.log("remove_dataset", path)
|
|
173
|
+
let chart_copy = deep_copy(chart_prepped)
|
|
174
|
+
chart_copy.frames[path[0]].shared_y_axiss[path[1]].datasets.splice(path?.[2], 1)
|
|
175
|
+
chart_prepped = get_chart_prepped(chart_copy)
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function add_dataset(path) {
|
|
179
|
+
console.log("add_dataset")
|
|
180
|
+
let chart_copy = deep_copy(chart_prepped)
|
|
181
|
+
chart_copy.frames[path[0]].shared_y_axiss[path[1]].datasets = [
|
|
182
|
+
...chart_copy.frames[path[0]].shared_y_axiss[path[1]].datasets,
|
|
183
|
+
dataset_base,
|
|
184
|
+
]
|
|
185
|
+
chart_prepped = get_chart_prepped(chart_copy)
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
const dataset_type_options = [
|
|
189
|
+
{ key: "klines", name: "Klines", keys: ["x", "o", "l", "h", "c"] },
|
|
190
|
+
{ key: "points", name: "Points", keys: ["x", "y"] },
|
|
191
|
+
{ key: "path", name: "Path", keys: ["x", "y"] },
|
|
192
|
+
{ key: "lines", name: "Lines", keys: ["m", "b", "s"] },
|
|
193
|
+
]
|
|
194
|
+
|
|
195
|
+
const period_options = [
|
|
196
|
+
{ key: 60, name: "1m" },
|
|
197
|
+
{ key: 300, name: "5m" },
|
|
198
|
+
{ key: 900, name: "15m" },
|
|
199
|
+
{ key: 1800, name: "30m" },
|
|
200
|
+
{ key: 3600, name: "1h" },
|
|
201
|
+
{ key: 7200, name: "2h" },
|
|
202
|
+
{ key: 14400, name: "4h" },
|
|
203
|
+
{ key: 28800, name: "8h" },
|
|
204
|
+
{ key: 43200, name: "12h" },
|
|
205
|
+
{ key: 86400, name: "1d" },
|
|
206
|
+
{ key: 604800, name: "1w" },
|
|
207
|
+
]
|
|
208
|
+
|
|
209
|
+
function get_chart_prepped(input) {
|
|
210
|
+
const id = create_unique_id(null, 8)
|
|
211
|
+
let x_axis_type_dropdown_manager = $state(null)
|
|
212
|
+
let x_axis_title_text_input_manager = $state(null)
|
|
213
|
+
let frame_add_button_manager = $state(null)
|
|
214
|
+
x_axis_type_dropdown_manager = create_dropdown_manager({
|
|
215
|
+
label: "X Axis Type",
|
|
216
|
+
options: x_axis_type_options,
|
|
217
|
+
is_button_compressed: true,
|
|
218
|
+
val: input?.x_axis_type ?? x_axis_type_options?.[0]?.key,
|
|
219
|
+
})
|
|
220
|
+
x_axis_title_text_input_manager = create_text_input_manager({
|
|
221
|
+
label: "X Axis Title",
|
|
222
|
+
val: input?.x_axis_title,
|
|
223
|
+
})
|
|
224
|
+
frame_add_button_manager = create_button_manager({
|
|
225
|
+
type: "outlined",
|
|
226
|
+
is_compressed: true,
|
|
227
|
+
text: "Add Frame",
|
|
228
|
+
on_click: () => add_frame(),
|
|
229
|
+
})
|
|
230
|
+
let frames = []
|
|
231
|
+
if (Array.isArray(input?.frames)) {
|
|
232
|
+
for (let i = 0; i < input?.frames.length; i++) {
|
|
233
|
+
let frame_shift_to_back_button_manager = $state(null)
|
|
234
|
+
let frame_remove_button_manager = $state(null)
|
|
235
|
+
let frame_select_path_button_manager = $state(null)
|
|
236
|
+
let aspect_ratio_slider_manager = $state(null)
|
|
237
|
+
let add_shared_y_axis_button_manager = $state(null)
|
|
238
|
+
let shown_y_axis_index = $state(input.frames[i].shown_y_axis_index)
|
|
239
|
+
aspect_ratio_slider_manager = create_slider_manager({
|
|
240
|
+
label: "Aspect Ratio",
|
|
241
|
+
val: input.frames[i].aspect_ratio,
|
|
242
|
+
min: 0.75,
|
|
243
|
+
max: 5,
|
|
244
|
+
step: 0.05,
|
|
245
|
+
is_instant: true,
|
|
246
|
+
})
|
|
247
|
+
add_shared_y_axis_button_manager = create_button_manager({
|
|
248
|
+
type: "outlined",
|
|
249
|
+
is_compressed: true,
|
|
250
|
+
text: "Add Shared Y Axis",
|
|
251
|
+
on_click: () => add_shared_y_axis(),
|
|
252
|
+
})
|
|
253
|
+
frame_shift_to_back_button_manager = create_button_manager({
|
|
254
|
+
type: "outlined",
|
|
255
|
+
is_compressed: true,
|
|
256
|
+
text: "Shift To Bottom",
|
|
257
|
+
on_click: () => shift_frame_to_back(i),
|
|
258
|
+
})
|
|
259
|
+
frame_remove_button_manager = create_button_manager({
|
|
260
|
+
type: "outlined",
|
|
261
|
+
is_compressed: true,
|
|
262
|
+
text: "Remove Frame",
|
|
263
|
+
on_click: () => remove_frame(i),
|
|
264
|
+
})
|
|
265
|
+
frame_select_path_button_manager = create_button_manager({
|
|
266
|
+
type: "outlined",
|
|
267
|
+
is_compressed: true,
|
|
268
|
+
text: "Goto Frame",
|
|
269
|
+
on_click: () => path_breadcrumbs_manager.set_val([i]),
|
|
270
|
+
})
|
|
271
|
+
let shared_y_axiss = []
|
|
272
|
+
if (Array.isArray(input?.frames?.[i]?.shared_y_axiss)) {
|
|
273
|
+
for (let j = 0; j < input?.frames?.[i]?.shared_y_axiss.length; j++) {
|
|
274
|
+
let shift_to_back_button_manager = $state(null)
|
|
275
|
+
let remove_button_manager = $state(null)
|
|
276
|
+
let select_path_button_manager = $state(null)
|
|
277
|
+
let top_padding_pd_slider_manager = $state(null)
|
|
278
|
+
let bottom_padding_pd_slider_manager = $state(null)
|
|
279
|
+
let y_axis_type_dropdown_manager = $state(null)
|
|
280
|
+
let y_axis_title_text_input_manager = $state(null)
|
|
281
|
+
let add_dataset_button_manager = $state(null)
|
|
282
|
+
shift_to_back_button_manager = create_button_manager({
|
|
283
|
+
type: "outlined",
|
|
284
|
+
is_compressed: true,
|
|
285
|
+
text: "Shift To Back",
|
|
286
|
+
on_click: () => shift_shared_y_axis_to_back(i, j),
|
|
287
|
+
})
|
|
288
|
+
remove_button_manager = create_button_manager({
|
|
289
|
+
type: "outlined",
|
|
290
|
+
is_compressed: true,
|
|
291
|
+
text: "Remove Shared Y Axis",
|
|
292
|
+
on_click: () => remove_shared_y_axis(i, j),
|
|
293
|
+
})
|
|
294
|
+
select_path_button_manager = create_button_manager({
|
|
295
|
+
type: "outlined",
|
|
296
|
+
is_compressed: true,
|
|
297
|
+
text: "Goto Shared Y Axis",
|
|
298
|
+
on_click: () => path_breadcrumbs_manager?.set_val([i, j]),
|
|
299
|
+
})
|
|
300
|
+
top_padding_pd_slider_manager = create_slider_manager({
|
|
301
|
+
label: "Top Padding Percent Decimal",
|
|
302
|
+
val: input?.frames?.[i]?.shared_y_axiss?.[j].top_padding_pd,
|
|
303
|
+
min: -1,
|
|
304
|
+
max: 1,
|
|
305
|
+
step: 0.01,
|
|
306
|
+
is_instant: true,
|
|
307
|
+
})
|
|
308
|
+
bottom_padding_pd_slider_manager = create_slider_manager({
|
|
309
|
+
label: "Bottom Padding Percent Decimal",
|
|
310
|
+
val: input?.frames?.[i]?.shared_y_axiss?.[j].bottom_padding_pd,
|
|
311
|
+
min: -1,
|
|
312
|
+
max: 1,
|
|
313
|
+
step: 0.01,
|
|
314
|
+
is_instant: true,
|
|
315
|
+
})
|
|
316
|
+
y_axis_type_dropdown_manager = create_dropdown_manager({
|
|
317
|
+
label: "Y Axis Type",
|
|
318
|
+
is_button_compressed: true,
|
|
319
|
+
options: y_axis_type_options,
|
|
320
|
+
val: input?.frames?.[i]?.shared_y_axiss?.[j].y_axis_type,
|
|
321
|
+
})
|
|
322
|
+
y_axis_title_text_input_manager = create_text_input_manager({
|
|
323
|
+
label: "Y Axis Title",
|
|
324
|
+
val: input?.frames?.[i]?.shared_y_axiss?.[j].y_axis_title,
|
|
325
|
+
})
|
|
326
|
+
add_dataset_button_manager = create_button_manager({
|
|
327
|
+
type: "outlined",
|
|
328
|
+
is_compressed: true,
|
|
329
|
+
text: "Add Dataset",
|
|
330
|
+
on_click: () => add_dataset([i, j]),
|
|
331
|
+
})
|
|
332
|
+
let datasets_loc = []
|
|
333
|
+
if (Array.isArray(input?.frames?.[i]?.shared_y_axiss?.[j]?.datasets)) {
|
|
334
|
+
for (let g = 0; g < input?.frames?.[i]?.shared_y_axiss?.[j].datasets.length; g++) {
|
|
335
|
+
let name_text_input_manager = $state(null)
|
|
336
|
+
let dataset_type_dropdown_manager = $state(null)
|
|
337
|
+
let dataset_id_dropdown_manager = $state(null)
|
|
338
|
+
let dataset_period_dropdown_manager = $state(null)
|
|
339
|
+
let add_dataset_color_button_manager = $state(null)
|
|
340
|
+
name_text_input_manager = create_text_input_manager({
|
|
341
|
+
label: "Data Title",
|
|
342
|
+
val: input?.frames?.[i]?.shared_y_axiss?.[j]?.datasets?.[g]?.name,
|
|
343
|
+
})
|
|
344
|
+
dataset_type_dropdown_manager = create_dropdown_manager({
|
|
345
|
+
label: "Dataset Type",
|
|
346
|
+
is_button_compressed: true,
|
|
347
|
+
options: dataset_type_options,
|
|
348
|
+
val: input?.frames?.[i]?.shared_y_axiss?.[j]?.datasets?.[g]?.type,
|
|
349
|
+
})
|
|
350
|
+
dataset_id_dropdown_manager = create_dropdown_manager({
|
|
351
|
+
label: "Dataset ID",
|
|
352
|
+
is_button_compressed: true,
|
|
353
|
+
options: Object.keys(datasets).map((h) => {
|
|
354
|
+
return { key: h, name: h }
|
|
355
|
+
}),
|
|
356
|
+
val:
|
|
357
|
+
input?.frames?.[i]?.shared_y_axiss?.[j]?.datasets?.[g]?.dataset_id ||
|
|
358
|
+
(Object.keys(datasets).length > 0 ? Object.keys(datasets)?.[0] : null),
|
|
359
|
+
})
|
|
360
|
+
dataset_period_dropdown_manager = create_dropdown_manager({
|
|
361
|
+
label: "Dataset Period",
|
|
362
|
+
is_button_compressed: true,
|
|
363
|
+
options: period_options,
|
|
364
|
+
val: input?.frames?.[i]?.shared_y_axiss?.[j]?.datasets?.[g]?.period_x,
|
|
365
|
+
})
|
|
366
|
+
let colors_input = $state([])
|
|
367
|
+
if (Array.isArray(input?.frames?.[i]?.shared_y_axiss?.[j]?.datasets?.[g]?.colors)) {
|
|
368
|
+
for (let color of input?.frames?.[i]?.shared_y_axiss?.[j]?.datasets?.[g]?.colors) {
|
|
369
|
+
const id = create_unique_id(null, 20)
|
|
370
|
+
let remove_button_manager = create_button_manager({
|
|
371
|
+
type: "outlined",
|
|
372
|
+
support_icon: "x",
|
|
373
|
+
is_uniform: true,
|
|
374
|
+
on_click: () => {
|
|
375
|
+
colors_input = colors_input.filter((h) => h.id !== id)
|
|
376
|
+
},
|
|
377
|
+
})
|
|
378
|
+
let color_input_manager = create_color_input_manager({ val: color })
|
|
379
|
+
colors_input.push({
|
|
380
|
+
id,
|
|
381
|
+
get color_input_manager() {
|
|
382
|
+
return color_input_manager
|
|
383
|
+
},
|
|
384
|
+
get remove_button_manager() {
|
|
385
|
+
return remove_button_manager
|
|
386
|
+
},
|
|
387
|
+
})
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
add_dataset_color_button_manager = create_button_manager({
|
|
391
|
+
type: "outlined",
|
|
392
|
+
support_icon: "plus",
|
|
393
|
+
is_compressed: true,
|
|
394
|
+
text: "Add Color",
|
|
395
|
+
on_click: () => {
|
|
396
|
+
const id = create_unique_id(null, 20)
|
|
397
|
+
let remove_button_manager = create_button_manager({
|
|
398
|
+
type: "outlined",
|
|
399
|
+
support_icon: "x",
|
|
400
|
+
is_uniform: true,
|
|
401
|
+
on_click: () => {
|
|
402
|
+
colors_input = colors_input.filter((h) => h.id !== id)
|
|
403
|
+
},
|
|
404
|
+
})
|
|
405
|
+
let color_input_manager = create_color_input_manager({
|
|
406
|
+
val: {
|
|
407
|
+
l: 9,
|
|
408
|
+
c: 9,
|
|
409
|
+
h: 1,
|
|
410
|
+
o: 5,
|
|
411
|
+
is_theme_based: 1,
|
|
412
|
+
},
|
|
413
|
+
})
|
|
414
|
+
colors_input.push({
|
|
415
|
+
get color_input_manager() {
|
|
416
|
+
return color_input_manager
|
|
417
|
+
},
|
|
418
|
+
get remove_button_manager() {
|
|
419
|
+
return remove_button_manager
|
|
420
|
+
},
|
|
421
|
+
})
|
|
422
|
+
},
|
|
423
|
+
})
|
|
424
|
+
let dataset_options_key_options = datasets?.[dataset_id_dropdown_manager?.val]?.data?.[0]
|
|
425
|
+
? Object.entries(datasets?.[dataset_id_dropdown_manager?.val]?.data?.[0]).map(([key, value]) => {
|
|
426
|
+
return { key: key, name: key + ": (" + value + ")" }
|
|
427
|
+
})
|
|
428
|
+
: null
|
|
429
|
+
let dataset_keys_to_add = dataset_type_dropdown_manager?.val
|
|
430
|
+
? dataset_type_options.find((h) => h?.key === dataset_type_dropdown_manager?.val)?.keys
|
|
431
|
+
: null
|
|
432
|
+
let keys_input = []
|
|
433
|
+
if (Array.isArray(dataset_keys_to_add)) {
|
|
434
|
+
for (let key_i = 0; key_i < dataset_keys_to_add.length; key_i++) {
|
|
435
|
+
let key_dropdown_manager = create_dropdown_manager({
|
|
436
|
+
label: dataset_keys_to_add?.[key_i],
|
|
437
|
+
is_button_compressed: true,
|
|
438
|
+
options: dataset_options_key_options,
|
|
439
|
+
val: input?.frames?.[i]?.shared_y_axiss?.[j]?.datasets?.[g]?.keys?.[key_i],
|
|
440
|
+
})
|
|
441
|
+
keys_input.push({
|
|
442
|
+
get key_dropdown_manager() {
|
|
443
|
+
return key_dropdown_manager
|
|
444
|
+
},
|
|
445
|
+
})
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
let shift_to_back_button_manager = create_button_manager({
|
|
449
|
+
type: "outlined",
|
|
450
|
+
is_compressed: true,
|
|
451
|
+
text: "Shift To Back",
|
|
452
|
+
on_click: () => shift_dataset_to_back([i, j, g]),
|
|
453
|
+
})
|
|
454
|
+
let remove_button_manager = create_button_manager({
|
|
455
|
+
type: "outlined",
|
|
456
|
+
is_compressed: true,
|
|
457
|
+
text: "Remove Dataset",
|
|
458
|
+
on_click: () => remove_dataset([i, j, g]),
|
|
459
|
+
})
|
|
460
|
+
let select_path_button_manager = create_button_manager({
|
|
461
|
+
type: "outlined",
|
|
462
|
+
is_compressed: true,
|
|
463
|
+
text: "Goto Dataset",
|
|
464
|
+
on_click: () => path_breadcrumbs_manager.set_val([i, j, g]),
|
|
465
|
+
})
|
|
466
|
+
datasets_loc.push({
|
|
467
|
+
get name() {
|
|
468
|
+
return name_text_input_manager?.val
|
|
469
|
+
},
|
|
470
|
+
get type() {
|
|
471
|
+
return dataset_type_dropdown_manager?.val
|
|
472
|
+
},
|
|
473
|
+
get dataset_id() {
|
|
474
|
+
return dataset_id_dropdown_manager?.val
|
|
475
|
+
},
|
|
476
|
+
get period_x() {
|
|
477
|
+
return dataset_period_dropdown_manager?.val
|
|
478
|
+
},
|
|
479
|
+
get colors() {
|
|
480
|
+
return colors_input.map((h) => h?.color_input_manager?.val)
|
|
481
|
+
},
|
|
482
|
+
get colors_input() {
|
|
483
|
+
return colors_input
|
|
484
|
+
},
|
|
485
|
+
get keys() {
|
|
486
|
+
return keys_input.map((h) => h?.key_dropdown_manager?.val)
|
|
487
|
+
},
|
|
488
|
+
get keys_input() {
|
|
489
|
+
return keys_input
|
|
490
|
+
},
|
|
491
|
+
get name_text_input_manager() {
|
|
492
|
+
return name_text_input_manager
|
|
493
|
+
},
|
|
494
|
+
get dataset_type_dropdown_manager() {
|
|
495
|
+
return dataset_type_dropdown_manager
|
|
496
|
+
},
|
|
497
|
+
get dataset_id_dropdown_manager() {
|
|
498
|
+
return dataset_id_dropdown_manager
|
|
499
|
+
},
|
|
500
|
+
get dataset_period_dropdown_manager() {
|
|
501
|
+
return dataset_period_dropdown_manager
|
|
502
|
+
},
|
|
503
|
+
get add_dataset_color_button_manager() {
|
|
504
|
+
return add_dataset_color_button_manager
|
|
505
|
+
},
|
|
506
|
+
get shift_to_back_button_manager() {
|
|
507
|
+
return shift_to_back_button_manager
|
|
508
|
+
},
|
|
509
|
+
get remove_button_manager() {
|
|
510
|
+
return remove_button_manager
|
|
511
|
+
},
|
|
512
|
+
get select_path_button_manager() {
|
|
513
|
+
return select_path_button_manager
|
|
514
|
+
},
|
|
515
|
+
})
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
shared_y_axiss.push({
|
|
519
|
+
get top_padding_pd_slider_manager() {
|
|
520
|
+
return top_padding_pd_slider_manager
|
|
521
|
+
},
|
|
522
|
+
get bottom_padding_pd_slider_manager() {
|
|
523
|
+
return bottom_padding_pd_slider_manager
|
|
524
|
+
},
|
|
525
|
+
get y_axis_type_dropdown_manager() {
|
|
526
|
+
return y_axis_type_dropdown_manager
|
|
527
|
+
},
|
|
528
|
+
get y_axis_title_text_input_manager() {
|
|
529
|
+
return y_axis_title_text_input_manager
|
|
530
|
+
},
|
|
531
|
+
get add_dataset_button_manager() {
|
|
532
|
+
return add_dataset_button_manager
|
|
533
|
+
},
|
|
534
|
+
get top_padding_pd() {
|
|
535
|
+
return top_padding_pd_slider_manager?.val
|
|
536
|
+
},
|
|
537
|
+
get bottom_padding_pd() {
|
|
538
|
+
return bottom_padding_pd_slider_manager?.val
|
|
539
|
+
},
|
|
540
|
+
get y_axis_title() {
|
|
541
|
+
return y_axis_title_text_input_manager?.val
|
|
542
|
+
},
|
|
543
|
+
get y_axis_type() {
|
|
544
|
+
return y_axis_type_dropdown_manager?.val
|
|
545
|
+
},
|
|
546
|
+
get datasets() {
|
|
547
|
+
return datasets_loc
|
|
548
|
+
},
|
|
549
|
+
get shift_to_back_button_manager() {
|
|
550
|
+
return shift_to_back_button_manager
|
|
551
|
+
},
|
|
552
|
+
get remove_button_manager() {
|
|
553
|
+
return remove_button_manager
|
|
554
|
+
},
|
|
555
|
+
get select_path_button_manager() {
|
|
556
|
+
return select_path_button_manager
|
|
557
|
+
},
|
|
558
|
+
})
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
frames.push({
|
|
562
|
+
get frame_shift_to_back_button_manager() {
|
|
563
|
+
return frame_shift_to_back_button_manager
|
|
564
|
+
},
|
|
565
|
+
get frame_remove_button_manager() {
|
|
566
|
+
return frame_remove_button_manager
|
|
567
|
+
},
|
|
568
|
+
get frame_select_path_button_manager() {
|
|
569
|
+
return frame_select_path_button_manager
|
|
570
|
+
},
|
|
571
|
+
get add_shared_y_axis_button_manager() {
|
|
572
|
+
return add_shared_y_axis_button_manager
|
|
573
|
+
},
|
|
574
|
+
get aspect_ratio_slider_manager() {
|
|
575
|
+
return aspect_ratio_slider_manager
|
|
576
|
+
},
|
|
577
|
+
get aspect_ratio() {
|
|
578
|
+
return aspect_ratio_slider_manager?.val
|
|
579
|
+
},
|
|
580
|
+
get shared_y_axiss() {
|
|
581
|
+
return shared_y_axiss
|
|
582
|
+
},
|
|
583
|
+
get shown_y_axis_index() {
|
|
584
|
+
return shown_y_axis_index
|
|
585
|
+
},
|
|
586
|
+
})
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
return {
|
|
590
|
+
get id() {
|
|
591
|
+
return id
|
|
592
|
+
},
|
|
593
|
+
get x_axis_type() {
|
|
594
|
+
return x_axis_type_dropdown_manager?.val
|
|
595
|
+
},
|
|
596
|
+
get x_axis_title() {
|
|
597
|
+
return x_axis_title_text_input_manager?.val
|
|
598
|
+
},
|
|
599
|
+
get x_axis_type_dropdown_manager() {
|
|
600
|
+
return x_axis_type_dropdown_manager
|
|
601
|
+
},
|
|
602
|
+
get x_axis_title_text_input_manager() {
|
|
603
|
+
return x_axis_title_text_input_manager
|
|
604
|
+
},
|
|
605
|
+
get frame_add_button_manager() {
|
|
606
|
+
return frame_add_button_manager
|
|
607
|
+
},
|
|
608
|
+
get frames() {
|
|
609
|
+
return frames
|
|
610
|
+
},
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
function init(config) {
|
|
615
|
+
datasets = config?.datasets
|
|
616
|
+
chart_builder_popover_manager = create_popover_manager({
|
|
617
|
+
type: "center",
|
|
618
|
+
min_width: 280,
|
|
619
|
+
target_width: 600,
|
|
620
|
+
min_height: 280,
|
|
621
|
+
target_height: 500,
|
|
622
|
+
})
|
|
623
|
+
chart_builder_popover_button_manager = create_button_manager({
|
|
624
|
+
type: "primary",
|
|
625
|
+
text: "Chart Builder",
|
|
626
|
+
is_compressed: true,
|
|
627
|
+
popover_target: () => `popover_${chart_builder_popover_manager?.id}`,
|
|
628
|
+
})
|
|
629
|
+
path_breadcrumbs_manager = create_breadcrumbs_manager()
|
|
630
|
+
finish_button_manager = create_button_manager({
|
|
631
|
+
text: "Finish",
|
|
632
|
+
h: 10,
|
|
633
|
+
l: 1,
|
|
634
|
+
c: 1,
|
|
635
|
+
on_click: () => {
|
|
636
|
+
console.log("finish", val)
|
|
637
|
+
if (typeof config?.on_finish == "function") {
|
|
638
|
+
config?.on_finish(val)
|
|
639
|
+
}
|
|
640
|
+
chart_builder_popover_manager.close()
|
|
641
|
+
},
|
|
642
|
+
})
|
|
643
|
+
chart_prepped = get_chart_prepped(config?.chart)
|
|
644
|
+
setTimeout(() => {
|
|
645
|
+
console.log("chart_prepped_init", deep_copy(chart_prepped))
|
|
646
|
+
})
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
init(config)
|
|
650
|
+
|
|
651
|
+
return {
|
|
652
|
+
get val() {
|
|
653
|
+
return val
|
|
654
|
+
},
|
|
655
|
+
get chart_builder_popover_manager() {
|
|
656
|
+
return chart_builder_popover_manager
|
|
657
|
+
},
|
|
658
|
+
get chart_builder_popover_button_manager() {
|
|
659
|
+
return chart_builder_popover_button_manager
|
|
660
|
+
},
|
|
661
|
+
get path_breadcrumbs_manager() {
|
|
662
|
+
return path_breadcrumbs_manager
|
|
663
|
+
},
|
|
664
|
+
get chart_prepped() {
|
|
665
|
+
return chart_prepped
|
|
666
|
+
},
|
|
667
|
+
get finish_button_manager() {
|
|
668
|
+
return finish_button_manager
|
|
669
|
+
},
|
|
670
|
+
}
|
|
671
|
+
}
|