btv-base-controls 0.1.24 → 0.1.26

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.
Files changed (70) hide show
  1. package/{esm2020 → esm2022}/btv-base-controls.mjs +4 -4
  2. package/{esm2020 → esm2022}/lib/basic.module.mjs +64 -64
  3. package/esm2022/lib/blink-message/blink-message.component.mjs +54 -0
  4. package/{esm2020 → esm2022}/lib/btv-icon-button/btv-counter-button.mjs +47 -47
  5. package/esm2022/lib/btv-icon-button/btv-icon-button.component.mjs +89 -0
  6. package/esm2022/lib/btv-progress/btv-progress.component.mjs +71 -0
  7. package/esm2022/lib/btv-search/btv-search.component.mjs +82 -0
  8. package/{esm2020 → esm2022}/lib/busy-indicator/busy-indicator.component.mjs +16 -16
  9. package/{esm2020 → esm2022}/lib/custom-tool-tip/custom-tool-tip.component.mjs +34 -34
  10. package/esm2022/lib/custom-tool-tip/tool-tip-renderer.directive.mjs +113 -0
  11. package/{esm2020 → esm2022}/lib/illustration/illustration.component.mjs +17 -17
  12. package/esm2022/lib/wm-avatar/avatar.component.mjs +175 -0
  13. package/{esm2020 → esm2022}/lib/wm-back-btn/wm-back-btn.component.mjs +26 -26
  14. package/{esm2020 → esm2022}/lib/wm-beta-text/wm-beta-text.component.mjs +19 -19
  15. package/{esm2020 → esm2022}/lib/wm-info/info-models.mjs +13 -13
  16. package/esm2022/lib/wm-info/wm-info.component.mjs +239 -0
  17. package/{esm2020 → esm2022}/lib/wm-info-card/wm-info-card.component.mjs +23 -23
  18. package/{esm2020 → esm2022}/lib/wm-no-content/wm-no-content.component.mjs +30 -30
  19. package/esm2022/lib/wm-panel-bar/wm-panel-bar.component.mjs +78 -0
  20. package/esm2022/lib/wm-scalable-div/scalable-div.component.mjs +105 -0
  21. package/esm2022/lib/wm-spinner/wm-spinner.component.mjs +135 -0
  22. package/{esm2020 → esm2022}/lib/wm-state-icon/wm-state-icon.component.mjs +18 -18
  23. package/{esm2020 → esm2022}/lib/wm-tag/wm-tag.component.mjs +28 -28
  24. package/esm2022/lib/wm-tamplate-image/wm-template-image.component.mjs +71 -0
  25. package/{esm2020 → esm2022}/lib/wm-toggle/wm-toggle.component.mjs +31 -31
  26. package/{esm2020 → esm2022}/models/guidExtension.mjs +14 -14
  27. package/{esm2020 → esm2022}/public-api.mjs +27 -27
  28. package/{fesm2020 → fesm2022}/btv-base-controls.mjs +1430 -1430
  29. package/{fesm2020 → fesm2022}/btv-base-controls.mjs.map +1 -1
  30. package/index.d.ts +5 -5
  31. package/lib/basic.module.d.ts +33 -33
  32. package/lib/blink-message/blink-message.component.d.ts +20 -20
  33. package/lib/btv-icon-button/btv-counter-button.d.ts +12 -12
  34. package/lib/btv-icon-button/btv-icon-button.component.d.ts +30 -30
  35. package/lib/btv-progress/btv-progress.component.d.ts +20 -20
  36. package/lib/btv-search/btv-search.component.d.ts +31 -31
  37. package/lib/busy-indicator/busy-indicator.component.d.ts +7 -7
  38. package/lib/custom-tool-tip/custom-tool-tip.component.d.ts +35 -35
  39. package/lib/custom-tool-tip/tool-tip-renderer.directive.d.ts +49 -49
  40. package/lib/illustration/illustration.component.d.ts +10 -10
  41. package/lib/wm-avatar/avatar.component.d.ts +63 -63
  42. package/lib/wm-back-btn/wm-back-btn.component.d.ts +10 -10
  43. package/lib/wm-beta-text/wm-beta-text.component.d.ts +7 -7
  44. package/lib/wm-info/info-models.d.ts +21 -21
  45. package/lib/wm-info/wm-info.component.d.ts +34 -34
  46. package/lib/wm-info-card/wm-info-card.component.d.ts +9 -9
  47. package/lib/wm-no-content/wm-no-content.component.d.ts +11 -11
  48. package/lib/wm-panel-bar/wm-panel-bar.component.d.ts +25 -25
  49. package/lib/wm-scalable-div/scalable-div.component.d.ts +24 -24
  50. package/lib/wm-spinner/wm-spinner.component.d.ts +37 -37
  51. package/lib/wm-state-icon/wm-state-icon.component.d.ts +9 -9
  52. package/lib/wm-tag/wm-tag.component.d.ts +10 -10
  53. package/lib/wm-tamplate-image/wm-template-image.component.d.ts +49 -49
  54. package/lib/wm-toggle/wm-toggle.component.d.ts +11 -11
  55. package/models/guidExtension.d.ts +5 -5
  56. package/package.json +5 -11
  57. package/public-api.d.ts +24 -24
  58. package/esm2020/lib/blink-message/blink-message.component.mjs +0 -54
  59. package/esm2020/lib/btv-icon-button/btv-icon-button.component.mjs +0 -89
  60. package/esm2020/lib/btv-progress/btv-progress.component.mjs +0 -71
  61. package/esm2020/lib/btv-search/btv-search.component.mjs +0 -82
  62. package/esm2020/lib/custom-tool-tip/tool-tip-renderer.directive.mjs +0 -113
  63. package/esm2020/lib/wm-avatar/avatar.component.mjs +0 -175
  64. package/esm2020/lib/wm-info/wm-info.component.mjs +0 -239
  65. package/esm2020/lib/wm-panel-bar/wm-panel-bar.component.mjs +0 -78
  66. package/esm2020/lib/wm-scalable-div/scalable-div.component.mjs +0 -105
  67. package/esm2020/lib/wm-spinner/wm-spinner.component.mjs +0 -135
  68. package/esm2020/lib/wm-tamplate-image/wm-template-image.component.mjs +0 -71
  69. package/fesm2015/btv-base-controls.mjs +0 -1482
  70. package/fesm2015/btv-base-controls.mjs.map +0 -1
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J0di1iYXNlLWNvbnRyb2xzL3NyYy9saWIvd20tYXZhdGFyL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL3dtLWF2YXRhci9hdmF0YXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFHTCxlQUFlLEVBQ2hCLE1BQU0sZUFBZSxDQUFDOzs7O0FBSXZCOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0NBQ1YsQ0FBQztBQVFGLE1BQU0sT0FBTyxlQUFlO0lBNkIxQixZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBMUJwQyxlQUFVLEdBQWtCLElBQUksQ0FBQztRQU14QixTQUFJLEdBQW9CLEVBQUUsQ0FBQztRQUVwQyxjQUFTLEdBQWtCLElBQUksQ0FBQztRQVF2QixVQUFLLEdBQVksSUFBSSxDQUFDO1FBQ3RCLGlCQUFZLEdBQW9CLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUVsQixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBRWpCLFVBQUssR0FBVSxFQUFFLENBQUM7UUFFM0IsaUJBQVksR0FBYSxhQUFhLENBQUM7UUE2QnZDLGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBVSxFQUFFLENBQUM7SUE1QmtCLENBQUM7SUF6QmhELElBQVcsSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEMsSUFBb0IsSUFBSSxDQUFDLEtBQW9CO1FBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQUEsQ0FBQztJQUN5QyxDQUFDO0lBSTVDLElBQVcsR0FBRyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQSxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3RDLElBQW9CLEdBQUcsQ0FBQyxLQUFvQjtRQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQWNNLFlBQVksQ0FBQyxjQUFzQjtRQUN4QyxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFFOUgsQ0FBQztJQUVNLGNBQWMsQ0FBQyxHQUFXO1FBQy9CLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFFckIsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakMsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNyQixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoQjtZQUNELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU1QyxRQUFRLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLDBCQUEwQjtRQUNwRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUtEOzs7Ozs7T0FNRztJQUNJLFdBQVcsQ0FBQyxPQUFzQjtRQUN2Qyw2RUFBNkU7UUFDN0UsOERBQThEO1FBQzlELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxTQUFTO1FBRWQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDM0Q7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFNO1FBQ25DLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSTtZQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO1NBQ3pCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdCQUFnQixDQUFDLFdBQW1CO1FBQzFDLE9BQU87WUFDTCxTQUFTLEVBQUUsUUFBUTtZQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUk7WUFDNUQsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9ELGFBQWEsRUFBRSxXQUFXO1lBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTztZQUNuQixlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFDZCxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7WUFDcEMsSUFBSSxFQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQzNDLGlDQUFpQztZQUNuQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO1lBQzVCLEdBQUcsSUFBSSxDQUFDLEtBQUs7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNLLGFBQWE7UUFDbkIsT0FBTztZQUNMLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSTtZQUMzRCxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDL0QsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSTtZQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO1lBQ3hCLEdBQUcsSUFBSSxDQUFDLEtBQUs7U0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxVQUFrQjtRQUN2QyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsT0FBTyxhQUFhLENBQUM7U0FDdEI7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3RDLE9BQU8sS0FBSzthQUNULEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDVCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs0R0FoSlUsZUFBZTtnR0FBZixlQUFlLDRTQ2hDNUIsZ2ZBWU07MkZEb0JPLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsV0FBVzttR0FTRCxJQUFJO3NCQUF2QixLQUFLO2dCQUlVLElBQUk7c0JBQW5CLEtBQUs7Z0JBS2MsR0FBRztzQkFBdEIsS0FBSztnQkFJVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgU2VjdXJpdHlDb250ZXh0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG50eXBlIFN0eWxlID0gUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjtcclxuXHJcbi8qKlxyXG4gKiBsaXN0IG9mIGRlZmF1bHQgY29sb3JzXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdENvbG9ycyA9IFtcclxuICAnIzFhYmM5YycsXHJcbiAgJyMzNDk4ZGInLFxyXG4gICcjZjFjNDBmJyxcclxuICAnIzhlNDRhZCcsXHJcbiAgJyNlNzRjM2MnLFxyXG4gICcjZDM1NDAwJyxcclxuICAnIzJjM2U1MCcsXHJcbiAgJyM3ZjhjOGQnXHJcbl07XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3bS1hdmF0YXInLFxyXG4gIHN0eWxlVXJsczogWycuL2F2YXRhci5zY3NzJ10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXZhdGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbiAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBwdWJsaWMgYXZhdGFyVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfVxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fbmFtZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5hdmF0YXJUZXh0ID0gdGhpcy5mb3JtVGV4dEF2YXRhcih2YWx1ZSk7XHJcbiAgfTtcclxuICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogc3RyaW5nIHwgbnVtYmVyID0gNTA7O1xyXG5cclxuICBwdWJsaWMgYXZhdGFyU3JjOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9zcmM6IHN0cmluZyB8IG51bGw7XHJcbiAgcHVibGljIGdldCBzcmMoKSB7IHJldHVybiB0aGlzLl9zcmMgfTtcclxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHNyYyh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fc3JjID0gdmFsdWU7XHJcbiAgICB0aGlzLmF2YXRhclNyYyA9IHRoaXMudHJhbnNmb3JtU3JjKHZhbHVlKTtcclxuICB9XHJcbiAgQElucHV0KCkgcHVibGljIHZhbHVlOiBzdHJpbmcgfCBudWxsO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByb3VuZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgcHVibGljIGNvcm5lclJhZGl1czogc3RyaW5nIHwgbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSBwdWJsaWMgdGV4dFNpemVSYXRpbyA9IDM7XHJcbiAgQElucHV0KCkgcHVibGljIGJnQ29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgZmdDb2xvciA9ICcjRkZGJztcclxuICBASW5wdXQoKSBwdWJsaWMgYm9yZGVyQ29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgc3R5bGU6IFN0eWxlID0ge307XHJcblxyXG4gIHB1YmxpYyBhdmF0YXJDb2xvcnM6IHN0cmluZ1tdID0gZGVmYXVsdENvbG9ycztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikgeyB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2Zvcm1TcmMoc3RyaW5nSW5CYXNlNjQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXN0cmluZ0luQmFzZTY0KSByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuUkVTT1VSQ0VfVVJMLCB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoc3RyaW5nSW5CYXNlNjQpKTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZm9ybVRleHRBdmF0YXIodmFsOiBzdHJpbmcpIHtcclxuICAgIGlmICghdmFsKSByZXR1cm4gJz8nO1xyXG5cclxuICAgIGNvbnN0IG5hbWUgPSB2YWwudHJpbSgpO1xyXG4gICAgY29uc3Qgc3BsaXR0ZWQgPSBuYW1lLnNwbGl0KCcgJyk7XHJcblxyXG4gICAgaWYgKHNwbGl0dGVkLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICBpZiAobmFtZS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICByZXR1cm4gbmFtZVswXTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmFtZVswXSArIG5hbWVbMV07XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKHNwbGl0dGVkLmxlbmd0aCwgMyk7XHJcblxyXG4gICAgc3BsaXR0ZWQubGVuZ3RoID0gbGVuZ3RoOyAvLyBsZWF2ZSBmaXJzdCAzIHdvcmRzIHRvcFxyXG4gICAgcmV0dXJuIHNwbGl0dGVkLm1hcChpdCA9PiBpdFswXSkuam9pbignJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXZhdGFyU3R5bGU6IFN0eWxlID0ge307XHJcbiAgcHVibGljIGhvc3RTdHlsZTogU3R5bGUgPSB7fTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGV0ZWN0IGlucHV0cyBjaGFuZ2VcclxuICAgKlxyXG4gICAqIHBhcmFtIHt7IFtwcm9wS2V5OiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfX0gY2hhbmdlc1xyXG4gICAqXHJcbiAgICogbWVtYmVyb2YgQXZhdGFyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIC8vIHJlaW5pdGlhbGl6ZSB0aGUgYXZhdGFyIGNvbXBvbmVudCB3aGVuIGEgc291cmNlIHByb3BlcnR5IHZhbHVlIGhhcyBjaGFuZ2VkXHJcbiAgICAvLyB0aGUgZmFsbGJhY2sgc3lzdGVtIG11c3QgYmUgcmUtaW52b2tlZCB3aXRoIHRoZSBuZXcgdmFsdWVzLlxyXG4gICAgdGhpcy5pbml0aWFsaXplQXZhdGFyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3R5bGVzKCk6IHZvaWQge1xyXG5cclxuICAgIGlmICghdGhpcy5zcmMpIHtcclxuICAgICAgdGhpcy5hdmF0YXJTdHlsZSA9IHRoaXMuZ2V0SW5pdGlhbHNTdHlsZSh0aGlzLmF2YXRhclRleHQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hdmF0YXJTdHlsZSA9IHRoaXMuZ2V0SW1hZ2VTdHlsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSB0aGUgYXZhdGFyIGNvbXBvbmVudCBhbmQgaXRzIGZhbGxiYWNrIHN5c3RlbVxyXG4gICAqL1xyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUF2YXRhcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zcmMgJiYgIXRoaXMubmFtZSkgcmV0dXJuXHJcbiAgICB0aGlzLmdldFN0eWxlcygpO1xyXG4gICAgdGhpcy5ob3N0U3R5bGUgPSB7XHJcbiAgICAgIHdpZHRoOiB0aGlzLnNpemUgKyAncHgnLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuc2l6ZSArICdweCdcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIHJldHVybnMgaW5pdGlhbHMgc3R5bGVcclxuICAgKlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0SW5pdGlhbHNTdHlsZShhdmF0YXJWYWx1ZTogc3RyaW5nKTogU3R5bGUge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcclxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLnJvdW5kID8gJzEwMCUnIDogdGhpcy5jb3JuZXJSYWRpdXMgKyAncHgnLFxyXG4gICAgICBib3JkZXI6IHRoaXMuYm9yZGVyQ29sb3IgPyAnMXB4IHNvbGlkICcgKyB0aGlzLmJvcmRlckNvbG9yIDogJycsXHJcbiAgICAgIHRleHRUcmFuc2Zvcm06ICd1cHBlcmNhc2UnLFxyXG4gICAgICBjb2xvcjogdGhpcy5mZ0NvbG9yLFxyXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmdDb2xvclxyXG4gICAgICAgID8gdGhpcy5iZ0NvbG9yXHJcbiAgICAgICAgOiB0aGlzLmdldFJhbmRvbUNvbG9yKGF2YXRhclZhbHVlKSxcclxuICAgICAgZm9udDpcclxuICAgICAgICBNYXRoLmZsb29yKCt0aGlzLnNpemUgLyB0aGlzLnRleHRTaXplUmF0aW8pICtcclxuICAgICAgICAncHggSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZicsXHJcbiAgICAgIGxpbmVIZWlnaHQ6IHRoaXMuc2l6ZSArICdweCcsXHJcbiAgICAgIC4uLnRoaXMuc3R5bGVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIHJldHVybnMgaW1hZ2Ugc3R5bGVcclxuICAgKi9cclxuICBwcml2YXRlIGdldEltYWdlU3R5bGUoKTogU3R5bGUge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcclxuICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLnJvdW5kID8gJzUwJScgOiB0aGlzLmNvcm5lclJhZGl1cyArICdweCcsXHJcbiAgICAgIGJvcmRlcjogdGhpcy5ib3JkZXJDb2xvciA/ICcxcHggc29saWQgJyArIHRoaXMuYm9yZGVyQ29sb3IgOiAnJyxcclxuICAgICAgd2lkdGg6IHRoaXMuc2l6ZSArICdweCcsXHJcbiAgICAgIGhlaWdodDogdGhpcy5zaXplICsgJ3B4JyxcclxuICAgICAgLi4udGhpcy5zdHlsZSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJhbmRvbUNvbG9yKGF2YXRhclRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWF2YXRhclRleHQpIHtcclxuICAgICAgcmV0dXJuICd0cmFuc3BhcmVudCc7XHJcbiAgICB9XHJcbiAgICBjb25zdCBhc2NpaUNvZGVTdW0gPSB0aGlzLmNhbGN1bGF0ZUFzY2lpQ29kZShhdmF0YXJUZXh0KTtcclxuICAgIHJldHVybiB0aGlzLmF2YXRhckNvbG9yc1thc2NpaUNvZGVTdW0gJSB0aGlzLmF2YXRhckNvbG9ycy5sZW5ndGhdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVBc2NpaUNvZGUodmFsdWU6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdmFsdWVcclxuICAgICAgLnNwbGl0KCcnKVxyXG4gICAgICAubWFwKGxldHRlciA9PiBsZXR0ZXIuY2hhckNvZGVBdCgwKSlcclxuICAgICAgLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHByZXZpb3VzICsgY3VycmVudCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXZhdGFyLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cImhvc3RTdHlsZVwiPlxyXG4gICAgPGltZyAqbmdJZj1cImF2YXRhclNyYzsgZWxzZSB0ZXh0QXZhdGFyXCIgXHJcbiAgICAgICAgW3NyY109XCJhdmF0YXJTcmNcIiBcclxuICAgICAgICBbd2lkdGhdPVwic2l6ZVwiIFxyXG4gICAgICAgIFtoZWlnaHRdPVwic2l6ZVwiIFxyXG4gICAgICAgIFtuZ1N0eWxlXT1cImF2YXRhclN0eWxlXCJcclxuICAgICAgICBjbGFzcz1cImF2YXRhci1jb250ZW50XCIgbG9hZGluZz1cImxhenlcIiAvPlxyXG4gICAgPG5nLXRlbXBsYXRlICN0ZXh0QXZhdGFyPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJhdmF0YXJUZXh0XCIgY2xhc3M9XCJhdmF0YXItY29udGVudFwiIFtuZ1N0eWxlXT1cImF2YXRhclN0eWxlXCI+XHJcbiAgICAgICAgICAgIHt7IGF2YXRhclRleHQgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PiJdfQ==
@@ -1,239 +0,0 @@
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
- constructor(_overlay, _elementRef, viewContainerRef) {
12
- this._overlay = _overlay;
13
- this._elementRef = _elementRef;
14
- this.viewContainerRef = viewContainerRef;
15
- this.preText = '';
16
- this.postText = '';
17
- this.type = InfoType.Error;
18
- this.popupPosition = 'bottom-right';
19
- this.useThemeForIconTemplate = false;
20
- this.defaultIconSize = 24;
21
- this.smallIconSize = 16;
22
- this.positionBottom = true;
23
- this.positionLeft = true;
24
- this.currentPositions = DEFAULT_TOOLTIP_POSITIONS;
25
- }
26
- get imageSize() {
27
- return (this.smallIcon ? this.smallIconSize : this.defaultIconSize) + 'px';
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
- }
217
- WmInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WmInfoComponent, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
218
- WmInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", 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 });
219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", 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: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid20taW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL3dtLWluZm8vd20taW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idHYtYmFzZS1jb250cm9scy9zcmMvbGliL3dtLWluZm8vd20taW5mby5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBdUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsdUJBQXVCLEVBQXdELE1BQU0sZUFBZSxDQUFDO0FBQ3hJLE9BQU8sRUFBRSxRQUFRLEVBQXdCLE1BQU0sZUFBZSxDQUFDOzs7OztBQUUvRCxNQUFNLHlCQUF5QixHQUFHLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztBQVMxSCxNQUFNLE9BQU8sZUFBZTtJQXNCMUIsWUFBb0IsUUFBaUIsRUFDM0IsV0FBdUIsRUFBVSxnQkFBa0M7UUFEekQsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFyQnBFLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUV0QixTQUFJLEdBQWEsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNoQyxrQkFBYSxHQUFXLGNBQWMsQ0FBQztRQUV2Qyw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFFbEQsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsbUJBQWMsR0FB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QUFRLEVBQUUsS0FBSztxQkFDaEI7b0JBQ0QsS0FBSyxFQUFFO3dCQUNMLE1BQU0sRUFBRSxJQUFJO3dCQUNaLElBQUksRUFBRSxLQUFLO3FCQUNaO2lCQUNGLENBQUM7U0FDTDtRQUNELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7OzRHQTlOVSxlQUFlO2dHQUFmLGVBQWUsbVJDZDVCLGdpQ0FrQlM7MkZESkksZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxTQUFTLG1CQUdGLHVCQUF1QixDQUFDLE1BQU07c0pBS3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGlvblBvc2l0aW9uUGFpciwgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVGVtcGxhdGVSZWYsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmZvVHlwZSwgSVdtSW5mb1Bvc2l0aW9uUG9wdXAgfSBmcm9tICcuL2luZm8tbW9kZWxzJztcclxuXHJcbmNvbnN0IERFRkFVTFRfVE9PTFRJUF9QT1NJVElPTlMgPSBbJ2JvdHRvbS1yaWdodCcsICdib3R0b20tY2VudGVyJywgJ2JvdHRvbS1sZWZ0JywgJ3RvcC1yaWdodCcsICd0b3AtY2VudGVyJywgJ3RvcC1sZWZ0J107XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3dtLWluZm8nLFxyXG4gIHN0eWxlVXJsczogWycuL3dtLWluZm8uc2NzcyddLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93bS1pbmZvLmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgV21JbmZvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBwcmVUZXh0OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBwb3N0VGV4dDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaGVhZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZTogSW5mb1R5cGUgPSBJbmZvVHlwZS5FcnJvcjtcclxuICBASW5wdXQoKSBwb3B1cFBvc2l0aW9uOiBzdHJpbmcgPSAnYm90dG9tLXJpZ2h0JztcclxuICBASW5wdXQoKSBpY29uQXNUZW1wbGF0ZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSB1c2VUaGVtZUZvckljb25UZW1wbGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNtYWxsSWNvbjogYm9vbGVhbjtcclxuICBkZWZhdWx0SWNvblNpemUgPSAyNDtcclxuICBzbWFsbEljb25TaXplID0gMTY7XHJcbiAgcG9zaXRpb25Cb3R0b206IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHBvc2l0aW9uTGVmdDogYm9vbGVhbiA9IHRydWU7XHJcbiAgY3VycmVudFBvc2l0aW9uczogc3RyaW5nW10gPSBERUZBVUxUX1RPT0xUSVBfUE9TSVRJT05TO1xyXG5cclxuICBnZXQgaW1hZ2VTaXplKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLnNtYWxsSWNvbiA/IHRoaXMuc21hbGxJY29uU2l6ZSA6IHRoaXMuZGVmYXVsdEljb25TaXplKSArICdweCc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVBvcHVwKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XHJcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICB0aGlzLmNsb3NlUG9wdXAoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlblBvcHVwKHRlbXBsYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgb3BlblBvcHVwKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XHJcbiAgICB0aGlzLmNsb3NlUG9wdXAoKTsgLy8gY2xvc2UgYW55IG9sZCBvbmVzLlxyXG5cclxuICAgIGNvbnN0IHBvc2l0aW9uUGFpcnM6IENvbm5lY3Rpb25Qb3NpdGlvblBhaXJbXSA9IHRoaXMuY3VycmVudFBvc2l0aW9ucy5tYXAocG9zaXRpb24gPT4ge1xyXG4gICAgICBjb25zdCBkYXRhOiBJV21JbmZvUG9zaXRpb25Qb3B1cCA9IHRoaXMuY2hlY2tQb3B1cFBvc2l0aW9uKHBvc2l0aW9uKTtcclxuICAgICAgY29uc3QgdmVydENsYXNzID0gZGF0YS5hcnJvdy5ib3R0b20gPyAnaW5mby1ib3R0b20nIDogJ2luZm8tdG9wJztcclxuICAgICAgY29uc3QgaG9yQ2xhc3MgPSBkYXRhLmFycm93LmxlZnQgPyAnaW5mby1sZWZ0JyA6ICdpbmZvLXJpZ2h0JztcclxuICAgICAgcmV0dXJuIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKFxyXG4gICAgICAgIHsgb3JpZ2luWDogZGF0YS5vcmlnaW4ub3JpZ2luWCwgb3JpZ2luWTogZGF0YS5vcmlnaW4ub3JpZ2luWSB9LFxyXG4gICAgICAgIHsgb3ZlcmxheVg6IGRhdGEub3ZlcmxheS5vdmVybGF5WCwgb3ZlcmxheVk6IGRhdGEub3ZlcmxheS5vdmVybGF5WSB9LCAwLCAwLFxyXG4gICAgICAgIFsnaW5mby1wb3B1cC13cmFwcGVyJywgdmVydENsYXNzLCBob3JDbGFzc11cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKVxyXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50UmVmKVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhwb3NpdGlvblBhaXJzKVxyXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0cnVlKVxyXG4gICAgICAud2l0aFB1c2godHJ1ZSk7XHJcblxyXG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgcGFuZWxDbGFzczogWydtYXQtdG9vbHRpcC1wYW5lbCcsICdtb2RhbCcsICdpcy1hY3RpdmUnXSxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdtb2RhbC1iYWNrZ3JvdW5kJyxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3lcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYgJiYgIXRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xyXG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZVBvcHVwKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZVBvcHVwKCkge1xyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMucG9wdXBQb3NpdGlvbiAhPT0gREVGQVVMVF9UT09MVElQX1BPU0lUSU9OU1swXSkge1xyXG4gICAgICBjb25zdCBvdGhlclBvc2l0aW9ucyA9IFtdO1xyXG4gICAgICBjb25zdCBmaWx0ZXJlZEJ5Rmlyc3RQb3NpdGlvbiA9IERFRkFVTFRfVE9PTFRJUF9QT1NJVElPTlNcclxuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICBpZiAoaXRlbSA9PT0gdGhpcy5wb3B1cFBvc2l0aW9uKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKHRoaXMucG9wdXBQb3NpdGlvbi5zcGxpdCgnLScpWzBdKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG90aGVyUG9zaXRpb25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5jdXJyZW50UG9zaXRpb25zID0gW3RoaXMucG9wdXBQb3NpdGlvbl0uY29uY2F0KGZpbHRlcmVkQnlGaXJzdFBvc2l0aW9uKS5jb25jYXQob3RoZXJQb3NpdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEljb25OYW1lKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcclxuICAgICAgY2FzZSBJbmZvVHlwZS5FcnJvcjpcclxuICAgICAgICByZXR1cm4gJ2Vycm9yJztcclxuICAgICAgY2FzZSBJbmZvVHlwZS5XYXJuaW5nOlxyXG4gICAgICAgIHJldHVybiAnd2FybmluZyc7XHJcbiAgICAgIGNhc2UgSW5mb1R5cGUuVGFiRXJyb3I6XHJcbiAgICAgICAgcmV0dXJuICdiby1lcnJvcic7XHJcbiAgICAgIGNhc2UgSW5mb1R5cGUuVGFiV2FybmluZzpcclxuICAgICAgICByZXR1cm4gJ2JvLXdhcm5pbmcnO1xyXG4gICAgICBjYXNlIEluZm9UeXBlLkluZm9TbWFsbDpcclxuICAgICAgICByZXR1cm4gJ2luZm8tcyc7XHJcbiAgICAgIGNhc2UgSW5mb1R5cGUuRmlsdGVyZWQ6XHJcbiAgICAgICAgcmV0dXJuICdmaWx0ZXInO1xyXG4gICAgICBjYXNlIEluZm9UeXBlLklubGluZURldGFpbHM6XHJcbiAgICAgICAgcmV0dXJuICdleWUtcGljayc7XHJcbiAgICAgIGNhc2UgSW5mb1R5cGUuU3ViTmF2UGFuZWw6XHJcbiAgICAgICAgdGhpcy5zbWFsbEljb24gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiAnc3ViLW5hdi13YXJuaW5nJztcclxuICAgICAgY2FzZSBJbmZvVHlwZS5JbmZvR29sZDpcclxuICAgICAgICByZXR1cm4gJ2luZm8tZ29sZCc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICdpbmZvJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbG9zZVBvcHVwKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja1BvcHVwUG9zaXRpb24odmFsdWU6IHN0cmluZyk6IElXbUluZm9Qb3NpdGlvblBvcHVwIHtcclxuICAgIGxldCBjdXJyZW50UG9zaXRpb246IElXbUluZm9Qb3NpdGlvblBvcHVwO1xyXG4gICAgc3dpdGNoICh2YWx1ZSkge1xyXG4gICAgICBjYXNlICdib3R0b20tbGVmdCc6XHJcbiAgICAgICAgY3VycmVudFBvc2l0aW9uID0ge1xyXG4gICAgICAgICAgb3JpZ2luOiB7XHJcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxyXG4gICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG92ZXJsYXk6IHtcclxuICAgICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxyXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBhcnJvdzoge1xyXG4gICAgICAgICAgICBib3R0b206IHRydWUsXHJcbiAgICAgICAgICAgIGxlZnQ6IHRydWUsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG9wLXJpZ2h0JzpcclxuICAgICAgICBjdXJyZW50UG9zaXRpb24gPSB7XHJcbiAgICAgICAgICBvcmlnaW46IHtcclxuICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb3ZlcmxheToge1xyXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcclxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGFycm93OiB7XHJcbiAgICAgICAgICAgIGJvdHRvbTogZmFsc2UsXHJcbiAgICAgICAgICAgIGxlZnQ6IHRydWUsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG9wLWxlZnQnOlxyXG4gICAgICAgIGN1cnJlbnRQb3NpdGlvbiA9IHtcclxuICAgICAgICAgIG9yaWdpbjoge1xyXG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcclxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb3ZlcmxheToge1xyXG4gICAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXHJcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBhcnJvdzoge1xyXG4gICAgICAgICAgICBib3R0b206IGZhbHNlLFxyXG4gICAgICAgICAgICBsZWZ0OiBmYWxzZSxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AtY2VudGVyJzpcclxuICAgICAgICBjdXJyZW50UG9zaXRpb24gPSB7XHJcbiAgICAgICAgICBvcmlnaW46IHtcclxuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG92ZXJsYXk6IHtcclxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYXJyb3c6IHtcclxuICAgICAgICAgICAgYm90dG9tOiBmYWxzZSxcclxuICAgICAgICAgICAgbGVmdDogdHJ1ZSxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tY2VudGVyJzpcclxuICAgICAgICBjdXJyZW50UG9zaXRpb24gPSB7XHJcbiAgICAgICAgICBvcmlnaW46IHtcclxuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG92ZXJsYXk6IHtcclxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYXJyb3c6IHtcclxuICAgICAgICAgICAgYm90dG9tOiB0cnVlLFxyXG4gICAgICAgICAgICBsZWZ0OiB0cnVlLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgY3VycmVudFBvc2l0aW9uID0ge1xyXG4gICAgICAgICAgb3JpZ2luOiB7XHJcbiAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG92ZXJsYXk6IHtcclxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBhcnJvdzoge1xyXG4gICAgICAgICAgICBib3R0b206IHRydWUsXHJcbiAgICAgICAgICAgIGxlZnQ6IGZhbHNlLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uO1xyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI3BvcHVwVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cInUtYXJyb3dcIj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidS1pbmZvLWNvbnRlbnRcIiBbbmdDbGFzc109XCJ7J3AtZXJyb3InOiB0eXBlID09PSAwLCAncC13YXJuaW5nJzogdHlwZSA9PT0gMSwgJ3AtaW5mbyc6IHR5cGUgPT09IDJ9XCI+XHJcbiAgICA8c3BhbiAqbmdJZj1cImhlYWRlclwiIFtpbm5lckhUTUxdPVwiaGVhZGVyXCI+PC9zcGFuPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4gPGRpdiBjbGFzcz1cImluZm8td3JhcCBmbGV4LXJvd1wiIFtuZ0NsYXNzXT1cInsncC1lcnJvcic6IHR5cGUgPT09IDAsICdwLXdhcm5pbmcnOiB0eXBlID09PSAxLCAncC1pbmZvJzogdHlwZSA9PT0gMn1cIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW5mby1sYWJlbFwiICpuZ0lmPVwicHJlVGV4dFwiPnt7cHJlVGV4dH19PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpbmZvLWljb25cIiAoY2xpY2spPVwidG9nZ2xlUG9wdXAocG9wdXBUZW1wbGF0ZSlcIj5cclxuICAgICAgPHdtLXRlbXBsYXRlLWltYWdlICpuZ0lmPVwiaWNvbkFzVGVtcGxhdGVcIiBbaWNvbl09XCJnZXRJY29uTmFtZSgpXCIgW3NpemVdPVwiaW1hZ2VTaXplXCJcclxuICAgICAgICBbYWN0aXZlXT1cInVzZVRoZW1lRm9ySWNvblRlbXBsYXRlXCI+XHJcbiAgICAgIDwvd20tdGVtcGxhdGUtaW1hZ2U+XHJcbiAgICAgIDxpbWcgKm5nSWY9XCIhaWNvbkFzVGVtcGxhdGVcIiBbYXR0ci53aWR0aF09XCJpbWFnZVNpemVcIiBbYXR0ci5oZWlnaHRdPVwiaW1hZ2VTaXplXCJcclxuICAgICAgICBzcmM9XCJ7eycuL2Fzc2V0cy9pY29uL3N2Zy8nICsgZ2V0SWNvbk5hbWUoKSArICcuc3ZnJ319XCIgYWx0PVwie3tnZXRJY29uTmFtZSgpfX1cIiAvPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpbmZvLWxhYmVsXCIgKm5nSWY9XCJwb3N0VGV4dFwiPnt7cG9zdFRleHR9fTwvc3Bhbj5cclxuICA8L2Rpdj4gIl19