@sd-angular/core 19.0.0-beta.52 → 19.0.0-beta.53

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.
@@ -1,69 +1,64 @@
1
1
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
2
- import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, QueryList } from '@angular/core';
3
- import { FormGroup, NgForm } from '@angular/forms';
2
+ import { ElementRef } from '@angular/core';
3
+ import { FormGroup } from '@angular/forms';
4
4
  import { SdLabelDefDirective } from '@sd-angular/core/forms/directives';
5
5
  import { SdFormControl } from '@sd-angular/core/forms/models';
6
- import { SdConfirmService, SdNotifyService } from '@sd-angular/core/services';
7
6
  import { PreviewComponent } from './components/preview/preview.component';
8
- import { ISdUploadFileConfiguration, SdUploadFileFuncDetails } from './configurations';
9
- import { PreviewFile, UploadFileService } from './services';
7
+ import { SdUploadFileFuncDetails } from './configurations';
8
+ import { PreviewFile } from './services';
10
9
  import * as i0 from "@angular/core";
11
- export declare class SdUploadFile<TArgs = any> implements AfterViewInit, OnDestroy {
10
+ export declare class SdUploadFile<TArgs = any> {
12
11
  #private;
13
- private ref;
14
- private notifyService;
15
- private confirmService;
16
- private readonly uploadFileConfig;
17
- private uploadFileService;
18
- previewFile?: PreviewComponent;
19
- id: string;
20
- selectedFile?: PreviewFile | null;
21
- formControl: SdFormControl;
22
- set _form(val: NgForm | FormGroup);
23
- set _name(val: string | undefined);
24
- args?: TArgs;
25
- label?: string;
26
- helperText?: string;
27
- set _helperText(val: string | undefined);
28
- description?: string;
29
- type: 'image' | 'document' | 'file';
30
- set _type(type: 'image' | 'document' | 'file' | undefined | null);
31
- set disabled(val: boolean | '' | undefined | null);
32
- required: boolean;
33
- set _required(val: boolean | '' | undefined | null);
34
- extensions: string[];
35
- set _extensions(extensions: string[] | undefined | null);
36
- max: number;
37
- set _max(max: number | undefined | null);
38
- maxOfImage: number;
39
- set _maxOfImage(value: number | undefined | null);
40
- maxSize?: number;
41
- maxWidth?: number;
42
- maxHeight?: number;
43
- scaleToPixel?: number;
44
- previewWidth: string;
45
- previewHeight: string;
46
- align: 'left' | 'center';
47
- details?: SdUploadFileFuncDetails<any>;
48
- imageValidator?: (image: HTMLImageElement) => string;
49
- previewFiles: PreviewFile[];
50
- set model(model: (string | number | undefined | null)[] | undefined | null);
51
- loaded: EventEmitter<PreviewFile[]>;
52
- modelChange: EventEmitter<(string | number)[]>;
53
- filesChanged: EventEmitter<(string | File)[]>;
54
- dropElements?: QueryList<ElementRef>;
55
- canvas?: ElementRef;
56
- sdLabelDef?: SdLabelDefDirective;
57
- constructor(ref: ChangeDetectorRef, notifyService: SdNotifyService, confirmService: SdConfirmService, uploadFileConfig: ISdUploadFileConfiguration, uploadFileService: UploadFileService);
58
- ngAfterViewInit(): void;
59
- ngOnDestroy(): void;
12
+ readonly id: string;
13
+ readonly formControl: SdFormControl;
14
+ readonly previewFiles: import("@angular/core").WritableSignal<PreviewFile[]>;
15
+ readonly selectedFile: import("@angular/core").WritableSignal<PreviewFile | null | undefined>;
16
+ readonly previewFileComponent: import("@angular/core").Signal<PreviewComponent | undefined>;
17
+ readonly dropElements: import("@angular/core").Signal<readonly ElementRef<any>[]>;
18
+ readonly sdLabelDef: import("@angular/core").Signal<SdLabelDefDirective | undefined>;
19
+ readonly args: import("@angular/core").InputSignal<TArgs | undefined>;
20
+ readonly label: import("@angular/core").InputSignal<string | undefined>;
21
+ readonly description: import("@angular/core").InputSignal<string | undefined>;
22
+ readonly previewWidth: import("@angular/core").InputSignal<string>;
23
+ readonly previewHeight: import("@angular/core").InputSignal<string>;
24
+ readonly align: import("@angular/core").InputSignal<"left" | "center">;
25
+ readonly details: import("@angular/core").InputSignal<SdUploadFileFuncDetails<any> | undefined>;
26
+ readonly imageValidator: import("@angular/core").InputSignal<((image: HTMLImageElement) => string) | undefined>;
27
+ readonly maxSize: import("@angular/core").InputSignal<number | undefined>;
28
+ readonly maxWidth: import("@angular/core").InputSignal<number | undefined>;
29
+ readonly maxHeight: import("@angular/core").InputSignal<number | undefined>;
30
+ readonly scaleToPixel: import("@angular/core").InputSignal<number | undefined>;
31
+ form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, any>;
32
+ readonly nameInput: import("@angular/core").InputSignalWithTransform<string, string | undefined>;
33
+ readonly required: import("@angular/core").InputSignalWithTransform<boolean, boolean | "" | null | undefined>;
34
+ readonly type: import("@angular/core").InputSignalWithTransform<"image" | "document" | "file", "image" | "document" | "file" | null | undefined>;
35
+ readonly helperText: import("@angular/core").InputSignal<string | undefined>;
36
+ readonly max: import("@angular/core").InputSignalWithTransform<number, number | null | undefined>;
37
+ readonly maxOfImage: import("@angular/core").InputSignalWithTransform<number, number | null | undefined>;
38
+ readonly extensions: import("@angular/core").InputSignalWithTransform<string[], string[] | null | undefined>;
39
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, boolean | "" | null | undefined>;
40
+ readonly generatedDescription: import("@angular/core").Signal<string | undefined>;
41
+ readonly loaded: import("@angular/core").OutputEmitterRef<PreviewFile[]>;
42
+ readonly filesChanged: import("@angular/core").OutputEmitterRef<(string | File)[]>;
43
+ readonly model: import("@angular/core").ModelSignal<(string | number)[]>;
44
+ constructor();
60
45
  onUpload: () => void;
61
46
  onRemove: (file: PreviewFile) => void;
62
47
  onDrop: (event: CdkDragDrop<string[]>) => void;
63
48
  onImgError: (previewFile: PreviewFile) => void;
64
49
  onSelect: (file: PreviewFile) => void;
50
+ /**
51
+ * Lấy danh sách các File từ previewFiles (chưa upload).
52
+ */
65
53
  getFiles: () => Promise<File[]>;
54
+ /**
55
+ * Thực hiện upload các file và gán giá trị, output trả ra mảng idOrKeys.
56
+ * HÀM NÀY BẮT BUỘC PHẢI GỌI TRƯỚC KHI GỌI VỀ SERVER.
57
+ */
66
58
  upload: () => Promise<void>;
59
+ /**
60
+ * Mở popup preview ảnh.
61
+ */
67
62
  preview: () => Promise<void>;
68
63
  /**
69
64
  * Tải xuống một tệp tin dựa trên đối tượng PreviewFile.
@@ -77,5 +72,5 @@ export declare class SdUploadFile<TArgs = any> implements AfterViewInit, OnDestr
77
72
  onDownload: (previewFile: PreviewFile) => void;
78
73
  isLastVisibleOverlay(fileIndex: number): boolean;
79
74
  static ɵfac: i0.ɵɵFactoryDeclaration<SdUploadFile<any>, never>;
80
- static ɵcmp: i0.ɵɵComponentDeclaration<SdUploadFile<any>, "sd-upload-file", never, { "_form": { "alias": "form"; "required": false; }; "_name": { "alias": "name"; "required": false; }; "args": { "alias": "args"; "required": false; }; "label": { "alias": "label"; "required": false; }; "_helperText": { "alias": "helperText"; "required": false; }; "description": { "alias": "description"; "required": false; }; "_type": { "alias": "type"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "_required": { "alias": "required"; "required": false; }; "_extensions": { "alias": "extensions"; "required": false; }; "_max": { "alias": "max"; "required": false; }; "_maxOfImage": { "alias": "maxOfImage"; "required": false; }; "maxSize": { "alias": "maxSize"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "scaleToPixel": { "alias": "scaleToPixel"; "required": false; }; "previewWidth": { "alias": "previewWidth"; "required": false; }; "previewHeight": { "alias": "previewHeight"; "required": false; }; "align": { "alias": "align"; "required": false; }; "details": { "alias": "details"; "required": false; }; "imageValidator": { "alias": "imageValidator"; "required": false; }; "model": { "alias": "model"; "required": false; }; }, { "loaded": "loaded"; "modelChange": "modelChange"; "filesChanged": "filesChanged"; }, ["sdLabelDef"], never, true, never>;
75
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdUploadFile<any>, "sd-upload-file", never, { "args": { "alias": "args"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "previewWidth": { "alias": "previewWidth"; "required": false; "isSignal": true; }; "previewHeight": { "alias": "previewHeight"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "details": { "alias": "details"; "required": false; "isSignal": true; }; "imageValidator": { "alias": "imageValidator"; "required": false; "isSignal": true; }; "maxSize": { "alias": "maxSize"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "scaleToPixel": { "alias": "scaleToPixel"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "nameInput": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "maxOfImage": { "alias": "maxOfImage"; "required": false; "isSignal": true; }; "extensions": { "alias": "extensions"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; }, { "loaded": "loaded"; "filesChanged": "filesChanged"; "model": "modelChange"; }, ["sdLabelDef"], never, true, never>;
81
76
  }
@@ -5,6 +5,7 @@ import { SdPatternType } from '@sd-angular/core/utilities/models';
5
5
  import { SdFormGenericSelectionStaticItem } from './form-generic-definition-selection.model';
6
6
  import { SdFormGenericExpression } from './form-generic-expression.model';
7
7
  import { SdFormGeneric } from './form-generic.model';
8
+ import { SdUnwrapSignal } from '@sd-angular/core/utilities/models';
8
9
  export interface SdFormRenderConfiguration {
9
10
  onLoaded?: () => void;
10
11
  components: SdFormGeneric['components'];
@@ -158,10 +159,10 @@ export interface SdFormGenericGroup {
158
159
  export interface SdFormGenericUpload extends SdFormGenericComponentBase {
159
160
  type: 'upload';
160
161
  properties?: {
161
- type?: SdUploadFile['type'];
162
- maxSize?: SdUploadFile['maxSize'];
163
- max?: SdUploadFile['max'];
164
- extensions?: SdUploadFile['extensions'];
162
+ type?: SdUnwrapSignal<SdUploadFile['type']>;
163
+ maxSize?: SdUnwrapSignal<SdUploadFile['maxSize']>;
164
+ max?: SdUnwrapSignal<SdUploadFile['max']>;
165
+ extensions?: SdUnwrapSignal<SdUploadFile['extensions']>;
165
166
  args?: Record<string, any>;
166
167
  source?: 'ALL' | 'PHOTO_LIBRARY' | 'CAPTURE';
167
168
  } & SdFormGenericComponentBase['properties'];