@sumaris-net/ngx-components 18.26.14-alpha1 → 18.26.15

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 (28) hide show
  1. package/doc/changelog.md +4 -2
  2. package/esm2022/src/app/core/menu/menu.component.mjs +3 -3
  3. package/esm2022/src/app/core/services/platform.service.mjs +37 -7
  4. package/esm2022/src/app/core/settings/settings.page.mjs +8 -4
  5. package/esm2022/src/app/shared/capacitor/plugins.mjs +2 -1
  6. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +3 -3
  7. package/esm2022/src/app/shared/image/gallery/slideshow/image-gallery-slideshow.component.mjs +2 -2
  8. package/esm2022/src/app/shared/platforms.mjs +23 -1
  9. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +4 -10
  10. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +4 -41
  11. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +1 -1
  12. package/esm2022/src/app/shared/version/versions.mjs +10 -3
  13. package/esm2022/src/app/social/feed/feed.component.mjs +3 -3
  14. package/fesm2022/sumaris-net.ngx-components.mjs +89 -68
  15. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  16. package/package.json +14 -13
  17. package/src/app/core/services/platform.service.d.ts +2 -0
  18. package/src/app/core/settings/settings.page.d.ts +1 -1
  19. package/src/app/shared/capacitor/plugins.d.ts +1 -0
  20. package/src/app/shared/platforms.d.ts +1 -0
  21. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +1 -5
  22. package/src/app/shared/upload-file/upload-file.component.d.ts +2 -6
  23. package/src/app/shared/upload-file/upload-file.model.d.ts +0 -7
  24. package/src/assets/i18n/en-US.json +0 -2
  25. package/src/assets/i18n/en.json +0 -2
  26. package/src/assets/i18n/fr.json +0 -2
  27. package/src/assets/manifest.json +1 -1
  28. package/src/theme/_ngx-components.table.scss +5 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sumaris-net/ngx-components",
3
3
  "description": "SUMARiS Angular components",
4
- "version": "18.26.14-alpha1",
4
+ "version": "18.26.15",
5
5
  "author": "contact@e-is.pro",
6
6
  "license": "AGPL-3.0",
7
7
  "readmeFilename": "README.md",
@@ -43,19 +43,20 @@
43
43
  "@awesome-cordova-plugins/core": "^6.16.0",
44
44
  "@awesome-cordova-plugins/downloader": "^6.16.0",
45
45
  "@capacitor-community/native-audio": "^7.0.1",
46
- "@capacitor/android": "^7.4.4",
47
- "@capacitor/app": "^7.1.0",
48
- "@capacitor/browser": "^7.0.3",
49
- "@capacitor/camera": "^7.0.2",
50
- "@capacitor/clipboard": "^7.0.2",
51
- "@capacitor/core": "^7.4.4",
46
+ "@capacitor/android": "^7.4.5",
47
+ "@capacitor/app": "^7.1.2",
48
+ "@capacitor/browser": "^7.0.5",
49
+ "@capacitor/camera": "^7.0.5",
50
+ "@capacitor/clipboard": "^7.0.4",
51
+ "@capacitor/core": "^7.4.5",
52
+ "@capacitor/device": "^7.0.5",
52
53
  "@capacitor/geolocation": "^7.1.6",
53
- "@capacitor/haptics": "^7.0.2",
54
- "@capacitor/ios": "^7.4.4",
55
- "@capacitor/keyboard": "^7.0.3",
56
- "@capacitor/network": "^7.0.3",
57
- "@capacitor/splash-screen": "^7.0.3",
58
- "@capacitor/status-bar": "^7.0.3",
54
+ "@capacitor/haptics": "^7.0.5",
55
+ "@capacitor/ios": "^7.4.5",
56
+ "@capacitor/keyboard": "^7.0.6",
57
+ "@capacitor/network": "^7.0.4",
58
+ "@capacitor/splash-screen": "^7.0.5",
59
+ "@capacitor/status-bar": "^7.0.6",
59
60
  "@capawesome/capacitor-android-edge-to-edge-support": "^7.2.3",
60
61
  "@e-is/cordova-plugin-audiomanagement": "^1.0.3",
61
62
  "@e-is/cordova-plugin-downloader": "^1.2.0",
@@ -19,6 +19,7 @@ import { OpenOptions } from '@capacitor/browser';
19
19
  import { ILoggingService } from '../../shared/logging/logger.model';
20
20
  import { Clipboard as CdkClipboard } from '@angular/cdk/clipboard';
21
21
  import { WriteOptions } from '@capacitor/clipboard/dist/esm/definitions';
22
+ import { DeviceInfo } from '@capacitor/device';
22
23
  import * as i0 from "@angular/core";
23
24
  export declare const AndroidOsEnvironment: Readonly<{
24
25
  DIRECTORY_DOWNLOADS: "Download";
@@ -112,6 +113,7 @@ export declare class PlatformService extends StartableService {
112
113
  }) => void): Promise<Subscription>;
113
114
  showToast(opts: ShowToastOptions): Promise<HTMLIonToastElement>;
114
115
  closeToast(id?: string): Promise<boolean>;
116
+ getDeviceInfo(): Promise<DeviceInfo>;
115
117
  protected configureTheme(mobile: boolean, win?: any): Promise<void>;
116
118
  protected configureCapacitorPlugins(): Promise<void>;
117
119
  protected configureTranslate(): void;
@@ -53,7 +53,7 @@ export declare class SettingsPage extends AppForm<LocalSettings> implements OnIn
53
53
  setAccountInheritance(enable: boolean, opts?: {
54
54
  emitEvent?: boolean;
55
55
  }): void;
56
- showSelectPeerModal(opts?: Partial<ISelectPeerModalOptions>): Promise<void>;
56
+ showSelectPeerModal(event?: Event, opts?: Partial<ISelectPeerModalOptions>): Promise<void>;
57
57
  protected setForceOffline(value: boolean): void;
58
58
  cancel(event?: Event): Promise<void>;
59
59
  close(_?: Event): Promise<boolean>;
@@ -4,5 +4,6 @@ export declare class CapacitorPlugins {
4
4
  static readonly StatusBar = "StatusBar";
5
5
  static readonly Keyboard = "Keyboard";
6
6
  static readonly EdgeToEdge = "EdgeToEdge";
7
+ static readonly Device = "Device";
7
8
  static isAvailable: (name: string) => boolean;
8
9
  }
@@ -14,3 +14,4 @@ export declare function isAndroid(win: Window): boolean;
14
14
  export declare function isCapacitor(win: any): boolean;
15
15
  export declare function isMobile(win: Window): any;
16
16
  export declare function isPrint(win?: Window): boolean;
17
+ export declare function isWebAnimationsSupported(): boolean;
@@ -11,9 +11,7 @@ export interface UploadFilePopoverOptions<T> {
11
11
  instantUpload?: boolean;
12
12
  uniqueFile?: boolean;
13
13
  fileExtension?: string;
14
- fileExtensionsExcluded?: string[];
15
14
  maxParallelUpload?: number;
16
- maxFileSizeMb?: number;
17
15
  autoHideDropArea?: boolean;
18
16
  okButtonText?: string;
19
17
  cancelButtonText?: string;
@@ -28,14 +26,12 @@ export declare class UploadFilePopover implements UploadFilePopoverOptions<any>
28
26
  protected cd: ChangeDetectorRef;
29
27
  uploader: UploadFileComponent;
30
28
  fileExtension: string;
31
- fileExtensionsExcluded: string[];
32
29
  title: string;
33
30
  uniqueFile: boolean;
34
31
  instantUpload: boolean;
35
32
  uploadFn: FileUploadFn<any>;
36
33
  deleteFn: FileDeleteFn<any>;
37
34
  maxParallelUpload: number;
38
- maxFileSizeMb: number;
39
35
  autoHideDropArea: boolean;
40
36
  okButtonText: string;
41
37
  cancelButtonText: string;
@@ -49,5 +45,5 @@ export declare class UploadFilePopover implements UploadFilePopoverOptions<any>
49
45
  cancel(): Promise<boolean>;
50
46
  protected resetError(): void;
51
47
  static ɵfac: i0.ɵɵFactoryDeclaration<UploadFilePopover, never>;
52
- static ɵcmp: i0.ɵɵComponentDeclaration<UploadFilePopover, "app-upload-file-popover", never, { "fileExtension": { "alias": "fileExtension"; "required": false; }; "fileExtensionsExcluded": { "alias": "fileExtensionsExcluded"; "required": false; }; "title": { "alias": "title"; "required": false; }; "uniqueFile": { "alias": "uniqueFile"; "required": false; }; "instantUpload": { "alias": "instantUpload"; "required": false; }; "uploadFn": { "alias": "uploadFn"; "required": false; }; "deleteFn": { "alias": "deleteFn"; "required": false; }; "maxParallelUpload": { "alias": "maxParallelUpload"; "required": false; }; "maxFileSizeMb": { "alias": "maxFileSizeMb"; "required": false; }; "autoHideDropArea": { "alias": "autoHideDropArea"; "required": false; }; "okButtonText": { "alias": "okButtonText"; "required": false; }; "cancelButtonText": { "alias": "cancelButtonText"; "required": false; }; }, {}, never, never, false, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<UploadFilePopover, "app-upload-file-popover", never, { "fileExtension": { "alias": "fileExtension"; "required": false; }; "title": { "alias": "title"; "required": false; }; "uniqueFile": { "alias": "uniqueFile"; "required": false; }; "instantUpload": { "alias": "instantUpload"; "required": false; }; "uploadFn": { "alias": "uploadFn"; "required": false; }; "deleteFn": { "alias": "deleteFn"; "required": false; }; "maxParallelUpload": { "alias": "maxParallelUpload"; "required": false; }; "autoHideDropArea": { "alias": "autoHideDropArea"; "required": false; }; "okButtonText": { "alias": "okButtonText"; "required": false; }; "cancelButtonText": { "alias": "cancelButtonText"; "required": false; }; }, {}, never, never, false, never>;
53
49
  }
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectorRef, ElementRef } from '@angular/core';
2
2
  import { TranslateService } from '@ngx-translate/core';
3
- import { FileCheck, FileDeleteFn, FileUploadFn, UploadFile } from './upload-file.model';
3
+ import { FileDeleteFn, FileUploadFn, UploadFile } from './upload-file.model';
4
4
  import { WaitForOptions } from '../observables';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class UploadFileComponent {
@@ -8,17 +8,14 @@ export declare class UploadFileComponent {
8
8
  protected translate: TranslateService;
9
9
  fileDropEl: ElementRef;
10
10
  fileExtension: string;
11
- fileExtensionsExcluded: string[];
12
11
  uniqueFile: boolean;
13
12
  instantUpload: boolean;
14
13
  uploadFn: FileUploadFn<any>;
15
14
  deleteFn: FileDeleteFn<any>;
16
15
  maxParallelUpload: number;
17
- maxFileSizeMb: number;
18
16
  autoHideDropArea: boolean;
19
17
  files: UploadFile<any>[];
20
18
  uploading: boolean;
21
- checks: FileCheck[];
22
19
  get processingFiles(): UploadFile<any>[];
23
20
  get processedFiles(): UploadFile<any>[];
24
21
  get processingFilesCount(): number;
@@ -43,12 +40,11 @@ export declare class UploadFileComponent {
43
40
  * @param files (Files List)
44
41
  */
45
42
  prepareFilesList(files: FileList | File[]): void;
46
- checkFiles(): void;
47
43
  /**
48
44
  * Execute upload
49
45
  */
50
46
  uploadFiles(files?: File[]): Promise<UploadFile<any>[]>;
51
47
  waitIdle(opts?: WaitForOptions): Promise<void>;
52
48
  static ɵfac: i0.ɵɵFactoryDeclaration<UploadFileComponent, never>;
53
- static ɵcmp: i0.ɵɵComponentDeclaration<UploadFileComponent, "app-upload-file", never, { "fileExtension": { "alias": "fileExtension"; "required": false; }; "fileExtensionsExcluded": { "alias": "fileExtensionsExcluded"; "required": false; }; "uniqueFile": { "alias": "uniqueFile"; "required": false; }; "instantUpload": { "alias": "instantUpload"; "required": false; }; "uploadFn": { "alias": "uploadFn"; "required": false; }; "deleteFn": { "alias": "deleteFn"; "required": false; }; "maxParallelUpload": { "alias": "maxParallelUpload"; "required": false; }; "maxFileSizeMb": { "alias": "maxFileSizeMb"; "required": false; }; "autoHideDropArea": { "alias": "autoHideDropArea"; "required": false; }; }, {}, never, never, false, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<UploadFileComponent, "app-upload-file", never, { "fileExtension": { "alias": "fileExtension"; "required": false; }; "uniqueFile": { "alias": "uniqueFile"; "required": false; }; "instantUpload": { "alias": "instantUpload"; "required": false; }; "uploadFn": { "alias": "uploadFn"; "required": false; }; "deleteFn": { "alias": "deleteFn"; "required": false; }; "maxParallelUpload": { "alias": "maxParallelUpload"; "required": false; }; "autoHideDropArea": { "alias": "autoHideDropArea"; "required": false; }; }, {}, never, never, false, never>;
54
50
  }
@@ -6,13 +6,6 @@ export declare class UploadFile<T> extends File {
6
6
  error?: string;
7
7
  response?: FileResponse<T> | HttpResponse<T>;
8
8
  }
9
- export type FileCheckEnabledFn = () => boolean;
10
- export type FileHasErrorFn = (file: UploadFile<any>) => boolean;
11
- export interface FileCheck {
12
- isEnabled: FileCheckEnabledFn;
13
- hasError: FileHasErrorFn;
14
- error: string;
15
- }
16
9
  export type FileUploadFn<T> = (file: File) => Observable<FileEvent<T> | HttpEvent<T>>;
17
10
  export type FileDeleteFn<T> = (file: UploadFile<T>) => Promise<boolean>;
18
11
  export interface FileProgressEvent {
@@ -648,8 +648,6 @@
648
648
  "IMPORTING": "Import in progress",
649
649
  "BTN_IMPORT_POLICY_DOTS": "Import policy...",
650
650
  "ERROR": "Error while uploading file",
651
- "MAX_FILE_SIZE_ERROR": "The file size is too large to be uploaded ({{maxFileSizeMb}} MB max)",
652
- "EXTENSION_NOT_ALLOWED_ERROR": "The file extension is not allowed ({{fileExtensionsExcluded}} excluded)",
653
651
  "IMPORT_POLICY": {
654
652
  "TITLE": "Import options",
655
653
  "INSERT-ONLY": "Inserts only",
@@ -648,8 +648,6 @@
648
648
  "IMPORTING": "Import in progress",
649
649
  "BTN_IMPORT_POLICY_DOTS": "Import policy...",
650
650
  "ERROR": "Error while uploading file",
651
- "MAX_FILE_SIZE_ERROR": "The file size is too large to be uploaded ({{maxFileSizeMb}} MB max)",
652
- "EXTENSION_NOT_ALLOWED_ERROR": "The file extension is not allowed ({{fileExtensionsExcluded}} excluded)",
653
651
  "IMPORT_POLICY": {
654
652
  "TITLE": "Import options",
655
653
  "INSERT-ONLY": "Inserts only",
@@ -650,8 +650,6 @@
650
650
  "IMPORTING": "Importation en cours",
651
651
  "BTN_IMPORT_POLICY_DOTS": "Stratégie d'importation...",
652
652
  "ERROR": "Erreur durant l'envoi de fichier",
653
- "MAX_FILE_SIZE_ERROR": "La taille du fichier est trop importante pour être téléversé ({{maxFileSizeMb}} Mo max).",
654
- "EXTENSION_NOT_ALLOWED_ERROR": "L'extension du fichier n'est pas autorisée ({{fileExtensionsExcluded}} exclus).",
655
653
  "IMPORT_POLICY": {
656
654
  "TITLE": "Stratégie d'importation",
657
655
  "INSERT-ONLY": "Insertions uniquement",
@@ -2,7 +2,7 @@
2
2
  "name": "ngx-sumaris-components",
3
3
  "short_name": "ngx-sumaris-components",
4
4
  "manifest_version": 1,
5
- "version": "18.26.14-alpha1",
5
+ "version": "18.26.15",
6
6
  "default_locale": "fr",
7
7
  "description": "Angular components for building beautiful and responsive Apps",
8
8
  "icons": [{
@@ -115,6 +115,8 @@
115
115
  .mat-mdc-footer-cell {
116
116
  // Remove default padding
117
117
  padding-inline: 0;
118
+ padding-inline-start: 0; // Compat Chrome < 87 (padding-inline not exists yet)
119
+ padding-inline-end: 0; // Compat Chrome < 87 (padding-inline not exists yet)
118
120
 
119
121
  &.ion-padding-start {
120
122
  padding-inline-start: var(--mat-cell-horizontal-padding);
@@ -352,7 +354,10 @@
352
354
  }
353
355
 
354
356
  .mdc-text-field {
357
+ // Remove default padding
355
358
  padding-inline: 0;
359
+ padding-inline-start: 0; // Compat Chrome < 87 (padding-inline not exists yet)
360
+ padding-inline-end: 0; // Compat Chrome < 87 (padding-inline not exists yet)
356
361
  }
357
362
 
358
363
  // Prefix