ngx-kit 4.0.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/angle-selector/README.md +34 -0
- package/box-shadow/README.md +33 -0
- package/color-picker/README.md +52 -0
- package/data-table/README.md +120 -0
- package/date-picker/README.md +74 -0
- package/dialog/README.md +94 -169
- package/drawer-menu/README.md +76 -0
- package/dropzone/README.md +59 -0
- package/fesm2022/ngx-kit-angle-selector.mjs +2 -2
- package/fesm2022/ngx-kit-angle-selector.mjs.map +1 -1
- package/fesm2022/ngx-kit-box-shadow.mjs +28 -27
- package/fesm2022/ngx-kit-box-shadow.mjs.map +1 -1
- package/fesm2022/ngx-kit-color-picker.mjs +173 -43
- package/fesm2022/ngx-kit-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-data-table.mjs +446 -191
- package/fesm2022/ngx-kit-data-table.mjs.map +1 -1
- package/fesm2022/ngx-kit-date-picker.mjs +120 -86
- package/fesm2022/ngx-kit-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-dialog.mjs +38 -7
- package/fesm2022/ngx-kit-dialog.mjs.map +1 -1
- package/fesm2022/ngx-kit-drawer-menu.mjs +190 -0
- package/fesm2022/ngx-kit-drawer-menu.mjs.map +1 -0
- package/fesm2022/ngx-kit-dropzone.mjs +272 -0
- package/fesm2022/ngx-kit-dropzone.mjs.map +1 -0
- package/fesm2022/ngx-kit-form-field.mjs +87 -0
- package/fesm2022/ngx-kit-form-field.mjs.map +1 -0
- package/fesm2022/ngx-kit-gallery.mjs +419 -0
- package/fesm2022/ngx-kit-gallery.mjs.map +1 -0
- package/fesm2022/ngx-kit-gradient-picker.mjs +12 -4
- package/fesm2022/ngx-kit-gradient-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-image-editor.mjs +501 -0
- package/fesm2022/ngx-kit-image-editor.mjs.map +1 -0
- package/fesm2022/ngx-kit-menu.mjs +9 -4
- package/fesm2022/ngx-kit-menu.mjs.map +1 -1
- package/fesm2022/ngx-kit-message.mjs +58 -24
- package/fesm2022/ngx-kit-message.mjs.map +1 -1
- package/fesm2022/ngx-kit-notify.mjs +10 -4
- package/fesm2022/ngx-kit-notify.mjs.map +1 -1
- package/fesm2022/ngx-kit-shared.mjs +184 -88
- package/fesm2022/ngx-kit-shared.mjs.map +1 -1
- package/fesm2022/ngx-kit-time-picker.mjs +562 -0
- package/fesm2022/ngx-kit-time-picker.mjs.map +1 -0
- package/fesm2022/ngx-kit.mjs.map +1 -1
- package/gallery/README.md +71 -0
- package/gradient-picker/README.md +41 -0
- package/image-editor/README.md +44 -0
- package/menu/README.md +85 -0
- package/message/README.md +70 -0
- package/notify/README.md +56 -0
- package/package.json +25 -1
- package/shared/README.md +117 -0
- package/styles/all.css +27 -0
- package/styles/image-viewer.css +12 -0
- package/types/ngx-kit-box-shadow.d.ts +1 -2
- package/types/ngx-kit-data-table.d.ts +290 -147
- package/types/ngx-kit-date-picker.d.ts +1 -1
- package/types/ngx-kit-dialog.d.ts +1 -0
- package/types/ngx-kit-drawer-menu.d.ts +101 -0
- package/types/ngx-kit-dropzone.d.ts +84 -0
- package/types/ngx-kit-form-field.d.ts +31 -0
- package/types/ngx-kit-gallery.d.ts +168 -0
- package/types/ngx-kit-image-editor.d.ts +175 -0
- package/types/ngx-kit-menu.d.ts +1 -0
- package/types/ngx-kit-message.d.ts +14 -3
- package/types/ngx-kit-notify.d.ts +2 -1
- package/types/ngx-kit-shared.d.ts +70 -15
- package/types/ngx-kit-time-picker.d.ts +150 -0
|
@@ -12,6 +12,7 @@ interface NgxNotifyPayload {
|
|
|
12
12
|
options: NgxNotifyOptions;
|
|
13
13
|
onClose: EventEmitter<INotifyEnd>;
|
|
14
14
|
onFinish: EventEmitter<INotifyEnd>;
|
|
15
|
+
close: () => void;
|
|
15
16
|
}
|
|
16
17
|
interface INotifyEnd {
|
|
17
18
|
id: string;
|
|
@@ -111,7 +112,6 @@ declare class NgxNotificationComponent implements OnInit, OnDestroy {
|
|
|
111
112
|
onMouseLeave(): void;
|
|
112
113
|
onTap(): void;
|
|
113
114
|
escapeHtml(input?: string): string;
|
|
114
|
-
ngOnDestroyCleanup(): void;
|
|
115
115
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxNotificationComponent, never>;
|
|
116
116
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxNotificationComponent, "ngx-notification", never, { "payload": { "alias": "payload"; "required": true; "isSignal": true; }; "containerClass": { "alias": "containerClass"; "required": false; }; }, { "onClose": "onClose"; "onFinish": "onFinish"; }, never, never, true, never>;
|
|
117
117
|
}
|
|
@@ -129,6 +129,7 @@ declare class NgxNotifyService {
|
|
|
129
129
|
configureContainer(position: NgxNotifyOptions['position'], containerClass: string): void;
|
|
130
130
|
show(message: string, description?: string, type?: NgxNotifyType, options?: NgxNotifyOptions): NgxNotifyPayload;
|
|
131
131
|
private _createAndShow;
|
|
132
|
+
private close;
|
|
132
133
|
private removeNode;
|
|
133
134
|
private removeEl;
|
|
134
135
|
private _showNextIfPossible;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { OnInit, EventEmitter, ElementRef, ChangeDetectorRef, InjectionToken, ComponentRef, TemplateRef, Type, ViewContainerRef, ApplicationRef,
|
|
2
|
+
import { OnInit, OnDestroy, EventEmitter, ElementRef, ChangeDetectorRef, InjectionToken, ComponentRef, TemplateRef, Type, ViewContainerRef, ApplicationRef, EmbeddedViewRef } from '@angular/core';
|
|
3
3
|
import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors, FormControl } from '@angular/forms';
|
|
4
4
|
|
|
5
5
|
interface IValue {
|
|
@@ -13,7 +13,7 @@ declare class ValueModel {
|
|
|
13
13
|
thumb?: HTMLElement;
|
|
14
14
|
color?: string;
|
|
15
15
|
}
|
|
16
|
-
declare class RangeSliderComponent implements OnInit, ControlValueAccessor, Validator {
|
|
16
|
+
declare class RangeSliderComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {
|
|
17
17
|
private changeDetectorRef;
|
|
18
18
|
/**
|
|
19
19
|
* The step value for the slider
|
|
@@ -57,8 +57,10 @@ declare class RangeSliderComponent implements OnInit, ControlValueAccessor, Vali
|
|
|
57
57
|
protected _validatorOnChange: () => void;
|
|
58
58
|
private sliderRect?;
|
|
59
59
|
private thumbRect?;
|
|
60
|
+
private stopDrag?;
|
|
60
61
|
constructor(changeDetectorRef: ChangeDetectorRef);
|
|
61
62
|
ngOnInit(): void;
|
|
63
|
+
ngOnDestroy(): void;
|
|
62
64
|
private generateId;
|
|
63
65
|
writeValue(items?: IValue[]): void;
|
|
64
66
|
validate(control: AbstractControl): ValidationErrors | null;
|
|
@@ -67,14 +69,12 @@ declare class RangeSliderComponent implements OnInit, ControlValueAccessor, Vali
|
|
|
67
69
|
registerOnTouched(fn: any): void;
|
|
68
70
|
setDisabledState?(disabled: boolean): void;
|
|
69
71
|
private updateRects;
|
|
70
|
-
onDrag(ev: MouseEvent | TouchEvent): void;
|
|
71
72
|
onResize(): void;
|
|
72
73
|
dragStart(ev: MouseEvent | TouchEvent, index: number): void;
|
|
73
74
|
addnewRangeOnSliderClick(event: MouseEvent | TouchEvent): void;
|
|
74
75
|
private updateThumbPosition;
|
|
75
76
|
updateAllThumbPositions(): void;
|
|
76
77
|
setValueByPosition(thumb: ValueModel, thumbRec: DOMRect, sliderRec: DOMRect): void;
|
|
77
|
-
onDragEnd(ev: MouseEvent | TouchEvent): void;
|
|
78
78
|
valueChanged(): void;
|
|
79
79
|
static ɵfac: i0.ɵɵFactoryDeclaration<RangeSliderComponent, never>;
|
|
80
80
|
static ɵcmp: i0.ɵɵComponentDeclaration<RangeSliderComponent, "range-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; }; "addNewRangeOnClick": { "alias": "addNewRangeOnClick"; "required": false; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; }; }, { "change": "change"; "selectedIndexChange": "selectedIndexChange"; }, never, ["*"], true, never>;
|
|
@@ -85,7 +85,7 @@ interface IPosition {
|
|
|
85
85
|
y: number;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
declare class SaturationComponent implements ControlValueAccessor {
|
|
88
|
+
declare class SaturationComponent implements ControlValueAccessor, OnDestroy {
|
|
89
89
|
width?: number;
|
|
90
90
|
height?: number;
|
|
91
91
|
color: string;
|
|
@@ -108,7 +108,9 @@ declare class SaturationComponent implements ControlValueAccessor {
|
|
|
108
108
|
protected _validatorOnChange: () => void;
|
|
109
109
|
private saturationRect?;
|
|
110
110
|
private thumbRect?;
|
|
111
|
+
private stopDrag?;
|
|
111
112
|
constructor();
|
|
113
|
+
ngOnDestroy(): void;
|
|
112
114
|
private updateRects;
|
|
113
115
|
writeValue(val?: IPosition | null): void;
|
|
114
116
|
validate(control: AbstractControl): ValidationErrors | null;
|
|
@@ -118,16 +120,14 @@ declare class SaturationComponent implements ControlValueAccessor {
|
|
|
118
120
|
setDisabledState?(disabled: boolean): void;
|
|
119
121
|
dragStart(ev: MouseEvent | TouchEvent): void;
|
|
120
122
|
onResize(): void;
|
|
121
|
-
onDrag(ev: MouseEvent | TouchEvent): void;
|
|
122
123
|
private updatePosition;
|
|
123
|
-
onDragEnd(ev: MouseEvent | TouchEvent): void;
|
|
124
124
|
setValueByPosition(thumbRec: DOMRect, saturationRec: DOMRect): void;
|
|
125
125
|
valueChanged(value: IPosition): void;
|
|
126
126
|
static ɵfac: i0.ɵɵFactoryDeclaration<SaturationComponent, never>;
|
|
127
127
|
static ɵcmp: i0.ɵɵComponentDeclaration<SaturationComponent, "saturation", never, { "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "color": { "alias": "color"; "required": false; }; "step": { "alias": "step"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
declare class SliderComponent implements OnInit, ControlValueAccessor, Validator {
|
|
130
|
+
declare class SliderComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {
|
|
131
131
|
step: number;
|
|
132
132
|
min: number;
|
|
133
133
|
max: number;
|
|
@@ -145,8 +145,11 @@ declare class SliderComponent implements OnInit, ControlValueAccessor, Validator
|
|
|
145
145
|
protected _validatorOnChange: () => void;
|
|
146
146
|
private sliderRect?;
|
|
147
147
|
private thumbRect?;
|
|
148
|
+
private stopDrag?;
|
|
149
|
+
private readonly cd;
|
|
148
150
|
constructor();
|
|
149
151
|
ngOnInit(): void;
|
|
152
|
+
ngOnDestroy(): void;
|
|
150
153
|
private updateRects;
|
|
151
154
|
writeValue(val?: number | string | null): void;
|
|
152
155
|
validate(control: AbstractControl): ValidationErrors | null;
|
|
@@ -155,11 +158,9 @@ declare class SliderComponent implements OnInit, ControlValueAccessor, Validator
|
|
|
155
158
|
registerOnTouched(fn: any): void;
|
|
156
159
|
setDisabledState?(disabled: boolean): void;
|
|
157
160
|
dragStart(ev: MouseEvent | TouchEvent): void;
|
|
158
|
-
onDrag(ev: MouseEvent | TouchEvent): void;
|
|
159
161
|
onResize(): void;
|
|
160
162
|
private updatePosition;
|
|
161
163
|
setValueByPosition(thumbRec: DOMRect, sliderRec: DOMRect): void;
|
|
162
|
-
onDragEnd(ev: MouseEvent | TouchEvent): void;
|
|
163
164
|
valueChanged(value: number): void;
|
|
164
165
|
static ɵfac: i0.ɵɵFactoryDeclaration<SliderComponent, never>;
|
|
165
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>;
|
|
@@ -172,12 +173,41 @@ declare function getOffsetPosition(evt: MouseEvent | TouchEvent, parent: HTMLEle
|
|
|
172
173
|
y: number;
|
|
173
174
|
};
|
|
174
175
|
|
|
176
|
+
/**
|
|
177
|
+
* تمام کامپوننتهای قابلدرگ کتابخانه (saturation، slider، range-slider،
|
|
178
|
+
* box-shadow) قبلاً یک الگوی تکراری داشتن:
|
|
179
|
+
*
|
|
180
|
+
* @HostListener('document:mousemove', ['$event'])
|
|
181
|
+
* @HostListener('document:touchmove', ['$event'])
|
|
182
|
+
* onDrag(ev) { if (!this.isDragging) return; ... }
|
|
183
|
+
*
|
|
184
|
+
* مشکل: این listenerها برای کل عمر کامپوننت روی `document` باقی میمونن —
|
|
185
|
+
* حتی وقتی اصلاً دراگی در حال انجام نیست. یعنی روی صفحهای با چند تا
|
|
186
|
+
* color-picker/slider، هر حرکت موس/انگشت روی کل صفحه (نه فقط روی خودِ
|
|
187
|
+
* اسلایدر) باعث اجرای N تابع (به تعداد اینستنسها) میشه که هرکدوم هم چرخهی
|
|
188
|
+
* زون انگیولار رو تریگر میکنن — یک مشکل واقعی پرفورمنس، مخصوصاً در صفحاتی
|
|
189
|
+
* با چند نمونه همزمان یا حرکت زیاد موس.
|
|
190
|
+
*
|
|
191
|
+
* این تابع جایگزین اون الگو میشه: listenerها فقط در طول یک دراگِ واقعی
|
|
192
|
+
* (بین mousedown/touchstart تا mouseup/touchend) روی document اضافه میشن و
|
|
193
|
+
* بلافاصله بعدش پاک میشن.
|
|
194
|
+
*
|
|
195
|
+
* یه فایدهی جانبیِ مهم دیگه هم داره: روی touchmove مقدار `{ passive: false }`
|
|
196
|
+
* ست میشه و preventDefault صدا زده میشه، پس در حین درگ کردنِ thumb روی
|
|
197
|
+
* موبایل، صفحه اسکرول نمیخوره (باگی که با @HostListener قبلی وجود داشت،
|
|
198
|
+
* چون هیچجا preventDefault روی touchmove صدا زده نمیشد).
|
|
199
|
+
*/
|
|
200
|
+
interface DragSessionCallbacks {
|
|
201
|
+
onMove: (ev: MouseEvent | TouchEvent) => void;
|
|
202
|
+
onEnd?: (ev: MouseEvent | TouchEvent) => void;
|
|
203
|
+
}
|
|
204
|
+
/** با فراخوانی این تابع (مثلاً داخل dragStart) یک نشست درگ شروع میشه. */
|
|
205
|
+
declare function startDragSession({ onMove, onEnd }: DragSessionCallbacks): () => void;
|
|
206
|
+
|
|
175
207
|
declare const WINDOW: InjectionToken<Window | null>;
|
|
176
208
|
|
|
177
209
|
declare function randomStrnig(extraLength?: number, useNumeric?: boolean): string;
|
|
178
210
|
|
|
179
|
-
declare function IsRtl(doc: Document): boolean;
|
|
180
|
-
|
|
181
211
|
declare function makeConfetti(doc: Document, wrap: HTMLElement): void;
|
|
182
212
|
|
|
183
213
|
declare class BrowserService {
|
|
@@ -189,6 +219,31 @@ declare class BrowserService {
|
|
|
189
219
|
static ɵprov: i0.ɵɵInjectableDeclaration<BrowserService>;
|
|
190
220
|
}
|
|
191
221
|
|
|
222
|
+
type Direction = 'ltr' | 'rtl';
|
|
223
|
+
/**
|
|
224
|
+
* جهت صفحه را بهصورت خودکار و زنده تشخیص میدهد — بدون اینکه کاربرِ این
|
|
225
|
+
* سرویس مجبور باشد چیزی به آن بدهد. هر تغییری در attribute های dir/class
|
|
226
|
+
* روی <html> یا <body> (چه از طریق Angular، چه با یک تمسوییچر خارج از
|
|
227
|
+
* Angular) بلافاصله signal را آپدیت میکند.
|
|
228
|
+
*
|
|
229
|
+
* نکته: effect() اینجا جواب نمیدهد چون هیچکدام از این مقادیر (attribute
|
|
230
|
+
* روی DOM) یک Signal نیستند؛ effect فقط به تغییر Signalها reactive است، نه
|
|
231
|
+
* به تغییرات دلخواه DOM. برای گوشدادن به تغییرات DOM باید از MutationObserver
|
|
232
|
+
* استفاده کرد و مقدار را دستی داخل یک Signal نوشت (که دقیقاً کاری است که
|
|
233
|
+
* این سرویس انجام میدهد).
|
|
234
|
+
*/
|
|
235
|
+
declare class DirectionService {
|
|
236
|
+
private readonly doc;
|
|
237
|
+
private readonly destroyRef;
|
|
238
|
+
private readonly _direction;
|
|
239
|
+
/** جهت جاری، بهصورت Signal فقط-خواندنی. */
|
|
240
|
+
readonly direction: i0.Signal<Direction>;
|
|
241
|
+
readonly isRtl: i0.Signal<boolean>;
|
|
242
|
+
constructor();
|
|
243
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DirectionService, never>;
|
|
244
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DirectionService>;
|
|
245
|
+
}
|
|
246
|
+
|
|
192
247
|
declare class OverlayRef<T> {
|
|
193
248
|
private readonly dialogEl;
|
|
194
249
|
private readonly teardownFn;
|
|
@@ -231,11 +286,11 @@ declare const FOCUSABLE_SELECTOR = "button, [href], input, select, textarea, [ta
|
|
|
231
286
|
declare const DIALOG_OVERLAY_CLASSNAME = "ngx-ui-overlay";
|
|
232
287
|
declare class OverlayService implements OnDestroy {
|
|
233
288
|
private readonly overlayStacks;
|
|
234
|
-
private zIndexCounter;
|
|
235
289
|
private listenersAttached;
|
|
236
290
|
private resizeRafPending;
|
|
237
291
|
private readonly doc;
|
|
238
292
|
private readonly abortController;
|
|
293
|
+
private readonly directionService;
|
|
239
294
|
ngOnDestroy(): void;
|
|
240
295
|
open<T>(options: OverlayOptions<T>): OverlayRef<T>;
|
|
241
296
|
openTemplate(options: TemplateOptions): OverlayRef<any>;
|
|
@@ -276,5 +331,5 @@ interface OverlayInstance {
|
|
|
276
331
|
cleanup: () => void;
|
|
277
332
|
}
|
|
278
333
|
|
|
279
|
-
export { BrowserService, DIALOG_OVERLAY_CLASSNAME,
|
|
280
|
-
export type { Alignment, BaseOverlayOptions, IPosition, IValue, OverlayInstance, OverlayOptions, Placement, Point, TemplateOptions };
|
|
334
|
+
export { BrowserService, DIALOG_OVERLAY_CLASSNAME, DirectionService, FOCUSABLE_SELECTOR, OverlayRef, OverlayService, RangeSliderComponent, SaturationComponent, SliderComponent, ValueModel, WINDOW, getOffsetPosition, makeConfetti, mergeConfig, randomStrnig, startDragSession };
|
|
335
|
+
export type { Alignment, BaseOverlayOptions, Direction, DragSessionCallbacks, IPosition, IValue, OverlayInstance, OverlayOptions, Placement, Point, TemplateOptions };
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { OnInit, ElementRef } from '@angular/core';
|
|
3
|
+
import { BrowserService } from 'ngx-kit/shared';
|
|
4
|
+
import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
5
|
+
|
|
6
|
+
declare class NgxTimePickerConfig {
|
|
7
|
+
cancelButtonText: string;
|
|
8
|
+
confirmButtonText: string;
|
|
9
|
+
amText: string;
|
|
10
|
+
pmText: string;
|
|
11
|
+
format: '12' | '24';
|
|
12
|
+
minuteStep: number;
|
|
13
|
+
autoSwitchToMinute: boolean;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare type NgxTimePickerMode = 'hour' | 'minute';
|
|
17
|
+
|
|
18
|
+
declare class NgxInputTimePickerComponent implements ControlValueAccessor, Validator, OnInit {
|
|
19
|
+
protected readonly browserService: BrowserService;
|
|
20
|
+
readonly change: _angular_core.OutputEmitterRef<string | null>;
|
|
21
|
+
readonly cancel: _angular_core.OutputEmitterRef<void>;
|
|
22
|
+
protected readonly config: NgxTimePickerConfig;
|
|
23
|
+
isDisabled: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Time value.
|
|
26
|
+
*
|
|
27
|
+
* Example:
|
|
28
|
+
* 14:35
|
|
29
|
+
*/
|
|
30
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
31
|
+
/**
|
|
32
|
+
* 12h or 24h.
|
|
33
|
+
*/
|
|
34
|
+
readonly format: _angular_core.InputSignal<"12" | "24">;
|
|
35
|
+
readonly amOrPm: _angular_core.ModelSignal<"AM" | "PM" | undefined>;
|
|
36
|
+
/**
|
|
37
|
+
* Minute step.
|
|
38
|
+
*/
|
|
39
|
+
readonly minuteStep: _angular_core.InputSignal<number>;
|
|
40
|
+
/**
|
|
41
|
+
* Whether the clock is disabled.
|
|
42
|
+
*/
|
|
43
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* Whether to automatically switch from hour to minute.
|
|
46
|
+
*/
|
|
47
|
+
readonly autoSwitchToMinute: _angular_core.InputSignal<boolean>;
|
|
48
|
+
readonly clock: _angular_core.Signal<ElementRef<SVGSVGElement> | undefined>;
|
|
49
|
+
readonly mode: _angular_core.WritableSignal<NgxTimePickerMode>;
|
|
50
|
+
private dragging;
|
|
51
|
+
readonly parsedTime: _angular_core.Signal<{
|
|
52
|
+
hour: number;
|
|
53
|
+
minute: number;
|
|
54
|
+
}>;
|
|
55
|
+
readonly displayHour: _angular_core.Signal<number>;
|
|
56
|
+
readonly displayMinute: _angular_core.Signal<number>;
|
|
57
|
+
readonly hourNumbers: _angular_core.Signal<number[]>;
|
|
58
|
+
readonly minuteNumbers: _angular_core.Signal<number[]>;
|
|
59
|
+
readonly hourAngle: _angular_core.Signal<number>;
|
|
60
|
+
readonly minuteAngle: _angular_core.Signal<number>;
|
|
61
|
+
readonly currentAngle: _angular_core.Signal<number>;
|
|
62
|
+
readonly handLength: _angular_core.Signal<58 | 86>;
|
|
63
|
+
readonly handEnd: _angular_core.Signal<{
|
|
64
|
+
x: number;
|
|
65
|
+
y: number;
|
|
66
|
+
}>;
|
|
67
|
+
readonly selectedPosition: _angular_core.Signal<{
|
|
68
|
+
x: number;
|
|
69
|
+
y: number;
|
|
70
|
+
}>;
|
|
71
|
+
protected _onChange: (value: string) => void;
|
|
72
|
+
protected _onTouched: () => void;
|
|
73
|
+
protected _validatorOnChange: () => void;
|
|
74
|
+
constructor();
|
|
75
|
+
ngOnInit(): void;
|
|
76
|
+
writeValue(value: string): void;
|
|
77
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
78
|
+
registerOnChange(fn: any): void;
|
|
79
|
+
registerOnTouched(fn: any): void;
|
|
80
|
+
registerOnValidatorChange?(fn: () => void): void;
|
|
81
|
+
setDisabledState(disabled: boolean): void;
|
|
82
|
+
startPointer(event: PointerEvent): void;
|
|
83
|
+
movePointer(event: PointerEvent): void;
|
|
84
|
+
endPointer(event: PointerEvent): void;
|
|
85
|
+
selectHour(hour: number): void;
|
|
86
|
+
selectMinute(minute: number): void;
|
|
87
|
+
setMode(mode: NgxTimePickerMode): void;
|
|
88
|
+
private updateFromPointer;
|
|
89
|
+
private updateHourFromAngle;
|
|
90
|
+
private updateMinuteFromAngle;
|
|
91
|
+
private setTime;
|
|
92
|
+
isSelectedHour(hour: number): boolean;
|
|
93
|
+
isSelectedMinute(minute: number): boolean;
|
|
94
|
+
formatHour(hour: number): string;
|
|
95
|
+
formatMinute(minute: number): string;
|
|
96
|
+
numberPosition(index: number, total: number, radius?: number): {
|
|
97
|
+
x: number;
|
|
98
|
+
y: number;
|
|
99
|
+
};
|
|
100
|
+
hourPosition(hour: number, inner?: boolean): {
|
|
101
|
+
x: number;
|
|
102
|
+
y: number;
|
|
103
|
+
};
|
|
104
|
+
minutePosition(minute: number): {
|
|
105
|
+
x: number;
|
|
106
|
+
y: number;
|
|
107
|
+
};
|
|
108
|
+
ok(): void;
|
|
109
|
+
close(): void;
|
|
110
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputTimePickerComponent, never>;
|
|
111
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxInputTimePickerComponent, "ngx-time-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "amOrPm": { "alias": "amOrPm"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "autoSwitchToMinute": { "alias": "autoSwitchToMinute"; "required": false; "isSignal": true; }; }, { "change": "change"; "cancel": "cancel"; "value": "valueChange"; "amOrPm": "amOrPmChange"; }, never, never, true, never>;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
declare class NgxInputTimePicker implements ControlValueAccessor, Validator {
|
|
115
|
+
private el;
|
|
116
|
+
protected readonly config: NgxTimePickerConfig;
|
|
117
|
+
openOnCLick: _angular_core.InputSignal<boolean>;
|
|
118
|
+
readonly change: _angular_core.OutputEmitterRef<string | null>;
|
|
119
|
+
protected readonly value: _angular_core.WritableSignal<string>;
|
|
120
|
+
readonly format: _angular_core.InputSignal<"12" | "24">;
|
|
121
|
+
readonly amOrPm: _angular_core.ModelSignal<"AM" | "PM" | undefined>;
|
|
122
|
+
private pickerRef?;
|
|
123
|
+
protected _onChange: (value: string | null | undefined) => void;
|
|
124
|
+
protected _onTouched: () => void;
|
|
125
|
+
protected _validatorOnChange: () => void;
|
|
126
|
+
private isDisabled;
|
|
127
|
+
private readonly overlayService;
|
|
128
|
+
private readonly viewContainerRef;
|
|
129
|
+
private readonly renderer;
|
|
130
|
+
constructor(el: ElementRef<HTMLInputElement>);
|
|
131
|
+
ngOnDestroy(): void;
|
|
132
|
+
onClick(ev: Event): void;
|
|
133
|
+
onInput(event: Event): void;
|
|
134
|
+
onBlur(): void;
|
|
135
|
+
writeValue(value: string): void;
|
|
136
|
+
registerOnChange(fn: any): void;
|
|
137
|
+
registerOnTouched(fn: any): void;
|
|
138
|
+
registerOnValidatorChange?(fn: () => void): void;
|
|
139
|
+
setDisabledState(disabled: boolean): void;
|
|
140
|
+
toggle(): void;
|
|
141
|
+
private destroy;
|
|
142
|
+
private emitChange;
|
|
143
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
144
|
+
protected _formatValue(): void;
|
|
145
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputTimePicker, never>;
|
|
146
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxInputTimePicker, "[ngxInputTimePicker]", ["ngxInputTimePicker"], { "openOnCLick": { "alias": "openOnCLick"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "amOrPm": { "alias": "amOrPm"; "required": false; "isSignal": true; }; }, { "change": "change"; "amOrPm": "amOrPmChange"; }, never, never, true, never>;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export { NgxInputTimePicker, NgxInputTimePickerComponent };
|
|
150
|
+
export type { NgxTimePickerMode };
|