@vandenberghinc/volt 1.1.2

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 (451) hide show
  1. package/.vrepo +28 -0
  2. package/.vscode/tasks.json +87 -0
  3. package/README.md +67 -0
  4. package/backend/dist/cjs/blacklist.d.ts +10 -0
  5. package/backend/dist/cjs/blacklist.js +53 -0
  6. package/backend/dist/cjs/cli.d.ts +2 -0
  7. package/backend/dist/cjs/cli.js +263 -0
  8. package/backend/dist/cjs/database.d.ts +364 -0
  9. package/backend/dist/cjs/database.js +1962 -0
  10. package/backend/dist/cjs/endpoint.d.ts +57 -0
  11. package/backend/dist/cjs/endpoint.js +425 -0
  12. package/backend/dist/cjs/file_watcher.d.ts +44 -0
  13. package/backend/dist/cjs/file_watcher.js +348 -0
  14. package/backend/dist/cjs/frontend.d.ts +13 -0
  15. package/backend/dist/cjs/frontend.js +30 -0
  16. package/backend/dist/cjs/image_endpoint.d.ts +24 -0
  17. package/backend/dist/cjs/image_endpoint.js +210 -0
  18. package/backend/dist/cjs/logger.d.ts +5 -0
  19. package/backend/dist/cjs/logger.js +16 -0
  20. package/backend/dist/cjs/meta.d.ts +50 -0
  21. package/backend/dist/cjs/meta.js +153 -0
  22. package/backend/dist/cjs/mutex.d.ts +24 -0
  23. package/backend/dist/cjs/mutex.js +52 -0
  24. package/backend/dist/cjs/package.json +1 -0
  25. package/backend/dist/cjs/payments/paddle.d.ts +161 -0
  26. package/backend/dist/cjs/payments/paddle.js +2301 -0
  27. package/backend/dist/cjs/plugins/browser.d.ts +36 -0
  28. package/backend/dist/cjs/plugins/browser.js +183 -0
  29. package/backend/dist/cjs/plugins/communication.d.ts +70 -0
  30. package/backend/dist/cjs/plugins/communication.js +177 -0
  31. package/backend/dist/cjs/plugins/css.d.ts +10 -0
  32. package/backend/dist/cjs/plugins/css.js +71 -0
  33. package/backend/dist/cjs/plugins/mail.d.ts +277 -0
  34. package/backend/dist/cjs/plugins/mail.js +1419 -0
  35. package/backend/dist/cjs/plugins/pdf.d.ts +757 -0
  36. package/backend/dist/cjs/plugins/pdf.js +1694 -0
  37. package/backend/dist/cjs/plugins/thread_monitor.d.ts +18 -0
  38. package/backend/dist/cjs/plugins/thread_monitor.js +127 -0
  39. package/backend/dist/cjs/plugins/ts/compiler.d.ts +132 -0
  40. package/backend/dist/cjs/plugins/ts/compiler.js +944 -0
  41. package/backend/dist/cjs/plugins/ts/preprocessing.d.ts +14 -0
  42. package/backend/dist/cjs/plugins/ts/preprocessing.js +762 -0
  43. package/backend/dist/cjs/rate_limit.d.ts +65 -0
  44. package/backend/dist/cjs/rate_limit.js +463 -0
  45. package/backend/dist/cjs/request.deprc.d.ts +48 -0
  46. package/backend/dist/cjs/request.deprc.js +572 -0
  47. package/backend/dist/cjs/response.deprc.d.ts +55 -0
  48. package/backend/dist/cjs/response.deprc.js +275 -0
  49. package/backend/dist/cjs/server.d.ts +311 -0
  50. package/backend/dist/cjs/server.js +3475 -0
  51. package/backend/dist/cjs/splash_screen.d.ts +35 -0
  52. package/backend/dist/cjs/splash_screen.js +152 -0
  53. package/backend/dist/cjs/status.d.ts +60 -0
  54. package/backend/dist/cjs/status.js +199 -0
  55. package/backend/dist/cjs/stream.d.ts +75 -0
  56. package/backend/dist/cjs/stream.js +954 -0
  57. package/backend/dist/cjs/users.d.ts +111 -0
  58. package/backend/dist/cjs/users.js +1945 -0
  59. package/backend/dist/cjs/utils.d.ts +27 -0
  60. package/backend/dist/cjs/utils.js +329 -0
  61. package/backend/dist/cjs/view.d.ts +52 -0
  62. package/backend/dist/cjs/view.js +568 -0
  63. package/backend/dist/cjs/vinc.d.ts +2 -0
  64. package/backend/dist/cjs/vinc.dev.d.ts +2 -0
  65. package/backend/dist/cjs/vinc.dev.js +42 -0
  66. package/backend/dist/cjs/vinc.js +42 -0
  67. package/backend/dist/cjs/volt.d.ts +15 -0
  68. package/backend/dist/cjs/volt.js +64 -0
  69. package/backend/dist/css/adyen.css +92 -0
  70. package/backend/dist/css/volt.css +65 -0
  71. package/backend/dist/esm/blacklist.d.ts +10 -0
  72. package/backend/dist/esm/blacklist.js +49 -0
  73. package/backend/dist/esm/cli.d.ts +2 -0
  74. package/backend/dist/esm/cli.js +228 -0
  75. package/backend/dist/esm/database.d.ts +364 -0
  76. package/backend/dist/esm/database.js +1957 -0
  77. package/backend/dist/esm/endpoint.d.ts +57 -0
  78. package/backend/dist/esm/endpoint.js +421 -0
  79. package/backend/dist/esm/file_watcher.d.ts +44 -0
  80. package/backend/dist/esm/file_watcher.js +313 -0
  81. package/backend/dist/esm/frontend.d.ts +13 -0
  82. package/backend/dist/esm/frontend.js +27 -0
  83. package/backend/dist/esm/image_endpoint.d.ts +24 -0
  84. package/backend/dist/esm/image_endpoint.js +206 -0
  85. package/backend/dist/esm/logger.d.ts +5 -0
  86. package/backend/dist/esm/logger.js +13 -0
  87. package/backend/dist/esm/meta.d.ts +50 -0
  88. package/backend/dist/esm/meta.js +149 -0
  89. package/backend/dist/esm/mutex.d.ts +24 -0
  90. package/backend/dist/esm/mutex.js +48 -0
  91. package/backend/dist/esm/payments/paddle.d.ts +161 -0
  92. package/backend/dist/esm/payments/paddle.js +2261 -0
  93. package/backend/dist/esm/plugins/browser.d.ts +36 -0
  94. package/backend/dist/esm/plugins/browser.js +176 -0
  95. package/backend/dist/esm/plugins/communication.d.ts +70 -0
  96. package/backend/dist/esm/plugins/communication.js +169 -0
  97. package/backend/dist/esm/plugins/css.d.ts +10 -0
  98. package/backend/dist/esm/plugins/css.js +64 -0
  99. package/backend/dist/esm/plugins/mail.d.ts +277 -0
  100. package/backend/dist/esm/plugins/mail.js +1403 -0
  101. package/backend/dist/esm/plugins/pdf.d.ts +757 -0
  102. package/backend/dist/esm/plugins/pdf.js +1694 -0
  103. package/backend/dist/esm/plugins/thread_monitor.d.ts +18 -0
  104. package/backend/dist/esm/plugins/thread_monitor.js +120 -0
  105. package/backend/dist/esm/plugins/ts/compiler.d.ts +132 -0
  106. package/backend/dist/esm/plugins/ts/compiler.js +907 -0
  107. package/backend/dist/esm/plugins/ts/preprocessing.d.ts +14 -0
  108. package/backend/dist/esm/plugins/ts/preprocessing.js +724 -0
  109. package/backend/dist/esm/rate_limit.d.ts +65 -0
  110. package/backend/dist/esm/rate_limit.js +425 -0
  111. package/backend/dist/esm/request.deprc.d.ts +48 -0
  112. package/backend/dist/esm/request.deprc.js +572 -0
  113. package/backend/dist/esm/response.deprc.d.ts +55 -0
  114. package/backend/dist/esm/response.deprc.js +275 -0
  115. package/backend/dist/esm/server.d.ts +311 -0
  116. package/backend/dist/esm/server.js +3435 -0
  117. package/backend/dist/esm/splash_screen.d.ts +35 -0
  118. package/backend/dist/esm/splash_screen.js +148 -0
  119. package/backend/dist/esm/status.d.ts +60 -0
  120. package/backend/dist/esm/status.js +196 -0
  121. package/backend/dist/esm/stream.d.ts +75 -0
  122. package/backend/dist/esm/stream.js +947 -0
  123. package/backend/dist/esm/users.d.ts +111 -0
  124. package/backend/dist/esm/users.js +1908 -0
  125. package/backend/dist/esm/utils.d.ts +27 -0
  126. package/backend/dist/esm/utils.js +324 -0
  127. package/backend/dist/esm/view.d.ts +52 -0
  128. package/backend/dist/esm/view.js +561 -0
  129. package/backend/dist/esm/vinc.d.ts +2 -0
  130. package/backend/dist/esm/vinc.dev.d.ts +2 -0
  131. package/backend/dist/esm/vinc.dev.js +6 -0
  132. package/backend/dist/esm/vinc.js +6 -0
  133. package/backend/dist/esm/volt.d.ts +15 -0
  134. package/backend/dist/esm/volt.js +23 -0
  135. package/backend/dist/esm-dev/blacklist.d.ts +10 -0
  136. package/backend/dist/esm-dev/blacklist.js +49 -0
  137. package/backend/dist/esm-dev/cli.d.ts +2 -0
  138. package/backend/dist/esm-dev/cli.js +228 -0
  139. package/backend/dist/esm-dev/database.d.ts +364 -0
  140. package/backend/dist/esm-dev/database.js +1957 -0
  141. package/backend/dist/esm-dev/endpoint.d.ts +57 -0
  142. package/backend/dist/esm-dev/endpoint.js +421 -0
  143. package/backend/dist/esm-dev/file_watcher.d.ts +44 -0
  144. package/backend/dist/esm-dev/file_watcher.js +313 -0
  145. package/backend/dist/esm-dev/frontend.d.ts +13 -0
  146. package/backend/dist/esm-dev/frontend.js +27 -0
  147. package/backend/dist/esm-dev/image_endpoint.d.ts +24 -0
  148. package/backend/dist/esm-dev/image_endpoint.js +206 -0
  149. package/backend/dist/esm-dev/logger.d.ts +5 -0
  150. package/backend/dist/esm-dev/logger.js +13 -0
  151. package/backend/dist/esm-dev/meta.d.ts +50 -0
  152. package/backend/dist/esm-dev/meta.js +149 -0
  153. package/backend/dist/esm-dev/mutex.d.ts +24 -0
  154. package/backend/dist/esm-dev/mutex.js +48 -0
  155. package/backend/dist/esm-dev/payments/paddle.d.ts +161 -0
  156. package/backend/dist/esm-dev/payments/paddle.js +2261 -0
  157. package/backend/dist/esm-dev/plugins/browser.d.ts +36 -0
  158. package/backend/dist/esm-dev/plugins/browser.js +176 -0
  159. package/backend/dist/esm-dev/plugins/communication.d.ts +70 -0
  160. package/backend/dist/esm-dev/plugins/communication.js +169 -0
  161. package/backend/dist/esm-dev/plugins/css.d.ts +10 -0
  162. package/backend/dist/esm-dev/plugins/css.js +64 -0
  163. package/backend/dist/esm-dev/plugins/mail.d.ts +277 -0
  164. package/backend/dist/esm-dev/plugins/mail.js +1403 -0
  165. package/backend/dist/esm-dev/plugins/pdf.d.ts +757 -0
  166. package/backend/dist/esm-dev/plugins/pdf.js +1694 -0
  167. package/backend/dist/esm-dev/plugins/thread_monitor.d.ts +18 -0
  168. package/backend/dist/esm-dev/plugins/thread_monitor.js +120 -0
  169. package/backend/dist/esm-dev/plugins/ts/compiler.d.ts +132 -0
  170. package/backend/dist/esm-dev/plugins/ts/compiler.js +907 -0
  171. package/backend/dist/esm-dev/plugins/ts/preprocessing.d.ts +14 -0
  172. package/backend/dist/esm-dev/plugins/ts/preprocessing.js +724 -0
  173. package/backend/dist/esm-dev/rate_limit.d.ts +65 -0
  174. package/backend/dist/esm-dev/rate_limit.js +425 -0
  175. package/backend/dist/esm-dev/request.deprc.d.ts +48 -0
  176. package/backend/dist/esm-dev/request.deprc.js +572 -0
  177. package/backend/dist/esm-dev/response.deprc.d.ts +55 -0
  178. package/backend/dist/esm-dev/response.deprc.js +275 -0
  179. package/backend/dist/esm-dev/server.d.ts +311 -0
  180. package/backend/dist/esm-dev/server.js +3435 -0
  181. package/backend/dist/esm-dev/splash_screen.d.ts +35 -0
  182. package/backend/dist/esm-dev/splash_screen.js +148 -0
  183. package/backend/dist/esm-dev/status.d.ts +60 -0
  184. package/backend/dist/esm-dev/status.js +196 -0
  185. package/backend/dist/esm-dev/stream.d.ts +75 -0
  186. package/backend/dist/esm-dev/stream.js +947 -0
  187. package/backend/dist/esm-dev/users.d.ts +111 -0
  188. package/backend/dist/esm-dev/users.js +1908 -0
  189. package/backend/dist/esm-dev/utils.d.ts +27 -0
  190. package/backend/dist/esm-dev/utils.js +324 -0
  191. package/backend/dist/esm-dev/view.d.ts +52 -0
  192. package/backend/dist/esm-dev/view.js +561 -0
  193. package/backend/dist/esm-dev/vinc.d.ts +2 -0
  194. package/backend/dist/esm-dev/vinc.dev.d.ts +2 -0
  195. package/backend/dist/esm-dev/vinc.dev.js +6 -0
  196. package/backend/dist/esm-dev/vinc.js +6 -0
  197. package/backend/dist/esm-dev/volt.d.ts +15 -0
  198. package/backend/dist/esm-dev/volt.js +23 -0
  199. package/backend/src/blacklist.ts +69 -0
  200. package/backend/src/cli.js +245 -0
  201. package/backend/src/database.ts +2241 -0
  202. package/backend/src/endpoint.ts +494 -0
  203. package/backend/src/file_watcher.ts +359 -0
  204. package/backend/src/frontend.ts +35 -0
  205. package/backend/src/globals.d.ts +8 -0
  206. package/backend/src/image_endpoint.ts +258 -0
  207. package/backend/src/logger.ts +18 -0
  208. package/backend/src/meta.ts +202 -0
  209. package/backend/src/mutex.ts +51 -0
  210. package/backend/src/payments/paddle.ts +2659 -0
  211. package/backend/src/plugins/browser.ts +188 -0
  212. package/backend/src/plugins/communication.ts +204 -0
  213. package/backend/src/plugins/css.ts +84 -0
  214. package/backend/src/plugins/fonts/Menlo-Bold.ttf +0 -0
  215. package/backend/src/plugins/fonts/Menlo-Regular.ttf +0 -0
  216. package/backend/src/plugins/mail.ts +1720 -0
  217. package/backend/src/plugins/pdf.js +1932 -0
  218. package/backend/src/plugins/thread_monitor.ts +164 -0
  219. package/backend/src/plugins/ts/compiler.ts +1242 -0
  220. package/backend/src/plugins/ts/preprocessing.ts +812 -0
  221. package/backend/src/rate_limit.ts +503 -0
  222. package/backend/src/request.deprc.js +626 -0
  223. package/backend/src/response.deprc.js +354 -0
  224. package/backend/src/server.ts +4149 -0
  225. package/backend/src/splash_screen.ts +192 -0
  226. package/backend/src/status.ts +199 -0
  227. package/backend/src/stream.ts +1070 -0
  228. package/backend/src/users.ts +2077 -0
  229. package/backend/src/utils.ts +359 -0
  230. package/backend/src/view.ts +655 -0
  231. package/backend/src/vinc.dev.js +6 -0
  232. package/backend/src/vinc.ts +6 -0
  233. package/backend/src/volt.js +25 -0
  234. package/backend/tsconfig.cjs.json +29 -0
  235. package/backend/tsconfig.esm.dev.json +34 -0
  236. package/backend/tsconfig.esm.json +30 -0
  237. package/backend/tsconfig.json +2 -0
  238. package/frontend/compile.js +436 -0
  239. package/frontend/dist/elements/base.d.ts +9891 -0
  240. package/frontend/dist/elements/base.js +8818 -0
  241. package/frontend/dist/elements/module.d.ts +16 -0
  242. package/frontend/dist/elements/module.js +178 -0
  243. package/frontend/dist/modules/array.d.ts +37 -0
  244. package/frontend/dist/modules/array.js +284 -0
  245. package/frontend/dist/modules/auth.d.ts +45 -0
  246. package/frontend/dist/modules/auth.js +138 -0
  247. package/frontend/dist/modules/colors.d.ts +26 -0
  248. package/frontend/dist/modules/colors.js +340 -0
  249. package/frontend/dist/modules/compression.d.ts +6 -0
  250. package/frontend/dist/modules/compression.js +999 -0
  251. package/frontend/dist/modules/cookies.d.ts +17 -0
  252. package/frontend/dist/modules/cookies.js +166 -0
  253. package/frontend/dist/modules/date.d.ts +142 -0
  254. package/frontend/dist/modules/date.js +493 -0
  255. package/frontend/dist/modules/events.d.ts +7 -0
  256. package/frontend/dist/modules/events.js +90 -0
  257. package/frontend/dist/modules/google.d.ts +10 -0
  258. package/frontend/dist/modules/google.js +53 -0
  259. package/frontend/dist/modules/meta.d.ts +9 -0
  260. package/frontend/dist/modules/meta.js +45 -0
  261. package/frontend/dist/modules/mutex.d.ts +8 -0
  262. package/frontend/dist/modules/mutex.js +52 -0
  263. package/frontend/dist/modules/number.d.ts +12 -0
  264. package/frontend/dist/modules/number.js +8 -0
  265. package/frontend/dist/modules/object.d.ts +50 -0
  266. package/frontend/dist/modules/object.js +147 -0
  267. package/frontend/dist/modules/paddle.d.ts +1403 -0
  268. package/frontend/dist/modules/paddle.js +2641 -0
  269. package/frontend/dist/modules/scheme.d.ts +207 -0
  270. package/frontend/dist/modules/scheme.js +649 -0
  271. package/frontend/dist/modules/settings.d.ts +3 -0
  272. package/frontend/dist/modules/settings.js +4 -0
  273. package/frontend/dist/modules/statics.d.ts +4 -0
  274. package/frontend/dist/modules/statics.js +45 -0
  275. package/frontend/dist/modules/string.d.ts +163 -0
  276. package/frontend/dist/modules/string.js +291 -0
  277. package/frontend/dist/modules/support.d.ts +18 -0
  278. package/frontend/dist/modules/support.js +102 -0
  279. package/frontend/dist/modules/themes.d.ts +8 -0
  280. package/frontend/dist/modules/themes.js +17 -0
  281. package/frontend/dist/modules/user.d.ts +58 -0
  282. package/frontend/dist/modules/user.js +279 -0
  283. package/frontend/dist/modules/utils.d.ts +58 -0
  284. package/frontend/dist/modules/utils.js +1159 -0
  285. package/frontend/dist/types/gradient.d.ts +12 -0
  286. package/frontend/dist/types/gradient.js +79 -0
  287. package/frontend/dist/ui/border_button.d.ts +177 -0
  288. package/frontend/dist/ui/border_button.js +235 -0
  289. package/frontend/dist/ui/button.d.ts +42 -0
  290. package/frontend/dist/ui/button.js +114 -0
  291. package/frontend/dist/ui/canvas.d.ts +56 -0
  292. package/frontend/dist/ui/canvas.js +411 -0
  293. package/frontend/dist/ui/checkbox.d.ts +72 -0
  294. package/frontend/dist/ui/checkbox.js +277 -0
  295. package/frontend/dist/ui/code.d.ts +232 -0
  296. package/frontend/dist/ui/code.js +977 -0
  297. package/frontend/dist/ui/color.d.ts +1 -0
  298. package/frontend/dist/ui/color.js +110 -0
  299. package/frontend/dist/ui/context_menu.d.ts +30 -0
  300. package/frontend/dist/ui/context_menu.js +211 -0
  301. package/frontend/dist/ui/css.d.ts +10 -0
  302. package/frontend/dist/ui/css.js +44 -0
  303. package/frontend/dist/ui/divider.d.ts +18 -0
  304. package/frontend/dist/ui/divider.js +82 -0
  305. package/frontend/dist/ui/dropdown.d.ts +115 -0
  306. package/frontend/dist/ui/dropdown.js +446 -0
  307. package/frontend/dist/ui/for_each.d.ts +38 -0
  308. package/frontend/dist/ui/for_each.js +97 -0
  309. package/frontend/dist/ui/form.d.ts +25 -0
  310. package/frontend/dist/ui/form.js +227 -0
  311. package/frontend/dist/ui/frame_modes.d.ts +28 -0
  312. package/frontend/dist/ui/frame_modes.js +116 -0
  313. package/frontend/dist/ui/google_map.d.ts +31 -0
  314. package/frontend/dist/ui/google_map.js +111 -0
  315. package/frontend/dist/ui/gradient.d.ts +24 -0
  316. package/frontend/dist/ui/gradient.js +115 -0
  317. package/frontend/dist/ui/image.d.ts +138 -0
  318. package/frontend/dist/ui/image.js +570 -0
  319. package/frontend/dist/ui/input.d.ts +316 -0
  320. package/frontend/dist/ui/input.js +1187 -0
  321. package/frontend/dist/ui/link.d.ts +39 -0
  322. package/frontend/dist/ui/link.js +146 -0
  323. package/frontend/dist/ui/list.d.ts +33 -0
  324. package/frontend/dist/ui/list.js +161 -0
  325. package/frontend/dist/ui/loader_button.d.ts +108 -0
  326. package/frontend/dist/ui/loader_button.js +207 -0
  327. package/frontend/dist/ui/loaders.d.ts +60 -0
  328. package/frontend/dist/ui/loaders.js +150 -0
  329. package/frontend/dist/ui/popup.d.ts +84 -0
  330. package/frontend/dist/ui/popup.js +331 -0
  331. package/frontend/dist/ui/pseudo.d.ts +16 -0
  332. package/frontend/dist/ui/pseudo.js +81 -0
  333. package/frontend/dist/ui/scroller.d.ts +131 -0
  334. package/frontend/dist/ui/scroller.js +1251 -0
  335. package/frontend/dist/ui/slider.d.ts +35 -0
  336. package/frontend/dist/ui/slider.js +203 -0
  337. package/frontend/dist/ui/spacer.d.ts +20 -0
  338. package/frontend/dist/ui/spacer.js +83 -0
  339. package/frontend/dist/ui/span.d.ts +11 -0
  340. package/frontend/dist/ui/span.js +75 -0
  341. package/frontend/dist/ui/stack.d.ts +123 -0
  342. package/frontend/dist/ui/stack.js +344 -0
  343. package/frontend/dist/ui/steps.d.ts +72 -0
  344. package/frontend/dist/ui/steps.js +306 -0
  345. package/frontend/dist/ui/style.d.ts +12 -0
  346. package/frontend/dist/ui/style.js +78 -0
  347. package/frontend/dist/ui/switch.d.ts +44 -0
  348. package/frontend/dist/ui/switch.js +280 -0
  349. package/frontend/dist/ui/table.d.ts +118 -0
  350. package/frontend/dist/ui/table.js +411 -0
  351. package/frontend/dist/ui/tabs.d.ts +85 -0
  352. package/frontend/dist/ui/tabs.js +392 -0
  353. package/frontend/dist/ui/text.d.ts +19 -0
  354. package/frontend/dist/ui/text.js +88 -0
  355. package/frontend/dist/ui/theme.d.ts +25 -0
  356. package/frontend/dist/ui/theme.js +237 -0
  357. package/frontend/dist/ui/title.d.ts +36 -0
  358. package/frontend/dist/ui/title.js +127 -0
  359. package/frontend/dist/ui/ui.d.ts +38 -0
  360. package/frontend/dist/ui/ui.js +41 -0
  361. package/frontend/dist/ui/view.d.ts +25 -0
  362. package/frontend/dist/ui/view.js +93 -0
  363. package/frontend/dist/volt.d.ts +22 -0
  364. package/frontend/dist/volt.js +27 -0
  365. package/frontend/exports.json +1340 -0
  366. package/frontend/src/css/adyen.css +92 -0
  367. package/frontend/src/css/volt.css +65 -0
  368. package/frontend/src/elements/base.ts +16790 -0
  369. package/frontend/src/elements/module.ts +184 -0
  370. package/frontend/src/elements/types.d.ts +155 -0
  371. package/frontend/src/modules/array.ts +366 -0
  372. package/frontend/src/modules/auth.ts +188 -0
  373. package/frontend/src/modules/colors.ts +449 -0
  374. package/frontend/src/modules/compression.ts +67 -0
  375. package/frontend/src/modules/cookies.ts +182 -0
  376. package/frontend/src/modules/date.js +535 -0
  377. package/frontend/src/modules/date.ts +583 -0
  378. package/frontend/src/modules/events.ts +96 -0
  379. package/frontend/src/modules/google.ts +60 -0
  380. package/frontend/src/modules/meta.ts +59 -0
  381. package/frontend/src/modules/mutex.ts +59 -0
  382. package/frontend/src/modules/number.ts +20 -0
  383. package/frontend/src/modules/object.ts +212 -0
  384. package/frontend/src/modules/paddle.ts +2990 -0
  385. package/frontend/src/modules/scheme.ts +740 -0
  386. package/frontend/src/modules/settings.ts +5 -0
  387. package/frontend/src/modules/statics.ts +47 -0
  388. package/frontend/src/modules/string.ts +500 -0
  389. package/frontend/src/modules/support.ts +118 -0
  390. package/frontend/src/modules/themes.ts +24 -0
  391. package/frontend/src/modules/user.ts +321 -0
  392. package/frontend/src/modules/utils.ts +1260 -0
  393. package/frontend/src/static/admin/admin.png +0 -0
  394. package/frontend/src/static/admin/password.webp +0 -0
  395. package/frontend/src/static/icons/copy.webp +0 -0
  396. package/frontend/src/static/payments/arrow.long.webp +0 -0
  397. package/frontend/src/static/payments/arrow.long2.webp +0 -0
  398. package/frontend/src/static/payments/cancelled.webp +0 -0
  399. package/frontend/src/static/payments/check.sign.webp +0 -0
  400. package/frontend/src/static/payments/check.webp +0 -0
  401. package/frontend/src/static/payments/close.webp +0 -0
  402. package/frontend/src/static/payments/error.webp +0 -0
  403. package/frontend/src/static/payments/exclamation.webp +0 -0
  404. package/frontend/src/static/payments/minus.webp +0 -0
  405. package/frontend/src/static/payments/party.webp +0 -0
  406. package/frontend/src/static/payments/plus.webp +0 -0
  407. package/frontend/src/static/payments/shopping_cart.webp +0 -0
  408. package/frontend/src/static/payments/trash.webp +0 -0
  409. package/frontend/src/types/global.d.ts +4 -0
  410. package/frontend/src/types/gradient.ts +87 -0
  411. package/frontend/src/ui/any_element.d.ts +5 -0
  412. package/frontend/src/ui/border_button.ts +320 -0
  413. package/frontend/src/ui/button.ts +62 -0
  414. package/frontend/src/ui/canvas.ts +431 -0
  415. package/frontend/src/ui/checkbox.ts +284 -0
  416. package/frontend/src/ui/code.ts +1049 -0
  417. package/frontend/src/ui/color.ts +117 -0
  418. package/frontend/src/ui/context_menu.ts +194 -0
  419. package/frontend/src/ui/css.ts +57 -0
  420. package/frontend/src/ui/divider.ts +28 -0
  421. package/frontend/src/ui/dropdown.ts +503 -0
  422. package/frontend/src/ui/for_each.ts +71 -0
  423. package/frontend/src/ui/form.ts +208 -0
  424. package/frontend/src/ui/frame_modes.ts +140 -0
  425. package/frontend/src/ui/google_map.ts +70 -0
  426. package/frontend/src/ui/gradient.ts +73 -0
  427. package/frontend/src/ui/image.ts +587 -0
  428. package/frontend/src/ui/input.ts +1284 -0
  429. package/frontend/src/ui/link.ts +77 -0
  430. package/frontend/src/ui/list.ts +88 -0
  431. package/frontend/src/ui/loader_button.ts +192 -0
  432. package/frontend/src/ui/loaders.ts +126 -0
  433. package/frontend/src/ui/popup.ts +370 -0
  434. package/frontend/src/ui/pseudo.ts +33 -0
  435. package/frontend/src/ui/scroller.ts +1324 -0
  436. package/frontend/src/ui/slider.ts +215 -0
  437. package/frontend/src/ui/spacer.ts +29 -0
  438. package/frontend/src/ui/span.ts +23 -0
  439. package/frontend/src/ui/stack.ts +238 -0
  440. package/frontend/src/ui/steps.ts +334 -0
  441. package/frontend/src/ui/style.ts +26 -0
  442. package/frontend/src/ui/switch.ts +286 -0
  443. package/frontend/src/ui/table.ts +323 -0
  444. package/frontend/src/ui/tabs.ts +441 -0
  445. package/frontend/src/ui/text.ts +38 -0
  446. package/frontend/src/ui/theme.ts +279 -0
  447. package/frontend/src/ui/title.ts +64 -0
  448. package/frontend/src/ui/ui.ts +47 -0
  449. package/frontend/src/ui/view.ts +44 -0
  450. package/frontend/src/volt.ts +31 -0
  451. package/package.json +58 -0
@@ -0,0 +1,493 @@
1
+ /*
2
+ * Author: Daan van den Bergh
3
+ * Copyright: © 2022 - 2024 Daan van den Bergh.
4
+ */
5
+ // The date class.
6
+ /** @docs
7
+ * @chapter Types
8
+ * @title Date
9
+ * @desc Extended Date class with additional formatting and manipulation capabilities
10
+ */
11
+ export class VDate extends Date {
12
+ constructor() {
13
+ if (arguments.length === 0) {
14
+ super();
15
+ }
16
+ else if (arguments.length === 1) {
17
+ super(arguments[0]);
18
+ }
19
+ else {
20
+ super(arguments[0], arguments[1], arguments[2] || 1, arguments[3] || 0, arguments[4] || 0, arguments[5] || 0, arguments[6] || 0);
21
+ }
22
+ }
23
+ /** @docs
24
+ * @title Format
25
+ * @desc Format a date object to a string using various format specifiers
26
+ * @param
27
+ * @name format
28
+ * @desc The date format string using % specifiers (e.g., %Y-%m-%d)
29
+ * @type string
30
+ * @returns
31
+ * @type string
32
+ * @desc The formatted date string
33
+ */
34
+ format(format) {
35
+ let formatted = "";
36
+ for (let i = 0; i < format.length; i++) {
37
+ if (format[i] === "%") {
38
+ switch (format[i + 1]) {
39
+ // %% : a literal %.
40
+ case '%':
41
+ formatted += "%";
42
+ ++i;
43
+ break;
44
+ // %a : locale’s abbreviated weekday name (e.g., Sun).
45
+ case 'a':
46
+ formatted += new Intl.DateTimeFormat('en-US', { weekday: 'short' }).format(this);
47
+ ++i;
48
+ break;
49
+ // %A : locale’s full weekday name (e.g., Sunday).
50
+ case 'A':
51
+ formatted += new Intl.DateTimeFormat('en-US', { weekday: 'long' }).format(this);
52
+ ++i;
53
+ break;
54
+ // %b : locale’s abbreviated month name (e.g., Jan); same as %h.
55
+ // %h : locale’s abbreviated month name (e.g., Jan); same as %b.
56
+ case 'b':
57
+ case 'h':
58
+ formatted += new Intl.DateTimeFormat('en-US', { month: 'short' }).format(this);
59
+ ++i;
60
+ break;
61
+ // %B : locale’s full month name (e.g., January).
62
+ case 'B':
63
+ formatted += new Intl.DateTimeFormat('en-US', { month: 'long' }).format(this);
64
+ ++i;
65
+ break;
66
+ // %C : century; like %Y, except omit last two digits (e.g., 21).
67
+ case 'C':
68
+ formatted += Math.floor(this.getFullYear() / 100);
69
+ ++i;
70
+ break;
71
+ // %d : day of month (e.g, 01).
72
+ case 'd':
73
+ formatted += String(this.getDate()).padStart(2, '0');
74
+ ++i;
75
+ break;
76
+ // %e : day of month, space padded; same as %_d.
77
+ case 'e':
78
+ formatted += String(this.getDate());
79
+ ++i;
80
+ break;
81
+ // %D : date; same as %m/%d/%y.
82
+ case 'D':
83
+ formatted += this.format("%m/%d/%y");
84
+ ++i;
85
+ break;
86
+ // %F : full date; same as %Y-%m-%d.
87
+ case 'F':
88
+ formatted += this.format("%Y-%m-%d");
89
+ ++i;
90
+ break;
91
+ // %H : hour (00..23).
92
+ case 'H':
93
+ formatted += String(this.getHours()).padStart(2, '0');
94
+ ++i;
95
+ break;
96
+ // %I : hour (01..12).
97
+ case 'I':
98
+ formatted += String((this.getHours() % 12) || 12).padStart(2, '0');
99
+ ++i;
100
+ break;
101
+ // %j : day of year (001..366) .
102
+ case 'j':
103
+ formatted += String(Math.floor((this.getTime() - new Date(this.getFullYear(), 0, 0).getTime()) / (86400 * 1000))).padStart(3, '0');
104
+ ++i;
105
+ break;
106
+ // %k : hour (0..23).
107
+ case 'k':
108
+ formatted += String(this.getHours());
109
+ ++i;
110
+ break;
111
+ // %l : hour ( 1..12) .
112
+ case 'l':
113
+ formatted += String((this.getHours() % 12) || 12);
114
+ ++i;
115
+ break;
116
+ // %m : month (01..12).
117
+ case 'm':
118
+ formatted += String(this.getMonth() + 1).padStart(2, '0');
119
+ ++i;
120
+ break;
121
+ // %M : minute (00..59).
122
+ case 'M':
123
+ formatted += String(this.getMinutes()).padStart(2, '0');
124
+ ++i;
125
+ break;
126
+ // %n : a newline.
127
+ case 'n':
128
+ formatted += "\n";
129
+ ++i;
130
+ break;
131
+ // %XN : milliseconds (X: 1..3) (0..9) (00..99) (000..999).
132
+ case 'N':
133
+ formatted += String(this.getMilliseconds()).padStart(Number(format[i + 2]) || 3, '0');
134
+ i += 2;
135
+ break;
136
+ // %p : locale’s equivalent of either AM or PM.
137
+ case 'p':
138
+ formatted += new Intl.DateTimeFormat('en-US', { hour: 'numeric', hour12: true }).format(this);
139
+ ++i;
140
+ break;
141
+ // %P : like %p, but lower case.
142
+ case 'P':
143
+ formatted += new Intl.DateTimeFormat('en-US', { hour: 'numeric', hour12: true }).format(this).toLowerCase();
144
+ ++i;
145
+ break;
146
+ // %r : locale’s 12-hour clock time (e.g., 11:11:04 PM).
147
+ case 'r':
148
+ formatted += this.format("%I:%M:%S %p");
149
+ ++i;
150
+ break;
151
+ // %R : 24-hour hour and minute; same as %H:%M.
152
+ case 'R':
153
+ formatted += this.format("%H:%M");
154
+ ++i;
155
+ break;
156
+ // %s : seconds since 1970-01-01 00:00:00 UTC.
157
+ case 's':
158
+ formatted += Math.floor(this.getTime() / 1000);
159
+ ++i;
160
+ break;
161
+ // %S : second (00..60).
162
+ case 'S':
163
+ formatted += String(this.getSeconds()).padStart(2, '0');
164
+ ++i;
165
+ break;
166
+ // %t : a tab.
167
+ case 't':
168
+ formatted += "\t";
169
+ ++i;
170
+ break;
171
+ // %T : time; same as %H:%M:%S.
172
+ case 'T':
173
+ formatted += this.format("%H:%M:%S");
174
+ ++i;
175
+ break;
176
+ // %u : day of week (1..7); 1 is Monday.
177
+ case 'u':
178
+ formatted += this.getDay() || 7;
179
+ ++i;
180
+ break;
181
+ // %U : week number of year, with Sunday as first day of week (00..53).
182
+ case 'U':
183
+ formatted += String(Math.ceil((this.getTime() - new Date(this.getFullYear(), 0, 1).getTime()) / (86400 * 1000) + 1) / 7).padStart(2, '0');
184
+ ++i;
185
+ break;
186
+ // %V : ISO week number, with Monday as first day of week (01..53).
187
+ case 'V':
188
+ const jan4 = new Date(this.getFullYear(), 0, 4);
189
+ const startOfWeek = new Date(this.getFullYear(), 0, 1);
190
+ const daysSinceJan4 = Math.floor((this.getTime() - jan4.getTime()) / (86400 * 1000));
191
+ const weekNumber = Math.ceil((daysSinceJan4 + jan4.getDay() + 1) / 7);
192
+ formatted += String(weekNumber).padStart(2, '0');
193
+ ++i;
194
+ break;
195
+ // %w : day of week (0..6); 0 is Sunday.
196
+ case 'w':
197
+ formatted += this.getDay();
198
+ ++i;
199
+ break;
200
+ // %W : week number of year, with Monday as first day of week (00..53).
201
+ case 'W':
202
+ formatted += String(Math.floor((this.getTime() - new Date(this.getFullYear(), 0, 1).getTime()) / (86400 * 1000) + 1) / 7).padStart(2, '0');
203
+ ++i;
204
+ break;
205
+ // %x : locale’s date representation (e.g., 12/31/99).
206
+ case 'x':
207
+ formatted += new Intl.DateTimeFormat('en-US').format(this);
208
+ ++i;
209
+ break;
210
+ // %X : locale’s time representation (e.g., 23:13:48).
211
+ case 'X':
212
+ formatted += new Intl.DateTimeFormat('en-US', { hour: 'numeric', minute: 'numeric', second: 'numeric' }).format(this);
213
+ ++i;
214
+ break;
215
+ // %y : last two digits of year (00..99).
216
+ case 'y':
217
+ formatted += String(this.getFullYear()).slice(-2);
218
+ ++i;
219
+ break;
220
+ // %Y : Full year.
221
+ case 'Y':
222
+ formatted += String(this.getFullYear());
223
+ ++i;
224
+ break;
225
+ // %z : +hhmm numeric timezone (e.g., -0400).
226
+ // %:z : +hh:mm numeric timezone (e.g., -04:00)
227
+ // %::z : +hh:mm:ss numeric time zone (e.g., -04:00:00).
228
+ // %:::z : numeric time zone with : to necessary precision (e.g., -04, +05:30).
229
+ case ':':
230
+ case 'z':
231
+ const timezoneOffset = this.getTimezoneOffset();
232
+ const sign = timezoneOffset > 0 ? '-' : '+';
233
+ const hours = String(Math.floor(Math.abs(timezoneOffset) / 60)).padStart(2, '0');
234
+ const minutes = String(Math.abs(timezoneOffset) % 60).padStart(2, '0');
235
+ if (format[i + 1] === "z") {
236
+ formatted += `${sign}${hours}${minutes}`;
237
+ i += 1;
238
+ }
239
+ else if (format[i + 2] === "z") {
240
+ formatted += `${sign}${hours}:${minutes}`;
241
+ i += 2;
242
+ }
243
+ else if (format[i + 3] === "z") {
244
+ formatted += `${sign}${hours}:${minutes}:${this.format('XN')}`;
245
+ i += 3;
246
+ }
247
+ else if (format[i + 4] === "z") {
248
+ formatted += `${sign}${hours}:${minutes}:${this.format('XN').slice(0, 2)}`;
249
+ i += 4;
250
+ }
251
+ break;
252
+ // %Z : alphabetic time zone abbreviation (e.g., EDT).
253
+ case 'Z':
254
+ formatted += Intl.DateTimeFormat('en-US', { timeZoneName: 'short' }).format(this);
255
+ ++i;
256
+ break;
257
+ // Unknown.
258
+ default:
259
+ formatted += format[i];
260
+ break;
261
+ }
262
+ }
263
+ else {
264
+ formatted += format[i];
265
+ }
266
+ }
267
+ return formatted;
268
+ // let formatted = "";
269
+ // for (let i = 0; i < format.length; i++) {
270
+ // if (format[i] === "%") {
271
+ // switch (format[i + 1]) {
272
+ // // %% : a literal %.
273
+ // case '%':
274
+ // formatted += "%";
275
+ // ++i;
276
+ // break;
277
+ // // %a : locale's abbreviated weekday name (e.g., Sun).
278
+ // case 'a':
279
+ // formatted += new Intl.DateTimeFormat('en-US', { weekday: 'short' }).format(this);
280
+ // ++i;
281
+ // break;
282
+ // // All other cases remain the same as in the original...
283
+ // // [For brevity, I'm not showing all cases but they would be identical]
284
+ // default:
285
+ // formatted += format[i];
286
+ // break;
287
+ // }
288
+ // } else {
289
+ // formatted += format[i];
290
+ // }
291
+ // }
292
+ // return formatted;
293
+ }
294
+ /** @docs
295
+ * @title Milliseconds
296
+ * @desc Get the timestamp in milliseconds
297
+ * @returns
298
+ * @type number
299
+ * @desc The timestamp in milliseconds
300
+ */
301
+ msec() {
302
+ return this.getTime();
303
+ }
304
+ /** @docs
305
+ * @title Seconds
306
+ * @desc Get the timestamp in seconds
307
+ * @returns
308
+ * @type number
309
+ * @desc The timestamp in seconds
310
+ */
311
+ sec() {
312
+ return Math.floor(this.getTime() / 1000);
313
+ }
314
+ /** @docs
315
+ * @title Minute start
316
+ * @desc Get a new date object set to the start of the current minute
317
+ * @returns
318
+ * @type VDate
319
+ * @desc A new date object set to the start of the minute
320
+ */
321
+ minute_start() {
322
+ const date = new VDate(this.getTime());
323
+ date.setSeconds(0);
324
+ date.setMilliseconds(0);
325
+ return date;
326
+ }
327
+ /** @docs
328
+ * @title Hour start
329
+ * @desc Get a new date object set to the start of the current hour
330
+ * @returns
331
+ * @type VDate
332
+ * @desc A new date object set to the start of the hour
333
+ */
334
+ hour_start() {
335
+ const date = new VDate(this.getTime());
336
+ date.setMinutes(0, 0, 0);
337
+ return date;
338
+ }
339
+ /** @docs
340
+ * @title Day start
341
+ * @desc Get a new date object set to the start of the current day
342
+ * @returns
343
+ * @type VDate
344
+ * @desc A new date object set to the start of the day
345
+ */
346
+ day_start() {
347
+ const date = new VDate(this.getTime());
348
+ date.setHours(0, 0, 0, 0);
349
+ return date;
350
+ }
351
+ /** @docs
352
+ * @title Week start
353
+ * @desc Get a new date object set to the start of the current week
354
+ * @param
355
+ * @name sunday_start
356
+ * @desc Whether to use Sunday (true) or Monday (false) as the start of the week
357
+ * @type boolean
358
+ * @returns
359
+ * @type VDate
360
+ * @desc A new date object set to the start of the week
361
+ */
362
+ week_start(sunday_start = true) {
363
+ const diff = (this.getDay() + 7 - (sunday_start ? 0 : 1)) % 7;
364
+ const date = new VDate(this.getTime());
365
+ date.setDate(this.getDate() - diff);
366
+ date.setHours(0, 0, 0, 0);
367
+ return date;
368
+ }
369
+ /** @docs
370
+ * @title Month start
371
+ * @desc Get a new date object set to the start of the current month
372
+ * @returns
373
+ * @type VDate
374
+ * @desc A new date object set to the start of the month
375
+ */
376
+ month_start() {
377
+ const date = new VDate(this.getTime());
378
+ date.setDate(1);
379
+ date.setHours(0, 0, 0, 0);
380
+ return date;
381
+ }
382
+ /** @docs
383
+ * @title Quarter year start
384
+ * @desc Get a new date object set to the start of the current quarter
385
+ * @returns
386
+ * @type VDate
387
+ * @desc A new date object set to the start of the quarter
388
+ */
389
+ quarter_year_start() {
390
+ const date = new VDate(this.getTime());
391
+ const month = date.getMonth() + 1;
392
+ if (month > 9) {
393
+ date.setMonth(9 - 1, 1);
394
+ }
395
+ else if (month > 6) {
396
+ date.setMonth(6 - 1, 1);
397
+ }
398
+ else if (month > 3) {
399
+ date.setMonth(3 - 1, 1);
400
+ }
401
+ else {
402
+ date.setMonth(0, 1);
403
+ }
404
+ date.setHours(0, 0, 0, 0);
405
+ return date;
406
+ }
407
+ /** @docs
408
+ * @title Half year start
409
+ * @desc Get a new date object set to the start of the current half year
410
+ * @returns
411
+ * @type VDate
412
+ * @desc A new date object set to the start of the half year
413
+ */
414
+ half_year_start() {
415
+ const date = new VDate(this.getTime());
416
+ if (date.getMonth() + 1 > 6) {
417
+ date.setMonth(5, 1);
418
+ }
419
+ else {
420
+ date.setMonth(0, 1);
421
+ }
422
+ date.setHours(0, 0, 0, 0);
423
+ return date;
424
+ }
425
+ /** @docs
426
+ * @title Year start
427
+ * @desc Get a new date object set to the start of the current year
428
+ * @returns
429
+ * @type VDate
430
+ * @desc A new date object set to the start of the year
431
+ */
432
+ year_start() {
433
+ const date = new VDate(this.getTime());
434
+ date.setMonth(0, 1);
435
+ date.setHours(0, 0, 0, 0);
436
+ return date;
437
+ }
438
+ /** @docs
439
+ * @title Increment date
440
+ * @desc Create a new date incremented by the specified amounts
441
+ * @param
442
+ * @name options
443
+ * @desc Object containing increment values
444
+ * @type IncrementOptions
445
+ * @returns
446
+ * @type VDate
447
+ * @desc A new date object incremented by the specified amounts
448
+ */
449
+ increment({ seconds = 0, minutes = 0, hours = 0, days = 0, weeks = 0, months = 0, years = 0 }) {
450
+ const date = new VDate(this.getTime());
451
+ if (seconds > 0)
452
+ date.setSeconds(date.getSeconds() + seconds);
453
+ if (minutes > 0)
454
+ date.setMinutes(date.getMinutes() + minutes);
455
+ if (hours > 0)
456
+ date.setHours(date.getHours() + hours);
457
+ if (days > 0 || weeks > 0)
458
+ date.setDate(date.getDate() + days + weeks * 7);
459
+ if (months > 0)
460
+ date.setMonth(date.getMonth() + months);
461
+ if (years > 0)
462
+ date.setFullYear(date.getFullYear() + years);
463
+ return date;
464
+ }
465
+ /** @docs
466
+ * @title Decrement date
467
+ * @desc Create a new date decremented by the specified amounts
468
+ * @param
469
+ * @name options
470
+ * @desc Object containing decrement values
471
+ * @type IncrementOptions
472
+ * @returns
473
+ * @type VDate
474
+ * @desc A new date object decremented by the specified amounts
475
+ */
476
+ decrement({ seconds = 0, minutes = 0, hours = 0, days = 0, weeks = 0, months = 0, years = 0 }) {
477
+ const date = new VDate(this.getTime());
478
+ if (seconds > 0)
479
+ date.setSeconds(date.getSeconds() - seconds);
480
+ if (minutes > 0)
481
+ date.setMinutes(date.getMinutes() - minutes);
482
+ if (hours > 0)
483
+ date.setHours(date.getHours() - hours);
484
+ if (days > 0 || weeks > 0)
485
+ date.setDate(date.getDate() - (days + weeks * 7));
486
+ if (months > 0)
487
+ date.setMonth(date.getMonth() - months);
488
+ if (years > 0)
489
+ date.setFullYear(date.getFullYear() - years);
490
+ return date;
491
+ }
492
+ }
493
+ export { VDate as Date };
@@ -0,0 +1,7 @@
1
+ declare const Events: {
2
+ events: Map<string, [any, (element: any, args: any) => void][]>;
3
+ emit(id: string, args?: Record<string, any>): void;
4
+ on<T extends object>(id: string, element: T, callback: (element: T, args: Record<string, any>) => void): void;
5
+ remove<T extends object>(id: string, element: T, callback?: (element: T, args: Record<string, any>) => void): void;
6
+ };
7
+ export { Events };
@@ -0,0 +1,90 @@
1
+ /*
2
+ * Author: Daan van den Bergh
3
+ * Copyright: © 2022 - 2024 Daan van den Bergh.
4
+ */
5
+ // Events module.
6
+ const Events = {
7
+ events: new Map(),
8
+ // Emit an event.
9
+ /* @docs:
10
+ @nav: Frontend
11
+ @chapter: Events
12
+ @title: Emit
13
+ @desc: Emit a registered event.
14
+ @param:
15
+ @name: id
16
+ @description The id of the registered event to emit.
17
+ @param:
18
+ @name: args
19
+ @description The arguments that will be passed to the registered callbacks.
20
+ */
21
+ emit(id, args = {}) {
22
+ const callbacks = this.events.get(id);
23
+ if (callbacks == null) {
24
+ return;
25
+ }
26
+ callbacks.forEach((i) => {
27
+ i[1](i[0], args);
28
+ });
29
+ },
30
+ // On event.
31
+ /* @docs:
32
+ @nav: Frontend
33
+ @chapter: Events
34
+ @title: On event
35
+ @desc: Set a callback for an event.
36
+ @param:
37
+ @name: id
38
+ @description The id of the registered event to emit.
39
+ @param:
40
+ @name: element
41
+ @description The element.
42
+ @param:
43
+ @name: callback
44
+ @description The callback function, accepts parameters `(element, args)`.
45
+ */
46
+ on(id, element, callback) {
47
+ let callbacks = this.events.get(id);
48
+ if (callbacks == null) {
49
+ callbacks = [];
50
+ this.events.set(id, callbacks);
51
+ }
52
+ callbacks.push([element, callback]);
53
+ },
54
+ // Remove a callback for an event.
55
+ /* @docs:
56
+ @nav: Frontend
57
+ @chapter: Events
58
+ @title: Remove callback
59
+ @desc: Remove a callback for an event.
60
+ @param:
61
+ @name: id
62
+ @description The id of the registered event to emit.
63
+ @param:
64
+ @name: element
65
+ @description The element.
66
+ @param:
67
+ @name: callback
68
+ @description The callback function to remove. When left undefined, all callbacks matching to that element will be removed.
69
+ */
70
+ remove(id, element, callback) {
71
+ const callbacks = this.events.get(id);
72
+ if (callbacks == null) {
73
+ return;
74
+ }
75
+ const filtered = [];
76
+ callbacks.forEach((i) => {
77
+ if (i[0] === element && (callback == null || i[1] === callback)) {
78
+ return;
79
+ }
80
+ filtered.push(i);
81
+ });
82
+ this.events.set(id, filtered);
83
+ }
84
+ };
85
+ // Fire the onload event.
86
+ window.onload = () => {
87
+ Events.emit("volt.on_load");
88
+ };
89
+ // Export.
90
+ export { Events };
@@ -0,0 +1,10 @@
1
+ declare const Google: {
2
+ id: string;
3
+ enable_tracking(): void;
4
+ disable_tracking(): void;
5
+ _initialize(): void;
6
+ cloud: {
7
+ api_key: string;
8
+ };
9
+ };
10
+ export { Google };
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Author: Daan van den Bergh
3
+ * Copyright: © 2022 - 2024 Daan van den Bergh.
4
+ */
5
+ // Google wrapper module.
6
+ const Google = {
7
+ id: "{{GOOGLE_TAG}}",
8
+ // Enable tracking cookies.
9
+ // Source: https://developers.google.com/analytics/devguides/collection/gajs/#disable
10
+ /* @docs:
11
+ @nav: Frontend
12
+ @chapter: Google
13
+ @title: Enable tracking
14
+ @desc: Enable google analytics tracking
15
+ */
16
+ enable_tracking() {
17
+ // document.cookie = "ga-opt-out=false; Path=/; SameSite=None;";
18
+ delete window[`ga-disable-${this.id}`];
19
+ },
20
+ // Disable tracking cookies.
21
+ // Source: https://developers.google.com/analytics/devguides/collection/gajs/#disable
22
+ /* @docs:
23
+ @nav: Frontend
24
+ @chapter: Google
25
+ @title: Disable tracking
26
+ @desc: Disable google analytics tracking
27
+ */
28
+ disable_tracking() {
29
+ // document.cookie = "ga-opt-out=true; Path=/; SameSite=None;";
30
+ window[`ga-disable-${this.id}`] = true;
31
+ },
32
+ // Auto initialize (internal use).
33
+ _initialize() {
34
+ if (this.id != null && this.id !== "") {
35
+ // @ts-ignore
36
+ window.dataLayer = window.dataLayer || [];
37
+ function gtag(...args) {
38
+ // @ts-ignore
39
+ window.dataLayer.push(args);
40
+ }
41
+ gtag('js', new Date());
42
+ gtag('config', this.id);
43
+ }
44
+ },
45
+ // Google cloud.
46
+ cloud: {
47
+ api_key: "{{GOOGLE_COULD_API_KEY}}",
48
+ },
49
+ };
50
+ // Automatically initialize Google.
51
+ Google._initialize();
52
+ // Exports.
53
+ export { Google };
@@ -0,0 +1,9 @@
1
+ export declare const Meta: {
2
+ set({ author, title, description, image, favicon, }: {
3
+ author?: string;
4
+ title?: string;
5
+ description?: string;
6
+ image?: string;
7
+ favicon?: string;
8
+ }): void;
9
+ };