@klippa/ngx-enhancy-forms 14.21.0 → 14.22.1

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.
@@ -9,13 +9,17 @@ const colors = {
9
9
  };
10
10
  export class WithTooltipDirective {
11
11
  constructor(el) {
12
+ this.el = el;
12
13
  this.klpWithTooltip = 'orange';
13
14
  el.nativeElement.addEventListener('mouseenter', () => {
14
- const textToDisplay = this.tooltipText || el.nativeElement.innerText.trim();
15
+ let textToDisplay;
16
+ if (!this.templateInstance) {
17
+ textToDisplay = this.tooltipText || el.nativeElement.innerText.trim();
18
+ }
15
19
  if (!stringIsSetAndFilled(this.klpWithTooltip)) {
16
20
  return;
17
21
  }
18
- if (textToDisplay.length < 1) {
22
+ if (!stringIsSetAndFilled(textToDisplay) && !this.tooltipTemplate) {
19
23
  return;
20
24
  }
21
25
  if (stringIsSetAndFilled(this.tooltipText)) {
@@ -23,6 +27,9 @@ export class WithTooltipDirective {
23
27
  return;
24
28
  }
25
29
  }
30
+ else if (this.tooltipTemplate) {
31
+ // no need to check here, just render the template
32
+ }
26
33
  else {
27
34
  if (el.nativeElement.offsetWidth >= el.nativeElement.scrollWidth) {
28
35
  return;
@@ -46,7 +53,19 @@ export class WithTooltipDirective {
46
53
  this.div.style.padding = '0.3rem 0.5rem';
47
54
  this.div.style.boxSizing = 'border-box';
48
55
  this.div.style.borderRadius = '3px';
49
- this.div.textContent = textToDisplay;
56
+ if (stringIsSetAndFilled(textToDisplay)) {
57
+ this.div.textContent = textToDisplay;
58
+ }
59
+ else if (this.templateInstance) {
60
+ this.div.style.maxWidth = 'none';
61
+ this.div.style.visibility = 'hidden';
62
+ this.div.appendChild(this.templateInstance);
63
+ setTimeout(() => {
64
+ const color = getComputedStyle(this.templateInstance).backgroundColor || getComputedStyle(this.templateInstance).background;
65
+ this.div.style.backgroundColor = color;
66
+ this.div.style.visibility = 'visible';
67
+ });
68
+ }
50
69
  el.nativeElement.prepend(this.div);
51
70
  this.triangle = document.createElement('div');
52
71
  this.triangle.style.zIndex = `${zIndexStart + 1}`;
@@ -70,7 +89,17 @@ export class WithTooltipDirective {
70
89
  this.triangleWhite.style.height = '0';
71
90
  this.triangleWhite.style.borderLeft = `${triangleSize} solid transparent`;
72
91
  this.triangleWhite.style.borderRight = `${triangleSize} solid transparent`;
73
- this.triangleWhite.style.borderTop = `${triangleSize} solid white`;
92
+ if (stringIsSetAndFilled(textToDisplay)) {
93
+ this.triangleWhite.style.borderTop = `${triangleSize} solid white`;
94
+ }
95
+ else if (this.templateInstance) {
96
+ this.div.style.visibility = 'hidden';
97
+ setTimeout(() => {
98
+ const color = getComputedStyle(this.templateInstance).backgroundColor || getComputedStyle(this.templateInstance).background;
99
+ this.triangleWhite.style.borderTop = `${triangleSize} solid ${color}`;
100
+ this.div.style.visibility = 'visible';
101
+ });
102
+ }
74
103
  el.nativeElement.prepend(this.triangleWhite);
75
104
  });
76
105
  el.nativeElement.addEventListener('mouseleave', () => {
@@ -88,9 +117,15 @@ export class WithTooltipDirective {
88
117
  catch (ex) { }
89
118
  });
90
119
  }
120
+ ngOnChanges(simpleChanges) {
121
+ if (simpleChanges.tooltipTemplate?.currentValue) {
122
+ const viewRef = this.tooltipTemplate.createEmbeddedView(null);
123
+ this.templateInstance = viewRef.rootNodes[0];
124
+ }
125
+ }
91
126
  }
92
127
  WithTooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: WithTooltipDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
93
- WithTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: WithTooltipDirective, selector: "[klpWithTooltip]", inputs: { klpWithTooltip: "klpWithTooltip", tooltipText: "tooltipText" }, ngImport: i0 });
128
+ WithTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: WithTooltipDirective, selector: "[klpWithTooltip]", inputs: { klpWithTooltip: "klpWithTooltip", tooltipText: "tooltipText", tooltipTemplate: "tooltipTemplate" }, usesOnChanges: true, ngImport: i0 });
94
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: WithTooltipDirective, decorators: [{
95
130
  type: Directive,
96
131
  args: [{
@@ -100,5 +135,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
100
135
  type: Input
101
136
  }], tooltipText: [{
102
137
  type: Input
138
+ }], tooltipTemplate: [{
139
+ type: Input
103
140
  }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFRvb2x0aXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy9saWIvd2l0aFRvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFbkQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDO0FBQzVCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQztBQUU3QixNQUFNLE1BQU0sR0FBRztJQUNkLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUM7SUFDcEYsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxnQ0FBZ0MsRUFBQztDQUNqRixDQUFDO0FBS0YsTUFBTSxPQUFPLG9CQUFvQjtJQU1oQyxZQUFZLEVBQWM7UUFGakIsbUJBQWMsR0FBc0IsUUFBUSxDQUFDO1FBR3JELEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtZQUNwRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQy9DLE9BQU87YUFDUDtZQUNELElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzdCLE9BQU87YUFDUDtZQUNELElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUMzQyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUU7b0JBQ3BELE9BQU87aUJBQ1A7YUFDRDtpQkFBTTtnQkFDTixJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFO29CQUNqRSxPQUFPO2lCQUNQO2FBQ0Q7WUFDRCxJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFO2dCQUM3RCxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO2FBQzdDO1lBRUQsSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN2RSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsMEJBQTBCLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLDRCQUE0QixDQUFDO1lBQ2hJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQztZQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxhQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDN0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLG9CQUFvQixNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUM7WUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQztZQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztZQUNyQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssWUFBWSxDQUFDO1lBQzNJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUM1RSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsdUNBQXVDLENBQUM7WUFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxHQUFHLFlBQVksb0JBQW9CLENBQUM7WUFDckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLEdBQUcsWUFBWSxvQkFBb0IsQ0FBQztZQUN0RSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsR0FBRyxZQUFZLFVBQVUsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqRyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssWUFBWSxDQUFDO1lBQ2hKLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNqRixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsNkNBQTZDLENBQUM7WUFDbkYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxHQUFHLFlBQVksb0JBQW9CLENBQUM7WUFDMUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLEdBQUcsWUFBWSxvQkFBb0IsQ0FBQztZQUMzRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsR0FBRyxZQUFZLGNBQWMsQ0FBQztZQUNuRSxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7WUFDcEQsSUFBSTtnQkFDSCxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkM7WUFBQyxPQUFPLEVBQUUsRUFBRSxHQUFFO1lBQ2YsSUFBSTtnQkFDSCxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDNUM7WUFBQyxPQUFPLEVBQUUsRUFBRSxHQUFFO1lBQ2YsSUFBSTtnQkFDSCxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDakQ7WUFBQyxPQUFPLEVBQUUsRUFBRSxHQUFFO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7aUhBcEZXLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtpQkFDNUI7aUdBS1MsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtzdHJpbmdJc1NldEFuZEZpbGxlZH0gZnJvbSBcIi4vdXRpbC92YWx1ZXNcIjtcblxuY29uc3QgdHJpYW5nbGVTaXplID0gJzEycHgnO1xuY29uc3QgekluZGV4U3RhcnQgPSA5OTk5OTk5OTtcblxuY29uc3QgY29sb3JzID0ge1xuXHRvcmFuZ2U6IHsgbm9BbHBoYTogJ3JnYigyNTUsIDEyOCwgMCknLCB3aXRoQWxwaGE6ICdyZ2JhKDI1NSwgMTI4LCAwLCAwLjEyNTQ5MDE5NjEpJ30sXG5cdGJsYWNrOiB7IG5vQWxwaGE6ICdyZ2IoNDAsIDQwLCA0MCknLCB3aXRoQWxwaGE6ICdyZ2JhKDQwLCA0MCwgNDAsIDAuMTI1NDkwMTk2MSknfSxcbn07XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1trbHBXaXRoVG9vbHRpcF0nXG59KVxuZXhwb3J0IGNsYXNzIFdpdGhUb29sdGlwRGlyZWN0aXZlIHtcblx0cHJpdmF0ZSBkaXY6IEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIHRyaWFuZ2xlOiBIVE1MRWxlbWVudDtcblx0cHJpdmF0ZSB0cmlhbmdsZVdoaXRlOiBIVE1MRWxlbWVudDtcblx0QElucHV0KCkga2xwV2l0aFRvb2x0aXA6ICdvcmFuZ2UnfCAnYmxhY2snID0gJ29yYW5nZSc7XG5cdEBJbnB1dCgpIHRvb2x0aXBUZXh0OiBzdHJpbmc7XG5cdGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG5cdFx0ZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4ge1xuXHRcdFx0Y29uc3QgdGV4dFRvRGlzcGxheSA9IHRoaXMudG9vbHRpcFRleHQgfHwgZWwubmF0aXZlRWxlbWVudC5pbm5lclRleHQudHJpbSgpO1xuXHRcdFx0aWYgKCFzdHJpbmdJc1NldEFuZEZpbGxlZCh0aGlzLmtscFdpdGhUb29sdGlwKSkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAodGV4dFRvRGlzcGxheS5sZW5ndGggPCAxKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmIChzdHJpbmdJc1NldEFuZEZpbGxlZCh0aGlzLnRvb2x0aXBUZXh0KSkge1xuXHRcdFx0XHRpZiAodGhpcy50b29sdGlwVGV4dCA9PT0gZWwubmF0aXZlRWxlbWVudC5pbm5lclRleHQpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlmIChlbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoID49IGVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGgpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChnZXRDb21wdXRlZFN0eWxlKGVsLm5hdGl2ZUVsZW1lbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuXHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5kaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdHRoaXMuZGl2LnN0eWxlLnpJbmRleCA9IGAke3pJbmRleFN0YXJ0ICsgMn1gO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUuY29sb3IgPSBgJHtjb2xvcnNbdGhpcy5rbHBXaXRoVG9vbHRpcF0ubm9BbHBoYX1gO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUubGVmdCA9IGAke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueH1weGA7XG5cdFx0XHR0aGlzLmRpdi5zdHlsZS50b3AgPSBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnl9cHhgO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZShjYWxjKC0xMDAlICsgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofXB4KSwgY2FsYygtMTAwJSAtIDAuM3JlbSkpYDtcblx0XHRcdHRoaXMuZGl2LnN0eWxlLm1heFdpZHRoID0gJzIwMHB4Jztcblx0XHRcdHRoaXMuZGl2LnN0eWxlLndoaXRlU3BhY2UgPSAnYnJlYWstc3BhY2VzJztcblx0XHRcdHRoaXMuZGl2LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICd3aGl0ZSc7XG5cdFx0XHR0aGlzLmRpdi5zdHlsZS5ib3JkZXIgPSBgMXB4IHNvbGlkICR7Y29sb3JzW3RoaXMua2xwV2l0aFRvb2x0aXBdLndpdGhBbHBoYX1gO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUuYm94U2hhZG93ID0gYDJweCAzcHggMTBweCAwcHggJHtjb2xvcnNbdGhpcy5rbHBXaXRoVG9vbHRpcF0ud2l0aEFscGhhfWA7XG5cdFx0XHR0aGlzLmRpdi5zdHlsZS5wYWRkaW5nID0gJzAuM3JlbSAwLjVyZW0nO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUuYm94U2l6aW5nID0gJ2JvcmRlci1ib3gnO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUuYm9yZGVyUmFkaXVzID0gJzNweCc7XG5cdFx0XHR0aGlzLmRpdi50ZXh0Q29udGVudCA9IHRleHRUb0Rpc3BsYXk7XG5cdFx0XHRlbC5uYXRpdmVFbGVtZW50LnByZXBlbmQodGhpcy5kaXYpO1xuXG5cdFx0XHR0aGlzLnRyaWFuZ2xlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLnpJbmRleCA9IGAke3pJbmRleFN0YXJ0ICsgMX1gO1xuXHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLmxlZnQgPSBgY2FsYygke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCArIGVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cHggLSAycmVtKWA7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLnRvcCA9IGAke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueX1weGA7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoLTUwJSwgY2FsYygtMTAwJSArIDAuMXJlbSkpYDtcblx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUud2lkdGggPSAnMCc7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLmhlaWdodCA9ICcwJztcblx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUuYm9yZGVyTGVmdCA9IGAke3RyaWFuZ2xlU2l6ZX0gc29saWQgdHJhbnNwYXJlbnRgO1xuXHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS5ib3JkZXJSaWdodCA9IGAke3RyaWFuZ2xlU2l6ZX0gc29saWQgdHJhbnNwYXJlbnRgO1xuXHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS5ib3JkZXJUb3AgPSBgJHt0cmlhbmdsZVNpemV9IHNvbGlkICR7Y29sb3JzW3RoaXMua2xwV2l0aFRvb2x0aXBdLndpdGhBbHBoYX1gO1xuXHRcdFx0ZWwubmF0aXZlRWxlbWVudC5wcmVwZW5kKHRoaXMudHJpYW5nbGUpO1xuXG5cdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdHRoaXMudHJpYW5nbGVXaGl0ZS5zdHlsZS56SW5kZXggPSBgJHt6SW5kZXhTdGFydCArIDN9YDtcblx0XHRcdHRoaXMudHJpYW5nbGVXaGl0ZS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUubGVmdCA9IGBjYWxjKCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54ICsgZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weCAtIDJyZW0pYDtcblx0XHRcdHRoaXMudHJpYW5nbGVXaGl0ZS5zdHlsZS50b3AgPSBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnl9cHhgO1xuXHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoLTUwJSwgY2FsYygtMTAwJSArIDAuMXJlbSAtIDJweCkpYDtcblx0XHRcdHRoaXMudHJpYW5nbGVXaGl0ZS5zdHlsZS53aWR0aCA9ICcwJztcblx0XHRcdHRoaXMudHJpYW5nbGVXaGl0ZS5zdHlsZS5oZWlnaHQgPSAnMCc7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUuYm9yZGVyTGVmdCA9IGAke3RyaWFuZ2xlU2l6ZX0gc29saWQgdHJhbnNwYXJlbnRgO1xuXHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLmJvcmRlclJpZ2h0ID0gYCR7dHJpYW5nbGVTaXplfSBzb2xpZCB0cmFuc3BhcmVudGA7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUuYm9yZGVyVG9wID0gYCR7dHJpYW5nbGVTaXplfSBzb2xpZCB3aGl0ZWA7XG5cdFx0XHRlbC5uYXRpdmVFbGVtZW50LnByZXBlbmQodGhpcy50cmlhbmdsZVdoaXRlKTtcblx0XHR9KTtcblxuXHRcdGVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5kaXYpO1xuXHRcdFx0fSBjYXRjaCAoZXgpIHt9XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMudHJpYW5nbGUpO1xuXHRcdFx0fSBjYXRjaCAoZXgpIHt9XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMudHJpYW5nbGVXaGl0ZSk7XG5cdFx0XHR9IGNhdGNoIChleCkge31cblx0XHR9KTtcblx0fVxufVxuIl19
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFRvb2x0aXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy9saWIvd2l0aFRvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBRW5ELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUM1QixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUM7QUFFN0IsTUFBTSxNQUFNLEdBQUc7SUFDZCxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGlDQUFpQyxFQUFDO0lBQ3BGLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZ0NBQWdDLEVBQUM7Q0FDakYsQ0FBQztBQUtGLE1BQU0sT0FBTyxvQkFBb0I7SUFRaEMsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFKekIsbUJBQWMsR0FBc0IsUUFBUSxDQUFDO1FBS3JELEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtZQUNwRCxJQUFJLGFBQXFCLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDM0IsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDdEU7WUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUMvQyxPQUFPO2FBQ1A7WUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxD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QUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7WUFDcEQsSUFBSTtnQkFDSCxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkM7WUFBQyxPQUFPLEVBQUUsRUFBRSxHQUFFO1lBQ2YsSUFBSTtnQkFDSCxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDNUM7WUFBQyxPQUFPLEVBQUUsRUFBRSxHQUFFO1lBQ2YsSUFBSTtnQkFDSCxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDakQ7WUFBQyxPQUFPLEVBQUUsRUFBRSxHQUFFO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVcsQ0FBQyxhQUE0QjtRQUM5QyxJQUFJLGFBQWEsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFO1lBQ2hELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0M7SUFDRixDQUFDOztpSEF4SFcsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0JBQWtCO2lCQUM1QjtpR0FLUyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7c3RyaW5nSXNTZXRBbmRGaWxsZWR9IGZyb20gXCIuL3V0aWwvdmFsdWVzXCI7XG5cbmNvbnN0IHRyaWFuZ2xlU2l6ZSA9ICcxMnB4JztcbmNvbnN0IHpJbmRleFN0YXJ0ID0gOTk5OTk5OTk7XG5cbmNvbnN0IGNvbG9ycyA9IHtcblx0b3JhbmdlOiB7IG5vQWxwaGE6ICdyZ2IoMjU1LCAxMjgsIDApJywgd2l0aEFscGhhOiAncmdiYSgyNTUsIDEyOCwgMCwgMC4xMjU0OTAxOTYxKSd9LFxuXHRibGFjazogeyBub0FscGhhOiAncmdiKDQwLCA0MCwgNDApJywgd2l0aEFscGhhOiAncmdiYSg0MCwgNDAsIDQwLCAwLjEyNTQ5MDE5NjEpJ30sXG59O1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdba2xwV2l0aFRvb2x0aXBdJ1xufSlcbmV4cG9ydCBjbGFzcyBXaXRoVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlc3tcblx0cHJpdmF0ZSBkaXY6IEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIHRyaWFuZ2xlOiBIVE1MRWxlbWVudDtcblx0cHJpdmF0ZSB0cmlhbmdsZVdoaXRlOiBIVE1MRWxlbWVudDtcblx0QElucHV0KCkga2xwV2l0aFRvb2x0aXA6ICdvcmFuZ2UnfCAnYmxhY2snID0gJ29yYW5nZSc7XG5cdEBJbnB1dCgpIHRvb2x0aXBUZXh0OiBzdHJpbmc7XG5cdEBJbnB1dCgpIHRvb2x0aXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcblx0cHJpdmF0ZSB0ZW1wbGF0ZUluc3RhbmNlOiBIVE1MRWxlbWVudDtcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xuXHRcdGVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHtcblx0XHRcdGxldCB0ZXh0VG9EaXNwbGF5OiBzdHJpbmc7XG5cdFx0XHRpZiAoIXRoaXMudGVtcGxhdGVJbnN0YW5jZSkge1xuXHRcdFx0XHR0ZXh0VG9EaXNwbGF5ID0gdGhpcy50b29sdGlwVGV4dCB8fCBlbC5uYXRpdmVFbGVtZW50LmlubmVyVGV4dC50cmltKCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIXN0cmluZ0lzU2V0QW5kRmlsbGVkKHRoaXMua2xwV2l0aFRvb2x0aXApKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmICghc3RyaW5nSXNTZXRBbmRGaWxsZWQodGV4dFRvRGlzcGxheSkgJiYgIXRoaXMudG9vbHRpcFRlbXBsYXRlKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmIChzdHJpbmdJc1NldEFuZEZpbGxlZCh0aGlzLnRvb2x0aXBUZXh0KSkge1xuXHRcdFx0XHRpZiAodGhpcy50b29sdGlwVGV4dCA9PT0gZWwubmF0aXZlRWxlbWVudC5pbm5lclRleHQpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAodGhpcy50b29sdGlwVGVtcGxhdGUpIHtcblx0XHRcdFx0Ly8gbm8gbmVlZCB0byBjaGVjayBoZXJlLCBqdXN0IHJlbmRlciB0aGUgdGVtcGxhdGVcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlmIChlbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoID49IGVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGgpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChnZXRDb21wdXRlZFN0eWxlKGVsLm5hdGl2ZUVsZW1lbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuXHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5kaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdHRoaXMuZGl2LnN0eWxlLnpJbmRleCA9IGAke3pJbmRleFN0YXJ0ICsgMn1gO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUuY29sb3IgPSBgJHtjb2xvcnNbdGhpcy5rbHBXaXRoVG9vbHRpcF0ubm9BbHBoYX1gO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUubGVmdCA9IGAke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueH1weGA7XG5cdFx0XHR0aGlzLmRpdi5zdHlsZS50b3AgPSBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnl9cHhgO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZShjYWxjKC0xMDAlICsgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofXB4KSwgY2FsYygtMTAwJSAtIDAuM3JlbSkpYDtcblx0XHRcdHRoaXMuZGl2LnN0eWxlLm1heFdpZHRoID0gJzIwMHB4Jztcblx0XHRcdHRoaXMuZGl2LnN0eWxlLndoaXRlU3BhY2UgPSAnYnJlYWstc3BhY2VzJztcblx0XHRcdHRoaXMuZGl2LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICd3aGl0ZSc7XG5cdFx0XHR0aGlzLmRpdi5zdHlsZS5ib3JkZXIgPSBgMXB4IHNvbGlkICR7Y29sb3JzW3RoaXMua2xwV2l0aFRvb2x0aXBdLndpdGhBbHBoYX1gO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUuYm94U2hhZG93ID0gYDJweCAzcHggMTBweCAwcHggJHtjb2xvcnNbdGhpcy5rbHBXaXRoVG9vbHRpcF0ud2l0aEFscGhhfWA7XG5cdFx0XHR0aGlzLmRpdi5zdHlsZS5wYWRkaW5nID0gJzAuM3JlbSAwLjVyZW0nO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUuYm94U2l6aW5nID0gJ2JvcmRlci1ib3gnO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUuYm9yZGVyUmFkaXVzID0gJzNweCc7XG5cdFx0XHRpZiAoc3RyaW5nSXNTZXRBbmRGaWxsZWQodGV4dFRvRGlzcGxheSkpIHtcblx0XHRcdFx0dGhpcy5kaXYudGV4dENvbnRlbnQgPSB0ZXh0VG9EaXNwbGF5O1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnRlbXBsYXRlSW5zdGFuY2UpIHtcblx0XHRcdFx0dGhpcy5kaXYuc3R5bGUubWF4V2lkdGggPSAnbm9uZSc7XG5cdFx0XHRcdHRoaXMuZGl2LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcblx0XHRcdFx0dGhpcy5kaXYuYXBwZW5kQ2hpbGQodGhpcy50ZW1wbGF0ZUluc3RhbmNlKTtcblx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgY29sb3IgPSBnZXRDb21wdXRlZFN0eWxlKHRoaXMudGVtcGxhdGVJbnN0YW5jZSkuYmFja2dyb3VuZENvbG9yIHx8IGdldENvbXB1dGVkU3R5bGUodGhpcy50ZW1wbGF0ZUluc3RhbmNlKS5iYWNrZ3JvdW5kO1xuXHRcdFx0XHRcdHRoaXMuZGl2LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGNvbG9yO1xuXHRcdFx0XHRcdHRoaXMuZGl2LnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0ZWwubmF0aXZlRWxlbWVudC5wcmVwZW5kKHRoaXMuZGl2KTtcblxuXHRcdFx0dGhpcy50cmlhbmdsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS56SW5kZXggPSBgJHt6SW5kZXhTdGFydCArIDF9YDtcblx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuXHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS5sZWZ0ID0gYGNhbGMoJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnggKyBlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofXB4IC0gMnJlbSlgO1xuXHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS50b3AgPSBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnl9cHhgO1xuXHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKC01MCUsIGNhbGMoLTEwMCUgKyAwLjFyZW0pKWA7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLndpZHRoID0gJzAnO1xuXHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS5oZWlnaHQgPSAnMCc7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLmJvcmRlckxlZnQgPSBgJHt0cmlhbmdsZVNpemV9IHNvbGlkIHRyYW5zcGFyZW50YDtcblx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUuYm9yZGVyUmlnaHQgPSBgJHt0cmlhbmdsZVNpemV9IHNvbGlkIHRyYW5zcGFyZW50YDtcblx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUuYm9yZGVyVG9wID0gYCR7dHJpYW5nbGVTaXplfSBzb2xpZCAke2NvbG9yc1t0aGlzLmtscFdpdGhUb29sdGlwXS53aXRoQWxwaGF9YDtcblx0XHRcdGVsLm5hdGl2ZUVsZW1lbnQucHJlcGVuZCh0aGlzLnRyaWFuZ2xlKTtcblxuXHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUuekluZGV4ID0gYCR7ekluZGV4U3RhcnQgKyAzfWA7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuXHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLmxlZnQgPSBgY2FsYygke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCArIGVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cHggLSAycmVtKWA7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUudG9wID0gYCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55fXB4YDtcblx0XHRcdHRoaXMudHJpYW5nbGVXaGl0ZS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKC01MCUsIGNhbGMoLTEwMCUgKyAwLjFyZW0gLSAycHgpKWA7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUud2lkdGggPSAnMCc7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUuaGVpZ2h0ID0gJzAnO1xuXHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLmJvcmRlckxlZnQgPSBgJHt0cmlhbmdsZVNpemV9IHNvbGlkIHRyYW5zcGFyZW50YDtcblx0XHRcdHRoaXMudHJpYW5nbGVXaGl0ZS5zdHlsZS5ib3JkZXJSaWdodCA9IGAke3RyaWFuZ2xlU2l6ZX0gc29saWQgdHJhbnNwYXJlbnRgO1xuXG5cdFx0XHRpZiAoc3RyaW5nSXNTZXRBbmRGaWxsZWQodGV4dFRvRGlzcGxheSkpIHtcblx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLmJvcmRlclRvcCA9IGAke3RyaWFuZ2xlU2l6ZX0gc29saWQgd2hpdGVgO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnRlbXBsYXRlSW5zdGFuY2UpIHtcblx0XHRcdFx0dGhpcy5kaXYuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRjb25zdCBjb2xvciA9IGdldENvbXB1dGVkU3R5bGUodGhpcy50ZW1wbGF0ZUluc3RhbmNlKS5iYWNrZ3JvdW5kQ29sb3IgfHwgZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnRlbXBsYXRlSW5zdGFuY2UpLmJhY2tncm91bmQ7XG5cdFx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLmJvcmRlclRvcCA9IGAke3RyaWFuZ2xlU2l6ZX0gc29saWQgJHtjb2xvcn1gO1xuXHRcdFx0XHRcdHRoaXMuZGl2LnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXG5cdFx0XHRlbC5uYXRpdmVFbGVtZW50LnByZXBlbmQodGhpcy50cmlhbmdsZVdoaXRlKTtcblx0XHR9KTtcblxuXHRcdGVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5kaXYpO1xuXHRcdFx0fSBjYXRjaCAoZXgpIHt9XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMudHJpYW5nbGUpO1xuXHRcdFx0fSBjYXRjaCAoZXgpIHt9XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMudHJpYW5nbGVXaGl0ZSk7XG5cdFx0XHR9IGNhdGNoIChleCkge31cblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cdFx0aWYgKHNpbXBsZUNoYW5nZXMudG9vbHRpcFRlbXBsYXRlPy5jdXJyZW50VmFsdWUpIHtcblx0XHRcdGNvbnN0IHZpZXdSZWYgPSB0aGlzLnRvb2x0aXBUZW1wbGF0ZS5jcmVhdGVFbWJlZGRlZFZpZXcobnVsbCk7XG5cdFx0XHR0aGlzLnRlbXBsYXRlSW5zdGFuY2UgPSB2aWV3UmVmLnJvb3ROb2Rlc1swXTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
@@ -2489,13 +2489,17 @@ const colors = {
2489
2489
  };
2490
2490
  class WithTooltipDirective {
2491
2491
  constructor(el) {
2492
+ this.el = el;
2492
2493
  this.klpWithTooltip = 'orange';
2493
2494
  el.nativeElement.addEventListener('mouseenter', () => {
2494
- const textToDisplay = this.tooltipText || el.nativeElement.innerText.trim();
2495
+ let textToDisplay;
2496
+ if (!this.templateInstance) {
2497
+ textToDisplay = this.tooltipText || el.nativeElement.innerText.trim();
2498
+ }
2495
2499
  if (!stringIsSetAndFilled(this.klpWithTooltip)) {
2496
2500
  return;
2497
2501
  }
2498
- if (textToDisplay.length < 1) {
2502
+ if (!stringIsSetAndFilled(textToDisplay) && !this.tooltipTemplate) {
2499
2503
  return;
2500
2504
  }
2501
2505
  if (stringIsSetAndFilled(this.tooltipText)) {
@@ -2503,6 +2507,9 @@ class WithTooltipDirective {
2503
2507
  return;
2504
2508
  }
2505
2509
  }
2510
+ else if (this.tooltipTemplate) {
2511
+ // no need to check here, just render the template
2512
+ }
2506
2513
  else {
2507
2514
  if (el.nativeElement.offsetWidth >= el.nativeElement.scrollWidth) {
2508
2515
  return;
@@ -2526,7 +2533,19 @@ class WithTooltipDirective {
2526
2533
  this.div.style.padding = '0.3rem 0.5rem';
2527
2534
  this.div.style.boxSizing = 'border-box';
2528
2535
  this.div.style.borderRadius = '3px';
2529
- this.div.textContent = textToDisplay;
2536
+ if (stringIsSetAndFilled(textToDisplay)) {
2537
+ this.div.textContent = textToDisplay;
2538
+ }
2539
+ else if (this.templateInstance) {
2540
+ this.div.style.maxWidth = 'none';
2541
+ this.div.style.visibility = 'hidden';
2542
+ this.div.appendChild(this.templateInstance);
2543
+ setTimeout(() => {
2544
+ const color = getComputedStyle(this.templateInstance).backgroundColor || getComputedStyle(this.templateInstance).background;
2545
+ this.div.style.backgroundColor = color;
2546
+ this.div.style.visibility = 'visible';
2547
+ });
2548
+ }
2530
2549
  el.nativeElement.prepend(this.div);
2531
2550
  this.triangle = document.createElement('div');
2532
2551
  this.triangle.style.zIndex = `${zIndexStart + 1}`;
@@ -2550,7 +2569,17 @@ class WithTooltipDirective {
2550
2569
  this.triangleWhite.style.height = '0';
2551
2570
  this.triangleWhite.style.borderLeft = `${triangleSize} solid transparent`;
2552
2571
  this.triangleWhite.style.borderRight = `${triangleSize} solid transparent`;
2553
- this.triangleWhite.style.borderTop = `${triangleSize} solid white`;
2572
+ if (stringIsSetAndFilled(textToDisplay)) {
2573
+ this.triangleWhite.style.borderTop = `${triangleSize} solid white`;
2574
+ }
2575
+ else if (this.templateInstance) {
2576
+ this.div.style.visibility = 'hidden';
2577
+ setTimeout(() => {
2578
+ const color = getComputedStyle(this.templateInstance).backgroundColor || getComputedStyle(this.templateInstance).background;
2579
+ this.triangleWhite.style.borderTop = `${triangleSize} solid ${color}`;
2580
+ this.div.style.visibility = 'visible';
2581
+ });
2582
+ }
2554
2583
  el.nativeElement.prepend(this.triangleWhite);
2555
2584
  });
2556
2585
  el.nativeElement.addEventListener('mouseleave', () => {
@@ -2568,9 +2597,16 @@ class WithTooltipDirective {
2568
2597
  catch (ex) { }
2569
2598
  });
2570
2599
  }
2600
+ ngOnChanges(simpleChanges) {
2601
+ var _a;
2602
+ if ((_a = simpleChanges.tooltipTemplate) === null || _a === void 0 ? void 0 : _a.currentValue) {
2603
+ const viewRef = this.tooltipTemplate.createEmbeddedView(null);
2604
+ this.templateInstance = viewRef.rootNodes[0];
2605
+ }
2606
+ }
2571
2607
  }
2572
2608
  WithTooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: WithTooltipDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2573
- WithTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: WithTooltipDirective, selector: "[klpWithTooltip]", inputs: { klpWithTooltip: "klpWithTooltip", tooltipText: "tooltipText" }, ngImport: i0 });
2609
+ WithTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: WithTooltipDirective, selector: "[klpWithTooltip]", inputs: { klpWithTooltip: "klpWithTooltip", tooltipText: "tooltipText", tooltipTemplate: "tooltipTemplate" }, usesOnChanges: true, ngImport: i0 });
2574
2610
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: WithTooltipDirective, decorators: [{
2575
2611
  type: Directive,
2576
2612
  args: [{
@@ -2580,6 +2616,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
2580
2616
  type: Input
2581
2617
  }], tooltipText: [{
2582
2618
  type: Input
2619
+ }], tooltipTemplate: [{
2620
+ type: Input
2583
2621
  }] } });
2584
2622
 
2585
2623
  class NgxEnhancyFormsModule {