ngx-kit 7.2.0 → 7.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/angle-selector/README.md +34 -34
  2. package/box-shadow/README.md +33 -33
  3. package/color-picker/README.md +52 -52
  4. package/{shared → core}/README.md +117 -117
  5. package/data-table/README.md +120 -120
  6. package/date-picker/README.md +74 -74
  7. package/dialog/README.md +122 -92
  8. package/drag-resize/README.md +53 -55
  9. package/fesm2022/ngx-kit-angle-selector.mjs +9 -26
  10. package/fesm2022/ngx-kit-angle-selector.mjs.map +1 -1
  11. package/fesm2022/ngx-kit-box-shadow.mjs +330 -356
  12. package/fesm2022/ngx-kit-box-shadow.mjs.map +1 -1
  13. package/fesm2022/ngx-kit-color-picker.mjs +132 -272
  14. package/fesm2022/ngx-kit-color-picker.mjs.map +1 -1
  15. package/fesm2022/{ngx-kit-shared.mjs → ngx-kit-core.mjs} +845 -277
  16. package/fesm2022/ngx-kit-core.mjs.map +1 -0
  17. package/fesm2022/ngx-kit-data-table.mjs +3 -3
  18. package/fesm2022/ngx-kit-data-table.mjs.map +1 -1
  19. package/fesm2022/ngx-kit-date-picker.mjs +153 -147
  20. package/fesm2022/ngx-kit-date-picker.mjs.map +1 -1
  21. package/fesm2022/ngx-kit-dialog.mjs +430 -331
  22. package/fesm2022/ngx-kit-dialog.mjs.map +1 -1
  23. package/fesm2022/ngx-kit-drag-resize.mjs +126 -45
  24. package/fesm2022/ngx-kit-drag-resize.mjs.map +1 -1
  25. package/fesm2022/ngx-kit-drawer-menu.mjs +2 -2
  26. package/fesm2022/ngx-kit-drawer-menu.mjs.map +1 -1
  27. package/fesm2022/ngx-kit-dropzone.mjs.map +1 -1
  28. package/fesm2022/ngx-kit-form-field.mjs.map +1 -1
  29. package/fesm2022/ngx-kit-gallery.mjs +3 -3
  30. package/fesm2022/ngx-kit-gallery.mjs.map +1 -1
  31. package/fesm2022/ngx-kit-gradient-picker.mjs +20 -38
  32. package/fesm2022/ngx-kit-gradient-picker.mjs.map +1 -1
  33. package/fesm2022/ngx-kit-grid-layout.mjs +19 -18
  34. package/fesm2022/ngx-kit-grid-layout.mjs.map +1 -1
  35. package/fesm2022/ngx-kit-image-editor.mjs +3 -3
  36. package/fesm2022/ngx-kit-image-editor.mjs.map +1 -1
  37. package/fesm2022/ngx-kit-menu.mjs +1 -1
  38. package/fesm2022/ngx-kit-menu.mjs.map +1 -1
  39. package/fesm2022/ngx-kit-message.mjs +1 -1
  40. package/fesm2022/ngx-kit-message.mjs.map +1 -1
  41. package/fesm2022/ngx-kit-notify.mjs +1 -1
  42. package/fesm2022/ngx-kit-notify.mjs.map +1 -1
  43. package/fesm2022/ngx-kit-time-picker.mjs +1 -1
  44. package/fesm2022/ngx-kit-time-picker.mjs.map +1 -1
  45. package/fesm2022/ngx-kit-virtual-scroll.mjs +2 -2
  46. package/fesm2022/ngx-kit-virtual-scroll.mjs.map +1 -1
  47. package/gallery/README.md +71 -71
  48. package/gradient-picker/README.md +41 -41
  49. package/grid-layout/README.md +64 -64
  50. package/image-editor/README.md +44 -44
  51. package/menu/README.md +85 -85
  52. package/message/README.md +70 -70
  53. package/notify/README.md +56 -56
  54. package/package.json +5 -9
  55. package/time-picker/README.md +89 -89
  56. package/types/ngx-kit-angle-selector.d.ts +13 -16
  57. package/types/ngx-kit-box-shadow.d.ts +37 -95
  58. package/types/ngx-kit-color-picker.d.ts +61 -58
  59. package/types/{ngx-kit-shared.d.ts → ngx-kit-core.d.ts} +156 -34
  60. package/types/ngx-kit-data-table.d.ts +2 -2
  61. package/types/ngx-kit-date-picker.d.ts +30 -29
  62. package/types/ngx-kit-dialog.d.ts +208 -107
  63. package/types/ngx-kit-drag-resize.d.ts +33 -6
  64. package/types/ngx-kit-gradient-picker.d.ts +4 -7
  65. package/types/ngx-kit-grid-layout.d.ts +0 -1
  66. package/types/ngx-kit-menu.d.ts +1 -1
  67. package/types/ngx-kit-time-picker.d.ts +1 -1
  68. package/virtual-scroll/README.md +199 -199
  69. package/fesm2022/ngx-kit-shared.mjs.map +0 -1
  70. package/fesm2022/ngx-kit-webflow.mjs +0 -709
  71. package/fesm2022/ngx-kit-webflow.mjs.map +0 -1
  72. package/types/ngx-kit-webflow.d.ts +0 -286
@@ -1,8 +1,8 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
2
  import { TemplateRef, InjectionToken, Type, EventEmitter, ElementRef, OnInit, Provider, ViewContainerRef, Renderer2 } from '@angular/core';
3
3
  import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
4
4
  import * as ngx_kit_date_picker from 'ngx-kit/date-picker';
5
- import { OverlayService } from 'ngx-kit/shared';
5
+ import { OverlayService } from 'ngx-kit/core';
6
6
 
7
7
  declare class NgxDatePickerConfig {
8
8
  previousButtonTemplate?: TemplateRef<any>;
@@ -92,14 +92,14 @@ interface IDateAdapter {
92
92
  declare class DateAdapterRegistry {
93
93
  adapters: DateAdapterRegistration[];
94
94
  resolve(locale: string): ngx_kit_date_picker.IDateAdapter;
95
- static ɵfac: i0.ɵɵFactoryDeclaration<DateAdapterRegistry, never>;
96
- static ɵprov: i0.ɵɵInjectableDeclaration<DateAdapterRegistry>;
95
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateAdapterRegistry, never>;
96
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<DateAdapterRegistry>;
97
97
  }
98
98
 
99
99
  declare class NgxInputDatePicker implements ControlValueAccessor, Validator {
100
100
  private el;
101
101
  protected readonly dateAdapterRegistry: DateAdapterRegistry;
102
- openOnCLick: i0.InputSignal<boolean>;
102
+ openOnCLick: _angular_core.InputSignal<boolean>;
103
103
  change: EventEmitter<Date>;
104
104
  private value?;
105
105
  private pickerRef?;
@@ -141,9 +141,9 @@ declare class NgxInputDatePicker implements ControlValueAccessor, Validator {
141
141
  private emitChange;
142
142
  validate(control: AbstractControl): ValidationErrors | null;
143
143
  /** Formats a value and sets it on the input element. */
144
- protected _formatValue(value: Date | null, setChange?: boolean): void;
145
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxInputDatePicker, never>;
146
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxInputDatePicker, "[ngxInputDatePicker]", ["ngxInputDatePicker"], { "openOnCLick": { "alias": "openOnCLick"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; "setMin": { "alias": "min"; "required": false; }; "setMax": { "alias": "max"; "required": false; }; "setConfig": { "alias": "config"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
144
+ protected _formatValue(value: Date | null | undefined, setChange?: boolean): void;
145
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputDatePicker, never>;
146
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxInputDatePicker, "[ngxInputDatePicker]", ["ngxInputDatePicker"], { "openOnCLick": { "alias": "openOnCLick"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; "setMin": { "alias": "min"; "required": false; }; "setMax": { "alias": "max"; "required": false; }; "setConfig": { "alias": "config"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
147
147
  }
148
148
 
149
149
  /**
@@ -232,16 +232,16 @@ declare abstract class NgxDatePickerBase {
232
232
  protected _locale: string;
233
233
  protected dateAdapterRegistry: DateAdapterRegistry;
234
234
  adapter: IDateAdapter;
235
- currYear: number;
236
- currMonth: number;
237
- currentWeek: number;
235
+ currYear: _angular_core.WritableSignal<number>;
236
+ currMonth: _angular_core.WritableSignal<number>;
237
+ currentWeek: _angular_core.WritableSignal<number>;
238
238
  months: string[];
239
239
  weeks: string[];
240
240
  viewDays: DateViewDay[];
241
241
  viewMonths: DateViewMonth[];
242
242
  viewYears: DateViewYear[];
243
243
  viewWeeks: DateViewWeek[];
244
- displayMonth: string;
244
+ readonly displayMonth: _angular_core.WritableSignal<string>;
245
245
  minDate: Date | null;
246
246
  maxDate: Date | null;
247
247
  renderCalendar(view: CalendarView, selected?: CalendarDate, events?: MsEvents[], callback?: Function): void;
@@ -314,8 +314,8 @@ interface EventInteractionState {
314
314
  }
315
315
  declare class NgxCalendarComponent extends NgxDatePickerBase implements OnInit {
316
316
  defaultLocalization: NgxCalendarLocalization;
317
- localize: i0.InputSignal<NgxCalendarLocalization>;
318
- resizeAndMovable: i0.InputSignal<boolean>;
317
+ localize: _angular_core.InputSignal<NgxCalendarLocalization>;
318
+ resizeAndMovable: _angular_core.InputSignal<boolean>;
319
319
  _config: NgxDatePickerConfig;
320
320
  set config(val: NgxDatePickerConfig);
321
321
  set locale(val: string);
@@ -343,7 +343,7 @@ declare class NgxCalendarComponent extends NgxDatePickerBase implements OnInit {
343
343
  timeSlots: number[];
344
344
  readonly hourHeight = 64;
345
345
  readonly timeColumnWidth = 64;
346
- calendarWrapper: i0.Signal<ElementRef<HTMLElement> | undefined>;
346
+ calendarWrapper: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
347
347
  protected interaction: EventInteractionState | null;
348
348
  constructor();
349
349
  ngOnInit(): void;
@@ -402,13 +402,13 @@ declare class NgxCalendarComponent extends NgxDatePickerBase implements OnInit {
402
402
  private endOfDay;
403
403
  private readonly defaultHeight;
404
404
  minHeight: number;
405
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxCalendarComponent, never>;
406
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxCalendarComponent, "ngx-calendar", never, { "localize": { "alias": "localize"; "required": false; "isSignal": true; }; "resizeAndMovable": { "alias": "resizeAndMovable"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "setMin": { "alias": "min"; "required": false; }; "setMax": { "alias": "max"; "required": false; }; "view": { "alias": "view"; "required": false; }; "events": { "alias": "events"; "required": false; }; }, { "dateChange": "dateChange"; "selectEvent": "selectEvent"; "eventChange": "eventChange"; "eventsChange": "eventsChange"; }, never, never, true, never>;
405
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxCalendarComponent, never>;
406
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxCalendarComponent, "ngx-calendar", never, { "localize": { "alias": "localize"; "required": false; "isSignal": true; }; "resizeAndMovable": { "alias": "resizeAndMovable"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "setMin": { "alias": "min"; "required": false; }; "setMax": { "alias": "max"; "required": false; }; "view": { "alias": "view"; "required": false; }; "events": { "alias": "events"; "required": false; }; }, { "dateChange": "dateChange"; "selectEvent": "selectEvent"; "eventChange": "eventChange"; "eventsChange": "eventsChange"; }, never, never, true, never>;
407
407
  }
408
408
 
409
409
  declare class NgxInputDatePickerComponent extends NgxDatePickerBase implements ControlValueAccessor, Validator, OnInit {
410
410
  defaultLocalization: NgxCalendarLocalization;
411
- localize: i0.InputSignal<NgxCalendarLocalization>;
411
+ localize: _angular_core.InputSignal<NgxCalendarLocalization>;
412
412
  config: NgxDatePickerConfig;
413
413
  set setConfig(val: NgxDatePickerConfig);
414
414
  set locale(val: string);
@@ -416,10 +416,10 @@ declare class NgxInputDatePickerComponent extends NgxDatePickerBase implements C
416
416
  set setMin(value: Date | null | undefined);
417
417
  /** The maximum valid date. */
418
418
  set setMax(value: Date | null | undefined);
419
- view: DatePickerView;
419
+ readonly view: _angular_core.ModelSignal<DatePickerView>;
420
420
  change: EventEmitter<Date | null>;
421
421
  selected?: CalendarDate;
422
- calendarHeader: string;
422
+ readonly calendarHeader: _angular_core.WritableSignal<string>;
423
423
  isDisabled: boolean;
424
424
  weekDays: {
425
425
  min: string;
@@ -448,8 +448,8 @@ declare class NgxInputDatePickerComponent extends NgxDatePickerBase implements C
448
448
  selectYear(ev: Event, item: DateViewYear): void;
449
449
  clear(): void;
450
450
  stopPagination(ev: Event): void;
451
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxInputDatePickerComponent, never>;
452
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxInputDatePickerComponent, "ngx-date-picker", never, { "localize": { "alias": "localize"; "required": false; "isSignal": true; }; "setConfig": { "alias": "config"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "setMin": { "alias": "min"; "required": false; }; "setMax": { "alias": "max"; "required": false; }; "view": { "alias": "view"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
451
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputDatePickerComponent, never>;
452
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxInputDatePickerComponent, "ngx-date-picker", never, { "localize": { "alias": "localize"; "required": false; "isSignal": true; }; "setConfig": { "alias": "config"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "setMin": { "alias": "min"; "required": false; }; "setMax": { "alias": "max"; "required": false; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; }, { "view": "viewChange"; "change": "change"; }, never, never, true, never>;
453
453
  }
454
454
 
455
455
  declare function provideDateAdapters(...additional: DateAdapterRegistration[]): Provider[];
@@ -472,12 +472,12 @@ declare function isDateInPreviewRange(date: Date, start: Date | null, previewEnd
472
472
 
473
473
  declare class NgxDateRangePickerComponent extends NgxDatePickerBase implements ControlValueAccessor, Validator, OnInit {
474
474
  defaultLocalization: NgxCalendarLocalization;
475
- localize: i0.InputSignal<NgxCalendarLocalization>;
475
+ localize: _angular_core.InputSignal<NgxCalendarLocalization>;
476
476
  config: NgxDatePickerConfig;
477
477
  set locale(value: string);
478
478
  set min(value: Date | null | undefined);
479
479
  set max(value: Date | null | undefined);
480
- view: DatePickerView;
480
+ readonly view: _angular_core.ModelSignal<DatePickerView>;
481
481
  rangeChange: EventEmitter<NgxDateRange<Date>>;
482
482
  change: EventEmitter<NgxDateRange<Date>>;
483
483
  range: NgxDateRange<Date>;
@@ -486,7 +486,7 @@ declare class NgxDateRangePickerComponent extends NgxDatePickerBase implements C
486
486
  min: string;
487
487
  name: string;
488
488
  }[];
489
- calendarHeader: string;
489
+ readonly calendarHeader: _angular_core.WritableSignal<string>;
490
490
  protected _onChange: (_value: NgxDateRange<Date>) => void;
491
491
  protected _onTouched: () => void;
492
492
  protected _validatorOnChange: () => void;
@@ -500,6 +500,7 @@ declare class NgxDateRangePickerComponent extends NgxDatePickerBase implements C
500
500
  setDisabledState(disabled: boolean): void;
501
501
  validate(_control: AbstractControl): ValidationErrors | null;
502
502
  renderِDatePicker(view: DatePickerView): void;
503
+ updateHeader(): void;
503
504
  private init;
504
505
  changeView(view: DatePickerView): void;
505
506
  gotoToday(): void;
@@ -514,8 +515,8 @@ declare class NgxDateRangePickerComponent extends NgxDatePickerBase implements C
514
515
  private applyRangeState;
515
516
  private emitValue;
516
517
  stopPagination(event: Event): void;
517
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxDateRangePickerComponent, never>;
518
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxDateRangePickerComponent, "ngx-date-range-picker", never, { "localize": { "alias": "localize"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "view": { "alias": "view"; "required": false; }; }, { "rangeChange": "rangeChange"; "change": "change"; }, never, never, true, never>;
518
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDateRangePickerComponent, never>;
519
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxDateRangePickerComponent, "ngx-date-range-picker", never, { "localize": { "alias": "localize"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; }, { "view": "viewChange"; "rangeChange": "rangeChange"; "change": "change"; }, never, never, true, never>;
519
520
  }
520
521
 
521
522
  declare class NgxInputDateRangePicker implements ControlValueAccessor, Validator {
@@ -556,8 +557,8 @@ declare class NgxInputDateRangePicker implements ControlValueAccessor, Validator
556
557
  validate(_control: AbstractControl): ValidationErrors | null;
557
558
  private formatValue;
558
559
  private destroyDatePicker;
559
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxInputDateRangePicker, never>;
560
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxInputDateRangePicker, "input[ngxInputDateRangePicker]", ["ngxInputDateRangePicker"], { "openOnClick": { "alias": "openOnClick"; "required": false; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; "rangeSeparator": { "alias": "rangeSeparator"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "setMin": { "alias": "min"; "required": false; }; "setMax": { "alias": "max"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
560
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputDateRangePicker, never>;
561
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxInputDateRangePicker, "input[ngxInputDateRangePicker]", ["ngxInputDateRangePicker"], { "openOnClick": { "alias": "openOnClick"; "required": false; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; "rangeSeparator": { "alias": "rangeSeparator"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "setMin": { "alias": "min"; "required": false; }; "setMax": { "alias": "max"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
561
562
  }
562
563
 
563
564
  export { DATE_ADAPTERS, DEFAULT_DATE_ADAPTERS, DateModel, DateViewDay, DateViewMonth, DateViewWeek, DateViewYear, NgxCalendarComponent, NgxDatePickerConfig, NgxDateRangePickerComponent, NgxInputDatePicker, NgxInputDatePickerComponent, NgxInputDateRangePicker, createDateRange, getLocals, isCompleteDateRange, isDateInPreviewRange, isDateInRange, normalizeDateRange, provideDateAdapters };
@@ -1,140 +1,241 @@
1
- import * as i0 from '@angular/core';
2
- import { Injector, ElementRef, OnInit, AfterViewInit, OnDestroy, Type, ComponentRef, ApplicationRef, EnvironmentInjector, Renderer2, InjectionToken } from '@angular/core';
3
- import * as rxjs from 'rxjs';
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnInit, OnDestroy, Injector, EnvironmentProviders, Type, InjectionToken } from '@angular/core';
3
+ import * as ngx_kit_dialog from 'ngx-kit/dialog';
4
4
  import { Observable } from 'rxjs';
5
- import * as i5 from '@angular/common';
5
+ import { OverlayRef } from 'ngx-kit/core';
6
+ import * as i1 from 'ngx-kit/drag-resize';
6
7
 
8
+ type NgxDialogFooterAlign = 'start' | 'end' | 'center' | 'space-between' | 'space-around';
9
+ declare class NgxDialogFooter implements OnInit, OnDestroy {
10
+ readonly align: _angular_core.InputSignal<NgxDialogFooterAlign>;
11
+ private readonly el;
12
+ private readonly dialogRef;
13
+ ngOnInit(): void;
14
+ ngOnDestroy(): void;
15
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDialogFooter, never>;
16
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxDialogFooter, "ngx-dialog-footer,[ngxDialogFooter]", ["ngxDialogFooter"], { "align": { "alias": "align"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
17
+ }
18
+
19
+ type NgxDialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
20
+ interface NgxDialogHeaderConfig {
21
+ enable?: boolean;
22
+ title?: string;
23
+ showCloseButton?: boolean;
24
+ showMaximizeButton?: boolean;
25
+ }
26
+ interface NgxDialogFooterConfig {
27
+ enable?: boolean;
28
+ /** Text for the auto-generated close button. Default: 'Close'. */
29
+ closeText?: string;
30
+ align?: NgxDialogFooterAlign;
31
+ }
32
+ /**
33
+ * BREAKING CHANGE from the previous version of this config:
34
+ * - `allowCloseOnOutsideClick` -> `closeOnOutsideClick` (naming now matches
35
+ * `ngx-kit/overlay`'s options, which this service is built directly on).
36
+ * - `header`/`footer` are now actually wired up (previously declared but
37
+ * unused) - set `enable: true` to get an automatic header/footer without
38
+ * having to place the `ngxDialogHeader`/`ngxDialogFooter` directives
39
+ * yourself inside the content component.
40
+ */
7
41
  declare class NgxDialogConfig<DataType = any> {
8
- /**
9
- * pass data to dialog
10
- */
11
- data?: DataType | any;
12
- /** close dialog on outside click
13
- * - default false */
14
- allowCloseOnOutsideClick?: boolean;
15
- /**
16
- * container class
17
- * - You can separate the list of classes with a space
18
- * - for example:"`my class one two three ...`"
19
- *
20
- * TODO: must set with public config setter
21
- */
22
- containerClass?: string | undefined;
23
- header?: {
24
- enable?: true;
25
- title?: '';
26
- showCloseButton?: true;
27
- };
28
- footer?: {
29
- enable?: true;
30
- };
42
+ /** Data made available to the content component (and to `ngx-dialog-panel`
43
+ * itself) via the `DIALOG_DATA` injection token. */
44
+ data?: DataType;
45
+ /** Named size preset - sets sensible min/max width bounds. Combine with
46
+ * `width`/`maxWidth`/... for full manual control. */
47
+ size?: NgxDialogSize;
31
48
  width?: string;
32
49
  minWidth?: string;
33
50
  maxWidth?: string;
34
51
  height?: string;
35
52
  minHeight?: string;
36
53
  maxHeight?: string;
37
- /** parent injector */
54
+ /** Extra class(es) on the dialog panel (the `ngx-dialog-panel` host). */
55
+ panelClass?: string | string[];
56
+ /** Extra class(es) on the backdrop element behind the panel. */
57
+ backdropClass?: string | string[];
58
+ header?: NgxDialogHeaderConfig;
59
+ footer?: NgxDialogFooterConfig;
60
+ /** Close when clicking outside the panel. Default: false (modal by default). */
61
+ closeOnOutsideClick?: boolean;
62
+ /** Close on Escape. Default: true. */
63
+ closeOnEscape?: boolean;
64
+ /** Shorthand for `closeOnOutsideClick: false, closeOnEscape: false` - the
65
+ * dialog can then only be closed programmatically (e.g. via its own
66
+ * buttons calling `dialogRef.close()`). */
67
+ disableClose?: boolean;
68
+ /** Synchronous guard consulted before Escape/outside-click would close the
69
+ * dialog - return `false` to block it (e.g. unsaved changes). Does not
70
+ * affect a programmatic `dialogRef.close()` call. */
71
+ beforeClose?: () => boolean;
72
+ /** Prevent the page behind the dialog from scrolling while it's open. Default: true. */
73
+ lockBodyScroll?: boolean;
74
+ /** Move focus into the dialog on open. Default: true. */
75
+ autoFocus?: boolean;
76
+ /** Restore focus to the previously focused element on close. Default: true. */
77
+ restoreFocus?: boolean;
78
+ /** Render via the native Popover API when supported. Default: true. */
79
+ usePopover?: boolean;
80
+ role?: 'dialog' | 'alertdialog';
81
+ ariaLabel?: string;
82
+ ariaLabelledby?: string;
83
+ ariaDescribedby?: string;
84
+ /** Entry animation for the panel. Default: 'zoom'. */
85
+ animation?: 'zoom' | 'fade' | 'slide-up' | 'none';
86
+ /** Parent injector for the content component (and `ngx-dialog-panel`
87
+ * itself). Defaults to the root injector. */
38
88
  injector?: Injector;
39
- constructor();
89
+ constructor(init?: Partial<NgxDialogConfig<DataType>>);
40
90
  }
41
91
 
42
- declare class NgxDialogRef {
43
- dialog?: ElementRef<HTMLElement>;
44
- header?: ElementRef<HTMLElement>;
45
- footer?: ElementRef<HTMLElement>;
46
- body?: ElementRef<HTMLElement>;
92
+ declare function provideNgxDialog(config?: NgxDialogConfig): EnvironmentProviders;
93
+
94
+ declare class NgxDialogRef<R = any> {
95
+ readonly id: string;
96
+ /** true from the moment `close()` is called, even before teardown finishes. */
97
+ readonly closing: _angular_core.WritableSignal<boolean>;
98
+ /** true once the dialog has been fully removed from the DOM. */
99
+ readonly closed: _angular_core.WritableSignal<boolean>;
47
100
  private readonly _afterClosed;
48
- afterClosed: Observable<any>;
49
- id?: string;
50
- close(result?: any): void;
101
+ /** Emits the result exactly once, after the dialog has been fully torn down. */
102
+ readonly afterClosed: Observable<R | undefined>;
103
+ /** @internal set by the layout directives; read by NgxDialogBody to size itself. */
104
+ readonly headerEl: _angular_core.WritableSignal<HTMLElement | null>;
105
+ /** @internal */
106
+ readonly footerEl: _angular_core.WritableSignal<HTMLElement | null>;
107
+ /** @internal */
108
+ readonly bodyEl: _angular_core.WritableSignal<HTMLElement | null>;
109
+ /** @internal the dialog panel's own host element. */
110
+ readonly panelEl: _angular_core.WritableSignal<HTMLElement | null>;
111
+ /** Optional synchronous guard - return `false` to prevent Escape/outside-click from closing. */
112
+ beforeClose?: () => boolean;
113
+ private overlayRef?;
114
+ private result;
115
+ /** @internal used by NgxDialogService right after creating the overlay. */
116
+ _attachOverlayRef(ref: OverlayRef<unknown>): void;
117
+ /** @internal used by the header/footer/body directives and the panel component. */
118
+ _setHeaderElement(el: HTMLElement | null): void;
119
+ /** @internal */
120
+ _setFooterElement(el: HTMLElement | null): void;
121
+ /** @internal */
122
+ _setBodyElement(el: HTMLElement | null): void;
123
+ /** @internal */
124
+ _setPanelElement(el: HTMLElement | null): void;
125
+ /** Closes the dialog and emits `result` on `afterClosed` once torn down. Idempotent. */
126
+ close(result?: R): void;
127
+ /** @internal called by NgxDialogService's `onClosed` callback once the overlay is fully torn down. */
128
+ _finalizeClose(): void;
51
129
  }
52
130
 
53
- declare class NgxDialogComponent implements OnInit, AfterViewInit, OnDestroy {
54
- config?: NgxDialogConfig;
55
- component: Type<any>;
56
- private readonly _onClose;
57
- onClose: rxjs.Observable<void>;
58
- ngxDialog?: ElementRef<HTMLElement>;
59
- _dialogRef: NgxDialogRef;
60
- private cd;
131
+ /**
132
+ * The dialog "panel" shell. It no longer owns the backdrop, centering,
133
+ * focus trap, Escape handling or outside-click handling - all of that now
134
+ * lives in `OverlayService`, which this component is rendered inside of.
135
+ * This is intentionally a thin, fully signal-driven shell: no
136
+ * `AfterViewInit`, no manual `ChangeDetectorRef.detectChanges()`, no
137
+ * imperative style writes. Angular schedules change detection automatically
138
+ * whenever a signal read from the template changes, including in zoneless
139
+ * apps.
140
+ */
141
+ declare class NgxDialogComponent {
142
+ protected readonly dialogRef: NgxDialogRef<any>;
143
+ protected readonly config: ngx_kit_dialog.NgxDialogConfig<any>;
144
+ protected readonly content: _angular_core.Type<any>;
145
+ protected readonly sizeClass: _angular_core.Signal<string>;
61
146
  constructor();
62
- ngOnInit(): void;
63
- ngAfterViewInit(): void;
64
- ngOnDestroy(): void;
65
- onOverlayClicked(evt: MouseEvent): void;
66
- onDialogClicked(evt: MouseEvent): void;
67
- close(): void;
68
- setStyle(): void;
69
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxDialogComponent, never>;
70
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxDialogComponent, "ng-component", never, {}, {}, never, never, false, never>;
71
- }
72
-
73
- declare class NgxOverlayService {
74
- private appRef;
75
- private injector;
76
- private envInjector;
77
- dialogComponentRefs: ComponentRef<NgxDialogComponent>[];
78
- _defaultOptions: NgxDialogConfig | undefined;
79
- constructor(appRef: ApplicationRef, injector: Injector, envInjector: EnvironmentInjector);
80
- open(component: Type<any>, config?: NgxDialogConfig): NgxDialogRef;
81
- private _open;
82
- private removeDialogComponentFromBody;
83
- private appendDialogComponentToBody;
84
- closeAll(): void;
85
- private get getDialogId();
86
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxOverlayService, never>;
87
- static ɵprov: i0.ɵɵInjectableDeclaration<NgxOverlayService>;
147
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDialogComponent, never>;
148
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxDialogComponent, "ngx-dialog-panel", never, {}, {}, never, never, true, never>;
88
149
  }
89
150
 
90
- declare class NgxDialogHeaderDirective implements OnInit {
91
- _el: ElementRef<HTMLElement>;
92
- private _document;
93
- showCloseButton: boolean;
94
- private _dialogRef;
95
- constructor(_el: ElementRef<HTMLElement>, _document: Document);
151
+ declare class NgxDialogHeader implements OnInit {
152
+ private config;
153
+ readonly showCloseButton: _angular_core.InputSignal<boolean>;
154
+ readonly showMaximizeButton: _angular_core.InputSignal<boolean>;
155
+ private readonly el;
156
+ private readonly document;
157
+ private readonly dialogRef;
158
+ private readonly drag;
159
+ private isMaximized;
96
160
  ngOnInit(): void;
97
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxDialogHeaderDirective, never>;
98
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxDialogHeaderDirective, "ngx-dialog-header,[ngxDialogHeader]", ["ngxDialogHeader"], { "showCloseButton": { "alias": "showCloseButton"; "required": false; }; }, {}, never, never, false, never>;
161
+ private fullScreen;
162
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDialogHeader, never>;
163
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxDialogHeader, "ngx-dialog-header,[ngxDialogHeader]", ["ngxDialogHeader"], { "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "showMaximizeButton": { "alias": "showMaximizeButton"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.NgxDraggable; inputs: {}; outputs: {}; }]>;
99
164
  }
100
165
 
101
- declare class NgxDialogFooterDirective implements OnInit {
102
- _el: ElementRef<HTMLElement>;
103
- align: 'start' | 'end' | 'space-between' | 'center' | 'space-around';
104
- private _dialogRef;
105
- constructor(_el: ElementRef<HTMLElement>);
106
- ngOnInit(): void;
107
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxDialogFooterDirective, never>;
108
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxDialogFooterDirective, "ngx-dialog-footer,[ngxDialogFooter]", ["ngxDialogFooter"], { "align": { "alias": "align"; "required": false; }; }, {}, never, never, false, never>;
166
+ /**
167
+ * Why this can't be pure CSS flexbox: the header/body/footer elements are
168
+ * *grandchildren* of the dialog panel (panel -> `*ngComponentOutlet`'s host
169
+ * element -> header/body/footer), not direct children, because the content
170
+ * component that hosts them is arbitrary and we don't control its own host
171
+ * styling. `display:flex;flex-direction:column` on the panel therefore can't
172
+ * size the body against the header/footer through that extra layer, so we
173
+ * measure and set an explicit `max-height` instead, driven by a
174
+ * `ResizeObserver` on the panel (not a `window:resize` listener, so it also
175
+ * reacts to the dialog itself changing size, e.g. via `config.size`).
176
+ */
177
+ declare class NgxDialogBody {
178
+ private readonly el;
179
+ private readonly renderer;
180
+ private readonly dialogRef;
181
+ private readonly destroyRef;
182
+ constructor();
183
+ private recomputeHeight;
184
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDialogBody, never>;
185
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxDialogBody, "ngx-dialog-body,[ngxDialogBody]", ["ngxDialogBody"], {}, {}, never, never, true, never>;
109
186
  }
110
187
 
111
- declare class NgxDialogBodyDirective implements AfterViewInit {
112
- _el: ElementRef<HTMLElement>;
113
- private _renderer;
114
- height?: number;
115
- private _dialogRef;
116
- constructor(_el: ElementRef<HTMLElement>, _renderer: Renderer2);
117
- ngAfterViewInit(): void;
118
- onWindowResize(ev?: Event): void;
119
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxDialogBodyDirective, never>;
120
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxDialogBodyDirective, "ngx-dialog-body,[ngxDialogBody]", ["ngxDialogBody"], {}, {}, never, never, false, never>;
188
+ declare class NgxDialogModule {
189
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDialogModule, never>;
190
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<NgxDialogModule, never, [typeof NgxDialogComponent, typeof NgxDialogHeader, typeof NgxDialogFooter, typeof NgxDialogBody], [typeof NgxDialogComponent, typeof NgxDialogHeader, typeof NgxDialogFooter, typeof NgxDialogBody]>;
191
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<NgxDialogModule>;
121
192
  }
122
193
 
123
- declare class NgxDialogModule {
124
- private readonly platformId;
125
- constructor(parentModule: NgxDialogModule | null, service: NgxOverlayService);
126
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxDialogModule, [{ optional: true; skipSelf: true; }, null]>;
127
- static ɵmod: i0.ɵɵNgModuleDeclaration<NgxDialogModule, [typeof NgxDialogComponent, typeof NgxDialogHeaderDirective, typeof NgxDialogFooterDirective, typeof NgxDialogBodyDirective], [typeof i5.CommonModule], [typeof NgxDialogComponent, typeof NgxDialogHeaderDirective, typeof NgxDialogFooterDirective, typeof NgxDialogBodyDirective]>;
128
- static ɵinj: i0.ɵɵInjectorDeclaration<NgxDialogModule>;
194
+ declare class NgxDialogService {
195
+ private readonly overlay;
196
+ private readonly injector;
197
+ private readonly _openRefs;
198
+ /** Every currently open dialog, oldest first. */
199
+ readonly openDialogs: _angular_core.Signal<NgxDialogRef<any>[]>;
200
+ /** How many dialogs are currently open. */
201
+ readonly openCount: _angular_core.Signal<number>;
202
+ readonly defaultConfig: NgxDialogConfig<any>;
203
+ /**
204
+ * Opens `content` inside a dialog panel and returns a ref you can use to
205
+ * close it and read the result back (`afterClosed`).
206
+ */
207
+ open<R = any, DataType = any>(content: Type<any>, config?: Partial<NgxDialogConfig<DataType>>): NgxDialogRef<R>;
208
+ /** Closes every currently open dialog (ignores `disableClose`/guards - use sparingly, e.g. on logout). */
209
+ closeAll(): void;
210
+ private applySizing;
211
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDialogService, never>;
212
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<NgxDialogService>;
129
213
  }
130
214
 
215
+ /**
216
+ * Static convenience API over `NgxDialogService`, so you can call
217
+ * `Dialog.open(...)` from anywhere without injecting the service manually.
218
+ *
219
+ * SSR note: the instance backing this static class is process-wide, not
220
+ * per-request, so it is deliberately left unset on the server (see
221
+ * `provideNgxDialog()`). Inject `NgxDialogService` directly in SSR code paths.
222
+ */
131
223
  declare class Dialog {
132
224
  private static serviceInstance;
133
- static _setService(svc: NgxOverlayService): void;
134
- static open<DataType>(component: Type<any>, config?: NgxDialogConfig<DataType>): NgxDialogRef;
225
+ /** @internal set by `provideNgxDialog()`'s environment initializer. */
226
+ static _setService(svc: NgxDialogService): void;
227
+ private static get service();
228
+ static open<R = any, DataType = any>(component: Type<any>, config?: Partial<NgxDialogConfig<DataType>>): NgxDialogRef<R>;
229
+ static closeAll(): void;
135
230
  }
136
231
 
137
232
  declare const DIALOG_DATA: InjectionToken<any>;
138
- declare const DIALOG_REF: InjectionToken<NgxDialogRef>;
233
+ declare const DIALOG_REF: InjectionToken<NgxDialogRef<any>>;
234
+ /** The resolved config for the dialog currently being rendered. */
235
+ declare const NGX_DIALOG_DEFAULT_CONFIG: NgxDialogConfig<any>;
236
+ declare const NGX_DIALOG_CONFIG: InjectionToken<NgxDialogConfig<any>>;
237
+ /** The arbitrary content component passed to `open()`, projected via `*ngComponentOutlet`. */
238
+ declare const DIALOG_CONTENT: InjectionToken<Type<any>>;
139
239
 
140
- export { DIALOG_DATA, DIALOG_REF, Dialog, NgxDialogBodyDirective, NgxDialogComponent, NgxDialogConfig, NgxDialogFooterDirective, NgxDialogHeaderDirective, NgxDialogModule };
240
+ export { DIALOG_CONTENT, DIALOG_DATA, DIALOG_REF, Dialog, NGX_DIALOG_CONFIG, NGX_DIALOG_DEFAULT_CONFIG, NgxDialogBody, NgxDialogComponent, NgxDialogConfig, NgxDialogFooter, NgxDialogHeader, NgxDialogModule, NgxDialogService, provideNgxDialog };
241
+ export type { NgxDialogFooterAlign, NgxDialogFooterConfig, NgxDialogHeaderConfig, NgxDialogSize };
@@ -90,6 +90,7 @@ declare class DragRef<T = unknown> {
90
90
  private previousZIndex;
91
91
  private moveDx;
92
92
  private moveDy;
93
+ private scrollCompensation;
93
94
  private preview?;
94
95
  private previewOffsetX;
95
96
  private previewOffsetY;
@@ -110,6 +111,12 @@ declare class DragRef<T = unknown> {
110
111
  get pointer(): IPosition;
111
112
  get start(): DOMRect;
112
113
  getPlaceholderElement(): HTMLElement | undefined;
114
+ /**
115
+ * صدا زده می‌شود هر بار که container یا window در حین درگ اسکرول شود
116
+ * (چه توسط auto-scroll خودمان، چه با wheel/اسکرول‌بار دستی کاربر).
117
+ * transform را فوراً تصحیح می‌کند تا عنصر زیر پوینتر بماند.
118
+ */
119
+ notifyScroll(dx: number, dy: number): void;
113
120
  private applyTransform;
114
121
  private updatePreview;
115
122
  }
@@ -167,9 +174,9 @@ declare class NgxDraggable<T = unknown> implements OnInit, OnDestroy {
167
174
  readonly disabled: _angular_core.ModelSignal<boolean>;
168
175
  /** Element whose rect constrains the drag. Now actually enforced. */
169
176
  readonly boundary: _angular_core.InputSignal<HTMLElement | undefined>;
170
- readonly dragRootElement: _angular_core.InputSignal<string>;
177
+ readonly dragRootElement: _angular_core.ModelSignal<string>;
171
178
  /** CSS selector for a drag handle. When set, only pointerdowns inside it start a drag. */
172
- readonly dragHandle: _angular_core.InputSignal<string>;
179
+ readonly dragHandle: _angular_core.ModelSignal<string>;
173
180
  /** Restrict movement to a single axis. */
174
181
  readonly lockAxis: _angular_core.InputSignal<DragAxis>;
175
182
  /** Minimum pointer travel (px) before a drag starts, so clicks still register normally. */
@@ -192,15 +199,27 @@ declare class NgxDraggable<T = unknown> implements OnInit, OnDestroy {
192
199
  private down;
193
200
  private start;
194
201
  private pointerId;
202
+ private lastPointer;
195
203
  private removeDown?;
196
204
  private removeMove?;
197
205
  private removeUp?;
198
206
  private removeKeydown?;
199
207
  private removeEscape?;
208
+ private scrollTarget;
209
+ private lastScroll;
210
+ private lastWindowScroll;
211
+ private removeContainerScroll?;
212
+ private removeWindowScroll?;
200
213
  constructor(host: ElementRef<HTMLElement>, renderer: Renderer2);
201
214
  ngOnInit(): void;
202
215
  ngOnDestroy(): void;
203
216
  private pointerDown;
217
+ private applyDragUpdate;
218
+ /** فراخوانی می‌شود دقیقاً وقتی drag واقعاً شروع می‌شود (چه با موس، چه با کیبورد). */
219
+ private startScrollTracking;
220
+ private handleContainerScroll;
221
+ private handleWindowScroll;
222
+ private stopScrollTracking;
204
223
  private pointerMove;
205
224
  private pointerUp;
206
225
  private cancel;
@@ -210,7 +229,7 @@ declare class NgxDraggable<T = unknown> implements OnInit, OnDestroy {
210
229
  private isOnHandle;
211
230
  private isInteractive;
212
231
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDraggable<any>, never>;
213
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxDraggable<any>, "[NgxDraggable],[ngxDraggable]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "boundary": { "alias": "boundary"; "required": false; "isSignal": true; }; "dragRootElement": { "alias": "dragRootElement"; "required": false; "isSignal": true; }; "dragHandle": { "alias": "dragHandle"; "required": false; "isSignal": true; }; "lockAxis": { "alias": "lockAxis"; "required": false; "isSignal": true; }; "dragThreshold": { "alias": "dragThreshold"; "required": false; "isSignal": true; }; "keyboardStep": { "alias": "keyboardStep"; "required": false; "isSignal": true; }; "autoScroll": { "alias": "autoScroll"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; }; }, { "disabled": "disabledChange"; "dragStart": "dragStart"; "dragMove": "dragMove"; "dragEnd": "dragEnd"; }, never, never, true, never>;
232
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxDraggable<any>, "[NgxDraggable],[ngxDraggable]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "boundary": { "alias": "boundary"; "required": false; "isSignal": true; }; "dragRootElement": { "alias": "dragRootElement"; "required": false; "isSignal": true; }; "dragHandle": { "alias": "dragHandle"; "required": false; "isSignal": true; }; "lockAxis": { "alias": "lockAxis"; "required": false; "isSignal": true; }; "dragThreshold": { "alias": "dragThreshold"; "required": false; "isSignal": true; }; "keyboardStep": { "alias": "keyboardStep"; "required": false; "isSignal": true; }; "autoScroll": { "alias": "autoScroll"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; }; }, { "disabled": "disabledChange"; "dragRootElement": "dragRootElementChange"; "dragHandle": "dragHandleChange"; "dragStart": "dragStart"; "dragMove": "dragMove"; "dragEnd": "dragEnd"; }, never, never, true, never>;
214
233
  }
215
234
 
216
235
  declare class NgxResizable {
@@ -341,15 +360,23 @@ declare class AutoScroller {
341
360
  private raf;
342
361
  private container;
343
362
  private speed;
363
+ private onTick?;
344
364
  private readonly edge;
345
365
  private readonly maxSpeed;
346
366
  constructor(edge?: number, maxSpeed?: number);
347
- start(fromEl: HTMLElement): void;
348
- /** Call on every pointermove with the current client coordinates. */
367
+ /** onTick اجرا می‌شود بعد از هر گام اسکرول، تا با آخرین موقعیت pointer، sort/placeholder به‌روز شود. */
368
+ start(fromEl: HTMLElement, onTick?: () => void): void;
369
+ /** فقط container را عوض می‌کند بدون قطع حلقه‌ی در حال اجرا یا صفر کردن speed. */
370
+ retarget(fromEl: HTMLElement): void;
349
371
  update(clientX: number, clientY: number): void;
350
372
  stop(): void;
351
373
  private tick;
352
374
  }
375
+ declare function findScrollableAncestor(el: HTMLElement): HTMLElement | Window;
376
+ declare function getScrollPosition(container: HTMLElement | Window): {
377
+ left: number;
378
+ top: number;
379
+ };
353
380
 
354
381
  declare function moveItemInArray<T>(array: T[], from: number, to: number): void;
355
382
  declare function transferArrayItem<T>(src: T[], dst: T[], from: number, to: number): void;
@@ -364,5 +391,5 @@ declare function transferArrayItem<T>(src: T[], dst: T[], from: number, to: numb
364
391
  */
365
392
  declare function copyArrayItem<T = any>(currentArray: T[], targetArray: T[], currentIndex: number, targetIndex: number): void;
366
393
 
367
- export { AutoScroller, DragDropService, DragRef, DropListGroupRef, DropListRef, NGX_DRAGGABLE, NGX_DROPLIST, NGX_DROPLIST_GROUP, NGX_PLACEHOLDER, NgxDraggable, NgxDropList, NgxDropListGroup, NgxPlaceholder, NgxResizable, PlaceHolderRef, adjustForZoom, checkBoundX, checkBoundY, clampResizeWithinBoundary, copyArrayItem, getPageZoom, isRtl, moveItemInArray, resolveLogicalDirection, transferArrayItem };
394
+ export { AutoScroller, DragDropService, DragRef, DropListGroupRef, DropListRef, NGX_DRAGGABLE, NGX_DROPLIST, NGX_DROPLIST_GROUP, NGX_PLACEHOLDER, NgxDraggable, NgxDropList, NgxDropListGroup, NgxPlaceholder, NgxResizable, PlaceHolderRef, adjustForZoom, checkBoundX, checkBoundY, clampResizeWithinBoundary, copyArrayItem, findScrollableAncestor, getPageZoom, getScrollPosition, isRtl, moveItemInArray, resolveLogicalDirection, transferArrayItem };
368
395
  export type { DragAxis, IDropEvent, IPosition, IResizableOutput, LogicalResizeDirection, ResizeDirection };