sveltekit-ui 1.0.0

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