@doyosi/laraisy 1.0.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 (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +62 -0
  3. package/dist/CodeInput.d.ts +10 -0
  4. package/dist/DSAlert.d.ts +112 -0
  5. package/dist/DSAvatar.d.ts +45 -0
  6. package/dist/DSDelete.d.ts +61 -0
  7. package/dist/DSForm.d.ts +151 -0
  8. package/dist/DSGridOrTable/DSGOTRenderer.d.ts +60 -0
  9. package/dist/DSGridOrTable/DSGOTViewToggle.d.ts +26 -0
  10. package/dist/DSGridOrTable.d.ts +296 -0
  11. package/dist/DSLocaleSwitcher.d.ts +71 -0
  12. package/dist/DSLogout.d.ts +76 -0
  13. package/dist/DSNotifications.d.ts +54 -0
  14. package/dist/DSRestore.d.ts +56 -0
  15. package/dist/DSSelect.d.ts +221 -0
  16. package/dist/DSSelectBox.d.ts +123 -0
  17. package/dist/DSSimpleSlider.d.ts +136 -0
  18. package/dist/DSSvgFetch.d.ts +17 -0
  19. package/dist/DSTable/DSTableExport.d.ts +11 -0
  20. package/dist/DSTable/DSTableFilter.d.ts +40 -0
  21. package/dist/DSTable/DSTablePagination.d.ts +12 -0
  22. package/dist/DSTable/DSTableSearch.d.ts +8 -0
  23. package/dist/DSTable/DSTableSelection.d.ts +46 -0
  24. package/dist/DSTable/DSTableSort.d.ts +8 -0
  25. package/dist/DSTable.d.ts +116 -0
  26. package/dist/DSTabs.d.ts +156 -0
  27. package/dist/DSUpload.d.ts +220 -0
  28. package/dist/index.d.ts +17 -0
  29. package/package.json +41 -0
  30. package/src/CodeInput.js +48 -0
  31. package/src/DSAlert.js +353 -0
  32. package/src/DSAvatar.js +208 -0
  33. package/src/DSDelete.js +274 -0
  34. package/src/DSForm.js +569 -0
  35. package/src/DSGridOrTable/DSGOTRenderer.js +297 -0
  36. package/src/DSGridOrTable/DSGOTViewToggle.js +85 -0
  37. package/src/DSGridOrTable.js +453 -0
  38. package/src/DSLocaleSwitcher.js +239 -0
  39. package/src/DSLogout.js +293 -0
  40. package/src/DSNotifications.js +365 -0
  41. package/src/DSRestore.js +181 -0
  42. package/src/DSSelect.js +1071 -0
  43. package/src/DSSelectBox.js +563 -0
  44. package/src/DSSimpleSlider.js +517 -0
  45. package/src/DSSvgFetch.js +70 -0
  46. package/src/DSTable/DSTableExport.js +68 -0
  47. package/src/DSTable/DSTableFilter.js +224 -0
  48. package/src/DSTable/DSTablePagination.js +136 -0
  49. package/src/DSTable/DSTableSearch.js +40 -0
  50. package/src/DSTable/DSTableSelection.js +192 -0
  51. package/src/DSTable/DSTableSort.js +58 -0
  52. package/src/DSTable.js +353 -0
  53. package/src/DSTabs.js +488 -0
  54. package/src/DSUpload.js +887 -0
  55. package/src/index.js +17 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Alper ER
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,62 @@
1
+ # @doyosi/laraisy
2
+
3
+ Missing Laravel / Tailwind v4.1 & Daisy UI 5.1.14 Javascript Plugins for interactive UI components.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @doyosi/laraisy
9
+ ```
10
+
11
+ Or clone the repository:
12
+
13
+ ```bash
14
+ git clone https://github.com/Doyosi/Laraisy.git
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ Import the components you need:
20
+
21
+ ```javascript
22
+ import { DSForm, DSAvatar, DSAlert } from '@doyosi/laraisy';
23
+
24
+ // Initialize DSForm
25
+ const form = new DSForm({
26
+ form: '#my-form',
27
+ onSuccess: (response) => {
28
+ console.log('Success!', response);
29
+ }
30
+ });
31
+
32
+ // Use DSAlert
33
+ DSAlert.fire('Hello World!', 'This is a success message', 'success');
34
+ ```
35
+
36
+ ## Components
37
+
38
+ - **[DSAlert](docs/DSAlertUsage.md)**: SweetAlert2-like toast and modal system.
39
+ - **[DSAvatar](docs/DSAvatarUsage.md)**: Avatar file upload with preview and reset. (See code for usage)
40
+ - **[DSForm](docs/DSFormUsage.md)**: Robust AJAX form handler with validation display.
41
+ - **[DSDelete](docs/DSDeleteUsage.md)**: Deletion confirmation and handling.
42
+ - **[DSSelect](docs/DSSelectUsage.md)**: Advanced select/dropdown component.
43
+ - **[DSSelectBox](docs/DSSelectBoxUsage.md)**: Dual-list selector for transferring items.
44
+ - **[DSNotifications](docs/DSNotificationsUsage.md)**: Notification drawer management.
45
+ - **[DSUpload](docs/DSUploadUsage.md)**: File uploader with drag-and-drop. (Docs pending)
46
+ - **[DSGridOrTable](docs/DSGridOrTableUsage.md)**: flexible data display (Table/Grid).
47
+ - **[DSTable](docs/DSTableUsage.md)**: Data tables with sorting, filtering, and pagination.
48
+ - **[DSTabs](docs/DSTabsUsage.md)**: Tab switching management.
49
+ - **[DSRestore](docs/DSRestoreUsage.md)**: Restore actions handling.
50
+ - **[DSSimpleSlider](docs/DSSimpleSliderUsage.md)**: Carousel/Slider component.
51
+ - **[CodeInput](docs/CodeInputUsage.md)**: Multi-input verification code handler.
52
+ - **[DSLogout](docs/DSLogoutUsage.md)**: Secure AJAX logout handler.
53
+ - **[DSSvgFetch](docs/DSSvgFetchUsage.md)**: Inline SVG injector.
54
+
55
+ ## Dependencies
56
+
57
+ - **tippy.js** (Optional/Peer): Used by `DSAvatar` for tooltips. Ensure `window.tippy` is available or install `tippy.js`.
58
+ - **axios** (Optional/Peer): Used for AJAX requests. Falls back to `fetch` if not available.
59
+
60
+ ## License
61
+
62
+ MIT
@@ -0,0 +1,10 @@
1
+ export default class CodeInput {
2
+ constructor(selector: any, hiddenName: any);
3
+ inputs: Element[];
4
+ hidden: Element;
5
+ _bindEvents(): void;
6
+ _onInput(e: any, idx: any): void;
7
+ _onKeyDown(e: any, idx: any): void;
8
+ _onPaste(e: any, idx: any): void;
9
+ _updateHidden(): void;
10
+ }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * DSAlert (Class-based)
3
+ * A lightweight, native JavaScript alert/toast system using Tailwind CSS.
4
+ * API designed to mimic SweetAlert2 for easy migration.
5
+ *
6
+ * Usage:
7
+ * import { DSAlert } from './DSAlert.js';
8
+ * DSAlert.fire({ title: 'Hello', icon: 'success' });
9
+ * // OR shorthand
10
+ * DSAlert.fire('Deleted!', 'Your file has been deleted.', 'success');
11
+ */
12
+ export class DSAlert {
13
+ /**
14
+ * Default Icons - Can be overridden by modifying DSAlert.icons
15
+ */
16
+ static icons: {
17
+ success: string;
18
+ error: string;
19
+ warning: string;
20
+ info: string;
21
+ question: string;
22
+ };
23
+ /**
24
+ * Default defaults
25
+ */
26
+ static defaults: {
27
+ title: string;
28
+ text: string;
29
+ html: string;
30
+ icon: string;
31
+ toast: boolean;
32
+ position: string;
33
+ timer: number;
34
+ timerProgressBar: boolean;
35
+ showConfirmButton: boolean;
36
+ showCancelButton: boolean;
37
+ showCloseButton: boolean;
38
+ allowOutsideClick: boolean;
39
+ allowEscapeKey: boolean;
40
+ confirmButtonText: string;
41
+ cancelButtonText: string;
42
+ confirmButtonColor: string;
43
+ cancelButtonColor: string;
44
+ buttonsAlign: string;
45
+ backdrop: boolean;
46
+ };
47
+ /**
48
+ * Static helper to fire the alert immediately
49
+ * @param {...any} args - Options object OR (title, text, icon)
50
+ * @returns {Promise}
51
+ */
52
+ static fire(...args: any[]): Promise<any>;
53
+ constructor(...args: any[]);
54
+ config: {
55
+ title: string;
56
+ text: any;
57
+ icon: any;
58
+ html: string;
59
+ toast: boolean;
60
+ position: string;
61
+ timer: number;
62
+ timerProgressBar: boolean;
63
+ showConfirmButton: boolean;
64
+ showCancelButton: boolean;
65
+ showCloseButton: boolean;
66
+ allowOutsideClick: boolean;
67
+ allowEscapeKey: boolean;
68
+ confirmButtonText: string;
69
+ cancelButtonText: string;
70
+ confirmButtonColor: string;
71
+ cancelButtonColor: string;
72
+ buttonsAlign: string;
73
+ backdrop: boolean;
74
+ };
75
+ domElement: HTMLDivElement;
76
+ container: Element;
77
+ /**
78
+ * Triggers the alert/toast
79
+ * @returns {Promise}
80
+ */
81
+ fire(): Promise<any>;
82
+ /**
83
+ * Parse constructor arguments to support shorthand (Title, Text, Icon)
84
+ */
85
+ _parseArgs(args: any): {
86
+ title: string;
87
+ text: any;
88
+ icon: any;
89
+ html: string;
90
+ toast: boolean;
91
+ position: string;
92
+ timer: number;
93
+ timerProgressBar: boolean;
94
+ showConfirmButton: boolean;
95
+ showCancelButton: boolean;
96
+ showCloseButton: boolean;
97
+ allowOutsideClick: boolean;
98
+ allowEscapeKey: boolean;
99
+ confirmButtonText: string;
100
+ cancelButtonText: string;
101
+ confirmButtonColor: string;
102
+ cancelButtonColor: string;
103
+ buttonsAlign: string;
104
+ backdrop: boolean;
105
+ };
106
+ _initToast(resolve: any): void;
107
+ _closeToast(resolve: any): void;
108
+ _ensureToastContainer(): Element;
109
+ _getToastPositionClass(pos: any): "top-0 left-0 items-start" | "top-0 left-1/2 -translate-x-1/2 items-center" | "top-0 right-0 items-end" | "top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 items-center justify-center" | "bottom-0 left-0 items-start flex-col-reverse" | "bottom-0 left-1/2 -translate-x-1/2 items-center flex-col-reverse" | "bottom-0 right-0 items-end flex-col-reverse";
110
+ _initModal(resolve: any): void;
111
+ _getIconColorName(iconType: any): any;
112
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * DSAvatar
3
+ *
4
+ * Handles avatar file uploads and resets via AJAX.
5
+ * - Integrates with DSAlert for notifications.
6
+ * - Manages loading states and UI updates.
7
+ * - Uses Laravel-style CSRF protection.
8
+ */
9
+ export class DSAvatar {
10
+ /**
11
+ * @param {string|HTMLElement} selector - The .avatar-uploader wrapper
12
+ * @param {Object} config - Configuration overrides
13
+ */
14
+ constructor(selector: string | HTMLElement, config?: any);
15
+ wrapper: Element;
16
+ cfg: any;
17
+ img: Element;
18
+ input: Element;
19
+ loadingOverlay: Element;
20
+ triggerBtn: Element;
21
+ removeBtn: Element;
22
+ uploadUrl: any;
23
+ removeUrl: any;
24
+ inputName: any;
25
+ _backupSrc: any;
26
+ initTooltips(): void;
27
+ bind(): void;
28
+ /**
29
+ * Upload Process
30
+ */
31
+ _handleFileSelect(e: any): Promise<void>;
32
+ /**
33
+ * Remove/Reset Process
34
+ */
35
+ _handleRemove(): Promise<void>;
36
+ /**
37
+ * Shared Request Logic (mirrors DSForm)
38
+ */
39
+ _sendRequest(url: any, method: any, body: any): Promise<{
40
+ response: Response;
41
+ data: {};
42
+ }>;
43
+ _toggleLoading(show: any): void;
44
+ _toast(message: any, type?: string): void;
45
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * DSDelete
3
+ *
4
+ * A plugin to handle delete actions with confirmation dialogs and AJAX requests.
5
+ * Integrates with DSAlert for UI.
6
+ */
7
+ export class DSDelete {
8
+ static defaults: {
9
+ selector: string;
10
+ method: string;
11
+ ajaxFunction: string;
12
+ title: string;
13
+ text: string;
14
+ icon: string;
15
+ confirmButtonText: string;
16
+ cancelButtonText: string;
17
+ confirmButtonColor: string;
18
+ successTitle: string;
19
+ successText: string;
20
+ successIcon: string;
21
+ errorTitle: string;
22
+ errorText: string;
23
+ errorIcon: string;
24
+ onSuccess: any;
25
+ onError: any;
26
+ onDelete: any;
27
+ };
28
+ /**
29
+ * Static method for programmatic delete confirmation
30
+ * Usage: DSDelete.confirm({ url, title, text, successMessage, onSuccess })
31
+ */
32
+ static confirm(options?: {}): Promise<any>;
33
+ constructor(options?: {});
34
+ config: {
35
+ selector: string;
36
+ method: string;
37
+ ajaxFunction: string;
38
+ title: string;
39
+ text: string;
40
+ icon: string;
41
+ confirmButtonText: string;
42
+ cancelButtonText: string;
43
+ confirmButtonColor: string;
44
+ successTitle: string;
45
+ successText: string;
46
+ successIcon: string;
47
+ errorTitle: string;
48
+ errorText: string;
49
+ errorIcon: string;
50
+ onSuccess: any;
51
+ onError: any;
52
+ onDelete: any;
53
+ };
54
+ _init(): void;
55
+ _handleDelete(element: any): Promise<void>;
56
+ _performDelete(url: any, id: any, element: any): Promise<void>;
57
+ _handleSuccess(response: any, element: any): Promise<void>;
58
+ _handleError(error: any, element: any): void;
59
+ _emit(event: any, detail?: {}): void;
60
+ }
61
+ export default DSDelete;
@@ -0,0 +1,151 @@
1
+ export class DSForm {
2
+ static _defaults: {
3
+ translations: {
4
+ loading: string;
5
+ networkError: string;
6
+ unknownError: string;
7
+ success: string;
8
+ error: string;
9
+ };
10
+ };
11
+ /**
12
+ * @param {Object} config - Configuration object.
13
+ * @param {HTMLFormElement|string} config.form - Form element or selector.
14
+ * @param {string} [config.url] - Submit URL (defaults to form.action or current url).
15
+ * @param {'post'|'put'} [config.method] - HTTP method.
16
+ * @param {Array<string|HTMLElement>} [config.triggers] - External triggers (selectors/elements).
17
+ * @param {'fetch'|'axios'|'xhr'} [config.requestLib] - Preferred request lib; gracefully falls back.
18
+ * @param {Object} [config.headers] - Extra headers.
19
+ * @param {Object|Function} [config.additionalData] - Extra data merged before submit.
20
+ * @param {Array<string>} [config.disableSelectors] - Extra selectors to disable during submit.
21
+ * @param {Array<string>} [config.excludeEnableSelectors] - Keep these disabled after complete.
22
+ * @param {string} [config.primaryButtonSelector='button[type="submit"]'] - For default loading target.
23
+ * @param {(Function|string)} [config.loadingTemplate] - Function/Selector/Raw HTML for loading state.
24
+ * @param {Object} [config.translations] - i18n map for user texts.
25
+ * @param {Object} [config.toast] - Toast options { enabled, position, timer, timerProgressBar }.
26
+ * @param {boolean} [config.autoRedirect=true] - Follow payload.redirect if present.
27
+ * @param {boolean} [config.disableOnSuccess=false] - Keep all controls disabled if the request succeeds.
28
+ * @param {Function} [config.onBeforeSubmit]
29
+ * @param {Function} [config.onSubmit]
30
+ * @param {Function} [config.onSuccess]
31
+ * @param {Function} [config.onError]
32
+ * @param {Function} [config.onComplete]
33
+ * @param {string} [config.successTitle] - Title for success toast (overrides payload.message).
34
+ * @param {string} [config.errorTitle] - Title for error toast (overrides payload.message).
35
+ */
36
+ constructor(config?: {
37
+ form: HTMLFormElement | string;
38
+ url?: string;
39
+ method?: "post" | "put";
40
+ triggers?: Array<string | HTMLElement>;
41
+ requestLib?: "fetch" | "axios" | "xhr";
42
+ headers?: any;
43
+ additionalData?: any | Function;
44
+ disableSelectors?: Array<string>;
45
+ excludeEnableSelectors?: Array<string>;
46
+ primaryButtonSelector?: string;
47
+ loadingTemplate?: (Function | string);
48
+ translations?: any;
49
+ toast?: any;
50
+ autoRedirect?: boolean;
51
+ disableOnSuccess?: boolean;
52
+ onBeforeSubmit?: Function;
53
+ onSubmit?: Function;
54
+ onSuccess?: Function;
55
+ onError?: Function;
56
+ onComplete?: Function;
57
+ successTitle?: string;
58
+ errorTitle?: string;
59
+ });
60
+ cfg: {
61
+ form: HTMLFormElement | string;
62
+ url?: string;
63
+ method?: "post" | "put";
64
+ triggers?: Array<string | HTMLElement>;
65
+ requestLib: string;
66
+ headers?: any;
67
+ additionalData?: any | Function;
68
+ disableSelectors?: Array<string>;
69
+ excludeEnableSelectors?: Array<string>;
70
+ primaryButtonSelector: string;
71
+ loadingTemplate?: (Function | string);
72
+ translations: any;
73
+ toast: any;
74
+ autoRedirect: boolean;
75
+ disableOnSuccess: boolean;
76
+ onBeforeSubmit?: Function;
77
+ onSubmit?: Function;
78
+ onSuccess?: Function;
79
+ onError?: Function;
80
+ onComplete?: Function;
81
+ successTitle: any;
82
+ errorTitle: any;
83
+ };
84
+ form: Element;
85
+ url: string;
86
+ method: string;
87
+ triggers: Element[];
88
+ _activeTrigger: HTMLElement;
89
+ _disabledEls: Set<any>;
90
+ _listeners: {};
91
+ _onFormSubmit(e: any): Promise<void>;
92
+ _onExternalTrigger(e: any): void;
93
+ /** Attach listeners to form and external triggers */
94
+ bind(): this;
95
+ /** Detach listeners */
96
+ unbind(): this;
97
+ /** Emitter: subscribe to internal events (and mirrored DOM CustomEvents) */
98
+ on(event: any, handler: any): this;
99
+ /** Emitter: unsubscribe */
100
+ off(event: any, handler: any): this;
101
+ /** Programmatically submit (optional). Runs native validation via requestSubmit if supported. */
102
+ submit({ trigger }?: {
103
+ trigger?: any;
104
+ }): void;
105
+ /** Public helper to merge extra data into request payload creation pipeline */
106
+ addData(extra?: {}): void;
107
+ _buildBody(): {
108
+ body: FormData;
109
+ isFormData: boolean;
110
+ jsonSnapshot: any;
111
+ } | {
112
+ body: string;
113
+ isFormData: boolean;
114
+ jsonSnapshot: {};
115
+ };
116
+ _appendToFormData(fd: any, key: any, val: any): void;
117
+ _ensureArrayKey(key: any): any;
118
+ _formDataToJSON(fd: any): {};
119
+ _assignDeep(obj: any, path: any, value: any): void;
120
+ _parsePath(path: any): string[];
121
+ _buildHeaders(isFormData: any): any;
122
+ _sendRequest({ body, headers, signal, isFormData }: {
123
+ body: any;
124
+ headers: any;
125
+ signal: any;
126
+ isFormData: any;
127
+ }): Promise<{
128
+ response: any;
129
+ data: any;
130
+ }>;
131
+ _xhr({ url, method, headers, body, isFormData, signal }: {
132
+ url: any;
133
+ method: any;
134
+ headers: any;
135
+ body: any;
136
+ isFormData: any;
137
+ signal: any;
138
+ }): Promise<any>;
139
+ _disableAll(loadingText: any): void;
140
+ _enableAll(): void;
141
+ _isButtonLike(el: any): boolean;
142
+ _resolveTemplate(tpl: any, text: any): any;
143
+ _resetErrors(): void;
144
+ _renderErrors(payload: any): void;
145
+ _showErrorForKey(key: any, text: any): void;
146
+ _renderGeneralError(msg: any): void;
147
+ _emit(event: any, detail?: {}): void;
148
+ _t(key: any): any;
149
+ /** Toast helper using DSAlert */
150
+ _toast(message: any, type?: string): void;
151
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * DSGOTRenderer
3
+ *
4
+ * Handles rendering for both grid and table layouts.
5
+ * Supports function, HTML template, and response-based templates.
6
+ */
7
+ export class DSGOTRenderer {
8
+ constructor(instance: any);
9
+ instance: any;
10
+ config: any;
11
+ /**
12
+ * Main render method - routes to appropriate renderer based on current view
13
+ */
14
+ render(): void;
15
+ /**
16
+ * Render data as table rows
17
+ */
18
+ _renderTable(data: any): void;
19
+ /**
20
+ * Render data as grid cards
21
+ */
22
+ _renderGrid(data: any): void;
23
+ /**
24
+ * Get HTML content based on template configuration
25
+ * @param {Object} row - Row data
26
+ * @param {number} index - Row index
27
+ * @param {Object} templateConfig - Template configuration object
28
+ * @returns {string} HTML string
29
+ */
30
+ _getTemplateHtml(row: any, index: number, templateConfig: any): string;
31
+ /**
32
+ * Render a template string with {{placeholder}} syntax
33
+ */
34
+ _renderTemplateString(template: any, data: any): any;
35
+ /**
36
+ * Get nested value from object using dot notation
37
+ */
38
+ _getNestedValue(obj: any, path: any): any;
39
+ /**
40
+ * Show empty state
41
+ */
42
+ showEmpty(): void;
43
+ /**
44
+ * Show error state
45
+ */
46
+ showError(message: any): void;
47
+ /**
48
+ * Show skeleton loading state
49
+ */
50
+ showSkeleton(): void;
51
+ /**
52
+ * Show grid skeleton
53
+ */
54
+ _showGridSkeleton(): void;
55
+ /**
56
+ * Show table skeleton
57
+ */
58
+ _showTableSkeleton(): void;
59
+ }
60
+ export default DSGOTRenderer;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * DSGOTViewToggle
3
+ *
4
+ * Handles the view toggle button for gridable mode.
5
+ * Allows users to switch between grid and table views.
6
+ */
7
+ export class DSGOTViewToggle {
8
+ constructor(instance: any);
9
+ instance: any;
10
+ config: any;
11
+ container: any;
12
+ _init(): void;
13
+ /**
14
+ * Create toggle buttons if not found in DOM
15
+ */
16
+ _createToggle(): void;
17
+ /**
18
+ * Bind click events to toggle buttons
19
+ */
20
+ _bindEvents(): void;
21
+ /**
22
+ * Update toggle button states
23
+ */
24
+ update(): void;
25
+ }
26
+ export default DSGOTViewToggle;