ngx-kit 7.1.0 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) 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} +908 -277
  16. package/fesm2022/ngx-kit-core.mjs.map +1 -0
  17. package/fesm2022/ngx-kit-data-table.mjs +1 -1
  18. package/fesm2022/ngx-kit-data-table.mjs.map +1 -1
  19. package/fesm2022/ngx-kit-date-picker.mjs +34 -22
  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 +193 -140
  24. package/fesm2022/ngx-kit-drag-resize.mjs.map +1 -1
  25. package/fesm2022/ngx-kit-drawer-menu.mjs +3 -3
  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 +9 -3
  29. package/fesm2022/ngx-kit-form-field.mjs.map +1 -1
  30. package/fesm2022/ngx-kit-gallery.mjs +3 -3
  31. package/fesm2022/ngx-kit-gallery.mjs.map +1 -1
  32. package/fesm2022/ngx-kit-gradient-picker.mjs +20 -38
  33. package/fesm2022/ngx-kit-gradient-picker.mjs.map +1 -1
  34. package/fesm2022/ngx-kit-grid-layout.mjs +32 -30
  35. package/fesm2022/ngx-kit-grid-layout.mjs.map +1 -1
  36. package/fesm2022/ngx-kit-image-editor.mjs +3 -3
  37. package/fesm2022/ngx-kit-image-editor.mjs.map +1 -1
  38. package/fesm2022/ngx-kit-menu.mjs +1 -1
  39. package/fesm2022/ngx-kit-menu.mjs.map +1 -1
  40. package/fesm2022/ngx-kit-message.mjs +2 -2
  41. package/fesm2022/ngx-kit-message.mjs.map +1 -1
  42. package/fesm2022/ngx-kit-notify.mjs +1 -1
  43. package/fesm2022/ngx-kit-notify.mjs.map +1 -1
  44. package/fesm2022/ngx-kit-time-picker.mjs +1 -1
  45. package/fesm2022/ngx-kit-time-picker.mjs.map +1 -1
  46. package/fesm2022/ngx-kit-virtual-scroll.mjs +2 -2
  47. package/fesm2022/ngx-kit-virtual-scroll.mjs.map +1 -1
  48. package/gallery/README.md +71 -71
  49. package/gradient-picker/README.md +41 -41
  50. package/grid-layout/README.md +64 -64
  51. package/image-editor/README.md +44 -44
  52. package/menu/README.md +85 -85
  53. package/message/README.md +70 -70
  54. package/notify/README.md +56 -56
  55. package/package.json +5 -9
  56. package/time-picker/README.md +89 -89
  57. package/types/ngx-kit-angle-selector.d.ts +13 -16
  58. package/types/ngx-kit-box-shadow.d.ts +37 -95
  59. package/types/ngx-kit-color-picker.d.ts +61 -58
  60. package/types/{ngx-kit-shared.d.ts → ngx-kit-core.d.ts} +194 -34
  61. package/types/ngx-kit-data-table.d.ts +2 -2
  62. package/types/ngx-kit-date-picker.d.ts +15 -12
  63. package/types/ngx-kit-dialog.d.ts +208 -107
  64. package/types/ngx-kit-drag-resize.d.ts +74 -47
  65. package/types/ngx-kit-form-field.d.ts +26 -23
  66. package/types/ngx-kit-gradient-picker.d.ts +4 -7
  67. package/types/ngx-kit-menu.d.ts +1 -1
  68. package/types/ngx-kit-time-picker.d.ts +1 -1
  69. package/virtual-scroll/README.md +199 -199
  70. package/fesm2022/ngx-kit-shared.mjs.map +0 -1
  71. package/fesm2022/ngx-kit-webflow.mjs +0 -709
  72. package/fesm2022/ngx-kit-webflow.mjs.map +0 -1
  73. package/types/ngx-kit-webflow.d.ts +0 -286
@@ -1,103 +1,45 @@
1
- import * as i0 from '@angular/core';
2
- import { OnInit, AfterViewInit, OnDestroy, EventEmitter, ElementRef, ChangeDetectorRef, ViewContainerRef, Renderer2 } from '@angular/core';
3
- import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
4
- import { IPosition, BrowserService, OverlayService } from 'ngx-kit/shared';
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnInit, AfterViewInit, ChangeDetectorRef } from '@angular/core';
3
+ import { OverlayService } from 'ngx-kit/core';
5
4
 
6
- declare class NgxBoxShadowComponent implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor, Validator {
7
- private cd;
8
- theme: 'light' | 'dark' | 'auto';
9
- set setTheme(val: 'light' | 'dark' | 'auto');
10
- /**
11
- * The maximum range of the box shadow.
12
- * @default 25
13
- */
14
- maxRange: number;
15
- change: EventEmitter<string>;
16
- isDisabled: boolean;
17
- isDragging: boolean;
18
- value: IPosition;
19
- x: number;
20
- y: number;
21
- blur: number;
22
- spread: number;
5
+ interface BoxShadow {
6
+ inset?: boolean;
7
+ xOffset: number;
8
+ yOffset: number;
9
+ blurRadius?: number;
10
+ spreadRadius?: number;
23
11
  color: string;
24
- line: {
25
- x1: number;
26
- y1: number;
27
- x2: number;
28
- y2: number;
29
- };
30
- center: {
31
- x: number;
32
- y: number;
33
- };
34
- padRect?: DOMRect;
35
- thumbRect?: DOMRect;
36
- protected _onChange: (value: string) => void;
37
- protected _onTouched: () => void;
38
- _onValidateChange: () => void;
39
- private stopDrag?;
40
- pad: ElementRef<HTMLDivElement>;
41
- thumb: ElementRef<HTMLDivElement>;
42
- browserService: BrowserService;
43
- constructor(cd: ChangeDetectorRef);
44
- ngOnInit(): void;
45
- ngAfterViewInit(): void;
46
- ngOnDestroy(): void;
47
- registerOnChange(fn: any): void;
48
- registerOnTouched(fn: any): void;
49
- setDisabledState(disabled: boolean): void;
50
- registerOnValidatorChange(fn: () => void): void;
51
- validate(control: AbstractControl): ValidationErrors | null;
52
- writeValue(value: any): void;
53
- dragStart(ev: MouseEvent | TouchEvent): void;
54
- private updateRects;
55
- private resetPosition;
56
- onResize(): void;
57
- private updatePosition;
58
- setValueByPosition(thumbRec: DOMRect, padRec: DOMRect): void;
59
- onChangeValue(): void;
60
- private convertValueToPosition;
61
- onChangeData(): void;
62
- stopPropagation(ev: Event): void;
63
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxBoxShadowComponent, never>;
64
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxBoxShadowComponent, "ngx-box-shadow", never, { "setTheme": { "alias": "theme"; "required": false; }; "maxRange": { "alias": "maxRange"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
12
+ unit: string;
13
+ cssValue?: string;
65
14
  }
66
15
 
67
- declare class NgxInputBoxShadow implements OnDestroy, ControlValueAccessor, Validator {
68
- private el;
69
- private viewContainerRef;
70
- private renderer;
71
- private overlayService;
72
- setInputBackground: boolean;
73
- private pickerRef?;
74
- value: string;
75
- protected _onChange: (value: string) => void;
76
- protected _onTouched: () => void;
77
- _onValidateChange: () => void;
78
- constructor(el: ElementRef, viewContainerRef: ViewContainerRef, renderer: Renderer2, overlayService: OverlayService);
79
- onClick(ev: Event): void;
16
+ declare class NgxShadowBox implements OnInit, AfterViewInit {
17
+ protected readonly maxRange: _angular_core.InputSignal<number>;
18
+ protected readonly shadowChange: _angular_core.OutputEmitterRef<string>;
19
+ selectedIndex: _angular_core.WritableSignal<number>;
20
+ shadows: _angular_core.WritableSignal<BoxShadow[]>;
21
+ result: string;
22
+ protected readonly doc: Document;
23
+ protected readonly win: Window | null;
24
+ protected readonly overlay: OverlayService;
25
+ protected readonly chdr: ChangeDetectorRef;
26
+ isDisabled: boolean;
27
+ onChange: (_: string) => void;
28
+ onTouched: () => void;
80
29
  registerOnChange(fn: any): void;
81
30
  registerOnTouched(fn: any): void;
82
- setDisabledState(disabled: boolean): void;
83
- registerOnValidatorChange(fn: () => void): void;
84
- validate(control: AbstractControl): ValidationErrors | null;
85
- ngOnDestroy(): void;
86
- writeValue(value: any): void;
87
- toggleColorPicker(): void;
88
- destroyPicker(): void;
89
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxInputBoxShadow, never>;
90
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxInputBoxShadow, "[ngxInputBoxShadow]", never, { "setInputBackground": { "alias": "setInputBackground"; "required": false; }; }, {}, never, never, true, never>;
91
- }
92
-
93
- interface BoxShadowValue {
94
- inset: boolean;
95
- offsetX: number;
96
- offsetY: number;
97
- blurRadius: number;
98
- spreadRadius: number;
99
- color: string;
31
+ setDisabledState(isDisabled: boolean): void;
32
+ constructor();
33
+ ngOnInit(): void;
34
+ ngAfterViewInit(): void;
35
+ writeValue(val: string): void;
36
+ addShadow(container: HTMLElement): void;
37
+ setShadow(el: HTMLElement, item: BoxShadow, index: number): void;
38
+ removeShadow(ev: Event, index: number): void;
39
+ private update;
40
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxShadowBox, never>;
41
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxShadowBox, "ngx-box-shadow", never, { "maxRange": { "alias": "maxRange"; "required": false; "isSignal": true; }; }, { "shadowChange": "shadowChange"; }, never, never, true, never>;
100
42
  }
101
43
 
102
- export { NgxBoxShadowComponent, NgxInputBoxShadow };
103
- export type { BoxShadowValue };
44
+ export { NgxShadowBox };
45
+ export type { BoxShadow };
@@ -1,7 +1,30 @@
1
- import * as i0 from '@angular/core';
2
- import { OnInit, OnDestroy, EventEmitter, ChangeDetectorRef, AfterViewInit, ElementRef, Renderer2, ViewContainerRef, PipeTransform } from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
+ import { AfterViewInit, OnDestroy, ElementRef, EventEmitter, Renderer2, ViewContainerRef, PipeTransform } from '@angular/core';
3
3
  import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
4
- import { BrowserService, OverlayService } from 'ngx-kit/shared';
4
+ import { OverlayService } from 'ngx-kit/core';
5
+
6
+ declare enum ColorInspector {
7
+ Picker = 0,
8
+ RGB = 1,
9
+ HSL = 2,
10
+ CMYK = 3
11
+ }
12
+
13
+ type OutputType = 'CMYK' | 'HSL' | 'HSV' | 'RGB' | 'HEX';
14
+
15
+ declare class NgxInputColorConfig {
16
+ /**
17
+ * show preset colors
18
+ * - It will not display preset colors in simple mode.
19
+ */
20
+ showPresets?: boolean;
21
+ presetColors?: string[];
22
+ /** Minifi UI */
23
+ simpleMode?: boolean;
24
+ outputType?: OutputType;
25
+ defaultInspector?: ColorInspector;
26
+ useAlphaChannel?: boolean;
27
+ }
5
28
 
6
29
  declare enum ColorFormats {
7
30
  HEX = 0,
@@ -63,8 +86,6 @@ declare class CMYK {
63
86
  k: number;
64
87
  }
65
88
 
66
- type OutputType = 'CMYK' | 'HSL' | 'HSV' | 'RGB' | 'HEX';
67
-
68
89
  type ColorInput = string | CMYK | HSLA | HSVA | RGBA | NgxColor;
69
90
 
70
91
  declare class NgxColor {
@@ -92,49 +113,32 @@ declare class NgxColor {
92
113
  removeAlphaChannel(): void;
93
114
  }
94
115
 
95
- declare enum ColorInspector {
96
- Picker = 0,
97
- RGB = 1,
98
- HSL = 2,
99
- CMYK = 3
100
- }
101
-
102
- declare class NgxInputColorComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {
103
- private cd;
104
- browserService: BrowserService;
105
- theme: 'light' | 'dark';
106
- set setTheme(val: 'light' | 'dark' | 'auto');
116
+ declare class NgxInputColorComponent implements ControlValueAccessor, Validator {
117
+ protected readonly configs: NgxInputColorConfig;
107
118
  /** Minifi UI */
108
- simpleMode: boolean;
109
- outputType: OutputType;
110
- /**
111
- * default inspectors
112
- * - ColorInspector.Picker
113
- * - ColorInspector.RGB
114
- * - ColorInspector.HSL
115
- *
116
- * @alias defaultInspector
117
- */
118
- defaultInspector: ColorInspector;
119
- useAlphaChannel: boolean;
120
- set setUseAlphaChannel(val: boolean);
119
+ readonly simpleMode: _angular_core.InputSignal<boolean>;
120
+ readonly outputType: _angular_core.InputSignal<OutputType>;
121
+ readonly defaultInspector: _angular_core.ModelSignal<ColorInspector>;
122
+ readonly useAlphaChannel: _angular_core.InputSignal<boolean>;
123
+ readonly showPresets: _angular_core.InputSignal<boolean>;
124
+ readonly presetColors: _angular_core.InputSignal<string[]>;
121
125
  /** Emitted when the color value changes */
122
- change: EventEmitter<string>;
126
+ colorChange: _angular_core.OutputEmitterRef<string>;
123
127
  /** @ignore */
124
128
  format: ColorFormats;
125
129
  /** @ignore */
126
130
  isDarkColor: boolean;
127
131
  /** @ignore */
128
- rgbaColor: string;
132
+ rgbaColor: _angular_core.WritableSignal<string>;
129
133
  /** @ignore */
130
- hexColor: string;
131
- outputColor: string;
134
+ hexColor: _angular_core.WritableSignal<string>;
135
+ outputColor: _angular_core.WritableSignal<string>;
132
136
  /** @ignore */
133
- name: string;
137
+ name: _angular_core.WritableSignal<string>;
134
138
  /** @ignore */
135
139
  isSupportedEyeDrop: boolean;
136
140
  /** @ignore */
137
- color: NgxColor;
141
+ color: _angular_core.WritableSignal<NgxColor>;
138
142
  /** @ignore */
139
143
  isDisabled: boolean;
140
144
  /**@ignore */
@@ -143,11 +147,7 @@ declare class NgxInputColorComponent implements OnInit, OnDestroy, ControlValueA
143
147
  protected _onTouched: () => void;
144
148
  /**@ignore */
145
149
  private _onValidateChange;
146
- constructor(cd: ChangeDetectorRef);
147
- /** @ignore */
148
- ngOnInit(): void;
149
- /** @ignore */
150
- ngOnDestroy(): void;
150
+ constructor();
151
151
  get ColorFormats(): typeof ColorFormats;
152
152
  get ColorInspector(): typeof ColorInspector;
153
153
  /** @ignore */
@@ -164,17 +164,16 @@ declare class NgxInputColorComponent implements OnInit, OnDestroy, ControlValueA
164
164
  writeValue(value: any): void;
165
165
  /** @ignore */
166
166
  openEyeDrop(): void;
167
+ selectColor(c: string): void;
167
168
  /**
168
169
  * call from directive
169
170
  /* @ignore
170
171
  */
171
172
  initColor(c?: NgxColor): Promise<void>;
172
173
  /** @ignore */
173
- stopPropagation(ev: Event): void;
174
- /** @ignore */
175
174
  emitChange(): Promise<void>;
176
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxInputColorComponent, never>;
177
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxInputColorComponent, "ngx-input-color", never, { "setTheme": { "alias": "theme"; "required": false; }; "simpleMode": { "alias": "simpleMode"; "required": false; }; "outputType": { "alias": "outputType"; "required": false; }; "defaultInspector": { "alias": "defaultInspector"; "required": false; }; "setUseAlphaChannel": { "alias": "useAlphaChannel"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
175
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputColorComponent, never>;
176
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxInputColorComponent, "ngx-input-color", never, { "simpleMode": { "alias": "simpleMode"; "required": false; "isSignal": true; }; "outputType": { "alias": "outputType"; "required": false; "isSignal": true; }; "defaultInspector": { "alias": "defaultInspector"; "required": false; "isSignal": true; }; "useAlphaChannel": { "alias": "useAlphaChannel"; "required": false; "isSignal": true; }; "showPresets": { "alias": "showPresets"; "required": false; "isSignal": true; }; "presetColors": { "alias": "presetColors"; "required": false; "isSignal": true; }; }, { "defaultInspector": "defaultInspectorChange"; "colorChange": "colorChange"; }, never, never, true, never>;
178
177
  }
179
178
 
180
179
  declare class NgxInputColor implements AfterViewInit, OnDestroy, ControlValueAccessor, Validator {
@@ -183,12 +182,16 @@ declare class NgxInputColor implements AfterViewInit, OnDestroy, ControlValueAcc
183
182
  private readonly viewContainerRef;
184
183
  private readonly overlayService;
185
184
  setInputBackgroundColor: boolean;
186
- defaultInspector: ColorInspector;
187
- simpleMode: boolean;
188
- outputType: OutputType;
189
- theme: 'light' | 'dark' | 'auto';
190
- private useAlphaChannel;
191
- set setUseAlphaChannel(value: boolean);
185
+ protected readonly configs: NgxInputColorConfig;
186
+ /** Minifi UI */
187
+ readonly simpleMode: _angular_core.InputSignal<boolean>;
188
+ readonly outputType: _angular_core.InputSignal<OutputType>;
189
+ readonly defaultInspector: _angular_core.ModelSignal<ColorInspector>;
190
+ readonly useAlphaChannel: _angular_core.InputSignal<boolean>;
191
+ readonly showPresets: _angular_core.InputSignal<boolean>;
192
+ readonly presetColors: _angular_core.InputSignal<string[]>;
193
+ /** Emitted when the color value changes */
194
+ colorChange: _angular_core.OutputEmitterRef<string>;
192
195
  /**
193
196
  * Input target.
194
197
  *
@@ -246,7 +249,7 @@ declare class NgxInputColor implements AfterViewInit, OnDestroy, ControlValueAcc
246
249
  * must propagate through ControlValueAccessor.
247
250
  */
248
251
  private handleInputEvent;
249
- private toggleColorPicker;
252
+ toggle(): void;
250
253
  private destroyColorPicker;
251
254
  /**
252
255
  * User-originated/custom-picker value.
@@ -269,8 +272,8 @@ declare class NgxInputColor implements AfterViewInit, OnDestroy, ControlValueAcc
269
272
  private syncHostBackground;
270
273
  private notifyValidatorChange;
271
274
  private isInputElement;
272
- static ɵfac: i0.ɵɵFactoryDeclaration<NgxInputColor, never>;
273
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxInputColor, "[ngxInputColor]", never, { "setInputBackgroundColor": { "alias": "setInputBackgroundColor"; "required": false; }; "defaultInspector": { "alias": "defaultInspector"; "required": false; }; "simpleMode": { "alias": "simpleMode"; "required": false; }; "outputType": { "alias": "outputType"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "setUseAlphaChannel": { "alias": "useAlphaChannel"; "required": false; }; "ngxInputColor": { "alias": "ngxInputColor"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
275
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputColor, never>;
276
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxInputColor, "[ngxInputColor]", ["ngxInputColor"], { "setInputBackgroundColor": { "alias": "setInputBackgroundColor"; "required": false; }; "simpleMode": { "alias": "simpleMode"; "required": false; "isSignal": true; }; "outputType": { "alias": "outputType"; "required": false; "isSignal": true; }; "defaultInspector": { "alias": "defaultInspector"; "required": false; "isSignal": true; }; "useAlphaChannel": { "alias": "useAlphaChannel"; "required": false; "isSignal": true; }; "showPresets": { "alias": "showPresets"; "required": false; "isSignal": true; }; "presetColors": { "alias": "presetColors"; "required": false; "isSignal": true; }; "ngxInputColor": { "alias": "ngxInputColor"; "required": false; }; }, { "defaultInspector": "defaultInspectorChange"; "colorChange": "colorChange"; "change": "change"; }, never, never, true, never>;
274
277
  }
275
278
 
276
279
  declare class EnumToArrayPipe implements PipeTransform {
@@ -281,8 +284,8 @@ declare class EnumToArrayPipe implements PipeTransform {
281
284
  * C=3
282
285
  */
283
286
  transform(data: Object): string[];
284
- static ɵfac: i0.ɵɵFactoryDeclaration<EnumToArrayPipe, never>;
285
- static ɵpipe: i0.ɵɵPipeDeclaration<EnumToArrayPipe, "enumToArray", true>;
287
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EnumToArrayPipe, never>;
288
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<EnumToArrayPipe, "enumToArray", true>;
286
289
  }
287
290
  declare class EnumToArrayStringValuePipe implements PipeTransform {
288
291
  /**
@@ -292,8 +295,8 @@ declare class EnumToArrayStringValuePipe implements PipeTransform {
292
295
  * C='C'
293
296
  */
294
297
  transform(data: Object, sort?: boolean): string[];
295
- static ɵfac: i0.ɵɵFactoryDeclaration<EnumToArrayStringValuePipe, never>;
296
- static ɵpipe: i0.ɵɵPipeDeclaration<EnumToArrayStringValuePipe, "enumToArrayStringValue", true>;
298
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<EnumToArrayStringValuePipe, never>;
299
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<EnumToArrayStringValuePipe, "enumToArrayStringValue", true>;
297
300
  }
298
301
 
299
302
  export { ColorInspector, EnumToArrayPipe, EnumToArrayStringValuePipe, NgxInputColor, NgxInputColorComponent };
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnInit, OnDestroy, EventEmitter, ElementRef, ChangeDetectorRef, InjectionToken, ComponentRef, TemplateRef, Type, ViewContainerRef, ApplicationRef, EmbeddedViewRef } from '@angular/core';
2
+ import { OnInit, OnDestroy, EventEmitter, ElementRef, ChangeDetectorRef, InjectionToken, ComponentRef, TemplateRef, Injector, Type, ViewContainerRef, ApplicationRef, EmbeddedViewRef } from '@angular/core';
3
3
  import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors, FormControl } from '@angular/forms';
4
4
 
5
5
  interface IValue {
@@ -166,8 +166,6 @@ declare class SliderComponent implements OnInit, OnDestroy, ControlValueAccessor
166
166
  static ɵcmp: i0.ɵɵComponentDeclaration<SliderComponent, "slider", never, { "step": { "alias": "step"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "background": { "alias": "background"; "required": false; }; "isBgTransparent": { "alias": "isBgTransparent"; "required": false; }; }, { "change": "change"; }, never, ["*"], true, never>;
167
167
  }
168
168
 
169
- declare function mergeConfig<T>(base: T, override?: Partial<T>): T;
170
-
171
169
  declare function getOffsetPosition(evt: MouseEvent | TouchEvent, parent: HTMLElement): {
172
170
  x: number;
173
171
  y: number;
@@ -221,6 +219,80 @@ declare function generateSequentialGuid(): string;
221
219
  */
222
220
  declare function mergeDeep(...objects: any[]): any;
223
221
 
222
+ /**
223
+ * Filters a hierarchical tree while preserving the branches
224
+ * that contain matching nodes.
225
+ *
226
+ * A node is included when:
227
+ * - the filter function matches the node itself, or
228
+ * - one or more of its descendants match.
229
+ *
230
+ * When only a descendant matches, a shallow copy of the parent
231
+ * is returned with only the matching descendants preserved.
232
+ *
233
+ * @param data The tree nodes to filter.
234
+ * @param filterFn Function used to determine whether a node matches.
235
+ * @param options Optional filtering configuration.
236
+ *
237
+ * @example
238
+ * ```ts
239
+ * const result = filterTreeList(
240
+ * dataTree,
241
+ * item =>
242
+ * item.name.toLowerCase().includes(filter) ||
243
+ * item.type.toLowerCase().includes(filter),
244
+ * );
245
+ * ```
246
+ *
247
+ * @example
248
+ * ```ts
249
+ * const result = filterTreeList(
250
+ * data,
251
+ * item => item.title.includes('angular'),
252
+ * { childrenKeyName: 'items' },
253
+ * );
254
+ * ```
255
+ */
256
+ declare function filterTreeList<T extends Record<string, any>>(data: readonly T[] | null | undefined, filterFn: (item: T) => boolean, options?: {
257
+ childrenKeyName?: string;
258
+ }): T[];
259
+
260
+ /**
261
+ * CSS named colors.
262
+ *
263
+ * Includes all standard CSS color keywords plus:
264
+ * - transparent
265
+ * - currentcolor
266
+ */
267
+ declare const CSS_COLOR_NAMES: Record<string, string>;
268
+ /**
269
+ * Extract all CSS colors from an arbitrary CSS string.
270
+ *
271
+ * Supports:
272
+ * - Hex: #fff, #ffff, #ffffff, #ffffffff
273
+ * - rgb()
274
+ * - rgba()
275
+ * - hsl()
276
+ * - hsla()
277
+ * - hwb()
278
+ * - lab()
279
+ * - lch()
280
+ * - oklab()
281
+ * - oklch()
282
+ * - color()
283
+ * - CSS named colors
284
+ * - transparent
285
+ * - currentcolor
286
+ *
287
+ * Works with values such as:
288
+ *
289
+ * box-shadow: 0 0 10px red, 0 0 20px #00ff00;
290
+ * linear-gradient(red, rgba(0, 0, 0, .5));
291
+ * radial-gradient(circle, blue 0%, transparent 100%);
292
+ * conic-gradient(from 90deg, yellow, #ff0000);
293
+ */
294
+ declare function extractCssColors(value: string | null | undefined): string[];
295
+
224
296
  declare class BrowserService {
225
297
  private platformId;
226
298
  constructor(platformId: object);
@@ -256,13 +328,14 @@ declare class DirectionService {
256
328
  }
257
329
 
258
330
  declare class OverlayRef<T> {
259
- private readonly dialogEl;
260
- private readonly teardownFn;
331
+ private readonly element;
332
+ private readonly closeFn;
261
333
  readonly componentRef?: ComponentRef<T> | undefined;
262
- readonly templateRef?: TemplateRef<T> | undefined;
263
- constructor(dialogEl: HTMLDialogElement, teardownFn: () => void, componentRef?: ComponentRef<T> | undefined, templateRef?: TemplateRef<T> | undefined);
334
+ readonly template?: TemplateRef<unknown> | undefined;
335
+ constructor(element: HTMLElement | null, closeFn: () => void, componentRef?: ComponentRef<T> | undefined, template?: TemplateRef<unknown> | undefined);
264
336
  close(): void;
265
- get nativeElement(): HTMLElement;
337
+ get nativeElement(): HTMLElement | null;
338
+ static noop<T>(): OverlayRef<T>;
266
339
  }
267
340
 
268
341
  /**
@@ -272,59 +345,146 @@ interface Point {
272
345
  x: number;
273
346
  y: number;
274
347
  }
275
- type Placement = 'top' | 'bottom' | 'auto';
348
+ /**
349
+ * instead of being placed above/below a (possibly absent) anchor.
350
+ */
351
+ type Placement = 'top' | 'bottom' | 'center' | 'auto';
276
352
  type Alignment = 'start' | 'center' | 'end';
277
- interface BaseOverlayOptions<T> {
278
- anchor: HTMLElement;
353
+ interface BaseOverlayOptions<T = any> {
354
+ /**
355
+ * Element the overlay is positioned
356
+ */
357
+ anchor?: HTMLElement;
279
358
  /** pointer for context menu */
280
359
  point?: Point;
281
360
  placement?: Placement;
282
361
  alignment?: Alignment;
283
362
  margin?: number;
363
+ /**
364
+ * Whether to render this overlay using the native Popover API (top-layer
365
+ * rendering, escapes clipping/stacking-context issues of ancestors).
366
+ * Falls back automatically to a manual z-index based overlay when the
367
+ * browser doesn't support the Popover API. Defaults to `true`.
368
+ */
369
+ usePopover?: boolean;
370
+ /**
371
+ * Parent injector used when creating the overlay's component. Lets callers
372
+ * (e.g. a dialog service) provide their own tokens - such as data or a
373
+ * reference back to the overlay - to the created component and everything
374
+ * it projects. Defaults to the injector of `viewContainerRef` (or, when
375
+ * `viewContainerRef` is omitted, the root environment injector).
376
+ */
377
+ injector?: Injector;
378
+ /** Close this overlay when Escape is pressed while it's the topmost overlay. Default: true. */
379
+ closeOnEscape?: boolean;
380
+ /** Close this overlay on a click outside its panel and anchor. Default: true. */
381
+ closeOnOutsideClick?: boolean;
382
+ /**
383
+ * Synchronous guard consulted before Escape/outside-click would close the
384
+ * overlay. Return `false` to block the dismissal (e.g. "unsaved changes").
385
+ * Does NOT affect programmatic `close()` calls.
386
+ */
387
+ canClose?: () => boolean;
388
+ /** Move focus into the overlay when it opens. Default: true. */
389
+ autoFocus?: boolean;
390
+ /** Restore focus to the previously focused element when the overlay closes. Default: true. */
391
+ restoreFocus?: boolean;
392
+ /** Prevent the page behind the overlay from scrolling while it's open. Default: false. */
393
+ lockBodyScroll?: boolean;
394
+ /** Extra class(es) applied to the backdrop element. */
395
+ backdropClass?: string | string[];
396
+ /** Extra class(es) applied to the overlay panel element. */
397
+ panelClass?: string | string[];
398
+ /** `role` attribute for the overlay panel. Default: 'dialog'. */
399
+ role?: string;
400
+ /** Whether to set `aria-modal="true"` on the overlay panel. Default: true. */
401
+ ariaModal?: boolean;
402
+ ariaLabel?: string;
403
+ ariaLabelledby?: string;
404
+ ariaDescribedby?: string;
284
405
  configure?: (instance: T, ref: OverlayRef<T>) => void;
285
406
  onClosed?: () => void;
286
407
  }
287
408
  interface OverlayOptions<T> extends BaseOverlayOptions<T> {
288
409
  component: Type<T>;
289
- viewContainerRef: ViewContainerRef;
410
+ /**
411
+ * Optional. When provided, the component is created through this
412
+ * ViewContainerRef (inheriting its injector/change-detection context by
413
+ * default - override with `injector`). When omitted, the component is
414
+ * created and attached directly to the ApplicationRef, which is what lets
415
+ * services with no template context (e.g. a global dialog service) open
416
+ * overlays without needing a host ViewContainerRef.
417
+ */
418
+ viewContainerRef?: ViewContainerRef;
290
419
  }
291
420
  interface TemplateOptions extends BaseOverlayOptions<any> {
292
421
  template: TemplateRef<any>;
293
- appRef: ApplicationRef;
422
+ /** Falls back to the ApplicationRef injected internally by OverlayService when omitted. */
423
+ appRef?: ApplicationRef;
294
424
  }
295
425
 
296
- declare const FOCUSABLE_SELECTOR = "button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])";
426
+ declare const FOCUSABLE_SELECTOR: string;
297
427
  declare const DIALOG_OVERLAY_CLASSNAME = "ngx-ui-overlay";
298
- declare class OverlayService implements OnDestroy {
299
- private readonly overlayStacks;
300
- private listenersAttached;
301
- private resizeRafPending;
302
- private readonly doc;
303
- private readonly abortController;
428
+ declare const OVERLAY_HOST_CLASSNAME = "ngx-ui-overlay-host";
429
+ declare class OverlayService {
430
+ private readonly document;
304
431
  private readonly directionService;
305
- ngOnDestroy(): void;
432
+ private readonly platformId;
433
+ private readonly applicationRef;
434
+ private readonly environmentInjector;
435
+ private readonly overlayStack;
436
+ private globalListenersAttached;
437
+ private layoutRaf;
438
+ private bodyScrollLockCount;
439
+ private previousBodyOverflow;
440
+ private previousBodyPaddingRight;
441
+ private get isBrowser();
442
+ /** Number of overlays currently open. */
443
+ get openCount(): number;
306
444
  open<T>(options: OverlayOptions<T>): OverlayRef<T>;
307
445
  openTemplate(options: TemplateOptions): OverlayRef<any>;
308
446
  closeAll(): void;
309
- private resolvePlacementConfig;
310
- private createDialogElement;
311
- private scheduleInitialLayout;
447
+ private createComponentInstance;
448
+ private createTemplateInstance;
449
+ private pushInstance;
450
+ private createHostElement;
451
+ private createBackdropElement;
452
+ private createOverlayElement;
453
+ private addClasses;
454
+ private renderHost;
312
455
  private destroyInstance;
456
+ private resolveUsePopover;
457
+ private showHostPopover;
458
+ private hideHostPopover;
459
+ private supportsPopover;
460
+ private lockBodyScroll;
461
+ private unlockBodyScroll;
313
462
  private attachGlobalListeners;
314
- private readonly onGlobalKeyDown;
315
- private readonly onGlobalResize;
316
- private readonly onGlobalPointerEvent;
317
- private handleClickOnBackdrop;
318
- private getLastDialog;
319
- private repositionAll;
320
- private positionDialog;
463
+ private detachGlobalListeners;
464
+ private readonly onDocumentKeydown;
465
+ private readonly onDocumentClick;
466
+ private readonly onDocumentContextMenu;
467
+ private readonly onDocumentScroll;
468
+ private readonly onWindowResize;
469
+ private scheduleReposition;
470
+ private scheduleInitialLayout;
471
+ private focusInitialElement;
472
+ private trapFocus;
473
+ private restoreFocus;
474
+ private getActiveElement;
475
+ private positionOverlay;
476
+ private getAnchorRect;
477
+ private resolvePlacementConfig;
478
+ private getLastInstance;
479
+ private requestAnimationFrame;
480
+ private cancelAnimationFrame;
321
481
  static ɵfac: i0.ɵɵFactoryDeclaration<OverlayService, never>;
322
482
  static ɵprov: i0.ɵɵInjectableDeclaration<OverlayService>;
323
483
  }
324
484
 
325
485
  interface PlacementConfig {
326
- placement: 'top' | 'bottom' | 'auto';
327
- alignment: 'start' | 'center' | 'end';
486
+ placement: Placement;
487
+ alignment: Alignment;
328
488
  margin: number;
329
489
  }
330
490
 
@@ -342,5 +502,5 @@ interface OverlayInstance {
342
502
  cleanup: () => void;
343
503
  }
344
504
 
345
- export { BrowserService, DIALOG_OVERLAY_CLASSNAME, DirectionService, FOCUSABLE_SELECTOR, OverlayRef, OverlayService, RangeSliderComponent, SaturationComponent, SliderComponent, ValueModel, WINDOW, generateSequentialGuid, getOffsetPosition, makeConfetti, mergeConfig, mergeDeep, randomStrnig, startDragSession };
505
+ export { BrowserService, CSS_COLOR_NAMES, DIALOG_OVERLAY_CLASSNAME, DirectionService, FOCUSABLE_SELECTOR, OVERLAY_HOST_CLASSNAME, OverlayRef, OverlayService, RangeSliderComponent, SaturationComponent, SliderComponent, ValueModel, WINDOW, extractCssColors, filterTreeList, generateSequentialGuid, getOffsetPosition, makeConfetti, mergeDeep, randomStrnig, startDragSession };
346
506
  export type { Alignment, BaseOverlayOptions, Direction, DragSessionCallbacks, IPosition, IValue, OverlayInstance, OverlayOptions, Placement, Point, TemplateOptions };
@@ -1,6 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InputSignal, Type, TemplateRef, InjectionToken, EnvironmentProviders, OnInit, AfterContentInit } from '@angular/core';
3
- import * as ngx_kit_shared from 'ngx-kit/shared';
3
+ import * as ngx_kit_core from 'ngx-kit/core';
4
4
  import * as ngx_kit_data_table from 'ngx-kit/data-table';
5
5
 
6
6
  type SortDirection = 'asc' | 'desc';
@@ -284,7 +284,7 @@ declare class NgxTable<T extends object> implements OnInit, AfterContentInit {
284
284
  protected readonly resolvedMultiSort: _angular_core.Signal<boolean>;
285
285
  private readonly directionService;
286
286
  private readonly destroyRef;
287
- protected readonly resolvedDirection: _angular_core.Signal<ngx_kit_shared.Direction>;
287
+ protected readonly resolvedDirection: _angular_core.Signal<ngx_kit_core.Direction>;
288
288
  constructor();
289
289
  ngOnInit(): void;
290
290
  ngAfterContentInit(): void;