File
Metadata
selector |
ngx-auth-firebaseui-legality-dialog |
styleUrls |
./legality-dialog.component.scss |
templateUrl |
./legality-dialog.component.html |
Index
Properties
|
|
Methods
|
|
Accessors
|
|
Methods
closeDialog
|
closeDialog()
|
|
|
Private
_disableConfirmActionButton
|
Default value : false
|
|
Accessors
disableConfirmActionButton
|
getdisableConfirmActionButton()
|
|
import {Component, Inject} from '@angular/core';
import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material';
import {LegalityDialogParams, LegalityDialogResult} from '../../interfaces/legality.dialog.intreface';
@Component({
selector: 'ngx-auth-firebaseui-legality-dialog',
templateUrl: './legality-dialog.component.html',
styleUrls: ['./legality-dialog.component.scss']
})
export class LegalityDialogComponent {
checkTOS: boolean;
checkPrivacyPolicy: boolean;
private _disableConfirmActionButton = false;
constructor(public dialogRef: MatDialogRef<LegalityDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: LegalityDialogParams) {
}
get disableConfirmActionButton(): boolean {
if (this.data.tosUrl && this.data.privacyPolicyUrl) {
this._disableConfirmActionButton = !(this.checkTOS && this.checkPrivacyPolicy);
} else if (this.data.tosUrl && !this.data.privacyPolicyUrl) {
this._disableConfirmActionButton = !this.checkTOS
} else if (!this.data.tosUrl && this.data.privacyPolicyUrl) {
this._disableConfirmActionButton = !this.checkPrivacyPolicy
}
return this._disableConfirmActionButton;
}
closeDialog() {
const result: LegalityDialogResult = {
checked: !this.disableConfirmActionButton,
authProvider: this.data.authProvider
};
this.dialogRef.close(result);
}
}
<h1 matDialogTitle>Legal requirements</h1>
<mat-dialog-content>
<div fxLayout="column" fxLayoutAlign="start">
<mat-checkbox *ngIf="this.data.tosUrl" [(ngModel)]="checkTOS">
I agree to the
<span> </span>
<a target="_blank"
[href]="this.data.tosUrl">
Terms of Service and Conditions
</a>
</mat-checkbox>
<mat-checkbox *ngIf="this.data.privacyPolicyUrl"
[(ngModel)]="checkPrivacyPolicy">
I have read and agree to the
<span> </span>
<a target="_blank"
[href]="this.data.privacyPolicyUrl">
Privacy
</a>
</mat-checkbox>
</div>
</mat-dialog-content>
<mat-dialog-actions>
<button id="decline-action"
mat-raised-button
matDialogClose
color="warn">Decline</button>
<button id="confirm-action"
mat-raised-button
color="primary"
[disabled]="disableConfirmActionButton"
(click)="closeDialog()">Confirm
</button>
</mat-dialog-actions>
::ng-deep .mat-checkbox-label {
display: flex;
flex-wrap: wrap;
}
mat-dialog-content {
div {
margin-top: 1.5rem
}
}
mat-dialog-actions {
margin-top: 1rem;
}
Legend
Html element with directive