btv-base-controls 0.1.24 → 0.1.25
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/{esm2020 → esm2022}/btv-base-controls.mjs +4 -4
- package/{esm2020 → esm2022}/lib/basic.module.mjs +64 -64
- package/esm2022/lib/blink-message/blink-message.component.mjs +54 -0
- package/{esm2020 → esm2022}/lib/btv-icon-button/btv-counter-button.mjs +47 -47
- package/esm2022/lib/btv-icon-button/btv-icon-button.component.mjs +89 -0
- package/esm2022/lib/btv-progress/btv-progress.component.mjs +71 -0
- package/esm2022/lib/btv-search/btv-search.component.mjs +82 -0
- package/{esm2020 → esm2022}/lib/busy-indicator/busy-indicator.component.mjs +16 -16
- package/{esm2020 → esm2022}/lib/custom-tool-tip/custom-tool-tip.component.mjs +34 -34
- package/esm2022/lib/custom-tool-tip/tool-tip-renderer.directive.mjs +119 -0
- package/{esm2020 → esm2022}/lib/illustration/illustration.component.mjs +17 -17
- package/esm2022/lib/wm-avatar/avatar.component.mjs +175 -0
- package/{esm2020 → esm2022}/lib/wm-back-btn/wm-back-btn.component.mjs +26 -26
- package/{esm2020 → esm2022}/lib/wm-beta-text/wm-beta-text.component.mjs +19 -19
- package/{esm2020 → esm2022}/lib/wm-info/info-models.mjs +13 -13
- package/esm2022/lib/wm-info/wm-info.component.mjs +239 -0
- package/{esm2020 → esm2022}/lib/wm-info-card/wm-info-card.component.mjs +23 -23
- package/{esm2020 → esm2022}/lib/wm-no-content/wm-no-content.component.mjs +30 -30
- package/esm2022/lib/wm-panel-bar/wm-panel-bar.component.mjs +78 -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/{esm2020 → esm2022}/lib/wm-state-icon/wm-state-icon.component.mjs +18 -18
- package/{esm2020 → esm2022}/lib/wm-tag/wm-tag.component.mjs +28 -28
- package/esm2022/lib/wm-tamplate-image/wm-template-image.component.mjs +71 -0
- package/{esm2020 → esm2022}/lib/wm-toggle/wm-toggle.component.mjs +31 -31
- package/{esm2020 → esm2022}/models/guidExtension.mjs +14 -14
- package/{esm2020 → esm2022}/public-api.mjs +27 -27
- package/{fesm2020 → fesm2022}/btv-base-controls.mjs +1436 -1430
- package/fesm2022/btv-base-controls.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/basic.module.d.ts +33 -33
- package/lib/blink-message/blink-message.component.d.ts +20 -20
- package/lib/btv-icon-button/btv-counter-button.d.ts +12 -12
- package/lib/btv-icon-button/btv-icon-button.component.d.ts +30 -30
- package/lib/btv-progress/btv-progress.component.d.ts +20 -20
- package/lib/btv-search/btv-search.component.d.ts +31 -31
- package/lib/busy-indicator/busy-indicator.component.d.ts +7 -7
- package/lib/custom-tool-tip/custom-tool-tip.component.d.ts +35 -35
- package/lib/custom-tool-tip/tool-tip-renderer.directive.d.ts +49 -49
- package/lib/illustration/illustration.component.d.ts +10 -10
- package/lib/wm-avatar/avatar.component.d.ts +63 -63
- package/lib/wm-back-btn/wm-back-btn.component.d.ts +10 -10
- package/lib/wm-beta-text/wm-beta-text.component.d.ts +7 -7
- package/lib/wm-info/info-models.d.ts +21 -21
- package/lib/wm-info/wm-info.component.d.ts +34 -34
- package/lib/wm-info-card/wm-info-card.component.d.ts +9 -9
- package/lib/wm-no-content/wm-no-content.component.d.ts +11 -11
- package/lib/wm-panel-bar/wm-panel-bar.component.d.ts +25 -25
- package/lib/wm-scalable-div/scalable-div.component.d.ts +24 -24
- package/lib/wm-spinner/wm-spinner.component.d.ts +37 -37
- package/lib/wm-state-icon/wm-state-icon.component.d.ts +9 -9
- package/lib/wm-tag/wm-tag.component.d.ts +10 -10
- package/lib/wm-tamplate-image/wm-template-image.component.d.ts +49 -49
- package/lib/wm-toggle/wm-toggle.component.d.ts +11 -11
- package/models/guidExtension.d.ts +5 -5
- package/package.json +5 -11
- package/public-api.d.ts +24 -24
- package/esm2020/lib/blink-message/blink-message.component.mjs +0 -54
- package/esm2020/lib/btv-icon-button/btv-icon-button.component.mjs +0 -89
- package/esm2020/lib/btv-progress/btv-progress.component.mjs +0 -71
- package/esm2020/lib/btv-search/btv-search.component.mjs +0 -82
- package/esm2020/lib/custom-tool-tip/tool-tip-renderer.directive.mjs +0 -113
- package/esm2020/lib/wm-avatar/avatar.component.mjs +0 -175
- package/esm2020/lib/wm-info/wm-info.component.mjs +0 -239
- package/esm2020/lib/wm-panel-bar/wm-panel-bar.component.mjs +0 -78
- package/esm2020/lib/wm-scalable-div/scalable-div.component.mjs +0 -105
- package/esm2020/lib/wm-spinner/wm-spinner.component.mjs +0 -135
- package/esm2020/lib/wm-tamplate-image/wm-template-image.component.mjs +0 -71
- package/fesm2015/btv-base-controls.mjs +0 -1482
- package/fesm2015/btv-base-controls.mjs.map +0 -1
- package/fesm2020/btv-base-controls.mjs.map +0 -1
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "../wm-tamplate-image/wm-template-image.component";
|
|
5
|
-
import * as i3 from "../custom-tool-tip/tool-tip-renderer.directive";
|
|
6
|
-
export class BtvIconButtonComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.titleText = '';
|
|
9
|
-
this.disabled = false;
|
|
10
|
-
this.size = 'large';
|
|
11
|
-
this.icon = '';
|
|
12
|
-
this.changed = false;
|
|
13
|
-
this.isTabStop = false;
|
|
14
|
-
this.light = false;
|
|
15
|
-
this.buttonClasses = '';
|
|
16
|
-
this.imageClasses = 'icon-svg';
|
|
17
|
-
this.danger = false;
|
|
18
|
-
this.unavailableText = "Unavailable";
|
|
19
|
-
this.isHover = false;
|
|
20
|
-
this.floor = Math.floor;
|
|
21
|
-
this.isInFullScreen = false;
|
|
22
|
-
this.iClick = new EventEmitter();
|
|
23
|
-
}
|
|
24
|
-
get getIsDisabled() { return this.disabled; }
|
|
25
|
-
get getIsSmall() { return this.size === 'small'; }
|
|
26
|
-
get getIsMedium() { return this.size === 'medium'; }
|
|
27
|
-
get getIsDanger() { return this.danger; }
|
|
28
|
-
get iconSize() {
|
|
29
|
-
switch (this.size) {
|
|
30
|
-
case 'small': return 16;
|
|
31
|
-
case 'medium': return 20;
|
|
32
|
-
default: return 24;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
get animate() {
|
|
36
|
-
return {
|
|
37
|
-
type: 'zoom',
|
|
38
|
-
duration: 200
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
onClick($event) {
|
|
42
|
-
if (this.disabled)
|
|
43
|
-
return;
|
|
44
|
-
this.iClick.emit($event);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
BtvIconButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BtvIconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
-
BtvIconButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BtvIconButtonComponent, selector: "btv-icon-button", inputs: { titleText: "titleText", disabled: "disabled", size: "size", icon: "icon", changed: "changed", isTabStop: "isTabStop", light: "light", buttonClasses: "buttonClasses", imageClasses: "imageClasses", danger: "danger", unavailableText: "unavailableText" }, outputs: { iClick: "iClick" }, host: { properties: { "class.disabled": "this.getIsDisabled", "class.small": "this.getIsSmall", "class.medium": "this.getIsMedium", "class.danger": "this.getIsDanger" } }, ngImport: i0, template: "<button class=\"icon flex-row {{buttonClasses}}\" (click)=\"onClick($event)\" type=\"button\" #button\r\n [tabindex]=\"(!isTabStop || disabled) ? -1 : undefined\" [showToolTip]=\"!!titleText\" customToolTip [contentTemplate]=\"template\">\r\n\r\n <wm-template-image [icon]=\"icon\" [size]=\"floor(iconSize * (isHover ? 1.1: 1)) + 'px'\" [active]=\"!disabled && changed\"\r\n [light]=\"light\" [classes]=\"imageClasses\">\r\n </wm-template-image>\r\n <ng-content></ng-content>\r\n\r\n</button>\r\n\r\n<ng-template #template>\r\n <span class=\"tooltip-text\"> {{titleText}} </span>\r\n <span *ngIf=\"disabled\" class=\"tooltip-text\"> - {{unavailableText}} </span>\r\n</ng-template>", 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:block;background:var(--pageBackgroundColor);border:1px solid;border-radius:4px;border-color:var(--secondaryHover);cursor:pointer;box-sizing:border-box;width:36px;height:36px;flex-shrink:0}:host:focus .icon,:host:hover .icon{outline:none;background:var(--secondaryHover)}:host(.u-no-border){border-width:0px}:host(.small){width:16px;height:16px}:host(.medium){width:30px;height:30px}:host(.disabled){background-color:var(--disabledColor);border-color:var(--disabledColor);color:var(--lightFontColor);cursor:default}:host(.disabled):hover{background-color:var(--disabledColor);border-color:var(--disabledColor)}:host(.disabled) .icon{cursor:default}:host(.danger){background-color:var(--dangerColor);border-color:var(--warningColor)}.tooltip-text{align-self:center}.tooltip-disabled{font-size:14px -2;counter-reset:var(--lightFontColor)}.icon{justify-content:center;align-items:center;width:100%;height:100%;border:0px;cursor:pointer;color:var(--strongFontColor);outline:0px;padding:0;background:transparent;border-radius:inherit}.wm-counter-button{position:relative}.wm-counter{display:inline-block;width:16px;height:16px;line-height:16px;position:absolute;top:0;right:0;border:none;background-color:var(--dangerColor);border-radius:50%;font-size:10px;font-weight:700;text-align:center;color:var(--strongFontColor);text-indent:-1px;overflow:hidden;white-space:nowrap}.u-btn-validate{border-color:var(--dangerColor);background-color:var(--dangerColor);color:var(--onBrandTextColor)}.u-btn-validate:hover{background-color:var(--dangerColor)}.u-btn-primary{border-color:var(--brandColor);background-color:var(--brandColor);color:var(--onBrandTextColor)}.u-btn-primary:hover{background-color:var(--onBrandHoverColor)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.WmTemplateImageComponent, selector: "wm-template-image", inputs: ["icon", "disabled", "active", "light", "classes", "backgroundColor", "size", "sizeBox"] }, { kind: "directive", type: i3.ToolTipRendererDirective, selector: "[customToolTip]", inputs: ["showToolTip", "customToolTip", "contentTemplate", "customAnchor", "useCustom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BtvIconButtonComponent, decorators: [{
|
|
50
|
-
type: Component,
|
|
51
|
-
args: [{ selector: 'btv-icon-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button class=\"icon flex-row {{buttonClasses}}\" (click)=\"onClick($event)\" type=\"button\" #button\r\n [tabindex]=\"(!isTabStop || disabled) ? -1 : undefined\" [showToolTip]=\"!!titleText\" customToolTip [contentTemplate]=\"template\">\r\n\r\n <wm-template-image [icon]=\"icon\" [size]=\"floor(iconSize * (isHover ? 1.1: 1)) + 'px'\" [active]=\"!disabled && changed\"\r\n [light]=\"light\" [classes]=\"imageClasses\">\r\n </wm-template-image>\r\n <ng-content></ng-content>\r\n\r\n</button>\r\n\r\n<ng-template #template>\r\n <span class=\"tooltip-text\"> {{titleText}} </span>\r\n <span *ngIf=\"disabled\" class=\"tooltip-text\"> - {{unavailableText}} </span>\r\n</ng-template>", 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:block;background:var(--pageBackgroundColor);border:1px solid;border-radius:4px;border-color:var(--secondaryHover);cursor:pointer;box-sizing:border-box;width:36px;height:36px;flex-shrink:0}:host:focus .icon,:host:hover .icon{outline:none;background:var(--secondaryHover)}:host(.u-no-border){border-width:0px}:host(.small){width:16px;height:16px}:host(.medium){width:30px;height:30px}:host(.disabled){background-color:var(--disabledColor);border-color:var(--disabledColor);color:var(--lightFontColor);cursor:default}:host(.disabled):hover{background-color:var(--disabledColor);border-color:var(--disabledColor)}:host(.disabled) .icon{cursor:default}:host(.danger){background-color:var(--dangerColor);border-color:var(--warningColor)}.tooltip-text{align-self:center}.tooltip-disabled{font-size:14px -2;counter-reset:var(--lightFontColor)}.icon{justify-content:center;align-items:center;width:100%;height:100%;border:0px;cursor:pointer;color:var(--strongFontColor);outline:0px;padding:0;background:transparent;border-radius:inherit}.wm-counter-button{position:relative}.wm-counter{display:inline-block;width:16px;height:16px;line-height:16px;position:absolute;top:0;right:0;border:none;background-color:var(--dangerColor);border-radius:50%;font-size:10px;font-weight:700;text-align:center;color:var(--strongFontColor);text-indent:-1px;overflow:hidden;white-space:nowrap}.u-btn-validate{border-color:var(--dangerColor);background-color:var(--dangerColor);color:var(--onBrandTextColor)}.u-btn-validate:hover{background-color:var(--dangerColor)}.u-btn-primary{border-color:var(--brandColor);background-color:var(--brandColor);color:var(--onBrandTextColor)}.u-btn-primary:hover{background-color:var(--onBrandHoverColor)}\n"] }]
|
|
52
|
-
}], ctorParameters: function () { return []; }, propDecorators: { getIsDisabled: [{
|
|
53
|
-
type: HostBinding,
|
|
54
|
-
args: ['class.disabled']
|
|
55
|
-
}], getIsSmall: [{
|
|
56
|
-
type: HostBinding,
|
|
57
|
-
args: ['class.small']
|
|
58
|
-
}], getIsMedium: [{
|
|
59
|
-
type: HostBinding,
|
|
60
|
-
args: ['class.medium']
|
|
61
|
-
}], getIsDanger: [{
|
|
62
|
-
type: HostBinding,
|
|
63
|
-
args: ['class.danger']
|
|
64
|
-
}], titleText: [{
|
|
65
|
-
type: Input
|
|
66
|
-
}], disabled: [{
|
|
67
|
-
type: Input
|
|
68
|
-
}], size: [{
|
|
69
|
-
type: Input
|
|
70
|
-
}], icon: [{
|
|
71
|
-
type: Input
|
|
72
|
-
}], changed: [{
|
|
73
|
-
type: Input
|
|
74
|
-
}], isTabStop: [{
|
|
75
|
-
type: Input
|
|
76
|
-
}], light: [{
|
|
77
|
-
type: Input
|
|
78
|
-
}], buttonClasses: [{
|
|
79
|
-
type: Input
|
|
80
|
-
}], imageClasses: [{
|
|
81
|
-
type: Input
|
|
82
|
-
}], danger: [{
|
|
83
|
-
type: Input
|
|
84
|
-
}], unavailableText: [{
|
|
85
|
-
type: Input
|
|
86
|
-
}], iClick: [{
|
|
87
|
-
type: Output
|
|
88
|
-
}] } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnR2LWljb24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J0di1iYXNlLWNvbnRyb2xzL3NyYy9saWIvYnR2LWljb24tYnV0dG9uL2J0di1pY29uLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL2J0di1pY29uLWJ1dHRvbi9idHYtaWNvbi1idXR0b24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFXN0csTUFBTSxPQUFPLHNCQUFzQjtJQTBDakM7UUFsQ1MsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBZSxPQUFPLENBQUM7UUFDM0IsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixpQkFBWSxHQUFHLFVBQVUsQ0FBQztRQUMxQixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLG9CQUFlLEdBQVcsYUFBYSxDQUFDO1FBQzFDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFdkIsVUFBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFbkIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFpQnRCLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUc5RCxDQUFDO0lBekNELElBQW1DLGFBQWEsS0FBSyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVFLElBQWdDLFVBQVUsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM5RSxJQUFpQyxXQUFXLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDakYsSUFBaUMsV0FBVyxLQUFLLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFvQnRFLElBQVcsUUFBUTtRQUNqQixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDakIsS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN4QixLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU07WUFDWixRQUFRLEVBQUUsR0FBRztTQUNkLENBQUM7SUFDSixDQUFDO0lBT0QsT0FBTyxDQUFDLE1BQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7bUhBaERVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHdnQkNYbkMsbXJCQWFjOzJGREZELHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTswRUFLWixhQUFhO3NCQUEvQyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDRyxVQUFVO3NCQUF6QyxXQUFXO3VCQUFDLGFBQWE7Z0JBQ08sV0FBVztzQkFBM0MsV0FBVzt1QkFBQyxjQUFjO2dCQUNNLFdBQVc7c0JBQTNDLFdBQVc7dUJBQUMsY0FBYztnQkFHbEIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFzQkksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgQnV0dG9uU2l6ZSA9ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2J0di1pY29uLWJ1dHRvbicsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYnR2LWljb24tYnV0dG9uLnNjc3MnXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYnR2LWljb24tYnV0dG9uLmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQnR2SWNvbkJ1dHRvbkNvbXBvbmVudCB7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGlzYWJsZWQnKSBnZXQgZ2V0SXNEaXNhYmxlZCgpIHsgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7IH1cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNtYWxsJykgZ2V0IGdldElzU21hbGwoKSB7IHJldHVybiB0aGlzLnNpemUgPT09ICdzbWFsbCc7IH1cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1lZGl1bScpIGdldCBnZXRJc01lZGl1bSgpIHsgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ21lZGl1bSc7IH1cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRhbmdlcicpIGdldCBnZXRJc0RhbmdlcigpIHsgcmV0dXJuIHRoaXMuZGFuZ2VyOyB9XHJcblxyXG5cclxuICBASW5wdXQoKSB0aXRsZVRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2l6ZTogQnV0dG9uU2l6ZSA9ICdsYXJnZSc7XHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgY2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzVGFiU3RvcDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxpZ2h0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYnV0dG9uQ2xhc3NlcyA9ICcnO1xyXG4gIEBJbnB1dCgpIGltYWdlQ2xhc3NlcyA9ICdpY29uLXN2Zyc7XHJcbiAgQElucHV0KCkgZGFuZ2VyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdW5hdmFpbGFibGVUZXh0OiBzdHJpbmcgPSBcIlVuYXZhaWxhYmxlXCI7XHJcbiAgcHVibGljIGlzSG92ZXIgPSBmYWxzZTtcclxuXHJcbiAgZmxvb3IgPSBNYXRoLmZsb29yO1xyXG5cclxuICBpc0luRnVsbFNjcmVlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZ2V0IGljb25TaXplKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLnNpemUpIHtcclxuICAgICAgY2FzZSAnc21hbGwnOiByZXR1cm4gMTY7XHJcbiAgICAgIGNhc2UgJ21lZGl1bSc6IHJldHVybiAyMDtcclxuICAgICAgZGVmYXVsdDogcmV0dXJuIDI0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhbmltYXRlKCk6IGFueSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiAnem9vbScsXHJcbiAgICAgIGR1cmF0aW9uOiAyMDBcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgaUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2soJGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmlDbGljay5lbWl0KCRldmVudCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YnV0dG9uIGNsYXNzPVwiaWNvbiBmbGV4LXJvdyB7e2J1dHRvbkNsYXNzZXN9fVwiIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIiB0eXBlPVwiYnV0dG9uXCIgI2J1dHRvblxyXG4gIFt0YWJpbmRleF09XCIoIWlzVGFiU3RvcCB8fCBkaXNhYmxlZCkgPyAtMSA6IHVuZGVmaW5lZFwiIFtzaG93VG9vbFRpcF09XCIhIXRpdGxlVGV4dFwiIGN1c3RvbVRvb2xUaXAgW2NvbnRlbnRUZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiPlxyXG5cclxuICA8d20tdGVtcGxhdGUtaW1hZ2UgW2ljb25dPVwiaWNvblwiIFtzaXplXT1cImZsb29yKGljb25TaXplICogKGlzSG92ZXIgPyAxLjE6IDEpKSArICdweCdcIiBbYWN0aXZlXT1cIiFkaXNhYmxlZCAmJiBjaGFuZ2VkXCJcclxuICAgIFtsaWdodF09XCJsaWdodFwiIFtjbGFzc2VzXT1cImltYWdlQ2xhc3Nlc1wiPlxyXG4gIDwvd20tdGVtcGxhdGUtaW1hZ2U+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG5cclxuPC9idXR0b24+XHJcblxyXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxyXG4gIDxzcGFuIGNsYXNzPVwidG9vbHRpcC10ZXh0XCI+IHt7dGl0bGVUZXh0fX0gPC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwiZGlzYWJsZWRcIiBjbGFzcz1cInRvb2x0aXAtdGV4dFwiPiAtIHt7dW5hdmFpbGFibGVUZXh0fX0gPC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
export class BtvProgressComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.relativeValue = 0;
|
|
7
|
-
this._val = 0;
|
|
8
|
-
this.height = 8;
|
|
9
|
-
this._max = 0;
|
|
10
|
-
this.color = '#ffffff';
|
|
11
|
-
this._backColor = '#4e5a6b';
|
|
12
|
-
this.showFlag = false;
|
|
13
|
-
}
|
|
14
|
-
get val() {
|
|
15
|
-
return this._val;
|
|
16
|
-
}
|
|
17
|
-
set val(val) {
|
|
18
|
-
this._val = val;
|
|
19
|
-
this.relativeValue = this.calcRelativeValue(val, this.max);
|
|
20
|
-
}
|
|
21
|
-
get max() {
|
|
22
|
-
return this._max;
|
|
23
|
-
}
|
|
24
|
-
set max(m) {
|
|
25
|
-
this._max = m;
|
|
26
|
-
this.relativeValue = this.calcRelativeValue(this._val, m);
|
|
27
|
-
}
|
|
28
|
-
set backColor(value) {
|
|
29
|
-
if (value) {
|
|
30
|
-
this._backColor = value;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
this._backColor = '#4e5a6b';
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
get backColor() {
|
|
37
|
-
return this._backColor;
|
|
38
|
-
}
|
|
39
|
-
getFlagPosition() {
|
|
40
|
-
const max = this.max;
|
|
41
|
-
const val = this.val;
|
|
42
|
-
if (!max)
|
|
43
|
-
return '0';
|
|
44
|
-
const percent = val / max * 100;
|
|
45
|
-
return percent + '%';
|
|
46
|
-
}
|
|
47
|
-
calcRelativeValue(value, max) {
|
|
48
|
-
if (!max)
|
|
49
|
-
return 100;
|
|
50
|
-
return (value / max) * 100;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
BtvProgressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BtvProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
54
|
-
BtvProgressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BtvProgressComponent, selector: "btv-progress", inputs: { height: "height", val: "val", max: "max", color: "color", backColor: "backColor", showFlag: "showFlag" }, ngImport: i0, template: "<div class=\"progress-wrap\" [ngStyle]=\"{'height': height + 'px'}\">\r\n <div class=\"progress\" [ngStyle]=\"{'background-color': backColor}\">\r\n <div class=\"progress-fill\" [ngStyle]=\"{'width': relativeValue + '%', 'background-color': color}\"></div>\r\n <!--workaround for css image resolve plugin-->\r\n <div *ngIf=\"showFlag\" class=\"flag\" [ngStyle]=\"{\r\n 'margin-left': getFlagPosition(),\r\n 'background-image': 'url(./assets/img/flag.png)' \r\n }\">\r\n </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}}.progress-wrap{display:block;width:100%;height:8px}.progress{width:100%;height:100%;position:relative}.progress-fill{position:absolute;height:100%}.flag{height:14px;width:8px;margin-top:-4px;position:absolute;background-repeat:no-repeat;transform:scaleY(.7)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BtvProgressComponent, decorators: [{
|
|
56
|
-
type: Component,
|
|
57
|
-
args: [{ selector: 'btv-progress', template: "<div class=\"progress-wrap\" [ngStyle]=\"{'height': height + 'px'}\">\r\n <div class=\"progress\" [ngStyle]=\"{'background-color': backColor}\">\r\n <div class=\"progress-fill\" [ngStyle]=\"{'width': relativeValue + '%', 'background-color': color}\"></div>\r\n <!--workaround for css image resolve plugin-->\r\n <div *ngIf=\"showFlag\" class=\"flag\" [ngStyle]=\"{\r\n 'margin-left': getFlagPosition(),\r\n 'background-image': 'url(./assets/img/flag.png)' \r\n }\">\r\n </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}}.progress-wrap{display:block;width:100%;height:8px}.progress{width:100%;height:100%;position:relative}.progress-fill{position:absolute;height:100%}.flag{height:14px;width:8px;margin-top:-4px;position:absolute;background-repeat:no-repeat;transform:scaleY(.7)}\n"] }]
|
|
58
|
-
}], propDecorators: { height: [{
|
|
59
|
-
type: Input
|
|
60
|
-
}], val: [{
|
|
61
|
-
type: Input
|
|
62
|
-
}], max: [{
|
|
63
|
-
type: Input
|
|
64
|
-
}], color: [{
|
|
65
|
-
type: Input
|
|
66
|
-
}], backColor: [{
|
|
67
|
-
type: Input
|
|
68
|
-
}], showFlag: [{
|
|
69
|
-
type: Input
|
|
70
|
-
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnR2LXByb2dyZXNzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J0di1iYXNlLWNvbnRyb2xzL3NyYy9saWIvYnR2LXByb2dyZXNzL2J0di1wcm9ncmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL2J0di1wcm9ncmVzcy9idHYtcHJvZ3Jlc3MuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT2pELE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFPRSxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUVsQixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBRWhCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFVcEIsU0FBSSxHQUFXLENBQUMsQ0FBQztRQVdoQixVQUFLLEdBQVcsU0FBUyxDQUFDO1FBRTVCLGVBQVUsR0FBVyxTQUFTLENBQUM7UUFjN0IsYUFBUSxHQUFZLEtBQUssQ0FBQztLQWNwQztJQWxEQyxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQWEsR0FBRyxDQUFDLEdBQVc7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBR0QsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFhLEdBQUcsQ0FBQyxDQUFTO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBT0QsSUFBYSxTQUFTLENBQUMsS0FBYTtRQUNsQyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUlELGVBQWU7UUFDYixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3JCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUNyQixNQUFNLE9BQU8sR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNoQyxPQUFPLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDdkIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQUssRUFBRSxHQUFHO1FBQzFCLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFDckIsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDN0IsQ0FBQzs7aUhBeERVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHdLQ1BqQyxzakJBVU07MkZESE8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGNBQWM7OEJBVWYsTUFBTTtzQkFBZCxLQUFLO2dCQUtPLEdBQUc7c0JBQWYsS0FBSztnQkFVTyxHQUFHO3NCQUFmLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBWUcsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYnR2LXByb2dyZXNzJyxcclxuICBzdHlsZVVybHM6IFsnLi9idHYtcHJvZ3Jlc3Muc2NzcyddLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idHYtcHJvZ3Jlc3MuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ0dlByb2dyZXNzQ29tcG9uZW50IHtcclxuXHJcbiAgcmVsYXRpdmVWYWx1ZTogbnVtYmVyID0gMDtcclxuXHJcbiAgcHJpdmF0ZSBfdmFsOiBudW1iZXIgPSAwO1xyXG5cclxuICBASW5wdXQoKSBoZWlnaHQ6IG51bWJlciA9IDg7XHJcbiAgZ2V0IHZhbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl92YWw7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgdmFsKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl92YWwgPSB2YWw7XHJcbiAgICB0aGlzLnJlbGF0aXZlVmFsdWUgPSB0aGlzLmNhbGNSZWxhdGl2ZVZhbHVlKHZhbCwgdGhpcy5tYXgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbWF4OiBudW1iZXIgPSAwO1xyXG4gIGdldCBtYXgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IG1heChtOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX21heCA9IG07XHJcbiAgICB0aGlzLnJlbGF0aXZlVmFsdWUgPSB0aGlzLmNhbGNSZWxhdGl2ZVZhbHVlKHRoaXMuX3ZhbCwgbSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCkgY29sb3I6IHN0cmluZyA9ICcjZmZmZmZmJztcclxuXHJcbiAgcHVibGljIF9iYWNrQ29sb3I6IHN0cmluZyA9ICcjNGU1YTZiJztcclxuXHJcbiAgQElucHV0KCkgc2V0IGJhY2tDb2xvcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5fYmFja0NvbG9yID0gdmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9iYWNrQ29sb3IgPSAnIzRlNWE2Yic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgYmFja0NvbG9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2JhY2tDb2xvcjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNob3dGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGdldEZsYWdQb3NpdGlvbigpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbWF4ID0gdGhpcy5tYXg7XHJcbiAgICBjb25zdCB2YWwgPSB0aGlzLnZhbDtcclxuICAgIGlmICghbWF4KSByZXR1cm4gJzAnO1xyXG4gICAgY29uc3QgcGVyY2VudCA9IHZhbCAvIG1heCAqIDEwMDtcclxuICAgIHJldHVybiBwZXJjZW50ICsgJyUnO1xyXG4gIH1cclxuXHJcbiAgY2FsY1JlbGF0aXZlVmFsdWUodmFsdWUsIG1heCkge1xyXG4gICAgaWYgKCFtYXgpIHJldHVybiAxMDA7XHJcbiAgICByZXR1cm4gKHZhbHVlIC8gbWF4KSAqIDEwMDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInByb2dyZXNzLXdyYXBcIiBbbmdTdHlsZV09XCJ7J2hlaWdodCc6IGhlaWdodCArICdweCd9XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOiBiYWNrQ29sb3J9XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWZpbGxcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogcmVsYXRpdmVWYWx1ZSArICclJywgJ2JhY2tncm91bmQtY29sb3InOiBjb2xvcn1cIj48L2Rpdj5cclxuICAgICAgICA8IS0td29ya2Fyb3VuZCBmb3IgY3NzIGltYWdlIHJlc29sdmUgcGx1Z2luLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dGbGFnXCIgY2xhc3M9XCJmbGFnXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAnbWFyZ2luLWxlZnQnOiBnZXRGbGFnUG9zaXRpb24oKSxcclxuICAgICAgICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKC4vYXNzZXRzL2ltZy9mbGFnLnBuZyknIFxyXG4gICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { fromEvent } from 'rxjs';
|
|
3
|
-
import { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
import * as i2 from "../wm-tamplate-image/wm-template-image.component";
|
|
7
|
-
export class ViewState {
|
|
8
|
-
get isLaptop() { return window.innerWidth <= 1440; }
|
|
9
|
-
get isMobile() { return window.innerWidth <= 1024; }
|
|
10
|
-
get isPhone() { return window.innerWidth <= 767; }
|
|
11
|
-
isWidthLessOrEqualTo(width) { return window.innerWidth <= width; }
|
|
12
|
-
}
|
|
13
|
-
export class BtvSearch {
|
|
14
|
-
constructor() {
|
|
15
|
-
this.widthAuto = false;
|
|
16
|
-
this.isSmall = false;
|
|
17
|
-
this.placeholder = 'Search';
|
|
18
|
-
this.keepExpanded = false;
|
|
19
|
-
this.searchFocus = false;
|
|
20
|
-
this.view = new ViewState();
|
|
21
|
-
this.searchTextChange = new EventEmitter();
|
|
22
|
-
this.expanded = false;
|
|
23
|
-
}
|
|
24
|
-
set searchText(value) {
|
|
25
|
-
if (value === this._searchText)
|
|
26
|
-
return;
|
|
27
|
-
this._searchText = value;
|
|
28
|
-
if (value) {
|
|
29
|
-
this.expanded = true;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
get searchText() {
|
|
33
|
-
return this._searchText || '';
|
|
34
|
-
}
|
|
35
|
-
ngOnInit() {
|
|
36
|
-
let box = this.box.nativeElement;
|
|
37
|
-
let observable = fromEvent(box, 'keyup').pipe(debounceTime(400), distinctUntilChanged(), map(x => x.target.value));
|
|
38
|
-
this._searchSubscription = observable.subscribe(it => {
|
|
39
|
-
this.searchTextChange.emit(it);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
ngOnDestroy() {
|
|
43
|
-
if (this._searchSubscription)
|
|
44
|
-
this._searchSubscription.unsubscribe();
|
|
45
|
-
}
|
|
46
|
-
toggleSearch() {
|
|
47
|
-
this.expanded = !this.expanded;
|
|
48
|
-
if (this.box && this.expanded) {
|
|
49
|
-
this.box.nativeElement.focus();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
onFocusOut() {
|
|
53
|
-
if (!this.box.nativeElement.value && this.expanded && !this.keepExpanded) {
|
|
54
|
-
this.expanded = false;
|
|
55
|
-
}
|
|
56
|
-
this.searchFocus = false;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
BtvSearch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BtvSearch, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
-
BtvSearch.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BtvSearch, selector: "btv-search", inputs: { widthAuto: "widthAuto", isSmall: "isSmall", searchRight: "searchRight", placeholder: "placeholder", keepExpanded: "keepExpanded", searchText: "searchText" }, outputs: { searchTextChange: "searchTextChange" }, viewQueries: [{ propertyName: "box", first: true, predicate: ["searchBox"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"wm-search flex-row\" [ngClass]=\"{'search-reverse': searchRight == 'right', 'always-opened': keepExpanded, 'small': isSmall}\">\r\n\t<div class=\"search-icon inline-col\" [ngClass]=\"{'search-toggle-disabled': keepExpanded || !searchFocus}\"\r\n\t\t(click)=\"toggleSearch()\">\r\n\t\t<wm-template-image class=\"marginXA\" icon=\"search\" [light]=\"(!expanded && !searchFocus) || keepExpanded\">\r\n\t\t</wm-template-image>\r\n\t</div>\r\n\t<div class=\"search-wrap flex-col\"\r\n\t\t[ngClass]=\"{'search-open': keepExpanded || expanded, 'search-focused': (expanded && searchFocus) || (keepExpanded && searchFocus),\r\n\t'width-auto': widthAuto}\">\r\n\t\t<input class=\"search-field\" #searchBox \r\n\t\t\t[value]=\"searchText\" \r\n\t\t\t[placeholder]=\"placeholder\"\r\n\t\t\t(focus)=\"searchFocus = true\" (focusout)=\"onFocusOut()\">\r\n\t</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-search,.search-wrap,.search-field{box-sizing:border-box}.wm-search:hover{border-color:var(--brandColor)}.wm-search{background:var(--pageBackgroundColor);height:36px;max-width:280px;border-radius:4px;align-items:center;flex:1 0 100%;flex-shrink:0;border:1px solid var(--secondaryHover)}.wm-search.small{max-width:140px}.wm-search.small .search-open{width:auto}.search-icon{width:36px;height:100%;flex-shrink:0;cursor:pointer}.search-icon.search-toggle-disabled{cursor:text}.search-wrap{width:0px;height:100%;color:var(--mediumFontColor);direction:ltr}.search-open{width:280px;max-width:100%;flex-grow:1;flex-shrink:1}.search-open.width-auto{width:auto}.search-open:hover,.search-focused{color:var(--strongFontColor)}.search-field{width:100%;height:100%;color:inherit;text-indent:.1em;font-size:16px;background-color:transparent;border:none;outline:none;padding:0 8px 0 0}.search-field::placeholder{color:var(--disabledTextColor)}.search-reverse{display:flex;flex-direction:row-reverse}.search-reverse .search-wrap{direction:rtl}.search-reverse .search-field{direction:ltr;padding:0 8px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.WmTemplateImageComponent, selector: "wm-template-image", inputs: ["icon", "disabled", "active", "light", "classes", "backgroundColor", "size", "sizeBox"] }] });
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BtvSearch, decorators: [{
|
|
62
|
-
type: Component,
|
|
63
|
-
args: [{ selector: 'btv-search', template: "<div class=\"wm-search flex-row\" [ngClass]=\"{'search-reverse': searchRight == 'right', 'always-opened': keepExpanded, 'small': isSmall}\">\r\n\t<div class=\"search-icon inline-col\" [ngClass]=\"{'search-toggle-disabled': keepExpanded || !searchFocus}\"\r\n\t\t(click)=\"toggleSearch()\">\r\n\t\t<wm-template-image class=\"marginXA\" icon=\"search\" [light]=\"(!expanded && !searchFocus) || keepExpanded\">\r\n\t\t</wm-template-image>\r\n\t</div>\r\n\t<div class=\"search-wrap flex-col\"\r\n\t\t[ngClass]=\"{'search-open': keepExpanded || expanded, 'search-focused': (expanded && searchFocus) || (keepExpanded && searchFocus),\r\n\t'width-auto': widthAuto}\">\r\n\t\t<input class=\"search-field\" #searchBox \r\n\t\t\t[value]=\"searchText\" \r\n\t\t\t[placeholder]=\"placeholder\"\r\n\t\t\t(focus)=\"searchFocus = true\" (focusout)=\"onFocusOut()\">\r\n\t</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-search,.search-wrap,.search-field{box-sizing:border-box}.wm-search:hover{border-color:var(--brandColor)}.wm-search{background:var(--pageBackgroundColor);height:36px;max-width:280px;border-radius:4px;align-items:center;flex:1 0 100%;flex-shrink:0;border:1px solid var(--secondaryHover)}.wm-search.small{max-width:140px}.wm-search.small .search-open{width:auto}.search-icon{width:36px;height:100%;flex-shrink:0;cursor:pointer}.search-icon.search-toggle-disabled{cursor:text}.search-wrap{width:0px;height:100%;color:var(--mediumFontColor);direction:ltr}.search-open{width:280px;max-width:100%;flex-grow:1;flex-shrink:1}.search-open.width-auto{width:auto}.search-open:hover,.search-focused{color:var(--strongFontColor)}.search-field{width:100%;height:100%;color:inherit;text-indent:.1em;font-size:16px;background-color:transparent;border:none;outline:none;padding:0 8px 0 0}.search-field::placeholder{color:var(--disabledTextColor)}.search-reverse{display:flex;flex-direction:row-reverse}.search-reverse .search-wrap{direction:rtl}.search-reverse .search-field{direction:ltr;padding:0 8px}\n"] }]
|
|
64
|
-
}], ctorParameters: function () { return []; }, propDecorators: { widthAuto: [{
|
|
65
|
-
type: Input
|
|
66
|
-
}], isSmall: [{
|
|
67
|
-
type: Input
|
|
68
|
-
}], searchRight: [{
|
|
69
|
-
type: Input
|
|
70
|
-
}], placeholder: [{
|
|
71
|
-
type: Input
|
|
72
|
-
}], keepExpanded: [{
|
|
73
|
-
type: Input
|
|
74
|
-
}], box: [{
|
|
75
|
-
type: ViewChild,
|
|
76
|
-
args: ['searchBox', { static: true }]
|
|
77
|
-
}], searchTextChange: [{
|
|
78
|
-
type: Output
|
|
79
|
-
}], searchText: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}] } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnR2LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL2J0di1zZWFyY2gvYnR2LXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL2J0di1zZWFyY2gvYnR2LXNlYXJjaC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXpFLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLElBQUksUUFBUSxLQUFLLE9BQU8sTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BELElBQUksUUFBUSxLQUFLLE9BQU8sTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BELElBQUksT0FBTyxLQUFLLE9BQU8sTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNDLG9CQUFvQixDQUFDLEtBQWEsSUFBSSxPQUFPLE1BQU0sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztDQUNsRjtBQVFELE1BQU0sT0FBTyxTQUFTO0lBMkJwQjtRQTFCUyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFekIsZ0JBQVcsR0FBVyxRQUFRLENBQUM7UUFDL0IsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDdkMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsU0FBSSxHQUFjLElBQUksU0FBUyxFQUFFLENBQUM7UUFFeEIscUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFtQjVFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFkRCxJQUFhLFVBQVUsQ0FBQyxLQUFhO1FBQ25DLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQU1ELFFBQVE7UUFDTixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUNqQyxJQUFJLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDM0MsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBZSxDQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUN4QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsbUJBQW1CO1lBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDeEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDOztzR0ExRFUsU0FBUzswRkFBVCxTQUFTLDZYQ2pCdEIsMDJCQWNNOzJGREdPLFNBQVM7a0JBTnJCLFNBQVM7K0JBQ0UsWUFBWTswRUFNYixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFHb0MsR0FBRztzQkFBNUMsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUM5QixnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBTU0sVUFBVTtzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBWaWV3U3RhdGUge1xyXG4gIGdldCBpc0xhcHRvcCgpIHsgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDw9IDE0NDA7IH1cclxuICBnZXQgaXNNb2JpbGUoKSB7IHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSAxMDI0OyB9XHJcbiAgZ2V0IGlzUGhvbmUoKSB7IHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA3Njc7IH1cclxuICBwdWJsaWMgaXNXaWR0aExlc3NPckVxdWFsVG8od2lkdGg6IG51bWJlcikgeyByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPD0gd2lkdGg7IH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdidHYtc2VhcmNoJyxcclxuICBzdHlsZVVybHM6IFsnLi9idHYtc2VhcmNoLnNjc3MnXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYnR2LXNlYXJjaC5odG1sJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEJ0dlNlYXJjaCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSB3aWR0aEF1dG86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1NtYWxsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VhcmNoUmlnaHQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlYXJjaCc7XHJcbiAgQElucHV0KCkga2VlcEV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VhcmNoRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB2aWV3OiBWaWV3U3RhdGUgPSBuZXcgVmlld1N0YXRlKCk7XHJcbiAgQFZpZXdDaGlsZCgnc2VhcmNoQm94JywgeyBzdGF0aWM6IHRydWUgfSkgYm94OiBFbGVtZW50UmVmO1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hUZXh0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIHB1YmxpYyBleHBhbmRlZDogYm9vbGVhbjtcclxuICBwcml2YXRlIF9zZWFyY2hTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgcHJpdmF0ZSBfc2VhcmNoVGV4dDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBzZXQgc2VhcmNoVGV4dCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgPT09IHRoaXMuX3NlYXJjaFRleHQpIHJldHVybjtcclxuICAgIHRoaXMuX3NlYXJjaFRleHQgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBzZWFyY2hUZXh0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoVGV4dCB8fCAnJztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBsZXQgYm94ID0gdGhpcy5ib3gubmF0aXZlRWxlbWVudDtcclxuICAgIGxldCBvYnNlcnZhYmxlID0gZnJvbUV2ZW50KGJveCwgJ2tleXVwJykucGlwZShcclxuICAgICAgZGVib3VuY2VUaW1lKDQwMCksXHJcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgIG1hcCh4ID0+IDxzdHJpbmc+KDxhbnk+eCkudGFyZ2V0LnZhbHVlKVxyXG4gICAgKTtcclxuICAgIHRoaXMuX3NlYXJjaFN1YnNjcmlwdGlvbiA9IG9ic2VydmFibGUuc3Vic2NyaWJlKGl0ID0+IHtcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Q2hhbmdlLmVtaXQoaXQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9zZWFyY2hTdWJzY3JpcHRpb24pIHRoaXMuX3NlYXJjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuICB0b2dnbGVTZWFyY2goKSB7XHJcbiAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7XHJcbiAgICBpZiAodGhpcy5ib3ggJiYgdGhpcy5leHBhbmRlZCkge1xyXG4gICAgICB0aGlzLmJveC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzT3V0KCkge1xyXG4gICAgaWYgKCF0aGlzLmJveC5uYXRpdmVFbGVtZW50LnZhbHVlICYmIHRoaXMuZXhwYW5kZWQgJiYgIXRoaXMua2VlcEV4cGFuZGVkKSB7XHJcbiAgICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VhcmNoRm9jdXMgPSBmYWxzZTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ3bS1zZWFyY2ggZmxleC1yb3dcIiBbbmdDbGFzc109XCJ7J3NlYXJjaC1yZXZlcnNlJzogc2VhcmNoUmlnaHQgPT0gJ3JpZ2h0JywgJ2Fsd2F5cy1vcGVuZWQnOiBrZWVwRXhwYW5kZWQsICdzbWFsbCc6IGlzU21hbGx9XCI+XHJcblx0PGRpdiBjbGFzcz1cInNlYXJjaC1pY29uIGlubGluZS1jb2xcIiBbbmdDbGFzc109XCJ7J3NlYXJjaC10b2dnbGUtZGlzYWJsZWQnOiBrZWVwRXhwYW5kZWQgfHwgIXNlYXJjaEZvY3VzfVwiXHJcblx0XHQoY2xpY2spPVwidG9nZ2xlU2VhcmNoKClcIj5cclxuXHRcdDx3bS10ZW1wbGF0ZS1pbWFnZSBjbGFzcz1cIm1hcmdpblhBXCIgaWNvbj1cInNlYXJjaFwiIFtsaWdodF09XCIoIWV4cGFuZGVkICYmICFzZWFyY2hGb2N1cykgfHwga2VlcEV4cGFuZGVkXCI+XHJcblx0XHQ8L3dtLXRlbXBsYXRlLWltYWdlPlxyXG5cdDwvZGl2PlxyXG5cdDxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcCBmbGV4LWNvbFwiXHJcblx0XHRbbmdDbGFzc109XCJ7J3NlYXJjaC1vcGVuJzoga2VlcEV4cGFuZGVkIHx8IGV4cGFuZGVkLCAnc2VhcmNoLWZvY3VzZWQnOiAoZXhwYW5kZWQgJiYgc2VhcmNoRm9jdXMpIHx8IChrZWVwRXhwYW5kZWQgJiYgc2VhcmNoRm9jdXMpLFxyXG5cdCd3aWR0aC1hdXRvJzogd2lkdGhBdXRvfVwiPlxyXG5cdFx0PGlucHV0IGNsYXNzPVwic2VhcmNoLWZpZWxkXCIgI3NlYXJjaEJveCBcclxuXHRcdFx0W3ZhbHVlXT1cInNlYXJjaFRleHRcIiBcclxuXHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuXHRcdFx0KGZvY3VzKT1cInNlYXJjaEZvY3VzID0gdHJ1ZVwiIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KClcIj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, HostListener } from '@angular/core';
|
|
2
|
-
import { ConnectionPositionPair } from '@angular/cdk/overlay';
|
|
3
|
-
import { CustomToolTipComponent } from './custom-tool-tip.component';
|
|
4
|
-
import { ComponentPortal } from '@angular/cdk/portal';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
7
|
-
export class ToolTipRendererDirective {
|
|
8
|
-
constructor(_overlay, _elementRef) {
|
|
9
|
-
this._overlay = _overlay;
|
|
10
|
-
this._elementRef = _elementRef;
|
|
11
|
-
/**
|
|
12
|
-
* This will be used to show tooltip or not
|
|
13
|
-
* This can be used to show the tooltip conditionally
|
|
14
|
-
*/
|
|
15
|
-
this.showToolTip = true;
|
|
16
|
-
this.useCustom = false;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Init life cycle event handler
|
|
20
|
-
*/
|
|
21
|
-
ngOnInit() { }
|
|
22
|
-
get refElement() {
|
|
23
|
-
if (this.useCustom || this.customAnchor)
|
|
24
|
-
return this.customAnchor;
|
|
25
|
-
return this._elementRef;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* This method will be called whenever mouse enters in the Host element
|
|
29
|
-
* i.e. where this directive is applied
|
|
30
|
-
* This method will show the tooltip by instantiating the McToolTipComponent and attaching to the overlay
|
|
31
|
-
*/
|
|
32
|
-
show() {
|
|
33
|
-
if (this.refElement)
|
|
34
|
-
this.closeToolTip();
|
|
35
|
-
if (!this.showToolTip || (this.useCustom && !this.customAnchor)) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const positionPairs = [
|
|
39
|
-
new ConnectionPositionPair({ originX: 'center', originY: 'top' }, { overlayX: 'center', overlayY: 'bottom' }, 0, 0, 'mat-tooltip-panel-above'),
|
|
40
|
-
new ConnectionPositionPair({ originX: 'center', originY: 'bottom' }, { overlayX: 'center', overlayY: 'top' }, 0, 0, 'mat-tooltip-panel-below')
|
|
41
|
-
];
|
|
42
|
-
const positionStrategy = this._overlay.position()
|
|
43
|
-
.flexibleConnectedTo(this.refElement)
|
|
44
|
-
.withPositions(positionPairs)
|
|
45
|
-
.withFlexibleDimensions(true)
|
|
46
|
-
.withPush(true);
|
|
47
|
-
this._overlayRef = this._overlay.create({
|
|
48
|
-
panelClass: 'mat-tooltip-panel',
|
|
49
|
-
scrollStrategy: this._overlay.scrollStrategies.close(),
|
|
50
|
-
positionStrategy
|
|
51
|
-
});
|
|
52
|
-
// attach the component if it has not already attached to the overlay
|
|
53
|
-
if (this._overlayRef && !this._overlayRef.hasAttached()) {
|
|
54
|
-
const content = new ComponentPortal(CustomToolTipComponent);
|
|
55
|
-
// todo check this
|
|
56
|
-
const tooltipRef = this._overlayRef.attach(content);
|
|
57
|
-
tooltipRef.instance.text = this.text;
|
|
58
|
-
tooltipRef.instance.contentTemplate = this.contentTemplate;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* This method will be called when mouse goes out of the host element
|
|
63
|
-
* i.e. where this directive is applied
|
|
64
|
-
* This method will close the tooltip by detaching the overlay from the view
|
|
65
|
-
*/
|
|
66
|
-
hide() {
|
|
67
|
-
this.closeToolTip();
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Destroy lifecycle event handler
|
|
71
|
-
* This method will make sure to close the tooltip
|
|
72
|
-
* It will be needed in case when app is navigating to different page
|
|
73
|
-
* and user is still seeing the tooltip; In that case we do not want to hang around the
|
|
74
|
-
* tooltip after the page [on which tooltip visible] is destroyed
|
|
75
|
-
*/
|
|
76
|
-
ngOnDestroy() {
|
|
77
|
-
this.closeToolTip();
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* This method will close the tooltip by detaching the component from the overlay
|
|
81
|
-
*/
|
|
82
|
-
closeToolTip() {
|
|
83
|
-
if (this._overlayRef) {
|
|
84
|
-
this._overlayRef.detach();
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
ToolTipRendererDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ToolTipRendererDirective, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
89
|
-
ToolTipRendererDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: ToolTipRendererDirective, selector: "[customToolTip]", inputs: { showToolTip: "showToolTip", text: ["customToolTip", "text"], contentTemplate: "contentTemplate", customAnchor: "customAnchor", useCustom: "useCustom" }, host: { listeners: { "mousemove": "show($event)", "mouseleave": "hide()" } }, ngImport: i0 });
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ToolTipRendererDirective, decorators: [{
|
|
91
|
-
type: Directive,
|
|
92
|
-
args: [{
|
|
93
|
-
selector: '[customToolTip]'
|
|
94
|
-
}]
|
|
95
|
-
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ElementRef }]; }, propDecorators: { showToolTip: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}], text: [{
|
|
98
|
-
type: Input,
|
|
99
|
-
args: [`customToolTip`]
|
|
100
|
-
}], contentTemplate: [{
|
|
101
|
-
type: Input
|
|
102
|
-
}], customAnchor: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}], useCustom: [{
|
|
105
|
-
type: Input
|
|
106
|
-
}], show: [{
|
|
107
|
-
type: HostListener,
|
|
108
|
-
args: ['mousemove', ['$event']]
|
|
109
|
-
}], hide: [{
|
|
110
|
-
type: HostListener,
|
|
111
|
-
args: ['mouseleave']
|
|
112
|
-
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC10aXAtcmVuZGVyZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnR2LWJhc2UtY29udHJvbHMvc3JjL2xpYi9jdXN0b20tdG9vbC10aXAvdG9vbC10aXAtcmVuZGVyZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFtQyxZQUFZLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxzQkFBc0IsRUFBdUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQU10RCxNQUFNLE9BQU8sd0JBQXdCO0lBZ0JqQyxZQUFvQixRQUFpQixFQUN6QixXQUF1QjtRQURmLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDekIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFoQm5DOzs7VUFHRTtRQUNPLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBUzVCLGNBQVMsR0FBYSxLQUFLLENBQUM7SUFHRSxDQUFDO0lBRXhDOztPQUVHO0lBQ0gsUUFBUSxLQUFLLENBQUM7SUFFZCxJQUFJLFVBQVU7UUFDVixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDbEUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFDRDs7OztPQUlHO0lBRUgsSUFBSTtRQUNBLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzdELE9BQU87U0FDVjtRQUVELE1BQU0sYUFBYSxHQUE2QjtZQUM1QyxJQUFJLHNCQUFzQixDQUN0QixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUNyQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQ2hELHlCQUF5QixDQUFDO1lBQzlCLElBQUksc0JBQXNCLENBQ3RCLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQ3hDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFDN0MseUJBQXlCLENBQUM7U0FFakMsQ0FBQztRQUNGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7YUFDNUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQzthQUNwQyxhQUFhLENBQUMsYUFBYSxDQUFDO2FBQzVCLHNCQUFzQixDQUFDLElBQUksQ0FBQzthQUM1QixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNwQyxVQUFVLEVBQUUsbUJBQW1CO1lBQy9CLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRTtZQUN0RCxnQkFBZ0I7U0FDbkIsQ0FBQyxDQUFDO1FBQ0gscUVBQXFFO1FBQ3JFLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDckQsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUM1RCxrQkFBa0I7WUFDbEIsTUFBTSxVQUFVLEdBQXlDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBUSxDQUFDO1lBQ2pHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDckMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUM5RDtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBRUgsSUFBSTtRQUNBLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxZQUFZO1FBQ2hCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzdCO0lBQ0wsQ0FBQzs7cUhBcEdRLHdCQUF3Qjt5R0FBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtpQkFDOUI7dUhBT1ksV0FBVztzQkFBbkIsS0FBSztnQkFHa0IsSUFBSTtzQkFBM0IsS0FBSzt1QkFBQyxlQUFlO2dCQUdiLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQW9CTixJQUFJO3NCQURILFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTZDckMsSUFBSTtzQkFESCxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiwgRWxlbWVudFJlZiwgT25Jbml0LCBIb3N0TGlzdGVuZXIsIENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb25uZWN0aW9uUG9zaXRpb25QYWlyLCBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBDdXN0b21Ub29sVGlwQ29tcG9uZW50IH0gZnJvbSAnLi9jdXN0b20tdG9vbC10aXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2N1c3RvbVRvb2xUaXBdJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFRvb2xUaXBSZW5kZXJlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICAvKipcclxuICAgICogVGhpcyB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0b29sdGlwIG9yIG5vdFxyXG4gICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHNob3cgdGhlIHRvb2x0aXAgY29uZGl0aW9uYWxseVxyXG4gICAgKi9cclxuICAgIEBJbnB1dCgpIHNob3dUb29sVGlwOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvL0lmIHRoaXMgaXMgc3BlY2lmaWVkIHRoZW4gc3BlY2lmaWVkIHRleHQgd2lsbCBiZSBzaG93biBpbiB0aGUgdG9vbHRpcFxyXG4gICAgQElucHV0KGBjdXN0b21Ub29sVGlwYCkgdGV4dDogc3RyaW5nO1xyXG5cclxuICAgIC8vSWYgdGhpcyBpcyBzcGVjaWZpZWQgdGhlbiBzcGVjaWZpZWQgdGVtcGxhdGUgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgdG9vbHRpcFxyXG4gICAgQElucHV0KCkgY29udGVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcclxuICAgIEBJbnB1dCgpIGN1c3RvbUFuY2hvcj86IGFueTtcclxuICAgIEBJbnB1dCgpIHVzZUN1c3RvbT86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxyXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdCBsaWZlIGN5Y2xlIGV2ZW50IGhhbmRsZXJcclxuICAgICAqL1xyXG4gICAgbmdPbkluaXQoKSB7IH1cclxuXHJcbiAgICBnZXQgcmVmRWxlbWVudCgpIHtcclxuICAgICAgICBpZiAodGhpcy51c2VDdXN0b20gfHwgdGhpcy5jdXN0b21BbmNob3IpIHJldHVybiB0aGlzLmN1c3RvbUFuY2hvcjtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgbW91c2UgZW50ZXJzIGluIHRoZSBIb3N0IGVsZW1lbnRcclxuICAgICAqIGkuZS4gd2hlcmUgdGhpcyBkaXJlY3RpdmUgaXMgYXBwbGllZFxyXG4gICAgICogVGhpcyBtZXRob2Qgd2lsbCBzaG93IHRoZSB0b29sdGlwIGJ5IGluc3RhbnRpYXRpbmcgdGhlIE1jVG9vbFRpcENvbXBvbmVudCBhbmQgYXR0YWNoaW5nIHRvIHRoZSBvdmVybGF5XHJcbiAgICAgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScsIFsnJGV2ZW50J10pXHJcbiAgICBzaG93KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnJlZkVsZW1lbnQpIHRoaXMuY2xvc2VUb29sVGlwKCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNob3dUb29sVGlwIHx8ICh0aGlzLnVzZUN1c3RvbSAmJiAhdGhpcy5jdXN0b21BbmNob3IpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uUGFpcnM6IENvbm5lY3Rpb25Qb3NpdGlvblBhaXJbXSA9IFtcclxuICAgICAgICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoXHJcbiAgICAgICAgICAgICAgICB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAndG9wJyB9LFxyXG4gICAgICAgICAgICAgICAgeyBvdmVybGF5WDogJ2NlbnRlcicsIG92ZXJsYXlZOiAnYm90dG9tJyB9LCAwLCAwLFxyXG4gICAgICAgICAgICAgICAgJ21hdC10b29sdGlwLXBhbmVsLWFib3ZlJyksXHJcbiAgICAgICAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKFxyXG4gICAgICAgICAgICAgICAgeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ2JvdHRvbScgfSxcclxuICAgICAgICAgICAgICAgIHsgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ3RvcCcgfSwgMCwgMCxcclxuICAgICAgICAgICAgICAgICdtYXQtdG9vbHRpcC1wYW5lbC1iZWxvdycpXHJcblxyXG4gICAgICAgIF07XHJcbiAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKVxyXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLnJlZkVsZW1lbnQpXHJcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKHBvc2l0aW9uUGFpcnMpXHJcbiAgICAgICAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKHRydWUpXHJcbiAgICAgICAgICAgIC53aXRoUHVzaCh0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ21hdC10b29sdGlwLXBhbmVsJyxcclxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5jbG9zZSgpLFxyXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gYXR0YWNoIHRoZSBjb21wb25lbnQgaWYgaXQgaGFzIG5vdCBhbHJlYWR5IGF0dGFjaGVkIHRvIHRoZSBvdmVybGF5XHJcbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYgJiYgIXRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSkge1xyXG4gICAgICAgICAgICBjb25zdCBjb250ZW50ID0gbmV3IENvbXBvbmVudFBvcnRhbChDdXN0b21Ub29sVGlwQ29tcG9uZW50KTtcclxuICAgICAgICAgICAgLy8gdG9kbyBjaGVjayB0aGlzXHJcbiAgICAgICAgICAgIGNvbnN0IHRvb2x0aXBSZWY6IENvbXBvbmVudFJlZjxDdXN0b21Ub29sVGlwQ29tcG9uZW50PiA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKGNvbnRlbnQpIGFzIGFueTtcclxuICAgICAgICAgICAgdG9vbHRpcFJlZi5pbnN0YW5jZS50ZXh0ID0gdGhpcy50ZXh0O1xyXG4gICAgICAgICAgICB0b29sdGlwUmVmLmluc3RhbmNlLmNvbnRlbnRUZW1wbGF0ZSA9IHRoaXMuY29udGVudFRlbXBsYXRlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIHdoZW4gbW91c2UgZ29lcyBvdXQgb2YgdGhlIGhvc3QgZWxlbWVudFxyXG4gICAgICogaS5lLiB3aGVyZSB0aGlzIGRpcmVjdGl2ZSBpcyBhcHBsaWVkXHJcbiAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIGNsb3NlIHRoZSB0b29sdGlwIGJ5IGRldGFjaGluZyB0aGUgb3ZlcmxheSBmcm9tIHRoZSB2aWV3XHJcbiAgICAgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxyXG4gICAgaGlkZSgpIHtcclxuICAgICAgICB0aGlzLmNsb3NlVG9vbFRpcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVzdHJveSBsaWZlY3ljbGUgZXZlbnQgaGFuZGxlclxyXG4gICAgICogVGhpcyBtZXRob2Qgd2lsbCBtYWtlIHN1cmUgdG8gY2xvc2UgdGhlIHRvb2x0aXBcclxuICAgICAqIEl0IHdpbGwgYmUgbmVlZGVkIGluIGNhc2Ugd2hlbiBhcHAgaXMgbmF2aWdhdGluZyB0byBkaWZmZXJlbnQgcGFnZVxyXG4gICAgICogYW5kIHVzZXIgaXMgc3RpbGwgc2VlaW5nIHRoZSB0b29sdGlwOyBJbiB0aGF0IGNhc2Ugd2UgZG8gbm90IHdhbnQgdG8gaGFuZyBhcm91bmQgdGhlXHJcbiAgICAgKiB0b29sdGlwIGFmdGVyIHRoZSBwYWdlIFtvbiB3aGljaCB0b29sdGlwIHZpc2libGVdIGlzIGRlc3Ryb3llZFxyXG4gICAgICovXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmNsb3NlVG9vbFRpcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBtZXRob2Qgd2lsbCBjbG9zZSB0aGUgdG9vbHRpcCBieSBkZXRhY2hpbmcgdGhlIGNvbXBvbmVudCBmcm9tIHRoZSBvdmVybGF5XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY2xvc2VUb29sVGlwKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,175 +0,0 @@
|
|
|
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
|
-
constructor(sanitizer) {
|
|
20
|
-
this.sanitizer = sanitizer;
|
|
21
|
-
this.avatarText = null;
|
|
22
|
-
this.size = 50;
|
|
23
|
-
this.avatarSrc = null;
|
|
24
|
-
this.round = true;
|
|
25
|
-
this.cornerRadius = 0;
|
|
26
|
-
this.textSizeRatio = 3;
|
|
27
|
-
this.fgColor = '#FFF';
|
|
28
|
-
this.style = {};
|
|
29
|
-
this.avatarColors = defaultColors;
|
|
30
|
-
this.avatarStyle = {};
|
|
31
|
-
this.hostStyle = {};
|
|
32
|
-
}
|
|
33
|
-
get name() { return this._name; }
|
|
34
|
-
set name(value) {
|
|
35
|
-
this._name = value;
|
|
36
|
-
this.avatarText = this.formTextAvatar(value);
|
|
37
|
-
}
|
|
38
|
-
;
|
|
39
|
-
;
|
|
40
|
-
get src() { return this._src; }
|
|
41
|
-
;
|
|
42
|
-
set src(value) {
|
|
43
|
-
this._src = value;
|
|
44
|
-
this.avatarSrc = this.transformSrc(value);
|
|
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
|
-
}
|
|
147
|
-
AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
148
|
-
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", 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"] }] });
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", 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: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J0di1iYXNlLWNvbnRyb2xzL3NyYy9saWIvd20tYXZhdGFyL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL3dtLWF2YXRhci9hdmF0YXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFHTCxlQUFlLEVBQ2hCLE1BQU0sZUFBZSxDQUFDOzs7O0FBSXZCOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0NBQ1YsQ0FBQztBQVFGLE1BQU0sT0FBTyxlQUFlO0lBNkIxQixZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBMUJwQyxlQUFVLEdBQWtCLElBQUksQ0FBQztRQU14QixTQUFJLEdBQW9CLEVBQUUsQ0FBQztRQUVwQyxjQUFTLEdBQWtCLElBQUksQ0FBQztRQVF2QixVQUFLLEdBQVksSUFBSSxDQUFDO1FBQ3RCLGlCQUFZLEdBQW9CLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUVsQixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBRWpCLFVBQUssR0FBVSxFQUFFLENBQUM7UUFFM0IsaUJBQVksR0FBYSxhQUFhLENBQUM7UUE2QnZDLGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBVSxFQUFFLENBQUM7SUE1QmtCLENBQUM7SUF6QmhELElBQVcsSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEMsSUFBb0IsSUFBSSxDQUFDLEtB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LFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3RDLE9BQU8sS0FBSzthQUNULEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDVCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs0R0FoSlUsZUFBZTtnR0FBZixlQUFlLDRTQ2hDNUIsZ2ZBWU07MkZEb0JPLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsV0FBVzttR0FTRCxJQUFJO3NCQUF2QixLQUFLO2dCQUlVLElBQUk7c0JBQW5CLEtBQUs7Z0JBS2MsR0FBRztzQkFBdEIsS0FBSztnQkFJVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgU2VjdXJpdHlDb250ZXh0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG50eXBlIFN0eWxlID0gUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjtcclxuXHJcbi8qKlxyXG4gKiBsaXN0IG9mIGRlZmF1bHQgY29sb3JzXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdENvbG9ycyA9IFtcclxuICAnIzFhYmM5YycsXHJcbiAgJyMzNDk4ZGInLFxyXG4gICcjZjFjNDBmJyxcclxuICAnIzhlNDRhZCcsXHJcbiAgJyNlNzRjM2MnLFxyXG4gICcjZDM1NDAwJyxcclxuICAnIzJjM2U1MCcsXHJcbiAgJyM3ZjhjOGQnXHJcbl07XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3bS1hdmF0YXInLFxyXG4gIHN0eWxlVXJsczogWycuL2F2YXRhci5zY3NzJ10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXZhdGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbiAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBwdWJsaWMgYXZhdGFyVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfVxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fbmFtZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5hdmF0YXJUZXh0ID0gdGhpcy5mb3JtVGV4dEF2YXRhcih2YWx1ZSk7XHJcbiAgfTtcclxuICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogc3RyaW5nIHwgbnVtYmVyID0gNTA7O1xyXG5cclxuICBwdWJsaWMgYXZhdGFyU3JjOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9zcmM6IHN0cmluZyB8IG51bGw7XHJcbiAgcHVibGljIGdldCBzcmMoKSB7IHJldHVybiB0aGlzLl9zcmMgfTtcclxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHNyYyh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fc3JjID0gdmFsdWU7XHJcbiAgICB0aGlzLmF2YXRhclNyYyA9IHRoaXMudHJhbnNmb3JtU3JjKHZhbHVlKTtcclxuICB9XHJcbiAgQElucHV0KCkgcHVibGljIHZhbHVlOiBzdHJpbmcgfCBudWxsO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByb3VuZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgcHVibGljIGNvcm5lclJhZGl1czogc3RyaW5nIHwgbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSBwdWJsaWMgdGV4dFNpemVSYXRpbyA9IDM7XHJcbiAgQElucHV0KCkgcHVibGljIGJnQ29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgZmdDb2xvciA9ICcjRkZGJztcclxuICBASW5wdXQoKSBwdWJsaWMgYm9yZGVyQ29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgc3R5bGU6IFN0eWxlID0ge307XHJcblxyXG4gIHB1YmxpYyBhdmF0YXJDb2xvcnM6IHN0cmluZ1tdID0gZGVmYXVsdENvbG9ycztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikgeyB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2Zvcm1TcmMoc3RyaW5nSW5CYXNlNjQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXN0cmluZ0luQmFzZTY0KSByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuUkVTT1VSQ0VfVVJMLCB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoc3RyaW5nSW5CYXNlNjQpKTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZm9ybVRleHRBdmF0YXIodmFsOiBzdHJpbmcpIHtcclxuICAgIGlmICghdmFsKSByZXR1cm4gJz8nO1xyXG5cclxuICAgIGNvbnN0IG5hbWUgPSB2YWwudHJpbSgpO1xyXG4gICAgY29uc3Qgc3BsaXR0ZWQgPSBuYW1lLnNwbGl0KCcgJyk7XHJcblxyXG4gICAgaWYgKHNwbGl0dGVkLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICBpZiAobmFtZS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICByZXR1cm4gbmFtZVswXTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmFtZVswXSArIG5hbWVbMV07XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKHNwbGl0dGVkLmxlbmd0aCwgMyk7XHJcblxyXG4gICAgc3BsaXR0ZWQubGVuZ3RoID0gbGVuZ3RoOyAvLyBsZWF2ZSBmaXJzdCAzIHdvcmRzIHRvcFxyXG4gICAgcmV0dXJuIHNwbGl0dGVkLm1hcChpdCA9PiBpdFswXSkuam9pbignJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXZhdGFyU3R5bGU6IFN0eWxlID0ge307XHJcbiAgcHVibGljIGhvc3RTdHlsZTogU3R5bGUgPSB7fTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGV0ZWN0IGlucHV0cyBjaGFuZ2VcclxuICAgKlxyXG4gICAqIHBhcmFtIHt7IFtwcm9wS2V5OiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfX0gY2hhbmdlc1xyXG4gICAqXHJcbiAgICogbWVtYmVyb2YgQXZhdGFyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIC8vIHJlaW5pdGlhbGl6ZSB0aGUgYXZhdGFyIGNvbXBvbmVudCB3aGVuIGEgc291cmNlIHByb3BlcnR5IHZhbHVlIGhhcyBjaGFuZ2VkXHJcbiAgICAvLyB0aGUgZmFsbGJhY2sgc3lzdGVtIG11c3QgYmUgcmUtaW52b2tlZCB3aXRoIHRoZSBuZXcgdmFsdWVzLlxyXG4gICAgdGhpcy5pbml0aWFsaXplQXZhdGFyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3R5bGVzKCk6IHZvaWQge1xyXG5cclxuICAgIGlmICghdGhpcy5zcmMpIHtcclxuICAgICAgdGhpcy5hdmF0YXJTdHlsZSA9IHRoaXMuZ2V0SW5pdGlhbHNTdHlsZSh0aGlzLmF2YXRhclRleHQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hdmF0YXJTdHlsZSA9IHRoaXMuZ2V0SW1hZ2VTdHlsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSB0aGUgYXZhdGFyIGNvbXBvbmVudCBhbmQgaXRzIGZhbGxiYWNrIHN5c3RlbVxyXG4gICAqL1xyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUF2YXRhcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zcmMgJiYgIXRoaXMubmFtZSkgcmV0dXJuXHJcbiAgICB0aGlzLmdldFN0eWxlcygpO1xyXG4gICAgdGhpcy5ob3N0U3R5bGUgPSB7XHJcbiAgICAgIHdpZHRoOiB0aGlzLnNpemUgKyAncHgnLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuc2l6ZSArICdweCdcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIHJldHVybnMgaW5pdGlhbHMgc3R5bGVcclxuICAgKlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0SW5pdGlhbHNTdHlsZShhdmF0YXJWYWx1ZTogc3RyaW5nKTogU3R5bGUge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcclxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLnJvdW5kID8gJzEwMCUnIDogdGhpcy5jb3JuZXJSYWRpdXMgKyAncHgnLFxyXG4gICAgICBib3JkZXI6IHRoaXMuYm9yZGVyQ29sb3IgPyAnMXB4IHNvbGlkICcgKyB0aGlzLmJvcmRlckNvbG9yIDogJycsXHJcbiAgICAgIHRleHRUcmFuc2Zvcm06ICd1cHBlcmNhc2UnLFxyXG4gICAgICBjb2xvcjogdGhpcy5mZ0NvbG9yLFxyXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmdDb2xvclxyXG4gICAgICAgID8gdGhpcy5iZ0NvbG9yXHJcbiAgICAgICAgOiB0aGlzLmdldFJhbmRvbUNvbG9yKGF2YXRhclZhbHVlKSxcclxuICAgICAgZm9udDpcclxuICAgICAgICBNYXRoLmZsb29yKCt0aGlzLnNpemUgLyB0aGlzLnRleHRTaXplUmF0aW8pICtcclxuICAgICAgICAncHggSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZicsXHJcbiAgICAgIGxpbmVIZWlnaHQ6IHRoaXMuc2l6ZSArICdweCcsXHJcbiAgICAgIC4uLnRoaXMuc3R5bGVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIHJldHVybnMgaW1hZ2Ugc3R5bGVcclxuICAgKi9cclxuICBwcml2YXRlIGdldEltYWdlU3R5bGUoKTogU3R5bGUge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcclxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLnJvdW5kID8gJzUwJScgOiB0aGlzLmNvcm5lclJhZGl1cyArICdweCcsXHJcbiAgICAgIGJvcmRlcjogdGhpcy5ib3JkZXJDb2xvciA/ICcxcHggc29saWQgJyArIHRoaXMuYm9yZGVyQ29sb3IgOiAnJyxcclxuICAgICAgd2lkdGg6IHRoaXMuc2l6ZSArICdweCcsXHJcbiAgICAgIGhlaWdodDogdGhpcy5zaXplICsgJ3B4JyxcclxuICAgICAgLi4udGhpcy5zdHlsZSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJhbmRvbUNvbG9yKGF2YXRhclRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWF2YXRhclRleHQpIHtcclxuICAgICAgcmV0dXJuICd0cmFuc3BhcmVudCc7XHJcbiAgICB9XHJcbiAgICBjb25zdCBhc2NpaUNvZGVTdW0gPSB0aGlzLmNhbGN1bGF0ZUFzY2lpQ29kZShhdmF0YXJUZXh0KTtcclxuICAgIHJldHVybiB0aGlzLmF2YXRhckNvbG9yc1thc2NpaUNvZGVTdW0gJSB0aGlzLmF2YXRhckNvbG9ycy5sZW5ndGhdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVBc2NpaUNvZGUodmFsdWU6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdmFsdWVcclxuICAgICAgLnNwbGl0KCcnKVxyXG4gICAgICAubWFwKGxldHRlciA9PiBsZXR0ZXIuY2hhckNvZGVBdCgwKSlcclxuICAgICAgLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHByZXZpb3VzICsgY3VycmVudCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXZhdGFyLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cImhvc3RTdHlsZVwiPlxyXG4gICAgPGltZyAqbmdJZj1cImF2YXRhclNyYzsgZWxzZSB0ZXh0QXZhdGFyXCIgXHJcbiAgICAgICAgW3NyY109XCJhdmF0YXJTcmNcIiBcclxuICAgICAgICBbd2lkdGhdPVwic2l6ZVwiIFxyXG4gICAgICAgIFtoZWlnaHRdPVwic2l6ZVwiIFxyXG4gICAgICAgIFtuZ1N0eWxlXT1cImF2YXRhclN0eWxlXCJcclxuICAgICAgICBjbGFzcz1cImF2YXRhci1jb250ZW50XCIgbG9hZGluZz1cImxhenlcIiAvPlxyXG4gICAgPG5nLXRlbXBsYXRlICN0ZXh0QXZhdGFyPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJhdmF0YXJUZXh0XCIgY2xhc3M9XCJhdmF0YXItY29udGVudFwiIFtuZ1N0eWxlXT1cImF2YXRhclN0eWxlXCI+XHJcbiAgICAgICAgICAgIHt7IGF2YXRhclRleHQgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PiJdfQ==
|