cloud-ide-element 1.0.9 → 1.0.12

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,15 +1,16 @@
1
- import * as i0 from '@angular/core';
2
- import { PipeTransform, OnChanges, OnInit, EventEmitter, SimpleChanges, OnDestroy, Renderer2, ElementRef, AfterContentInit, QueryList, TemplateRef } from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
+ import { PipeTransform, OnChanges, OnInit, OnDestroy, EventEmitter, TemplateRef, SimpleChanges, Renderer2, ElementRef, AfterContentInit, QueryList, ViewContainerRef, AfterViewInit, Signal, Type, Injector, ComponentRef } from '@angular/core';
3
3
  import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
4
- import { elementStyleType, labelPlacementType, labelDirType, autocapitalizeType, autocompleteType, controlType, inputType, themeSize, spinnerType, iconType, selectSearchType, ICoreSype, GetElementDataRequest } from 'cloud-ide-lms-model';
4
+ import { elementStyleType, labelPlacementType, labelDirType, autocapitalizeType, autocompleteType, controlType, inputType, themeSize, spinnerType, iconType, selectSearchType, ICoreSype, GetElementDataRequest, fileManagerListByGroupIdControllerResponse } from 'cloud-ide-lms-model';
5
5
  import { Router, NavigationExtras } from '@angular/router';
6
- import { BehaviorSubject } from 'rxjs';
6
+ import { BehaviorSubject, Observable } from 'rxjs';
7
7
  import * as cloud_ide_element from 'cloud-ide-element';
8
+ import { HttpClient, HttpEvent } from '@angular/common/http';
8
9
 
9
10
  declare class CapitalizePipe implements PipeTransform {
10
11
  transform(value: string, capitalizationMethod: 'allUpperCase' | 'titleCase' | 'sentenceCase'): string;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<CapitalizePipe, never>;
12
- static ɵpipe: i0.ɵɵPipeDeclaration<CapitalizePipe, "capitalize", true>;
12
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CapitalizePipe, never>;
13
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<CapitalizePipe, "capitalize", true>;
13
14
  }
14
15
 
15
16
  /** @description type to register error related to control */
@@ -22,7 +23,7 @@ type ValidationStatus = {
22
23
  validation: ErrorValidationStatus;
23
24
  status: boolean;
24
25
  };
25
- declare class CideInputComponent implements ControlValueAccessor, Validator, OnChanges, OnInit {
26
+ declare class CideInputComponent implements ControlValueAccessor, Validator, OnChanges, OnInit, OnDestroy {
26
27
  capitalizePipe: CapitalizePipe;
27
28
  private elementService;
28
29
  constructor();
@@ -76,10 +77,10 @@ declare class CideInputComponent implements ControlValueAccessor, Validator, OnC
76
77
  /** @description to get input value using one way binding like: [ngModel] or by two way binding [(ngModel)] */
77
78
  ngModel: inputType;
78
79
  option: string[];
79
- /** @description min value for number type control */
80
- min: number;
81
- /** @description max value for number type control */
82
- max: number;
80
+ /** @description min value for number type control or min date for date type control */
81
+ min: number | string;
82
+ /** @description max value for number type control or max date for date type control */
83
+ max: number | string;
83
84
  /**
84
85
  * @description
85
86
  * Holds the size of the component like Small, Extra small, Large
@@ -106,6 +107,25 @@ declare class CideInputComponent implements ControlValueAccessor, Validator, OnC
106
107
  trailingIconInternal: string;
107
108
  isTrailingIconAllwedClick: boolean;
108
109
  idRandom: string;
110
+ showDatePicker: boolean;
111
+ showMonthYearSelector: boolean;
112
+ currentMonth: number;
113
+ currentYear: number;
114
+ selectedDate: Date | null;
115
+ calendarDays: {
116
+ day: number;
117
+ isCurrentMonth: boolean;
118
+ isSelected: boolean;
119
+ isToday: boolean;
120
+ date: Date;
121
+ }[];
122
+ monthNames: string[];
123
+ shortMonthNames: string[];
124
+ private portalService;
125
+ private datePickerPortalId;
126
+ private viewContainerRef;
127
+ datePickerTemplate: TemplateRef<any>;
128
+ private datePickerViewRef;
109
129
  /**
110
130
  * @description Function to call when the HTML Chnage to tell Angular somthing is changed.
111
131
  * @field value : inputType
@@ -143,6 +163,7 @@ declare class CideInputComponent implements ControlValueAccessor, Validator, OnC
143
163
  /** @description Detect wether input propertires canged or not */
144
164
  ngOnChanges(changes: SimpleChanges): void;
145
165
  ngOnInit(): void;
166
+ ngOnDestroy(): void;
146
167
  /** @description custom method run when HTML changes, we call method registerd by angular to detect change */
147
168
  upDateValue(value: {
148
169
  target: {
@@ -186,8 +207,70 @@ declare class CideInputComponent implements ControlValueAccessor, Validator, OnC
186
207
  * @description use to detact the change in type if changes done this method is ued to run
187
208
  */
188
209
  detectTypeChange(): void;
189
- static ɵfac: i0.ɵɵFactoryDeclaration<CideInputComponent, never>;
190
- static ɵcmp: i0.ɵɵ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>;
210
+ /**
211
+ * @description Format date to YYYY-MM-DD format (for form submission)
212
+ */
213
+ formatDate(date: Date | string): string;
214
+ /**
215
+ * @description Format date for display as "DD/MMM/YYYY" (e.g., "20/Jun/2025")
216
+ */
217
+ formatDateForDisplay(date: Date | string): string;
218
+ /**
219
+ * @description Get display value for date input
220
+ */
221
+ getDateDisplayValue(): string;
222
+ /**
223
+ * @description Initialize date picker with current values
224
+ */
225
+ initializeDatePicker(): void;
226
+ /**
227
+ * @description Generate calendar days for current month
228
+ */
229
+ generateCalendar(): void;
230
+ /**
231
+ * @description Create date picker using template-based portal service
232
+ */
233
+ private createDatePickerUsingPortal;
234
+ /**
235
+ * @description Close date picker
236
+ */
237
+ closeDatePicker(): void;
238
+ /**
239
+ * @description Navigate to previous month
240
+ */
241
+ previousMonth(): void;
242
+ /**
243
+ * @description Navigate to next month
244
+ */
245
+ nextMonth(): void;
246
+ /**
247
+ * @description Navigate to previous year
248
+ */
249
+ previousYear(): void;
250
+ /**
251
+ * @description Navigate to next year
252
+ */
253
+ nextYear(): void;
254
+ /**
255
+ * @description Toggle between calendar and month/year selector
256
+ */
257
+ toggleMonthYearSelector(): void;
258
+ /**
259
+ * @description Select a month from the month selector
260
+ */
261
+ selectMonth(monthIndex: number): void;
262
+ /**
263
+ * @description Select a date from the calendar
264
+ */
265
+ selectDate(dayInfo: {
266
+ day: number;
267
+ isCurrentMonth: boolean;
268
+ isSelected: boolean;
269
+ isToday: boolean;
270
+ date: Date;
271
+ }): void;
272
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideInputComponent, never>;
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>;
191
274
  }
192
275
 
193
276
  type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'text' | 'link' | 'success' | 'danger' | 'warning' | 'info' | 'ghost';
@@ -268,8 +351,8 @@ declare class CideEleButtonComponent implements OnInit, OnChanges, OnDestroy {
268
351
  ngOnChanges(changes: SimpleChanges): void;
269
352
  ngOnDestroy(): void;
270
353
  getControlData(): Promise<void>;
271
- static ɵfac: i0.ɵɵFactoryDeclaration<CideEleButtonComponent, never>;
272
- static ɵcmp: i0.ɵɵ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>;
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>;
273
356
  }
274
357
 
275
358
  declare class CideSpinnerComponent {
@@ -286,16 +369,16 @@ declare class CideSpinnerComponent {
286
369
  */
287
370
  size: themeSize;
288
371
  type: spinnerType;
289
- static ɵfac: i0.ɵɵFactoryDeclaration<CideSpinnerComponent, never>;
290
- static ɵcmp: i0.ɵɵComponentDeclaration<CideSpinnerComponent, "cide-ele-spinner", never, { "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, never, true, never>;
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>;
291
374
  }
292
375
 
293
376
  declare class CideIconComponent {
294
377
  size: themeSize;
295
378
  type: iconType;
296
379
  toolTip: string;
297
- static ɵfac: i0.ɵɵFactoryDeclaration<CideIconComponent, never>;
298
- static ɵcmp: i0.ɵɵComponentDeclaration<CideIconComponent, "cide-ele-icon", never, { "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "toolTip": { "alias": "toolTip"; "required": false; }; }, {}, never, ["*"], true, never>;
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>;
299
382
  }
300
383
 
301
384
  interface SelectOption {
@@ -303,14 +386,18 @@ interface SelectOption {
303
386
  label: string;
304
387
  disabled?: boolean;
305
388
  }
389
+ interface SelectOptionObject {
390
+ [key: string]: any;
391
+ disabled?: boolean;
392
+ }
306
393
  declare class CideSelectOptionComponent {
307
394
  private elementRef;
308
395
  value: string | number;
309
396
  disabled: boolean;
310
397
  get label(): string;
311
398
  constructor(elementRef: ElementRef);
312
- static ɵfac: i0.ɵɵFactoryDeclaration<CideSelectOptionComponent, never>;
313
- static ɵcmp: i0.ɵɵComponentDeclaration<CideSelectOptionComponent, "cide-ele-select-option", never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], true, never>;
399
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideSelectOptionComponent, never>;
400
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideSelectOptionComponent, "cide-ele-select-option", never, { "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], true, never>;
314
401
  }
315
402
  declare class CideSelectComponent implements ControlValueAccessor, Validator, OnInit, OnChanges, AfterContentInit, OnDestroy {
316
403
  private elementRef;
@@ -324,7 +411,7 @@ declare class CideSelectComponent implements ControlValueAccessor, Validator, On
324
411
  required: boolean;
325
412
  disabled: boolean;
326
413
  id: string;
327
- ngModel: string | number;
414
+ ngModel: string | number | string[];
328
415
  size: themeSize;
329
416
  fill: elementStyleType;
330
417
  labelPlacement: labelPlacementType;
@@ -332,19 +419,39 @@ declare class CideSelectComponent implements ControlValueAccessor, Validator, On
332
419
  leadingIcon: string;
333
420
  trailingIcon: string;
334
421
  clearInput: boolean;
335
- options: SelectOption[];
422
+ options: (SelectOption | SelectOptionObject)[];
336
423
  multiple: boolean;
337
424
  searchable: boolean;
338
425
  showSearchInput: boolean;
339
426
  loading: boolean;
340
- ngModelChange: EventEmitter<any>;
341
- selectionChange: EventEmitter<SelectOption>;
427
+ /**
428
+ * Key to extract the value from option objects.
429
+ * Default: 'value'. Use when options are objects with custom property names.
430
+ * Example: if options = [{id: 1, name: 'John'}, {id: 2, name: 'Jane'}], set valueKey = 'id'
431
+ */
432
+ valueKey: string;
433
+ /**
434
+ * Key to extract the label from option objects.
435
+ * Default: 'label'. Use when options are objects with custom property names.
436
+ * Example: if options = [{id: 1, name: 'John'}, {id: 2, name: 'Jane'}], set labelKey = 'name'
437
+ */
438
+ labelKey: string;
439
+ ngModelChange: EventEmitter<string | number | string[]>;
440
+ selectionChange: EventEmitter<any>;
342
441
  searchChange: EventEmitter<selectSearchType>;
343
442
  isOpen: boolean;
344
443
  isTouched: boolean;
345
444
  isValid: boolean;
346
445
  searchTerm: string;
347
- filteredOptions: SelectOption[];
446
+ filteredOptions: (SelectOption | SelectOptionObject)[];
447
+ private searchDebounceTimeout;
448
+ private searchSubject;
449
+ private destroy$;
450
+ private isUpdatingOptions;
451
+ private portalService;
452
+ private dropdownPortalId;
453
+ dropdownTemplate: TemplateRef<any>;
454
+ dropdownContainer: ViewContainerRef;
348
455
  dropdownPosition: 'bottom' | 'top';
349
456
  private isDropdownInteraction;
350
457
  private debugId;
@@ -363,12 +470,21 @@ declare class CideSelectComponent implements ControlValueAccessor, Validator, On
363
470
  registerOnTouched(fn: () => void): void;
364
471
  setDisabledState(isDisabled: boolean): void;
365
472
  validate(control: AbstractControl): ValidationErrors | null;
366
- validateValue(value: string | number): ValidationErrors | null;
473
+ validateValue(value: string | number | string[]): ValidationErrors | null;
367
474
  toggleDropdown(): void;
475
+ private openDropdown;
476
+ private closeDropdown;
368
477
  ngOnDestroy(): void;
478
+ private createDropdownPortal;
479
+ private destroyDropdownPortal;
480
+ private updatePortalContext;
481
+ private updateOptionsInDOM;
482
+ private setupDebouncedSearch;
483
+ private performSearch;
484
+ private cleanupOrphanedPortals;
369
485
  private onWindowResize;
370
486
  private calculateDropdownPosition;
371
- selectOption(option: SelectOption): void;
487
+ selectOption(option: SelectOption | SelectOptionObject): void;
372
488
  onBlur(): void;
373
489
  focusControl(): void;
374
490
  clearSelection(): void;
@@ -376,14 +492,18 @@ declare class CideSelectComponent implements ControlValueAccessor, Validator, On
376
492
  filterOptions(): void;
377
493
  onSearchInput(event: Event): void;
378
494
  onDropdownMouseDown(): void;
495
+ onSearchInputBlur(event: Event): void;
379
496
  onDropdownMouseUp(): void;
380
- isOptionSelected(option: SelectOption): boolean;
381
- trackByValue(index: number, option: SelectOption): string | number;
497
+ isOptionSelected(option: SelectOption | SelectOptionObject): boolean;
498
+ getOptionValue(option: SelectOption | SelectOptionObject): string | number;
499
+ getOptionLabel(option: SelectOption | SelectOptionObject): string;
500
+ private isSelectOption;
501
+ trackByValue(index: number, option: SelectOption | SelectOptionObject): string | number;
382
502
  private logDebug;
383
503
  private clearTimeouts;
384
504
  private addTimeout;
385
- static ɵfac: i0.ɵɵFactoryDeclaration<CideSelectComponent, never>;
386
- static ɵcmp: i0.ɵɵComponentDeclaration<CideSelectComponent, "cide-ele-select", 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; }; "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; }; "options": { "alias": "options"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "showSearchInput": { "alias": "showSearchInput"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, { "ngModelChange": "ngModelChange"; "selectionChange": "change"; "searchChange": "searchChange"; }, ["optionComponents"], never, true, never>;
505
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideSelectComponent, never>;
506
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideSelectComponent, "cide-ele-select", 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; }; "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; }; "options": { "alias": "options"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "showSearchInput": { "alias": "showSearchInput"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "valueKey": { "alias": "valueKey"; "required": false; }; "labelKey": { "alias": "labelKey"; "required": false; }; }, { "ngModelChange": "ngModelChange"; "selectionChange": "change"; "searchChange": "searchChange"; }, ["optionComponents"], never, true, never>;
387
507
  }
388
508
 
389
509
  interface TabItem {
@@ -401,53 +521,428 @@ declare class CideEleTabComponent implements OnInit {
401
521
  fullWidth: boolean;
402
522
  disabled: boolean;
403
523
  tabChange: EventEmitter<TabItem>;
404
- activeTab: i0.WritableSignal<string>;
524
+ activeTab: _angular_core.WritableSignal<string>;
405
525
  ngOnInit(): void;
406
526
  onTabClick(tab: TabItem): void;
407
527
  isActive(tabId: string): boolean;
408
528
  getTabClasses(tab: TabItem): string;
409
529
  getContainerClasses(): string;
410
- static ɵfac: i0.ɵɵFactoryDeclaration<CideEleTabComponent, never>;
411
- static ɵcmp: i0.ɵɵComponentDeclaration<CideEleTabComponent, "cide-ele-tab", never, { "tabs": { "alias": "tabs"; "required": false; }; "activeTabId": { "alias": "activeTabId"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "tabChange": "tabChange"; }, never, never, true, never>;
530
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleTabComponent, never>;
531
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleTabComponent, "cide-ele-tab", never, { "tabs": { "alias": "tabs"; "required": false; }; "activeTabId": { "alias": "activeTabId"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "tabChange": "tabChange"; }, never, never, true, never>;
412
532
  }
413
533
 
414
- declare class CideEleFileInputComponent implements ControlValueAccessor, OnDestroy {
534
+ /**
535
+ * Angular 20: Proper TypeScript interface for file upload data
536
+ * This interface defines the structure of additional data that can be sent with file uploads
537
+ */
538
+ interface FileUploadData {
539
+ /** Alternative text for the uploaded file (useful for accessibility) */
540
+ altText?: string;
541
+ /** User ID associated with the upload */
542
+ userId?: string;
543
+ /** Array of permissions for the uploaded file */
544
+ permissions?: string[];
545
+ /** Array of tags to categorize the uploaded file */
546
+ tags?: string[];
547
+ /** Status of the file (e.g., 'active', 'pending', 'archived') */
548
+ fileStatus?: "file_manager_file_status_active";
549
+ /** Group ID for multiple file uploads */
550
+ groupId?: string;
551
+ /** Allow additional properties with proper typing */
552
+ [key: string]: string | number | string[] | undefined;
553
+ }
554
+ declare class CideEleFileInputComponent implements ControlValueAccessor, OnDestroy, OnInit, OnChanges, Validator {
555
+ private readonly fileManagerService;
556
+ private readonly notificationService;
557
+ private readonly elementService;
558
+ private readonly destroyRef;
559
+ private readonly floatingFileUploaderService;
415
560
  label: string;
416
561
  accept: string;
417
562
  multiple: boolean;
418
563
  disabled: boolean;
564
+ required: boolean;
419
565
  helperText: string;
420
566
  errorText: string;
421
567
  showPreview: boolean;
422
568
  previewWidth: string;
423
569
  previewHeight: string;
424
570
  previewBoxMode: boolean;
571
+ showFileName: boolean;
425
572
  placeholderText: string;
426
573
  placeholderIcon: string;
427
- id: string;
574
+ autoUpload: boolean;
575
+ uploadData: FileUploadData;
576
+ showFloatingUploader: boolean;
577
+ floatingUploaderGroupId?: string;
428
578
  fileChange: EventEmitter<FileList | null>;
429
- files: FileList | null;
430
- fileNames: string[];
431
- previewUrls: string[];
579
+ uploadSuccess: EventEmitter<string>;
580
+ uploadError: EventEmitter<string>;
581
+ uploadProgressChange: EventEmitter<number>;
582
+ readonly labelSignal: _angular_core.WritableSignal<string>;
583
+ readonly acceptSignal: _angular_core.WritableSignal<string>;
584
+ readonly multipleSignal: _angular_core.WritableSignal<boolean>;
585
+ readonly disabledSignal: _angular_core.WritableSignal<boolean>;
586
+ readonly requiredSignal: _angular_core.WritableSignal<boolean>;
587
+ readonly helperTextSignal: _angular_core.WritableSignal<string>;
588
+ readonly errorTextSignal: _angular_core.WritableSignal<string>;
589
+ readonly showPreviewSignal: _angular_core.WritableSignal<boolean>;
590
+ readonly previewWidthSignal: _angular_core.WritableSignal<string>;
591
+ readonly previewHeightSignal: _angular_core.WritableSignal<string>;
592
+ readonly previewBoxModeSignal: _angular_core.WritableSignal<boolean>;
593
+ readonly showFileNameSignal: _angular_core.WritableSignal<boolean>;
594
+ readonly placeholderTextSignal: _angular_core.WritableSignal<string>;
595
+ readonly placeholderIconSignal: _angular_core.WritableSignal<string>;
596
+ readonly autoUploadSignal: _angular_core.WritableSignal<boolean>;
597
+ readonly uploadDataSignal: _angular_core.WritableSignal<FileUploadData>;
598
+ readonly showFloatingUploaderSignal: _angular_core.WritableSignal<boolean>;
599
+ readonly floatingUploaderGroupIdSignal: _angular_core.WritableSignal<string | undefined>;
600
+ readonly id: _angular_core.WritableSignal<string>;
601
+ readonly isUploading: _angular_core.WritableSignal<boolean>;
602
+ readonly uploadProgress: _angular_core.WritableSignal<number>;
603
+ readonly uploadStatus: _angular_core.WritableSignal<"error" | "start" | "success" | "uploading" | "idle">;
604
+ readonly files: _angular_core.WritableSignal<FileList | null>;
605
+ readonly fileNames: _angular_core.WritableSignal<string[]>;
606
+ readonly previewUrls: _angular_core.WritableSignal<string[]>;
607
+ readonly uploadNotificationId: _angular_core.WritableSignal<string | null>;
608
+ readonly isDragOver: _angular_core.WritableSignal<boolean>;
609
+ readonly groupId: _angular_core.WritableSignal<string | null>;
610
+ readonly isMultipleUploadMode: _angular_core.WritableSignal<boolean>;
611
+ readonly hasEverUploaded: _angular_core.WritableSignal<boolean>;
612
+ readonly hasFiles: _angular_core.Signal<boolean>;
613
+ readonly canUpload: _angular_core.Signal<boolean>;
614
+ readonly isInErrorState: _angular_core.Signal<boolean>;
615
+ readonly isInSuccessState: _angular_core.Signal<boolean>;
616
+ readonly totalFileSize: _angular_core.Signal<number>;
617
+ readonly fileSizeInMB: _angular_core.Signal<string>;
432
618
  private onChange;
433
619
  private onTouched;
434
- writeValue(files: FileList | null): void;
435
- registerOnChange(fn: (files: FileList | null) => void): void;
620
+ private onValidatorChange;
621
+ readonly hasImages: _angular_core.Signal<boolean>;
622
+ readonly isPreviewBoxMode: _angular_core.Signal<boolean>;
623
+ readonly isImagePreviewAvailable: _angular_core.Signal<boolean>;
624
+ constructor();
625
+ ngOnInit(): void;
626
+ ngOnChanges(changes: SimpleChanges): void;
627
+ writeValue(value: FileList | string | null): void;
628
+ registerOnChange(fn: (value: FileList | string | null) => void): void;
436
629
  registerOnTouched(fn: () => void): void;
630
+ registerOnValidatorChange(fn: () => void): void;
437
631
  setDisabledState(isDisabled: boolean): void;
438
632
  onFileSelected(event: Event): void;
439
633
  clearFiles(): void;
634
+ private uploadFile;
635
+ /**
636
+ * Upload multiple files with group ID support
637
+ * FLOW: 1) Generate group ID first, 2) Upload all files with same group ID, 3) Emit group ID on completion
638
+ */
639
+ private uploadMultipleFiles;
640
+ /**
641
+ * Start uploading multiple files with the provided group ID
642
+ * All files will be uploaded with the SAME group ID that was generated before this method
643
+ */
644
+ private startMulti;
645
+ /**
646
+ * Handle completion of multiple file upload
647
+ */
648
+ private handleMultipleUploadComplete;
440
649
  private generatePreviews;
441
650
  private clearPreviews;
442
651
  private isImageFile;
443
- isImagePreviewAvailable(): boolean;
652
+ private loadFileDetailsFromId;
653
+ /**
654
+ * Check if the component is in multiple file mode
655
+ */
656
+ private isMultipleFileMode;
657
+ /**
658
+ * Load files from group ID using the group API
659
+ */
660
+ private loadFilesFromGroupId;
661
+ private isImageFileFromName;
662
+ private isImageFileFromType;
444
663
  removePreview(index: number): void;
445
664
  ngOnDestroy(): void;
446
665
  triggerFileSelect(): void;
447
- isPreviewBoxMode(): boolean;
448
- hasImages(): boolean;
449
- static ɵfac: i0.ɵɵFactoryDeclaration<CideEleFileInputComponent, never>;
450
- static ɵcmp: i0.ɵɵComponentDeclaration<CideEleFileInputComponent, "cide-ele-file-input", never, { "label": { "alias": "label"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "showPreview": { "alias": "showPreview"; "required": false; }; "previewWidth": { "alias": "previewWidth"; "required": false; }; "previewHeight": { "alias": "previewHeight"; "required": false; }; "previewBoxMode": { "alias": "previewBoxMode"; "required": false; }; "placeholderText": { "alias": "placeholderText"; "required": false; }; "placeholderIcon": { "alias": "placeholderIcon"; "required": false; }; }, { "fileChange": "fileChange"; }, never, never, true, never>;
666
+ /**
667
+ * Show floating uploader manually
668
+ * This can be called to show the floating uploader even when no files are selected
669
+ */
670
+ showUploader(): void;
671
+ /**
672
+ * Get total upload count from file manager service for this component's group ID
673
+ * Uses optimized service method for better performance
674
+ * Only counts files for this component's specific group ID
675
+ */
676
+ getUploadCount(): number;
677
+ /**
678
+ * Check if there are active uploads for this component's group ID
679
+ * Uses optimized service method for better performance
680
+ * Only checks files for this component's specific group ID
681
+ */
682
+ hasActiveUploads(): boolean;
683
+ /**
684
+ * Get count of active (non-completed) uploads for this component's group ID
685
+ * Only counts files for this component's specific group ID
686
+ */
687
+ getActiveUploadCount(): number;
688
+ /**
689
+ * Show floating uploader (alias for showUploader for template)
690
+ */
691
+ showFloatingUploaderDialog(): Promise<void>;
692
+ /**
693
+ * Get dynamic classes for drag and drop zone
694
+ */
695
+ getDragDropZoneClasses(): string;
696
+ /**
697
+ * Get dynamic classes for icon
698
+ */
699
+ getIconClasses(): string;
700
+ /**
701
+ * Get dynamic classes for preview box
702
+ */
703
+ getPreviewBoxClasses(): string;
704
+ onDragOver(event: DragEvent): void;
705
+ onDragLeave(event: DragEvent): void;
706
+ onDragEnter(event: DragEvent): void;
707
+ onDrop(event: DragEvent): void;
708
+ private validateFileTypes;
709
+ private handleFileSelection;
710
+ isRequired(): boolean;
711
+ /**
712
+ * Angular 20: Utility method to get upload data with proper typing
713
+ * @returns Properly typed upload data
714
+ */
715
+ getUploadData(): FileUploadData;
716
+ /**
717
+ * Angular 20: Utility method to update upload data with type safety
718
+ * @param data Partial upload data to merge with existing data
719
+ */
720
+ updateUploadData(data: Partial<FileUploadData>): void;
721
+ getCurrentState(): {
722
+ id: string;
723
+ label: string;
724
+ required: boolean;
725
+ disabled: boolean;
726
+ accept: string;
727
+ multiple: boolean;
728
+ showPreview: boolean;
729
+ autoUpload: boolean;
730
+ uploadStatus: "error" | "start" | "success" | "uploading" | "idle";
731
+ isUploading: boolean;
732
+ uploadProgress: number;
733
+ files: {
734
+ name: string;
735
+ size: number;
736
+ type: string;
737
+ }[] | null;
738
+ fileNames: string[];
739
+ previewUrls: number;
740
+ helperText: string;
741
+ errorText: string;
742
+ placeholderText: string;
743
+ placeholderIcon: string;
744
+ previewWidth: string;
745
+ previewHeight: string;
746
+ previewBoxMode: boolean;
747
+ showFileName: boolean;
748
+ uploadData: FileUploadData;
749
+ };
750
+ getControlData(): Promise<void>;
751
+ validate(control: AbstractControl): ValidationErrors | null;
752
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFileInputComponent, never>;
753
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleFileInputComponent, "cide-ele-file-input", never, { "label": { "alias": "label"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "showPreview": { "alias": "showPreview"; "required": false; }; "previewWidth": { "alias": "previewWidth"; "required": false; }; "previewHeight": { "alias": "previewHeight"; "required": false; }; "previewBoxMode": { "alias": "previewBoxMode"; "required": false; }; "showFileName": { "alias": "showFileName"; "required": false; }; "placeholderText": { "alias": "placeholderText"; "required": false; }; "placeholderIcon": { "alias": "placeholderIcon"; "required": false; }; "autoUpload": { "alias": "autoUpload"; "required": false; }; "uploadData": { "alias": "uploadData"; "required": false; }; "showFloatingUploader": { "alias": "showFloatingUploader"; "required": false; }; "floatingUploaderGroupId": { "alias": "floatingUploaderGroupId"; "required": false; }; }, { "fileChange": "fileChange"; "uploadSuccess": "uploadSuccess"; "uploadError": "uploadError"; "uploadProgressChange": "uploadProgressChange"; }, never, never, true, never>;
754
+ }
755
+
756
+ interface FloatingFileUploaderData {
757
+ userId?: string;
758
+ groupId?: string;
759
+ title?: string;
760
+ description?: string;
761
+ maxFileSize?: number;
762
+ allowedFileTypes?: string[];
763
+ multiple?: boolean;
764
+ }
765
+ declare class CideEleFloatingFileUploaderComponent implements OnInit, OnDestroy {
766
+ private destroyRef;
767
+ private fileManagerService;
768
+ data: FloatingFileUploaderData;
769
+ isVisible: _angular_core.WritableSignal<boolean>;
770
+ currentUserId: _angular_core.WritableSignal<string>;
771
+ currentGroupId: _angular_core.WritableSignal<string | null>;
772
+ uploadQueue: _angular_core.Signal<string[]>;
773
+ activeUploads: _angular_core.Signal<Map<string, cloud_ide_element.UploadProgress>>;
774
+ hasUploads: _angular_core.Signal<boolean>;
775
+ hasActiveUploads: _angular_core.Signal<boolean>;
776
+ pendingUploads: _angular_core.Signal<string[]>;
777
+ activeUploadsLocal: _angular_core.Signal<cloud_ide_element.UploadProgress[]>;
778
+ completedUploads: _angular_core.Signal<cloud_ide_element.UploadProgress[]>;
779
+ failedUploads: _angular_core.Signal<cloud_ide_element.UploadProgress[]>;
780
+ allFilesForGroup: _angular_core.Signal<{
781
+ fileId: string;
782
+ fileName: string;
783
+ stage: string;
784
+ percentage?: number;
785
+ }[]>;
786
+ hasFilesToShow: _angular_core.Signal<boolean>;
787
+ getUploadingCount(): number;
788
+ getCompletedCount(): number;
789
+ getFailedCount(): number;
790
+ isAnimating: _angular_core.WritableSignal<boolean>;
791
+ isDragOver: _angular_core.WritableSignal<boolean>;
792
+ constructor();
793
+ ngOnInit(): void;
794
+ private initializeWithData;
795
+ private loadExistingFiles;
796
+ ngOnDestroy(): void;
797
+ /**
798
+ * Set up drag and drop functionality
799
+ */
800
+ private setupDragAndDrop;
801
+ /**
802
+ * Remove drag and drop listeners
803
+ */
804
+ private removeDragAndDropListeners;
805
+ /**
806
+ * Set up file input change listeners
807
+ */
808
+ private setupFileInputListeners;
809
+ /**
810
+ * Remove file input listeners
811
+ */
812
+ private removeFileInputListeners;
813
+ /**
814
+ * Handle file input change events
815
+ */
816
+ private handleFileInputChange;
817
+ /**
818
+ * Handle drag over event
819
+ */
820
+ private handleDragOver;
821
+ /**
822
+ * Handle drag leave event
823
+ */
824
+ private handleDragLeave;
825
+ /**
826
+ * Handle drop event
827
+ */
828
+ private handleDrop;
829
+ /**
830
+ * Handle files from drag and drop or file input
831
+ */
832
+ private handleFiles;
833
+ /**
834
+ * Update visibility - simplified for notification only
835
+ */
836
+ updateVisibility(): void;
837
+ /**
838
+ * Show with animation
839
+ */
840
+ private showWithAnimation;
841
+ /**
842
+ * Hide with animation
843
+ */
844
+ private hideWithAnimation;
845
+ /**
846
+ * Get upload summary text
847
+ */
848
+ getUploadSummary(): string;
849
+ /**
850
+ * Get overall progress percentage
851
+ */
852
+ getOverallProgress(): number;
853
+ /**
854
+ * Get status icon based on upload stage
855
+ */
856
+ getStatusIcon(stage: string): string;
857
+ /**
858
+ * Get status class based on upload stage
859
+ */
860
+ getStatusClass(stage: string): string;
861
+ /**
862
+ * Cancel upload
863
+ */
864
+ cancelUpload(fileId: string): void;
865
+ /**
866
+ * Get file name from file ID (extract from the ID format)
867
+ */
868
+ getFileNameFromId(fileId: string): string;
869
+ /**
870
+ * Get all files from service state (pending + active uploads + fetched files)
871
+ * This method now uses the computed property for consistency
872
+ */
873
+ getAllFiles(): {
874
+ fileId: string;
875
+ fileName: string;
876
+ stage: string;
877
+ percentage?: number;
878
+ }[];
879
+ /**
880
+ * Set current user ID
881
+ */
882
+ setCurrentUserId(userId: string): void;
883
+ /**
884
+ * Check if there are any uploads for the current group
885
+ */
886
+ hasUploadsForCurrentGroup(): boolean;
887
+ /**
888
+ * Handle drag over event for file drop
889
+ */
890
+ onDragOver(event: DragEvent): void;
891
+ /**
892
+ * Handle drag leave event for file drop
893
+ */
894
+ onDragLeave(event: DragEvent): void;
895
+ /**
896
+ * Handle drop event for file drop
897
+ */
898
+ onDrop(event: DragEvent): void;
899
+ /**
900
+ * Trigger file input click
901
+ */
902
+ triggerFileInput(): void;
903
+ /**
904
+ * Handle file input change
905
+ */
906
+ onFileInputChange(event: Event): void;
907
+ /**
908
+ * Handle file selection from drag/drop or file input
909
+ */
910
+ private handleFileSelection;
911
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFloatingFileUploaderComponent, never>;
912
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleFloatingFileUploaderComponent, "cide-ele-floating-file-uploader", never, { "data": { "alias": "data"; "required": false; }; }, {}, never, never, true, never>;
913
+ }
914
+
915
+ interface FileUploaderData {
916
+ groupId?: string;
917
+ userId?: string;
918
+ allowedTypes?: string[];
919
+ maxFileSize?: number;
920
+ uploadPath?: string;
921
+ multiple?: boolean;
922
+ autoUpload?: boolean;
923
+ }
924
+ declare class CideEleFloatingFileUploaderService {
925
+ private containerService;
926
+ constructor();
927
+ private initializeFileUploader;
928
+ /**
929
+ * Show file uploader in floating container
930
+ */
931
+ show(data?: FileUploaderData): Promise<string>;
932
+ /**
933
+ * Hide file uploader
934
+ */
935
+ hide(): void;
936
+ /**
937
+ * Show file uploader with specific group ID
938
+ */
939
+ showWithGroupId(groupId: string, additionalData?: Partial<FileUploaderData>): Promise<string>;
940
+ /**
941
+ * Show file uploader for user with specific settings
942
+ */
943
+ showForUser(userId: string, settings?: Partial<FileUploaderData>): Promise<string>;
944
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFloatingFileUploaderService, never>;
945
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideEleFloatingFileUploaderService>;
451
946
  }
452
947
 
453
948
  declare class CideTextareaComponent implements ControlValueAccessor, Validator, OnInit, OnChanges {
@@ -490,8 +985,107 @@ declare class CideTextareaComponent implements ControlValueAccessor, Validator,
490
985
  onBlur(): void;
491
986
  ClearInputValue(): void;
492
987
  trailingIconClick(): void;
493
- static ɵfac: i0.ɵɵFactoryDeclaration<CideTextareaComponent, never>;
494
- static ɵcmp: i0.ɵɵ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>;
988
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideTextareaComponent, never>;
989
+ 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>;
990
+ }
991
+
992
+ interface KeyboardShortcut {
993
+ id: string;
994
+ key: string;
995
+ ctrlKey?: boolean;
996
+ altKey?: boolean;
997
+ shiftKey?: boolean;
998
+ metaKey?: boolean;
999
+ description?: string;
1000
+ action: () => void;
1001
+ preventDefault?: boolean;
1002
+ stopPropagation?: boolean;
1003
+ }
1004
+ interface ShortcutOverride {
1005
+ shortcutId: string;
1006
+ newKey: string;
1007
+ newCtrlKey?: boolean;
1008
+ newAltKey?: boolean;
1009
+ newShiftKey?: boolean;
1010
+ newMetaKey?: boolean;
1011
+ }
1012
+ declare class KeyboardShortcutService implements OnDestroy {
1013
+ private shortcuts;
1014
+ private overrides;
1015
+ private keydownListener?;
1016
+ constructor();
1017
+ ngOnDestroy(): void;
1018
+ /**
1019
+ * Register a new keyboard shortcut
1020
+ */
1021
+ register(shortcut: KeyboardShortcut): void;
1022
+ /**
1023
+ * Override an existing shortcut with new key combination
1024
+ */
1025
+ override(shortcutId: string, newKey: string, options?: {
1026
+ ctrlKey?: boolean;
1027
+ altKey?: boolean;
1028
+ shiftKey?: boolean;
1029
+ metaKey?: boolean;
1030
+ }): void;
1031
+ /**
1032
+ * Remove a shortcut
1033
+ */
1034
+ unregister(shortcutId: string): void;
1035
+ /**
1036
+ * Remove override for a shortcut (restore original key combination)
1037
+ */
1038
+ removeOverride(shortcutId: string): void;
1039
+ /**
1040
+ * Get all registered shortcuts
1041
+ */
1042
+ getAllShortcuts(): KeyboardShortcut[];
1043
+ /**
1044
+ * Get shortcuts by category or filter
1045
+ */
1046
+ getShortcuts(filter?: (shortcut: KeyboardShortcut) => boolean): KeyboardShortcut[];
1047
+ /**
1048
+ * Check if a shortcut is registered
1049
+ */
1050
+ hasShortcut(shortcutId: string): boolean;
1051
+ /**
1052
+ * Get shortcut information
1053
+ */
1054
+ getShortcut(shortcutId: string): KeyboardShortcut | undefined;
1055
+ /**
1056
+ * Clear all shortcuts
1057
+ */
1058
+ clearAll(): void;
1059
+ /**
1060
+ * Set up global keyboard listener
1061
+ */
1062
+ private setupGlobalListener;
1063
+ /**
1064
+ * Remove global keyboard listener
1065
+ */
1066
+ private removeGlobalListener;
1067
+ /**
1068
+ * Handle keydown events
1069
+ */
1070
+ private handleKeydown;
1071
+ /**
1072
+ * Check if event matches shortcut
1073
+ */
1074
+ private matchesShortcut;
1075
+ /**
1076
+ * Check if event matches override
1077
+ */
1078
+ private matchesOverride;
1079
+ /**
1080
+ * Get human-readable key description
1081
+ */
1082
+ private getKeyDescription;
1083
+ /**
1084
+ * Get key description for a shortcut ID
1085
+ */
1086
+ getKeyDescriptionForShortcut(shortcutId: string): string;
1087
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KeyboardShortcutService, never>;
1088
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<KeyboardShortcutService>;
495
1089
  }
496
1090
 
497
1091
  declare class CideElementsService {
@@ -500,8 +1094,8 @@ declare class CideElementsService {
500
1094
  };
501
1095
  is_cide_element_data_updated: BehaviorSubject<boolean>;
502
1096
  getElementData(body: GetElementDataRequest): Promise<ICoreSype>;
503
- static ɵfac: i0.ɵɵFactoryDeclaration<CideElementsService, never>;
504
- static ɵprov: i0.ɵɵInjectableDeclaration<CideElementsService>;
1097
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideElementsService, never>;
1098
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideElementsService>;
505
1099
  }
506
1100
 
507
1101
  type CideEleResizerDirection = 'horizontal' | 'vertical';
@@ -543,8 +1137,8 @@ declare class CideEleResizerDirective implements OnInit {
543
1137
  private getPrevElement;
544
1138
  private getNextElement;
545
1139
  private getSizeProperty;
546
- static ɵfac: i0.ɵɵFactoryDeclaration<CideEleResizerDirective, never>;
547
- static ɵdir: i0.ɵɵ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>;
1140
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleResizerDirective, never>;
1141
+ 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>;
548
1142
  }
549
1143
 
550
1144
  type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
@@ -585,8 +1179,26 @@ declare class TooltipDirective implements OnInit, OnDestroy {
585
1179
  private styleTooltip;
586
1180
  private positionTooltip;
587
1181
  private destroyTooltip;
588
- static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, never>;
589
- static ɵdir: i0.ɵɵ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>;
1182
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipDirective, never>;
1183
+ 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>;
1184
+ }
1185
+
1186
+ /**
1187
+ * Directive to display images from file manager by ID
1188
+ * Usage: <img cideEleFileImage [fileId]="yourFileId" [altText]="'Image'" class="your-css-classes" />
1189
+ */
1190
+ declare class CideEleFileImageDirective implements OnInit, OnDestroy {
1191
+ fileId: string | null;
1192
+ altText: string;
1193
+ private readonly fileManagerService;
1194
+ private readonly elementRef;
1195
+ private readonly destroyRef;
1196
+ ngOnInit(): void;
1197
+ ngOnDestroy(): void;
1198
+ private loadImage;
1199
+ private displayImage;
1200
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFileImageDirective, never>;
1201
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CideEleFileImageDirective, "[cideEleFileImage]", never, { "fileId": { "alias": "fileId"; "required": false; }; "altText": { "alias": "altText"; "required": false; }; }, {}, never, never, true, never>;
590
1202
  }
591
1203
 
592
1204
  declare class CideEleSkeletonLoaderComponent {
@@ -596,8 +1208,8 @@ declare class CideEleSkeletonLoaderComponent {
596
1208
  count: number;
597
1209
  circle: boolean;
598
1210
  animation: 'pulse' | 'wave' | 'none';
599
- static ɵfac: i0.ɵɵFactoryDeclaration<CideEleSkeletonLoaderComponent, never>;
600
- static ɵcmp: i0.ɵɵComponentDeclaration<CideEleSkeletonLoaderComponent, "cide-ele-skeleton-loader", never, { "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "borderRadius": { "alias": "borderRadius"; "required": false; }; "count": { "alias": "count"; "required": false; }; "circle": { "alias": "circle"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; }, {}, never, never, true, never>;
1211
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleSkeletonLoaderComponent, never>;
1212
+ 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>;
601
1213
  }
602
1214
 
603
1215
  type ColumnType = 'text' | 'number' | 'date' | 'boolean' | 'status' | 'actions' | 'custom' | 'order';
@@ -738,6 +1350,7 @@ interface GridEvent<T = Record<string, unknown>> {
738
1350
  targetItem: T;
739
1351
  targetIndex: number;
740
1352
  newOrder: T[];
1353
+ allOrders?: T[];
741
1354
  };
742
1355
  column?: GridColumn;
743
1356
  action?: GridAction;
@@ -754,11 +1367,8 @@ interface TemplateContext<T = Record<string, unknown>> {
754
1367
  column: GridColumn;
755
1368
  }
756
1369
  type TemplateRenderer<T = Record<string, unknown>> = TemplateRef<TemplateContext<T>>;
757
- type StringRenderer<T = Record<string, unknown>> = (value: unknown, row: T) => string;
758
- type Renderer<T = Record<string, unknown>> = StringRenderer<T> | TemplateRenderer<T>;
759
1370
  declare class CideEleDataGridComponent<T = Record<string, unknown>> implements OnInit, OnChanges, OnDestroy {
760
1371
  config: GridConfiguration<T>;
761
- customRenderers: Record<string, StringRenderer<T>>;
762
1372
  templateRenderers: Record<string, unknown>;
763
1373
  customFormatters: Record<string, (value: unknown, format?: string) => string>;
764
1374
  actionHandlers: Record<string, (data: T, action?: GridAction) => void>;
@@ -770,27 +1380,27 @@ declare class CideEleDataGridComponent<T = Record<string, unknown>> implements O
770
1380
  gridEvent: EventEmitter<GridEvent<T>>;
771
1381
  private internalData;
772
1382
  private filteredData;
773
- currentPage: i0.WritableSignal<number>;
774
- pageSize: i0.WritableSignal<number>;
775
- totalItems: i0.WritableSignal<number>;
776
- totalPages: i0.WritableSignal<number>;
777
- searchQuery: i0.WritableSignal<string>;
778
- loading: i0.WritableSignal<boolean>;
779
- isRefreshing: i0.WritableSignal<boolean>;
780
- pageChangeLoading: i0.WritableSignal<boolean>;
1383
+ currentPage: _angular_core.WritableSignal<number>;
1384
+ pageSize: _angular_core.WritableSignal<number>;
1385
+ totalItems: _angular_core.WritableSignal<number>;
1386
+ totalPages: _angular_core.WritableSignal<number>;
1387
+ searchQuery: _angular_core.WritableSignal<string>;
1388
+ loading: _angular_core.WritableSignal<boolean>;
1389
+ isRefreshing: _angular_core.WritableSignal<boolean>;
1390
+ pageChangeLoading: _angular_core.WritableSignal<boolean>;
781
1391
  jumpToPage: number;
782
1392
  isDragOverRow: number | null;
783
- isDragging: i0.WritableSignal<boolean>;
784
- hasOrderChanged: i0.WritableSignal<boolean>;
1393
+ isDragging: _angular_core.WritableSignal<boolean>;
1394
+ hasOrderChanged: _angular_core.WritableSignal<boolean>;
785
1395
  private originalOrderIds;
786
1396
  private initialDataOrderIds;
787
1397
  private rowOrderMap;
788
1398
  private localReorderedData;
789
1399
  private searchDebounceTimer?;
790
1400
  private isDataUpdate;
791
- hasNextPage: i0.Signal<boolean>;
792
- hasPreviousPage: i0.Signal<boolean>;
793
- mergedConfig: i0.WritableSignal<GridConfiguration<T>>;
1401
+ hasNextPage: _angular_core.Signal<boolean>;
1402
+ hasPreviousPage: _angular_core.Signal<boolean>;
1403
+ mergedConfig: _angular_core.WritableSignal<GridConfiguration<T>>;
794
1404
  ngOnInit(): void;
795
1405
  ngOnDestroy(): void;
796
1406
  ngOnChanges(changes: SimpleChanges): void;
@@ -822,6 +1432,14 @@ declare class CideEleDataGridComponent<T = Record<string, unknown>> implements O
822
1432
  */
823
1433
  private refreshOrderTracking;
824
1434
  private applyFilters;
1435
+ /**
1436
+ * Preserve tree expansion state from current data
1437
+ */
1438
+ private preserveTreeExpansionState;
1439
+ /**
1440
+ * Apply preserved tree expansion state to new data
1441
+ */
1442
+ private applyTreeExpansionState;
825
1443
  /**
826
1444
  * Transform flat data to tree structure based on foreign key relationships
827
1445
  */
@@ -841,7 +1459,7 @@ declare class CideEleDataGridComponent<T = Record<string, unknown>> implements O
841
1459
  private updatePaginationState;
842
1460
  onPageChange(page: number | string): void;
843
1461
  onPageSizeChange(): void;
844
- updatePageSize(value: string | number): void;
1462
+ updatePageSize(value: string | number | string[]): void;
845
1463
  previousPage(): void;
846
1464
  nextPage(): void;
847
1465
  onJumpToPage(): void;
@@ -925,16 +1543,29 @@ declare class CideEleDataGridComponent<T = Record<string, unknown>> implements O
925
1543
  private checkIfOrderChanged;
926
1544
  /**
927
1545
  * Reset the row order map to original positions (for reset action)
1546
+ * Includes all items from hierarchical structure (parents and children)
928
1547
  */
929
1548
  private resetRowOrderMap;
930
1549
  /**
931
1550
  * Update the row order map baseline to current positions (for save action)
1551
+ * Includes all items from hierarchical structure (parents and children)
932
1552
  */
933
1553
  private updateRowOrderMapBaseline;
934
1554
  /**
935
1555
  * Get the current order array from the row order map
1556
+ * Includes all items from hierarchical structure (parents and children)
936
1557
  */
937
1558
  private getCurrentOrderFromMap;
1559
+ /**
1560
+ * Get only the items that have actually changed order
1561
+ * Includes all items from hierarchical structure (parents and children)
1562
+ */
1563
+ private getChangedOrders;
1564
+ /**
1565
+ * Flatten all data for order tracking (includes all hierarchical children)
1566
+ * This method ensures that all items (parents and children) are included in order tracking
1567
+ */
1568
+ private flattenAllDataForOrderTracking;
938
1569
  /**
939
1570
  * Update local data order for visual reordering (LOCAL ONLY)
940
1571
  */
@@ -957,15 +1588,37 @@ declare class CideEleDataGridComponent<T = Record<string, unknown>> implements O
957
1588
  * // value === 'test@example.com'
958
1589
  */
959
1590
  getNestedValue(obj: T, path: string): unknown;
1591
+ /**
1592
+ * Set a nested value in an object using dot notation
1593
+ * @param obj The object to modify
1594
+ * @param path The dot notation path (e.g., 'contact.email')
1595
+ * @param value The value to set
1596
+ * @example
1597
+ * const obj = { contact: { email: 'old@example.com' } };
1598
+ * setNestedValue(obj, 'contact.email', 'new@example.com');
1599
+ * // obj.contact.email === 'new@example.com'
1600
+ */
1601
+ setNestedValue(obj: T, path: string, value: unknown): void;
1602
+ /**
1603
+ * Compare two order arrays to check if they are different
1604
+ * This method can be used by parent components to check if order has actually changed
1605
+ * @param currentOrder Current order array
1606
+ * @param originalOrder Original order array
1607
+ * @returns true if orders are different, false if they are the same
1608
+ */
1609
+ compareOrders(currentOrder: Array<{
1610
+ id: string | undefined;
1611
+ order: number | undefined;
1612
+ }>, originalOrder: Array<{
1613
+ id: string | undefined;
1614
+ order: number | undefined;
1615
+ }>): boolean;
960
1616
  formatValue(value: unknown, column: GridColumn): string;
961
1617
  private formatDate;
962
1618
  private formatCurrency;
963
1619
  private formatPercentage;
964
- renderCustomCell(value: unknown, row: T, column: GridColumn): string;
965
1620
  isTemplateRenderer(rendererKey: string): boolean;
966
- isStringRenderer(rendererKey: string): boolean;
967
1621
  getTemplateRenderer(rendererKey: string): TemplateRenderer<T> | null;
968
- getStringRenderer(rendererKey: string): StringRenderer<T> | null;
969
1622
  getTemplateContext(value: unknown, row: T, column: GridColumn): TemplateContext<T>;
970
1623
  getColumnWidthClass(width?: ColumnWidth): string;
971
1624
  getColumnMaxWidthClass(width?: ColumnWidth): string;
@@ -984,8 +1637,8 @@ declare class CideEleDataGridComponent<T = Record<string, unknown>> implements O
984
1637
  get searchConfig(): cloud_ide_element.GridSearchConfig;
985
1638
  get loadingConfig(): cloud_ide_element.GridLoadingConfig;
986
1639
  get scrollConfig(): cloud_ide_element.GridScrollConfig | undefined;
987
- static ɵfac: i0.ɵɵFactoryDeclaration<CideEleDataGridComponent<any>, never>;
988
- static ɵcmp: i0.ɵɵComponentDeclaration<CideEleDataGridComponent<any>, "cide-ele-data-grid", never, { "config": { "alias": "config"; "required": false; }; "customRenderers": { "alias": "customRenderers"; "required": false; }; "templateRenderers": { "alias": "templateRenderers"; "required": false; }; "customFormatters": { "alias": "customFormatters"; "required": false; }; "actionHandlers": { "alias": "actionHandlers"; "required": false; }; "serverSidePagination": { "alias": "serverSidePagination"; "required": false; }; "totalServerItems": { "alias": "totalServerItems"; "required": false; }; "currentServerPage": { "alias": "currentServerPage"; "required": false; }; "currentServerPageSize": { "alias": "currentServerPageSize"; "required": false; }; "dragDropEnabled": { "alias": "dragDropEnabled"; "required": false; }; }, { "gridEvent": "gridEvent"; }, never, never, true, never>;
1640
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleDataGridComponent<any>, never>;
1641
+ 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>;
989
1642
  }
990
1643
 
991
1644
  interface DropdownItem {
@@ -1010,6 +1663,8 @@ interface DropdownConfig {
1010
1663
  forcePosition?: 'top' | 'bottom' | 'left' | 'right';
1011
1664
  offsetX?: number;
1012
1665
  offsetY?: number;
1666
+ minWidth?: number;
1667
+ usePortal?: boolean;
1013
1668
  }
1014
1669
  interface DropdownPosition {
1015
1670
  vertical: 'top' | 'bottom';
@@ -1024,9 +1679,13 @@ interface DropdownPosition {
1024
1679
  declare class CideEleDropdownComponent implements OnInit, OnDestroy {
1025
1680
  private destroyRef;
1026
1681
  private dropdownManager;
1682
+ private portalService;
1683
+ private viewContainerRef;
1027
1684
  private dropdownId;
1028
- dropdownContainer: i0.Signal<ElementRef<any>>;
1029
- dropdownMenu: i0.Signal<ElementRef<any> | undefined>;
1685
+ private portalId;
1686
+ dropdownContainer: _angular_core.Signal<ElementRef<any>>;
1687
+ dropdownMenu: _angular_core.Signal<ElementRef<any> | undefined>;
1688
+ dropdownMenuTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
1030
1689
  set items(value: DropdownItem[]);
1031
1690
  get items(): DropdownItem[];
1032
1691
  private _items;
@@ -1039,27 +1698,30 @@ declare class CideEleDropdownComponent implements OnInit, OnDestroy {
1039
1698
  }>;
1040
1699
  itemClick: EventEmitter<DropdownItem>;
1041
1700
  dropdownToggle: EventEmitter<boolean>;
1042
- isOpen: i0.WritableSignal<boolean>;
1043
- currentPosition: i0.WritableSignal<DropdownPosition>;
1701
+ isOpen: _angular_core.WritableSignal<boolean>;
1702
+ currentPosition: _angular_core.WritableSignal<DropdownPosition>;
1044
1703
  ngOnInit(): void;
1045
- ngOnDestroy(): void;
1046
1704
  getTriggerClasses(): string;
1047
1705
  getTriggerIconClasses(): string;
1048
1706
  getMenuClasses(): string;
1049
1707
  getMenuStyles(): string;
1050
1708
  calculatePosition(): DropdownPosition;
1051
1709
  private getMenuWidth;
1710
+ protected getSafeConfig(): DropdownConfig;
1052
1711
  private getEstimatedMenuHeight;
1053
1712
  toggleDropdown(event: Event): void;
1054
1713
  private openDropdown;
1055
1714
  testMouseDown(item: DropdownItem): void;
1056
1715
  onItemClick(item: DropdownItem, event: Event): void;
1716
+ private createPortalDropdown;
1717
+ private destroyPortalDropdown;
1057
1718
  closeDropdown(): void;
1058
1719
  getItemClasses(item: DropdownItem): string;
1059
1720
  onWindowResize(): void;
1060
1721
  onWindowScroll(): void;
1061
- static ɵfac: i0.ɵɵFactoryDeclaration<CideEleDropdownComponent, never>;
1062
- static ɵcmp: i0.ɵɵComponentDeclaration<CideEleDropdownComponent, "cide-ele-dropdown", never, { "items": { "alias": "items"; "required": false; }; "config": { "alias": "config"; "required": false; }; "triggerTemplate": { "alias": "triggerTemplate"; "required": false; }; "menuTemplate": { "alias": "menuTemplate"; "required": false; }; }, { "itemClick": "itemClick"; "dropdownToggle": "dropdownToggle"; }, never, never, true, never>;
1722
+ ngOnDestroy(): void;
1723
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleDropdownComponent, never>;
1724
+ 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>;
1063
1725
  }
1064
1726
 
1065
1727
  interface DropdownInstance {
@@ -1080,8 +1742,8 @@ declare class DropdownManagerService {
1080
1742
  isDropdownOpen(id: string): boolean;
1081
1743
  private handleDocumentClick;
1082
1744
  ngOnDestroy(): void;
1083
- static ɵfac: i0.ɵɵFactoryDeclaration<DropdownManagerService, never>;
1084
- static ɵprov: i0.ɵɵInjectableDeclaration<DropdownManagerService>;
1745
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownManagerService, never>;
1746
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<DropdownManagerService>;
1085
1747
  }
1086
1748
 
1087
1749
  interface ConfirmationRequest<T = unknown> {
@@ -1107,12 +1769,13 @@ interface ConfirmationOptions<T = unknown> {
1107
1769
  customTemplate?: TemplateRef<unknown>;
1108
1770
  customData?: T;
1109
1771
  }
1110
- declare class ConfirmationService {
1111
- private confirmationQueue;
1112
- private currentRequest;
1113
- hasActiveConfirmation: i0.Signal<boolean>;
1114
- queueLength: i0.Signal<number>;
1772
+ declare class ConfirmationService implements OnDestroy {
1773
+ private readonly confirmationQueue;
1774
+ private readonly currentRequest;
1775
+ readonly hasActiveConfirmation: _angular_core.Signal<boolean>;
1776
+ readonly queueLength: _angular_core.Signal<number>;
1115
1777
  constructor();
1778
+ ngOnDestroy(): void;
1116
1779
  /**
1117
1780
  * Ask for confirmation with a simple yes/no dialog
1118
1781
  */
@@ -1142,10 +1805,10 @@ declare class ConfirmationService {
1142
1805
  private removeCurrentRequest;
1143
1806
  private generateId;
1144
1807
  private getDefaultIcon;
1145
- getCurrentRequest(): i0.WritableSignal<ConfirmationRequest<unknown> | null>;
1146
- getHasActiveConfirmation(): i0.Signal<boolean>;
1147
- static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationService, never>;
1148
- static ɵprov: i0.ɵɵInjectableDeclaration<ConfirmationService>;
1808
+ getCurrentRequest(): _angular_core.WritableSignal<ConfirmationRequest<unknown> | null>;
1809
+ getHasActiveConfirmation(): _angular_core.Signal<boolean>;
1810
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfirmationService, never>;
1811
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ConfirmationService>;
1149
1812
  }
1150
1813
 
1151
1814
  interface NotificationOptions {
@@ -1157,6 +1820,8 @@ interface NotificationOptions {
1157
1820
  undoText?: string;
1158
1821
  icon?: string;
1159
1822
  title?: string;
1823
+ progress?: number;
1824
+ showProgress?: boolean;
1160
1825
  }
1161
1826
  interface NotificationItem {
1162
1827
  id: string;
@@ -1170,11 +1835,13 @@ interface NotificationItem {
1170
1835
  title?: string;
1171
1836
  timestamp: number;
1172
1837
  isVisible: boolean;
1838
+ progress?: number;
1839
+ showProgress?: boolean;
1173
1840
  }
1174
1841
  declare class NotificationService {
1175
1842
  private notifications;
1176
1843
  private maxNotifications;
1177
- activeNotifications: i0.Signal<NotificationItem[]>;
1844
+ activeNotifications: _angular_core.Signal<NotificationItem[]>;
1178
1845
  constructor();
1179
1846
  /**
1180
1847
  * Show a success notification
@@ -1204,6 +1871,14 @@ declare class NotificationService {
1204
1871
  * Show a notification for background tasks
1205
1872
  */
1206
1873
  showBackgroundTask(taskName: string, isComplete?: boolean, options?: Partial<NotificationOptions>): string;
1874
+ /**
1875
+ * Show a progress notification
1876
+ */
1877
+ showProgress(message: string, progress?: number, options?: Partial<NotificationOptions>): string;
1878
+ /**
1879
+ * Update progress for an existing notification
1880
+ */
1881
+ updateProgress(id: string, progress: number, message?: string): void;
1207
1882
  /**
1208
1883
  * Core show method
1209
1884
  */
@@ -1223,43 +1898,500 @@ declare class NotificationService {
1223
1898
  private addNotification;
1224
1899
  private generateId;
1225
1900
  private getDefaultIcon;
1226
- getNotifications(): i0.WritableSignal<NotificationItem[]>;
1227
- getActiveNotifications(): i0.Signal<NotificationItem[]>;
1228
- static ɵfac: i0.ɵɵFactoryDeclaration<NotificationService, never>;
1229
- static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
1901
+ getNotifications(): _angular_core.WritableSignal<NotificationItem[]>;
1902
+ getActiveNotifications(): _angular_core.Signal<NotificationItem[]>;
1903
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationService, never>;
1904
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<NotificationService>;
1230
1905
  }
1231
1906
 
1232
- declare class CideEleConfirmationModalComponent {
1233
- private confirmationService;
1234
- hasActiveConfirmation: i0.Signal<boolean>;
1235
- currentRequest: i0.WritableSignal<cloud_ide_element.ConfirmationRequest<unknown> | null>;
1236
- customData: i0.WritableSignal<unknown>;
1237
- getHeaderClass: i0.Signal<string>;
1238
- getIconClass: i0.Signal<"success" | "danger" | "warning" | "info">;
1239
- getConfirmButtonClass: i0.Signal<string>;
1907
+ /**
1908
+ * File Manager Interfaces
1909
+ * Based on core_file_manager table schema
1910
+ */
1911
+ interface ICoreCyfm {
1912
+ _id?: string;
1913
+ cyfm_name?: string;
1914
+ cyfm_alt_text?: string;
1915
+ cyfm_path?: string;
1916
+ cyfm_size_in_byte?: number;
1917
+ cyfm_type?: string;
1918
+ cyfm_creation_dt?: string;
1919
+ cyfm_id_user?: string;
1920
+ cyfm_permissions?: string[];
1921
+ cyfm_tags?: string[];
1922
+ cyfm_version?: number;
1923
+ cyfm_file_status_sygmt?: string;
1924
+ cyfm_group_id?: string;
1925
+ cyfm_ismultiple?: boolean;
1926
+ cyfm_isactive?: boolean;
1927
+ }
1928
+ interface ICoreFileManager extends ICoreCyfm {
1929
+ _id: string;
1930
+ cyfm_name: string;
1931
+ cyfm_path: string;
1932
+ cyfm_size_in_byte: number;
1933
+ cyfm_type: string;
1934
+ cyfm_creation_dt: string;
1935
+ cyfm_id_user: string;
1936
+ cyfm_permissions: string[];
1937
+ cyfm_tags: string[];
1938
+ cyfm_version: number;
1939
+ cyfm_file_status_sygmt: string;
1940
+ cyfm_group_id?: string;
1941
+ cyfm_ismultiple?: boolean;
1942
+ cyfm_isactive: boolean;
1943
+ }
1944
+ interface controllerResponse {
1945
+ success?: boolean;
1946
+ error_code?: string;
1947
+ message?: string;
1948
+ data?: any;
1949
+ code?: string;
1950
+ action?: string;
1951
+ total?: number;
1952
+ pageIndex?: number;
1953
+ pageSize?: number;
1954
+ controls?: {
1955
+ [key: string]: string;
1956
+ };
1957
+ }
1958
+ type IFileManagerErrorLogger = {
1959
+ [key in keyof MFileManager]: string;
1960
+ };
1961
+ declare class MFileManager {
1962
+ cyfm_id: string;
1963
+ constructor(init: MFileManager);
1964
+ Validate?(): Partial<IFileManagerErrorLogger>;
1965
+ }
1966
+ declare class ICoreCyfmSave implements ICoreCyfm {
1967
+ _id?: string;
1968
+ cyfm_name?: string;
1969
+ cyfm_alt_text?: string;
1970
+ cyfm_path?: string;
1971
+ cyfm_size_in_byte?: number;
1972
+ cyfm_type?: string;
1973
+ cyfm_creation_dt?: string;
1974
+ cyfm_id_user?: string;
1975
+ cyfm_permissions?: string[];
1976
+ cyfm_tags?: string[];
1977
+ cyfm_version?: number;
1978
+ cyfm_file_status_sygmt?: string;
1979
+ cyfm_group_id?: string;
1980
+ cyfm_isactive?: boolean;
1981
+ cyfm_ismultiple?: boolean;
1982
+ cyfm_file_base64: string;
1983
+ cyfm_temp_unique_id: string;
1984
+ constructor(init: ICoreCyfmSave);
1985
+ }
1986
+ declare class CoreFileManagerInsertUpdatePayload {
1987
+ core_file_manager_new: ICoreCyfmSave[];
1988
+ core_file_manager_update: ICoreCyfm[];
1989
+ core_file_manager_delete: ICoreCyfm[];
1990
+ constructor(init: CoreFileManagerInsertUpdatePayload);
1991
+ Validate?(): Partial<IFileManagerErrorLogger>;
1992
+ }
1993
+ interface fileManagerResponseData extends ICoreCyfm {
1994
+ cyfm_file_base64: string;
1995
+ }
1996
+ interface fileManagerControllerResponse extends controllerResponse {
1997
+ data?: fileManagerResponseData[];
1998
+ }
1999
+ interface CoreFileManagerInsertUpdateResponse extends controllerResponse {
2000
+ data?: {
2001
+ core_file_manager: {
2002
+ cyfm_id: string;
2003
+ cyfm_temp_unique_id: string;
2004
+ }[];
2005
+ };
2006
+ }
2007
+ interface mongooseObjectIdCreateControllerResponse extends controllerResponse {
2008
+ data?: {
2009
+ objectId: string;
2010
+ };
2011
+ }
2012
+ interface IFileUploadRequest {
2013
+ file: File;
2014
+ altText?: string;
2015
+ tags?: string[];
2016
+ permissions?: string[];
2017
+ userId?: string;
2018
+ groupId?: string;
2019
+ [key: string]: string | number | string[] | File | undefined;
2020
+ }
2021
+ interface IFileUploadResponse {
2022
+ success: boolean;
2023
+ message: string;
2024
+ data?: ICoreFileManager;
2025
+ error?: string;
2026
+ }
2027
+ interface IFileListRequest {
2028
+ pageIndex: number;
2029
+ pageSize: number;
2030
+ search?: string;
2031
+ fileType?: string;
2032
+ status?: string;
2033
+ userId?: string;
2034
+ tags?: string[];
2035
+ sortBy?: string;
2036
+ sortOrder?: 'asc' | 'desc';
2037
+ }
2038
+ interface IFileListResponse {
2039
+ success: boolean;
2040
+ message: string;
2041
+ data: ICoreFileManager[];
2042
+ total: number;
2043
+ pageIndex: number;
2044
+ pageSize: number;
2045
+ }
2046
+ interface IFileDeleteResponse {
2047
+ success: boolean;
2048
+ message: string;
2049
+ data?: string;
2050
+ }
2051
+ interface IFileUpdateRequest {
2052
+ _id: string;
2053
+ cyfm_name?: string;
2054
+ cyfm_alt_text?: string;
2055
+ cyfm_tags?: string[];
2056
+ cyfm_permissions?: string[];
2057
+ cyfm_file_status_sygmt?: string;
2058
+ cyfm_isactive?: boolean;
2059
+ }
2060
+ interface IFileUpdateResponse {
2061
+ success: boolean;
2062
+ message: string;
2063
+ data?: ICoreFileManager;
2064
+ }
2065
+ interface IFileUploadProgress {
2066
+ fileId: string;
2067
+ fileName: string;
2068
+ progress: number;
2069
+ status: 'pending' | 'uploading' | 'completed' | 'error' | 'cancelled';
2070
+ error?: string;
2071
+ uploadedFile?: any;
2072
+ }
2073
+ interface IFileUploadQueueItem extends IFileUploadProgress {
2074
+ file: File;
2075
+ }
2076
+ interface IFileFilterOptions {
2077
+ fileTypes: string[];
2078
+ statuses: string[];
2079
+ dateRange?: {
2080
+ start: Date;
2081
+ end: Date;
2082
+ };
2083
+ sizeRange?: {
2084
+ min: number;
2085
+ max: number;
2086
+ };
2087
+ tags: string[];
2088
+ }
2089
+ interface IFileGroupingOptions {
2090
+ groupBy: 'type' | 'status' | 'date' | 'size' | 'user' | 'none';
2091
+ sortBy: 'name' | 'size' | 'date' | 'type';
2092
+ sortOrder: 'asc' | 'desc';
2093
+ }
2094
+
2095
+ interface FileUploadOptions {
2096
+ altText?: string;
2097
+ userId?: string;
2098
+ permissions?: string[];
2099
+ tags?: string[];
2100
+ fileStatus?: string;
2101
+ groupId?: string;
2102
+ isMultiple?: boolean;
2103
+ retryAttempts?: number;
2104
+ timeout?: number;
2105
+ [key: string]: string | number | string[] | undefined | boolean;
2106
+ }
2107
+ interface UploadProgress {
2108
+ loaded: number;
2109
+ total: number;
2110
+ percentage: number;
2111
+ stage: 'reading' | 'uploading' | 'complete' | 'error';
2112
+ groupId?: string;
2113
+ }
2114
+ interface ServiceState {
2115
+ isUploading: boolean;
2116
+ uploadQueue: string[];
2117
+ activeUploads: Map<string, UploadProgress>;
2118
+ error: string | null;
2119
+ }
2120
+ declare class CideEleFileManagerService {
2121
+ private readonly http;
2122
+ private readonly destroyRef;
2123
+ private readonly _baseUrl;
2124
+ private readonly _objectIdEndpoint;
2125
+ private readonly _userId;
2126
+ private readonly _isUploading;
2127
+ private readonly _uploadQueue;
2128
+ private readonly _activeUploads;
2129
+ private readonly _fetchedFiles;
2130
+ private readonly _fileIdMapping;
2131
+ private readonly _error;
2132
+ readonly baseUrl: _angular_core.Signal<string>;
2133
+ readonly objectIdEndpoint: _angular_core.Signal<string>;
2134
+ readonly userId: _angular_core.Signal<string>;
2135
+ readonly isUploading: _angular_core.Signal<boolean>;
2136
+ readonly uploadQueue: _angular_core.Signal<string[]>;
2137
+ readonly activeUploads: _angular_core.Signal<Map<string, UploadProgress>>;
2138
+ readonly fetchedFiles: _angular_core.Signal<Map<string, any[]>>;
2139
+ readonly error: _angular_core.Signal<string | null>;
2140
+ readonly hasActiveUploads: _angular_core.Signal<boolean>;
2141
+ readonly queueLength: _angular_core.Signal<number>;
2142
+ readonly totalFetchedFiles: _angular_core.Signal<number>;
2143
+ readonly getFileCountByGroup: _angular_core.Signal<Map<string, number>>;
2144
+ readonly serviceState: _angular_core.Signal<{
2145
+ isUploading: boolean;
2146
+ uploadQueue: string[];
2147
+ activeUploads: Map<string, UploadProgress>;
2148
+ fetchedFiles: Map<string, any[]>;
2149
+ error: string | null;
2150
+ }>;
2151
+ constructor();
2152
+ /**
2153
+ * Upload a file with base64 encoding and progress tracking
2154
+ * Angular 20: Enhanced with better error handling, retry logic, and signal-based state
2155
+ * @param file The file to upload
2156
+ * @param options Upload options and additional data
2157
+ * @param progressCallback Optional callback for progress updates
2158
+ * @returns Observable with the upload response
2159
+ */
2160
+ uploadFile(file: File, options?: FileUploadOptions, progressCallback?: (progress: number) => void): Observable<CoreFileManagerInsertUpdateResponse>;
2161
+ /**
2162
+ * Set the base URL for API calls
2163
+ * Angular 20: Using signal-based state management
2164
+ * @param url The base URL for the API
2165
+ */
2166
+ setBaseUrl(url: string): void;
2167
+ /**
2168
+ * Set the user ID for file uploads
2169
+ * Angular 20: Using signal-based state management
2170
+ * @param userId The user ID to associate with uploaded files
2171
+ */
2172
+ setUserId(userId: string): void;
2173
+ /**
2174
+ * Set the object ID generation endpoint
2175
+ * Angular 20: Using signal-based state management
2176
+ * @param endpoint The endpoint for generating object IDs (e.g., '/utility/generateObjectId')
2177
+ */
2178
+ setObjectIdEndpoint(endpoint: string): void;
2179
+ /**
2180
+ * Generate Object ID for group uploads
2181
+ * Calls the backend API to generate a unique ObjectId for grouping multiple files
2182
+ * Uses the configurable object ID endpoint instead of hardcoded path
2183
+ * @returns Observable with the generated ObjectId
2184
+ */
2185
+ generateObjectId(): Observable<mongooseObjectIdCreateControllerResponse>;
2186
+ /**
2187
+ * Angular 20: Helper methods for state management
2188
+ */
2189
+ private generateFileId;
2190
+ private addToUploadQueue;
2191
+ private removeFromUploadQueue;
2192
+ private updateUploadProgress;
2193
+ private removeActiveUpload;
2194
+ /**
2195
+ * Angular 20: Enhanced error handling
2196
+ */
2197
+ private handleError;
2198
+ /**
2199
+ * Get file details by ID
2200
+ * @param payload The file ID to fetch details for
2201
+ * @returns Observable with file details
2202
+ */
2203
+ getFileDetails(payload: MFileManager): Observable<fileManagerControllerResponse>;
2204
+ /**
2205
+ * Get files by group ID and store them in service state
2206
+ * @param groupId The group ID to fetch files for
2207
+ * @returns Observable with files list
2208
+ */
2209
+ getFilesByGroupId(groupId: string): Observable<fileManagerListByGroupIdControllerResponse>;
2210
+ /**
2211
+ * Fetch and store files by group ID in service state
2212
+ * @param groupId The group ID to fetch files for
2213
+ * @returns Observable that completes when files are stored
2214
+ */
2215
+ fetchAndStoreFilesByGroupId(groupId: string): Observable<any[]>;
2216
+ /**
2217
+ * Get fetched files for a specific group ID
2218
+ * @param groupId The group ID to get files for
2219
+ * @returns Array of files for the group
2220
+ */
2221
+ getFetchedFilesByGroupId(groupId: string): any[];
2222
+ /**
2223
+ * Signal to trigger floating uploader visibility
2224
+ */
2225
+ private readonly _showFloatingUploader;
2226
+ private readonly _triggerGroupId;
2227
+ readonly showFloatingUploader: _angular_core.Signal<boolean>;
2228
+ readonly getTriggerGroupId: _angular_core.Signal<string | null>;
2229
+ /**
2230
+ * Trigger floating uploader to show with group ID
2231
+ * This is the ONLY way to pass group ID to floating uploader
2232
+ */
2233
+ triggerFloatingUploaderShow(groupId?: string): void;
2234
+ /**
2235
+ * Get all files (active uploads + fetched files) for a group ID
2236
+ * @param groupId The group ID to get files for
2237
+ * @returns Combined array of active and fetched files
2238
+ */
2239
+ getAllFilesForGroup(groupId: string): Array<{
2240
+ fileId: string;
2241
+ fileName: string;
2242
+ stage: string;
2243
+ percentage?: number;
2244
+ }>;
2245
+ /**
2246
+ * Get file name from file ID (extract from the ID format)
2247
+ */
2248
+ private getFileNameFromId;
2249
+ /**
2250
+ * Angular 20: Service utility methods
2251
+ */
2252
+ clearError(): void;
2253
+ getUploadProgress(fileId: string): UploadProgress | undefined;
2254
+ cancelUpload(fileId: string): void;
2255
+ /**
2256
+ * Clear all completed uploads from active uploads
2257
+ * Called when the floating uploader is closed
2258
+ */
2259
+ clearCompletedUploads(): void;
2260
+ /**
2261
+ * Remove a specific completed upload from active uploads
2262
+ */
2263
+ removeCompletedUpload(fileId: string): void;
2264
+ /**
2265
+ * Optimized method to get file count for a specific group
2266
+ * Uses computed property for better performance
2267
+ */
2268
+ getFileCountForGroup(groupId: string): number;
2269
+ /**
2270
+ * Optimized method to check if group has active uploads
2271
+ */
2272
+ hasActiveUploadsForGroup(groupId: string): boolean;
2273
+ /**
2274
+ * Angular 20: File validation utility
2275
+ */
2276
+ validateFile(file: File, maxSizeMB?: number, allowedTypes?: string[]): {
2277
+ valid: boolean;
2278
+ error?: string;
2279
+ };
2280
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFileManagerService, never>;
2281
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideEleFileManagerService>;
2282
+ }
2283
+
2284
+ declare class CideCoreFileManagerService {
2285
+ private http;
2286
+ private apiUrl;
2287
+ private fileListSubject;
2288
+ fileList$: Observable<ICoreFileManager[]>;
2289
+ constructor(http: HttpClient);
2290
+ /**
2291
+ * Get file list from API
2292
+ */
2293
+ getFileList(body: IFileListRequest): Observable<IFileListResponse>;
2294
+ /**
2295
+ * Get file list using mock data (deprecated - use getFileList instead)
2296
+ */
2297
+ getFileListWithMockData(_body: IFileListRequest): Observable<IFileListResponse>;
2298
+ /**
2299
+ * Get file list from cache (if available)
2300
+ */
2301
+ getFileListFromCache(): ICoreFileManager[];
2302
+ /**
2303
+ * Upload file with progress tracking
2304
+ */
2305
+ uploadFile(request: IFileUploadRequest): Observable<HttpEvent<IFileUploadResponse>>;
2306
+ /**
2307
+ * Upload file with progress tracking (mock version - deprecated)
2308
+ */
2309
+ uploadFileWithMockData(request: IFileUploadRequest): Observable<HttpEvent<IFileUploadResponse>>;
2310
+ /**
2311
+ * Update file metadata
2312
+ */
2313
+ updateFile(request: IFileUpdateRequest): Observable<IFileUpdateResponse>;
2314
+ /**
2315
+ * Delete file
2316
+ */
2317
+ deleteFile(id: string): Observable<IFileDeleteResponse>;
2318
+ /**
2319
+ * Delete multiple files
2320
+ */
2321
+ deleteMultipleFiles(ids: string[]): Observable<{
2322
+ success: boolean;
2323
+ message?: string;
2324
+ data?: unknown;
2325
+ }>;
2326
+ /**
2327
+ * Toggle file active status
2328
+ */
2329
+ toggleFileStatus(id: string): Observable<IFileListResponse>;
2330
+ /**
2331
+ * Get file by ID
2332
+ */
2333
+ getFileById(id: string): Observable<{
2334
+ success: boolean;
2335
+ message: string;
2336
+ data?: ICoreFileManager;
2337
+ }>;
2338
+ /**
2339
+ * Find file by ID
2340
+ */
2341
+ findFileById(id: string, items?: ICoreFileManager[]): ICoreFileManager | null;
2342
+ /**
2343
+ * Get file size in human readable format
2344
+ */
2345
+ getFileSizeDisplay(bytes: number): string;
2346
+ /**
2347
+ * Get file type icon
2348
+ */
2349
+ getFileTypeIcon(fileType: string): string;
2350
+ /**
2351
+ * Refresh file list from server
2352
+ */
2353
+ private refreshFileList;
2354
+ /**
2355
+ * Handle errors
2356
+ */
2357
+ private handleError;
2358
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideCoreFileManagerService, never>;
2359
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideCoreFileManagerService>;
2360
+ }
2361
+
2362
+ declare class CideEleConfirmationModalComponent implements OnInit, OnDestroy {
2363
+ private readonly confirmationService;
2364
+ readonly hasActiveConfirmation: _angular_core.Signal<boolean>;
2365
+ readonly currentRequest: _angular_core.WritableSignal<cloud_ide_element.ConfirmationRequest<unknown> | null>;
2366
+ readonly customData: _angular_core.WritableSignal<unknown>;
2367
+ ngOnInit(): void;
2368
+ ngOnDestroy(): void;
2369
+ readonly getHeaderClass: _angular_core.Signal<string>;
2370
+ readonly getIconClass: _angular_core.Signal<string>;
2371
+ readonly getConfirmButtonClass: _angular_core.Signal<string>;
1240
2372
  onBackdropClick(event: Event): void;
1241
2373
  onCancel(): void;
1242
2374
  onConfirm(): void;
1243
2375
  updateCustomData(data: unknown): void;
1244
- static ɵfac: i0.ɵɵFactoryDeclaration<CideEleConfirmationModalComponent, never>;
1245
- static ɵcmp: i0.ɵɵComponentDeclaration<CideEleConfirmationModalComponent, "cide-ele-confirmation-modal", never, {}, {}, never, never, true, never>;
2376
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleConfirmationModalComponent, never>;
2377
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleConfirmationModalComponent, "cide-ele-confirmation-modal", never, {}, {}, never, never, true, never>;
1246
2378
  }
1247
2379
 
1248
2380
  declare class CideEleToastNotificationComponent {
1249
2381
  private notificationService;
1250
- activeNotifications: i0.Signal<NotificationItem[]>;
2382
+ activeNotifications: _angular_core.Signal<NotificationItem[]>;
1251
2383
  getToastClass(notification: NotificationItem): string;
1252
2384
  getIconClass(type: string): string;
1253
2385
  removeNotification(id: string): void;
1254
2386
  executeUndo(id: string): void;
1255
2387
  trackByNotification(index: number, notification: NotificationItem): string;
1256
- static ɵfac: i0.ɵɵFactoryDeclaration<CideEleToastNotificationComponent, never>;
1257
- static ɵcmp: i0.ɵɵComponentDeclaration<CideEleToastNotificationComponent, "cide-ele-toast-notification", never, {}, {}, never, never, true, never>;
2388
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleToastNotificationComponent, never>;
2389
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleToastNotificationComponent, "cide-ele-toast-notification", never, {}, {}, never, never, true, never>;
1258
2390
  }
1259
2391
 
1260
2392
  declare class CideEleGlobalNotificationsComponent {
1261
- static ɵfac: i0.ɵɵFactoryDeclaration<CideEleGlobalNotificationsComponent, never>;
1262
- static ɵcmp: i0.ɵɵComponentDeclaration<CideEleGlobalNotificationsComponent, "cide-ele-global-notifications", never, {}, {}, never, never, true, never>;
2393
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleGlobalNotificationsComponent, never>;
2394
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleGlobalNotificationsComponent, "cide-ele-global-notifications", never, {}, {}, never, never, true, never>;
1263
2395
  }
1264
2396
 
1265
2397
  interface JsonEditorConfig {
@@ -1294,24 +2426,24 @@ declare class CideEleJsonEditorComponent implements OnInit, ControlValueAccessor
1294
2426
  label?: string;
1295
2427
  helperText?: string;
1296
2428
  required: boolean;
1297
- disabled: i0.WritableSignal<boolean>;
2429
+ disabled: _angular_core.WritableSignal<boolean>;
1298
2430
  showCharacterCount: boolean;
1299
2431
  config: JsonEditorConfig;
1300
- configSignal: i0.WritableSignal<JsonEditorConfig>;
2432
+ configSignal: _angular_core.WritableSignal<JsonEditorConfig>;
1301
2433
  valueChange: EventEmitter<string>;
1302
2434
  objectChange: EventEmitter<object | null>;
1303
2435
  errorsChange: EventEmitter<JsonEditorError[]>;
1304
2436
  validChange: EventEmitter<boolean>;
1305
- jsonTextarea: i0.Signal<ElementRef<HTMLTextAreaElement>>;
2437
+ jsonTextarea: _angular_core.Signal<ElementRef<HTMLTextAreaElement>>;
1306
2438
  private destroyRef;
1307
- jsonString: i0.WritableSignal<string>;
1308
- jsonObject: i0.WritableSignal<object | null>;
1309
- errors: i0.WritableSignal<JsonEditorError[]>;
2439
+ jsonString: _angular_core.WritableSignal<string>;
2440
+ jsonObject: _angular_core.WritableSignal<object | null>;
2441
+ errors: _angular_core.WritableSignal<JsonEditorError[]>;
1310
2442
  editorId: string;
1311
- hasErrors: i0.Signal<boolean>;
1312
- isValid: i0.Signal<boolean>;
1313
- lineNumbers: i0.Signal<number[]>;
1314
- containerClass: i0.Signal<string>;
2443
+ hasErrors: _angular_core.Signal<boolean>;
2444
+ isValid: _angular_core.Signal<boolean>;
2445
+ lineNumbers: _angular_core.Signal<number[]>;
2446
+ containerClass: _angular_core.Signal<string>;
1315
2447
  private defaultConfig;
1316
2448
  ngOnInit(): void;
1317
2449
  /**
@@ -1372,9 +2504,376 @@ declare class CideEleJsonEditorComponent implements OnInit, ControlValueAccessor
1372
2504
  setDisabledState(isDisabled: boolean): void;
1373
2505
  private onChange;
1374
2506
  private onTouched;
1375
- static ɵfac: i0.ɵɵFactoryDeclaration<CideEleJsonEditorComponent, never>;
1376
- static ɵcmp: i0.ɵɵComponentDeclaration<CideEleJsonEditorComponent, "cide-ele-json-editor", never, { "label": { "alias": "label"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "showCharacterCount": { "alias": "showCharacterCount"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "valueChange": "valueChange"; "objectChange": "objectChange"; "errorsChange": "errorsChange"; "validChange": "validChange"; }, never, never, true, never>;
2507
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleJsonEditorComponent, never>;
2508
+ 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>;
2509
+ }
2510
+
2511
+ interface FloatingContainerConfig {
2512
+ id: string;
2513
+ title: string;
2514
+ icon?: string;
2515
+ headerColor?: string;
2516
+ width?: string;
2517
+ height?: string;
2518
+ minWidth?: string;
2519
+ minHeight?: string;
2520
+ maxWidth?: string;
2521
+ maxHeight?: string;
2522
+ resizable?: boolean;
2523
+ draggable?: boolean;
2524
+ closable?: boolean;
2525
+ minimizable?: boolean;
2526
+ maximizable?: boolean;
2527
+ isMinimized?: boolean;
2528
+ isMaximized?: boolean;
2529
+ componentId?: string;
2530
+ componentConfig?: {
2531
+ inputs?: {
2532
+ [key: string]: any;
2533
+ };
2534
+ outputs?: {
2535
+ [key: string]: (event: any) => void;
2536
+ };
2537
+ };
2538
+ }
2539
+ declare class CideEleFloatingContainerComponent implements AfterViewInit, OnDestroy {
2540
+ config: _angular_core.WritableSignal<FloatingContainerConfig>;
2541
+ isMinimized: Signal<boolean>;
2542
+ isMaximized: Signal<boolean>;
2543
+ isVisible: Signal<boolean>;
2544
+ closeEvent: EventEmitter<string>;
2545
+ minimizeEvent: EventEmitter<string>;
2546
+ maximizeEvent: EventEmitter<string>;
2547
+ clickEvent: EventEmitter<string>;
2548
+ containerRef: ElementRef<HTMLDivElement>;
2549
+ position: _angular_core.WritableSignal<{
2550
+ x: number;
2551
+ y: number;
2552
+ }>;
2553
+ isDragging: _angular_core.WritableSignal<boolean>;
2554
+ isResizing: _angular_core.WritableSignal<boolean>;
2555
+ computedConfig: Signal<FloatingContainerConfig>;
2556
+ private dragStart;
2557
+ private resizeStart;
2558
+ private originalPosition;
2559
+ private originalSize;
2560
+ private savedPosition;
2561
+ savedHeight: string;
2562
+ ngAfterViewInit(): void;
2563
+ constructor();
2564
+ ngOnDestroy(): void;
2565
+ centerContainer(): void;
2566
+ startDrag(event: MouseEvent): void;
2567
+ onDragMove(event: MouseEvent): void;
2568
+ onDragEnd(): void;
2569
+ startResize(event: MouseEvent): void;
2570
+ onResizeMove(event: MouseEvent): void;
2571
+ onResizeEnd(): void;
2572
+ onMouseDown(event: MouseEvent): void;
2573
+ onMouseMove(event: MouseEvent): void;
2574
+ onMouseUp(event: MouseEvent): void;
2575
+ onHeaderClick(event: MouseEvent): void;
2576
+ minimize(): void;
2577
+ bringToFront(): void;
2578
+ toggleMaximize(): void;
2579
+ close(): void;
2580
+ getHeaderBackground(): string;
2581
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFloatingContainerComponent, never>;
2582
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleFloatingContainerComponent, "cide-ele-floating-container", never, { "config": { "alias": "config"; "required": false; }; "isMinimized": { "alias": "isMinimized"; "required": false; }; "isMaximized": { "alias": "isMaximized"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; }, { "closeEvent": "closeEvent"; "minimizeEvent": "minimizeEvent"; "maximizeEvent": "maximizeEvent"; "clickEvent": "clickEvent"; }, never, ["*"], true, never>;
2583
+ }
2584
+
2585
+ declare class FloatingContainerShortcutsService {
2586
+ private keyboardShortcutService;
2587
+ private containerService;
2588
+ private readonly Z_INDEX_LAYERS;
2589
+ constructor();
2590
+ /**
2591
+ * Register default floating container shortcuts
2592
+ */
2593
+ private registerDefaultShortcuts;
2594
+ /**
2595
+ * Register number shortcuts (Alt + 1, Alt + 2, etc.)
2596
+ */
2597
+ private registerNumberShortcuts;
2598
+ /**
2599
+ * Open new floating container
2600
+ */
2601
+ private openNewContainer;
2602
+ /**
2603
+ * Focus previous container
2604
+ */
2605
+ private focusPreviousContainer;
2606
+ /**
2607
+ * Hide all containers
2608
+ */
2609
+ private hideAllContainers;
2610
+ /**
2611
+ * Show all containers
2612
+ */
2613
+ private showAllContainers;
2614
+ /**
2615
+ * Minimize all containers
2616
+ */
2617
+ private minimizeAllContainers;
2618
+ /**
2619
+ * Focus container by index
2620
+ */
2621
+ private focusContainerByIndex;
2622
+ /**
2623
+ * Open file uploader
2624
+ */
2625
+ private openFileUploader;
2626
+ /**
2627
+ * Open entity rights sharing
2628
+ */
2629
+ private openEntityRightsSharing;
2630
+ /**
2631
+ * Duplicate current container
2632
+ */
2633
+ private duplicateCurrentContainer;
2634
+ /**
2635
+ * Close current container
2636
+ */
2637
+ private closeCurrentContainer;
2638
+ /**
2639
+ * Toggle container visibility
2640
+ */
2641
+ private toggleContainerVisibility;
2642
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingContainerShortcutsService, never>;
2643
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<FloatingContainerShortcutsService>;
2644
+ }
2645
+
2646
+ interface FloatingComponentConfig {
2647
+ componentId: string;
2648
+ componentType?: Type<any>;
2649
+ inputs?: {
2650
+ [key: string]: any;
2651
+ };
2652
+ outputs?: {
2653
+ [key: string]: (event: any) => void;
2654
+ };
2655
+ }
2656
+ interface FloatingContainerInstance {
2657
+ id: string;
2658
+ config: FloatingContainerConfig;
2659
+ isVisible: boolean;
2660
+ isMinimized: boolean;
2661
+ isMaximized: boolean;
2662
+ zIndex: number;
2663
+ instanceId: string;
2664
+ componentType: string;
2665
+ createdAt: Date;
2666
+ lastAccessed: Date;
2667
+ }
2668
+ declare class CideEleFloatingContainerService {
2669
+ private injector;
2670
+ private shortcutsService;
2671
+ private containers;
2672
+ private nextZIndex;
2673
+ private instanceCounter;
2674
+ private componentRegistry;
2675
+ private activeComponents;
2676
+ constructor(injector: Injector, shortcutsService: FloatingContainerShortcutsService);
2677
+ visibleContainers: _angular_core.Signal<FloatingContainerInstance[]>;
2678
+ minimizedContainers: _angular_core.Signal<FloatingContainerInstance[]>;
2679
+ maximizedContainers: _angular_core.Signal<FloatingContainerInstance[]>;
2680
+ show(config: FloatingContainerConfig): string;
2681
+ hide(containerId: string): void;
2682
+ /**
2683
+ * Get the maximum z-index among all visible containers
2684
+ */
2685
+ private getMaxZIndex;
2686
+ /**
2687
+ * Bring a container to the front (highest z-index)
2688
+ */
2689
+ bringToFront(containerId: string): void;
2690
+ minimize(containerId: string): void;
2691
+ maximize(containerId: string): void;
2692
+ getContainer(containerId: string): FloatingContainerInstance | undefined;
2693
+ isVisible(containerId: string): boolean;
2694
+ isMinimized(containerId: string): boolean;
2695
+ isMaximized(containerId: string): boolean;
2696
+ hideAll(): void;
2697
+ minimizeAll(): void;
2698
+ private generateId;
2699
+ private generateInstanceId;
2700
+ getInstancesByComponentType(componentType: string): FloatingContainerInstance[];
2701
+ getActiveInstancesByComponentType(componentType: string): FloatingContainerInstance[];
2702
+ getInstanceCount(componentType: string): number;
2703
+ getActiveInstanceCount(componentType: string): number;
2704
+ closeAllInstancesOfType(componentType: string): void;
2705
+ minimizeAllInstancesOfType(componentType: string): void;
2706
+ bringAllInstancesToFront(componentType: string): void;
2707
+ getInstanceByInstanceId(instanceId: string): FloatingContainerInstance | undefined;
2708
+ updateLastAccessed(containerId: string): void;
2709
+ /**
2710
+ * Register a component for dynamic loading
2711
+ */
2712
+ registerComponent(componentId: string, componentType: Type<any>): void;
2713
+ /**
2714
+ * Unregister a component
2715
+ */
2716
+ unregisterComponent(componentId: string): void;
2717
+ /**
2718
+ * Get registered component type
2719
+ */
2720
+ getComponentType(componentId: string): Type<any> | undefined;
2721
+ /**
2722
+ * Check if component is registered
2723
+ */
2724
+ isComponentRegistered(componentId: string): boolean;
2725
+ /**
2726
+ * Get registered component IDs
2727
+ */
2728
+ getRegisteredComponentIds(): string[];
2729
+ /**
2730
+ * Create and load component dynamically
2731
+ */
2732
+ loadComponent(componentId: string, viewContainer: ViewContainerRef, config?: FloatingComponentConfig): ComponentRef<any> | null;
2733
+ /**
2734
+ * Destroy component
2735
+ */
2736
+ destroyComponent(componentId: string): void;
2737
+ /**
2738
+ * Get active component count
2739
+ */
2740
+ getActiveComponentCount(): number;
2741
+ /**
2742
+ * Clear all active components
2743
+ */
2744
+ clearActiveComponents(): void;
2745
+ /**
2746
+ * Get config signal for a container
2747
+ */
2748
+ getConfigSignal(config: FloatingContainerConfig): _angular_core.WritableSignal<FloatingContainerConfig>;
2749
+ /**
2750
+ * Get minimized signal for a container
2751
+ */
2752
+ getMinimizedSignal(containerId: string): _angular_core.Signal<boolean>;
2753
+ /**
2754
+ * Get maximized signal for a container
2755
+ */
2756
+ getMaximizedSignal(containerId: string): _angular_core.Signal<boolean>;
2757
+ getZIndexSignal(containerId: string): _angular_core.Signal<number>;
2758
+ /**
2759
+ * Set z-index for a specific container
2760
+ */
2761
+ setZIndex(containerId: string, zIndex: number): void;
2762
+ /**
2763
+ * Get visible signal for a container
2764
+ */
2765
+ getVisibleSignal(containerId: string): _angular_core.Signal<boolean>;
2766
+ /**
2767
+ * Get component config for dynamic loading
2768
+ */
2769
+ getComponentConfig(config: FloatingContainerConfig): {
2770
+ componentId: string;
2771
+ inputs: {
2772
+ [key: string]: any;
2773
+ } | undefined;
2774
+ outputs: {
2775
+ [key: string]: (event: any) => void;
2776
+ } | undefined;
2777
+ } | undefined;
2778
+ /**
2779
+ * Handle container close event
2780
+ */
2781
+ onClose(containerId: string): void;
2782
+ /**
2783
+ * Handle container minimize event
2784
+ */
2785
+ onMinimize(containerId: string): void;
2786
+ /**
2787
+ * Handle container maximize event
2788
+ */
2789
+ onMaximize(containerId: string): void;
2790
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFloatingContainerService, never>;
2791
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideEleFloatingContainerService>;
2792
+ }
2793
+
2794
+ declare class CideEleFloatingContainerManagerComponent {
2795
+ containerService: CideEleFloatingContainerService;
2796
+ visibleContainers: _angular_core.Signal<cloud_ide_element.FloatingContainerInstance[]>;
2797
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFloatingContainerManagerComponent, never>;
2798
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideEleFloatingContainerManagerComponent, "cide-ele-floating-container-manager", never, {}, {}, never, never, true, never>;
2799
+ }
2800
+
2801
+ declare class CideEleFloatingFeaturesService {
2802
+ private containerService;
2803
+ constructor();
2804
+ showFeature(featureId: string, config: FloatingContainerConfig): string;
2805
+ showComponent(containerId: string, componentId: string, title: string, componentType?: any, config?: Partial<FloatingContainerConfig>): string;
2806
+ /**
2807
+ * Generic method for showing any component with input data
2808
+ *
2809
+ * @example
2810
+ * // Pass data to a component
2811
+ * this.floatingFeaturesService.showComponentWithData(
2812
+ * 'my-component-container',
2813
+ * 'my-component',
2814
+ * 'My Component Title',
2815
+ * {
2816
+ * data: {
2817
+ * userId: '123',
2818
+ * userName: 'John Doe',
2819
+ * settings: { theme: 'dark' }
2820
+ * },
2821
+ * outputs: {
2822
+ * onSave: (data) => console.log('Save event:', data),
2823
+ * onCancel: () => console.log('Cancel clicked')
2824
+ * }
2825
+ * },
2826
+ * {
2827
+ * width: '600px',
2828
+ * height: '400px',
2829
+ * icon: 'settings'
2830
+ * }
2831
+ * );
2832
+ */
2833
+ showComponentWithData(containerId: string, componentId: string, title: string, componentData: {
2834
+ data: {
2835
+ [key: string]: any;
2836
+ };
2837
+ outputs?: {
2838
+ [key: string]: (event: any) => void;
2839
+ };
2840
+ }, containerConfig?: Partial<FloatingContainerConfig>): string;
2841
+ showMultipleInstances(componentId: string, titlePrefix: string, count: number, config?: Partial<FloatingContainerConfig>): string[];
2842
+ getInstancesOfType(componentType: string): cloud_ide_element.FloatingContainerInstance[];
2843
+ getActiveInstancesOfType(componentType: string): cloud_ide_element.FloatingContainerInstance[];
2844
+ closeAllInstancesOfType(componentType: string): void;
2845
+ minimizeAllInstancesOfType(componentType: string): void;
2846
+ getInstanceCount(componentType: string): number;
2847
+ getActiveInstanceCount(componentType: string): number;
2848
+ registerComponent(componentId: string, componentType: any): void;
2849
+ unregisterComponent(componentId: string): void;
2850
+ hideFeature(featureId: string): void;
2851
+ bringToFront(featureId: string): void;
2852
+ minimize(featureId: string): void;
2853
+ maximize(featureId: string): void;
2854
+ isVisible(featureId: string): boolean;
2855
+ hideAll(): void;
2856
+ minimizeAll(): void;
2857
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFloatingFeaturesService, never>;
2858
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideEleFloatingFeaturesService>;
2859
+ }
2860
+
2861
+ declare class CideEleFloatingContainerDynamicDirective implements OnInit, OnDestroy {
2862
+ private viewContainer;
2863
+ private containerService;
2864
+ componentId: string;
2865
+ componentConfig?: FloatingComponentConfig;
2866
+ isVisible: boolean;
2867
+ private componentRef;
2868
+ constructor(viewContainer: ViewContainerRef, containerService: CideEleFloatingContainerService);
2869
+ ngOnInit(): void;
2870
+ ngOnDestroy(): void;
2871
+ ngOnChanges(): void;
2872
+ private loadComponent;
2873
+ private destroyComponent;
2874
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideEleFloatingContainerDynamicDirective, never>;
2875
+ 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>;
1377
2876
  }
1378
2877
 
1379
- export { CideEleButtonComponent, CideEleConfirmationModalComponent, CideEleDataGridComponent, CideEleDropdownComponent, CideEleFileInputComponent, CideEleGlobalNotificationsComponent, CideEleJsonEditorComponent, CideEleResizerDirective, CideEleSkeletonLoaderComponent, CideEleTabComponent, CideEleToastNotificationComponent, CideElementsService, CideIconComponent, CideInputComponent, CideSelectComponent, CideSelectOptionComponent, CideSpinnerComponent, CideTextareaComponent, ConfirmationService, DEFAULT_GRID_CONFIG, DropdownManagerService, NotificationService, TooltipDirective };
1380
- export type { ButtonElevation, ButtonShape, ButtonSize, ButtonType, ButtonVariant, CideEleResizerDirection, CideEleResizerDirectionTo, ColumnType, ColumnWidth, ConfirmationOptions, ConfirmationRequest, DropdownConfig, DropdownInstance, DropdownItem, DropdownPosition, ErrorValidationStatus, GridAction, GridColumn, GridConfiguration, GridCustomFormatter, GridCustomRenderer, GridDragDropConfig, GridEvent, GridEventHandler, GridExportConfig, GridFormatter, GridLoadingConfig, GridPaginationConfig, GridScrollConfig, GridSearchConfig, GridState, GridTreeConfig, JsonEditorConfig, JsonEditorError, NotificationItem, NotificationOptions, Renderer, SelectOption, StatusConfig, StringRenderer, TabItem, TemplateContext, TemplateRenderer, TextAlign, TooltipPlacement, TooltipType, ValidationStatus };
2878
+ export { CideCoreFileManagerService, CideEleButtonComponent, CideEleConfirmationModalComponent, CideEleDataGridComponent, CideEleDropdownComponent, CideEleFileImageDirective, CideEleFileInputComponent, CideEleFileManagerService, CideEleFloatingContainerComponent, CideEleFloatingContainerDynamicDirective, CideEleFloatingContainerManagerComponent, CideEleFloatingContainerService, CideEleFloatingFeaturesService, CideEleFloatingFileUploaderComponent, CideEleFloatingFileUploaderService, CideEleGlobalNotificationsComponent, CideEleJsonEditorComponent, CideEleResizerDirective, CideEleSkeletonLoaderComponent, CideEleTabComponent, CideEleToastNotificationComponent, CideElementsService, CideIconComponent, CideInputComponent, CideSelectComponent, CideSelectOptionComponent, CideSpinnerComponent, CideTextareaComponent, ConfirmationService, CoreFileManagerInsertUpdatePayload, DEFAULT_GRID_CONFIG, DropdownManagerService, FloatingContainerShortcutsService, ICoreCyfmSave, KeyboardShortcutService, MFileManager, NotificationService, TooltipDirective };
2879
+ export type { 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 };