btv-base-controls 0.1.29 → 0.1.30
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/esm2022/btv-base-controls.mjs +5 -0
- package/esm2022/lib/basic.module.mjs +64 -0
- package/esm2022/lib/blink-message/blink-message.component.mjs +54 -0
- package/esm2022/lib/btv-icon-button/btv-counter-button.mjs +47 -0
- package/esm2022/lib/btv-icon-button/btv-icon-button.component.mjs +91 -0
- package/esm2022/lib/btv-progress/btv-progress.component.mjs +71 -0
- package/esm2022/lib/btv-search/btv-search.component.mjs +82 -0
- package/esm2022/lib/btv-search/index.mjs +2 -0
- package/esm2022/lib/busy-indicator/busy-indicator.component.mjs +16 -0
- package/esm2022/lib/custom-tool-tip/custom-tool-tip.component.mjs +34 -0
- package/esm2022/lib/custom-tool-tip/tool-tip-renderer.directive.mjs +113 -0
- package/esm2022/lib/illustration/illustration.component.mjs +17 -0
- package/esm2022/lib/wm-avatar/avatar.component.mjs +175 -0
- package/esm2022/lib/wm-back-btn/wm-back-btn.component.mjs +26 -0
- package/esm2022/lib/wm-beta-text/wm-beta-text.component.mjs +19 -0
- package/esm2022/lib/wm-info/info-models.mjs +14 -0
- package/esm2022/lib/wm-info/wm-info.component.mjs +239 -0
- package/esm2022/lib/wm-info-card/wm-info-card.component.mjs +23 -0
- package/esm2022/lib/wm-no-content/wm-no-content.component.mjs +30 -0
- package/esm2022/lib/wm-panel-bar/wm-panel-bar.component.mjs +81 -0
- package/esm2022/lib/wm-scalable-div/scalable-div.component.mjs +105 -0
- package/esm2022/lib/wm-spinner/wm-spinner.component.mjs +135 -0
- package/esm2022/lib/wm-state-icon/wm-state-icon.component.mjs +18 -0
- package/esm2022/lib/wm-tag/wm-tag.component.mjs +28 -0
- package/esm2022/lib/wm-tamplate-image/wm-template-image.component.mjs +71 -0
- package/esm2022/lib/wm-toggle/wm-toggle.component.mjs +31 -0
- package/esm2022/models/guidExtension.mjs +15 -0
- package/esm2022/public-api.mjs +28 -0
- package/fesm2022/btv-base-controls.mjs +1503 -0
- package/fesm2022/btv-base-controls.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/basic.module.d.ts +33 -0
- package/lib/blink-message/blink-message.component.d.ts +20 -0
- package/lib/btv-icon-button/btv-counter-button.d.ts +12 -0
- package/lib/btv-icon-button/btv-icon-button.component.d.ts +32 -0
- package/lib/btv-progress/btv-progress.component.d.ts +20 -0
- package/lib/btv-search/btv-search.component.d.ts +31 -0
- package/{src/lib/btv-search/index.ts → lib/btv-search/index.d.ts} +1 -1
- package/lib/busy-indicator/busy-indicator.component.d.ts +7 -0
- package/lib/custom-tool-tip/custom-tool-tip.component.d.ts +35 -0
- package/lib/custom-tool-tip/tool-tip-renderer.directive.d.ts +49 -0
- package/lib/illustration/illustration.component.d.ts +10 -0
- package/lib/wm-avatar/avatar.component.d.ts +63 -0
- package/lib/wm-back-btn/wm-back-btn.component.d.ts +10 -0
- package/lib/wm-beta-text/wm-beta-text.component.d.ts +7 -0
- package/lib/wm-info/info-models.d.ts +21 -0
- package/lib/wm-info/wm-info.component.d.ts +34 -0
- package/lib/wm-info-card/wm-info-card.component.d.ts +9 -0
- package/lib/wm-no-content/wm-no-content.component.d.ts +11 -0
- package/lib/wm-panel-bar/wm-panel-bar.component.d.ts +26 -0
- package/lib/wm-scalable-div/scalable-div.component.d.ts +24 -0
- package/lib/wm-spinner/wm-spinner.component.d.ts +37 -0
- package/lib/wm-state-icon/wm-state-icon.component.d.ts +9 -0
- package/lib/wm-tag/wm-tag.component.d.ts +10 -0
- package/lib/wm-tamplate-image/wm-template-image.component.d.ts +49 -0
- package/lib/wm-toggle/wm-toggle.component.d.ts +11 -0
- package/models/guidExtension.d.ts +5 -0
- package/package.json +24 -10
- package/public-api.d.ts +24 -0
- package/.browserslistrc +0 -16
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -7
- package/src/assets/icon/state-icons.png +0 -0
- package/src/assets/theme/wmGlobals.scss +0 -181
- package/src/lib/basic.module.ts +0 -48
- package/src/lib/blink-message/blink-message.component.html +0 -1
- package/src/lib/blink-message/blink-message.component.scss +0 -4
- package/src/lib/blink-message/blink-message.component.ts +0 -54
- package/src/lib/btv-icon-button/btv-counter-button.html +0 -18
- package/src/lib/btv-icon-button/btv-counter-button.ts +0 -34
- package/src/lib/btv-icon-button/btv-icon-button.component.ts +0 -64
- package/src/lib/btv-icon-button/btv-icon-button.html +0 -14
- package/src/lib/btv-icon-button/btv-icon-button.scss +0 -124
- package/src/lib/btv-icon-button/index.ts +0 -1
- package/src/lib/btv-progress/btv-progress.component.ts +0 -65
- package/src/lib/btv-progress/btv-progress.html +0 -11
- package/src/lib/btv-progress/btv-progress.scss +0 -24
- package/src/lib/btv-search/btv-search.component.ts +0 -78
- package/src/lib/btv-search/btv-search.html +0 -15
- package/src/lib/btv-search/btv-search.scss +0 -97
- package/src/lib/busy-indicator/busy-indicator.component.ts +0 -13
- package/src/lib/busy-indicator/busy-indicator.html +0 -6
- package/src/lib/busy-indicator/busy-indicator.scss +0 -86
- package/src/lib/custom-tool-tip/custom-tool-tip.component.html +0 -9
- package/src/lib/custom-tool-tip/custom-tool-tip.component.scss +0 -47
- package/src/lib/custom-tool-tip/custom-tool-tip.component.ts +0 -44
- package/src/lib/custom-tool-tip/tool-tip-renderer.directive.ts +0 -111
- package/src/lib/illustration/illustration.component.html +0 -412
- package/src/lib/illustration/illustration.component.scss +0 -48
- package/src/lib/illustration/illustration.component.ts +0 -21
- package/src/lib/wm-avatar/avatar.component.ts +0 -179
- package/src/lib/wm-avatar/avatar.html +0 -13
- package/src/lib/wm-avatar/avatar.scss +0 -3
- package/src/lib/wm-back-btn/wm-back-btn.component.ts +0 -19
- package/src/lib/wm-back-btn/wm-back-btn.html +0 -7
- package/src/lib/wm-back-btn/wm-back-btn.scss +0 -51
- package/src/lib/wm-beta-text/wm-beta-text.component.html +0 -1
- package/src/lib/wm-beta-text/wm-beta-text.component.scss +0 -44
- package/src/lib/wm-beta-text/wm-beta-text.component.ts +0 -14
- package/src/lib/wm-info/info-models.ts +0 -22
- package/src/lib/wm-info/wm-info.component.ts +0 -238
- package/src/lib/wm-info/wm-info.html +0 -19
- package/src/lib/wm-info/wm-info.scss +0 -64
- package/src/lib/wm-info-card/wm-info-card.component.ts +0 -14
- package/src/lib/wm-info-card/wm-info-card.html +0 -13
- package/src/lib/wm-info-card/wm-info-card.scss +0 -56
- package/src/lib/wm-no-content/wm-no-content.component.ts +0 -17
- package/src/lib/wm-no-content/wm-no-content.html +0 -13
- package/src/lib/wm-no-content/wm-no-content.scss +0 -60
- package/src/lib/wm-panel-bar/wm-panel-bar.component.ts +0 -60
- package/src/lib/wm-panel-bar/wm-panel-bar.html +0 -43
- package/src/lib/wm-panel-bar/wm-panel-bar.scss +0 -114
- package/src/lib/wm-scalable-div/scalable-div.component.ts +0 -106
- package/src/lib/wm-scalable-div/scalable-div.html +0 -1
- package/src/lib/wm-scalable-div/scalable-div.scss +0 -11
- package/src/lib/wm-spinner/wm-spinner.component.ts +0 -129
- package/src/lib/wm-spinner/wm-spinner.html +0 -37
- package/src/lib/wm-spinner/wm-spinner.scss +0 -72
- package/src/lib/wm-state-icon/wm-state-icon.component.html +0 -4
- package/src/lib/wm-state-icon/wm-state-icon.component.scss +0 -26
- package/src/lib/wm-state-icon/wm-state-icon.component.ts +0 -18
- package/src/lib/wm-tag/wm-tag.component.html +0 -8
- package/src/lib/wm-tag/wm-tag.component.scss +0 -48
- package/src/lib/wm-tag/wm-tag.component.ts +0 -17
- package/src/lib/wm-tamplate-image/wm-template-image.component.ts +0 -56
- package/src/lib/wm-tamplate-image/wm-template-image.html +0 -3
- package/src/lib/wm-tamplate-image/wm-template-image.scss +0 -31
- package/src/lib/wm-toggle/wm-toggle.component.ts +0 -20
- package/src/lib/wm-toggle/wm-toggle.html +0 -5
- package/src/lib/wm-toggle/wm-toggle.scss +0 -33
- package/src/models/guidExtension.ts +0 -16
- package/src/public-api.ts +0 -29
- package/src/test.ts +0 -15
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { Component, Input, SecurityContext } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
/**
|
|
6
|
+
* list of default colors
|
|
7
|
+
*/
|
|
8
|
+
export const defaultColors = [
|
|
9
|
+
'#1abc9c',
|
|
10
|
+
'#3498db',
|
|
11
|
+
'#f1c40f',
|
|
12
|
+
'#8e44ad',
|
|
13
|
+
'#e74c3c',
|
|
14
|
+
'#d35400',
|
|
15
|
+
'#2c3e50',
|
|
16
|
+
'#7f8c8d'
|
|
17
|
+
];
|
|
18
|
+
export class AvatarComponent {
|
|
19
|
+
get name() { return this._name; }
|
|
20
|
+
set name(value) {
|
|
21
|
+
this._name = value;
|
|
22
|
+
this.avatarText = this.formTextAvatar(value);
|
|
23
|
+
}
|
|
24
|
+
;
|
|
25
|
+
;
|
|
26
|
+
get src() { return this._src; }
|
|
27
|
+
;
|
|
28
|
+
set src(value) {
|
|
29
|
+
this._src = value;
|
|
30
|
+
this.avatarSrc = this.transformSrc(value);
|
|
31
|
+
}
|
|
32
|
+
constructor(sanitizer) {
|
|
33
|
+
this.sanitizer = sanitizer;
|
|
34
|
+
this.avatarText = null;
|
|
35
|
+
this.size = 50;
|
|
36
|
+
this.avatarSrc = null;
|
|
37
|
+
this.round = true;
|
|
38
|
+
this.cornerRadius = 0;
|
|
39
|
+
this.textSizeRatio = 3;
|
|
40
|
+
this.fgColor = '#FFF';
|
|
41
|
+
this.style = {};
|
|
42
|
+
this.avatarColors = defaultColors;
|
|
43
|
+
this.avatarStyle = {};
|
|
44
|
+
this.hostStyle = {};
|
|
45
|
+
}
|
|
46
|
+
transformSrc(stringInBase64) {
|
|
47
|
+
if (!stringInBase64)
|
|
48
|
+
return null;
|
|
49
|
+
return this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, this.sanitizer.bypassSecurityTrustResourceUrl(stringInBase64));
|
|
50
|
+
}
|
|
51
|
+
formTextAvatar(val) {
|
|
52
|
+
if (!val)
|
|
53
|
+
return '?';
|
|
54
|
+
const name = val.trim();
|
|
55
|
+
const splitted = name.split(' ');
|
|
56
|
+
if (splitted.length === 1) {
|
|
57
|
+
if (name.length === 1) {
|
|
58
|
+
return name[0];
|
|
59
|
+
}
|
|
60
|
+
return name[0] + name[1];
|
|
61
|
+
}
|
|
62
|
+
const length = Math.min(splitted.length, 3);
|
|
63
|
+
splitted.length = length; // leave first 3 words top
|
|
64
|
+
return splitted.map(it => it[0]).join('');
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Detect inputs change
|
|
68
|
+
*
|
|
69
|
+
* param {{ [propKey: string]: SimpleChange }} changes
|
|
70
|
+
*
|
|
71
|
+
* memberof AvatarComponent
|
|
72
|
+
*/
|
|
73
|
+
ngOnChanges(changes) {
|
|
74
|
+
// reinitialize the avatar component when a source property value has changed
|
|
75
|
+
// the fallback system must be re-invoked with the new values.
|
|
76
|
+
this.initializeAvatar();
|
|
77
|
+
}
|
|
78
|
+
getStyles() {
|
|
79
|
+
if (!this.src) {
|
|
80
|
+
this.avatarStyle = this.getInitialsStyle(this.avatarText);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.avatarStyle = this.getImageStyle();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Initialize the avatar component and its fallback system
|
|
88
|
+
*/
|
|
89
|
+
initializeAvatar() {
|
|
90
|
+
if (!this.src && !this.name)
|
|
91
|
+
return;
|
|
92
|
+
this.getStyles();
|
|
93
|
+
this.hostStyle = {
|
|
94
|
+
width: this.size + 'px',
|
|
95
|
+
height: this.size + 'px'
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
*
|
|
100
|
+
* returns initials style
|
|
101
|
+
*
|
|
102
|
+
*/
|
|
103
|
+
getInitialsStyle(avatarValue) {
|
|
104
|
+
return {
|
|
105
|
+
textAlign: 'center',
|
|
106
|
+
borderRadius: this.round ? '100%' : this.cornerRadius + 'px',
|
|
107
|
+
border: this.borderColor ? '1px solid ' + this.borderColor : '',
|
|
108
|
+
textTransform: 'uppercase',
|
|
109
|
+
color: this.fgColor,
|
|
110
|
+
backgroundColor: this.bgColor
|
|
111
|
+
? this.bgColor
|
|
112
|
+
: this.getRandomColor(avatarValue),
|
|
113
|
+
font: Math.floor(+this.size / this.textSizeRatio) +
|
|
114
|
+
'px Helvetica, Arial, sans-serif',
|
|
115
|
+
lineHeight: this.size + 'px',
|
|
116
|
+
...this.style
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
*
|
|
121
|
+
* returns image style
|
|
122
|
+
*/
|
|
123
|
+
getImageStyle() {
|
|
124
|
+
return {
|
|
125
|
+
maxWidth: '100%',
|
|
126
|
+
borderRadius: this.round ? '50%' : this.cornerRadius + 'px',
|
|
127
|
+
border: this.borderColor ? '1px solid ' + this.borderColor : '',
|
|
128
|
+
width: this.size + 'px',
|
|
129
|
+
height: this.size + 'px',
|
|
130
|
+
...this.style,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
getRandomColor(avatarText) {
|
|
134
|
+
if (!avatarText) {
|
|
135
|
+
return 'transparent';
|
|
136
|
+
}
|
|
137
|
+
const asciiCodeSum = this.calculateAsciiCode(avatarText);
|
|
138
|
+
return this.avatarColors[asciiCodeSum % this.avatarColors.length];
|
|
139
|
+
}
|
|
140
|
+
calculateAsciiCode(value) {
|
|
141
|
+
return value
|
|
142
|
+
.split('')
|
|
143
|
+
.map(letter => letter.charCodeAt(0))
|
|
144
|
+
.reduce((previous, current) => previous + current);
|
|
145
|
+
}
|
|
146
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
147
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: AvatarComponent, selector: "wm-avatar", inputs: { name: "name", size: "size", src: "src", value: "value", round: "round", cornerRadius: "cornerRadius", textSizeRatio: "textSizeRatio", bgColor: "bgColor", fgColor: "fgColor", borderColor: "borderColor", style: "style" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"avatar-container\" [ngStyle]=\"hostStyle\">\r\n <img *ngIf=\"avatarSrc; else textAvatar\" \r\n [src]=\"avatarSrc\" \r\n [width]=\"size\" \r\n [height]=\"size\" \r\n [ngStyle]=\"avatarStyle\"\r\n class=\"avatar-content\" loading=\"lazy\" />\r\n <ng-template #textAvatar>\r\n <div *ngIf=\"avatarText\" class=\"avatar-content\" [ngStyle]=\"avatarStyle\">\r\n {{ avatarText }}\r\n </div>\r\n </ng-template>\r\n</div>", styles: [":host{border-radius:50%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
148
|
+
}
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
150
|
+
type: Component,
|
|
151
|
+
args: [{ selector: 'wm-avatar', template: "<div class=\"avatar-container\" [ngStyle]=\"hostStyle\">\r\n <img *ngIf=\"avatarSrc; else textAvatar\" \r\n [src]=\"avatarSrc\" \r\n [width]=\"size\" \r\n [height]=\"size\" \r\n [ngStyle]=\"avatarStyle\"\r\n class=\"avatar-content\" loading=\"lazy\" />\r\n <ng-template #textAvatar>\r\n <div *ngIf=\"avatarText\" class=\"avatar-content\" [ngStyle]=\"avatarStyle\">\r\n {{ avatarText }}\r\n </div>\r\n </ng-template>\r\n</div>", styles: [":host{border-radius:50%}\n"] }]
|
|
152
|
+
}], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { name: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], size: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], src: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], value: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], round: [{
|
|
161
|
+
type: Input
|
|
162
|
+
}], cornerRadius: [{
|
|
163
|
+
type: Input
|
|
164
|
+
}], textSizeRatio: [{
|
|
165
|
+
type: Input
|
|
166
|
+
}], bgColor: [{
|
|
167
|
+
type: Input
|
|
168
|
+
}], fgColor: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], borderColor: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], style: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}] } });
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J0di1iYXNlLWNvbnRyb2xzL3NyYy9saWIvd20tYXZhdGFyL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL3dtLWF2YXRhci9hdmF0YXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFHTCxlQUFlLEVBQ2hCLE1BQU0sZUFBZSxDQUFDOzs7O0FBSXZCOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0NBQ1YsQ0FBQztBQVFGLE1BQU0sT0FBTyxlQUFlO0lBSTFCLElBQVcsSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEMsSUFBb0IsSUFBSSxDQUFDLEtBQW9CO1FBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQUEsQ0FBQztJQUN5QyxDQUFDO0lBSTVDLElBQVcsR0FBRyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQSxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3RDLElBQW9CLEdBQUcsQ0FBQyxLQUFvQjtRQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQVlELFlBQW9CLFNBQXVCO1FB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QUUsQ0FBQztZQUNoQixPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBYTtRQUN0QyxPQUFPLEtBQUs7YUFDVCxLQUFLLENBQUMsRUFBRSxDQUFDO2FBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs4R0FoSlUsZUFBZTtrR0FBZixlQUFlLDRTQ2hDNUIsZ2ZBWU07OzJGRG9CTyxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFdBQVc7aUZBU0QsSUFBSTtzQkFBdkIsS0FBSztnQkFJVSxJQUFJO3NCQUFuQixLQUFLO2dCQUtjLEdBQUc7c0JBQXRCLEtBQUs7Z0JBSVUsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFNlY3VyaXR5Q29udGV4dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxudHlwZSBTdHlsZSA9IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj47XHJcblxyXG4vKipcclxuICogbGlzdCBvZiBkZWZhdWx0IGNvbG9yc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb2xvcnMgPSBbXHJcbiAgJyMxYWJjOWMnLFxyXG4gICcjMzQ5OGRiJyxcclxuICAnI2YxYzQwZicsXHJcbiAgJyM4ZTQ0YWQnLFxyXG4gICcjZTc0YzNjJyxcclxuICAnI2QzNTQwMCcsXHJcbiAgJyMyYzNlNTAnLFxyXG4gICcjN2Y4YzhkJ1xyXG5dO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd20tYXZhdGFyJyxcclxuICBzdHlsZVVybHM6IFsnLi9hdmF0YXIuc2NzcyddLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXIuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF2YXRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIHByaXZhdGUgX25hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgcHVibGljIGF2YXRhclRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH1cclxuICBASW5wdXQoKSBwdWJsaWMgc2V0IG5hbWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIHRoaXMuX25hbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuYXZhdGFyVGV4dCA9IHRoaXMuZm9ybVRleHRBdmF0YXIodmFsdWUpO1xyXG4gIH07XHJcbiAgQElucHV0KCkgcHVibGljIHNpemU6IHN0cmluZyB8IG51bWJlciA9IDUwOztcclxuXHJcbiAgcHVibGljIGF2YXRhclNyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfc3JjOiBzdHJpbmcgfCBudWxsO1xyXG4gIHB1YmxpYyBnZXQgc3JjKCkgeyByZXR1cm4gdGhpcy5fc3JjIH07XHJcbiAgQElucHV0KCkgcHVibGljIHNldCBzcmModmFsdWU6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIHRoaXMuX3NyYyA9IHZhbHVlO1xyXG4gICAgdGhpcy5hdmF0YXJTcmMgPSB0aGlzLnRyYW5zZm9ybVNyYyh2YWx1ZSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWx1ZTogc3RyaW5nIHwgbnVsbDtcclxuICBASW5wdXQoKSBwdWJsaWMgcm91bmQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjb3JuZXJSYWRpdXM6IHN0cmluZyB8IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgcHVibGljIHRleHRTaXplUmF0aW8gPSAzO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBiZ0NvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIGZnQ29sb3IgPSAnI0ZGRic7XHJcbiAgQElucHV0KCkgcHVibGljIGJvcmRlckNvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIHN0eWxlOiBTdHlsZSA9IHt9O1xyXG5cclxuICBwdWJsaWMgYXZhdGFyQ29sb3JzOiBzdHJpbmdbXSA9IGRlZmF1bHRDb2xvcnM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHsgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNmb3JtU3JjKHN0cmluZ0luQmFzZTY0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFzdHJpbmdJbkJhc2U2NCkgcmV0dXJuIG51bGw7XHJcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuc2FuaXRpemUoU2VjdXJpdHlDb250ZXh0LlJFU09VUkNFX1VSTCwgdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHN0cmluZ0luQmFzZTY0KSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGZvcm1UZXh0QXZhdGFyKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXZhbCkgcmV0dXJuICc/JztcclxuXHJcbiAgICBjb25zdCBuYW1lID0gdmFsLnRyaW0oKTtcclxuICAgIGNvbnN0IHNwbGl0dGVkID0gbmFtZS5zcGxpdCgnICcpO1xyXG5cclxuICAgIGlmIChzcGxpdHRlZC5sZW5ndGggPT09IDEpIHtcclxuICAgICAgaWYgKG5hbWUubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgcmV0dXJuIG5hbWVbMF07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5hbWVbMF0gKyBuYW1lWzFdO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihzcGxpdHRlZC5sZW5ndGgsIDMpO1xyXG5cclxuICAgIHNwbGl0dGVkLmxlbmd0aCA9IGxlbmd0aDsgLy8gbGVhdmUgZmlyc3QgMyB3b3JkcyB0b3BcclxuICAgIHJldHVybiBzcGxpdHRlZC5tYXAoaXQgPT4gaXRbMF0pLmpvaW4oJycpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGF2YXRhclN0eWxlOiBTdHlsZSA9IHt9O1xyXG4gIHB1YmxpYyBob3N0U3R5bGU6IFN0eWxlID0ge307XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVjdCBpbnB1dHMgY2hhbmdlXHJcbiAgICpcclxuICAgKiBwYXJhbSB7eyBbcHJvcEtleTogc3RyaW5nXTogU2ltcGxlQ2hhbmdlIH19IGNoYW5nZXNcclxuICAgKlxyXG4gICAqIG1lbWJlcm9mIEF2YXRhckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAvLyByZWluaXRpYWxpemUgdGhlIGF2YXRhciBjb21wb25lbnQgd2hlbiBhIHNvdXJjZSBwcm9wZXJ0eSB2YWx1ZSBoYXMgY2hhbmdlZFxyXG4gICAgLy8gdGhlIGZhbGxiYWNrIHN5c3RlbSBtdXN0IGJlIHJlLWludm9rZWQgd2l0aCB0aGUgbmV3IHZhbHVlcy5cclxuICAgIHRoaXMuaW5pdGlhbGl6ZUF2YXRhcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0eWxlcygpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuc3JjKSB7XHJcbiAgICAgIHRoaXMuYXZhdGFyU3R5bGUgPSB0aGlzLmdldEluaXRpYWxzU3R5bGUodGhpcy5hdmF0YXJUZXh0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYXZhdGFyU3R5bGUgPSB0aGlzLmdldEltYWdlU3R5bGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGF2YXRhciBjb21wb25lbnQgYW5kIGl0cyBmYWxsYmFjayBzeXN0ZW1cclxuICAgKi9cclxuICBwcml2YXRlIGluaXRpYWxpemVBdmF0YXIoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc3JjICYmICF0aGlzLm5hbWUpIHJldHVyblxyXG4gICAgdGhpcy5nZXRTdHlsZXMoKTtcclxuICAgIHRoaXMuaG9zdFN0eWxlID0ge1xyXG4gICAgICB3aWR0aDogdGhpcy5zaXplICsgJ3B4JyxcclxuICAgICAgaGVpZ2h0OiB0aGlzLnNpemUgKyAncHgnXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiByZXR1cm5zIGluaXRpYWxzIHN0eWxlXHJcbiAgICpcclxuICAgKi9cclxuICBwcml2YXRlIGdldEluaXRpYWxzU3R5bGUoYXZhdGFyVmFsdWU6IHN0cmluZyk6IFN0eWxlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgIGJvcmRlclJhZGl1czogdGhpcy5yb3VuZCA/ICcxMDAlJyA6IHRoaXMuY29ybmVyUmFkaXVzICsgJ3B4JyxcclxuICAgICAgYm9yZGVyOiB0aGlzLmJvcmRlckNvbG9yID8gJzFweCBzb2xpZCAnICsgdGhpcy5ib3JkZXJDb2xvciA6ICcnLFxyXG4gICAgICB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJyxcclxuICAgICAgY29sb3I6IHRoaXMuZmdDb2xvcixcclxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLmJnQ29sb3JcclxuICAgICAgICA/IHRoaXMuYmdDb2xvclxyXG4gICAgICAgIDogdGhpcy5nZXRSYW5kb21Db2xvcihhdmF0YXJWYWx1ZSksXHJcbiAgICAgIGZvbnQ6XHJcbiAgICAgICAgTWF0aC5mbG9vcigrdGhpcy5zaXplIC8gdGhpcy50ZXh0U2l6ZVJhdGlvKSArXHJcbiAgICAgICAgJ3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYnLFxyXG4gICAgICBsaW5lSGVpZ2h0OiB0aGlzLnNpemUgKyAncHgnLFxyXG4gICAgICAuLi50aGlzLnN0eWxlXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiByZXR1cm5zIGltYWdlIHN0eWxlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRJbWFnZVN0eWxlKCk6IFN0eWxlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXHJcbiAgICAgIGJvcmRlclJhZGl1czogdGhpcy5yb3VuZCA/ICc1MCUnIDogdGhpcy5jb3JuZXJSYWRpdXMgKyAncHgnLFxyXG4gICAgICBib3JkZXI6IHRoaXMuYm9yZGVyQ29sb3IgPyAnMXB4IHNvbGlkICcgKyB0aGlzLmJvcmRlckNvbG9yIDogJycsXHJcbiAgICAgIHdpZHRoOiB0aGlzLnNpemUgKyAncHgnLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuc2l6ZSArICdweCcsXHJcbiAgICAgIC4uLnRoaXMuc3R5bGUsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSYW5kb21Db2xvcihhdmF0YXJUZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFhdmF0YXJUZXh0KSB7XHJcbiAgICAgIHJldHVybiAndHJhbnNwYXJlbnQnO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXNjaWlDb2RlU3VtID0gdGhpcy5jYWxjdWxhdGVBc2NpaUNvZGUoYXZhdGFyVGV4dCk7XHJcbiAgICByZXR1cm4gdGhpcy5hdmF0YXJDb2xvcnNbYXNjaWlDb2RlU3VtICUgdGhpcy5hdmF0YXJDb2xvcnMubGVuZ3RoXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlQXNjaWlDb2RlKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgIC5zcGxpdCgnJylcclxuICAgICAgLm1hcChsZXR0ZXIgPT4gbGV0dGVyLmNoYXJDb2RlQXQoMCkpXHJcbiAgICAgIC5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiBwcmV2aW91cyArIGN1cnJlbnQpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIiBbbmdTdHlsZV09XCJob3N0U3R5bGVcIj5cclxuICAgIDxpbWcgKm5nSWY9XCJhdmF0YXJTcmM7IGVsc2UgdGV4dEF2YXRhclwiIFxyXG4gICAgICAgIFtzcmNdPVwiYXZhdGFyU3JjXCIgXHJcbiAgICAgICAgW3dpZHRoXT1cInNpemVcIiBcclxuICAgICAgICBbaGVpZ2h0XT1cInNpemVcIiBcclxuICAgICAgICBbbmdTdHlsZV09XCJhdmF0YXJTdHlsZVwiXHJcbiAgICAgICAgY2xhc3M9XCJhdmF0YXItY29udGVudFwiIGxvYWRpbmc9XCJsYXp5XCIgLz5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdGV4dEF2YXRhcj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYXZhdGFyVGV4dFwiIGNsYXNzPVwiYXZhdGFyLWNvbnRlbnRcIiBbbmdTdHlsZV09XCJhdmF0YXJTdHlsZVwiPlxyXG4gICAgICAgICAgICB7eyBhdmF0YXJUZXh0IH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class WmBackBtnComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.icon = 'arrow-long-left';
|
|
7
|
+
this.disabled = false;
|
|
8
|
+
this.iClick = new EventEmitter();
|
|
9
|
+
}
|
|
10
|
+
onClick(event) {
|
|
11
|
+
this.iClick.emit(event);
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: WmBackBtnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: WmBackBtnComponent, selector: "wm-back-btn", inputs: { icon: "icon", disabled: "disabled" }, outputs: { iClick: "iClick" }, ngImport: i0, template: "<button class=\"wm-btn-button-wrap\" (click)=\"onClick($event)\" type=\"button\">\r\n <div class=\"icon-svg\" [ngClass]=\"{'disabled': disabled}\" [ngStyle]=\"{\r\n 'mask': 'url(./assets/icon/svg/'+ icon+ '.svg) no-repeat center', \r\n '-webkit-mask':'url(./assets/icon/svg/'+icon+'.svg) no-repeat center'\r\n }\">\r\n </div>\r\n</button>", styles: ["@media print{body{all:unset!important}.wm-page{margin:0!important;display:block!important}.not-printable{display:none!important}*{visibility:hidden}.printable,.printable *{visibility:visible!important}}:host{display:flex;align-self:center}.wm-btn-button-wrap{background-color:transparent;color:var(--mediumFontColor);border:none;border-radius:0;font-size:14px;display:flex;justify-content:flex-start;align-items:center;align-content:center;outline:0;cursor:pointer;height:30px}.wm-btn-button-wrap:hover{color:var(--strongFontColor)}.wm-btn-button-wrap:hover .icon-svg{background-color:var(--strongFontColor)}.icon-svg{justify-content:center;align-items:center;background-color:var(--mediumFontColor);width:24px;height:24px}.disabled{background-color:var(--disabledColor);border-color:var(--disabledColor);color:var(--lightFontColor);cursor:default}.disabled:hover{background-color:var(--disabledColor);border-color:var(--disabledColor)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: WmBackBtnComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: 'wm-back-btn', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button class=\"wm-btn-button-wrap\" (click)=\"onClick($event)\" type=\"button\">\r\n <div class=\"icon-svg\" [ngClass]=\"{'disabled': disabled}\" [ngStyle]=\"{\r\n 'mask': 'url(./assets/icon/svg/'+ icon+ '.svg) no-repeat center', \r\n '-webkit-mask':'url(./assets/icon/svg/'+icon+'.svg) no-repeat center'\r\n }\">\r\n </div>\r\n</button>", styles: ["@media print{body{all:unset!important}.wm-page{margin:0!important;display:block!important}.not-printable{display:none!important}*{visibility:hidden}.printable,.printable *{visibility:visible!important}}:host{display:flex;align-self:center}.wm-btn-button-wrap{background-color:transparent;color:var(--mediumFontColor);border:none;border-radius:0;font-size:14px;display:flex;justify-content:flex-start;align-items:center;align-content:center;outline:0;cursor:pointer;height:30px}.wm-btn-button-wrap:hover{color:var(--strongFontColor)}.wm-btn-button-wrap:hover .icon-svg{background-color:var(--strongFontColor)}.icon-svg{justify-content:center;align-items:center;background-color:var(--mediumFontColor);width:24px;height:24px}.disabled{background-color:var(--disabledColor);border-color:var(--disabledColor);color:var(--lightFontColor);cursor:default}.disabled:hover{background-color:var(--disabledColor);border-color:var(--disabledColor)}\n"] }]
|
|
19
|
+
}], propDecorators: { icon: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], disabled: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}], iClick: [{
|
|
24
|
+
type: Output
|
|
25
|
+
}] } });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid20tYmFjay1idG4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnR2LWJhc2UtY29udHJvbHMvc3JjL2xpYi93bS1iYWNrLWJ0bi93bS1iYWNrLWJ0bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL3dtLWJhY2stYnRuL3dtLWJhY2stYnRuLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUWhHLE1BQU0sT0FBTyxrQkFBa0I7SUFOL0I7UUFRb0IsU0FBSSxHQUFXLGlCQUFpQixDQUFDO1FBQ2pDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFekIsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0tBS3hFO0lBSFUsT0FBTyxDQUFDLEtBQUs7UUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs4R0FUUSxrQkFBa0I7a0dBQWxCLGtCQUFrQixrSUNSL0IscVhBTVM7OzJGREVJLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDSSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU07OEJBSS9CLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFFVyxNQUFNO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnd20tYmFjay1idG4nLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vd20tYmFjay1idG4uc2NzcyddLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3dtLWJhY2stYnRuLmh0bWwnLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFdtQmFja0J0bkNvbXBvbmVudCB7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGljb246IHN0cmluZyA9ICdhcnJvdy1sb25nLWxlZnQnO1xyXG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBpQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgcHVibGljIG9uQ2xpY2soZXZlbnQpIHtcclxuICAgICAgICB0aGlzLmlDbGljay5lbWl0KGV2ZW50KTtcclxuICAgIH1cclxufVxyXG4iLCI8YnV0dG9uIGNsYXNzPVwid20tYnRuLWJ1dHRvbi13cmFwXCIgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiIHR5cGU9XCJidXR0b25cIj5cclxuICA8ZGl2IGNsYXNzPVwiaWNvbi1zdmdcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzogZGlzYWJsZWR9XCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAnbWFzayc6ICd1cmwoLi9hc3NldHMvaWNvbi9zdmcvJysgaWNvbisgJy5zdmcpIG5vLXJlcGVhdCBjZW50ZXInLCBcclxuICAgICAgICAgICAgJy13ZWJraXQtbWFzayc6J3VybCguL2Fzc2V0cy9pY29uL3N2Zy8nK2ljb24rJy5zdmcpIG5vLXJlcGVhdCBjZW50ZXInXHJcbiAgICAgICAgICB9XCI+XHJcbiAgPC9kaXY+XHJcbjwvYnV0dG9uPiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class WmBetaTextComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.text = '';
|
|
6
|
+
this.wrapClass = '';
|
|
7
|
+
}
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: WmBetaTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: WmBetaTextComponent, selector: "wm-beta-text", inputs: { text: "text", wrapClass: "wrapClass" }, ngImport: i0, template: "<span class=\"text-title {{wrapClass}}\">{{text}}</span>\r\n", styles: ["@media print{body{all:unset!important}.wm-page{margin:0!important;display:block!important}.not-printable{display:none!important}*{visibility:hidden}.printable,.printable *{visibility:visible!important}}.text-title{color:var(--strongFontColor);display:block;text-align:right;transform-origin:center center;-webkit-transform:rotate(-6deg);-moz-transform:rotate(-6deg);-ms-transform:rotate(-6deg);-o-transform:rotate(-6deg);transform:rotate(-6deg);font-family:Inter,Verdana,Geneva,Tahoma,sans-serif;font-weight:500;font-size:16px;min-width:50px;border-radius:5px;padding:4px;margin:auto 12px auto 28px;text-align:center}.text-position{position:absolute;right:10px;height:23px}.center-position{line-height:22px;height:22px;margin-top:8px}.red-wrapper{background-color:var(--dangerColor);color:var(--onBrandTextColor)}.warning-wrapper{background-color:var(--warningColor);color:var(--onBrandTextColor)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: WmBetaTextComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: 'wm-beta-text', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"text-title {{wrapClass}}\">{{text}}</span>\r\n", styles: ["@media print{body{all:unset!important}.wm-page{margin:0!important;display:block!important}.not-printable{display:none!important}*{visibility:hidden}.printable,.printable *{visibility:visible!important}}.text-title{color:var(--strongFontColor);display:block;text-align:right;transform-origin:center center;-webkit-transform:rotate(-6deg);-moz-transform:rotate(-6deg);-ms-transform:rotate(-6deg);-o-transform:rotate(-6deg);transform:rotate(-6deg);font-family:Inter,Verdana,Geneva,Tahoma,sans-serif;font-weight:500;font-size:16px;min-width:50px;border-radius:5px;padding:4px;margin:auto 12px auto 28px;text-align:center}.text-position{position:absolute;right:10px;height:23px}.center-position{line-height:22px;height:22px;margin-top:8px}.red-wrapper{background-color:var(--dangerColor);color:var(--onBrandTextColor)}.warning-wrapper{background-color:var(--warningColor);color:var(--onBrandTextColor)}\n"] }]
|
|
14
|
+
}], propDecorators: { text: [{
|
|
15
|
+
type: Input
|
|
16
|
+
}], wrapClass: [{
|
|
17
|
+
type: Input
|
|
18
|
+
}] } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid20tYmV0YS10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J0di1iYXNlLWNvbnRyb2xzL3NyYy9saWIvd20tYmV0YS10ZXh0L3dtLWJldGEtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL3dtLWJldGEtdGV4dC93bS1iZXRhLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUTFFLE1BQU0sT0FBTyxtQkFBbUI7SUFOaEM7UUFRa0IsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixjQUFTLEdBQVcsRUFBRSxDQUFDO0tBRXhDOzhHQUxZLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHNHQ1JoQyw4REFDQTs7MkZET2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0IsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd20tYmV0YS10ZXh0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd20tYmV0YS10ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93bS1iZXRhLXRleHQuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFdtQmV0YVRleHRDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgdGV4dDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIHdyYXBDbGFzczogc3RyaW5nID0gJyc7XHJcblxyXG59XHJcbiIsIjxzcGFuIGNsYXNzPVwidGV4dC10aXRsZSB7e3dyYXBDbGFzc319XCI+e3t0ZXh0fX08L3NwYW4+XHJcbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export var InfoType;
|
|
2
|
+
(function (InfoType) {
|
|
3
|
+
InfoType[InfoType["Error"] = 0] = "Error";
|
|
4
|
+
InfoType[InfoType["Warning"] = 1] = "Warning";
|
|
5
|
+
InfoType[InfoType["InfoMessage"] = 2] = "InfoMessage";
|
|
6
|
+
InfoType[InfoType["TabError"] = 3] = "TabError";
|
|
7
|
+
InfoType[InfoType["TabWarning"] = 4] = "TabWarning";
|
|
8
|
+
InfoType[InfoType["InfoSmall"] = 5] = "InfoSmall";
|
|
9
|
+
InfoType[InfoType["Filtered"] = 6] = "Filtered";
|
|
10
|
+
InfoType[InfoType["InlineDetails"] = 7] = "InlineDetails";
|
|
11
|
+
InfoType[InfoType["SubNavPanel"] = 8] = "SubNavPanel";
|
|
12
|
+
InfoType[InfoType["InfoGold"] = 9] = "InfoGold";
|
|
13
|
+
})(InfoType || (InfoType = {}));
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL3dtLWluZm8vaW5mby1tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksUUFXWDtBQVhELFdBQVksUUFBUTtJQUNsQix5Q0FBUyxDQUFBO0lBQ1QsNkNBQVcsQ0FBQTtJQUNYLHFEQUFlLENBQUE7SUFDZiwrQ0FBWSxDQUFBO0lBQ1osbURBQWMsQ0FBQTtJQUNkLGlEQUFhLENBQUE7SUFDYiwrQ0FBWSxDQUFBO0lBQ1oseURBQWlCLENBQUE7SUFDakIscURBQWUsQ0FBQTtJQUNmLCtDQUFZLENBQUE7QUFDZCxDQUFDLEVBWFcsUUFBUSxLQUFSLFFBQVEsUUFXbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcmlnaW5Db25uZWN0aW9uUG9zaXRpb24sIE92ZXJsYXlDb25uZWN0aW9uUG9zaXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcclxuXHJcbmV4cG9ydCBlbnVtIEluZm9UeXBlIHtcclxuICBFcnJvciA9IDAsXHJcbiAgV2FybmluZyA9IDEsXHJcbiAgSW5mb01lc3NhZ2UgPSAyLFxyXG4gIFRhYkVycm9yID0gMyxcclxuICBUYWJXYXJuaW5nID0gNCxcclxuICBJbmZvU21hbGwgPSA1LFxyXG4gIEZpbHRlcmVkID0gNixcclxuICBJbmxpbmVEZXRhaWxzID0gNyxcclxuICBTdWJOYXZQYW5lbCA9IDgsXHJcbiAgSW5mb0dvbGQgPSA5XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBJV21JbmZvUG9zaXRpb25Qb3B1cCB7XHJcbiAgb3JpZ2luOiBPcmlnaW5Db25uZWN0aW9uUG9zaXRpb247XHJcbiAgb3ZlcmxheTogT3ZlcmxheUNvbm5lY3Rpb25Qb3NpdGlvbjtcclxuICBhcnJvdzoge1xyXG4gICAgYm90dG9tOiBib29sZWFuO1xyXG4gICAgbGVmdDogYm9vbGVhbjtcclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { ConnectionPositionPair } from '@angular/cdk/overlay';
|
|
2
|
+
import { TemplatePortal } from '@angular/cdk/portal';
|
|
3
|
+
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
|
4
|
+
import { InfoType } from './info-models';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "../wm-tamplate-image/wm-template-image.component";
|
|
9
|
+
const DEFAULT_TOOLTIP_POSITIONS = ['bottom-right', 'bottom-center', 'bottom-left', 'top-right', 'top-center', 'top-left'];
|
|
10
|
+
export class WmInfoComponent {
|
|
11
|
+
get imageSize() {
|
|
12
|
+
return (this.smallIcon ? this.smallIconSize : this.defaultIconSize) + 'px';
|
|
13
|
+
}
|
|
14
|
+
constructor(_overlay, _elementRef, viewContainerRef) {
|
|
15
|
+
this._overlay = _overlay;
|
|
16
|
+
this._elementRef = _elementRef;
|
|
17
|
+
this.viewContainerRef = viewContainerRef;
|
|
18
|
+
this.preText = '';
|
|
19
|
+
this.postText = '';
|
|
20
|
+
this.type = InfoType.Error;
|
|
21
|
+
this.popupPosition = 'bottom-right';
|
|
22
|
+
this.useThemeForIconTemplate = false;
|
|
23
|
+
this.defaultIconSize = 24;
|
|
24
|
+
this.smallIconSize = 16;
|
|
25
|
+
this.positionBottom = true;
|
|
26
|
+
this.positionLeft = true;
|
|
27
|
+
this.currentPositions = DEFAULT_TOOLTIP_POSITIONS;
|
|
28
|
+
}
|
|
29
|
+
togglePopup(template) {
|
|
30
|
+
if (this._overlayRef) {
|
|
31
|
+
this.closePopup();
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.openPopup(template);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
openPopup(template) {
|
|
38
|
+
this.closePopup(); // close any old ones.
|
|
39
|
+
const positionPairs = this.currentPositions.map(position => {
|
|
40
|
+
const data = this.checkPopupPosition(position);
|
|
41
|
+
const vertClass = data.arrow.bottom ? 'info-bottom' : 'info-top';
|
|
42
|
+
const horClass = data.arrow.left ? 'info-left' : 'info-right';
|
|
43
|
+
return new ConnectionPositionPair({ originX: data.origin.originX, originY: data.origin.originY }, { overlayX: data.overlay.overlayX, overlayY: data.overlay.overlayY }, 0, 0, ['info-popup-wrapper', vertClass, horClass]);
|
|
44
|
+
});
|
|
45
|
+
const positionStrategy = this._overlay.position()
|
|
46
|
+
.flexibleConnectedTo(this._elementRef)
|
|
47
|
+
.withPositions(positionPairs)
|
|
48
|
+
.withFlexibleDimensions(true)
|
|
49
|
+
.withPush(true);
|
|
50
|
+
this._overlayRef = this._overlay.create({
|
|
51
|
+
panelClass: ['mat-tooltip-panel', 'modal', 'is-active'],
|
|
52
|
+
hasBackdrop: true,
|
|
53
|
+
backdropClass: 'modal-background',
|
|
54
|
+
scrollStrategy: this._overlay.scrollStrategies.reposition(),
|
|
55
|
+
positionStrategy
|
|
56
|
+
});
|
|
57
|
+
if (this._overlayRef && !this._overlayRef.hasAttached()) {
|
|
58
|
+
this._overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));
|
|
59
|
+
this._overlayRef.backdropClick().subscribe(() => this.closePopup());
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
closePopup() {
|
|
63
|
+
if (this._overlayRef) {
|
|
64
|
+
this._overlayRef.detach();
|
|
65
|
+
this._overlayRef = undefined;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
ngOnInit() {
|
|
69
|
+
if (this.popupPosition !== DEFAULT_TOOLTIP_POSITIONS[0]) {
|
|
70
|
+
const otherPositions = [];
|
|
71
|
+
const filteredByFirstPosition = DEFAULT_TOOLTIP_POSITIONS
|
|
72
|
+
.filter((item) => {
|
|
73
|
+
if (item === this.popupPosition)
|
|
74
|
+
return false;
|
|
75
|
+
if (item.startsWith(this.popupPosition.split('-')[0])) {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
otherPositions.push(item);
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
this.currentPositions = [this.popupPosition].concat(filteredByFirstPosition).concat(otherPositions);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
getIconName() {
|
|
87
|
+
switch (this.type) {
|
|
88
|
+
case InfoType.Error:
|
|
89
|
+
return 'error';
|
|
90
|
+
case InfoType.Warning:
|
|
91
|
+
return 'warning';
|
|
92
|
+
case InfoType.TabError:
|
|
93
|
+
return 'bo-error';
|
|
94
|
+
case InfoType.TabWarning:
|
|
95
|
+
return 'bo-warning';
|
|
96
|
+
case InfoType.InfoSmall:
|
|
97
|
+
return 'info-s';
|
|
98
|
+
case InfoType.Filtered:
|
|
99
|
+
return 'filter';
|
|
100
|
+
case InfoType.InlineDetails:
|
|
101
|
+
return 'eye-pick';
|
|
102
|
+
case InfoType.SubNavPanel:
|
|
103
|
+
this.smallIcon = true;
|
|
104
|
+
return 'sub-nav-warning';
|
|
105
|
+
case InfoType.InfoGold:
|
|
106
|
+
return 'info-gold';
|
|
107
|
+
default:
|
|
108
|
+
return 'info';
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
ngOnDestroy() {
|
|
112
|
+
this.closePopup();
|
|
113
|
+
}
|
|
114
|
+
checkPopupPosition(value) {
|
|
115
|
+
let currentPosition;
|
|
116
|
+
switch (value) {
|
|
117
|
+
case 'bottom-left':
|
|
118
|
+
currentPosition = {
|
|
119
|
+
origin: {
|
|
120
|
+
originX: 'end',
|
|
121
|
+
originY: 'bottom'
|
|
122
|
+
},
|
|
123
|
+
overlay: {
|
|
124
|
+
overlayX: 'end',
|
|
125
|
+
overlayY: 'top'
|
|
126
|
+
},
|
|
127
|
+
arrow: {
|
|
128
|
+
bottom: true,
|
|
129
|
+
left: true,
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
break;
|
|
133
|
+
case 'top-right':
|
|
134
|
+
currentPosition = {
|
|
135
|
+
origin: {
|
|
136
|
+
originX: 'start',
|
|
137
|
+
originY: 'top',
|
|
138
|
+
},
|
|
139
|
+
overlay: {
|
|
140
|
+
overlayX: 'start',
|
|
141
|
+
overlayY: 'bottom',
|
|
142
|
+
},
|
|
143
|
+
arrow: {
|
|
144
|
+
bottom: false,
|
|
145
|
+
left: true,
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
break;
|
|
149
|
+
case 'top-left':
|
|
150
|
+
currentPosition = {
|
|
151
|
+
origin: {
|
|
152
|
+
originX: 'end',
|
|
153
|
+
originY: 'top',
|
|
154
|
+
},
|
|
155
|
+
overlay: {
|
|
156
|
+
overlayX: 'end',
|
|
157
|
+
overlayY: 'bottom',
|
|
158
|
+
},
|
|
159
|
+
arrow: {
|
|
160
|
+
bottom: false,
|
|
161
|
+
left: false,
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
break;
|
|
165
|
+
case 'top-center':
|
|
166
|
+
currentPosition = {
|
|
167
|
+
origin: {
|
|
168
|
+
originX: 'center',
|
|
169
|
+
originY: 'top',
|
|
170
|
+
},
|
|
171
|
+
overlay: {
|
|
172
|
+
overlayX: 'center',
|
|
173
|
+
overlayY: 'bottom',
|
|
174
|
+
},
|
|
175
|
+
arrow: {
|
|
176
|
+
bottom: false,
|
|
177
|
+
left: true,
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
break;
|
|
181
|
+
case 'bottom-center':
|
|
182
|
+
currentPosition = {
|
|
183
|
+
origin: {
|
|
184
|
+
originX: 'center',
|
|
185
|
+
originY: 'bottom',
|
|
186
|
+
},
|
|
187
|
+
overlay: {
|
|
188
|
+
overlayX: 'center',
|
|
189
|
+
overlayY: 'top',
|
|
190
|
+
},
|
|
191
|
+
arrow: {
|
|
192
|
+
bottom: true,
|
|
193
|
+
left: true,
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
break;
|
|
197
|
+
case 'bottom-right':
|
|
198
|
+
default:
|
|
199
|
+
currentPosition = {
|
|
200
|
+
origin: {
|
|
201
|
+
originX: 'start',
|
|
202
|
+
originY: 'bottom',
|
|
203
|
+
},
|
|
204
|
+
overlay: {
|
|
205
|
+
overlayX: 'start',
|
|
206
|
+
overlayY: 'top',
|
|
207
|
+
},
|
|
208
|
+
arrow: {
|
|
209
|
+
bottom: true,
|
|
210
|
+
left: false,
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
return currentPosition;
|
|
215
|
+
}
|
|
216
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: WmInfoComponent, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
217
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: WmInfoComponent, selector: "wm-info", inputs: { preText: "preText", postText: "postText", header: "header", type: "type", popupPosition: "popupPosition", iconAsTemplate: "iconAsTemplate", useThemeForIconTemplate: "useThemeForIconTemplate", smallIcon: "smallIcon" }, ngImport: i0, template: "<ng-template #popupTemplate>\r\n <div class=\"u-arrow\">\r\n </div>\r\n <div class=\"u-info-content\" [ngClass]=\"{'p-error': type === 0, 'p-warning': type === 1, 'p-info': type === 2}\">\r\n <span *ngIf=\"header\" [innerHTML]=\"header\"></span>\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n <div class=\"info-wrap flex-row\" [ngClass]=\"{'p-error': type === 0, 'p-warning': type === 1, 'p-info': type === 2}\">\r\n <span class=\"info-label\" *ngIf=\"preText\">{{preText}}</span>\r\n <span class=\"info-icon\" (click)=\"togglePopup(popupTemplate)\">\r\n <wm-template-image *ngIf=\"iconAsTemplate\" [icon]=\"getIconName()\" [size]=\"imageSize\"\r\n [active]=\"useThemeForIconTemplate\">\r\n </wm-template-image>\r\n <img *ngIf=\"!iconAsTemplate\" [attr.width]=\"imageSize\" [attr.height]=\"imageSize\"\r\n src=\"{{'./assets/icon/svg/' + getIconName() + '.svg'}}\" alt=\"{{getIconName()}}\" />\r\n </span>\r\n <span class=\"info-label\" *ngIf=\"postText\">{{postText}}</span>\r\n </div> ", styles: ["@media print{body{all:unset!important}.wm-page{margin:0!important;display:block!important}.not-printable{display:none!important}*{visibility:hidden}.printable,.printable *{visibility:visible!important}}.info-wrap{justify-content:flex-start;align-items:center;height:100%;text-align:center}.info-label{display:inline-block;color:inherit;font-size:14px}.info-icon{cursor:pointer}.info-left{margin-left:-10px;align-items:flex-start}.info-right{align-items:flex-end}.u-arrow{margin-left:4px;margin-right:4px}.u-info-content{color:var(--infoColor);text-align:left;font-size:14px;font-weight:400;max-width:50vw;white-space:normal;word-wrap:break-word;word-break:break-word;background:var(--pageBackgroundColor);overflow-x:hidden;overflow-y:auto;border-color:var(--secondaryHover);border-radius:4px;padding:16px;box-shadow:0 16px 16px -1px #051d391a}.u-info-content::-webkit-scrollbar{width:4px}.p-error{color:var(--dangerColor)}.p-warning{color:var(--warningColor)}.p-info{color:var(--brandColor)}\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.WmTemplateImageComponent, selector: "wm-template-image", inputs: ["icon", "disabled", "active", "light", "classes", "backgroundColor", "size", "sizeBox"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
218
|
+
}
|
|
219
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: WmInfoComponent, decorators: [{
|
|
220
|
+
type: Component,
|
|
221
|
+
args: [{ selector: 'wm-info', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #popupTemplate>\r\n <div class=\"u-arrow\">\r\n </div>\r\n <div class=\"u-info-content\" [ngClass]=\"{'p-error': type === 0, 'p-warning': type === 1, 'p-info': type === 2}\">\r\n <span *ngIf=\"header\" [innerHTML]=\"header\"></span>\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>\r\n <div class=\"info-wrap flex-row\" [ngClass]=\"{'p-error': type === 0, 'p-warning': type === 1, 'p-info': type === 2}\">\r\n <span class=\"info-label\" *ngIf=\"preText\">{{preText}}</span>\r\n <span class=\"info-icon\" (click)=\"togglePopup(popupTemplate)\">\r\n <wm-template-image *ngIf=\"iconAsTemplate\" [icon]=\"getIconName()\" [size]=\"imageSize\"\r\n [active]=\"useThemeForIconTemplate\">\r\n </wm-template-image>\r\n <img *ngIf=\"!iconAsTemplate\" [attr.width]=\"imageSize\" [attr.height]=\"imageSize\"\r\n src=\"{{'./assets/icon/svg/' + getIconName() + '.svg'}}\" alt=\"{{getIconName()}}\" />\r\n </span>\r\n <span class=\"info-label\" *ngIf=\"postText\">{{postText}}</span>\r\n </div> ", styles: ["@media print{body{all:unset!important}.wm-page{margin:0!important;display:block!important}.not-printable{display:none!important}*{visibility:hidden}.printable,.printable *{visibility:visible!important}}.info-wrap{justify-content:flex-start;align-items:center;height:100%;text-align:center}.info-label{display:inline-block;color:inherit;font-size:14px}.info-icon{cursor:pointer}.info-left{margin-left:-10px;align-items:flex-start}.info-right{align-items:flex-end}.u-arrow{margin-left:4px;margin-right:4px}.u-info-content{color:var(--infoColor);text-align:left;font-size:14px;font-weight:400;max-width:50vw;white-space:normal;word-wrap:break-word;word-break:break-word;background:var(--pageBackgroundColor);overflow-x:hidden;overflow-y:auto;border-color:var(--secondaryHover);border-radius:4px;padding:16px;box-shadow:0 16px 16px -1px #051d391a}.u-info-content::-webkit-scrollbar{width:4px}.p-error{color:var(--dangerColor)}.p-warning{color:var(--warningColor)}.p-info{color:var(--brandColor)}\n"] }]
|
|
222
|
+
}], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }], propDecorators: { preText: [{
|
|
223
|
+
type: Input
|
|
224
|
+
}], postText: [{
|
|
225
|
+
type: Input
|
|
226
|
+
}], header: [{
|
|
227
|
+
type: Input
|
|
228
|
+
}], type: [{
|
|
229
|
+
type: Input
|
|
230
|
+
}], popupPosition: [{
|
|
231
|
+
type: Input
|
|
232
|
+
}], iconAsTemplate: [{
|
|
233
|
+
type: Input
|
|
234
|
+
}], useThemeForIconTemplate: [{
|
|
235
|
+
type: Input
|
|
236
|
+
}], smallIcon: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}] } });
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid20taW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL3dtLWluZm8vd20taW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL3dtLWluZm8vd20taW5mby5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBdUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsdUJBQXVCLEVBQXdELE1BQU0sZUFBZSxDQUFDO0FBQ3hJLE9BQU8sRUFBRSxRQUFRLEVBQXdCLE1BQU0sZUFBZSxDQUFDOzs7OztBQUUvRCxNQUFNLHlCQUF5QixHQUFHLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztBQVMxSCxNQUFNLE9BQU8sZUFBZTtJQWdCMUIsSUFBSSxTQUFTO1FBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDN0UsQ0FBQztJQUlELFlBQW9CLFFBQWlCLEVBQzNCLFdBQXVCLEVBQVUsZ0JBQWtDO1FBRHpELGFBQVEsR0FBUixRQUFRLENBQVM7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckJwRSxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFFdEIsU0FBSSxHQUFhLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDaEMsa0JBQWEsR0FBVyxjQUFjLENBQUM7UUFFdkMsNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBRWxELG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQy9CLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBQzdCLHFCQUFnQixHQUFhLHlCQUF5QixDQUFDO0lBV3ZELENBQUM7SUFFTSxXQUFXLENBQUMsUUFBMEI7UUFDM0MsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxRQUEwQjtRQUMxQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxzQkFBc0I7UUFFekMsTUFBTSxhQUFhLEdBQTZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbkYsTUFBTSxJQUFJLEdBQXlCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDakUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQzlELE9BQU8sSUFBSSxzQkFBc0IsQ0FDL0IsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQzlELEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQzFFLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUM1QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO2FBQzlDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDckMsYUFBYSxDQUFDLGFBQWEsQ0FBQzthQUM1QixzQkFBc0IsQ0FBQyxJQUFJLENBQUM7YUFDNUIsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDdEMsVUFBVSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQztZQUN2RCxXQUFXLEVBQUUsSUFBSTtZQUNqQixhQUFhLEVBQUUsa0JBQWtCO1lBQ2pDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRTtZQUMzRCxnQkFBZ0I7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQzdFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hELE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztZQUMxQixNQUFNLHVCQUF1QixHQUFHLHlCQUF5QjtpQkFDdEQsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLGFBQWE7b0JBQUUsT0FBTyxLQUFLLENBQUM7Z0JBQzlDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3RELE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUM7cUJBQU0sQ0FBQztvQkFDTixjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQixPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RHLENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixLQUFLLFFBQVEsQ0FBQyxLQUFLO2dCQUNqQixPQUFPLE9BQU8sQ0FBQztZQUNqQixLQUFLLFFBQVEsQ0FBQyxPQUFPO2dCQUNuQixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFFBQVEsQ0FBQyxRQUFRO2dCQUNwQixPQUFPLFVBQVUsQ0FBQztZQUNwQixLQUFLLFFBQVEsQ0FBQyxVQUFVO2dCQUN0QixPQUFPLFlBQVksQ0FBQztZQUN0QixLQUFLLFFBQVEsQ0FBQyxTQUFTO2dCQUNyQixPQUFPLFFBQVEsQ0FBQztZQUNsQixLQUFLLFFBQVEsQ0FBQyxRQUFRO2dCQUNwQixPQUFPLFFBQVEsQ0FBQztZQUNsQixLQUFLLFFBQVEsQ0FBQyxhQUFhO2dCQUN6QixPQUFPLFVBQVUsQ0FBQztZQUNwQixLQUFLLFFBQVEsQ0FBQyxXQUFXO2dCQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsT0FBTyxpQkFBaUIsQ0FBQztZQUMzQixLQUFLLFFBQVEsQ0FBQyxRQUFRO2dCQUNwQixPQUFPLFdBQVcsQ0FBQztZQUNyQjtnQkFDRSxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWE7UUFDOUIsSUFBSSxlQUFxQyxDQUFDO1FBQzFDLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDZCxLQUFLLGFBQWE7Z0JBQ2hCLGVBQWUsR0FBRztvQkFDaEIsTUFBTSxFQUFFO3dCQUNOLE9BQU8sRUFBRSxLQUFLO3dCQUNkLE9BQU8sRUFBRSxRQUFRO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsUUFBUSxFQUFFLEtBQUs7d0JBQ2YsUUFBUSxFQUFFLEtBQUs7cUJBQ2hCO29CQUNELEtBQUssRUFBRTt3QkFDTCxNQUFNLEVBQUUsSUFBSTt3QkFDWixJQUFJLEVBQUUsSUFBSTtxQkFDWDtpQkFDRixDQUFDO2dCQUNGLE1BQU07WUFDUixLQUFLLFdBQVc7Z0JBQ2QsZUFBZSxHQUFHO29CQUNoQixNQUFNLEVBQUU7d0JBQ04sT0FBTyxFQUFFLE9BQU87d0JBQ2hCLE9BQU8sRUFBRSxLQUFLO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDUCxRQUFRLEVBQUUsT0FBTzt3QkFDakIsUUFBUSxFQUFFLFFBQVE7cUJBQ25CO29CQUNELEtBQUssRUFBRTt3QkFDTCxNQUFNLEVBQUUsS0FBSzt3QkFDYixJQUFJLEVBQUUsSUFBSTtxQkFDWDtpQkFDRixDQUFDO2dCQUNGLE1BQU07WUFDUixLQUFLLFVBQVU7Z0JBQ2IsZUFBZSxHQUFHO29CQUNoQixNQUFNLEVBQUU7d0JBQ04sT0FBTyxFQUFFLEtBQUs7d0JBQ2QsT0FBTyxFQUFFLEtBQUs7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFFBQVEsRUFBRSxLQUFLO3dCQUNmLFFBQVEsRUFBRSxRQUFRO3FCQUNuQjtvQkFDRCxLQUFLLEVBQUU7d0JBQ0wsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsSUFBSSxFQUFFLEtBQUs7cUJBQ1o7aUJBQ0YsQ0FBQztnQkFDRixNQUFNO1lBQ1IsS0FBSyxZQUFZO2dCQUNmLGVBQWUsR0FBRztvQkFDaEIsTUFBTSxFQUFFO3dCQUNOLE9BQU8sRUFBRSxRQUFRO3dCQUNqQixPQUFPLEVBQUUsS0FBSztxQkFDZjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLFFBQVEsRUFBRSxRQUFRO3FCQUNuQjtvQkFDRCxLQUFLLEVBQUU7d0JBQ0wsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsSUFBSSxFQUFFLElBQUk7cUJBQ1g7aUJBQ0YsQ0FBQztnQkFDRixNQUFNO1lBQ1IsS0FBSyxlQUFlO2dCQUNsQixlQUFlLEdBQUc7b0JBQ2hCLE1BQU0sRUFBRTt3QkFDTixPQUFPLEVBQUUsUUFBUTt3QkFDakIsT0FBTyxFQUFFLFFBQVE7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxRQUFRLEVBQUUsUUFBUTt3QkFDbEIsUUFBUSxFQUFFLEtBQUs7cUJBQ2hCO29CQUNELEtBQUssRUFBRTt3QkFDTCxNQUFNLEVBQUUsSUFBSTt3QkFDWixJQUFJLEVBQUUsSUFBSTtxQkFDWDtpQkFDRixDQUFDO2dCQUNGLE1BQU07WUFDUixLQUFLLGNBQWMsQ0FBQztZQUNwQjtnQkFDRSxlQUFlLEdBQUc7b0JBQ2hCLE1BQU0sRUFBRTt3QkFDTixPQUFPLEVBQUUsT0FBTzt3QkFDaEIsT0FBTyxFQUFFLFFBQVE7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxRQUFRLEVBQUUsT0FBTzt3QkFDakIsUUFBUSxFQUFFLEtBQUs7cUJBQ2hCO29CQUNELEtBQUssRUFBRTt3QkFDTCxNQUFNLEVBQUUsSUFBSTt3QkFDWixJQUFJLEVBQUUsS0FBSztxQkFDWjtpQkFDRixDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7OEdBOU5VLGVBQWU7a0dBQWYsZUFBZSxtUkNkNUIsZ2lDQWtCUzs7MkZESkksZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxTQUFTLG1CQUdGLHVCQUF1QixDQUFDLE1BQU07b0lBS3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGlvblBvc2l0aW9uUGFpciwgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVGVtcGxhdGVSZWYsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmZvVHlwZSwgSVdtSW5mb1Bvc2l0aW9uUG9wdXAgfSBmcm9tICcuL2luZm8tbW9kZWxzJztcclxuXHJcbmNvbnN0IERFRkFVTFRfVE9PTFRJUF9QT1NJVElPTlMgPSBbJ2JvdHRvbS1yaWdodCcsICdib3R0b20tY2VudGVyJywgJ2JvdHRvbS1sZWZ0JywgJ3RvcC1yaWdodCcsICd0b3AtY2VudGVyJywgJ3RvcC1sZWZ0J107XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3dtLWluZm8nLFxyXG4gIHN0eWxlVXJsczogWycuL3dtLWluZm8uc2NzcyddLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93bS1pbmZvLmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgV21JbmZvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBwcmVUZXh0OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBwb3N0VGV4dDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaGVhZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZTogSW5mb1R5cGUgPSBJbmZvVHlwZS5FcnJvcjtcclxuICBASW5wdXQoKSBwb3B1cFBvc2l0aW9uOiBzdHJpbmcgPSAnYm90dG9tLXJpZ2h0JztcclxuICBASW5wdXQoKSBpY29uQXNUZW1wbGF0ZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSB1c2VUaGVtZUZvckljb25UZW1wbGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNtYWxsSWNvbjogYm9vbGVhbjtcclxuICBkZWZhdWx0SWNvblNpemUgPSAyNDtcclxuICBzbWFsbEljb25TaXplID0gMTY7XHJcbiAgcG9zaXRpb25Cb3R0b206IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHBvc2l0aW9uTGVmdDogYm9vbGVhbiA9IHRydWU7XHJcbiAgY3VycmVudFBvc2l0aW9uczogc3RyaW5nW10gPSBERUZBVUxUX1RPT0xUSVBfUE9TSVRJT05TO1xyXG5cclxuICBnZXQgaW1hZ2VTaXplKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLnNtYWxsSWNvbiA/IHRoaXMuc21hbGxJY29uU2l6ZSA6IHRoaXMuZGVmYXVsdEljb25TaXplKSArICdweCc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVBvcHVwKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XHJcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICB0aGlzLmNsb3NlUG9wdXAoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlblBvcHVwKHRlbXBsYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgb3BlblBvcHVwKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XHJcbiAgICB0aGlzLmNsb3NlUG9wdXAoKTsgLy8gY2xvc2UgYW55IG9sZCBvbmVzLlxyXG5cclxuICAgIGNvbnN0IHBvc2l0aW9uUGFpcnM6IENvbm5lY3Rpb25Qb3NpdGlvblBhaXJbXSA9IHRoaXMuY3VycmVudFBvc2l0aW9ucy5tYXAocG9zaXRpb24gPT4ge1xyXG4gICAgICBjb25zdCBkYXRhOiBJV21JbmZvUG9zaXRpb25Qb3B1cCA9IHRoaXMuY2hlY2tQb3B1cFBvc2l0aW9uKHBvc2l0aW9uKTtcclxuICAgICAgY29uc3QgdmVydENsYXNzID0gZGF0YS5hcnJvdy5ib3R0b20gPyAnaW5mby1ib3R0b20nIDogJ2luZm8tdG9wJztcclxuICAgICAgY29uc3QgaG9yQ2xhc3MgPSBkYXRhLmFycm93LmxlZnQgPyAnaW5mby1sZWZ0JyA6ICdpbmZvLXJpZ2h0JztcclxuICAgICAgcmV0dXJuIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKFxyXG4gICAgICAgIHsgb3JpZ2luWDogZGF0YS5vcmlnaW4ub3JpZ2luWCwgb3JpZ2luWTogZGF0YS5vcmlnaW4ub3JpZ2luWSB9LFxyXG4gICAgICAgIHsgb3ZlcmxheVg6IGRhdGEub3ZlcmxheS5vdmVybGF5WCwgb3ZlcmxheVk6IGRhdGEub3ZlcmxheS5vdmVybGF5WSB9LCAwLCAwLFxyXG4gICAgICAgIFsnaW5mby1wb3B1cC13cmFwcGVyJywgdmVydENsYXNzLCBob3JDbGFzc11cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKVxyXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50UmVmKVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhwb3NpdGlvblBhaXJzKVxyXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0cnVlKVxyXG4gICAgICAud2l0aFB1c2godHJ1ZSk7XHJcblxyXG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgcGFuZWxDbGFzczogWydtYXQtdG9vbHRpcC1wYW5lbCcsICdtb2RhbCcsICdpcy1hY3RpdmUnXSxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdtb2RhbC1iYWNrZ3JvdW5kJyxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3lcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYgJiYgIXRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xyXG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZVBvcHVwKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZVBvcHVwKCkge1xyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMucG9wdXBQb3NpdGlvbiAhPT0gREVGQVVMVF9UT09MVElQX1BPU0lUSU9OU1swXSkge1xyXG4gICAgICBjb25zdCBvdGhlclBvc2l0aW9ucyA9IFtdO1xyXG4gICAgICBjb25zdCBmaWx0ZXJlZEJ5Rmlyc3RQb3NpdGlvbiA9IERFRkFVTFRfVE9PTFRJUF9QT1NJVElPTlNcclxuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICBpZiAoaXRlbSA9PT0gdGhpcy5wb3B1cFBvc2l0aW9uKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKHRoaXMucG9wdXBQb3NpdGlvbi5zcGxpdCgnLScpWzBdKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG90aGVyUG9zaXRpb25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5jdXJyZW50UG9zaXRpb25zID0gW3RoaXMucG9wdXBQb3NpdGlvbl0uY29uY2F0KGZpbHRlcmVkQnlGaXJzdFBvc2l0aW9uKS5jb25jYXQob3RoZXJQb3NpdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEljb25OYW1lKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcclxuICAgICAgY2FzZSBJbmZvVHlwZS5FcnJvcjpcclxuICAgICAgICByZXR1cm4gJ2Vycm9yJztcclxuICAgICAgY2FzZSBJbmZvVHlwZS5XYXJuaW5nOlxyXG4gICAgICAgIHJldHVybiAnd2FybmluZyc7XHJcbiAgICAgIGNhc2UgSW5mb1R5cGUuVGFiRXJyb3I6XHJcbiAgICAgICAgcmV0dXJuICdiby1lcnJvcic7XHJcbiAgICAgIGNhc2UgSW5mb1R5cGUuVGFiV2FybmluZzpcclxuICAgICAgICByZXR1cm4gJ2JvLXdhcm5pbmcnO1xyXG4gICAgICBjYXNlIEluZm9UeXBlLkluZm9TbWFsbDpcclxuICAgICAgICByZXR1cm4gJ2luZm8tcyc7XHJcbiAgICAgIGNhc2UgSW5mb1R5cGUuRmlsdGVyZWQ6XHJcbiAgICAgICAgcmV0dXJuICdmaWx0ZXInO1xyXG4gICAgICBjYXNlIEluZm9UeXBlLklubGluZURldGFpbHM6XHJcbiAgICAgICAgcmV0dXJuICdleWUtcGljayc7XHJcbiAgICAgIGNhc2UgSW5mb1R5cGUuU3ViTmF2UGFuZWw6XHJcbiAgICAgICAgdGhpcy5zbWFsbEljb24gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiAnc3ViLW5hdi13YXJuaW5nJztcclxuICAgICAgY2FzZSBJbmZvVHlwZS5JbmZvR29sZDpcclxuICAgICAgICByZXR1cm4gJ2luZm8tZ29sZCc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICdpbmZvJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja1BvcHVwUG9zaXRpb24odmFsdWU6IHN0cmluZyk6IElXbUluZm9Qb3NpdGlvblBvcHVwIHtcclxuICAgIGxldCBjdXJyZW50UG9zaXRpb246IElXbUluZm9Qb3NpdGlvblBvcHVwO1xyXG4gICAgc3dpdGNoICh2YWx1ZSkge1xyXG4gICAgICBjYXNlICdib3R0b20tbGVmdCc6XHJcbiAgICAgICAgY3VycmVudFBvc2l0aW9uID0ge1xyXG4gICAgICAgICAgb3JpZ2luOiB7XHJcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxyXG4gICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG92ZXJsYXk6IHtcclxuICAgICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxyXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBhcnJvdzoge1xyXG4gICAgICAgICAgICBib3R0b206IHRydWUsXHJcbiAgICAgICAgICAgIGxlZnQ6IHRydWUsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG9wLXJpZ2h0JzpcclxuICAgICAgICBjdXJyZW50UG9zaXRpb24gPSB7XHJcbiAgICAgICAgICBvcmlnaW46IHtcclxuICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb3ZlcmxheToge1xyXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcclxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGFycm93OiB7XHJcbiAgICAgICAgICAgIGJvdHRvbTogZmFsc2UsXHJcbiAgICAgICAgICAgIGxlZnQ6IHRydWUsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG9wLWxlZnQnOlxyXG4gICAgICAgIGN1cnJlbnRQb3NpdGlvbiA9IHtcclxuICAgICAgICAgIG9yaWdpbjoge1xyXG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcclxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb3ZlcmxheToge1xyXG4gICAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXHJcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBhcnJvdzoge1xyXG4gICAgICAgICAgICBib3R0b206IGZhbHNlLFxyXG4gICAgICAgICAgICBsZWZ0OiBmYWxzZSxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AtY2VudGVyJzpcclxuICAgICAgICBjdXJyZW50UG9zaXRpb24gPSB7XHJcbiAgICAgICAgICBvcmlnaW46IHtcclxuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG92ZXJsYXk6IHtcclxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYXJyb3c6IHtcclxuICAgICAgICAgICAgYm90dG9tOiBmYWxzZSxcclxuICAgICAgICAgICAgbGVmdDogdHJ1ZSxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tY2VudGVyJzpcclxuICAgICAgICBjdXJyZW50UG9zaXRpb24gPSB7XHJcbiAgICAgICAgICBvcmlnaW46IHtcclxuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG92ZXJsYXk6IHtcclxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYXJyb3c6IHtcclxuICAgICAgICAgICAgYm90dG9tOiB0cnVlLFxyXG4gICAgICAgICAgICBsZWZ0OiB0cnVlLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgY3VycmVudFBvc2l0aW9uID0ge1xyXG4gICAgICAgICAgb3JpZ2luOiB7XHJcbiAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG92ZXJsYXk6IHtcclxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBhcnJvdzoge1xyXG4gICAgICAgICAgICBib3R0b206IHRydWUsXHJcbiAgICAgICAgICAgIGxlZnQ6IGZhbHNlLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uO1xyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI3BvcHVwVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cInUtYXJyb3dcIj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidS1pbmZvLWNvbnRlbnRcIiBbbmdDbGFzc109XCJ7J3AtZXJyb3InOiB0eXBlID09PSAwLCAncC13YXJuaW5nJzogdHlwZSA9PT0gMSwgJ3AtaW5mbyc6IHR5cGUgPT09IDJ9XCI+XHJcbiAgICA8c3BhbiAqbmdJZj1cImhlYWRlclwiIFtpbm5lckhUTUxdPVwiaGVhZGVyXCI+PC9zcGFuPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4gPGRpdiBjbGFzcz1cImluZm8td3JhcCBmbGV4LXJvd1wiIFtuZ0NsYXNzXT1cInsncC1lcnJvcic6IHR5cGUgPT09IDAsICdwLXdhcm5pbmcnOiB0eXBlID09PSAxLCAncC1pbmZvJzogdHlwZSA9PT0gMn1cIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW5mby1sYWJlbFwiICpuZ0lmPVwicHJlVGV4dFwiPnt7cHJlVGV4dH19PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpbmZvLWljb25cIiAoY2xpY2spPVwidG9nZ2xlUG9wdXAocG9wdXBUZW1wbGF0ZSlcIj5cclxuICAgICAgPHdtLXRlbXBsYXRlLWltYWdlICpuZ0lmPVwiaWNvbkFzVGVtcGxhdGVcIiBbaWNvbl09XCJnZXRJY29uTmFtZSgpXCIgW3NpemVdPVwiaW1hZ2VTaXplXCJcclxuICAgICAgICBbYWN0aXZlXT1cInVzZVRoZW1lRm9ySWNvblRlbXBsYXRlXCI+XHJcbiAgICAgIDwvd20tdGVtcGxhdGUtaW1hZ2U+XHJcbiAgICAgIDxpbWcgKm5nSWY9XCIhaWNvbkFzVGVtcGxhdGVcIiBbYXR0ci53aWR0aF09XCJpbWFnZVNpemVcIiBbYXR0ci5oZWlnaHRdPVwiaW1hZ2VTaXplXCJcclxuICAgICAgICBzcmM9XCJ7eycuL2Fzc2V0cy9pY29uL3N2Zy8nICsgZ2V0SWNvbk5hbWUoKSArICcuc3ZnJ319XCIgYWx0PVwie3tnZXRJY29uTmFtZSgpfX1cIiAvPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpbmZvLWxhYmVsXCIgKm5nSWY9XCJwb3N0VGV4dFwiPnt7cG9zdFRleHR9fTwvc3Bhbj5cclxuICA8L2Rpdj4gIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class InfoCardComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.useCustomIcon = false;
|
|
7
|
+
}
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: InfoCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: InfoCardComponent, selector: "wm-info-card", inputs: { label: "label", value: "value", icon: "icon", useCustomIcon: "useCustomIcon" }, ngImport: i0, template: "<div class=\"wm-info-card flex-row\">\r\n <div class=\"info-icon\" *ngIf=\"!useCustomIcon\">\r\n <div class=\"icon-bg\"></div>\r\n <img class=\"info-svg\" src=\"{{'./assets/icon/svg/' + icon + '.svg'}}\" alt=\"type\" />\r\n </div>\r\n <div class=\"info-icon\" *ngIf=\"useCustomIcon\">\r\n <ng-content select=\"[wmCustomIcon]\"></ng-content>\r\n </div>\r\n <div class=\"flex-col info-content\">\r\n <div class=\"info-card-value text-hidden\" title=\"{{value}}\">{{value}}</div>\r\n <div class=\"info-card-label text-hidden\" title=\"{{label}}\">{{label}}</div>\r\n </div>\r\n</div>", styles: ["@media print{body{all:unset!important}.wm-page{margin:0!important;display:block!important}.not-printable{display:none!important}*{visibility:hidden}.printable,.printable *{visibility:visible!important}}.wm-info-card{background:var(--pageBackgroundColor);width:100%;height:100px;margin-right:18px;padding:25px;border-radius:4px;box-sizing:border-box}.info-icon{display:inline-flex;width:48px;height:48px;border:1px solid transparent;border-radius:50%;margin:auto 18px auto 0;flex-shrink:0;position:relative;overflow:hidden}.icon-bg{width:100%;height:100%;position:absolute;background-color:var(--strongFontColor);opacity:.05}.info-svg{margin:auto;width:24px;height:24px;z-index:1}.info-content{justify-content:center;flex-grow:1;flex-shrink:1;overflow:hidden}.info-card-value{color:var(--strongFontColor);line-height:20px;font-size:22px;width:100%;height:20px;margin-bottom:2px}.info-card-label{color:var(--disabledTextColor);font-size:14px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: InfoCardComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: 'wm-info-card', template: "<div class=\"wm-info-card flex-row\">\r\n <div class=\"info-icon\" *ngIf=\"!useCustomIcon\">\r\n <div class=\"icon-bg\"></div>\r\n <img class=\"info-svg\" src=\"{{'./assets/icon/svg/' + icon + '.svg'}}\" alt=\"type\" />\r\n </div>\r\n <div class=\"info-icon\" *ngIf=\"useCustomIcon\">\r\n <ng-content select=\"[wmCustomIcon]\"></ng-content>\r\n </div>\r\n <div class=\"flex-col info-content\">\r\n <div class=\"info-card-value text-hidden\" title=\"{{value}}\">{{value}}</div>\r\n <div class=\"info-card-label text-hidden\" title=\"{{label}}\">{{label}}</div>\r\n </div>\r\n</div>", styles: ["@media print{body{all:unset!important}.wm-page{margin:0!important;display:block!important}.not-printable{display:none!important}*{visibility:hidden}.printable,.printable *{visibility:visible!important}}.wm-info-card{background:var(--pageBackgroundColor);width:100%;height:100px;margin-right:18px;padding:25px;border-radius:4px;box-sizing:border-box}.info-icon{display:inline-flex;width:48px;height:48px;border:1px solid transparent;border-radius:50%;margin:auto 18px auto 0;flex-shrink:0;position:relative;overflow:hidden}.icon-bg{width:100%;height:100%;position:absolute;background-color:var(--strongFontColor);opacity:.05}.info-svg{margin:auto;width:24px;height:24px;z-index:1}.info-content{justify-content:center;flex-grow:1;flex-shrink:1;overflow:hidden}.info-card-value{color:var(--strongFontColor);line-height:20px;font-size:22px;width:100%;height:20px;margin-bottom:2px}.info-card-label{color:var(--disabledTextColor);font-size:14px}\n"] }]
|
|
14
|
+
}], propDecorators: { label: [{
|
|
15
|
+
type: Input
|
|
16
|
+
}], value: [{
|
|
17
|
+
type: Input
|
|
18
|
+
}], icon: [{
|
|
19
|
+
type: Input
|
|
20
|
+
}], useCustomIcon: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}] } });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid20taW5mby1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J0di1iYXNlLWNvbnRyb2xzL3NyYy9saWIvd20taW5mby1jYXJkL3dtLWluZm8tY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL3dtLWluZm8tY2FyZC93bS1pbmZvLWNhcmQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUWpELE1BQU0sT0FBTyxpQkFBaUI7SUFOOUI7UUFVYSxrQkFBYSxHQUFZLEtBQUssQ0FBQztLQUMzQzs4R0FMWSxpQkFBaUI7a0dBQWpCLGlCQUFpQiw4SUNSOUIsMm5CQVlNOzsyRkRKTyxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0ksY0FBYzs4QkFNZixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3dtLWluZm8tY2FyZCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi93bS1pbmZvLWNhcmQuc2NzcyddLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3dtLWluZm8tY2FyZC5odG1sJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEluZm9DYXJkQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xyXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgdXNlQ3VzdG9tSWNvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ3bS1pbmZvLWNhcmQgZmxleC1yb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbmZvLWljb25cIiAqbmdJZj1cIiF1c2VDdXN0b21JY29uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24tYmdcIj48L2Rpdj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwiaW5mby1zdmdcIiBzcmM9XCJ7eycuL2Fzc2V0cy9pY29uL3N2Zy8nICsgaWNvbiArICcuc3ZnJ319XCIgYWx0PVwidHlwZVwiIC8+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbmZvLWljb25cIiAqbmdJZj1cInVzZUN1c3RvbUljb25cIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbd21DdXN0b21JY29uXVwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtY29sIGluZm8tY29udGVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWNhcmQtdmFsdWUgdGV4dC1oaWRkZW5cIiB0aXRsZT1cInt7dmFsdWV9fVwiPnt7dmFsdWV9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWNhcmQtbGFiZWwgdGV4dC1oaWRkZW5cIiB0aXRsZT1cInt7bGFiZWx9fVwiPnt7bGFiZWx9fTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|