cloud-ide-element 1.1.2 → 1.1.3

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.
package/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { PipeTransform, OnChanges, OnInit, OnDestroy, EventEmitter, TemplateRef, SimpleChanges, Renderer2, ElementRef, AfterContentInit, QueryList, ViewContainerRef, Signal, AfterViewInit, Type, Injector, ComponentRef } from '@angular/core';
2
+ import { PipeTransform, OnChanges, OnInit, OnDestroy, EventEmitter, TemplateRef, SimpleChanges, ElementRef, AfterContentInit, QueryList, ViewContainerRef, Renderer2, InjectionToken, Signal, AfterViewInit, Type, Injector, ComponentRef } from '@angular/core';
3
3
  import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors, FormGroup } from '@angular/forms';
4
- import { elementStyleType, labelPlacementType, labelDirType, autocapitalizeType, autocompleteType, controlType, inputType, themeSize, spinnerType, iconType, selectSearchType, ICoreSype, GetElementDataRequest, fileManagerListByGroupIdControllerResponse } from 'cloud-ide-lms-model';
5
- import { Router, NavigationExtras } from '@angular/router';
6
- import { BehaviorSubject, Observable } from 'rxjs';
4
+ import { elementStyleType, labelPlacementType, labelDirType, autocapitalizeType, autocompleteType, controlType, inputType, themeSize, selectSearchType, ICoreSype, GetElementDataRequest, iconType, fileManagerListByGroupIdControllerResponse } from 'cloud-ide-lms-model';
7
5
  import * as cloud_ide_element from 'cloud-ide-element';
6
+ import { BehaviorSubject, Observable } from 'rxjs';
7
+ import { Router, NavigationExtras } from '@angular/router';
8
8
  import { HttpClient, HttpEvent } from '@angular/common/http';
9
9
 
10
10
  declare class CapitalizePipe implements PipeTransform {
@@ -273,114 +273,6 @@ declare class CideInputComponent implements ControlValueAccessor, Validator, OnC
273
273
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideInputComponent, "cide-ele-input", never, { "fill": { "alias": "fill"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelHide": { "alias": "labelHide"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "clearInput": { "alias": "clearInput"; "required": false; }; "labelPlacement": { "alias": "labelPlacement"; "required": false; }; "labelDir": { "alias": "labelDir"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "leadingIcon": { "alias": "leadingIcon"; "required": false; }; "trailingIcon": { "alias": "trailingIcon"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "helperTextCollapse": { "alias": "helperTextCollapse"; "required": false; }; "hideHelperAndErrorText": { "alias": "hideHelperAndErrorText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "required": { "alias": "required"; "required": false; }; "autocapitalize": { "alias": "autocapitalize"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "type": { "alias": "type"; "required": false; }; "width": { "alias": "width"; "required": false; }; "id": { "alias": "id"; "required": false; }; "ngModel": { "alias": "ngModel"; "required": false; }; "option": { "alias": "option"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "ngModelChange": "ngModelChange"; }, never, never, true, never>;
274
274
  }
275
275
 
276
- type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'text' | 'link' | 'success' | 'danger' | 'warning' | 'info' | 'ghost';
277
- type ButtonSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
278
- type ButtonType = 'button' | 'submit' | 'reset';
279
- type ButtonShape = 'default' | 'rounded' | 'pill' | 'square';
280
- type ButtonElevation = 'none' | 'low' | 'medium' | 'high';
281
- /**
282
- * Advanced Angular button component that provides a comprehensive button implementation
283
- * with loading state, styling variants, animations, tooltips, and other features.
284
- *
285
- * This component uses proper Angular templating to avoid hydration issues (NG0500).
286
- */
287
- declare class CideEleButtonComponent implements OnInit, OnChanges, OnDestroy {
288
- private elementService;
289
- private router;
290
- private renderer;
291
- private elementRef;
292
- private destroy$;
293
- private clickCount;
294
- private clickDebouncer$;
295
- constructor(elementService: CideElementsService, router: Router, renderer: Renderer2, elementRef: ElementRef);
296
- /**
297
- * @description Label of button like Submit, Update, Add, etc.
298
- * Note: it is only used in case you did not set label between tags (via ng-content)
299
- */
300
- label: string;
301
- /** @description Button style variant */
302
- variant: ButtonVariant;
303
- /** @description Button size */
304
- size: ButtonSize;
305
- /** @description Button HTML type attribute */
306
- type: ButtonType;
307
- /** @description Button shape */
308
- shape: ButtonShape;
309
- /** @description Button shadow elevation */
310
- elevation: ButtonElevation;
311
- /** @description Button disabled state */
312
- disabled: boolean | null;
313
- /** @description Unique ID of control, used to differentiate elements */
314
- id: string;
315
- /** @description Enables loading state with spinner */
316
- loading: boolean;
317
- /** @description Makes button take full width of container */
318
- fullWidth: boolean;
319
- /** @description Icon to display on the left side of the button */
320
- leftIcon: string;
321
- /** @description Icon to display on the right side of the button */
322
- rightIcon: string;
323
- /** @description Additional CSS classes to apply */
324
- customClass: string;
325
- /** @description Tooltip text to display on hover */
326
- tooltip: string;
327
- /** @description Aria label for accessibility */
328
- ariaLabel: string;
329
- /** @description Test ID for automated testing */
330
- testId: string;
331
- /** @description Route to navigate to when clicked (for link buttons) */
332
- routerLink: string | unknown[];
333
- /** @description Router navigation extras */
334
- routerExtras: NavigationExtras;
335
- /** @description Prevent multiple rapid clicks (debounce) */
336
- preventDoubleClick: boolean;
337
- /** @description Animation on click */
338
- animated: boolean;
339
- /**
340
- * @description Click event of button
341
- */
342
- btnClick: EventEmitter<Event>;
343
- /**
344
- * @description Double click event
345
- */
346
- doubleClick: EventEmitter<Event>;
347
- onClick(event: Event): void;
348
- private handleClick;
349
- private addClickAnimation;
350
- ngOnInit(): void;
351
- ngOnChanges(changes: SimpleChanges): void;
352
- ngOnDestroy(): void;
353
- getControlData(): Promise<void>;
354
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleButtonComponent, never>;
355
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleButtonComponent, "button[cideEleButton], a[cideEleButton]", never, { "label": { "alias": "label"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "elevation": { "alias": "elevation"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "id": { "alias": "id"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "leftIcon": { "alias": "leftIcon"; "required": false; }; "rightIcon": { "alias": "rightIcon"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "testId": { "alias": "testId"; "required": false; }; "routerLink": { "alias": "routerLink"; "required": false; }; "routerExtras": { "alias": "routerExtras"; "required": false; }; "preventDoubleClick": { "alias": "preventDoubleClick"; "required": false; }; "animated": { "alias": "animated"; "required": false; }; }, { "btnClick": "btnClick"; "doubleClick": "doubleClick"; }, never, ["*"], true, never>;
356
- }
357
-
358
- declare class CideSpinnerComponent {
359
- /**
360
- * @description
361
- * Holds the size of the component like Small, Extra small, Large
362
- * by Default it takes small size
363
- * or the size set by the project setup service
364
- * or it will beset for individual component
365
- *
366
- * Size Appled
367
- * Component level then setup service then finally default md
368
- * Options: "xs" | "sm" | "md" | "lg" | "xl" | "xxl"
369
- */
370
- size: themeSize;
371
- type: spinnerType;
372
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideSpinnerComponent, never>;
373
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideSpinnerComponent, "cide-ele-spinner", never, { "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, never, true, never>;
374
- }
375
-
376
- declare class CideIconComponent {
377
- size: themeSize;
378
- type: iconType;
379
- toolTip: string;
380
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideIconComponent, never>;
381
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideIconComponent, "cide-ele-icon", never, { "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "toolTip": { "alias": "toolTip"; "required": false; }; }, {}, never, ["*"], true, never>;
382
- }
383
-
384
276
  interface SelectOption {
385
277
  value: string | number;
386
278
  label: string;
@@ -604,7 +496,7 @@ declare class CideEleFileInputComponent implements ControlValueAccessor, OnDestr
604
496
  readonly id: _angular_core.WritableSignal<string>;
605
497
  readonly isUploading: _angular_core.WritableSignal<boolean>;
606
498
  readonly uploadProgress: _angular_core.WritableSignal<number>;
607
- readonly uploadStatus: _angular_core.WritableSignal<"error" | "start" | "success" | "uploading" | "idle">;
499
+ readonly uploadStatus: _angular_core.WritableSignal<"success" | "error" | "start" | "uploading" | "idle">;
608
500
  readonly files: _angular_core.WritableSignal<FileList | null>;
609
501
  readonly fileNames: _angular_core.WritableSignal<string[]>;
610
502
  readonly previewUrls: _angular_core.WritableSignal<string[]>;
@@ -731,7 +623,7 @@ declare class CideEleFileInputComponent implements ControlValueAccessor, OnDestr
731
623
  multiple: boolean;
732
624
  showPreview: boolean;
733
625
  autoUpload: boolean;
734
- uploadStatus: "error" | "start" | "success" | "uploading" | "idle";
626
+ uploadStatus: "success" | "error" | "start" | "uploading" | "idle";
735
627
  isUploading: boolean;
736
628
  uploadProgress: number;
737
629
  files: {
@@ -994,103 +886,99 @@ declare class CideTextareaComponent implements ControlValueAccessor, Validator,
994
886
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideTextareaComponent, "cide-ele-textarea", never, { "label": { "alias": "label"; "required": false; }; "labelHide": { "alias": "labelHide"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "id": { "alias": "id"; "required": false; }; "ngModel": { "alias": "ngModel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "fill": { "alias": "fill"; "required": false; }; "labelPlacement": { "alias": "labelPlacement"; "required": false; }; "labelDir": { "alias": "labelDir"; "required": false; }; "leadingIcon": { "alias": "leadingIcon"; "required": false; }; "trailingIcon": { "alias": "trailingIcon"; "required": false; }; "clearInput": { "alias": "clearInput"; "required": false; }; }, { "ngModelChange": "ngModelChange"; }, never, never, true, never>;
995
887
  }
996
888
 
997
- interface KeyboardShortcut {
889
+ interface BreadcrumbItem {
998
890
  id: string;
999
- key: string;
1000
- ctrlKey?: boolean;
1001
- altKey?: boolean;
1002
- shiftKey?: boolean;
1003
- metaKey?: boolean;
1004
- description?: string;
1005
- action: () => void;
1006
- preventDefault?: boolean;
1007
- stopPropagation?: boolean;
891
+ label: string;
892
+ icon?: string;
893
+ url?: string;
894
+ disabled?: boolean;
895
+ type?: 'root' | 'category' | 'entity' | 'custom';
896
+ metadata?: any;
1008
897
  }
1009
- interface ShortcutOverride {
1010
- shortcutId: string;
1011
- newKey: string;
1012
- newCtrlKey?: boolean;
1013
- newAltKey?: boolean;
1014
- newShiftKey?: boolean;
1015
- newMetaKey?: boolean;
898
+ interface BreadcrumbDropdownOption {
899
+ id: string;
900
+ label: string;
901
+ icon?: string;
902
+ disabled?: boolean;
903
+ action?: () => void;
1016
904
  }
1017
- declare class KeyboardShortcutService implements OnDestroy {
1018
- private shortcuts;
1019
- private overrides;
1020
- private keydownListener?;
1021
- constructor();
905
+ interface BreadcrumbSeparator {
906
+ type: 'chevron' | 'slash' | 'arrow' | 'dot' | 'custom';
907
+ icon?: string;
908
+ text?: string;
909
+ }
910
+ type BreadcrumbStyle = 'modern' | 'classic' | 'minimal' | 'hierarchical';
911
+ interface BreadcrumbConfig {
912
+ style: BreadcrumbStyle;
913
+ separator: BreadcrumbSeparator;
914
+ showHomeIcon: boolean;
915
+ homeIcon: string;
916
+ maxItems: number;
917
+ showDropdownOnOverflow: boolean;
918
+ dropdownOptions: BreadcrumbDropdownOption[];
919
+ clickableItems: boolean;
920
+ showTooltips: boolean;
921
+ responsive: boolean;
922
+ compact: boolean;
923
+ animated: boolean;
924
+ }
925
+ declare class CideEleBreadcrumbComponent implements OnInit, OnDestroy {
926
+ items: _angular_core.InputSignal<BreadcrumbItem[]>;
927
+ style: _angular_core.InputSignal<BreadcrumbStyle>;
928
+ separator: _angular_core.InputSignal<BreadcrumbSeparator>;
929
+ showHomeIcon: _angular_core.InputSignal<boolean>;
930
+ homeIcon: _angular_core.InputSignal<string>;
931
+ maxItems: _angular_core.InputSignal<number>;
932
+ showDropdownOnOverflow: _angular_core.InputSignal<boolean>;
933
+ dropdownOptions: _angular_core.InputSignal<BreadcrumbDropdownOption[]>;
934
+ clickableItems: _angular_core.InputSignal<boolean>;
935
+ showTooltips: _angular_core.InputSignal<boolean>;
936
+ responsive: _angular_core.InputSignal<boolean>;
937
+ compact: _angular_core.InputSignal<boolean>;
938
+ animated: _angular_core.InputSignal<boolean>;
939
+ loadingInput: _angular_core.InputSignal<boolean>;
940
+ disabled: _angular_core.InputSignal<boolean>;
941
+ contextId: _angular_core.InputSignal<string | undefined>;
942
+ pageCode: _angular_core.InputSignal<string | undefined>;
943
+ itemClick: EventEmitter<BreadcrumbItem>;
944
+ dropdownOptionClick: EventEmitter<BreadcrumbDropdownOption>;
945
+ homeClick: EventEmitter<void>;
946
+ private showDropdown;
947
+ private isOverflowing;
948
+ private visibleItems;
949
+ private hiddenItems;
950
+ private localItems;
951
+ private localLoading;
952
+ showDropdownSignal: _angular_core.Signal<boolean>;
953
+ isOverflowingSignal: _angular_core.Signal<boolean>;
954
+ visibleItemsSignal: _angular_core.Signal<BreadcrumbItem[]>;
955
+ hiddenItemsSignal: _angular_core.Signal<BreadcrumbItem[]>;
956
+ config: _angular_core.Signal<BreadcrumbConfig>;
957
+ effectiveLoading: _angular_core.Signal<boolean>;
958
+ private breadcrumbService;
959
+ private pagePathResolver;
960
+ private cleanupEffect?;
961
+ ngOnInit(): void;
1022
962
  ngOnDestroy(): void;
1023
- /**
1024
- * Register a new keyboard shortcut
1025
- */
1026
- register(shortcut: KeyboardShortcut): void;
1027
- /**
1028
- * Override an existing shortcut with new key combination
1029
- */
1030
- override(shortcutId: string, newKey: string, options?: {
1031
- ctrlKey?: boolean;
1032
- altKey?: boolean;
1033
- shiftKey?: boolean;
1034
- metaKey?: boolean;
1035
- }): void;
1036
- /**
1037
- * Remove a shortcut
1038
- */
1039
- unregister(shortcutId: string): void;
1040
- /**
1041
- * Remove override for a shortcut (restore original key combination)
1042
- */
1043
- removeOverride(shortcutId: string): void;
1044
- /**
1045
- * Get all registered shortcuts
1046
- */
1047
- getAllShortcuts(): KeyboardShortcut[];
1048
- /**
1049
- * Get shortcuts by category or filter
1050
- */
1051
- getShortcuts(filter?: (shortcut: KeyboardShortcut) => boolean): KeyboardShortcut[];
1052
- /**
1053
- * Check if a shortcut is registered
1054
- */
1055
- hasShortcut(shortcutId: string): boolean;
1056
- /**
1057
- * Get shortcut information
1058
- */
1059
- getShortcut(shortcutId: string): KeyboardShortcut | undefined;
1060
- /**
1061
- * Clear all shortcuts
1062
- */
1063
- clearAll(): void;
1064
- /**
1065
- * Set up global keyboard listener
1066
- */
1067
- private setupGlobalListener;
1068
- /**
1069
- * Remove global keyboard listener
1070
- */
1071
- private removeGlobalListener;
1072
- /**
1073
- * Handle keydown events
1074
- */
1075
- private handleKeydown;
1076
- /**
1077
- * Check if event matches shortcut
1078
- */
1079
- private matchesShortcut;
1080
- /**
1081
- * Check if event matches override
1082
- */
1083
- private matchesOverride;
1084
- /**
1085
- * Get human-readable key description
1086
- */
1087
- private getKeyDescription;
1088
- /**
1089
- * Get key description for a shortcut ID
1090
- */
1091
- getKeyDescriptionForShortcut(shortcutId: string): string;
1092
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<KeyboardShortcutService, never>;
1093
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<KeyboardShortcutService>;
963
+ onDocumentClick(event: Event): void;
964
+ private processItems;
965
+ private getConfigForStyle;
966
+ onItemClick(item: BreadcrumbItem): void;
967
+ onHomeClick(): void;
968
+ onDropdownToggle(): void;
969
+ onDropdownOptionClick(option: BreadcrumbDropdownOption): void;
970
+ getItemClasses(item: BreadcrumbItem, isLast?: boolean): string;
971
+ getContainerClasses(): string;
972
+ getSeparatorIcon(): string;
973
+ getTooltipText(item: BreadcrumbItem): string;
974
+ toggleDropdown(): void;
975
+ closeDropdown(): void;
976
+ updateItems(newItems: BreadcrumbItem[]): void;
977
+ addItem(item: BreadcrumbItem): void;
978
+ removeItem(itemId: string): void;
979
+ setLoading(value: boolean): void;
980
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleBreadcrumbComponent, never>;
981
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleBreadcrumbComponent, "cide-ele-breadcrumb", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "showHomeIcon": { "alias": "showHomeIcon"; "required": false; "isSignal": true; }; "homeIcon": { "alias": "homeIcon"; "required": false; "isSignal": true; }; "maxItems": { "alias": "maxItems"; "required": false; "isSignal": true; }; "showDropdownOnOverflow": { "alias": "showDropdownOnOverflow"; "required": false; "isSignal": true; }; "dropdownOptions": { "alias": "dropdownOptions"; "required": false; "isSignal": true; }; "clickableItems": { "alias": "clickableItems"; "required": false; "isSignal": true; }; "showTooltips": { "alias": "showTooltips"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "loadingInput": { "alias": "loadingInput"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "contextId": { "alias": "contextId"; "required": false; "isSignal": true; }; "pageCode": { "alias": "pageCode"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "dropdownOptionClick": "dropdownOptionClick"; "homeClick": "homeClick"; }, never, never, true, never>;
1094
982
  }
1095
983
 
1096
984
  declare class CideElementsService {
@@ -1103,49 +991,6 @@ declare class CideElementsService {
1103
991
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideElementsService>;
1104
992
  }
1105
993
 
1106
- type CideEleResizerDirection = 'horizontal' | 'vertical';
1107
- type CideEleResizerDirectionTo = "right-to-left" | "left-to-right" | "";
1108
- declare class CideEleResizerDirective implements OnInit {
1109
- private el;
1110
- private renderer;
1111
- direction: CideEleResizerDirection;
1112
- to: CideEleResizerDirectionTo;
1113
- prevElementSelector: string;
1114
- nextElementSelector: string;
1115
- parentElementSelector: string;
1116
- minPrevSize: number;
1117
- minNextSize: number;
1118
- usePercentage: boolean;
1119
- resizeStart: EventEmitter<void>;
1120
- resizing: EventEmitter<{
1121
- prevSize: number;
1122
- nextSize: number;
1123
- }>;
1124
- resizeEnd: EventEmitter<{
1125
- prevSize: number;
1126
- nextSize: number;
1127
- }>;
1128
- private isResizing;
1129
- private startPosition;
1130
- private prevElement;
1131
- private nextElement;
1132
- private prevSize;
1133
- private nextSize;
1134
- private containerSize;
1135
- private startPrevSize;
1136
- private startNextSize;
1137
- constructor(el: ElementRef, renderer: Renderer2);
1138
- ngOnInit(): void;
1139
- onMouseDown(event: MouseEvent): void;
1140
- private onMouseMove;
1141
- private onMouseUp;
1142
- private getPrevElement;
1143
- private getNextElement;
1144
- private getSizeProperty;
1145
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleResizerDirective, never>;
1146
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CideEleResizerDirective, "[cideEleResizer]", never, { "direction": { "alias": "direction"; "required": false; }; "to": { "alias": "to"; "required": false; }; "prevElementSelector": { "alias": "prevElementSelector"; "required": false; }; "nextElementSelector": { "alias": "nextElementSelector"; "required": false; }; "parentElementSelector": { "alias": "parentElementSelector"; "required": false; }; "minPrevSize": { "alias": "minPrevSize"; "required": false; }; "minNextSize": { "alias": "minNextSize"; "required": false; }; "usePercentage": { "alias": "usePercentage"; "required": false; }; }, { "resizeStart": "resizeStart"; "resizing": "resizing"; "resizeEnd": "resizeEnd"; }, never, never, true, never>;
1147
- }
1148
-
1149
994
  type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
1150
995
  type TooltipType = 'default' | 'success' | 'warning' | 'error' | 'info' | 'light' | 'dark';
1151
996
  declare class TooltipDirective implements OnInit, OnDestroy {
@@ -1188,716 +1033,221 @@ declare class TooltipDirective implements OnInit, OnDestroy {
1188
1033
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[cideEleTooltip]", never, { "cideEleTooltip": { "alias": "cideEleTooltip"; "required": false; }; "tooltipColor": { "alias": "tooltipColor"; "required": false; }; "tooltipBg": { "alias": "tooltipBg"; "required": false; }; "tooltipPlacement": { "alias": "tooltipPlacement"; "required": false; }; "tooltipType": { "alias": "tooltipType"; "required": false; }; "tooltipDelay": { "alias": "tooltipDelay"; "required": false; }; "tooltipDir": { "alias": "tooltipDir"; "required": false; }; "tooltipShowArrow": { "alias": "tooltipShowArrow"; "required": false; }; "tooltipMultiline": { "alias": "tooltipMultiline"; "required": false; }; "tooltipMaxWidth": { "alias": "tooltipMaxWidth"; "required": false; }; "tooltipInteractive": { "alias": "tooltipInteractive"; "required": false; }; "tooltipClass": { "alias": "tooltipClass"; "required": false; }; }, {}, never, never, true, never>;
1189
1034
  }
1190
1035
 
1036
+ type CideEleResizerDirection = 'horizontal' | 'vertical';
1037
+ type CideEleResizerDirectionTo = "right-to-left" | "left-to-right" | "";
1038
+ declare class CideEleResizerDirective implements OnInit {
1039
+ private el;
1040
+ private renderer;
1041
+ direction: CideEleResizerDirection;
1042
+ to: CideEleResizerDirectionTo;
1043
+ prevElementSelector: string;
1044
+ nextElementSelector: string;
1045
+ parentElementSelector: string;
1046
+ minPrevSize: number;
1047
+ minNextSize: number;
1048
+ usePercentage: boolean;
1049
+ resizeStart: EventEmitter<void>;
1050
+ resizing: EventEmitter<{
1051
+ prevSize: number;
1052
+ nextSize: number;
1053
+ }>;
1054
+ resizeEnd: EventEmitter<{
1055
+ prevSize: number;
1056
+ nextSize: number;
1057
+ }>;
1058
+ private isResizing;
1059
+ private startPosition;
1060
+ private prevElement;
1061
+ private nextElement;
1062
+ private prevSize;
1063
+ private nextSize;
1064
+ private containerSize;
1065
+ private startPrevSize;
1066
+ private startNextSize;
1067
+ constructor(el: ElementRef, renderer: Renderer2);
1068
+ ngOnInit(): void;
1069
+ onMouseDown(event: MouseEvent): void;
1070
+ private onMouseMove;
1071
+ private onMouseUp;
1072
+ private getPrevElement;
1073
+ private getNextElement;
1074
+ private getSizeProperty;
1075
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleResizerDirective, never>;
1076
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CideEleResizerDirective, "[cideEleResizer]", never, { "direction": { "alias": "direction"; "required": false; }; "to": { "alias": "to"; "required": false; }; "prevElementSelector": { "alias": "prevElementSelector"; "required": false; }; "nextElementSelector": { "alias": "nextElementSelector"; "required": false; }; "parentElementSelector": { "alias": "parentElementSelector"; "required": false; }; "minPrevSize": { "alias": "minPrevSize"; "required": false; }; "minNextSize": { "alias": "minNextSize"; "required": false; }; "usePercentage": { "alias": "usePercentage"; "required": false; }; }, { "resizeStart": "resizeStart"; "resizing": "resizing"; "resizeEnd": "resizeEnd"; }, never, never, true, never>;
1077
+ }
1078
+
1079
+ type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'text' | 'link' | 'success' | 'danger' | 'warning' | 'info' | 'ghost';
1080
+ type ButtonSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
1081
+ type ButtonType = 'button' | 'submit' | 'reset';
1082
+ type ButtonShape = 'default' | 'rounded' | 'pill' | 'square';
1083
+ type ButtonElevation = 'none' | 'low' | 'medium' | 'high';
1191
1084
  /**
1192
- * Directive to display images from file manager by ID
1193
- * Usage: <img cideEleFileImage [fileId]="yourFileId" [altText]="'Image'" class="your-css-classes" />
1085
+ * Advanced Angular button component that provides a comprehensive button implementation
1086
+ * with loading state, styling variants, animations, tooltips, and other features.
1087
+ *
1088
+ * This component uses proper Angular templating to avoid hydration issues (NG0500).
1194
1089
  */
1195
- declare class CideEleFileImageDirective implements OnInit, OnDestroy {
1196
- fileId: string | null;
1197
- altText: string;
1198
- private readonly fileManagerService;
1199
- private readonly elementRef;
1200
- private readonly destroyRef;
1090
+ declare class CideEleButtonComponent implements OnInit, OnChanges, OnDestroy {
1091
+ private elementService;
1092
+ private router;
1093
+ private renderer;
1094
+ private elementRef;
1095
+ private destroy$;
1096
+ private clickCount;
1097
+ private clickDebouncer$;
1098
+ constructor(elementService: CideElementsService, router: Router, renderer: Renderer2, elementRef: ElementRef);
1099
+ /**
1100
+ * @description Label of button like Submit, Update, Add, etc.
1101
+ * Note: it is only used in case you did not set label between tags (via ng-content)
1102
+ */
1103
+ label: string;
1104
+ /** @description Button style variant */
1105
+ variant: ButtonVariant;
1106
+ /** @description Button size */
1107
+ size: ButtonSize;
1108
+ /** @description Button HTML type attribute */
1109
+ type: ButtonType;
1110
+ /** @description Button shape */
1111
+ shape: ButtonShape;
1112
+ /** @description Button shadow elevation */
1113
+ elevation: ButtonElevation;
1114
+ /** @description Button disabled state */
1115
+ disabled: boolean | null;
1116
+ /** @description Unique ID of control, used to differentiate elements */
1117
+ id: string;
1118
+ /** @description Enables loading state with spinner */
1119
+ loading: boolean;
1120
+ /** @description Makes button take full width of container */
1121
+ fullWidth: boolean;
1122
+ /** @description Icon to display on the left side of the button */
1123
+ leftIcon: string;
1124
+ /** @description Icon to display on the right side of the button */
1125
+ rightIcon: string;
1126
+ /** @description Additional CSS classes to apply */
1127
+ customClass: string;
1128
+ /** @description Tooltip text to display on hover */
1129
+ tooltip: string;
1130
+ /** @description Aria label for accessibility */
1131
+ ariaLabel: string;
1132
+ /** @description Test ID for automated testing */
1133
+ testId: string;
1134
+ /** @description Route to navigate to when clicked (for link buttons) */
1135
+ routerLink: string | unknown[];
1136
+ /** @description Router navigation extras */
1137
+ routerExtras: NavigationExtras;
1138
+ /** @description Prevent multiple rapid clicks (debounce) */
1139
+ preventDoubleClick: boolean;
1140
+ /** @description Animation on click */
1141
+ animated: boolean;
1142
+ /**
1143
+ * @description Click event of button
1144
+ */
1145
+ btnClick: EventEmitter<Event>;
1146
+ /**
1147
+ * @description Double click event
1148
+ */
1149
+ doubleClick: EventEmitter<Event>;
1150
+ onClick(event: Event): void;
1151
+ private handleClick;
1152
+ private addClickAnimation;
1201
1153
  ngOnInit(): void;
1154
+ ngOnChanges(changes: SimpleChanges): void;
1202
1155
  ngOnDestroy(): void;
1203
- private loadImage;
1204
- private displayImage;
1205
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFileImageDirective, never>;
1206
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CideEleFileImageDirective, "[cideEleFileImage]", never, { "fileId": { "alias": "fileId"; "required": false; }; "altText": { "alias": "altText"; "required": false; }; }, {}, never, never, true, never>;
1156
+ getControlData(): Promise<void>;
1157
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleButtonComponent, never>;
1158
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleButtonComponent, "button[cideEleButton], a[cideEleButton]", never, { "label": { "alias": "label"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "elevation": { "alias": "elevation"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "id": { "alias": "id"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "leftIcon": { "alias": "leftIcon"; "required": false; }; "rightIcon": { "alias": "rightIcon"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "testId": { "alias": "testId"; "required": false; }; "routerLink": { "alias": "routerLink"; "required": false; }; "routerExtras": { "alias": "routerExtras"; "required": false; }; "preventDoubleClick": { "alias": "preventDoubleClick"; "required": false; }; "animated": { "alias": "animated"; "required": false; }; }, { "btnClick": "btnClick"; "doubleClick": "doubleClick"; }, never, ["*"], true, never>;
1207
1159
  }
1208
1160
 
1209
- declare class CideEleSkeletonLoaderComponent {
1210
- width: string;
1211
- height: string;
1212
- borderRadius: string;
1213
- count: number;
1214
- circle: boolean;
1215
- animation: 'pulse' | 'wave' | 'none';
1216
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleSkeletonLoaderComponent, never>;
1217
- static ɵcmp: _angular_core.ɵɵ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>;
1161
+ declare class CideIconComponent {
1162
+ size: themeSize;
1163
+ type: iconType;
1164
+ toolTip: string;
1165
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideIconComponent, never>;
1166
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideIconComponent, "cide-ele-icon", never, { "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "toolTip": { "alias": "toolTip"; "required": false; }; }, {}, never, ["*"], true, never>;
1218
1167
  }
1219
1168
 
1220
- type ColumnType = 'text' | 'number' | 'date' | 'boolean' | 'status' | 'actions' | 'custom' | 'order';
1221
- type ColumnWidth = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'auto' | string;
1222
- type TextAlign = 'left' | 'center' | 'right';
1223
- interface GridColumn {
1224
- key: string;
1225
- header: string;
1226
- type: ColumnType;
1227
- width?: ColumnWidth;
1228
- sortable?: boolean;
1229
- searchable?: boolean;
1230
- truncate?: boolean;
1231
- align?: TextAlign;
1232
- renderer?: string;
1233
- valueGetter?: string;
1234
- formatter?: GridFormatter;
1235
- actions?: GridAction[];
1236
- statusConfig?: StatusConfig;
1237
- }
1238
- interface GridFormatter {
1239
- type: 'date' | 'currency' | 'percentage' | 'custom';
1240
- format?: string;
1241
- customFunction?: string;
1242
- }
1243
- interface StatusConfig {
1244
- activeValue: string | number | boolean;
1245
- activeLabel: string;
1246
- inactiveLabel: string;
1247
- activeClass: string;
1248
- inactiveClass: string;
1169
+ interface NotificationOptions {
1170
+ message: string;
1171
+ type?: 'success' | 'error' | 'warning' | 'info';
1172
+ duration?: number;
1173
+ showUndo?: boolean;
1174
+ undoAction?: () => void;
1175
+ undoText?: string;
1176
+ icon?: string;
1177
+ title?: string;
1178
+ progress?: number;
1179
+ showProgress?: boolean;
1249
1180
  }
1250
- interface GridAction {
1251
- key: string;
1252
- label: string;
1181
+ interface NotificationItem {
1182
+ id: string;
1183
+ message: string;
1184
+ type: 'success' | 'error' | 'warning' | 'info';
1185
+ duration: number;
1186
+ showUndo: boolean;
1187
+ undoAction?: () => void;
1188
+ undoText: string;
1253
1189
  icon: string;
1254
- variant: 'ghost' | 'primary' | 'outline' | 'danger';
1255
- tooltip?: string;
1256
- condition?: string;
1257
- onClick: string;
1258
- }
1259
- interface GridPaginationConfig {
1260
- enabled: boolean;
1261
- pageSize: number;
1262
- pageSizeOptions: number[];
1263
- showQuickJump: boolean;
1264
- showPageInfo: boolean;
1265
- showRefresh: boolean;
1190
+ title?: string;
1191
+ timestamp: number;
1192
+ isVisible: boolean;
1193
+ progress?: number;
1194
+ showProgress?: boolean;
1266
1195
  }
1267
- interface GridSearchConfig {
1268
- enabled: boolean;
1269
- placeholder: string;
1270
- searchableColumns: string[];
1271
- debounceMs?: number;
1272
- }
1273
- interface GridExportConfig {
1274
- enabled: boolean;
1275
- formats: ('csv' | 'excel' | 'pdf')[];
1276
- filename?: string;
1277
- }
1278
- interface GridLoadingConfig {
1279
- useDefer: boolean;
1280
- skeletonRows: number;
1281
- showOverlay: boolean;
1282
- }
1283
- interface GridScrollConfig {
1284
- enabled: boolean;
1285
- maxHeight?: string;
1286
- minHeight?: string;
1287
- stickyHeader?: boolean;
1288
- virtualScroll?: boolean;
1289
- rowHeight?: number;
1290
- }
1291
- interface GridTreeConfig {
1292
- enabled: boolean;
1293
- primaryKey: string;
1294
- foreignKey: string;
1295
- childrenKey?: string;
1296
- levelKey?: string;
1297
- expandedKey?: string;
1298
- hasChildrenKey?: string;
1299
- }
1300
- interface GridDragDropConfig {
1301
- enabled: boolean;
1302
- dragHandle?: string;
1303
- orderField?: string;
1304
- dragClass?: string;
1305
- dropClass?: string;
1306
- }
1307
- interface GridConfiguration<T = Record<string, unknown>> {
1308
- id: string;
1309
- title?: string;
1310
- subtitle?: string;
1311
- columns: GridColumn[];
1312
- data: T[];
1313
- trackBy?: string;
1314
- pagination: GridPaginationConfig;
1315
- search: GridSearchConfig;
1316
- export?: GridExportConfig;
1317
- loading: GridLoadingConfig;
1318
- scroll?: GridScrollConfig;
1319
- tree?: GridTreeConfig;
1320
- dragDrop?: GridDragDropConfig;
1321
- responsive: boolean;
1322
- striped?: boolean;
1323
- bordered?: boolean;
1324
- compact?: boolean;
1325
- fullHeight?: boolean;
1326
- onRowClick?: string;
1327
- onSort?: string;
1328
- onPageChange?: string;
1329
- onSearch?: string;
1330
- onRefresh?: string;
1331
- onExport?: string;
1332
- onRowReorder?: string;
1333
- tableClass?: string;
1334
- headerClass?: string;
1335
- rowClass?: string;
1336
- cellClass?: string;
1337
- }
1338
- interface GridState<T = Record<string, unknown>> {
1339
- currentPage: number;
1340
- pageSize: number;
1341
- totalItems: number;
1342
- totalPages: number;
1343
- searchQuery: string;
1344
- sortColumn?: string;
1345
- sortDirection?: 'asc' | 'desc';
1346
- loading: boolean;
1347
- isRefreshing: boolean;
1348
- selectedRows: T[];
1349
- }
1350
- interface GridEvent<T = Record<string, unknown>> {
1351
- type: 'rowClick' | 'sort' | 'pageChange' | 'search' | 'refresh' | 'export' | 'action' | 'rowReorder';
1352
- data: T | T[] | string | number | null | {
1353
- sourceItem: T;
1354
- sourceIndex: number;
1355
- targetItem: T;
1356
- targetIndex: number;
1357
- newOrder: T[];
1358
- allOrders?: T[];
1359
- };
1360
- column?: GridColumn;
1361
- action?: GridAction;
1362
- }
1363
- declare const DEFAULT_GRID_CONFIG: Partial<GridConfiguration>;
1364
- type GridEventHandler<T = Record<string, unknown>> = (event: GridEvent<T>) => void;
1365
- type GridCustomRenderer<T = Record<string, unknown>> = (value: unknown, row: T, column: GridColumn) => string;
1366
- type GridCustomFormatter = (value: unknown, format?: string) => string;
1367
-
1368
- interface TemplateContext<T = Record<string, unknown>> {
1369
- $implicit: unknown;
1370
- row: T;
1371
- value: unknown;
1372
- column: GridColumn;
1373
- }
1374
- type TemplateRenderer<T = Record<string, unknown>> = TemplateRef<TemplateContext<T>>;
1375
- declare class CideEleDataGridComponent<T = Record<string, unknown>> implements OnInit, OnChanges, OnDestroy {
1376
- config: GridConfiguration<T>;
1377
- templateRenderers: Record<string, unknown>;
1378
- customFormatters: Record<string, (value: unknown, format?: string) => string>;
1379
- actionHandlers: Record<string, (data: T, action?: GridAction) => void>;
1380
- serverSidePagination: boolean;
1381
- totalServerItems: number;
1382
- currentServerPage: number;
1383
- currentServerPageSize: number;
1384
- dragDropEnabled: boolean;
1385
- gridEvent: EventEmitter<GridEvent<T>>;
1386
- private internalData;
1387
- private filteredData;
1388
- currentPage: _angular_core.WritableSignal<number>;
1389
- pageSize: _angular_core.WritableSignal<number>;
1390
- totalItems: _angular_core.WritableSignal<number>;
1391
- totalPages: _angular_core.WritableSignal<number>;
1392
- searchQuery: _angular_core.WritableSignal<string>;
1393
- loading: _angular_core.WritableSignal<boolean>;
1394
- isRefreshing: _angular_core.WritableSignal<boolean>;
1395
- pageChangeLoading: _angular_core.WritableSignal<boolean>;
1396
- jumpToPage: number;
1397
- isDragOverRow: number | null;
1398
- isDragging: _angular_core.WritableSignal<boolean>;
1399
- hasOrderChanged: _angular_core.WritableSignal<boolean>;
1400
- private originalOrderIds;
1401
- private initialDataOrderIds;
1402
- private rowOrderMap;
1403
- private localReorderedData;
1404
- private searchDebounceTimer?;
1405
- private isDataUpdate;
1406
- hasNextPage: _angular_core.Signal<boolean>;
1407
- hasPreviousPage: _angular_core.Signal<boolean>;
1408
- mergedConfig: _angular_core.WritableSignal<GridConfiguration<T>>;
1409
- ngOnInit(): void;
1410
- ngOnDestroy(): void;
1411
- ngOnChanges(changes: SimpleChanges): void;
1412
- /**
1413
- * Check if the config change is only a data update
1414
- */
1415
- private isDataOnlyUpdate;
1416
- /**
1417
- * Update only the data without triggering full grid re-initialization
1418
- * This prevents the search input and other UI state from being reset
1419
- */
1420
- private updateDataOnly;
1421
- private mergeConfigWithDefaults;
1422
- private initializeGrid;
1423
- /**
1424
- * Get the unique identifier for an item
1425
- */
1426
- private getItemId;
1427
- /**
1428
- * Get the order value for an item from the config
1429
- */
1430
- private getItemOrder;
1431
- /**
1432
- * Initialize the original order for drag and drop
1433
- */
1434
- private initializeOriginalOrder;
1435
- /**
1436
- * Refresh order tracking with current data (called when data updates)
1437
- */
1438
- private refreshOrderTracking;
1439
- private applyFilters;
1440
- /**
1441
- * Preserve tree expansion state from current data
1442
- */
1443
- private preserveTreeExpansionState;
1444
- /**
1445
- * Apply preserved tree expansion state to new data
1446
- */
1447
- private applyTreeExpansionState;
1448
- /**
1449
- * Transform flat data to tree structure based on foreign key relationships
1450
- */
1451
- private transformToTree;
1452
- /**
1453
- * Recursively calculate item level in hierarchy for unlimited depth support
1454
- */
1455
- private calculateItemLevel;
1196
+ declare class NotificationService {
1197
+ private notifications;
1198
+ private maxNotifications;
1199
+ activeNotifications: _angular_core.Signal<NotificationItem[]>;
1200
+ constructor();
1456
1201
  /**
1457
- * Flatten tree structure for display, respecting expansion state with unlimited nesting
1202
+ * Show a success notification
1458
1203
  */
1459
- private flattenTreeForDisplay;
1204
+ success(message: string, options?: Partial<NotificationOptions>): string;
1460
1205
  /**
1461
- * Toggle expand/collapse state of a tree item with unlimited nesting support
1206
+ * Show an error notification
1462
1207
  */
1463
- private toggleTreeExpand;
1464
- private updatePaginationState;
1465
- onPageChange(page: number | string): void;
1466
- onPageSizeChange(): void;
1467
- updatePageSize(value: string | number | string[]): void;
1468
- previousPage(): void;
1469
- nextPage(): void;
1470
- onJumpToPage(): void;
1471
- getEnhancedPageNumbers(): (number | string)[];
1472
- updateSearchQuery(value: inputType): void;
1473
- onSearch(): void;
1474
- onRefresh(): void;
1475
- setRefreshing(isRefreshing: boolean): void;
1476
- clearPageChangeLoading(): void;
1208
+ error(message: string, options?: Partial<NotificationOptions>): string;
1477
1209
  /**
1478
- * Check if tree view is enabled
1210
+ * Show a warning notification
1479
1211
  */
1480
- isTreeEnabled(): boolean;
1212
+ warning(message: string, options?: Partial<NotificationOptions>): string;
1481
1213
  /**
1482
- * Get tree configuration
1214
+ * Show an info notification
1483
1215
  */
1484
- getTreeConfig(): cloud_ide_element.GridTreeConfig | undefined;
1216
+ info(message: string, options?: Partial<NotificationOptions>): string;
1485
1217
  /**
1486
- * Check if an item has children
1218
+ * Show a notification with undo functionality
1487
1219
  */
1488
- hasChildren(item: T): boolean;
1220
+ showWithUndo(message: string, undoAction: () => void, options?: Partial<NotificationOptions>): string;
1489
1221
  /**
1490
- * Get item level in tree
1222
+ * Show a notification for reversible destructive actions
1491
1223
  */
1492
- getItemLevel(item: T): number;
1224
+ showReversibleAction(action: string, itemName: string, undoAction: () => void, options?: Partial<NotificationOptions>): string;
1493
1225
  /**
1494
- * Check if item is expanded
1226
+ * Show a notification for background tasks
1495
1227
  */
1496
- isItemExpanded(item: T): boolean;
1228
+ showBackgroundTask(taskName: string, isComplete?: boolean, options?: Partial<NotificationOptions>): string;
1497
1229
  /**
1498
- * Get tree indent style
1230
+ * Show a progress notification
1499
1231
  */
1500
- getTreeIndentStyle(item: T): string;
1232
+ showProgress(message: string, progress?: number, options?: Partial<NotificationOptions>): string;
1501
1233
  /**
1502
- * Get tree level background class for visual distinction
1234
+ * Update progress for an existing notification
1503
1235
  */
1504
- getTreeLevelClass(item: T): string;
1236
+ updateProgress(id: string, progress: number, message?: string): void;
1505
1237
  /**
1506
- * Check if drag and drop is enabled
1238
+ * Core show method
1507
1239
  */
1508
- isDragDropEnabled(): boolean;
1240
+ private show;
1509
1241
  /**
1510
- * Get drag and drop configuration
1242
+ * Remove a specific notification
1511
1243
  */
1512
- getDragDropConfig(): cloud_ide_element.GridDragDropConfig | undefined;
1244
+ remove(id: string): void;
1513
1245
  /**
1514
- * Handle drag start event
1246
+ * Remove all notifications
1515
1247
  */
1516
- onDragStart(event: DragEvent, item: T, index: number): void;
1248
+ clearAll(): void;
1517
1249
  /**
1518
- * Handle drag over event
1519
- */
1520
- onDragOver(event: DragEvent): void;
1521
- /**
1522
- * Handle drag leave event
1523
- */
1524
- onDragLeave(event: DragEvent): void;
1525
- /**
1526
- * Handle drop event
1527
- */
1528
- onDrop(event: DragEvent, targetItem: T, targetIndex: number): void;
1529
- /**
1530
- * Handle drag end event
1531
- */
1532
- onDragEnd(event: DragEvent): void;
1533
- /**
1534
- * Calculate new order after reordering
1535
- */
1536
- private getNewOrder;
1537
- /**
1538
- * Get the current order number for a specific item
1539
- */
1540
- getCurrentOrderNumber(item: T): number;
1541
- /**
1542
- * Update the row order map with new positions after reordering
1543
- */
1544
- private updateRowOrderMap;
1545
- /**
1546
- * Check if any row has changed position by comparing old vs new positions
1547
- */
1548
- private checkIfOrderChanged;
1549
- /**
1550
- * Reset the row order map to original positions (for reset action)
1551
- * Includes all items from hierarchical structure (parents and children)
1552
- */
1553
- private resetRowOrderMap;
1554
- /**
1555
- * Update the row order map baseline to current positions (for save action)
1556
- * Includes all items from hierarchical structure (parents and children)
1557
- */
1558
- private updateRowOrderMapBaseline;
1559
- /**
1560
- * Get the current order array from the row order map
1561
- * Includes all items from hierarchical structure (parents and children)
1562
- */
1563
- private getCurrentOrderFromMap;
1564
- /**
1565
- * Get only the items that have actually changed order
1566
- * Includes all items from hierarchical structure (parents and children)
1567
- */
1568
- private getChangedOrders;
1569
- /**
1570
- * Flatten all data for order tracking (includes all hierarchical children)
1571
- * This method ensures that all items (parents and children) are included in order tracking
1572
- */
1573
- private flattenAllDataForOrderTracking;
1574
- /**
1575
- * Update local data order for visual reordering (LOCAL ONLY)
1576
- */
1577
- private updateLocalDataOrder;
1578
- /**
1579
- * Check if the current order has changed from the initial order
1580
- */
1581
- private checkOrderChanged;
1582
- onRowClick(item: T): void;
1583
- onActionClick(item: T, action: GridAction): void;
1584
- private emitEvent;
1585
- /**
1586
- * Get nested value from an object
1587
- * @param obj - The object to get the nested value from
1588
- * @param path - The path to the nested value (e.g., 'contact.email')
1589
- * @returns The nested value or undefined if not found
1590
- * @example
1591
- * const obj = { contact: { email: 'test@example.com' } };
1592
- * const value = getNestedValue(obj, 'contact.email');
1593
- * // value === 'test@example.com'
1594
- */
1595
- getNestedValue(obj: T, path: string): unknown;
1596
- /**
1597
- * Set a nested value in an object using dot notation
1598
- * @param obj The object to modify
1599
- * @param path The dot notation path (e.g., 'contact.email')
1600
- * @param value The value to set
1601
- * @example
1602
- * const obj = { contact: { email: 'old@example.com' } };
1603
- * setNestedValue(obj, 'contact.email', 'new@example.com');
1604
- * // obj.contact.email === 'new@example.com'
1605
- */
1606
- setNestedValue(obj: T, path: string, value: unknown): void;
1607
- /**
1608
- * Compare two order arrays to check if they are different
1609
- * This method can be used by parent components to check if order has actually changed
1610
- * @param currentOrder Current order array
1611
- * @param originalOrder Original order array
1612
- * @returns true if orders are different, false if they are the same
1613
- */
1614
- compareOrders(currentOrder: Array<{
1615
- id: string | undefined;
1616
- order: number | undefined;
1617
- }>, originalOrder: Array<{
1618
- id: string | undefined;
1619
- order: number | undefined;
1620
- }>): boolean;
1621
- formatValue(value: unknown, column: GridColumn): string;
1622
- private formatDate;
1623
- private formatCurrency;
1624
- private formatPercentage;
1625
- isTemplateRenderer(rendererKey: string): boolean;
1626
- getTemplateRenderer(rendererKey: string): TemplateRenderer<T> | null;
1627
- getTemplateContext(value: unknown, row: T, column: GridColumn): TemplateContext<T>;
1628
- getColumnWidthClass(width?: ColumnWidth): string;
1629
- getColumnMaxWidthClass(width?: ColumnWidth): string;
1630
- getStatusClass(value: unknown, statusConfig?: StatusConfig): string;
1631
- getStatusText(value: unknown, statusConfig?: StatusConfig): string;
1632
- getItemRangeText(): string;
1633
- getPageSizeOptions(): {
1634
- value: number;
1635
- label: string;
1636
- }[];
1637
- trackByFn(index: number, item: T): unknown;
1638
- getSkeletonArray(): number[];
1639
- get displayedData(): T[];
1640
- get columns(): GridColumn[];
1641
- get paginationConfig(): cloud_ide_element.GridPaginationConfig;
1642
- get searchConfig(): cloud_ide_element.GridSearchConfig;
1643
- get loadingConfig(): cloud_ide_element.GridLoadingConfig;
1644
- get scrollConfig(): cloud_ide_element.GridScrollConfig | undefined;
1645
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleDataGridComponent<any>, never>;
1646
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleDataGridComponent<any>, "cide-ele-data-grid", never, { "config": { "alias": "config"; "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>;
1647
- }
1648
-
1649
- interface DropdownItem {
1650
- id: string;
1651
- label: string;
1652
- icon?: string;
1653
- iconColor?: string;
1654
- textColor?: string;
1655
- hoverBgColor?: string;
1656
- disabled?: boolean;
1657
- divider?: boolean;
1658
- }
1659
- interface DropdownConfig {
1660
- triggerIcon?: string;
1661
- triggerSize?: 'xs' | 'sm' | 'md' | 'lg';
1662
- triggerColor?: string;
1663
- triggerHoverColor?: string;
1664
- triggerHoverBgColor?: string;
1665
- menuWidth?: string;
1666
- menuPosition?: 'left' | 'right' | 'auto';
1667
- showArrow?: boolean;
1668
- forcePosition?: 'top' | 'bottom' | 'left' | 'right';
1669
- offsetX?: number;
1670
- offsetY?: number;
1671
- minWidth?: number;
1672
- usePortal?: boolean;
1673
- }
1674
- interface DropdownPosition {
1675
- vertical: 'top' | 'bottom';
1676
- horizontal: 'left' | 'right';
1677
- spaceAvailable: {
1678
- top: number;
1679
- bottom: number;
1680
- left: number;
1681
- right: number;
1682
- };
1683
- }
1684
- declare class CideEleDropdownComponent implements OnInit, OnDestroy {
1685
- private destroyRef;
1686
- private dropdownManager;
1687
- private portalService;
1688
- private viewContainerRef;
1689
- private dropdownId;
1690
- private portalId;
1691
- dropdownContainer: _angular_core.Signal<ElementRef<any>>;
1692
- dropdownMenu: _angular_core.Signal<ElementRef<any> | undefined>;
1693
- dropdownMenuTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
1694
- set items(value: DropdownItem[]);
1695
- get items(): DropdownItem[];
1696
- private _items;
1697
- config: DropdownConfig;
1698
- triggerTemplate?: TemplateRef<{
1699
- $implicit: boolean;
1700
- }>;
1701
- menuTemplate?: TemplateRef<{
1702
- $implicit: DropdownItem[];
1703
- }>;
1704
- itemClick: EventEmitter<DropdownItem>;
1705
- dropdownToggle: EventEmitter<boolean>;
1706
- isOpen: _angular_core.WritableSignal<boolean>;
1707
- currentPosition: _angular_core.WritableSignal<DropdownPosition>;
1708
- ngOnInit(): void;
1709
- getTriggerClasses(): string;
1710
- getTriggerIconClasses(): string;
1711
- getMenuClasses(): string;
1712
- getMenuStyles(): string;
1713
- calculatePosition(): DropdownPosition;
1714
- private getMenuWidth;
1715
- protected getSafeConfig(): DropdownConfig;
1716
- private getEstimatedMenuHeight;
1717
- toggleDropdown(event: Event): void;
1718
- private openDropdown;
1719
- testMouseDown(item: DropdownItem): void;
1720
- onItemClick(item: DropdownItem, event: Event): void;
1721
- private createPortalDropdown;
1722
- private destroyPortalDropdown;
1723
- closeDropdown(): void;
1724
- getItemClasses(item: DropdownItem): string;
1725
- onWindowResize(): void;
1726
- onWindowScroll(): void;
1727
- ngOnDestroy(): void;
1728
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleDropdownComponent, never>;
1729
- static ɵcmp: _angular_core.ɵɵ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>;
1730
- }
1731
-
1732
- interface DropdownInstance {
1733
- id: string;
1734
- close: () => void;
1735
- element?: Element;
1736
- }
1737
- declare class DropdownManagerService {
1738
- private activeDropdowns;
1739
- private documentClickListener?;
1740
- private escapeKeyListener?;
1741
- constructor();
1742
- private initializeGlobalListeners;
1743
- registerDropdown(dropdown: DropdownInstance): void;
1744
- unregisterDropdown(id: string): void;
1745
- closeAllDropdowns(): void;
1746
- closeDropdown(id: string): void;
1747
- isDropdownOpen(id: string): boolean;
1748
- private handleDocumentClick;
1749
- ngOnDestroy(): void;
1750
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownManagerService, never>;
1751
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<DropdownManagerService>;
1752
- }
1753
-
1754
- interface ConfirmationRequest<T = unknown> {
1755
- id: string;
1756
- title: string;
1757
- message: string;
1758
- type: 'danger' | 'warning' | 'info' | 'success';
1759
- icon?: string;
1760
- confirmText?: string;
1761
- cancelText?: string;
1762
- customTemplate?: TemplateRef<unknown>;
1763
- customData?: T;
1764
- resolve: (value: boolean | T) => void;
1765
- reject: (reason?: unknown) => void;
1766
- }
1767
- interface ConfirmationOptions<T = unknown> {
1768
- title: string;
1769
- message: string;
1770
- type?: 'danger' | 'warning' | 'info' | 'success';
1771
- icon?: string;
1772
- confirmText?: string;
1773
- cancelText?: string;
1774
- customTemplate?: TemplateRef<unknown>;
1775
- customData?: T;
1776
- }
1777
- declare class ConfirmationService implements OnDestroy {
1778
- private readonly confirmationQueue;
1779
- private readonly currentRequest;
1780
- readonly hasActiveConfirmation: _angular_core.Signal<boolean>;
1781
- readonly queueLength: _angular_core.Signal<number>;
1782
- constructor();
1783
- ngOnDestroy(): void;
1784
- /**
1785
- * Ask for confirmation with a simple yes/no dialog
1786
- */
1787
- ask(options: ConfirmationOptions<unknown>): Promise<boolean>;
1788
- /**
1789
- * Ask for confirmation with custom template and return custom data
1790
- */
1791
- askWithTemplate<T = unknown>(options: ConfirmationOptions<T> & {
1792
- customTemplate: TemplateRef<unknown>;
1793
- }): Promise<T>;
1794
- /**
1795
- * Quick confirmation for dangerous actions
1796
- */
1797
- confirmDelete(itemName?: string): Promise<boolean>;
1798
- /**
1799
- * Quick confirmation for permanent actions
1800
- */
1801
- confirmPermanentAction(action: string, itemName?: string): Promise<boolean>;
1802
- /**
1803
- * Quick confirmation for safe actions
1804
- */
1805
- confirmSafeAction(action: string, itemName?: string): Promise<boolean>;
1806
- private addToQueue;
1807
- private processQueue;
1808
- confirmCurrentRequest(data?: unknown): void;
1809
- cancelCurrentRequest(): void;
1810
- private removeCurrentRequest;
1811
- private generateId;
1812
- private getDefaultIcon;
1813
- getCurrentRequest(): _angular_core.WritableSignal<ConfirmationRequest<unknown> | null>;
1814
- getHasActiveConfirmation(): _angular_core.Signal<boolean>;
1815
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfirmationService, never>;
1816
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<ConfirmationService>;
1817
- }
1818
-
1819
- interface NotificationOptions {
1820
- message: string;
1821
- type?: 'success' | 'error' | 'warning' | 'info';
1822
- duration?: number;
1823
- showUndo?: boolean;
1824
- undoAction?: () => void;
1825
- undoText?: string;
1826
- icon?: string;
1827
- title?: string;
1828
- progress?: number;
1829
- showProgress?: boolean;
1830
- }
1831
- interface NotificationItem {
1832
- id: string;
1833
- message: string;
1834
- type: 'success' | 'error' | 'warning' | 'info';
1835
- duration: number;
1836
- showUndo: boolean;
1837
- undoAction?: () => void;
1838
- undoText: string;
1839
- icon: string;
1840
- title?: string;
1841
- timestamp: number;
1842
- isVisible: boolean;
1843
- progress?: number;
1844
- showProgress?: boolean;
1845
- }
1846
- declare class NotificationService {
1847
- private notifications;
1848
- private maxNotifications;
1849
- activeNotifications: _angular_core.Signal<NotificationItem[]>;
1850
- constructor();
1851
- /**
1852
- * Show a success notification
1853
- */
1854
- success(message: string, options?: Partial<NotificationOptions>): string;
1855
- /**
1856
- * Show an error notification
1857
- */
1858
- error(message: string, options?: Partial<NotificationOptions>): string;
1859
- /**
1860
- * Show a warning notification
1861
- */
1862
- warning(message: string, options?: Partial<NotificationOptions>): string;
1863
- /**
1864
- * Show an info notification
1865
- */
1866
- info(message: string, options?: Partial<NotificationOptions>): string;
1867
- /**
1868
- * Show a notification with undo functionality
1869
- */
1870
- showWithUndo(message: string, undoAction: () => void, options?: Partial<NotificationOptions>): string;
1871
- /**
1872
- * Show a notification for reversible destructive actions
1873
- */
1874
- showReversibleAction(action: string, itemName: string, undoAction: () => void, options?: Partial<NotificationOptions>): string;
1875
- /**
1876
- * Show a notification for background tasks
1877
- */
1878
- showBackgroundTask(taskName: string, isComplete?: boolean, options?: Partial<NotificationOptions>): string;
1879
- /**
1880
- * Show a progress notification
1881
- */
1882
- showProgress(message: string, progress?: number, options?: Partial<NotificationOptions>): string;
1883
- /**
1884
- * Update progress for an existing notification
1885
- */
1886
- updateProgress(id: string, progress: number, message?: string): void;
1887
- /**
1888
- * Core show method
1889
- */
1890
- private show;
1891
- /**
1892
- * Remove a specific notification
1893
- */
1894
- remove(id: string): void;
1895
- /**
1896
- * Remove all notifications
1897
- */
1898
- clearAll(): void;
1899
- /**
1900
- * Execute undo action for a notification
1250
+ * Execute undo action for a notification
1901
1251
  */
1902
1252
  executeUndo(id: string): void;
1903
1253
  private addNotification;
@@ -2116,401 +1466,1107 @@ interface UploadProgress {
2116
1466
  stage: 'reading' | 'uploading' | 'complete' | 'error';
2117
1467
  groupId?: string;
2118
1468
  }
2119
- interface ServiceState {
2120
- isUploading: boolean;
2121
- uploadQueue: string[];
2122
- activeUploads: Map<string, UploadProgress>;
2123
- error: string | null;
1469
+ interface ServiceState {
1470
+ isUploading: boolean;
1471
+ uploadQueue: string[];
1472
+ activeUploads: Map<string, UploadProgress>;
1473
+ error: string | null;
1474
+ }
1475
+ declare class CideEleFileManagerService {
1476
+ private readonly http;
1477
+ private readonly destroyRef;
1478
+ private readonly _baseUrl;
1479
+ private readonly _objectIdEndpoint;
1480
+ private readonly _userId;
1481
+ private readonly _isUploading;
1482
+ private readonly _uploadQueue;
1483
+ private readonly _activeUploads;
1484
+ private readonly _fetchedFiles;
1485
+ private readonly _fileIdMapping;
1486
+ private readonly _error;
1487
+ readonly baseUrl: _angular_core.Signal<string>;
1488
+ readonly objectIdEndpoint: _angular_core.Signal<string>;
1489
+ readonly userId: _angular_core.Signal<string>;
1490
+ readonly isUploading: _angular_core.Signal<boolean>;
1491
+ readonly uploadQueue: _angular_core.Signal<string[]>;
1492
+ readonly activeUploads: _angular_core.Signal<Map<string, UploadProgress>>;
1493
+ readonly fetchedFiles: _angular_core.Signal<Map<string, any[]>>;
1494
+ readonly error: _angular_core.Signal<string | null>;
1495
+ readonly hasActiveUploads: _angular_core.Signal<boolean>;
1496
+ readonly queueLength: _angular_core.Signal<number>;
1497
+ readonly totalFetchedFiles: _angular_core.Signal<number>;
1498
+ readonly getFileCountByGroup: _angular_core.Signal<Map<string, number>>;
1499
+ readonly serviceState: _angular_core.Signal<{
1500
+ isUploading: boolean;
1501
+ uploadQueue: string[];
1502
+ activeUploads: Map<string, UploadProgress>;
1503
+ fetchedFiles: Map<string, any[]>;
1504
+ error: string | null;
1505
+ }>;
1506
+ constructor();
1507
+ /**
1508
+ * Upload a file with base64 encoding and progress tracking
1509
+ * Angular 20: Enhanced with better error handling, retry logic, and signal-based state
1510
+ * @param file The file to upload
1511
+ * @param options Upload options and additional data
1512
+ * @param progressCallback Optional callback for progress updates
1513
+ * @returns Observable with the upload response
1514
+ */
1515
+ uploadFile(file: File, options?: FileUploadOptions, progressCallback?: (progress: number) => void): Observable<CoreFileManagerInsertUpdateResponse>;
1516
+ /**
1517
+ * Set the base URL for API calls
1518
+ * Angular 20: Using signal-based state management
1519
+ * @param url The base URL for the API
1520
+ */
1521
+ setBaseUrl(url: string): void;
1522
+ /**
1523
+ * Set the user ID for file uploads
1524
+ * Angular 20: Using signal-based state management
1525
+ * @param userId The user ID to associate with uploaded files
1526
+ */
1527
+ setUserId(userId: string): void;
1528
+ /**
1529
+ * Set the object ID generation endpoint
1530
+ * Angular 20: Using signal-based state management
1531
+ * @param endpoint The endpoint for generating object IDs (e.g., '/utility/generateObjectId')
1532
+ */
1533
+ setObjectIdEndpoint(endpoint: string): void;
1534
+ /**
1535
+ * Generate Object ID for group uploads
1536
+ * Calls the backend API to generate a unique ObjectId for grouping multiple files
1537
+ * Uses the configurable object ID endpoint instead of hardcoded path
1538
+ * @returns Observable with the generated ObjectId
1539
+ */
1540
+ generateObjectId(): Observable<mongooseObjectIdCreateControllerResponse>;
1541
+ /**
1542
+ * Angular 20: Helper methods for state management
1543
+ */
1544
+ private generateFileId;
1545
+ private addToUploadQueue;
1546
+ private removeFromUploadQueue;
1547
+ private updateUploadProgress;
1548
+ private removeActiveUpload;
1549
+ /**
1550
+ * Angular 20: Enhanced error handling
1551
+ */
1552
+ private handleError;
1553
+ /**
1554
+ * Get file details by ID
1555
+ * @param payload The file ID to fetch details for
1556
+ * @returns Observable with file details
1557
+ */
1558
+ getFileDetails(payload: MFileManager): Observable<fileManagerControllerResponse>;
1559
+ /**
1560
+ * Get files by group ID and store them in service state
1561
+ * @param groupId The group ID to fetch files for
1562
+ * @returns Observable with files list
1563
+ */
1564
+ getFilesByGroupId(groupId: string): Observable<fileManagerListByGroupIdControllerResponse>;
1565
+ /**
1566
+ * Fetch and store files by group ID in service state
1567
+ * @param groupId The group ID to fetch files for
1568
+ * @returns Observable that completes when files are stored
1569
+ */
1570
+ fetchAndStoreFilesByGroupId(groupId: string): Observable<any[]>;
1571
+ /**
1572
+ * Get fetched files for a specific group ID
1573
+ * @param groupId The group ID to get files for
1574
+ * @returns Array of files for the group
1575
+ */
1576
+ getFetchedFilesByGroupId(groupId: string): any[];
1577
+ /**
1578
+ * Signal to trigger floating uploader visibility
1579
+ */
1580
+ private readonly _showFloatingUploader;
1581
+ private readonly _triggerGroupId;
1582
+ readonly showFloatingUploader: _angular_core.Signal<boolean>;
1583
+ readonly getTriggerGroupId: _angular_core.Signal<string | null>;
1584
+ /**
1585
+ * Trigger floating uploader to show with group ID
1586
+ * This is the ONLY way to pass group ID to floating uploader
1587
+ */
1588
+ triggerFloatingUploaderShow(groupId?: string): void;
1589
+ /**
1590
+ * Get all files (active uploads + fetched files) for a group ID
1591
+ * @param groupId The group ID to get files for
1592
+ * @returns Combined array of active and fetched files
1593
+ */
1594
+ getAllFilesForGroup(groupId: string): Array<{
1595
+ fileId: string;
1596
+ fileName: string;
1597
+ stage: string;
1598
+ percentage?: number;
1599
+ }>;
1600
+ /**
1601
+ * Get file name from file ID (extract from the ID format)
1602
+ */
1603
+ private getFileNameFromId;
1604
+ /**
1605
+ * Angular 20: Service utility methods
1606
+ */
1607
+ clearError(): void;
1608
+ getUploadProgress(fileId: string): UploadProgress | undefined;
1609
+ cancelUpload(fileId: string): void;
1610
+ /**
1611
+ * Clear all completed uploads from active uploads
1612
+ * Called when the floating uploader is closed
1613
+ */
1614
+ clearCompletedUploads(): void;
1615
+ /**
1616
+ * Remove a specific completed upload from active uploads
1617
+ */
1618
+ removeCompletedUpload(fileId: string): void;
1619
+ /**
1620
+ * Optimized method to get file count for a specific group
1621
+ * Uses computed property for better performance
1622
+ */
1623
+ getFileCountForGroup(groupId: string): number;
1624
+ /**
1625
+ * Optimized method to check if group has active uploads
1626
+ */
1627
+ hasActiveUploadsForGroup(groupId: string): boolean;
1628
+ /**
1629
+ * Angular 20: File validation utility
1630
+ */
1631
+ validateFile(file: File, maxSizeMB?: number, allowedTypes?: string[]): {
1632
+ valid: boolean;
1633
+ error?: string;
1634
+ };
1635
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFileManagerService, never>;
1636
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideEleFileManagerService>;
1637
+ }
1638
+
1639
+ interface BreadcrumbPageInfo {
1640
+ pageId: string;
1641
+ moduleName: string;
1642
+ menuName: string;
1643
+ icon?: string;
1644
+ path?: string;
1645
+ parentPageId?: string;
2124
1646
  }
2125
- declare class CideEleFileManagerService {
2126
- private readonly http;
2127
- private readonly destroyRef;
2128
- private readonly _baseUrl;
2129
- private readonly _objectIdEndpoint;
2130
- private readonly _userId;
2131
- private readonly _isUploading;
2132
- private readonly _uploadQueue;
2133
- private readonly _activeUploads;
2134
- private readonly _fetchedFiles;
2135
- private readonly _fileIdMapping;
2136
- private readonly _error;
2137
- readonly baseUrl: _angular_core.Signal<string>;
2138
- readonly objectIdEndpoint: _angular_core.Signal<string>;
2139
- readonly userId: _angular_core.Signal<string>;
2140
- readonly isUploading: _angular_core.Signal<boolean>;
2141
- readonly uploadQueue: _angular_core.Signal<string[]>;
2142
- readonly activeUploads: _angular_core.Signal<Map<string, UploadProgress>>;
2143
- readonly fetchedFiles: _angular_core.Signal<Map<string, any[]>>;
2144
- readonly error: _angular_core.Signal<string | null>;
2145
- readonly hasActiveUploads: _angular_core.Signal<boolean>;
2146
- readonly queueLength: _angular_core.Signal<number>;
2147
- readonly totalFetchedFiles: _angular_core.Signal<number>;
2148
- readonly getFileCountByGroup: _angular_core.Signal<Map<string, number>>;
2149
- readonly serviceState: _angular_core.Signal<{
2150
- isUploading: boolean;
2151
- uploadQueue: string[];
2152
- activeUploads: Map<string, UploadProgress>;
2153
- fetchedFiles: Map<string, any[]>;
2154
- error: string | null;
1647
+ interface BreadcrumbNavigationItem {
1648
+ id: string;
1649
+ label: string;
1650
+ icon?: string;
1651
+ type: 'root' | 'module' | 'menu' | 'page';
1652
+ path?: string;
1653
+ }
1654
+ interface BreadcrumbResolvedItem {
1655
+ id: string;
1656
+ label: string;
1657
+ icon?: string;
1658
+ path?: string;
1659
+ }
1660
+ type BreadcrumbContextId = string;
1661
+ type PagePathResolver = (pageCode: string) => Promise<BreadcrumbResolvedItem[]>;
1662
+ declare const PAGE_PATH_RESOLVER: InjectionToken<PagePathResolver>;
1663
+ declare class BreadcrumbNavigationService {
1664
+ private activeContextId;
1665
+ private contextIdToItems;
1666
+ private currentBreadcrumbItems;
1667
+ private isLoading;
1668
+ private pagePathResolver;
1669
+ constructor(resolver?: PagePathResolver);
1670
+ /**
1671
+ * Generate breadcrumb items for a given page ID
1672
+ * @param pageId - The page identifier
1673
+ * @param additionalItems - Optional additional breadcrumb items to append
1674
+ * @returns Promise<BreadcrumbNavigationItem[]> - Generated breadcrumb items
1675
+ */
1676
+ generateBreadcrumb(pageId: string, additionalItems?: BreadcrumbNavigationItem[], contextId?: BreadcrumbContextId): Promise<BreadcrumbNavigationItem[]>;
1677
+ /**
1678
+ * Generate breadcrumb with parent entity information
1679
+ * @param pageId - The page identifier
1680
+ * @param parentEntityInfo - Parent entity information
1681
+ * @returns Promise<BreadcrumbNavigationItem[]> - Generated breadcrumb items
1682
+ */
1683
+ generateBreadcrumbWithParent(pageId: string, parentEntityInfo: {
1684
+ id: string;
1685
+ name: string;
1686
+ type?: string;
1687
+ }, contextId?: BreadcrumbContextId): Promise<BreadcrumbNavigationItem[]>;
1688
+ /**
1689
+ * Set or switch the active breadcrumb context (e.g., when focusing a tab/popup)
1690
+ */
1691
+ setActiveContext(contextId: BreadcrumbContextId): void;
1692
+ /**
1693
+ * Provide an external resolver that can translate a pageCode to full breadcrumb path
1694
+ */
1695
+ registerPagePathResolver(resolver: PagePathResolver): void;
1696
+ /**
1697
+ * Resolve and set breadcrumb by page code using external API/menu resolver
1698
+ */
1699
+ resolveAndSetByPageCode(pageCode: string, contextId?: BreadcrumbContextId): Promise<BreadcrumbNavigationItem[]>;
1700
+ /**
1701
+ * Register a new page in the registry
1702
+ * @param pageInfo - Page information to register
1703
+ */
1704
+ registerPage(pageInfo: BreadcrumbPageInfo): void;
1705
+ /**
1706
+ * Register multiple pages at once
1707
+ * @param pages - Array of page information to register
1708
+ */
1709
+ registerPages(pages: BreadcrumbPageInfo[]): void;
1710
+ /**
1711
+ * Get current breadcrumb items
1712
+ * @returns BreadcrumbNavigationItem[] - Current breadcrumb items
1713
+ */
1714
+ getCurrentBreadcrumb(): BreadcrumbNavigationItem[];
1715
+ /**
1716
+ * Returns a signal of the current breadcrumb items for binding in UI
1717
+ */
1718
+ getCurrentBreadcrumbSignal(): Signal<BreadcrumbNavigationItem[]>;
1719
+ /**
1720
+ * Get loading state
1721
+ * @returns boolean - Loading state
1722
+ */
1723
+ isLoadingBreadcrumb(): boolean;
1724
+ /**
1725
+ * Clear current breadcrumb
1726
+ */
1727
+ clearBreadcrumb(contextId?: BreadcrumbContextId): void;
1728
+ /**
1729
+ * Set default breadcrumb
1730
+ */
1731
+ private setDefaultBreadcrumb;
1732
+ /**
1733
+ * Get default breadcrumb
1734
+ * @returns BreadcrumbNavigationItem[] - Default breadcrumb items
1735
+ */
1736
+ private getDefaultBreadcrumb;
1737
+ /**
1738
+ * Format page label from page ID
1739
+ * @param pageId - Page identifier
1740
+ * @returns string - Formatted page label
1741
+ */
1742
+ private formatPageLabel;
1743
+ /**
1744
+ * Get all registered pages
1745
+ * @returns BreadcrumbPageInfo[] - All registered pages
1746
+ */
1747
+ getAllRegisteredPages(): BreadcrumbPageInfo[];
1748
+ /**
1749
+ * Get pages by module
1750
+ * @param moduleName - Module name to filter by
1751
+ * @returns BreadcrumbPageInfo[] - Pages in the specified module
1752
+ */
1753
+ getPagesByModule(moduleName: string): BreadcrumbPageInfo[];
1754
+ /**
1755
+ * Get pages by menu
1756
+ * @param menuName - Menu name to filter by
1757
+ * @returns BreadcrumbPageInfo[] - Pages in the specified menu
1758
+ */
1759
+ getPagesByMenu(menuName: string): BreadcrumbPageInfo[];
1760
+ private ensureContext;
1761
+ private getContextSignal;
1762
+ private setContextItems;
1763
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbNavigationService, [{ optional: true; }]>;
1764
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<BreadcrumbNavigationService>;
1765
+ }
1766
+
1767
+ declare class CideCoreFileManagerService {
1768
+ private http;
1769
+ private apiUrl;
1770
+ private fileListSubject;
1771
+ fileList$: Observable<ICoreFileManager[]>;
1772
+ constructor(http: HttpClient);
1773
+ /**
1774
+ * Get file list from API
1775
+ */
1776
+ getFileList(body: IFileListRequest): Observable<IFileListResponse>;
1777
+ /**
1778
+ * Get file list using mock data (deprecated - use getFileList instead)
1779
+ */
1780
+ getFileListWithMockData(_body: IFileListRequest): Observable<IFileListResponse>;
1781
+ /**
1782
+ * Get file list from cache (if available)
1783
+ */
1784
+ getFileListFromCache(): ICoreFileManager[];
1785
+ /**
1786
+ * Upload file with progress tracking
1787
+ */
1788
+ uploadFile(request: IFileUploadRequest): Observable<HttpEvent<IFileUploadResponse>>;
1789
+ /**
1790
+ * Upload file with progress tracking (mock version - deprecated)
1791
+ */
1792
+ uploadFileWithMockData(request: IFileUploadRequest): Observable<HttpEvent<IFileUploadResponse>>;
1793
+ /**
1794
+ * Update file metadata
1795
+ */
1796
+ updateFile(request: IFileUpdateRequest): Observable<IFileUpdateResponse>;
1797
+ /**
1798
+ * Delete file
1799
+ */
1800
+ deleteFile(id: string): Observable<IFileDeleteResponse>;
1801
+ /**
1802
+ * Delete multiple files
1803
+ */
1804
+ deleteMultipleFiles(ids: string[]): Observable<{
1805
+ success: boolean;
1806
+ message?: string;
1807
+ data?: unknown;
2155
1808
  }>;
2156
- constructor();
2157
1809
  /**
2158
- * Upload a file with base64 encoding and progress tracking
2159
- * Angular 20: Enhanced with better error handling, retry logic, and signal-based state
2160
- * @param file The file to upload
2161
- * @param options Upload options and additional data
2162
- * @param progressCallback Optional callback for progress updates
2163
- * @returns Observable with the upload response
1810
+ * Toggle file active status
2164
1811
  */
2165
- uploadFile(file: File, options?: FileUploadOptions, progressCallback?: (progress: number) => void): Observable<CoreFileManagerInsertUpdateResponse>;
1812
+ toggleFileStatus(id: string): Observable<IFileListResponse>;
2166
1813
  /**
2167
- * Set the base URL for API calls
2168
- * Angular 20: Using signal-based state management
2169
- * @param url The base URL for the API
1814
+ * Get file by ID
2170
1815
  */
2171
- setBaseUrl(url: string): void;
1816
+ getFileById(id: string): Observable<{
1817
+ success: boolean;
1818
+ message: string;
1819
+ data?: ICoreFileManager;
1820
+ }>;
2172
1821
  /**
2173
- * Set the user ID for file uploads
2174
- * Angular 20: Using signal-based state management
2175
- * @param userId The user ID to associate with uploaded files
1822
+ * Find file by ID
2176
1823
  */
2177
- setUserId(userId: string): void;
1824
+ findFileById(id: string, items?: ICoreFileManager[]): ICoreFileManager | null;
2178
1825
  /**
2179
- * Set the object ID generation endpoint
2180
- * Angular 20: Using signal-based state management
2181
- * @param endpoint The endpoint for generating object IDs (e.g., '/utility/generateObjectId')
1826
+ * Get file size in human readable format
2182
1827
  */
2183
- setObjectIdEndpoint(endpoint: string): void;
1828
+ getFileSizeDisplay(bytes: number): string;
2184
1829
  /**
2185
- * Generate Object ID for group uploads
2186
- * Calls the backend API to generate a unique ObjectId for grouping multiple files
2187
- * Uses the configurable object ID endpoint instead of hardcoded path
2188
- * @returns Observable with the generated ObjectId
1830
+ * Get file type icon
2189
1831
  */
2190
- generateObjectId(): Observable<mongooseObjectIdCreateControllerResponse>;
1832
+ getFileTypeIcon(fileType: string): string;
2191
1833
  /**
2192
- * Angular 20: Helper methods for state management
1834
+ * Refresh file list from server
2193
1835
  */
2194
- private generateFileId;
2195
- private addToUploadQueue;
2196
- private removeFromUploadQueue;
2197
- private updateUploadProgress;
2198
- private removeActiveUpload;
1836
+ private refreshFileList;
2199
1837
  /**
2200
- * Angular 20: Enhanced error handling
1838
+ * Handle errors
2201
1839
  */
2202
1840
  private handleError;
1841
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideCoreFileManagerService, never>;
1842
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideCoreFileManagerService>;
1843
+ }
1844
+
1845
+ interface DropdownInstance {
1846
+ id: string;
1847
+ close: () => void;
1848
+ element?: Element;
1849
+ }
1850
+ declare class DropdownManagerService {
1851
+ private activeDropdowns;
1852
+ private documentClickListener?;
1853
+ private escapeKeyListener?;
1854
+ constructor();
1855
+ private initializeGlobalListeners;
1856
+ registerDropdown(dropdown: DropdownInstance): void;
1857
+ unregisterDropdown(id: string): void;
1858
+ closeAllDropdowns(): void;
1859
+ closeDropdown(id: string): void;
1860
+ isDropdownOpen(id: string): boolean;
1861
+ private handleDocumentClick;
1862
+ ngOnDestroy(): void;
1863
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownManagerService, never>;
1864
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<DropdownManagerService>;
1865
+ }
1866
+
1867
+ interface KeyboardShortcut {
1868
+ id: string;
1869
+ key: string;
1870
+ ctrlKey?: boolean;
1871
+ altKey?: boolean;
1872
+ shiftKey?: boolean;
1873
+ metaKey?: boolean;
1874
+ description?: string;
1875
+ action: () => void;
1876
+ preventDefault?: boolean;
1877
+ stopPropagation?: boolean;
1878
+ }
1879
+ interface ShortcutOverride {
1880
+ shortcutId: string;
1881
+ newKey: string;
1882
+ newCtrlKey?: boolean;
1883
+ newAltKey?: boolean;
1884
+ newShiftKey?: boolean;
1885
+ newMetaKey?: boolean;
1886
+ }
1887
+ declare class KeyboardShortcutService implements OnDestroy {
1888
+ private shortcuts;
1889
+ private overrides;
1890
+ private keydownListener?;
1891
+ constructor();
1892
+ ngOnDestroy(): void;
2203
1893
  /**
2204
- * Get file details by ID
2205
- * @param payload The file ID to fetch details for
2206
- * @returns Observable with file details
1894
+ * Register a new keyboard shortcut
2207
1895
  */
2208
- getFileDetails(payload: MFileManager): Observable<fileManagerControllerResponse>;
1896
+ register(shortcut: KeyboardShortcut): void;
2209
1897
  /**
2210
- * Get files by group ID and store them in service state
2211
- * @param groupId The group ID to fetch files for
2212
- * @returns Observable with files list
1898
+ * Override an existing shortcut with new key combination
2213
1899
  */
2214
- getFilesByGroupId(groupId: string): Observable<fileManagerListByGroupIdControllerResponse>;
1900
+ override(shortcutId: string, newKey: string, options?: {
1901
+ ctrlKey?: boolean;
1902
+ altKey?: boolean;
1903
+ shiftKey?: boolean;
1904
+ metaKey?: boolean;
1905
+ }): void;
2215
1906
  /**
2216
- * Fetch and store files by group ID in service state
2217
- * @param groupId The group ID to fetch files for
2218
- * @returns Observable that completes when files are stored
1907
+ * Remove a shortcut
2219
1908
  */
2220
- fetchAndStoreFilesByGroupId(groupId: string): Observable<any[]>;
1909
+ unregister(shortcutId: string): void;
2221
1910
  /**
2222
- * Get fetched files for a specific group ID
2223
- * @param groupId The group ID to get files for
2224
- * @returns Array of files for the group
1911
+ * Remove override for a shortcut (restore original key combination)
2225
1912
  */
2226
- getFetchedFilesByGroupId(groupId: string): any[];
1913
+ removeOverride(shortcutId: string): void;
1914
+ /**
1915
+ * Get all registered shortcuts
1916
+ */
1917
+ getAllShortcuts(): KeyboardShortcut[];
1918
+ /**
1919
+ * Get shortcuts by category or filter
1920
+ */
1921
+ getShortcuts(filter?: (shortcut: KeyboardShortcut) => boolean): KeyboardShortcut[];
2227
1922
  /**
2228
- * Signal to trigger floating uploader visibility
1923
+ * Check if a shortcut is registered
2229
1924
  */
2230
- private readonly _showFloatingUploader;
2231
- private readonly _triggerGroupId;
2232
- readonly showFloatingUploader: _angular_core.Signal<boolean>;
2233
- readonly getTriggerGroupId: _angular_core.Signal<string | null>;
1925
+ hasShortcut(shortcutId: string): boolean;
2234
1926
  /**
2235
- * Trigger floating uploader to show with group ID
2236
- * This is the ONLY way to pass group ID to floating uploader
1927
+ * Get shortcut information
2237
1928
  */
2238
- triggerFloatingUploaderShow(groupId?: string): void;
1929
+ getShortcut(shortcutId: string): KeyboardShortcut | undefined;
2239
1930
  /**
2240
- * Get all files (active uploads + fetched files) for a group ID
2241
- * @param groupId The group ID to get files for
2242
- * @returns Combined array of active and fetched files
1931
+ * Clear all shortcuts
2243
1932
  */
2244
- getAllFilesForGroup(groupId: string): Array<{
2245
- fileId: string;
2246
- fileName: string;
2247
- stage: string;
2248
- percentage?: number;
2249
- }>;
1933
+ clearAll(): void;
2250
1934
  /**
2251
- * Get file name from file ID (extract from the ID format)
1935
+ * Set up global keyboard listener
2252
1936
  */
2253
- private getFileNameFromId;
1937
+ private setupGlobalListener;
2254
1938
  /**
2255
- * Angular 20: Service utility methods
1939
+ * Remove global keyboard listener
2256
1940
  */
2257
- clearError(): void;
2258
- getUploadProgress(fileId: string): UploadProgress | undefined;
2259
- cancelUpload(fileId: string): void;
1941
+ private removeGlobalListener;
2260
1942
  /**
2261
- * Clear all completed uploads from active uploads
2262
- * Called when the floating uploader is closed
1943
+ * Handle keydown events
2263
1944
  */
2264
- clearCompletedUploads(): void;
1945
+ private handleKeydown;
2265
1946
  /**
2266
- * Remove a specific completed upload from active uploads
1947
+ * Check if event matches shortcut
2267
1948
  */
2268
- removeCompletedUpload(fileId: string): void;
1949
+ private matchesShortcut;
2269
1950
  /**
2270
- * Optimized method to get file count for a specific group
2271
- * Uses computed property for better performance
1951
+ * Check if event matches override
2272
1952
  */
2273
- getFileCountForGroup(groupId: string): number;
1953
+ private matchesOverride;
2274
1954
  /**
2275
- * Optimized method to check if group has active uploads
1955
+ * Get human-readable key description
2276
1956
  */
2277
- hasActiveUploadsForGroup(groupId: string): boolean;
1957
+ private getKeyDescription;
2278
1958
  /**
2279
- * Angular 20: File validation utility
1959
+ * Get key description for a shortcut ID
2280
1960
  */
2281
- validateFile(file: File, maxSizeMB?: number, allowedTypes?: string[]): {
2282
- valid: boolean;
2283
- error?: string;
1961
+ getKeyDescriptionForShortcut(shortcutId: string): string;
1962
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KeyboardShortcutService, never>;
1963
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<KeyboardShortcutService>;
1964
+ }
1965
+
1966
+ /**
1967
+ * Directive to display images from file manager by ID
1968
+ * Usage: <img cideEleFileImage [fileId]="yourFileId" [altText]="'Image'" class="your-css-classes" />
1969
+ */
1970
+ declare class CideEleFileImageDirective implements OnInit, OnDestroy {
1971
+ fileId: string | null;
1972
+ altText: string;
1973
+ private readonly fileManagerService;
1974
+ private readonly elementRef;
1975
+ private readonly destroyRef;
1976
+ ngOnInit(): void;
1977
+ ngOnDestroy(): void;
1978
+ private loadImage;
1979
+ private displayImage;
1980
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFileImageDirective, never>;
1981
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CideEleFileImageDirective, "[cideEleFileImage]", never, { "fileId": { "alias": "fileId"; "required": false; }; "altText": { "alias": "altText"; "required": false; }; }, {}, never, never, true, never>;
1982
+ }
1983
+
1984
+ declare class CideFormFieldErrorComponent implements OnInit, OnChanges {
1985
+ control: AbstractControl;
1986
+ formGroup: FormGroup;
1987
+ fieldName: string;
1988
+ customMessages: {
1989
+ [key: string]: string;
1990
+ };
1991
+ private fieldLabelsMap;
1992
+ private elementService;
1993
+ formErrors: _angular_core.WritableSignal<string[]>;
1994
+ ngOnInit(): void;
1995
+ ngOnChanges(changes: SimpleChanges): void;
1996
+ private setupFormChangeListener;
1997
+ private updateFormErrors;
1998
+ private loadFormErrors;
1999
+ isFormGroupMode(): boolean;
2000
+ getFormGroupErrors(): Promise<string[]>;
2001
+ private buildFieldLabelsMap;
2002
+ getFormGroupErrorMessage(): string;
2003
+ getControlErrorMessage(control: AbstractControl, fieldName: string): string;
2004
+ getErrorMessage(): string;
2005
+ private getFieldDisplayName;
2006
+ private convertToDisplayName;
2007
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideFormFieldErrorComponent, never>;
2008
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideFormFieldErrorComponent, "cide-form-field-error", never, { "control": { "alias": "control"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": false; }; "fieldName": { "alias": "fieldName"; "required": false; }; "customMessages": { "alias": "customMessages"; "required": false; }; }, {}, never, never, true, never>;
2009
+ }
2010
+
2011
+ interface ConfirmationRequest<T = unknown> {
2012
+ id: string;
2013
+ title: string;
2014
+ message: string;
2015
+ type: 'danger' | 'warning' | 'info' | 'success';
2016
+ icon?: string;
2017
+ confirmText?: string;
2018
+ cancelText?: string;
2019
+ customTemplate?: TemplateRef<unknown>;
2020
+ customData?: T;
2021
+ resolve: (value: boolean | T) => void;
2022
+ reject: (reason?: unknown) => void;
2023
+ }
2024
+
2025
+ declare class CideEleConfirmationModalComponent implements OnInit, OnDestroy {
2026
+ private readonly confirmationService;
2027
+ readonly hasActiveConfirmation: _angular_core.Signal<boolean>;
2028
+ readonly currentRequest: _angular_core.WritableSignal<ConfirmationRequest<unknown> | null>;
2029
+ readonly customData: _angular_core.WritableSignal<unknown>;
2030
+ ngOnInit(): void;
2031
+ ngOnDestroy(): void;
2032
+ readonly getHeaderClass: _angular_core.Signal<string>;
2033
+ readonly getIconClass: _angular_core.Signal<string>;
2034
+ readonly getConfirmButtonClass: _angular_core.Signal<string>;
2035
+ onBackdropClick(event: Event): void;
2036
+ onCancel(): void;
2037
+ onConfirm(): void;
2038
+ updateCustomData(data: unknown): void;
2039
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleConfirmationModalComponent, never>;
2040
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleConfirmationModalComponent, "cide-ele-confirmation-modal", never, {}, {}, never, never, true, never>;
2041
+ }
2042
+
2043
+ declare class CideEleGlobalNotificationsComponent {
2044
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleGlobalNotificationsComponent, never>;
2045
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleGlobalNotificationsComponent, "cide-ele-global-notifications", never, {}, {}, never, never, true, never>;
2046
+ }
2047
+
2048
+ declare class CideEleToastNotificationComponent {
2049
+ private notificationService;
2050
+ activeNotifications: _angular_core.Signal<NotificationItem[]>;
2051
+ getToastClass(notification: NotificationItem): string;
2052
+ getIconClass(type: string): string;
2053
+ removeNotification(id: string): void;
2054
+ executeUndo(id: string): void;
2055
+ trackByNotification(index: number, notification: NotificationItem): string;
2056
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleToastNotificationComponent, never>;
2057
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleToastNotificationComponent, "cide-ele-toast-notification", never, {}, {}, never, never, true, never>;
2058
+ }
2059
+
2060
+ type ColumnType = 'text' | 'number' | 'date' | 'boolean' | 'status' | 'actions' | 'custom' | 'order';
2061
+ type ColumnWidth = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'auto' | string;
2062
+ type TextAlign = 'left' | 'center' | 'right';
2063
+ interface GridColumn {
2064
+ key: string;
2065
+ header: string;
2066
+ type: ColumnType;
2067
+ width?: ColumnWidth;
2068
+ sortable?: boolean;
2069
+ searchable?: boolean;
2070
+ truncate?: boolean;
2071
+ align?: TextAlign;
2072
+ renderer?: string;
2073
+ valueGetter?: string;
2074
+ formatter?: GridFormatter;
2075
+ actions?: GridAction[];
2076
+ statusConfig?: StatusConfig;
2077
+ }
2078
+ interface GridFormatter {
2079
+ type: 'date' | 'currency' | 'percentage' | 'custom';
2080
+ format?: string;
2081
+ customFunction?: string;
2082
+ }
2083
+ interface StatusConfig {
2084
+ activeValue: string | number | boolean;
2085
+ activeLabel: string;
2086
+ inactiveLabel: string;
2087
+ activeClass: string;
2088
+ inactiveClass: string;
2089
+ }
2090
+ interface GridAction {
2091
+ key: string;
2092
+ label: string;
2093
+ icon: string;
2094
+ variant: 'ghost' | 'primary' | 'outline' | 'danger';
2095
+ tooltip?: string;
2096
+ condition?: string;
2097
+ onClick: string;
2098
+ }
2099
+ interface GridPaginationConfig {
2100
+ enabled: boolean;
2101
+ pageSize: number;
2102
+ pageSizeOptions: number[];
2103
+ showQuickJump: boolean;
2104
+ showPageInfo: boolean;
2105
+ showRefresh: boolean;
2106
+ }
2107
+ interface GridSearchConfig {
2108
+ enabled: boolean;
2109
+ placeholder: string;
2110
+ searchableColumns: string[];
2111
+ debounceMs?: number;
2112
+ }
2113
+ interface GridExportConfig {
2114
+ enabled: boolean;
2115
+ formats: ('csv' | 'excel' | 'pdf')[];
2116
+ filename?: string;
2117
+ }
2118
+ interface GridLoadingConfig {
2119
+ useDefer: boolean;
2120
+ skeletonRows: number;
2121
+ showOverlay: boolean;
2122
+ }
2123
+ interface GridScrollConfig {
2124
+ enabled: boolean;
2125
+ maxHeight?: string;
2126
+ minHeight?: string;
2127
+ stickyHeader?: boolean;
2128
+ virtualScroll?: boolean;
2129
+ rowHeight?: number;
2130
+ }
2131
+ interface GridTreeConfig {
2132
+ enabled: boolean;
2133
+ primaryKey: string;
2134
+ foreignKey: string;
2135
+ childrenKey?: string;
2136
+ levelKey?: string;
2137
+ expandedKey?: string;
2138
+ hasChildrenKey?: string;
2139
+ }
2140
+ interface GridDragDropConfig {
2141
+ enabled: boolean;
2142
+ dragHandle?: string;
2143
+ orderField?: string;
2144
+ dragClass?: string;
2145
+ dropClass?: string;
2146
+ }
2147
+ interface GridConfiguration<T = Record<string, unknown>> {
2148
+ id: string;
2149
+ title?: string;
2150
+ subtitle?: string;
2151
+ columns: GridColumn[];
2152
+ data: T[];
2153
+ trackBy?: string;
2154
+ pagination: GridPaginationConfig;
2155
+ search: GridSearchConfig;
2156
+ export?: GridExportConfig;
2157
+ loading: GridLoadingConfig;
2158
+ scroll?: GridScrollConfig;
2159
+ tree?: GridTreeConfig;
2160
+ dragDrop?: GridDragDropConfig;
2161
+ responsive: boolean;
2162
+ striped?: boolean;
2163
+ bordered?: boolean;
2164
+ compact?: boolean;
2165
+ fullHeight?: boolean;
2166
+ onRowClick?: string;
2167
+ onSort?: string;
2168
+ onPageChange?: string;
2169
+ onSearch?: string;
2170
+ onRefresh?: string;
2171
+ onExport?: string;
2172
+ onRowReorder?: string;
2173
+ tableClass?: string;
2174
+ headerClass?: string;
2175
+ rowClass?: string;
2176
+ cellClass?: string;
2177
+ }
2178
+ interface GridState<T = Record<string, unknown>> {
2179
+ currentPage: number;
2180
+ pageSize: number;
2181
+ totalItems: number;
2182
+ totalPages: number;
2183
+ searchQuery: string;
2184
+ sortColumn?: string;
2185
+ sortDirection?: 'asc' | 'desc';
2186
+ loading: boolean;
2187
+ isRefreshing: boolean;
2188
+ selectedRows: T[];
2189
+ }
2190
+ interface GridEvent<T = Record<string, unknown>> {
2191
+ type: 'rowClick' | 'sort' | 'pageChange' | 'search' | 'refresh' | 'export' | 'action' | 'rowReorder';
2192
+ data: T | T[] | string | number | null | {
2193
+ sourceItem: T;
2194
+ sourceIndex: number;
2195
+ targetItem: T;
2196
+ targetIndex: number;
2197
+ newOrder: T[];
2198
+ allOrders?: T[];
2284
2199
  };
2285
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFileManagerService, never>;
2286
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideEleFileManagerService>;
2200
+ column?: GridColumn;
2201
+ action?: GridAction;
2287
2202
  }
2203
+ declare const DEFAULT_GRID_CONFIG: Partial<GridConfiguration>;
2204
+ type GridEventHandler<T = Record<string, unknown>> = (event: GridEvent<T>) => void;
2205
+ type GridCustomRenderer<T = Record<string, unknown>> = (value: unknown, row: T, column: GridColumn) => string;
2206
+ type GridCustomFormatter = (value: unknown, format?: string) => string;
2288
2207
 
2289
- declare class CideCoreFileManagerService {
2290
- private http;
2291
- private apiUrl;
2292
- private fileListSubject;
2293
- fileList$: Observable<ICoreFileManager[]>;
2294
- constructor(http: HttpClient);
2295
- /**
2296
- * Get file list from API
2297
- */
2298
- getFileList(body: IFileListRequest): Observable<IFileListResponse>;
2299
- /**
2300
- * Get file list using mock data (deprecated - use getFileList instead)
2301
- */
2302
- getFileListWithMockData(_body: IFileListRequest): Observable<IFileListResponse>;
2303
- /**
2304
- * Get file list from cache (if available)
2305
- */
2306
- getFileListFromCache(): ICoreFileManager[];
2307
- /**
2308
- * Upload file with progress tracking
2309
- */
2310
- uploadFile(request: IFileUploadRequest): Observable<HttpEvent<IFileUploadResponse>>;
2208
+ interface TemplateContext<T = Record<string, unknown>> {
2209
+ $implicit: unknown;
2210
+ row: T;
2211
+ value: unknown;
2212
+ column: GridColumn;
2213
+ }
2214
+ type TemplateRenderer<T = Record<string, unknown>> = TemplateRef<TemplateContext<T>>;
2215
+ declare class CideEleDataGridComponent<T = Record<string, unknown>> implements OnInit, OnChanges, OnDestroy {
2216
+ config: GridConfiguration<T>;
2217
+ templateRenderers: Record<string, unknown>;
2218
+ customFormatters: Record<string, (value: unknown, format?: string) => string>;
2219
+ actionHandlers: Record<string, (data: T, action?: GridAction) => void>;
2220
+ serverSidePagination: boolean;
2221
+ totalServerItems: number;
2222
+ currentServerPage: number;
2223
+ currentServerPageSize: number;
2224
+ dragDropEnabled: boolean;
2225
+ gridEvent: EventEmitter<GridEvent<T>>;
2226
+ private internalData;
2227
+ private filteredData;
2228
+ currentPage: _angular_core.WritableSignal<number>;
2229
+ pageSize: _angular_core.WritableSignal<number>;
2230
+ totalItems: _angular_core.WritableSignal<number>;
2231
+ totalPages: _angular_core.WritableSignal<number>;
2232
+ searchQuery: _angular_core.WritableSignal<string>;
2233
+ loading: _angular_core.WritableSignal<boolean>;
2234
+ isRefreshing: _angular_core.WritableSignal<boolean>;
2235
+ pageChangeLoading: _angular_core.WritableSignal<boolean>;
2236
+ jumpToPage: number;
2237
+ isDragOverRow: number | null;
2238
+ isDragging: _angular_core.WritableSignal<boolean>;
2239
+ hasOrderChanged: _angular_core.WritableSignal<boolean>;
2240
+ private originalOrderIds;
2241
+ private initialDataOrderIds;
2242
+ private rowOrderMap;
2243
+ private localReorderedData;
2244
+ private searchDebounceTimer?;
2245
+ private isDataUpdate;
2246
+ hasNextPage: _angular_core.Signal<boolean>;
2247
+ hasPreviousPage: _angular_core.Signal<boolean>;
2248
+ mergedConfig: _angular_core.WritableSignal<GridConfiguration<T>>;
2249
+ ngOnInit(): void;
2250
+ ngOnDestroy(): void;
2251
+ ngOnChanges(changes: SimpleChanges): void;
2311
2252
  /**
2312
- * Upload file with progress tracking (mock version - deprecated)
2253
+ * Check if the config change is only a data update
2313
2254
  */
2314
- uploadFileWithMockData(request: IFileUploadRequest): Observable<HttpEvent<IFileUploadResponse>>;
2255
+ private isDataOnlyUpdate;
2315
2256
  /**
2316
- * Update file metadata
2257
+ * Update only the data without triggering full grid re-initialization
2258
+ * This prevents the search input and other UI state from being reset
2317
2259
  */
2318
- updateFile(request: IFileUpdateRequest): Observable<IFileUpdateResponse>;
2260
+ private updateDataOnly;
2261
+ private mergeConfigWithDefaults;
2262
+ private initializeGrid;
2319
2263
  /**
2320
- * Delete file
2264
+ * Get the unique identifier for an item
2321
2265
  */
2322
- deleteFile(id: string): Observable<IFileDeleteResponse>;
2266
+ private getItemId;
2323
2267
  /**
2324
- * Delete multiple files
2268
+ * Get the order value for an item from the config
2325
2269
  */
2326
- deleteMultipleFiles(ids: string[]): Observable<{
2327
- success: boolean;
2328
- message?: string;
2329
- data?: unknown;
2330
- }>;
2270
+ private getItemOrder;
2331
2271
  /**
2332
- * Toggle file active status
2272
+ * Initialize the original order for drag and drop
2333
2273
  */
2334
- toggleFileStatus(id: string): Observable<IFileListResponse>;
2274
+ private initializeOriginalOrder;
2335
2275
  /**
2336
- * Get file by ID
2276
+ * Refresh order tracking with current data (called when data updates)
2337
2277
  */
2338
- getFileById(id: string): Observable<{
2339
- success: boolean;
2340
- message: string;
2341
- data?: ICoreFileManager;
2342
- }>;
2278
+ private refreshOrderTracking;
2279
+ private applyFilters;
2343
2280
  /**
2344
- * Find file by ID
2281
+ * Preserve tree expansion state from current data
2345
2282
  */
2346
- findFileById(id: string, items?: ICoreFileManager[]): ICoreFileManager | null;
2283
+ private preserveTreeExpansionState;
2347
2284
  /**
2348
- * Get file size in human readable format
2285
+ * Apply preserved tree expansion state to new data
2349
2286
  */
2350
- getFileSizeDisplay(bytes: number): string;
2287
+ private applyTreeExpansionState;
2351
2288
  /**
2352
- * Get file type icon
2289
+ * Transform flat data to tree structure based on foreign key relationships
2353
2290
  */
2354
- getFileTypeIcon(fileType: string): string;
2291
+ private transformToTree;
2355
2292
  /**
2356
- * Refresh file list from server
2293
+ * Recursively calculate item level in hierarchy for unlimited depth support
2357
2294
  */
2358
- private refreshFileList;
2295
+ private calculateItemLevel;
2359
2296
  /**
2360
- * Handle errors
2297
+ * Flatten tree structure for display, respecting expansion state with unlimited nesting
2361
2298
  */
2362
- private handleError;
2363
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideCoreFileManagerService, never>;
2364
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideCoreFileManagerService>;
2365
- }
2366
-
2367
- declare class CideEleConfirmationModalComponent implements OnInit, OnDestroy {
2368
- private readonly confirmationService;
2369
- readonly hasActiveConfirmation: _angular_core.Signal<boolean>;
2370
- readonly currentRequest: _angular_core.WritableSignal<cloud_ide_element.ConfirmationRequest<unknown> | null>;
2371
- readonly customData: _angular_core.WritableSignal<unknown>;
2372
- ngOnInit(): void;
2373
- ngOnDestroy(): void;
2374
- readonly getHeaderClass: _angular_core.Signal<string>;
2375
- readonly getIconClass: _angular_core.Signal<string>;
2376
- readonly getConfirmButtonClass: _angular_core.Signal<string>;
2377
- onBackdropClick(event: Event): void;
2378
- onCancel(): void;
2379
- onConfirm(): void;
2380
- updateCustomData(data: unknown): void;
2381
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleConfirmationModalComponent, never>;
2382
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleConfirmationModalComponent, "cide-ele-confirmation-modal", never, {}, {}, never, never, true, never>;
2383
- }
2384
-
2385
- declare class CideEleToastNotificationComponent {
2386
- private notificationService;
2387
- activeNotifications: _angular_core.Signal<NotificationItem[]>;
2388
- getToastClass(notification: NotificationItem): string;
2389
- getIconClass(type: string): string;
2390
- removeNotification(id: string): void;
2391
- executeUndo(id: string): void;
2392
- trackByNotification(index: number, notification: NotificationItem): string;
2393
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleToastNotificationComponent, never>;
2394
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleToastNotificationComponent, "cide-ele-toast-notification", never, {}, {}, never, never, true, never>;
2395
- }
2396
-
2397
- declare class CideEleGlobalNotificationsComponent {
2398
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleGlobalNotificationsComponent, never>;
2399
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleGlobalNotificationsComponent, "cide-ele-global-notifications", never, {}, {}, never, never, true, never>;
2400
- }
2401
-
2402
- interface JsonEditorConfig {
2403
- /** Enable syntax highlighting */
2404
- syntaxHighlighting?: boolean;
2405
- /** Enable line numbers */
2406
- showLineNumbers?: boolean;
2407
- /** Enable auto-formatting */
2408
- autoFormat?: boolean;
2409
- /** Enable validation */
2410
- validateOnChange?: boolean;
2411
- /** Theme for the editor */
2412
- theme?: 'light' | 'dark';
2413
- /** Minimum height in pixels */
2414
- minHeight?: number;
2415
- /** Maximum height in pixels */
2416
- maxHeight?: number;
2417
- /** Placeholder text */
2418
- placeholder?: string;
2419
- /** Read-only mode */
2420
- readOnly?: boolean;
2421
- /** Show error messages */
2422
- showErrors?: boolean;
2423
- }
2424
- interface JsonEditorError {
2425
- line: number;
2426
- column: number;
2427
- message: string;
2428
- type: 'syntax' | 'validation';
2429
- }
2430
- declare class CideEleJsonEditorComponent implements OnInit, ControlValueAccessor {
2431
- label?: string;
2432
- helperText?: string;
2433
- required: boolean;
2434
- disabled: _angular_core.WritableSignal<boolean>;
2435
- showCharacterCount: boolean;
2436
- config: JsonEditorConfig;
2437
- configSignal: _angular_core.WritableSignal<JsonEditorConfig>;
2438
- valueChange: EventEmitter<string>;
2439
- objectChange: EventEmitter<object | null>;
2440
- errorsChange: EventEmitter<JsonEditorError[]>;
2441
- validChange: EventEmitter<boolean>;
2442
- jsonTextarea: _angular_core.Signal<ElementRef<HTMLTextAreaElement>>;
2443
- private destroyRef;
2444
- jsonString: _angular_core.WritableSignal<string>;
2445
- jsonObject: _angular_core.WritableSignal<object | null>;
2446
- errors: _angular_core.WritableSignal<JsonEditorError[]>;
2447
- editorId: string;
2448
- hasErrors: _angular_core.Signal<boolean>;
2449
- isValid: _angular_core.Signal<boolean>;
2450
- lineNumbers: _angular_core.Signal<number[]>;
2451
- containerClass: _angular_core.Signal<string>;
2452
- private defaultConfig;
2453
- ngOnInit(): void;
2299
+ private flattenTreeForDisplay;
2454
2300
  /**
2455
- * Handle input changes
2301
+ * Toggle expand/collapse state of a tree item with unlimited nesting support
2456
2302
  */
2457
- onInput(event: Event): void;
2303
+ private toggleTreeExpand;
2304
+ private updatePaginationState;
2305
+ onPageChange(page: number | string): void;
2306
+ onPageSizeChange(): void;
2307
+ updatePageSize(value: string | number | string[]): void;
2308
+ previousPage(): void;
2309
+ nextPage(): void;
2310
+ onJumpToPage(): void;
2311
+ getEnhancedPageNumbers(): (number | string)[];
2312
+ updateSearchQuery(value: inputType): void;
2313
+ onSearch(): void;
2314
+ onRefresh(): void;
2315
+ setRefreshing(isRefreshing: boolean): void;
2316
+ clearPageChangeLoading(): void;
2458
2317
  /**
2459
- * Handle blur event
2318
+ * Check if tree view is enabled
2460
2319
  */
2461
- onBlur(): void;
2320
+ isTreeEnabled(): boolean;
2462
2321
  /**
2463
- * Parse JSON string and emit object
2322
+ * Get tree configuration
2464
2323
  */
2465
- private parseJson;
2324
+ getTreeConfig(): cloud_ide_element.GridTreeConfig | undefined;
2466
2325
  /**
2467
- * Validate JSON and update errors
2326
+ * Check if an item has children
2468
2327
  */
2469
- private validateJson;
2328
+ hasChildren(item: T): boolean;
2470
2329
  /**
2471
- * Format JSON with proper indentation
2330
+ * Get item level in tree
2472
2331
  */
2473
- formatJson(): void;
2332
+ getItemLevel(item: T): number;
2474
2333
  /**
2475
- * Check if there's an error on a specific line
2334
+ * Check if item is expanded
2476
2335
  */
2477
- hasErrorOnLine(line: number): boolean;
2336
+ isItemExpanded(item: T): boolean;
2478
2337
  /**
2479
- * Get error ID for accessibility
2338
+ * Get tree indent style
2480
2339
  */
2481
- errorId(): string;
2340
+ getTreeIndentStyle(item: T): string;
2482
2341
  /**
2483
- * Focus the editor
2342
+ * Get tree level background class for visual distinction
2484
2343
  */
2485
- focus(): void;
2344
+ getTreeLevelClass(item: T): string;
2486
2345
  /**
2487
- * Clear the editor
2346
+ * Check if drag and drop is enabled
2488
2347
  */
2489
- clear(): void;
2348
+ isDragDropEnabled(): boolean;
2490
2349
  /**
2491
- * Get current JSON object
2350
+ * Get drag and drop configuration
2492
2351
  */
2493
- getValue(): object | null;
2352
+ getDragDropConfig(): cloud_ide_element.GridDragDropConfig | undefined;
2494
2353
  /**
2495
- * Get current JSON string
2354
+ * Handle drag start event
2496
2355
  */
2497
- getStringValue(): string;
2356
+ onDragStart(event: DragEvent, item: T, index: number): void;
2498
2357
  /**
2499
- * Check if JSON is valid
2358
+ * Handle drag over event
2500
2359
  */
2501
- isValidJson(): boolean;
2360
+ onDragOver(event: DragEvent): void;
2502
2361
  /**
2503
- * Get validation errors
2362
+ * Handle drag leave event
2504
2363
  */
2505
- getErrors(): JsonEditorError[];
2506
- writeValue(value: string | object | null | undefined): void;
2507
- registerOnChange(fn: (value: string) => void): void;
2508
- registerOnTouched(fn: () => void): void;
2509
- setDisabledState(isDisabled: boolean): void;
2510
- private onChange;
2511
- private onTouched;
2512
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleJsonEditorComponent, never>;
2513
- static ɵcmp: _angular_core.ɵɵ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>;
2364
+ onDragLeave(event: DragEvent): void;
2365
+ /**
2366
+ * Handle drop event
2367
+ */
2368
+ onDrop(event: DragEvent, targetItem: T, targetIndex: number): void;
2369
+ /**
2370
+ * Handle drag end event
2371
+ */
2372
+ onDragEnd(event: DragEvent): void;
2373
+ /**
2374
+ * Calculate new order after reordering
2375
+ */
2376
+ private getNewOrder;
2377
+ /**
2378
+ * Get the current order number for a specific item
2379
+ */
2380
+ getCurrentOrderNumber(item: T): number;
2381
+ /**
2382
+ * Update the row order map with new positions after reordering
2383
+ */
2384
+ private updateRowOrderMap;
2385
+ /**
2386
+ * Check if any row has changed position by comparing old vs new positions
2387
+ */
2388
+ private checkIfOrderChanged;
2389
+ /**
2390
+ * Reset the row order map to original positions (for reset action)
2391
+ * Includes all items from hierarchical structure (parents and children)
2392
+ */
2393
+ private resetRowOrderMap;
2394
+ /**
2395
+ * Update the row order map baseline to current positions (for save action)
2396
+ * Includes all items from hierarchical structure (parents and children)
2397
+ */
2398
+ private updateRowOrderMapBaseline;
2399
+ /**
2400
+ * Get the current order array from the row order map
2401
+ * Includes all items from hierarchical structure (parents and children)
2402
+ */
2403
+ private getCurrentOrderFromMap;
2404
+ /**
2405
+ * Get only the items that have actually changed order
2406
+ * Includes all items from hierarchical structure (parents and children)
2407
+ */
2408
+ private getChangedOrders;
2409
+ /**
2410
+ * Flatten all data for order tracking (includes all hierarchical children)
2411
+ * This method ensures that all items (parents and children) are included in order tracking
2412
+ */
2413
+ private flattenAllDataForOrderTracking;
2414
+ /**
2415
+ * Update local data order for visual reordering (LOCAL ONLY)
2416
+ */
2417
+ private updateLocalDataOrder;
2418
+ /**
2419
+ * Check if the current order has changed from the initial order
2420
+ */
2421
+ private checkOrderChanged;
2422
+ onRowClick(item: T): void;
2423
+ onActionClick(item: T, action: GridAction): void;
2424
+ private emitEvent;
2425
+ /**
2426
+ * Get nested value from an object
2427
+ * @param obj - The object to get the nested value from
2428
+ * @param path - The path to the nested value (e.g., 'contact.email')
2429
+ * @returns The nested value or undefined if not found
2430
+ * @example
2431
+ * const obj = { contact: { email: 'test@example.com' } };
2432
+ * const value = getNestedValue(obj, 'contact.email');
2433
+ * // value === 'test@example.com'
2434
+ */
2435
+ getNestedValue(obj: T, path: string): unknown;
2436
+ /**
2437
+ * Set a nested value in an object using dot notation
2438
+ * @param obj The object to modify
2439
+ * @param path The dot notation path (e.g., 'contact.email')
2440
+ * @param value The value to set
2441
+ * @example
2442
+ * const obj = { contact: { email: 'old@example.com' } };
2443
+ * setNestedValue(obj, 'contact.email', 'new@example.com');
2444
+ * // obj.contact.email === 'new@example.com'
2445
+ */
2446
+ setNestedValue(obj: T, path: string, value: unknown): void;
2447
+ /**
2448
+ * Compare two order arrays to check if they are different
2449
+ * This method can be used by parent components to check if order has actually changed
2450
+ * @param currentOrder Current order array
2451
+ * @param originalOrder Original order array
2452
+ * @returns true if orders are different, false if they are the same
2453
+ */
2454
+ compareOrders(currentOrder: Array<{
2455
+ id: string | undefined;
2456
+ order: number | undefined;
2457
+ }>, originalOrder: Array<{
2458
+ id: string | undefined;
2459
+ order: number | undefined;
2460
+ }>): boolean;
2461
+ formatValue(value: unknown, column: GridColumn): string;
2462
+ private formatDate;
2463
+ private formatCurrency;
2464
+ private formatPercentage;
2465
+ isTemplateRenderer(rendererKey: string): boolean;
2466
+ getTemplateRenderer(rendererKey: string): TemplateRenderer<T> | null;
2467
+ getTemplateContext(value: unknown, row: T, column: GridColumn): TemplateContext<T>;
2468
+ getColumnWidthClass(width?: ColumnWidth): string;
2469
+ getColumnMaxWidthClass(width?: ColumnWidth): string;
2470
+ getStatusClass(value: unknown, statusConfig?: StatusConfig): string;
2471
+ getStatusText(value: unknown, statusConfig?: StatusConfig): string;
2472
+ getItemRangeText(): string;
2473
+ getPageSizeOptions(): {
2474
+ value: number;
2475
+ label: string;
2476
+ }[];
2477
+ trackByFn(index: number, item: T): unknown;
2478
+ getSkeletonArray(): number[];
2479
+ get displayedData(): T[];
2480
+ get columns(): GridColumn[];
2481
+ get paginationConfig(): cloud_ide_element.GridPaginationConfig;
2482
+ get searchConfig(): cloud_ide_element.GridSearchConfig;
2483
+ get loadingConfig(): cloud_ide_element.GridLoadingConfig;
2484
+ get scrollConfig(): cloud_ide_element.GridScrollConfig | undefined;
2485
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleDataGridComponent<any>, never>;
2486
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleDataGridComponent<any>, "cide-ele-data-grid", never, { "config": { "alias": "config"; "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>;
2487
+ }
2488
+
2489
+ interface DropdownItem {
2490
+ id: string;
2491
+ label: string;
2492
+ icon?: string;
2493
+ iconColor?: string;
2494
+ textColor?: string;
2495
+ hoverBgColor?: string;
2496
+ disabled?: boolean;
2497
+ divider?: boolean;
2498
+ }
2499
+ interface DropdownConfig {
2500
+ triggerIcon?: string;
2501
+ triggerSize?: 'xs' | 'sm' | 'md' | 'lg';
2502
+ triggerColor?: string;
2503
+ triggerHoverColor?: string;
2504
+ triggerHoverBgColor?: string;
2505
+ menuWidth?: string;
2506
+ menuPosition?: 'left' | 'right' | 'auto';
2507
+ showArrow?: boolean;
2508
+ forcePosition?: 'top' | 'bottom' | 'left' | 'right';
2509
+ offsetX?: number;
2510
+ offsetY?: number;
2511
+ minWidth?: number;
2512
+ usePortal?: boolean;
2513
+ }
2514
+ interface DropdownPosition {
2515
+ vertical: 'top' | 'bottom';
2516
+ horizontal: 'left' | 'right';
2517
+ spaceAvailable: {
2518
+ top: number;
2519
+ bottom: number;
2520
+ left: number;
2521
+ right: number;
2522
+ };
2523
+ }
2524
+ declare class CideEleDropdownComponent implements OnInit, OnDestroy {
2525
+ private destroyRef;
2526
+ private dropdownManager;
2527
+ private portalService;
2528
+ private viewContainerRef;
2529
+ private dropdownId;
2530
+ private portalId;
2531
+ dropdownContainer: _angular_core.Signal<ElementRef<any>>;
2532
+ dropdownMenu: _angular_core.Signal<ElementRef<any> | undefined>;
2533
+ dropdownMenuTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
2534
+ set items(value: DropdownItem[]);
2535
+ get items(): DropdownItem[];
2536
+ private _items;
2537
+ config: DropdownConfig;
2538
+ triggerTemplate?: TemplateRef<{
2539
+ $implicit: boolean;
2540
+ }>;
2541
+ menuTemplate?: TemplateRef<{
2542
+ $implicit: DropdownItem[];
2543
+ }>;
2544
+ itemClick: EventEmitter<DropdownItem>;
2545
+ dropdownToggle: EventEmitter<boolean>;
2546
+ isOpen: _angular_core.WritableSignal<boolean>;
2547
+ currentPosition: _angular_core.WritableSignal<DropdownPosition>;
2548
+ ngOnInit(): void;
2549
+ getTriggerClasses(): string;
2550
+ getTriggerIconClasses(): string;
2551
+ getMenuClasses(): string;
2552
+ getMenuStyles(): string;
2553
+ calculatePosition(): DropdownPosition;
2554
+ private getMenuWidth;
2555
+ protected getSafeConfig(): DropdownConfig;
2556
+ private getEstimatedMenuHeight;
2557
+ toggleDropdown(event: Event): void;
2558
+ private openDropdown;
2559
+ testMouseDown(item: DropdownItem): void;
2560
+ onItemClick(item: DropdownItem, event: Event): void;
2561
+ private createPortalDropdown;
2562
+ private destroyPortalDropdown;
2563
+ closeDropdown(): void;
2564
+ getItemClasses(item: DropdownItem): string;
2565
+ onWindowResize(): void;
2566
+ onWindowScroll(): void;
2567
+ ngOnDestroy(): void;
2568
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleDropdownComponent, never>;
2569
+ static ɵcmp: _angular_core.ɵɵ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>;
2514
2570
  }
2515
2571
 
2516
2572
  interface FloatingContainerConfig {
@@ -2820,274 +2876,130 @@ declare class CideEleFloatingContainerDynamicDirective implements OnInit, OnDest
2820
2876
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CideEleFloatingContainerDynamicDirective, "[cideEleFloatingDynamic]", never, { "componentId": { "alias": "componentId"; "required": false; }; "componentConfig": { "alias": "componentConfig"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; }, {}, never, never, true, never>;
2821
2877
  }
2822
2878
 
2823
- declare class FloatingContainerShortcutsService {
2824
- private keyboardShortcutService;
2825
- private containerService;
2826
- private readonly Z_INDEX_LAYERS;
2827
- constructor();
2879
+ interface JsonEditorConfig {
2880
+ /** Enable syntax highlighting */
2881
+ syntaxHighlighting?: boolean;
2882
+ /** Enable line numbers */
2883
+ showLineNumbers?: boolean;
2884
+ /** Enable auto-formatting */
2885
+ autoFormat?: boolean;
2886
+ /** Enable validation */
2887
+ validateOnChange?: boolean;
2888
+ /** Theme for the editor */
2889
+ theme?: 'light' | 'dark';
2890
+ /** Minimum height in pixels */
2891
+ minHeight?: number;
2892
+ /** Maximum height in pixels */
2893
+ maxHeight?: number;
2894
+ /** Placeholder text */
2895
+ placeholder?: string;
2896
+ /** Read-only mode */
2897
+ readOnly?: boolean;
2898
+ /** Show error messages */
2899
+ showErrors?: boolean;
2900
+ }
2901
+ interface JsonEditorError {
2902
+ line: number;
2903
+ column: number;
2904
+ message: string;
2905
+ type: 'syntax' | 'validation';
2906
+ }
2907
+ declare class CideEleJsonEditorComponent implements OnInit, ControlValueAccessor {
2908
+ label?: string;
2909
+ helperText?: string;
2910
+ required: boolean;
2911
+ disabled: _angular_core.WritableSignal<boolean>;
2912
+ showCharacterCount: boolean;
2913
+ config: JsonEditorConfig;
2914
+ configSignal: _angular_core.WritableSignal<JsonEditorConfig>;
2915
+ valueChange: EventEmitter<string>;
2916
+ objectChange: EventEmitter<object | null>;
2917
+ errorsChange: EventEmitter<JsonEditorError[]>;
2918
+ validChange: EventEmitter<boolean>;
2919
+ jsonTextarea: _angular_core.Signal<ElementRef<HTMLTextAreaElement>>;
2920
+ private destroyRef;
2921
+ jsonString: _angular_core.WritableSignal<string>;
2922
+ jsonObject: _angular_core.WritableSignal<object | null>;
2923
+ errors: _angular_core.WritableSignal<JsonEditorError[]>;
2924
+ editorId: string;
2925
+ hasErrors: _angular_core.Signal<boolean>;
2926
+ isValid: _angular_core.Signal<boolean>;
2927
+ lineNumbers: _angular_core.Signal<number[]>;
2928
+ containerClass: _angular_core.Signal<string>;
2929
+ private defaultConfig;
2930
+ ngOnInit(): void;
2828
2931
  /**
2829
- * Register default floating container shortcuts
2932
+ * Handle input changes
2830
2933
  */
2831
- private registerDefaultShortcuts;
2934
+ onInput(event: Event): void;
2832
2935
  /**
2833
- * Register number shortcuts (Alt + 1, Alt + 2, etc.)
2936
+ * Handle blur event
2834
2937
  */
2835
- private registerNumberShortcuts;
2938
+ onBlur(): void;
2836
2939
  /**
2837
- * Open new floating container
2940
+ * Parse JSON string and emit object
2838
2941
  */
2839
- private openNewContainer;
2942
+ private parseJson;
2840
2943
  /**
2841
- * Focus previous container
2944
+ * Validate JSON and update errors
2842
2945
  */
2843
- private focusPreviousContainer;
2946
+ private validateJson;
2844
2947
  /**
2845
- * Hide all containers
2948
+ * Format JSON with proper indentation
2846
2949
  */
2847
- private hideAllContainers;
2950
+ formatJson(): void;
2848
2951
  /**
2849
- * Show all containers
2952
+ * Check if there's an error on a specific line
2850
2953
  */
2851
- private showAllContainers;
2954
+ hasErrorOnLine(line: number): boolean;
2852
2955
  /**
2853
- * Minimize all containers
2956
+ * Get error ID for accessibility
2854
2957
  */
2855
- private minimizeAllContainers;
2958
+ errorId(): string;
2856
2959
  /**
2857
- * Focus container by index
2960
+ * Focus the editor
2858
2961
  */
2859
- private focusContainerByIndex;
2962
+ focus(): void;
2860
2963
  /**
2861
- * Open file uploader
2964
+ * Clear the editor
2862
2965
  */
2863
- private openFileUploader;
2966
+ clear(): void;
2864
2967
  /**
2865
- * Open entity rights sharing
2968
+ * Get current JSON object
2866
2969
  */
2867
- private openEntityRightsSharing;
2970
+ getValue(): object | null;
2868
2971
  /**
2869
- * Duplicate current container
2972
+ * Get current JSON string
2870
2973
  */
2871
- private duplicateCurrentContainer;
2974
+ getStringValue(): string;
2872
2975
  /**
2873
- * Close current container
2976
+ * Check if JSON is valid
2874
2977
  */
2875
- private closeCurrentContainer;
2978
+ isValidJson(): boolean;
2876
2979
  /**
2877
- * Toggle container visibility
2980
+ * Get validation errors
2878
2981
  */
2879
- private toggleContainerVisibility;
2880
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingContainerShortcutsService, never>;
2881
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<FloatingContainerShortcutsService>;
2882
- }
2883
-
2884
- declare class CideFormFieldErrorComponent implements OnInit, OnChanges {
2885
- control: AbstractControl;
2886
- formGroup: FormGroup;
2887
- fieldName: string;
2888
- customMessages: {
2889
- [key: string]: string;
2890
- };
2891
- private fieldLabelsMap;
2892
- private elementService;
2893
- formErrors: _angular_core.WritableSignal<string[]>;
2894
- ngOnInit(): void;
2895
- ngOnChanges(changes: SimpleChanges): void;
2896
- private setupFormChangeListener;
2897
- private updateFormErrors;
2898
- private loadFormErrors;
2899
- isFormGroupMode(): boolean;
2900
- getFormGroupErrors(): Promise<string[]>;
2901
- private buildFieldLabelsMap;
2902
- getFormGroupErrorMessage(): string;
2903
- getControlErrorMessage(control: AbstractControl, fieldName: string): string;
2904
- getErrorMessage(): string;
2905
- private getFieldDisplayName;
2906
- private convertToDisplayName;
2907
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideFormFieldErrorComponent, never>;
2908
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideFormFieldErrorComponent, "cide-form-field-error", never, { "control": { "alias": "control"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": false; }; "fieldName": { "alias": "fieldName"; "required": false; }; "customMessages": { "alias": "customMessages"; "required": false; }; }, {}, never, never, true, never>;
2909
- }
2910
-
2911
- interface BreadcrumbItem$1 {
2912
- id: string;
2913
- label: string;
2914
- icon?: string;
2915
- url?: string;
2916
- disabled?: boolean;
2917
- type?: 'root' | 'category' | 'entity' | 'custom';
2918
- metadata?: any;
2919
- }
2920
- interface BreadcrumbDropdownOption$1 {
2921
- id: string;
2922
- label: string;
2923
- icon?: string;
2924
- disabled?: boolean;
2925
- action?: () => void;
2926
- }
2927
- interface BreadcrumbSeparator$1 {
2928
- type: 'chevron' | 'slash' | 'arrow' | 'dot' | 'custom';
2929
- icon?: string;
2930
- text?: string;
2931
- }
2932
- type BreadcrumbStyle$1 = 'modern' | 'classic' | 'minimal' | 'hierarchical';
2933
- interface BreadcrumbConfig$1 {
2934
- style: BreadcrumbStyle$1;
2935
- separator: BreadcrumbSeparator$1;
2936
- showHomeIcon: boolean;
2937
- homeIcon: string;
2938
- maxItems: number;
2939
- showDropdownOnOverflow: boolean;
2940
- dropdownOptions: BreadcrumbDropdownOption$1[];
2941
- clickableItems: boolean;
2942
- showTooltips: boolean;
2943
- responsive: boolean;
2944
- compact: boolean;
2945
- animated: boolean;
2946
- }
2947
- declare class CideEleBreadcrumbComponent implements OnInit, OnDestroy {
2948
- items: BreadcrumbItem$1[];
2949
- style: BreadcrumbStyle$1;
2950
- separator: BreadcrumbSeparator$1;
2951
- showHomeIcon: boolean;
2952
- homeIcon: string;
2953
- maxItems: number;
2954
- showDropdownOnOverflow: boolean;
2955
- dropdownOptions: BreadcrumbDropdownOption$1[];
2956
- clickableItems: boolean;
2957
- showTooltips: boolean;
2958
- responsive: boolean;
2959
- compact: boolean;
2960
- animated: boolean;
2961
- loading: boolean;
2962
- disabled: boolean;
2963
- itemClick: EventEmitter<BreadcrumbItem$1>;
2964
- dropdownOptionClick: EventEmitter<BreadcrumbDropdownOption$1>;
2965
- homeClick: EventEmitter<void>;
2966
- private showDropdown;
2967
- private isOverflowing;
2968
- private visibleItems;
2969
- private hiddenItems;
2970
- showDropdownSignal: _angular_core.Signal<boolean>;
2971
- isOverflowingSignal: _angular_core.Signal<boolean>;
2972
- visibleItemsSignal: _angular_core.Signal<BreadcrumbItem$1[]>;
2973
- hiddenItemsSignal: _angular_core.Signal<BreadcrumbItem$1[]>;
2974
- config: _angular_core.Signal<BreadcrumbConfig$1>;
2975
- ngOnInit(): void;
2976
- ngOnDestroy(): void;
2977
- onDocumentClick(event: Event): void;
2978
- private processItems;
2979
- private getConfigForStyle;
2980
- onItemClick(item: BreadcrumbItem$1): void;
2981
- onHomeClick(): void;
2982
- onDropdownToggle(): void;
2983
- onDropdownOptionClick(option: BreadcrumbDropdownOption$1): void;
2984
- getItemClasses(item: BreadcrumbItem$1, isLast?: boolean): string;
2985
- getContainerClasses(): string;
2986
- getSeparatorIcon(): string;
2987
- getTooltipText(item: BreadcrumbItem$1): string;
2988
- toggleDropdown(): void;
2989
- closeDropdown(): void;
2990
- updateItems(newItems: BreadcrumbItem$1[]): void;
2991
- addItem(item: BreadcrumbItem$1): void;
2992
- removeItem(itemId: string): void;
2993
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleBreadcrumbComponent, never>;
2994
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleBreadcrumbComponent, "cide-ele-breadcrumb", never, { "items": { "alias": "items"; "required": false; }; "style": { "alias": "style"; "required": false; }; "separator": { "alias": "separator"; "required": false; }; "showHomeIcon": { "alias": "showHomeIcon"; "required": false; }; "homeIcon": { "alias": "homeIcon"; "required": false; }; "maxItems": { "alias": "maxItems"; "required": false; }; "showDropdownOnOverflow": { "alias": "showDropdownOnOverflow"; "required": false; }; "dropdownOptions": { "alias": "dropdownOptions"; "required": false; }; "clickableItems": { "alias": "clickableItems"; "required": false; }; "showTooltips": { "alias": "showTooltips"; "required": false; }; "responsive": { "alias": "responsive"; "required": false; }; "compact": { "alias": "compact"; "required": false; }; "animated": { "alias": "animated"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "itemClick": "itemClick"; "dropdownOptionClick": "dropdownOptionClick"; "homeClick": "homeClick"; }, never, never, true, never>;
2982
+ getErrors(): JsonEditorError[];
2983
+ writeValue(value: string | object | null | undefined): void;
2984
+ registerOnChange(fn: (value: string) => void): void;
2985
+ registerOnTouched(fn: () => void): void;
2986
+ setDisabledState(isDisabled: boolean): void;
2987
+ private onChange;
2988
+ private onTouched;
2989
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleJsonEditorComponent, never>;
2990
+ static ɵcmp: _angular_core.ɵɵ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>;
2995
2991
  }
2996
2992
 
2997
- interface BreadcrumbItem {
2998
- /** Unique identifier for the breadcrumb item */
2999
- id: string;
3000
- /** Display label for the breadcrumb item */
3001
- label: string;
3002
- /** Optional icon name (Material Icons) */
3003
- icon?: string;
3004
- /** Optional URL for navigation */
3005
- url?: string;
3006
- /** Whether the item is disabled */
3007
- disabled?: boolean;
3008
- /** Type of the breadcrumb item */
3009
- type?: 'root' | 'category' | 'entity' | 'custom';
3010
- /** Additional metadata for the item */
3011
- metadata?: any;
3012
- }
3013
- interface BreadcrumbDropdownOption {
3014
- /** Unique identifier for the dropdown option */
3015
- id: string;
3016
- /** Display label for the option */
3017
- label: string;
3018
- /** Optional icon name (Material Icons) */
3019
- icon?: string;
3020
- /** Whether the option is disabled */
3021
- disabled?: boolean;
3022
- /** Optional action function to execute when clicked */
3023
- action?: () => void;
3024
- }
3025
- interface BreadcrumbSeparator {
3026
- /** Type of separator to use */
3027
- type: 'chevron' | 'slash' | 'arrow' | 'dot' | 'custom';
3028
- /** Custom icon name (when type is not 'custom') */
3029
- icon?: string;
3030
- /** Custom text (when type is 'custom') */
3031
- text?: string;
3032
- }
3033
- type BreadcrumbStyle = 'modern' | 'classic' | 'minimal' | 'hierarchical';
3034
- interface BreadcrumbConfig {
3035
- /** Style variant */
3036
- style: BreadcrumbStyle;
3037
- /** Separator configuration */
3038
- separator: BreadcrumbSeparator;
3039
- /** Whether to show home icon */
3040
- showHomeIcon: boolean;
3041
- /** Home icon name */
3042
- homeIcon: string;
3043
- /** Maximum number of items to show before overflow */
3044
- maxItems: number;
3045
- /** Whether to show dropdown on overflow */
3046
- showDropdownOnOverflow: boolean;
3047
- /** Additional dropdown options */
3048
- dropdownOptions: BreadcrumbDropdownOption[];
3049
- /** Whether items are clickable */
3050
- clickableItems: boolean;
3051
- /** Whether to show tooltips */
3052
- showTooltips: boolean;
3053
- /** Whether to enable responsive behavior */
3054
- responsive: boolean;
3055
- /** Whether to use compact styling */
3056
- compact: boolean;
3057
- /** Whether to enable animations */
3058
- animated: boolean;
3059
- }
3060
- interface BreadcrumbEvents {
3061
- /** Emitted when a breadcrumb item is clicked */
3062
- itemClick: BreadcrumbItem;
3063
- /** Emitted when a dropdown option is clicked */
3064
- dropdownOptionClick: BreadcrumbDropdownOption;
3065
- /** Emitted when home icon is clicked */
3066
- homeClick: void;
3067
- }
3068
- declare const BREADCRUMB_STYLES: Record<BreadcrumbStyle, BreadcrumbConfig>;
3069
- declare class BreadcrumbUtils {
3070
- /**
3071
- * Create a breadcrumb item
3072
- */
3073
- static createItem(id: string, label: string, options?: Partial<BreadcrumbItem>): BreadcrumbItem;
3074
- /**
3075
- * Create a dropdown option
3076
- */
3077
- static createDropdownOption(id: string, label: string, options?: Partial<BreadcrumbDropdownOption>): BreadcrumbDropdownOption;
3078
- /**
3079
- * Create a separator
3080
- */
3081
- static createSeparator(type: BreadcrumbSeparator['type'], options?: Partial<BreadcrumbSeparator>): BreadcrumbSeparator;
3082
- /**
3083
- * Get default configuration for a style
3084
- */
3085
- static getDefaultConfig(style: BreadcrumbStyle): BreadcrumbConfig;
3086
- /**
3087
- * Merge configurations
3088
- */
3089
- static mergeConfig(base: BreadcrumbConfig, override: Partial<BreadcrumbConfig>): BreadcrumbConfig;
2993
+ declare class CideEleSkeletonLoaderComponent {
2994
+ width: string;
2995
+ height: string;
2996
+ borderRadius: string;
2997
+ count: number;
2998
+ circle: boolean;
2999
+ animation: 'pulse' | 'wave' | 'none';
3000
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleSkeletonLoaderComponent, never>;
3001
+ static ɵcmp: _angular_core.ɵɵ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>;
3090
3002
  }
3091
3003
 
3092
- export { BREADCRUMB_STYLES, BreadcrumbUtils, CideCoreFileManagerService, CideEleBreadcrumbComponent, CideEleButtonComponent, CideEleConfirmationModalComponent, CideEleDataGridComponent, CideEleDropdownComponent, CideEleFileImageDirective, CideEleFileInputComponent, CideEleFileManagerService, CideEleFloatingContainerComponent, CideEleFloatingContainerDynamicDirective, CideEleFloatingContainerManagerComponent, CideEleFloatingContainerService, CideEleFloatingFeaturesService, CideEleFloatingFileUploaderComponent, CideEleFloatingFileUploaderService, CideEleGlobalNotificationsComponent, CideEleJsonEditorComponent, CideEleResizerDirective, CideEleSkeletonLoaderComponent, CideEleTabComponent, CideEleToastNotificationComponent, CideElementsService, CideFormFieldErrorComponent, CideIconComponent, CideInputComponent, CideSelectComponent, CideSelectOptionComponent, CideSpinnerComponent, CideTextareaComponent, ConfirmationService, CoreFileManagerInsertUpdatePayload, DEFAULT_GRID_CONFIG, DropdownManagerService, FloatingContainerShortcutsService, ICoreCyfmSave, KeyboardShortcutService, MFileManager, NotificationService, TooltipDirective };
3093
- export type { BreadcrumbConfig, BreadcrumbDropdownOption, BreadcrumbEvents, BreadcrumbItem, BreadcrumbSeparator, BreadcrumbStyle, ButtonElevation, ButtonShape, ButtonSize, ButtonType, ButtonVariant, CideEleResizerDirection, CideEleResizerDirectionTo, ColumnType, ColumnWidth, ConfirmationOptions, ConfirmationRequest, CoreFileManagerInsertUpdateResponse, DropdownConfig, DropdownInstance, DropdownItem, DropdownPosition, ErrorValidationStatus, FileUploadData, FileUploadOptions, FileUploaderData, FloatingComponentConfig, FloatingContainerConfig, FloatingContainerInstance, FloatingFileUploaderData, GridAction, GridColumn, GridConfiguration, GridCustomFormatter, GridCustomRenderer, GridDragDropConfig, GridEvent, GridEventHandler, GridExportConfig, GridFormatter, GridLoadingConfig, GridPaginationConfig, GridScrollConfig, GridSearchConfig, GridState, GridTreeConfig, ICoreCyfm, ICoreFileManager, IFileDeleteResponse, IFileFilterOptions, IFileGroupingOptions, IFileListRequest, IFileListResponse, IFileManagerErrorLogger, IFileUpdateRequest, IFileUpdateResponse, IFileUploadProgress, IFileUploadQueueItem, IFileUploadRequest, IFileUploadResponse, JsonEditorConfig, JsonEditorError, KeyboardShortcut, NotificationItem, NotificationOptions, SelectOption, SelectOptionObject, ServiceState, ShortcutOverride, StatusConfig, TabItem, TemplateContext, TemplateRenderer, TextAlign, TooltipPlacement, TooltipType, UploadProgress, ValidationStatus, controllerResponse, fileManagerControllerResponse, fileManagerResponseData, mongooseObjectIdCreateControllerResponse };
3004
+ export { BreadcrumbNavigationService, CapitalizePipe, CideCoreFileManagerService, CideEleBreadcrumbComponent, CideEleButtonComponent, CideEleConfirmationModalComponent, CideEleDataGridComponent, CideEleDropdownComponent, CideEleFileImageDirective, CideEleFileInputComponent, CideEleFileManagerService, CideEleFloatingContainerComponent, CideEleFloatingContainerDynamicDirective, CideEleFloatingContainerManagerComponent, CideEleFloatingContainerService, CideEleFloatingFeaturesService, CideEleFloatingFileUploaderComponent, CideEleFloatingFileUploaderService, CideEleGlobalNotificationsComponent, CideEleJsonEditorComponent, CideEleResizerDirective, CideEleSkeletonLoaderComponent, CideEleTabComponent, CideEleToastNotificationComponent, CideElementsService, CideFormFieldErrorComponent, CideIconComponent, CideInputComponent, CideSelectComponent, CideSelectOptionComponent, CideTextareaComponent, CoreFileManagerInsertUpdatePayload, DEFAULT_GRID_CONFIG, DropdownManagerService, ICoreCyfmSave, KeyboardShortcutService, MFileManager, NotificationService, PAGE_PATH_RESOLVER, TooltipDirective };
3005
+ export type { BreadcrumbConfig, BreadcrumbContextId, BreadcrumbDropdownOption, BreadcrumbItem, BreadcrumbNavigationItem, BreadcrumbPageInfo, BreadcrumbResolvedItem, BreadcrumbSeparator, BreadcrumbStyle, ButtonElevation, ButtonShape, ButtonSize, ButtonType, ButtonVariant, CideEleResizerDirection, CideEleResizerDirectionTo, ColumnType, ColumnWidth, CoreFileManagerInsertUpdateResponse, DropdownConfig, DropdownInstance, DropdownItem, DropdownPosition, ErrorValidationStatus, FileUploadData, FileUploadOptions, FileUploaderData, FloatingComponentConfig, FloatingContainerConfig, FloatingContainerInstance, FloatingFileUploaderData, GridAction, GridColumn, GridConfiguration, GridCustomFormatter, GridCustomRenderer, GridDragDropConfig, GridEvent, GridEventHandler, GridExportConfig, GridFormatter, GridLoadingConfig, GridPaginationConfig, GridScrollConfig, GridSearchConfig, GridState, GridTreeConfig, ICoreCyfm, ICoreFileManager, IFileDeleteResponse, IFileFilterOptions, IFileGroupingOptions, IFileListRequest, IFileListResponse, IFileManagerErrorLogger, IFileUpdateRequest, IFileUpdateResponse, IFileUploadProgress, IFileUploadQueueItem, IFileUploadRequest, IFileUploadResponse, JsonEditorConfig, JsonEditorError, KeyboardShortcut, NotificationItem, NotificationOptions, PagePathResolver, SelectOption, SelectOptionObject, ServiceState, ShortcutOverride, StatusConfig, TabItem, TemplateContext, TemplateRenderer, TextAlign, TooltipPlacement, TooltipType, UploadProgress, ValidationStatus, controllerResponse, fileManagerControllerResponse, fileManagerResponseData, mongooseObjectIdCreateControllerResponse };