@dsivd/prestations-ng 14.5.14-beta4 → 15.0.0-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 (36) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +2 -0
  3. package/bundles/dsivd-prestations-ng.umd.js +66 -80
  4. package/bundles/dsivd-prestations-ng.umd.js.map +1 -1
  5. package/dsivd-prestations-ng-v15.0.0-beta1.tgz +0 -0
  6. package/esm2015/foehn-list/foehn-list.component.js +13 -12
  7. package/esm2015/foehn-table/foehn-table.component.js +12 -7
  8. package/esm2015/foehn-table/tableSort.js +1 -1
  9. package/esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.js +4 -3
  10. package/esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.js +6 -3
  11. package/esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.js +7 -4
  12. package/esm2015/foehn-upload/foehn-multi-upload/multi-upload.service.js +4 -3
  13. package/esm2015/foehn-upload/foehn-multi-upload/pending-upload.service.js +4 -3
  14. package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.js +6 -3
  15. package/esm2015/foehn-upload/pending-upload.type.js +1 -1
  16. package/esm2015/gesdem-confirmation/gesdem-confirmation.component.js +2 -2
  17. package/esm2015/sdk-dictionary/default-dictionary.js +2 -1
  18. package/esm2015/sdk-epayment/sdk-epayment.component.js +10 -39
  19. package/esm2015/sdk-epayment/sdk-epayment.service.js +12 -7
  20. package/fesm2015/dsivd-prestations-ng.js +66 -75
  21. package/fesm2015/dsivd-prestations-ng.js.map +1 -1
  22. package/foehn-list/foehn-list.component.d.ts +0 -1
  23. package/foehn-table/tableSort.d.ts +1 -1
  24. package/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.d.ts +1 -1
  25. package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.d.ts +2 -1
  26. package/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.d.ts +2 -1
  27. package/foehn-upload/foehn-multi-upload/multi-upload.service.d.ts +1 -1
  28. package/foehn-upload/foehn-multi-upload/pending-upload.service.d.ts +1 -1
  29. package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +2 -1
  30. package/foehn-upload/pending-upload.type.d.ts +1 -0
  31. package/package.json +1 -1
  32. package/sdk-epayment/sdk-epayment.component.d.ts +3 -13
  33. package/sdk-epayment/sdk-epayment.service.d.ts +2 -5
  34. package/dsivd-prestations-ng-v14.5.14-beta4.tgz +0 -0
  35. package/esm2015/sdk-epayment/model/EPaymentRequest.js +0 -3
  36. package/sdk-epayment/model/EPaymentRequest.d.ts +0 -5
package/CHANGELOG.md CHANGED
@@ -26,6 +26,26 @@ A change is considered **breaking** if you have to change your code or update yo
26
26
 
27
27
  ---
28
28
 
29
+
30
+ ## [14.5.15]
31
+ ### Added
32
+
33
+ - [Autogenerated documentation](https://dsi-vd.github.io/prestations-ng/generateddoc)
34
+ - prestations-ng documentation generated automatically by `compodoc`
35
+
36
+ - [foehn-multi-upload.component.ts](projects/prestations-ng/src/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.ts)
37
+ - [foehn-bo-multi-upload.component.ts](projects/prestations-ng/src/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.ts)
38
+ - 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
39
+
40
+ - [gesdem-confirmation.component.html](projects/prestations-ng/src/gesdem-confirmation/gesdem-confirmation.component.html)
41
+ - `telechargerBtn` (Télécharger la demande (pdf)) is also shown to a connected user
42
+ - `logoutBtn` (Se déconnecter) is shown to a connected user instead of `terminerBtn` (Terminer)
43
+
44
+ ### Fixed
45
+
46
+ - [foehn-table.component.ts](projects/prestations-ng/src/foehn-table/foehn-table.component.ts)
47
+ - table content was not being refreshed when sorting column
48
+
29
49
  ## [14.5.14]
30
50
 
31
51
  ### Added
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`.
@@ -1867,6 +1867,7 @@
1867
1867
  'gesdem-confirmation.mail-sent.label': 'Vous recevrez un email de confirmation dans quelques instants.',
1868
1868
  'gesdem-confirmation.download-pdf-recap-button': 'Télécharger la demande (pdf)',
1869
1869
  'gesdem-confirmation.exit-button': 'Terminer',
1870
+ 'gesdem-confirmation.logout-button': 'Se déconnecter',
1870
1871
  'gesdem-confirmation.extra-content': ' ',
1871
1872
  'foehn-date-picker-button.icon-title': 'Afficher le calendrier',
1872
1873
  'foehn-date-picker-button.screen-reader.selected-date': 'Date sélectionnée :',
@@ -2932,7 +2933,7 @@
2932
2933
  });
2933
2934
  this.uploaderHelper = new UploaderHelper(dictionaryService, applicationInfoService);
2934
2935
  }
2935
- MultiUploadService.prototype.uploadDocuments = function (baseUrl, formKey, label, files, key, isMultiple, language) {
2936
+ MultiUploadService.prototype.uploadDocuments = function (baseUrl, formKey, label, files, key, isMultiple, language, shouldDisplayFileSavedConfirmation) {
2936
2937
  var _this = this;
2937
2938
  if (this.reference) {
2938
2939
  var documents = files.map(function (file) { return _this.uploaderHelper.mapToDocumentReference(file, label, key, isMultiple, _this.uniqPrefix, _this.globalSequence++); });
@@ -2942,7 +2943,8 @@
2942
2943
  .post(url, formData)
2943
2944
  .pipe(operators.tap(function (result) {
2944
2945
  var successfulDocumentsCount = result.documents && result.documents.length;
2945
- if (successfulDocumentsCount) {
2946
+ if (successfulDocumentsCount &&
2947
+ shouldDisplayFileSavedConfirmation) {
2946
2948
  var message = successfulDocumentsCount + " fichier(s) sauvegard\u00E9(s) avec succ\u00E8s";
2947
2949
  _this.growlService.addWithType(GrowlType.SUCCESS, message);
2948
2950
  }
@@ -3044,7 +3046,7 @@
3044
3046
  // Return true if at least one files for a given formKey exist
3045
3047
  return !!this.pendingFilesByFormKey.get(formKey).files.length;
3046
3048
  };
3047
- PendingUploadService.prototype.addPendingFiles = function (baseUrl, formKey, label, files, key, isMultiple) {
3049
+ PendingUploadService.prototype.addPendingFiles = function (baseUrl, formKey, label, files, key, isMultiple, shouldDisplayFileSavedConfirmation) {
3048
3050
  // Initialize pending files by formKey
3049
3051
  if (!this.hasPendingFiles(formKey)) {
3050
3052
  this.pendingFilesByFormKey.set(formKey, new PendingFiles());
@@ -3057,6 +3059,7 @@
3057
3059
  this.pendingFilesByFormKey.get(formKey).files = __spreadArray(__spreadArray([], __read(this.pendingFilesByFormKey.get(formKey).files)), __read(files));
3058
3060
  this.pendingFilesByFormKey.get(formKey).key = key;
3059
3061
  this.pendingFilesByFormKey.get(formKey).isMultiple = isMultiple;
3062
+ this.pendingFilesByFormKey.get(formKey).shouldDisplayFileSavedConfirmation = shouldDisplayFileSavedConfirmation;
3060
3063
  };
3061
3064
  PendingUploadService.prototype.removePendingFile = function (file, formKey) {
3062
3065
  if (this.hasPendingFiles(formKey)) {
@@ -3073,7 +3076,7 @@
3073
3076
  var mergedResponse = new DocumentsWithErrors();
3074
3077
  filesToUpload.forEach(function (pendingFiles, formKey) {
3075
3078
  _this.multiUploadService
3076
- .uploadDocuments(pendingFiles.url, formKey, pendingFiles.label, pendingFiles.files, pendingFiles.key, pendingFiles.isMultiple, form.language)
3079
+ .uploadDocuments(pendingFiles.url, formKey, pendingFiles.label, pendingFiles.files, pendingFiles.key, pendingFiles.isMultiple, form.language, pendingFiles.shouldDisplayFileSavedConfirmation)
3077
3080
  .subscribe(function (response) {
3078
3081
  // Merge all uploads response
3079
3082
  _this.mergePendingUploadedServerResult(mergedResponse, response);
@@ -4291,7 +4294,7 @@
4291
4294
  return GesdemConfirmationComponent;
4292
4295
  }());
4293
4296
  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 } });
4297
+ 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
4298
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: GesdemConfirmationComponent, decorators: [{
4296
4299
  type: i0.Component,
4297
4300
  args: [{
@@ -9555,6 +9558,9 @@
9555
9558
  }]
9556
9559
  }] });
9557
9560
 
9561
+ var hasInputChanged$1 = function (change) { return !(!change ||
9562
+ !change.currentValue ||
9563
+ ObjectHelper.isEqual(change.previousValue, change.currentValue)); };
9558
9564
  var FoehnListComponent = /** @class */ (function () {
9559
9565
  function FoehnListComponent() {
9560
9566
  this.itemsPerPage = 10;
@@ -9580,9 +9586,9 @@
9580
9586
  var itemsPerPageChange = changes.itemsPerPage;
9581
9587
  var listChange = changes.list;
9582
9588
  var fixedPageCountChange = changes.fixedPageCount;
9583
- if (!this.hasInputChanged(itemsPerPageChange) &&
9584
- !this.hasInputChanged(listChange) &&
9585
- !this.hasInputChanged(fixedPageCountChange)) {
9589
+ if (!hasInputChanged$1(itemsPerPageChange) &&
9590
+ !hasInputChanged$1(listChange) &&
9591
+ !hasInputChanged$1(fixedPageCountChange)) {
9586
9592
  return;
9587
9593
  }
9588
9594
  this.buildFilteredList();
@@ -9636,6 +9642,10 @@
9636
9642
  : 0;
9637
9643
  };
9638
9644
  FoehnListComponent.prototype.buildFilteredList = function () {
9645
+ if (!this._list) {
9646
+ this.filteredList = [];
9647
+ return;
9648
+ }
9639
9649
  if (!!this.fixedPageCount) {
9640
9650
  this.filteredList = this._list;
9641
9651
  return;
@@ -9645,14 +9655,7 @@
9645
9655
  this.currentPage = 1;
9646
9656
  }
9647
9657
  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);
9658
+ this.filteredList = this._list.slice(start, start + this.itemsPerPage);
9656
9659
  };
9657
9660
  return FoehnListComponent;
9658
9661
  }());
@@ -9717,7 +9720,7 @@
9717
9720
 
9718
9721
  var hasInputChanged = function (change) { return !(!change ||
9719
9722
  !change.currentValue ||
9720
- change.previousValue === change.currentValue); };
9723
+ ObjectHelper.isEqual(change.previousValue, change.currentValue)); };
9721
9724
  var FoehnTableComponent = /** @class */ (function () {
9722
9725
  function FoehnTableComponent() {
9723
9726
  this.itemsPerPage = 10;
@@ -9742,9 +9745,11 @@
9742
9745
  var itemsPerPageChange = changes.itemsPerPage;
9743
9746
  var listChange = changes.list;
9744
9747
  var fixedPageCountChange = changes.fixedPageCount;
9748
+ var sortInputChange = changes.sort;
9745
9749
  if (!hasInputChanged(itemsPerPageChange) &&
9746
9750
  !hasInputChanged(listChange) &&
9747
- !hasInputChanged(fixedPageCountChange)) {
9751
+ !hasInputChanged(fixedPageCountChange) &&
9752
+ !hasInputChanged(sortInputChange)) {
9748
9753
  return;
9749
9754
  }
9750
9755
  this.buildFilteredList();
@@ -9808,6 +9813,10 @@
9808
9813
  });
9809
9814
  };
9810
9815
  FoehnTableComponent.prototype.buildFilteredList = function () {
9816
+ if (!this._list) {
9817
+ this.filteredList = [];
9818
+ return;
9819
+ }
9811
9820
  if (!!this.fixedPageCount) {
9812
9821
  this.filteredList = this._list;
9813
9822
  return;
@@ -9817,14 +9826,12 @@
9817
9826
  this.currentPage = 1;
9818
9827
  }
9819
9828
  var start = (this.currentPage - 1) * this.itemsPerPage;
9820
- this.filteredList = this._list
9821
- ? this._list.slice(start, start + this.itemsPerPage)
9822
- : [];
9829
+ this.filteredList = this._list.slice(start, start + this.itemsPerPage);
9823
9830
  };
9824
9831
  return FoehnTableComponent;
9825
9832
  }());
9826
9833
  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 } });
9834
+ 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
9835
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: FoehnTableComponent, decorators: [{
9829
9836
  type: i0.Component,
9830
9837
  args: [{
@@ -10632,6 +10639,7 @@
10632
10639
  _this.confirmModalService = confirmModalService;
10633
10640
  _this.dictionaryService = dictionaryService;
10634
10641
  _this.url = 'api/document';
10642
+ _this.shouldDisplayFileSavedConfirmation = true;
10635
10643
  _this.pendingUploadService = pendingUploadService;
10636
10644
  _this.multiUploadService = multiUploadService;
10637
10645
  return _this;
@@ -10648,7 +10656,7 @@
10648
10656
  // Only one call every 300ms to stop concurrent access
10649
10657
  operators.throttleTime(300),
10650
10658
  // 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))
10659
+ 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
10660
  .subscribe(function (_a) {
10653
10661
  var documents = _a.documents, errors = _a.errors;
10654
10662
  _this.displayResultFromServer(documents, errors);
@@ -10754,7 +10762,7 @@
10754
10762
  // only when no error so isPristine is set to false for validation purpose
10755
10763
  this.markAsDirty();
10756
10764
  // Otherwise, we store files in pending storage
10757
- this.pendingUploadService.addPendingFiles(this.url, this.name, this.label, files, this.key, this.multiple);
10765
+ this.pendingUploadService.addPendingFiles(this.url, this.name, this.label, files, this.key, this.multiple, this.shouldDisplayFileSavedConfirmation);
10758
10766
  }
10759
10767
  };
10760
10768
  FoehnMultiUploadComponent.prototype.displayPendingUploadedErrorsFromServerByFormKey = function (errors, formKey) {
@@ -10810,7 +10818,7 @@
10810
10818
  return FoehnMultiUploadComponent;
10811
10819
  }(AbstractFoehnUploaderComponent));
10812
10820
  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: [
10821
+ 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
10822
  {
10815
10823
  provide: FoehnInputComponent,
10816
10824
  useExisting: i0.forwardRef(function () { return FoehnMultiUploadComponent; }),
@@ -10835,6 +10843,8 @@
10835
10843
  type: i0.Input
10836
10844
  }], reference: [{
10837
10845
  type: i0.Input
10846
+ }], shouldDisplayFileSavedConfirmation: [{
10847
+ type: i0.Input
10838
10848
  }] } });
10839
10849
 
10840
10850
  var FoehnMultiUploadModule = /** @class */ (function () {
@@ -10881,13 +10891,14 @@
10881
10891
  this.uniqPrefix = new Date().getTime();
10882
10892
  this.uploaderHelper = new UploaderHelper(dictionaryService, applicationInfoService);
10883
10893
  }
10884
- BoMultiUploadService.prototype.uploadDocuments = function (url, formKey, label, files, key, isMultiple, language) {
10894
+ BoMultiUploadService.prototype.uploadDocuments = function (url, formKey, label, files, key, isMultiple, language, shouldDisplayFileSavedConfirmation) {
10885
10895
  var _this = this;
10886
10896
  var documents = files.map(function (file) { return _this.uploaderHelper.mapToDocumentReference(file, label, key, isMultiple, _this.uniqPrefix, _this.globalSequence++); });
10887
10897
  var formData = this.uploaderHelper.mapToFormData(documents, formKey, language);
10888
10898
  return this.httpClient.post(url, formData).pipe(operators.tap(function (result) {
10889
10899
  var successfulDocumentsCount = result.documents && result.documents.length;
10890
- if (successfulDocumentsCount) {
10900
+ if (successfulDocumentsCount &&
10901
+ shouldDisplayFileSavedConfirmation) {
10891
10902
  var message = successfulDocumentsCount + " fichier(s) sauvegard\u00E9(s) avec succ\u00E8s";
10892
10903
  _this.growlService.addWithType(GrowlType.SUCCESS, message);
10893
10904
  }
@@ -10932,6 +10943,7 @@
10932
10943
  _this.applicationInfoService = applicationInfoService;
10933
10944
  _this.confirmModalService = confirmModalService;
10934
10945
  _this.dictionaryService = dictionaryService;
10946
+ _this.shouldDisplayFileSavedConfirmation = true;
10935
10947
  _this.documentDeleted = new i0.EventEmitter();
10936
10948
  _this.boMultiUploadService = boMultiUploadService;
10937
10949
  return _this;
@@ -10945,7 +10957,7 @@
10945
10957
  // Only one call every 300ms to stop concurrent access
10946
10958
  operators.throttleTime(300),
10947
10959
  // 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))
10960
+ 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
10961
  .subscribe(function (_a) {
10950
10962
  var documents = _a.documents, errors = _a.errors;
10951
10963
  _this.displayResultFromServer(documents, errors);
@@ -11055,7 +11067,7 @@
11055
11067
  return FoehnBoMultiUploadComponent;
11056
11068
  }(AbstractFoehnUploaderComponent));
11057
11069
  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: [
11070
+ 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
11071
  {
11060
11072
  provide: FoehnInputComponent,
11061
11073
  useExisting: i0.forwardRef(function () { return FoehnBoMultiUploadComponent; }),
@@ -11082,6 +11094,8 @@
11082
11094
  type: i0.Input
11083
11095
  }], downloadUrl: [{
11084
11096
  type: i0.Input
11097
+ }], shouldDisplayFileSavedConfirmation: [{
11098
+ type: i0.Input
11085
11099
  }], documentDeleted: [{
11086
11100
  type: i0.Output
11087
11101
  }] } });
@@ -11166,6 +11180,7 @@
11166
11180
  _this.croppedPictureFilename = 'photo.png';
11167
11181
  _this.resizeToWidth = 300;
11168
11182
  _this.resizeToHeight = 0;
11183
+ _this.shouldDisplayFileSavedConfirmation = true;
11169
11184
  _this.loading = false;
11170
11185
  return _this;
11171
11186
  }
@@ -11208,7 +11223,7 @@
11208
11223
  this.markAsPristine();
11209
11224
  var photo = convertBase64UrlToFile(this.croppedPictureAsBase64Url, this.croppedPictureFilename);
11210
11225
  this.uploadService
11211
- .uploadDocuments(this.baseUrl, this.name, this.label, [photo], this.key, false, this.currentLanguage)
11226
+ .uploadDocuments(this.baseUrl, this.name, this.label, [photo], this.key, false, this.currentLanguage, this.shouldDisplayFileSavedConfirmation)
11212
11227
  .pipe(operators.filter(function (result) { return !!result; }))
11213
11228
  .subscribe(function (_a) {
11214
11229
  var documents = _a.documents, errors = _a.errors;
@@ -11259,7 +11274,7 @@
11259
11274
  return FoehnPictureUploadComponent;
11260
11275
  }(FoehnInputComponent));
11261
11276
  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: [
11277
+ 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
11278
  {
11264
11279
  provide: FoehnInputComponent,
11265
11280
  useExisting: i0.forwardRef(function () { return FoehnPictureUploadComponent; }),
@@ -11293,6 +11308,8 @@
11293
11308
  type: i0.Input
11294
11309
  }], resizeToHeight: [{
11295
11310
  type: i0.Input
11311
+ }], shouldDisplayFileSavedConfirmation: [{
11312
+ type: i0.Input
11296
11313
  }] } });
11297
11314
 
11298
11315
  var FoehnPictureUploadModule = /** @class */ (function () {
@@ -11331,12 +11348,6 @@
11331
11348
  }]
11332
11349
  }] });
11333
11350
 
11334
- var EPaymentRequest = /** @class */ (function () {
11335
- function EPaymentRequest() {
11336
- }
11337
- return EPaymentRequest;
11338
- }());
11339
-
11340
11351
  var EPaymentService = /** @class */ (function () {
11341
11352
  function EPaymentService(http, growlService) {
11342
11353
  this.http = http;
@@ -11347,14 +11358,19 @@
11347
11358
  * en vue du passage sur la plateforme de paiement électronique.
11348
11359
  *
11349
11360
  * @param ref La référence de la demande en cours
11350
- * @param req Les paramètres de préparation
11351
11361
  * @param baseUrl L'url de base (optionnelle)
11352
- * @returns Les paramètres de paiement électronique à utiliser sur la plateforme pour ce paiement.
11362
+ * @returns la page de paiement sur laquelle rediriger l'utilisateur
11353
11363
  */
11354
- EPaymentService.prototype.createPendingPayment = function (ref, req, baseUrl) {
11364
+ EPaymentService.prototype.createPendingPayment = function (ref, baseUrl) {
11355
11365
  var _this = this;
11356
- var url = baseUrl + "epayment/prepare/" + ref;
11357
- return this.http.post(url, req).pipe(operators.catchError(function () { return _this.handleError(); }), operators.filter(function (value) { return !!value; }));
11366
+ return this.http
11367
+ .post(baseUrl + "epayment/prepare/" + ref, null, {
11368
+ responseType: 'text'
11369
+ })
11370
+ .pipe(operators.catchError(function (err) {
11371
+ _this.cancelPendingPayment(ref, baseUrl);
11372
+ throw new Error();
11373
+ }));
11358
11374
  };
11359
11375
  EPaymentService.prototype.cancelPendingPayment = function (ref, baseUrl) {
11360
11376
  var _this = this;
@@ -11416,20 +11432,14 @@
11416
11432
  * Déclenche le processus de paiement électronique. Le paiement est d'abord préparé avec GesDem, puis on navigue
11417
11433
  * vers la plateforme de paiement.
11418
11434
  *
11419
- * @param ref La référence de la demande en cours
11420
- * @param prenom Le prénom du payeur
11421
- * @param nom Le nom de famille du payeur
11422
- * @param adresse L'adresse postale du payeur
11435
+ * @param reference La référence de la demande en cours
11423
11436
  */
11424
- SdkEpaymentComponent.prototype.payNow = function (ref, prenom, nom, adresse) {
11425
- var _this = this;
11426
- var req = new EPaymentRequest();
11427
- req.firstName = prenom;
11428
- req.lastName = nom;
11429
- req.address = adresse;
11437
+ SdkEpaymentComponent.prototype.payNow = function (reference) {
11430
11438
  this.ePaymentService
11431
- .createPendingPayment(ref, req, this.baseUrl)
11432
- .subscribe(function (parameter) { return _this.jumpToPlatform(parameter); });
11439
+ .createPendingPayment(reference, this.baseUrl)
11440
+ .subscribe(function (redirectUrl) {
11441
+ window.location.href = redirectUrl;
11442
+ });
11433
11443
  };
11434
11444
  SdkEpaymentComponent.prototype.handleFailure = function () {
11435
11445
  var _this = this;
@@ -11447,31 +11457,10 @@
11447
11457
  });
11448
11458
  this.modalDisplayed = true;
11449
11459
  };
11450
- /**
11451
- * Prépare et soumet le formulaire HTML permettant de naviguer vers la plateforme de paiement électronique.
11452
- *
11453
- * @param param Objet retourné par GesDem contenant tous les paramètres nécessaires à la plateforme.
11454
- */
11455
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11456
- SdkEpaymentComponent.prototype.jumpToPlatform = function (param) {
11457
- var _this = this;
11458
- // Assembler les champs du formulaire à soumettre à la plateforme
11459
- Object.keys(param).forEach(function (key) {
11460
- var input = document.createElement('input');
11461
- input.type = 'hidden';
11462
- input.name = key.toUpperCase();
11463
- input.value = param[key];
11464
- _this.ePaymentForm.nativeElement.appendChild(input);
11465
- });
11466
- // Remplissage du formulaire
11467
- this.ePaymentForm.nativeElement.setAttribute('action', param.postFinanceUrl);
11468
- // Soumettre le formulaire
11469
- this.ePaymentForm.nativeElement.submit();
11470
- };
11471
11460
  return SdkEpaymentComponent;
11472
11461
  }());
11473
11462
  SdkEpaymentComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: SdkEpaymentComponent, deps: [{ token: EPaymentService }, { token: i1__namespace$1.ActivatedRoute }, { token: GesdemHandlerService }, { token: GesdemEventService }], target: i0__namespace.ɵɵFactoryTarget.Component });
11474
- SdkEpaymentComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: SdkEpaymentComponent, selector: "epayment-form", inputs: { baseUrl: "baseUrl" }, viewQueries: [{ propertyName: "ePaymentForm", first: true, predicate: ["ePaymentForm"], descendants: true, static: true }], ngImport: i0__namespace, template: "<foehn-modal\n [isModalVisible]=\"this.modalDisplayed\"\n [modalBodyText]=\"this.platformFailureMessage\"\n modalHeaderText=\"Le paiement n'a pu \u00EAtre effectu\u00E9\"\n modalFooterText=\"L'Administration Cantonale Vaudoise\"\n (click)=\"this.modalDisplayed = false\"\n></foehn-modal>\n<form #ePaymentForm ngNoForm method=\"post\" hidden></form>\n", styles: [""], components: [{ type: FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "modalFooterText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }] });
11463
+ SdkEpaymentComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: SdkEpaymentComponent, selector: "epayment-form", inputs: { baseUrl: "baseUrl" }, ngImport: i0__namespace, template: "<foehn-modal\n [isModalVisible]=\"this.modalDisplayed\"\n [modalBodyText]=\"this.platformFailureMessage\"\n modalHeaderText=\"Le paiement n'a pu \u00EAtre effectu\u00E9\"\n modalFooterText=\"L'Administration Cantonale Vaudoise\"\n (click)=\"this.modalDisplayed = false\"\n></foehn-modal>\n", styles: [""], components: [{ type: FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "modalFooterText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }] });
11475
11464
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0__namespace, type: SdkEpaymentComponent, decorators: [{
11476
11465
  type: i0.Component,
11477
11466
  args: [{
@@ -11480,10 +11469,7 @@
11480
11469
  templateUrl: './sdk-epayment.component.html',
11481
11470
  styleUrls: ['./sdk-epayment.component.css']
11482
11471
  }]
11483
- }], ctorParameters: function () { return [{ type: EPaymentService }, { type: i1__namespace$1.ActivatedRoute }, { type: GesdemHandlerService }, { type: GesdemEventService }]; }, propDecorators: { ePaymentForm: [{
11484
- type: i0.ViewChild,
11485
- args: ['ePaymentForm', { static: true }]
11486
- }], baseUrl: [{
11472
+ }], ctorParameters: function () { return [{ type: EPaymentService }, { type: i1__namespace$1.ActivatedRoute }, { type: GesdemHandlerService }, { type: GesdemEventService }]; }, propDecorators: { baseUrl: [{
11487
11473
  type: i0.Input
11488
11474
  }] } });
11489
11475