@eqproject/eqp-attachments 3.1.2 → 3.1.4

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,10 +1,10 @@
1
1
  import { HttpClient } from "@angular/common/http";
2
- import { ChangeDetectorRef, EventEmitter, OnInit, TemplateRef } from "@angular/core";
2
+ import { EventEmitter, OnInit, TemplateRef } from "@angular/core";
3
3
  import { FormBuilder, FormGroup } from "@angular/forms";
4
4
  import { MatDialog, MatDialogRef } from "@angular/material/dialog";
5
5
  import { DomSanitizer } from "@angular/platform-browser";
6
6
  import { ImageCroppedEvent, ImageCropperComponent, ImageTransform } from "ngx-image-cropper";
7
- import { AttachmentCardSize, AttachmentType, CropOptionEnum, IAttachmentDTO } from "./interfaces/IAttachment";
7
+ import { AttachmentCardSize, AttachmentFieldColumn, AttachmentMenuAction, AttachmentType, CropOptionEnum, IAttachmentDTO } from "./interfaces/IAttachment";
8
8
  import { IOptions } from "./interfaces/IOptions";
9
9
  import { EqpAttachmentService } from "./services/eqp-attachment.service";
10
10
  import * as i0 from "@angular/core";
@@ -14,7 +14,6 @@ export declare class EqpAttachmentsComponent implements OnInit {
14
14
  private formBuilder;
15
15
  private sanitizer;
16
16
  private http;
17
- private cd;
18
17
  private eqpAttachmentService;
19
18
  /**
20
19
  * Se TRUE allora nasconde la colonna per le azioni sull'allegato (nel caso "multipleAttachment" è TRUE).
@@ -137,6 +136,7 @@ export declare class EqpAttachmentsComponent implements OnInit {
137
136
  cardSize: AttachmentCardSize;
138
137
  customCardWidthPx: number;
139
138
  customCardHeightPx: number;
139
+ layout: 'full' | 'compact';
140
140
  /**
141
141
  * Input per definire le label da usare nel componente
142
142
  */
@@ -177,6 +177,20 @@ export declare class EqpAttachmentsComponent implements OnInit {
177
177
  chooseView: boolean;
178
178
  showSummary: boolean;
179
179
  viewMode: 'card' | 'table';
180
+ showUploadTitle: boolean;
181
+ private _customMenuActions;
182
+ _sortedMenuActions: AttachmentMenuAction[];
183
+ /**
184
+ * SOLO quando [customMenuActions]="..." cambia.
185
+ */
186
+ set customMenuActions(value: AttachmentMenuAction[]);
187
+ get customMenuActions(): AttachmentMenuAction[];
188
+ private _customColumns;
189
+ /**
190
+ * SOLO quando [customColumns]="..." cambia.
191
+ */
192
+ set customColumns(value: AttachmentFieldColumn[]);
193
+ get customColumns(): AttachmentFieldColumn[];
180
194
  /**
181
195
  * Restituisce la lista aggiornata degli allegati.
182
196
  */
@@ -222,6 +236,9 @@ export declare class EqpAttachmentsComponent implements OnInit {
222
236
  dialogPreview: TemplateRef<any>;
223
237
  imageFile: File;
224
238
  addingLinkMode: boolean;
239
+ _tableColumns: AttachmentFieldColumn[];
240
+ defaultFileTemplate: TemplateRef<any>;
241
+ defaultActionsTemplate: TemplateRef<any>;
225
242
  dragOver: boolean;
226
243
  toast: {
227
244
  visible: boolean;
@@ -234,7 +251,7 @@ export declare class EqpAttachmentsComponent implements OnInit {
234
251
  get totalSizeFormatted(): string;
235
252
  formatFileSize(bytes: number): string;
236
253
  showToast(message: string, type?: 'success' | 'error', durationMs?: number): void;
237
- constructor(dialog: MatDialog, formBuilder: FormBuilder, sanitizer: DomSanitizer, http: HttpClient, cd: ChangeDetectorRef, eqpAttachmentService: EqpAttachmentService);
254
+ constructor(dialog: MatDialog, formBuilder: FormBuilder, sanitizer: DomSanitizer, http: HttpClient, eqpAttachmentService: EqpAttachmentService);
238
255
  ngOnInit(): void;
239
256
  setViewMode(mode: 'card' | 'table'): void;
240
257
  private recomputeTotalsAndProgress;
@@ -354,6 +371,11 @@ export declare class EqpAttachmentsComponent implements OnInit {
354
371
  * @returns `true` if a preview is available, otherwise `false`.
355
372
  */
356
373
  canBePreviewed(att: IAttachmentDTO): boolean;
374
+ /**
375
+ * Unisce le colonne di default con quelle custom e le ordina.
376
+ */
377
+ private setupTableColumns;
378
+ private setupMenuActions;
357
379
  static ɵfac: i0.ɵɵFactoryDeclaration<EqpAttachmentsComponent, never>;
358
- static ɵcmp: i0.ɵɵComponentDeclaration<EqpAttachmentsComponent, "eqp-attachments", never, { "disableAction": { "alias": "disableAction"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "attachmentsList": { "alias": "attachmentsList"; "required": false; }; "singleAttachment": { "alias": "singleAttachment"; "required": false; }; "showMatCard": { "alias": "showMatCard"; "required": false; }; "multipleAttachment": { "alias": "multipleAttachment"; "required": false; }; "loadMultipleFiles": { "alias": "loadMultipleFiles"; "required": false; }; "emptyTableMessage": { "alias": "emptyTableMessage"; "required": false; }; "allowOnlyImages": { "alias": "allowOnlyImages"; "required": false; }; "acceptedFileTypes": { "alias": "acceptedFileTypes"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "showInlinePreview": { "alias": "showInlinePreview"; "required": false; }; "getAttachmentEndpoint": { "alias": "getAttachmentEndpoint"; "required": false; }; "productionBaseUrl": { "alias": "productionBaseUrl"; "required": false; }; "compressionOptions": { "alias": "compressionOptions"; "required": false; }; "allowedTypes": { "alias": "allowedTypes"; "required": false; }; "isEqpTableMultiLanguage": { "alias": "isEqpTableMultiLanguage"; "required": false; }; "tablePaginatorVisible": { "alias": "tablePaginatorVisible"; "required": false; }; "isTableSearcheable": { "alias": "isTableSearcheable"; "required": false; }; "tablePaginatorSize": { "alias": "tablePaginatorSize"; "required": false; }; "separatedUploadButtons": { "alias": "separatedUploadButtons"; "required": false; }; "showPreview": { "alias": "showPreview"; "required": false; }; "singleAttachmentDragAndDrop": { "alias": "singleAttachmentDragAndDrop"; "required": false; }; "cropOptions": { "alias": "cropOptions"; "required": false; }; "cropDialogClass": { "alias": "cropDialogClass"; "required": false; }; "maxFileSizeMB": { "alias": "maxFileSizeMB"; "required": false; }; "cardSize": { "alias": "cardSize"; "required": false; }; "customCardWidthPx": { "alias": "customCardWidthPx"; "required": false; }; "customCardHeightPx": { "alias": "customCardHeightPx"; "required": false; }; "openLinkLabel": { "alias": "openLinkLabel"; "required": false; }; "addButtonLabel": { "alias": "addButtonLabel"; "required": false; }; "downloadLabel": { "alias": "downloadLabel"; "required": false; }; "deleteLabel": { "alias": "deleteLabel"; "required": false; }; "fileNameLabel": { "alias": "fileNameLabel"; "required": false; }; "previewLabel": { "alias": "previewLabel"; "required": false; }; "uploadFileLabel": { "alias": "uploadFileLabel"; "required": false; }; "confirmLabel": { "alias": "confirmLabel"; "required": false; }; "abortLabel": { "alias": "abortLabel"; "required": false; }; "saveLabel": { "alias": "saveLabel"; "required": false; }; "exitLabel": { "alias": "exitLabel"; "required": false; }; "uploadWithDropboxLabel": { "alias": "uploadWithDropboxLabel"; "required": false; }; "cropLabel": { "alias": "cropLabel"; "required": false; }; "deleteDialogTitle": { "alias": "deleteDialogTitle"; "required": false; }; "deleteDialogMessage": { "alias": "deleteDialogMessage"; "required": false; }; "noImageSelectedErrorMessage": { "alias": "noImageSelectedErrorMessage"; "required": false; }; "wrongTypeSelectedErrorMessage": { "alias": "wrongTypeSelectedErrorMessage"; "required": false; }; "videoPreviewErrorMessage": { "alias": "videoPreviewErrorMessage"; "required": false; }; "audioPreviewErrorMessage": { "alias": "videoPreviewErrorMessage"; "required": false; }; "flipHorinzontalLabel": { "alias": "flipHorinzontalLabel"; "required": false; }; "flipVerticalLabel": { "alias": "flipVerticalLabel"; "required": false; }; "rotateRightLabel": { "alias": "rotateRightLabel"; "required": false; }; "rotateLeftLabel": { "alias": "rotateLeftLabel"; "required": false; }; "uploadTitle": { "alias": "uploadTitle"; "required": false; }; "uploadSubtitle": { "alias": "uploadSubtitle"; "required": false; }; "dropHereLabel": { "alias": "dropHereLabel"; "required": false; }; "supportedFormatsLabel": { "alias": "supportedFormatsLabel"; "required": false; }; "browseFilesLabel": { "alias": "browseFilesLabel"; "required": false; }; "uploadSummaryLabel": { "alias": "uploadSummaryLabel"; "required": false; }; "filesLabel": { "alias": "filesLabel"; "required": false; }; "totalSizeLabel": { "alias": "totalSizeLabel"; "required": false; }; "emptyStateLabel": { "alias": "emptyStateLabel"; "required": false; }; "addedSuccessfullyLabel": { "alias": "addedSuccessfullyLabel"; "required": false; }; "removedLabel": { "alias": "removedLabel"; "required": false; }; "chooseView": { "alias": "chooseView"; "required": false; }; "showSummary": { "alias": "showSummary"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; }, { "localEditedAttachments": "localEditedAttachments"; "abortAddAttachment": "abortAddAttachment"; "downloadAttachment": "downloadAttachment"; "onDeleteAttachment": "onDeleteAttachment"; }, never, never, false, never>;
380
+ static ɵcmp: i0.ɵɵComponentDeclaration<EqpAttachmentsComponent, "eqp-attachments", never, { "disableAction": { "alias": "disableAction"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "attachmentsList": { "alias": "attachmentsList"; "required": false; }; "singleAttachment": { "alias": "singleAttachment"; "required": false; }; "showMatCard": { "alias": "showMatCard"; "required": false; }; "multipleAttachment": { "alias": "multipleAttachment"; "required": false; }; "loadMultipleFiles": { "alias": "loadMultipleFiles"; "required": false; }; "emptyTableMessage": { "alias": "emptyTableMessage"; "required": false; }; "allowOnlyImages": { "alias": "allowOnlyImages"; "required": false; }; "acceptedFileTypes": { "alias": "acceptedFileTypes"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "showInlinePreview": { "alias": "showInlinePreview"; "required": false; }; "getAttachmentEndpoint": { "alias": "getAttachmentEndpoint"; "required": false; }; "productionBaseUrl": { "alias": "productionBaseUrl"; "required": false; }; "compressionOptions": { "alias": "compressionOptions"; "required": false; }; "allowedTypes": { "alias": "allowedTypes"; "required": false; }; "isEqpTableMultiLanguage": { "alias": "isEqpTableMultiLanguage"; "required": false; }; "tablePaginatorVisible": { "alias": "tablePaginatorVisible"; "required": false; }; "isTableSearcheable": { "alias": "isTableSearcheable"; "required": false; }; "tablePaginatorSize": { "alias": "tablePaginatorSize"; "required": false; }; "separatedUploadButtons": { "alias": "separatedUploadButtons"; "required": false; }; "showPreview": { "alias": "showPreview"; "required": false; }; "singleAttachmentDragAndDrop": { "alias": "singleAttachmentDragAndDrop"; "required": false; }; "cropOptions": { "alias": "cropOptions"; "required": false; }; "cropDialogClass": { "alias": "cropDialogClass"; "required": false; }; "maxFileSizeMB": { "alias": "maxFileSizeMB"; "required": false; }; "cardSize": { "alias": "cardSize"; "required": false; }; "customCardWidthPx": { "alias": "customCardWidthPx"; "required": false; }; "customCardHeightPx": { "alias": "customCardHeightPx"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "openLinkLabel": { "alias": "openLinkLabel"; "required": false; }; "addButtonLabel": { "alias": "addButtonLabel"; "required": false; }; "downloadLabel": { "alias": "downloadLabel"; "required": false; }; "deleteLabel": { "alias": "deleteLabel"; "required": false; }; "fileNameLabel": { "alias": "fileNameLabel"; "required": false; }; "previewLabel": { "alias": "previewLabel"; "required": false; }; "uploadFileLabel": { "alias": "uploadFileLabel"; "required": false; }; "confirmLabel": { "alias": "confirmLabel"; "required": false; }; "abortLabel": { "alias": "abortLabel"; "required": false; }; "saveLabel": { "alias": "saveLabel"; "required": false; }; "exitLabel": { "alias": "exitLabel"; "required": false; }; "uploadWithDropboxLabel": { "alias": "uploadWithDropboxLabel"; "required": false; }; "cropLabel": { "alias": "cropLabel"; "required": false; }; "deleteDialogTitle": { "alias": "deleteDialogTitle"; "required": false; }; "deleteDialogMessage": { "alias": "deleteDialogMessage"; "required": false; }; "noImageSelectedErrorMessage": { "alias": "noImageSelectedErrorMessage"; "required": false; }; "wrongTypeSelectedErrorMessage": { "alias": "wrongTypeSelectedErrorMessage"; "required": false; }; "videoPreviewErrorMessage": { "alias": "videoPreviewErrorMessage"; "required": false; }; "audioPreviewErrorMessage": { "alias": "videoPreviewErrorMessage"; "required": false; }; "flipHorinzontalLabel": { "alias": "flipHorinzontalLabel"; "required": false; }; "flipVerticalLabel": { "alias": "flipVerticalLabel"; "required": false; }; "rotateRightLabel": { "alias": "rotateRightLabel"; "required": false; }; "rotateLeftLabel": { "alias": "rotateLeftLabel"; "required": false; }; "uploadTitle": { "alias": "uploadTitle"; "required": false; }; "uploadSubtitle": { "alias": "uploadSubtitle"; "required": false; }; "dropHereLabel": { "alias": "dropHereLabel"; "required": false; }; "supportedFormatsLabel": { "alias": "supportedFormatsLabel"; "required": false; }; "browseFilesLabel": { "alias": "browseFilesLabel"; "required": false; }; "uploadSummaryLabel": { "alias": "uploadSummaryLabel"; "required": false; }; "filesLabel": { "alias": "filesLabel"; "required": false; }; "totalSizeLabel": { "alias": "totalSizeLabel"; "required": false; }; "emptyStateLabel": { "alias": "emptyStateLabel"; "required": false; }; "addedSuccessfullyLabel": { "alias": "addedSuccessfullyLabel"; "required": false; }; "removedLabel": { "alias": "removedLabel"; "required": false; }; "chooseView": { "alias": "chooseView"; "required": false; }; "showSummary": { "alias": "showSummary"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "showUploadTitle": { "alias": "showUploadTitle"; "required": false; }; "customMenuActions": { "alias": "customMenuActions"; "required": false; }; "customColumns": { "alias": "customColumns"; "required": false; }; }, { "localEditedAttachments": "localEditedAttachments"; "abortAddAttachment": "abortAddAttachment"; "downloadAttachment": "downloadAttachment"; "onDeleteAttachment": "onDeleteAttachment"; }, never, never, false, never>;
359
381
  }
@@ -1,3 +1,4 @@
1
+ import { TemplateRef } from "@angular/core";
1
2
  export interface IAttachmentDTO {
2
3
  ID: number | string;
3
4
  FileName?: string;
@@ -21,3 +22,27 @@ export declare enum CropOptionEnum {
21
22
  FLIP = 2
22
23
  }
23
24
  export type AttachmentCardSize = 'small' | 'medium' | 'large' | 'custom';
25
+ export type Layout = 'full' | 'compact';
26
+ export interface AttachmentFieldColumn {
27
+ key: string;
28
+ display: string;
29
+ type?: TypeAttachmentColumn;
30
+ styles?: {
31
+ flex: string;
32
+ };
33
+ externalTemplate?: TemplateRef<any>;
34
+ position?: number;
35
+ class?: string;
36
+ }
37
+ export interface AttachmentMenuAction {
38
+ name: string;
39
+ icon: string;
40
+ fn: (attachment: IAttachmentDTO) => void;
41
+ disabled?: (attachment: IAttachmentDTO) => boolean;
42
+ position?: number;
43
+ }
44
+ export declare enum TypeAttachmentColumn {
45
+ DATE = "date",
46
+ TEMPLATE = "template",
47
+ TEXT = "text"
48
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eqproject/eqp-attachments",
3
- "version": "3.1.2",
3
+ "version": "3.1.4",
4
4
  "description": "Dynamic attachments component - Angular Material based",
5
5
  "author": {
6
6
  "name": "EqProject"