@covalent/core 9.1.2 → 10.0.0
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/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/breadcrumbs/breadcrumbs.component.d.ts +1 -1
- package/breadcrumbs/breadcrumbs.module.d.ts +5 -3
- package/common/common.module.d.ts +5 -1
- package/common/directives/fullscreen/fullscreen.directive.d.ts +1 -1
- package/common/forms/auto-trim/auto-trim.directive.d.ts +1 -1
- package/common/material-icons.css +1 -1
- package/common/pipes/bytes/bytes.pipe.d.ts +1 -1
- package/common/pipes/decimal-bytes/decimal-bytes.pipe.d.ts +1 -1
- package/common/pipes/digits/digits.pipe.d.ts +1 -1
- package/common/pipes/time-ago/time-ago.pipe.d.ts +1 -1
- package/common/pipes/time-difference/time-difference.pipe.d.ts +1 -1
- package/common/pipes/time-until/time-until.pipe.d.ts +1 -1
- package/common/pipes/truncate/truncate.pipe.d.ts +1 -1
- package/common/platform.css +1 -1
- package/common/platform.css.map +1 -1
- package/dialogs/alert-dialog/alert-dialog.component.d.ts +1 -1
- package/dialogs/confirm-dialog/confirm-dialog.component.d.ts +1 -1
- package/dialogs/dialog.component.d.ts +5 -5
- package/dialogs/dialogs.module.d.ts +5 -9
- package/dialogs/prompt-dialog/prompt-dialog.component.d.ts +1 -1
- package/dialogs/status-dialog/status-dialog.component.d.ts +1 -1
- package/dialogs/window-dialog/window-dialog.component.d.ts +1 -1
- package/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.d.ts +1 -1
- package/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.d.ts +1 -1
- package/dynamic-menu/dynamic-menu.component.d.ts +1 -1
- package/dynamic-menu/dynamic-menu.module.d.ts +5 -7
- package/fesm2022/covalent-core-breadcrumbs.mjs +83 -44
- package/fesm2022/covalent-core-breadcrumbs.mjs.map +1 -1
- package/fesm2022/covalent-core-common.mjs +146 -138
- package/fesm2022/covalent-core-common.mjs.map +1 -1
- package/fesm2022/covalent-core-dialogs.mjs +448 -169
- package/fesm2022/covalent-core-dialogs.mjs.map +1 -1
- package/fesm2022/covalent-core-dynamic-menu.mjs +351 -82
- package/fesm2022/covalent-core-dynamic-menu.mjs.map +1 -1
- package/fesm2022/covalent-core-file.mjs +256 -181
- package/fesm2022/covalent-core-file.mjs.map +1 -1
- package/fesm2022/covalent-core-json-formatter.mjs +119 -31
- package/fesm2022/covalent-core-json-formatter.mjs.map +1 -1
- package/fesm2022/covalent-core-layout.mjs +738 -384
- package/fesm2022/covalent-core-layout.mjs.map +1 -1
- package/fesm2022/covalent-core-loading.mjs +98 -76
- package/fesm2022/covalent-core-loading.mjs.map +1 -1
- package/fesm2022/covalent-core-menu.mjs +33 -19
- package/fesm2022/covalent-core-menu.mjs.map +1 -1
- package/fesm2022/covalent-core-message.mjs +112 -53
- package/fesm2022/covalent-core-message.mjs.map +1 -1
- package/fesm2022/covalent-core-search.mjs +260 -193
- package/fesm2022/covalent-core-search.mjs.map +1 -1
- package/fesm2022/covalent-core-side-sheet.mjs +224 -192
- package/fesm2022/covalent-core-side-sheet.mjs.map +1 -1
- package/fesm2022/covalent-core-user-profile.mjs +118 -59
- package/fesm2022/covalent-core-user-profile.mjs.map +1 -1
- package/file/directives/file-drop.directive.d.ts +1 -1
- package/file/directives/file-select.directive.d.ts +1 -1
- package/file/file-input/file-input.component.d.ts +2 -2
- package/file/file-upload/file-upload.component.d.ts +1 -1
- package/file/file.module.d.ts +5 -6
- package/json-formatter/json-formatter.component.d.ts +1 -1
- package/json-formatter/json-formatter.module.d.ts +5 -4
- package/layout/layout-card-over/layout-card-over.component.d.ts +1 -1
- package/layout/layout-footer/layout-footer.component.d.ts +1 -1
- package/layout/layout-manage-list/layout-manage-list.component.d.ts +1 -1
- package/layout/layout-manage-list/layout-manage-list.directives.d.ts +3 -3
- package/layout/layout-nav/layout-nav.component.d.ts +1 -1
- package/layout/layout-nav-list/layout-nav-list.component.d.ts +1 -1
- package/layout/layout-nav-list/layout-nav-list.directives.d.ts +3 -3
- package/layout/layout-toggle.class.d.ts +1 -1
- package/layout/layout.component.d.ts +1 -1
- package/layout/layout.directives.d.ts +3 -3
- package/layout/layout.module.d.ts +5 -10
- package/layout/navigation-drawer/navigation-drawer.component.d.ts +3 -3
- package/loading/directives/loading.directive.d.ts +1 -1
- package/loading/loading.component.d.ts +1 -1
- package/loading/loading.module.d.ts +1 -6
- package/menu/menu.component.d.ts +1 -1
- package/menu/menu.module.d.ts +5 -4
- package/message/message.component.d.ts +2 -2
- package/message/message.module.d.ts +5 -3
- package/package.json +17 -42
- package/search/search-box/search-box.component.d.ts +1 -1
- package/search/search-input/search-input.component.d.ts +1 -1
- package/search/search.module.d.ts +5 -6
- package/side-sheet/side-sheet-container.d.ts +2 -2
- package/side-sheet/side-sheet.content-directives.d.ts +5 -5
- package/side-sheet/side-sheet.d.ts +1 -1
- package/side-sheet/side-sheet.module.d.ts +5 -4
- package/theming/prebuilt/all-theme-dark.css +1 -1
- package/theming/prebuilt/all-theme-dark.css.map +1 -1
- package/theming/prebuilt/all-theme-light.css +1 -1
- package/theming/prebuilt/all-theme-light.css.map +1 -1
- package/theming/prebuilt/blue-grey-deep-orange.css +1 -1
- package/theming/prebuilt/blue-grey-deep-orange.css.map +1 -1
- package/theming/prebuilt/blue-orange.css +1 -1
- package/theming/prebuilt/blue-orange.css.map +1 -1
- package/theming/prebuilt/indigo-pink.css +1 -1
- package/theming/prebuilt/indigo-pink.css.map +1 -1
- package/theming/prebuilt/orange-light-blue.css +1 -1
- package/theming/prebuilt/orange-light-blue.css.map +1 -1
- package/theming/prebuilt/teal-orange.css +1 -1
- package/theming/prebuilt/teal-orange.css.map +1 -1
- package/user-profile/user-profile-menu/user-profile-menu.component.d.ts +1 -1
- package/user-profile/user-profile.component.d.ts +1 -1
- package/user-profile/user-profile.module.d.ts +5 -8
- package/esm2022/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -94
- package/esm2022/breadcrumbs/breadcrumbs.component.mjs +0 -142
- package/esm2022/breadcrumbs/breadcrumbs.module.mjs +0 -20
- package/esm2022/breadcrumbs/covalent-core-breadcrumbs.mjs +0 -5
- package/esm2022/breadcrumbs/public_api.mjs +0 -4
- package/esm2022/common/animations/bounce/bounce.animation.mjs +0 -70
- package/esm2022/common/animations/collapse/collapse.animation.mjs +0 -51
- package/esm2022/common/animations/common/interfaces.mjs +0 -2
- package/esm2022/common/animations/fade/fadeInOut.animation.mjs +0 -37
- package/esm2022/common/animations/flash/flash.animation.mjs +0 -34
- package/esm2022/common/animations/headshake/headshake.animation.mjs +0 -47
- package/esm2022/common/animations/jello/jello.animation.mjs +0 -59
- package/esm2022/common/animations/pulse/pulse.animation.mjs +0 -32
- package/esm2022/common/animations/rotate/rotate.animation.mjs +0 -30
- package/esm2022/common/behaviors/control-value-accesor.mixin.mjs +0 -43
- package/esm2022/common/behaviors/disable-ripple.mixin.mjs +0 -24
- package/esm2022/common/behaviors/disabled.mixin.mjs +0 -24
- package/esm2022/common/common.module.mjs +0 -83
- package/esm2022/common/covalent-core-common.mjs +0 -5
- package/esm2022/common/directives/fullscreen/fullscreen.directive.mjs +0 -87
- package/esm2022/common/forms/auto-trim/auto-trim.directive.mjs +0 -37
- package/esm2022/common/forms/validators/validators.mjs +0 -29
- package/esm2022/common/functions/clipboard.mjs +0 -23
- package/esm2022/common/functions/convert.mjs +0 -84
- package/esm2022/common/functions/download.mjs +0 -75
- package/esm2022/common/functions/file.mjs +0 -16
- package/esm2022/common/pipes/bytes/bytes.pipe.mjs +0 -42
- package/esm2022/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +0 -42
- package/esm2022/common/pipes/digits/digits.pipe.mjs +0 -41
- package/esm2022/common/pipes/time-ago/time-ago.pipe.mjs +0 -72
- package/esm2022/common/pipes/time-difference/time-difference.pipe.mjs +0 -51
- package/esm2022/common/pipes/time-until/time-until.pipe.mjs +0 -72
- package/esm2022/common/pipes/truncate/truncate.pipe.mjs +0 -27
- package/esm2022/common/public_api.mjs +0 -39
- package/esm2022/common/services/icon.service.mjs +0 -1087
- package/esm2022/common/services/router-path.service.mjs +0 -30
- package/esm2022/covalent-core.mjs +0 -5
- package/esm2022/dialogs/alert-dialog/alert-dialog.component.mjs +0 -26
- package/esm2022/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -31
- package/esm2022/dialogs/covalent-core-dialogs.mjs +0 -5
- package/esm2022/dialogs/dialog.component.mjs +0 -75
- package/esm2022/dialogs/dialogs.module.mjs +0 -94
- package/esm2022/dialogs/prompt-dialog/prompt-dialog.component.mjs +0 -84
- package/esm2022/dialogs/public_api.mjs +0 -10
- package/esm2022/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +0 -222
- package/esm2022/dialogs/services/dialog.service.mjs +0 -215
- package/esm2022/dialogs/status-dialog/status-dialog.component.mjs +0 -55
- package/esm2022/dialogs/window-dialog/window-dialog.component.mjs +0 -40
- package/esm2022/dynamic-menu/covalent-core-dynamic-menu.mjs +0 -5
- package/esm2022/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +0 -30
- package/esm2022/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +0 -23
- package/esm2022/dynamic-menu/dynamic-menu.component.mjs +0 -28
- package/esm2022/dynamic-menu/dynamic-menu.menu.mjs +0 -2
- package/esm2022/dynamic-menu/dynamic-menu.module.mjs +0 -55
- package/esm2022/dynamic-menu/public_api.mjs +0 -6
- package/esm2022/file/covalent-core-file.mjs +0 -5
- package/esm2022/file/directives/file-drop.directive.mjs +0 -145
- package/esm2022/file/directives/file-select.directive.mjs +0 -78
- package/esm2022/file/file-input/file-input.component.mjs +0 -146
- package/esm2022/file/file-upload/file-upload.component.mjs +0 -188
- package/esm2022/file/file.module.mjs +0 -56
- package/esm2022/file/public_api.mjs +0 -7
- package/esm2022/file/services/file.service.mjs +0 -66
- package/esm2022/json-formatter/collapse.animation.mjs +0 -51
- package/esm2022/json-formatter/covalent-core-json-formatter.mjs +0 -5
- package/esm2022/json-formatter/json-formatter.component.mjs +0 -222
- package/esm2022/json-formatter/json-formatter.module.mjs +0 -20
- package/esm2022/json-formatter/public_api.mjs +0 -3
- package/esm2022/layout/covalent-core-layout.mjs +0 -5
- package/esm2022/layout/layout-card-over/layout-card-over.component.mjs +0 -50
- package/esm2022/layout/layout-footer/layout-footer.component.mjs +0 -36
- package/esm2022/layout/layout-manage-list/layout-manage-list.component.mjs +0 -92
- package/esm2022/layout/layout-manage-list/layout-manage-list.directives.mjs +0 -84
- package/esm2022/layout/layout-nav/layout-nav.component.mjs +0 -76
- package/esm2022/layout/layout-nav-list/layout-nav-list.component.mjs +0 -154
- package/esm2022/layout/layout-nav-list/layout-nav-list.directives.mjs +0 -84
- package/esm2022/layout/layout-toggle.class.mjs +0 -96
- package/esm2022/layout/layout.component.mjs +0 -91
- package/esm2022/layout/layout.directives.mjs +0 -85
- package/esm2022/layout/layout.module.mjs +0 -115
- package/esm2022/layout/navigation-drawer/navigation-drawer.component.mjs +0 -221
- package/esm2022/layout/public_api.mjs +0 -13
- package/esm2022/loading/covalent-core-loading.mjs +0 -5
- package/esm2022/loading/directives/loading.directive.mjs +0 -133
- package/esm2022/loading/loading.component.mjs +0 -193
- package/esm2022/loading/loading.module.mjs +0 -41
- package/esm2022/loading/public_api.mjs +0 -6
- package/esm2022/loading/services/loading.factory.mjs +0 -210
- package/esm2022/loading/services/loading.service.mjs +0 -219
- package/esm2022/menu/covalent-core-menu.mjs +0 -5
- package/esm2022/menu/menu.component.mjs +0 -12
- package/esm2022/menu/menu.module.mjs +0 -21
- package/esm2022/menu/public_api.mjs +0 -3
- package/esm2022/message/collapse.animation.mjs +0 -51
- package/esm2022/message/covalent-core-message.mjs +0 -5
- package/esm2022/message/message.component.mjs +0 -222
- package/esm2022/message/message.module.mjs +0 -25
- package/esm2022/message/public_api.mjs +0 -3
- package/esm2022/public_api.mjs +0 -2
- package/esm2022/search/covalent-core-search.mjs +0 -5
- package/esm2022/search/public_api.mjs +0 -4
- package/esm2022/search/search-box/search-box.component.mjs +0 -198
- package/esm2022/search/search-input/search-input.component.mjs +0 -219
- package/esm2022/search/search.module.mjs +0 -37
- package/esm2022/side-sheet/covalent-core-side-sheet.mjs +0 -5
- package/esm2022/side-sheet/public_api.mjs +0 -6
- package/esm2022/side-sheet/side-sheet-container.mjs +0 -285
- package/esm2022/side-sheet/side-sheet-ref.mjs +0 -30
- package/esm2022/side-sheet/side-sheet.animation.mjs +0 -12
- package/esm2022/side-sheet/side-sheet.config.mjs +0 -11
- package/esm2022/side-sheet/side-sheet.content-directives.mjs +0 -206
- package/esm2022/side-sheet/side-sheet.mjs +0 -236
- package/esm2022/side-sheet/side-sheet.module.mjs +0 -45
- package/esm2022/user-profile/covalent-core-user-profile.mjs +0 -5
- package/esm2022/user-profile/public_api.mjs +0 -4
- package/esm2022/user-profile/user-profile-menu/user-profile-menu.component.mjs +0 -25
- package/esm2022/user-profile/user-profile.component.mjs +0 -21
- package/esm2022/user-profile/user-profile.module.mjs +0 -42
@@ -1,222 +0,0 @@
|
|
1
|
-
import { merge, fromEvent } from 'rxjs';
|
2
|
-
var corners;
|
3
|
-
(function (corners) {
|
4
|
-
corners["topRight"] = "topRight";
|
5
|
-
corners["bottomRight"] = "bottomRight";
|
6
|
-
corners["bottomLeft"] = "bottomLeft";
|
7
|
-
corners["topLeft"] = "topLeft";
|
8
|
-
})(corners || (corners = {}));
|
9
|
-
var cursors;
|
10
|
-
(function (cursors) {
|
11
|
-
cursors["nesw"] = "nesw-resize";
|
12
|
-
cursors["nwse"] = "nwse-resize";
|
13
|
-
})(cursors || (cursors = {}));
|
14
|
-
var verticalAlignment;
|
15
|
-
(function (verticalAlignment) {
|
16
|
-
verticalAlignment["top"] = "top";
|
17
|
-
verticalAlignment["bottom"] = "bottom";
|
18
|
-
})(verticalAlignment || (verticalAlignment = {}));
|
19
|
-
var horizontalAlignment;
|
20
|
-
(function (horizontalAlignment) {
|
21
|
-
horizontalAlignment["right"] = "right";
|
22
|
-
horizontalAlignment["left"] = "left";
|
23
|
-
})(horizontalAlignment || (horizontalAlignment = {}));
|
24
|
-
const cornerWidth = '16px';
|
25
|
-
const offset = '0px';
|
26
|
-
const minWidth = 200;
|
27
|
-
const minHeight = 200;
|
28
|
-
function getPixels(sizeString) {
|
29
|
-
return parseFloat((sizeString || '').replace('px', ''));
|
30
|
-
}
|
31
|
-
function clamp(min, num, max) {
|
32
|
-
return Math.min(Math.max(num, min), max);
|
33
|
-
}
|
34
|
-
export class ResizableDraggableDialog {
|
35
|
-
_document;
|
36
|
-
_renderer2;
|
37
|
-
_dialogRef;
|
38
|
-
_dragRef;
|
39
|
-
cornerElements = [];
|
40
|
-
pointerDownSubs = [];
|
41
|
-
constructor(_document, _renderer2, _dialogRef, _dragRef) {
|
42
|
-
this._document = _document;
|
43
|
-
this._renderer2 = _renderer2;
|
44
|
-
this._dialogRef = _dialogRef;
|
45
|
-
this._dragRef = _dragRef;
|
46
|
-
this._initialPositionReset();
|
47
|
-
this._attachCorners();
|
48
|
-
}
|
49
|
-
attach() {
|
50
|
-
this.detach();
|
51
|
-
this._attachCorners();
|
52
|
-
}
|
53
|
-
detach() {
|
54
|
-
this.pointerDownSubs.forEach((sub) => sub.unsubscribe());
|
55
|
-
this.pointerDownSubs = [];
|
56
|
-
this.cornerElements.forEach((elem) => this._renderer2.removeChild(this._getDialogWrapper(), elem));
|
57
|
-
this.cornerElements = [];
|
58
|
-
}
|
59
|
-
_getDialogWrapper() {
|
60
|
-
return (this._document.getElementById(this._dialogRef.id) || {}).parentElement;
|
61
|
-
}
|
62
|
-
_getViewportDimensions() {
|
63
|
-
return this._getDialogWrapper()?.parentElement?.getBoundingClientRect();
|
64
|
-
}
|
65
|
-
_getDialogWrapperDimensions() {
|
66
|
-
const wrapper = this._getDialogWrapper();
|
67
|
-
if (!wrapper) {
|
68
|
-
return { width: 0, height: 0 };
|
69
|
-
}
|
70
|
-
const dimensions = getComputedStyle(wrapper);
|
71
|
-
return {
|
72
|
-
width: getPixels(dimensions.width),
|
73
|
-
height: getPixels(dimensions.height),
|
74
|
-
};
|
75
|
-
}
|
76
|
-
_initialPositionReset() {
|
77
|
-
const viewportWidth = this._getViewportDimensions()?.right ?? 0;
|
78
|
-
const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;
|
79
|
-
const { width, height } = this._getDialogWrapperDimensions();
|
80
|
-
const wrapperStyle = this._getDialogWrapper()?.style;
|
81
|
-
const originalDialogRight = wrapperStyle?.marginRight;
|
82
|
-
const originalDialogLeft = wrapperStyle?.marginLeft;
|
83
|
-
const originalDialogBottom = wrapperStyle?.marginBottom;
|
84
|
-
const originalDialogTop = wrapperStyle?.marginTop;
|
85
|
-
let x;
|
86
|
-
if (originalDialogLeft) {
|
87
|
-
x = getPixels(originalDialogLeft);
|
88
|
-
}
|
89
|
-
else if (originalDialogRight) {
|
90
|
-
x = viewportWidth - getPixels(originalDialogRight) - width;
|
91
|
-
}
|
92
|
-
else {
|
93
|
-
x = (viewportWidth - width) / 2;
|
94
|
-
}
|
95
|
-
let y;
|
96
|
-
if (originalDialogTop) {
|
97
|
-
y = getPixels(originalDialogTop);
|
98
|
-
}
|
99
|
-
else if (originalDialogBottom) {
|
100
|
-
y = viewportHeight - getPixels(originalDialogBottom) - height;
|
101
|
-
}
|
102
|
-
else {
|
103
|
-
y = (viewportHeight - height) / 2;
|
104
|
-
}
|
105
|
-
// use drag ref's mechanisms for positioning instead of the dialog's
|
106
|
-
this._dialogRef.updatePosition({
|
107
|
-
top: '0px',
|
108
|
-
right: '0px',
|
109
|
-
bottom: '0px',
|
110
|
-
left: '0px',
|
111
|
-
});
|
112
|
-
this._dragRef.setFreeDragPosition({ x, y });
|
113
|
-
}
|
114
|
-
_attachCorners() {
|
115
|
-
Object.values(corners).forEach((corner) => {
|
116
|
-
const element = this._renderer2.createElement('div');
|
117
|
-
this.cornerElements = [...this.cornerElements, element];
|
118
|
-
this._renderer2.setStyle(element, 'position', 'absolute');
|
119
|
-
this._renderer2.setStyle(element, 'width', cornerWidth);
|
120
|
-
this._renderer2.setStyle(element, 'height', cornerWidth);
|
121
|
-
this._renderer2.setStyle(element, 'z-index', 1);
|
122
|
-
this._renderer2.appendChild(this._getDialogWrapper(), element);
|
123
|
-
let cursor;
|
124
|
-
let topBottom;
|
125
|
-
let rightLeft;
|
126
|
-
if (corner === corners.topRight) {
|
127
|
-
cursor = cursors.nesw;
|
128
|
-
topBottom = verticalAlignment.top;
|
129
|
-
rightLeft = horizontalAlignment.right;
|
130
|
-
}
|
131
|
-
else if (corner === corners.bottomRight) {
|
132
|
-
cursor = cursors.nwse;
|
133
|
-
topBottom = verticalAlignment.bottom;
|
134
|
-
rightLeft = horizontalAlignment.right;
|
135
|
-
const icon = this._renderer2.createElement('i');
|
136
|
-
this._renderer2.addClass(icon, 'material-symbols-outlined');
|
137
|
-
this._renderer2.appendChild(icon, this._renderer2.createText('filter_list'));
|
138
|
-
this._renderer2.appendChild(element, icon);
|
139
|
-
this._renderer2.setStyle(icon, 'transform', `rotate(${315}deg) translate(0px, ${offset})`);
|
140
|
-
this._renderer2.setStyle(icon, 'font-size', cornerWidth);
|
141
|
-
this._renderer2.setStyle(icon, 'z-index', 1);
|
142
|
-
}
|
143
|
-
else if (corner === corners.bottomLeft) {
|
144
|
-
cursor = cursors.nesw;
|
145
|
-
topBottom = verticalAlignment.bottom;
|
146
|
-
rightLeft = horizontalAlignment.left;
|
147
|
-
}
|
148
|
-
else {
|
149
|
-
cursor = cursors.nwse;
|
150
|
-
topBottom = verticalAlignment.top;
|
151
|
-
rightLeft = horizontalAlignment.left;
|
152
|
-
}
|
153
|
-
this._renderer2.setStyle(element, topBottom, offset);
|
154
|
-
this._renderer2.setStyle(element, rightLeft, offset);
|
155
|
-
this._renderer2.setStyle(element, 'cursor', cursor);
|
156
|
-
const pointerDownSub = fromEvent(element, 'pointerdown').subscribe((event) => {
|
157
|
-
this._handleMouseDown(event, corner);
|
158
|
-
});
|
159
|
-
this.pointerDownSubs = [...this.pointerDownSubs, pointerDownSub];
|
160
|
-
});
|
161
|
-
}
|
162
|
-
_handleMouseDown(event, corner) {
|
163
|
-
this._renderer2.setStyle(this._document.body, 'user-select', 'none');
|
164
|
-
const { width: originalWidth, height: originalHeight } = this._getDialogWrapperDimensions();
|
165
|
-
const originalMouseX = event.pageX;
|
166
|
-
const originalMouseY = event.pageY;
|
167
|
-
const { x: currentTransformX, y: currentTransformY } = this._dragRef.getFreeDragPosition();
|
168
|
-
const wrapper = this._getDialogWrapper()?.getBoundingClientRect();
|
169
|
-
const distanceFromBottom = wrapper?.bottom ?? 0;
|
170
|
-
const distanceFromRight = wrapper?.right ?? 0;
|
171
|
-
const viewportWidth = this._getViewportDimensions()?.right ?? 0;
|
172
|
-
const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;
|
173
|
-
const mouseMoveSub = fromEvent(window, 'pointermove').subscribe((e) => {
|
174
|
-
e.preventDefault(); // prevent highlighting of text when dragging
|
175
|
-
const yDelta = clamp(0, e.pageY, viewportHeight) - originalMouseY;
|
176
|
-
const xDelta = clamp(0, e.pageX, viewportWidth) - originalMouseX;
|
177
|
-
let newHeight;
|
178
|
-
let newWidth;
|
179
|
-
let newTransformY = 0;
|
180
|
-
let newTransformX = 0;
|
181
|
-
// top right
|
182
|
-
if (corner === corners.topRight) {
|
183
|
-
newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);
|
184
|
-
newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);
|
185
|
-
newTransformY = clamp(0, currentTransformY + yDelta, distanceFromBottom - newHeight);
|
186
|
-
newTransformX = currentTransformX;
|
187
|
-
}
|
188
|
-
// bottom right
|
189
|
-
else if (corner === corners.bottomRight) {
|
190
|
-
newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);
|
191
|
-
newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);
|
192
|
-
newTransformY = currentTransformY;
|
193
|
-
newTransformX = currentTransformX;
|
194
|
-
}
|
195
|
-
// bottom left
|
196
|
-
else if (corner === corners.bottomLeft) {
|
197
|
-
newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);
|
198
|
-
newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);
|
199
|
-
newTransformY = currentTransformY;
|
200
|
-
newTransformX = clamp(0, currentTransformX + xDelta, distanceFromRight - newWidth);
|
201
|
-
}
|
202
|
-
// top left
|
203
|
-
else {
|
204
|
-
newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);
|
205
|
-
newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);
|
206
|
-
newTransformX = clamp(0, currentTransformX + xDelta, distanceFromRight - newWidth);
|
207
|
-
newTransformY = clamp(0, currentTransformY + yDelta, distanceFromBottom - newHeight);
|
208
|
-
}
|
209
|
-
this._dialogRef.updateSize(`${newWidth}px`, `${newHeight}px`);
|
210
|
-
this._dragRef.setFreeDragPosition({
|
211
|
-
x: newTransformX,
|
212
|
-
y: newTransformY,
|
213
|
-
});
|
214
|
-
});
|
215
|
-
const mouseUpSub = merge(fromEvent(window, 'pointerup'), fromEvent(window, 'pointercancel')).subscribe(() => {
|
216
|
-
this._renderer2.removeStyle(this._document.body, 'user-select');
|
217
|
-
mouseMoveSub.unsubscribe();
|
218
|
-
mouseUpSub.unsubscribe();
|
219
|
-
});
|
220
|
-
}
|
221
|
-
}
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLWRyYWdnYWJsZS1kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvZGlhbG9ncy9zcmMvcmVzaXphYmxlLWRyYWdnYWJsZS1kaWFsb2cvcmVzaXphYmxlLWRyYWdnYWJsZS1kaWFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLEtBQUssRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RELElBQUssT0FLSjtBQUxELFdBQUssT0FBTztJQUNWLGdDQUFxQixDQUFBO0lBQ3JCLHNDQUEyQixDQUFBO0lBQzNCLG9DQUF5QixDQUFBO0lBQ3pCLDhCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMSSxPQUFPLEtBQVAsT0FBTyxRQUtYO0FBQ0QsSUFBSyxPQUdKO0FBSEQsV0FBSyxPQUFPO0lBQ1YsK0JBQW9CLENBQUE7SUFDcEIsK0JBQW9CLENBQUE7QUFDdEIsQ0FBQyxFQUhJLE9BQU8sS0FBUCxPQUFPLFFBR1g7QUFDRCxJQUFLLGlCQUdKO0FBSEQsV0FBSyxpQkFBaUI7SUFDcEIsZ0NBQVcsQ0FBQTtJQUNYLHNDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFISSxpQkFBaUIsS0FBakIsaUJBQWlCLFFBR3JCO0FBQ0QsSUFBSyxtQkFHSjtBQUhELFdBQUssbUJBQW1CO0lBQ3RCLHNDQUFlLENBQUE7SUFDZixvQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhJLG1CQUFtQixLQUFuQixtQkFBbUIsUUFHdkI7QUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDM0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDO0FBQ3JCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQztBQUNyQixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFFdEIsU0FBUyxTQUFTLENBQUMsVUFBa0I7SUFDbkMsT0FBTyxVQUFVLENBQUMsQ0FBQyxVQUFVLElBQUksRUFB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LEdBQUcsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUVsRSxhQUFhLEdBQUcsS0FBSyxDQUNuQixDQUFDLEVBQ0QsaUJBQWlCLEdBQUcsTUFBTSxFQUMxQixpQkFBaUIsR0FBRyxRQUFRLENBQzdCLENBQUM7Z0JBQ0YsYUFBYSxHQUFHLEtBQUssQ0FDbkIsQ0FBQyxFQUNELGlCQUFpQixHQUFHLE1BQU0sRUFDMUIsa0JBQWtCLEdBQUcsU0FBUyxDQUMvQixDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxJQUFJLEVBQUUsR0FBRyxTQUFTLElBQUksQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUM7Z0JBQ2hDLENBQUMsRUFBRSxhQUFhO2dCQUNoQixDQUFDLEVBQUUsYUFBYTthQUNqQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFpQixLQUFLLENBQ3BDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQzlCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQ25DLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUNoQyxhQUFhLENBQ2QsQ0FBQztZQUNGLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQixVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBEcmFnUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBtZXJnZSwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbmVudW0gY29ybmVycyB7XG4gIHRvcFJpZ2h0ID0gJ3RvcFJpZ2h0JyxcbiAgYm90dG9tUmlnaHQgPSAnYm90dG9tUmlnaHQnLFxuICBib3R0b21MZWZ0ID0gJ2JvdHRvbUxlZnQnLFxuICB0b3BMZWZ0ID0gJ3RvcExlZnQnLFxufVxuZW51bSBjdXJzb3JzIHtcbiAgbmVzdyA9ICduZXN3LXJlc2l6ZScsXG4gIG53c2UgPSAnbndzZS1yZXNpemUnLFxufVxuZW51bSB2ZXJ0aWNhbEFsaWdubWVudCB7XG4gIHRvcCA9ICd0b3AnLFxuICBib3R0b20gPSAnYm90dG9tJyxcbn1cbmVudW0gaG9yaXpvbnRhbEFsaWdubWVudCB7XG4gIHJpZ2h0ID0gJ3JpZ2h0JyxcbiAgbGVmdCA9ICdsZWZ0Jyxcbn1cblxuY29uc3QgY29ybmVyV2lkdGggPSAnMTZweCc7XG5jb25zdCBvZmZzZXQgPSAnMHB4JztcbmNvbnN0IG1pbldpZHRoID0gMjAwO1xuY29uc3QgbWluSGVpZ2h0ID0gMjAwO1xuXG5mdW5jdGlvbiBnZXRQaXhlbHMoc2l6ZVN0cmluZzogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIHBhcnNlRmxvYXQoKHNpemVTdHJpbmcgfHwgJycpLnJlcGxhY2UoJ3B4JywgJycpKTtcbn1cblxuZnVuY3Rpb24gY2xhbXAobWluOiBudW1iZXIsIG51bTogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChudW0sIG1pbiksIG1heCk7XG59XG5cbmV4cG9ydCBjbGFzcyBSZXNpemFibGVEcmFnZ2FibGVEaWFsb2cge1xuICBjb3JuZXJFbGVtZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuICBwb2ludGVyRG93blN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZG9jdW1lbnQ6IGFueSxcbiAgICBwcml2YXRlIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhbnk+LFxuICAgIHByaXZhdGUgX2RyYWdSZWY6IERyYWdSZWZcbiAgKSB7XG4gICAgdGhpcy5faW5pdGlhbFBvc2l0aW9uUmVzZXQoKTtcbiAgICB0aGlzLl9hdHRhY2hDb3JuZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgYXR0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuZGV0YWNoKCk7XG4gICAgdGhpcy5fYXR0YWNoQ29ybmVycygpO1xuICB9XG5cbiAgcHVibGljIGRldGFjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnBvaW50ZXJEb3duU3Vicy5mb3JFYWNoKChzdWI6IFN1YnNjcmlwdGlvbikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICAgIHRoaXMucG9pbnRlckRvd25TdWJzID0gW107XG4gICAgdGhpcy5jb3JuZXJFbGVtZW50cy5mb3JFYWNoKChlbGVtOiBIVE1MRWxlbWVudCkgPT5cbiAgICAgIHRoaXMuX3JlbmRlcmVyMi5yZW1vdmVDaGlsZCh0aGlzLl9nZXREaWFsb2dXcmFwcGVyKCksIGVsZW0pXG4gICAgKTtcbiAgICB0aGlzLmNvcm5lckVsZW1lbnRzID0gW107XG4gIH1cblxuICBwcml2YXRlIF9nZXREaWFsb2dXcmFwcGVyKCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxIVE1MRWxlbWVudD50aGlzLl9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLl9kaWFsb2dSZWYuaWQpIHx8IHt9XG4gICAgKS5wYXJlbnRFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Vmlld3BvcnREaW1lbnNpb25zKCk6IENsaWVudFJlY3QgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9nZXREaWFsb2dXcmFwcGVyKCk/LnBhcmVudEVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGlhbG9nV3JhcHBlckRpbWVuc2lvbnMoKTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9IHtcbiAgICBjb25zdCB3cmFwcGVyID0gdGhpcy5fZ2V0RGlhbG9nV3JhcHBlcigpO1xuICAgIGlmICghd3JhcHBlcikge1xuICAgICAgcmV0dXJuIHsgd2lkdGg6IDAsIGhlaWdodDogMCB9O1xuICAgIH1cbiAgICBjb25zdCBkaW1lbnNpb25zOiBDU1NTdHlsZURlY2xhcmF0aW9uID0gZ2V0Q29tcHV0ZWRTdHlsZSh3cmFwcGVyKTtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IGdldFBpeGVscyhkaW1lbnNpb25zLndpZHRoKSxcbiAgICAgIGhlaWdodDogZ2V0UGl4ZWxzKGRpbWVuc2lvbnMuaGVpZ2h0KSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbFBvc2l0aW9uUmVzZXQoKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IHRoaXMuX2dldFZpZXdwb3J0RGltZW5zaW9ucygpPy5yaWdodCA/PyAwO1xuICAgIGNvbnN0IHZpZXdwb3J0SGVpZ2h0ID0gdGhpcy5fZ2V0Vmlld3BvcnREaW1lbnNpb25zKCk/LmJvdHRvbSA/PyAwO1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gdGhpcy5fZ2V0RGlhbG9nV3JhcHBlckRpbWVuc2lvbnMoKTtcbiAgICBjb25zdCB3cmFwcGVyU3R5bGUgPSB0aGlzLl9nZXREaWFsb2dXcmFwcGVyKCk/LnN0eWxlO1xuICAgIGNvbnN0IG9yaWdpbmFsRGlhbG9nUmlnaHQgPSB3cmFwcGVyU3R5bGU/Lm1hcmdpblJpZ2h0O1xuICAgIGNvbnN0IG9yaWdpbmFsRGlhbG9nTGVmdCA9IHdyYXBwZXJTdHlsZT8ubWFyZ2luTGVmdDtcbiAgICBjb25zdCBvcmlnaW5hbERpYWxvZ0JvdHRvbSA9IHdyYXBwZXJTdHlsZT8ubWFyZ2luQm90dG9tO1xuICAgIGNvbnN0IG9yaWdpbmFsRGlhbG9nVG9wID0gd3JhcHBlclN0eWxlPy5tYXJnaW5Ub3A7XG4gICAgbGV0IHg6IG51bWJlcjtcbiAgICBpZiAob3JpZ2luYWxEaWFsb2dMZWZ0KSB7XG4gICAgICB4ID0gZ2V0UGl4ZWxzKG9yaWdpbmFsRGlhbG9nTGVmdCk7XG4gICAgfSBlbHNlIGlmIChvcmlnaW5hbERpYWxvZ1JpZ2h0KSB7XG4gICAgICB4ID0gdmlld3BvcnRXaWR0aCAtIGdldFBpeGVscyhvcmlnaW5hbERpYWxvZ1JpZ2h0KSAtIHdpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB4ID0gKHZpZXdwb3J0V2lkdGggLSB3aWR0aCkgLyAyO1xuICAgIH1cbiAgICBsZXQgeTogbnVtYmVyO1xuICAgIGlmIChvcmlnaW5hbERpYWxvZ1RvcCkge1xuICAgICAgeSA9IGdldFBpeGVscyhvcmlnaW5hbERpYWxvZ1RvcCk7XG4gICAgfSBlbHNlIGlmIChvcmlnaW5hbERpYWxvZ0JvdHRvbSkge1xuICAgICAgeSA9IHZpZXdwb3J0SGVpZ2h0IC0gZ2V0UGl4ZWxzKG9yaWdpbmFsRGlhbG9nQm90dG9tKSAtIGhlaWdodDtcbiAgICB9IGVsc2Uge1xuICAgICAgeSA9ICh2aWV3cG9ydEhlaWdodCAtIGhlaWdodCkgLyAyO1xuICAgIH1cbiAgICAvLyB1c2UgZHJhZyByZWYncyBtZWNoYW5pc21zIGZvciBwb3NpdGlvbmluZyBpbnN0ZWFkIG9mIHRoZSBkaWFsb2cnc1xuICAgIHRoaXMuX2RpYWxvZ1JlZi51cGRhdGVQb3NpdGlvbih7XG4gICAgICB0b3A6ICcwcHgnLFxuICAgICAgcmlnaHQ6ICcwcHgnLFxuICAgICAgYm90dG9tOiAnMHB4JyxcbiAgICAgIGxlZnQ6ICcwcHgnLFxuICAgIH0pO1xuICAgIHRoaXMuX2RyYWdSZWYuc2V0RnJlZURyYWdQb3NpdGlvbih7IHgsIHkgfSk7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hDb3JuZXJzKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXMoY29ybmVycykuZm9yRWFjaCgoY29ybmVyOiBjb3JuZXJzKSA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuX3JlbmRlcmVyMi5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHRoaXMuY29ybmVyRWxlbWVudHMgPSBbLi4udGhpcy5jb3JuZXJFbGVtZW50cywgZWxlbWVudF07XG4gICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoZWxlbWVudCwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoZWxlbWVudCwgJ3dpZHRoJywgY29ybmVyV2lkdGgpO1xuICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKGVsZW1lbnQsICdoZWlnaHQnLCBjb3JuZXJXaWR0aCk7XG4gICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoZWxlbWVudCwgJ3otaW5kZXgnLCAxKTtcbiAgICAgIHRoaXMuX3JlbmRlcmVyMi5hcHBlbmRDaGlsZCh0aGlzLl9nZXREaWFsb2dXcmFwcGVyKCksIGVsZW1lbnQpO1xuXG4gICAgICBsZXQgY3Vyc29yOiBjdXJzb3JzO1xuICAgICAgbGV0IHRvcEJvdHRvbTogdmVydGljYWxBbGlnbm1lbnQ7XG4gICAgICBsZXQgcmlnaHRMZWZ0OiBob3Jpem9udGFsQWxpZ25tZW50O1xuXG4gICAgICBpZiAoY29ybmVyID09PSBjb3JuZXJzLnRvcFJpZ2h0KSB7XG4gICAgICAgIGN1cnNvciA9IGN1cnNvcnMubmVzdztcbiAgICAgICAgdG9wQm90dG9tID0gdmVydGljYWxBbGlnbm1lbnQudG9wO1xuICAgICAgICByaWdodExlZnQgPSBob3Jpem9udGFsQWxpZ25tZW50LnJpZ2h0O1xuICAgICAgfSBlbHNlIGlmIChjb3JuZXIgPT09IGNvcm5lcnMuYm90dG9tUmlnaHQpIHtcbiAgICAgICAgY3Vyc29yID0gY3Vyc29ycy5ud3NlO1xuICAgICAgICB0b3BCb3R0b20gPSB2ZXJ0aWNhbEFsaWdubWVudC5ib3R0b207XG4gICAgICAgIHJpZ2h0TGVmdCA9IGhvcml6b250YWxBbGlnbm1lbnQucmlnaHQ7XG5cbiAgICAgICAgY29uc3QgaWNvbjogSFRNTEVsZW1lbnQgPSB0aGlzLl9yZW5kZXJlcjIuY3JlYXRlRWxlbWVudCgnaScpO1xuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuYWRkQ2xhc3MoaWNvbiwgJ21hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQnKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmFwcGVuZENoaWxkKFxuICAgICAgICAgIGljb24sXG4gICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmNyZWF0ZVRleHQoJ2ZpbHRlcl9saXN0JylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmFwcGVuZENoaWxkKGVsZW1lbnQsIGljb24pO1xuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoXG4gICAgICAgICAgaWNvbixcbiAgICAgICAgICAndHJhbnNmb3JtJyxcbiAgICAgICAgICBgcm90YXRlKCR7MzE1fWRlZykgdHJhbnNsYXRlKDBweCwgJHtvZmZzZXR9KWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKGljb24sICdmb250LXNpemUnLCBjb3JuZXJXaWR0aCk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZShpY29uLCAnei1pbmRleCcsIDEpO1xuICAgICAgfSBlbHNlIGlmIChjb3JuZXIgPT09IGNvcm5lcnMuYm90dG9tTGVmdCkge1xuICAgICAgICBjdXJzb3IgPSBjdXJzb3JzLm5lc3c7XG4gICAgICAgIHRvcEJvdHRvbSA9IHZlcnRpY2FsQWxpZ25tZW50LmJvdHRvbTtcbiAgICAgICAgcmlnaHRMZWZ0ID0gaG9yaXpvbnRhbEFsaWdubWVudC5sZWZ0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3Vyc29yID0gY3Vyc29ycy5ud3NlO1xuICAgICAgICB0b3BCb3R0b20gPSB2ZXJ0aWNhbEFsaWdubWVudC50b3A7XG4gICAgICAgIHJpZ2h0TGVmdCA9IGhvcml6b250YWxBbGlnbm1lbnQubGVmdDtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3JlbmRlcmVyMi5zZXRTdHlsZShlbGVtZW50LCB0b3BCb3R0b20sIG9mZnNldCk7XG4gICAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoZWxlbWVudCwgcmlnaHRMZWZ0LCBvZmZzZXQpO1xuICAgICAgdGhpcy5fcmVuZGVyZXIyLnNldFN0eWxlKGVsZW1lbnQsICdjdXJzb3InLCBjdXJzb3IpO1xuXG4gICAgICBjb25zdCBwb2ludGVyRG93blN1YjogU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50PFBvaW50ZXJFdmVudD4oXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgICdwb2ludGVyZG93bidcbiAgICAgICkuc3Vic2NyaWJlKChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuX2hhbmRsZU1vdXNlRG93bihldmVudCwgY29ybmVyKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5wb2ludGVyRG93blN1YnMgPSBbLi4udGhpcy5wb2ludGVyRG93blN1YnMsIHBvaW50ZXJEb3duU3ViXTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU1vdXNlRG93bihldmVudDogUG9pbnRlckV2ZW50LCBjb3JuZXI6IGNvcm5lcnMpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUoXG4gICAgICA8SFRNTEVsZW1lbnQ+dGhpcy5fZG9jdW1lbnQuYm9keSxcbiAgICAgICd1c2VyLXNlbGVjdCcsXG4gICAgICAnbm9uZSdcbiAgICApO1xuICAgIGNvbnN0IHsgd2lkdGg6IG9yaWdpbmFsV2lkdGgsIGhlaWdodDogb3JpZ2luYWxIZWlnaHQgfSA9XG4gICAgICB0aGlzLl9nZXREaWFsb2dXcmFwcGVyRGltZW5zaW9ucygpO1xuICAgIGNvbnN0IG9yaWdpbmFsTW91c2VYOiBudW1iZXIgPSBldmVudC5wYWdlWDtcbiAgICBjb25zdCBvcmlnaW5hbE1vdXNlWTogbnVtYmVyID0gZXZlbnQucGFnZVk7XG4gICAgY29uc3QgeyB4OiBjdXJyZW50VHJhbnNmb3JtWCwgeTogY3VycmVudFRyYW5zZm9ybVkgfTogUG9pbnQgPVxuICAgICAgdGhpcy5fZHJhZ1JlZi5nZXRGcmVlRHJhZ1Bvc2l0aW9uKCk7XG4gICAgY29uc3Qgd3JhcHBlciA9IHRoaXMuX2dldERpYWxvZ1dyYXBwZXIoKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgZGlzdGFuY2VGcm9tQm90dG9tID0gd3JhcHBlcj8uYm90dG9tID8/IDA7XG4gICAgY29uc3QgZGlzdGFuY2VGcm9tUmlnaHQgPSB3cmFwcGVyPy5yaWdodCA/PyAwO1xuICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSB0aGlzLl9nZXRWaWV3cG9ydERpbWVuc2lvbnMoKT8ucmlnaHQgPz8gMDtcbiAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IHRoaXMuX2dldFZpZXdwb3J0RGltZW5zaW9ucygpPy5ib3R0b20gPz8gMDtcblxuICAgIGNvbnN0IG1vdXNlTW92ZVN1YjogU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50PFBvaW50ZXJFdmVudD4oXG4gICAgICB3aW5kb3csXG4gICAgICAncG9pbnRlcm1vdmUnXG4gICAgKS5zdWJzY3JpYmUoKGU6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOyAvLyBwcmV2ZW50IGhpZ2hsaWdodGluZyBvZiB0ZXh0IHdoZW4gZHJhZ2dpbmdcblxuICAgICAgY29uc3QgeURlbHRhOiBudW1iZXIgPSBjbGFtcCgwLCBlLnBhZ2VZLCB2aWV3cG9ydEhlaWdodCkgLSBvcmlnaW5hbE1vdXNlWTtcbiAgICAgIGNvbnN0IHhEZWx0YTogbnVtYmVyID0gY2xhbXAoMCwgZS5wYWdlWCwgdmlld3BvcnRXaWR0aCkgLSBvcmlnaW5hbE1vdXNlWDtcbiAgICAgIGxldCBuZXdIZWlnaHQ6IG51bWJlcjtcbiAgICAgIGxldCBuZXdXaWR0aDogbnVtYmVyO1xuICAgICAgbGV0IG5ld1RyYW5zZm9ybVkgPSAwO1xuICAgICAgbGV0IG5ld1RyYW5zZm9ybVggPSAwO1xuXG4gICAgICAvLyB0b3AgcmlnaHRcbiAgICAgIGlmIChjb3JuZXIgPT09IGNvcm5lcnMudG9wUmlnaHQpIHtcbiAgICAgICAgbmV3SGVpZ2h0ID0gY2xhbXAobWluSGVpZ2h0LCBvcmlnaW5hbEhlaWdodCAtIHlEZWx0YSwgdmlld3BvcnRIZWlnaHQpO1xuICAgICAgICBuZXdXaWR0aCA9IGNsYW1wKG1pbldpZHRoLCBvcmlnaW5hbFdpZHRoICsgeERlbHRhLCB2aWV3cG9ydFdpZHRoKTtcbiAgICAgICAgbmV3VHJhbnNmb3JtWSA9IGNsYW1wKFxuICAgICAgICAgIDAsXG4gICAgICAgICAgY3VycmVudFRyYW5zZm9ybVkgKyB5RGVsdGEsXG4gICAgICAgICAgZGlzdGFuY2VGcm9tQm90dG9tIC0gbmV3SGVpZ2h0XG4gICAgICAgICk7XG4gICAgICAgIG5ld1RyYW5zZm9ybVggPSBjdXJyZW50VHJhbnNmb3JtWDtcbiAgICAgIH1cbiAgICAgIC8vIGJvdHRvbSByaWdodFxuICAgICAgZWxzZSBpZiAoY29ybmVyID09PSBjb3JuZXJzLmJvdHRvbVJpZ2h0KSB7XG4gICAgICAgIG5ld0hlaWdodCA9IGNsYW1wKG1pbkhlaWdodCwgb3JpZ2luYWxIZWlnaHQgKyB5RGVsdGEsIHZpZXdwb3J0SGVpZ2h0KTtcbiAgICAgICAgbmV3V2lkdGggPSBjbGFtcChtaW5XaWR0aCwgb3JpZ2luYWxXaWR0aCArIHhEZWx0YSwgdmlld3BvcnRXaWR0aCk7XG4gICAgICAgIG5ld1RyYW5zZm9ybVkgPSBjdXJyZW50VHJhbnNmb3JtWTtcbiAgICAgICAgbmV3VHJhbnNmb3JtWCA9IGN1cnJlbnRUcmFuc2Zvcm1YO1xuICAgICAgfVxuICAgICAgLy8gYm90dG9tIGxlZnRcbiAgICAgIGVsc2UgaWYgKGNvcm5lciA9PT0gY29ybmVycy5ib3R0b21MZWZ0KSB7XG4gICAgICAgIG5ld0hlaWdodCA9IGNsYW1wKG1pbkhlaWdodCwgb3JpZ2luYWxIZWlnaHQgKyB5RGVsdGEsIHZpZXdwb3J0SGVpZ2h0KTtcbiAgICAgICAgbmV3V2lkdGggPSBjbGFtcChtaW5XaWR0aCwgb3JpZ2luYWxXaWR0aCAtIHhEZWx0YSwgdmlld3BvcnRXaWR0aCk7XG4gICAgICAgIG5ld1RyYW5zZm9ybVkgPSBjdXJyZW50VHJhbnNmb3JtWTtcbiAgICAgICAgbmV3VHJhbnNmb3JtWCA9IGNsYW1wKFxuICAgICAgICAgIDAsXG4gICAgICAgICAgY3VycmVudFRyYW5zZm9ybVggKyB4RGVsdGEsXG4gICAgICAgICAgZGlzdGFuY2VGcm9tUmlnaHQgLSBuZXdXaWR0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgLy8gdG9wIGxlZnRcbiAgICAgIGVsc2Uge1xuICAgICAgICBuZXdIZWlnaHQgPSBjbGFtcChtaW5IZWlnaHQsIG9yaWdpbmFsSGVpZ2h0IC0geURlbHRhLCB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIG5ld1dpZHRoID0gY2xhbXAobWluV2lkdGgsIG9yaWdpbmFsV2lkdGggLSB4RGVsdGEsIHZpZXdwb3J0V2lkdGgpO1xuXG4gICAgICAgIG5ld1RyYW5zZm9ybVggPSBjbGFtcChcbiAgICAgICAgICAwLFxuICAgICAgICAgIGN1cnJlbnRUcmFuc2Zvcm1YICsgeERlbHRhLFxuICAgICAgICAgIGRpc3RhbmNlRnJvbVJpZ2h0IC0gbmV3V2lkdGhcbiAgICAgICAgKTtcbiAgICAgICAgbmV3VHJhbnNmb3JtWSA9IGNsYW1wKFxuICAgICAgICAgIDAsXG4gICAgICAgICAgY3VycmVudFRyYW5zZm9ybVkgKyB5RGVsdGEsXG4gICAgICAgICAgZGlzdGFuY2VGcm9tQm90dG9tIC0gbmV3SGVpZ2h0XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLl9kaWFsb2dSZWYudXBkYXRlU2l6ZShgJHtuZXdXaWR0aH1weGAsIGAke25ld0hlaWdodH1weGApO1xuICAgICAgdGhpcy5fZHJhZ1JlZi5zZXRGcmVlRHJhZ1Bvc2l0aW9uKHtcbiAgICAgICAgeDogbmV3VHJhbnNmb3JtWCxcbiAgICAgICAgeTogbmV3VHJhbnNmb3JtWSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgbW91c2VVcFN1YjogU3Vic2NyaXB0aW9uID0gbWVyZ2UoXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAncG9pbnRlcnVwJyksXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAncG9pbnRlcmNhbmNlbCcpXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fcmVuZGVyZXIyLnJlbW92ZVN0eWxlKFxuICAgICAgICA8SFRNTEVsZW1lbnQ+dGhpcy5fZG9jdW1lbnQuYm9keSxcbiAgICAgICAgJ3VzZXItc2VsZWN0J1xuICAgICAgKTtcbiAgICAgIG1vdXNlTW92ZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgbW91c2VVcFN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
@@ -1,215 +0,0 @@
|
|
1
|
-
import { Injectable, Inject, RendererFactory2 } from '@angular/core';
|
2
|
-
import { MatDialog, MatDialogConfig, } from '@angular/material/dialog';
|
3
|
-
import { TdAlertDialogComponent } from '../alert-dialog/alert-dialog.component';
|
4
|
-
import { TdConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';
|
5
|
-
import { TdPromptDialogComponent } from '../prompt-dialog/prompt-dialog.component';
|
6
|
-
import { DragDrop } from '@angular/cdk/drag-drop';
|
7
|
-
import { DOCUMENT } from '@angular/common';
|
8
|
-
import { Subject } from 'rxjs';
|
9
|
-
import { TdStatusDialogComponent, } from '../status-dialog/status-dialog.component';
|
10
|
-
import * as i0 from "@angular/core";
|
11
|
-
import * as i1 from "@angular/material/dialog";
|
12
|
-
import * as i2 from "@angular/cdk/drag-drop";
|
13
|
-
export class TdDialogService {
|
14
|
-
_document;
|
15
|
-
_dialogService;
|
16
|
-
_dragDrop;
|
17
|
-
rendererFactory;
|
18
|
-
_renderer2;
|
19
|
-
constructor(_document, _dialogService, _dragDrop, rendererFactory) {
|
20
|
-
this._document = _document;
|
21
|
-
this._dialogService = _dialogService;
|
22
|
-
this._dragDrop = _dragDrop;
|
23
|
-
this.rendererFactory = rendererFactory;
|
24
|
-
this._renderer2 = rendererFactory.createRenderer(undefined, null);
|
25
|
-
}
|
26
|
-
/**
|
27
|
-
* params:
|
28
|
-
* - component: ComponentType<T>
|
29
|
-
* - config: MatDialogConfig
|
30
|
-
* Wrapper function over the open() method in MatDialog.
|
31
|
-
* Opens a modal dialog containing the given component.
|
32
|
-
*/
|
33
|
-
open(component, config) {
|
34
|
-
return this._dialogService.open(component, config);
|
35
|
-
}
|
36
|
-
/**
|
37
|
-
* Wrapper function over the closeAll() method in MatDialog.
|
38
|
-
* Closes all of the currently-open dialogs.
|
39
|
-
*/
|
40
|
-
closeAll() {
|
41
|
-
this._dialogService.closeAll();
|
42
|
-
}
|
43
|
-
/**
|
44
|
-
* params:
|
45
|
-
* - config: IAlertConfig {
|
46
|
-
* message: string;
|
47
|
-
* title?: string;
|
48
|
-
* viewContainerRef?: ViewContainerRef;
|
49
|
-
* closeButton?: string;
|
50
|
-
* }
|
51
|
-
*
|
52
|
-
* Opens an alert dialog with the provided config.
|
53
|
-
* Returns an MatDialogRef<TdAlertDialogComponent> object.
|
54
|
-
*/
|
55
|
-
openAlert(config) {
|
56
|
-
const dialogConfig = this._createConfig(config);
|
57
|
-
const dialogRef = this._dialogService.open(TdAlertDialogComponent, dialogConfig);
|
58
|
-
const alertDialogComponent = dialogRef.componentInstance;
|
59
|
-
alertDialogComponent.title = config.title;
|
60
|
-
alertDialogComponent.message = config.message;
|
61
|
-
if (config.closeButton) {
|
62
|
-
alertDialogComponent.closeButton = config.closeButton;
|
63
|
-
}
|
64
|
-
return dialogRef;
|
65
|
-
}
|
66
|
-
/**
|
67
|
-
* params:
|
68
|
-
* - config: IConfirmConfig {
|
69
|
-
* message: string;
|
70
|
-
* title?: string;
|
71
|
-
* viewContainerRef?: ViewContainerRef;
|
72
|
-
* acceptButton?: string;
|
73
|
-
* cancelButton?: string;
|
74
|
-
* isDestructive?: boolean;
|
75
|
-
* }
|
76
|
-
*
|
77
|
-
* Opens a confirm dialog with the provided config.
|
78
|
-
* Returns an MatDialogRef<TdConfirmDialogComponent> object.
|
79
|
-
*/
|
80
|
-
openConfirm(config) {
|
81
|
-
const dialogConfig = this._createConfig(config);
|
82
|
-
const dialogRef = this._dialogService.open(TdConfirmDialogComponent, dialogConfig);
|
83
|
-
const confirmDialogComponent = dialogRef.componentInstance;
|
84
|
-
confirmDialogComponent.title = config.title;
|
85
|
-
confirmDialogComponent.message = config.message;
|
86
|
-
if (config.acceptButton) {
|
87
|
-
confirmDialogComponent.acceptButton = config.acceptButton;
|
88
|
-
}
|
89
|
-
if (config.isDestructive) {
|
90
|
-
confirmDialogComponent.isDestructive = config.isDestructive;
|
91
|
-
}
|
92
|
-
if (config.cancelButton) {
|
93
|
-
confirmDialogComponent.cancelButton = config.cancelButton;
|
94
|
-
}
|
95
|
-
return dialogRef;
|
96
|
-
}
|
97
|
-
/**
|
98
|
-
* params:
|
99
|
-
* - config: IPromptConfig {
|
100
|
-
* message: string;
|
101
|
-
* title?: string;
|
102
|
-
* value?: string;
|
103
|
-
* viewContainerRef?: ViewContainerRef;
|
104
|
-
* acceptButton?: string;
|
105
|
-
* cancelButton?: string;
|
106
|
-
* }
|
107
|
-
*
|
108
|
-
* Opens a prompt dialog with the provided config.
|
109
|
-
* Returns an MatDialogRef<TdPromptDialogComponent> object.
|
110
|
-
*/
|
111
|
-
openPrompt(config) {
|
112
|
-
const dialogConfig = this._createConfig(config);
|
113
|
-
const dialogRef = this._dialogService.open(TdPromptDialogComponent, dialogConfig);
|
114
|
-
const promptDialogComponent = dialogRef.componentInstance;
|
115
|
-
promptDialogComponent.title = config.title;
|
116
|
-
promptDialogComponent.message = config.message;
|
117
|
-
promptDialogComponent.value = config.value;
|
118
|
-
if (config.acceptButton) {
|
119
|
-
promptDialogComponent.acceptButton = config.acceptButton;
|
120
|
-
}
|
121
|
-
if (config.cancelButton) {
|
122
|
-
promptDialogComponent.cancelButton = config.cancelButton;
|
123
|
-
}
|
124
|
-
return dialogRef;
|
125
|
-
}
|
126
|
-
/**
|
127
|
-
* Opens a draggable dialog containing the given component.
|
128
|
-
*/
|
129
|
-
openDraggable({ component, config, dragHandleSelectors, draggableClass, }) {
|
130
|
-
const matDialogRef = this._dialogService.open(component, config);
|
131
|
-
const dragRefSubject = new Subject();
|
132
|
-
const CDK_OVERLAY_PANE_SELECTOR = '.cdk-overlay-pane';
|
133
|
-
const CDK_OVERLAY_CONTAINER_SELECTOR = '.cdk-overlay-container';
|
134
|
-
matDialogRef.afterOpened().subscribe(() => {
|
135
|
-
const dialogElement = (this._document.getElementById(matDialogRef.id));
|
136
|
-
if (!dialogElement) {
|
137
|
-
return;
|
138
|
-
}
|
139
|
-
const draggableElement = this._dragDrop.createDrag(dialogElement);
|
140
|
-
if (draggableClass) {
|
141
|
-
const childComponent = dialogElement.firstElementChild;
|
142
|
-
this._renderer2.addClass(childComponent, draggableClass);
|
143
|
-
}
|
144
|
-
if (dragHandleSelectors && dragHandleSelectors.length) {
|
145
|
-
const dragHandles = dragHandleSelectors.reduce((acc, curr) => [
|
146
|
-
...acc,
|
147
|
-
...Array.from(dialogElement.querySelectorAll(curr)),
|
148
|
-
], []);
|
149
|
-
if (dragHandles.length > 0) {
|
150
|
-
draggableElement.withHandles(dragHandles);
|
151
|
-
}
|
152
|
-
}
|
153
|
-
const rootElement = dialogElement.closest(CDK_OVERLAY_PANE_SELECTOR);
|
154
|
-
if (rootElement) {
|
155
|
-
draggableElement.withRootElement(rootElement);
|
156
|
-
}
|
157
|
-
const boundaryElement = dialogElement.closest(CDK_OVERLAY_CONTAINER_SELECTOR);
|
158
|
-
if (boundaryElement) {
|
159
|
-
draggableElement.withBoundaryElement(boundaryElement);
|
160
|
-
}
|
161
|
-
dragRefSubject.next(draggableElement);
|
162
|
-
});
|
163
|
-
return { matDialogRef, dragRefSubject };
|
164
|
-
}
|
165
|
-
_createConfig(config) {
|
166
|
-
const dialogConfig = new MatDialogConfig();
|
167
|
-
dialogConfig.width = '400px';
|
168
|
-
Object.assign(dialogConfig, config);
|
169
|
-
return dialogConfig;
|
170
|
-
}
|
171
|
-
/**
|
172
|
-
* params:
|
173
|
-
* - config: IStatusConfig {
|
174
|
-
* closeButton?: string;
|
175
|
-
* details?: string;
|
176
|
-
* detailsLabels?: TdStatusDialogDetailsLabels;
|
177
|
-
* message: string;
|
178
|
-
* state?: 'error' | 'positive' | 'warning'
|
179
|
-
* title?: string;
|
180
|
-
* viewContainerRef?: ViewContainerRef;
|
181
|
-
* }
|
182
|
-
*
|
183
|
-
* Opens a status dialog with the provided config.
|
184
|
-
* Returns an MatDialogRef<TdStatusDialogComponent> object.
|
185
|
-
*/
|
186
|
-
openStatus(config) {
|
187
|
-
config.panelClass = 'td-status-dialog';
|
188
|
-
config.autoFocus = false;
|
189
|
-
config.width = '575px';
|
190
|
-
config.maxWidth = '96vw';
|
191
|
-
const dialogConfig = this._createConfig(config);
|
192
|
-
const dialogRef = this._dialogService.open(TdStatusDialogComponent, dialogConfig);
|
193
|
-
const statusDialogComponent = dialogRef.componentInstance;
|
194
|
-
statusDialogComponent.title = config.title;
|
195
|
-
statusDialogComponent.message = config.message;
|
196
|
-
statusDialogComponent.state = config.state;
|
197
|
-
statusDialogComponent.details = config.details;
|
198
|
-
if (config.detailsLabels) {
|
199
|
-
statusDialogComponent.detailsLabels = config.detailsLabels;
|
200
|
-
}
|
201
|
-
if (config.closeButton) {
|
202
|
-
statusDialogComponent.closeButton = config.closeButton;
|
203
|
-
}
|
204
|
-
return dialogRef;
|
205
|
-
}
|
206
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TdDialogService, deps: [{ token: DOCUMENT }, { token: i1.MatDialog }, { token: i2.DragDrop }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
207
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TdDialogService });
|
208
|
-
}
|
209
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TdDialogService, decorators: [{
|
210
|
-
type: Injectable
|
211
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
212
|
-
type: Inject,
|
213
|
-
args: [DOCUMENT]
|
214
|
-
}] }, { type: i1.MatDialog }, { type: i2.DragDrop }, { type: i0.RendererFactory2 }] });
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvZGlhbG9ncy9zcmMvc2VydmljZXMvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUNMLFNBQVMsRUFFVCxlQUFlLEdBQ2hCLE1BQU0sMEJBQTBCLENBQUM7QUFHbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFFBQVEsRUFBVyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFFTCx1QkFBdUIsR0FFeEIsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQTBDbEQsTUFBTSxPQUFPLGVBQWU7SUFJRTtJQUNsQjtJQUNBO0lBQ0E7SUFORixVQUFVLENBQVk7SUFFOUIsWUFDNEIsU0FBYyxFQUNoQyxjQUF5QixFQUN6QixTQUFtQixFQUNuQixlQUFpQztRQUhmLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQVc7UUFDekIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFFekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7OztP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QUFDO1FBQ3ZCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLE1BQU0sWUFBWSxHQUFvQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sU0FBUyxHQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2xFLE1BQU0scUJBQXFCLEdBQ3pCLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztRQUM5QixxQkFBcUIsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMzQyxxQkFBcUIsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMvQyxxQkFBcUIsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMzQyxxQkFBcUIsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMvQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QixxQkFBcUIsQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkIscUJBQXFCLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDekQsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7d0dBOU9VLGVBQWUsa0JBSWhCLFFBQVE7NEdBSlAsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1hdERpYWxvZyxcbiAgTWF0RGlhbG9nUmVmLFxuICBNYXREaWFsb2dDb25maWcsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbmltcG9ydCB7IFRkQWxlcnREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZENvbmZpcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGRQcm9tcHREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9wcm9tcHQtZGlhbG9nL3Byb21wdC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IERyYWdEcm9wLCBEcmFnUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBUZFN0YXR1c0RpYWxvZ1N0YXRlcyxcbiAgVGRTdGF0dXNEaWFsb2dDb21wb25lbnQsXG4gIFRkU3RhdHVzRGlhbG9nRGV0YWlsc0xhYmVscyxcbn0gZnJvbSAnLi4vc3RhdHVzLWRpYWxvZy9zdGF0dXMtZGlhbG9nLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpYWxvZ0NvbmZpZyBleHRlbmRzIE1hdERpYWxvZ0NvbmZpZyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFsZXJ0Q29uZmlnIGV4dGVuZHMgSURpYWxvZ0NvbmZpZyB7XG4gIGNsb3NlQnV0dG9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb25maXJtQ29uZmlnIGV4dGVuZHMgSURpYWxvZ0NvbmZpZyB7XG4gIGFjY2VwdEJ1dHRvbj86IHN0cmluZztcbiAgY2FuY2VsQnV0dG9uPzogc3RyaW5nO1xuICBpc0Rlc3RydWN0aXZlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUHJvbXB0Q29uZmlnIGV4dGVuZHMgSUNvbmZpcm1Db25maWcge1xuICB2YWx1ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU3RhdHVzQ29uZmlnIGV4dGVuZHMgSUFsZXJ0Q29uZmlnIHtcbiAgc3RhdGU/OiBUZFN0YXR1c0RpYWxvZ1N0YXRlcztcbiAgZGV0YWlscz86IHN0cmluZztcbiAgZGV0YWlsc0xhYmVscz86IFRkU3RhdHVzRGlhbG9nRGV0YWlsc0xhYmVscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRHJhZ2dhYmxlQ29uZmlnPFQ+IHtcbiAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+O1xuICBjb25maWc/OiBNYXREaWFsb2dDb25maWc7XG4gIC8vIENTUyBzZWxlY3RvcnMgb2YgZWxlbWVudChzKSBpbnNpZGUgdGhlIGNvbXBvbmVudCBtZWFudCB0byBiZSBkcmFnIGhhbmRsZShzKVxuICBkcmFnSGFuZGxlU2VsZWN0b3JzPzogc3RyaW5nW107XG4gIC8vIENsYXNzIHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgY29tcG9uZW50IHNpZ25pZnlpbmcgZHJhZy1hYmlsaXR5XG4gIGRyYWdnYWJsZUNsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEcmFnZ2FibGVSZWZzPFQ+IHtcbiAgbWF0RGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VD47XG4gIGRyYWdSZWZTdWJqZWN0OiBTdWJqZWN0PERyYWdSZWY+O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGREaWFsb2dTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfcmVuZGVyZXIyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IGFueSxcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBfZHJhZ0Ryb3A6IERyYWdEcm9wLFxuICAgIHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyXG4gICkge1xuICAgIHRoaXMuX3JlbmRlcmVyMiA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIG51bGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIHBhcmFtczpcbiAgICogLSBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD5cbiAgICogLSBjb25maWc6IE1hdERpYWxvZ0NvbmZpZ1xuICAgKiBXcmFwcGVyIGZ1bmN0aW9uIG92ZXIgdGhlIG9wZW4oKSBtZXRob2QgaW4gTWF0RGlhbG9nLlxuICAgKiBPcGVucyBhIG1vZGFsIGRpYWxvZyBjb250YWluaW5nIHRoZSBnaXZlbiBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3BlbjxUPihcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4sXG4gICAgY29uZmlnPzogTWF0RGlhbG9nQ29uZmlnXG4gICk6IE1hdERpYWxvZ1JlZjxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbihjb21wb25lbnQsIGNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciBmdW5jdGlvbiBvdmVyIHRoZSBjbG9zZUFsbCgpIG1ldGhvZCBpbiBNYXREaWFsb2cuXG4gICAqIENsb3NlcyBhbGwgb2YgdGhlIGN1cnJlbnRseS1vcGVuIGRpYWxvZ3MuXG4gICAqL1xuICBwdWJsaWMgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nU2VydmljZS5jbG9zZUFsbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHBhcmFtczpcbiAgICogLSBjb25maWc6IElBbGVydENvbmZpZyB7XG4gICAqICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAqICAgICB0aXRsZT86IHN0cmluZztcbiAgICogICAgIHZpZXdDb250YWluZXJSZWY/OiBWaWV3Q29udGFpbmVyUmVmO1xuICAgKiAgICAgY2xvc2VCdXR0b24/OiBzdHJpbmc7XG4gICAqIH1cbiAgICpcbiAgICogT3BlbnMgYW4gYWxlcnQgZGlhbG9nIHdpdGggdGhlIHByb3ZpZGVkIGNvbmZpZy5cbiAgICogUmV0dXJucyBhbiBNYXREaWFsb2dSZWY8VGRBbGVydERpYWxvZ0NvbXBvbmVudD4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIG9wZW5BbGVydChjb25maWc6IElBbGVydENvbmZpZyk6IE1hdERpYWxvZ1JlZjxUZEFsZXJ0RGlhbG9nQ29tcG9uZW50PiB7XG4gICAgY29uc3QgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWcgPSB0aGlzLl9jcmVhdGVDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUZEFsZXJ0RGlhbG9nQ29tcG9uZW50PiA9XG4gICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oVGRBbGVydERpYWxvZ0NvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcbiAgICBjb25zdCBhbGVydERpYWxvZ0NvbXBvbmVudDogVGRBbGVydERpYWxvZ0NvbXBvbmVudCA9XG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgYWxlcnREaWFsb2dDb21wb25lbnQudGl0bGUgPSBjb25maWcudGl0bGU7XG4gICAgYWxlcnREaWFsb2dDb21wb25lbnQubWVzc2FnZSA9IGNvbmZpZy5tZXNzYWdlO1xuICAgIGlmIChjb25maWcuY2xvc2VCdXR0b24pIHtcbiAgICAgIGFsZXJ0RGlhbG9nQ29tcG9uZW50LmNsb3NlQnV0dG9uID0gY29uZmlnLmNsb3NlQnV0dG9uO1xuICAgIH1cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIHBhcmFtczpcbiAgICogLSBjb25maWc6IElDb25maXJtQ29uZmlnIHtcbiAgICogICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICogICAgIHRpdGxlPzogc3RyaW5nO1xuICAgKiAgICAgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG4gICAqICAgICBhY2NlcHRCdXR0b24/OiBzdHJpbmc7XG4gICAqICAgICBjYW5jZWxCdXR0b24/OiBzdHJpbmc7XG4gICAqICAgICBpc0Rlc3RydWN0aXZlPzogYm9vbGVhbjtcbiAgICogfVxuICAgKlxuICAgKiBPcGVucyBhIGNvbmZpcm0gZGlhbG9nIHdpdGggdGhlIHByb3ZpZGVkIGNvbmZpZy5cbiAgICogUmV0dXJucyBhbiBNYXREaWFsb2dSZWY8VGRDb25maXJtRGlhbG9nQ29tcG9uZW50PiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgb3BlbkNvbmZpcm0oXG4gICAgY29uZmlnOiBJQ29uZmlybUNvbmZpZ1xuICApOiBNYXREaWFsb2dSZWY8VGRDb25maXJtRGlhbG9nQ29tcG9uZW50PiB7XG4gICAgY29uc3QgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWcgPSB0aGlzLl9jcmVhdGVDb25maWcoY29uZmlnKTtcbiAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUZENvbmZpcm1EaWFsb2dDb21wb25lbnQ+ID1cbiAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihUZENvbmZpcm1EaWFsb2dDb21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XG4gICAgY29uc3QgY29uZmlybURpYWxvZ0NvbXBvbmVudDogVGRDb25maXJtRGlhbG9nQ29tcG9uZW50ID1cbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZTtcbiAgICBjb25maXJtRGlhbG9nQ29tcG9uZW50LnRpdGxlID0gY29uZmlnLnRpdGxlO1xuICAgIGNvbmZpcm1EaWFsb2dDb21wb25lbnQubWVzc2FnZSA9IGNvbmZpZy5tZXNzYWdlO1xuICAgIGlmIChjb25maWcuYWNjZXB0QnV0dG9uKSB7XG4gICAgICBjb25maXJtRGlhbG9nQ29tcG9uZW50LmFjY2VwdEJ1dHRvbiA9IGNvbmZpZy5hY2NlcHRCdXR0b247XG4gICAgfVxuICAgIGlmIChjb25maWcuaXNEZXN0cnVjdGl2ZSkge1xuICAgICAgY29uZmlybURpYWxvZ0NvbXBvbmVudC5pc0Rlc3RydWN0aXZlID0gY29uZmlnLmlzRGVzdHJ1Y3RpdmU7XG4gICAgfVxuICAgIGlmIChjb25maWcuY2FuY2VsQnV0dG9uKSB7XG4gICAgICBjb25maXJtRGlhbG9nQ29tcG9uZW50LmNhbmNlbEJ1dHRvbiA9IGNvbmZpZy5jYW5jZWxCdXR0b247XG4gICAgfVxuICAgIHJldHVybiBkaWFsb2dSZWY7XG4gIH1cblxuICAvKipcbiAgICogcGFyYW1zOlxuICAgKiAtIGNvbmZpZzogSVByb21wdENvbmZpZyB7XG4gICAqICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAqICAgICB0aXRsZT86IHN0cmluZztcbiAgICogICAgIHZhbHVlPzogc3RyaW5nO1xuICAgKiAgICAgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG4gICAqICAgICBhY2NlcHRCdXR0b24/OiBzdHJpbmc7XG4gICAqICAgICBjYW5jZWxCdXR0b24/OiBzdHJpbmc7XG4gICAqIH1cbiAgICpcbiAgICogT3BlbnMgYSBwcm9tcHQgZGlhbG9nIHdpdGggdGhlIHByb3ZpZGVkIGNvbmZpZy5cbiAgICogUmV0dXJucyBhbiBNYXREaWFsb2dSZWY8VGRQcm9tcHREaWFsb2dDb21wb25lbnQ+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBvcGVuUHJvbXB0KFxuICAgIGNvbmZpZzogSVByb21wdENvbmZpZ1xuICApOiBNYXREaWFsb2dSZWY8VGRQcm9tcHREaWFsb2dDb21wb25lbnQ+IHtcbiAgICBjb25zdCBkaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZyA9IHRoaXMuX2NyZWF0ZUNvbmZpZyhjb25maWcpO1xuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRkUHJvbXB0RGlhbG9nQ29tcG9uZW50PiA9XG4gICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oVGRQcm9tcHREaWFsb2dDb21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XG4gICAgY29uc3QgcHJvbXB0RGlhbG9nQ29tcG9uZW50OiBUZFByb21wdERpYWxvZ0NvbXBvbmVudCA9XG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgcHJvbXB0RGlhbG9nQ29tcG9uZW50LnRpdGxlID0gY29uZmlnLnRpdGxlO1xuICAgIHByb21wdERpYWxvZ0NvbXBvbmVudC5tZXNzYWdlID0gY29uZmlnLm1lc3NhZ2U7XG4gICAgcHJvbXB0RGlhbG9nQ29tcG9uZW50LnZhbHVlID0gY29uZmlnLnZhbHVlO1xuICAgIGlmIChjb25maWcuYWNjZXB0QnV0dG9uKSB7XG4gICAgICBwcm9tcHREaWFsb2dDb21wb25lbnQuYWNjZXB0QnV0dG9uID0gY29uZmlnLmFjY2VwdEJ1dHRvbjtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5jYW5jZWxCdXR0b24pIHtcbiAgICAgIHByb21wdERpYWxvZ0NvbXBvbmVudC5jYW5jZWxCdXR0b24gPSBjb25maWcuY2FuY2VsQnV0dG9uO1xuICAgIH1cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgZHJhZ2dhYmxlIGRpYWxvZyBjb250YWluaW5nIHRoZSBnaXZlbiBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgb3BlbkRyYWdnYWJsZTxUPih7XG4gICAgY29tcG9uZW50LFxuICAgIGNvbmZpZyxcbiAgICBkcmFnSGFuZGxlU2VsZWN0b3JzLFxuICAgIGRyYWdnYWJsZUNsYXNzLFxuICB9OiBJRHJhZ2dhYmxlQ29uZmlnPFQ+KTogSURyYWdnYWJsZVJlZnM8VD4ge1xuICAgIGNvbnN0IG1hdERpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFQsIGFueT4gPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oXG4gICAgICBjb21wb25lbnQsXG4gICAgICBjb25maWdcbiAgICApO1xuICAgIGNvbnN0IGRyYWdSZWZTdWJqZWN0OiBTdWJqZWN0PERyYWdSZWY+ID0gbmV3IFN1YmplY3Q8RHJhZ1JlZj4oKTtcblxuICAgIGNvbnN0IENES19PVkVSTEFZX1BBTkVfU0VMRUNUT1IgPSAnLmNkay1vdmVybGF5LXBhbmUnO1xuICAgIGNvbnN0IENES19PVkVSTEFZX0NPTlRBSU5FUl9TRUxFQ1RPUiA9ICcuY2RrLW92ZXJsYXktY29udGFpbmVyJztcblxuICAgIG1hdERpYWxvZ1JlZi5hZnRlck9wZW5lZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBkaWFsb2dFbGVtZW50OiBIVE1MRWxlbWVudCA9IDxIVE1MRWxlbWVudD4oXG4gICAgICAgIHRoaXMuX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1hdERpYWxvZ1JlZi5pZClcbiAgICAgICk7XG5cbiAgICAgIGlmICghZGlhbG9nRWxlbWVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRyYWdnYWJsZUVsZW1lbnQ6IERyYWdSZWYgPVxuICAgICAgICB0aGlzLl9kcmFnRHJvcC5jcmVhdGVEcmFnKGRpYWxvZ0VsZW1lbnQpO1xuXG4gICAgICBpZiAoZHJhZ2dhYmxlQ2xhc3MpIHtcbiAgICAgICAgY29uc3QgY2hpbGRDb21wb25lbnQgPSBkaWFsb2dFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkO1xuICAgICAgICB0aGlzLl9yZW5kZXJlcjIuYWRkQ2xhc3MoY2hpbGRDb21wb25lbnQsIGRyYWdnYWJsZUNsYXNzKTtcbiAgICAgIH1cbiAgICAgIGlmIChkcmFnSGFuZGxlU2VsZWN0b3JzICYmIGRyYWdIYW5kbGVTZWxlY3RvcnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGRyYWdIYW5kbGVzOiBFbGVtZW50W10gPSBkcmFnSGFuZGxlU2VsZWN0b3JzLnJlZHVjZShcbiAgICAgICAgICAoYWNjOiBFbGVtZW50W10sIGN1cnI6IHN0cmluZykgPT4gW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgLi4uQXJyYXkuZnJvbShkaWFsb2dFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoY3VycikpLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgW11cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGRyYWdIYW5kbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBkcmFnZ2FibGVFbGVtZW50LndpdGhIYW5kbGVzKDxIVE1MRWxlbWVudFtdPmRyYWdIYW5kbGVzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgcm9vdEVsZW1lbnQgPSBkaWFsb2dFbGVtZW50LmNsb3Nlc3QoQ0RLX09WRVJMQVlfUEFORV9TRUxFQ1RPUik7XG4gICAgICBpZiAocm9vdEVsZW1lbnQpIHtcbiAgICAgICAgZHJhZ2dhYmxlRWxlbWVudC53aXRoUm9vdEVsZW1lbnQoPEhUTUxFbGVtZW50PnJvb3RFbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYm91bmRhcnlFbGVtZW50ID0gZGlhbG9nRWxlbWVudC5jbG9zZXN0KFxuICAgICAgICBDREtfT1ZFUkxBWV9DT05UQUlORVJfU0VMRUNUT1JcbiAgICAgICk7XG4gICAgICBpZiAoYm91bmRhcnlFbGVtZW50KSB7XG4gICAgICAgIGRyYWdnYWJsZUVsZW1lbnQud2l0aEJvdW5kYXJ5RWxlbWVudCg8SFRNTEVsZW1lbnQ+Ym91bmRhcnlFbGVtZW50KTtcbiAgICAgIH1cbiAgICAgIGRyYWdSZWZTdWJqZWN0Lm5leHQoZHJhZ2dhYmxlRWxlbWVudCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4geyBtYXREaWFsb2dSZWYsIGRyYWdSZWZTdWJqZWN0IH07XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVDb25maWcoY29uZmlnOiBJRGlhbG9nQ29uZmlnKTogTWF0RGlhbG9nQ29uZmlnIHtcbiAgICBjb25zdCBkaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcbiAgICBkaWFsb2dDb25maWcud2lkdGggPSAnNDAwcHgnO1xuICAgIE9iamVjdC5hc3NpZ24oZGlhbG9nQ29uZmlnLCBjb25maWcpO1xuICAgIHJldHVybiBkaWFsb2dDb25maWc7XG4gIH1cblxuICAvKipcbiAgICogcGFyYW1zOlxuICAgKiAtIGNvbmZpZzogSVN0YXR1c0NvbmZpZyB7XG4gICAqICAgICBjbG9zZUJ1dHRvbj86IHN0cmluZztcbiAgICogICAgIGRldGFpbHM/OiBzdHJpbmc7XG4gICAqICAgICBkZXRhaWxzTGFiZWxzPzogVGRTdGF0dXNEaWFsb2dEZXRhaWxzTGFiZWxzO1xuICAgKiAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgKiAgICAgc3RhdGU/OiAnZXJyb3InIHwgJ3Bvc2l0aXZlJyB8ICd3YXJuaW5nJ1xuICAgKiAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAqICAgICB2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZjtcbiAgICogfVxuICAgKlxuICAgKiBPcGVucyBhIHN0YXR1cyBkaWFsb2cgd2l0aCB0aGUgcHJvdmlkZWQgY29uZmlnLlxuICAgKiBSZXR1cm5zIGFuIE1hdERpYWxvZ1JlZjxUZFN0YXR1c0RpYWxvZ0NvbXBvbmVudD4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIG9wZW5TdGF0dXMoXG4gICAgY29uZmlnOiBJU3RhdHVzQ29uZmlnXG4gICk6IE1hdERpYWxvZ1JlZjxUZFN0YXR1c0RpYWxvZ0NvbXBvbmVudD4ge1xuICAgIGNvbmZpZy5wYW5lbENsYXNzID0gJ3RkLXN0YXR1cy1kaWFsb2cnO1xuICAgIGNvbmZpZy5hdXRvRm9jdXMgPSBmYWxzZTtcbiAgICBjb25maWcud2lkdGggPSAnNTc1cHgnO1xuICAgIGNvbmZpZy5tYXhXaWR0aCA9ICc5NnZ3JztcbiAgICBjb25zdCBkaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZyA9IHRoaXMuX2NyZWF0ZUNvbmZpZyhjb25maWcpO1xuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRkU3RhdHVzRGlhbG9nQ29tcG9uZW50PiA9XG4gICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oVGRTdGF0dXNEaWFsb2dDb21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XG4gICAgY29uc3Qgc3RhdHVzRGlhbG9nQ29tcG9uZW50OiBUZFN0YXR1c0RpYWxvZ0NvbXBvbmVudCA9XG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgc3RhdHVzRGlhbG9nQ29tcG9uZW50LnRpdGxlID0gY29uZmlnLnRpdGxlO1xuICAgIHN0YXR1c0RpYWxvZ0NvbXBvbmVudC5tZXNzYWdlID0gY29uZmlnLm1lc3NhZ2U7XG4gICAgc3RhdHVzRGlhbG9nQ29tcG9uZW50LnN0YXRlID0gY29uZmlnLnN0YXRlO1xuICAgIHN0YXR1c0RpYWxvZ0NvbXBvbmVudC5kZXRhaWxzID0gY29uZmlnLmRldGFpbHM7XG4gICAgaWYgKGNvbmZpZy5kZXRhaWxzTGFiZWxzKSB7XG4gICAgICBzdGF0dXNEaWFsb2dDb21wb25lbnQuZGV0YWlsc0xhYmVscyA9IGNvbmZpZy5kZXRhaWxzTGFiZWxzO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmNsb3NlQnV0dG9uKSB7XG4gICAgICBzdGF0dXNEaWFsb2dDb21wb25lbnQuY2xvc2VCdXR0b24gPSBjb25maWcuY2xvc2VCdXR0b247XG4gICAgfVxuICAgIHJldHVybiBkaWFsb2dSZWY7XG4gIH1cbn1cbiJdfQ==
|
@@ -1,55 +0,0 @@
|
|
1
|
-
import { Component } from '@angular/core';
|
2
|
-
import { MatDialogRef } from '@angular/material/dialog';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "@angular/material/dialog";
|
5
|
-
import * as i2 from "@angular/common";
|
6
|
-
import * as i3 from "@angular/material/button";
|
7
|
-
import * as i4 from "@angular/material/icon";
|
8
|
-
import * as i5 from "../dialog.component";
|
9
|
-
export class TdStatusDialogComponent {
|
10
|
-
_dialogRef;
|
11
|
-
// Label of the close button in the footer
|
12
|
-
closeButton = 'CLOSE';
|
13
|
-
// Message to be displayed in the dialog
|
14
|
-
message;
|
15
|
-
// State of the status dialog
|
16
|
-
state = 'error';
|
17
|
-
// Title of the status dialog
|
18
|
-
title;
|
19
|
-
// Additional details to be displayed after the dialog message
|
20
|
-
details;
|
21
|
-
// Toggles the additional details section
|
22
|
-
showDetails = false;
|
23
|
-
// Labels for the toggle details link
|
24
|
-
detailsLabels = {
|
25
|
-
showDetailsLabel: 'Show details',
|
26
|
-
hideDetailsLabel: 'Hide details',
|
27
|
-
};
|
28
|
-
constructor(_dialogRef) {
|
29
|
-
this._dialogRef = _dialogRef;
|
30
|
-
}
|
31
|
-
close() {
|
32
|
-
this._dialogRef.close();
|
33
|
-
}
|
34
|
-
getStatusIcon() {
|
35
|
-
switch (this.state) {
|
36
|
-
case 'positive':
|
37
|
-
return 'check';
|
38
|
-
case 'error':
|
39
|
-
case 'warning':
|
40
|
-
return this.state;
|
41
|
-
default:
|
42
|
-
return 'error';
|
43
|
-
}
|
44
|
-
}
|
45
|
-
toggleDetails() {
|
46
|
-
this.showDetails = !this.showDetails;
|
47
|
-
}
|
48
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TdStatusDialogComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
49
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: TdStatusDialogComponent, selector: "td-status-dialog", ngImport: i0, template: "<td-dialog class=\"td-status-dialog\">\n <!-- Displays the icon and background color according to the state -->\n <div tdDialogStatus class=\"td-status-dialog-state\" [ngClass]=\"state\">\n <mat-icon>\n {{ getStatusIcon() }}\n </mat-icon>\n </div>\n <!-- Dialog title and the close icon -->\n <ng-container tdDialogTitle>\n <div class=\"td-status-dialog-title\">\n <span *ngIf=\"title\" class=\"\">{{ title }}</span>\n <button\n mat-icon-button\n class=\"td-status-dialog__icon-button\"\n (click)=\"close()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </ng-container>\n <!-- Dialog content with additonal information -->\n <ng-container tdDialogContent>\n <span class=\"td-dialog-message\">\n {{ message }}\n <div\n class=\"td-status-dialog__toggle-details\"\n role=\"button\"\n tabindex=\"0\"\n *ngIf=\"details\"\n (click)=\"toggleDetails()\"\n (keydown.enter)=\"toggleDetails()\"\n >\n {{\n showDetails\n ? detailsLabels?.hideDetailsLabel\n : detailsLabels?.showDetailsLabel\n }}\n <mat-icon\n [ngClass]=\"{\n 'td-status-dialog__arrow-icon': true,\n close: !showDetails,\n open: showDetails\n }\"\n >arrow_drop_down</mat-icon\n >\n </div>\n <div *ngIf=\"showDetails\">{{ details }}</div>\n </span>\n </ng-container>\n <ng-container tdDialogActions>\n <button\n mat-raised-button\n color=\"primary\"\n class=\"td-status-dialog___button\"\n (click)=\"close()\"\n >\n {{ closeButton }}\n </button>\n </ng-container>\n</td-dialog>\n", styles: ["::ng-deep .mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--cv-theme-surface-container-lowest);border-radius:12px}::ng-deep .td-status-dialog-title{align-items:flex-start;display:inline-flex;justify-content:space-between;width:100%;-webkit-font-smoothing:antialiased}::ng-deep .td-status-dialog-title :first-child{padding-right:40px}::ng-deep [mat-icon-button].td-status-dialog__icon-button{--mdc-icon-button-state-layer-size: 40px;padding:8px;position:absolute;right:8px;top:10px}::ng-deep .td-status-dialog___button{border-radius:8px}::ng-deep .mat-mdc-dialog-container .mdc-dialog__title{padding:18px 16px;line-height:var(--mdc-dialog-supporting-text-line-height)}::ng-deep .mat-mdc-dialog-container .mdc-dialog__title:before{display:none}::ng-deep .mat-mdc-icon-button .mat-mdc-button-base{padding:8px}::ng-deep .mdc-dialog .mdc-dialog__content{padding:0 16px;-webkit-font-smoothing:antialiased}::ng-deep .mdc-dialog__actions{padding:16px}.td-status-dialog{width:auto}.td-status-dialog:before{padding:14px 16px 0}.td-status-dialog .td-dialog-message{font-feature-settings:\"clig\" off,\"liga\" off;color:var(--cv-theme-on-surface-variant);line-height:var(--mdc-dialog-supporting-text-line-height)}.td-status-dialog-state{padding:14px 16px 0}.td-status-dialog-state .mat-icon{font-size:var(--mat-toolbar-title-text-line-height);height:var(--mat-toolbar-title-text-line-height);width:var(--mat-toolbar-title-text-line-height);font-variation-settings:\"FILL\" 1}.td-status-dialog-state.error{background-color:var(--cv-theme-negative-8)}.td-status-dialog-state.error .mat-icon{color:var(--cv-theme-negative)}.td-status-dialog-state.positive{background-color:var(--cv-theme-positive-8)}.td-status-dialog-state.positive .mat-icon{color:var(--cv-theme-positive)}.td-status-dialog-state.warning{background-color:var(--cv-theme-caution-8)}.td-status-dialog-state.warning .mat-icon{color:var(--cv-theme-caution)}.td-status-dialog__toggle-details{align-items:center;color:var(--cv-theme-primary);cursor:pointer;display:flex;font-size:var(--mat-expansion-container-text-size);letter-spacing:.25px;line-height:var(--mat-expansion-container-text-line-height);padding:16px 0}.td-status-dialog__arrow-icon{margin-top:2px}.td-status-dialog__arrow-icon.open{transform:rotate(0);transition:transform .25s ease-out}.td-status-dialog__arrow-icon.close{transform:rotate(180deg);transition:transform .25s ease-in}@media screen and (max-width: 480px){:host .td-status-dialog-state{padding:4px}:host .td-status-dialog-state .mat-icon{display:none}:host .td-status-dialog-state.error{background-color:var(--cv-theme-negative)}:host .td-status-dialog-state.positive{background-color:var(--cv-theme-positive)}:host .td-status-dialog-state.warning{background-color:var(--cv-theme-caution)}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.TdDialogComponent, selector: "td-dialog" }, { kind: "directive", type: i5.TdDialogStatusDirective, selector: "[tdDialogStatus]" }, { kind: "directive", type: i5.TdDialogTitleDirective, selector: "[tdDialogTitle]" }, { kind: "directive", type: i5.TdDialogActionsDirective, selector: "[tdDialogActions]" }, { kind: "directive", type: i5.TdDialogContentDirective, selector: "[tdDialogContent]" }] });
|
50
|
-
}
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TdStatusDialogComponent, decorators: [{
|
52
|
-
type: Component,
|
53
|
-
args: [{ selector: 'td-status-dialog', template: "<td-dialog class=\"td-status-dialog\">\n <!-- Displays the icon and background color according to the state -->\n <div tdDialogStatus class=\"td-status-dialog-state\" [ngClass]=\"state\">\n <mat-icon>\n {{ getStatusIcon() }}\n </mat-icon>\n </div>\n <!-- Dialog title and the close icon -->\n <ng-container tdDialogTitle>\n <div class=\"td-status-dialog-title\">\n <span *ngIf=\"title\" class=\"\">{{ title }}</span>\n <button\n mat-icon-button\n class=\"td-status-dialog__icon-button\"\n (click)=\"close()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </div>\n </ng-container>\n <!-- Dialog content with additonal information -->\n <ng-container tdDialogContent>\n <span class=\"td-dialog-message\">\n {{ message }}\n <div\n class=\"td-status-dialog__toggle-details\"\n role=\"button\"\n tabindex=\"0\"\n *ngIf=\"details\"\n (click)=\"toggleDetails()\"\n (keydown.enter)=\"toggleDetails()\"\n >\n {{\n showDetails\n ? detailsLabels?.hideDetailsLabel\n : detailsLabels?.showDetailsLabel\n }}\n <mat-icon\n [ngClass]=\"{\n 'td-status-dialog__arrow-icon': true,\n close: !showDetails,\n open: showDetails\n }\"\n >arrow_drop_down</mat-icon\n >\n </div>\n <div *ngIf=\"showDetails\">{{ details }}</div>\n </span>\n </ng-container>\n <ng-container tdDialogActions>\n <button\n mat-raised-button\n color=\"primary\"\n class=\"td-status-dialog___button\"\n (click)=\"close()\"\n >\n {{ closeButton }}\n </button>\n </ng-container>\n</td-dialog>\n", styles: ["::ng-deep .mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--cv-theme-surface-container-lowest);border-radius:12px}::ng-deep .td-status-dialog-title{align-items:flex-start;display:inline-flex;justify-content:space-between;width:100%;-webkit-font-smoothing:antialiased}::ng-deep .td-status-dialog-title :first-child{padding-right:40px}::ng-deep [mat-icon-button].td-status-dialog__icon-button{--mdc-icon-button-state-layer-size: 40px;padding:8px;position:absolute;right:8px;top:10px}::ng-deep .td-status-dialog___button{border-radius:8px}::ng-deep .mat-mdc-dialog-container .mdc-dialog__title{padding:18px 16px;line-height:var(--mdc-dialog-supporting-text-line-height)}::ng-deep .mat-mdc-dialog-container .mdc-dialog__title:before{display:none}::ng-deep .mat-mdc-icon-button .mat-mdc-button-base{padding:8px}::ng-deep .mdc-dialog .mdc-dialog__content{padding:0 16px;-webkit-font-smoothing:antialiased}::ng-deep .mdc-dialog__actions{padding:16px}.td-status-dialog{width:auto}.td-status-dialog:before{padding:14px 16px 0}.td-status-dialog .td-dialog-message{font-feature-settings:\"clig\" off,\"liga\" off;color:var(--cv-theme-on-surface-variant);line-height:var(--mdc-dialog-supporting-text-line-height)}.td-status-dialog-state{padding:14px 16px 0}.td-status-dialog-state .mat-icon{font-size:var(--mat-toolbar-title-text-line-height);height:var(--mat-toolbar-title-text-line-height);width:var(--mat-toolbar-title-text-line-height);font-variation-settings:\"FILL\" 1}.td-status-dialog-state.error{background-color:var(--cv-theme-negative-8)}.td-status-dialog-state.error .mat-icon{color:var(--cv-theme-negative)}.td-status-dialog-state.positive{background-color:var(--cv-theme-positive-8)}.td-status-dialog-state.positive .mat-icon{color:var(--cv-theme-positive)}.td-status-dialog-state.warning{background-color:var(--cv-theme-caution-8)}.td-status-dialog-state.warning .mat-icon{color:var(--cv-theme-caution)}.td-status-dialog__toggle-details{align-items:center;color:var(--cv-theme-primary);cursor:pointer;display:flex;font-size:var(--mat-expansion-container-text-size);letter-spacing:.25px;line-height:var(--mat-expansion-container-text-line-height);padding:16px 0}.td-status-dialog__arrow-icon{margin-top:2px}.td-status-dialog__arrow-icon.open{transform:rotate(0);transition:transform .25s ease-out}.td-status-dialog__arrow-icon.close{transform:rotate(180deg);transition:transform .25s ease-in}@media screen and (max-width: 480px){:host .td-status-dialog-state{padding:4px}:host .td-status-dialog-state .mat-icon{display:none}:host .td-status-dialog-state.error{background-color:var(--cv-theme-negative)}:host .td-status-dialog-state.positive{background-color:var(--cv-theme-positive)}:host .td-status-dialog-state.warning{background-color:var(--cv-theme-caution)}}\n"] }]
|
54
|
-
}], ctorParameters: () => [{ type: i1.MatDialogRef }] });
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvZGlhbG9ncy9zcmMvc3RhdHVzLWRpYWxvZy9zdGF0dXMtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9kaWFsb2dzL3NyYy9zdGF0dXMtZGlhbG9nL3N0YXR1cy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFjeEQsTUFBTSxPQUFPLHVCQUF1QjtJQW1CZDtJQWxCcEIsMENBQTBDO0lBQzFDLFdBQVcsR0FBWSxPQUFPLENBQUM7SUFDL0Isd0NBQXdDO0lBQ3hDLE9BQU8sQ0FBVTtJQUNqQiw2QkFBNkI7SUFDN0IsS0FBSyxHQUEwQixPQUFPLENBQUM7SUFDdkMsNkJBQTZCO0lBQzdCLEtBQUssQ0FBVTtJQUNmLDhEQUE4RDtJQUM5RCxPQUFPLENBQVU7SUFDakIseUNBQXlDO0lBQ3pDLFdBQVcsR0FBSSxLQUFLLENBQUM7SUFDckIscUNBQXFDO0lBQ3JDLGFBQWEsR0FBaUM7UUFDNUMsZ0JBQWdCLEVBQUUsY0FBYztRQUNoQyxnQkFBZ0IsRUFBRSxjQUFjO0tBQ2pDLENBQUM7SUFFRixZQUFvQixVQUFpRDtRQUFqRCxlQUFVLEdBQVYsVUFBVSxDQUF1QztJQUFHLENBQUM7SUFFekUsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWE7UUFDWCxRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxPQUFPLENBQUM7WUFDakIsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3BCO2dCQUNFLE9BQU8sT0FBTyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7d0dBdkNVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLHdEQ2ZwQyxtdERBNERBOzs0RkQ3Q2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuZXhwb3J0IHR5cGUgVGRTdGF0dXNEaWFsb2dTdGF0ZXMgPSAnZXJyb3InIHwgJ3Bvc2l0aXZlJyB8ICd3YXJuaW5nJztcblxuZXhwb3J0IHR5cGUgVGRTdGF0dXNEaWFsb2dEZXRhaWxzTGFiZWxzID0ge1xuICBzaG93RGV0YWlsc0xhYmVsOiBzdHJpbmc7XG4gIGhpZGVEZXRhaWxzTGFiZWw6IHN0cmluZztcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLXN0YXR1cy1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RhdHVzLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0YXR1cy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRTdGF0dXNEaWFsb2dDb21wb25lbnQge1xuICAvLyBMYWJlbCBvZiB0aGUgY2xvc2UgYnV0dG9uIGluIHRoZSBmb290ZXJcbiAgY2xvc2VCdXR0b24/OiBzdHJpbmcgPSAnQ0xPU0UnO1xuICAvLyBNZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZGlhbG9nXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG4gIC8vIFN0YXRlIG9mIHRoZSBzdGF0dXMgZGlhbG9nXG4gIHN0YXRlPzogVGRTdGF0dXNEaWFsb2dTdGF0ZXMgPSAnZXJyb3InO1xuICAvLyBUaXRsZSBvZiB0aGUgc3RhdHVzIGRpYWxvZ1xuICB0aXRsZT86IHN0cmluZztcbiAgLy8gQWRkaXRpb25hbCBkZXRhaWxzIHRvIGJlIGRpc3BsYXllZCBhZnRlciB0aGUgZGlhbG9nIG1lc3NhZ2VcbiAgZGV0YWlscz86IHN0cmluZztcbiAgLy8gVG9nZ2xlcyB0aGUgYWRkaXRpb25hbCBkZXRhaWxzIHNlY3Rpb25cbiAgc2hvd0RldGFpbHM/ID0gZmFsc2U7XG4gIC8vIExhYmVscyBmb3IgdGhlIHRvZ2dsZSBkZXRhaWxzIGxpbmtcbiAgZGV0YWlsc0xhYmVscz86IFRkU3RhdHVzRGlhbG9nRGV0YWlsc0xhYmVscyA9IHtcbiAgICBzaG93RGV0YWlsc0xhYmVsOiAnU2hvdyBkZXRhaWxzJyxcbiAgICBoaWRlRGV0YWlsc0xhYmVsOiAnSGlkZSBkZXRhaWxzJyxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUZFN0YXR1c0RpYWxvZ0NvbXBvbmVudD4pIHt9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cblxuICBnZXRTdGF0dXNJY29uKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICBjYXNlICdwb3NpdGl2ZSc6XG4gICAgICAgIHJldHVybiAnY2hlY2snO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdlcnJvcic7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRGV0YWlscygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEZXRhaWxzID0gIXRoaXMuc2hvd0RldGFpbHM7XG4gIH1cbn1cbiIsIjx0ZC1kaWFsb2cgY2xhc3M9XCJ0ZC1zdGF0dXMtZGlhbG9nXCI+XG4gIDwhLS0gRGlzcGxheXMgdGhlIGljb24gYW5kIGJhY2tncm91bmQgY29sb3IgYWNjb3JkaW5nIHRvIHRoZSBzdGF0ZSAtLT5cbiAgPGRpdiB0ZERpYWxvZ1N0YXR1cyBjbGFzcz1cInRkLXN0YXR1cy1kaWFsb2ctc3RhdGVcIiBbbmdDbGFzc109XCJzdGF0ZVwiPlxuICAgIDxtYXQtaWNvbj5cbiAgICAgIHt7IGdldFN0YXR1c0ljb24oKSB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvZGl2PlxuICA8IS0tIERpYWxvZyB0aXRsZSBhbmQgdGhlIGNsb3NlIGljb24gLS0+XG4gIDxuZy1jb250YWluZXIgdGREaWFsb2dUaXRsZT5cbiAgICA8ZGl2IGNsYXNzPVwidGQtc3RhdHVzLWRpYWxvZy10aXRsZVwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJ0aXRsZVwiIGNsYXNzPVwiXCI+e3sgdGl0bGUgfX08L3NwYW4+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBjbGFzcz1cInRkLXN0YXR1cy1kaWFsb2dfX2ljb24tYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tIERpYWxvZyBjb250ZW50IHdpdGggYWRkaXRvbmFsIGluZm9ybWF0aW9uIC0tPlxuICA8bmctY29udGFpbmVyIHRkRGlhbG9nQ29udGVudD5cbiAgICA8c3BhbiBjbGFzcz1cInRkLWRpYWxvZy1tZXNzYWdlXCI+XG4gICAgICB7eyBtZXNzYWdlIH19XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGQtc3RhdHVzLWRpYWxvZ19fdG9nZ2xlLWRldGFpbHNcIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgKm5nSWY9XCJkZXRhaWxzXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURldGFpbHMoKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cInRvZ2dsZURldGFpbHMoKVwiXG4gICAgICA+XG4gICAgICAgIHt7XG4gICAgICAgICAgc2hvd0RldGFpbHNcbiAgICAgICAgICAgID8gZGV0YWlsc0xhYmVscz8uaGlkZURldGFpbHNMYWJlbFxuICAgICAgICAgICAgOiBkZXRhaWxzTGFiZWxzPy5zaG93RGV0YWlsc0xhYmVsXG4gICAgICAgIH19XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICd0ZC1zdGF0dXMtZGlhbG9nX19hcnJvdy1pY29uJzogdHJ1ZSxcbiAgICAgICAgICAgIGNsb3NlOiAhc2hvd0RldGFpbHMsXG4gICAgICAgICAgICBvcGVuOiBzaG93RGV0YWlsc1xuICAgICAgICAgIH1cIlxuICAgICAgICAgID5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dEZXRhaWxzXCI+e3sgZGV0YWlscyB9fTwvZGl2PlxuICAgIDwvc3Bhbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgdGREaWFsb2dBY3Rpb25zPlxuICAgIDxidXR0b25cbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgY2xhc3M9XCJ0ZC1zdGF0dXMtZGlhbG9nX19fYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICA+XG4gICAgICB7eyBjbG9zZUJ1dHRvbiB9fVxuICAgIDwvYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvdGQtZGlhbG9nPlxuIl19
|