Update various configuration files, components, and assets; enhance notification system and API endpoints; improve documentation and styles across the application.

This commit is contained in:
Haqeem Solehan
2025-10-16 16:05:39 +08:00
commit b124ff8092
336 changed files with 94392 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
import VueApexCharts from "vue3-apexcharts";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.component("VueApexCharts", VueApexCharts);
});

View File

@@ -0,0 +1,7 @@
// Workaround because chart.js doesn't provide an default export
import * as ChartJs from "chart.js";
const { Chart, registerables } = ChartJs;
export default defineNuxtPlugin(() => {
Chart.register(...registerables);
});

View File

@@ -0,0 +1,5 @@
import { autoAnimatePlugin } from "@formkit/auto-animate/vue";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(autoAnimatePlugin);
});

View File

@@ -0,0 +1,27 @@
import "@fullcalendar/core/vdom"; // solve problem with Vite
import FullCalendar from "@fullcalendar/vue3";
import interactionPlugin from "@fullcalendar/interaction";
import dayGridPlugin from "@fullcalendar/daygrid";
import timeGridPlugin from "@fullcalendar/timegrid";
import listPlugin from "@fullcalendar/list";
import scrollGrid from "@fullcalendar/scrollgrid";
import luxon2Plugin from "@fullcalendar/luxon2";
FullCalendar.options = {
plugins: [
interactionPlugin,
dayGridPlugin,
timeGridPlugin,
listPlugin,
scrollGrid,
luxon2Plugin,
],
};
export default defineNuxtPlugin((/* nuxtApp */) => {
return {
provide: {
FullCalendar,
},
};
});

5
plugins/maska.js Normal file
View File

@@ -0,0 +1,5 @@
import Maska from "maska";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(Maska);
});

View File

@@ -0,0 +1,8 @@
import { install } from "vue3-recaptcha-v2";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(install, {
sitekey: "6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI",
cnDomains: false,
});
});

View File

@@ -0,0 +1,9 @@
export default defineNuxtPlugin(async () => {
// Only run on client side
if (process.client) {
const { loadSiteSettings } = useSiteSettings();
// Load site settings on app initialization
await loadSiteSettings();
}
});

7
plugins/swiper.js Normal file
View File

@@ -0,0 +1,7 @@
import { Swiper, SwiperSlide } from "swiper/vue";
import "swiper/css/bundle";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.component("Swiper", Swiper);
nuxtApp.vueApp.component("SwiperSlide", SwiperSlide);
});

5
plugins/uid-plugin.js Normal file
View File

@@ -0,0 +1,5 @@
import { UidPlugin } from "@shimyshack/uid";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(UidPlugin);
});

6
plugins/v-select.js Normal file
View File

@@ -0,0 +1,6 @@
import vSelect from "vue-select";
import "vue-select/dist/vue-select.css";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.component("v-select", vSelect);
});

5
plugins/vue-calendar.js Normal file
View File

@@ -0,0 +1,5 @@
import VCalendar from "v-calendar";
import "v-calendar/style.css";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(VCalendar);
});

View File

@@ -0,0 +1,8 @@
import VueCodeHighlight from "vue-code-highlight";
import "vue-code-highlight/themes/prism-okaidia.css";
import "vue-code-highlight/themes/window.css";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(VueCodeHighlight);
});

View File

@@ -0,0 +1,6 @@
import { Codemirror } from "vue-codemirror";
// Install plugin
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.component("CodeMirror", Codemirror);
});

View File

@@ -0,0 +1,7 @@
// Import vue 3 plugin here
import CountryFlag from "vue-country-flag-next";
// Install the plugin
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.component("CountryFlag", CountryFlag);
});

View File

@@ -0,0 +1,5 @@
import draggable from "vuedraggable";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.component("draggable", draggable);
});

View File

@@ -0,0 +1,5 @@
import VueFullscreen from "vue-fullscreen";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(VueFullscreen);
});

View File

@@ -0,0 +1,7 @@
import { QuillEditor } from "@vueup/vue-quill";
import "@vueup/vue-quill/dist/vue-quill.snow.css"; // Add css for snow theme
// import '@vueup/vue-quill/dist/vue-quill.bubble.css'; // for bubble theme
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.component("QuillEditor", QuillEditor);
});

View File

@@ -0,0 +1,6 @@
import Swal from "sweetalert2";
import "sweetalert2/dist/sweetalert2.min.css";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.provide("swal", Swal);
});

View File

@@ -0,0 +1,12 @@
import Toast from "vue-toastification";
import "vue-toastification/dist/index.css";
export default defineNuxtPlugin((nuxtApp) => {
const options = {
transition: "Vue-Toastification__bounce",
maxToasts: 20,
newestOnTop: true,
};
nuxtApp.vueApp.use(Toast, options);
});