@sumaris-net/ngx-components 21.2.0 → 21.3.1

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sumaris-net/ngx-components",
3
3
  "description": "SUMARiS Angular components",
4
- "version": "21.2.0",
4
+ "version": "21.3.1",
5
5
  "author": "contact@e-is.pro",
6
6
  "license": "AGPL-3.0",
7
7
  "readmeFilename": "README.md",
@@ -165,17 +165,20 @@
165
165
  "ENABLE_GRAVATAR": "User > Enable Gravatar?",
166
166
  "DEFAULT_LOCALE": "Default Language",
167
167
  "DEFAULT_LATLONG_FORMAT": "Default lat/lon format",
168
+ "ENABLE_DEFAULT_LATLONG_FORMAT": "My Account > Settings > Enable lat/lon format? (Deprecated option)",
168
169
  "APP_MIN_VERSION": "App > Minimal compatible version (x.y.z)",
169
170
  "HELP_URL": "App > User manual (URL)",
170
171
  "FORUM_URL": "App > Forum address (URL)",
171
172
  "REPORT_ISSUE_URL": "App > Address to report an issue (URL)",
172
173
  "PRIVACY_POLICY_URL": "App > Address to privacy policy (URL - Markdown preferred)",
174
+ "CHANGELOG_URL": "App > Changelog (URL)",
173
175
  "TERMS_OF_USE_URL": "App > Address to General terms of use (URL - Markdown preferred)",
174
176
  "ACCOUNT": {
175
177
  "ENABLE_LATLONG_FORMAT": "My Account > Settings > Enable lat/lon format?",
176
178
  "READONLY": "My Account > Profile > Readonly? (readonly option)",
177
179
  "AVATAR_ENABLE": "My Account > Profile > Enable avatar?",
178
- "AVATAR_MAX_SIZE": "My Account > Profile > Avatar max size (px)"
180
+ "AVATAR_MAX_SIZE": "My Account > Profile > Avatar max size (px)",
181
+ "ENABLE_CHANGE_PASSWORD": "My Account > Enable password change?"
179
182
  },
180
183
  "HOME": {
181
184
  "LOGO_LARGE": "Home > Logo (max width 400px)",
@@ -220,6 +223,9 @@
220
223
  "ENTITY_TRASH": "Enable trash on pod?",
221
224
  "UPDATE_TECHNICAL_TABLES": "Automatically update technical tables?",
222
225
  "ANALYTIC_REFERENCES_ENABLE": "Strategy > Analytic references: Enable?",
226
+ "FORM_FIELD_BACKGROUND_COLOR": "Theme > Background color > Field",
227
+ "FORM_FIELD_FOCUS_BACKGROUND_COLOR": "Theme > Background color > Field with focus",
228
+ "FORM_FIELD_DISABLED_BACKGROUND_COLOR": "Theme > Background color > Inactive field",
223
229
  "AUTH_TOKEN_TYPE_PLACEHOLDER": "Security > Authentication type",
224
230
  "AUTH_TOKEN_TYPE": {
225
231
  "BASIC": "Basic",
@@ -521,6 +527,7 @@
521
527
  "BTN_SET_MANUALLY": "Define manually",
522
528
  "NETWORK_HELP": "Please choose a <b>database</b> node to connect to:",
523
529
  "FEATURES_HELP": "Please choose a <b>data collection program</b> you would like to participate in:",
530
+ "NO_PEER": "No network node found",
524
531
  "NOT_COMPATIBLE_HELP": "Required version: v{{version}} or +"
525
532
  }
526
533
  },
@@ -165,17 +165,20 @@
165
165
  "ENABLE_GRAVATAR": "User > Enable Gravatar?",
166
166
  "DEFAULT_LOCALE": "Default Language",
167
167
  "DEFAULT_LATLONG_FORMAT": "Default lat/lon format",
168
+ "ENABLE_DEFAULT_LATLONG_FORMAT": "My Account > Settings > Enable lat/lon format? (Deprecated option)",
168
169
  "APP_MIN_VERSION": "App > Minimal compatible version (x.y.z)",
169
170
  "HELP_URL": "App > User manual (URL)",
170
171
  "FORUM_URL": "App > Forum address (URL)",
171
172
  "REPORT_ISSUE_URL": "App > Address to report an issue (URL)",
172
173
  "PRIVACY_POLICY_URL": "App > Address to privacy policy (URL - Markdown preferred)",
174
+ "CHANGELOG_URL": "App > Changelog (URL)",
173
175
  "TERMS_OF_USE_URL": "App > Address to General terms of use (URL - Markdown preferred)",
174
176
  "ACCOUNT": {
175
177
  "ENABLE_LATLONG_FORMAT": "My Account > Settings > Enable lat/lon format?",
176
178
  "READONLY": "My Account > Profile > Readonly? (readonly option)",
177
179
  "AVATAR_ENABLE": "My Account > Profile > Enable avatar?",
178
- "AVATAR_MAX_SIZE": "My Account > Profile > Avatar max size (px)"
180
+ "AVATAR_MAX_SIZE": "My Account > Profile > Avatar max size (px)",
181
+ "ENABLE_CHANGE_PASSWORD": "My Account > Enable password change?"
179
182
  },
180
183
  "HOME": {
181
184
  "LOGO_LARGE": "Home > Logo (max width 400px)",
@@ -220,6 +223,9 @@
220
223
  "ENTITY_TRASH": "Enable trash on pod?",
221
224
  "UPDATE_TECHNICAL_TABLES": "Automatically update technical tables?",
222
225
  "ANALYTIC_REFERENCES_ENABLE": "Strategy > Analytic references: Enable?",
226
+ "FORM_FIELD_BACKGROUND_COLOR": "Theme > Background color > Field",
227
+ "FORM_FIELD_FOCUS_BACKGROUND_COLOR": "Theme > Background color > Field with focus",
228
+ "FORM_FIELD_DISABLED_BACKGROUND_COLOR": "Theme > Background color > Inactive field",
223
229
  "AUTH_TOKEN_TYPE_PLACEHOLDER": "Security > Authentication type",
224
230
  "AUTH_TOKEN_TYPE": {
225
231
  "BASIC": "Basic",
@@ -521,6 +527,7 @@
521
527
  "BTN_SET_MANUALLY": "Define manually",
522
528
  "NETWORK_HELP": "Please choose a <b>database</b> node to connect to:",
523
529
  "FEATURES_HELP": "Please choose a <b>data collection programme</b> you would like to participate in:",
530
+ "NO_PEER": "No network node found",
524
531
  "NOT_COMPATIBLE_HELP": "Required version: v{{version}} or +"
525
532
  }
526
533
  },
@@ -165,17 +165,20 @@
165
165
  "ENABLE_GRAVATAR": "Utilisateur > Utiliser Gravatar ?",
166
166
  "DEFAULT_LOCALE": "Langue par défaut",
167
167
  "DEFAULT_LATLONG_FORMAT": "Format lat/lon par défaut",
168
+ "ENABLE_DEFAULT_LATLONG_FORMAT": "Mon Compte > Préférences > Activer le format lat/lon ? (Option depreciée)",
168
169
  "APP_MIN_VERSION": "App > Version minimale compatible (x.y.z)",
169
170
  "HELP_URL": "App > Adresse du manuel utilisateur (URL)",
170
171
  "FORUM_URL": "App > Adresse du forum (URL)",
171
172
  "REPORT_ISSUE_URL": "App > Adresse pour remonter un problème (URL)",
172
173
  "PRIVACY_POLICY_URL": "App > Adresse de la politique de confidentialité (URL - Markdown de préférence)",
174
+ "CHANGELOG_URL": "App > Notes de version (URL)",
173
175
  "TERMS_OF_USE_URL": "App > Adresse des Conditions Générales d'Utilisation (CGU) (URL - Markdown de préférence)",
174
176
  "ACCOUNT": {
175
177
  "ENABLE_LATLONG_FORMAT": "Mon Compte > Préférences > Activer le format lat/lon ?",
176
178
  "READONLY": "Mon Compte > Profil > Lecture seule ? (option non modifiable)",
177
179
  "AVATAR_ENABLE": "Mon Compte > Profil > Activer l'avatar ?",
178
- "AVATAR_MAX_SIZE": "Mon Compte > Profil > Taille max de l'avatar (px)"
180
+ "AVATAR_MAX_SIZE": "Mon Compte > Profil > Taille max de l'avatar (px)",
181
+ "ENABLE_CHANGE_PASSWORD": "Mon Compte > Activer le changement de mot de passe ?"
179
182
  },
180
183
  "HOME": {
181
184
  "LOGO_LARGE": "Accueil > Logo (largeur max 400px)",
@@ -220,6 +223,9 @@
220
223
  "ENTITY_TRASH": "Activer la corbeille du pod ?",
221
224
  "UPDATE_TECHNICAL_TABLES": "Pod > Tables techniques : mise à jour auto ?",
222
225
  "ANALYTIC_REFERENCES_ENABLE": "Stratégie > Références analytiques : Activer ?",
226
+ "FORM_FIELD_BACKGROUND_COLOR": "Thème > Couleur de fond > Champ de saisie",
227
+ "FORM_FIELD_FOCUS_BACKGROUND_COLOR": "Thème > Couleur de fond > Champ de saisie avec focus",
228
+ "FORM_FIELD_DISABLED_BACKGROUND_COLOR": "Thème > Couleur de fond > Champ de saisie inactif",
223
229
  "AUTH_TOKEN_TYPE_PLACEHOLDER": "Sécurité > Type d'authentification",
224
230
  "AUTH_TOKEN_TYPE": {
225
231
  "BASIC": "Basique",
@@ -524,6 +530,7 @@
524
530
  "BTN_SET_MANUALLY": "Saisir manuellement",
525
531
  "NETWORK_HELP": "Veuillez choisir la <b>base de données</b> à laquelle vous souhaitez vous connecter :",
526
532
  "FEATURES_HELP": "Veuillez choisir un <b>programme de collecte ou d'expérimentation</b> auquel vous souhaitez participer :",
533
+ "NO_PEER": "Aucun nœud réseau trouvé",
527
534
  "NOT_COMPATIBLE_HELP": "Version requise : v{{version}} ou +"
528
535
  }
529
536
  },
@@ -2,7 +2,7 @@
2
2
  "name": "ngx-sumaris-components",
3
3
  "short_name": "ngx-sumaris-components",
4
4
  "manifest_version": 1,
5
- "version": "21.2.0",
5
+ "version": "21.3.1",
6
6
  "default_locale": "fr",
7
7
  "description": "Angular components for building beautiful and responsive Apps",
8
8
  "icons": [{
@@ -9,6 +9,8 @@ import * as _ionic_core from '@ionic/core';
9
9
  import { PredefinedColors, Color as Color$1, OverlayEventDetail, ToastOptions, Platforms } from '@ionic/core';
10
10
  import * as i8 from '@angular/material/form-field';
11
11
  import { FloatLabelType, MatFormFieldAppearance, SubscriptSizing, MatFormFieldControl, MatFormField, MatFormFieldDefaultOptions } from '@angular/material/form-field';
12
+ import { ConnectionType, ConnectionStatus } from '@capacitor/network';
13
+ export { ConnectionType } from '@capacitor/network';
12
14
  import { HttpClient, HttpProgressEvent, HttpResponse, HttpEventType, HttpEvent, HttpHeaders, HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http';
13
15
  import * as _sumaris_net_ngx_components from '@sumaris-net/ngx-components';
14
16
  import * as i26 from '@angular/cdk/overlay';
@@ -22,12 +24,10 @@ import { SortDirection, MatSort, MatSortable } from '@angular/material/sort';
22
24
  import * as _apollo_client from '@apollo/client';
23
25
  import { OperationVariables as OperationVariables$1 } from '@apollo/client';
24
26
  import { PersistentStorage } from 'apollo4-cache-persist';
25
- import { ConnectionType, ConnectionStatus } from '@capacitor/network';
26
- export { ConnectionType } from '@capacitor/network';
27
27
  import * as i4$3 from '@ionic/storage-angular';
28
28
  import { Storage } from '@ionic/storage-angular';
29
29
  import * as i1 from '@ionic/angular/standalone';
30
- import { Platform, ModalController, IonSearchbar, PopoverController, IonContent, IonApp, IonAvatar, IonBackButton, IonBackdrop, IonBadge, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonCheckbox, IonChip, IonCol, IonFab, IonFabButton, IonFooter, IonGrid, IonHeader, IonIcon, IonImg, IonInfiniteScroll, IonInfiniteScrollContent, IonInput, IonItem, IonItemDivider, IonItemGroup, IonLabel, IonList, IonListHeader, IonMenu, IonMenuButton, IonMenuToggle, IonModal, IonNote, IonPopover, IonProgressBar, IonRefresher, IonRefresherContent, IonReorder, IonReorderGroup, IonRouterLink, IonRouterLinkWithHref, IonRouterOutlet, IonRow, IonSegment, IonSegmentButton, IonSelect, IonSelectOption, IonSkeletonText, IonSpinner, IonSplitPane, IonText, IonTitle, IonToggle, IonToolbar, NavController, PopoverOptions, ToastController, AlertController, MenuController, NavParams } from '@ionic/angular/standalone';
30
+ import { Platform, ModalController, IonSearchbar, PopoverController, IonApp, IonAvatar, IonBackButton, IonBackdrop, IonBadge, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonCheckbox, IonChip, IonCol, IonContent, IonFab, IonFabButton, IonFooter, IonGrid, IonHeader, IonIcon, IonImg, IonInfiniteScroll, IonInfiniteScrollContent, IonInput, IonItem, IonItemDivider, IonItemGroup, IonLabel, IonList, IonListHeader, IonMenu, IonMenuButton, IonMenuToggle, IonModal, IonNote, IonPopover, IonProgressBar, IonRefresher, IonRefresherContent, IonReorder, IonReorderGroup, IonRouterLink, IonRouterLinkWithHref, IonRouterOutlet, IonRow, IonSegment, IonSegmentButton, IonSelect, IonSelectOption, IonSkeletonText, IonSpinner, IonSplitPane, IonText, IonTitle, IonToggle, IonToolbar, NavController, PopoverOptions, ToastController, AlertController, MenuController, NavParams } from '@ionic/angular/standalone';
31
31
  import * as momentImported from 'moment';
32
32
  import { Moment, unitOfTime as unitOfTime$1 } from 'moment';
33
33
  import * as i4$1 from '@ngx-translate/core';
@@ -210,6 +210,7 @@ declare class Environment {
210
210
  externalEnvironmentUrl?: string;
211
211
  baseUrl: string;
212
212
  connectionTimeout?: number;
213
+ startupConnectionTimeout?: number | Partial<Record<ConnectionType, number>>;
213
214
  sameUrlPeer?: boolean;
214
215
  peer?: {
215
216
  host: string;
@@ -1532,7 +1533,7 @@ interface InputElement extends FocusableElement {
1532
1533
  }
1533
1534
  declare function isInputElement(object: any): object is InputElement;
1534
1535
  declare function asInputElement<T = any>(object: ElementRef<T>): InputElement | undefined;
1535
- declare function tabindexComparator(a: InputElement, b: InputElement): 1 | -1 | 0;
1536
+ declare function tabindexComparator(a: InputElement, b: InputElement): 0 | 1 | -1;
1536
1537
  interface CanGainFocusOptions {
1537
1538
  minTabindex?: number;
1538
1539
  maxTabindex?: number;
@@ -2011,7 +2012,7 @@ declare class SharedTestsPage {
2011
2012
  *
2012
2013
  * To use a new Ionic component, add it here (see https://ionicframework.com/docs/angular/build-options#standalone)
2013
2014
  */
2014
- declare const SHARED_IONIC_COMPONENTS: (typeof IonContent | typeof IonApp | typeof IonAvatar | typeof IonBackButton | typeof IonBackdrop | typeof IonBadge | typeof IonButton | typeof IonButtons | typeof IonCard | typeof IonCardContent | typeof IonCardHeader | typeof IonCardSubtitle | typeof IonCardTitle | typeof IonCheckbox | typeof IonChip | typeof IonCol | typeof IonFab | typeof IonFabButton | typeof IonFooter | typeof IonGrid | typeof IonHeader | typeof IonIcon | typeof IonImg | typeof IonInfiniteScroll | typeof IonInfiniteScrollContent | typeof IonInput | typeof IonItem | typeof IonItemDivider | typeof IonItemGroup | typeof IonLabel | typeof IonList | typeof IonListHeader | typeof IonMenu | typeof IonMenuButton | typeof IonMenuToggle | typeof IonModal | typeof IonNote | typeof IonPopover | typeof IonProgressBar | typeof IonRefresher | typeof IonRefresherContent | typeof IonReorder | typeof IonReorderGroup | typeof IonRouterLink | typeof IonRouterLinkWithHref | typeof IonRouterOutlet | typeof IonRow | typeof IonSearchbar | typeof IonSegment | typeof IonSegmentButton | typeof IonSelect | typeof IonSelectOption | typeof IonSkeletonText | typeof IonSpinner | typeof IonSplitPane | typeof IonText | typeof IonTitle | typeof IonToggle | typeof IonToolbar)[];
2015
+ declare const SHARED_IONIC_COMPONENTS: (typeof IonApp | typeof IonAvatar | typeof IonBackButton | typeof IonBackdrop | typeof IonBadge | typeof IonButton | typeof IonButtons | typeof IonCard | typeof IonCardContent | typeof IonCardHeader | typeof IonCardSubtitle | typeof IonCardTitle | typeof IonCheckbox | typeof IonChip | typeof IonCol | typeof IonContent | typeof IonFab | typeof IonFabButton | typeof IonFooter | typeof IonGrid | typeof IonHeader | typeof IonIcon | typeof IonImg | typeof IonInfiniteScroll | typeof IonInfiniteScrollContent | typeof IonInput | typeof IonItem | typeof IonItemDivider | typeof IonItemGroup | typeof IonLabel | typeof IonList | typeof IonListHeader | typeof IonMenu | typeof IonMenuButton | typeof IonMenuToggle | typeof IonModal | typeof IonNote | typeof IonPopover | typeof IonProgressBar | typeof IonRefresher | typeof IonRefresherContent | typeof IonReorder | typeof IonReorderGroup | typeof IonRouterLink | typeof IonRouterLinkWithHref | typeof IonRouterOutlet | typeof IonRow | typeof IonSearchbar | typeof IonSegment | typeof IonSegmentButton | typeof IonSelect | typeof IonSelectOption | typeof IonSkeletonText | typeof IonSpinner | typeof IonSplitPane | typeof IonText | typeof IonTitle | typeof IonToggle | typeof IonToolbar)[];
2015
2016
  /**
2016
2017
  * Replacement of the (lazy-loaded) `IonicModule`, using Ionic standalone components.
2017
2018
  */
@@ -5319,6 +5320,7 @@ declare class SelectPeerModal extends RxState<ISelectPeerModalState> implements
5319
5320
  protected environment: Environment;
5320
5321
  protected loggingService?: ILoggingService;
5321
5322
  private _subscription;
5323
+ private _setManuallyOpened;
5322
5324
  private readonly _logger;
5323
5325
  protected defaultPeers$: rxjs.Observable<Peer[]>;
5324
5326
  protected peers$: rxjs.Observable<Peer[]>;
@@ -5420,6 +5422,13 @@ interface AppManifest {
5420
5422
  display?: string;
5421
5423
  }
5422
5424
  declare class NetworkUtils {
5425
+ /**
5426
+ * Resolve a timeout (in ms), that can depend on the connection type (e.g. { wifi: 3000, cellular: 10000 })
5427
+ * @param timeout - a timeout, or a timeout by connection type
5428
+ * @param connectionType - the current connection type
5429
+ * @param defaultTimeout - the timeout to use, if not defined (or not defined for the connection type)
5430
+ */
5431
+ static resolveTimeout(timeout: number | Partial<Record<ConnectionType, number>> | undefined, connectionType: ConnectionType, defaultTimeout: number): number;
5423
5432
  static getNodeInfo(http: HttpClient, peer: string | Peer, opts?: {
5424
5433
  headers?: HttpHeaders | {
5425
5434
  [header: string]: string | string[];
@@ -5549,6 +5558,12 @@ declare class NetworkService extends StartableObservableService<Peer, Peer> {
5549
5558
  * @param peer
5550
5559
  */
5551
5560
  checkPeerAlive(peer?: string | Peer): Promise<NodeInfo>;
5561
+ /**
5562
+ * Check if the peer is alive, at startup. If the peer does not respond before the startup timeout
5563
+ * (see environment.startupConnectionTimeout), returns 'timeout' and continue to wait for the peer in background:
5564
+ * the app will go online as soon as the peer responds.
5565
+ */
5566
+ protected checkPeerAliveAtStartup(peer: Peer): Promise<NodeInfo | 'timeout'>;
5552
5567
  /**
5553
5568
  * Checks whether a peer is compatible based on its software version and the required minimum version.
5554
5569
  * Optionally displays a toast notification if the peer is not compatible.
@@ -6602,9 +6617,9 @@ declare class ConfigService extends BaseGraphqlService<Configuration, any, numbe
6602
6617
  private loadOrRestoreLocally;
6603
6618
  /**
6604
6619
  * Merge the environment's properties (if any) into the given configuration.
6605
- * Environment properties take precedence over the server (Pod) configuration,
6620
+ * Server (Pod) configuration properties take precedence over the environment,
6606
6621
  * so the app can be fully customized (e.g. theme colors) using only the injected
6607
- * ENVIRONMENT token - without requiring any change on the server side.
6622
+ * ENVIRONMENT token (useful on a specific mobile artifact) or from the server configuration.
6608
6623
  */
6609
6624
  private mergeEnvironmentProperties;
6610
6625
  private restoreLocally;
@@ -7221,6 +7236,9 @@ declare class AppImageGallerySlideshowComponent<T extends Image = Image> impleme
7221
7236
  enableLoop: boolean;
7222
7237
  /** Whether more rows may exist beyond the ones currently loaded (e.g. a further page, not yet fetched). When true, reaching the last slide asks the parent (via `fetchMore`) instead of looping/stopping. */
7223
7238
  canFetchMore: boolean;
7239
+ actionsTemplate: TemplateRef<{
7240
+ $implicit: TableElement<T>;
7241
+ }>;
7224
7242
  /** Requests deletion of the given row. The caller (gallery) owns the confirmation/deletion logic and resolves the promise with whether it actually happened. */
7225
7243
  deleteRequested: EventEmitter<_sumaris_net_ngx_components.PromiseEvent<boolean, {
7226
7244
  row: TableElement<T>;
@@ -7245,6 +7263,7 @@ declare class AppImageGallerySlideshowComponent<T extends Image = Image> impleme
7245
7263
  /** No "fetch previous page" concept exists: reaching the first slide can only loop, or stop. */
7246
7264
  protected get isPrevDisabled(): boolean;
7247
7265
  protected get isNextDisabled(): boolean;
7266
+ protected get activeRow(): TableElement<T> | undefined;
7248
7267
  constructor(alterCtrl: AlertController, translate: TranslateService, cd: ChangeDetectorRef);
7249
7268
  ngOnDestroy(): void;
7250
7269
  protected getSwiper(swiperElement?: any): Swiper;
@@ -7328,7 +7347,7 @@ declare class AppImageGallerySlideshowComponent<T extends Image = Image> impleme
7328
7347
  protected _getActiveZoomWrapEl(swiperElement: any): HTMLElement | null;
7329
7348
  protected markForCheck(): void;
7330
7349
  static ɵfac: i0.ɵɵFactoryDeclaration<AppImageGallerySlideshowComponent<any>, never>;
7331
- static ɵcmp: i0.ɵɵComponentDeclaration<AppImageGallerySlideshowComponent<any>, "app-image-gallery-slideshow", never, { "rows": { "alias": "rows"; "required": false; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "enableMouseZoom": { "alias": "enableMouseZoom"; "required": false; }; "wheelZoomStep": { "alias": "wheelZoomStep"; "required": false; }; "maxZoomRatio": { "alias": "maxZoomRatio"; "required": false; }; "enableRotate": { "alias": "enableRotate"; "required": false; }; "enableCrop": { "alias": "enableCrop"; "required": false; }; "enableDelete": { "alias": "enableDelete"; "required": false; }; "editionFormat": { "alias": "editionFormat"; "required": false; }; "editionQuality": { "alias": "editionQuality"; "required": false; }; "imageSizeQueryParam": { "alias": "imageSizeQueryParam"; "required": false; }; "imageSize": { "alias": "imageSize"; "required": false; }; "imageVersionQueryParam": { "alias": "imageVersionQueryParam"; "required": false; }; "imageVersionFn": { "alias": "imageVersionFn"; "required": false; }; "enableLoop": { "alias": "enableLoop"; "required": false; }; "canFetchMore": { "alias": "canFetchMore"; "required": false; }; }, { "deleteRequested": "deleteRequested"; "closeRequested": "closeRequested"; "afterEditImage": "afterEditImage"; "afterEditRow": "afterEditRow"; "previousSlide": "previousSlide"; "nextSlide": "nextSlide"; "slideChanges": "slideChanges"; "fetchMore": "fetchMore"; }, never, never, false, never>;
7350
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppImageGallerySlideshowComponent<any>, "app-image-gallery-slideshow", never, { "rows": { "alias": "rows"; "required": false; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "enableMouseZoom": { "alias": "enableMouseZoom"; "required": false; }; "wheelZoomStep": { "alias": "wheelZoomStep"; "required": false; }; "maxZoomRatio": { "alias": "maxZoomRatio"; "required": false; }; "enableRotate": { "alias": "enableRotate"; "required": false; }; "enableCrop": { "alias": "enableCrop"; "required": false; }; "enableDelete": { "alias": "enableDelete"; "required": false; }; "editionFormat": { "alias": "editionFormat"; "required": false; }; "editionQuality": { "alias": "editionQuality"; "required": false; }; "imageSizeQueryParam": { "alias": "imageSizeQueryParam"; "required": false; }; "imageSize": { "alias": "imageSize"; "required": false; }; "imageVersionQueryParam": { "alias": "imageVersionQueryParam"; "required": false; }; "imageVersionFn": { "alias": "imageVersionFn"; "required": false; }; "enableLoop": { "alias": "enableLoop"; "required": false; }; "canFetchMore": { "alias": "canFetchMore"; "required": false; }; "actionsTemplate": { "alias": "actionsTemplate"; "required": false; }; }, { "deleteRequested": "deleteRequested"; "closeRequested": "closeRequested"; "afterEditImage": "afterEditImage"; "afterEditRow": "afterEditRow"; "previousSlide": "previousSlide"; "nextSlide": "nextSlide"; "slideChanges": "slideChanges"; "fetchMore": "fetchMore"; }, never, never, false, never>;
7332
7351
  static ngAcceptInputType_selectedIndex: unknown;
7333
7352
  static ngAcceptInputType_mobile: unknown;
7334
7353
  static ngAcceptInputType_readOnly: unknown;
@@ -7454,6 +7473,9 @@ declare class AppImageGalleryComponent<T extends Image> implements OnInit, OnDes
7454
7473
  image: T;
7455
7474
  mode: GalleryMode;
7456
7475
  }>;
7476
+ slideshowActionsTemplate: TemplateRef<{
7477
+ $implicit: TableElement<T>;
7478
+ }>;
7457
7479
  imageSizeQueryParam: string;
7458
7480
  imageSizes: ImageGallerySizes;
7459
7481
  imageVersionQueryParam: string;
@@ -7585,7 +7607,7 @@ declare class AppImageGalleryComponent<T extends Image> implements OnInit, OnDes
7585
7607
  };
7586
7608
  protected markForCheck(): void;
7587
7609
  static ɵfac: i0.ɵɵFactoryDeclaration<AppImageGalleryComponent<any>, [null, null, null, null, null, { optional: true; }]>;
7588
- static ɵcmp: i0.ɵɵComponentDeclaration<AppImageGalleryComponent<any>, "app-image-gallery", never, { "cardColor": { "alias": "cardColor"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "confirmBeforeDelete": { "alias": "confirmBeforeDelete"; "required": false; }; "showToolbar": { "alias": "showToolbar"; "required": false; }; "showFabButton": { "alias": "showFabButton"; "required": false; }; "showTitle": { "alias": "showTitle"; "required": false; }; "showAddToolbarButton": { "alias": "showAddToolbarButton"; "required": false; }; "showAddTextButton": { "alias": "showAddTextButton"; "required": false; }; "showAddCardButton": { "alias": "showAddCardButton"; "required": false; }; "showCardToolbar": { "alias": "showCardToolbar"; "required": false; }; "addButtonColor": { "alias": "addButtonColor"; "required": false; }; "addButtonText": { "alias": "addButtonText"; "required": false; }; "cardTemplate": { "alias": "cardTemplate"; "required": false; }; "imageSizeQueryParam": { "alias": "imageSizeQueryParam"; "required": false; }; "imageSizes": { "alias": "imageSizes"; "required": false; }; "imageVersionQueryParam": { "alias": "imageVersionQueryParam"; "required": false; }; "imageVersionFn": { "alias": "imageVersionFn"; "required": false; }; "enableMouseZoom": { "alias": "enableMouseZoom"; "required": false; }; "wheelZoomStep": { "alias": "wheelZoomStep"; "required": false; }; "maxZoomRatio": { "alias": "maxZoomRatio"; "required": false; }; "enableRotate": { "alias": "enableRotate"; "required": false; }; "enableCrop": { "alias": "enableCrop"; "required": false; }; "enableDelete": { "alias": "enableDelete"; "required": false; }; "editionFormat": { "alias": "editionFormat"; "required": false; }; "editionQuality": { "alias": "editionQuality"; "required": false; }; "slideshowMode": { "alias": "slideshowMode"; "required": false; }; "inlineZoomHeight": { "alias": "inlineZoomHeight"; "required": false; }; "enableSlideshowLoop": { "alias": "enableSlideshowLoop"; "required": false; }; "canFetchMore": { "alias": "canFetchMore"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; }, { "modeChange": "modeChange"; "onDeleteRow": "onDeleteRow"; "onBeforeDeleteRows": "onBeforeDeleteRows"; "onAfterAddRows": "onAfterAddRows"; "onAfterEditRow": "onAfterEditRow"; "onAfterEditImage": "onAfterEditImage"; "cardClicked": "clickCard"; "previousSlide": "previousSlide"; "nextSlide": "nextSlide"; "slideChanges": "slideChanges"; "fetchMore": "fetchMore"; "slideshowOpened": "slideshowOpened"; "slideshowClosed": "slideshowClosed"; }, never, ["ion-buttons[slot=start]", "ion-buttons[slot=end]"], false, never>;
7610
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppImageGalleryComponent<any>, "app-image-gallery", never, { "cardColor": { "alias": "cardColor"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "confirmBeforeDelete": { "alias": "confirmBeforeDelete"; "required": false; }; "showToolbar": { "alias": "showToolbar"; "required": false; }; "showFabButton": { "alias": "showFabButton"; "required": false; }; "showTitle": { "alias": "showTitle"; "required": false; }; "showAddToolbarButton": { "alias": "showAddToolbarButton"; "required": false; }; "showAddTextButton": { "alias": "showAddTextButton"; "required": false; }; "showAddCardButton": { "alias": "showAddCardButton"; "required": false; }; "showCardToolbar": { "alias": "showCardToolbar"; "required": false; }; "addButtonColor": { "alias": "addButtonColor"; "required": false; }; "addButtonText": { "alias": "addButtonText"; "required": false; }; "cardTemplate": { "alias": "cardTemplate"; "required": false; }; "slideshowActionsTemplate": { "alias": "slideshowActionsTemplate"; "required": false; }; "imageSizeQueryParam": { "alias": "imageSizeQueryParam"; "required": false; }; "imageSizes": { "alias": "imageSizes"; "required": false; }; "imageVersionQueryParam": { "alias": "imageVersionQueryParam"; "required": false; }; "imageVersionFn": { "alias": "imageVersionFn"; "required": false; }; "enableMouseZoom": { "alias": "enableMouseZoom"; "required": false; }; "wheelZoomStep": { "alias": "wheelZoomStep"; "required": false; }; "maxZoomRatio": { "alias": "maxZoomRatio"; "required": false; }; "enableRotate": { "alias": "enableRotate"; "required": false; }; "enableCrop": { "alias": "enableCrop"; "required": false; }; "enableDelete": { "alias": "enableDelete"; "required": false; }; "editionFormat": { "alias": "editionFormat"; "required": false; }; "editionQuality": { "alias": "editionQuality"; "required": false; }; "slideshowMode": { "alias": "slideshowMode"; "required": false; }; "inlineZoomHeight": { "alias": "inlineZoomHeight"; "required": false; }; "enableSlideshowLoop": { "alias": "enableSlideshowLoop"; "required": false; }; "canFetchMore": { "alias": "canFetchMore"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; }, { "modeChange": "modeChange"; "onDeleteRow": "onDeleteRow"; "onBeforeDeleteRows": "onBeforeDeleteRows"; "onAfterAddRows": "onAfterAddRows"; "onAfterEditRow": "onAfterEditRow"; "onAfterEditImage": "onAfterEditImage"; "cardClicked": "clickCard"; "previousSlide": "previousSlide"; "nextSlide": "nextSlide"; "slideChanges": "slideChanges"; "fetchMore": "fetchMore"; "slideshowOpened": "slideshowOpened"; "slideshowClosed": "slideshowClosed"; }, never, ["ion-buttons[slot=start]", "ion-buttons[slot=end]"], false, never>;
7589
7611
  static ngAcceptInputType_debug: unknown;
7590
7612
  static ngAcceptInputType_disabled: unknown;
7591
7613
  static ngAcceptInputType_readOnly: unknown;