sveltekit-ui 1.1.15 → 1.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/package.json +3 -3
  2. package/src/routes/+page.svelte +24 -0
  3. package/dist/Components/Alert/index.svelte +0 -88
  4. package/dist/Components/Alert/index.svelte.js +0 -101
  5. package/dist/Components/ArrowToggle/index.svelte +0 -62
  6. package/dist/Components/Attachment/index.svelte +0 -77
  7. package/dist/Components/Attachment/index.svelte.js +0 -119
  8. package/dist/Components/Audio/index.svelte +0 -193
  9. package/dist/Components/Audio/index.svelte.js +0 -463
  10. package/dist/Components/AudioEditor/index.svelte +0 -252
  11. package/dist/Components/AudioEditor/index.svelte.js +0 -977
  12. package/dist/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  13. package/dist/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  14. package/dist/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  15. package/dist/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  16. package/dist/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  17. package/dist/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  18. package/dist/Components/AuthCodeInput/index.svelte +0 -85
  19. package/dist/Components/AuthCodeInput/index.svelte.js +0 -95
  20. package/dist/Components/Breadcrumbs/index.svelte +0 -27
  21. package/dist/Components/Breadcrumbs/index.svelte.js +0 -88
  22. package/dist/Components/Button/index.svelte +0 -721
  23. package/dist/Components/Button/index.svelte.js +0 -375
  24. package/dist/Components/Chart/Klines/index.svelte +0 -87
  25. package/dist/Components/Chart/index.svelte +0 -226
  26. package/dist/Components/Chart/index.svelte.js +0 -1090
  27. package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +0 -150
  28. package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +0 -45
  29. package/dist/Components/ChartInput/DisplayNav/index.svelte +0 -297
  30. package/dist/Components/ChartInput/EditPanel/index.svelte +0 -155
  31. package/dist/Components/ChartInput/index.svelte +0 -21
  32. package/dist/Components/ChartInput/index.svelte.js +0 -671
  33. package/dist/Components/Checkbox/index.svelte +0 -411
  34. package/dist/Components/Checkbox/index.svelte.js +0 -178
  35. package/dist/Components/Code/index.svelte +0 -23
  36. package/dist/Components/Code/index.svelte.js +0 -33
  37. package/dist/Components/Color/index.svelte +0 -51
  38. package/dist/Components/Color/index.svelte.js +0 -31
  39. package/dist/Components/ColorInput/ChromaPicker/index.svelte +0 -50
  40. package/dist/Components/ColorInput/ColorPalette/index.svelte +0 -62
  41. package/dist/Components/ColorInput/OpacityPicker/index.svelte +0 -68
  42. package/dist/Components/ColorInput/ShowcasePicker/index.svelte +0 -136
  43. package/dist/Components/ColorInput/index.svelte +0 -70
  44. package/dist/Components/ColorInput/index.svelte.js +0 -386
  45. package/dist/Components/ConditionsInput/index.svelte +0 -46
  46. package/dist/Components/ConditionsInput/index.svelte.js +0 -201
  47. package/dist/Components/Confetti/index.svelte +0 -98
  48. package/dist/Components/Confetti/index.svelte.js +0 -94
  49. package/dist/Components/Content/index.svelte +0 -500
  50. package/dist/Components/Content/index.svelte.js +0 -910
  51. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +0 -31
  52. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +0 -258
  53. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +0 -31
  54. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +0 -258
  55. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +0 -58
  56. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +0 -206
  57. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +0 -28
  58. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +0 -224
  59. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +0 -44
  60. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +0 -272
  61. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +0 -41
  62. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +0 -202
  63. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +0 -19
  64. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +0 -117
  65. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +0 -60
  66. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +0 -542
  67. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +0 -47
  68. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +0 -185
  69. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +0 -35
  70. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +0 -222
  71. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +0 -20
  72. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +0 -84
  73. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +0 -25
  74. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +0 -91
  75. package/dist/Components/ContentInput/AttributesInput/index.svelte +0 -352
  76. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +0 -1436
  77. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +0 -64
  78. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +0 -97
  79. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +0 -184
  80. package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +0 -41
  81. package/dist/Components/ContentInput/index.svelte +0 -78
  82. package/dist/Components/ContentInput/index.svelte.js +0 -1197
  83. package/dist/Components/CronInput/index.svelte +0 -78
  84. package/dist/Components/CronInput/index.svelte.js +0 -198
  85. package/dist/Components/DataTypeInput/index.svelte +0 -174
  86. package/dist/Components/DataTypeInput/index.svelte.js +0 -565
  87. package/dist/Components/Dropdown/index.svelte +0 -116
  88. package/dist/Components/Dropdown/index.svelte.js +0 -403
  89. package/dist/Components/EmailAddress/index.svelte +0 -22
  90. package/dist/Components/EmailAddress/index.svelte.js +0 -45
  91. package/dist/Components/ErrorX/index.svelte +0 -58
  92. package/dist/Components/Eye/index.svelte +0 -57
  93. package/dist/Components/FileInput/index.svelte +0 -146
  94. package/dist/Components/FileInput/index.svelte.js +0 -225
  95. package/dist/Components/Hamburger/index.svelte +0 -99
  96. package/dist/Components/HorizScrollBox/index.svelte +0 -145
  97. package/dist/Components/Icon/index.svelte +0 -412
  98. package/dist/Components/Icon/index.svelte.js +0 -116
  99. package/dist/Components/IconInput/index.svelte +0 -77
  100. package/dist/Components/IconInput/index.svelte.js +0 -259
  101. package/dist/Components/Image/index.svelte +0 -126
  102. package/dist/Components/Image/index.svelte.js +0 -116
  103. package/dist/Components/ImageEditor/Image/CropBox/index.svelte +0 -165
  104. package/dist/Components/ImageEditor/Image/index.svelte +0 -104
  105. package/dist/Components/ImageEditor/Panels/AI/index.svelte +0 -44
  106. package/dist/Components/ImageEditor/Panels/Crop/index.svelte +0 -96
  107. package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +0 -124
  108. package/dist/Components/ImageEditor/Panels/File/index.svelte +0 -74
  109. package/dist/Components/ImageEditor/Panels/Filters/index.svelte +0 -46
  110. package/dist/Components/ImageEditor/Panels/Resize/index.svelte +0 -58
  111. package/dist/Components/ImageEditor/index.svelte +0 -93
  112. package/dist/Components/ImageEditor/index.svelte.js +0 -1961
  113. package/dist/Components/ImageSlider/index.svelte +0 -124
  114. package/dist/Components/ImageSlider/index.svelte.js +0 -99
  115. package/dist/Components/InfoBox/index.svelte +0 -89
  116. package/dist/Components/Json/Nested/index.svelte +0 -157
  117. package/dist/Components/Json/index.svelte +0 -60
  118. package/dist/Components/Json/index.svelte.js +0 -594
  119. package/dist/Components/LabeledItem/index.svelte +0 -102
  120. package/dist/Components/Layout/NavBar/FullNav/index.svelte +0 -52
  121. package/dist/Components/Layout/NavBar/NavGuts/index.svelte +0 -87
  122. package/dist/Components/Layout/NavBar/index.svelte +0 -72
  123. package/dist/Components/Layout/index.svelte +0 -149
  124. package/dist/Components/Layout/index.svelte.js +0 -360
  125. package/dist/Components/Link/index.svelte +0 -47
  126. package/dist/Components/Link/index.svelte.js +0 -136
  127. package/dist/Components/LoadingSuccessDiv/index.svelte +0 -51
  128. package/dist/Components/LoadingWheel/index.svelte +0 -38
  129. package/dist/Components/Location/index.svelte +0 -79
  130. package/dist/Components/Location/index.svelte.js +0 -288
  131. package/dist/Components/LocationInput/index.svelte +0 -197
  132. package/dist/Components/LocationInput/index.svelte.js +0 -965
  133. package/dist/Components/Number/index.svelte +0 -47
  134. package/dist/Components/Number/index.svelte.js +0 -151
  135. package/dist/Components/PhoneCountryCode/index.svelte +0 -7
  136. package/dist/Components/PhoneCountryCode/index.svelte.js +0 -260
  137. package/dist/Components/PhoneNumber/index.svelte +0 -22
  138. package/dist/Components/PhoneNumber/index.svelte.js +0 -41
  139. package/dist/Components/Popover/index.svelte +0 -396
  140. package/dist/Components/Popover/index.svelte.js +0 -319
  141. package/dist/Components/Qr/index.svelte +0 -85
  142. package/dist/Components/Qr/index.svelte.js +0 -301
  143. package/dist/Components/QrInput/index.svelte +0 -47
  144. package/dist/Components/QrInput/index.svelte.js +0 -218
  145. package/dist/Components/Slider/index.svelte +0 -239
  146. package/dist/Components/Slider/index.svelte.js +0 -469
  147. package/dist/Components/Spacer/index.svelte +0 -41
  148. package/dist/Components/StoragePicker/DisplayFile/index.svelte +0 -15
  149. package/dist/Components/StoragePicker/index.svelte +0 -187
  150. package/dist/Components/StoragePicker/index.svelte.js +0 -592
  151. package/dist/Components/SuccessCheck/index.svelte +0 -56
  152. package/dist/Components/TableAdvanced/ColumnInput/index.svelte +0 -117
  153. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +0 -456
  154. package/dist/Components/TableAdvanced/FilterInput/index.svelte +0 -54
  155. package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +0 -247
  156. package/dist/Components/TableAdvanced/Pagination/index.svelte +0 -43
  157. package/dist/Components/TableAdvanced/Pagination/index.svelte.js +0 -97
  158. package/dist/Components/TableAdvanced/SortByInput/index.svelte +0 -72
  159. package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +0 -176
  160. package/dist/Components/TableAdvanced/index.svelte +0 -275
  161. package/dist/Components/TableAdvanced/index.svelte.js +0 -1565
  162. package/dist/Components/Tag/index.svelte +0 -45
  163. package/dist/Components/Tag/index.svelte.js +0 -76
  164. package/dist/Components/TextArrayInput/index.svelte +0 -108
  165. package/dist/Components/TextArrayInput/index.svelte.js +0 -239
  166. package/dist/Components/TextInput/PasswordTooltip/index.svelte +0 -89
  167. package/dist/Components/TextInput/index.svelte +0 -223
  168. package/dist/Components/TextInput/index.svelte.js +0 -447
  169. package/dist/Components/Time/index.svelte +0 -7
  170. package/dist/Components/Time/index.svelte.js +0 -38
  171. package/dist/Components/TimeInput/NumberToggler/index.svelte +0 -34
  172. package/dist/Components/TimeInput/NumberToggler/index.svelte.js +0 -79
  173. package/dist/Components/TimeInput/index.js +0 -702
  174. package/dist/Components/TimeInput/index.svelte +0 -211
  175. package/dist/Components/TimeInput/index.svelte.js +0 -638
  176. package/dist/Components/Tooltip/index.svelte +0 -143
  177. package/dist/Components/TransparentBackground/index.svelte +0 -153
  178. package/dist/Components/TypingDots/index.svelte +0 -84
  179. package/dist/Components/VariablePathInput/index.svelte +0 -63
  180. package/dist/Components/VariablePathInput/index.svelte.js +0 -273
  181. package/dist/Components/VideoTBD/index.svelte +0 -100
  182. package/dist/Components/XFollow/index.svelte +0 -42
  183. package/dist/Components/XPost/index.svelte +0 -52
  184. package/dist/Components/XPost/index.svelte.js +0 -64
  185. package/dist/Components/YoutubeChannelButton/index.svelte +0 -82
  186. package/dist/Components/YoutubeVideo/index.svelte +0 -73
  187. package/dist/Components/YoutubeVideo/index.svelte.js +0 -54
  188. package/dist/actions/draggable.js +0 -49
  189. package/dist/actions/index.js +0 -24
  190. package/dist/actions/no_spaces.js +0 -33
  191. package/dist/actions/numbers_only.js +0 -26
  192. package/dist/actions/scroll_y.js +0 -28
  193. package/dist/actions/stop_scroll_propagation_y.js +0 -42
  194. package/dist/actions/swipe_handler.js +0 -295
  195. package/dist/client/astc_formatting/index.js +0 -1128
  196. package/dist/client/docs/index.js +0 -7622
  197. package/dist/client/index.js +0 -735
  198. package/dist/client/types/index.js +0 -2812
  199. package/dist/index.js +0 -180
  200. package/dist/style.css +0 -682
@@ -1,1565 +0,0 @@
1
- import { create_text_input_manager } from "../TextInput/index.svelte.js"
2
- import { create_checkbox_manager } from "../Checkbox/index.svelte.js"
3
- import { create_dropdown_manager } from "../Dropdown/index.svelte.js"
4
- import { create_file_input_manager } from "../FileInput/index.svelte.js"
5
- import { create_popover_manager } from "../Popover/index.svelte.js"
6
- import { create_button_manager } from "../Button/index.svelte.js"
7
- import { create_content_manager } from "../Content/index.svelte.js"
8
- import { create_pagination_manager } from "./Pagination/index.svelte.js"
9
- import { create_sort_by_input_manager } from "./SortByInput/index.svelte.js"
10
- import { create_column_input_manager } from "./ColumnInput/index.svelte.js"
11
- import {
12
- deep_copy,
13
- copy_to_clipboard,
14
- json_to_csv,
15
- csv_to_json,
16
- create_unique_id,
17
- set_definition_stack,
18
- get_def_from_variable_path,
19
- variables_data_type_remaining_to_astc,
20
- } from "../../client/index.js"
21
- import { tick } from "svelte"
22
- import { browser } from "$app/environment"
23
- import { literal_types } from "../../client/types/index.js"
24
-
25
- export function create_table_advanced_manager(config) {
26
- const id = create_unique_id(null, 20)
27
-
28
- let mapkit_js_token = $state(null)
29
- let definition_stack = $state(null)
30
- let row_iter_identifier = $state(null)
31
- let rows_data_from_variable_path = $state(null)
32
- let row_input_content = $state(null)
33
- let is_data_editable = $state(null)
34
- let nav_items = $state(null)
35
- let is_paginate = $state(null)
36
- let is_more_to_load = $state(false)
37
- let table_header_max_height = $state(null)
38
- let table_row_max_height = $state(null)
39
-
40
- let table_id = $state(null)
41
- let table_name = $state(null)
42
- let table_description = $state(null)
43
- let settings_popover_manager = $state(null)
44
- let settings_popover_toggle_button_manager = $state(null)
45
- let settings_update_table_name_button_manager = $state(null)
46
- let settings_update_table_name_text_input_manager = $state(null)
47
- let settings_update_table_description_button_manager = $state(null)
48
- let settings_update_table_description_text_input_manager = $state(null)
49
- let settings_copy_row_json_schema_button_manager = $state(null)
50
- let settings_copy_rows_json_schema_button_manager = $state(null)
51
- let settings_preempt_delete_table_popover_button_manager = $state(null)
52
- let settings_delete_table_popover_manager = $state(null)
53
- let settings_delete_table_cancel_button_manager = $state(null)
54
- let settings_delete_table_button_manager = $state(null)
55
- let settings_copy_table_id_button_manager = $state(null)
56
-
57
- let columns_prepped = $state(null)
58
- let column_ids_display_order = $state([])
59
- let rows_prepped = $state(null)
60
- let table_search_text_input_manager = $state(null)
61
- let pagination_manager = $state(null)
62
- let rows_per_page_dropdown_manager = $state(null)
63
- let cur_page = $state(1)
64
- let load_more_button_manager = $state(null)
65
- let sort_by = $state(null)
66
- let sort_by_input_manager = $state(null)
67
- let is_bulk_select = $state(false)
68
- let toggle_bulk_selectable_button_manager = $state(null)
69
- let insert_popover_manager = $state(null)
70
- let insert_popover_button_manager = $state(null)
71
- let preempt_insert_column_popover_manager = $state(null)
72
- let preempt_insert_column_button_manager = $state(null)
73
- let preempt_insert_row_button_manager = $state(null)
74
- let file_popover_manager = $state(null)
75
- let file_popover_button_manager = $state(null)
76
- let copy_json_button_manager = $state(null)
77
- let download_json_button_manager = $state(null)
78
- let download_csv_button_manager = $state(null)
79
- let copy_structure_button_manager = $state(null)
80
-
81
- let prempt_bulk_upload_rows_popover_button_manager = $state(null)
82
- let prempt_bulk_upload_rows_popover_manager = $state(null)
83
- let upload_rows_file_input_manager = $state(null)
84
- let upload_rows_text_input_manager = $state(null)
85
- let upload_rows_prepare_text_button_manager = $state(null)
86
- let upload_rows_clear_prepared_data_button_manager = $state(null)
87
- let bulk_insert_rows_error_message = $state(null)
88
- let bulk_insert_rows_button_manager = $state(null)
89
- let bulk_insert_rows_prepared_data = $state(null)
90
- let bulk_select_all_rows_toggle_checkbox_manager = $state(null)
91
- let bulk_delete_rows_popover_manager = $state(null)
92
- let bulk_delete_rows_popover_button_manager = $state(null)
93
- let bulk_delete_rows_button_manager = $state(null)
94
- let bulk_delete_rows_cancel_button_manager = $state(null)
95
-
96
- let column_edit_id = $state(null)
97
- let column_edit_input_manager = $state(null)
98
- let column_edit_upsert_column_button_manager = $state(null)
99
-
100
- let row_edit_def_identifier = $state("edit_row_1001234")
101
- let row_edit_index = $state(null)
102
- let preempt_insert_row_popover_manager = $state(null)
103
- let row_edit_content_manager = $state(null)
104
- let row_edit_upsert_row_button_manager = $state(null)
105
- let row_edit_delete_row_are_you_sure_popover_manager = $state(null)
106
- let row_edit_delete_row_are_you_sure_popover_toggle_button_manager = $state(null)
107
- let row_edit_delete_row_button_manager = $state(null)
108
- let row_edit_delete_row_cancel_button_manager = $state(null)
109
- let is_loading_rows = $state(false)
110
- let loading_rows_progress = $state(0)
111
-
112
- let rows_data = $derived(get_def_from_variable_path(rows_data_from_variable_path, definition_stack))
113
- let row_indexes_display_order = $derived(get_available_row_indexes())
114
- let row_indexes_display_order_shown = $derived(get_row_indexes_shown())
115
- let row_json_schema = $derived(get_row_json_schema(columns_prepped))
116
-
117
- function get_row_json_schema(input) {
118
- console.log("get_row_json_schema", input)
119
- let properties = {}
120
- if (Object.keys(input || {}).length > 0) {
121
- for (let key of Object.keys(input)) {
122
- console.log("key", key)
123
- if (input?.[key]?.is_db_column && !input?.[key]?.is_autogenerated) {
124
- properties[key] = get_json_schema_from_db_type(input?.[key]?.db_data_type)
125
- }
126
- }
127
- } else {
128
- return null
129
- }
130
- return JSON.stringify({
131
- type: "object",
132
- properties: properties,
133
- required: Object.keys(properties),
134
- additionalProperties: false,
135
- })
136
- }
137
-
138
- function get_json_schema_from_db_type(input) {
139
- if (input?.type == "array_uniform_literal") {
140
- return {
141
- type: "array",
142
- items: get_json_schema_from_db_type(input?.items),
143
- }
144
- } else if (input?.type == "object_literal") {
145
- let properties = {}
146
- for (let key of Object.keys(input?.properties)) {
147
- properties[key] = get_json_schema_from_db_type(input?.properties?.[key])
148
- }
149
- return { type: "object", properties: properties, required: Object.keys(properties), additionalProperties: false }
150
- } else if (input?.type == "object_uniform_literal") {
151
- // tbd try and avoid this
152
- return { type: "null_literal" }
153
- }
154
- let default_json_schema = literal_types?.[input?.type]?.json_schema
155
- if (default_json_schema?.type == "object") {
156
- default_json_schema = {
157
- ...default_json_schema,
158
- required: Object.keys(default_json_schema?.properties),
159
- additionalProperties: false,
160
- }
161
- }
162
- return default_json_schema
163
- }
164
-
165
- let cur_page_to_use = $derived(
166
- !Array.isArray(row_indexes_display_order) || row_indexes_display_order.length < rows_per_page_dropdown_manager?.val
167
- ? 1
168
- : cur_page
169
- )
170
-
171
- let row_indexes_bulk_selected = $derived(
172
- Array.isArray(rows_prepped)
173
- ? rows_prepped
174
- .map((row_prepped, index) => (row_prepped?.bulk_select_checkbox_manager?.val ? index : null))
175
- .filter((index) => index !== null)
176
- : []
177
- )
178
-
179
- function get_available_row_indexes() {
180
- let row_indexes = []
181
- if (
182
- Array.isArray(rows_prepped) &&
183
- table_search_text_input_manager?.val &&
184
- table_search_text_input_manager?.val.trim() !== ""
185
- ) {
186
- for (let i = 0; i < rows_prepped.length; i++) {
187
- if (
188
- rows_prepped[i]?.searchable_text &&
189
- rows_prepped[i]?.searchable_text.toLowerCase().includes(table_search_text_input_manager.val.toLowerCase())
190
- ) {
191
- row_indexes.push(i)
192
- }
193
- }
194
- } else {
195
- row_indexes = Array.isArray(rows_prepped) ? Array.from({ length: rows_prepped.length }, (_, i) => i) : []
196
- }
197
- function get_column_value(row, column_id) {
198
- const attrs = row?.columns?.[column_id]?.body_content?.attributes ?? {}
199
- const val_from_variable_path = attrs.val_from_variable_path ?? attrs.content_from_variable_path
200
- if (val_from_variable_path) {
201
- return get_def_from_variable_path(val_from_variable_path, [{ row_i: row?.row_i }, ...definition_stack])
202
- }
203
- return attrs.val ?? attrs.content ?? null
204
- }
205
- if (Array.isArray(sort_by) && sort_by.length > 0) {
206
- row_indexes.sort((a, b) => {
207
- for (let sort_item of sort_by) {
208
- const column_id = sort_item?.variable_path?.[0]
209
- const is_ascending = !!sort_item?.is_ascending
210
- let a_val = get_column_value(rows_prepped[a], column_id)
211
- let b_val = get_column_value(rows_prepped[b], column_id)
212
- if (a_val === b_val) continue
213
- if (a_val == null) return is_ascending ? 1 : -1
214
- if (b_val == null) return is_ascending ? -1 : 1
215
- if (typeof a_val === "number" && typeof b_val === "number") {
216
- return is_ascending ? a_val - b_val : b_val - a_val
217
- }
218
- const a_str = Array.isArray(a_val) ? a_val.join(",") : String(a_val)
219
- const b_str = Array.isArray(b_val) ? b_val.join(",") : String(b_val)
220
- if (a_str === b_str) continue
221
- return is_ascending ? a_str.localeCompare(b_str) : b_str.localeCompare(a_str)
222
- }
223
- return 0
224
- })
225
- }
226
- return row_indexes
227
- }
228
-
229
- function get_row_indexes_shown() {
230
- if (!Array.isArray(row_indexes_display_order)) {
231
- return []
232
- } else if (row_indexes_display_order.length < rows_per_page_dropdown_manager?.val) {
233
- return row_indexes_display_order
234
- }
235
- const start_index = (cur_page - 1) * rows_per_page_dropdown_manager?.val
236
- const end_index = start_index + rows_per_page_dropdown_manager?.val
237
- return row_indexes_display_order.slice(start_index, end_index)
238
- }
239
-
240
- const raf = () => (browser ? new Promise(requestAnimationFrame) : new Promise((r) => setTimeout(r, 0)))
241
-
242
- async function set_rows_prepped(columns_prepped_input) {
243
- is_loading_rows = true
244
- rows_prepped = []
245
- loading_rows_progress = 0
246
- await tick()
247
- await raf()
248
- const chunk_size = 5
249
- const total = Array.isArray(rows_data) ? rows_data?.length : 0
250
- let rows_prepped_loc = []
251
- for (let i = 0; i < total; i += chunk_size) {
252
- const slice_end = Math.min(i + chunk_size, total)
253
- for (let j = i; j < slice_end; j++) {
254
- rows_prepped_loc.push(get_row_prepped(columns_prepped_input, rows_data[j], j))
255
- }
256
- rows_prepped = rows_prepped_loc
257
- loading_rows_progress = slice_end / total
258
- await tick()
259
- await raf()
260
- }
261
- rows_prepped = rows_prepped_loc
262
- loading_rows_progress = 1
263
- is_loading_rows = false
264
- }
265
-
266
- function get_row_prepped(columns_prepped_input, row_data, row_i) {
267
- let searchable_text = ""
268
- let columns_prepped_loc = {}
269
- if (Array.isArray(column_ids_display_order)) {
270
- for (let column_id of column_ids_display_order) {
271
- let content_manager = create_content_manager({
272
- val: columns_prepped_input[column_id]?.body_content,
273
- mapkit_js_token: mapkit_js_token,
274
- on_event: (input) => {
275
- if (typeof config?.on_event == "function") {
276
- config?.on_event(input)
277
- }
278
- },
279
- definition_stack: [{ [row_iter_identifier]: row_i }, ...definition_stack],
280
- // storage_path: () => storage_path,
281
- // is_dark_theme: () => is_dark_theme,
282
- })
283
- columns_prepped_loc[column_id] = {
284
- ...columns_prepped_input?.[column_id],
285
- content_manager: content_manager,
286
- }
287
- }
288
- }
289
- // // astc_to_embedding_text tbd
290
- searchable_text += `${JSON.stringify(row_data)}`?.toString().toLowerCase()
291
- let preempt_edit_row_button_input_manager = $state(null)
292
- let bulk_select_checkbox_manager = $state(null)
293
- preempt_edit_row_button_input_manager = create_button_manager({
294
- type: "soft",
295
- support_icon: "edit",
296
- is_uniform: true,
297
- border_radius: 0.5,
298
- aria_label: "edit",
299
- icon_sw: 40,
300
- min_height: 2.4,
301
- on_click: () => {
302
- preempt_insert_row_popover_manager.open()
303
- edit_row(row_i)
304
- },
305
- })
306
- bulk_select_checkbox_manager = create_checkbox_manager({
307
- val: false,
308
- mt: 0.2,
309
- ml: 0.2,
310
- mb: 0.2,
311
- })
312
- return {
313
- row_i: row_i,
314
- columns: columns_prepped_loc,
315
- searchable_text: searchable_text,
316
- preempt_edit_row_button_input_manager: preempt_edit_row_button_input_manager,
317
- bulk_select_checkbox_manager: bulk_select_checkbox_manager,
318
- }
319
- }
320
-
321
- function bulk_select_all_rows_toggle(is_select_all = true) {
322
- if (Array.isArray(rows_prepped) && rows_prepped.length > 0) {
323
- for (let i = 0; i < rows_prepped.length; i++) {
324
- rows_prepped[i].bulk_select_checkbox_manager.set_val(is_select_all)
325
- }
326
- }
327
- }
328
-
329
- function set_table_search_text_input(input) {
330
- table_search_text_input_manager.set_val(input)
331
- }
332
-
333
- function set_columns_prepped(columns) {
334
- column_ids_display_order = Object.entries(columns || {})
335
- .sort((a, b) => a[1]?.display_order - b[1]?.display_order)
336
- .map((entry) => entry[0])
337
- let columns_prepped_loc = {}
338
- if (Array.isArray(column_ids_display_order)) {
339
- for (let column_id of column_ids_display_order) {
340
- let content_manager = create_content_manager({
341
- val: columns[column_id]?.header_content,
342
- mapkit_js_token: mapkit_js_token,
343
- on_event: (input) => {
344
- if (typeof config?.on_change == "function") {
345
- config?.on_change(input)
346
- }
347
- },
348
- definition_stack: definition_stack,
349
- // storage_path: () => storage_path,
350
- // is_dark_theme: () => is_dark_theme,
351
- })
352
- let preempt_edit_column_button_manager = $state(null)
353
- preempt_edit_column_button_manager = create_button_manager({
354
- type: "soft",
355
- support_icon: "three_dots",
356
- icon_sw: 80,
357
- icon_size: 1.4,
358
- min_height: 2.4,
359
- border_radius: 0.5,
360
- is_uniform: true,
361
- on_click: () => {
362
- edit_column(column_id)
363
- preempt_insert_column_popover_manager.open()
364
- },
365
- })
366
- columns_prepped_loc[column_id] = {
367
- ...columns[column_id],
368
- content_manager: content_manager,
369
- preempt_edit_column_button_manager: preempt_edit_column_button_manager,
370
- }
371
- }
372
- }
373
- columns_prepped = columns_prepped_loc
374
- console.log("columns_prepped", deep_copy(columns_prepped))
375
- return columns_prepped
376
- }
377
-
378
- function copy_json() {
379
- copy_to_clipboard(JSON.stringify(rows_data))
380
- }
381
-
382
- function copy_structure() {
383
- copy_to_clipboard(JSON.stringify(rows_data))
384
- }
385
-
386
- function download_json() {
387
- const json_string = JSON.stringify(rows_data)
388
- const data_blob = new Blob([json_string], { type: "application/json" })
389
- const url = URL.createObjectURL(data_blob)
390
- const link = document.createElement("a")
391
- link.href = url
392
- const filename = "data.json"
393
- link.download = filename
394
- link.click()
395
- URL.revokeObjectURL(url)
396
- }
397
-
398
- function download_csv() {
399
- const json_string = JSON.stringify(rows_data)
400
- const csv = json_to_csv(json_string)
401
- const data_blob = new Blob([csv], { type: "text/csv;charset=utf-8;" })
402
- const url = URL.createObjectURL(data_blob)
403
- const link = document.createElement("a")
404
- link.href = url
405
- const filename = "data.csv"
406
- link.download = filename
407
- link.click()
408
- URL.revokeObjectURL(url)
409
- }
410
-
411
- function edit_column(column_id) {
412
- column_edit_id = column_id || null
413
- const column = columns_prepped?.[column_id]
414
- column_edit_input_manager = create_column_input_manager({
415
- column_id: column_id,
416
- val: {
417
- header_content: column?.header_content,
418
- body_content: column?.body_content,
419
- description: column?.description,
420
- is_shown: column?.is_shown,
421
- is_fixed: column?.is_fixed,
422
- alignment: column?.alignment,
423
- min_width: column?.min_width,
424
- max_width: column?.max_width,
425
- display_order: column?.display_order,
426
- is_db_column: column?.is_db_column,
427
- db_data_type: column?.db_data_type,
428
- is_use_in_short_display: column?.is_use_in_short_display,
429
- is_autogenerated: column?.is_autogenerated,
430
- is_updatable: column?.is_updatable,
431
- postgres_type: column?.postgres_type,
432
- default_value: column?.default_value,
433
- quick_sort_variable_path: column?.quick_sort_variable_path,
434
- is_primary_key: column?.is_primary_key,
435
- is_nullable: column?.is_nullable,
436
- is_force_uniqueness: column?.is_force_uniqueness,
437
- foreign_table_id: column?.foreign_table_id,
438
- is_cascade: column?.is_cascade,
439
- },
440
- row_iter_identifier: row_iter_identifier,
441
- rows_data_from_variable_path: rows_data_from_variable_path,
442
- column_input_options: config?.column_input_options,
443
- table_options: config?.table_options,
444
- on_search_table_row_ids: config?.on_search_table_row_ids,
445
- definition_stack: definition_stack,
446
- columns: () => columns_prepped,
447
- on_delete: async () => {
448
- if (typeof config?.on_event == "function") {
449
- const res = await config?.on_event({
450
- type: "delete_column",
451
- column_id: column_id,
452
- column: columns_prepped?.[column_id],
453
- path: rows_data_from_variable_path,
454
- })
455
- if (res?.is_success) {
456
- preempt_insert_column_popover_manager.show_temp_message(
457
- "Successfully deleted column",
458
- "success",
459
- 1800,
460
- true,
461
- () => {
462
- let columns_prepped_copy = deep_copy(columns_prepped)
463
- delete columns_prepped_copy[column_id]
464
- set_columns(columns_prepped_copy)
465
- if (typeof res.finish == "function") {
466
- res.finish()
467
- }
468
- }
469
- )
470
- }
471
- return res
472
- }
473
- },
474
- })
475
- let upsert_column_is_loading = $state(false)
476
- column_edit_upsert_column_button_manager = create_button_manager({
477
- text: column_id ? "Update Column" : "Insert Column",
478
- is_loading: () => upsert_column_is_loading,
479
- on_click: async () => {
480
- upsert_column_is_loading = true
481
- if (column_id) {
482
- if (typeof config?.on_event == "function") {
483
- const res = await config?.on_event({
484
- type: "update_column",
485
- column_id: column_id,
486
- column: column_edit_input_manager?.val,
487
- path: rows_data_from_variable_path,
488
- })
489
- if (res?.is_success) {
490
- preempt_insert_column_popover_manager.show_temp_message(
491
- "Successfully updated column",
492
- "success",
493
- 1800,
494
- true,
495
- () => {
496
- let cleaned_columns = deep_copy(columns_prepped ?? {})
497
- delete cleaned_columns[column_id]
498
- cleaned_columns[res?.column_id] = res?.column
499
- set_columns(cleaned_columns)
500
- }
501
- )
502
- } else {
503
- preempt_insert_column_popover_manager.show_temp_message(
504
- res?.message ?? "Error updating column",
505
- "error",
506
- 1800,
507
- false
508
- )
509
- }
510
- }
511
- } else {
512
- if (typeof config?.on_event == "function") {
513
- const res = await config?.on_event({
514
- type: "insert_column",
515
- column: column_edit_input_manager?.val,
516
- path: rows_data_from_variable_path,
517
- })
518
- if (res?.is_success) {
519
- preempt_insert_column_popover_manager.show_temp_message(
520
- "Successfully inserted column",
521
- "success",
522
- 1800,
523
- true,
524
- () => {
525
- let cleaned_columns = deep_copy(columns_prepped ?? {})
526
- cleaned_columns[res?.column_id] = res?.column
527
- console.log("cleaned_columns", cleaned_columns, res)
528
- set_columns(cleaned_columns)
529
- }
530
- )
531
- } else {
532
- preempt_insert_column_popover_manager.show_temp_message("Error inserting column", "error", 1800, false)
533
- }
534
- }
535
- }
536
- upsert_column_is_loading = false
537
- },
538
- })
539
- }
540
-
541
- function edit_row(row_i) {
542
- row_edit_index = row_i
543
- const path_to_set = [...rows_data_from_variable_path, Number.isInteger(row_i) ? row_i : 0]
544
- let editable_row = null
545
- if (!Number.isInteger(row_i)) {
546
- editable_row = {}
547
- } else {
548
- editable_row = get_def_from_variable_path([...rows_data_from_variable_path, row_i], definition_stack)
549
- }
550
- let row_definition_stack = $state([{ [row_edit_def_identifier]: editable_row }, ...definition_stack])
551
- row_edit_content_manager = null
552
- setTimeout(() => {
553
- // quick fix for when update row then edit a diff row the data for other doesnt remain in place
554
- console.log("edit_row", { row_i, row_input_content })
555
- row_edit_content_manager = create_content_manager({
556
- val: row_input_content ?? null,
557
- definition_stack: row_definition_stack,
558
- mapkit_js_token: mapkit_js_token,
559
- storage_items: null, // tbd
560
- on_search_table_row_ids: config?.on_search_table_row_ids,
561
- on_event: (input) => {
562
- console.log("on_e", deep_copy({ input, row_definition_stack }))
563
- const res = set_definition_stack(input, row_definition_stack)
564
- row_definition_stack = res?.definition_stack
565
- const row_data = get_def_from_variable_path([row_edit_def_identifier], row_definition_stack)
566
- return {
567
- is_success: true,
568
- data: {
569
- row_data,
570
- },
571
- }
572
- },
573
- })
574
- })
575
- let upsert_row_is_loading = $state(false)
576
- row_edit_upsert_row_button_manager = create_button_manager({
577
- text: Number.isInteger(row_i) ? "Update Row" : "Insert Row",
578
- is_loading: () => upsert_row_is_loading,
579
- on_click: async () => {
580
- upsert_row_is_loading = true
581
- const row_data = get_def_from_variable_path([row_edit_def_identifier], row_definition_stack)
582
- if (Number.isInteger(row_i)) {
583
- if (typeof config?.on_event == "function") {
584
- const res = await config?.on_event({
585
- type: "update_row",
586
- row_i: row_i,
587
- row: row_data,
588
- path: path_to_set,
589
- })
590
- if (res?.is_success) {
591
- preempt_insert_row_popover_manager.show_temp_message(
592
- "Successfully updated row",
593
- "success",
594
- 1800,
595
- true,
596
- () => {
597
- const row_prepped = get_row_prepped(columns_prepped, res?.row, row_i)
598
- rows_prepped[row_prepped?.row_i] = row_prepped
599
- }
600
- )
601
- } else {
602
- preempt_insert_row_popover_manager.show_temp_message(
603
- res?.message ? `Error updating row: ${res?.message}` : "Error updating row",
604
- "error",
605
- 1800,
606
- false
607
- )
608
- }
609
- }
610
- } else {
611
- if (typeof config?.on_event == "function") {
612
- const res = await config?.on_event({
613
- type: "insert_row",
614
- row: row_data,
615
- path: path_to_set,
616
- })
617
- if (res?.is_success) {
618
- preempt_insert_row_popover_manager.show_temp_message(
619
- "Successfully inserted row",
620
- "success",
621
- 1800,
622
- true,
623
- () => set_rows_prepped(columns_prepped)
624
- )
625
- } else {
626
- preempt_insert_row_popover_manager.show_temp_message("Error insering row", "error", 1800, false)
627
- }
628
- }
629
- }
630
- upsert_row_is_loading = false
631
- },
632
- })
633
- let delete_row_is_loading = $state(false)
634
- row_edit_delete_row_are_you_sure_popover_manager = create_popover_manager({
635
- type: "center",
636
- min_width: 280,
637
- target_width: 300,
638
- min_height: 280,
639
- target_height: 300,
640
- header: "Are You Sure?",
641
- })
642
- row_edit_delete_row_are_you_sure_popover_toggle_button_manager = create_button_manager({
643
- type: "outlined",
644
- support_icon: "trashcan",
645
- color: "var(--error-t)",
646
- is_compressed: true,
647
- text: "Delete Row",
648
- mt: 5,
649
- is_loading: () => delete_row_is_loading,
650
- popover_target: `popover_${row_edit_delete_row_are_you_sure_popover_manager?.id}`,
651
- })
652
- row_edit_delete_row_button_manager = create_button_manager({
653
- color: "var(--error-t)",
654
- text: "Delete Row",
655
- mb: 1,
656
- is_loading: () => delete_row_is_loading,
657
- on_click: async () => {
658
- delete_row_is_loading = true
659
- if (typeof config?.on_event == "function") {
660
- const res = await config?.on_event({
661
- type: "delete_row",
662
- path: [...rows_data_from_variable_path, row_i],
663
- })
664
- if (res?.is_success) {
665
- row_edit_delete_row_are_you_sure_popover_manager.show_temp_message(
666
- res?.message ?? "Successfully Deleted Row",
667
- "success",
668
- 1800,
669
- true,
670
- () => set_rows_prepped(columns_prepped)
671
- )
672
- preempt_insert_row_popover_manager.close()
673
- } else {
674
- row_edit_delete_row_are_you_sure_popover_manager.show_temp_message(
675
- res?.message ?? "Error Deleting Row",
676
- "error"
677
- )
678
- }
679
- }
680
- delete_row_is_loading = false
681
- },
682
- })
683
- row_edit_delete_row_cancel_button_manager = create_button_manager({
684
- type: "outlined",
685
- text: "Cancel",
686
- on_click: () => row_edit_delete_row_are_you_sure_popover_manager.close(),
687
- })
688
- }
689
-
690
- function guess_row_input_content(columns) {
691
- return {
692
- type_id: "div",
693
- selector_id: create_unique_id(null, 8),
694
- children: Object.entries(columns || {})
695
- .sort(([a_column_id, a_val], [b_column_id, b_val]) => {
696
- const a_order = a_val?.display_order ?? 0
697
- const b_order = b_val?.display_order ?? 0
698
- return a_order - b_order
699
- })
700
- .map(([column_id, val]) => {
701
- if (val?.is_autogenerated) {
702
- let guessed_column_display_content = variables_data_type_remaining_to_astc(val?.db_data_type, "display", [
703
- row_edit_def_identifier,
704
- column_id,
705
- ])
706
- return {
707
- type_id: "div",
708
- selector_id: create_unique_id(null, 8),
709
- children: [
710
- {
711
- type_id: "span",
712
- selector_id: create_unique_id(null, 8),
713
- children: [
714
- {
715
- type_id: "strong",
716
- selector_id: create_unique_id(null, 8),
717
- children: [],
718
- attributes: { content: column_id },
719
- },
720
- {
721
- type_id: "em",
722
- selector_id: create_unique_id(null, 8),
723
- children: [],
724
- attributes: { content: " autogenerated " },
725
- },
726
- ],
727
- attributes: {},
728
- },
729
- guessed_column_display_content,
730
- {
731
- type_id: "br",
732
- selector_id: create_unique_id(null, 8),
733
- children: [],
734
- attributes: {},
735
- },
736
- ],
737
- attributes: {},
738
- }
739
- } else {
740
- let guessed_column_input_content = variables_data_type_remaining_to_astc(val?.db_data_type, "input", [
741
- row_edit_def_identifier,
742
- column_id,
743
- ])
744
- return {
745
- type_id: "div",
746
- selector_id: create_unique_id(null, 8),
747
- children: [
748
- {
749
- type_id: "strong",
750
- selector_id: create_unique_id(null, 8),
751
- children: [],
752
- attributes: { content: column_id },
753
- },
754
- guessed_column_input_content,
755
- {
756
- type_id: "spacer",
757
- selector_id: create_unique_id(null, 8),
758
- children: [],
759
- attributes: {
760
- mt: 1,
761
- mb: 1,
762
- },
763
- },
764
- ],
765
- attributes: {},
766
- }
767
- }
768
- }),
769
- }
770
- }
771
-
772
- function set_attributes(attributes) {
773
- rows_data_from_variable_path = attributes?.rows_data_from_variable_path
774
- is_data_editable = attributes?.is_data_editable ?? false
775
- nav_items = Array.isArray(attributes?.nav_items)
776
- ? attributes.nav_items.filter((item) =>
777
- [
778
- "settings",
779
- "search",
780
- "insert",
781
- "file",
782
- "bulk_select",
783
- "sort_by",
784
- "pagination",
785
- "rows_per_page",
786
- "load_more",
787
- ].includes(item)
788
- )
789
- : null
790
- is_paginate = attributes?.is_paginate ?? null
791
- is_more_to_load = attributes?.is_more_to_load ?? false
792
- table_header_max_height = attributes?.table_header_max_height ?? null
793
- table_row_max_height = attributes?.table_row_max_height ?? null
794
- set_columns(attributes?.columns, attributes?.row_input_content)
795
- }
796
-
797
- function reset_definition_stack(input) {
798
- definition_stack = input
799
- set_rows_prepped(columns_prepped)
800
- }
801
-
802
- function set_columns(input, row_input_content_input = null) {
803
- set_columns_prepped(input)
804
- set_rows_prepped(columns_prepped)
805
- row_input_content = row_input_content_input ?? guess_row_input_content(input)
806
- }
807
-
808
- function init(config) {
809
- table_id = config?.table_id
810
- table_name = config?.table_name
811
- table_description = config?.table_description
812
- sort_by = config?.sort_by
813
- rows_data_from_variable_path = config?.rows_data_from_variable_path
814
- row_iter_identifier = config?.row_iter_identifier ?? "row_i"
815
- definition_stack = config?.definition_stack
816
- mapkit_js_token = config?.mapkit_js_token
817
- set_attributes(config)
818
- table_search_text_input_manager = create_text_input_manager({
819
- type: "search",
820
- placeholder: "Search",
821
- })
822
- let load_more_is_loading = $state(false)
823
- load_more_button_manager = create_button_manager({
824
- type: "soft",
825
- text: "Load More",
826
- is_loading: () => load_more_is_loading,
827
- on_click: async () => {
828
- load_more_is_loading = true
829
- if (typeof config?.on_event == "function") {
830
- const res = await config?.on_event({
831
- type: "load_more",
832
- path: rows_data_from_variable_path,
833
- })
834
- if (res?.is_success) {
835
- load_more_button_manager.success_trigger()
836
- set_rows_prepped(columns_prepped)
837
- is_more_to_load = res?.is_more_to_load
838
- } else {
839
- load_more_button_manager.error_trigger()
840
- }
841
- }
842
- load_more_is_loading = false
843
- },
844
- })
845
- pagination_manager = create_pagination_manager({
846
- cur_page: () => cur_page_to_use,
847
- total_pages: () => {
848
- if (Array.isArray(row_indexes_display_order)) {
849
- return Math.ceil(row_indexes_display_order.length / rows_per_page_dropdown_manager?.val)
850
- } else {
851
- return 1
852
- }
853
- },
854
- on_change: (input) => (cur_page = input),
855
- })
856
- rows_per_page_dropdown_manager = create_dropdown_manager({
857
- val: config?.rows_per_page ?? 100,
858
- is_button_compressed: true,
859
- target_width: 80,
860
- options: [2, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000],
861
- })
862
- sort_by_input_manager = create_sort_by_input_manager({
863
- is_popover: true,
864
- val: sort_by,
865
- apply_sort: (input) => {
866
- sort_by = input
867
- },
868
- save_server_sort: async (input) => {
869
- if (typeof config?.on_event == "function") {
870
- const res = await config?.on_event({
871
- type: "update_table_server_sort",
872
- input: input,
873
- })
874
- return res
875
- }
876
- },
877
- get_defined_options: () => {
878
- const defined_options = Object.keys(columns_prepped || {}).map((h) => ({ key: h, name: h }))
879
- return defined_options
880
- },
881
- })
882
- toggle_bulk_selectable_button_manager = create_button_manager({
883
- type: "soft",
884
- text: () => (is_bulk_select ? "Hide Bulk Select" : "Bulk Select"),
885
- on_click: () => (is_bulk_select = !is_bulk_select),
886
- })
887
- insert_popover_manager = create_popover_manager({
888
- type: "dropdown",
889
- min_width: 180,
890
- target_width: 200,
891
- min_height: 160,
892
- target_height: 160,
893
- header: "Insert",
894
- anchor_id: () => `button_${insert_popover_button_manager?.id}`,
895
- })
896
- insert_popover_button_manager = create_button_manager({
897
- type: "soft",
898
- text: "Insert",
899
- is_compressed: true,
900
- popover_target: () => `popover_${insert_popover_manager?.id}`,
901
- })
902
- preempt_insert_column_popover_manager = create_popover_manager({
903
- type: "panel",
904
- target_width: 600,
905
- header: () => (column_edit_id ? `Edit Column ${column_edit_id}` : "Create Column"),
906
- on_open: () => insert_popover_manager.close(),
907
- })
908
- preempt_insert_column_button_manager = create_button_manager({
909
- type: "soft",
910
- text_align: "left",
911
- text: "Insert Column",
912
- icon_deg: 90,
913
- support_icon: "row_item",
914
- popover_target: () => `popover_${preempt_insert_column_popover_manager?.id}`,
915
- on_click: () => edit_column(),
916
- })
917
- preempt_insert_row_popover_manager = create_popover_manager({
918
- type: "panel",
919
- target_width: 600,
920
- header: () => (typeof row_edit_index == "number" ? `Update Row ${row_edit_index}` : "Insert Row"),
921
- on_open: () => insert_popover_manager.close(),
922
- })
923
- preempt_insert_row_button_manager = create_button_manager({
924
- type: "soft",
925
- text_align: "left",
926
- text: "Insert Row",
927
- support_icon: "row_item",
928
- popover_target: () => `popover_${preempt_insert_row_popover_manager?.id}`,
929
- on_click: () => edit_row(),
930
- })
931
- file_popover_manager = create_popover_manager({
932
- type: "dropdown",
933
- min_width: 180,
934
- target_width: 200,
935
- min_height: 160,
936
- target_height: 200,
937
- header: "File",
938
- anchor_id: () => `button_${file_popover_button_manager?.id}`,
939
- })
940
- file_popover_button_manager = create_button_manager({
941
- type: "soft",
942
- text: "File",
943
- support_icon: "file",
944
- is_compressed: true,
945
- popover_target: () => `popover_${file_popover_manager?.id}`,
946
- })
947
- copy_json_button_manager = create_button_manager({
948
- type: "soft",
949
- text_align: "left",
950
- text: "Copy JSON",
951
- support_icon: "clipboard",
952
- is_success_animation: true,
953
- on_click: () => copy_json(),
954
- })
955
- download_json_button_manager = create_button_manager({
956
- type: "soft",
957
- text_align: "left",
958
- text: "Download JSON",
959
- support_icon: "download",
960
- is_success_animation: true,
961
- on_click: () => download_json(),
962
- })
963
- download_csv_button_manager = create_button_manager({
964
- type: "soft",
965
- text_align: "left",
966
- text: "Download CSV",
967
- support_icon: "download",
968
- is_success_animation: true,
969
- on_click: () => download_csv(),
970
- })
971
- copy_structure_button_manager = create_button_manager({
972
- type: "soft",
973
- text_align: "left",
974
- text: "Copy Structure",
975
- support_icon: "clipboard",
976
- is_success_animation: true,
977
- on_click: () => copy_structure(),
978
- })
979
- prempt_bulk_upload_rows_popover_manager = create_popover_manager({
980
- type: "panel",
981
- target_width: 600,
982
- header: "Bulk Upload and Insert Rows",
983
- on_open: () => insert_popover_manager.close(),
984
- })
985
- prempt_bulk_upload_rows_popover_button_manager = create_button_manager({
986
- type: "soft",
987
- text_align: "left",
988
- text: "Insert Bulk Rows",
989
- support_icon: "row_item",
990
- popover_target: () => `popover_${prempt_bulk_upload_rows_popover_manager?.id}`,
991
- })
992
- upload_rows_file_input_manager = create_file_input_manager({
993
- label: "json or csv upload",
994
- accept: ["application/json", "text/csv"],
995
- is_multiselect: false,
996
- is_drop_zone: false,
997
- on_get_file: (input) => {
998
- const reader = new FileReader()
999
- reader.readAsText(input)
1000
- reader.onload = function (event) {
1001
- const file_content = event.target.result
1002
- const file_type = input?.type
1003
- if (file_type === "application/json") {
1004
- bulk_insert_rows_prepared_data = JSON.parse(file_content)
1005
- } else if (file_type === "text/csv") {
1006
- bulk_insert_rows_prepared_data = csv_to_json(file_content)
1007
- }
1008
- }
1009
- },
1010
- })
1011
- upload_rows_text_input_manager = create_text_input_manager({
1012
- type: "text_area",
1013
- label: "Data Input",
1014
- max_length: 1000000,
1015
- placeholder: '[{ "some_key": "some_value" }]',
1016
- })
1017
- upload_rows_prepare_text_button_manager = create_button_manager({
1018
- is_disabled: () => !upload_rows_text_input_manager?.val,
1019
- text: "Prepare Data",
1020
- is_compressed: true,
1021
- on_click: () => {
1022
- if (typeof upload_rows_text_input_manager?.val === "string") {
1023
- try {
1024
- bulk_insert_rows_prepared_data = JSON.parse(upload_rows_text_input_manager?.val)
1025
- } catch (e) {
1026
- bulk_insert_rows_prepared_data = upload_rows_text_input_manager?.val
1027
- }
1028
- } else if (typeof upload_rows_text_input_manager?.val === "number") {
1029
- bulk_insert_rows_prepared_data = upload_rows_text_input_manager?.val
1030
- } else {
1031
- bulk_insert_rows_prepared_data = deep_copy(upload_rows_text_input_manager?.val)
1032
- }
1033
- },
1034
- })
1035
- upload_rows_clear_prepared_data_button_manager = create_button_manager({
1036
- type: "outlined",
1037
- is_disabled: upload_rows_text_input_manager?.val,
1038
- text: "Clear Prepare Data",
1039
- is_compressed: true,
1040
- on_click: () => {
1041
- upload_rows_file_input_manager.clear_files()
1042
- bulk_insert_rows_prepared_data = null
1043
- },
1044
- })
1045
- let is_loading_bulk_insert_rows = $state(false)
1046
- bulk_insert_rows_button_manager = create_button_manager({
1047
- is_loading: () => is_loading_bulk_insert_rows,
1048
- is_disabled: () => !bulk_insert_rows_prepared_data,
1049
- text: "Bulk Insert Rows",
1050
- on_click: async () => {
1051
- is_loading_bulk_insert_rows = true
1052
- if (typeof config?.on_event == "function") {
1053
- const res = await config?.on_event({
1054
- type: "bulk_insert_rows",
1055
- rows: bulk_insert_rows_prepared_data,
1056
- path: [...rows_data_from_variable_path, 0],
1057
- })
1058
- if (res?.is_success) {
1059
- prempt_bulk_upload_rows_popover_manager.show_temp_message(
1060
- "Successfully bulk inserted rows",
1061
- "success",
1062
- 1800,
1063
- true,
1064
- () => {
1065
- upload_rows_file_input_manager.clear_files()
1066
- bulk_insert_rows_prepared_data = null
1067
- upload_rows_text_input_manager.set_val(null)
1068
- set_rows_prepped(columns_prepped)
1069
- }
1070
- )
1071
- } else {
1072
- prempt_bulk_upload_rows_popover_manager.show_temp_message("Error bulk inserting rows", "error", 1800, false)
1073
- }
1074
- }
1075
- is_loading_bulk_insert_rows = false
1076
- },
1077
- })
1078
- bulk_select_all_rows_toggle_checkbox_manager = create_checkbox_manager({
1079
- val: false,
1080
- mt: 0.2,
1081
- ml: 0.2,
1082
- mb: 0.2,
1083
- on_change: (input) => bulk_select_all_rows_toggle(input),
1084
- })
1085
- settings_popover_manager = create_popover_manager({
1086
- type: "dropdown",
1087
- target_width: 260,
1088
- target_height: 300,
1089
- anchor_id: () => `button_${settings_popover_toggle_button_manager?.id}`,
1090
- })
1091
- settings_popover_toggle_button_manager = create_button_manager({
1092
- type: "soft",
1093
- support_icon: "three_dots",
1094
- icon_sw: 70,
1095
- is_uniform: true,
1096
- popover_target: () => `popover_${settings_popover_manager?.id}`,
1097
- })
1098
- let is_loading_update_table_name = $state(false)
1099
- settings_update_table_name_text_input_manager = create_text_input_manager({
1100
- is_popover: true,
1101
- popover_header: "Edit Table Name",
1102
- placeholder: "Table Name",
1103
- val: table_name,
1104
- update_button_text: "Update Table Name",
1105
- is_loading: () => is_loading_update_table_name,
1106
- on_finish: async (input) => {
1107
- if (typeof config?.on_event == "function") {
1108
- is_loading_update_table_name = true
1109
- const res = await config?.on_event({
1110
- type: "update_table_name",
1111
- table_name: input,
1112
- path: rows_data_from_variable_path,
1113
- })
1114
- if (res?.is_success) {
1115
- table_name = res?.table_name
1116
- settings_update_table_name_text_input_manager.popover_manager.show_temp_message(
1117
- "Successfully updated table name",
1118
- "success"
1119
- )
1120
- } else {
1121
- console.log("error updating table name")
1122
- settings_update_table_name_text_input_manager.popover_manager.show_temp_message(
1123
- "Error updating table name",
1124
- "error",
1125
- 1800,
1126
- false
1127
- )
1128
- }
1129
- is_loading_update_table_name = false
1130
- return res
1131
- }
1132
- },
1133
- })
1134
- settings_update_table_name_button_manager = create_button_manager({
1135
- type: "soft",
1136
- support_icon: "edit",
1137
- is_uniform: true,
1138
- border_radius: 0.5,
1139
- aria_label: "edit",
1140
- icon_sw: 40,
1141
- min_height: 2.4,
1142
- popover_target: () => `popover_${settings_update_table_name_text_input_manager?.popover_manager?.id}`,
1143
- })
1144
- let is_loading_update_table_description = $state(false)
1145
- settings_update_table_description_text_input_manager = create_text_input_manager({
1146
- is_popover: true,
1147
- popover_header: "Edit Table Description",
1148
- placeholder: "Some Table Description",
1149
- val: table_description,
1150
- update_button_text: "Update Table Description",
1151
- is_loading: () => is_loading_update_table_description,
1152
- on_finish: async (input) => {
1153
- if (typeof config?.on_event == "function") {
1154
- is_loading_update_table_description = true
1155
- const res = await config?.on_event({
1156
- type: "update_table_description",
1157
- table_description: input,
1158
- path: rows_data_from_variable_path,
1159
- })
1160
- if (res?.is_success) {
1161
- table_description = res?.table_description
1162
- settings_update_table_description_text_input_manager.popover_manager.show_temp_message(
1163
- "Successfully updated table description",
1164
- "success"
1165
- )
1166
- } else {
1167
- console.log("error updating table description")
1168
- settings_update_table_description_text_input_manager.popover_manager.show_temp_message(
1169
- "Error updating table name",
1170
- "error",
1171
- 1800,
1172
- false
1173
- )
1174
- }
1175
- is_loading_update_table_description = false
1176
- return res
1177
- }
1178
- },
1179
- })
1180
- settings_update_table_description_button_manager = create_button_manager({
1181
- type: "soft",
1182
- support_icon: "edit",
1183
- is_uniform: true,
1184
- border_radius: 0.5,
1185
- aria_label: "edit",
1186
- icon_sw: 40,
1187
- min_height: 2.4,
1188
- popover_target: () => `popover_${settings_update_table_description_text_input_manager?.popover_manager?.id}`,
1189
- })
1190
- settings_copy_row_json_schema_button_manager = create_button_manager({
1191
- type: "outlined",
1192
- text: "Copy Row JSON Schema",
1193
- is_success_animation: true,
1194
- support_icon: "clipboard",
1195
- mb: 1,
1196
- on_click: () => copy_to_clipboard(row_json_schema),
1197
- })
1198
- settings_copy_rows_json_schema_button_manager = create_button_manager({
1199
- type: "outlined",
1200
- text: "Copy Rows JSON Schema",
1201
- is_success_animation: true,
1202
- support_icon: "clipboard",
1203
- on_click: () =>
1204
- copy_to_clipboard({
1205
- type: "array",
1206
- items: row_json_schema,
1207
- }),
1208
- })
1209
- let delete_table_is_loading = $state(false)
1210
- settings_delete_table_popover_manager = create_popover_manager({
1211
- type: "center",
1212
- min_width: 280,
1213
- target_width: 300,
1214
- min_height: 280,
1215
- target_height: 300,
1216
- header: "Are You Sure?",
1217
- })
1218
- settings_preempt_delete_table_popover_button_manager = create_button_manager({
1219
- type: "outlined",
1220
- support_icon: "trashcan",
1221
- color: "var(--error-t)",
1222
- is_compressed: true,
1223
- text: "Delete Table",
1224
- mt: 5,
1225
- is_loading: () => delete_table_is_loading,
1226
- popover_target: `popover_${settings_delete_table_popover_manager?.id}`,
1227
- })
1228
- settings_copy_table_id_button_manager = create_button_manager({
1229
- type: "outlined",
1230
- is_uniform: true,
1231
- is_success_animation: true,
1232
- support_icon: "clipboard",
1233
- on_click: () => copy_to_clipboard(table_id),
1234
- })
1235
- settings_delete_table_button_manager = create_button_manager({
1236
- color: "var(--error-t)",
1237
- text: "Delete Table",
1238
- mb: 1,
1239
- is_loading: () => delete_table_is_loading,
1240
- on_click: async () => {
1241
- delete_table_is_loading = true
1242
- if (typeof config?.on_event == "function") {
1243
- const res = await config?.on_event({
1244
- type: "delete_table",
1245
- path: rows_data_from_variable_path,
1246
- })
1247
- if (res?.is_success) {
1248
- settings_delete_table_popover_manager.show_temp_message(res?.message ?? "Successfully Deleted Table")
1249
- if (typeof res?.finish == "function") {
1250
- res?.finish()
1251
- }
1252
- } else {
1253
- // error_message
1254
- settings_delete_table_popover_manager.show_temp_message(res?.message ?? "Error deleting table", "error")
1255
- }
1256
- }
1257
- delete_table_is_loading = false
1258
- },
1259
- })
1260
- settings_delete_table_cancel_button_manager = create_button_manager({
1261
- type: "outlined",
1262
- text: "Cancel",
1263
- on_click: () => settings_delete_table_popover_manager.close(),
1264
- })
1265
- let bulk_delete_rows_is_loading = $state(false)
1266
- bulk_delete_rows_popover_manager = create_popover_manager({
1267
- type: "center",
1268
- min_width: 280,
1269
- target_width: 300,
1270
- min_height: 280,
1271
- target_height: 300,
1272
- header: "Are You Sure?",
1273
- })
1274
- bulk_delete_rows_popover_button_manager = create_button_manager({
1275
- type: "outlined",
1276
- support_icon: "trashcan",
1277
- color: "var(--error-t)",
1278
- is_compressed: true,
1279
- text: () => `Delete ${Array.isArray(row_indexes_bulk_selected) ? row_indexes_bulk_selected.length : ""} rows`,
1280
- is_disabled: () => !(Array.isArray(row_indexes_bulk_selected) && row_indexes_bulk_selected.length > 0),
1281
- is_loading: () => bulk_delete_rows_is_loading,
1282
- popover_target: `popover_${bulk_delete_rows_popover_manager?.id}`,
1283
- })
1284
- bulk_delete_rows_button_manager = create_button_manager({
1285
- color: "var(--error-t)",
1286
- text: () => `Delete ${Array.isArray(row_indexes_bulk_selected) ? row_indexes_bulk_selected.length : "0"} rows`,
1287
- mb: 1,
1288
- is_disabled: () => !(Array.isArray(row_indexes_bulk_selected) && row_indexes_bulk_selected.length > 0),
1289
- is_loading: () => bulk_delete_rows_is_loading,
1290
- on_click: async () => {
1291
- bulk_delete_rows_is_loading = true
1292
- if (typeof config?.on_event == "function") {
1293
- const res = await config?.on_event({
1294
- type: "bulk_delete_rows",
1295
- row_indexes: row_indexes_bulk_selected,
1296
- path: rows_data_from_variable_path,
1297
- })
1298
- if (res?.is_success) {
1299
- bulk_delete_rows_popover_manager.show_temp_message(
1300
- res?.message ?? "Successfully Deleted Rows",
1301
- "success",
1302
- 1800,
1303
- true,
1304
- () => {
1305
- set_rows_prepped(columns_prepped)
1306
- }
1307
- )
1308
- } else {
1309
- // error_message
1310
- bulk_delete_rows_popover_manager.show_temp_message(res?.message ?? "Error deleting rows", "error")
1311
- }
1312
- }
1313
- bulk_delete_rows_is_loading = false
1314
- },
1315
- })
1316
- bulk_delete_rows_cancel_button_manager = create_button_manager({
1317
- type: "outlined",
1318
- text: "Cancel",
1319
- on_click: () => bulk_delete_rows_popover_manager.close(),
1320
- })
1321
- edit_column()
1322
- }
1323
-
1324
- init(config)
1325
-
1326
- return {
1327
- id,
1328
- get table_id() {
1329
- return table_id
1330
- },
1331
- get table_name() {
1332
- return table_name
1333
- },
1334
- get table_description() {
1335
- return table_description
1336
- },
1337
- get is_data_editable() {
1338
- return is_data_editable
1339
- },
1340
- get nav_items() {
1341
- return nav_items
1342
- },
1343
- get is_paginate() {
1344
- return is_paginate
1345
- },
1346
- get table_header_max_height() {
1347
- return table_header_max_height
1348
- },
1349
- get table_row_max_height() {
1350
- return table_row_max_height
1351
- },
1352
- get table_search_text_input_manager() {
1353
- return table_search_text_input_manager
1354
- },
1355
- get is_more_to_load() {
1356
- return is_more_to_load
1357
- },
1358
- get load_more_button_manager() {
1359
- return load_more_button_manager
1360
- },
1361
- get pagination_manager() {
1362
- return pagination_manager
1363
- },
1364
- get rows_per_page_dropdown_manager() {
1365
- return rows_per_page_dropdown_manager
1366
- },
1367
- get sort_by_input_manager() {
1368
- return sort_by_input_manager
1369
- },
1370
- get insert_popover_manager() {
1371
- return insert_popover_manager
1372
- },
1373
- get insert_popover_button_manager() {
1374
- return insert_popover_button_manager
1375
- },
1376
- get preempt_insert_column_popover_manager() {
1377
- return preempt_insert_column_popover_manager
1378
- },
1379
- get preempt_insert_column_button_manager() {
1380
- return preempt_insert_column_button_manager
1381
- },
1382
- get preempt_insert_row_button_manager() {
1383
- return preempt_insert_row_button_manager
1384
- },
1385
- get file_popover_manager() {
1386
- return file_popover_manager
1387
- },
1388
- get file_popover_button_manager() {
1389
- return file_popover_button_manager
1390
- },
1391
- get copy_json_button_manager() {
1392
- return copy_json_button_manager
1393
- },
1394
- get download_json_button_manager() {
1395
- return download_json_button_manager
1396
- },
1397
- get download_csv_button_manager() {
1398
- return download_csv_button_manager
1399
- },
1400
- get copy_structure_button_manager() {
1401
- return copy_structure_button_manager
1402
- },
1403
- get prempt_bulk_upload_rows_popover_button_manager() {
1404
- return prempt_bulk_upload_rows_popover_button_manager
1405
- },
1406
- get prempt_bulk_upload_rows_popover_manager() {
1407
- return prempt_bulk_upload_rows_popover_manager
1408
- },
1409
- get upload_rows_file_input_manager() {
1410
- return upload_rows_file_input_manager
1411
- },
1412
- get upload_rows_text_input_manager() {
1413
- return upload_rows_text_input_manager
1414
- },
1415
- get upload_rows_prepare_text_button_manager() {
1416
- return upload_rows_prepare_text_button_manager
1417
- },
1418
- get upload_rows_clear_prepared_data_button_manager() {
1419
- return upload_rows_clear_prepared_data_button_manager
1420
- },
1421
- get bulk_insert_rows_error_message() {
1422
- return bulk_insert_rows_error_message
1423
- },
1424
- get bulk_insert_rows_button_manager() {
1425
- return bulk_insert_rows_button_manager
1426
- },
1427
- get bulk_insert_rows_prepared_data() {
1428
- return bulk_insert_rows_prepared_data
1429
- },
1430
- get toggle_bulk_selectable_button_manager() {
1431
- return toggle_bulk_selectable_button_manager
1432
- },
1433
- get is_bulk_select() {
1434
- return is_bulk_select
1435
- },
1436
- get columns() {
1437
- return columns
1438
- },
1439
- get config() {
1440
- return config
1441
- },
1442
- get column_ids_display_order() {
1443
- return column_ids_display_order
1444
- },
1445
- get row_indexes_display_order() {
1446
- return row_indexes_display_order
1447
- },
1448
- get row_indexes_display_order_shown() {
1449
- return row_indexes_display_order_shown
1450
- },
1451
- get rows_prepped() {
1452
- return rows_prepped
1453
- },
1454
- get columns_prepped() {
1455
- return columns_prepped
1456
- },
1457
- get bulk_select_all_rows_toggle_checkbox_manager() {
1458
- return bulk_select_all_rows_toggle_checkbox_manager
1459
- },
1460
- get bulk_delete_rows_popover_manager() {
1461
- return bulk_delete_rows_popover_manager
1462
- },
1463
- get bulk_delete_rows_popover_button_manager() {
1464
- return bulk_delete_rows_popover_button_manager
1465
- },
1466
- get bulk_delete_rows_button_manager() {
1467
- return bulk_delete_rows_button_manager
1468
- },
1469
- get bulk_delete_rows_cancel_button_manager() {
1470
- return bulk_delete_rows_cancel_button_manager
1471
- },
1472
- get row_indexes_bulk_selected() {
1473
- return row_indexes_bulk_selected
1474
- },
1475
- get column_edit_id() {
1476
- return column_edit_id
1477
- },
1478
- get column_edit_input_manager() {
1479
- return column_edit_input_manager
1480
- },
1481
- get column_edit_upsert_column_button_manager() {
1482
- return column_edit_upsert_column_button_manager
1483
- },
1484
- get preempt_insert_row_popover_manager() {
1485
- return preempt_insert_row_popover_manager
1486
- },
1487
- get row_edit_index() {
1488
- return row_edit_index
1489
- },
1490
- get row_edit_content_manager() {
1491
- return row_edit_content_manager
1492
- },
1493
- get row_edit_upsert_row_button_manager() {
1494
- return row_edit_upsert_row_button_manager
1495
- },
1496
- get row_edit_delete_row_are_you_sure_popover_manager() {
1497
- return row_edit_delete_row_are_you_sure_popover_manager
1498
- },
1499
- get row_edit_delete_row_are_you_sure_popover_toggle_button_manager() {
1500
- return row_edit_delete_row_are_you_sure_popover_toggle_button_manager
1501
- },
1502
- get row_edit_delete_row_button_manager() {
1503
- return row_edit_delete_row_button_manager
1504
- },
1505
- get row_edit_delete_row_cancel_button_manager() {
1506
- return row_edit_delete_row_cancel_button_manager
1507
- },
1508
- get is_loading_rows() {
1509
- return is_loading_rows
1510
- },
1511
- get loading_rows_progress() {
1512
- return loading_rows_progress
1513
- },
1514
- get settings_popover_manager() {
1515
- return settings_popover_manager
1516
- },
1517
- get settings_popover_toggle_button_manager() {
1518
- return settings_popover_toggle_button_manager
1519
- },
1520
- get settings_update_table_name_button_manager() {
1521
- return settings_update_table_name_button_manager
1522
- },
1523
- get settings_update_table_name_text_input_manager() {
1524
- return settings_update_table_name_text_input_manager
1525
- },
1526
- get settings_update_table_description_button_manager() {
1527
- return settings_update_table_description_button_manager
1528
- },
1529
- get settings_update_table_description_text_input_manager() {
1530
- return settings_update_table_description_text_input_manager
1531
- },
1532
- get settings_copy_row_json_schema_button_manager() {
1533
- return settings_copy_row_json_schema_button_manager
1534
- },
1535
- get settings_copy_rows_json_schema_button_manager() {
1536
- return settings_copy_rows_json_schema_button_manager
1537
- },
1538
- get settings_preempt_delete_table_popover_button_manager() {
1539
- return settings_preempt_delete_table_popover_button_manager
1540
- },
1541
- get settings_delete_table_popover_manager() {
1542
- return settings_delete_table_popover_manager
1543
- },
1544
- get settings_delete_table_cancel_button_manager() {
1545
- return settings_delete_table_cancel_button_manager
1546
- },
1547
- get settings_copy_table_id_button_manager() {
1548
- return settings_copy_table_id_button_manager
1549
- },
1550
- get settings_delete_table_button_manager() {
1551
- return settings_delete_table_button_manager
1552
- },
1553
- init,
1554
- set_table_search_text_input,
1555
- set_rows_prepped,
1556
- set_columns_prepped,
1557
- copy_json,
1558
- download_json,
1559
- download_csv,
1560
- copy_structure,
1561
- set_attributes,
1562
- reset_definition_stack,
1563
- set_columns,
1564
- }
1565
- }