@dsivd/prestations-ng 18.2.4-beta.9 → 18.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/dsivd-prestations-ng-18.3.0-beta.1.tgz +0 -0
- package/fesm2022/dsivd-prestations-ng.mjs +74 -56
- package/fesm2022/dsivd-prestations-ng.mjs.map +1 -1
- package/foehn-form/foehn-form.component.d.ts +1 -1
- package/foehn-input/foehn-input.component.d.ts +1 -1
- package/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.d.ts +9 -4
- package/package.json +1 -1
- package/sdk-redirect/iam-expired-interceptor.service.d.ts +0 -3
- package/sdk-session-info/session-info.service.d.ts +0 -1
- package/dsivd-prestations-ng-18.2.4-beta.9.tgz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,30 @@
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [18.3.0] - should be aligned with prestations-be 18.3.x
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- [gesdem-action-recovery-login.component.ts](projects/prestations-ng/src/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.ts)
|
|
14
|
+
- Display a countdown to get a new OTP during action recovery (to handle backend rate limiter)
|
|
15
|
+
|
|
16
|
+
## [18.2.4]
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- [ApplicationInfo](projects/prestations-ng/src/sdk-appinfo/application-info.ts)
|
|
21
|
+
|
|
22
|
+
- fixed `getPortailBaseUrl` by adding a slash (`/`) at the end of url when missing in properties
|
|
23
|
+
|
|
24
|
+
### Updated
|
|
25
|
+
|
|
26
|
+
- [foehn-form.component.ts](projects/prestations-ng/src/foehn-form/foehn-form.component.ts)
|
|
27
|
+
|
|
28
|
+
- updated `focusFirst` method with optional parameter `scrollIntoView` (default is `true`)
|
|
29
|
+
|
|
30
|
+
- [foehn-input.component.ts](projects/prestations-ng/src/foehn-input/foehn-input.component.ts)
|
|
31
|
+
- updated `focus` method with optional parameter `scrollIntoView` (default is `true`)
|
|
32
|
+
|
|
9
33
|
## [18.2.1]
|
|
10
34
|
|
|
11
35
|
### Fixed
|
|
Binary file
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Optional, Inject, Injectable, EventEmitter, Input, HostBinding, Output, forwardRef, ViewChildren, ViewChild, Directive, Pipe, Component, ContentChildren,
|
|
2
|
+
import { Optional, Inject, Injectable, EventEmitter, Input, HostBinding, Output, forwardRef, ViewChildren, ViewChild, Directive, Pipe, Component, ContentChildren, HostListener, NgModule, inject, TemplateRef, ContentChild } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@angular/router';
|
|
4
4
|
import { ActivatedRoute, NavigationStart, RouterModule, NavigationEnd, RouterLink } from '@angular/router';
|
|
5
|
-
import { of, Subject, BehaviorSubject, combineLatest, throwError, switchMap as switchMap$1, forkJoin, tap as tap$1, concat, toArray, EMPTY, startWith, filter as filter$1, merge, withLatestFrom, debounceTime as debounceTime$1, map as map$1 } from 'rxjs';
|
|
6
|
-
import { map, shareReplay, filter, tap, debounceTime, catchError, switchMap,
|
|
5
|
+
import { of, Subject, BehaviorSubject, combineLatest, throwError, switchMap as switchMap$1, forkJoin, tap as tap$1, concat, toArray, EMPTY, startWith, filter as filter$1, merge, interval, withLatestFrom, debounceTime as debounceTime$1, map as map$1 } from 'rxjs';
|
|
6
|
+
import { map, shareReplay, filter, tap, debounceTime, catchError, switchMap, first, throttleTime, mergeMap, share, finalize, take, distinctUntilChanged } from 'rxjs/operators';
|
|
7
7
|
import * as i1 from '@angular/common/http';
|
|
8
|
-
import { HttpStatusCode,
|
|
8
|
+
import { HttpStatusCode, HttpResponseBase, HttpErrorResponse, HttpParams, HttpEventType, HttpResponse, HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi, HttpClient } from '@angular/common/http';
|
|
9
9
|
import * as i3 from '@angular/forms';
|
|
10
10
|
import { NgModel, NgForm, FormsModule } from '@angular/forms';
|
|
11
11
|
import * as i2 from '@angular/common';
|
|
@@ -36,7 +36,6 @@ class Breadcrumb {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
const SESSION_INFO_API_URL = 'api/sessionInfo/data';
|
|
39
|
-
const SESSION_INFO_RENEW_URL = '/sessioninfo/v2/me';
|
|
40
39
|
class SessionInfo {
|
|
41
40
|
constructor(http, neverConnected_ = false) {
|
|
42
41
|
this.http = http;
|
|
@@ -304,7 +303,7 @@ class ApplicationInfoService {
|
|
|
304
303
|
getPortailBaseUrl(appInfo) {
|
|
305
304
|
const baseUrl = appInfo.configuration?.portail?.baseUrl;
|
|
306
305
|
if (!!baseUrl) {
|
|
307
|
-
return baseUrl
|
|
306
|
+
return baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
|
|
308
307
|
}
|
|
309
308
|
switch (appInfo.environment) {
|
|
310
309
|
case 'CO':
|
|
@@ -885,35 +884,45 @@ class FoehnInputComponent {
|
|
|
885
884
|
this._errors = errors.filter(e => e.name === this.name);
|
|
886
885
|
}
|
|
887
886
|
}
|
|
888
|
-
focus() {
|
|
887
|
+
focus(scrollIntoView = true) {
|
|
889
888
|
let elementContainer;
|
|
890
889
|
if (this.inputElement && this.inputElement.nativeElement) {
|
|
891
890
|
elementContainer = document.getElementById(this.buildId('Container'));
|
|
892
|
-
|
|
893
|
-
|
|
891
|
+
if (scrollIntoView) {
|
|
892
|
+
// Scroll in view should be done on input container
|
|
893
|
+
ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
|
|
894
|
+
}
|
|
894
895
|
// Focus should be on the input itself
|
|
895
|
-
this.inputElement.nativeElement.focus(
|
|
896
|
+
this.inputElement.nativeElement.focus({
|
|
897
|
+
preventScroll: !scrollIntoView
|
|
898
|
+
});
|
|
896
899
|
}
|
|
897
900
|
else if (this.subComponents &&
|
|
898
901
|
this.getFirstInputComponentEnabled(this.subComponents)) {
|
|
899
902
|
const inputComponent = this.getFirstInputComponentEnabled(this.subComponents);
|
|
900
903
|
elementContainer = document.getElementById(inputComponent.buildId('Container'));
|
|
901
|
-
|
|
902
|
-
|
|
904
|
+
if (scrollIntoView) {
|
|
905
|
+
// Scroll in view should be done on input container
|
|
906
|
+
ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
|
|
907
|
+
}
|
|
903
908
|
// Focus should be on the input itself
|
|
904
|
-
inputComponent.inputElement.nativeElement.focus(
|
|
909
|
+
inputComponent.inputElement.nativeElement.focus({
|
|
910
|
+
preventScroll: !scrollIntoView
|
|
911
|
+
});
|
|
905
912
|
}
|
|
906
913
|
else {
|
|
907
914
|
// Case for component who do not have any '#entryComponent' in their html template (i.e. foehn-radio, foehn-checkbox,...)
|
|
908
915
|
elementContainer = document.getElementById(this.buildId('Container'));
|
|
909
|
-
|
|
910
|
-
|
|
916
|
+
if (scrollIntoView) {
|
|
917
|
+
// Scroll in view should be done on input container
|
|
918
|
+
ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
|
|
919
|
+
}
|
|
911
920
|
const elementNodeListOf = elementContainer.querySelectorAll(`input[id^="${this.name}"]`);
|
|
912
921
|
if (elementNodeListOf && elementNodeListOf.length > 0) {
|
|
913
922
|
const inputElement = this.findFirstHtmlInputElementEnabled(elementNodeListOf);
|
|
914
923
|
if (inputElement) {
|
|
915
924
|
// Focus should be on the input itself
|
|
916
|
-
inputElement.focus();
|
|
925
|
+
inputElement.focus({ preventScroll: !scrollIntoView });
|
|
917
926
|
}
|
|
918
927
|
}
|
|
919
928
|
}
|
|
@@ -1244,6 +1253,10 @@ const DEFAULT_DICTIONARY = {
|
|
|
1244
1253
|
'gesdem-confirmation.resume-my-demand.label': 'Vous pouvez reprendre votre demande en cliquant sur le lien ci-dessous',
|
|
1245
1254
|
'gesdem-confirmation.resume-my-demand.button': 'Reprendre ma demande',
|
|
1246
1255
|
'gesdem.download-pdf.button.title': 'Télécharger le PDF',
|
|
1256
|
+
'gesdem-action-recovery-login.request-now-code.label': 'Pour obtenir un nouveau code, vous devez recliquer sur le ' +
|
|
1257
|
+
'<a href="{redirectTarget}">lien</a> de reprise de la demande.\n',
|
|
1258
|
+
'gesdem-action-recovery-login.rate-limited.label': "Merci d'attendre {rateLimitCounter} seconde{plural} " +
|
|
1259
|
+
'pour demander un nouveau code.',
|
|
1247
1260
|
'gesdem-action-recovery-login.save.label': 'Les données de votre demande enregistrée le {date} ont été chargées.',
|
|
1248
1261
|
'gesdem-action-recovery-login.invalid-otp.label': "Le mot de passe saisi n'est pas valide",
|
|
1249
1262
|
'gesdem-action-recovery-login.password-generation-failed.label': 'Impossible de générer un mot de passe, veuillez réessayer plus tard.',
|
|
@@ -1400,7 +1413,7 @@ const DEFAULT_DICTIONARY = {
|
|
|
1400
1413
|
'gesdem-error.title.error': 'Erreur rencontrée',
|
|
1401
1414
|
'gesdem-error.title.recovery': 'Reprise de la demande',
|
|
1402
1415
|
'gesdem-error.text.wrong-etape-requested': 'La demande {reference} ne peut plus être modifiée via ce formulaire',
|
|
1403
|
-
'gesdem-error.text.demande-not-found': '
|
|
1416
|
+
'gesdem-error.text.demande-not-found': 'Les conditions préalables pour la reprise de cette demande ne sont pas remplies',
|
|
1404
1417
|
'gesdem-error.text.has-reference': 'Vous pouvez essayer de reprendre votre demande en cliquant sur le lien ci-dessous',
|
|
1405
1418
|
'gesdem-error.link.has-reference': 'Reprendre ma demande',
|
|
1406
1419
|
'gesdem-error.text.has-no-reference': 'Vous pouvez recommencer une demande en cliquant sur le lien ci-dessous',
|
|
@@ -1822,14 +1835,14 @@ class FoehnFormComponent {
|
|
|
1822
1835
|
}
|
|
1823
1836
|
}
|
|
1824
1837
|
}
|
|
1825
|
-
focusFirst() {
|
|
1838
|
+
focusFirst(scrollIntoView = true) {
|
|
1826
1839
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1827
1840
|
const allComponents = this.getAllComponents().filter(value => !value.disabled &&
|
|
1828
1841
|
value.type !== 'hidden' &&
|
|
1829
1842
|
!value.hidden &&
|
|
1830
1843
|
!value.subComponents?.length);
|
|
1831
1844
|
if (allComponents && allComponents.length > 0) {
|
|
1832
|
-
allComponents[0].focus();
|
|
1845
|
+
allComponents[0].focus(scrollIntoView);
|
|
1833
1846
|
}
|
|
1834
1847
|
}
|
|
1835
1848
|
focusErrorSummary() {
|
|
@@ -1911,8 +1924,6 @@ const isRedirectionToLogin = (event) => {
|
|
|
1911
1924
|
};
|
|
1912
1925
|
class IamExpiredInterceptorService {
|
|
1913
1926
|
constructor() {
|
|
1914
|
-
this.http = inject(HttpClient);
|
|
1915
|
-
this.sessionInfoService = inject(SessionInfo);
|
|
1916
1927
|
this._isIamSessionExpired = new BehaviorSubject(false);
|
|
1917
1928
|
}
|
|
1918
1929
|
get isIamSessionExpired() {
|
|
@@ -1922,14 +1933,7 @@ class IamExpiredInterceptorService {
|
|
|
1922
1933
|
this._isIamSessionExpired.next(true);
|
|
1923
1934
|
}
|
|
1924
1935
|
intercept(req, next) {
|
|
1925
|
-
|
|
1926
|
-
if (req.url.includes(SESSION_INFO_RENEW_URL) ||
|
|
1927
|
-
req.url.includes(SESSION_INFO_API_URL)) {
|
|
1928
|
-
return next
|
|
1929
|
-
.handle(req)
|
|
1930
|
-
.pipe(catchError(this.handleError.bind(this)));
|
|
1931
|
-
}
|
|
1932
|
-
return this.getRenewIamSessionIfConnected().pipe(switchMap(() => next.handle(req).pipe(map(event => {
|
|
1936
|
+
return next.handle(req).pipe(map(event => {
|
|
1933
1937
|
if (event instanceof HttpResponseBase) {
|
|
1934
1938
|
if (hasIamExpiredHeader(event) ||
|
|
1935
1939
|
isRedirectionToLogin(event)) {
|
|
@@ -1937,17 +1941,7 @@ class IamExpiredInterceptorService {
|
|
|
1937
1941
|
}
|
|
1938
1942
|
}
|
|
1939
1943
|
return event;
|
|
1940
|
-
}), catchError(this.handleError.bind(this)))
|
|
1941
|
-
}
|
|
1942
|
-
getRenewIamSessionIfConnected() {
|
|
1943
|
-
// call session info through RP IAM (prestations.vd.ch) if user is connected
|
|
1944
|
-
// this renews the session since it is a "secure" endpoint
|
|
1945
|
-
// use OPTIONS to avoid extra load on session info
|
|
1946
|
-
const isUserConnected = this.sessionInfoService.data.pipe(map(sessionInfo => !!sessionInfo?.context), catchError(() => of(null)));
|
|
1947
|
-
const renewIamSession = this.http
|
|
1948
|
-
.options(SESSION_INFO_RENEW_URL)
|
|
1949
|
-
.pipe(catchError(() => of(null)));
|
|
1950
|
-
return isUserConnected.pipe(take(1), switchMap(isConnected => (isConnected ? renewIamSession : of(null))));
|
|
1944
|
+
}), catchError(this.handleError.bind(this)));
|
|
1951
1945
|
}
|
|
1952
1946
|
handleError(err) {
|
|
1953
1947
|
if (err instanceof HttpErrorResponse) {
|
|
@@ -5677,12 +5671,12 @@ class GesdemActionRecoveryLoginComponent {
|
|
|
5677
5671
|
this.router = router;
|
|
5678
5672
|
this.route = route;
|
|
5679
5673
|
this.eventsLoggerService = eventsLoggerService;
|
|
5680
|
-
this.
|
|
5681
|
-
this.
|
|
5674
|
+
this.demandeNotFound = false;
|
|
5675
|
+
this.rateLimited = false;
|
|
5676
|
+
this.rateLimitCounter = 0;
|
|
5682
5677
|
}
|
|
5683
5678
|
ngOnInit() {
|
|
5684
5679
|
this.otpRecipient = null;
|
|
5685
|
-
this.missingRecoveryInfos = false;
|
|
5686
5680
|
this.applicationInfoService.currentEtapeInfo
|
|
5687
5681
|
.pipe(tap(currentEtape => {
|
|
5688
5682
|
if (currentEtape.reprisePossible) {
|
|
@@ -5708,6 +5702,9 @@ class GesdemActionRecoveryLoginComponent {
|
|
|
5708
5702
|
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
5709
5703
|
.subscribe();
|
|
5710
5704
|
}
|
|
5705
|
+
ngOnDestroy() {
|
|
5706
|
+
this.rateLimitCounterSub?.unsubscribe();
|
|
5707
|
+
}
|
|
5711
5708
|
validateOtp() {
|
|
5712
5709
|
this.eventsLoggerService.addEvent(SdkEventType.RECOVERY_LOGIN_STARTED);
|
|
5713
5710
|
if (!this.route.snapshot.queryParams.reCaptchaByPassUUID &&
|
|
@@ -5773,35 +5770,56 @@ class GesdemActionRecoveryLoginComponent {
|
|
|
5773
5770
|
}
|
|
5774
5771
|
});
|
|
5775
5772
|
}
|
|
5773
|
+
getPluralMarker(count) {
|
|
5774
|
+
return this.dictionaryService.getPluralMarkerSync(count);
|
|
5775
|
+
}
|
|
5776
5776
|
startRecovery() {
|
|
5777
|
+
this.rateLimited = false;
|
|
5778
|
+
this.demandeNotFound = false;
|
|
5777
5779
|
this.recoveryService
|
|
5778
5780
|
.startRecovery(this.reference)
|
|
5779
5781
|
.pipe(catchError((response) => {
|
|
5780
5782
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5781
5783
|
const { error, status } = response;
|
|
5782
|
-
this.
|
|
5784
|
+
this.rateLimited = status === 429;
|
|
5785
|
+
if (this.rateLimited) {
|
|
5786
|
+
this.startRateLimitCounter();
|
|
5787
|
+
return EMPTY;
|
|
5788
|
+
}
|
|
5789
|
+
this.demandeNotFound =
|
|
5783
5790
|
status === 404 &&
|
|
5784
5791
|
error &&
|
|
5785
|
-
JSON.parse(error).code ===
|
|
5786
|
-
this.
|
|
5787
|
-
|
|
5788
|
-
error &&
|
|
5789
|
-
JSON.parse(error).code === 'ACTION_ALREADY_TRANSFERRED';
|
|
5790
|
-
if (!this.missingRecoveryInfos &&
|
|
5791
|
-
!this.alreadyTransferred) {
|
|
5792
|
-
this.growlService.addWithType(GrowlType.DANGER, this.dictionaryService.getKeySync('gesdem-action-recovery-login.password-generation-failed.label'));
|
|
5792
|
+
JSON.parse(error).code === DEMANDE_NOT_FOUND;
|
|
5793
|
+
if (this.demandeNotFound) {
|
|
5794
|
+
return EMPTY;
|
|
5793
5795
|
}
|
|
5796
|
+
this.growlService.addWithType(GrowlType.DANGER, this.dictionaryService.getKeySync('gesdem-action-recovery-login.password-generation-failed.label'));
|
|
5794
5797
|
return throwError(() => true);
|
|
5795
5798
|
}))
|
|
5796
5799
|
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
5797
|
-
.subscribe(otpRecipient =>
|
|
5800
|
+
.subscribe(otpRecipient => {
|
|
5801
|
+
this.otpRecipient = otpRecipient;
|
|
5802
|
+
this.startRateLimitCounter();
|
|
5803
|
+
});
|
|
5804
|
+
}
|
|
5805
|
+
startRateLimitCounter() {
|
|
5806
|
+
this.rateLimitCounter = 30;
|
|
5807
|
+
const rateLimitCounterSub = interval(1000)
|
|
5808
|
+
.pipe(take(30))
|
|
5809
|
+
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
5810
|
+
.subscribe(() => {
|
|
5811
|
+
this.rateLimitCounter--;
|
|
5812
|
+
if (this.rateLimitCounter === 0) {
|
|
5813
|
+
rateLimitCounterSub?.unsubscribe();
|
|
5814
|
+
}
|
|
5815
|
+
});
|
|
5798
5816
|
}
|
|
5799
5817
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: GesdemActionRecoveryLoginComponent, deps: [{ token: GesdemActionRecoveryService }, { token: GrowlBrokerService }, { token: FoehnConfirmModalService }, { token: ValidationHandlerService }, { token: ApplicationInfoService }, { token: GesdemHandlerService }, { token: SdkDictionaryService }, { token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: SdkEventsLoggerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5800
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
5818
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: GesdemActionRecoveryLoginComponent, isStandalone: false, selector: "gesdem-action-recovery-login", inputs: { reference: "reference", redirectTarget: "redirectTarget" }, viewQueries: [{ propertyName: "loginForm", first: true, predicate: FoehnFormComponent, descendants: true }, { propertyName: "recaptchaComponent", first: true, predicate: SdkRecaptchaComponent, descendants: true }], ngImport: i0, template: "<div class=\"container mt-5\">\n <div\n class=\"alert alert-danger\"\n *ngIf=\"demandeNotFound\"\n [innerHTML]=\"'gesdem-error.text.demande-not-found' | fromDictionary\"\n ></div>\n\n <div class=\"alert alert-danger\" *ngIf=\"rateLimited\">\n @if (rateLimitCounter > 0) {\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-login.rate-limited.label'\n | fromDictionary\n : {\n rateLimitCounter:\n rateLimitCounter?.toString(),\n plural: getPluralMarker(rateLimitCounter)\n }\n \"\n ></span>\n } @else {\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-login.request-now-code.label'\n | fromDictionary: { redirectTarget: redirectTarget }\n \"\n ></span>\n }\n </div>\n\n <foehn-form [shouldDisplayAlertSummary]=\"false\" *ngIf=\"otpRecipient\">\n <div class=\"row\">\n <div class=\"col-md-8\">\n <foehn-input-text\n [label]=\"\n 'Veuillez saisir le code envoy\u00E9 par SMS au num\u00E9ro ' +\n otpRecipient\n \"\n [(model)]=\"otp\"\n name=\"otp\"\n [required]=\"true\"\n ></foehn-input-text>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-md-8\">\n @if (rateLimitCounter > 0) {\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-login.rate-limited.label'\n | fromDictionary\n : {\n rateLimitCounter:\n rateLimitCounter?.toString(),\n plural: getPluralMarker(\n rateLimitCounter\n )\n }\n \"\n ></span>\n } @else {\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-login.request-now-code.label'\n | fromDictionary\n : { redirectTarget: redirectTarget }\n \"\n ></span>\n }\n </div>\n </div>\n\n <br />\n\n <div class=\"row\">\n <div class=\"col-md-8\">\n <captcha></captcha>\n\n <button\n id=\"nextButton\"\n type=\"submit\"\n class=\"btn btn-dark float-end\"\n (click)=\"validateOtp()\"\n >\n Suivant\n </button>\n </div>\n </div>\n </foehn-form>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnInputTextComponent, selector: "foehn-input-text", inputs: ["numberOnly"] }, { kind: "component", type: FoehnFormComponent, selector: "foehn-form", inputs: ["shouldDisplayAlertSummary"] }, { kind: "component", type: SdkRecaptchaComponent, selector: "captcha" }, { kind: "pipe", type: SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
5801
5819
|
}
|
|
5802
5820
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: GesdemActionRecoveryLoginComponent, decorators: [{
|
|
5803
5821
|
type: Component,
|
|
5804
|
-
args: [{ selector: 'gesdem-action-recovery-login', standalone: false, template: "<div class=\"container mt-5\">\n <div
|
|
5822
|
+
args: [{ selector: 'gesdem-action-recovery-login', standalone: false, template: "<div class=\"container mt-5\">\n <div\n class=\"alert alert-danger\"\n *ngIf=\"demandeNotFound\"\n [innerHTML]=\"'gesdem-error.text.demande-not-found' | fromDictionary\"\n ></div>\n\n <div class=\"alert alert-danger\" *ngIf=\"rateLimited\">\n @if (rateLimitCounter > 0) {\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-login.rate-limited.label'\n | fromDictionary\n : {\n rateLimitCounter:\n rateLimitCounter?.toString(),\n plural: getPluralMarker(rateLimitCounter)\n }\n \"\n ></span>\n } @else {\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-login.request-now-code.label'\n | fromDictionary: { redirectTarget: redirectTarget }\n \"\n ></span>\n }\n </div>\n\n <foehn-form [shouldDisplayAlertSummary]=\"false\" *ngIf=\"otpRecipient\">\n <div class=\"row\">\n <div class=\"col-md-8\">\n <foehn-input-text\n [label]=\"\n 'Veuillez saisir le code envoy\u00E9 par SMS au num\u00E9ro ' +\n otpRecipient\n \"\n [(model)]=\"otp\"\n name=\"otp\"\n [required]=\"true\"\n ></foehn-input-text>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-md-8\">\n @if (rateLimitCounter > 0) {\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-login.rate-limited.label'\n | fromDictionary\n : {\n rateLimitCounter:\n rateLimitCounter?.toString(),\n plural: getPluralMarker(\n rateLimitCounter\n )\n }\n \"\n ></span>\n } @else {\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-login.request-now-code.label'\n | fromDictionary\n : { redirectTarget: redirectTarget }\n \"\n ></span>\n }\n </div>\n </div>\n\n <br />\n\n <div class=\"row\">\n <div class=\"col-md-8\">\n <captcha></captcha>\n\n <button\n id=\"nextButton\"\n type=\"submit\"\n class=\"btn btn-dark float-end\"\n (click)=\"validateOtp()\"\n >\n Suivant\n </button>\n </div>\n </div>\n </foehn-form>\n</div>\n" }]
|
|
5805
5823
|
}], ctorParameters: () => [{ type: GesdemActionRecoveryService }, { type: GrowlBrokerService }, { type: FoehnConfirmModalService }, { type: ValidationHandlerService }, { type: ApplicationInfoService }, { type: GesdemHandlerService }, { type: SdkDictionaryService }, { type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: SdkEventsLoggerService }], propDecorators: { reference: [{
|
|
5806
5824
|
type: Input
|
|
5807
5825
|
}], redirectTarget: [{
|
|
@@ -16878,5 +16896,5 @@ class SdkLog {
|
|
|
16878
16896
|
* Generated bundle index. Do not edit.
|
|
16879
16897
|
*/
|
|
16880
16898
|
|
|
16881
|
-
export { APP_INFO_API_URL, AbstractFoehnUploaderComponent, AbstractListDetailPageComponent, AbstractMenuPageComponent, AbstractPageComponent, AbstractPageFromMenuComponent, ActionStatut, Address, AddressTypeLight, ApplicationInfo, ApplicationInfoService, BAD_PARAMS_HELP_TEXT, BoDocumentError, BoDocumentsWithErrors, BoMultiUploadService, Breadcrumb, BreadcrumbEventService, BreadcrumbItem, CAPTCHA_ERROR_NAME, CURRENCY_REGEXP, Calendar, Canton, Captcha, ComponentError, Configuration, Country, CurrencyHelper, CurrentWeek, DECIMALS_SEPARATOR, DEFAULT_INTERNATIONAL_AND_NO_SWISS, DEFAULT_INTERNATIONAL_AND_NO_SWISS_MOBILE, DEFAULT_INTERNATIONAL_AND_NO_SWISS_PHONE, DEFAULT_INTERNATIONAL_HELP_TEXT, DEFAULT_PREFIX, DEFAULT_SWISS_HELP_TEXT, DEFAULT_SWISS_MOBILE_PHONE_HELP_TEXT, DEFAULT_SWISS_PHONE_HELP_TEXT, DICTIONARY_BASE_URL, DateHelper, DatePickerHelper, DatePickerNavigationHelper, DayMonth, DaySlots, DemandeExpirationService, DemandeHelper, DisplayCurrencyPipe, DisplayDatePipe, District, Document, DocumentError, DocumentReference, DocumentReferenceWithFile, DocumentsWithErrors, DropdownMenuGroup, DropdownMenuItem, EPaymentService, EtapeInfo, FEEDBACK_USAGERS_LOCAL_STORAGE_PREFIX, FORM_SUPPORT_CYBER_TITLE_FALLBACK, FocusedDay, FoehnAbbrComponent, FoehnAddressModule, FoehnAgendaComponent, FoehnAgendaModule, FoehnAgendaNavigationComponent, FoehnAgendaTimeslotPanelComponent, FoehnAutocompleteComponent, FoehnAutocompleteModule, FoehnBoMultiUploadComponent, FoehnBoMultiUploadModule, FoehnBooleanCheckboxComponent, FoehnBooleanModule, FoehnBooleanRadioComponent, FoehnBreadcrumbComponent, FoehnBreadcrumbModule, FoehnCheckableGroupComponent, FoehnCheckablesModule, FoehnCheckboxComponent, FoehnConfirmModalComponent, FoehnConfirmModalContent, FoehnConfirmModalModule, FoehnConfirmModalService, FoehnDateComponent, FoehnDatePickerButtonComponent, FoehnDatePickerButtonModule, FoehnDatePickerComponent, FoehnDatePickerModule, FoehnDateTimeComponent, FoehnDecisionElectroniqueComponent, FoehnDecisionElectroniqueModule, FoehnDisplayAddressComponent, FoehnDropdownMenuComponent, FoehnDropdownMenuModule, FoehnErrorPillComponent, FoehnFeedbackNotificationComponent, FoehnFeedbackNotificationModule, FoehnFormComponent, FoehnFormModule, FoehnHeaderComponent, FoehnHeaderModule, FoehnHelpModalComponent, FoehnHelpModalModule, FoehnIconCalendarComponent, FoehnIconCheckComponent, FoehnIconCheckSquareOComponent, FoehnIconChevronDownComponent, FoehnIconChevronLeftComponent, FoehnIconChevronRightComponent, FoehnIconChevronUpComponent, FoehnIconClockComponent, FoehnIconCommentDotsComponent, FoehnIconEditComponent, FoehnIconExternalLinkAltComponent, FoehnIconFilePdfComponent, FoehnIconInfoCircleComponent, FoehnIconLockComponent, FoehnIconMapMarkerComponent, FoehnIconMinusCircleComponent, FoehnIconPencilComponent, FoehnIconPlusCircleComponent, FoehnIconPlusSquareComponent, FoehnIconSearchComponent, FoehnIconTimesComponent, FoehnIconTrashAltComponent, FoehnIconUnlockAltComponent, FoehnIconUserComponent, FoehnIconsModule, FoehnInputAddressComponent, FoehnInputComponent, FoehnInputEmailComponent, FoehnInputForeignLocalityComponent, FoehnInputForeignStreetComponent, FoehnInputHiddenComponent, FoehnInputModule, FoehnInputNav13Component, FoehnInputNav13Module, FoehnInputNumberComponent, FoehnInputPasswordComponent, FoehnInputPhoneComponent, FoehnInputPrefixedTextComponent, FoehnInputStringComponent, FoehnInputTextComponent, FoehnInputTextareaComponent, FoehnListComponent, FoehnListItem, FoehnListModule, FoehnListSummaryComponent, FoehnMenuItemComponent, FoehnMenuItemTransmitComponent, FoehnMenuPrestationModule, FoehnMiscModule, FoehnModalComponent, FoehnModalModule, FoehnMultiUploadComponent, FoehnMultiUploadModule, FoehnMultiselectAutocompleteComponent, FoehnMultiselectAutocompleteModule, FoehnNavigationComponent, FoehnNavigationModule, FoehnNavigationService, FoehnNotFoundModule, FoehnNotfoundComponent, FoehnPageComponent, FoehnPageCounterComponent, FoehnPageExpirationTimerComponent, FoehnPageModalComponent, FoehnPageModule, FoehnPageService, FoehnPictureUploadComponent, FoehnPictureUploadModule, FoehnRadioComponent, FoehnRecapSectionComponent, FoehnRecapSectionModule, FoehnRemainingAlertsSummaryComponent, FoehnRemainingAlertsSummaryModule, FoehnSelectComponent, FoehnSimpleNavigationComponent, FoehnSkipLinkComponent, FoehnStatusProgressBarComponent, FoehnStatusProgressBarModule, FoehnTableColumnConfiguration, FoehnTableComponent, FoehnTableModule, FoehnTablePageChangeEvent, FoehnTimeComponent, FoehnTransmitWaitingModalComponent, FoehnTransmitWaitingModalService, FoehnUploadProgressBarComponent, FoehnUploadProgressBarModule, FoehnUserConnectedAsComponent, FoehnUserConnectedAsModule, FoehnValidationAlertSummaryComponent, FoehnValidationAlertSummaryModule, FoehnValidationAlertsComponent, FoehnValidationAlertsModule, FooterLink, FormMetadata, FormPostResponse, FormSelectOption, FormatIdePipe, FormatterModule, GESDEM_MAX_DATA_LENGTH, GesdemActionRecoveryLoginComponent, GesdemActionRecoveryModule, GesdemActionRecoveryRegistrationComponent, GesdemConfirmationComponent, GesdemConfirmationModule, GesdemErrorComponent, GesdemErrorModule, GesdemEventService, GesdemHandlerService, GesdemStatutUtils, GrowlBrokerService, GrowlMessage, GrowlType, HTTP_LOADER_FILTERED_URL, I18nForm, IbanFormatterDirective, IdeFormatterDirective, IntervalHelper, Locality, MonthYear, MultiUploadService, Municipality, NDCFormatterDirective, NavigationDirection, NumberCurrencyFormatterDirective, ObjectHelper, PORTAIL_BASE_URL_INT, PORTAIL_BASE_URL_PROD, PORTAIL_BASE_URL_VAL, PageChangeEvent, PageUploadLimitService, PaginationWeek, PendingFiles, PendingPaymentComponent, PendingUploadService, PipeModule, PlaceOfOrigin, Portail, PostalLocality, Preferences, PrestationsNgCoreModule, RECAPTCHA_API_URL, RecaptchaService, RedirectComponent, RegisterNgModelService, RowElement, SESSION_INFO_API_URL,
|
|
16899
|
+
export { APP_INFO_API_URL, AbstractFoehnUploaderComponent, AbstractListDetailPageComponent, AbstractMenuPageComponent, AbstractPageComponent, AbstractPageFromMenuComponent, ActionStatut, Address, AddressTypeLight, ApplicationInfo, ApplicationInfoService, BAD_PARAMS_HELP_TEXT, BoDocumentError, BoDocumentsWithErrors, BoMultiUploadService, Breadcrumb, BreadcrumbEventService, BreadcrumbItem, CAPTCHA_ERROR_NAME, CURRENCY_REGEXP, Calendar, Canton, Captcha, ComponentError, Configuration, Country, CurrencyHelper, CurrentWeek, DECIMALS_SEPARATOR, DEFAULT_INTERNATIONAL_AND_NO_SWISS, DEFAULT_INTERNATIONAL_AND_NO_SWISS_MOBILE, DEFAULT_INTERNATIONAL_AND_NO_SWISS_PHONE, DEFAULT_INTERNATIONAL_HELP_TEXT, DEFAULT_PREFIX, DEFAULT_SWISS_HELP_TEXT, DEFAULT_SWISS_MOBILE_PHONE_HELP_TEXT, DEFAULT_SWISS_PHONE_HELP_TEXT, DICTIONARY_BASE_URL, DateHelper, DatePickerHelper, DatePickerNavigationHelper, DayMonth, DaySlots, DemandeExpirationService, DemandeHelper, DisplayCurrencyPipe, DisplayDatePipe, District, Document, DocumentError, DocumentReference, DocumentReferenceWithFile, DocumentsWithErrors, DropdownMenuGroup, DropdownMenuItem, EPaymentService, EtapeInfo, FEEDBACK_USAGERS_LOCAL_STORAGE_PREFIX, FORM_SUPPORT_CYBER_TITLE_FALLBACK, FocusedDay, FoehnAbbrComponent, FoehnAddressModule, FoehnAgendaComponent, FoehnAgendaModule, FoehnAgendaNavigationComponent, FoehnAgendaTimeslotPanelComponent, FoehnAutocompleteComponent, FoehnAutocompleteModule, FoehnBoMultiUploadComponent, FoehnBoMultiUploadModule, FoehnBooleanCheckboxComponent, FoehnBooleanModule, FoehnBooleanRadioComponent, FoehnBreadcrumbComponent, FoehnBreadcrumbModule, FoehnCheckableGroupComponent, FoehnCheckablesModule, FoehnCheckboxComponent, FoehnConfirmModalComponent, FoehnConfirmModalContent, FoehnConfirmModalModule, FoehnConfirmModalService, FoehnDateComponent, FoehnDatePickerButtonComponent, FoehnDatePickerButtonModule, FoehnDatePickerComponent, FoehnDatePickerModule, FoehnDateTimeComponent, FoehnDecisionElectroniqueComponent, FoehnDecisionElectroniqueModule, FoehnDisplayAddressComponent, FoehnDropdownMenuComponent, FoehnDropdownMenuModule, FoehnErrorPillComponent, FoehnFeedbackNotificationComponent, FoehnFeedbackNotificationModule, FoehnFormComponent, FoehnFormModule, FoehnHeaderComponent, FoehnHeaderModule, FoehnHelpModalComponent, FoehnHelpModalModule, FoehnIconCalendarComponent, FoehnIconCheckComponent, FoehnIconCheckSquareOComponent, FoehnIconChevronDownComponent, FoehnIconChevronLeftComponent, FoehnIconChevronRightComponent, FoehnIconChevronUpComponent, FoehnIconClockComponent, FoehnIconCommentDotsComponent, FoehnIconEditComponent, FoehnIconExternalLinkAltComponent, FoehnIconFilePdfComponent, FoehnIconInfoCircleComponent, FoehnIconLockComponent, FoehnIconMapMarkerComponent, FoehnIconMinusCircleComponent, FoehnIconPencilComponent, FoehnIconPlusCircleComponent, FoehnIconPlusSquareComponent, FoehnIconSearchComponent, FoehnIconTimesComponent, FoehnIconTrashAltComponent, FoehnIconUnlockAltComponent, FoehnIconUserComponent, FoehnIconsModule, FoehnInputAddressComponent, FoehnInputComponent, FoehnInputEmailComponent, FoehnInputForeignLocalityComponent, FoehnInputForeignStreetComponent, FoehnInputHiddenComponent, FoehnInputModule, FoehnInputNav13Component, FoehnInputNav13Module, FoehnInputNumberComponent, FoehnInputPasswordComponent, FoehnInputPhoneComponent, FoehnInputPrefixedTextComponent, FoehnInputStringComponent, FoehnInputTextComponent, FoehnInputTextareaComponent, FoehnListComponent, FoehnListItem, FoehnListModule, FoehnListSummaryComponent, FoehnMenuItemComponent, FoehnMenuItemTransmitComponent, FoehnMenuPrestationModule, FoehnMiscModule, FoehnModalComponent, FoehnModalModule, FoehnMultiUploadComponent, FoehnMultiUploadModule, FoehnMultiselectAutocompleteComponent, FoehnMultiselectAutocompleteModule, FoehnNavigationComponent, FoehnNavigationModule, FoehnNavigationService, FoehnNotFoundModule, FoehnNotfoundComponent, FoehnPageComponent, FoehnPageCounterComponent, FoehnPageExpirationTimerComponent, FoehnPageModalComponent, FoehnPageModule, FoehnPageService, FoehnPictureUploadComponent, FoehnPictureUploadModule, FoehnRadioComponent, FoehnRecapSectionComponent, FoehnRecapSectionModule, FoehnRemainingAlertsSummaryComponent, FoehnRemainingAlertsSummaryModule, FoehnSelectComponent, FoehnSimpleNavigationComponent, FoehnSkipLinkComponent, FoehnStatusProgressBarComponent, FoehnStatusProgressBarModule, FoehnTableColumnConfiguration, FoehnTableComponent, FoehnTableModule, FoehnTablePageChangeEvent, FoehnTimeComponent, FoehnTransmitWaitingModalComponent, FoehnTransmitWaitingModalService, FoehnUploadProgressBarComponent, FoehnUploadProgressBarModule, FoehnUserConnectedAsComponent, FoehnUserConnectedAsModule, FoehnValidationAlertSummaryComponent, FoehnValidationAlertSummaryModule, FoehnValidationAlertsComponent, FoehnValidationAlertsModule, FooterLink, FormMetadata, FormPostResponse, FormSelectOption, FormatIdePipe, FormatterModule, GESDEM_MAX_DATA_LENGTH, GesdemActionRecoveryLoginComponent, GesdemActionRecoveryModule, GesdemActionRecoveryRegistrationComponent, GesdemConfirmationComponent, GesdemConfirmationModule, GesdemErrorComponent, GesdemErrorModule, GesdemEventService, GesdemHandlerService, GesdemStatutUtils, GrowlBrokerService, GrowlMessage, GrowlType, HTTP_LOADER_FILTERED_URL, I18nForm, IbanFormatterDirective, IdeFormatterDirective, IntervalHelper, Locality, MonthYear, MultiUploadService, Municipality, NDCFormatterDirective, NavigationDirection, NumberCurrencyFormatterDirective, ObjectHelper, PORTAIL_BASE_URL_INT, PORTAIL_BASE_URL_PROD, PORTAIL_BASE_URL_VAL, PageChangeEvent, PageUploadLimitService, PaginationWeek, PendingFiles, PendingPaymentComponent, PendingUploadService, PipeModule, PlaceOfOrigin, Portail, PostalLocality, Preferences, PrestationsNgCoreModule, RECAPTCHA_API_URL, RecaptchaService, RedirectComponent, RegisterNgModelService, RowElement, SESSION_INFO_API_URL, SWISS_ISO_ID, ScrollHelper, SdkDictionaryModule, SdkDictionaryPipe, SdkDictionaryService, SdkEpaymentComponent, SdkEpaymentModule, SdkEvent, SdkEventType, SdkEventsLoggerService, SdkLog, SdkLogLevel, SdkLogsService, SdkRecaptchaComponent, SdkRecaptchaModule, SdkRedirectModule, SdkStatisticsService, SelectedSlot, ServiceLocator, Session, SessionInfo, SessionInfoData, SessionInfoWithApplicationService, Street, StreetNumber, THOUSANDS_SEPARATOR, TRANSMIT_WAITING_MODAL_DELAY_IN_MILLISECONDS, TableSort, UploadProgress, UploadProgressService, UploaderHelper, ValidationHandlerService, formatDecimalCurrency, formatNonDecimalCurrency, formatNumberAsGiven, gesdemLoaderGuard, replaceAll };
|
|
16882
16900
|
//# sourceMappingURL=dsivd-prestations-ng.mjs.map
|