@dsivd/prestations-ng 14.5.14-beta4 → 14.5.16-beta1

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 (34) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +2 -0
  3. package/bundles/dsivd-prestations-ng.umd.js +100 -53
  4. package/bundles/dsivd-prestations-ng.umd.js.map +1 -1
  5. package/dsivd-prestations-ng-v14.5.16-beta1.tgz +0 -0
  6. package/esm2015/abstract-page-component.js +6 -4
  7. package/esm2015/foehn-list/foehn-list.component.js +13 -12
  8. package/esm2015/foehn-page/foehn-page.component.js +2 -1
  9. package/esm2015/foehn-table/foehn-table.component.js +12 -7
  10. package/esm2015/foehn-table/tableSort.js +1 -1
  11. package/esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.js +4 -3
  12. package/esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.js +6 -3
  13. package/esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.js +7 -4
  14. package/esm2015/foehn-upload/foehn-multi-upload/multi-upload.service.js +4 -3
  15. package/esm2015/foehn-upload/foehn-multi-upload/pending-upload.service.js +4 -3
  16. package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.js +6 -3
  17. package/esm2015/foehn-upload/pending-upload.type.js +1 -1
  18. package/esm2015/gesdem-confirmation/gesdem-confirmation.component.js +2 -2
  19. package/esm2015/sdk-dictionary/default-dictionary.js +2 -1
  20. package/esm2015/sdk-session-info/session-info.service.js +52 -23
  21. package/fesm2015/dsivd-prestations-ng.js +101 -54
  22. package/fesm2015/dsivd-prestations-ng.js.map +1 -1
  23. package/foehn-list/foehn-list.component.d.ts +0 -1
  24. package/foehn-table/tableSort.d.ts +1 -1
  25. package/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.d.ts +1 -1
  26. package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.d.ts +2 -1
  27. package/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.d.ts +2 -1
  28. package/foehn-upload/foehn-multi-upload/multi-upload.service.d.ts +1 -1
  29. package/foehn-upload/foehn-multi-upload/pending-upload.service.d.ts +1 -1
  30. package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +2 -1
  31. package/foehn-upload/pending-upload.type.d.ts +1 -0
  32. package/package.json +1 -1
  33. package/sdk-session-info/session-info.service.d.ts +8 -1
  34. package/dsivd-prestations-ng-v14.5.14-beta4.tgz +0 -0
package/CHANGELOG.md CHANGED
@@ -25,6 +25,35 @@ A change is considered **breaking** if you have to change your code or update yo
25
25
  - adding a new constructor argument in one of our service is OK, if you just have to update your constructor's signature and your call to `super(...)`
26
26
 
27
27
  ---
28
+ ## [14.5.16]
29
+
30
+ ### Updated
31
+
32
+ - [session-info.service.ts](projects/prestations-ng/src/sdk-session-info/session-info.service.ts)
33
+ - `SessionInfoData` data getter now depends on `neverConnected` attribute to avoid unnecessary calls to sessionInfo api (PRESTAKIT-364).
34
+ - To retrieve `SessionInfoData` data from api url, you need to explicitly set `neverConnected` attribute to `false`.
35
+
36
+ - [foehn-page.component.ts](projects/prestations-ng/src/foehn-page/foehn-page.component.ts)
37
+ - `@Input() neverConnected` is now set to `false` by default to retrieve `SessionInfoData` data for backwards compatibility purposes.
38
+
39
+ ## [14.5.15]
40
+ ### Added
41
+
42
+ - [Autogenerated documentation](https://dsi-vd.github.io/prestations-ng/generateddoc)
43
+ - prestations-ng documentation generated automatically by `compodoc`
44
+
45
+ - [foehn-multi-upload.component.ts](projects/prestations-ng/src/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.ts)
46
+ - [foehn-bo-multi-upload.component.ts](projects/prestations-ng/src/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.ts)
47
+ - Add possibility to hide confirmation message when a file is saved. Default is message is displayed. To change default value, add [shouldDisplayFileSavedConfirmation]="false" in your upload
48
+
49
+ - [gesdem-confirmation.component.html](projects/prestations-ng/src/gesdem-confirmation/gesdem-confirmation.component.html)
50
+ - `telechargerBtn` (Télécharger la demande (pdf)) is also shown to a connected user
51
+ - `logoutBtn` (Se déconnecter) is shown to a connected user instead of `terminerBtn` (Terminer)
52
+
53
+ ### Fixed
54
+
55
+ - [foehn-table.component.ts](projects/prestations-ng/src/foehn-table/foehn-table.component.ts)
56
+ - table content was not being refreshed when sorting column
28
57
 
29
58
  ## [14.5.14]
30
59
 
package/README.md CHANGED
@@ -4,6 +4,8 @@ Best practice guide online in our DSI WiKi at [https://portail.etat-de-vaud.ch/o
4
4
 
5
5
  An implementation of [Foehn](https://dsi-vd.github.io/foehn-design-system/) with Angular for [PrestaKit](https://www.vd.ch/prestakit/).
6
6
 
7
+ The generated documentation of our entire library is available online at [https://dsi-vd.github.io/prestations-ng/generateddoc](https://dsi-vd.github.io/prestations-ng/generateddoc)
8
+
7
9
  The documentation is available online at [https://dsi-vd.github.io/prestations-ng/](https://dsi-vd.github.io/prestations-ng/)
8
10
 
9
11
  - If you're using **Angular 12**, use `@dsivd/prestations-ng` at version `^14.5.0`.
@@ -867,52 +867,79 @@
867
867
 
868
868
  var SESSION_INFO_API_URL = 'api/sessionInfo/data';
869
869
  var SessionInfo = /** @class */ (function () {
870
- function SessionInfo(http) {
870
+ function SessionInfo(http, growlService, ngZone) {
871
871
  this.http = http;
872
+ this.growlService = growlService;
873
+ this.ngZone = ngZone;
874
+ this.neverConnected_ = new rxjs.BehaviorSubject(undefined);
872
875
  }
873
876
  Object.defineProperty(SessionInfo.prototype, "data", {
874
877
  get: function () {
875
878
  var _this = this;
876
- if (this.neverConnected_) {
877
- return rxjs.of(null);
878
- }
879
- else {
880
- if (!this.pulling_) {
881
- this.pulling_ = this.http
882
- .get(SESSION_INFO_API_URL)
883
- .pipe(operators.map(function (r) {
884
- if (r) {
885
- return (_this.sessionData = r);
886
- }
887
- return null;
888
- }), operators.shareReplay(1));
879
+ return this.neverConnected_.asObservable().pipe(operators.tap(function () {
880
+ if (_this.timeoutLogError) {
881
+ clearTimeout(_this.timeoutLogError);
889
882
  }
890
- return this.pulling_;
891
- }
883
+ }), operators.switchMap(function (neverConnected) {
884
+ if (neverConnected !== false) {
885
+ if (neverConnected === undefined) {
886
+ _this.logErrorNeverConnectedIsNotSet();
887
+ }
888
+ if (!_this.onMicroTaskEmptyPulling_) {
889
+ // Need 'onMicrotaskEmpty' to avoid 'ExpressionChangedAfterItHasBeenCheckedError'
890
+ _this.onMicroTaskEmptyPulling_ = _this.ngZone.onMicrotaskEmpty.pipe(operators.first(), operators.map(function () { return null; }), operators.shareReplay(1));
891
+ }
892
+ return _this.onMicroTaskEmptyPulling_;
893
+ }
894
+ else {
895
+ if (!_this.pulling_) {
896
+ _this.pulling_ = _this.http
897
+ .get(SESSION_INFO_API_URL)
898
+ .pipe(operators.catchError(function () {
899
+ var message = 'Impossible de récupérer les informations de la personne connectée';
900
+ _this.growlService.addWithType(GrowlType.DANGER, message);
901
+ return rxjs.of(null);
902
+ }), operators.map(function (r) {
903
+ if (r) {
904
+ return (_this.sessionData = r);
905
+ }
906
+ return null;
907
+ }), operators.shareReplay(1));
908
+ }
909
+ return _this.pulling_;
910
+ }
911
+ }));
892
912
  },
893
913
  enumerable: false,
894
914
  configurable: true
895
915
  });
896
916
  Object.defineProperty(SessionInfo.prototype, "neverConnected", {
897
917
  get: function () {
898
- return this.neverConnected_;
918
+ return this.neverConnected_.getValue();
899
919
  },
900
920
  set: function (neverConnected) {
901
- this.neverConnected_ = neverConnected;
921
+ this.neverConnected_.next(neverConnected);
902
922
  },
903
923
  enumerable: false,
904
924
  configurable: true
905
925
  });
926
+ SessionInfo.prototype.logErrorNeverConnectedIsNotSet = function () {
927
+ // Use of setTimeout to avoid unnecessary error log
928
+ this.timeoutLogError = setTimeout(function () {
929
+ console.error("Error: 'neverConnected' is not set. " +
930
+ 'Find more at https://dsi-vd.github.io/prestations-ng/CHANGELOG.md#_14_5_16_');
931
+ }, 2000);
932
+ };
906
933
  return SessionInfo;
907
934
  }());
908
- SessionInfo.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: SessionInfo, deps: [{ token: i1__namespace.HttpClient }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
935
+ SessionInfo.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: SessionInfo, deps: [{ token: i1__namespace.HttpClient }, { token: GrowlBrokerService }, { token: i0__namespace.NgZone }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
909
936
  SessionInfo.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: SessionInfo, providedIn: 'root' });
910
937
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: SessionInfo, decorators: [{
911
938
  type: i0.Injectable,
912
939
  args: [{
913
940
  providedIn: 'root'
914
941
  }]
915
- }], ctorParameters: function () { return [{ type: i1__namespace.HttpClient }]; } });
942
+ }], ctorParameters: function () { return [{ type: i1__namespace.HttpClient }, { type: GrowlBrokerService }, { type: i0__namespace.NgZone }]; } });
916
943
 
917
944
  var GesdemHandlerService = /** @class */ (function () {
918
945
  function GesdemHandlerService(http, growlService, validationHandlerService, router, route, errorHandlerService, sessionInfo) {
@@ -1867,6 +1894,7 @@
1867
1894
  'gesdem-confirmation.mail-sent.label': 'Vous recevrez un email de confirmation dans quelques instants.',
1868
1895
  'gesdem-confirmation.download-pdf-recap-button': 'Télécharger la demande (pdf)',
1869
1896
  'gesdem-confirmation.exit-button': 'Terminer',
1897
+ 'gesdem-confirmation.logout-button': 'Se déconnecter',
1870
1898
  'gesdem-confirmation.extra-content': ' ',
1871
1899
  'foehn-date-picker-button.icon-title': 'Afficher le calendrier',
1872
1900
  'foehn-date-picker-button.screen-reader.selected-date': 'Date sélectionnée :',
@@ -2932,7 +2960,7 @@
2932
2960
  });
2933
2961
  this.uploaderHelper = new UploaderHelper(dictionaryService, applicationInfoService);
2934
2962
  }
2935
- MultiUploadService.prototype.uploadDocuments = function (baseUrl, formKey, label, files, key, isMultiple, language) {
2963
+ MultiUploadService.prototype.uploadDocuments = function (baseUrl, formKey, label, files, key, isMultiple, language, shouldDisplayFileSavedConfirmation) {
2936
2964
  var _this = this;
2937
2965
  if (this.reference) {
2938
2966
  var documents = files.map(function (file) { return _this.uploaderHelper.mapToDocumentReference(file, label, key, isMultiple, _this.uniqPrefix, _this.globalSequence++); });
@@ -2942,7 +2970,8 @@
2942
2970
  .post(url, formData)
2943
2971
  .pipe(operators.tap(function (result) {
2944
2972
  var successfulDocumentsCount = result.documents && result.documents.length;
2945
- if (successfulDocumentsCount) {
2973
+ if (successfulDocumentsCount &&
2974
+ shouldDisplayFileSavedConfirmation) {
2946
2975
  var message = successfulDocumentsCount + " fichier(s) sauvegard\u00E9(s) avec succ\u00E8s";
2947
2976
  _this.growlService.addWithType(GrowlType.SUCCESS, message);
2948
2977
  }
@@ -3044,7 +3073,7 @@
3044
3073
  // Return true if at least one files for a given formKey exist
3045
3074
  return !!this.pendingFilesByFormKey.get(formKey).files.length;
3046
3075
  };
3047
- PendingUploadService.prototype.addPendingFiles = function (baseUrl, formKey, label, files, key, isMultiple) {
3076
+ PendingUploadService.prototype.addPendingFiles = function (baseUrl, formKey, label, files, key, isMultiple, shouldDisplayFileSavedConfirmation) {
3048
3077
  // Initialize pending files by formKey
3049
3078
  if (!this.hasPendingFiles(formKey)) {
3050
3079
  this.pendingFilesByFormKey.set(formKey, new PendingFiles());
@@ -3057,6 +3086,7 @@
3057
3086
  this.pendingFilesByFormKey.get(formKey).files = __spreadArray(__spreadArray([], __read(this.pendingFilesByFormKey.get(formKey).files)), __read(files));
3058
3087
  this.pendingFilesByFormKey.get(formKey).key = key;
3059
3088
  this.pendingFilesByFormKey.get(formKey).isMultiple = isMultiple;
3089
+ this.pendingFilesByFormKey.get(formKey).shouldDisplayFileSavedConfirmation = shouldDisplayFileSavedConfirmation;
3060
3090
  };
3061
3091
  PendingUploadService.prototype.removePendingFile = function (file, formKey) {
3062
3092
  if (this.hasPendingFiles(formKey)) {
@@ -3073,7 +3103,7 @@
3073
3103
  var mergedResponse = new DocumentsWithErrors();
3074
3104
  filesToUpload.forEach(function (pendingFiles, formKey) {
3075
3105
  _this.multiUploadService
3076
- .uploadDocuments(pendingFiles.url, formKey, pendingFiles.label, pendingFiles.files, pendingFiles.key, pendingFiles.isMultiple, form.language)
3106
+ .uploadDocuments(pendingFiles.url, formKey, pendingFiles.label, pendingFiles.files, pendingFiles.key, pendingFiles.isMultiple, form.language, pendingFiles.shouldDisplayFileSavedConfirmation)
3077
3107
  .subscribe(function (response) {
3078
3108
  // Merge all uploads response
3079
3109
  _this.mergePendingUploadedServerResult(mergedResponse, response);
@@ -3259,12 +3289,14 @@
3259
3289
  else {
3260
3290
  this._validationHandlerService.shouldDisplayErrors(true);
3261
3291
  }
3262
- this.sendForFormConcurrentSafe.subscribe(function () { return _this.onFormSent(goToNextPage); });
3292
+ this.sendForFormConcurrentSafe
3293
+ .pipe(operators.first())
3294
+ .subscribe(function () { return _this.onFormSent(goToNextPage); });
3263
3295
  };
3264
3296
  AbstractPageComponent.prototype.transmit = function () {
3265
3297
  var _this = this;
3266
3298
  this._validationHandlerService.shouldDisplayErrors(true);
3267
- this.transmitConcurrentSafe.subscribe(function () {
3299
+ this.transmitConcurrentSafe.pipe(operators.first()).subscribe(function () {
3268
3300
  if (!_this._gesdemService.lastResponse.errors.length) {
3269
3301
  _this._gesdemEventService.formTransmittedSubject.next(_this._gesdemService.lastResponse);
3270
3302
  _this._navigation.next();
@@ -4291,7 +4323,7 @@
4291
4323
  return GesdemConfirmationComponent;
4292
4324
  }());
4293
4325
  GesdemConfirmationComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: GesdemConfirmationComponent, deps: [{ token: GesdemHandlerService }, { token: FoehnPageService }, { token: i1__namespace$1.ActivatedRoute }, { token: SdkDictionaryService }, { token: i3__namespace.Location }], target: i0__namespace.ɵɵFactoryTarget.Component });
4294
- GesdemConfirmationComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: GesdemConfirmationComponent, selector: "gesdem-confirmation", inputs: { reference: "reference", setPageTitle: "setPageTitle", hasEmailSent: "hasEmailSent", closeHref: "closeHref", showDownloadPdfRecapButton: "showDownloadPdfRecapButton", showLinkToMyDemandes: "showLinkToMyDemandes", demandeIsClosedOnTransmit: "demandeIsClosedOnTransmit", actionStatut: "actionStatut", connectedConfirmationMessage: "connectedConfirmationMessage", connectedConfirmationMessageIfAbandoned: "connectedConfirmationMessageIfAbandoned", downloadPdfRecapButtonText: "downloadPdfRecapButtonText", closeButtonText: "closeButtonText", baseUrlPdf: "baseUrlPdf" }, usesOnChanges: true, ngImport: i0__namespace, template: "<div class=\"container mt-5\" *ngIf=\"reference && !isInProgress\">\n <div\n class=\"alert text-center mb-2\"\n [ngClass]=\"isTransferred ? 'alert-success' : 'alert-danger'\"\n >\n <p class=\"h2\">\n {{\n isTransferred\n ? (successLabelDicoKey | fromDictionary)\n : ('gesdem-confirmation.abort-label' | fromDictionary)\n }}\n </p>\n <dl>\n <dt class=\"font-weight-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemande\" class=\"h4 d-block mt-3\">{{ reference }}</dd>\n </dl>\n <p *ngIf=\"hasEmailSent && !(isConnectedCyber | async)\">\n {{ 'gesdem-confirmation.mail-sent.label' | fromDictionary }}\n </p>\n </div>\n\n <span\n [innerHTML]=\"'gesdem-confirmation.extra-content' | fromDictionary\"\n ></span>\n\n <ng-content></ng-content>\n\n <div\n class=\"col-md-12 vd-highlight\"\n *ngIf=\"(isConnectedCyber | async) && hasConnectedContent()\"\n >\n <span class=\"sr-only\">\n Information suite \u00E0 la transmission de votre demande\n </span>\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p\n [innerHTML]=\"\n isTransferred\n ? connectedConfirmationMessage\n : connectedConfirmationMessageIfAbandoned\n \"\n ></p>\n <p\n *ngIf=\"\n showLinkToMyDemandes &&\n (demandeIsClosedOnTransmit || isAbandoned)\n \"\n >\n Vous pouvez consulter votre demande en cliquant sur :\n <a href=\"/100002/demandes/search/MINE/TREATED\">\n Mes nouvelles demandes trait\u00E9es\n </a>\n .\n </p>\n <p\n *ngIf=\"\n showLinkToMyDemandes &&\n !demandeIsClosedOnTransmit &&\n !isAbandoned\n \"\n >\n Vous pouvez suivre l'avancement du traitement de votre\n demande en cliquant sur :\n <a href=\"/100002/demandes/search/MINE/IN_PROGRESS\">\n Mes demandes en cours de traitement\n </a>\n .\n </p>\n </div>\n </div>\n </div>\n\n <div\n class=\"col-md-12 list-unstyled d-md-flex p-0 mt-4\"\n *ngIf=\"!(isConnectedCyber | async)\"\n >\n <div class=\"ml-0 mr-md-auto mr-md-2 mb-2 mt-2\">\n <a\n *ngIf=\"showDownloadPdfRecapButton\"\n [href]=\"urlPdf\"\n id=\"telechargerBtn\"\n class=\"btn btn-secondary w-100\"\n title=\"T\u00E9l\u00E9charger le PDF\"\n >\n {{ downloadPdfRecapButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"mr-0 ml-md-auto mb-2 mt-2\"\n *ngIf=\"closeLink | async as link\"\n >\n <a\n [href]=\"link\"\n id=\"terminerBtn\"\n class=\"btn btn-primary w-100\"\n title=\"Terminer\"\n >\n {{ closeButtonText | fromDictionary }}\n </a>\n </div>\n </div>\n</div>\n\n<div class=\"container mt-5\" *ngIf=\"reference && isInProgress\">\n <div class=\"alert alert-info text-center mb-2\">\n <p class=\"h2\">Demande en cours</p>\n <dl>\n <dt class=\"font-weight-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemandeEnCours\" class=\"h4 d-block mt-3\">\n {{ reference }}\n </dd>\n </dl>\n </div>\n\n <div class=\"col-md-12 vd-highlight\">\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p>\n Vous pouvez reprendre votre demande en cliquant sur le lien\n ci-dessous\n </p>\n <p>\n <a [routerLink]=\"firstPageLink\">Reprendre ma demande</a>\n </p>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: FoehnIconInfoCircleComponent, selector: "foehn-icon-info-circle" }], directives: [{ type: i3__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1__namespace$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "fromDictionary": SdkDictionaryPipe, "async": i3__namespace.AsyncPipe } });
4326
+ GesdemConfirmationComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: GesdemConfirmationComponent, selector: "gesdem-confirmation", inputs: { reference: "reference", setPageTitle: "setPageTitle", hasEmailSent: "hasEmailSent", closeHref: "closeHref", showDownloadPdfRecapButton: "showDownloadPdfRecapButton", showLinkToMyDemandes: "showLinkToMyDemandes", demandeIsClosedOnTransmit: "demandeIsClosedOnTransmit", actionStatut: "actionStatut", connectedConfirmationMessage: "connectedConfirmationMessage", connectedConfirmationMessageIfAbandoned: "connectedConfirmationMessageIfAbandoned", downloadPdfRecapButtonText: "downloadPdfRecapButtonText", closeButtonText: "closeButtonText", baseUrlPdf: "baseUrlPdf" }, usesOnChanges: true, ngImport: i0__namespace, template: "<div class=\"container mt-5\" *ngIf=\"reference && !isInProgress\">\n <div\n class=\"alert text-center mb-2\"\n [ngClass]=\"isTransferred ? 'alert-success' : 'alert-danger'\"\n >\n <p class=\"h2\">\n {{\n isTransferred\n ? (successLabelDicoKey | fromDictionary)\n : ('gesdem-confirmation.abort-label' | fromDictionary)\n }}\n </p>\n <dl>\n <dt class=\"font-weight-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemande\" class=\"h4 d-block mt-3\">{{ reference }}</dd>\n </dl>\n <p *ngIf=\"hasEmailSent && !(isConnectedCyber | async)\">\n {{ 'gesdem-confirmation.mail-sent.label' | fromDictionary }}\n </p>\n </div>\n\n <span\n [innerHTML]=\"'gesdem-confirmation.extra-content' | fromDictionary\"\n ></span>\n\n <ng-content></ng-content>\n\n <div\n class=\"col-md-12 vd-highlight\"\n *ngIf=\"(isConnectedCyber | async) && hasConnectedContent()\"\n >\n <span class=\"sr-only\">\n Information suite \u00E0 la transmission de votre demande\n </span>\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p\n [innerHTML]=\"\n isTransferred\n ? connectedConfirmationMessage\n : connectedConfirmationMessageIfAbandoned\n \"\n ></p>\n <p\n *ngIf=\"\n showLinkToMyDemandes &&\n (demandeIsClosedOnTransmit || isAbandoned)\n \"\n >\n Vous pouvez consulter votre demande en cliquant sur :\n <a href=\"/100002/demandes/search/MINE/TREATED\">\n Mes nouvelles demandes trait\u00E9es\n </a>\n .\n </p>\n <p\n *ngIf=\"\n showLinkToMyDemandes &&\n !demandeIsClosedOnTransmit &&\n !isAbandoned\n \"\n >\n Vous pouvez suivre l'avancement du traitement de votre\n demande en cliquant sur :\n <a href=\"/100002/demandes/search/MINE/IN_PROGRESS\">\n Mes demandes en cours de traitement\n </a>\n .\n </p>\n </div>\n </div>\n </div>\n\n <div class=\"col-md-12 list-unstyled d-md-flex p-0 mt-4\">\n <div class=\"ml-0 mr-md-auto mr-md-2 mb-2 mt-2\">\n <a\n *ngIf=\"showDownloadPdfRecapButton\"\n [href]=\"urlPdf\"\n id=\"telechargerBtn\"\n class=\"btn btn-secondary w-100\"\n title=\"T\u00E9l\u00E9charger le PDF\"\n >\n {{ downloadPdfRecapButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"mr-0 ml-md-auto mb-2 mt-2\"\n *ngIf=\"!(isConnectedCyber | async) && closeLink | async as link\"\n >\n <a [href]=\"link\" id=\"terminerBtn\" class=\"btn btn-primary w-100\">\n {{ closeButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"mr-0 ml-md-auto mb-2 mt-2\"\n *ngIf=\"!!(isConnectedCyber | async)\"\n >\n <a\n href=\"/100018/logout\"\n id=\"logoutBtn\"\n class=\"btn btn-primary w-100\"\n >\n {{ 'gesdem-confirmation.logout-button' | fromDictionary }}\n </a>\n </div>\n </div>\n</div>\n\n<div class=\"container mt-5\" *ngIf=\"reference && isInProgress\">\n <div class=\"alert alert-info text-center mb-2\">\n <p class=\"h2\">Demande en cours</p>\n <dl>\n <dt class=\"font-weight-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemandeEnCours\" class=\"h4 d-block mt-3\">\n {{ reference }}\n </dd>\n </dl>\n </div>\n\n <div class=\"col-md-12 vd-highlight\">\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p>\n Vous pouvez reprendre votre demande en cliquant sur le lien\n ci-dessous\n </p>\n <p>\n <a [routerLink]=\"firstPageLink\">Reprendre ma demande</a>\n </p>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: FoehnIconInfoCircleComponent, selector: "foehn-icon-info-circle" }], directives: [{ type: i3__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1__namespace$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "fromDictionary": SdkDictionaryPipe, "async": i3__namespace.AsyncPipe } });
4295
4327
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: GesdemConfirmationComponent, decorators: [{
4296
4328
  type: i0.Component,
4297
4329
  args: [{
@@ -5735,6 +5767,7 @@
5735
5767
  this.sessionInfo = sessionInfo;
5736
5768
  this.foehnPageModalService = foehnPageModalService;
5737
5769
  this.sdkDictionaryService = sdkDictionaryService;
5770
+ this.neverConnected = false;
5738
5771
  this.supportAlertEnabled = true;
5739
5772
  this.userConnectedAsDisplayed = true;
5740
5773
  this.confirmLeavingAlert = {
@@ -9555,6 +9588,9 @@
9555
9588
  }]
9556
9589
  }] });
9557
9590
 
9591
+ var hasInputChanged$1 = function (change) { return !(!change ||
9592
+ !change.currentValue ||
9593
+ ObjectHelper.isEqual(change.previousValue, change.currentValue)); };
9558
9594
  var FoehnListComponent = /** @class */ (function () {
9559
9595
  function FoehnListComponent() {
9560
9596
  this.itemsPerPage = 10;
@@ -9580,9 +9616,9 @@
9580
9616
  var itemsPerPageChange = changes.itemsPerPage;
9581
9617
  var listChange = changes.list;
9582
9618
  var fixedPageCountChange = changes.fixedPageCount;
9583
- if (!this.hasInputChanged(itemsPerPageChange) &&
9584
- !this.hasInputChanged(listChange) &&
9585
- !this.hasInputChanged(fixedPageCountChange)) {
9619
+ if (!hasInputChanged$1(itemsPerPageChange) &&
9620
+ !hasInputChanged$1(listChange) &&
9621
+ !hasInputChanged$1(fixedPageCountChange)) {
9586
9622
  return;
9587
9623
  }
9588
9624
  this.buildFilteredList();
@@ -9636,6 +9672,10 @@
9636
9672
  : 0;
9637
9673
  };
9638
9674
  FoehnListComponent.prototype.buildFilteredList = function () {
9675
+ if (!this._list) {
9676
+ this.filteredList = [];
9677
+ return;
9678
+ }
9639
9679
  if (!!this.fixedPageCount) {
9640
9680
  this.filteredList = this._list;
9641
9681
  return;
@@ -9645,14 +9685,7 @@
9645
9685
  this.currentPage = 1;
9646
9686
  }
9647
9687
  var start = (this.currentPage - 1) * this.itemsPerPage;
9648
- this.filteredList = this._list
9649
- ? this._list.slice(start, start + this.itemsPerPage)
9650
- : [];
9651
- };
9652
- FoehnListComponent.prototype.hasInputChanged = function (change) {
9653
- return !(!change ||
9654
- !change.currentValue ||
9655
- change.previousValue === change.currentValue);
9688
+ this.filteredList = this._list.slice(start, start + this.itemsPerPage);
9656
9689
  };
9657
9690
  return FoehnListComponent;
9658
9691
  }());
@@ -9717,7 +9750,7 @@
9717
9750
 
9718
9751
  var hasInputChanged = function (change) { return !(!change ||
9719
9752
  !change.currentValue ||
9720
- change.previousValue === change.currentValue); };
9753
+ ObjectHelper.isEqual(change.previousValue, change.currentValue)); };
9721
9754
  var FoehnTableComponent = /** @class */ (function () {
9722
9755
  function FoehnTableComponent() {
9723
9756
  this.itemsPerPage = 10;
@@ -9742,9 +9775,11 @@
9742
9775
  var itemsPerPageChange = changes.itemsPerPage;
9743
9776
  var listChange = changes.list;
9744
9777
  var fixedPageCountChange = changes.fixedPageCount;
9778
+ var sortInputChange = changes.sort;
9745
9779
  if (!hasInputChanged(itemsPerPageChange) &&
9746
9780
  !hasInputChanged(listChange) &&
9747
- !hasInputChanged(fixedPageCountChange)) {
9781
+ !hasInputChanged(fixedPageCountChange) &&
9782
+ !hasInputChanged(sortInputChange)) {
9748
9783
  return;
9749
9784
  }
9750
9785
  this.buildFilteredList();
@@ -9808,6 +9843,10 @@
9808
9843
  });
9809
9844
  };
9810
9845
  FoehnTableComponent.prototype.buildFilteredList = function () {
9846
+ if (!this._list) {
9847
+ this.filteredList = [];
9848
+ return;
9849
+ }
9811
9850
  if (!!this.fixedPageCount) {
9812
9851
  this.filteredList = this._list;
9813
9852
  return;
@@ -9817,14 +9856,12 @@
9817
9856
  this.currentPage = 1;
9818
9857
  }
9819
9858
  var start = (this.currentPage - 1) * this.itemsPerPage;
9820
- this.filteredList = this._list
9821
- ? this._list.slice(start, start + this.itemsPerPage)
9822
- : [];
9859
+ this.filteredList = this._list.slice(start, start + this.itemsPerPage);
9823
9860
  };
9824
9861
  return FoehnTableComponent;
9825
9862
  }());
9826
9863
  FoehnTableComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: FoehnTableComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
9827
- FoehnTableComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnTableComponent, selector: "foehn-table", inputs: { itemsPerPage: "itemsPerPage", id: "id", previousLabel: "previousLabel", nextLabel: "nextLabel", totalElements: "totalElements", fixedPageCount: "fixedPageCount", columnsConfiguration: "columnsConfiguration", sort: "sort", trackByFn: "trackByFn", list: "list" }, outputs: { pageChange: "pageChange", sortChange: "sortChange" }, usesOnChanges: true, ngImport: i0__namespace, template: "<div class=\"row\" [id]=\"id\">\n <div class=\"col-12\">\n <h4 *ngIf=\"!!totalElements && totalElements === 1\">\n {{ 'foehn-table.totalElements.1' | fromDictionary }}\n </h4>\n <h4 *ngIf=\"!!totalElements && totalElements !== 1\">\n {{\n 'foehn-table.totalElements'\n | fromDictionary: { total: totalElements.toString() }\n }}\n </h4>\n </div>\n\n <div class=\"col-12 table-responsive\">\n <table class=\"table table-hover\">\n <thead class=\"vd-bg-pattern-bars-gray\">\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id\"\n >\n <ng-container *ngIf=\"!col.sortAttribute\">\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.sortAttribute\">\n <a\n href=\"#\"\n class=\"vd-text-thin\"\n (click)=\"\n $event.preventDefault();\n triggerSort(col.sortAttribute)\n \"\n [title]=\"\n 'Trier par ' +\n (col.columnLabelKey | fromDictionary)\n \"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n <ng-container\n *ngIf=\"\n sort.sortAttribute === col.sortAttribute\n \"\n >\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'ASC'\"\n >\n <foehn-icon-chevron-up></foehn-icon-chevron-up>\n </span>\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'DESC'\"\n >\n <foehn-icon-chevron-down></foehn-icon-chevron-down>\n </span>\n </ng-container>\n </a>\n </ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let item of filteredList;\n let index = index;\n trackBy: trackByFn\n \"\n >\n <td\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id + '-' + index\"\n >\n <ng-container *ngIf=\"!!col.isImportant\">\n <span\n *ngIf=\"col.isImportant(item)\"\n class=\"cell-vertical-align-middle\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"30\"\n height=\"30\"\n style=\"color: var(--red)\"\n fill=\"currentColor\"\n class=\"bi bi-exclamation\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.553.553 0 0 1-1.1 0L7.1 4.995z\"\n />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!col.routerLinkGetter\">\n <span\n [innerHTML]=\"col.valueGetter(item)\"\n class=\"cell-vertical-align-middle\"\n ></span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.routerLinkGetter\">\n <a\n [routerLink]=\"col.routerLinkGetter(item)\"\n queryParamsHandling=\"merge\"\n class=\"cell-vertical-align-middle\"\n >\n <span\n [innerHTML]=\"col.valueGetter(item)\"\n ></span>\n </a>\n </ng-container>\n </td>\n </tr>\n <tr *ngIf=\"!filteredList.length\">\n <td [colSpan]=\"columnsConfiguration.length\">\n <div class=\"w-100 text-center\">\n {{ 'foehn-table.totalElements.0' | fromDictionary }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n <div class=\"row d-flex justify-content-between p-1\">\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasPreviousPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"previousPage()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left></foehn-icon-chevron-left>\n {{ previousLabel }}\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage - 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasNextPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"nextPage()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel }}\n <foehn-icon-chevron-right></foehn-icon-chevron-right>\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage + 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n</div>\n", styles: [".btn-no-extra{padding:0;border:none;font-weight:400;-webkit-text-decoration-line:none;text-decoration-line:none}.vd-pagination__link-reset{background:none;border:none;font-weight:inherit;-webkit-text-decoration-line:none;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:#ffbf47}.cell-vertical-align-middle{vertical-align:middle}\n"], components: [{ type: FoehnIconChevronUpComponent, selector: "foehn-icon-chevron-up" }, { type: FoehnIconChevronDownComponent, selector: "foehn-icon-chevron-down" }, { type: FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { type: FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }], directives: [{ type: i3__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
9864
+ FoehnTableComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnTableComponent, selector: "foehn-table", inputs: { itemsPerPage: "itemsPerPage", id: "id", previousLabel: "previousLabel", nextLabel: "nextLabel", totalElements: "totalElements", fixedPageCount: "fixedPageCount", columnsConfiguration: "columnsConfiguration", sort: "sort", trackByFn: "trackByFn", list: "list" }, outputs: { pageChange: "pageChange", sortChange: "sortChange" }, usesOnChanges: true, ngImport: i0__namespace, template: "<div class=\"row\" [id]=\"id\">\n <div class=\"col-12\">\n <h4 *ngIf=\"!!totalElements && totalElements === 1\">\n {{ 'foehn-table.totalElements.1' | fromDictionary }}\n </h4>\n <h4 *ngIf=\"!!totalElements && totalElements !== 1\">\n {{\n 'foehn-table.totalElements'\n | fromDictionary: { total: totalElements.toString() }\n }}\n </h4>\n </div>\n\n <div class=\"col-12 table-responsive\">\n <table class=\"table table-hover\">\n <thead class=\"vd-bg-pattern-bars-gray\">\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id\"\n >\n <ng-container\n *ngIf=\"!filteredList.length || !col.sortAttribute\"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n </ng-container>\n\n <ng-container\n *ngIf=\"!!filteredList.length && !!col.sortAttribute\"\n >\n <a\n href=\"#\"\n class=\"vd-text-thin\"\n (click)=\"\n $event.preventDefault();\n triggerSort(col.sortAttribute)\n \"\n [title]=\"\n 'Trier par ' +\n (col.columnLabelKey | fromDictionary)\n \"\n >\n <span\n [innerHTML]=\"\n col.columnLabelKey | fromDictionary\n \"\n ></span>\n <ng-container\n *ngIf=\"\n sort.sortAttribute === col.sortAttribute\n \"\n >\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'ASC'\"\n >\n <foehn-icon-chevron-up></foehn-icon-chevron-up>\n </span>\n <span\n class=\"ml-3\"\n *ngIf=\"sort.sortDirection === 'DESC'\"\n >\n <foehn-icon-chevron-down></foehn-icon-chevron-down>\n </span>\n </ng-container>\n </a>\n </ng-container>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let item of filteredList;\n let index = index;\n trackBy: trackByFn\n \"\n >\n <td\n *ngFor=\"let col of columnsConfiguration\"\n [id]=\"col.id + '-' + index\"\n >\n <ng-container *ngIf=\"!!col.isImportant\">\n <span\n *ngIf=\"col.isImportant(item)\"\n class=\"cell-vertical-align-middle\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"30\"\n height=\"30\"\n style=\"color: var(--red)\"\n fill=\"currentColor\"\n class=\"bi bi-exclamation\"\n viewBox=\"0 0 16 16\"\n >\n <path\n d=\"M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.553.553 0 0 1-1.1 0L7.1 4.995z\"\n />\n </svg>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!col.routerLinkGetter\">\n <span\n [innerHTML]=\"col.valueGetter(item)\"\n class=\"cell-vertical-align-middle\"\n ></span>\n </ng-container>\n\n <ng-container *ngIf=\"!!col.routerLinkGetter\">\n <a\n [routerLink]=\"col.routerLinkGetter(item)\"\n queryParamsHandling=\"merge\"\n class=\"cell-vertical-align-middle\"\n >\n <span\n [innerHTML]=\"col.valueGetter(item)\"\n ></span>\n </a>\n </ng-container>\n </td>\n </tr>\n <tr *ngIf=\"!!columnsConfiguration && !filteredList.length\">\n <td [colSpan]=\"columnsConfiguration.length\">\n <div class=\"w-100 text-center\">\n {{ 'foehn-table.totalElements.0' | fromDictionary }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n <div class=\"row d-flex justify-content-between p-1\">\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasPreviousPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"previousPage()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left></foehn-icon-chevron-left>\n {{ previousLabel }}\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage - 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasNextPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"nextPage()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel }}\n <foehn-icon-chevron-right></foehn-icon-chevron-right>\n </span>\n <span class=\"sr-only\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage + 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n</div>\n", styles: [".btn-no-extra{padding:0;border:none;font-weight:400;-webkit-text-decoration-line:none;text-decoration-line:none}.vd-pagination__link-reset{background:none;border:none;font-weight:inherit;-webkit-text-decoration-line:none;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:#ffbf47}.cell-vertical-align-middle{vertical-align:middle}\n"], components: [{ type: FoehnIconChevronUpComponent, selector: "foehn-icon-chevron-up" }, { type: FoehnIconChevronDownComponent, selector: "foehn-icon-chevron-down" }, { type: FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { type: FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }], directives: [{ type: i3__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
9828
9865
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: FoehnTableComponent, decorators: [{
9829
9866
  type: i0.Component,
9830
9867
  args: [{
@@ -10632,6 +10669,7 @@
10632
10669
  _this.confirmModalService = confirmModalService;
10633
10670
  _this.dictionaryService = dictionaryService;
10634
10671
  _this.url = 'api/document';
10672
+ _this.shouldDisplayFileSavedConfirmation = true;
10635
10673
  _this.pendingUploadService = pendingUploadService;
10636
10674
  _this.multiUploadService = multiUploadService;
10637
10675
  return _this;
@@ -10648,7 +10686,7 @@
10648
10686
  // Only one call every 300ms to stop concurrent access
10649
10687
  operators.throttleTime(300),
10650
10688
  // Only one concurrent call at the time
10651
- operators.mergeMap(function (files) { return _this.multiUploadService.uploadDocuments(_this.url, _this.name, _this.label, files, _this.key, _this.multiple, _this.currentLanguage); }, 1))
10689
+ operators.mergeMap(function (files) { return _this.multiUploadService.uploadDocuments(_this.url, _this.name, _this.label, files, _this.key, _this.multiple, _this.currentLanguage, _this.shouldDisplayFileSavedConfirmation); }, 1))
10652
10690
  .subscribe(function (_a) {
10653
10691
  var documents = _a.documents, errors = _a.errors;
10654
10692
  _this.displayResultFromServer(documents, errors);
@@ -10754,7 +10792,7 @@
10754
10792
  // only when no error so isPristine is set to false for validation purpose
10755
10793
  this.markAsDirty();
10756
10794
  // Otherwise, we store files in pending storage
10757
- this.pendingUploadService.addPendingFiles(this.url, this.name, this.label, files, this.key, this.multiple);
10795
+ this.pendingUploadService.addPendingFiles(this.url, this.name, this.label, files, this.key, this.multiple, this.shouldDisplayFileSavedConfirmation);
10758
10796
  }
10759
10797
  };
10760
10798
  FoehnMultiUploadComponent.prototype.displayPendingUploadedErrorsFromServerByFormKey = function (errors, formKey) {
@@ -10810,7 +10848,7 @@
10810
10848
  return FoehnMultiUploadComponent;
10811
10849
  }(AbstractFoehnUploaderComponent));
10812
10850
  FoehnMultiUploadComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: FoehnMultiUploadComponent, deps: [{ token: MultiUploadService }, { token: PendingUploadService }, { token: ApplicationInfoService }, { token: FoehnConfirmModalService }, { token: SdkDictionaryService }], target: i0__namespace.ɵɵFactoryTarget.Component });
10813
- FoehnMultiUploadComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnMultiUploadComponent, selector: "foehn-multi-upload", inputs: { url: "url", reference: "reference" }, providers: [
10851
+ FoehnMultiUploadComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnMultiUploadComponent, selector: "foehn-multi-upload", inputs: { url: "url", reference: "reference", shouldDisplayFileSavedConfirmation: "shouldDisplayFileSavedConfirmation" }, providers: [
10814
10852
  {
10815
10853
  provide: FoehnInputComponent,
10816
10854
  useExisting: i0.forwardRef(function () { return FoehnMultiUploadComponent; }),
@@ -10835,6 +10873,8 @@
10835
10873
  type: i0.Input
10836
10874
  }], reference: [{
10837
10875
  type: i0.Input
10876
+ }], shouldDisplayFileSavedConfirmation: [{
10877
+ type: i0.Input
10838
10878
  }] } });
10839
10879
 
10840
10880
  var FoehnMultiUploadModule = /** @class */ (function () {
@@ -10881,13 +10921,14 @@
10881
10921
  this.uniqPrefix = new Date().getTime();
10882
10922
  this.uploaderHelper = new UploaderHelper(dictionaryService, applicationInfoService);
10883
10923
  }
10884
- BoMultiUploadService.prototype.uploadDocuments = function (url, formKey, label, files, key, isMultiple, language) {
10924
+ BoMultiUploadService.prototype.uploadDocuments = function (url, formKey, label, files, key, isMultiple, language, shouldDisplayFileSavedConfirmation) {
10885
10925
  var _this = this;
10886
10926
  var documents = files.map(function (file) { return _this.uploaderHelper.mapToDocumentReference(file, label, key, isMultiple, _this.uniqPrefix, _this.globalSequence++); });
10887
10927
  var formData = this.uploaderHelper.mapToFormData(documents, formKey, language);
10888
10928
  return this.httpClient.post(url, formData).pipe(operators.tap(function (result) {
10889
10929
  var successfulDocumentsCount = result.documents && result.documents.length;
10890
- if (successfulDocumentsCount) {
10930
+ if (successfulDocumentsCount &&
10931
+ shouldDisplayFileSavedConfirmation) {
10891
10932
  var message = successfulDocumentsCount + " fichier(s) sauvegard\u00E9(s) avec succ\u00E8s";
10892
10933
  _this.growlService.addWithType(GrowlType.SUCCESS, message);
10893
10934
  }
@@ -10932,6 +10973,7 @@
10932
10973
  _this.applicationInfoService = applicationInfoService;
10933
10974
  _this.confirmModalService = confirmModalService;
10934
10975
  _this.dictionaryService = dictionaryService;
10976
+ _this.shouldDisplayFileSavedConfirmation = true;
10935
10977
  _this.documentDeleted = new i0.EventEmitter();
10936
10978
  _this.boMultiUploadService = boMultiUploadService;
10937
10979
  return _this;
@@ -10945,7 +10987,7 @@
10945
10987
  // Only one call every 300ms to stop concurrent access
10946
10988
  operators.throttleTime(300),
10947
10989
  // Only one concurrent call at the time
10948
- operators.mergeMap(function (files) { return _this.boMultiUploadService.uploadDocuments(_this.uploadUrl, _this.name, _this.label, files, _this.key, _this.multiple, _this.currentLanguage); }, 1))
10990
+ operators.mergeMap(function (files) { return _this.boMultiUploadService.uploadDocuments(_this.uploadUrl, _this.name, _this.label, files, _this.key, _this.multiple, _this.currentLanguage, _this.shouldDisplayFileSavedConfirmation); }, 1))
10949
10991
  .subscribe(function (_a) {
10950
10992
  var documents = _a.documents, errors = _a.errors;
10951
10993
  _this.displayResultFromServer(documents, errors);
@@ -11055,7 +11097,7 @@
11055
11097
  return FoehnBoMultiUploadComponent;
11056
11098
  }(AbstractFoehnUploaderComponent));
11057
11099
  FoehnBoMultiUploadComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: FoehnBoMultiUploadComponent, deps: [{ token: BoMultiUploadService }, { token: ApplicationInfoService }, { token: FoehnConfirmModalService }, { token: SdkDictionaryService }], target: i0__namespace.ɵɵFactoryTarget.Component });
11058
- FoehnBoMultiUploadComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnBoMultiUploadComponent, selector: "foehn-bo-multi-upload", inputs: { uploadUrl: "uploadUrl", deleteUrl: "deleteUrl", downloadUrl: "downloadUrl" }, outputs: { documentDeleted: "documentDeleted" }, providers: [
11100
+ FoehnBoMultiUploadComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnBoMultiUploadComponent, selector: "foehn-bo-multi-upload", inputs: { uploadUrl: "uploadUrl", deleteUrl: "deleteUrl", downloadUrl: "downloadUrl", shouldDisplayFileSavedConfirmation: "shouldDisplayFileSavedConfirmation" }, outputs: { documentDeleted: "documentDeleted" }, providers: [
11059
11101
  {
11060
11102
  provide: FoehnInputComponent,
11061
11103
  useExisting: i0.forwardRef(function () { return FoehnBoMultiUploadComponent; }),
@@ -11082,6 +11124,8 @@
11082
11124
  type: i0.Input
11083
11125
  }], downloadUrl: [{
11084
11126
  type: i0.Input
11127
+ }], shouldDisplayFileSavedConfirmation: [{
11128
+ type: i0.Input
11085
11129
  }], documentDeleted: [{
11086
11130
  type: i0.Output
11087
11131
  }] } });
@@ -11166,6 +11210,7 @@
11166
11210
  _this.croppedPictureFilename = 'photo.png';
11167
11211
  _this.resizeToWidth = 300;
11168
11212
  _this.resizeToHeight = 0;
11213
+ _this.shouldDisplayFileSavedConfirmation = true;
11169
11214
  _this.loading = false;
11170
11215
  return _this;
11171
11216
  }
@@ -11208,7 +11253,7 @@
11208
11253
  this.markAsPristine();
11209
11254
  var photo = convertBase64UrlToFile(this.croppedPictureAsBase64Url, this.croppedPictureFilename);
11210
11255
  this.uploadService
11211
- .uploadDocuments(this.baseUrl, this.name, this.label, [photo], this.key, false, this.currentLanguage)
11256
+ .uploadDocuments(this.baseUrl, this.name, this.label, [photo], this.key, false, this.currentLanguage, this.shouldDisplayFileSavedConfirmation)
11212
11257
  .pipe(operators.filter(function (result) { return !!result; }))
11213
11258
  .subscribe(function (_a) {
11214
11259
  var documents = _a.documents, errors = _a.errors;
@@ -11259,7 +11304,7 @@
11259
11304
  return FoehnPictureUploadComponent;
11260
11305
  }(FoehnInputComponent));
11261
11306
  FoehnPictureUploadComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: FoehnPictureUploadComponent, deps: [{ token: GrowlBrokerService }, { token: MultiUploadService }, { token: SdkDictionaryService }], target: i0__namespace.ɵɵFactoryTarget.Component });
11262
- FoehnPictureUploadComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnPictureUploadComponent, selector: "foehn-picture-upload", inputs: { name: "name", key: "key", label: "label", baseUrl: "baseUrl", croppedPictureFilename: "croppedPictureFilename", resizeToWidth: "resizeToWidth", resizeToHeight: "resizeToHeight" }, providers: [
11307
+ FoehnPictureUploadComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: FoehnPictureUploadComponent, selector: "foehn-picture-upload", inputs: { name: "name", key: "key", label: "label", baseUrl: "baseUrl", croppedPictureFilename: "croppedPictureFilename", resizeToWidth: "resizeToWidth", resizeToHeight: "resizeToHeight", shouldDisplayFileSavedConfirmation: "shouldDisplayFileSavedConfirmation" }, providers: [
11263
11308
  {
11264
11309
  provide: FoehnInputComponent,
11265
11310
  useExisting: i0.forwardRef(function () { return FoehnPictureUploadComponent; }),
@@ -11293,6 +11338,8 @@
11293
11338
  type: i0.Input
11294
11339
  }], resizeToHeight: [{
11295
11340
  type: i0.Input
11341
+ }], shouldDisplayFileSavedConfirmation: [{
11342
+ type: i0.Input
11296
11343
  }] } });
11297
11344
 
11298
11345
  var FoehnPictureUploadModule = /** @class */ (function () {