@covalent/core 4.1.1-develop.1 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dialogs/prompt-dialog/prompt-dialog.component.d.ts +8 -8
- package/esm2020/dialogs/prompt-dialog/prompt-dialog.component.mjs +15 -41
- package/fesm2015/covalent-core-dialogs.mjs +16 -41
- package/fesm2015/covalent-core-dialogs.mjs.map +1 -1
- package/fesm2020/covalent-core-dialogs.mjs +16 -41
- package/fesm2020/covalent-core-dialogs.mjs.map +1 -1
- package/package.json +2 -2
@@ -1,7 +1,7 @@
|
|
1
|
-
import { ElementRef, AfterViewInit, NgZone
|
1
|
+
import { ElementRef, AfterViewInit, NgZone } from '@angular/core';
|
2
2
|
import { MatDialogRef } from '@angular/material/dialog';
|
3
3
|
import * as i0 from "@angular/core";
|
4
|
-
export declare class TdPromptDialogComponent implements AfterViewInit
|
4
|
+
export declare class TdPromptDialogComponent implements AfterViewInit {
|
5
5
|
private _ngZone;
|
6
6
|
private _dialogRef;
|
7
7
|
title?: string;
|
@@ -9,14 +9,14 @@ export declare class TdPromptDialogComponent implements AfterViewInit, OnDestroy
|
|
9
9
|
value?: string;
|
10
10
|
cancelButton: string;
|
11
11
|
acceptButton: string;
|
12
|
-
|
13
|
-
_input: ElementRef<HTMLInputElement>;
|
14
|
-
_closeBtn: ElementRef<HTMLButtonElement>;
|
15
|
-
_acceptBtn: ElementRef<HTMLButtonElement>;
|
16
|
-
private _destroy$;
|
12
|
+
_input: ElementRef<HTMLElement>;
|
17
13
|
constructor(_ngZone: NgZone, _dialogRef: MatDialogRef<TdPromptDialogComponent>);
|
18
14
|
ngAfterViewInit(): void;
|
19
|
-
|
15
|
+
/**
|
16
|
+
* Method executed when input is focused
|
17
|
+
* Selects all text
|
18
|
+
*/
|
19
|
+
handleInputFocus(): void;
|
20
20
|
cancel(): void;
|
21
21
|
accept(): void;
|
22
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<TdPromptDialogComponent, never>;
|
@@ -1,7 +1,5 @@
|
|
1
1
|
import { Component, ViewChild, ElementRef, NgZone, } from '@angular/core';
|
2
2
|
import { MatDialogRef } from '@angular/material/dialog';
|
3
|
-
import { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';
|
4
|
-
import { fromEvent, Subject, takeUntil } from 'rxjs';
|
5
3
|
import * as i0 from "@angular/core";
|
6
4
|
import * as i1 from "@angular/material/dialog";
|
7
5
|
import * as i2 from "../dialog.component";
|
@@ -16,39 +14,21 @@ export class TdPromptDialogComponent {
|
|
16
14
|
this._dialogRef = _dialogRef;
|
17
15
|
this.cancelButton = 'CANCEL';
|
18
16
|
this.acceptButton = 'ACCEPT';
|
19
|
-
this._destroy$ = new Subject();
|
20
17
|
}
|
21
18
|
ngAfterViewInit() {
|
22
|
-
this._ngZone.runOutsideAngular(() =>
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
fromEvent(this._input.nativeElement, 'focus')
|
29
|
-
.pipe(takeUntil(this._destroy$))
|
30
|
-
.subscribe(() => {
|
31
|
-
// This is executed when the input is focused, selects all text.
|
32
|
-
this._input.nativeElement.select();
|
33
|
-
});
|
34
|
-
fromEvent(this._closeBtn.nativeElement, 'keydown')
|
35
|
-
.pipe(takeUntil(this._destroy$))
|
36
|
-
.subscribe((event) => {
|
37
|
-
if (event.keyCode === RIGHT_ARROW) {
|
38
|
-
this._acceptBtn.nativeElement.focus();
|
39
|
-
}
|
40
|
-
});
|
41
|
-
fromEvent(this._acceptBtn.nativeElement, 'keydown')
|
42
|
-
.pipe(takeUntil(this._destroy$))
|
43
|
-
.subscribe((event) => {
|
44
|
-
if (event.keyCode === LEFT_ARROW) {
|
45
|
-
this._closeBtn.nativeElement.focus();
|
46
|
-
}
|
47
|
-
});
|
48
|
-
});
|
19
|
+
this._ngZone.runOutsideAngular(() =>
|
20
|
+
// Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.
|
21
|
+
// `Promise` is a microtask and microtask are executed within the current rendering frame.
|
22
|
+
// Animation tasks are executed within the next rendering frame.
|
23
|
+
// We focus input once everything is rendered and good to go.
|
24
|
+
requestAnimationFrame(() => this._input.nativeElement.focus()));
|
49
25
|
}
|
50
|
-
|
51
|
-
|
26
|
+
/**
|
27
|
+
* Method executed when input is focused
|
28
|
+
* Selects all text
|
29
|
+
*/
|
30
|
+
handleInputFocus() {
|
31
|
+
this._input.nativeElement.select();
|
52
32
|
}
|
53
33
|
cancel() {
|
54
34
|
this._dialogRef.close();
|
@@ -58,18 +38,12 @@ export class TdPromptDialogComponent {
|
|
58
38
|
}
|
59
39
|
}
|
60
40
|
TdPromptDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdPromptDialogComponent, deps: [{ token: i0.NgZone }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
61
|
-
TdPromptDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdPromptDialogComponent, selector: "td-prompt-dialog", viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true, static: true }
|
41
|
+
TdPromptDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdPromptDialogComponent, selector: "td-prompt-dialog", viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (focus)=\"handleInputFocus()\"\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button\n mat-button\n #closeBtn\n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\"\n >\n {{ cancelButton }}\n </button>\n <button\n mat-button\n color=\"accent\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n [disabled]=\"!form.valid\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n", styles: [".td-dialog-input-wrapper{flex-direction:row;box-sizing:border-box;display:flex}.td-dialog-input-wrapper .td-dialog-input{flex:1;box-sizing:border-box}.td-dialog-message{word-break:break-word}\n"], components: [{ type: i2.TdDialogComponent, selector: "td-dialog" }, { type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.TdDialogTitleDirective, selector: "[tdDialogTitle]" }, { type: i2.TdDialogContentDirective, selector: "[tdDialogContent]" }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.TdDialogActionsDirective, selector: "[tdDialogActions]" }] });
|
62
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdPromptDialogComponent, decorators: [{
|
63
43
|
type: Component,
|
64
|
-
args: [{ selector: 'td-prompt-dialog', template: "<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button
|
44
|
+
args: [{ selector: 'td-prompt-dialog', template: "<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (focus)=\"handleInputFocus()\"\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button\n mat-button\n #closeBtn\n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\"\n >\n {{ cancelButton }}\n </button>\n <button\n mat-button\n color=\"accent\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n [disabled]=\"!form.valid\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n", styles: [".td-dialog-input-wrapper{flex-direction:row;box-sizing:border-box;display:flex}.td-dialog-input-wrapper .td-dialog-input{flex:1;box-sizing:border-box}.td-dialog-message{word-break:break-word}\n"] }]
|
65
45
|
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.MatDialogRef }]; }, propDecorators: { _input: [{
|
66
46
|
type: ViewChild,
|
67
47
|
args: ['input', { static: true }]
|
68
|
-
}], _closeBtn: [{
|
69
|
-
type: ViewChild,
|
70
|
-
args: ['closeBtn', { static: true, read: ElementRef }]
|
71
|
-
}], _acceptBtn: [{
|
72
|
-
type: ViewChild,
|
73
|
-
args: ['acceptBtn', { static: true, read: ElementRef }]
|
74
48
|
}] } });
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvZGlhbG9ncy9zcmMvcHJvbXB0LWRpYWxvZy9wcm9tcHQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9kaWFsb2dzL3NyYy9wcm9tcHQtZGlhbG9nL3Byb21wdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7OztBQU94RCxNQUFNLE9BQU8sdUJBQXVCO0lBU2xDLFlBQ1UsT0FBZSxFQUNmLFVBQWlEO1FBRGpELFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUF1QztRQVAzRCxpQkFBWSxHQUFHLFFBQVEsQ0FBQztRQUN4QixpQkFBWSxHQUFHLFFBQVEsQ0FBQztJQU9yQixDQUFDO0lBRUosZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1FBQ2xDLDhGQUE4RjtRQUM5RiwwRkFBMEY7UUFDMUYsZ0VBQWdFO1FBQ2hFLDZEQUE2RDtRQUM3RCxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUMvRCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQjtRQUNLLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDOztvSEF0Q1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsdUtDZHBDLG1sQ0EyQ0E7MkZEN0JhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0I7d0hBV1UsTUFBTTtzQkFBM0MsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIE5nWm9uZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1wcm9tcHQtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb21wdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9tcHQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkUHJvbXB0RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICB2YWx1ZT86IHN0cmluZztcbiAgY2FuY2VsQnV0dG9uID0gJ0NBTkNFTCc7XG4gIGFjY2VwdEJ1dHRvbiA9ICdBQ0NFUFQnO1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgX2lucHV0ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VGRQcm9tcHREaWFsb2dDb21wb25lbnQ+XG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAvLyBOb3RlOiBgZWxlbWVudC5mb2N1cygpYCBjYXVzZXMgcmUtbGF5b3V0IGFuZCB0aGlzIG1heSBsZWFkIHRvIGZyYW1lIGRyb3Agb24gc2xvd2VyIGRldmljZXMuXG4gICAgICAvLyBgUHJvbWlzZWAgaXMgYSBtaWNyb3Rhc2sgYW5kIG1pY3JvdGFzayBhcmUgZXhlY3V0ZWQgd2l0aGluIHRoZSBjdXJyZW50IHJlbmRlcmluZyBmcmFtZS5cbiAgICAgIC8vIEFuaW1hdGlvbiB0YXNrcyBhcmUgZXhlY3V0ZWQgd2l0aGluIHRoZSBuZXh0IHJlbmRlcmluZyBmcmFtZS5cbiAgICAgIC8vIFdlIGZvY3VzIGlucHV0IG9uY2UgZXZlcnl0aGluZyBpcyByZW5kZXJlZCBhbmQgZ29vZCB0byBnby5cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLl9pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgZXhlY3V0ZWQgd2hlbiBpbnB1dCBpcyBmb2N1c2VkXG4gICAqIFNlbGVjdHMgYWxsIHRleHRcbiAgICovXG4gIGhhbmRsZUlucHV0Rm9jdXMoKTogdm9pZCB7XG4gICAgKDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuX2lucHV0Lm5hdGl2ZUVsZW1lbnQpLnNlbGVjdCgpO1xuICB9XG5cbiAgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG5cbiAgYWNjZXB0KCk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh0aGlzLnZhbHVlKTtcbiAgfVxufVxuIiwiPHRkLWRpYWxvZz5cbiAgPGRpdiB0ZERpYWxvZ1RpdGxlICpuZ0lmPVwidGl0bGVcIj5cbiAgICB7eyB0aXRsZSB9fVxuICA8L2Rpdj5cbiAgPGRpdiB0ZERpYWxvZ0NvbnRlbnQ+XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZC1kaWFsb2ctbWVzc2FnZVwiPnt7IG1lc3NhZ2UgfX08L3NwYW4+XG4gICAgPGZvcm0gI2Zvcm09XCJuZ0Zvcm1cIiBub3ZhbGlkYXRlPlxuICAgICAgPGRpdiBjbGFzcz1cInRkLWRpYWxvZy1pbnB1dC13cmFwcGVyXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInRkLWRpYWxvZy1pbnB1dFwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICNpbnB1dFxuICAgICAgICAgICAgKGZvY3VzKT1cImhhbmRsZUlucHV0Rm9jdXMoKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgZm9ybS52YWxpZCAmJiBhY2NlcHQoKVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgICAgIG5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIDwvZGl2PlxuICA8ZGl2IHRkRGlhbG9nQWN0aW9ucz5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtYnV0dG9uXG4gICAgICAjY2xvc2VCdG5cbiAgICAgIChrZXlkb3duLmFycm93cmlnaHQpPVwiYWNjZXB0QnRuLmZvY3VzKClcIlxuICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICA+XG4gICAgICB7eyBjYW5jZWxCdXR0b24gfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtYnV0dG9uXG4gICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAjYWNjZXB0QnRuXG4gICAgICAoa2V5ZG93bi5hcnJvd2xlZnQpPVwiY2xvc2VCdG4uZm9jdXMoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWRcIlxuICAgICAgKGNsaWNrKT1cImFjY2VwdCgpXCJcbiAgICA+XG4gICAgICB7eyBhY2NlcHRCdXR0b24gfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3RkLWRpYWxvZz5cbiJdfQ==
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { Directive, Component, ContentChildren,
|
2
|
+
import { Directive, Component, ContentChildren, ViewChild, Injectable, Inject, EventEmitter, ChangeDetectionStrategy, Input, Output, NgModule } from '@angular/core';
|
3
3
|
import * as i4 from '@angular/common';
|
4
4
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
5
5
|
import * as i6 from '@angular/forms';
|
@@ -10,9 +10,8 @@ import * as i7 from '@angular/material/input';
|
|
10
10
|
import { MatInputModule } from '@angular/material/input';
|
11
11
|
import * as i3 from '@angular/material/button';
|
12
12
|
import { MatButtonModule } from '@angular/material/button';
|
13
|
-
import { RIGHT_ARROW, LEFT_ARROW } from '@angular/cdk/keycodes';
|
14
|
-
import { Subject, fromEvent, takeUntil, merge } from 'rxjs';
|
15
13
|
import * as i3$1 from '@angular/material/form-field';
|
14
|
+
import { Subject, fromEvent, merge } from 'rxjs';
|
16
15
|
import * as i2 from '@angular/cdk/drag-drop';
|
17
16
|
import * as i1$1 from '@angular/material/toolbar';
|
18
17
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
@@ -117,39 +116,21 @@ class TdPromptDialogComponent {
|
|
117
116
|
this._dialogRef = _dialogRef;
|
118
117
|
this.cancelButton = 'CANCEL';
|
119
118
|
this.acceptButton = 'ACCEPT';
|
120
|
-
this._destroy$ = new Subject();
|
121
119
|
}
|
122
120
|
ngAfterViewInit() {
|
123
|
-
this._ngZone.runOutsideAngular(() =>
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
fromEvent(this._input.nativeElement, 'focus')
|
130
|
-
.pipe(takeUntil(this._destroy$))
|
131
|
-
.subscribe(() => {
|
132
|
-
// This is executed when the input is focused, selects all text.
|
133
|
-
this._input.nativeElement.select();
|
134
|
-
});
|
135
|
-
fromEvent(this._closeBtn.nativeElement, 'keydown')
|
136
|
-
.pipe(takeUntil(this._destroy$))
|
137
|
-
.subscribe((event) => {
|
138
|
-
if (event.keyCode === RIGHT_ARROW) {
|
139
|
-
this._acceptBtn.nativeElement.focus();
|
140
|
-
}
|
141
|
-
});
|
142
|
-
fromEvent(this._acceptBtn.nativeElement, 'keydown')
|
143
|
-
.pipe(takeUntil(this._destroy$))
|
144
|
-
.subscribe((event) => {
|
145
|
-
if (event.keyCode === LEFT_ARROW) {
|
146
|
-
this._closeBtn.nativeElement.focus();
|
147
|
-
}
|
148
|
-
});
|
149
|
-
});
|
121
|
+
this._ngZone.runOutsideAngular(() =>
|
122
|
+
// Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.
|
123
|
+
// `Promise` is a microtask and microtask are executed within the current rendering frame.
|
124
|
+
// Animation tasks are executed within the next rendering frame.
|
125
|
+
// We focus input once everything is rendered and good to go.
|
126
|
+
requestAnimationFrame(() => this._input.nativeElement.focus()));
|
150
127
|
}
|
151
|
-
|
152
|
-
|
128
|
+
/**
|
129
|
+
* Method executed when input is focused
|
130
|
+
* Selects all text
|
131
|
+
*/
|
132
|
+
handleInputFocus() {
|
133
|
+
this._input.nativeElement.select();
|
153
134
|
}
|
154
135
|
cancel() {
|
155
136
|
this._dialogRef.close();
|
@@ -159,19 +140,13 @@ class TdPromptDialogComponent {
|
|
159
140
|
}
|
160
141
|
}
|
161
142
|
TdPromptDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdPromptDialogComponent, deps: [{ token: i0.NgZone }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
162
|
-
TdPromptDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdPromptDialogComponent, selector: "td-prompt-dialog", viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true, static: true }
|
143
|
+
TdPromptDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdPromptDialogComponent, selector: "td-prompt-dialog", viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (focus)=\"handleInputFocus()\"\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button\n mat-button\n #closeBtn\n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\"\n >\n {{ cancelButton }}\n </button>\n <button\n mat-button\n color=\"accent\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n [disabled]=\"!form.valid\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n", styles: [".td-dialog-input-wrapper{flex-direction:row;box-sizing:border-box;display:flex}.td-dialog-input-wrapper .td-dialog-input{flex:1;box-sizing:border-box}.td-dialog-message{word-break:break-word}\n"], components: [{ type: TdDialogComponent, selector: "td-dialog" }, { type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TdDialogTitleDirective, selector: "[tdDialogTitle]" }, { type: TdDialogContentDirective, selector: "[tdDialogContent]" }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: TdDialogActionsDirective, selector: "[tdDialogActions]" }] });
|
163
144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdPromptDialogComponent, decorators: [{
|
164
145
|
type: Component,
|
165
|
-
args: [{ selector: 'td-prompt-dialog', template: "<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button
|
146
|
+
args: [{ selector: 'td-prompt-dialog', template: "<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (focus)=\"handleInputFocus()\"\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button\n mat-button\n #closeBtn\n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\"\n >\n {{ cancelButton }}\n </button>\n <button\n mat-button\n color=\"accent\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n [disabled]=\"!form.valid\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n", styles: [".td-dialog-input-wrapper{flex-direction:row;box-sizing:border-box;display:flex}.td-dialog-input-wrapper .td-dialog-input{flex:1;box-sizing:border-box}.td-dialog-message{word-break:break-word}\n"] }]
|
166
147
|
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.MatDialogRef }]; }, propDecorators: { _input: [{
|
167
148
|
type: ViewChild,
|
168
149
|
args: ['input', { static: true }]
|
169
|
-
}], _closeBtn: [{
|
170
|
-
type: ViewChild,
|
171
|
-
args: ['closeBtn', { static: true, read: ElementRef }]
|
172
|
-
}], _acceptBtn: [{
|
173
|
-
type: ViewChild,
|
174
|
-
args: ['acceptBtn', { static: true, read: ElementRef }]
|
175
150
|
}] } });
|
176
151
|
|
177
152
|
class TdDialogService {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"covalent-core-dialogs.mjs","sources":["../../../../libs/angular/dialogs/src/dialog.component.ts","../../../../libs/angular/dialogs/src/dialog.component.html","../../../../libs/angular/dialogs/src/alert-dialog/alert-dialog.component.ts","../../../../libs/angular/dialogs/src/alert-dialog/alert-dialog.component.html","../../../../libs/angular/dialogs/src/confirm-dialog/confirm-dialog.component.ts","../../../../libs/angular/dialogs/src/confirm-dialog/confirm-dialog.component.html","../../../../libs/angular/dialogs/src/prompt-dialog/prompt-dialog.component.ts","../../../../libs/angular/dialogs/src/prompt-dialog/prompt-dialog.component.html","../../../../libs/angular/dialogs/src/services/dialog.service.ts","../../../../libs/angular/dialogs/src/window-dialog/window-dialog.component.ts","../../../../libs/angular/dialogs/src/window-dialog/window-dialog.component.html","../../../../libs/angular/dialogs/src/dialogs.module.ts","../../../../libs/angular/dialogs/src/resizable-draggable-dialog/resizable-draggable-dialog.ts","../../../../libs/angular/dialogs/src/covalent-core-dialogs.ts"],"sourcesContent":["import {\n Component,\n Directive,\n ContentChildren,\n QueryList,\n AfterContentInit,\n} from '@angular/core';\n\n@Directive({ selector: '[tdDialogTitle]' })\nexport class TdDialogTitleDirective {}\n\n@Directive({ selector: '[tdDialogContent]' })\nexport class TdDialogContentDirective {}\n\n@Directive({ selector: '[tdDialogActions]' })\nexport class TdDialogActionsDirective {}\n\n@Component({\n selector: 'td-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n})\nexport class TdDialogComponent implements AfterContentInit {\n @ContentChildren(TdDialogTitleDirective, { descendants: true })\n dialogTitle!: QueryList<TdDialogTitleDirective>;\n @ContentChildren(TdDialogContentDirective, { descendants: true })\n dialogContent!: QueryList<TdDialogContentDirective>;\n @ContentChildren(TdDialogActionsDirective, { descendants: true })\n dialogActions!: QueryList<TdDialogActionsDirective>;\n\n ngAfterContentInit(): void {\n if (this.dialogTitle.length > 1) {\n throw new Error('Duplicate td-dialog-title component at in td-dialog.');\n }\n if (this.dialogContent.length > 1) {\n throw new Error('Duplicate td-dialog-content component at in td-dialog.');\n }\n if (this.dialogActions.length > 1) {\n throw new Error('Duplicate td-dialog-actions component at in td-dialog.');\n }\n }\n}\n","<div class=\"td-dialog-wrapper\">\n <h3 class=\"td-dialog-title\" *ngIf=\"dialogTitle.length > 0\">\n <ng-content select=\"[tdDialogTitle]\"></ng-content>\n </h3>\n <div class=\"td-dialog-content\" *ngIf=\"dialogContent.length > 0\">\n <ng-content select=\"[tdDialogContent]\"></ng-content>\n </div>\n <div class=\"td-dialog-actions\" *ngIf=\"dialogActions.length > 0\">\n <span class=\"td-dialog-spacer\"></span>\n <ng-content select=\"[tdDialogActions]\"></ng-content>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss'],\n})\nexport class TdAlertDialogComponent {\n title?: string;\n message?: string;\n closeButton?: string = 'CLOSE';\n\n constructor(private _dialogRef: MatDialogRef<TdAlertDialogComponent>) {}\n\n close(): void {\n this._dialogRef.close();\n }\n}\n","<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n </div>\n <div tdDialogActions>\n <button mat-button color=\"accent\" (click)=\"close()\">\n {{ closeButton }}\n </button>\n </div>\n</td-dialog>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n})\nexport class TdConfirmDialogComponent {\n title?: string;\n message?: string;\n cancelButton = 'CANCEL';\n acceptButton = 'ACCEPT';\n isDestructive = false;\n\n constructor(private _dialogRef: MatDialogRef<TdConfirmDialogComponent>) {}\n\n cancel(): void {\n this._dialogRef.close(false);\n }\n\n accept(): void {\n this._dialogRef.close(true);\n }\n}\n","<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n </div>\n <div tdDialogActions>\n <button\n mat-button\n #closeBtn\n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\"\n >\n {{ cancelButton }}\n </button>\n <button\n mat-button\n [color]=\"isDestructive ? 'warn' : 'accent'\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n","import {\n Component,\n ViewChild,\n ElementRef,\n AfterViewInit,\n NgZone,\n OnDestroy,\n} from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'td-prompt-dialog',\n templateUrl: './prompt-dialog.component.html',\n styleUrls: ['./prompt-dialog.component.scss'],\n})\nexport class TdPromptDialogComponent implements AfterViewInit, OnDestroy {\n title?: string;\n message?: string;\n value?: string;\n cancelButton = 'CANCEL';\n acceptButton = 'ACCEPT';\n\n /** The native `<input matInput />` element. */\n @ViewChild('input', { static: true }) _input!: ElementRef<HTMLInputElement>;\n\n @ViewChild('closeBtn', { static: true, read: ElementRef })\n _closeBtn!: ElementRef<HTMLButtonElement>;\n\n @ViewChild('acceptBtn', { static: true, read: ElementRef })\n _acceptBtn!: ElementRef<HTMLButtonElement>;\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n private _ngZone: NgZone,\n private _dialogRef: MatDialogRef<TdPromptDialogComponent>\n ) {}\n\n ngAfterViewInit(): void {\n this._ngZone.runOutsideAngular(() => {\n // Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.\n // `Promise` is a microtask and microtask are executed within the current rendering frame.\n // Animation tasks are executed within the next rendering frame.\n // We focus input once everything is rendered and good to go.\n requestAnimationFrame(() => this._input.nativeElement.focus());\n\n fromEvent(this._input.nativeElement, 'focus')\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n // This is executed when the input is focused, selects all text.\n this._input.nativeElement.select();\n });\n\n fromEvent<KeyboardEvent>(this._closeBtn.nativeElement, 'keydown')\n .pipe(takeUntil(this._destroy$))\n .subscribe((event) => {\n if (event.keyCode === RIGHT_ARROW) {\n this._acceptBtn.nativeElement.focus();\n }\n });\n\n fromEvent<KeyboardEvent>(this._acceptBtn.nativeElement, 'keydown')\n .pipe(takeUntil(this._destroy$))\n .subscribe((event) => {\n if (event.keyCode === LEFT_ARROW) {\n this._closeBtn.nativeElement.focus();\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n cancel(): void {\n this._dialogRef.close();\n }\n\n accept(): void {\n this._dialogRef.close(this.value);\n }\n}\n","<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button mat-button #closeBtn (click)=\"cancel()\">\n {{ cancelButton }}\n </button>\n <button\n mat-button\n color=\"accent\"\n #acceptBtn\n [disabled]=\"!form.valid\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n","import { Injectable, Inject, Renderer2, RendererFactory2 } from '@angular/core';\nimport {\n MatDialog,\n MatDialogRef,\n MatDialogConfig,\n} from '@angular/material/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { TdAlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { TdConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\nimport { TdPromptDialogComponent } from '../prompt-dialog/prompt-dialog.component';\nimport { DragDrop, DragRef } from '@angular/cdk/drag-drop';\nimport { DOCUMENT } from '@angular/common';\nimport { Subject } from 'rxjs';\n\nexport interface IDialogConfig extends MatDialogConfig {\n title?: string;\n message: string;\n}\n\nexport interface IAlertConfig extends IDialogConfig {\n closeButton?: string;\n}\n\nexport interface IConfirmConfig extends IDialogConfig {\n acceptButton?: string;\n cancelButton?: string;\n isDestructive?: boolean;\n}\n\nexport interface IPromptConfig extends IConfirmConfig {\n value?: string;\n}\n\nexport interface IDraggableConfig<T> {\n component: ComponentType<T>;\n config?: MatDialogConfig;\n // CSS selectors of element(s) inside the component meant to be drag handle(s)\n dragHandleSelectors?: string[];\n // Class that will be added to the component signifying drag-ability\n draggableClass?: string;\n}\n\nexport interface IDraggableRefs<T> {\n matDialogRef: MatDialogRef<T>;\n dragRefSubject: Subject<DragRef>;\n}\n\n@Injectable()\nexport class TdDialogService {\n private _renderer2: Renderer2;\n\n constructor(\n @Inject(DOCUMENT) private _document: any,\n private _dialogService: MatDialog,\n private _dragDrop: DragDrop,\n private rendererFactory: RendererFactory2\n ) {\n this._renderer2 = rendererFactory.createRenderer(undefined, null);\n }\n\n /**\n * params:\n * - component: ComponentType<T>\n * - config: MatDialogConfig\n * Wrapper function over the open() method in MatDialog.\n * Opens a modal dialog containing the given component.\n */\n public open<T>(\n component: ComponentType<T>,\n config?: MatDialogConfig\n ): MatDialogRef<T> {\n return this._dialogService.open(component, config);\n }\n\n /**\n * Wrapper function over the closeAll() method in MatDialog.\n * Closes all of the currently-open dialogs.\n */\n public closeAll(): void {\n this._dialogService.closeAll();\n }\n\n /**\n * params:\n * - config: IAlertConfig {\n * message: string;\n * title?: string;\n * viewContainerRef?: ViewContainerRef;\n * closeButton?: string;\n * }\n *\n * Opens an alert dialog with the provided config.\n * Returns an MatDialogRef<TdAlertDialogComponent> object.\n */\n public openAlert(config: IAlertConfig): MatDialogRef<TdAlertDialogComponent> {\n const dialogConfig: MatDialogConfig = this._createConfig(config);\n const dialogRef: MatDialogRef<TdAlertDialogComponent> =\n this._dialogService.open(TdAlertDialogComponent, dialogConfig);\n const alertDialogComponent: TdAlertDialogComponent =\n dialogRef.componentInstance;\n alertDialogComponent.title = config.title;\n alertDialogComponent.message = config.message;\n if (config.closeButton) {\n alertDialogComponent.closeButton = config.closeButton;\n }\n return dialogRef;\n }\n\n /**\n * params:\n * - config: IConfirmConfig {\n * message: string;\n * title?: string;\n * viewContainerRef?: ViewContainerRef;\n * acceptButton?: string;\n * cancelButton?: string;\n * isDestructive?: boolean;\n * }\n *\n * Opens a confirm dialog with the provided config.\n * Returns an MatDialogRef<TdConfirmDialogComponent> object.\n */\n public openConfirm(\n config: IConfirmConfig\n ): MatDialogRef<TdConfirmDialogComponent> {\n const dialogConfig: MatDialogConfig = this._createConfig(config);\n const dialogRef: MatDialogRef<TdConfirmDialogComponent> =\n this._dialogService.open(TdConfirmDialogComponent, dialogConfig);\n const confirmDialogComponent: TdConfirmDialogComponent =\n dialogRef.componentInstance;\n confirmDialogComponent.title = config.title;\n confirmDialogComponent.message = config.message;\n if (config.acceptButton) {\n confirmDialogComponent.acceptButton = config.acceptButton;\n }\n if (config.isDestructive) {\n confirmDialogComponent.isDestructive = config.isDestructive;\n }\n if (config.cancelButton) {\n confirmDialogComponent.cancelButton = config.cancelButton;\n }\n return dialogRef;\n }\n\n /**\n * params:\n * - config: IPromptConfig {\n * message: string;\n * title?: string;\n * value?: string;\n * viewContainerRef?: ViewContainerRef;\n * acceptButton?: string;\n * cancelButton?: string;\n * }\n *\n * Opens a prompt dialog with the provided config.\n * Returns an MatDialogRef<TdPromptDialogComponent> object.\n */\n public openPrompt(\n config: IPromptConfig\n ): MatDialogRef<TdPromptDialogComponent> {\n const dialogConfig: MatDialogConfig = this._createConfig(config);\n const dialogRef: MatDialogRef<TdPromptDialogComponent> =\n this._dialogService.open(TdPromptDialogComponent, dialogConfig);\n const promptDialogComponent: TdPromptDialogComponent =\n dialogRef.componentInstance;\n promptDialogComponent.title = config.title;\n promptDialogComponent.message = config.message;\n promptDialogComponent.value = config.value;\n if (config.acceptButton) {\n promptDialogComponent.acceptButton = config.acceptButton;\n }\n if (config.cancelButton) {\n promptDialogComponent.cancelButton = config.cancelButton;\n }\n return dialogRef;\n }\n\n /**\n * Opens a draggable dialog containing the given component.\n */\n public openDraggable<T>({\n component,\n config,\n dragHandleSelectors,\n draggableClass,\n }: IDraggableConfig<T>): IDraggableRefs<T> {\n const matDialogRef: MatDialogRef<T, any> = this._dialogService.open(\n component,\n config\n );\n const dragRefSubject: Subject<DragRef> = new Subject<DragRef>();\n\n const CDK_OVERLAY_PANE_SELECTOR = '.cdk-overlay-pane';\n const CDK_OVERLAY_CONTAINER_SELECTOR = '.cdk-overlay-container';\n\n matDialogRef.afterOpened().subscribe(() => {\n const dialogElement: HTMLElement = <HTMLElement>(\n this._document.getElementById(matDialogRef.id)\n );\n const draggableElement: DragRef =\n this._dragDrop.createDrag(dialogElement);\n\n if (draggableClass) {\n const childComponent = dialogElement.firstElementChild;\n this._renderer2.addClass(childComponent, draggableClass);\n }\n if (dragHandleSelectors && dragHandleSelectors.length) {\n const dragHandles: Element[] = dragHandleSelectors.reduce(\n (acc: Element[], curr: string) => [\n ...acc,\n ...Array.from(dialogElement.querySelectorAll(curr)),\n ],\n []\n );\n if (dragHandles.length > 0) {\n draggableElement.withHandles(<HTMLElement[]>dragHandles);\n }\n }\n const rootElement = dialogElement.closest(CDK_OVERLAY_PANE_SELECTOR);\n if (rootElement) {\n draggableElement.withRootElement(<HTMLElement>rootElement);\n }\n\n const boundaryElement = dialogElement.closest(\n CDK_OVERLAY_CONTAINER_SELECTOR\n );\n if (boundaryElement) {\n draggableElement.withBoundaryElement(<HTMLElement>boundaryElement);\n }\n dragRefSubject.next(draggableElement);\n });\n\n return { matDialogRef, dragRefSubject };\n }\n\n private _createConfig(config: IDialogConfig): MatDialogConfig {\n const dialogConfig: MatDialogConfig = new MatDialogConfig();\n dialogConfig.width = '400px';\n Object.assign(dialogConfig, config);\n return dialogConfig;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n@Component({\n selector: 'td-window-dialog',\n templateUrl: './window-dialog.component.html',\n styleUrls: ['./window-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdWindowDialogComponent {\n @Input() toolbarColor?: ThemePalette;\n @Input() docked? = false;\n\n @Input() title?: string;\n @Input() toggleDockedStateLabel?: string;\n @Input() closeLabel?: string;\n\n @Output() dockToggled: EventEmitter<boolean> = new EventEmitter();\n @Output() closed: EventEmitter<void> = new EventEmitter();\n\n toolbarHeight = 56;\n\n toggleDockedState(): void {\n this.dockToggled.emit(this.docked);\n }\n}\n","<mat-toolbar\n [color]=\"toolbarColor\"\n class=\"td-window-dialog-toolbar\"\n [style.min-height.px]=\"toolbarHeight\"\n [style.cursor]=\"docked ? 'inherit' : 'move'\"\n>\n <mat-toolbar-row [style.height.px]=\"toolbarHeight\">\n <div layout=\"row\" layout-align=\"start center\" flex>\n <span class=\"mat-title td-window-dialog-title truncate\" flex>\n {{ title }}\n </span>\n <!-- TODO: Resizing a drag-and-drop element was not working so removed docking/undocking for now-->\n <!-- <button mat-icon-button [matTooltip]=\"toggleDockedStateLabel\" (click)=\"toggleDockedState()\">\n <mat-icon [attr.aria-label]=\"toggleDockedStateLabel\">\n {{ docked ? 'unfold_more' : 'unfold_less' }}\n </mat-icon>\n </button> -->\n\n <button\n mat-icon-button\n [matTooltip]=\"closeLabel ?? ''\"\n (click)=\"closed.emit()\"\n class=\"td-window-dialog-close\"\n [attr.data-test]=\"'close-button'\"\n >\n <mat-icon [attr.aria-label]=\"closeLabel\">close</mat-icon>\n </button>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n<ng-content></ng-content>\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport {\n TdDialogComponent,\n TdDialogTitleDirective,\n TdDialogActionsDirective,\n TdDialogContentDirective,\n} from './dialog.component';\nimport { TdAlertDialogComponent } from './alert-dialog/alert-dialog.component';\nimport { TdConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { TdPromptDialogComponent } from './prompt-dialog/prompt-dialog.component';\nimport { TdDialogService } from './services/dialog.service';\nimport { TdWindowDialogComponent } from './window-dialog/window-dialog.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\n\nconst TD_DIALOGS: Type<any>[] = [\n TdAlertDialogComponent,\n TdConfirmDialogComponent,\n TdPromptDialogComponent,\n TdDialogComponent,\n TdDialogTitleDirective,\n TdDialogActionsDirective,\n TdDialogContentDirective,\n TdWindowDialogComponent,\n TdAlertDialogComponent,\n TdConfirmDialogComponent,\n TdPromptDialogComponent,\n];\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n MatDialogModule,\n MatInputModule,\n MatButtonModule,\n MatToolbarModule,\n MatTooltipModule,\n MatIconModule,\n ],\n declarations: [...TD_DIALOGS],\n exports: [...TD_DIALOGS],\n providers: [TdDialogService],\n})\nexport class CovalentDialogsModule {}\n","import { Renderer2 } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { DragRef } from '@angular/cdk/drag-drop';\nimport { merge, Subscription, fromEvent } from 'rxjs';\nimport { Point } from '@angular/cdk/drag-drop/drag-ref';\n\nenum corners {\n topRight = 'topRight',\n bottomRight = 'bottomRight',\n bottomLeft = 'bottomLeft',\n topLeft = 'topLeft',\n}\nenum cursors {\n nesw = 'nesw-resize',\n nwse = 'nwse-resize',\n}\nenum verticalAlignment {\n top = 'top',\n bottom = 'bottom',\n}\nenum horizontalAlignment {\n right = 'right',\n left = 'left',\n}\n\nconst cornerWidth = '16px';\nconst offset = '0px';\nconst minWidth = 200;\nconst minHeight = 200;\n\nfunction getPixels(sizeString: string): number {\n return parseFloat((sizeString || '').replace('px', ''));\n}\n\nfunction clamp(min: number, num: number, max: number): number {\n return Math.min(Math.max(num, min), max);\n}\n\nexport class ResizableDraggableDialog {\n cornerElements: HTMLElement[] = [];\n pointerDownSubs: Subscription[] = [];\n\n constructor(\n private _document: any,\n private _renderer2: Renderer2,\n private _dialogRef: MatDialogRef<any>,\n private _dragRef: DragRef\n ) {\n this._initialPositionReset();\n this._attachCorners();\n }\n\n public attach(): void {\n this.detach();\n this._attachCorners();\n }\n\n public detach(): void {\n this.pointerDownSubs.forEach((sub: Subscription) => sub.unsubscribe());\n this.pointerDownSubs = [];\n this.cornerElements.forEach((elem: HTMLElement) =>\n this._renderer2.removeChild(this._getDialogWrapper(), elem)\n );\n this.cornerElements = [];\n }\n\n private _getDialogWrapper(): HTMLElement | null {\n return (\n <HTMLElement>this._document.getElementById(this._dialogRef.id) || {}\n ).parentElement;\n }\n\n private _getViewportDimensions(): ClientRect | undefined {\n return this._getDialogWrapper()?.parentElement?.getBoundingClientRect();\n }\n\n private _getDialogWrapperDimensions(): { width: number; height: number } {\n const wrapper = this._getDialogWrapper();\n if (!wrapper) {\n return { width: 0, height: 0 };\n }\n const dimensions: CSSStyleDeclaration = getComputedStyle(wrapper);\n return {\n width: getPixels(dimensions.width),\n height: getPixels(dimensions.height),\n };\n }\n\n private _initialPositionReset(): void {\n const viewportWidth = this._getViewportDimensions()?.right ?? 0;\n const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;\n const { width, height } = this._getDialogWrapperDimensions();\n const wrapperStyle = this._getDialogWrapper()?.style;\n const originalDialogRight = wrapperStyle?.marginRight;\n const originalDialogLeft = wrapperStyle?.marginLeft;\n const originalDialogBottom = wrapperStyle?.marginBottom;\n const originalDialogTop = wrapperStyle?.marginTop;\n let x: number;\n if (originalDialogLeft) {\n x = getPixels(originalDialogLeft);\n } else if (originalDialogRight) {\n x = viewportWidth - getPixels(originalDialogRight) - width;\n } else {\n x = (viewportWidth - width) / 2;\n }\n let y: number;\n if (originalDialogTop) {\n y = getPixels(originalDialogTop);\n } else if (originalDialogBottom) {\n y = viewportHeight - getPixels(originalDialogBottom) - height;\n } else {\n y = (viewportHeight - height) / 2;\n }\n // use drag ref's mechanisms for positioning instead of the dialog's\n this._dialogRef.updatePosition({\n top: '0px',\n right: '0px',\n bottom: '0px',\n left: '0px',\n });\n this._dragRef.setFreeDragPosition({ x, y });\n }\n\n private _attachCorners(): void {\n Object.values(corners).forEach((corner: corners) => {\n const element: HTMLElement = this._renderer2.createElement('div');\n this.cornerElements = [...this.cornerElements, element];\n this._renderer2.setStyle(element, 'position', 'absolute');\n this._renderer2.setStyle(element, 'width', cornerWidth);\n this._renderer2.setStyle(element, 'height', cornerWidth);\n this._renderer2.appendChild(this._getDialogWrapper(), element);\n\n let cursor: cursors;\n let topBottom: verticalAlignment;\n let rightLeft: horizontalAlignment;\n\n if (corner === corners.topRight) {\n cursor = cursors.nesw;\n topBottom = verticalAlignment.top;\n rightLeft = horizontalAlignment.right;\n } else if (corner === corners.bottomRight) {\n cursor = cursors.nwse;\n topBottom = verticalAlignment.bottom;\n rightLeft = horizontalAlignment.right;\n\n const icon: HTMLElement = this._renderer2.createElement('i');\n this._renderer2.addClass(icon, 'material-icons');\n this._renderer2.appendChild(\n icon,\n this._renderer2.createText('filter_list')\n );\n this._renderer2.appendChild(element, icon);\n this._renderer2.setStyle(\n icon,\n 'transform',\n `rotate(${315}deg) translate(0px, ${offset})`\n );\n this._renderer2.setStyle(icon, 'font-size', cornerWidth);\n } else if (corner === corners.bottomLeft) {\n cursor = cursors.nesw;\n topBottom = verticalAlignment.bottom;\n rightLeft = horizontalAlignment.left;\n } else {\n cursor = cursors.nwse;\n topBottom = verticalAlignment.top;\n rightLeft = horizontalAlignment.left;\n }\n this._renderer2.setStyle(element, topBottom, offset);\n this._renderer2.setStyle(element, rightLeft, offset);\n this._renderer2.setStyle(element, 'cursor', cursor);\n\n const pointerDownSub: Subscription = fromEvent<PointerEvent>(\n element,\n 'pointerdown'\n ).subscribe((event: PointerEvent) => {\n this._handleMouseDown(event, corner);\n });\n this.pointerDownSubs = [...this.pointerDownSubs, pointerDownSub];\n });\n }\n\n private _handleMouseDown(event: PointerEvent, corner: corners): void {\n this._renderer2.setStyle(\n <HTMLElement>this._document.body,\n 'user-select',\n 'none'\n );\n const { width: originalWidth, height: originalHeight } =\n this._getDialogWrapperDimensions();\n const originalMouseX: number = event.pageX;\n const originalMouseY: number = event.pageY;\n const { x: currentTransformX, y: currentTransformY }: Point =\n this._dragRef.getFreeDragPosition();\n const wrapper = this._getDialogWrapper()?.getBoundingClientRect();\n const distanceFromBottom = wrapper?.bottom ?? 0;\n const distanceFromRight = wrapper?.right ?? 0;\n const viewportWidth = this._getViewportDimensions()?.right ?? 0;\n const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;\n\n const mouseMoveSub: Subscription = fromEvent<PointerEvent>(\n window,\n 'pointermove'\n ).subscribe((e: PointerEvent) => {\n e.preventDefault(); // prevent highlighting of text when dragging\n\n const yDelta: number = clamp(0, e.pageY, viewportHeight) - originalMouseY;\n const xDelta: number = clamp(0, e.pageX, viewportWidth) - originalMouseX;\n let newHeight: number;\n let newWidth: number;\n let newTransformY = 0;\n let newTransformX = 0;\n\n // top right\n if (corner === corners.topRight) {\n newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);\n newTransformY = clamp(\n 0,\n currentTransformY + yDelta,\n distanceFromBottom - newHeight\n );\n newTransformX = currentTransformX;\n }\n // bottom right\n else if (corner === corners.bottomRight) {\n newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);\n newTransformY = currentTransformY;\n newTransformX = currentTransformX;\n }\n // bottom left\n else if (corner === corners.bottomLeft) {\n newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);\n newTransformY = currentTransformY;\n newTransformX = clamp(\n 0,\n currentTransformX + xDelta,\n distanceFromRight - newWidth\n );\n }\n // top left\n else {\n newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);\n\n newTransformX = clamp(\n 0,\n currentTransformX + xDelta,\n distanceFromRight - newWidth\n );\n newTransformY = clamp(\n 0,\n currentTransformY + yDelta,\n distanceFromBottom - newHeight\n );\n }\n this._dialogRef.updateSize(`${newWidth}px`, `${newHeight}px`);\n this._dragRef.setFreeDragPosition({\n x: newTransformX,\n y: newTransformY,\n });\n });\n\n const mouseUpSub: Subscription = merge(\n fromEvent(window, 'pointerup'),\n fromEvent(window, 'pointercancel')\n ).subscribe(() => {\n this._renderer2.removeStyle(\n <HTMLElement>this._document.body,\n 'user-select'\n );\n mouseMoveSub.unsubscribe();\n mouseUpSub.unsubscribe();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"covalent-core-dialogs.mjs","sources":["../../../../libs/angular/dialogs/src/dialog.component.ts","../../../../libs/angular/dialogs/src/dialog.component.html","../../../../libs/angular/dialogs/src/alert-dialog/alert-dialog.component.ts","../../../../libs/angular/dialogs/src/alert-dialog/alert-dialog.component.html","../../../../libs/angular/dialogs/src/confirm-dialog/confirm-dialog.component.ts","../../../../libs/angular/dialogs/src/confirm-dialog/confirm-dialog.component.html","../../../../libs/angular/dialogs/src/prompt-dialog/prompt-dialog.component.ts","../../../../libs/angular/dialogs/src/prompt-dialog/prompt-dialog.component.html","../../../../libs/angular/dialogs/src/services/dialog.service.ts","../../../../libs/angular/dialogs/src/window-dialog/window-dialog.component.ts","../../../../libs/angular/dialogs/src/window-dialog/window-dialog.component.html","../../../../libs/angular/dialogs/src/dialogs.module.ts","../../../../libs/angular/dialogs/src/resizable-draggable-dialog/resizable-draggable-dialog.ts","../../../../libs/angular/dialogs/src/covalent-core-dialogs.ts"],"sourcesContent":["import {\n Component,\n Directive,\n ContentChildren,\n QueryList,\n AfterContentInit,\n} from '@angular/core';\n\n@Directive({ selector: '[tdDialogTitle]' })\nexport class TdDialogTitleDirective {}\n\n@Directive({ selector: '[tdDialogContent]' })\nexport class TdDialogContentDirective {}\n\n@Directive({ selector: '[tdDialogActions]' })\nexport class TdDialogActionsDirective {}\n\n@Component({\n selector: 'td-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n})\nexport class TdDialogComponent implements AfterContentInit {\n @ContentChildren(TdDialogTitleDirective, { descendants: true })\n dialogTitle!: QueryList<TdDialogTitleDirective>;\n @ContentChildren(TdDialogContentDirective, { descendants: true })\n dialogContent!: QueryList<TdDialogContentDirective>;\n @ContentChildren(TdDialogActionsDirective, { descendants: true })\n dialogActions!: QueryList<TdDialogActionsDirective>;\n\n ngAfterContentInit(): void {\n if (this.dialogTitle.length > 1) {\n throw new Error('Duplicate td-dialog-title component at in td-dialog.');\n }\n if (this.dialogContent.length > 1) {\n throw new Error('Duplicate td-dialog-content component at in td-dialog.');\n }\n if (this.dialogActions.length > 1) {\n throw new Error('Duplicate td-dialog-actions component at in td-dialog.');\n }\n }\n}\n","<div class=\"td-dialog-wrapper\">\n <h3 class=\"td-dialog-title\" *ngIf=\"dialogTitle.length > 0\">\n <ng-content select=\"[tdDialogTitle]\"></ng-content>\n </h3>\n <div class=\"td-dialog-content\" *ngIf=\"dialogContent.length > 0\">\n <ng-content select=\"[tdDialogContent]\"></ng-content>\n </div>\n <div class=\"td-dialog-actions\" *ngIf=\"dialogActions.length > 0\">\n <span class=\"td-dialog-spacer\"></span>\n <ng-content select=\"[tdDialogActions]\"></ng-content>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss'],\n})\nexport class TdAlertDialogComponent {\n title?: string;\n message?: string;\n closeButton?: string = 'CLOSE';\n\n constructor(private _dialogRef: MatDialogRef<TdAlertDialogComponent>) {}\n\n close(): void {\n this._dialogRef.close();\n }\n}\n","<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n </div>\n <div tdDialogActions>\n <button mat-button color=\"accent\" (click)=\"close()\">\n {{ closeButton }}\n </button>\n </div>\n</td-dialog>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n})\nexport class TdConfirmDialogComponent {\n title?: string;\n message?: string;\n cancelButton = 'CANCEL';\n acceptButton = 'ACCEPT';\n isDestructive = false;\n\n constructor(private _dialogRef: MatDialogRef<TdConfirmDialogComponent>) {}\n\n cancel(): void {\n this._dialogRef.close(false);\n }\n\n accept(): void {\n this._dialogRef.close(true);\n }\n}\n","<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n </div>\n <div tdDialogActions>\n <button\n mat-button\n #closeBtn\n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\"\n >\n {{ cancelButton }}\n </button>\n <button\n mat-button\n [color]=\"isDestructive ? 'warn' : 'accent'\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n","import {\n Component,\n ViewChild,\n ElementRef,\n AfterViewInit,\n NgZone,\n} from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-prompt-dialog',\n templateUrl: './prompt-dialog.component.html',\n styleUrls: ['./prompt-dialog.component.scss'],\n})\nexport class TdPromptDialogComponent implements AfterViewInit {\n title?: string;\n message?: string;\n value?: string;\n cancelButton = 'CANCEL';\n acceptButton = 'ACCEPT';\n\n @ViewChild('input', { static: true }) _input!: ElementRef<HTMLElement>;\n\n constructor(\n private _ngZone: NgZone,\n private _dialogRef: MatDialogRef<TdPromptDialogComponent>\n ) {}\n\n ngAfterViewInit(): void {\n this._ngZone.runOutsideAngular(() =>\n // Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.\n // `Promise` is a microtask and microtask are executed within the current rendering frame.\n // Animation tasks are executed within the next rendering frame.\n // We focus input once everything is rendered and good to go.\n requestAnimationFrame(() => this._input.nativeElement.focus())\n );\n }\n\n /**\n * Method executed when input is focused\n * Selects all text\n */\n handleInputFocus(): void {\n (<HTMLInputElement>this._input.nativeElement).select();\n }\n\n cancel(): void {\n this._dialogRef.close();\n }\n\n accept(): void {\n this._dialogRef.close(this.value);\n }\n}\n","<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (focus)=\"handleInputFocus()\"\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button\n mat-button\n #closeBtn\n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\"\n >\n {{ cancelButton }}\n </button>\n <button\n mat-button\n color=\"accent\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n [disabled]=\"!form.valid\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n","import { Injectable, Inject, Renderer2, RendererFactory2 } from '@angular/core';\nimport {\n MatDialog,\n MatDialogRef,\n MatDialogConfig,\n} from '@angular/material/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { TdAlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { TdConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\nimport { TdPromptDialogComponent } from '../prompt-dialog/prompt-dialog.component';\nimport { DragDrop, DragRef } from '@angular/cdk/drag-drop';\nimport { DOCUMENT } from '@angular/common';\nimport { Subject } from 'rxjs';\n\nexport interface IDialogConfig extends MatDialogConfig {\n title?: string;\n message: string;\n}\n\nexport interface IAlertConfig extends IDialogConfig {\n closeButton?: string;\n}\n\nexport interface IConfirmConfig extends IDialogConfig {\n acceptButton?: string;\n cancelButton?: string;\n isDestructive?: boolean;\n}\n\nexport interface IPromptConfig extends IConfirmConfig {\n value?: string;\n}\n\nexport interface IDraggableConfig<T> {\n component: ComponentType<T>;\n config?: MatDialogConfig;\n // CSS selectors of element(s) inside the component meant to be drag handle(s)\n dragHandleSelectors?: string[];\n // Class that will be added to the component signifying drag-ability\n draggableClass?: string;\n}\n\nexport interface IDraggableRefs<T> {\n matDialogRef: MatDialogRef<T>;\n dragRefSubject: Subject<DragRef>;\n}\n\n@Injectable()\nexport class TdDialogService {\n private _renderer2: Renderer2;\n\n constructor(\n @Inject(DOCUMENT) private _document: any,\n private _dialogService: MatDialog,\n private _dragDrop: DragDrop,\n private rendererFactory: RendererFactory2\n ) {\n this._renderer2 = rendererFactory.createRenderer(undefined, null);\n }\n\n /**\n * params:\n * - component: ComponentType<T>\n * - config: MatDialogConfig\n * Wrapper function over the open() method in MatDialog.\n * Opens a modal dialog containing the given component.\n */\n public open<T>(\n component: ComponentType<T>,\n config?: MatDialogConfig\n ): MatDialogRef<T> {\n return this._dialogService.open(component, config);\n }\n\n /**\n * Wrapper function over the closeAll() method in MatDialog.\n * Closes all of the currently-open dialogs.\n */\n public closeAll(): void {\n this._dialogService.closeAll();\n }\n\n /**\n * params:\n * - config: IAlertConfig {\n * message: string;\n * title?: string;\n * viewContainerRef?: ViewContainerRef;\n * closeButton?: string;\n * }\n *\n * Opens an alert dialog with the provided config.\n * Returns an MatDialogRef<TdAlertDialogComponent> object.\n */\n public openAlert(config: IAlertConfig): MatDialogRef<TdAlertDialogComponent> {\n const dialogConfig: MatDialogConfig = this._createConfig(config);\n const dialogRef: MatDialogRef<TdAlertDialogComponent> =\n this._dialogService.open(TdAlertDialogComponent, dialogConfig);\n const alertDialogComponent: TdAlertDialogComponent =\n dialogRef.componentInstance;\n alertDialogComponent.title = config.title;\n alertDialogComponent.message = config.message;\n if (config.closeButton) {\n alertDialogComponent.closeButton = config.closeButton;\n }\n return dialogRef;\n }\n\n /**\n * params:\n * - config: IConfirmConfig {\n * message: string;\n * title?: string;\n * viewContainerRef?: ViewContainerRef;\n * acceptButton?: string;\n * cancelButton?: string;\n * isDestructive?: boolean;\n * }\n *\n * Opens a confirm dialog with the provided config.\n * Returns an MatDialogRef<TdConfirmDialogComponent> object.\n */\n public openConfirm(\n config: IConfirmConfig\n ): MatDialogRef<TdConfirmDialogComponent> {\n const dialogConfig: MatDialogConfig = this._createConfig(config);\n const dialogRef: MatDialogRef<TdConfirmDialogComponent> =\n this._dialogService.open(TdConfirmDialogComponent, dialogConfig);\n const confirmDialogComponent: TdConfirmDialogComponent =\n dialogRef.componentInstance;\n confirmDialogComponent.title = config.title;\n confirmDialogComponent.message = config.message;\n if (config.acceptButton) {\n confirmDialogComponent.acceptButton = config.acceptButton;\n }\n if (config.isDestructive) {\n confirmDialogComponent.isDestructive = config.isDestructive;\n }\n if (config.cancelButton) {\n confirmDialogComponent.cancelButton = config.cancelButton;\n }\n return dialogRef;\n }\n\n /**\n * params:\n * - config: IPromptConfig {\n * message: string;\n * title?: string;\n * value?: string;\n * viewContainerRef?: ViewContainerRef;\n * acceptButton?: string;\n * cancelButton?: string;\n * }\n *\n * Opens a prompt dialog with the provided config.\n * Returns an MatDialogRef<TdPromptDialogComponent> object.\n */\n public openPrompt(\n config: IPromptConfig\n ): MatDialogRef<TdPromptDialogComponent> {\n const dialogConfig: MatDialogConfig = this._createConfig(config);\n const dialogRef: MatDialogRef<TdPromptDialogComponent> =\n this._dialogService.open(TdPromptDialogComponent, dialogConfig);\n const promptDialogComponent: TdPromptDialogComponent =\n dialogRef.componentInstance;\n promptDialogComponent.title = config.title;\n promptDialogComponent.message = config.message;\n promptDialogComponent.value = config.value;\n if (config.acceptButton) {\n promptDialogComponent.acceptButton = config.acceptButton;\n }\n if (config.cancelButton) {\n promptDialogComponent.cancelButton = config.cancelButton;\n }\n return dialogRef;\n }\n\n /**\n * Opens a draggable dialog containing the given component.\n */\n public openDraggable<T>({\n component,\n config,\n dragHandleSelectors,\n draggableClass,\n }: IDraggableConfig<T>): IDraggableRefs<T> {\n const matDialogRef: MatDialogRef<T, any> = this._dialogService.open(\n component,\n config\n );\n const dragRefSubject: Subject<DragRef> = new Subject<DragRef>();\n\n const CDK_OVERLAY_PANE_SELECTOR = '.cdk-overlay-pane';\n const CDK_OVERLAY_CONTAINER_SELECTOR = '.cdk-overlay-container';\n\n matDialogRef.afterOpened().subscribe(() => {\n const dialogElement: HTMLElement = <HTMLElement>(\n this._document.getElementById(matDialogRef.id)\n );\n const draggableElement: DragRef =\n this._dragDrop.createDrag(dialogElement);\n\n if (draggableClass) {\n const childComponent = dialogElement.firstElementChild;\n this._renderer2.addClass(childComponent, draggableClass);\n }\n if (dragHandleSelectors && dragHandleSelectors.length) {\n const dragHandles: Element[] = dragHandleSelectors.reduce(\n (acc: Element[], curr: string) => [\n ...acc,\n ...Array.from(dialogElement.querySelectorAll(curr)),\n ],\n []\n );\n if (dragHandles.length > 0) {\n draggableElement.withHandles(<HTMLElement[]>dragHandles);\n }\n }\n const rootElement = dialogElement.closest(CDK_OVERLAY_PANE_SELECTOR);\n if (rootElement) {\n draggableElement.withRootElement(<HTMLElement>rootElement);\n }\n\n const boundaryElement = dialogElement.closest(\n CDK_OVERLAY_CONTAINER_SELECTOR\n );\n if (boundaryElement) {\n draggableElement.withBoundaryElement(<HTMLElement>boundaryElement);\n }\n dragRefSubject.next(draggableElement);\n });\n\n return { matDialogRef, dragRefSubject };\n }\n\n private _createConfig(config: IDialogConfig): MatDialogConfig {\n const dialogConfig: MatDialogConfig = new MatDialogConfig();\n dialogConfig.width = '400px';\n Object.assign(dialogConfig, config);\n return dialogConfig;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n@Component({\n selector: 'td-window-dialog',\n templateUrl: './window-dialog.component.html',\n styleUrls: ['./window-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdWindowDialogComponent {\n @Input() toolbarColor?: ThemePalette;\n @Input() docked? = false;\n\n @Input() title?: string;\n @Input() toggleDockedStateLabel?: string;\n @Input() closeLabel?: string;\n\n @Output() dockToggled: EventEmitter<boolean> = new EventEmitter();\n @Output() closed: EventEmitter<void> = new EventEmitter();\n\n toolbarHeight = 56;\n\n toggleDockedState(): void {\n this.dockToggled.emit(this.docked);\n }\n}\n","<mat-toolbar\n [color]=\"toolbarColor\"\n class=\"td-window-dialog-toolbar\"\n [style.min-height.px]=\"toolbarHeight\"\n [style.cursor]=\"docked ? 'inherit' : 'move'\"\n>\n <mat-toolbar-row [style.height.px]=\"toolbarHeight\">\n <div layout=\"row\" layout-align=\"start center\" flex>\n <span class=\"mat-title td-window-dialog-title truncate\" flex>\n {{ title }}\n </span>\n <!-- TODO: Resizing a drag-and-drop element was not working so removed docking/undocking for now-->\n <!-- <button mat-icon-button [matTooltip]=\"toggleDockedStateLabel\" (click)=\"toggleDockedState()\">\n <mat-icon [attr.aria-label]=\"toggleDockedStateLabel\">\n {{ docked ? 'unfold_more' : 'unfold_less' }}\n </mat-icon>\n </button> -->\n\n <button\n mat-icon-button\n [matTooltip]=\"closeLabel ?? ''\"\n (click)=\"closed.emit()\"\n class=\"td-window-dialog-close\"\n [attr.data-test]=\"'close-button'\"\n >\n <mat-icon [attr.aria-label]=\"closeLabel\">close</mat-icon>\n </button>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n<ng-content></ng-content>\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport {\n TdDialogComponent,\n TdDialogTitleDirective,\n TdDialogActionsDirective,\n TdDialogContentDirective,\n} from './dialog.component';\nimport { TdAlertDialogComponent } from './alert-dialog/alert-dialog.component';\nimport { TdConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { TdPromptDialogComponent } from './prompt-dialog/prompt-dialog.component';\nimport { TdDialogService } from './services/dialog.service';\nimport { TdWindowDialogComponent } from './window-dialog/window-dialog.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\n\nconst TD_DIALOGS: Type<any>[] = [\n TdAlertDialogComponent,\n TdConfirmDialogComponent,\n TdPromptDialogComponent,\n TdDialogComponent,\n TdDialogTitleDirective,\n TdDialogActionsDirective,\n TdDialogContentDirective,\n TdWindowDialogComponent,\n TdAlertDialogComponent,\n TdConfirmDialogComponent,\n TdPromptDialogComponent,\n];\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n MatDialogModule,\n MatInputModule,\n MatButtonModule,\n MatToolbarModule,\n MatTooltipModule,\n MatIconModule,\n ],\n declarations: [...TD_DIALOGS],\n exports: [...TD_DIALOGS],\n providers: [TdDialogService],\n})\nexport class CovalentDialogsModule {}\n","import { Renderer2 } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { DragRef } from '@angular/cdk/drag-drop';\nimport { merge, Subscription, fromEvent } from 'rxjs';\nimport { Point } from '@angular/cdk/drag-drop/drag-ref';\n\nenum corners {\n topRight = 'topRight',\n bottomRight = 'bottomRight',\n bottomLeft = 'bottomLeft',\n topLeft = 'topLeft',\n}\nenum cursors {\n nesw = 'nesw-resize',\n nwse = 'nwse-resize',\n}\nenum verticalAlignment {\n top = 'top',\n bottom = 'bottom',\n}\nenum horizontalAlignment {\n right = 'right',\n left = 'left',\n}\n\nconst cornerWidth = '16px';\nconst offset = '0px';\nconst minWidth = 200;\nconst minHeight = 200;\n\nfunction getPixels(sizeString: string): number {\n return parseFloat((sizeString || '').replace('px', ''));\n}\n\nfunction clamp(min: number, num: number, max: number): number {\n return Math.min(Math.max(num, min), max);\n}\n\nexport class ResizableDraggableDialog {\n cornerElements: HTMLElement[] = [];\n pointerDownSubs: Subscription[] = [];\n\n constructor(\n private _document: any,\n private _renderer2: Renderer2,\n private _dialogRef: MatDialogRef<any>,\n private _dragRef: DragRef\n ) {\n this._initialPositionReset();\n this._attachCorners();\n }\n\n public attach(): void {\n this.detach();\n this._attachCorners();\n }\n\n public detach(): void {\n this.pointerDownSubs.forEach((sub: Subscription) => sub.unsubscribe());\n this.pointerDownSubs = [];\n this.cornerElements.forEach((elem: HTMLElement) =>\n this._renderer2.removeChild(this._getDialogWrapper(), elem)\n );\n this.cornerElements = [];\n }\n\n private _getDialogWrapper(): HTMLElement | null {\n return (\n <HTMLElement>this._document.getElementById(this._dialogRef.id) || {}\n ).parentElement;\n }\n\n private _getViewportDimensions(): ClientRect | undefined {\n return this._getDialogWrapper()?.parentElement?.getBoundingClientRect();\n }\n\n private _getDialogWrapperDimensions(): { width: number; height: number } {\n const wrapper = this._getDialogWrapper();\n if (!wrapper) {\n return { width: 0, height: 0 };\n }\n const dimensions: CSSStyleDeclaration = getComputedStyle(wrapper);\n return {\n width: getPixels(dimensions.width),\n height: getPixels(dimensions.height),\n };\n }\n\n private _initialPositionReset(): void {\n const viewportWidth = this._getViewportDimensions()?.right ?? 0;\n const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;\n const { width, height } = this._getDialogWrapperDimensions();\n const wrapperStyle = this._getDialogWrapper()?.style;\n const originalDialogRight = wrapperStyle?.marginRight;\n const originalDialogLeft = wrapperStyle?.marginLeft;\n const originalDialogBottom = wrapperStyle?.marginBottom;\n const originalDialogTop = wrapperStyle?.marginTop;\n let x: number;\n if (originalDialogLeft) {\n x = getPixels(originalDialogLeft);\n } else if (originalDialogRight) {\n x = viewportWidth - getPixels(originalDialogRight) - width;\n } else {\n x = (viewportWidth - width) / 2;\n }\n let y: number;\n if (originalDialogTop) {\n y = getPixels(originalDialogTop);\n } else if (originalDialogBottom) {\n y = viewportHeight - getPixels(originalDialogBottom) - height;\n } else {\n y = (viewportHeight - height) / 2;\n }\n // use drag ref's mechanisms for positioning instead of the dialog's\n this._dialogRef.updatePosition({\n top: '0px',\n right: '0px',\n bottom: '0px',\n left: '0px',\n });\n this._dragRef.setFreeDragPosition({ x, y });\n }\n\n private _attachCorners(): void {\n Object.values(corners).forEach((corner: corners) => {\n const element: HTMLElement = this._renderer2.createElement('div');\n this.cornerElements = [...this.cornerElements, element];\n this._renderer2.setStyle(element, 'position', 'absolute');\n this._renderer2.setStyle(element, 'width', cornerWidth);\n this._renderer2.setStyle(element, 'height', cornerWidth);\n this._renderer2.appendChild(this._getDialogWrapper(), element);\n\n let cursor: cursors;\n let topBottom: verticalAlignment;\n let rightLeft: horizontalAlignment;\n\n if (corner === corners.topRight) {\n cursor = cursors.nesw;\n topBottom = verticalAlignment.top;\n rightLeft = horizontalAlignment.right;\n } else if (corner === corners.bottomRight) {\n cursor = cursors.nwse;\n topBottom = verticalAlignment.bottom;\n rightLeft = horizontalAlignment.right;\n\n const icon: HTMLElement = this._renderer2.createElement('i');\n this._renderer2.addClass(icon, 'material-icons');\n this._renderer2.appendChild(\n icon,\n this._renderer2.createText('filter_list')\n );\n this._renderer2.appendChild(element, icon);\n this._renderer2.setStyle(\n icon,\n 'transform',\n `rotate(${315}deg) translate(0px, ${offset})`\n );\n this._renderer2.setStyle(icon, 'font-size', cornerWidth);\n } else if (corner === corners.bottomLeft) {\n cursor = cursors.nesw;\n topBottom = verticalAlignment.bottom;\n rightLeft = horizontalAlignment.left;\n } else {\n cursor = cursors.nwse;\n topBottom = verticalAlignment.top;\n rightLeft = horizontalAlignment.left;\n }\n this._renderer2.setStyle(element, topBottom, offset);\n this._renderer2.setStyle(element, rightLeft, offset);\n this._renderer2.setStyle(element, 'cursor', cursor);\n\n const pointerDownSub: Subscription = fromEvent<PointerEvent>(\n element,\n 'pointerdown'\n ).subscribe((event: PointerEvent) => {\n this._handleMouseDown(event, corner);\n });\n this.pointerDownSubs = [...this.pointerDownSubs, pointerDownSub];\n });\n }\n\n private _handleMouseDown(event: PointerEvent, corner: corners): void {\n this._renderer2.setStyle(\n <HTMLElement>this._document.body,\n 'user-select',\n 'none'\n );\n const { width: originalWidth, height: originalHeight } =\n this._getDialogWrapperDimensions();\n const originalMouseX: number = event.pageX;\n const originalMouseY: number = event.pageY;\n const { x: currentTransformX, y: currentTransformY }: Point =\n this._dragRef.getFreeDragPosition();\n const wrapper = this._getDialogWrapper()?.getBoundingClientRect();\n const distanceFromBottom = wrapper?.bottom ?? 0;\n const distanceFromRight = wrapper?.right ?? 0;\n const viewportWidth = this._getViewportDimensions()?.right ?? 0;\n const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;\n\n const mouseMoveSub: Subscription = fromEvent<PointerEvent>(\n window,\n 'pointermove'\n ).subscribe((e: PointerEvent) => {\n e.preventDefault(); // prevent highlighting of text when dragging\n\n const yDelta: number = clamp(0, e.pageY, viewportHeight) - originalMouseY;\n const xDelta: number = clamp(0, e.pageX, viewportWidth) - originalMouseX;\n let newHeight: number;\n let newWidth: number;\n let newTransformY = 0;\n let newTransformX = 0;\n\n // top right\n if (corner === corners.topRight) {\n newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);\n newTransformY = clamp(\n 0,\n currentTransformY + yDelta,\n distanceFromBottom - newHeight\n );\n newTransformX = currentTransformX;\n }\n // bottom right\n else if (corner === corners.bottomRight) {\n newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);\n newTransformY = currentTransformY;\n newTransformX = currentTransformX;\n }\n // bottom left\n else if (corner === corners.bottomLeft) {\n newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);\n newTransformY = currentTransformY;\n newTransformX = clamp(\n 0,\n currentTransformX + xDelta,\n distanceFromRight - newWidth\n );\n }\n // top left\n else {\n newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);\n\n newTransformX = clamp(\n 0,\n currentTransformX + xDelta,\n distanceFromRight - newWidth\n );\n newTransformY = clamp(\n 0,\n currentTransformY + yDelta,\n distanceFromBottom - newHeight\n );\n }\n this._dialogRef.updateSize(`${newWidth}px`, `${newHeight}px`);\n this._dragRef.setFreeDragPosition({\n x: newTransformX,\n y: newTransformY,\n });\n });\n\n const mouseUpSub: Subscription = merge(\n fromEvent(window, 'pointerup'),\n fromEvent(window, 'pointercancel')\n ).subscribe(() => {\n this._renderer2.removeStyle(\n <HTMLElement>this._document.body,\n 'user-select'\n );\n mouseMoveSub.unsubscribe();\n mouseUpSub.unsubscribe();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { Directive, Component, ContentChildren,
|
2
|
+
import { Directive, Component, ContentChildren, ViewChild, Injectable, Inject, EventEmitter, ChangeDetectionStrategy, Input, Output, NgModule } from '@angular/core';
|
3
3
|
import * as i4 from '@angular/common';
|
4
4
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
5
5
|
import * as i6 from '@angular/forms';
|
@@ -10,10 +10,9 @@ import * as i7 from '@angular/material/input';
|
|
10
10
|
import { MatInputModule } from '@angular/material/input';
|
11
11
|
import * as i3 from '@angular/material/button';
|
12
12
|
import { MatButtonModule } from '@angular/material/button';
|
13
|
-
import { RIGHT_ARROW, LEFT_ARROW } from '@angular/cdk/keycodes';
|
14
|
-
import { Subject, fromEvent, takeUntil, merge } from 'rxjs';
|
15
13
|
import * as i3$1 from '@angular/material/form-field';
|
16
14
|
import * as i2 from '@angular/cdk/drag-drop';
|
15
|
+
import { Subject, fromEvent, merge } from 'rxjs';
|
17
16
|
import * as i1$1 from '@angular/material/toolbar';
|
18
17
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
19
18
|
import * as i3$2 from '@angular/material/icon';
|
@@ -117,39 +116,21 @@ class TdPromptDialogComponent {
|
|
117
116
|
this._dialogRef = _dialogRef;
|
118
117
|
this.cancelButton = 'CANCEL';
|
119
118
|
this.acceptButton = 'ACCEPT';
|
120
|
-
this._destroy$ = new Subject();
|
121
119
|
}
|
122
120
|
ngAfterViewInit() {
|
123
|
-
this._ngZone.runOutsideAngular(() =>
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
fromEvent(this._input.nativeElement, 'focus')
|
130
|
-
.pipe(takeUntil(this._destroy$))
|
131
|
-
.subscribe(() => {
|
132
|
-
// This is executed when the input is focused, selects all text.
|
133
|
-
this._input.nativeElement.select();
|
134
|
-
});
|
135
|
-
fromEvent(this._closeBtn.nativeElement, 'keydown')
|
136
|
-
.pipe(takeUntil(this._destroy$))
|
137
|
-
.subscribe((event) => {
|
138
|
-
if (event.keyCode === RIGHT_ARROW) {
|
139
|
-
this._acceptBtn.nativeElement.focus();
|
140
|
-
}
|
141
|
-
});
|
142
|
-
fromEvent(this._acceptBtn.nativeElement, 'keydown')
|
143
|
-
.pipe(takeUntil(this._destroy$))
|
144
|
-
.subscribe((event) => {
|
145
|
-
if (event.keyCode === LEFT_ARROW) {
|
146
|
-
this._closeBtn.nativeElement.focus();
|
147
|
-
}
|
148
|
-
});
|
149
|
-
});
|
121
|
+
this._ngZone.runOutsideAngular(() =>
|
122
|
+
// Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.
|
123
|
+
// `Promise` is a microtask and microtask are executed within the current rendering frame.
|
124
|
+
// Animation tasks are executed within the next rendering frame.
|
125
|
+
// We focus input once everything is rendered and good to go.
|
126
|
+
requestAnimationFrame(() => this._input.nativeElement.focus()));
|
150
127
|
}
|
151
|
-
|
152
|
-
|
128
|
+
/**
|
129
|
+
* Method executed when input is focused
|
130
|
+
* Selects all text
|
131
|
+
*/
|
132
|
+
handleInputFocus() {
|
133
|
+
this._input.nativeElement.select();
|
153
134
|
}
|
154
135
|
cancel() {
|
155
136
|
this._dialogRef.close();
|
@@ -159,19 +140,13 @@ class TdPromptDialogComponent {
|
|
159
140
|
}
|
160
141
|
}
|
161
142
|
TdPromptDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdPromptDialogComponent, deps: [{ token: i0.NgZone }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
162
|
-
TdPromptDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdPromptDialogComponent, selector: "td-prompt-dialog", viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true, static: true }
|
143
|
+
TdPromptDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdPromptDialogComponent, selector: "td-prompt-dialog", viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (focus)=\"handleInputFocus()\"\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button\n mat-button\n #closeBtn\n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\"\n >\n {{ cancelButton }}\n </button>\n <button\n mat-button\n color=\"accent\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n [disabled]=\"!form.valid\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n", styles: [".td-dialog-input-wrapper{flex-direction:row;box-sizing:border-box;display:flex}.td-dialog-input-wrapper .td-dialog-input{flex:1;box-sizing:border-box}.td-dialog-message{word-break:break-word}\n"], components: [{ type: TdDialogComponent, selector: "td-dialog" }, { type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TdDialogTitleDirective, selector: "[tdDialogTitle]" }, { type: TdDialogContentDirective, selector: "[tdDialogContent]" }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: TdDialogActionsDirective, selector: "[tdDialogActions]" }] });
|
163
144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdPromptDialogComponent, decorators: [{
|
164
145
|
type: Component,
|
165
|
-
args: [{ selector: 'td-prompt-dialog', template: "<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button
|
146
|
+
args: [{ selector: 'td-prompt-dialog', template: "<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (focus)=\"handleInputFocus()\"\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button\n mat-button\n #closeBtn\n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\"\n >\n {{ cancelButton }}\n </button>\n <button\n mat-button\n color=\"accent\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n [disabled]=\"!form.valid\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n", styles: [".td-dialog-input-wrapper{flex-direction:row;box-sizing:border-box;display:flex}.td-dialog-input-wrapper .td-dialog-input{flex:1;box-sizing:border-box}.td-dialog-message{word-break:break-word}\n"] }]
|
166
147
|
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.MatDialogRef }]; }, propDecorators: { _input: [{
|
167
148
|
type: ViewChild,
|
168
149
|
args: ['input', { static: true }]
|
169
|
-
}], _closeBtn: [{
|
170
|
-
type: ViewChild,
|
171
|
-
args: ['closeBtn', { static: true, read: ElementRef }]
|
172
|
-
}], _acceptBtn: [{
|
173
|
-
type: ViewChild,
|
174
|
-
args: ['acceptBtn', { static: true, read: ElementRef }]
|
175
150
|
}] } });
|
176
151
|
|
177
152
|
class TdDialogService {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"covalent-core-dialogs.mjs","sources":["../../../../libs/angular/dialogs/src/dialog.component.ts","../../../../libs/angular/dialogs/src/dialog.component.html","../../../../libs/angular/dialogs/src/alert-dialog/alert-dialog.component.ts","../../../../libs/angular/dialogs/src/alert-dialog/alert-dialog.component.html","../../../../libs/angular/dialogs/src/confirm-dialog/confirm-dialog.component.ts","../../../../libs/angular/dialogs/src/confirm-dialog/confirm-dialog.component.html","../../../../libs/angular/dialogs/src/prompt-dialog/prompt-dialog.component.ts","../../../../libs/angular/dialogs/src/prompt-dialog/prompt-dialog.component.html","../../../../libs/angular/dialogs/src/services/dialog.service.ts","../../../../libs/angular/dialogs/src/window-dialog/window-dialog.component.ts","../../../../libs/angular/dialogs/src/window-dialog/window-dialog.component.html","../../../../libs/angular/dialogs/src/dialogs.module.ts","../../../../libs/angular/dialogs/src/resizable-draggable-dialog/resizable-draggable-dialog.ts","../../../../libs/angular/dialogs/src/covalent-core-dialogs.ts"],"sourcesContent":["import {\n Component,\n Directive,\n ContentChildren,\n QueryList,\n AfterContentInit,\n} from '@angular/core';\n\n@Directive({ selector: '[tdDialogTitle]' })\nexport class TdDialogTitleDirective {}\n\n@Directive({ selector: '[tdDialogContent]' })\nexport class TdDialogContentDirective {}\n\n@Directive({ selector: '[tdDialogActions]' })\nexport class TdDialogActionsDirective {}\n\n@Component({\n selector: 'td-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n})\nexport class TdDialogComponent implements AfterContentInit {\n @ContentChildren(TdDialogTitleDirective, { descendants: true })\n dialogTitle!: QueryList<TdDialogTitleDirective>;\n @ContentChildren(TdDialogContentDirective, { descendants: true })\n dialogContent!: QueryList<TdDialogContentDirective>;\n @ContentChildren(TdDialogActionsDirective, { descendants: true })\n dialogActions!: QueryList<TdDialogActionsDirective>;\n\n ngAfterContentInit(): void {\n if (this.dialogTitle.length > 1) {\n throw new Error('Duplicate td-dialog-title component at in td-dialog.');\n }\n if (this.dialogContent.length > 1) {\n throw new Error('Duplicate td-dialog-content component at in td-dialog.');\n }\n if (this.dialogActions.length > 1) {\n throw new Error('Duplicate td-dialog-actions component at in td-dialog.');\n }\n }\n}\n","<div class=\"td-dialog-wrapper\">\n <h3 class=\"td-dialog-title\" *ngIf=\"dialogTitle.length > 0\">\n <ng-content select=\"[tdDialogTitle]\"></ng-content>\n </h3>\n <div class=\"td-dialog-content\" *ngIf=\"dialogContent.length > 0\">\n <ng-content select=\"[tdDialogContent]\"></ng-content>\n </div>\n <div class=\"td-dialog-actions\" *ngIf=\"dialogActions.length > 0\">\n <span class=\"td-dialog-spacer\"></span>\n <ng-content select=\"[tdDialogActions]\"></ng-content>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss'],\n})\nexport class TdAlertDialogComponent {\n title?: string;\n message?: string;\n closeButton?: string = 'CLOSE';\n\n constructor(private _dialogRef: MatDialogRef<TdAlertDialogComponent>) {}\n\n close(): void {\n this._dialogRef.close();\n }\n}\n","<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n </div>\n <div tdDialogActions>\n <button mat-button color=\"accent\" (click)=\"close()\">\n {{ closeButton }}\n </button>\n </div>\n</td-dialog>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n})\nexport class TdConfirmDialogComponent {\n title?: string;\n message?: string;\n cancelButton = 'CANCEL';\n acceptButton = 'ACCEPT';\n isDestructive = false;\n\n constructor(private _dialogRef: MatDialogRef<TdConfirmDialogComponent>) {}\n\n cancel(): void {\n this._dialogRef.close(false);\n }\n\n accept(): void {\n this._dialogRef.close(true);\n }\n}\n","<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n </div>\n <div tdDialogActions>\n <button\n mat-button\n #closeBtn\n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\"\n >\n {{ cancelButton }}\n </button>\n <button\n mat-button\n [color]=\"isDestructive ? 'warn' : 'accent'\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n","import {\n Component,\n ViewChild,\n ElementRef,\n AfterViewInit,\n NgZone,\n OnDestroy,\n} from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'td-prompt-dialog',\n templateUrl: './prompt-dialog.component.html',\n styleUrls: ['./prompt-dialog.component.scss'],\n})\nexport class TdPromptDialogComponent implements AfterViewInit, OnDestroy {\n title?: string;\n message?: string;\n value?: string;\n cancelButton = 'CANCEL';\n acceptButton = 'ACCEPT';\n\n /** The native `<input matInput />` element. */\n @ViewChild('input', { static: true }) _input!: ElementRef<HTMLInputElement>;\n\n @ViewChild('closeBtn', { static: true, read: ElementRef })\n _closeBtn!: ElementRef<HTMLButtonElement>;\n\n @ViewChild('acceptBtn', { static: true, read: ElementRef })\n _acceptBtn!: ElementRef<HTMLButtonElement>;\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n private _ngZone: NgZone,\n private _dialogRef: MatDialogRef<TdPromptDialogComponent>\n ) {}\n\n ngAfterViewInit(): void {\n this._ngZone.runOutsideAngular(() => {\n // Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.\n // `Promise` is a microtask and microtask are executed within the current rendering frame.\n // Animation tasks are executed within the next rendering frame.\n // We focus input once everything is rendered and good to go.\n requestAnimationFrame(() => this._input.nativeElement.focus());\n\n fromEvent(this._input.nativeElement, 'focus')\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n // This is executed when the input is focused, selects all text.\n this._input.nativeElement.select();\n });\n\n fromEvent<KeyboardEvent>(this._closeBtn.nativeElement, 'keydown')\n .pipe(takeUntil(this._destroy$))\n .subscribe((event) => {\n if (event.keyCode === RIGHT_ARROW) {\n this._acceptBtn.nativeElement.focus();\n }\n });\n\n fromEvent<KeyboardEvent>(this._acceptBtn.nativeElement, 'keydown')\n .pipe(takeUntil(this._destroy$))\n .subscribe((event) => {\n if (event.keyCode === LEFT_ARROW) {\n this._closeBtn.nativeElement.focus();\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n cancel(): void {\n this._dialogRef.close();\n }\n\n accept(): void {\n this._dialogRef.close(this.value);\n }\n}\n","<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button mat-button #closeBtn (click)=\"cancel()\">\n {{ cancelButton }}\n </button>\n <button\n mat-button\n color=\"accent\"\n #acceptBtn\n [disabled]=\"!form.valid\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n","import { Injectable, Inject, Renderer2, RendererFactory2 } from '@angular/core';\nimport {\n MatDialog,\n MatDialogRef,\n MatDialogConfig,\n} from '@angular/material/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { TdAlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { TdConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\nimport { TdPromptDialogComponent } from '../prompt-dialog/prompt-dialog.component';\nimport { DragDrop, DragRef } from '@angular/cdk/drag-drop';\nimport { DOCUMENT } from '@angular/common';\nimport { Subject } from 'rxjs';\n\nexport interface IDialogConfig extends MatDialogConfig {\n title?: string;\n message: string;\n}\n\nexport interface IAlertConfig extends IDialogConfig {\n closeButton?: string;\n}\n\nexport interface IConfirmConfig extends IDialogConfig {\n acceptButton?: string;\n cancelButton?: string;\n isDestructive?: boolean;\n}\n\nexport interface IPromptConfig extends IConfirmConfig {\n value?: string;\n}\n\nexport interface IDraggableConfig<T> {\n component: ComponentType<T>;\n config?: MatDialogConfig;\n // CSS selectors of element(s) inside the component meant to be drag handle(s)\n dragHandleSelectors?: string[];\n // Class that will be added to the component signifying drag-ability\n draggableClass?: string;\n}\n\nexport interface IDraggableRefs<T> {\n matDialogRef: MatDialogRef<T>;\n dragRefSubject: Subject<DragRef>;\n}\n\n@Injectable()\nexport class TdDialogService {\n private _renderer2: Renderer2;\n\n constructor(\n @Inject(DOCUMENT) private _document: any,\n private _dialogService: MatDialog,\n private _dragDrop: DragDrop,\n private rendererFactory: RendererFactory2\n ) {\n this._renderer2 = rendererFactory.createRenderer(undefined, null);\n }\n\n /**\n * params:\n * - component: ComponentType<T>\n * - config: MatDialogConfig\n * Wrapper function over the open() method in MatDialog.\n * Opens a modal dialog containing the given component.\n */\n public open<T>(\n component: ComponentType<T>,\n config?: MatDialogConfig\n ): MatDialogRef<T> {\n return this._dialogService.open(component, config);\n }\n\n /**\n * Wrapper function over the closeAll() method in MatDialog.\n * Closes all of the currently-open dialogs.\n */\n public closeAll(): void {\n this._dialogService.closeAll();\n }\n\n /**\n * params:\n * - config: IAlertConfig {\n * message: string;\n * title?: string;\n * viewContainerRef?: ViewContainerRef;\n * closeButton?: string;\n * }\n *\n * Opens an alert dialog with the provided config.\n * Returns an MatDialogRef<TdAlertDialogComponent> object.\n */\n public openAlert(config: IAlertConfig): MatDialogRef<TdAlertDialogComponent> {\n const dialogConfig: MatDialogConfig = this._createConfig(config);\n const dialogRef: MatDialogRef<TdAlertDialogComponent> =\n this._dialogService.open(TdAlertDialogComponent, dialogConfig);\n const alertDialogComponent: TdAlertDialogComponent =\n dialogRef.componentInstance;\n alertDialogComponent.title = config.title;\n alertDialogComponent.message = config.message;\n if (config.closeButton) {\n alertDialogComponent.closeButton = config.closeButton;\n }\n return dialogRef;\n }\n\n /**\n * params:\n * - config: IConfirmConfig {\n * message: string;\n * title?: string;\n * viewContainerRef?: ViewContainerRef;\n * acceptButton?: string;\n * cancelButton?: string;\n * isDestructive?: boolean;\n * }\n *\n * Opens a confirm dialog with the provided config.\n * Returns an MatDialogRef<TdConfirmDialogComponent> object.\n */\n public openConfirm(\n config: IConfirmConfig\n ): MatDialogRef<TdConfirmDialogComponent> {\n const dialogConfig: MatDialogConfig = this._createConfig(config);\n const dialogRef: MatDialogRef<TdConfirmDialogComponent> =\n this._dialogService.open(TdConfirmDialogComponent, dialogConfig);\n const confirmDialogComponent: TdConfirmDialogComponent =\n dialogRef.componentInstance;\n confirmDialogComponent.title = config.title;\n confirmDialogComponent.message = config.message;\n if (config.acceptButton) {\n confirmDialogComponent.acceptButton = config.acceptButton;\n }\n if (config.isDestructive) {\n confirmDialogComponent.isDestructive = config.isDestructive;\n }\n if (config.cancelButton) {\n confirmDialogComponent.cancelButton = config.cancelButton;\n }\n return dialogRef;\n }\n\n /**\n * params:\n * - config: IPromptConfig {\n * message: string;\n * title?: string;\n * value?: string;\n * viewContainerRef?: ViewContainerRef;\n * acceptButton?: string;\n * cancelButton?: string;\n * }\n *\n * Opens a prompt dialog with the provided config.\n * Returns an MatDialogRef<TdPromptDialogComponent> object.\n */\n public openPrompt(\n config: IPromptConfig\n ): MatDialogRef<TdPromptDialogComponent> {\n const dialogConfig: MatDialogConfig = this._createConfig(config);\n const dialogRef: MatDialogRef<TdPromptDialogComponent> =\n this._dialogService.open(TdPromptDialogComponent, dialogConfig);\n const promptDialogComponent: TdPromptDialogComponent =\n dialogRef.componentInstance;\n promptDialogComponent.title = config.title;\n promptDialogComponent.message = config.message;\n promptDialogComponent.value = config.value;\n if (config.acceptButton) {\n promptDialogComponent.acceptButton = config.acceptButton;\n }\n if (config.cancelButton) {\n promptDialogComponent.cancelButton = config.cancelButton;\n }\n return dialogRef;\n }\n\n /**\n * Opens a draggable dialog containing the given component.\n */\n public openDraggable<T>({\n component,\n config,\n dragHandleSelectors,\n draggableClass,\n }: IDraggableConfig<T>): IDraggableRefs<T> {\n const matDialogRef: MatDialogRef<T, any> = this._dialogService.open(\n component,\n config\n );\n const dragRefSubject: Subject<DragRef> = new Subject<DragRef>();\n\n const CDK_OVERLAY_PANE_SELECTOR = '.cdk-overlay-pane';\n const CDK_OVERLAY_CONTAINER_SELECTOR = '.cdk-overlay-container';\n\n matDialogRef.afterOpened().subscribe(() => {\n const dialogElement: HTMLElement = <HTMLElement>(\n this._document.getElementById(matDialogRef.id)\n );\n const draggableElement: DragRef =\n this._dragDrop.createDrag(dialogElement);\n\n if (draggableClass) {\n const childComponent = dialogElement.firstElementChild;\n this._renderer2.addClass(childComponent, draggableClass);\n }\n if (dragHandleSelectors && dragHandleSelectors.length) {\n const dragHandles: Element[] = dragHandleSelectors.reduce(\n (acc: Element[], curr: string) => [\n ...acc,\n ...Array.from(dialogElement.querySelectorAll(curr)),\n ],\n []\n );\n if (dragHandles.length > 0) {\n draggableElement.withHandles(<HTMLElement[]>dragHandles);\n }\n }\n const rootElement = dialogElement.closest(CDK_OVERLAY_PANE_SELECTOR);\n if (rootElement) {\n draggableElement.withRootElement(<HTMLElement>rootElement);\n }\n\n const boundaryElement = dialogElement.closest(\n CDK_OVERLAY_CONTAINER_SELECTOR\n );\n if (boundaryElement) {\n draggableElement.withBoundaryElement(<HTMLElement>boundaryElement);\n }\n dragRefSubject.next(draggableElement);\n });\n\n return { matDialogRef, dragRefSubject };\n }\n\n private _createConfig(config: IDialogConfig): MatDialogConfig {\n const dialogConfig: MatDialogConfig = new MatDialogConfig();\n dialogConfig.width = '400px';\n Object.assign(dialogConfig, config);\n return dialogConfig;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n@Component({\n selector: 'td-window-dialog',\n templateUrl: './window-dialog.component.html',\n styleUrls: ['./window-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdWindowDialogComponent {\n @Input() toolbarColor?: ThemePalette;\n @Input() docked? = false;\n\n @Input() title?: string;\n @Input() toggleDockedStateLabel?: string;\n @Input() closeLabel?: string;\n\n @Output() dockToggled: EventEmitter<boolean> = new EventEmitter();\n @Output() closed: EventEmitter<void> = new EventEmitter();\n\n toolbarHeight = 56;\n\n toggleDockedState(): void {\n this.dockToggled.emit(this.docked);\n }\n}\n","<mat-toolbar\n [color]=\"toolbarColor\"\n class=\"td-window-dialog-toolbar\"\n [style.min-height.px]=\"toolbarHeight\"\n [style.cursor]=\"docked ? 'inherit' : 'move'\"\n>\n <mat-toolbar-row [style.height.px]=\"toolbarHeight\">\n <div layout=\"row\" layout-align=\"start center\" flex>\n <span class=\"mat-title td-window-dialog-title truncate\" flex>\n {{ title }}\n </span>\n <!-- TODO: Resizing a drag-and-drop element was not working so removed docking/undocking for now-->\n <!-- <button mat-icon-button [matTooltip]=\"toggleDockedStateLabel\" (click)=\"toggleDockedState()\">\n <mat-icon [attr.aria-label]=\"toggleDockedStateLabel\">\n {{ docked ? 'unfold_more' : 'unfold_less' }}\n </mat-icon>\n </button> -->\n\n <button\n mat-icon-button\n [matTooltip]=\"closeLabel ?? ''\"\n (click)=\"closed.emit()\"\n class=\"td-window-dialog-close\"\n [attr.data-test]=\"'close-button'\"\n >\n <mat-icon [attr.aria-label]=\"closeLabel\">close</mat-icon>\n </button>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n<ng-content></ng-content>\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport {\n TdDialogComponent,\n TdDialogTitleDirective,\n TdDialogActionsDirective,\n TdDialogContentDirective,\n} from './dialog.component';\nimport { TdAlertDialogComponent } from './alert-dialog/alert-dialog.component';\nimport { TdConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { TdPromptDialogComponent } from './prompt-dialog/prompt-dialog.component';\nimport { TdDialogService } from './services/dialog.service';\nimport { TdWindowDialogComponent } from './window-dialog/window-dialog.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\n\nconst TD_DIALOGS: Type<any>[] = [\n TdAlertDialogComponent,\n TdConfirmDialogComponent,\n TdPromptDialogComponent,\n TdDialogComponent,\n TdDialogTitleDirective,\n TdDialogActionsDirective,\n TdDialogContentDirective,\n TdWindowDialogComponent,\n TdAlertDialogComponent,\n TdConfirmDialogComponent,\n TdPromptDialogComponent,\n];\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n MatDialogModule,\n MatInputModule,\n MatButtonModule,\n MatToolbarModule,\n MatTooltipModule,\n MatIconModule,\n ],\n declarations: [...TD_DIALOGS],\n exports: [...TD_DIALOGS],\n providers: [TdDialogService],\n})\nexport class CovalentDialogsModule {}\n","import { Renderer2 } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { DragRef } from '@angular/cdk/drag-drop';\nimport { merge, Subscription, fromEvent } from 'rxjs';\nimport { Point } from '@angular/cdk/drag-drop/drag-ref';\n\nenum corners {\n topRight = 'topRight',\n bottomRight = 'bottomRight',\n bottomLeft = 'bottomLeft',\n topLeft = 'topLeft',\n}\nenum cursors {\n nesw = 'nesw-resize',\n nwse = 'nwse-resize',\n}\nenum verticalAlignment {\n top = 'top',\n bottom = 'bottom',\n}\nenum horizontalAlignment {\n right = 'right',\n left = 'left',\n}\n\nconst cornerWidth = '16px';\nconst offset = '0px';\nconst minWidth = 200;\nconst minHeight = 200;\n\nfunction getPixels(sizeString: string): number {\n return parseFloat((sizeString || '').replace('px', ''));\n}\n\nfunction clamp(min: number, num: number, max: number): number {\n return Math.min(Math.max(num, min), max);\n}\n\nexport class ResizableDraggableDialog {\n cornerElements: HTMLElement[] = [];\n pointerDownSubs: Subscription[] = [];\n\n constructor(\n private _document: any,\n private _renderer2: Renderer2,\n private _dialogRef: MatDialogRef<any>,\n private _dragRef: DragRef\n ) {\n this._initialPositionReset();\n this._attachCorners();\n }\n\n public attach(): void {\n this.detach();\n this._attachCorners();\n }\n\n public detach(): void {\n this.pointerDownSubs.forEach((sub: Subscription) => sub.unsubscribe());\n this.pointerDownSubs = [];\n this.cornerElements.forEach((elem: HTMLElement) =>\n this._renderer2.removeChild(this._getDialogWrapper(), elem)\n );\n this.cornerElements = [];\n }\n\n private _getDialogWrapper(): HTMLElement | null {\n return (\n <HTMLElement>this._document.getElementById(this._dialogRef.id) || {}\n ).parentElement;\n }\n\n private _getViewportDimensions(): ClientRect | undefined {\n return this._getDialogWrapper()?.parentElement?.getBoundingClientRect();\n }\n\n private _getDialogWrapperDimensions(): { width: number; height: number } {\n const wrapper = this._getDialogWrapper();\n if (!wrapper) {\n return { width: 0, height: 0 };\n }\n const dimensions: CSSStyleDeclaration = getComputedStyle(wrapper);\n return {\n width: getPixels(dimensions.width),\n height: getPixels(dimensions.height),\n };\n }\n\n private _initialPositionReset(): void {\n const viewportWidth = this._getViewportDimensions()?.right ?? 0;\n const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;\n const { width, height } = this._getDialogWrapperDimensions();\n const wrapperStyle = this._getDialogWrapper()?.style;\n const originalDialogRight = wrapperStyle?.marginRight;\n const originalDialogLeft = wrapperStyle?.marginLeft;\n const originalDialogBottom = wrapperStyle?.marginBottom;\n const originalDialogTop = wrapperStyle?.marginTop;\n let x: number;\n if (originalDialogLeft) {\n x = getPixels(originalDialogLeft);\n } else if (originalDialogRight) {\n x = viewportWidth - getPixels(originalDialogRight) - width;\n } else {\n x = (viewportWidth - width) / 2;\n }\n let y: number;\n if (originalDialogTop) {\n y = getPixels(originalDialogTop);\n } else if (originalDialogBottom) {\n y = viewportHeight - getPixels(originalDialogBottom) - height;\n } else {\n y = (viewportHeight - height) / 2;\n }\n // use drag ref's mechanisms for positioning instead of the dialog's\n this._dialogRef.updatePosition({\n top: '0px',\n right: '0px',\n bottom: '0px',\n left: '0px',\n });\n this._dragRef.setFreeDragPosition({ x, y });\n }\n\n private _attachCorners(): void {\n Object.values(corners).forEach((corner: corners) => {\n const element: HTMLElement = this._renderer2.createElement('div');\n this.cornerElements = [...this.cornerElements, element];\n this._renderer2.setStyle(element, 'position', 'absolute');\n this._renderer2.setStyle(element, 'width', cornerWidth);\n this._renderer2.setStyle(element, 'height', cornerWidth);\n this._renderer2.appendChild(this._getDialogWrapper(), element);\n\n let cursor: cursors;\n let topBottom: verticalAlignment;\n let rightLeft: horizontalAlignment;\n\n if (corner === corners.topRight) {\n cursor = cursors.nesw;\n topBottom = verticalAlignment.top;\n rightLeft = horizontalAlignment.right;\n } else if (corner === corners.bottomRight) {\n cursor = cursors.nwse;\n topBottom = verticalAlignment.bottom;\n rightLeft = horizontalAlignment.right;\n\n const icon: HTMLElement = this._renderer2.createElement('i');\n this._renderer2.addClass(icon, 'material-icons');\n this._renderer2.appendChild(\n icon,\n this._renderer2.createText('filter_list')\n );\n this._renderer2.appendChild(element, icon);\n this._renderer2.setStyle(\n icon,\n 'transform',\n `rotate(${315}deg) translate(0px, ${offset})`\n );\n this._renderer2.setStyle(icon, 'font-size', cornerWidth);\n } else if (corner === corners.bottomLeft) {\n cursor = cursors.nesw;\n topBottom = verticalAlignment.bottom;\n rightLeft = horizontalAlignment.left;\n } else {\n cursor = cursors.nwse;\n topBottom = verticalAlignment.top;\n rightLeft = horizontalAlignment.left;\n }\n this._renderer2.setStyle(element, topBottom, offset);\n this._renderer2.setStyle(element, rightLeft, offset);\n this._renderer2.setStyle(element, 'cursor', cursor);\n\n const pointerDownSub: Subscription = fromEvent<PointerEvent>(\n element,\n 'pointerdown'\n ).subscribe((event: PointerEvent) => {\n this._handleMouseDown(event, corner);\n });\n this.pointerDownSubs = [...this.pointerDownSubs, pointerDownSub];\n });\n }\n\n private _handleMouseDown(event: PointerEvent, corner: corners): void {\n this._renderer2.setStyle(\n <HTMLElement>this._document.body,\n 'user-select',\n 'none'\n );\n const { width: originalWidth, height: originalHeight } =\n this._getDialogWrapperDimensions();\n const originalMouseX: number = event.pageX;\n const originalMouseY: number = event.pageY;\n const { x: currentTransformX, y: currentTransformY }: Point =\n this._dragRef.getFreeDragPosition();\n const wrapper = this._getDialogWrapper()?.getBoundingClientRect();\n const distanceFromBottom = wrapper?.bottom ?? 0;\n const distanceFromRight = wrapper?.right ?? 0;\n const viewportWidth = this._getViewportDimensions()?.right ?? 0;\n const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;\n\n const mouseMoveSub: Subscription = fromEvent<PointerEvent>(\n window,\n 'pointermove'\n ).subscribe((e: PointerEvent) => {\n e.preventDefault(); // prevent highlighting of text when dragging\n\n const yDelta: number = clamp(0, e.pageY, viewportHeight) - originalMouseY;\n const xDelta: number = clamp(0, e.pageX, viewportWidth) - originalMouseX;\n let newHeight: number;\n let newWidth: number;\n let newTransformY = 0;\n let newTransformX = 0;\n\n // top right\n if (corner === corners.topRight) {\n newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);\n newTransformY = clamp(\n 0,\n currentTransformY + yDelta,\n distanceFromBottom - newHeight\n );\n newTransformX = currentTransformX;\n }\n // bottom right\n else if (corner === corners.bottomRight) {\n newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);\n newTransformY = currentTransformY;\n newTransformX = currentTransformX;\n }\n // bottom left\n else if (corner === corners.bottomLeft) {\n newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);\n newTransformY = currentTransformY;\n newTransformX = clamp(\n 0,\n currentTransformX + xDelta,\n distanceFromRight - newWidth\n );\n }\n // top left\n else {\n newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);\n\n newTransformX = clamp(\n 0,\n currentTransformX + xDelta,\n distanceFromRight - newWidth\n );\n newTransformY = clamp(\n 0,\n currentTransformY + yDelta,\n distanceFromBottom - newHeight\n );\n }\n this._dialogRef.updateSize(`${newWidth}px`, `${newHeight}px`);\n this._dragRef.setFreeDragPosition({\n x: newTransformX,\n y: newTransformY,\n });\n });\n\n const mouseUpSub: Subscription = merge(\n fromEvent(window, 'pointerup'),\n fromEvent(window, 'pointercancel')\n ).subscribe(() => {\n this._renderer2.removeStyle(\n <HTMLElement>this._document.body,\n 'user-select'\n );\n mouseMoveSub.unsubscribe();\n mouseUpSub.unsubscribe();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"covalent-core-dialogs.mjs","sources":["../../../../libs/angular/dialogs/src/dialog.component.ts","../../../../libs/angular/dialogs/src/dialog.component.html","../../../../libs/angular/dialogs/src/alert-dialog/alert-dialog.component.ts","../../../../libs/angular/dialogs/src/alert-dialog/alert-dialog.component.html","../../../../libs/angular/dialogs/src/confirm-dialog/confirm-dialog.component.ts","../../../../libs/angular/dialogs/src/confirm-dialog/confirm-dialog.component.html","../../../../libs/angular/dialogs/src/prompt-dialog/prompt-dialog.component.ts","../../../../libs/angular/dialogs/src/prompt-dialog/prompt-dialog.component.html","../../../../libs/angular/dialogs/src/services/dialog.service.ts","../../../../libs/angular/dialogs/src/window-dialog/window-dialog.component.ts","../../../../libs/angular/dialogs/src/window-dialog/window-dialog.component.html","../../../../libs/angular/dialogs/src/dialogs.module.ts","../../../../libs/angular/dialogs/src/resizable-draggable-dialog/resizable-draggable-dialog.ts","../../../../libs/angular/dialogs/src/covalent-core-dialogs.ts"],"sourcesContent":["import {\n Component,\n Directive,\n ContentChildren,\n QueryList,\n AfterContentInit,\n} from '@angular/core';\n\n@Directive({ selector: '[tdDialogTitle]' })\nexport class TdDialogTitleDirective {}\n\n@Directive({ selector: '[tdDialogContent]' })\nexport class TdDialogContentDirective {}\n\n@Directive({ selector: '[tdDialogActions]' })\nexport class TdDialogActionsDirective {}\n\n@Component({\n selector: 'td-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n})\nexport class TdDialogComponent implements AfterContentInit {\n @ContentChildren(TdDialogTitleDirective, { descendants: true })\n dialogTitle!: QueryList<TdDialogTitleDirective>;\n @ContentChildren(TdDialogContentDirective, { descendants: true })\n dialogContent!: QueryList<TdDialogContentDirective>;\n @ContentChildren(TdDialogActionsDirective, { descendants: true })\n dialogActions!: QueryList<TdDialogActionsDirective>;\n\n ngAfterContentInit(): void {\n if (this.dialogTitle.length > 1) {\n throw new Error('Duplicate td-dialog-title component at in td-dialog.');\n }\n if (this.dialogContent.length > 1) {\n throw new Error('Duplicate td-dialog-content component at in td-dialog.');\n }\n if (this.dialogActions.length > 1) {\n throw new Error('Duplicate td-dialog-actions component at in td-dialog.');\n }\n }\n}\n","<div class=\"td-dialog-wrapper\">\n <h3 class=\"td-dialog-title\" *ngIf=\"dialogTitle.length > 0\">\n <ng-content select=\"[tdDialogTitle]\"></ng-content>\n </h3>\n <div class=\"td-dialog-content\" *ngIf=\"dialogContent.length > 0\">\n <ng-content select=\"[tdDialogContent]\"></ng-content>\n </div>\n <div class=\"td-dialog-actions\" *ngIf=\"dialogActions.length > 0\">\n <span class=\"td-dialog-spacer\"></span>\n <ng-content select=\"[tdDialogActions]\"></ng-content>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss'],\n})\nexport class TdAlertDialogComponent {\n title?: string;\n message?: string;\n closeButton?: string = 'CLOSE';\n\n constructor(private _dialogRef: MatDialogRef<TdAlertDialogComponent>) {}\n\n close(): void {\n this._dialogRef.close();\n }\n}\n","<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n </div>\n <div tdDialogActions>\n <button mat-button color=\"accent\" (click)=\"close()\">\n {{ closeButton }}\n </button>\n </div>\n</td-dialog>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n})\nexport class TdConfirmDialogComponent {\n title?: string;\n message?: string;\n cancelButton = 'CANCEL';\n acceptButton = 'ACCEPT';\n isDestructive = false;\n\n constructor(private _dialogRef: MatDialogRef<TdConfirmDialogComponent>) {}\n\n cancel(): void {\n this._dialogRef.close(false);\n }\n\n accept(): void {\n this._dialogRef.close(true);\n }\n}\n","<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n </div>\n <div tdDialogActions>\n <button\n mat-button\n #closeBtn\n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\"\n >\n {{ cancelButton }}\n </button>\n <button\n mat-button\n [color]=\"isDestructive ? 'warn' : 'accent'\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n","import {\n Component,\n ViewChild,\n ElementRef,\n AfterViewInit,\n NgZone,\n} from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'td-prompt-dialog',\n templateUrl: './prompt-dialog.component.html',\n styleUrls: ['./prompt-dialog.component.scss'],\n})\nexport class TdPromptDialogComponent implements AfterViewInit {\n title?: string;\n message?: string;\n value?: string;\n cancelButton = 'CANCEL';\n acceptButton = 'ACCEPT';\n\n @ViewChild('input', { static: true }) _input!: ElementRef<HTMLElement>;\n\n constructor(\n private _ngZone: NgZone,\n private _dialogRef: MatDialogRef<TdPromptDialogComponent>\n ) {}\n\n ngAfterViewInit(): void {\n this._ngZone.runOutsideAngular(() =>\n // Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.\n // `Promise` is a microtask and microtask are executed within the current rendering frame.\n // Animation tasks are executed within the next rendering frame.\n // We focus input once everything is rendered and good to go.\n requestAnimationFrame(() => this._input.nativeElement.focus())\n );\n }\n\n /**\n * Method executed when input is focused\n * Selects all text\n */\n handleInputFocus(): void {\n (<HTMLInputElement>this._input.nativeElement).select();\n }\n\n cancel(): void {\n this._dialogRef.close();\n }\n\n accept(): void {\n this._dialogRef.close(this.value);\n }\n}\n","<td-dialog>\n <div tdDialogTitle *ngIf=\"title\">\n {{ title }}\n </div>\n <div tdDialogContent>\n <span class=\"td-dialog-message\">{{ message }}</span>\n <form #form=\"ngForm\" novalidate>\n <div class=\"td-dialog-input-wrapper\">\n <mat-form-field class=\"td-dialog-input\">\n <input\n matInput\n #input\n (focus)=\"handleInputFocus()\"\n (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n [(ngModel)]=\"value\"\n name=\"value\"\n required\n />\n </mat-form-field>\n </div>\n </form>\n </div>\n <div tdDialogActions>\n <button\n mat-button\n #closeBtn\n (keydown.arrowright)=\"acceptBtn.focus()\"\n (click)=\"cancel()\"\n >\n {{ cancelButton }}\n </button>\n <button\n mat-button\n color=\"accent\"\n #acceptBtn\n (keydown.arrowleft)=\"closeBtn.focus()\"\n [disabled]=\"!form.valid\"\n (click)=\"accept()\"\n >\n {{ acceptButton }}\n </button>\n </div>\n</td-dialog>\n","import { Injectable, Inject, Renderer2, RendererFactory2 } from '@angular/core';\nimport {\n MatDialog,\n MatDialogRef,\n MatDialogConfig,\n} from '@angular/material/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { TdAlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { TdConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\nimport { TdPromptDialogComponent } from '../prompt-dialog/prompt-dialog.component';\nimport { DragDrop, DragRef } from '@angular/cdk/drag-drop';\nimport { DOCUMENT } from '@angular/common';\nimport { Subject } from 'rxjs';\n\nexport interface IDialogConfig extends MatDialogConfig {\n title?: string;\n message: string;\n}\n\nexport interface IAlertConfig extends IDialogConfig {\n closeButton?: string;\n}\n\nexport interface IConfirmConfig extends IDialogConfig {\n acceptButton?: string;\n cancelButton?: string;\n isDestructive?: boolean;\n}\n\nexport interface IPromptConfig extends IConfirmConfig {\n value?: string;\n}\n\nexport interface IDraggableConfig<T> {\n component: ComponentType<T>;\n config?: MatDialogConfig;\n // CSS selectors of element(s) inside the component meant to be drag handle(s)\n dragHandleSelectors?: string[];\n // Class that will be added to the component signifying drag-ability\n draggableClass?: string;\n}\n\nexport interface IDraggableRefs<T> {\n matDialogRef: MatDialogRef<T>;\n dragRefSubject: Subject<DragRef>;\n}\n\n@Injectable()\nexport class TdDialogService {\n private _renderer2: Renderer2;\n\n constructor(\n @Inject(DOCUMENT) private _document: any,\n private _dialogService: MatDialog,\n private _dragDrop: DragDrop,\n private rendererFactory: RendererFactory2\n ) {\n this._renderer2 = rendererFactory.createRenderer(undefined, null);\n }\n\n /**\n * params:\n * - component: ComponentType<T>\n * - config: MatDialogConfig\n * Wrapper function over the open() method in MatDialog.\n * Opens a modal dialog containing the given component.\n */\n public open<T>(\n component: ComponentType<T>,\n config?: MatDialogConfig\n ): MatDialogRef<T> {\n return this._dialogService.open(component, config);\n }\n\n /**\n * Wrapper function over the closeAll() method in MatDialog.\n * Closes all of the currently-open dialogs.\n */\n public closeAll(): void {\n this._dialogService.closeAll();\n }\n\n /**\n * params:\n * - config: IAlertConfig {\n * message: string;\n * title?: string;\n * viewContainerRef?: ViewContainerRef;\n * closeButton?: string;\n * }\n *\n * Opens an alert dialog with the provided config.\n * Returns an MatDialogRef<TdAlertDialogComponent> object.\n */\n public openAlert(config: IAlertConfig): MatDialogRef<TdAlertDialogComponent> {\n const dialogConfig: MatDialogConfig = this._createConfig(config);\n const dialogRef: MatDialogRef<TdAlertDialogComponent> =\n this._dialogService.open(TdAlertDialogComponent, dialogConfig);\n const alertDialogComponent: TdAlertDialogComponent =\n dialogRef.componentInstance;\n alertDialogComponent.title = config.title;\n alertDialogComponent.message = config.message;\n if (config.closeButton) {\n alertDialogComponent.closeButton = config.closeButton;\n }\n return dialogRef;\n }\n\n /**\n * params:\n * - config: IConfirmConfig {\n * message: string;\n * title?: string;\n * viewContainerRef?: ViewContainerRef;\n * acceptButton?: string;\n * cancelButton?: string;\n * isDestructive?: boolean;\n * }\n *\n * Opens a confirm dialog with the provided config.\n * Returns an MatDialogRef<TdConfirmDialogComponent> object.\n */\n public openConfirm(\n config: IConfirmConfig\n ): MatDialogRef<TdConfirmDialogComponent> {\n const dialogConfig: MatDialogConfig = this._createConfig(config);\n const dialogRef: MatDialogRef<TdConfirmDialogComponent> =\n this._dialogService.open(TdConfirmDialogComponent, dialogConfig);\n const confirmDialogComponent: TdConfirmDialogComponent =\n dialogRef.componentInstance;\n confirmDialogComponent.title = config.title;\n confirmDialogComponent.message = config.message;\n if (config.acceptButton) {\n confirmDialogComponent.acceptButton = config.acceptButton;\n }\n if (config.isDestructive) {\n confirmDialogComponent.isDestructive = config.isDestructive;\n }\n if (config.cancelButton) {\n confirmDialogComponent.cancelButton = config.cancelButton;\n }\n return dialogRef;\n }\n\n /**\n * params:\n * - config: IPromptConfig {\n * message: string;\n * title?: string;\n * value?: string;\n * viewContainerRef?: ViewContainerRef;\n * acceptButton?: string;\n * cancelButton?: string;\n * }\n *\n * Opens a prompt dialog with the provided config.\n * Returns an MatDialogRef<TdPromptDialogComponent> object.\n */\n public openPrompt(\n config: IPromptConfig\n ): MatDialogRef<TdPromptDialogComponent> {\n const dialogConfig: MatDialogConfig = this._createConfig(config);\n const dialogRef: MatDialogRef<TdPromptDialogComponent> =\n this._dialogService.open(TdPromptDialogComponent, dialogConfig);\n const promptDialogComponent: TdPromptDialogComponent =\n dialogRef.componentInstance;\n promptDialogComponent.title = config.title;\n promptDialogComponent.message = config.message;\n promptDialogComponent.value = config.value;\n if (config.acceptButton) {\n promptDialogComponent.acceptButton = config.acceptButton;\n }\n if (config.cancelButton) {\n promptDialogComponent.cancelButton = config.cancelButton;\n }\n return dialogRef;\n }\n\n /**\n * Opens a draggable dialog containing the given component.\n */\n public openDraggable<T>({\n component,\n config,\n dragHandleSelectors,\n draggableClass,\n }: IDraggableConfig<T>): IDraggableRefs<T> {\n const matDialogRef: MatDialogRef<T, any> = this._dialogService.open(\n component,\n config\n );\n const dragRefSubject: Subject<DragRef> = new Subject<DragRef>();\n\n const CDK_OVERLAY_PANE_SELECTOR = '.cdk-overlay-pane';\n const CDK_OVERLAY_CONTAINER_SELECTOR = '.cdk-overlay-container';\n\n matDialogRef.afterOpened().subscribe(() => {\n const dialogElement: HTMLElement = <HTMLElement>(\n this._document.getElementById(matDialogRef.id)\n );\n const draggableElement: DragRef =\n this._dragDrop.createDrag(dialogElement);\n\n if (draggableClass) {\n const childComponent = dialogElement.firstElementChild;\n this._renderer2.addClass(childComponent, draggableClass);\n }\n if (dragHandleSelectors && dragHandleSelectors.length) {\n const dragHandles: Element[] = dragHandleSelectors.reduce(\n (acc: Element[], curr: string) => [\n ...acc,\n ...Array.from(dialogElement.querySelectorAll(curr)),\n ],\n []\n );\n if (dragHandles.length > 0) {\n draggableElement.withHandles(<HTMLElement[]>dragHandles);\n }\n }\n const rootElement = dialogElement.closest(CDK_OVERLAY_PANE_SELECTOR);\n if (rootElement) {\n draggableElement.withRootElement(<HTMLElement>rootElement);\n }\n\n const boundaryElement = dialogElement.closest(\n CDK_OVERLAY_CONTAINER_SELECTOR\n );\n if (boundaryElement) {\n draggableElement.withBoundaryElement(<HTMLElement>boundaryElement);\n }\n dragRefSubject.next(draggableElement);\n });\n\n return { matDialogRef, dragRefSubject };\n }\n\n private _createConfig(config: IDialogConfig): MatDialogConfig {\n const dialogConfig: MatDialogConfig = new MatDialogConfig();\n dialogConfig.width = '400px';\n Object.assign(dialogConfig, config);\n return dialogConfig;\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n@Component({\n selector: 'td-window-dialog',\n templateUrl: './window-dialog.component.html',\n styleUrls: ['./window-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdWindowDialogComponent {\n @Input() toolbarColor?: ThemePalette;\n @Input() docked? = false;\n\n @Input() title?: string;\n @Input() toggleDockedStateLabel?: string;\n @Input() closeLabel?: string;\n\n @Output() dockToggled: EventEmitter<boolean> = new EventEmitter();\n @Output() closed: EventEmitter<void> = new EventEmitter();\n\n toolbarHeight = 56;\n\n toggleDockedState(): void {\n this.dockToggled.emit(this.docked);\n }\n}\n","<mat-toolbar\n [color]=\"toolbarColor\"\n class=\"td-window-dialog-toolbar\"\n [style.min-height.px]=\"toolbarHeight\"\n [style.cursor]=\"docked ? 'inherit' : 'move'\"\n>\n <mat-toolbar-row [style.height.px]=\"toolbarHeight\">\n <div layout=\"row\" layout-align=\"start center\" flex>\n <span class=\"mat-title td-window-dialog-title truncate\" flex>\n {{ title }}\n </span>\n <!-- TODO: Resizing a drag-and-drop element was not working so removed docking/undocking for now-->\n <!-- <button mat-icon-button [matTooltip]=\"toggleDockedStateLabel\" (click)=\"toggleDockedState()\">\n <mat-icon [attr.aria-label]=\"toggleDockedStateLabel\">\n {{ docked ? 'unfold_more' : 'unfold_less' }}\n </mat-icon>\n </button> -->\n\n <button\n mat-icon-button\n [matTooltip]=\"closeLabel ?? ''\"\n (click)=\"closed.emit()\"\n class=\"td-window-dialog-close\"\n [attr.data-test]=\"'close-button'\"\n >\n <mat-icon [attr.aria-label]=\"closeLabel\">close</mat-icon>\n </button>\n </div>\n </mat-toolbar-row>\n</mat-toolbar>\n<ng-content></ng-content>\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport {\n TdDialogComponent,\n TdDialogTitleDirective,\n TdDialogActionsDirective,\n TdDialogContentDirective,\n} from './dialog.component';\nimport { TdAlertDialogComponent } from './alert-dialog/alert-dialog.component';\nimport { TdConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { TdPromptDialogComponent } from './prompt-dialog/prompt-dialog.component';\nimport { TdDialogService } from './services/dialog.service';\nimport { TdWindowDialogComponent } from './window-dialog/window-dialog.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\n\nconst TD_DIALOGS: Type<any>[] = [\n TdAlertDialogComponent,\n TdConfirmDialogComponent,\n TdPromptDialogComponent,\n TdDialogComponent,\n TdDialogTitleDirective,\n TdDialogActionsDirective,\n TdDialogContentDirective,\n TdWindowDialogComponent,\n TdAlertDialogComponent,\n TdConfirmDialogComponent,\n TdPromptDialogComponent,\n];\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n MatDialogModule,\n MatInputModule,\n MatButtonModule,\n MatToolbarModule,\n MatTooltipModule,\n MatIconModule,\n ],\n declarations: [...TD_DIALOGS],\n exports: [...TD_DIALOGS],\n providers: [TdDialogService],\n})\nexport class CovalentDialogsModule {}\n","import { Renderer2 } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { DragRef } from '@angular/cdk/drag-drop';\nimport { merge, Subscription, fromEvent } from 'rxjs';\nimport { Point } from '@angular/cdk/drag-drop/drag-ref';\n\nenum corners {\n topRight = 'topRight',\n bottomRight = 'bottomRight',\n bottomLeft = 'bottomLeft',\n topLeft = 'topLeft',\n}\nenum cursors {\n nesw = 'nesw-resize',\n nwse = 'nwse-resize',\n}\nenum verticalAlignment {\n top = 'top',\n bottom = 'bottom',\n}\nenum horizontalAlignment {\n right = 'right',\n left = 'left',\n}\n\nconst cornerWidth = '16px';\nconst offset = '0px';\nconst minWidth = 200;\nconst minHeight = 200;\n\nfunction getPixels(sizeString: string): number {\n return parseFloat((sizeString || '').replace('px', ''));\n}\n\nfunction clamp(min: number, num: number, max: number): number {\n return Math.min(Math.max(num, min), max);\n}\n\nexport class ResizableDraggableDialog {\n cornerElements: HTMLElement[] = [];\n pointerDownSubs: Subscription[] = [];\n\n constructor(\n private _document: any,\n private _renderer2: Renderer2,\n private _dialogRef: MatDialogRef<any>,\n private _dragRef: DragRef\n ) {\n this._initialPositionReset();\n this._attachCorners();\n }\n\n public attach(): void {\n this.detach();\n this._attachCorners();\n }\n\n public detach(): void {\n this.pointerDownSubs.forEach((sub: Subscription) => sub.unsubscribe());\n this.pointerDownSubs = [];\n this.cornerElements.forEach((elem: HTMLElement) =>\n this._renderer2.removeChild(this._getDialogWrapper(), elem)\n );\n this.cornerElements = [];\n }\n\n private _getDialogWrapper(): HTMLElement | null {\n return (\n <HTMLElement>this._document.getElementById(this._dialogRef.id) || {}\n ).parentElement;\n }\n\n private _getViewportDimensions(): ClientRect | undefined {\n return this._getDialogWrapper()?.parentElement?.getBoundingClientRect();\n }\n\n private _getDialogWrapperDimensions(): { width: number; height: number } {\n const wrapper = this._getDialogWrapper();\n if (!wrapper) {\n return { width: 0, height: 0 };\n }\n const dimensions: CSSStyleDeclaration = getComputedStyle(wrapper);\n return {\n width: getPixels(dimensions.width),\n height: getPixels(dimensions.height),\n };\n }\n\n private _initialPositionReset(): void {\n const viewportWidth = this._getViewportDimensions()?.right ?? 0;\n const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;\n const { width, height } = this._getDialogWrapperDimensions();\n const wrapperStyle = this._getDialogWrapper()?.style;\n const originalDialogRight = wrapperStyle?.marginRight;\n const originalDialogLeft = wrapperStyle?.marginLeft;\n const originalDialogBottom = wrapperStyle?.marginBottom;\n const originalDialogTop = wrapperStyle?.marginTop;\n let x: number;\n if (originalDialogLeft) {\n x = getPixels(originalDialogLeft);\n } else if (originalDialogRight) {\n x = viewportWidth - getPixels(originalDialogRight) - width;\n } else {\n x = (viewportWidth - width) / 2;\n }\n let y: number;\n if (originalDialogTop) {\n y = getPixels(originalDialogTop);\n } else if (originalDialogBottom) {\n y = viewportHeight - getPixels(originalDialogBottom) - height;\n } else {\n y = (viewportHeight - height) / 2;\n }\n // use drag ref's mechanisms for positioning instead of the dialog's\n this._dialogRef.updatePosition({\n top: '0px',\n right: '0px',\n bottom: '0px',\n left: '0px',\n });\n this._dragRef.setFreeDragPosition({ x, y });\n }\n\n private _attachCorners(): void {\n Object.values(corners).forEach((corner: corners) => {\n const element: HTMLElement = this._renderer2.createElement('div');\n this.cornerElements = [...this.cornerElements, element];\n this._renderer2.setStyle(element, 'position', 'absolute');\n this._renderer2.setStyle(element, 'width', cornerWidth);\n this._renderer2.setStyle(element, 'height', cornerWidth);\n this._renderer2.appendChild(this._getDialogWrapper(), element);\n\n let cursor: cursors;\n let topBottom: verticalAlignment;\n let rightLeft: horizontalAlignment;\n\n if (corner === corners.topRight) {\n cursor = cursors.nesw;\n topBottom = verticalAlignment.top;\n rightLeft = horizontalAlignment.right;\n } else if (corner === corners.bottomRight) {\n cursor = cursors.nwse;\n topBottom = verticalAlignment.bottom;\n rightLeft = horizontalAlignment.right;\n\n const icon: HTMLElement = this._renderer2.createElement('i');\n this._renderer2.addClass(icon, 'material-icons');\n this._renderer2.appendChild(\n icon,\n this._renderer2.createText('filter_list')\n );\n this._renderer2.appendChild(element, icon);\n this._renderer2.setStyle(\n icon,\n 'transform',\n `rotate(${315}deg) translate(0px, ${offset})`\n );\n this._renderer2.setStyle(icon, 'font-size', cornerWidth);\n } else if (corner === corners.bottomLeft) {\n cursor = cursors.nesw;\n topBottom = verticalAlignment.bottom;\n rightLeft = horizontalAlignment.left;\n } else {\n cursor = cursors.nwse;\n topBottom = verticalAlignment.top;\n rightLeft = horizontalAlignment.left;\n }\n this._renderer2.setStyle(element, topBottom, offset);\n this._renderer2.setStyle(element, rightLeft, offset);\n this._renderer2.setStyle(element, 'cursor', cursor);\n\n const pointerDownSub: Subscription = fromEvent<PointerEvent>(\n element,\n 'pointerdown'\n ).subscribe((event: PointerEvent) => {\n this._handleMouseDown(event, corner);\n });\n this.pointerDownSubs = [...this.pointerDownSubs, pointerDownSub];\n });\n }\n\n private _handleMouseDown(event: PointerEvent, corner: corners): void {\n this._renderer2.setStyle(\n <HTMLElement>this._document.body,\n 'user-select',\n 'none'\n );\n const { width: originalWidth, height: originalHeight } =\n this._getDialogWrapperDimensions();\n const originalMouseX: number = event.pageX;\n const originalMouseY: number = event.pageY;\n const { x: currentTransformX, y: currentTransformY }: Point =\n this._dragRef.getFreeDragPosition();\n const wrapper = this._getDialogWrapper()?.getBoundingClientRect();\n const distanceFromBottom = wrapper?.bottom ?? 0;\n const distanceFromRight = wrapper?.right ?? 0;\n const viewportWidth = this._getViewportDimensions()?.right ?? 0;\n const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;\n\n const mouseMoveSub: Subscription = fromEvent<PointerEvent>(\n window,\n 'pointermove'\n ).subscribe((e: PointerEvent) => {\n e.preventDefault(); // prevent highlighting of text when dragging\n\n const yDelta: number = clamp(0, e.pageY, viewportHeight) - originalMouseY;\n const xDelta: number = clamp(0, e.pageX, viewportWidth) - originalMouseX;\n let newHeight: number;\n let newWidth: number;\n let newTransformY = 0;\n let newTransformX = 0;\n\n // top right\n if (corner === corners.topRight) {\n newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);\n newTransformY = clamp(\n 0,\n currentTransformY + yDelta,\n distanceFromBottom - newHeight\n );\n newTransformX = currentTransformX;\n }\n // bottom right\n else if (corner === corners.bottomRight) {\n newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);\n newTransformY = currentTransformY;\n newTransformX = currentTransformX;\n }\n // bottom left\n else if (corner === corners.bottomLeft) {\n newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);\n newTransformY = currentTransformY;\n newTransformX = clamp(\n 0,\n currentTransformX + xDelta,\n distanceFromRight - newWidth\n );\n }\n // top left\n else {\n newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);\n newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);\n\n newTransformX = clamp(\n 0,\n currentTransformX + xDelta,\n distanceFromRight - newWidth\n );\n newTransformY = clamp(\n 0,\n currentTransformY + yDelta,\n distanceFromBottom - newHeight\n );\n }\n this._dialogRef.updateSize(`${newWidth}px`, `${newHeight}px`);\n this._dragRef.setFreeDragPosition({\n x: newTransformX,\n y: newTransformY,\n });\n });\n\n const mouseUpSub: Subscription = merge(\n fromEvent(window, 'pointerup'),\n fromEvent(window, 'pointercancel')\n ).subscribe(() => {\n this._renderer2.removeStyle(\n <HTMLElement>this._document.body,\n 'user-select'\n );\n mouseMoveSub.unsubscribe();\n mouseUpSub.unsubscribe();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@covalent/core",
|
3
|
-
"version": "4.1.
|
3
|
+
"version": "4.1.2",
|
4
4
|
"exports": {
|
5
5
|
".": {
|
6
6
|
"sass": "./theming/_all-theme.scss",
|
@@ -127,7 +127,7 @@
|
|
127
127
|
"@angular/router": "^13.2.0",
|
128
128
|
"@angular/cdk": "^13.2.1",
|
129
129
|
"@angular/material": "^13.2.1",
|
130
|
-
"@covalent/core": "4.1.
|
130
|
+
"@covalent/core": "4.1.2",
|
131
131
|
"@angular/platform-browser": "^13.2.0",
|
132
132
|
"rxjs": "~7.4.0",
|
133
133
|
"@angular/animations": "^13.2.0",
|