cloud-ide-element 0.0.1 → 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 (50) hide show
  1. package/README.md +271 -24
  2. package/esm2022/lib/components/confirmation-modal/confirmation-modal.component.mjs +182 -0
  3. package/esm2022/lib/components/data-grid/data-grid.component.mjs +1363 -0
  4. package/esm2022/lib/components/data-grid/data-grid.types.mjs +37 -0
  5. package/esm2022/lib/components/dropdown/dropdown.component.mjs +396 -0
  6. package/esm2022/lib/components/global-notifications/global-notifications.component.mjs +30 -0
  7. package/esm2022/lib/components/json-editor/json-editor.component.mjs +521 -0
  8. package/esm2022/lib/components/skeleton-loader/skeleton-loader.component.mjs +33 -0
  9. package/esm2022/lib/components/toast-notification/toast-notification.component.mjs +152 -0
  10. package/esm2022/lib/elements/button/cide-ele-button.component.mjs +249 -0
  11. package/esm2022/lib/elements/file-input/file-input.component.mjs +83 -0
  12. package/esm2022/lib/elements/icon/icon.component.mjs +5 -3
  13. package/esm2022/lib/elements/input/input.component.mjs +34 -20
  14. package/esm2022/lib/elements/select/select.component.mjs +471 -0
  15. package/esm2022/lib/elements/tab/cide-ele-tab.component.mjs +74 -0
  16. package/esm2022/lib/elements/textarea/textarea.component.mjs +157 -0
  17. package/esm2022/lib/services/confirmation.service.mjs +151 -0
  18. package/esm2022/lib/services/dropdown-manager.service.mjs +93 -0
  19. package/esm2022/lib/services/notification.service.mjs +196 -0
  20. package/esm2022/lib/utils/directives/resizer/resizer.directive.mjs +231 -0
  21. package/esm2022/lib/utils/directives/tooltip/tooltip.directive.mjs +294 -0
  22. package/esm2022/lib/utils/services/elements/elements.service.mjs +9 -7
  23. package/esm2022/public-api.mjs +23 -2
  24. package/fesm2022/cloud-ide-element.mjs +4646 -47
  25. package/fesm2022/cloud-ide-element.mjs.map +1 -1
  26. package/lib/components/confirmation-modal/confirmation-modal.component.d.ts +16 -0
  27. package/lib/components/data-grid/data-grid.component.d.ts +244 -0
  28. package/lib/components/data-grid/data-grid.types.d.ts +146 -0
  29. package/lib/components/dropdown/dropdown.component.d.ts +75 -0
  30. package/lib/components/global-notifications/global-notifications.component.d.ts +5 -0
  31. package/lib/components/json-editor/json-editor.component.d.ts +116 -0
  32. package/lib/components/skeleton-loader/skeleton-loader.component.d.ts +11 -0
  33. package/lib/components/toast-notification/toast-notification.component.d.ts +13 -0
  34. package/lib/elements/button/cide-ele-button.component.d.ts +85 -0
  35. package/lib/elements/file-input/file-input.component.d.ts +25 -0
  36. package/lib/elements/input/input.component.d.ts +7 -4
  37. package/lib/elements/select/select.component.d.ts +91 -0
  38. package/lib/elements/tab/cide-ele-tab.component.d.ts +26 -0
  39. package/lib/elements/textarea/textarea.component.d.ts +47 -0
  40. package/lib/services/confirmation.service.d.ts +65 -0
  41. package/lib/services/dropdown-manager.service.d.ts +22 -0
  42. package/lib/services/notification.service.d.ts +81 -0
  43. package/lib/utils/directives/resizer/resizer.directive.d.ts +44 -0
  44. package/lib/utils/directives/tooltip/tooltip.directive.d.ts +43 -0
  45. package/package.json +32 -4
  46. package/public-api.d.ts +18 -1
  47. package/src/lib/assets/css/cide-ele-style.scss +85 -0
  48. package/src/lib/assets/css/cide-ele-variable.scss +336 -0
  49. package/esm2022/lib/elements/button/button.component.mjs +0 -60
  50. package/lib/elements/button/button.component.d.ts +0 -27
@@ -0,0 +1,16 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class CideEleConfirmationModalComponent {
3
+ private confirmationService;
4
+ hasActiveConfirmation: import("@angular/core").Signal<boolean>;
5
+ currentRequest: import("@angular/core").WritableSignal<import("../../services/confirmation.service").ConfirmationRequest<unknown> | null>;
6
+ customData: import("@angular/core").WritableSignal<unknown>;
7
+ getHeaderClass: import("@angular/core").Signal<string>;
8
+ getIconClass: import("@angular/core").Signal<"success" | "danger" | "warning" | "info">;
9
+ getConfirmButtonClass: import("@angular/core").Signal<string>;
10
+ onBackdropClick(event: Event): void;
11
+ onCancel(): void;
12
+ onConfirm(): void;
13
+ updateCustomData(data: unknown): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<CideEleConfirmationModalComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<CideEleConfirmationModalComponent, "cide-ele-confirmation-modal", never, {}, {}, never, never, true, never>;
16
+ }
@@ -0,0 +1,244 @@
1
+ import { EventEmitter, OnInit, OnChanges, OnDestroy, SimpleChanges, TemplateRef } from '@angular/core';
2
+ import { GridConfiguration, GridColumn, GridEvent, GridAction, ColumnWidth, StatusConfig } from './data-grid.types';
3
+ import { inputType } from 'cloud-ide-lms-model';
4
+ import * as i0 from "@angular/core";
5
+ export interface TemplateContext<T = Record<string, unknown>> {
6
+ $implicit: unknown;
7
+ row: T;
8
+ value: unknown;
9
+ column: GridColumn;
10
+ }
11
+ export type TemplateRenderer<T = Record<string, unknown>> = TemplateRef<TemplateContext<T>>;
12
+ export type StringRenderer<T = Record<string, unknown>> = (value: unknown, row: T) => string;
13
+ export type Renderer<T = Record<string, unknown>> = StringRenderer<T> | TemplateRenderer<T>;
14
+ export declare class CideEleDataGridComponent<T = Record<string, unknown>> implements OnInit, OnChanges, OnDestroy {
15
+ config: GridConfiguration<T>;
16
+ customRenderers: Record<string, StringRenderer<T>>;
17
+ templateRenderers: Record<string, unknown>;
18
+ customFormatters: Record<string, (value: unknown, format?: string) => string>;
19
+ actionHandlers: Record<string, (data: T, action?: GridAction) => void>;
20
+ serverSidePagination: boolean;
21
+ totalServerItems: number;
22
+ currentServerPage: number;
23
+ currentServerPageSize: number;
24
+ dragDropEnabled: boolean;
25
+ gridEvent: EventEmitter<GridEvent<T>>;
26
+ private internalData;
27
+ private filteredData;
28
+ currentPage: import("@angular/core").WritableSignal<number>;
29
+ pageSize: import("@angular/core").WritableSignal<number>;
30
+ totalItems: import("@angular/core").WritableSignal<number>;
31
+ totalPages: import("@angular/core").WritableSignal<number>;
32
+ searchQuery: import("@angular/core").WritableSignal<string>;
33
+ loading: import("@angular/core").WritableSignal<boolean>;
34
+ isRefreshing: import("@angular/core").WritableSignal<boolean>;
35
+ pageChangeLoading: import("@angular/core").WritableSignal<boolean>;
36
+ jumpToPage: number;
37
+ isDragOverRow: number | null;
38
+ isDragging: import("@angular/core").WritableSignal<boolean>;
39
+ hasOrderChanged: import("@angular/core").WritableSignal<boolean>;
40
+ private originalOrderIds;
41
+ private initialDataOrderIds;
42
+ private rowOrderMap;
43
+ private localReorderedData;
44
+ private searchDebounceTimer?;
45
+ private isDataUpdate;
46
+ hasNextPage: import("@angular/core").Signal<boolean>;
47
+ hasPreviousPage: import("@angular/core").Signal<boolean>;
48
+ mergedConfig: import("@angular/core").WritableSignal<GridConfiguration<T>>;
49
+ ngOnInit(): void;
50
+ ngOnDestroy(): void;
51
+ ngOnChanges(changes: SimpleChanges): void;
52
+ /**
53
+ * Check if the config change is only a data update
54
+ */
55
+ private isDataOnlyUpdate;
56
+ /**
57
+ * Update only the data without triggering full grid re-initialization
58
+ * This prevents the search input and other UI state from being reset
59
+ */
60
+ private updateDataOnly;
61
+ private mergeConfigWithDefaults;
62
+ private initializeGrid;
63
+ /**
64
+ * Get the unique identifier for an item
65
+ */
66
+ private getItemId;
67
+ /**
68
+ * Get the order value for an item from the config
69
+ */
70
+ private getItemOrder;
71
+ /**
72
+ * Initialize the original order for drag and drop
73
+ */
74
+ private initializeOriginalOrder;
75
+ /**
76
+ * Refresh order tracking with current data (called when data updates)
77
+ */
78
+ private refreshOrderTracking;
79
+ private applyFilters;
80
+ /**
81
+ * Transform flat data to tree structure based on foreign key relationships
82
+ */
83
+ private transformToTree;
84
+ /**
85
+ * Recursively calculate item level in hierarchy for unlimited depth support
86
+ */
87
+ private calculateItemLevel;
88
+ /**
89
+ * Flatten tree structure for display, respecting expansion state with unlimited nesting
90
+ */
91
+ private flattenTreeForDisplay;
92
+ /**
93
+ * Toggle expand/collapse state of a tree item with unlimited nesting support
94
+ */
95
+ private toggleTreeExpand;
96
+ private updatePaginationState;
97
+ onPageChange(page: number | string): void;
98
+ onPageSizeChange(): void;
99
+ updatePageSize(value: string | number): void;
100
+ previousPage(): void;
101
+ nextPage(): void;
102
+ onJumpToPage(): void;
103
+ getEnhancedPageNumbers(): (number | string)[];
104
+ updateSearchQuery(value: inputType): void;
105
+ onSearch(): void;
106
+ onRefresh(): void;
107
+ setRefreshing(isRefreshing: boolean): void;
108
+ clearPageChangeLoading(): void;
109
+ /**
110
+ * Check if tree view is enabled
111
+ */
112
+ isTreeEnabled(): boolean;
113
+ /**
114
+ * Get tree configuration
115
+ */
116
+ getTreeConfig(): import("./data-grid.types").GridTreeConfig | undefined;
117
+ /**
118
+ * Check if an item has children
119
+ */
120
+ hasChildren(item: T): boolean;
121
+ /**
122
+ * Get item level in tree
123
+ */
124
+ getItemLevel(item: T): number;
125
+ /**
126
+ * Check if item is expanded
127
+ */
128
+ isItemExpanded(item: T): boolean;
129
+ /**
130
+ * Get tree indent style
131
+ */
132
+ getTreeIndentStyle(item: T): string;
133
+ /**
134
+ * Get tree level background class for visual distinction
135
+ */
136
+ getTreeLevelClass(item: T): string;
137
+ /**
138
+ * Check if drag and drop is enabled
139
+ */
140
+ isDragDropEnabled(): boolean;
141
+ /**
142
+ * Get drag and drop configuration
143
+ */
144
+ getDragDropConfig(): import("./data-grid.types").GridDragDropConfig | undefined;
145
+ /**
146
+ * Handle drag start event
147
+ */
148
+ onDragStart(event: DragEvent, item: T, index: number): void;
149
+ /**
150
+ * Handle drag over event
151
+ */
152
+ onDragOver(event: DragEvent): void;
153
+ /**
154
+ * Handle drag leave event
155
+ */
156
+ onDragLeave(event: DragEvent): void;
157
+ /**
158
+ * Handle drop event
159
+ */
160
+ onDrop(event: DragEvent, targetItem: T, targetIndex: number): void;
161
+ /**
162
+ * Handle drag end event
163
+ */
164
+ onDragEnd(event: DragEvent): void;
165
+ /**
166
+ * Calculate new order after reordering
167
+ */
168
+ private getNewOrder;
169
+ /**
170
+ * Get the current order number for a specific item
171
+ */
172
+ getCurrentOrderNumber(item: T): number;
173
+ /**
174
+ * Update the row order map with new positions after reordering
175
+ */
176
+ private updateRowOrderMap;
177
+ /**
178
+ * Check if any row has changed position by comparing old vs new positions
179
+ */
180
+ private checkIfOrderChanged;
181
+ /**
182
+ * Reset the row order map to original positions (for reset action)
183
+ */
184
+ private resetRowOrderMap;
185
+ /**
186
+ * Update the row order map baseline to current positions (for save action)
187
+ */
188
+ private updateRowOrderMapBaseline;
189
+ /**
190
+ * Get the current order array from the row order map
191
+ */
192
+ private getCurrentOrderFromMap;
193
+ /**
194
+ * Update local data order for visual reordering (LOCAL ONLY)
195
+ */
196
+ private updateLocalDataOrder;
197
+ /**
198
+ * Check if the current order has changed from the initial order
199
+ */
200
+ private checkOrderChanged;
201
+ onRowClick(item: T): void;
202
+ onActionClick(item: T, action: GridAction): void;
203
+ private emitEvent;
204
+ /**
205
+ * Get nested value from an object
206
+ * @param obj - The object to get the nested value from
207
+ * @param path - The path to the nested value (e.g., 'contact.email')
208
+ * @returns The nested value or undefined if not found
209
+ * @example
210
+ * const obj = { contact: { email: 'test@example.com' } };
211
+ * const value = getNestedValue(obj, 'contact.email');
212
+ * // value === 'test@example.com'
213
+ */
214
+ getNestedValue(obj: T, path: string): unknown;
215
+ formatValue(value: unknown, column: GridColumn): string;
216
+ private formatDate;
217
+ private formatCurrency;
218
+ private formatPercentage;
219
+ renderCustomCell(value: unknown, row: T, column: GridColumn): string;
220
+ isTemplateRenderer(rendererKey: string): boolean;
221
+ isStringRenderer(rendererKey: string): boolean;
222
+ getTemplateRenderer(rendererKey: string): TemplateRenderer<T> | null;
223
+ getStringRenderer(rendererKey: string): StringRenderer<T> | null;
224
+ getTemplateContext(value: unknown, row: T, column: GridColumn): TemplateContext<T>;
225
+ getColumnWidthClass(width?: ColumnWidth): string;
226
+ getColumnMaxWidthClass(width?: ColumnWidth): string;
227
+ getStatusClass(value: unknown, statusConfig?: StatusConfig): string;
228
+ getStatusText(value: unknown, statusConfig?: StatusConfig): string;
229
+ getItemRangeText(): string;
230
+ getPageSizeOptions(): {
231
+ value: number;
232
+ label: string;
233
+ }[];
234
+ trackByFn(index: number, item: T): unknown;
235
+ getSkeletonArray(): number[];
236
+ get displayedData(): T[];
237
+ get columns(): GridColumn[];
238
+ get paginationConfig(): import("./data-grid.types").GridPaginationConfig;
239
+ get searchConfig(): import("./data-grid.types").GridSearchConfig;
240
+ get loadingConfig(): import("./data-grid.types").GridLoadingConfig;
241
+ get scrollConfig(): import("./data-grid.types").GridScrollConfig | undefined;
242
+ static ɵfac: i0.ɵɵFactoryDeclaration<CideEleDataGridComponent<any>, never>;
243
+ static ɵcmp: i0.ɵɵComponentDeclaration<CideEleDataGridComponent<any>, "cide-ele-data-grid", never, { "config": { "alias": "config"; "required": false; }; "customRenderers": { "alias": "customRenderers"; "required": false; }; "templateRenderers": { "alias": "templateRenderers"; "required": false; }; "customFormatters": { "alias": "customFormatters"; "required": false; }; "actionHandlers": { "alias": "actionHandlers"; "required": false; }; "serverSidePagination": { "alias": "serverSidePagination"; "required": false; }; "totalServerItems": { "alias": "totalServerItems"; "required": false; }; "currentServerPage": { "alias": "currentServerPage"; "required": false; }; "currentServerPageSize": { "alias": "currentServerPageSize"; "required": false; }; "dragDropEnabled": { "alias": "dragDropEnabled"; "required": false; }; }, { "gridEvent": "gridEvent"; }, never, never, true, never>;
244
+ }
@@ -0,0 +1,146 @@
1
+ export type ColumnType = 'text' | 'number' | 'date' | 'boolean' | 'status' | 'actions' | 'custom' | 'order';
2
+ export type ColumnWidth = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'auto' | string;
3
+ export type TextAlign = 'left' | 'center' | 'right';
4
+ export interface GridColumn {
5
+ key: string;
6
+ header: string;
7
+ type: ColumnType;
8
+ width?: ColumnWidth;
9
+ sortable?: boolean;
10
+ searchable?: boolean;
11
+ truncate?: boolean;
12
+ align?: TextAlign;
13
+ renderer?: string;
14
+ valueGetter?: string;
15
+ formatter?: GridFormatter;
16
+ actions?: GridAction[];
17
+ statusConfig?: StatusConfig;
18
+ }
19
+ export interface GridFormatter {
20
+ type: 'date' | 'currency' | 'percentage' | 'custom';
21
+ format?: string;
22
+ customFunction?: string;
23
+ }
24
+ export interface StatusConfig {
25
+ activeValue: string | number | boolean;
26
+ activeLabel: string;
27
+ inactiveLabel: string;
28
+ activeClass: string;
29
+ inactiveClass: string;
30
+ }
31
+ export interface GridAction {
32
+ key: string;
33
+ label: string;
34
+ icon: string;
35
+ variant: 'ghost' | 'primary' | 'outline' | 'danger';
36
+ tooltip?: string;
37
+ condition?: string;
38
+ onClick: string;
39
+ }
40
+ export interface GridPaginationConfig {
41
+ enabled: boolean;
42
+ pageSize: number;
43
+ pageSizeOptions: number[];
44
+ showQuickJump: boolean;
45
+ showPageInfo: boolean;
46
+ showRefresh: boolean;
47
+ }
48
+ export interface GridSearchConfig {
49
+ enabled: boolean;
50
+ placeholder: string;
51
+ searchableColumns: string[];
52
+ debounceMs?: number;
53
+ }
54
+ export interface GridExportConfig {
55
+ enabled: boolean;
56
+ formats: ('csv' | 'excel' | 'pdf')[];
57
+ filename?: string;
58
+ }
59
+ export interface GridLoadingConfig {
60
+ useDefer: boolean;
61
+ skeletonRows: number;
62
+ showOverlay: boolean;
63
+ }
64
+ export interface GridScrollConfig {
65
+ enabled: boolean;
66
+ maxHeight?: string;
67
+ minHeight?: string;
68
+ stickyHeader?: boolean;
69
+ virtualScroll?: boolean;
70
+ rowHeight?: number;
71
+ }
72
+ export interface GridTreeConfig {
73
+ enabled: boolean;
74
+ primaryKey: string;
75
+ foreignKey: string;
76
+ childrenKey?: string;
77
+ levelKey?: string;
78
+ expandedKey?: string;
79
+ hasChildrenKey?: string;
80
+ }
81
+ export interface GridDragDropConfig {
82
+ enabled: boolean;
83
+ dragHandle?: string;
84
+ orderField?: string;
85
+ dragClass?: string;
86
+ dropClass?: string;
87
+ }
88
+ export interface GridConfiguration<T = Record<string, unknown>> {
89
+ id: string;
90
+ title?: string;
91
+ subtitle?: string;
92
+ columns: GridColumn[];
93
+ data: T[];
94
+ trackBy?: string;
95
+ pagination: GridPaginationConfig;
96
+ search: GridSearchConfig;
97
+ export?: GridExportConfig;
98
+ loading: GridLoadingConfig;
99
+ scroll?: GridScrollConfig;
100
+ tree?: GridTreeConfig;
101
+ dragDrop?: GridDragDropConfig;
102
+ responsive: boolean;
103
+ striped?: boolean;
104
+ bordered?: boolean;
105
+ compact?: boolean;
106
+ fullHeight?: boolean;
107
+ onRowClick?: string;
108
+ onSort?: string;
109
+ onPageChange?: string;
110
+ onSearch?: string;
111
+ onRefresh?: string;
112
+ onExport?: string;
113
+ onRowReorder?: string;
114
+ tableClass?: string;
115
+ headerClass?: string;
116
+ rowClass?: string;
117
+ cellClass?: string;
118
+ }
119
+ export interface GridState<T = Record<string, unknown>> {
120
+ currentPage: number;
121
+ pageSize: number;
122
+ totalItems: number;
123
+ totalPages: number;
124
+ searchQuery: string;
125
+ sortColumn?: string;
126
+ sortDirection?: 'asc' | 'desc';
127
+ loading: boolean;
128
+ isRefreshing: boolean;
129
+ selectedRows: T[];
130
+ }
131
+ export interface GridEvent<T = Record<string, unknown>> {
132
+ type: 'rowClick' | 'sort' | 'pageChange' | 'search' | 'refresh' | 'export' | 'action' | 'rowReorder';
133
+ data: T | T[] | string | number | null | {
134
+ sourceItem: T;
135
+ sourceIndex: number;
136
+ targetItem: T;
137
+ targetIndex: number;
138
+ newOrder: T[];
139
+ };
140
+ column?: GridColumn;
141
+ action?: GridAction;
142
+ }
143
+ export declare const DEFAULT_GRID_CONFIG: Partial<GridConfiguration>;
144
+ export type GridEventHandler<T = Record<string, unknown>> = (event: GridEvent<T>) => void;
145
+ export type GridCustomRenderer<T = Record<string, unknown>> = (value: unknown, row: T, column: GridColumn) => string;
146
+ export type GridCustomFormatter = (value: unknown, format?: string) => string;
@@ -0,0 +1,75 @@
1
+ import { EventEmitter, TemplateRef, ElementRef, OnInit, OnDestroy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export interface DropdownItem {
4
+ id: string;
5
+ label: string;
6
+ icon?: string;
7
+ iconColor?: string;
8
+ textColor?: string;
9
+ hoverBgColor?: string;
10
+ disabled?: boolean;
11
+ divider?: boolean;
12
+ }
13
+ export interface DropdownConfig {
14
+ triggerIcon?: string;
15
+ triggerSize?: 'xs' | 'sm' | 'md' | 'lg';
16
+ triggerColor?: string;
17
+ triggerHoverColor?: string;
18
+ triggerHoverBgColor?: string;
19
+ menuWidth?: string;
20
+ menuPosition?: 'left' | 'right' | 'auto';
21
+ showArrow?: boolean;
22
+ forcePosition?: 'top' | 'bottom' | 'left' | 'right';
23
+ offsetX?: number;
24
+ offsetY?: number;
25
+ }
26
+ export interface DropdownPosition {
27
+ vertical: 'top' | 'bottom';
28
+ horizontal: 'left' | 'right';
29
+ spaceAvailable: {
30
+ top: number;
31
+ bottom: number;
32
+ left: number;
33
+ right: number;
34
+ };
35
+ }
36
+ export declare class CideEleDropdownComponent implements OnInit, OnDestroy {
37
+ private destroyRef;
38
+ private dropdownManager;
39
+ private dropdownId;
40
+ dropdownContainer: import("@angular/core").Signal<ElementRef<any>>;
41
+ dropdownMenu: import("@angular/core").Signal<ElementRef<any> | undefined>;
42
+ set items(value: DropdownItem[]);
43
+ get items(): DropdownItem[];
44
+ private _items;
45
+ config: DropdownConfig;
46
+ triggerTemplate?: TemplateRef<{
47
+ $implicit: boolean;
48
+ }>;
49
+ menuTemplate?: TemplateRef<{
50
+ $implicit: DropdownItem[];
51
+ }>;
52
+ itemClick: EventEmitter<DropdownItem>;
53
+ dropdownToggle: EventEmitter<boolean>;
54
+ isOpen: import("@angular/core").WritableSignal<boolean>;
55
+ currentPosition: import("@angular/core").WritableSignal<DropdownPosition>;
56
+ ngOnInit(): void;
57
+ ngOnDestroy(): void;
58
+ getTriggerClasses(): string;
59
+ getTriggerIconClasses(): string;
60
+ getMenuClasses(): string;
61
+ getMenuStyles(): string;
62
+ calculatePosition(): DropdownPosition;
63
+ private getMenuWidth;
64
+ private getEstimatedMenuHeight;
65
+ toggleDropdown(event: Event): void;
66
+ private openDropdown;
67
+ testMouseDown(item: DropdownItem): void;
68
+ onItemClick(item: DropdownItem, event: Event): void;
69
+ closeDropdown(): void;
70
+ getItemClasses(item: DropdownItem): string;
71
+ onWindowResize(): void;
72
+ onWindowScroll(): void;
73
+ static ɵfac: i0.ɵɵFactoryDeclaration<CideEleDropdownComponent, never>;
74
+ static ɵcmp: i0.ɵɵComponentDeclaration<CideEleDropdownComponent, "cide-ele-dropdown", never, { "items": { "alias": "items"; "required": false; }; "config": { "alias": "config"; "required": false; }; "triggerTemplate": { "alias": "triggerTemplate"; "required": false; }; "menuTemplate": { "alias": "menuTemplate"; "required": false; }; }, { "itemClick": "itemClick"; "dropdownToggle": "dropdownToggle"; }, never, never, true, never>;
75
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class CideEleGlobalNotificationsComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<CideEleGlobalNotificationsComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<CideEleGlobalNotificationsComponent, "cide-ele-global-notifications", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,116 @@
1
+ import { EventEmitter, OnInit, ElementRef } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export interface JsonEditorConfig {
5
+ /** Enable syntax highlighting */
6
+ syntaxHighlighting?: boolean;
7
+ /** Enable line numbers */
8
+ showLineNumbers?: boolean;
9
+ /** Enable auto-formatting */
10
+ autoFormat?: boolean;
11
+ /** Enable validation */
12
+ validateOnChange?: boolean;
13
+ /** Theme for the editor */
14
+ theme?: 'light' | 'dark';
15
+ /** Minimum height in pixels */
16
+ minHeight?: number;
17
+ /** Maximum height in pixels */
18
+ maxHeight?: number;
19
+ /** Placeholder text */
20
+ placeholder?: string;
21
+ /** Read-only mode */
22
+ readOnly?: boolean;
23
+ /** Show error messages */
24
+ showErrors?: boolean;
25
+ }
26
+ export interface JsonEditorError {
27
+ line: number;
28
+ column: number;
29
+ message: string;
30
+ type: 'syntax' | 'validation';
31
+ }
32
+ export declare class CideEleJsonEditorComponent implements OnInit, ControlValueAccessor {
33
+ label?: string;
34
+ helperText?: string;
35
+ required: boolean;
36
+ disabled: import("@angular/core").WritableSignal<boolean>;
37
+ showCharacterCount: boolean;
38
+ config: JsonEditorConfig;
39
+ configSignal: import("@angular/core").WritableSignal<JsonEditorConfig>;
40
+ valueChange: EventEmitter<string>;
41
+ objectChange: EventEmitter<object | null>;
42
+ errorsChange: EventEmitter<JsonEditorError[]>;
43
+ validChange: EventEmitter<boolean>;
44
+ jsonTextarea: import("@angular/core").Signal<ElementRef<HTMLTextAreaElement>>;
45
+ private destroyRef;
46
+ jsonString: import("@angular/core").WritableSignal<string>;
47
+ jsonObject: import("@angular/core").WritableSignal<object | null>;
48
+ errors: import("@angular/core").WritableSignal<JsonEditorError[]>;
49
+ editorId: string;
50
+ hasErrors: import("@angular/core").Signal<boolean>;
51
+ isValid: import("@angular/core").Signal<boolean>;
52
+ lineNumbers: import("@angular/core").Signal<number[]>;
53
+ containerClass: import("@angular/core").Signal<string>;
54
+ private defaultConfig;
55
+ ngOnInit(): void;
56
+ /**
57
+ * Handle input changes
58
+ */
59
+ onInput(event: Event): void;
60
+ /**
61
+ * Handle blur event
62
+ */
63
+ onBlur(): void;
64
+ /**
65
+ * Parse JSON string and emit object
66
+ */
67
+ private parseJson;
68
+ /**
69
+ * Validate JSON and update errors
70
+ */
71
+ private validateJson;
72
+ /**
73
+ * Format JSON with proper indentation
74
+ */
75
+ formatJson(): void;
76
+ /**
77
+ * Check if there's an error on a specific line
78
+ */
79
+ hasErrorOnLine(line: number): boolean;
80
+ /**
81
+ * Get error ID for accessibility
82
+ */
83
+ errorId(): string;
84
+ /**
85
+ * Focus the editor
86
+ */
87
+ focus(): void;
88
+ /**
89
+ * Clear the editor
90
+ */
91
+ clear(): void;
92
+ /**
93
+ * Get current JSON object
94
+ */
95
+ getValue(): object | null;
96
+ /**
97
+ * Get current JSON string
98
+ */
99
+ getStringValue(): string;
100
+ /**
101
+ * Check if JSON is valid
102
+ */
103
+ isValidJson(): boolean;
104
+ /**
105
+ * Get validation errors
106
+ */
107
+ getErrors(): JsonEditorError[];
108
+ writeValue(value: string | object | null | undefined): void;
109
+ registerOnChange(fn: (value: string) => void): void;
110
+ registerOnTouched(fn: () => void): void;
111
+ setDisabledState(isDisabled: boolean): void;
112
+ private onChange;
113
+ private onTouched;
114
+ static ɵfac: i0.ɵɵFactoryDeclaration<CideEleJsonEditorComponent, never>;
115
+ static ɵcmp: i0.ɵɵComponentDeclaration<CideEleJsonEditorComponent, "cide-ele-json-editor", never, { "label": { "alias": "label"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "showCharacterCount": { "alias": "showCharacterCount"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "valueChange": "valueChange"; "objectChange": "objectChange"; "errorsChange": "errorsChange"; "validChange": "validChange"; }, never, never, true, never>;
116
+ }
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class CideEleSkeletonLoaderComponent {
3
+ width: string;
4
+ height: string;
5
+ borderRadius: string;
6
+ count: number;
7
+ circle: boolean;
8
+ animation: 'pulse' | 'wave' | 'none';
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<CideEleSkeletonLoaderComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<CideEleSkeletonLoaderComponent, "cide-ele-skeleton-loader", never, { "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "borderRadius": { "alias": "borderRadius"; "required": false; }; "count": { "alias": "count"; "required": false; }; "circle": { "alias": "circle"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; }, {}, never, never, true, never>;
11
+ }
@@ -0,0 +1,13 @@
1
+ import { NotificationItem } from '../../services/notification.service';
2
+ import * as i0 from "@angular/core";
3
+ export declare class CideEleToastNotificationComponent {
4
+ private notificationService;
5
+ activeNotifications: import("@angular/core").Signal<NotificationItem[]>;
6
+ getToastClass(notification: NotificationItem): string;
7
+ getIconClass(type: string): string;
8
+ removeNotification(id: string): void;
9
+ executeUndo(id: string): void;
10
+ trackByNotification(index: number, notification: NotificationItem): string;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<CideEleToastNotificationComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<CideEleToastNotificationComponent, "cide-ele-toast-notification", never, {}, {}, never, never, true, never>;
13
+ }