ngx-kit 6.1.0 → 6.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.
- package/README.md +3 -3
- package/angle-selector/README.md +34 -34
- package/box-shadow/README.md +33 -33
- package/color-picker/README.md +49 -49
- package/data-table/README.md +113 -113
- package/date-picker/README.md +69 -69
- package/dialog/README.md +92 -92
- package/drawer-menu/README.md +110 -62
- package/dropzone/README.md +422 -422
- 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 +2 -2
- package/fesm2022/ngx-kit-box-shadow.mjs.map +1 -1
- package/fesm2022/ngx-kit-color-picker.mjs +4 -4
- package/fesm2022/ngx-kit-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-data-table.mjs +2 -2
- package/fesm2022/ngx-kit-data-table.mjs.map +1 -1
- package/fesm2022/ngx-kit-date-picker.mjs +1324 -200
- package/fesm2022/ngx-kit-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-dialog.mjs +2 -2
- package/fesm2022/ngx-kit-dialog.mjs.map +1 -1
- package/fesm2022/ngx-kit-drawer-menu.mjs +302 -140
- package/fesm2022/ngx-kit-drawer-menu.mjs.map +1 -1
- package/fesm2022/ngx-kit-dropzone.mjs +2 -2
- package/fesm2022/ngx-kit-dropzone.mjs.map +1 -1
- package/fesm2022/ngx-kit-form-field.mjs.map +1 -1
- package/fesm2022/ngx-kit-gallery.mjs +2 -2
- package/fesm2022/ngx-kit-gallery.mjs.map +1 -1
- package/fesm2022/ngx-kit-gradient-picker.mjs.map +1 -1
- package/fesm2022/ngx-kit-image-editor.mjs +75 -11
- package/fesm2022/ngx-kit-image-editor.mjs.map +1 -1
- package/fesm2022/ngx-kit-menu.mjs +8 -8
- package/fesm2022/ngx-kit-menu.mjs.map +1 -1
- package/fesm2022/ngx-kit-message.mjs +2 -2
- package/fesm2022/ngx-kit-message.mjs.map +1 -1
- package/fesm2022/ngx-kit-notify.mjs.map +1 -1
- package/fesm2022/ngx-kit-shared.mjs +2 -2
- package/fesm2022/ngx-kit-shared.mjs.map +1 -1
- package/fesm2022/ngx-kit-time-picker.mjs +2 -2
- package/fesm2022/ngx-kit-time-picker.mjs.map +1 -1
- package/gallery/README.md +71 -71
- package/gradient-picker/README.md +41 -41
- package/menu/README.md +85 -85
- package/message/README.md +70 -70
- package/notify/README.md +58 -58
- package/package.json +1 -1
- package/shared/README.md +117 -117
- package/time-picker/README.md +95 -95
- package/types/ngx-kit-date-picker.d.ts +303 -36
- package/types/ngx-kit-drawer-menu.d.ts +97 -86
- package/types/ngx-kit-dropzone.d.ts +5 -5
- package/types/ngx-kit-image-editor.d.ts +29 -4
|
@@ -1,101 +1,112 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* از 'start'/'end' منطقی استفاده میکنیم نه 'left'/'right' — یعنی توی
|
|
5
|
-
* RTL خودکار برعکس میشه (start یعنی راست در RTL، چپ در LTR)، دقیقاً هماهنگ
|
|
6
|
-
* با بقیهی کتابخونه که همهجا از پراپرتیهای منطقیِ CSS استفاده میکنه.
|
|
7
|
-
*/
|
|
3
|
+
/** Logical drawer placement. `start` is right in RTL and left in LTR. */
|
|
8
4
|
type NgxDrawerSide = 'start' | 'end';
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
* - reveal: محتوا کمی کوچیک/عقب میره، انگار درور از زیرش نمایان میشه
|
|
28
|
-
* (همون افکت معروف iOS)
|
|
29
|
-
*/
|
|
30
|
-
type NgxDrawerContentBehavior = 'overlay' | 'push' | 'reveal';
|
|
5
|
+
/** How the drawer interacts with the application content. */
|
|
6
|
+
type NgxDrawerMode = 'overlay' | 'push' | 'reveal';
|
|
7
|
+
/** Desktop/mobile layout behavior when responsive mode is enabled. */
|
|
8
|
+
type NgxDrawerResponsiveBehavior = 'overlay' | 'dock';
|
|
9
|
+
/** Visual physics used by the drawer while opening/closing. */
|
|
10
|
+
type NgxDrawerEffect = 'slide' | 'spring' | 'fabric' | 'curtain' | 'elastic' | 'reveal';
|
|
11
|
+
type NgxDrawerResponsiveMode = 'off' | 'auto';
|
|
12
|
+
interface NgxDrawerResponsiveConfig {
|
|
13
|
+
mode?: NgxDrawerResponsiveMode;
|
|
14
|
+
breakpoint?: number;
|
|
15
|
+
desktopOpen?: boolean;
|
|
16
|
+
mobileOpen?: boolean;
|
|
17
|
+
/** Desktop layout: dock means a real sidebar; overlay means floating drawer. */
|
|
18
|
+
desktopBehavior?: NgxDrawerResponsiveBehavior;
|
|
19
|
+
/** Mobile layout is normally overlay. */
|
|
20
|
+
mobileBehavior?: NgxDrawerResponsiveBehavior;
|
|
21
|
+
respectPinned?: boolean;
|
|
22
|
+
}
|
|
31
23
|
|
|
32
|
-
/**
|
|
33
|
-
* درور منو (side drawer) با ۶ جلوهی بازوبستهشدنِ متفاوت (از ساده تا
|
|
34
|
-
* سهبعدی/ژلهای) و ۳ رفتار برای محتوای صفحه (overlay/push/reveal) —
|
|
35
|
-
* دقیقاً مدل کتابخونههای حرفهای مثل react-burger-menu یا Ionic Menu، ولی
|
|
36
|
-
* signal-based و بدون هیچ وابستگی خارجی.
|
|
37
|
-
*
|
|
38
|
-
* نکات معماری:
|
|
39
|
-
* - از 'start'/'end' منطقی استفاده میکنه، پس با CSS logical properties
|
|
40
|
-
* زیر RTL خودکار برعکس میشه؛ فقط ریاضیِ درگ (که برخلاف CSS جهت فیزیکیِ
|
|
41
|
-
* واقعی لازم داره) از DirectionService مشترک استفاده میکنه.
|
|
42
|
-
* - وضعیت باز/بسته با model() دوطرفهست، پس هم با [(open)] قابل کنترله و
|
|
43
|
-
* هم میتونه بهصورت خودکار و زنده با عرض صفحه هماهنگ بشه (respondToViewport)
|
|
44
|
-
* — یعنی رد شدن از breakpoint (نه فقط بار اول لود) میتونه خودکار باز/بستهش کنه.
|
|
45
|
-
* - افکتهای jelly/pull با keyframe سهمرحلهای (overshoot → نوسان → استقرار)
|
|
46
|
-
* پیاده شدن، نه فقط یه transition ساده.
|
|
47
|
-
*/
|
|
48
24
|
declare class NgxDrawerMenuComponent {
|
|
49
|
-
side: _angular_core.InputSignal<NgxDrawerSide>;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
25
|
+
readonly side: _angular_core.InputSignal<NgxDrawerSide>;
|
|
26
|
+
readonly mode: _angular_core.InputSignal<NgxDrawerMode>;
|
|
27
|
+
/** When responsive mode is active, desktop/mobile can use different layout behavior. */
|
|
28
|
+
readonly desktopBehavior: _angular_core.InputSignal<NgxDrawerResponsiveBehavior>;
|
|
29
|
+
readonly mobileBehavior: _angular_core.InputSignal<NgxDrawerResponsiveBehavior>;
|
|
30
|
+
private readonly responsiveDesktopBehavior;
|
|
31
|
+
private readonly responsiveMobileBehavior;
|
|
32
|
+
readonly effect: _angular_core.InputSignal<NgxDrawerEffect>;
|
|
33
|
+
readonly width: _angular_core.InputSignal<number>;
|
|
34
|
+
readonly maxWidth: _angular_core.InputSignal<number>;
|
|
35
|
+
readonly edgeSize: _angular_core.InputSignal<number>;
|
|
36
|
+
readonly dragThreshold: _angular_core.InputSignal<number>;
|
|
37
|
+
readonly velocityThreshold: _angular_core.InputSignal<number>;
|
|
38
|
+
/** Opens/closes the panel from the edge and while the panel itself is dragged. */
|
|
39
|
+
readonly swipeEnabled: _angular_core.InputSignal<boolean>;
|
|
40
|
+
/** Allows closing by clicking the backdrop. */
|
|
41
|
+
readonly backdropClose: _angular_core.InputSignal<boolean>;
|
|
42
|
+
/** Allows Escape to close the drawer. */
|
|
43
|
+
readonly escapeClose: _angular_core.InputSignal<boolean>;
|
|
44
|
+
/** The drawer starts open unless explicitly configured otherwise. */
|
|
45
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
46
|
+
/** Pinned drawers are intended for persistent desktop navigation. */
|
|
47
|
+
readonly pinned: _angular_core.ModelSignal<boolean>;
|
|
48
|
+
/** Responsive behavior. Can be overridden with individual inputs below. */
|
|
49
|
+
readonly responsive: _angular_core.InputSignal<NgxDrawerResponsiveConfig>;
|
|
50
|
+
/** Convenience aliases for the common responsive configuration. */
|
|
51
|
+
readonly respondToViewport: _angular_core.InputSignal<boolean>;
|
|
52
|
+
readonly mobileBreakpoint: _angular_core.InputSignal<number>;
|
|
53
|
+
readonly openOnDesktop: _angular_core.InputSignal<boolean>;
|
|
54
|
+
readonly openOnMobile: _angular_core.InputSignal<boolean>;
|
|
55
|
+
/** Visual tuning. */
|
|
56
|
+
readonly curtainStrips: _angular_core.InputSignal<number>;
|
|
57
|
+
readonly backdropOpacity: _angular_core.InputSignal<number>;
|
|
58
|
+
readonly transitionMs: _angular_core.InputSignal<number>;
|
|
59
|
+
readonly focusOnOpen: _angular_core.InputSignal<boolean>;
|
|
60
|
+
protected readonly dragProgress: _angular_core.WritableSignal<number | null>;
|
|
61
|
+
protected readonly dragVelocity: _angular_core.WritableSignal<number>;
|
|
62
|
+
protected readonly isMobile: _angular_core.WritableSignal<boolean>;
|
|
63
|
+
protected readonly effectiveBehavior: _angular_core.Signal<NgxDrawerResponsiveBehavior>;
|
|
64
|
+
protected readonly isDocked: _angular_core.Signal<boolean>;
|
|
65
|
+
protected readonly usesOverlay: _angular_core.Signal<boolean>;
|
|
69
66
|
protected readonly isDragging: _angular_core.Signal<boolean>;
|
|
70
|
-
protected readonly
|
|
67
|
+
protected readonly progress: _angular_core.Signal<number>;
|
|
68
|
+
protected readonly isActuallyOpen: _angular_core.Signal<boolean>;
|
|
71
69
|
protected readonly strips: _angular_core.Signal<number[]>;
|
|
72
|
-
/**
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
private stopDrag?;
|
|
70
|
+
/** Physical side: true means the drawer is attached to the physical left edge. */
|
|
71
|
+
protected readonly isPhysicalLeft: _angular_core.Signal<boolean>;
|
|
72
|
+
protected readonly physicalSign: _angular_core.Signal<1 | -1>;
|
|
73
|
+
protected readonly effectiveMode: _angular_core.Signal<NgxDrawerMode>;
|
|
74
|
+
protected readonly duration: _angular_core.Signal<string>;
|
|
75
|
+
private readonly directionService;
|
|
76
|
+
private readonly document;
|
|
77
|
+
private readonly destroyRef;
|
|
78
|
+
private pointerId;
|
|
82
79
|
private dragStartX;
|
|
83
|
-
private
|
|
84
|
-
private
|
|
80
|
+
private dragStartProgress;
|
|
81
|
+
private dragLastX;
|
|
82
|
+
private dragLastTime;
|
|
83
|
+
private lastVelocity;
|
|
84
|
+
private activePointerTarget;
|
|
85
|
+
private resizeObserver?;
|
|
86
|
+
private mediaQuery?;
|
|
87
|
+
private mediaQueryListener?;
|
|
88
|
+
private lastManagedViewportState;
|
|
85
89
|
constructor();
|
|
86
|
-
protected onEscape(): void;
|
|
87
|
-
protected closeFromBackdrop(): void;
|
|
88
90
|
toggle(): void;
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
protected
|
|
91
|
+
openDrawer(): void;
|
|
92
|
+
closeDrawer(): void;
|
|
93
|
+
pin(): void;
|
|
94
|
+
unpin(): void;
|
|
95
|
+
protected onEscape(): void;
|
|
96
|
+
protected onBackdropPointerDown(event: PointerEvent): void;
|
|
97
|
+
protected onEdgePointerDown(event: PointerEvent): void;
|
|
98
|
+
protected onPanelPointerDown(event: PointerEvent): void;
|
|
94
99
|
private beginDrag;
|
|
95
|
-
private
|
|
100
|
+
private readonly onPointerMove;
|
|
101
|
+
private readonly onPointerUp;
|
|
102
|
+
private readonly onPointerCancel;
|
|
103
|
+
private disposePointer;
|
|
104
|
+
private setupViewportSync;
|
|
105
|
+
private disposeViewportSync;
|
|
106
|
+
private clamp01;
|
|
96
107
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDrawerMenuComponent, never>;
|
|
97
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxDrawerMenuComponent, "ngx-drawer-menu", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "
|
|
108
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxDrawerMenuComponent, "ngx-drawer-menu", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "desktopBehavior": { "alias": "desktopBehavior"; "required": false; "isSignal": true; }; "mobileBehavior": { "alias": "mobileBehavior"; "required": false; "isSignal": true; }; "effect": { "alias": "effect"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "edgeSize": { "alias": "edgeSize"; "required": false; "isSignal": true; }; "dragThreshold": { "alias": "dragThreshold"; "required": false; "isSignal": true; }; "velocityThreshold": { "alias": "velocityThreshold"; "required": false; "isSignal": true; }; "swipeEnabled": { "alias": "swipeEnabled"; "required": false; "isSignal": true; }; "backdropClose": { "alias": "backdropClose"; "required": false; "isSignal": true; }; "escapeClose": { "alias": "escapeClose"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "pinned": { "alias": "pinned"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "respondToViewport": { "alias": "respondToViewport"; "required": false; "isSignal": true; }; "mobileBreakpoint": { "alias": "mobileBreakpoint"; "required": false; "isSignal": true; }; "openOnDesktop": { "alias": "openOnDesktop"; "required": false; "isSignal": true; }; "openOnMobile": { "alias": "openOnMobile"; "required": false; "isSignal": true; }; "curtainStrips": { "alias": "curtainStrips"; "required": false; "isSignal": true; }; "backdropOpacity": { "alias": "backdropOpacity"; "required": false; "isSignal": true; }; "transitionMs": { "alias": "transitionMs"; "required": false; "isSignal": true; }; "focusOnOpen": { "alias": "focusOnOpen"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "pinned": "pinnedChange"; }, never, ["*", "[drawerContent]"], true, never>;
|
|
98
109
|
}
|
|
99
110
|
|
|
100
111
|
export { NgxDrawerMenuComponent };
|
|
101
|
-
export type {
|
|
112
|
+
export type { NgxDrawerEffect, NgxDrawerMode, NgxDrawerResponsiveBehavior, NgxDrawerResponsiveConfig, NgxDrawerResponsiveMode, NgxDrawerSide };
|
|
@@ -4,7 +4,7 @@ import { HttpHeaders } from '@angular/common/http';
|
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
5
|
|
|
6
6
|
type NgxDropzoneFileStatus = 'pending' | 'accepted' | 'uploading' | 'uploaded' | 'error' | 'canceled';
|
|
7
|
-
interface NgxDropzoneFile<TResponse =
|
|
7
|
+
interface NgxDropzoneFile<TResponse = any> {
|
|
8
8
|
/** شناسهی یکتا برای track کردن توی @for و امکان حذف تکی */
|
|
9
9
|
id: string;
|
|
10
10
|
file: File;
|
|
@@ -16,7 +16,7 @@ interface NgxDropzoneFile<TResponse = unknown> {
|
|
|
16
16
|
/** Response returned by the upload adapter. */
|
|
17
17
|
response?: TResponse;
|
|
18
18
|
/** Upload error, if the request failed. */
|
|
19
|
-
error?:
|
|
19
|
+
error?: any;
|
|
20
20
|
/** در صورت رد شدن، دلیلش */
|
|
21
21
|
rejectionReason?: NgxDropzoneRejectionReason;
|
|
22
22
|
}
|
|
@@ -112,17 +112,17 @@ declare class NgxDropzoneComponent implements OnDestroy {
|
|
|
112
112
|
filesRejected: _angular_core.OutputEmitterRef<NgxDropzoneRejectedFile[]>;
|
|
113
113
|
filesChange: _angular_core.OutputEmitterRef<File[]>;
|
|
114
114
|
/** Emitted when an individual upload starts. */
|
|
115
|
-
uploadStarted: _angular_core.OutputEmitterRef<NgxDropzoneFile<
|
|
115
|
+
uploadStarted: _angular_core.OutputEmitterRef<NgxDropzoneFile<any>>;
|
|
116
116
|
/** Emitted for every upload progress update. */
|
|
117
117
|
uploadProgress: _angular_core.OutputEmitterRef<NgxDropzoneUploadProgressEvent>;
|
|
118
118
|
/** Emitted after a file is successfully uploaded. */
|
|
119
|
-
uploadSuccess: _angular_core.OutputEmitterRef<NgxDropzoneFile<
|
|
119
|
+
uploadSuccess: _angular_core.OutputEmitterRef<NgxDropzoneFile<any>>;
|
|
120
120
|
/** Emitted when an upload fails. */
|
|
121
121
|
uploadError: _angular_core.OutputEmitterRef<{
|
|
122
122
|
item: NgxDropzoneFile;
|
|
123
123
|
error: unknown;
|
|
124
124
|
}>;
|
|
125
|
-
protected readonly files: _angular_core.WritableSignal<NgxDropzoneFile<
|
|
125
|
+
protected readonly files: _angular_core.WritableSignal<NgxDropzoneFile<any>[]>;
|
|
126
126
|
protected readonly isDragging: _angular_core.WritableSignal<boolean>;
|
|
127
127
|
private dragCounter;
|
|
128
128
|
private readonly uploadService;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { InjectionToken } from '@angular/core';
|
|
2
3
|
|
|
3
4
|
interface NgxCropRect {
|
|
4
5
|
/** همه به پیکسلهای واقعیِ تصویر مبدأ (نه پیکسل صفحه) */
|
|
@@ -54,6 +55,7 @@ declare class NgxPointerDragDirective {
|
|
|
54
55
|
|
|
55
56
|
type Corner = 'nw' | 'ne' | 'sw' | 'se';
|
|
56
57
|
|
|
58
|
+
declare const NGX_IMAGE_EDITOR_LOCALIZATION: InjectionToken<NgxImageEditorLocalization>;
|
|
57
59
|
declare class NgxImageEditorLocalization {
|
|
58
60
|
LoadingImage: string;
|
|
59
61
|
Rotation: string;
|
|
@@ -69,7 +71,9 @@ declare class NgxImageEditorLocalization {
|
|
|
69
71
|
Cancel: string;
|
|
70
72
|
Save: string;
|
|
71
73
|
Saving: string;
|
|
74
|
+
Reset: string;
|
|
72
75
|
}
|
|
76
|
+
declare const DEFAULT_NGX_IMAGE_EDITOR_LOCALIZATION: NgxImageEditorLocalization;
|
|
73
77
|
|
|
74
78
|
/**
|
|
75
79
|
* ویرایشگر تصویر: کراپ + چرخش + روشنایی/کنتراست/اشباع + فیلترهای آماده
|
|
@@ -81,6 +85,15 @@ declare class NgxImageEditorLocalization {
|
|
|
81
85
|
* (createWorkingCopy)، نه روی تصویر اصلی که ممکنه چند مگاپیکسل باشه — وگرنه
|
|
82
86
|
* درگکردن اسلایدرها/گوشههای کراپ رو کاربر حس تاخیر میکرد. فقط لحظهی
|
|
83
87
|
* save()، رندر نهایی از روی تصویر اصلیِ کامل انجام میشه.
|
|
88
|
+
*
|
|
89
|
+
* اندازهی صحنه (stage) با panelSize کنترل میشه: عرض همیشه ۱۰۰٪ عرضِ
|
|
90
|
+
* والدِ کامپوننته (با ResizeObserver اندازهگیری میشه، پس با تغییر سایز
|
|
91
|
+
* صفحه/layout هم زنده هماهنگ میمونه)، ارتفاع دقیقاً همون چیزیه که کاربر با
|
|
92
|
+
* panelSize میده. تصویر همیشه با یک مقیاسِ «contain» واقعی (هم بر اساس
|
|
93
|
+
* عرض، هم بر اساس ارتفاع — هرکدوم تنگتره) جا داده میشه، پس کلِ تصویر
|
|
94
|
+
* همیشه در محدودهی همین باکس دیده میشه، صرفنظر از اندازهی واقعیِ فایل.
|
|
95
|
+
* سقفِ مقیاس هم ۱ هست، یعنی تصاویر کوچیک بزرگنمایی نمیشن (که باعثِ محو
|
|
96
|
+
* شدنشون میشد).
|
|
84
97
|
*/
|
|
85
98
|
declare class NgxImageEditorComponent {
|
|
86
99
|
source: _angular_core.InputSignal<string | File | Blob | null>;
|
|
@@ -89,8 +102,11 @@ declare class NgxImageEditorComponent {
|
|
|
89
102
|
outputMaxWidth: _angular_core.InputSignal<number | undefined>;
|
|
90
103
|
outputMaxHeight: _angular_core.InputSignal<number | undefined>;
|
|
91
104
|
outputType: _angular_core.InputSignal<"image/jpeg" | "image/png" | "image/webp">;
|
|
92
|
-
/**
|
|
93
|
-
|
|
105
|
+
/**
|
|
106
|
+
* کدوم فیلترها نشون داده بشن (و به چه ترتیبی). اگه ندید، هر ۵ تا نشون داده
|
|
107
|
+
* میشن. آرایهی خالی یعنی کلِ بخشِ فیلتر مخفی بشه.
|
|
108
|
+
*/
|
|
109
|
+
filters: _angular_core.InputSignal<NgxImageFilterPreset[]>;
|
|
94
110
|
quality: _angular_core.InputSignal<number>;
|
|
95
111
|
defaultLocalization: NgxImageEditorLocalization;
|
|
96
112
|
localize: _angular_core.InputSignal<NgxImageEditorLocalization>;
|
|
@@ -101,6 +117,9 @@ declare class NgxImageEditorComponent {
|
|
|
101
117
|
protected readonly loadError: _angular_core.WritableSignal<string | null>;
|
|
102
118
|
private readonly originalImage;
|
|
103
119
|
private readonly workingCanvas;
|
|
120
|
+
private readonly stageWrapEl;
|
|
121
|
+
/** عرضِ واقعیِ رندرشدهی کانتینر؛ چون عرض همیشه ۱۰۰٪ (fluid) هست، باید زنده اندازهگیری بشه */
|
|
122
|
+
private readonly containerWidth;
|
|
104
123
|
protected readonly rotation: _angular_core.WritableSignal<number>;
|
|
105
124
|
protected readonly brightness: _angular_core.WritableSignal<number>;
|
|
106
125
|
protected readonly contrast: _angular_core.WritableSignal<number>;
|
|
@@ -108,8 +127,14 @@ declare class NgxImageEditorComponent {
|
|
|
108
127
|
protected readonly filterPreset: _angular_core.WritableSignal<NgxImageFilterPreset>;
|
|
109
128
|
protected readonly crop: _angular_core.WritableSignal<NgxCropRect>;
|
|
110
129
|
protected readonly adjustments: _angular_core.Signal<NgxImageEditorAdjustments>;
|
|
130
|
+
protected readonly filterLabels: _angular_core.Signal<Record<NgxImageFilterPreset, string>>;
|
|
111
131
|
/** تصویرِ (کوچیکشدهیِ) چرخیده — پایهی نمایش صحنهی کراپ */
|
|
112
132
|
protected readonly rotatedWorkingCanvas: _angular_core.Signal<HTMLCanvasElement | null>;
|
|
133
|
+
protected readonly panelSize: _angular_core.Signal<number>;
|
|
134
|
+
/**
|
|
135
|
+
* مقیاسِ «contain» واقعی: کوچیکترینِ نسبتِ عرض و ارتفاع (هرکدوم تنگتره)
|
|
136
|
+
* تعیینکنندهست، و سقفش هم ۱ هست تا تصاویر کوچیک بزرگنمایی نشن.
|
|
137
|
+
*/
|
|
113
138
|
protected readonly displayScale: _angular_core.Signal<number>;
|
|
114
139
|
protected readonly stageImageUrl: _angular_core.Signal<string | null>;
|
|
115
140
|
protected readonly stageSize: _angular_core.Signal<{
|
|
@@ -137,7 +162,7 @@ declare class NgxImageEditorComponent {
|
|
|
137
162
|
protected cancel(): void;
|
|
138
163
|
save(): Promise<void>;
|
|
139
164
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxImageEditorComponent, never>;
|
|
140
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxImageEditorComponent, "ngx-image-editor", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; "aspectRatio": { "alias": "aspectRatio"; "required": false; "isSignal": true; }; "outputMaxWidth": { "alias": "outputMaxWidth"; "required": false; "isSignal": true; }; "outputMaxHeight": { "alias": "outputMaxHeight"; "required": false; "isSignal": true; }; "outputType": { "alias": "outputType"; "required": false; "isSignal": true; }; "
|
|
165
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxImageEditorComponent, "ngx-image-editor", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; "aspectRatio": { "alias": "aspectRatio"; "required": false; "isSignal": true; }; "outputMaxWidth": { "alias": "outputMaxWidth"; "required": false; "isSignal": true; }; "outputMaxHeight": { "alias": "outputMaxHeight"; "required": false; "isSignal": true; }; "outputType": { "alias": "outputType"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "quality": { "alias": "quality"; "required": false; "isSignal": true; }; "localize": { "alias": "localize"; "required": false; "isSignal": true; }; }, { "saved": "saved"; "cancelled": "cancelled"; }, never, never, true, never>;
|
|
141
166
|
}
|
|
142
167
|
|
|
143
168
|
/** یه File/Blob/data-URL/URL رو به یک HTMLImageElement بارگذاریشده تبدیل میکنه */
|
|
@@ -191,5 +216,5 @@ declare function applyCartoonEffect(ctx: CanvasRenderingContext2D, width: number
|
|
|
191
216
|
edgeThreshold?: number;
|
|
192
217
|
}): void;
|
|
193
218
|
|
|
194
|
-
export { NgxImageEditorComponent, NgxPointerDragDirective, applyCartoonEffect, canvasToBlob, createWorkingCopy, fitWithin, loadImage, renderComposite, renderRotated };
|
|
219
|
+
export { DEFAULT_NGX_IMAGE_EDITOR_LOCALIZATION, NGX_IMAGE_EDITOR_LOCALIZATION, NgxImageEditorComponent, NgxImageEditorLocalization, NgxPointerDragDirective, applyCartoonEffect, canvasToBlob, createWorkingCopy, fitWithin, loadImage, renderComposite, renderRotated };
|
|
195
220
|
export type { NgxCropRect, NgxImageEditorAdjustments, NgxImageEditorResult, NgxImageFilterPreset, NgxPointerDragDelta };
|