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