@illuminateeducation/dna-atd-frontend 1.0.1-DNAATD-2189.0 → 1.0.2-DNAATD-3045-v3-POC.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +21 -21
  2. package/dist/assets/dna-atd-frontend.css +1 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.es.js +47350 -0
  5. package/dist/index.es.js.map +1 -0
  6. package/dist/src/App.vue.d.ts +2 -0
  7. package/dist/src/components/common/BaseButton.vue.d.ts +16 -0
  8. package/dist/src/components/common/BaseInput.vue.d.ts +8 -0
  9. package/dist/src/components/common/BaseModal.vue.d.ts +19 -0
  10. package/dist/src/components/common/ErrorBoundary.vue.d.ts +37 -0
  11. package/dist/src/composables/useAsync.d.ts +24 -0
  12. package/dist/src/composables/useClickOutside.d.ts +7 -0
  13. package/dist/src/composables/useForm.d.ts +38 -0
  14. package/dist/src/composables/useLocalStorage.d.ts +24 -0
  15. package/dist/src/composables/useWindowSize.d.ts +20 -0
  16. package/dist/src/config/app.config.d.ts +67 -0
  17. package/dist/src/context/backendContext.d.ts +9 -0
  18. package/dist/src/features/admin/customization/composables/useCustomization.d.ts +19 -0
  19. package/dist/src/features/admin/customization/store/customizationStore.d.ts +30 -0
  20. package/dist/src/features/admin/customization/views/CustomizationView.vue.d.ts +2 -0
  21. package/dist/src/features/admin/validation/composables/useValidation.d.ts +18 -0
  22. package/dist/src/features/admin/validation/store/validationStore.d.ts +27 -0
  23. package/dist/src/features/admin/validation/views/ValidationView.vue.d.ts +2 -0
  24. package/dist/src/features/reports/codeBasedJasper/components/AssessmentFinder.vue.d.ts +618 -0
  25. package/dist/src/features/reports/codeBasedJasper/components/DownloadButtons.vue.d.ts +13 -0
  26. package/dist/src/features/reports/codeBasedJasper/components/FavoritesWidget.vue.d.ts +10 -0
  27. package/dist/src/features/reports/codeBasedJasper/components/MultipleAssessmentIdsField.vue.d.ts +18 -0
  28. package/dist/src/features/reports/codeBasedJasper/components/ReportFilters.vue.d.ts +18 -0
  29. package/dist/src/features/reports/codeBasedJasper/components/ReportPagination.vue.d.ts +11 -0
  30. package/dist/src/features/reports/codeBasedJasper/components/ReportViewer.vue.d.ts +16 -0
  31. package/dist/src/features/reports/codeBasedJasper/composables/useCodeBasedJasper.d.ts +184 -0
  32. package/dist/src/features/reports/codeBasedJasper/mount.d.ts +1 -0
  33. package/dist/src/features/reports/codeBasedJasper/services/codeBasedJasperApi.d.ts +190 -0
  34. package/dist/src/features/reports/codeBasedJasper/store/codeBasedJasperStore.d.ts +503 -0
  35. package/dist/src/features/reports/codeBasedJasper/types/index.d.ts +54 -0
  36. package/dist/src/features/reports/codeBasedJasper/views/CodeBasedJasperReportView.vue.d.ts +32 -0
  37. package/dist/src/index.d.ts +51 -0
  38. package/dist/src/layouts/AdminLayout.vue.d.ts +2 -0
  39. package/dist/src/plugins/globalErrorHandling.d.ts +36 -0
  40. package/dist/src/plugins/vuetify.d.ts +86 -0
  41. package/dist/src/router/index.d.ts +16 -0
  42. package/dist/src/services/apiService.d.ts +33 -0
  43. package/dist/src/services/integration.d.ts +54 -0
  44. package/dist/src/types/api.d.ts +27 -0
  45. package/dist/src/types/backend.d.ts +27 -0
  46. package/dist/src/utils/helpers.d.ts +50 -0
  47. package/dist/src/utils/safeJson.d.ts +17 -0
  48. package/dist/src/views/HomeView.vue.d.ts +2 -0
  49. package/dist/src/views/NotFoundView.vue.d.ts +2 -0
  50. package/package.json +33 -22
  51. package/dist/.vite/manifest.json +0 -87
  52. package/dist/assets/AdminLayout.css +0 -1
  53. package/dist/assets/AdminLayout.js +0 -1
  54. package/dist/assets/CustomizationView.css +0 -1
  55. package/dist/assets/CustomizationView.js +0 -1
  56. package/dist/assets/HomeView.css +0 -1
  57. package/dist/assets/HomeView.js +0 -1
  58. package/dist/assets/NotFoundView.css +0 -1
  59. package/dist/assets/NotFoundView.js +0 -1
  60. package/dist/assets/ValidationView.css +0 -1
  61. package/dist/assets/ValidationView.js +0 -1
  62. package/dist/assets/_plugin-vue_export-helper.js +0 -1
  63. package/dist/assets/index.css +0 -1
  64. package/dist/assets/index.js +0 -2
  65. package/dist/index.html +0 -14
  66. package/index.js +0 -1
  67. package/src/App.vue +0 -68
  68. package/src/__tests__/App.spec.js +0 -26
  69. package/src/components/common/BaseButton.vue +0 -20
  70. package/src/components/common/BaseInput.vue +0 -27
  71. package/src/components/common/BaseModal.vue +0 -37
  72. package/src/composables/useAsync.js +0 -34
  73. package/src/composables/useClickOutside.js +0 -29
  74. package/src/composables/useForm.js +0 -89
  75. package/src/composables/useLocalStorage.js +0 -51
  76. package/src/composables/useWindowSize.js +0 -30
  77. package/src/config/app.config.js +0 -79
  78. package/src/features/admin/customization/composables/useCustomization.js +0 -19
  79. package/src/features/admin/customization/store/customizationStore.js +0 -30
  80. package/src/features/admin/customization/views/CustomizationView.vue +0 -17
  81. package/src/features/admin/validation/composables/useValidation.js +0 -18
  82. package/src/features/admin/validation/store/validationStore.js +0 -25
  83. package/src/features/admin/validation/views/ValidationView.vue +0 -17
  84. package/src/index.js +0 -53
  85. package/src/layouts/AdminLayout.vue +0 -146
  86. package/src/main.js +0 -41
  87. package/src/router/index.js +0 -57
  88. package/src/services/apiService.js +0 -72
  89. package/src/services/integration.js +0 -59
  90. package/src/services/phpIntegration.js +0 -1
  91. package/src/stores/counter.js +0 -12
  92. package/src/utils/helpers.js +0 -119
  93. package/src/utils/validators.js +0 -131
  94. package/src/views/HomeView.vue +0 -121
  95. package/src/views/NotFoundView.vue +0 -56
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
2
+ export default _default;
@@ -0,0 +1,16 @@
1
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
2
+ export default _default;
3
+ type __VLS_WithTemplateSlots<T, S> = T & (new () => {
4
+ $slots: S;
5
+ });
6
+ declare const __VLS_component: import('vue').DefineComponent<{}, {
7
+ $emit: (event: "click", ...args: any[]) => void;
8
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLButtonElement>;
9
+ type __VLS_TemplateResult = {
10
+ attrs: Partial<{}>;
11
+ slots: {
12
+ default?(_: {}): any;
13
+ };
14
+ refs: {};
15
+ rootEl: HTMLButtonElement;
16
+ };
@@ -0,0 +1,8 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {
2
+ $emit: (event: "update:modelValue", ...args: any[]) => void;
3
+ modelValue: string;
4
+ $props: {
5
+ readonly modelValue?: string | undefined;
6
+ };
7
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLInputElement>;
8
+ export default _default;
@@ -0,0 +1,19 @@
1
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
2
+ export default _default;
3
+ type __VLS_WithTemplateSlots<T, S> = T & (new () => {
4
+ $slots: S;
5
+ });
6
+ declare const __VLS_component: import('vue').DefineComponent<{}, {
7
+ show: boolean;
8
+ $props: {
9
+ readonly show?: boolean | undefined;
10
+ };
11
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
12
+ type __VLS_TemplateResult = {
13
+ attrs: Partial<{}>;
14
+ slots: {
15
+ default?(_: {}): any;
16
+ };
17
+ refs: {};
18
+ rootEl: any;
19
+ };
@@ -0,0 +1,37 @@
1
+ type __VLS_Props = {
2
+ /**
3
+ * When true, let the error propagate to ancestor boundaries and the global Vue handler.
4
+ * Default false to avoid duplicate reporting.
5
+ */
6
+ propagate?: boolean;
7
+ /**
8
+ * Change this value to reset the boundary state.
9
+ */
10
+ resetKey?: string | number;
11
+ };
12
+ declare function reset(): void;
13
+ declare function __VLS_template(): {
14
+ attrs: Partial<{}>;
15
+ slots: {
16
+ default?(_: {}): any;
17
+ fallback?(_: {
18
+ error: unknown;
19
+ info: string | undefined;
20
+ reset: typeof reset;
21
+ }): any;
22
+ };
23
+ refs: {};
24
+ rootEl: any;
25
+ };
26
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
27
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
28
+ propagate: boolean;
29
+ resetKey: string | number;
30
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
31
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
32
+ export default _default;
33
+ type __VLS_WithTemplateSlots<T, S> = T & {
34
+ new (): {
35
+ $slots: S;
36
+ };
37
+ };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @file useAsync.ts
3
+ * @description Vue composable for managing asynchronous operations with loading and error states
4
+ * @author Illuminate Education
5
+ * @lastUpdated 2025-12-21
6
+ *
7
+ * @responsibilities
8
+ * - Wraps async functions with loading state management
9
+ * - Handles error catching and reporting
10
+ * - Provides reactive data, error, and loading states
11
+ * - Simplifies async operation handling in components
12
+ * - Ensures proper cleanup and state management
13
+ */
14
+ type AsyncFn<TArgs extends unknown[], TResult> = (...args: TArgs) => Promise<TResult>;
15
+ /**
16
+ * Composable for handling async operations
17
+ */
18
+ export declare function useAsync<TArgs extends unknown[], TResult>(asyncFunction: AsyncFn<TArgs, TResult>): {
19
+ data: [TResult | null] extends [import('vue').Ref<any, any>] ? import('@vue/shared').IfAny<import('vue').Ref<any, any> & TResult, import('vue').Ref<import('vue').Ref<any, any> & TResult, import('vue').Ref<any, any> & TResult>, import('vue').Ref<any, any> & TResult> : import('vue').Ref<import('vue').UnwrapRef<TResult> | null, TResult | import('vue').UnwrapRef<TResult> | null>;
20
+ error: import('vue').Ref<unknown, unknown>;
21
+ isLoading: import('vue').Ref<boolean, boolean>;
22
+ execute: (...args: TArgs) => Promise<any>;
23
+ };
24
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Ref } from 'vue';
2
+ /**
3
+ * Composable for detecting clicks outside an element
4
+ */
5
+ export declare function useClickOutside(callback: () => void): {
6
+ elementRef: Ref<HTMLElement | null>;
7
+ };
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @file useForm.ts
3
+ * @description Vue composable for comprehensive form state management and validation
4
+ * @author Illuminate Education
5
+ * @lastUpdated 2025-12-21
6
+ *
7
+ * @responsibilities
8
+ * - Manages form data state reactively
9
+ * - Implements field-level and form-level validation
10
+ * - Tracks touched fields for better UX
11
+ * - Handles blur and change events
12
+ * - Provides form reset functionality
13
+ * - Exposes methods for programmatic field updates
14
+ * - Validates against custom rule sets
15
+ */
16
+ export type ValidationRule<TValue = unknown> = {
17
+ validator: (value: TValue) => boolean;
18
+ message: string;
19
+ };
20
+ export type ValidationRules<TForm extends Record<string, unknown>> = Partial<{
21
+ [K in keyof TForm]: Array<ValidationRule<TForm[K]>>;
22
+ }>;
23
+ /**
24
+ * Composable for form validation
25
+ */
26
+ export declare function useForm<TForm extends Record<string, unknown>>(initialValues?: TForm, validationRules?: ValidationRules<TForm>): {
27
+ formData: [TForm] extends [import('vue').Ref<any, any>] ? import('@vue/shared').IfAny<TForm, import('vue').Ref<TForm, TForm>, TForm> : import('vue').Ref<import('vue').UnwrapRef<TForm>, TForm | import('vue').UnwrapRef<TForm>>;
28
+ errors: [Partial<Record<keyof TForm, string>>] extends [import('vue').Ref<any, any>] ? import('@vue/shared').IfAny<import('vue').Ref<any, any> & Partial<Record<keyof TForm, string>>, import('vue').Ref<import('vue').Ref<any, any> & Partial<Record<keyof TForm, string>>, import('vue').Ref<any, any> & Partial<Record<keyof TForm, string>>>, import('vue').Ref<any, any> & Partial<Record<keyof TForm, string>>> : import('vue').Ref<import('vue').UnwrapRef<Partial<Record<keyof TForm, string>>>, Partial<Record<keyof TForm, string>> | import('vue').UnwrapRef<Partial<Record<keyof TForm, string>>>>;
29
+ touched: [Partial<Record<keyof TForm, boolean>>] extends [import('vue').Ref<any, any>] ? import('@vue/shared').IfAny<import('vue').Ref<any, any> & Partial<Record<keyof TForm, boolean>>, import('vue').Ref<import('vue').Ref<any, any> & Partial<Record<keyof TForm, boolean>>, import('vue').Ref<any, any> & Partial<Record<keyof TForm, boolean>>>, import('vue').Ref<any, any> & Partial<Record<keyof TForm, boolean>>> : import('vue').Ref<import('vue').UnwrapRef<Partial<Record<keyof TForm, boolean>>>, Partial<Record<keyof TForm, boolean>> | import('vue').UnwrapRef<Partial<Record<keyof TForm, boolean>>>>;
30
+ isValid: import('vue').ComputedRef<boolean>;
31
+ validateField: (fieldName: keyof TForm) => boolean;
32
+ validateForm: () => boolean;
33
+ handleBlur: (fieldName: keyof TForm) => void;
34
+ handleChange: <K extends keyof TForm>(fieldName: K, value: TForm[K]) => void;
35
+ resetForm: () => void;
36
+ setFieldValue: <K extends keyof TForm>(fieldName: K, value: TForm[K]) => void;
37
+ setFieldError: (fieldName: keyof TForm, error: string) => void;
38
+ };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @file useLocalStorage.ts
3
+ * @description Vue composable for reactive browser localStorage management
4
+ * @author Illuminate Education
5
+ * @lastUpdated 2025-12-21
6
+ *
7
+ * @responsibilities
8
+ * - Provides reactive interface to browser localStorage
9
+ * - Handles JSON serialization/deserialization
10
+ * - Implements safe read/write operations with error handling
11
+ * - Manages default values when keys don't exist
12
+ * - Exposes remove functionality for cleanup
13
+ * - Initializes data on component mount
14
+ */
15
+ type StorageValue = unknown;
16
+ /**
17
+ * Composable for managing localStorage
18
+ */
19
+ export declare function useLocalStorage<T = StorageValue>(key: string, defaultValue?: T | null): {
20
+ data: [T | null] extends [import('vue').Ref<any, any>] ? import('@vue/shared').IfAny<import('vue').Ref<any, any> & T, import('vue').Ref<import('vue').Ref<any, any> & T, import('vue').Ref<any, any> & T>, import('vue').Ref<any, any> & T> : import('vue').Ref<import('vue').UnwrapRef<T> | null, T | import('vue').UnwrapRef<T> | null>;
21
+ write: (value: T | null) => void;
22
+ remove: () => void;
23
+ };
24
+ export {};
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @file useWindowSize.ts
3
+ * @description Vue composable for reactive window size tracking with debouncing
4
+ * @author Illuminate Education
5
+ * @lastUpdated 2025-12-21
6
+ *
7
+ * @responsibilities
8
+ * - Tracks browser window width and height reactively
9
+ * - Implements debounced resize listener for performance
10
+ * - Updates reactive values on window resize
11
+ * - Manages resize event listener lifecycle
12
+ * - Useful for responsive layouts and conditional rendering
13
+ */
14
+ /**
15
+ * Composable for tracking window size
16
+ */
17
+ export declare function useWindowSize(): {
18
+ width: import('vue').Ref<number, number>;
19
+ height: import('vue').Ref<number, number>;
20
+ };
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @file app.config.ts
3
+ * @description Central application configuration file for DNA ATD Frontend
4
+ * @author Illuminate Education
5
+ * @lastUpdated 2025-12-21
6
+ *
7
+ * @responsibilities
8
+ * - Defines application-wide configuration constants
9
+ * - Manages API endpoint and timeout settings
10
+ * - Configures theme options and layout dimensions
11
+ * - Sets pagination defaults and date format preferences
12
+ * - Defines localStorage key conventions
13
+ * - Manages feature flags for conditional features
14
+ * - Establishes validation rules for user inputs
15
+ */
16
+ export type AppConfig = {
17
+ name: string;
18
+ version: string;
19
+ api: {
20
+ baseURL: string;
21
+ timeout: number;
22
+ headers: Record<string, string>;
23
+ };
24
+ theme: {
25
+ default: 'light' | 'dark' | 'auto';
26
+ available: Array<'light' | 'dark' | 'auto'>;
27
+ };
28
+ layout: {
29
+ sidebarWidth: number;
30
+ headerHeight: number;
31
+ footerHeight: number;
32
+ };
33
+ pagination: {
34
+ defaultPageSize: number;
35
+ pageSizeOptions: number[];
36
+ };
37
+ dateFormat: {
38
+ short: string;
39
+ long: string;
40
+ time: string;
41
+ };
42
+ storageKeys: {
43
+ theme: string;
44
+ locale: string;
45
+ token: string;
46
+ user: string;
47
+ };
48
+ features: {
49
+ darkMode: boolean;
50
+ notifications: boolean;
51
+ analytics: boolean;
52
+ };
53
+ validation: {
54
+ password: {
55
+ minLength: number;
56
+ requireUppercase: boolean;
57
+ requireLowercase: boolean;
58
+ requireNumbers: boolean;
59
+ requireSpecialChars: boolean;
60
+ };
61
+ username: {
62
+ minLength: number;
63
+ maxLength: number;
64
+ };
65
+ };
66
+ };
67
+ export declare const appConfig: AppConfig;
@@ -0,0 +1,9 @@
1
+ import { App as VueApp, InjectionKey } from 'vue';
2
+ import { BackendConfig, BackendUser } from '../types/backend';
3
+ export type BackendContext<TConfig extends BackendConfig = BackendConfig, TUser extends BackendUser = BackendUser> = {
4
+ config: TConfig;
5
+ user: TUser;
6
+ };
7
+ export declare const backendContextKey: InjectionKey<BackendContext>;
8
+ export declare function provideBackendContext(app: VueApp, context: BackendContext): void;
9
+ export declare function useBackendContext<TConfig extends BackendConfig = BackendConfig, TUser extends BackendUser = BackendUser>(): BackendContext<TConfig, TUser>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @file useCustomization.ts
3
+ * @description Vue composable for accessing customization store functionality
4
+ * @author Illuminate Education
5
+ * @lastUpdated 2025-12-21
6
+ *
7
+ * @responsibilities
8
+ * - Provides reactive access to customization store state
9
+ * - Exposes settings and loading states to components
10
+ * - Wraps store actions for fetching and updating settings
11
+ * - Ensures reactivity using storeToRefs
12
+ * - Simplifies customization feature integration in components
13
+ */
14
+ export declare function useCustomization(): {
15
+ settings: import('vue').Ref<import('../store/customizationStore').CustomizationSettings, import('../store/customizationStore').CustomizationSettings>;
16
+ isLoading: import('vue').Ref<boolean, boolean>;
17
+ fetchSettings: () => Promise<void>;
18
+ updateSettings: (newSettings: import('../store/customizationStore').CustomizationSettings) => void;
19
+ };
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @file customizationStore.ts
3
+ * @description Pinia store for managing customization settings and preferences
4
+ * @author Illuminate Education
5
+ * @lastUpdated 2025-12-21
6
+ *
7
+ * @store customization
8
+ * @responsibilities
9
+ * - Manages application customization settings state
10
+ * - Handles fetching and updating of user/admin customization preferences
11
+ * - Provides centralized loading state for customization operations
12
+ * - Exposes settings data and update methods to components
13
+ */
14
+ export type CustomizationSettings = Record<string, unknown>;
15
+ export declare const useCustomizationStore: import('pinia').StoreDefinition<"customization", Pick<{
16
+ settings: import('vue').Ref<CustomizationSettings, CustomizationSettings>;
17
+ isLoading: import('vue').Ref<boolean, boolean>;
18
+ fetchSettings: () => Promise<void>;
19
+ updateSettings: (newSettings: CustomizationSettings) => void;
20
+ }, "isLoading" | "settings">, Pick<{
21
+ settings: import('vue').Ref<CustomizationSettings, CustomizationSettings>;
22
+ isLoading: import('vue').Ref<boolean, boolean>;
23
+ fetchSettings: () => Promise<void>;
24
+ updateSettings: (newSettings: CustomizationSettings) => void;
25
+ }, never>, Pick<{
26
+ settings: import('vue').Ref<CustomizationSettings, CustomizationSettings>;
27
+ isLoading: import('vue').Ref<boolean, boolean>;
28
+ fetchSettings: () => Promise<void>;
29
+ updateSettings: (newSettings: CustomizationSettings) => void;
30
+ }, "fetchSettings" | "updateSettings">>;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @file useValidation.ts
3
+ * @description Vue composable for accessing validation store functionality
4
+ * @author Illuminate Education
5
+ * @lastUpdated 2025-12-21
6
+ *
7
+ * @responsibilities
8
+ * - Provides reactive access to validation store state
9
+ * - Exposes validation data and loading states to components
10
+ * - Wraps store actions for validation data fetching
11
+ * - Ensures reactivity using storeToRefs
12
+ * - Simplifies validation feature integration in components
13
+ */
14
+ export declare function useValidation(): {
15
+ data: import('vue').Ref<import('../store/validationStore').ValidationItem[], import('../store/validationStore').ValidationItem[]>;
16
+ isLoading: import('vue').Ref<boolean, boolean>;
17
+ fetchData: () => Promise<void>;
18
+ };
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @file validationStore.ts
3
+ * @description Pinia store for managing validation feature state and actions
4
+ * @author Illuminate Education
5
+ * @lastUpdated 2025-12-21
6
+ *
7
+ * @store validation
8
+ * @responsibilities
9
+ * - Manages validation data state across the application
10
+ * - Handles async data fetching for validation features
11
+ * - Provides centralized loading state management
12
+ * - Exposes validation data to components via Pinia composition API
13
+ */
14
+ export type ValidationItem = Record<string, unknown>;
15
+ export declare const useValidationStore: import('pinia').StoreDefinition<"validation", Pick<{
16
+ data: import('vue').Ref<ValidationItem[], ValidationItem[]>;
17
+ isLoading: import('vue').Ref<boolean, boolean>;
18
+ fetchData: () => Promise<void>;
19
+ }, "data" | "isLoading">, Pick<{
20
+ data: import('vue').Ref<ValidationItem[], ValidationItem[]>;
21
+ isLoading: import('vue').Ref<boolean, boolean>;
22
+ fetchData: () => Promise<void>;
23
+ }, never>, Pick<{
24
+ data: import('vue').Ref<ValidationItem[], ValidationItem[]>;
25
+ isLoading: import('vue').Ref<boolean, boolean>;
26
+ fetchData: () => Promise<void>;
27
+ }, "fetchData">>;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
2
+ export default _default;