sveltekit-ui 1.1.17 → 1.1.18
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 +1090 -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 +1 -1
|
@@ -0,0 +1,1197 @@
|
|
|
1
|
+
import {
|
|
2
|
+
create_unique_id,
|
|
3
|
+
copy_to_clipboard,
|
|
4
|
+
astc_to_markdown,
|
|
5
|
+
astc_to_embedding_text,
|
|
6
|
+
markdown_to_astc,
|
|
7
|
+
json_to_data_type,
|
|
8
|
+
node_types,
|
|
9
|
+
deep_copy,
|
|
10
|
+
set_closurable,
|
|
11
|
+
} from "../../client/index.js"
|
|
12
|
+
import { create_button_manager } from "../Button/index.svelte.js"
|
|
13
|
+
import { create_popover_manager } from "../Popover/index.svelte.js"
|
|
14
|
+
import { create_dropdown_manager } from "../Dropdown/index.svelte.js"
|
|
15
|
+
import { create_text_input_manager } from "../TextInput/index.svelte.js"
|
|
16
|
+
import { create_attributes_input_manager } from "./AttributesInput/index.svelte.js"
|
|
17
|
+
import { create_content_manager } from "../Content/index.svelte.js"
|
|
18
|
+
import { create_add_element_manager } from "./ContentPanelBuilder/AddElement/index.svelte.js"
|
|
19
|
+
|
|
20
|
+
export function create_content_input_manager(config) {
|
|
21
|
+
const id = create_unique_id(null, 20)
|
|
22
|
+
|
|
23
|
+
let versions = $state([])
|
|
24
|
+
let selected_version_index = $state(0)
|
|
25
|
+
let versions_len = $derived(Array.isArray(versions) ? versions.length : 0)
|
|
26
|
+
let storage = $state(null)
|
|
27
|
+
let storage_default_folder_path = $state(null)
|
|
28
|
+
let storage_path = $state(null)
|
|
29
|
+
let preempt_add_first_element_button_manager = $state(null)
|
|
30
|
+
let first_el_add_element_manager = $state(null)
|
|
31
|
+
let selected_version_prepped = $state(null)
|
|
32
|
+
let paste_astc_markdown_popover_manager = $state(null)
|
|
33
|
+
let paste_astc_markdown_location_to_add_element = $state(null)
|
|
34
|
+
let paste_astc_markdown_dropdown_manager = $state(null)
|
|
35
|
+
let paste_astc_markdown_text_input_manager = $state(null)
|
|
36
|
+
let paste_astc_markdown_finish_button_manager = $state(null)
|
|
37
|
+
let location_to_add_element = $state(null)
|
|
38
|
+
let content_manager = $state(null)
|
|
39
|
+
let attributes_input = $state(null)
|
|
40
|
+
let focused_selector_id = $state(null)
|
|
41
|
+
let definition_stack = $state([])
|
|
42
|
+
let dragging_selector_id = $state(null)
|
|
43
|
+
let dragged_over_element_child = $state(null)
|
|
44
|
+
|
|
45
|
+
let mapkit_js_token = $derived(set_closurable(config?.mapkit_js_token, null))
|
|
46
|
+
|
|
47
|
+
function pass_event_down(input) {
|
|
48
|
+
if (typeof content_manager?.pass_event_down == "function") {
|
|
49
|
+
content_manager?.pass_event_down(input)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function get_defined_at_selector_id(selector_id) {
|
|
54
|
+
function traverse(input) {
|
|
55
|
+
let defined = {}
|
|
56
|
+
if (input?.type_id == selector_id) {
|
|
57
|
+
return { defined, is_found_selector_id: true }
|
|
58
|
+
} else if (input?.type_id == "loop") {
|
|
59
|
+
if (input?.attributes?.iter_identifier) {
|
|
60
|
+
defined[input?.attributes?.iter_identifier] = { type: "text_literal" }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (Array.isArray(input?.children)) {
|
|
64
|
+
for (let child of input?.children) {
|
|
65
|
+
let res = traverse(child)
|
|
66
|
+
defined = { ...defined, ...res?.defined }
|
|
67
|
+
if (res?.is_found_selector_id) {
|
|
68
|
+
break
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return { defined }
|
|
73
|
+
}
|
|
74
|
+
return traverse(versions?.[selected_version_index])?.defined
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function get_defined_options(selector_id) {
|
|
78
|
+
const defined_at_selector_id = get_defined_at_selector_id(selector_id)
|
|
79
|
+
const defined_data_type = json_to_data_type(
|
|
80
|
+
Object.assign({}, ...[...(Array.isArray(definition_stack) ? definition_stack : [])].reverse())
|
|
81
|
+
)
|
|
82
|
+
return Object.entries({ ...(defined_data_type?.properties || {}), ...defined_at_selector_id }).map(
|
|
83
|
+
([key, val]) => ({
|
|
84
|
+
key,
|
|
85
|
+
name: key,
|
|
86
|
+
data_type: val,
|
|
87
|
+
})
|
|
88
|
+
)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function set_selected_version(version_index) {
|
|
92
|
+
selected_version_index = version_index
|
|
93
|
+
let selected_version = versions?.[selected_version_index]
|
|
94
|
+
selected_version_prepped = prep_element(selected_version)
|
|
95
|
+
content_manager = create_content_manager({
|
|
96
|
+
val: selected_version,
|
|
97
|
+
on_event: config?.on_event,
|
|
98
|
+
storage_path: storage_path,
|
|
99
|
+
mapkit_js_token: mapkit_js_token,
|
|
100
|
+
definition_stack: definition_stack,
|
|
101
|
+
get focused_selector_id() {
|
|
102
|
+
return focused_selector_id
|
|
103
|
+
},
|
|
104
|
+
set_focused_selector_id,
|
|
105
|
+
open_edit_element_attributes_popover,
|
|
106
|
+
})
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function prep_element(element) {
|
|
110
|
+
let extra_popover_manager = $state(null)
|
|
111
|
+
let extra_popover_button_manager = $state(null)
|
|
112
|
+
let edit_attributes_popover_button_manager = $state(null)
|
|
113
|
+
let preempt_add_child_element_button_manager = $state(null)
|
|
114
|
+
let small_preempt_add_child_element_button_manager = $state(null)
|
|
115
|
+
let preempt_add_sibling_element_below_button_manager = $state(null)
|
|
116
|
+
let reset_ids_button_manager = $state(null)
|
|
117
|
+
let copy_markdown_button_manager = $state(null)
|
|
118
|
+
let copy_astc_button_manager = $state(null)
|
|
119
|
+
let shift_element_up_5_button_manager = $state(null)
|
|
120
|
+
let shift_element_up_button_manager = $state(null)
|
|
121
|
+
let shift_element_down_button_manager = $state(null)
|
|
122
|
+
let shift_element_down_5_button_manager = $state(null)
|
|
123
|
+
let delete_button_manager = $state(null)
|
|
124
|
+
let add_element_manager = $state(null)
|
|
125
|
+
edit_attributes_popover_button_manager = create_button_manager({
|
|
126
|
+
type: "soft",
|
|
127
|
+
is_uniform: true,
|
|
128
|
+
support_icon: "edit",
|
|
129
|
+
icon_size: 1.6,
|
|
130
|
+
icon_sw: 40,
|
|
131
|
+
min_height: 2,
|
|
132
|
+
border_radius: 0.5,
|
|
133
|
+
popover_target: () => `popover_${attributes_input?.popover_manager?.id}`,
|
|
134
|
+
on_click: () => open_edit_attributes_popover(),
|
|
135
|
+
})
|
|
136
|
+
function open_edit_attributes_popover() {
|
|
137
|
+
attributes_input.init({
|
|
138
|
+
storage: storage,
|
|
139
|
+
storage_default_folder_path: storage_default_folder_path,
|
|
140
|
+
storage_path: storage_path,
|
|
141
|
+
header: `Edit ${node_types?.[element?.type_id]?.name ? `${node_types?.[element?.type_id]?.name} ` : ""} (${
|
|
142
|
+
element?.selector_id
|
|
143
|
+
}) Attributes`,
|
|
144
|
+
content_type: element?.type_id,
|
|
145
|
+
selector_id: element?.selector_id,
|
|
146
|
+
val: element?.attributes,
|
|
147
|
+
get_defined_options: () => get_defined_options(element?.selector_id),
|
|
148
|
+
on_finish: (input) => {
|
|
149
|
+
attributes_input.popover_manager.close()
|
|
150
|
+
set_element_attributes(element?.selector_id, input)
|
|
151
|
+
},
|
|
152
|
+
})
|
|
153
|
+
setTimeout(() => {
|
|
154
|
+
attributes_input.popover_manager.open()
|
|
155
|
+
}, 200)
|
|
156
|
+
}
|
|
157
|
+
extra_popover_manager = create_popover_manager({
|
|
158
|
+
type: "dropdown",
|
|
159
|
+
min_width: 100,
|
|
160
|
+
target_width: 220,
|
|
161
|
+
min_height: 100,
|
|
162
|
+
target_height: 240,
|
|
163
|
+
anchor_id: () => `button_${extra_popover_button_manager?.id}`,
|
|
164
|
+
})
|
|
165
|
+
extra_popover_button_manager = create_button_manager({
|
|
166
|
+
type: "soft",
|
|
167
|
+
is_uniform: true,
|
|
168
|
+
support_icon: "three_dots",
|
|
169
|
+
icon_sw: 80,
|
|
170
|
+
icon_size: 1.6,
|
|
171
|
+
min_height: 2,
|
|
172
|
+
border_radius: 0.5,
|
|
173
|
+
popover_target: `popover_${extra_popover_manager?.id}`,
|
|
174
|
+
})
|
|
175
|
+
small_preempt_add_child_element_button_manager = create_button_manager({
|
|
176
|
+
type: "soft",
|
|
177
|
+
support_icon: "plus",
|
|
178
|
+
is_uniform: true,
|
|
179
|
+
icon_size: 1.6,
|
|
180
|
+
icon_sw: 40,
|
|
181
|
+
min_height: 2,
|
|
182
|
+
border_radius: 0.5,
|
|
183
|
+
on_click: () => initiate_add_child_el_to_selector(element?.selector_id),
|
|
184
|
+
})
|
|
185
|
+
reset_ids_button_manager = create_button_manager({
|
|
186
|
+
type: "soft",
|
|
187
|
+
support_icon: "refresh",
|
|
188
|
+
text_align: "left",
|
|
189
|
+
text: "Reset IDs",
|
|
190
|
+
is_success_animation: true,
|
|
191
|
+
on_click: () => {
|
|
192
|
+
extra_popover_manager.close()
|
|
193
|
+
setTimeout(() => {
|
|
194
|
+
reset_ids(element?.selector_id)
|
|
195
|
+
}, 200)
|
|
196
|
+
},
|
|
197
|
+
})
|
|
198
|
+
copy_markdown_button_manager = create_button_manager({
|
|
199
|
+
type: "soft",
|
|
200
|
+
support_icon: "clipboard",
|
|
201
|
+
text_align: "left",
|
|
202
|
+
text: "Copy Markdown",
|
|
203
|
+
is_success_animation: true,
|
|
204
|
+
on_click: () => copy_element_markdown(element?.selector_id),
|
|
205
|
+
})
|
|
206
|
+
copy_astc_button_manager = create_button_manager({
|
|
207
|
+
type: "soft",
|
|
208
|
+
support_icon: "clipboard",
|
|
209
|
+
text: "Copy astc",
|
|
210
|
+
text_align: "left",
|
|
211
|
+
is_success_animation: true,
|
|
212
|
+
on_click: () => copy_element_astc(element?.selector_id),
|
|
213
|
+
})
|
|
214
|
+
preempt_add_child_element_button_manager = create_button_manager({
|
|
215
|
+
type: "soft",
|
|
216
|
+
support_icon: "plus",
|
|
217
|
+
text_align: "left",
|
|
218
|
+
text: "Add Child Element",
|
|
219
|
+
on_click: () => initiate_add_child_el_to_selector(element?.selector_id),
|
|
220
|
+
})
|
|
221
|
+
preempt_add_sibling_element_below_button_manager = create_button_manager({
|
|
222
|
+
type: "soft",
|
|
223
|
+
support_icon: "plus",
|
|
224
|
+
text_align: "left",
|
|
225
|
+
text: "Add Element Below",
|
|
226
|
+
on_click: () => initiate_add_sibling_el_to_selector(element?.selector_id),
|
|
227
|
+
})
|
|
228
|
+
shift_element_up_5_button_manager = create_button_manager({
|
|
229
|
+
type: "soft",
|
|
230
|
+
support_icon: "arrow_tailed",
|
|
231
|
+
icon_deg: 270,
|
|
232
|
+
text_align: "left",
|
|
233
|
+
text: "Shift Element Up 5",
|
|
234
|
+
on_click: () => {
|
|
235
|
+
extra_popover_manager.close()
|
|
236
|
+
setTimeout(() => {
|
|
237
|
+
shift_el(element?.selector_id, -5)
|
|
238
|
+
}, 500)
|
|
239
|
+
},
|
|
240
|
+
})
|
|
241
|
+
shift_element_up_button_manager = create_button_manager({
|
|
242
|
+
type: "soft",
|
|
243
|
+
support_icon: "arrow_tailed",
|
|
244
|
+
icon_deg: 270,
|
|
245
|
+
text_align: "left",
|
|
246
|
+
text: "Shift Element Up",
|
|
247
|
+
on_click: () => {
|
|
248
|
+
extra_popover_manager.close()
|
|
249
|
+
setTimeout(() => {
|
|
250
|
+
shift_el(element?.selector_id, -1)
|
|
251
|
+
}, 500)
|
|
252
|
+
},
|
|
253
|
+
})
|
|
254
|
+
shift_element_down_button_manager = create_button_manager({
|
|
255
|
+
type: "soft",
|
|
256
|
+
support_icon: "arrow_tailed",
|
|
257
|
+
icon_deg: 90,
|
|
258
|
+
text_align: "left",
|
|
259
|
+
text: "Shift Element Down",
|
|
260
|
+
on_click: () => {
|
|
261
|
+
extra_popover_manager.close()
|
|
262
|
+
setTimeout(() => {
|
|
263
|
+
shift_el(element?.selector_id, 1)
|
|
264
|
+
}, 500)
|
|
265
|
+
},
|
|
266
|
+
})
|
|
267
|
+
shift_element_down_5_button_manager = create_button_manager({
|
|
268
|
+
type: "soft",
|
|
269
|
+
support_icon: "arrow_tailed",
|
|
270
|
+
icon_deg: 90,
|
|
271
|
+
text_align: "left",
|
|
272
|
+
text: "Shift Element Down 5",
|
|
273
|
+
on_click: () => {
|
|
274
|
+
extra_popover_manager.close()
|
|
275
|
+
setTimeout(() => {
|
|
276
|
+
shift_el(element?.selector_id, 5)
|
|
277
|
+
}, 500)
|
|
278
|
+
},
|
|
279
|
+
})
|
|
280
|
+
delete_button_manager = create_button_manager({
|
|
281
|
+
type: "outlined",
|
|
282
|
+
support_icon: "trashcan",
|
|
283
|
+
color: "var(--error-t)",
|
|
284
|
+
icon_sw: 20,
|
|
285
|
+
text_align: "left",
|
|
286
|
+
text: "Delete",
|
|
287
|
+
on_click: () => {
|
|
288
|
+
extra_popover_manager.close()
|
|
289
|
+
setTimeout(() => {
|
|
290
|
+
delete_el(element?.selector_id)
|
|
291
|
+
}, 500)
|
|
292
|
+
},
|
|
293
|
+
})
|
|
294
|
+
const avail_child_element_ids = calc_child_element_options(element)
|
|
295
|
+
const parent_el = get_parent_el(element?.selector_id)
|
|
296
|
+
const avail_sibling_element_ids = calc_child_element_options(parent_el)
|
|
297
|
+
const total_siblings = Array.isArray(parent_el?.children) ? parent_el?.children.length : 0
|
|
298
|
+
const element_index_of_siblings = Array.isArray(parent_el?.children)
|
|
299
|
+
? parent_el.children.findIndex((h) => h?.selector_id == element?.selector_id)
|
|
300
|
+
: null
|
|
301
|
+
add_element_manager = create_add_element_manager({
|
|
302
|
+
header: () => (location_to_add_element == "sibling" ? "Add Element below" : "Add Child Element"),
|
|
303
|
+
avail_element_ids: () =>
|
|
304
|
+
location_to_add_element == "sibling" ? avail_sibling_element_ids : avail_child_element_ids,
|
|
305
|
+
on_item_click: (input) => {
|
|
306
|
+
if (input == "paste") {
|
|
307
|
+
paste_astc_markdown_location_to_add_element = {
|
|
308
|
+
selector_id: element?.selector_id,
|
|
309
|
+
location_to_add_element: location_to_add_element == "sibling" ? "sibling" : "child",
|
|
310
|
+
}
|
|
311
|
+
paste_astc_markdown_popover_manager.open()
|
|
312
|
+
return
|
|
313
|
+
}
|
|
314
|
+
setTimeout(() => {
|
|
315
|
+
if (location_to_add_element == "sibling") {
|
|
316
|
+
add_sibling_el(element?.selector_id, input)
|
|
317
|
+
} else {
|
|
318
|
+
add_child_el(element?.selector_id, input)
|
|
319
|
+
}
|
|
320
|
+
}, 500)
|
|
321
|
+
},
|
|
322
|
+
})
|
|
323
|
+
let children = $state([])
|
|
324
|
+
if (Array.isArray(element?.children)) {
|
|
325
|
+
for (let child of element?.children) {
|
|
326
|
+
children.push(prep_element(child))
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return {
|
|
330
|
+
get element() {
|
|
331
|
+
return element
|
|
332
|
+
},
|
|
333
|
+
get children() {
|
|
334
|
+
return children
|
|
335
|
+
},
|
|
336
|
+
get edit_attributes_popover_button_manager() {
|
|
337
|
+
return edit_attributes_popover_button_manager
|
|
338
|
+
},
|
|
339
|
+
get extra_popover_manager() {
|
|
340
|
+
return extra_popover_manager
|
|
341
|
+
},
|
|
342
|
+
get extra_popover_button_manager() {
|
|
343
|
+
return extra_popover_button_manager
|
|
344
|
+
},
|
|
345
|
+
get add_element_manager() {
|
|
346
|
+
return add_element_manager
|
|
347
|
+
},
|
|
348
|
+
get preempt_add_child_element_button_manager() {
|
|
349
|
+
return preempt_add_child_element_button_manager
|
|
350
|
+
},
|
|
351
|
+
get small_preempt_add_child_element_button_manager() {
|
|
352
|
+
return small_preempt_add_child_element_button_manager
|
|
353
|
+
},
|
|
354
|
+
get preempt_add_sibling_element_below_button_manager() {
|
|
355
|
+
return preempt_add_sibling_element_below_button_manager
|
|
356
|
+
},
|
|
357
|
+
get reset_ids_button_manager() {
|
|
358
|
+
return reset_ids_button_manager
|
|
359
|
+
},
|
|
360
|
+
get copy_markdown_button_manager() {
|
|
361
|
+
return copy_markdown_button_manager
|
|
362
|
+
},
|
|
363
|
+
get copy_astc_button_manager() {
|
|
364
|
+
return copy_astc_button_manager
|
|
365
|
+
},
|
|
366
|
+
get shift_element_up_5_button_manager() {
|
|
367
|
+
return shift_element_up_5_button_manager
|
|
368
|
+
},
|
|
369
|
+
get shift_element_up_button_manager() {
|
|
370
|
+
return shift_element_up_button_manager
|
|
371
|
+
},
|
|
372
|
+
get shift_element_down_button_manager() {
|
|
373
|
+
return shift_element_down_button_manager
|
|
374
|
+
},
|
|
375
|
+
get shift_element_down_5_button_manager() {
|
|
376
|
+
return shift_element_down_5_button_manager
|
|
377
|
+
},
|
|
378
|
+
get delete_button_manager() {
|
|
379
|
+
return delete_button_manager
|
|
380
|
+
},
|
|
381
|
+
get avail_child_element_ids() {
|
|
382
|
+
return avail_child_element_ids
|
|
383
|
+
},
|
|
384
|
+
get avail_sibling_element_ids() {
|
|
385
|
+
return avail_sibling_element_ids
|
|
386
|
+
},
|
|
387
|
+
get parent_el() {
|
|
388
|
+
return parent_el
|
|
389
|
+
},
|
|
390
|
+
get total_siblings() {
|
|
391
|
+
return total_siblings
|
|
392
|
+
},
|
|
393
|
+
get element_index_of_siblings() {
|
|
394
|
+
return element_index_of_siblings
|
|
395
|
+
},
|
|
396
|
+
open_edit_attributes_popover,
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
function get_parent_el(selector_id, element = null) {
|
|
401
|
+
function get_parent_el_recursive(selector_id, element) {
|
|
402
|
+
if (selector_id && element && Array.isArray(element?.children)) {
|
|
403
|
+
for (let child of element.children) {
|
|
404
|
+
if (child?.selector_id == selector_id) {
|
|
405
|
+
return element
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
for (let child of element.children) {
|
|
409
|
+
const res = get_parent_el_recursive(selector_id, child)
|
|
410
|
+
if (res) {
|
|
411
|
+
return res
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
return null
|
|
416
|
+
}
|
|
417
|
+
return get_parent_el_recursive(selector_id, element ?? versions?.[selected_version_index])
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
function add_version(version) {
|
|
421
|
+
versions = [deep_copy(version), ...versions.slice(selected_version_index)]
|
|
422
|
+
selected_version_index = 0
|
|
423
|
+
set_selected_version(0)
|
|
424
|
+
if (config?.on_change) {
|
|
425
|
+
config?.on_change(deep_copy(version))
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
function handle_element_child_drag_over(e, selector_id, is_children = false) {
|
|
430
|
+
e.preventDefault()
|
|
431
|
+
e.stopPropagation()
|
|
432
|
+
dragged_over_element_child = { selector_id, is_children }
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
function handle_element_child_drag_drop(e, selector_id, is_children = false) {
|
|
436
|
+
e.stopPropagation()
|
|
437
|
+
if (selector_id == dragging_selector_id) {
|
|
438
|
+
dragging_selector_id = null
|
|
439
|
+
return
|
|
440
|
+
}
|
|
441
|
+
const found_element = traverse_els_for_match(dragging_selector_id)
|
|
442
|
+
const removed_version = remove_el_recursive(selected_version_prepped?.element, dragging_selector_id)
|
|
443
|
+
let readded_version = null
|
|
444
|
+
if (is_children) {
|
|
445
|
+
readded_version = add_child_to_el_recursive(removed_version, selector_id, found_element)
|
|
446
|
+
} else {
|
|
447
|
+
let dom_el_parent = get_parent_el(selector_id, removed_version)
|
|
448
|
+
const element_index_of_siblings = Array.isArray(dom_el_parent?.children)
|
|
449
|
+
? dom_el_parent.children.findIndex((h) => h.selector_id == selector_id)
|
|
450
|
+
: null
|
|
451
|
+
if (dom_el_parent && found_element) {
|
|
452
|
+
if (Array.isArray(dom_el_parent?.children)) {
|
|
453
|
+
dom_el_parent.children.splice(element_index_of_siblings, 0, found_element)
|
|
454
|
+
} else {
|
|
455
|
+
dom_el_parent.children = [found_element]
|
|
456
|
+
}
|
|
457
|
+
readded_version = replace_el_recursive(removed_version, dom_el_parent?.selector_id, dom_el_parent)
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
add_version(readded_version)
|
|
461
|
+
dragging_selector_id = null
|
|
462
|
+
}
|
|
463
|
+
function handle_element_child_drag_start(e, selector_id) {
|
|
464
|
+
e.stopPropagation()
|
|
465
|
+
dragging_selector_id = selector_id
|
|
466
|
+
}
|
|
467
|
+
function handle_element_child_drag_end(e, selector_id) {
|
|
468
|
+
dragged_over_element_child = null
|
|
469
|
+
dragging_selector_id = null
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
function reset_ids(selector_id) {
|
|
473
|
+
const found_element = traverse_els_for_match(selector_id)
|
|
474
|
+
const clean_element = reset_ids_recursive(found_element)
|
|
475
|
+
const new_version = find_and_replace_element(selector_id, selected_version_prepped?.element, clean_element)
|
|
476
|
+
add_version(new_version)
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
function reset_ids_recursive(element, selector_id) {
|
|
480
|
+
if (!element?.selector_id || element?.selector_id == selector_id) {
|
|
481
|
+
return null
|
|
482
|
+
}
|
|
483
|
+
element.selector_id = create_unique_id(null, 8)
|
|
484
|
+
let new_children = []
|
|
485
|
+
if (Array.isArray(element?.children)) {
|
|
486
|
+
for (let child of element?.children) {
|
|
487
|
+
const child_new_el = reset_ids_recursive(child, selector_id)
|
|
488
|
+
if (child_new_el) {
|
|
489
|
+
new_children.push(child_new_el)
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
element.children = new_children
|
|
494
|
+
return element
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
function find_and_replace_element(selector_id, root_el, replacement_el) {
|
|
498
|
+
function replace_recursive(node) {
|
|
499
|
+
if (!node) return null
|
|
500
|
+
if (node.selector_id === selector_id) {
|
|
501
|
+
return deep_copy(replacement_el)
|
|
502
|
+
}
|
|
503
|
+
const new_children = Array.isArray(node.children) ? node.children.map(replace_recursive).filter(Boolean) : []
|
|
504
|
+
return {
|
|
505
|
+
type_id: node.type_id,
|
|
506
|
+
selector_id: node.selector_id,
|
|
507
|
+
attributes: node.attributes ? { ...node.attributes } : node.attributes,
|
|
508
|
+
children: new_children,
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
return replace_recursive(root_el)
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
function copy_markdown() {
|
|
515
|
+
copy_to_clipboard(astc_to_markdown(selected_version_prepped?.element))
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
function copy_astc() {
|
|
519
|
+
copy_to_clipboard(JSON.stringify(selected_version_prepped?.element))
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
function copy_text() {
|
|
523
|
+
copy_to_clipboard(astc_to_embedding_text(selected_version_prepped?.element))
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
function finish() {
|
|
527
|
+
if (typeof config?.on_finish == "function") {
|
|
528
|
+
config?.on_finish(selected_version_prepped?.element)
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
function open_edit_markdown_modal() {
|
|
533
|
+
paste_astc_markdown_text_input_manager.set_val(astc_to_markdown(selected_version_prepped?.element))
|
|
534
|
+
paste_astc_markdown_popover_manager.open()
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
function set_astc_from_markdown() {
|
|
538
|
+
add_version(markdown_to_astc(paste_astc_markdown_text_input_manager?.val))
|
|
539
|
+
paste_astc_markdown_popover_manager.close()
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
let astc_element_string = $state(null)
|
|
543
|
+
function add_astc_to_element_children(element) {
|
|
544
|
+
if (Array.isArray(element?.children) && astc_element_string) {
|
|
545
|
+
element.children.push(JSON.parse(astc_element_string))
|
|
546
|
+
} else if (astc_element_string) {
|
|
547
|
+
element.children = [JSON.parse(astc_element_string)]
|
|
548
|
+
}
|
|
549
|
+
astc_element_string = null
|
|
550
|
+
paste_astc_markdown_popover_manager.close()
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
function scroll_to_selector_id(selector_id) {
|
|
554
|
+
const container = document.getElementById(`panel_scroll_${id}`)
|
|
555
|
+
if (!container || !selector_id) return
|
|
556
|
+
const el = container.querySelector(`#selector_id_${selector_id}`)
|
|
557
|
+
if (!el) return
|
|
558
|
+
const el_rect = el.getBoundingClientRect()
|
|
559
|
+
const c_rect = container.getBoundingClientRect()
|
|
560
|
+
const is_visible = el_rect.top >= c_rect.top && el_rect.bottom <= c_rect.bottom
|
|
561
|
+
if (!is_visible) {
|
|
562
|
+
el.scrollIntoView({
|
|
563
|
+
behavior: "smooth",
|
|
564
|
+
block: "center",
|
|
565
|
+
inline: "nearest",
|
|
566
|
+
})
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
function pulse_focus(selector_id) {
|
|
571
|
+
const container = document.getElementById(`panel_scroll_${id}`)
|
|
572
|
+
const el = container?.querySelector(`#selector_id_${selector_id}`)
|
|
573
|
+
if (!el) return
|
|
574
|
+
el.classList.add("focus_pulse")
|
|
575
|
+
setTimeout(() => el.classList.remove("focus_pulse"), 1000)
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
function set_focused_selector_id(selector_id, is_scroll_to = false) {
|
|
579
|
+
focused_selector_id = selector_id
|
|
580
|
+
if (selector_id && is_scroll_to) {
|
|
581
|
+
scroll_to_selector_id(selector_id)
|
|
582
|
+
pulse_focus(selector_id)
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
function add_sibling_el(selector_id, el_type_id, element_to_add = null) {
|
|
587
|
+
let dom_el_parent = get_parent_el(selector_id)
|
|
588
|
+
const element_index_of_siblings = Array.isArray(dom_el_parent?.children)
|
|
589
|
+
? dom_el_parent.children.findIndex((h) => h.selector_id == selector_id)
|
|
590
|
+
: null
|
|
591
|
+
if (!element_to_add) {
|
|
592
|
+
element_to_add = get_new_element_to_add(el_type_id)
|
|
593
|
+
}
|
|
594
|
+
if (dom_el_parent && element_to_add) {
|
|
595
|
+
if (Array.isArray(dom_el_parent.children)) {
|
|
596
|
+
dom_el_parent.children.splice(element_index_of_siblings + 1, 0, element_to_add)
|
|
597
|
+
} else {
|
|
598
|
+
dom_el_parent.children = [element_to_add]
|
|
599
|
+
}
|
|
600
|
+
replace_el(dom_el_parent?.selector_id, dom_el_parent)
|
|
601
|
+
}
|
|
602
|
+
location_to_add_element = "child"
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
function initiate_add_sibling_el_to_selector(selector_id) {
|
|
606
|
+
const dom_el_parent = get_parent_el(selector_id)
|
|
607
|
+
const avail_element_ids = calc_child_element_options(dom_el_parent)
|
|
608
|
+
if (avail_element_ids.length > 1) {
|
|
609
|
+
location_to_add_element = "sibling"
|
|
610
|
+
find_and_open_add_element_popover_selector_id(selected_version_prepped, selector_id ?? "root")
|
|
611
|
+
} else if (avail_element_ids.length == 1) {
|
|
612
|
+
add_sibling_el(selector_id, avail_element_ids?.[0])
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
function initiate_add_child_el_to_selector(selector_id) {
|
|
617
|
+
const found_element = traverse_els_for_match(selector_id)
|
|
618
|
+
const avail_child_element_ids = calc_child_element_options(found_element)
|
|
619
|
+
location_to_add_element = "child"
|
|
620
|
+
if (avail_child_element_ids.length > 1) {
|
|
621
|
+
find_and_open_add_element_popover_selector_id(selected_version_prepped, selector_id ?? "root")
|
|
622
|
+
} else if (avail_child_element_ids.length == 1) {
|
|
623
|
+
add_child_el(selector_id, avail_child_element_ids[0])
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
function find_and_open_add_element_popover_selector_id(element_prepped, selector_id) {
|
|
628
|
+
if (element_prepped?.element?.selector_id == selector_id) {
|
|
629
|
+
if (typeof element_prepped?.add_element_manager?.popover_manager?.open == "function") {
|
|
630
|
+
element_prepped.add_element_manager.popover_manager.open()
|
|
631
|
+
return
|
|
632
|
+
}
|
|
633
|
+
} else if (Array.isArray(element_prepped?.children)) {
|
|
634
|
+
for (let child of element_prepped?.children) {
|
|
635
|
+
find_and_open_add_element_popover_selector_id(child, selector_id)
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
return
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
function add_child_el(selector_id, type_id) {
|
|
642
|
+
const found_element = traverse_els_for_match(selector_id)
|
|
643
|
+
const element_to_add = get_new_element_to_add(type_id)
|
|
644
|
+
if (!found_element) {
|
|
645
|
+
replace_el(selector_id, element_to_add)
|
|
646
|
+
} else {
|
|
647
|
+
add_el_to_el_children(selector_id, element_to_add)
|
|
648
|
+
}
|
|
649
|
+
location_to_add_element = "child"
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
function add_el_to_el_children(selector_id, new_element) {
|
|
653
|
+
add_version(add_child_to_el_recursive(selected_version_prepped?.element, selector_id, new_element))
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
function add_child_to_el_recursive(element, selector_id, new_element) {
|
|
657
|
+
if (element?.selector_id == selector_id) {
|
|
658
|
+
const existing_children = Array.isArray(element?.children) ? element?.children : []
|
|
659
|
+
element.children = [...existing_children, new_element]
|
|
660
|
+
return element
|
|
661
|
+
}
|
|
662
|
+
let new_children = []
|
|
663
|
+
if (Array.isArray(element?.children)) {
|
|
664
|
+
for (let child of element?.children) {
|
|
665
|
+
new_children = [...new_children, add_child_to_el_recursive(child, selector_id, new_element)]
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
element.children = new_children
|
|
669
|
+
return element
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
function replace_el(selector_id, new_element) {
|
|
673
|
+
add_version(replace_el_recursive(selected_version_prepped?.element, selector_id, new_element))
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
function replace_el_recursive(element, selector_id, new_element) {
|
|
677
|
+
if (!element?.selector_id || element?.selector_id == selector_id) {
|
|
678
|
+
return new_element
|
|
679
|
+
}
|
|
680
|
+
let new_children = []
|
|
681
|
+
if (Array.isArray(element?.children)) {
|
|
682
|
+
for (let child of element?.children) {
|
|
683
|
+
new_children = [...new_children, replace_el_recursive(child, selector_id, new_element)]
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
element.children = new_children
|
|
687
|
+
return element
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
function delete_el(selector_id) {
|
|
691
|
+
add_version(remove_el_recursive(selected_version_prepped?.element, selector_id))
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
function remove_el_recursive(element, selector_id) {
|
|
695
|
+
if (!element?.selector_id || element?.selector_id == selector_id) {
|
|
696
|
+
return null
|
|
697
|
+
}
|
|
698
|
+
let new_children = []
|
|
699
|
+
if (Array.isArray(element?.children)) {
|
|
700
|
+
for (let child of element?.children) {
|
|
701
|
+
const child_without_removed_el = remove_el_recursive(child, selector_id)
|
|
702
|
+
if (child_without_removed_el) {
|
|
703
|
+
new_children = [...new_children, child_without_removed_el]
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
element.children = new_children
|
|
708
|
+
return element
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
function traverse_els_for_match(selector_id) {
|
|
712
|
+
return traverse_els_for_match_recursive(selected_version_prepped?.element, selector_id)
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
function traverse_els_for_match_recursive(element, selector_id) {
|
|
716
|
+
if (element?.selector_id == selector_id) {
|
|
717
|
+
return element
|
|
718
|
+
}
|
|
719
|
+
if (Array.isArray(element?.children)) {
|
|
720
|
+
for (let child of element?.children) {
|
|
721
|
+
const matched_element_from_children = traverse_els_for_match_recursive(child, selector_id)
|
|
722
|
+
if (matched_element_from_children) {
|
|
723
|
+
return matched_element_from_children
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
return null
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
function shift_el(selector_id, i_shift) {
|
|
731
|
+
let dom_el_parent = get_parent_el(selector_id)
|
|
732
|
+
if (!dom_el_parent) {
|
|
733
|
+
return
|
|
734
|
+
}
|
|
735
|
+
const selector_index = dom_el_parent.children.findIndex((h) => h.selector_id == selector_id)
|
|
736
|
+
function move_element(array, from, to) {
|
|
737
|
+
const copy = [...array]
|
|
738
|
+
const element_to_move = copy.splice(from, 1)[0]
|
|
739
|
+
copy.splice(to, 0, element_to_move)
|
|
740
|
+
return copy
|
|
741
|
+
}
|
|
742
|
+
dom_el_parent.children = move_element(deep_copy(dom_el_parent.children), selector_index, selector_index + i_shift)
|
|
743
|
+
replace_el(selected_version_prepped?.element, dom_el_parent?.selector_id, dom_el_parent)
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
function set_el_from_astc_el_string(selector_id, astc_string) {
|
|
747
|
+
add_version(replace_el(selected_version_prepped?.element, selector_id, JSON.parse(astc_string)))
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
function copy_element_astc(selector_id) {
|
|
751
|
+
copy_to_clipboard(JSON.stringify(traverse_els_for_match(selector_id)))
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
function copy_element_markdown(selector_id) {
|
|
755
|
+
copy_to_clipboard(astc_to_markdown(traverse_els_for_match(selector_id)))
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
function open_edit_element_attributes_popover(selector_id) {
|
|
759
|
+
const found_element = traverse_els_for_match(selector_id)
|
|
760
|
+
if (!node_types?.hasOwnProperty(found_element?.type_id) || !node_types?.[found_element?.type_id]?.attributes) {
|
|
761
|
+
return
|
|
762
|
+
}
|
|
763
|
+
find_and_open_edit_element_attributes(selected_version_prepped, selector_id)
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
function find_and_open_edit_element_attributes(element_prepped, selector_id) {
|
|
767
|
+
if (element_prepped?.element?.selector_id == selector_id) {
|
|
768
|
+
if (typeof element_prepped?.open_edit_attributes_popover == "function") {
|
|
769
|
+
element_prepped?.open_edit_attributes_popover()
|
|
770
|
+
return
|
|
771
|
+
}
|
|
772
|
+
} else if (Array.isArray(element_prepped?.children)) {
|
|
773
|
+
for (let child of element_prepped?.children) {
|
|
774
|
+
find_and_open_edit_element_attributes(child, selector_id)
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
return
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
function get_new_element_to_add(type_id) {
|
|
781
|
+
let new_dom_el = {
|
|
782
|
+
type_id: type_id,
|
|
783
|
+
selector_id: create_unique_id(null, 8),
|
|
784
|
+
children: [],
|
|
785
|
+
attributes: {},
|
|
786
|
+
}
|
|
787
|
+
function add_base_attributes_to_element(element, node_types) {
|
|
788
|
+
if (!node_types || !element) {
|
|
789
|
+
return element
|
|
790
|
+
} else if (!node_types?.[element.type_id] || !node_types[element.type_id]?.attributes) {
|
|
791
|
+
element.attributes = null
|
|
792
|
+
return element
|
|
793
|
+
}
|
|
794
|
+
let attribute_obj = {}
|
|
795
|
+
for (let key of Object.keys(node_types[element.type_id].attributes)) {
|
|
796
|
+
attribute_obj[key] = null
|
|
797
|
+
}
|
|
798
|
+
element.attributes = attribute_obj
|
|
799
|
+
return element
|
|
800
|
+
}
|
|
801
|
+
function add_base_children_to_element(element) {
|
|
802
|
+
if (!element || !element.type_id) {
|
|
803
|
+
return element
|
|
804
|
+
}
|
|
805
|
+
let children = Array.isArray(element?.children) ? element.children : []
|
|
806
|
+
if (node_types[element.type_id] && node_types[element.type_id]?.child_elements) {
|
|
807
|
+
for (let childElementId of Object.keys(node_types[element.type_id].child_elements)) {
|
|
808
|
+
if (
|
|
809
|
+
node_types[element.type_id].child_elements[childElementId].child_min_limit > 0 &&
|
|
810
|
+
children.length < node_types[element.type_id].child_elements[childElementId].child_min_limit
|
|
811
|
+
) {
|
|
812
|
+
children.push(get_new_element_to_add(childElementId))
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
element.children = children
|
|
817
|
+
return element
|
|
818
|
+
}
|
|
819
|
+
new_dom_el = add_base_attributes_to_element(new_dom_el)
|
|
820
|
+
new_dom_el = add_base_children_to_element(new_dom_el)
|
|
821
|
+
return new_dom_el
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
function calc_child_element_options(element, is_sibling = false) {
|
|
825
|
+
if (!node_types) {
|
|
826
|
+
return []
|
|
827
|
+
}
|
|
828
|
+
let parent_el = element
|
|
829
|
+
if (is_sibling) {
|
|
830
|
+
parent_el = get_parent_el(element?.selector_id)
|
|
831
|
+
}
|
|
832
|
+
if (!parent_el?.type_id) {
|
|
833
|
+
return Object.keys(node_types)
|
|
834
|
+
}
|
|
835
|
+
let allowed_to_add_child_element_ids = []
|
|
836
|
+
for (let [key, val] of Object.entries(node_types?.[parent_el?.type_id]?.child_elements || {})) {
|
|
837
|
+
let cur_el_children_of_type = Array.isArray(parent_el?.children)
|
|
838
|
+
? parent_el.children.filter((h) => h?.type_id === key)
|
|
839
|
+
: []
|
|
840
|
+
if (!val?.child_max_limit || cur_el_children_of_type.length < val?.child_max_limit) {
|
|
841
|
+
allowed_to_add_child_element_ids.push(key)
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
allowed_to_add_child_element_ids.sort((a, b) => {
|
|
845
|
+
const display_order_a = node_types[a]?.display_order
|
|
846
|
+
const display_order_b = node_types[b]?.display_order
|
|
847
|
+
if (display_order_a === null) return 1
|
|
848
|
+
if (display_order_b === null) return -1
|
|
849
|
+
return display_order_a - display_order_b
|
|
850
|
+
})
|
|
851
|
+
return allowed_to_add_child_element_ids
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
const all_selector_ids = $derived(collect_all_selector_ids(selected_version_prepped?.element))
|
|
855
|
+
|
|
856
|
+
function collect_all_selector_ids(element) {
|
|
857
|
+
let acc = []
|
|
858
|
+
if (element?.selector_id) {
|
|
859
|
+
acc = [element.selector_id]
|
|
860
|
+
}
|
|
861
|
+
if (Array.isArray(element?.children)) {
|
|
862
|
+
for (let element_child of element.children) {
|
|
863
|
+
const acc_child = collect_all_selector_ids(element_child)
|
|
864
|
+
acc = [...acc, ...acc_child]
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
return acc
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
function set_element_attributes(selector_id, new_attributes) {
|
|
871
|
+
add_version(change_el_attrs(selected_version_prepped?.element, selector_id, new_attributes))
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
function change_el_attrs(content_el, selector_id, attributes) {
|
|
875
|
+
let children = []
|
|
876
|
+
if (Array.isArray(content_el?.children) && content_el?.children.length > 0) {
|
|
877
|
+
for (let child of content_el.children) {
|
|
878
|
+
children = [...children, change_el_attrs(child, selector_id, attributes)]
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
content_el.children = children
|
|
882
|
+
if (content_el?.selector_id == selector_id) {
|
|
883
|
+
content_el.attributes = attributes
|
|
884
|
+
}
|
|
885
|
+
return content_el
|
|
886
|
+
}
|
|
887
|
+
|
|
888
|
+
function set_element_attribute(selector_id, attribute, val) {
|
|
889
|
+
add_version(change_el_attr(selected_version_prepped?.element, selector_id, attribute, val))
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
function change_el_attr(content_el, selector_id, attribute, val) {
|
|
893
|
+
let children = []
|
|
894
|
+
if (Array.isArray(content_el?.children) && content_el?.children.length > 0) {
|
|
895
|
+
for (let child of content_el.children) {
|
|
896
|
+
children = [...children, change_el_attr(child, selector_id, attribute, val)]
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
content_el.children = children
|
|
900
|
+
if (content_el?.selector_id == selector_id) {
|
|
901
|
+
content_el.attributes[attribute] = val
|
|
902
|
+
}
|
|
903
|
+
return content_el
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
function clean_content(val) {
|
|
907
|
+
let word_count = 0
|
|
908
|
+
let character_count = 0
|
|
909
|
+
let embedding_text_items = []
|
|
910
|
+
let cleaned_attributes = {}
|
|
911
|
+
let cleaned_children = []
|
|
912
|
+
let total_elements = 1
|
|
913
|
+
let total_nests = 1
|
|
914
|
+
let warnings = []
|
|
915
|
+
if (!val?.type_id || !node_types.hasOwnProperty(val?.type_id)) {
|
|
916
|
+
warnings.push({ type: "error", message: `type_id of ${val?.type_id} is not allowed` })
|
|
917
|
+
return {
|
|
918
|
+
warnings,
|
|
919
|
+
word_count,
|
|
920
|
+
character_count,
|
|
921
|
+
embedding_text: "",
|
|
922
|
+
total_elements,
|
|
923
|
+
total_nests,
|
|
924
|
+
val: null,
|
|
925
|
+
}
|
|
926
|
+
}
|
|
927
|
+
for (let [attribute_key, attribute_value] of Object.entries(node_types[val?.type_id]?.attributes)) {
|
|
928
|
+
if (val?.attributes && typeof val.attributes == "object" && !Array.isArray(val?.attributes)) {
|
|
929
|
+
// attribute_value?.type example color_literal and i should call a clean function for that
|
|
930
|
+
const from_variable_path_key = `${attribute_key}_from_variable_path`
|
|
931
|
+
if (val?.attributes.hasOwnProperty(attribute_key)) {
|
|
932
|
+
cleaned_attributes[attribute_key] = val?.attributes[attribute_key]
|
|
933
|
+
} else if (
|
|
934
|
+
val?.attributes.hasOwnProperty(from_variable_path_key) &&
|
|
935
|
+
Array.isArray(val?.attributes?.[from_variable_path_key])
|
|
936
|
+
) {
|
|
937
|
+
cleaned_attributes[from_variable_path_key] = val?.attributes[from_variable_path_key]
|
|
938
|
+
}
|
|
939
|
+
if (attribute_key == "content" && val?.attributes?.content) {
|
|
940
|
+
embedding_text_items.push(val?.attributes.content)
|
|
941
|
+
word_count += val.attributes.content.split(/\s+/).filter(Boolean).length
|
|
942
|
+
character_count += val.attributes.content.length
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
if (Array.isArray(val?.children) && val?.children.length > 0) {
|
|
947
|
+
for (let child of val?.children) {
|
|
948
|
+
const res = clean_content(child)
|
|
949
|
+
word_count += res.word_count
|
|
950
|
+
character_count += res.character_count
|
|
951
|
+
total_elements += res.total_elements
|
|
952
|
+
total_nests += res.total_nests
|
|
953
|
+
embedding_text_items.push(res.embedding_text)
|
|
954
|
+
warnings = warnings.concat(res.warnings)
|
|
955
|
+
cleaned_children.push(res?.val)
|
|
956
|
+
}
|
|
957
|
+
}
|
|
958
|
+
let embedding_text = embedding_text_items
|
|
959
|
+
.join(" ")
|
|
960
|
+
.replace(/\s{2,}/g, " ")
|
|
961
|
+
.replace(/[^\x00-\x7F]/g, "")
|
|
962
|
+
.replace(/"/g, "")
|
|
963
|
+
.trim()
|
|
964
|
+
const sentence_endings = [".", "?", "!"]
|
|
965
|
+
if (["h1", "h2", "h3", "h4", "h5", "h6", "td", "th", "li", "p", "div"].includes(val?.type_id)) {
|
|
966
|
+
let last_char = embedding_text.slice(-1)
|
|
967
|
+
if (!sentence_endings.includes(last_char)) {
|
|
968
|
+
embedding_text += "."
|
|
969
|
+
}
|
|
970
|
+
}
|
|
971
|
+
embedding_text = embedding_text.replace(/\n/g, "")
|
|
972
|
+
return {
|
|
973
|
+
warnings,
|
|
974
|
+
word_count,
|
|
975
|
+
character_count,
|
|
976
|
+
embedding_text,
|
|
977
|
+
total_elements,
|
|
978
|
+
total_nests,
|
|
979
|
+
val: {
|
|
980
|
+
type_id: val?.type_id,
|
|
981
|
+
selector_id: val?.selector_id,
|
|
982
|
+
attributes: cleaned_attributes,
|
|
983
|
+
children: cleaned_children,
|
|
984
|
+
},
|
|
985
|
+
}
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
function init(config) {
|
|
989
|
+
definition_stack = config?.definition_stack ?? []
|
|
990
|
+
versions = [config?.val]
|
|
991
|
+
storage = config?.storage
|
|
992
|
+
storage_default_folder_path = config?.storage_default_folder_path
|
|
993
|
+
storage_path = config?.storage_path
|
|
994
|
+
preempt_add_first_element_button_manager = create_button_manager({
|
|
995
|
+
type: "outlined",
|
|
996
|
+
support_icon: "edit",
|
|
997
|
+
is_compressed: true,
|
|
998
|
+
text: "Add First Element",
|
|
999
|
+
on_click: () => first_el_add_element_manager?.popover_manager?.open(),
|
|
1000
|
+
})
|
|
1001
|
+
let allowed_to_add_element_ids = []
|
|
1002
|
+
for (let [key, val] of Object.entries(node_types || {})) {
|
|
1003
|
+
if (val?.kind == "content") {
|
|
1004
|
+
allowed_to_add_element_ids.push(key)
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
first_el_add_element_manager = create_add_element_manager({
|
|
1008
|
+
header: "Add First Element",
|
|
1009
|
+
avail_element_ids: () => allowed_to_add_element_ids,
|
|
1010
|
+
on_item_click: (input) => {
|
|
1011
|
+
if (input == "paste") {
|
|
1012
|
+
paste_astc_markdown_location_to_add_element = null
|
|
1013
|
+
paste_astc_markdown_popover_manager.open()
|
|
1014
|
+
return
|
|
1015
|
+
}
|
|
1016
|
+
setTimeout(() => {
|
|
1017
|
+
const element_to_add = get_new_element_to_add(input)
|
|
1018
|
+
add_version(element_to_add)
|
|
1019
|
+
}, 500)
|
|
1020
|
+
},
|
|
1021
|
+
})
|
|
1022
|
+
paste_astc_markdown_popover_manager = create_popover_manager({
|
|
1023
|
+
type: "panel",
|
|
1024
|
+
header: "Markdown to astc",
|
|
1025
|
+
target_width: 600,
|
|
1026
|
+
target_height: 600,
|
|
1027
|
+
})
|
|
1028
|
+
paste_astc_markdown_dropdown_manager = create_dropdown_manager({
|
|
1029
|
+
val: "astc",
|
|
1030
|
+
options: ["astc", "markdown"],
|
|
1031
|
+
label: "Input Type",
|
|
1032
|
+
is_button_compressed: true,
|
|
1033
|
+
mb: 1,
|
|
1034
|
+
})
|
|
1035
|
+
paste_astc_markdown_text_input_manager = create_text_input_manager({
|
|
1036
|
+
type: "text_area",
|
|
1037
|
+
rows: 15,
|
|
1038
|
+
placeholder: () =>
|
|
1039
|
+
paste_astc_markdown_dropdown_manager?.val == "markdown"
|
|
1040
|
+
? "## Some Markdown"
|
|
1041
|
+
: `{
|
|
1042
|
+
type_id: "p",
|
|
1043
|
+
selector_id: "p_dxeox",
|
|
1044
|
+
attributes: {},
|
|
1045
|
+
children: [
|
|
1046
|
+
{
|
|
1047
|
+
type_id: "base_text",
|
|
1048
|
+
selector_id: "base_text_ylzrw",
|
|
1049
|
+
children: [],
|
|
1050
|
+
attributes: {
|
|
1051
|
+
content: "Example",
|
|
1052
|
+
},
|
|
1053
|
+
},
|
|
1054
|
+
],
|
|
1055
|
+
}`,
|
|
1056
|
+
})
|
|
1057
|
+
paste_astc_markdown_finish_button_manager = create_button_manager({
|
|
1058
|
+
mt: 0.5,
|
|
1059
|
+
text: "Set from astc/Markdown",
|
|
1060
|
+
on_click: () => {
|
|
1061
|
+
let astc_to_add = null
|
|
1062
|
+
if (paste_astc_markdown_dropdown_manager?.val == "markdown") {
|
|
1063
|
+
astc_to_add = markdown_to_astc(paste_astc_markdown_text_input_manager?.val)
|
|
1064
|
+
} else if (paste_astc_markdown_dropdown_manager?.val == "astc") {
|
|
1065
|
+
astc_to_add = JSON.parse(paste_astc_markdown_text_input_manager?.val)
|
|
1066
|
+
}
|
|
1067
|
+
setTimeout(() => {
|
|
1068
|
+
if (paste_astc_markdown_location_to_add_element?.location_to_add_element == "sibling") {
|
|
1069
|
+
add_sibling_el(paste_astc_markdown_location_to_add_element?.selector_id, null, astc_to_add)
|
|
1070
|
+
} else if (paste_astc_markdown_location_to_add_element?.location_to_add_element == "child") {
|
|
1071
|
+
add_el_to_el_children(paste_astc_markdown_location_to_add_element?.selector_id, astc_to_add)
|
|
1072
|
+
} else {
|
|
1073
|
+
add_version(astc_to_add)
|
|
1074
|
+
}
|
|
1075
|
+
paste_astc_markdown_popover_manager.close()
|
|
1076
|
+
paste_astc_markdown_text_input_manager.set_val(null)
|
|
1077
|
+
}, 500)
|
|
1078
|
+
},
|
|
1079
|
+
})
|
|
1080
|
+
attributes_input = create_attributes_input_manager({
|
|
1081
|
+
storage: storage,
|
|
1082
|
+
storage_default_folder_path: storage_default_folder_path,
|
|
1083
|
+
storage_path: storage_path,
|
|
1084
|
+
get_defined_options: get_defined_options,
|
|
1085
|
+
set_focused_selector_id: set_focused_selector_id,
|
|
1086
|
+
})
|
|
1087
|
+
set_selected_version(0)
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
init(config)
|
|
1091
|
+
|
|
1092
|
+
return {
|
|
1093
|
+
id,
|
|
1094
|
+
get val() {
|
|
1095
|
+
return versions?.[selected_version_index]
|
|
1096
|
+
},
|
|
1097
|
+
get versions_len() {
|
|
1098
|
+
return versions_len
|
|
1099
|
+
},
|
|
1100
|
+
get selected_version_prepped() {
|
|
1101
|
+
return selected_version_prepped
|
|
1102
|
+
},
|
|
1103
|
+
get storage() {
|
|
1104
|
+
return storage
|
|
1105
|
+
},
|
|
1106
|
+
get storage_default_folder_path() {
|
|
1107
|
+
return storage_default_folder_path
|
|
1108
|
+
},
|
|
1109
|
+
get focused_selector_id() {
|
|
1110
|
+
return focused_selector_id
|
|
1111
|
+
},
|
|
1112
|
+
get paste_astc_markdown_popover_manager() {
|
|
1113
|
+
return paste_astc_markdown_popover_manager
|
|
1114
|
+
},
|
|
1115
|
+
get paste_astc_markdown_location_to_add_element() {
|
|
1116
|
+
return paste_astc_markdown_location_to_add_element
|
|
1117
|
+
},
|
|
1118
|
+
get paste_astc_markdown_dropdown_manager() {
|
|
1119
|
+
return paste_astc_markdown_dropdown_manager
|
|
1120
|
+
},
|
|
1121
|
+
get paste_astc_markdown_text_input_manager() {
|
|
1122
|
+
return paste_astc_markdown_text_input_manager
|
|
1123
|
+
},
|
|
1124
|
+
get paste_astc_markdown_finish_button_manager() {
|
|
1125
|
+
return paste_astc_markdown_finish_button_manager
|
|
1126
|
+
},
|
|
1127
|
+
get location_to_add_element() {
|
|
1128
|
+
return location_to_add_element
|
|
1129
|
+
},
|
|
1130
|
+
get astc_element_string() {
|
|
1131
|
+
return astc_element_string
|
|
1132
|
+
},
|
|
1133
|
+
get all_selector_ids() {
|
|
1134
|
+
return all_selector_ids
|
|
1135
|
+
},
|
|
1136
|
+
get preempt_add_first_element_button_manager() {
|
|
1137
|
+
return preempt_add_first_element_button_manager
|
|
1138
|
+
},
|
|
1139
|
+
get first_el_add_element_manager() {
|
|
1140
|
+
return first_el_add_element_manager
|
|
1141
|
+
},
|
|
1142
|
+
get content_manager() {
|
|
1143
|
+
return content_manager
|
|
1144
|
+
},
|
|
1145
|
+
get attributes_input() {
|
|
1146
|
+
return attributes_input
|
|
1147
|
+
},
|
|
1148
|
+
get dragging_selector_id() {
|
|
1149
|
+
return dragging_selector_id
|
|
1150
|
+
},
|
|
1151
|
+
get dragged_over_element_child() {
|
|
1152
|
+
return dragged_over_element_child
|
|
1153
|
+
},
|
|
1154
|
+
|
|
1155
|
+
init,
|
|
1156
|
+
clean_content,
|
|
1157
|
+
add_version,
|
|
1158
|
+
finish,
|
|
1159
|
+
copy_markdown,
|
|
1160
|
+
copy_astc,
|
|
1161
|
+
copy_text,
|
|
1162
|
+
set_focused_selector_id,
|
|
1163
|
+
get_new_element_to_add,
|
|
1164
|
+
calc_child_element_options,
|
|
1165
|
+
|
|
1166
|
+
// content overview
|
|
1167
|
+
open_edit_markdown_modal,
|
|
1168
|
+
set_astc_from_markdown,
|
|
1169
|
+
|
|
1170
|
+
// add element
|
|
1171
|
+
initiate_add_sibling_el_to_selector,
|
|
1172
|
+
add_sibling_el,
|
|
1173
|
+
initiate_add_child_el_to_selector,
|
|
1174
|
+
add_child_el,
|
|
1175
|
+
add_astc_to_element_children,
|
|
1176
|
+
|
|
1177
|
+
// element more
|
|
1178
|
+
copy_element_astc,
|
|
1179
|
+
copy_element_markdown,
|
|
1180
|
+
shift_el,
|
|
1181
|
+
set_el_from_astc_el_string,
|
|
1182
|
+
delete_el,
|
|
1183
|
+
|
|
1184
|
+
// element attributes
|
|
1185
|
+
open_edit_element_attributes_popover,
|
|
1186
|
+
set_element_attribute,
|
|
1187
|
+
set_element_attributes,
|
|
1188
|
+
|
|
1189
|
+
pass_event_down,
|
|
1190
|
+
reset_ids,
|
|
1191
|
+
|
|
1192
|
+
handle_element_child_drag_over,
|
|
1193
|
+
handle_element_child_drag_drop,
|
|
1194
|
+
handle_element_child_drag_start,
|
|
1195
|
+
handle_element_child_drag_end,
|
|
1196
|
+
}
|
|
1197
|
+
}
|