) => {
+ app.config.globalProperties.window = window;
+ app.config.globalProperties.document = document;
+ };
+
+ // Register components
+ const vues = require.context("./components", true, /\.vue$/i);
+ vues.keys().map((key) => {
+ let htmlKey = key.split("/").pop();
+ if (!htmlKey) {
+ throw new Error(`Cannot load ${key}`);
+ }
+ htmlKey = htmlKey
+ .split(".")[0]
+ .replace(/\.?([A-Z])/g, function (x, y) {
+ return "-" + y.toLowerCase();
+ })
+ .replace(/^-/, "")
+ .replace("-component", "");
+
+ let el = document.getElementById(htmlKey),
+ elGroup = document.getElementsByClassName(htmlKey);
+ // * Init using ID
+ if (el) {
+ const app = createApp(vues(key).default, {
+ json: el.dataset.json ?? {},
+ });
+ setupApp(app);
+ app.mount(el);
+ }
+ // * Init Using class
+ for (const grpEl of elGroup) {
+ // * Hack to prevent loop weirdness
+ setTimeout(() => {
+ const app = createApp(vues(key).default, {
+ json: (grpEl as HTMLElement).dataset.json ?? {},
+ });
+ setupApp(app);
+ app.mount(grpEl);
+ }, 1000);
+ }
+ });
+});
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index 6657f1d..d68c3c0 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -14,11 +14,8 @@
-
-
-
-
-
+
+
@@ -81,11 +78,7 @@
@yield('content')
-
-
-
+