@idea-ionic/auth 8.2.4 → 8.2.6

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/esm2022/public-api.mjs +11 -3
  2. package/esm2022/src/auth.routes.mjs +20 -0
  3. package/esm2022/src/auth.service.mjs +3 -3
  4. package/esm2022/src/confirmPassword.page.mjs +219 -9
  5. package/esm2022/src/forgotPassword.page.mjs +136 -9
  6. package/esm2022/src/mfaChallenge.page.mjs +120 -9
  7. package/esm2022/src/newPassword.page.mjs +136 -9
  8. package/esm2022/src/passwordPolicy.component.mjs +9 -9
  9. package/esm2022/src/resendLink.page.mjs +131 -9
  10. package/esm2022/src/setupMFA/setupMFAButton.component.mjs +27 -10
  11. package/esm2022/src/setupMFA/setupMFAModal.component.mjs +107 -9
  12. package/esm2022/src/setupMFA.page.mjs +66 -10
  13. package/esm2022/src/signIn.page.mjs +343 -9
  14. package/esm2022/src/signUp.page.mjs +274 -9
  15. package/fesm2022/idea-ionic-auth.mjs +1535 -138
  16. package/fesm2022/idea-ionic-auth.mjs.map +1 -1
  17. package/package.json +9 -9
  18. package/public-api.d.ts +10 -2
  19. package/src/auth.routes.d.ts +2 -0
  20. package/src/confirmPassword.page.d.ts +1 -1
  21. package/src/forgotPassword.page.d.ts +1 -1
  22. package/src/mfaChallenge.page.d.ts +1 -1
  23. package/src/newPassword.page.d.ts +1 -1
  24. package/src/passwordPolicy.component.d.ts +1 -1
  25. package/src/resendLink.page.d.ts +1 -1
  26. package/src/setupMFA/setupMFAButton.component.d.ts +3 -3
  27. package/src/setupMFA/setupMFAModal.component.d.ts +3 -3
  28. package/src/setupMFA.page.d.ts +1 -1
  29. package/src/signIn.page.d.ts +1 -1
  30. package/src/signUp.page.d.ts +1 -1
  31. package/esm2022/src/auth.module.mjs +0 -84
  32. package/esm2022/src/setupMFA/setupMFA.module.mjs +0 -22
  33. package/src/auth.module.d.ts +0 -21
  34. package/src/setupMFA/setupMFA.module.d.ts +0 -12
@@ -1,17 +1,14 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, Injectable, Component, EventEmitter, Input, Output, NgModule } from '@angular/core';
3
1
  import { CommonModule } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { inject, Injectable, Component, EventEmitter, Input, Output } from '@angular/core';
4
4
  import * as i1 from '@angular/forms';
5
5
  import { FormsModule } from '@angular/forms';
6
- import * as i2 from '@ionic/angular';
7
- import { NavController, PopoverController, ModalController, IonicModule } from '@ionic/angular';
8
- import * as i1$1 from '@angular/router';
9
- import { ActivatedRoute, RouterModule } from '@angular/router';
10
- import * as i3 from '@idea-ionic/common';
11
- import { IDEAEnvironment, IDEATranslationsService, IDEAStorageService, IDEAMessageService, IDEALoadingService, IDEATranslationsModule } from '@idea-ionic/common';
6
+ import { NavController, IonButton, IonText, IonCol, IonRow, IonIcon, IonLabel, IonCardSubtitle, IonCardTitle, IonCardHeader, IonImg, IonCardContent, IonCard, IonContent, IonItem, IonInput, IonCheckbox, PopoverController, ModalController, IonListHeader, IonList, IonTitle, IonButtons, IonToolbar, IonHeader } from '@ionic/angular/standalone';
12
7
  import { Browser } from '@capacitor/browser';
8
+ import { IDEAEnvironment, IDEATranslationsService, IDEAStorageService, IDEAMessageService, IDEALoadingService, IDEATranslatePipe } from '@idea-ionic/common';
13
9
  import { CognitoUserPool, AuthenticationDetails, CognitoUser, CognitoUserAttribute, CognitoRefreshToken } from 'amazon-cognito-identity-js';
14
10
  import { isEmpty } from 'idea-toolbox';
11
+ import { ActivatedRoute } from '@angular/router';
15
12
  import { toCanvas } from 'qrcode';
16
13
 
17
14
  const COMMON_PASSWORDS_TOP_1000 = [
@@ -1503,10 +1500,10 @@ class IDEAAuthService {
1503
1500
  pattern += `.{${this.passwordPolicy.minLength},}`;
1504
1501
  return pattern;
1505
1502
  }
1506
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAAuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1507
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAAuthService, providedIn: 'root' }); }
1503
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1504
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAuthService, providedIn: 'root' }); }
1508
1505
  }
1509
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAAuthService, decorators: [{
1506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAuthService, decorators: [{
1510
1507
  type: Injectable,
1511
1508
  args: [{ providedIn: 'root' }]
1512
1509
  }], ctorParameters: () => [] });
@@ -1598,12 +1595,346 @@ class IDEASignInPage {
1598
1595
  async openLink(url) {
1599
1596
  await Browser.open({ url });
1600
1597
  }
1601
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASignInPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1602
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEASignInPage, selector: "idea-sign-in", ngImport: i0, template: "<ion-content>\n @if (newAccountRegistered) {\n <ion-card color=\"warning\">\n <ion-card-content>{{ 'IDEA_AUTH.CONFIRM_YOUR_EMAIL_TO_LOGIN' | translate }}</ion-card-content>\n </ion-card>\n }\n <form class=\"flexBox\">\n <div>\n <ion-card class=\"authCard\">\n <ion-img\n [title]=\"'IDEA_AUTH.SERVICE_LOGO' | translate\"\n [src]=\"darkMode ? 'assets/icons/icon-auth-alt.svg' : 'assets/icons/icon-auth.svg'\"\n />\n <ion-card-header>\n @if (title) {\n <ion-card-title color=\"primary\">{{ title }}</ion-card-title>\n } @if (translationExists('IDEA_VARIABLES.TAGLINE')) {\n <ion-card-subtitle> {{ 'IDEA_VARIABLES.TAGLINE' | translate }} </ion-card-subtitle>\n }\n </ion-card-header>\n <ion-card-content>\n @if (errorMsg) {\n <p class=\"errorBox\"><b>{{ 'IDEA_AUTH.WARNING' | translate }}.</b> {{ errorMsg }}</p>\n }\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"login()\"\n />\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\" />\n </ion-label>\n <ion-input\n id=\"current-password\"\n type=\"password\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"current-password\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"'IDEA_AUTH.PASSWORD' | translate\"\n [title]=\"'IDEA_AUTH.PASSWORD_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"password\"\n (keyup.enter)=\"login()\"\n />\n </ion-item>\n @if (!registrationPossible && (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') ||\n translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL'))) {\n <ion-row class=\"agreementsAcceptanceRow\">\n <ion-col>\n <ion-checkbox size=\"small\" [ngModelOptions]=\"{ standalone: true }\" [(ngModel)]=\"agreementsCheck\" />\n {{ 'IDEA_AUTH.AGREEMENTS_CHECK_LOGIN' | translate }}: @if\n (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')) {\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n [title]=\"'IDEA_AUTH.TERMS_AND_CONDITIONS_HINT' | translate\"\n [href]=\"'IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL' | translate\"\n >\n {{ 'IDEA_AUTH.TERMS_AND_CONDITIONS' | translate }}\n </a>\n } @if ( translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL') &&\n translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') ) {\n <ion-text> & </ion-text>\n } @if (translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL')) {\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n [title]=\"'IDEA_AUTH.PRIVACY_POLICY_HINT' | translate\"\n [href]=\"'IDEA_VARIABLES.PRIVACY_POLICY_URL' | translate\"\n >\n {{ 'IDEA_AUTH.PRIVACY_POLICY' | translate }}\n </a>\n }\n </ion-col>\n </ion-row>\n }\n <ion-button\n expand=\"block\"\n [disabled]=\"!agreementsCheck\"\n [title]=\"'IDEA_AUTH.SIGN_IN_HINT' | translate\"\n (click)=\"login()\"\n >\n {{ 'IDEA_AUTH.SIGN_IN' | translate }}\n </ion-button>\n @if (registrationPossible) {\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.CREATE_AN_ACCOUNT_HINT' | translate\"\n (click)=\"goToRegistration()\"\n >\n {{ 'IDEA_AUTH.CREATE_AN_ACCOUNT' | translate }}\n </ion-button>\n }\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.I_FORGOT_MY_PASSWORD_HINT' | translate\"\n (click)=\"goToForgotPassword()\"\n >\n {{ 'IDEA_AUTH.I_FORGOT_MY_PASSWORD' | translate }}\n </ion-button>\n @if (hasIntroPage) {\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n color=\"medium\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_INTRO_HINT' | translate\"\n (click)=\"goToIntro()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_INTRO' | translate }}\n </ion-button>\n }\n </ion-card-content>\n </ion-card>\n @if (website) {\n <ion-img\n class=\"ideaLogo\"\n [src]=\"darkMode ? './assets/icons/idea-alt.png' : './assets/icons/idea.png'\"\n [title]=\"'IDEA_AUTH.IDEA_TAGLINE' | translate\"\n (click)=\"openLink(website)\"\n />\n }\n </div>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i2.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
1598
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASignInPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1599
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEASignInPage, isStandalone: true, selector: "idea-sign-in", ngImport: i0, template: `
1600
+ <ion-content>
1601
+ @if (newAccountRegistered) {
1602
+ <ion-card color="warning">
1603
+ <ion-card-content>{{ 'IDEA_AUTH.CONFIRM_YOUR_EMAIL_TO_LOGIN' | translate }}</ion-card-content>
1604
+ </ion-card>
1605
+ }
1606
+ <form class="flexBox">
1607
+ <div>
1608
+ <ion-card class="authCard">
1609
+ <ion-img
1610
+ [title]="'IDEA_AUTH.SERVICE_LOGO' | translate"
1611
+ [src]="darkMode ? 'assets/icons/icon-auth-alt.svg' : 'assets/icons/icon-auth.svg'"
1612
+ />
1613
+ <ion-card-header>
1614
+ @if (title) {
1615
+ <ion-card-title color="primary">{{ title }}</ion-card-title>
1616
+ }
1617
+ @if (translationExists('IDEA_VARIABLES.TAGLINE')) {
1618
+ <ion-card-subtitle> {{ 'IDEA_VARIABLES.TAGLINE' | translate }} </ion-card-subtitle>
1619
+ }
1620
+ </ion-card-header>
1621
+ <ion-card-content>
1622
+ @if (errorMsg) {
1623
+ <p class="errorBox">
1624
+ <b>{{ 'IDEA_AUTH.WARNING' | translate }}.</b> {{ errorMsg }}
1625
+ </p>
1626
+ }
1627
+ <ion-item>
1628
+ <ion-label position="inline">
1629
+ <ion-icon name="person-circle" color="primary" />
1630
+ </ion-label>
1631
+ <ion-input
1632
+ type="email"
1633
+ inputmode="email"
1634
+ pattern="[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}"
1635
+ spellcheck="false"
1636
+ autocorrect="off"
1637
+ autocomplete="email"
1638
+ [placeholder]="'IDEA_AUTH.EMAIL' | translate"
1639
+ [title]="'IDEA_AUTH.EMAIL_HINT' | translate"
1640
+ [ngModelOptions]="{ standalone: true }"
1641
+ [(ngModel)]="email"
1642
+ (keyup.enter)="login()"
1643
+ />
1644
+ </ion-item>
1645
+ <ion-item>
1646
+ <ion-label position="inline">
1647
+ <ion-icon name="key" color="primary" />
1648
+ </ion-label>
1649
+ <ion-input
1650
+ id="current-password"
1651
+ type="password"
1652
+ spellcheck="false"
1653
+ autocorrect="off"
1654
+ autocomplete="current-password"
1655
+ [clearOnEdit]="false"
1656
+ [placeholder]="'IDEA_AUTH.PASSWORD' | translate"
1657
+ [title]="'IDEA_AUTH.PASSWORD_HINT' | translate"
1658
+ [ngModelOptions]="{ standalone: true }"
1659
+ [(ngModel)]="password"
1660
+ (keyup.enter)="login()"
1661
+ />
1662
+ </ion-item>
1663
+ @if (
1664
+ !registrationPossible &&
1665
+ (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') ||
1666
+ translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL'))
1667
+ ) {
1668
+ <ion-row class="agreementsAcceptanceRow">
1669
+ <ion-col>
1670
+ <ion-checkbox size="small" [ngModelOptions]="{ standalone: true }" [(ngModel)]="agreementsCheck" />
1671
+ {{ 'IDEA_AUTH.AGREEMENTS_CHECK_LOGIN' | translate }}:
1672
+ @if (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')) {
1673
+ <a
1674
+ ion-text
1675
+ color="primary"
1676
+ target="_blank"
1677
+ [title]="'IDEA_AUTH.TERMS_AND_CONDITIONS_HINT' | translate"
1678
+ [href]="'IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL' | translate"
1679
+ >
1680
+ {{ 'IDEA_AUTH.TERMS_AND_CONDITIONS' | translate }}
1681
+ </a>
1682
+ }
1683
+ @if (
1684
+ translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL') &&
1685
+ translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')
1686
+ ) {
1687
+ <ion-text> & </ion-text>
1688
+ }
1689
+ @if (translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL')) {
1690
+ <a
1691
+ ion-text
1692
+ color="primary"
1693
+ target="_blank"
1694
+ [title]="'IDEA_AUTH.PRIVACY_POLICY_HINT' | translate"
1695
+ [href]="'IDEA_VARIABLES.PRIVACY_POLICY_URL' | translate"
1696
+ >
1697
+ {{ 'IDEA_AUTH.PRIVACY_POLICY' | translate }}
1698
+ </a>
1699
+ }
1700
+ </ion-col>
1701
+ </ion-row>
1702
+ }
1703
+ <ion-button
1704
+ expand="block"
1705
+ [disabled]="!agreementsCheck"
1706
+ [title]="'IDEA_AUTH.SIGN_IN_HINT' | translate"
1707
+ (click)="login()"
1708
+ >
1709
+ {{ 'IDEA_AUTH.SIGN_IN' | translate }}
1710
+ </ion-button>
1711
+ @if (registrationPossible) {
1712
+ <ion-button
1713
+ fill="clear"
1714
+ expand="block"
1715
+ class="smallCaseButton"
1716
+ [title]="'IDEA_AUTH.CREATE_AN_ACCOUNT_HINT' | translate"
1717
+ (click)="goToRegistration()"
1718
+ >
1719
+ {{ 'IDEA_AUTH.CREATE_AN_ACCOUNT' | translate }}
1720
+ </ion-button>
1721
+ }
1722
+ <ion-button
1723
+ fill="clear"
1724
+ expand="block"
1725
+ class="smallCaseButton"
1726
+ [title]="'IDEA_AUTH.I_FORGOT_MY_PASSWORD_HINT' | translate"
1727
+ (click)="goToForgotPassword()"
1728
+ >
1729
+ {{ 'IDEA_AUTH.I_FORGOT_MY_PASSWORD' | translate }}
1730
+ </ion-button>
1731
+ @if (hasIntroPage) {
1732
+ <ion-button
1733
+ fill="clear"
1734
+ expand="block"
1735
+ color="medium"
1736
+ class="smallCaseButton"
1737
+ [title]="'IDEA_AUTH.BACK_TO_INTRO_HINT' | translate"
1738
+ (click)="goToIntro()"
1739
+ >
1740
+ {{ 'IDEA_AUTH.BACK_TO_INTRO' | translate }}
1741
+ </ion-button>
1742
+ }
1743
+ </ion-card-content>
1744
+ </ion-card>
1745
+ @if (website) {
1746
+ <ion-img
1747
+ class="ideaLogo"
1748
+ [src]="darkMode ? './assets/icons/idea-alt.png' : './assets/icons/idea.png'"
1749
+ [title]="'IDEA_AUTH.IDEA_TAGLINE' | translate"
1750
+ (click)="openLink(website)"
1751
+ />
1752
+ }
1753
+ </div>
1754
+ </form>
1755
+ </ion-content>
1756
+ `, isInline: true, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }] }); }
1603
1757
  }
1604
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASignInPage, decorators: [{
1758
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASignInPage, decorators: [{
1605
1759
  type: Component,
1606
- args: [{ selector: 'idea-sign-in', template: "<ion-content>\n @if (newAccountRegistered) {\n <ion-card color=\"warning\">\n <ion-card-content>{{ 'IDEA_AUTH.CONFIRM_YOUR_EMAIL_TO_LOGIN' | translate }}</ion-card-content>\n </ion-card>\n }\n <form class=\"flexBox\">\n <div>\n <ion-card class=\"authCard\">\n <ion-img\n [title]=\"'IDEA_AUTH.SERVICE_LOGO' | translate\"\n [src]=\"darkMode ? 'assets/icons/icon-auth-alt.svg' : 'assets/icons/icon-auth.svg'\"\n />\n <ion-card-header>\n @if (title) {\n <ion-card-title color=\"primary\">{{ title }}</ion-card-title>\n } @if (translationExists('IDEA_VARIABLES.TAGLINE')) {\n <ion-card-subtitle> {{ 'IDEA_VARIABLES.TAGLINE' | translate }} </ion-card-subtitle>\n }\n </ion-card-header>\n <ion-card-content>\n @if (errorMsg) {\n <p class=\"errorBox\"><b>{{ 'IDEA_AUTH.WARNING' | translate }}.</b> {{ errorMsg }}</p>\n }\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"login()\"\n />\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\" />\n </ion-label>\n <ion-input\n id=\"current-password\"\n type=\"password\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"current-password\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"'IDEA_AUTH.PASSWORD' | translate\"\n [title]=\"'IDEA_AUTH.PASSWORD_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"password\"\n (keyup.enter)=\"login()\"\n />\n </ion-item>\n @if (!registrationPossible && (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') ||\n translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL'))) {\n <ion-row class=\"agreementsAcceptanceRow\">\n <ion-col>\n <ion-checkbox size=\"small\" [ngModelOptions]=\"{ standalone: true }\" [(ngModel)]=\"agreementsCheck\" />\n {{ 'IDEA_AUTH.AGREEMENTS_CHECK_LOGIN' | translate }}: @if\n (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')) {\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n [title]=\"'IDEA_AUTH.TERMS_AND_CONDITIONS_HINT' | translate\"\n [href]=\"'IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL' | translate\"\n >\n {{ 'IDEA_AUTH.TERMS_AND_CONDITIONS' | translate }}\n </a>\n } @if ( translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL') &&\n translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') ) {\n <ion-text> & </ion-text>\n } @if (translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL')) {\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n [title]=\"'IDEA_AUTH.PRIVACY_POLICY_HINT' | translate\"\n [href]=\"'IDEA_VARIABLES.PRIVACY_POLICY_URL' | translate\"\n >\n {{ 'IDEA_AUTH.PRIVACY_POLICY' | translate }}\n </a>\n }\n </ion-col>\n </ion-row>\n }\n <ion-button\n expand=\"block\"\n [disabled]=\"!agreementsCheck\"\n [title]=\"'IDEA_AUTH.SIGN_IN_HINT' | translate\"\n (click)=\"login()\"\n >\n {{ 'IDEA_AUTH.SIGN_IN' | translate }}\n </ion-button>\n @if (registrationPossible) {\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.CREATE_AN_ACCOUNT_HINT' | translate\"\n (click)=\"goToRegistration()\"\n >\n {{ 'IDEA_AUTH.CREATE_AN_ACCOUNT' | translate }}\n </ion-button>\n }\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.I_FORGOT_MY_PASSWORD_HINT' | translate\"\n (click)=\"goToForgotPassword()\"\n >\n {{ 'IDEA_AUTH.I_FORGOT_MY_PASSWORD' | translate }}\n </ion-button>\n @if (hasIntroPage) {\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n color=\"medium\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_INTRO_HINT' | translate\"\n (click)=\"goToIntro()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_INTRO' | translate }}\n </ion-button>\n }\n </ion-card-content>\n </ion-card>\n @if (website) {\n <ion-img\n class=\"ideaLogo\"\n [src]=\"darkMode ? './assets/icons/idea-alt.png' : './assets/icons/idea.png'\"\n [title]=\"'IDEA_AUTH.IDEA_TAGLINE' | translate\"\n (click)=\"openLink(website)\"\n />\n }\n </div>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
1760
+ args: [{ selector: 'idea-sign-in', standalone: true, imports: [
1761
+ CommonModule,
1762
+ FormsModule,
1763
+ IDEATranslatePipe,
1764
+ IonButton,
1765
+ IonText,
1766
+ IonCol,
1767
+ IonRow,
1768
+ IonIcon,
1769
+ IonLabel,
1770
+ IonCardSubtitle,
1771
+ IonCardTitle,
1772
+ IonCardHeader,
1773
+ IonImg,
1774
+ IonCardContent,
1775
+ IonCard,
1776
+ IonContent,
1777
+ IonItem,
1778
+ IonInput,
1779
+ IonCheckbox
1780
+ ], template: `
1781
+ <ion-content>
1782
+ @if (newAccountRegistered) {
1783
+ <ion-card color="warning">
1784
+ <ion-card-content>{{ 'IDEA_AUTH.CONFIRM_YOUR_EMAIL_TO_LOGIN' | translate }}</ion-card-content>
1785
+ </ion-card>
1786
+ }
1787
+ <form class="flexBox">
1788
+ <div>
1789
+ <ion-card class="authCard">
1790
+ <ion-img
1791
+ [title]="'IDEA_AUTH.SERVICE_LOGO' | translate"
1792
+ [src]="darkMode ? 'assets/icons/icon-auth-alt.svg' : 'assets/icons/icon-auth.svg'"
1793
+ />
1794
+ <ion-card-header>
1795
+ @if (title) {
1796
+ <ion-card-title color="primary">{{ title }}</ion-card-title>
1797
+ }
1798
+ @if (translationExists('IDEA_VARIABLES.TAGLINE')) {
1799
+ <ion-card-subtitle> {{ 'IDEA_VARIABLES.TAGLINE' | translate }} </ion-card-subtitle>
1800
+ }
1801
+ </ion-card-header>
1802
+ <ion-card-content>
1803
+ @if (errorMsg) {
1804
+ <p class="errorBox">
1805
+ <b>{{ 'IDEA_AUTH.WARNING' | translate }}.</b> {{ errorMsg }}
1806
+ </p>
1807
+ }
1808
+ <ion-item>
1809
+ <ion-label position="inline">
1810
+ <ion-icon name="person-circle" color="primary" />
1811
+ </ion-label>
1812
+ <ion-input
1813
+ type="email"
1814
+ inputmode="email"
1815
+ pattern="[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}"
1816
+ spellcheck="false"
1817
+ autocorrect="off"
1818
+ autocomplete="email"
1819
+ [placeholder]="'IDEA_AUTH.EMAIL' | translate"
1820
+ [title]="'IDEA_AUTH.EMAIL_HINT' | translate"
1821
+ [ngModelOptions]="{ standalone: true }"
1822
+ [(ngModel)]="email"
1823
+ (keyup.enter)="login()"
1824
+ />
1825
+ </ion-item>
1826
+ <ion-item>
1827
+ <ion-label position="inline">
1828
+ <ion-icon name="key" color="primary" />
1829
+ </ion-label>
1830
+ <ion-input
1831
+ id="current-password"
1832
+ type="password"
1833
+ spellcheck="false"
1834
+ autocorrect="off"
1835
+ autocomplete="current-password"
1836
+ [clearOnEdit]="false"
1837
+ [placeholder]="'IDEA_AUTH.PASSWORD' | translate"
1838
+ [title]="'IDEA_AUTH.PASSWORD_HINT' | translate"
1839
+ [ngModelOptions]="{ standalone: true }"
1840
+ [(ngModel)]="password"
1841
+ (keyup.enter)="login()"
1842
+ />
1843
+ </ion-item>
1844
+ @if (
1845
+ !registrationPossible &&
1846
+ (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') ||
1847
+ translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL'))
1848
+ ) {
1849
+ <ion-row class="agreementsAcceptanceRow">
1850
+ <ion-col>
1851
+ <ion-checkbox size="small" [ngModelOptions]="{ standalone: true }" [(ngModel)]="agreementsCheck" />
1852
+ {{ 'IDEA_AUTH.AGREEMENTS_CHECK_LOGIN' | translate }}:
1853
+ @if (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')) {
1854
+ <a
1855
+ ion-text
1856
+ color="primary"
1857
+ target="_blank"
1858
+ [title]="'IDEA_AUTH.TERMS_AND_CONDITIONS_HINT' | translate"
1859
+ [href]="'IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL' | translate"
1860
+ >
1861
+ {{ 'IDEA_AUTH.TERMS_AND_CONDITIONS' | translate }}
1862
+ </a>
1863
+ }
1864
+ @if (
1865
+ translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL') &&
1866
+ translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')
1867
+ ) {
1868
+ <ion-text> & </ion-text>
1869
+ }
1870
+ @if (translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL')) {
1871
+ <a
1872
+ ion-text
1873
+ color="primary"
1874
+ target="_blank"
1875
+ [title]="'IDEA_AUTH.PRIVACY_POLICY_HINT' | translate"
1876
+ [href]="'IDEA_VARIABLES.PRIVACY_POLICY_URL' | translate"
1877
+ >
1878
+ {{ 'IDEA_AUTH.PRIVACY_POLICY' | translate }}
1879
+ </a>
1880
+ }
1881
+ </ion-col>
1882
+ </ion-row>
1883
+ }
1884
+ <ion-button
1885
+ expand="block"
1886
+ [disabled]="!agreementsCheck"
1887
+ [title]="'IDEA_AUTH.SIGN_IN_HINT' | translate"
1888
+ (click)="login()"
1889
+ >
1890
+ {{ 'IDEA_AUTH.SIGN_IN' | translate }}
1891
+ </ion-button>
1892
+ @if (registrationPossible) {
1893
+ <ion-button
1894
+ fill="clear"
1895
+ expand="block"
1896
+ class="smallCaseButton"
1897
+ [title]="'IDEA_AUTH.CREATE_AN_ACCOUNT_HINT' | translate"
1898
+ (click)="goToRegistration()"
1899
+ >
1900
+ {{ 'IDEA_AUTH.CREATE_AN_ACCOUNT' | translate }}
1901
+ </ion-button>
1902
+ }
1903
+ <ion-button
1904
+ fill="clear"
1905
+ expand="block"
1906
+ class="smallCaseButton"
1907
+ [title]="'IDEA_AUTH.I_FORGOT_MY_PASSWORD_HINT' | translate"
1908
+ (click)="goToForgotPassword()"
1909
+ >
1910
+ {{ 'IDEA_AUTH.I_FORGOT_MY_PASSWORD' | translate }}
1911
+ </ion-button>
1912
+ @if (hasIntroPage) {
1913
+ <ion-button
1914
+ fill="clear"
1915
+ expand="block"
1916
+ color="medium"
1917
+ class="smallCaseButton"
1918
+ [title]="'IDEA_AUTH.BACK_TO_INTRO_HINT' | translate"
1919
+ (click)="goToIntro()"
1920
+ >
1921
+ {{ 'IDEA_AUTH.BACK_TO_INTRO' | translate }}
1922
+ </ion-button>
1923
+ }
1924
+ </ion-card-content>
1925
+ </ion-card>
1926
+ @if (website) {
1927
+ <ion-img
1928
+ class="ideaLogo"
1929
+ [src]="darkMode ? './assets/icons/idea-alt.png' : './assets/icons/idea.png'"
1930
+ [title]="'IDEA_AUTH.IDEA_TAGLINE' | translate"
1931
+ (click)="openLink(website)"
1932
+ />
1933
+ }
1934
+ </div>
1935
+ </form>
1936
+ </ion-content>
1937
+ `, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
1607
1938
  }], ctorParameters: () => [] });
1608
1939
 
1609
1940
  class IDEAPasswordPolicyComponent {
@@ -1611,8 +1942,8 @@ class IDEAPasswordPolicyComponent {
1611
1942
  this._env = inject(IDEAEnvironment);
1612
1943
  this.passwordPolicy = this._env.idea.auth.passwordPolicy;
1613
1944
  }
1614
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAPasswordPolicyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1615
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEAPasswordPolicyComponent, selector: "idea-password-policy", ngImport: i0, template: `
1945
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAPasswordPolicyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1946
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAPasswordPolicyComponent, isStandalone: true, selector: "idea-password-policy", ngImport: i0, template: `
1616
1947
  <ion-card class="passwordPolicyCard">
1617
1948
  <ion-card-header>
1618
1949
  <ion-card-title>{{ 'IDEA_AUTH.PASSWORD_REQUIREMENTS_TITLE' | translate }}</ion-card-title>
@@ -1643,11 +1974,11 @@ class IDEAPasswordPolicyComponent {
1643
1974
  </ul>
1644
1975
  </ion-card-content>
1645
1976
  </ion-card>
1646
- `, isInline: true, styles: ["ion-card.passwordPolicyCard{box-shadow:none;border:none;padding:6px}ion-card.passwordPolicyCard ion-card-title{font-size:1rem}ion-card.passwordPolicyCard ul{margin:0}\n"], dependencies: [{ kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
1977
+ `, isInline: true, styles: ["ion-card.passwordPolicyCard{box-shadow:none;border:none;padding:6px}ion-card.passwordPolicyCard ion-card-title{font-size:1rem}ion-card.passwordPolicyCard ul{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }] }); }
1647
1978
  }
1648
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAPasswordPolicyComponent, decorators: [{
1979
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAPasswordPolicyComponent, decorators: [{
1649
1980
  type: Component,
1650
- args: [{ selector: 'idea-password-policy', template: `
1981
+ args: [{ selector: 'idea-password-policy', standalone: true, imports: [CommonModule, IDEATranslatePipe, IonCard, IonCardHeader, IonCardTitle, IonCardContent], template: `
1651
1982
  <ion-card class="passwordPolicyCard">
1652
1983
  <ion-card-header>
1653
1984
  <ion-card-title>{{ 'IDEA_AUTH.PASSWORD_REQUIREMENTS_TITLE' | translate }}</ion-card-title>
@@ -1748,12 +2079,277 @@ class IDEASignUpPage {
1748
2079
  goToAuth() {
1749
2080
  this._nav.navigateBack(['auth']);
1750
2081
  }
1751
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASignUpPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1752
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEASignUpPage, selector: "idea-sign-up", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.NEW_ACCOUNT' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.REGISTER_A_NEW_ACCOUNT_TO_THE_SYSTEM' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n @if (errorMsg) {\n <p class=\"errorBox\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n }\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.REGISTRATION_EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"register()\"\n />\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"password\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n [pattern]=\"_auth.getPasswordPolicyPatternForInput()\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"'IDEA_AUTH.PASSWORD' | translate\"\n [title]=\"'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"password\"\n (keyup.enter)=\"register()\"\n />\n <ion-button slot=\"end\" fill=\"clear\" color=\"dark\" (click)=\"openPasswordPolicy($event)\">\n <ion-icon icon=\"help-circle-outline\" slot=\"icon-only\" />\n </ion-button>\n </ion-item>\n @if (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') ||\n translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL')) {\n <ion-row class=\"agreementsAcceptanceRow\">\n <ion-col>\n <ion-checkbox size=\"small\" [ngModelOptions]=\"{ standalone: true }\" [(ngModel)]=\"agreementsCheck\" />\n {{ 'IDEA_AUTH.AGREEMENTS_CHECK_REGISTRATION' | translate }}: @if\n (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')) {\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n [title]=\"'IDEA_AUTH.TERMS_AND_CONDITIONS_HINT' | translate\"\n [href]=\"'IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL' | translate\"\n >\n {{ 'IDEA_AUTH.TERMS_AND_CONDITIONS' | translate }}\n </a>\n } @if (translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL') &&\n translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')) {\n <ion-text> & </ion-text>\n } @if (translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL')) {\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n [title]=\"'IDEA_AUTH.PRIVACY_POLICY_HINT' | translate\"\n [href]=\"'IDEA_VARIABLES.PRIVACY_POLICY_URL' | translate\"\n >\n {{ 'IDEA_AUTH.PRIVACY_POLICY' | translate }}\n </a>\n }\n </ion-col>\n </ion-row>\n }\n <ion-button\n expand=\"block\"\n [disabled]=\"!agreementsCheck\"\n [title]=\"'IDEA_AUTH.CREATE_AN_ACCOUNT_HINT' | translate\"\n (click)=\"register()\"\n >\n {{ 'IDEA_AUTH.CREATE_AN_ACCOUNT' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.HAVEN_T_RECEIVED_CONFIRMATION_LINK_HINT' | translate\"\n (click)=\"goToResendLink()\"\n >\n {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_CONFIRMATION_LINK' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i2.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonCheckbox, selector: "ion-checkbox", inputs: ["alignment", "checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
2082
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASignUpPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2083
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEASignUpPage, isStandalone: true, selector: "idea-sign-up", ngImport: i0, template: `
2084
+ <ion-content>
2085
+ <form class="flexBox">
2086
+ <ion-card class="authCard">
2087
+ <ion-card-header>
2088
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.NEW_ACCOUNT' | translate }}</ion-card-title>
2089
+ <ion-card-subtitle>{{ 'IDEA_AUTH.REGISTER_A_NEW_ACCOUNT_TO_THE_SYSTEM' | translate }}</ion-card-subtitle>
2090
+ </ion-card-header>
2091
+ <ion-card-content>
2092
+ @if (errorMsg) {
2093
+ <p class="errorBox">
2094
+ <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>
2095
+ {{ errorMsg }}
2096
+ </p>
2097
+ }
2098
+ <ion-item>
2099
+ <ion-label position="inline">
2100
+ <ion-icon name="person-circle" color="primary" />
2101
+ </ion-label>
2102
+ <ion-input
2103
+ type="email"
2104
+ inputmode="email"
2105
+ pattern="[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}"
2106
+ spellcheck="false"
2107
+ autocorrect="off"
2108
+ autocomplete="off"
2109
+ [placeholder]="'IDEA_AUTH.EMAIL' | translate"
2110
+ [title]="'IDEA_AUTH.REGISTRATION_EMAIL_HINT' | translate"
2111
+ [ngModelOptions]="{ standalone: true }"
2112
+ [(ngModel)]="email"
2113
+ (keyup.enter)="register()"
2114
+ />
2115
+ </ion-item>
2116
+ <ion-item>
2117
+ <ion-label position="inline">
2118
+ <ion-icon name="key" color="primary" />
2119
+ </ion-label>
2120
+ <ion-input
2121
+ type="password"
2122
+ spellcheck="false"
2123
+ autocorrect="off"
2124
+ autocomplete="off"
2125
+ [pattern]="_auth.getPasswordPolicyPatternForInput()"
2126
+ [clearOnEdit]="false"
2127
+ [placeholder]="'IDEA_AUTH.PASSWORD' | translate"
2128
+ [title]="'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate"
2129
+ [ngModelOptions]="{ standalone: true }"
2130
+ [(ngModel)]="password"
2131
+ (keyup.enter)="register()"
2132
+ />
2133
+ <ion-button slot="end" fill="clear" color="dark" (click)="openPasswordPolicy($event)">
2134
+ <ion-icon icon="help-circle-outline" slot="icon-only" />
2135
+ </ion-button>
2136
+ </ion-item>
2137
+ @if (
2138
+ translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') ||
2139
+ translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL')
2140
+ ) {
2141
+ <ion-row class="agreementsAcceptanceRow">
2142
+ <ion-col>
2143
+ <ion-checkbox size="small" [ngModelOptions]="{ standalone: true }" [(ngModel)]="agreementsCheck" />
2144
+ {{ 'IDEA_AUTH.AGREEMENTS_CHECK_REGISTRATION' | translate }}:
2145
+ @if (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')) {
2146
+ <a
2147
+ ion-text
2148
+ color="primary"
2149
+ target="_blank"
2150
+ [title]="'IDEA_AUTH.TERMS_AND_CONDITIONS_HINT' | translate"
2151
+ [href]="'IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL' | translate"
2152
+ >
2153
+ {{ 'IDEA_AUTH.TERMS_AND_CONDITIONS' | translate }}
2154
+ </a>
2155
+ }
2156
+ @if (
2157
+ translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL') &&
2158
+ translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')
2159
+ ) {
2160
+ <ion-text> & </ion-text>
2161
+ }
2162
+ @if (translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL')) {
2163
+ <a
2164
+ ion-text
2165
+ color="primary"
2166
+ target="_blank"
2167
+ [title]="'IDEA_AUTH.PRIVACY_POLICY_HINT' | translate"
2168
+ [href]="'IDEA_VARIABLES.PRIVACY_POLICY_URL' | translate"
2169
+ >
2170
+ {{ 'IDEA_AUTH.PRIVACY_POLICY' | translate }}
2171
+ </a>
2172
+ }
2173
+ </ion-col>
2174
+ </ion-row>
2175
+ }
2176
+ <ion-button
2177
+ expand="block"
2178
+ [disabled]="!agreementsCheck"
2179
+ [title]="'IDEA_AUTH.CREATE_AN_ACCOUNT_HINT' | translate"
2180
+ (click)="register()"
2181
+ >
2182
+ {{ 'IDEA_AUTH.CREATE_AN_ACCOUNT' | translate }}
2183
+ </ion-button>
2184
+ <ion-button
2185
+ fill="clear"
2186
+ expand="block"
2187
+ class="smallCaseButton"
2188
+ [title]="'IDEA_AUTH.HAVEN_T_RECEIVED_CONFIRMATION_LINK_HINT' | translate"
2189
+ (click)="goToResendLink()"
2190
+ >
2191
+ {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_CONFIRMATION_LINK' | translate }}
2192
+ </ion-button>
2193
+ <ion-button
2194
+ fill="clear"
2195
+ expand="block"
2196
+ class="smallCaseButton"
2197
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
2198
+ (click)="goToAuth()"
2199
+ >
2200
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
2201
+ </ion-button>
2202
+ </ion-card-content>
2203
+ </ion-card>
2204
+ </form>
2205
+ </ion-content>
2206
+ `, isInline: true, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }] }); }
1753
2207
  }
1754
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASignUpPage, decorators: [{
2208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASignUpPage, decorators: [{
1755
2209
  type: Component,
1756
- args: [{ selector: 'idea-sign-up', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.NEW_ACCOUNT' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.REGISTER_A_NEW_ACCOUNT_TO_THE_SYSTEM' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n @if (errorMsg) {\n <p class=\"errorBox\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n }\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.REGISTRATION_EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"register()\"\n />\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"password\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n [pattern]=\"_auth.getPasswordPolicyPatternForInput()\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"'IDEA_AUTH.PASSWORD' | translate\"\n [title]=\"'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"password\"\n (keyup.enter)=\"register()\"\n />\n <ion-button slot=\"end\" fill=\"clear\" color=\"dark\" (click)=\"openPasswordPolicy($event)\">\n <ion-icon icon=\"help-circle-outline\" slot=\"icon-only\" />\n </ion-button>\n </ion-item>\n @if (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') ||\n translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL')) {\n <ion-row class=\"agreementsAcceptanceRow\">\n <ion-col>\n <ion-checkbox size=\"small\" [ngModelOptions]=\"{ standalone: true }\" [(ngModel)]=\"agreementsCheck\" />\n {{ 'IDEA_AUTH.AGREEMENTS_CHECK_REGISTRATION' | translate }}: @if\n (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')) {\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n [title]=\"'IDEA_AUTH.TERMS_AND_CONDITIONS_HINT' | translate\"\n [href]=\"'IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL' | translate\"\n >\n {{ 'IDEA_AUTH.TERMS_AND_CONDITIONS' | translate }}\n </a>\n } @if (translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL') &&\n translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')) {\n <ion-text> & </ion-text>\n } @if (translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL')) {\n <a\n ion-text\n color=\"primary\"\n target=\"_blank\"\n [title]=\"'IDEA_AUTH.PRIVACY_POLICY_HINT' | translate\"\n [href]=\"'IDEA_VARIABLES.PRIVACY_POLICY_URL' | translate\"\n >\n {{ 'IDEA_AUTH.PRIVACY_POLICY' | translate }}\n </a>\n }\n </ion-col>\n </ion-row>\n }\n <ion-button\n expand=\"block\"\n [disabled]=\"!agreementsCheck\"\n [title]=\"'IDEA_AUTH.CREATE_AN_ACCOUNT_HINT' | translate\"\n (click)=\"register()\"\n >\n {{ 'IDEA_AUTH.CREATE_AN_ACCOUNT' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.HAVEN_T_RECEIVED_CONFIRMATION_LINK_HINT' | translate\"\n (click)=\"goToResendLink()\"\n >\n {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_CONFIRMATION_LINK' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
2210
+ args: [{ selector: 'idea-sign-up', standalone: true, imports: [
2211
+ CommonModule,
2212
+ FormsModule,
2213
+ IDEATranslatePipe,
2214
+ IonText,
2215
+ IonCol,
2216
+ IonRow,
2217
+ IonButton,
2218
+ IonLabel,
2219
+ IonIcon,
2220
+ IonItem,
2221
+ IonCardContent,
2222
+ IonCardSubtitle,
2223
+ IonCardTitle,
2224
+ IonCardHeader,
2225
+ IonCard,
2226
+ IonContent,
2227
+ IonInput,
2228
+ IonCheckbox
2229
+ ], template: `
2230
+ <ion-content>
2231
+ <form class="flexBox">
2232
+ <ion-card class="authCard">
2233
+ <ion-card-header>
2234
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.NEW_ACCOUNT' | translate }}</ion-card-title>
2235
+ <ion-card-subtitle>{{ 'IDEA_AUTH.REGISTER_A_NEW_ACCOUNT_TO_THE_SYSTEM' | translate }}</ion-card-subtitle>
2236
+ </ion-card-header>
2237
+ <ion-card-content>
2238
+ @if (errorMsg) {
2239
+ <p class="errorBox">
2240
+ <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>
2241
+ {{ errorMsg }}
2242
+ </p>
2243
+ }
2244
+ <ion-item>
2245
+ <ion-label position="inline">
2246
+ <ion-icon name="person-circle" color="primary" />
2247
+ </ion-label>
2248
+ <ion-input
2249
+ type="email"
2250
+ inputmode="email"
2251
+ pattern="[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}"
2252
+ spellcheck="false"
2253
+ autocorrect="off"
2254
+ autocomplete="off"
2255
+ [placeholder]="'IDEA_AUTH.EMAIL' | translate"
2256
+ [title]="'IDEA_AUTH.REGISTRATION_EMAIL_HINT' | translate"
2257
+ [ngModelOptions]="{ standalone: true }"
2258
+ [(ngModel)]="email"
2259
+ (keyup.enter)="register()"
2260
+ />
2261
+ </ion-item>
2262
+ <ion-item>
2263
+ <ion-label position="inline">
2264
+ <ion-icon name="key" color="primary" />
2265
+ </ion-label>
2266
+ <ion-input
2267
+ type="password"
2268
+ spellcheck="false"
2269
+ autocorrect="off"
2270
+ autocomplete="off"
2271
+ [pattern]="_auth.getPasswordPolicyPatternForInput()"
2272
+ [clearOnEdit]="false"
2273
+ [placeholder]="'IDEA_AUTH.PASSWORD' | translate"
2274
+ [title]="'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate"
2275
+ [ngModelOptions]="{ standalone: true }"
2276
+ [(ngModel)]="password"
2277
+ (keyup.enter)="register()"
2278
+ />
2279
+ <ion-button slot="end" fill="clear" color="dark" (click)="openPasswordPolicy($event)">
2280
+ <ion-icon icon="help-circle-outline" slot="icon-only" />
2281
+ </ion-button>
2282
+ </ion-item>
2283
+ @if (
2284
+ translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL') ||
2285
+ translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL')
2286
+ ) {
2287
+ <ion-row class="agreementsAcceptanceRow">
2288
+ <ion-col>
2289
+ <ion-checkbox size="small" [ngModelOptions]="{ standalone: true }" [(ngModel)]="agreementsCheck" />
2290
+ {{ 'IDEA_AUTH.AGREEMENTS_CHECK_REGISTRATION' | translate }}:
2291
+ @if (translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')) {
2292
+ <a
2293
+ ion-text
2294
+ color="primary"
2295
+ target="_blank"
2296
+ [title]="'IDEA_AUTH.TERMS_AND_CONDITIONS_HINT' | translate"
2297
+ [href]="'IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL' | translate"
2298
+ >
2299
+ {{ 'IDEA_AUTH.TERMS_AND_CONDITIONS' | translate }}
2300
+ </a>
2301
+ }
2302
+ @if (
2303
+ translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL') &&
2304
+ translationExists('IDEA_VARIABLES.TERMS_AND_CONDITIONS_URL')
2305
+ ) {
2306
+ <ion-text> & </ion-text>
2307
+ }
2308
+ @if (translationExists('IDEA_VARIABLES.PRIVACY_POLICY_URL')) {
2309
+ <a
2310
+ ion-text
2311
+ color="primary"
2312
+ target="_blank"
2313
+ [title]="'IDEA_AUTH.PRIVACY_POLICY_HINT' | translate"
2314
+ [href]="'IDEA_VARIABLES.PRIVACY_POLICY_URL' | translate"
2315
+ >
2316
+ {{ 'IDEA_AUTH.PRIVACY_POLICY' | translate }}
2317
+ </a>
2318
+ }
2319
+ </ion-col>
2320
+ </ion-row>
2321
+ }
2322
+ <ion-button
2323
+ expand="block"
2324
+ [disabled]="!agreementsCheck"
2325
+ [title]="'IDEA_AUTH.CREATE_AN_ACCOUNT_HINT' | translate"
2326
+ (click)="register()"
2327
+ >
2328
+ {{ 'IDEA_AUTH.CREATE_AN_ACCOUNT' | translate }}
2329
+ </ion-button>
2330
+ <ion-button
2331
+ fill="clear"
2332
+ expand="block"
2333
+ class="smallCaseButton"
2334
+ [title]="'IDEA_AUTH.HAVEN_T_RECEIVED_CONFIRMATION_LINK_HINT' | translate"
2335
+ (click)="goToResendLink()"
2336
+ >
2337
+ {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_CONFIRMATION_LINK' | translate }}
2338
+ </ion-button>
2339
+ <ion-button
2340
+ fill="clear"
2341
+ expand="block"
2342
+ class="smallCaseButton"
2343
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
2344
+ (click)="goToAuth()"
2345
+ >
2346
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
2347
+ </ion-button>
2348
+ </ion-card-content>
2349
+ </ion-card>
2350
+ </form>
2351
+ </ion-content>
2352
+ `, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
1757
2353
  }], ctorParameters: () => [] });
1758
2354
 
1759
2355
  class IDEANewPasswordPage {
@@ -1804,12 +2400,139 @@ class IDEANewPasswordPage {
1804
2400
  goToAuth() {
1805
2401
  this._nav.navigateBack(['auth']);
1806
2402
  }
1807
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEANewPasswordPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1808
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEANewPasswordPage, selector: "idea-new-password", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.YOU_NEED_TO_CHOOSE_A_NEW_PASSWORD' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n @if (errorMsg) {\n <p class=\"errorBox\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n }\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"password\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n [pattern]=\"_auth.getPasswordPolicyPatternForInput()\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"'IDEA_AUTH.PASSWORD' | translate\"\n [title]=\"'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"newPassword\"\n (keyup.enter)=\"confirmNewPassword()\"\n />\n <ion-button slot=\"end\" fill=\"clear\" color=\"dark\" (click)=\"openPasswordPolicy($event)\">\n <ion-icon icon=\"help-circle-outline\" slot=\"icon-only\" />\n </ion-button>\n </ion-item>\n <ion-button\n expand=\"block\"\n [title]=\"'IDEA_AUTH.CONFIRM_NEW_PASSWORD_HINT' | translate\"\n (click)=\"confirmNewPassword()\"\n >\n {{ 'IDEA_AUTH.CONFIRM_NEW_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i2.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
2403
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEANewPasswordPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2404
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEANewPasswordPage, isStandalone: true, selector: "idea-new-password", ngImport: i0, template: `
2405
+ <ion-content>
2406
+ <form class="flexBox">
2407
+ <ion-card class="authCard">
2408
+ <ion-card-header>
2409
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate }}</ion-card-title>
2410
+ <ion-card-subtitle>{{ 'IDEA_AUTH.YOU_NEED_TO_CHOOSE_A_NEW_PASSWORD' | translate }}</ion-card-subtitle>
2411
+ </ion-card-header>
2412
+ <ion-card-content>
2413
+ @if (errorMsg) {
2414
+ <p class="errorBox">
2415
+ <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>
2416
+ {{ errorMsg }}
2417
+ </p>
2418
+ }
2419
+ <ion-item>
2420
+ <ion-label position="inline">
2421
+ <ion-icon name="key" color="primary" />
2422
+ </ion-label>
2423
+ <ion-input
2424
+ type="password"
2425
+ spellcheck="false"
2426
+ autocorrect="off"
2427
+ autocomplete="new-password"
2428
+ [pattern]="_auth.getPasswordPolicyPatternForInput()"
2429
+ [clearOnEdit]="false"
2430
+ [placeholder]="'IDEA_AUTH.PASSWORD' | translate"
2431
+ [title]="'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate"
2432
+ [ngModelOptions]="{ standalone: true }"
2433
+ [(ngModel)]="newPassword"
2434
+ (keyup.enter)="confirmNewPassword()"
2435
+ />
2436
+ <ion-button slot="end" fill="clear" color="dark" (click)="openPasswordPolicy($event)">
2437
+ <ion-icon icon="help-circle-outline" slot="icon-only" />
2438
+ </ion-button>
2439
+ </ion-item>
2440
+ <ion-button
2441
+ expand="block"
2442
+ [title]="'IDEA_AUTH.CONFIRM_NEW_PASSWORD_HINT' | translate"
2443
+ (click)="confirmNewPassword()"
2444
+ >
2445
+ {{ 'IDEA_AUTH.CONFIRM_NEW_PASSWORD' | translate }}
2446
+ </ion-button>
2447
+ <ion-button
2448
+ fill="clear"
2449
+ expand="block"
2450
+ class="smallCaseButton"
2451
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
2452
+ (click)="goToAuth()"
2453
+ >
2454
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
2455
+ </ion-button>
2456
+ </ion-card-content>
2457
+ </ion-card>
2458
+ </form>
2459
+ </ion-content>
2460
+ `, isInline: true, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
1809
2461
  }
1810
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEANewPasswordPage, decorators: [{
2462
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEANewPasswordPage, decorators: [{
1811
2463
  type: Component,
1812
- args: [{ selector: 'idea-new-password', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.YOU_NEED_TO_CHOOSE_A_NEW_PASSWORD' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n @if (errorMsg) {\n <p class=\"errorBox\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n }\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"password\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n [pattern]=\"_auth.getPasswordPolicyPatternForInput()\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"'IDEA_AUTH.PASSWORD' | translate\"\n [title]=\"'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"newPassword\"\n (keyup.enter)=\"confirmNewPassword()\"\n />\n <ion-button slot=\"end\" fill=\"clear\" color=\"dark\" (click)=\"openPasswordPolicy($event)\">\n <ion-icon icon=\"help-circle-outline\" slot=\"icon-only\" />\n </ion-button>\n </ion-item>\n <ion-button\n expand=\"block\"\n [title]=\"'IDEA_AUTH.CONFIRM_NEW_PASSWORD_HINT' | translate\"\n (click)=\"confirmNewPassword()\"\n >\n {{ 'IDEA_AUTH.CONFIRM_NEW_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
2464
+ args: [{ selector: 'idea-new-password', standalone: true, imports: [
2465
+ CommonModule,
2466
+ FormsModule,
2467
+ IDEATranslatePipe,
2468
+ IonButton,
2469
+ IonIcon,
2470
+ IonLabel,
2471
+ IonItem,
2472
+ IonCardContent,
2473
+ IonCardSubtitle,
2474
+ IonCardTitle,
2475
+ IonCardHeader,
2476
+ IonCard,
2477
+ IonContent,
2478
+ IonInput
2479
+ ], template: `
2480
+ <ion-content>
2481
+ <form class="flexBox">
2482
+ <ion-card class="authCard">
2483
+ <ion-card-header>
2484
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate }}</ion-card-title>
2485
+ <ion-card-subtitle>{{ 'IDEA_AUTH.YOU_NEED_TO_CHOOSE_A_NEW_PASSWORD' | translate }}</ion-card-subtitle>
2486
+ </ion-card-header>
2487
+ <ion-card-content>
2488
+ @if (errorMsg) {
2489
+ <p class="errorBox">
2490
+ <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>
2491
+ {{ errorMsg }}
2492
+ </p>
2493
+ }
2494
+ <ion-item>
2495
+ <ion-label position="inline">
2496
+ <ion-icon name="key" color="primary" />
2497
+ </ion-label>
2498
+ <ion-input
2499
+ type="password"
2500
+ spellcheck="false"
2501
+ autocorrect="off"
2502
+ autocomplete="new-password"
2503
+ [pattern]="_auth.getPasswordPolicyPatternForInput()"
2504
+ [clearOnEdit]="false"
2505
+ [placeholder]="'IDEA_AUTH.PASSWORD' | translate"
2506
+ [title]="'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate"
2507
+ [ngModelOptions]="{ standalone: true }"
2508
+ [(ngModel)]="newPassword"
2509
+ (keyup.enter)="confirmNewPassword()"
2510
+ />
2511
+ <ion-button slot="end" fill="clear" color="dark" (click)="openPasswordPolicy($event)">
2512
+ <ion-icon icon="help-circle-outline" slot="icon-only" />
2513
+ </ion-button>
2514
+ </ion-item>
2515
+ <ion-button
2516
+ expand="block"
2517
+ [title]="'IDEA_AUTH.CONFIRM_NEW_PASSWORD_HINT' | translate"
2518
+ (click)="confirmNewPassword()"
2519
+ >
2520
+ {{ 'IDEA_AUTH.CONFIRM_NEW_PASSWORD' | translate }}
2521
+ </ion-button>
2522
+ <ion-button
2523
+ fill="clear"
2524
+ expand="block"
2525
+ class="smallCaseButton"
2526
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
2527
+ (click)="goToAuth()"
2528
+ >
2529
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
2530
+ </ion-button>
2531
+ </ion-card-content>
2532
+ </ion-card>
2533
+ </form>
2534
+ </ion-content>
2535
+ `, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
1813
2536
  }], ctorParameters: () => [] });
1814
2537
 
1815
2538
  class IDEAResendLinkPage {
@@ -1844,12 +2567,134 @@ class IDEAResendLinkPage {
1844
2567
  goToAuth() {
1845
2568
  this._nav.navigateBack(['auth']);
1846
2569
  }
1847
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAResendLinkPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1848
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEAResendLinkPage, selector: "idea-resend-link", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CONFIRM_ACCOUNT' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.RESEND_CONFIRMATION_LINK_HINT' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n @if (errorMsg) {\n <p class=\"errorBox\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n }\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"resendConfirmationLink()\"\n />\n </ion-item>\n <ion-button\n expand=\"block\"\n [title]=\"'IDEA_AUTH.RESEND_LINK_HINT' | translate\"\n (click)=\"resendConfirmationLink()\"\n >\n {{ 'IDEA_AUTH.RESEND_LINK' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i2.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
2570
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAResendLinkPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2571
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAResendLinkPage, isStandalone: true, selector: "idea-resend-link", ngImport: i0, template: `
2572
+ <ion-content>
2573
+ <form class="flexBox">
2574
+ <ion-card class="authCard">
2575
+ <ion-card-header>
2576
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.CONFIRM_ACCOUNT' | translate }}</ion-card-title>
2577
+ <ion-card-subtitle>{{ 'IDEA_AUTH.RESEND_CONFIRMATION_LINK_HINT' | translate }}</ion-card-subtitle>
2578
+ </ion-card-header>
2579
+ <ion-card-content>
2580
+ @if (errorMsg) {
2581
+ <p class="errorBox">
2582
+ <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>
2583
+ {{ errorMsg }}
2584
+ </p>
2585
+ }
2586
+ <ion-item>
2587
+ <ion-label position="inline">
2588
+ <ion-icon name="person-circle" color="primary" />
2589
+ </ion-label>
2590
+ <ion-input
2591
+ type="email"
2592
+ inputmode="email"
2593
+ pattern="[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}"
2594
+ spellcheck="false"
2595
+ autocorrect="off"
2596
+ autocomplete="email"
2597
+ [placeholder]="'IDEA_AUTH.EMAIL' | translate"
2598
+ [title]="'IDEA_AUTH.EMAIL_HINT' | translate"
2599
+ [ngModelOptions]="{ standalone: true }"
2600
+ [(ngModel)]="email"
2601
+ (keyup.enter)="resendConfirmationLink()"
2602
+ />
2603
+ </ion-item>
2604
+ <ion-button
2605
+ expand="block"
2606
+ [title]="'IDEA_AUTH.RESEND_LINK_HINT' | translate"
2607
+ (click)="resendConfirmationLink()"
2608
+ >
2609
+ {{ 'IDEA_AUTH.RESEND_LINK' | translate }}
2610
+ </ion-button>
2611
+ <ion-button
2612
+ fill="clear"
2613
+ expand="block"
2614
+ class="smallCaseButton"
2615
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
2616
+ (click)="goToAuth()"
2617
+ >
2618
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
2619
+ </ion-button>
2620
+ </ion-card-content>
2621
+ </ion-card>
2622
+ </form>
2623
+ </ion-content>
2624
+ `, isInline: true, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }] }); }
1849
2625
  }
1850
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAResendLinkPage, decorators: [{
2626
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAResendLinkPage, decorators: [{
1851
2627
  type: Component,
1852
- args: [{ selector: 'idea-resend-link', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CONFIRM_ACCOUNT' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.RESEND_CONFIRMATION_LINK_HINT' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n @if (errorMsg) {\n <p class=\"errorBox\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n }\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"resendConfirmationLink()\"\n />\n </ion-item>\n <ion-button\n expand=\"block\"\n [title]=\"'IDEA_AUTH.RESEND_LINK_HINT' | translate\"\n (click)=\"resendConfirmationLink()\"\n >\n {{ 'IDEA_AUTH.RESEND_LINK' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
2628
+ args: [{ selector: 'idea-resend-link', standalone: true, imports: [
2629
+ CommonModule,
2630
+ FormsModule,
2631
+ IDEATranslatePipe,
2632
+ IonButton,
2633
+ IonLabel,
2634
+ IonItem,
2635
+ IonInput,
2636
+ IonCardSubtitle,
2637
+ IonCardContent,
2638
+ IonCardTitle,
2639
+ IonCardHeader,
2640
+ IonCard,
2641
+ IonIcon,
2642
+ IonContent,
2643
+ IonInput
2644
+ ], template: `
2645
+ <ion-content>
2646
+ <form class="flexBox">
2647
+ <ion-card class="authCard">
2648
+ <ion-card-header>
2649
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.CONFIRM_ACCOUNT' | translate }}</ion-card-title>
2650
+ <ion-card-subtitle>{{ 'IDEA_AUTH.RESEND_CONFIRMATION_LINK_HINT' | translate }}</ion-card-subtitle>
2651
+ </ion-card-header>
2652
+ <ion-card-content>
2653
+ @if (errorMsg) {
2654
+ <p class="errorBox">
2655
+ <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>
2656
+ {{ errorMsg }}
2657
+ </p>
2658
+ }
2659
+ <ion-item>
2660
+ <ion-label position="inline">
2661
+ <ion-icon name="person-circle" color="primary" />
2662
+ </ion-label>
2663
+ <ion-input
2664
+ type="email"
2665
+ inputmode="email"
2666
+ pattern="[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}"
2667
+ spellcheck="false"
2668
+ autocorrect="off"
2669
+ autocomplete="email"
2670
+ [placeholder]="'IDEA_AUTH.EMAIL' | translate"
2671
+ [title]="'IDEA_AUTH.EMAIL_HINT' | translate"
2672
+ [ngModelOptions]="{ standalone: true }"
2673
+ [(ngModel)]="email"
2674
+ (keyup.enter)="resendConfirmationLink()"
2675
+ />
2676
+ </ion-item>
2677
+ <ion-button
2678
+ expand="block"
2679
+ [title]="'IDEA_AUTH.RESEND_LINK_HINT' | translate"
2680
+ (click)="resendConfirmationLink()"
2681
+ >
2682
+ {{ 'IDEA_AUTH.RESEND_LINK' | translate }}
2683
+ </ion-button>
2684
+ <ion-button
2685
+ fill="clear"
2686
+ expand="block"
2687
+ class="smallCaseButton"
2688
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
2689
+ (click)="goToAuth()"
2690
+ >
2691
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
2692
+ </ion-button>
2693
+ </ion-card-content>
2694
+ </ion-card>
2695
+ </form>
2696
+ </ion-content>
2697
+ `, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
1853
2698
  }] });
1854
2699
 
1855
2700
  class IDEAForgotPasswordPage {
@@ -1879,12 +2724,139 @@ class IDEAForgotPasswordPage {
1879
2724
  goToAuth() {
1880
2725
  this._nav.navigateBack(['auth']);
1881
2726
  }
1882
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAForgotPasswordPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1883
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: IDEAForgotPasswordPage, selector: "idea-forgot-password", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.PASSWORD_RESET' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.PASSWORD_RESET_HINT' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"forgotPassword()\"\n />\n </ion-item>\n <ion-button expand=\"block\" [title]=\"'IDEA_AUTH.RESET_MY_PASSWORD_HINT' | translate\" (click)=\"forgotPassword()\">\n {{ 'IDEA_AUTH.RESET_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE_HINT' | translate\"\n (click)=\"goToConfirmPassword()\"\n >\n {{ 'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i2.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
2727
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAForgotPasswordPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2728
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: IDEAForgotPasswordPage, isStandalone: true, selector: "idea-forgot-password", ngImport: i0, template: `
2729
+ <ion-content>
2730
+ <form class="flexBox">
2731
+ <ion-card class="authCard">
2732
+ <ion-card-header>
2733
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.PASSWORD_RESET' | translate }}</ion-card-title>
2734
+ <ion-card-subtitle>{{ 'IDEA_AUTH.PASSWORD_RESET_HINT' | translate }}</ion-card-subtitle>
2735
+ </ion-card-header>
2736
+ <ion-card-content>
2737
+ <ion-item>
2738
+ <ion-label position="inline">
2739
+ <ion-icon name="person-circle" color="primary" />
2740
+ </ion-label>
2741
+ <ion-input
2742
+ type="email"
2743
+ inputmode="email"
2744
+ pattern="[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}"
2745
+ spellcheck="false"
2746
+ autocorrect="off"
2747
+ autocomplete="email"
2748
+ [placeholder]="'IDEA_AUTH.EMAIL' | translate"
2749
+ [title]="'IDEA_AUTH.EMAIL_HINT' | translate"
2750
+ [ngModelOptions]="{ standalone: true }"
2751
+ [(ngModel)]="email"
2752
+ (keyup.enter)="forgotPassword()"
2753
+ />
2754
+ </ion-item>
2755
+ <ion-button
2756
+ expand="block"
2757
+ [title]="'IDEA_AUTH.RESET_MY_PASSWORD_HINT' | translate"
2758
+ (click)="forgotPassword()"
2759
+ >
2760
+ {{ 'IDEA_AUTH.RESET_MY_PASSWORD' | translate }}
2761
+ </ion-button>
2762
+ <ion-button
2763
+ fill="clear"
2764
+ expand="block"
2765
+ class="smallCaseButton"
2766
+ [title]="'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE_HINT' | translate"
2767
+ (click)="goToConfirmPassword()"
2768
+ >
2769
+ {{ 'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE' | translate }}
2770
+ </ion-button>
2771
+ <ion-button
2772
+ fill="clear"
2773
+ expand="block"
2774
+ class="smallCaseButton"
2775
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
2776
+ (click)="goToAuth()"
2777
+ >
2778
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
2779
+ </ion-button>
2780
+ </ion-card-content>
2781
+ </ion-card>
2782
+ </form>
2783
+ </ion-content>
2784
+ `, isInline: true, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
1884
2785
  }
1885
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAForgotPasswordPage, decorators: [{
2786
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAForgotPasswordPage, decorators: [{
1886
2787
  type: Component,
1887
- args: [{ selector: 'idea-forgot-password', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.PASSWORD_RESET' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.PASSWORD_RESET_HINT' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"forgotPassword()\"\n />\n </ion-item>\n <ion-button expand=\"block\" [title]=\"'IDEA_AUTH.RESET_MY_PASSWORD_HINT' | translate\" (click)=\"forgotPassword()\">\n {{ 'IDEA_AUTH.RESET_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE_HINT' | translate\"\n (click)=\"goToConfirmPassword()\"\n >\n {{ 'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
2788
+ args: [{ selector: 'idea-forgot-password', standalone: true, imports: [
2789
+ CommonModule,
2790
+ FormsModule,
2791
+ IDEATranslatePipe,
2792
+ IonButton,
2793
+ IonIcon,
2794
+ IonLabel,
2795
+ IonItem,
2796
+ IonCardContent,
2797
+ IonCardSubtitle,
2798
+ IonCardTitle,
2799
+ IonCardHeader,
2800
+ IonCard,
2801
+ IonContent,
2802
+ IonInput
2803
+ ], template: `
2804
+ <ion-content>
2805
+ <form class="flexBox">
2806
+ <ion-card class="authCard">
2807
+ <ion-card-header>
2808
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.PASSWORD_RESET' | translate }}</ion-card-title>
2809
+ <ion-card-subtitle>{{ 'IDEA_AUTH.PASSWORD_RESET_HINT' | translate }}</ion-card-subtitle>
2810
+ </ion-card-header>
2811
+ <ion-card-content>
2812
+ <ion-item>
2813
+ <ion-label position="inline">
2814
+ <ion-icon name="person-circle" color="primary" />
2815
+ </ion-label>
2816
+ <ion-input
2817
+ type="email"
2818
+ inputmode="email"
2819
+ pattern="[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}"
2820
+ spellcheck="false"
2821
+ autocorrect="off"
2822
+ autocomplete="email"
2823
+ [placeholder]="'IDEA_AUTH.EMAIL' | translate"
2824
+ [title]="'IDEA_AUTH.EMAIL_HINT' | translate"
2825
+ [ngModelOptions]="{ standalone: true }"
2826
+ [(ngModel)]="email"
2827
+ (keyup.enter)="forgotPassword()"
2828
+ />
2829
+ </ion-item>
2830
+ <ion-button
2831
+ expand="block"
2832
+ [title]="'IDEA_AUTH.RESET_MY_PASSWORD_HINT' | translate"
2833
+ (click)="forgotPassword()"
2834
+ >
2835
+ {{ 'IDEA_AUTH.RESET_MY_PASSWORD' | translate }}
2836
+ </ion-button>
2837
+ <ion-button
2838
+ fill="clear"
2839
+ expand="block"
2840
+ class="smallCaseButton"
2841
+ [title]="'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE_HINT' | translate"
2842
+ (click)="goToConfirmPassword()"
2843
+ >
2844
+ {{ 'IDEA_AUTH.ALREADY_HAVE_A_RESET_CODE' | translate }}
2845
+ </ion-button>
2846
+ <ion-button
2847
+ fill="clear"
2848
+ expand="block"
2849
+ class="smallCaseButton"
2850
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
2851
+ (click)="goToAuth()"
2852
+ >
2853
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
2854
+ </ion-button>
2855
+ </ion-card-content>
2856
+ </ion-card>
2857
+ </form>
2858
+ </ion-content>
2859
+ `, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
1888
2860
  }] });
1889
2861
 
1890
2862
  class IDEAConfirmPasswordPage {
@@ -1944,12 +2916,222 @@ class IDEAConfirmPasswordPage {
1944
2916
  goToAuth() {
1945
2917
  this._nav.navigateBack(['auth']);
1946
2918
  }
1947
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAConfirmPasswordPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1948
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEAConfirmPasswordPage, selector: "idea-confirm-password", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CHANGE_THE_PASSWORD' | translate }}</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n @if (errorMsg) {\n <p class=\"errorBox\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n }\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"confirmPassword()\"\n />\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"disc\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"text\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n [placeholder]=\"'IDEA_AUTH.RESET_CODE' | translate\"\n [title]=\"'IDEA_AUTH.RESET_CODE_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"code\"\n (keyup.enter)=\"confirmPassword()\"\n />\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"password\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n [pattern]=\"_auth.getPasswordPolicyPatternForInput()\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"'IDEA_AUTH.NEW_PASSWORD' | translate\"\n [title]=\"'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"newPassword\"\n (keyup.enter)=\"confirmPassword()\"\n />\n <ion-button slot=\"end\" fill=\"clear\" color=\"dark\" (click)=\"openPasswordPolicy($event)\">\n <ion-icon icon=\"help-circle-outline\" slot=\"icon-only\" />\n </ion-button>\n </ion-item>\n <ion-button\n expand=\"block\"\n [title]=\"'IDEA_AUTH.CHANGE_MY_PASSWORD_HINT' | translate\"\n (click)=\"confirmPassword()\"\n >\n {{ 'IDEA_AUTH.CHANGE_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE_HINT' | translate\"\n (click)=\"goToForgotPassword()\"\n >\n {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
2919
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAConfirmPasswordPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2920
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAConfirmPasswordPage, isStandalone: true, selector: "idea-confirm-password", ngImport: i0, template: `
2921
+ <ion-content>
2922
+ <form class="flexBox">
2923
+ <ion-card class="authCard">
2924
+ <ion-card-header>
2925
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.CHANGE_THE_PASSWORD' | translate }}</ion-card-title>
2926
+ </ion-card-header>
2927
+ <ion-card-content>
2928
+ @if (errorMsg) {
2929
+ <p class="errorBox">
2930
+ <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>
2931
+ {{ errorMsg }}
2932
+ </p>
2933
+ }
2934
+ <ion-item>
2935
+ <ion-label position="inline">
2936
+ <ion-icon name="person-circle" color="primary" />
2937
+ </ion-label>
2938
+ <ion-input
2939
+ type="email"
2940
+ inputmode="email"
2941
+ pattern="[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}"
2942
+ spellcheck="false"
2943
+ autocorrect="off"
2944
+ autocomplete="email"
2945
+ [placeholder]="'IDEA_AUTH.EMAIL' | translate"
2946
+ [title]="'IDEA_AUTH.EMAIL_HINT' | translate"
2947
+ [ngModelOptions]="{ standalone: true }"
2948
+ [(ngModel)]="email"
2949
+ (keyup.enter)="confirmPassword()"
2950
+ />
2951
+ </ion-item>
2952
+ <ion-item>
2953
+ <ion-label position="inline">
2954
+ <ion-icon name="disc" color="primary" />
2955
+ </ion-label>
2956
+ <ion-input
2957
+ type="text"
2958
+ spellcheck="false"
2959
+ autocorrect="off"
2960
+ autocomplete="off"
2961
+ [placeholder]="'IDEA_AUTH.RESET_CODE' | translate"
2962
+ [title]="'IDEA_AUTH.RESET_CODE_HINT' | translate"
2963
+ [ngModelOptions]="{ standalone: true }"
2964
+ [(ngModel)]="code"
2965
+ (keyup.enter)="confirmPassword()"
2966
+ />
2967
+ </ion-item>
2968
+ <ion-item>
2969
+ <ion-label position="inline">
2970
+ <ion-icon name="key" color="primary" />
2971
+ </ion-label>
2972
+ <ion-input
2973
+ type="password"
2974
+ spellcheck="false"
2975
+ autocorrect="off"
2976
+ autocomplete="new-password"
2977
+ [pattern]="_auth.getPasswordPolicyPatternForInput()"
2978
+ [clearOnEdit]="false"
2979
+ [placeholder]="'IDEA_AUTH.NEW_PASSWORD' | translate"
2980
+ [title]="'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate"
2981
+ [ngModelOptions]="{ standalone: true }"
2982
+ [(ngModel)]="newPassword"
2983
+ (keyup.enter)="confirmPassword()"
2984
+ />
2985
+ <ion-button slot="end" fill="clear" color="dark" (click)="openPasswordPolicy($event)">
2986
+ <ion-icon icon="help-circle-outline" slot="icon-only" />
2987
+ </ion-button>
2988
+ </ion-item>
2989
+ <ion-button
2990
+ expand="block"
2991
+ [title]="'IDEA_AUTH.CHANGE_MY_PASSWORD_HINT' | translate"
2992
+ (click)="confirmPassword()"
2993
+ >
2994
+ {{ 'IDEA_AUTH.CHANGE_MY_PASSWORD' | translate }}
2995
+ </ion-button>
2996
+ <ion-button
2997
+ fill="clear"
2998
+ expand="block"
2999
+ class="smallCaseButton"
3000
+ [title]="'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE_HINT' | translate"
3001
+ (click)="goToForgotPassword()"
3002
+ >
3003
+ {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE' | translate }}
3004
+ </ion-button>
3005
+ <ion-button
3006
+ fill="clear"
3007
+ expand="block"
3008
+ class="smallCaseButton"
3009
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
3010
+ (click)="goToAuth()"
3011
+ >
3012
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
3013
+ </ion-button>
3014
+ </ion-card-content>
3015
+ </ion-card>
3016
+ </form>
3017
+ </ion-content>
3018
+ `, isInline: true, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
1949
3019
  }
1950
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAConfirmPasswordPage, decorators: [{
3020
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAConfirmPasswordPage, decorators: [{
1951
3021
  type: Component,
1952
- args: [{ selector: 'idea-confirm-password', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.CHANGE_THE_PASSWORD' | translate }}</ion-card-title>\n </ion-card-header>\n <ion-card-content>\n @if (errorMsg) {\n <p class=\"errorBox\">\n <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>\n {{ errorMsg }}\n </p>\n }\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"person-circle\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"email\"\n inputmode=\"email\"\n pattern=\"[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"email\"\n [placeholder]=\"'IDEA_AUTH.EMAIL' | translate\"\n [title]=\"'IDEA_AUTH.EMAIL_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"email\"\n (keyup.enter)=\"confirmPassword()\"\n />\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"disc\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"text\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n [placeholder]=\"'IDEA_AUTH.RESET_CODE' | translate\"\n [title]=\"'IDEA_AUTH.RESET_CODE_HINT' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"code\"\n (keyup.enter)=\"confirmPassword()\"\n />\n </ion-item>\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\" />\n </ion-label>\n <ion-input\n type=\"password\"\n spellcheck=\"false\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n [pattern]=\"_auth.getPasswordPolicyPatternForInput()\"\n [clearOnEdit]=\"false\"\n [placeholder]=\"'IDEA_AUTH.NEW_PASSWORD' | translate\"\n [title]=\"'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"newPassword\"\n (keyup.enter)=\"confirmPassword()\"\n />\n <ion-button slot=\"end\" fill=\"clear\" color=\"dark\" (click)=\"openPasswordPolicy($event)\">\n <ion-icon icon=\"help-circle-outline\" slot=\"icon-only\" />\n </ion-button>\n </ion-item>\n <ion-button\n expand=\"block\"\n [title]=\"'IDEA_AUTH.CHANGE_MY_PASSWORD_HINT' | translate\"\n (click)=\"confirmPassword()\"\n >\n {{ 'IDEA_AUTH.CHANGE_MY_PASSWORD' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE_HINT' | translate\"\n (click)=\"goToForgotPassword()\"\n >\n {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
3022
+ args: [{ selector: 'idea-confirm-password', standalone: true, imports: [
3023
+ CommonModule,
3024
+ FormsModule,
3025
+ IDEATranslatePipe,
3026
+ IonButton,
3027
+ IonIcon,
3028
+ IonLabel,
3029
+ IonItem,
3030
+ IonCardContent,
3031
+ IonCardTitle,
3032
+ IonCard,
3033
+ IonCardHeader,
3034
+ IonContent,
3035
+ IonInput
3036
+ ], template: `
3037
+ <ion-content>
3038
+ <form class="flexBox">
3039
+ <ion-card class="authCard">
3040
+ <ion-card-header>
3041
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.CHANGE_THE_PASSWORD' | translate }}</ion-card-title>
3042
+ </ion-card-header>
3043
+ <ion-card-content>
3044
+ @if (errorMsg) {
3045
+ <p class="errorBox">
3046
+ <b> {{ 'IDEA_AUTH.ERROR' | translate }}. </b>
3047
+ {{ errorMsg }}
3048
+ </p>
3049
+ }
3050
+ <ion-item>
3051
+ <ion-label position="inline">
3052
+ <ion-icon name="person-circle" color="primary" />
3053
+ </ion-label>
3054
+ <ion-input
3055
+ type="email"
3056
+ inputmode="email"
3057
+ pattern="[A-Za-z0-9._%+-]{2,}@[a-zA-Z-_.]{2,}[.]{1}[a-zA-Z]{2,}"
3058
+ spellcheck="false"
3059
+ autocorrect="off"
3060
+ autocomplete="email"
3061
+ [placeholder]="'IDEA_AUTH.EMAIL' | translate"
3062
+ [title]="'IDEA_AUTH.EMAIL_HINT' | translate"
3063
+ [ngModelOptions]="{ standalone: true }"
3064
+ [(ngModel)]="email"
3065
+ (keyup.enter)="confirmPassword()"
3066
+ />
3067
+ </ion-item>
3068
+ <ion-item>
3069
+ <ion-label position="inline">
3070
+ <ion-icon name="disc" color="primary" />
3071
+ </ion-label>
3072
+ <ion-input
3073
+ type="text"
3074
+ spellcheck="false"
3075
+ autocorrect="off"
3076
+ autocomplete="off"
3077
+ [placeholder]="'IDEA_AUTH.RESET_CODE' | translate"
3078
+ [title]="'IDEA_AUTH.RESET_CODE_HINT' | translate"
3079
+ [ngModelOptions]="{ standalone: true }"
3080
+ [(ngModel)]="code"
3081
+ (keyup.enter)="confirmPassword()"
3082
+ />
3083
+ </ion-item>
3084
+ <ion-item>
3085
+ <ion-label position="inline">
3086
+ <ion-icon name="key" color="primary" />
3087
+ </ion-label>
3088
+ <ion-input
3089
+ type="password"
3090
+ spellcheck="false"
3091
+ autocorrect="off"
3092
+ autocomplete="new-password"
3093
+ [pattern]="_auth.getPasswordPolicyPatternForInput()"
3094
+ [clearOnEdit]="false"
3095
+ [placeholder]="'IDEA_AUTH.NEW_PASSWORD' | translate"
3096
+ [title]="'IDEA_AUTH.CHOOSE_A_PASSWORD' | translate"
3097
+ [ngModelOptions]="{ standalone: true }"
3098
+ [(ngModel)]="newPassword"
3099
+ (keyup.enter)="confirmPassword()"
3100
+ />
3101
+ <ion-button slot="end" fill="clear" color="dark" (click)="openPasswordPolicy($event)">
3102
+ <ion-icon icon="help-circle-outline" slot="icon-only" />
3103
+ </ion-button>
3104
+ </ion-item>
3105
+ <ion-button
3106
+ expand="block"
3107
+ [title]="'IDEA_AUTH.CHANGE_MY_PASSWORD_HINT' | translate"
3108
+ (click)="confirmPassword()"
3109
+ >
3110
+ {{ 'IDEA_AUTH.CHANGE_MY_PASSWORD' | translate }}
3111
+ </ion-button>
3112
+ <ion-button
3113
+ fill="clear"
3114
+ expand="block"
3115
+ class="smallCaseButton"
3116
+ [title]="'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE_HINT' | translate"
3117
+ (click)="goToForgotPassword()"
3118
+ >
3119
+ {{ 'IDEA_AUTH.HAVEN_T_RECEIVED_A_RESET_CODE' | translate }}
3120
+ </ion-button>
3121
+ <ion-button
3122
+ fill="clear"
3123
+ expand="block"
3124
+ class="smallCaseButton"
3125
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
3126
+ (click)="goToAuth()"
3127
+ >
3128
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
3129
+ </ion-button>
3130
+ </ion-card-content>
3131
+ </ion-card>
3132
+ </form>
3133
+ </ion-content>
3134
+ `, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
1953
3135
  }], ctorParameters: () => [] });
1954
3136
 
1955
3137
  class IDEAMFAChallengePage {
@@ -1982,12 +3164,123 @@ class IDEAMFAChallengePage {
1982
3164
  goToAuth() {
1983
3165
  this._nav.navigateBack(['auth']);
1984
3166
  }
1985
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAMFAChallengePage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1986
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEAMFAChallengePage, selector: "idea-mfa-challenge", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.ENTER_OTP_CODE' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.ENTER_OTP_CODE_I' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n @if (errorMsg) {\n <p class=\"errorBox\">\n <b>{{ 'IDEA_AUTH.ERROR' | translate }}.</b>\n {{ errorMsg }}\n </p>\n }\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\" />\n </ion-label>\n <ion-input\n inputmode=\"numeric\"\n [placeholder]=\"'IDEA_AUTH.OTP_CODE' | translate\"\n [title]=\"'IDEA_AUTH.ENTER_OTP_CODE' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"otpCode\"\n (keyup.enter)=\"completeMFAChallenge()\"\n />\n </ion-item>\n <ion-button\n expand=\"block\"\n [title]=\"'IDEA_AUTH.CONFIRM_OTP_CODE_HINT' | translate\"\n (click)=\"completeMFAChallenge()\"\n >\n {{ 'IDEA_AUTH.CONFIRM_OTP_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i2.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
3167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMFAChallengePage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3168
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAMFAChallengePage, isStandalone: true, selector: "idea-mfa-challenge", ngImport: i0, template: `
3169
+ <ion-content>
3170
+ <form class="flexBox">
3171
+ <ion-card class="authCard">
3172
+ <ion-card-header>
3173
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.ENTER_OTP_CODE' | translate }}</ion-card-title>
3174
+ <ion-card-subtitle>{{ 'IDEA_AUTH.ENTER_OTP_CODE_I' | translate }}</ion-card-subtitle>
3175
+ </ion-card-header>
3176
+ <ion-card-content>
3177
+ @if (errorMsg) {
3178
+ <p class="errorBox">
3179
+ <b>{{ 'IDEA_AUTH.ERROR' | translate }}.</b>
3180
+ {{ errorMsg }}
3181
+ </p>
3182
+ }
3183
+ <ion-item>
3184
+ <ion-label position="inline">
3185
+ <ion-icon name="key" color="primary" />
3186
+ </ion-label>
3187
+ <ion-input
3188
+ inputmode="numeric"
3189
+ [placeholder]="'IDEA_AUTH.OTP_CODE' | translate"
3190
+ [title]="'IDEA_AUTH.ENTER_OTP_CODE' | translate"
3191
+ [ngModelOptions]="{ standalone: true }"
3192
+ [(ngModel)]="otpCode"
3193
+ (keyup.enter)="completeMFAChallenge()"
3194
+ />
3195
+ </ion-item>
3196
+ <ion-button
3197
+ expand="block"
3198
+ [title]="'IDEA_AUTH.CONFIRM_OTP_CODE_HINT' | translate"
3199
+ (click)="completeMFAChallenge()"
3200
+ >
3201
+ {{ 'IDEA_AUTH.CONFIRM_OTP_CODE' | translate }}
3202
+ </ion-button>
3203
+ <ion-button
3204
+ fill="clear"
3205
+ expand="block"
3206
+ class="smallCaseButton"
3207
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
3208
+ (click)="goToAuth()"
3209
+ >
3210
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
3211
+ </ion-button>
3212
+ </ion-card-content>
3213
+ </ion-card>
3214
+ </form>
3215
+ </ion-content>
3216
+ `, isInline: true, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
1987
3217
  }
1988
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAMFAChallengePage, decorators: [{
3218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAMFAChallengePage, decorators: [{
1989
3219
  type: Component,
1990
- args: [{ selector: 'idea-mfa-challenge', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.ENTER_OTP_CODE' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.ENTER_OTP_CODE_I' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n @if (errorMsg) {\n <p class=\"errorBox\">\n <b>{{ 'IDEA_AUTH.ERROR' | translate }}.</b>\n {{ errorMsg }}\n </p>\n }\n <ion-item>\n <ion-label position=\"inline\">\n <ion-icon name=\"key\" color=\"primary\" />\n </ion-label>\n <ion-input\n inputmode=\"numeric\"\n [placeholder]=\"'IDEA_AUTH.OTP_CODE' | translate\"\n [title]=\"'IDEA_AUTH.ENTER_OTP_CODE' | translate\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"otpCode\"\n (keyup.enter)=\"completeMFAChallenge()\"\n />\n </ion-item>\n <ion-button\n expand=\"block\"\n [title]=\"'IDEA_AUTH.CONFIRM_OTP_CODE_HINT' | translate\"\n (click)=\"completeMFAChallenge()\"\n >\n {{ 'IDEA_AUTH.CONFIRM_OTP_CODE' | translate }}\n </ion-button>\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
3220
+ args: [{ selector: 'idea-mfa-challenge', standalone: true, imports: [
3221
+ CommonModule,
3222
+ FormsModule,
3223
+ IDEATranslatePipe,
3224
+ IonButton,
3225
+ IonIcon,
3226
+ IonLabel,
3227
+ IonCardContent,
3228
+ IonItem,
3229
+ IonCardSubtitle,
3230
+ IonCardTitle,
3231
+ IonCardHeader,
3232
+ IonCard,
3233
+ IonContent,
3234
+ IonInput
3235
+ ], template: `
3236
+ <ion-content>
3237
+ <form class="flexBox">
3238
+ <ion-card class="authCard">
3239
+ <ion-card-header>
3240
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.ENTER_OTP_CODE' | translate }}</ion-card-title>
3241
+ <ion-card-subtitle>{{ 'IDEA_AUTH.ENTER_OTP_CODE_I' | translate }}</ion-card-subtitle>
3242
+ </ion-card-header>
3243
+ <ion-card-content>
3244
+ @if (errorMsg) {
3245
+ <p class="errorBox">
3246
+ <b>{{ 'IDEA_AUTH.ERROR' | translate }}.</b>
3247
+ {{ errorMsg }}
3248
+ </p>
3249
+ }
3250
+ <ion-item>
3251
+ <ion-label position="inline">
3252
+ <ion-icon name="key" color="primary" />
3253
+ </ion-label>
3254
+ <ion-input
3255
+ inputmode="numeric"
3256
+ [placeholder]="'IDEA_AUTH.OTP_CODE' | translate"
3257
+ [title]="'IDEA_AUTH.ENTER_OTP_CODE' | translate"
3258
+ [ngModelOptions]="{ standalone: true }"
3259
+ [(ngModel)]="otpCode"
3260
+ (keyup.enter)="completeMFAChallenge()"
3261
+ />
3262
+ </ion-item>
3263
+ <ion-button
3264
+ expand="block"
3265
+ [title]="'IDEA_AUTH.CONFIRM_OTP_CODE_HINT' | translate"
3266
+ (click)="completeMFAChallenge()"
3267
+ >
3268
+ {{ 'IDEA_AUTH.CONFIRM_OTP_CODE' | translate }}
3269
+ </ion-button>
3270
+ <ion-button
3271
+ fill="clear"
3272
+ expand="block"
3273
+ class="smallCaseButton"
3274
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
3275
+ (click)="goToAuth()"
3276
+ >
3277
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
3278
+ </ion-button>
3279
+ </ion-card-content>
3280
+ </ion-card>
3281
+ </form>
3282
+ </ion-content>
3283
+ `, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
1991
3284
  }] });
1992
3285
 
1993
3286
  class IDEASetupMFAModalComponent {
@@ -2051,22 +3344,120 @@ class IDEASetupMFAModalComponent {
2051
3344
  close() {
2052
3345
  this._modal.dismiss();
2053
3346
  }
2054
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASetupMFAModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2055
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEASetupMFAModalComponent, selector: "idea-setup-mfa-modal", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button [title]=\"'COMMON.CLOSE' | translate\" (click)=\"close()\">\n <ion-icon name=\"close-circle-outline\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>{{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA' : 'IDEA_AUTH.SETUP_MFA') | translate }}</ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content class=\"ion-padding\">\n <ion-list class=\"aList\">\n <ion-list-header>\n <ion-label class=\"ion-text-center\">\n <h2>{{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA_I' : 'IDEA_AUTH.SETUP_MFA_I') | translate }}</h2>\n <p>{{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA_II' : 'IDEA_AUTH.SETUP_MFA_II') | translate }}</p>\n </ion-label>\n </ion-list-header>\n <ion-card color=\"white\">\n <ion-card-content>\n @if (!isMFAEnabled) {\n <div id=\"qrCodeContainer\"></div>\n }\n <ion-item color=\"light\">\n <ion-input\n type=\"text\"\n inputmode=\"numeric\"\n labelPlacement=\"floating\"\n [label]=\"'IDEA_AUTH.OTP_CODE' | translate\"\n [(ngModel)]=\"otpCode\"\n />\n </ion-item>\n <ion-button expand=\"block\" class=\"ion-margin-top\" [disabled]=\"!otpCode\" (click)=\"setMFA(!isMFAEnabled)\">\n {{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA' : 'IDEA_AUTH.ENABLE_MFA') | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </ion-list>\n</ion-content>\n", styles: ["ion-list.aList{padding-top:0}ion-list.aList ion-card{margin:10px auto;max-width:300px}ion-list.aList #qrCodeContainer{width:180px;margin:10px auto}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonListHeader, selector: "ion-list-header", inputs: ["color", "lines", "mode"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
3347
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASetupMFAModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3348
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEASetupMFAModalComponent, isStandalone: true, selector: "idea-setup-mfa-modal", ngImport: i0, template: `
3349
+ <ion-header>
3350
+ <ion-toolbar color="ideaToolbar">
3351
+ <ion-buttons slot="start">
3352
+ <ion-button [title]="'COMMON.CLOSE' | translate" (click)="close()">
3353
+ <ion-icon name="close-circle-outline" slot="icon-only" />
3354
+ </ion-button>
3355
+ </ion-buttons>
3356
+ <ion-title>{{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA' : 'IDEA_AUTH.SETUP_MFA') | translate }}</ion-title>
3357
+ </ion-toolbar>
3358
+ </ion-header>
3359
+ <ion-content class="ion-padding">
3360
+ <ion-list class="aList">
3361
+ <ion-list-header>
3362
+ <ion-label class="ion-text-center">
3363
+ <h2>{{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA_I' : 'IDEA_AUTH.SETUP_MFA_I') | translate }}</h2>
3364
+ <p>{{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA_II' : 'IDEA_AUTH.SETUP_MFA_II') | translate }}</p>
3365
+ </ion-label>
3366
+ </ion-list-header>
3367
+ <ion-card color="white">
3368
+ <ion-card-content>
3369
+ @if (!isMFAEnabled) {
3370
+ <div id="qrCodeContainer"></div>
3371
+ }
3372
+ <ion-item color="light">
3373
+ <ion-input
3374
+ type="text"
3375
+ inputmode="numeric"
3376
+ labelPlacement="floating"
3377
+ [label]="'IDEA_AUTH.OTP_CODE' | translate"
3378
+ [(ngModel)]="otpCode"
3379
+ />
3380
+ </ion-item>
3381
+ <ion-button expand="block" class="ion-margin-top" [disabled]="!otpCode" (click)="setMFA(!isMFAEnabled)">
3382
+ {{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA' : 'IDEA_AUTH.ENABLE_MFA') | translate }}
3383
+ </ion-button>
3384
+ </ion-card-content>
3385
+ </ion-card>
3386
+ </ion-list>
3387
+ </ion-content>
3388
+ `, isInline: true, styles: ["ion-list.aList{padding-top:0}ion-list.aList ion-card{margin:10px auto;max-width:300px}ion-list.aList #qrCodeContainer{width:180px;margin:10px auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonListHeader, selector: "ion-list-header", inputs: ["color", "lines", "mode"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
2056
3389
  }
2057
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASetupMFAModalComponent, decorators: [{
3390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASetupMFAModalComponent, decorators: [{
2058
3391
  type: Component,
2059
- args: [{ selector: 'idea-setup-mfa-modal', template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button [title]=\"'COMMON.CLOSE' | translate\" (click)=\"close()\">\n <ion-icon name=\"close-circle-outline\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>{{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA' : 'IDEA_AUTH.SETUP_MFA') | translate }}</ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content class=\"ion-padding\">\n <ion-list class=\"aList\">\n <ion-list-header>\n <ion-label class=\"ion-text-center\">\n <h2>{{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA_I' : 'IDEA_AUTH.SETUP_MFA_I') | translate }}</h2>\n <p>{{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA_II' : 'IDEA_AUTH.SETUP_MFA_II') | translate }}</p>\n </ion-label>\n </ion-list-header>\n <ion-card color=\"white\">\n <ion-card-content>\n @if (!isMFAEnabled) {\n <div id=\"qrCodeContainer\"></div>\n }\n <ion-item color=\"light\">\n <ion-input\n type=\"text\"\n inputmode=\"numeric\"\n labelPlacement=\"floating\"\n [label]=\"'IDEA_AUTH.OTP_CODE' | translate\"\n [(ngModel)]=\"otpCode\"\n />\n </ion-item>\n <ion-button expand=\"block\" class=\"ion-margin-top\" [disabled]=\"!otpCode\" (click)=\"setMFA(!isMFAEnabled)\">\n {{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA' : 'IDEA_AUTH.ENABLE_MFA') | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </ion-list>\n</ion-content>\n", styles: ["ion-list.aList{padding-top:0}ion-list.aList ion-card{margin:10px auto;max-width:300px}ion-list.aList #qrCodeContainer{width:180px;margin:10px auto}\n"] }]
3392
+ args: [{ selector: 'idea-setup-mfa-modal', standalone: true, imports: [
3393
+ CommonModule,
3394
+ FormsModule,
3395
+ IDEATranslatePipe,
3396
+ IonItem,
3397
+ IonCardContent,
3398
+ IonCard,
3399
+ IonLabel,
3400
+ IonListHeader,
3401
+ IonList,
3402
+ IonContent,
3403
+ IonTitle,
3404
+ IonIcon,
3405
+ IonButton,
3406
+ IonButtons,
3407
+ IonToolbar,
3408
+ IonHeader,
3409
+ IonInput
3410
+ ], template: `
3411
+ <ion-header>
3412
+ <ion-toolbar color="ideaToolbar">
3413
+ <ion-buttons slot="start">
3414
+ <ion-button [title]="'COMMON.CLOSE' | translate" (click)="close()">
3415
+ <ion-icon name="close-circle-outline" slot="icon-only" />
3416
+ </ion-button>
3417
+ </ion-buttons>
3418
+ <ion-title>{{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA' : 'IDEA_AUTH.SETUP_MFA') | translate }}</ion-title>
3419
+ </ion-toolbar>
3420
+ </ion-header>
3421
+ <ion-content class="ion-padding">
3422
+ <ion-list class="aList">
3423
+ <ion-list-header>
3424
+ <ion-label class="ion-text-center">
3425
+ <h2>{{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA_I' : 'IDEA_AUTH.SETUP_MFA_I') | translate }}</h2>
3426
+ <p>{{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA_II' : 'IDEA_AUTH.SETUP_MFA_II') | translate }}</p>
3427
+ </ion-label>
3428
+ </ion-list-header>
3429
+ <ion-card color="white">
3430
+ <ion-card-content>
3431
+ @if (!isMFAEnabled) {
3432
+ <div id="qrCodeContainer"></div>
3433
+ }
3434
+ <ion-item color="light">
3435
+ <ion-input
3436
+ type="text"
3437
+ inputmode="numeric"
3438
+ labelPlacement="floating"
3439
+ [label]="'IDEA_AUTH.OTP_CODE' | translate"
3440
+ [(ngModel)]="otpCode"
3441
+ />
3442
+ </ion-item>
3443
+ <ion-button expand="block" class="ion-margin-top" [disabled]="!otpCode" (click)="setMFA(!isMFAEnabled)">
3444
+ {{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA' : 'IDEA_AUTH.ENABLE_MFA') | translate }}
3445
+ </ion-button>
3446
+ </ion-card-content>
3447
+ </ion-card>
3448
+ </ion-list>
3449
+ </ion-content>
3450
+ `, styles: ["ion-list.aList{padding-top:0}ion-list.aList ion-card{margin:10px auto;max-width:300px}ion-list.aList #qrCodeContainer{width:180px;margin:10px auto}\n"] }]
2060
3451
  }] });
2061
3452
 
2062
3453
  class IDEASetupMFAButtonComponent {
2063
3454
  constructor() {
3455
+ this._modal = inject(ModalController);
3456
+ this._auth = inject(IDEAAuthService);
2064
3457
  /**
2065
3458
  * Trigger then the MFA setup changes.
2066
3459
  */
2067
3460
  this.change = new EventEmitter();
2068
- this._modal = inject(ModalController);
2069
- this._auth = inject(IDEAAuthService);
2070
3461
  }
2071
3462
  async ngOnInit() {
2072
3463
  this.isMFAEnabled = await this._auth.checkIfUserHasMFAEnabled(true);
@@ -2081,12 +3472,29 @@ class IDEASetupMFAButtonComponent {
2081
3472
  });
2082
3473
  await modal.present();
2083
3474
  }
2084
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASetupMFAButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2085
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEASetupMFAButtonComponent, selector: "idea-setup-mfa-button", inputs: { color: "color", fill: "fill" }, outputs: { change: "change" }, ngImport: i0, template: "@if (isMFAEnabled !== undefined) {\n <ion-button [color]=\"color\" [fill]=\"fill\" (click)=\"openMFAModal()\">\n {{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA' : 'IDEA_AUTH.SETUP_MFA') | translate }}\n </ion-button>\n}\n", styles: [""], dependencies: [{ kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
3475
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASetupMFAButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3476
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEASetupMFAButtonComponent, isStandalone: true, selector: "idea-setup-mfa-button", inputs: { color: "color", fill: "fill" }, outputs: { change: "change" }, ngImport: i0, template: `
3477
+ @if (isMFAEnabled !== undefined) {
3478
+ <ion-button [color]="color" [fill]="fill" (click)="openMFAModal()">
3479
+ {{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA' : 'IDEA_AUTH.SETUP_MFA') | translate }}
3480
+ </ion-button>
3481
+ }
3482
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }] }); }
2086
3483
  }
2087
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASetupMFAButtonComponent, decorators: [{
3484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASetupMFAButtonComponent, decorators: [{
2088
3485
  type: Component,
2089
- args: [{ selector: 'idea-setup-mfa-button', template: "@if (isMFAEnabled !== undefined) {\n <ion-button [color]=\"color\" [fill]=\"fill\" (click)=\"openMFAModal()\">\n {{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA' : 'IDEA_AUTH.SETUP_MFA') | translate }}\n </ion-button>\n}\n" }]
3486
+ args: [{
3487
+ selector: 'idea-setup-mfa-button',
3488
+ standalone: true,
3489
+ imports: [CommonModule, IDEATranslatePipe, IonButton],
3490
+ template: `
3491
+ @if (isMFAEnabled !== undefined) {
3492
+ <ion-button [color]="color" [fill]="fill" (click)="openMFAModal()">
3493
+ {{ (isMFAEnabled ? 'IDEA_AUTH.DISABLE_MFA' : 'IDEA_AUTH.SETUP_MFA') | translate }}
3494
+ </ion-button>
3495
+ }
3496
+ `
3497
+ }]
2090
3498
  }], propDecorators: { color: [{
2091
3499
  type: Input
2092
3500
  }], fill: [{
@@ -2105,97 +3513,86 @@ class IDEASetupMFAPage {
2105
3513
  goToAuth() {
2106
3514
  this._nav.navigateBack(['auth']);
2107
3515
  }
2108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASetupMFAPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: IDEASetupMFAPage, selector: "idea-mfa-setup", ngImport: i0, template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.SETUP_MFA' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.MFA_IS_MANDATORY' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <idea-setup-mfa-button (change)=\"reloadApp()\" />\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i2.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IDEASetupMFAButtonComponent, selector: "idea-setup-mfa-button", inputs: ["color", "fill"], outputs: ["change"] }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }] }); }
3516
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASetupMFAPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3517
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: IDEASetupMFAPage, isStandalone: true, selector: "idea-mfa-setup", ngImport: i0, template: `
3518
+ <ion-content>
3519
+ <form class="flexBox">
3520
+ <ion-card class="authCard">
3521
+ <ion-card-header>
3522
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.SETUP_MFA' | translate }}</ion-card-title>
3523
+ <ion-card-subtitle>{{ 'IDEA_AUTH.MFA_IS_MANDATORY' | translate }}</ion-card-subtitle>
3524
+ </ion-card-header>
3525
+ <ion-card-content>
3526
+ <idea-setup-mfa-button (change)="reloadApp()" />
3527
+ <ion-button
3528
+ fill="clear"
3529
+ expand="block"
3530
+ class="smallCaseButton"
3531
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
3532
+ (click)="goToAuth()"
3533
+ >
3534
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
3535
+ </ion-button>
3536
+ </ion-card-content>
3537
+ </ion-card>
3538
+ </form>
3539
+ </ion-content>
3540
+ `, isInline: true, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: IDEATranslatePipe, name: "translate" }, { kind: "component", type: IDEASetupMFAButtonComponent, selector: "idea-setup-mfa-button", inputs: ["color", "fill"], outputs: ["change"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }] }); }
2110
3541
  }
2111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASetupMFAPage, decorators: [{
3542
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEASetupMFAPage, decorators: [{
2112
3543
  type: Component,
2113
- args: [{ selector: 'idea-mfa-setup', template: "<ion-content>\n <form class=\"flexBox\">\n <ion-card class=\"authCard\">\n <ion-card-header>\n <ion-card-title color=\"primary\">{{ 'IDEA_AUTH.SETUP_MFA' | translate }}</ion-card-title>\n <ion-card-subtitle>{{ 'IDEA_AUTH.MFA_IS_MANDATORY' | translate }}</ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <idea-setup-mfa-button (change)=\"reloadApp()\" />\n <ion-button\n fill=\"clear\"\n expand=\"block\"\n class=\"smallCaseButton\"\n [title]=\"'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate\"\n (click)=\"goToAuth()\"\n >\n {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}\n </ion-button>\n </ion-card-content>\n </ion-card>\n </form>\n</ion-content>\n", styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
2114
- }] });
2115
-
2116
- class IDEASetupMFAModule {
2117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASetupMFAModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2118
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: IDEASetupMFAModule, declarations: [IDEASetupMFAModalComponent, IDEASetupMFAButtonComponent], imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule], exports: [IDEASetupMFAModalComponent, IDEASetupMFAButtonComponent] }); }
2119
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASetupMFAModule, imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule] }); }
2120
- }
2121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEASetupMFAModule, decorators: [{
2122
- type: NgModule,
2123
- args: [{
2124
- imports: [CommonModule, FormsModule, IonicModule, IDEATranslationsModule],
2125
- declarations: [IDEASetupMFAModalComponent, IDEASetupMFAButtonComponent],
2126
- exports: [IDEASetupMFAModalComponent, IDEASetupMFAButtonComponent]
2127
- }]
2128
- }] });
2129
-
2130
- class IDEAAuthModule {
2131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2132
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: IDEAAuthModule, declarations: [IDEASignInPage,
2133
- IDEASignUpPage,
2134
- IDEANewPasswordPage,
2135
- IDEAResendLinkPage,
2136
- IDEAForgotPasswordPage,
2137
- IDEAConfirmPasswordPage,
2138
- IDEAMFAChallengePage,
2139
- IDEASetupMFAPage,
2140
- IDEAPasswordPolicyComponent], imports: [CommonModule,
2141
- FormsModule,
2142
- IonicModule,
2143
- IDEATranslationsModule, i1$1.RouterModule, IDEASetupMFAModule] }); }
2144
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAAuthModule, imports: [CommonModule,
2145
- FormsModule,
2146
- IonicModule,
2147
- IDEATranslationsModule,
2148
- RouterModule.forChild([
2149
- { path: '', redirectTo: 'sign-in', pathMatch: 'full' },
2150
- { path: 'sign-in', component: IDEASignInPage },
2151
- { path: 'sign-up', component: IDEASignUpPage },
2152
- { path: 'new-password', component: IDEANewPasswordPage },
2153
- { path: 'mfa-challenge', component: IDEAMFAChallengePage },
2154
- { path: 'setup-mfa', component: IDEASetupMFAPage },
2155
- { path: 'resend-link', component: IDEAResendLinkPage },
2156
- { path: 'forgot-password', component: IDEAForgotPasswordPage },
2157
- { path: 'confirm-password', component: IDEAConfirmPasswordPage }
2158
- ]),
2159
- IDEASetupMFAModule] }); }
2160
- }
2161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: IDEAAuthModule, decorators: [{
2162
- type: NgModule,
2163
- args: [{
2164
- imports: [
3544
+ args: [{ selector: 'idea-mfa-setup', standalone: true, imports: [
2165
3545
  CommonModule,
2166
- FormsModule,
2167
- IonicModule,
2168
- IDEATranslationsModule,
2169
- RouterModule.forChild([
2170
- { path: '', redirectTo: 'sign-in', pathMatch: 'full' },
2171
- { path: 'sign-in', component: IDEASignInPage },
2172
- { path: 'sign-up', component: IDEASignUpPage },
2173
- { path: 'new-password', component: IDEANewPasswordPage },
2174
- { path: 'mfa-challenge', component: IDEAMFAChallengePage },
2175
- { path: 'setup-mfa', component: IDEASetupMFAPage },
2176
- { path: 'resend-link', component: IDEAResendLinkPage },
2177
- { path: 'forgot-password', component: IDEAForgotPasswordPage },
2178
- { path: 'confirm-password', component: IDEAConfirmPasswordPage }
2179
- ]),
2180
- IDEASetupMFAModule
2181
- ],
2182
- declarations: [
2183
- IDEASignInPage,
2184
- IDEASignUpPage,
2185
- IDEANewPasswordPage,
2186
- IDEAResendLinkPage,
2187
- IDEAForgotPasswordPage,
2188
- IDEAConfirmPasswordPage,
2189
- IDEAMFAChallengePage,
2190
- IDEASetupMFAPage,
2191
- IDEAPasswordPolicyComponent
2192
- ]
2193
- }]
3546
+ IDEATranslatePipe,
3547
+ IDEASetupMFAButtonComponent,
3548
+ IonButton,
3549
+ IonCardContent,
3550
+ IonCardSubtitle,
3551
+ IonCardTitle,
3552
+ IonCardHeader,
3553
+ IonCard,
3554
+ IonContent
3555
+ ], template: `
3556
+ <ion-content>
3557
+ <form class="flexBox">
3558
+ <ion-card class="authCard">
3559
+ <ion-card-header>
3560
+ <ion-card-title color="primary">{{ 'IDEA_AUTH.SETUP_MFA' | translate }}</ion-card-title>
3561
+ <ion-card-subtitle>{{ 'IDEA_AUTH.MFA_IS_MANDATORY' | translate }}</ion-card-subtitle>
3562
+ </ion-card-header>
3563
+ <ion-card-content>
3564
+ <idea-setup-mfa-button (change)="reloadApp()" />
3565
+ <ion-button
3566
+ fill="clear"
3567
+ expand="block"
3568
+ class="smallCaseButton"
3569
+ [title]="'IDEA_AUTH.BACK_TO_SIGN_IN_HINT' | translate"
3570
+ (click)="goToAuth()"
3571
+ >
3572
+ {{ 'IDEA_AUTH.BACK_TO_SIGN_IN' | translate }}
3573
+ </ion-button>
3574
+ </ion-card-content>
3575
+ </ion-card>
3576
+ </form>
3577
+ </ion-content>
3578
+ `, styles: [".flexBox{background:var(--idea-auth-background-color, var(--ion-color-white-shade))}.authCard{min-width:400px;max-width:550px;margin:0 10px;padding:20px;background-color:var(--idea-auth-card-background-color, var(--ion-color-white));border:1px solid var(--idea-auth-card-border-color, var(--ion-color-light));border-radius:10px;box-shadow:none;text-align:center}.authCard ion-img{width:150px;display:block;margin:0 auto}.authCard ion-card-title{font-family:auth-title;font-size:3em}.authCard ion-card-subtitle{font-family:auth-title;font-size:1.2em}.authCard ion-card-content{padding-top:16px}.authCard ion-card-content .errorBox{padding-left:10px;margin-bottom:20px;text-align:left;border-left:2px solid var(--ion-color-danger)}.authCard ion-card-content ion-item{--ion-item-background: var(--idea-auth-card-background-color, var(--ion-color-white));--border-color: var(--idea-auth-card-border-color, var(--ion-color-light))}.authCard ion-card-content ion-label[position=inline] ion-icon{padding-top:4px;padding-right:5px;font-size:1.3em}.authCard ion-card-content .agreementsAcceptanceRow{margin-top:15px;font-size:.9em}.authCard ion-card-content .agreementsAcceptanceRow ion-checkbox{vertical-align:bottom;margin-right:3px}.authCard ion-card-content ion-button:not([slot=end]){margin-top:15px}.authCard ion-card-content .smallCaseButton{text-transform:none;letter-spacing:normal;font-size:1em}@media only screen and (max-width: 500px){.authCard{background-color:transparent;border:none}}.ideaLogo{width:65px;margin:40px auto 0;cursor:pointer}.passwordPolicyPopover{--width: 350px}\n"] }]
2194
3579
  }] });
2195
3580
 
3581
+ const routes = [
3582
+ { path: '', redirectTo: 'sign-in', pathMatch: 'full' },
3583
+ { path: 'sign-in', component: IDEASignInPage },
3584
+ { path: 'sign-up', component: IDEASignUpPage },
3585
+ { path: 'new-password', component: IDEANewPasswordPage },
3586
+ { path: 'mfa-challenge', component: IDEAMFAChallengePage },
3587
+ { path: 'setup-mfa', component: IDEASetupMFAPage },
3588
+ { path: 'resend-link', component: IDEAResendLinkPage },
3589
+ { path: 'forgot-password', component: IDEAForgotPasswordPage },
3590
+ { path: 'confirm-password', component: IDEAConfirmPasswordPage }
3591
+ ];
3592
+
2196
3593
  /**
2197
3594
  * Generated bundle index. Do not edit.
2198
3595
  */
2199
3596
 
2200
- export { IDEAAuthModule, IDEAAuthService, IDEAPasswordPolicyComponent, IDEASetupMFAButtonComponent, IDEASetupMFAModalComponent, IDEASetupMFAModule, LoginOutcomeActions };
3597
+ export { COMMON_PASSWORDS_TOP_1000, IDEAAuthService, IDEAConfirmPasswordPage, IDEAForgotPasswordPage, IDEAMFAChallengePage, IDEANewPasswordPage, IDEAPasswordPolicyComponent, IDEAResendLinkPage, IDEASetupMFAButtonComponent, IDEASetupMFAModalComponent, IDEASetupMFAPage, IDEASignInPage, IDEASignUpPage, LoginOutcomeActions, routes };
2201
3598
  //# sourceMappingURL=idea-ionic-auth.mjs.map